我正在尝试将客户的电话号码显示在客户帐户信息部分下。我知道电话号码属于客户地址部分,但我正在尝试重新设计客户帐户信息的样子。
我为客户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
上提前致谢。
答案 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)