从Magento中的.phtml访问自定义变量

时间:2011-08-08 19:26:49

标签: php magento

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

那么,如何为.phtml文件提供自定义对象或方法?我是Magento的新手,我刚刚接受了任务,所以我为可能使用不正确的术语而道歉。

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

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

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

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

编辑: 我需要访问用户country和userid。如果country为null,则没关系。

编辑: 我一直在做进一步的研究,看起来我可以这样做: 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));

2 个答案:

答案 0 :(得分:2)

获取客户ID:

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

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

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

答案 1 :(得分:1)

我对Magento有点新鲜,但我认为这应该有用。

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

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

echo $customer->getAddresses();

这应该让国家在地址的某个地方。至于用户ID ...我没有在文档页面上看到它..你可以尝试

echo $customer->getAttributes();

看看那里有什么。文档页面位于:

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