Magento:如何在客户信息字段中显示客户的电话号码

时间:2012-08-07 15:42:34

标签: magento

我正在尝试将客户的电话号码显示在客户帐户信息部分下。我知道电话号码属于客户地址部分,但我正在尝试重新设计客户帐户信息的样子。

我为客户ID添加了一个新的自定义字段,我可以使用以下代码显示它,因为客户ID属于customer_entity。

<?php echo $this->__('Identification:') ?><?php echo $this->htmlEscape($this->getCustomer()->getCustid()) ?>

但现在我正在尝试使用此

为电话号码做同样的事情
<?php echo $this->__('Telephone:') ?><?php echo $this->htmlEscape($this->getCustomer()->getTelephone()) ?>

但是它不显示任何数据,因为它属于customer_address_entity,我相信它应该是

->getAddress()->getTelephone()

而不是

->getCustomer()->getTelephone()

但是使用 - &gt; getAddress只是给我一个错误“在非对象上调用成员函数getTelephone()”

有没有人知道如何做到这一点?

作为参考,我正在尝试将此数据显示在文件customer \ account \ dashboard \ info.phtml

提前致谢。

5 个答案:

答案 0 :(得分:15)

哦,谢谢,我现在发帖! (见原帖后的评论)。

只需使用以下内容:

$this->getCustomer()->getPrimaryBillingAddress()->getTelephone();

第一部分将为您提供所有详细信息,然后您可以根据@paperids使用var_dump()进行探索。

答案 1 :(得分:5)

这个答案应该归@Alex所有,但为了完成,我将这个作为答案发布:

使用:

$this->getCustomer()->getPrimaryBillingAddress()->getTelephone()

答案 2 :(得分:1)

Luis之前曾提到,如果客户未设置其帐单邮寄地址,您将收到错误回复: 调用非对象中的成员函数。

如果您想为这种情况做好准备,可以将代码放入以下IF语句中:

<?php if ($customerAddressId){ ?>
    <?php $address=Mage::getModel('customer/address')->load($customerAddressId); ?>
    <?php $this->getCustomer()->getPrimaryBillingAddress()->getTelephone(); 
} ?>

答案 3 :(得分:1)

如果没有设置地址,请小心,然后此getPrimaryBillingAddress()返回一个非对象。

$address = $this->getCustomer()->getPrimaryBillingAddress();
if ( $address ) echo $address->getTelephone();

答案 4 :(得分:-2)

isLoggedIn()){   $ customer = Mage :: getSingleton('customer / session') - &gt; getCustomer();   $ customerName = $ customer-&gt; getName();   //喜欢你可以访问所有其他属性 } ?&GT;