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

Php 从Magento中的.phtml访问自定义变量,php,magento,Php,Magento,我有一个执行代码的文件(js.phtml)。我需要访问一些用户数据。当我在js.phtml中输入error_log($this)时,它会显示“Mage_Core_Block_Template”,这让我很困惑。我希望它是父类,而不是传递到.phtml文件的类的值 那么,如何为.phtml文件提供自定义对象或方法呢?我是Magento的新手,刚刚被派去执行一项任务,所以我很抱歉可能使用了不正确的术语 编辑: 我的完整文件路径是: /app/design/frontend//default/temp

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

那么,如何为.phtml文件提供自定义对象或方法呢?我是Magento的新手,刚刚被派去执行一项任务,所以我很抱歉可能使用了不正确的术语

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

  • /app/design/frontend//default/template/customer/welcome/js.phtml
这里还有一个完整的模块目录:

  • /应用程序/代码/本地//客户/
编辑: 我需要访问用户的国家和用户ID。如果国家是空的就可以了

编辑: 我一直在做额外的研究,看起来我可以做这样的事情:

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

编辑:找到答案:

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

我对Magento有些陌生,但我认为这应该行得通

$customer = Mage::getSingleton('customer/session')->getCustomer();
这将获取客户对象。然后

echo $customer->getAddresses();
这应该能在地址中找到国家。至于userid…我在文档页面上没有看到它…你可以试试

echo $customer->getAttributes();
看看里面有什么。文档页面位于:


我对Magento有些陌生,但我认为这应该行得通

$customer = Mage::getSingleton('customer/session')->getCustomer();
这将获取客户对象。然后

echo $customer->getAddresses();
这应该能在地址中找到国家。至于userid…我在文档页面上没有看到它…你可以试试

echo $customer->getAttributes();
看看里面有什么。文档页面位于:

要获取客户ID:

echo Mage::getSingleton('customer/session')->getCustomer()->getId();
获取国家/地区-取决于地址。以下是从默认帐单地址获取国家代码的示例:

echo Mage::getSingleton('customer/session')->getCustomer()->getDefaultBillingAddress()->getCountry();
要获取客户ID,请执行以下操作:

echo Mage::getSingleton('customer/session')->getCustomer()->getId();
获取国家/地区-取决于地址。以下是从默认帐单地址获取国家代码的示例:

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

您需要使用哪些对象/方法?你能再描述一下你的js.phtml文件想要实现什么吗?你的路径有问题。默认主题模板文件夹的路径是
\app\design\frontend\base\default\template
。您需要使用哪些对象/方法?你能再描述一下你的js.phtml文件想要实现什么吗?你的路径有问题。默认主题模板文件夹的路径是
\app\design\frontend\base\default\template
。有趣的是,getDefaultBillingAddress(),而不是我所做的。很酷,我必须深入挖掘可能的差异。有趣的是,getDefaultBillingAddress(),而不是我所做的。很酷,我必须深入研究可能的差异。编辑得好。这篇文章也应该有帮助对不起,我不是有意编辑你的文章。这是一个很好的信息+1.我接受了另一个答案,因为他们比你抢先一步。没问题。另一个帖子效率更高,我倾向于在帖子中漫无目的地闲聊。感谢+1!编辑得好。这篇文章也应该有帮助对不起,我不是有意编辑你的文章。这是一个很好的信息+1.我接受了另一个答案,因为他们比你抢先一步。没问题。另一个帖子效率更高,我倾向于在帖子中漫无目的地闲聊。感谢+1!