2011-08-08 31 views
0

我有一个执行代码的文件(js.phtml)。我需要访问一些用户数据。当我在js.phtml中使用error_log($ this)时,它显示“Mage_Core_Block_Template” - 这让我感到困惑。我期望这是父类,而不是传递给我的.phtml文件的类的价值。从Magento中的.phtml访问自定义变量

那么,我该如何与供应自定义对象或方法的一个.phtml文件?我是Magento的超级新手,我刚刚被放入任务中,因此我很抱歉使用错误的术语。

编辑: 我完整的文件路径是:

  • /app/design/frontend//default/template/customer/welcome/js.phtml

还有一个完整的模块DIR这里:

  • /应用/代码/本地//客户/

编辑: 我需要访问用户国家和用户ID。如果国家为空,那也没关系。

编辑: 我一直在做更多的研究,它看起来像我可以做这样的事情: Current user in Magento?

但我还没有在代码中还没有尝试过....

编辑:想通了:

error_log(print_r(Mage::getSingleton('customer/session')->getCustomer()->getEntityId(), true)); 
error_log(print_r(Mage::getSingleton('customer/session')->getCustomer()->getCountry(), true)); 
+0

您需要使用哪些对象/方法?你能描述一下你的js.phtml文件试图完成什么吗? –

+0

在OP中更新,好点。 –

+0

你的路径有问题。默认主题模板文件夹的路径是'\ app \ design \ frontend \ base \ default \ template'。 – Zyava

回答

2

要获得客户ID:

echo Mage::getSingleton('customer/session')->getCustomer()->getId(); 

要获得国家 - 从哪个地址取决于。以下是从默认帐单地址获取国家/地区代码的示例:

echo Mage::getSingleton('customer/session')->getCustomer()->getDefaultBillingAddress()->getCountry(); 
+0

有趣的getDefaultBillingAddress(),而不是我所做的。很酷,我不得不挖掘可能的差异。 –

1

我对Magento有点新,但我认为这应该工作。

$customer = Mage::getSingleton('customer/session')->getCustomer(); 

获取客户对象。然后...

echo $customer->getAddresses(); 

这应该得到国家在地址的某个地方。至于userid ...我没有在文档页面上看到它..您可以尝试

echo $customer->getAttributes(); 

然后看看里面有什么。文档页面是:

http://docs.magentocommerce.com/Mage_Customer/Mage_Customer_Model_Customer.html

+1

很好的编辑。这篇文章也应该是有用的http://www.magentocommerce.com/boards/viewthread/22382/ –

+0

对不起,并不意味着编辑你的文章。尽管这是很好的信息。 +1。我把另一个作为答案,但他们打败你。 –

+0

不是问题。另一个帖子效率更高,我倾向于在帖子中漫不经心。欣赏+1! –

相关问题