5

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

我为客户 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()

但使用 ->getAddress 只会给我一个错误“调用非对象上的成员函数 getTelephone()”

有谁知道如何做到这一点?

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

提前致谢。

4

5 回答 5

16

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

只需使用以下内容:

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

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

于 2012-08-07T17:29:15.293 回答
5

这个答案应该发给@Alex,但为了完成,我将其发布为答案:

采用:

$this->getCustomer()->getPrimaryBillingAddress()->getTelephone()
于 2012-08-07T17:21:07.470 回答
2

小心如果没有设置地址,那么这个 getPrimaryBillingAddress() 返回一个非对象。

$address = $this->getCustomer()->getPrimaryBillingAddress();
if ( $address ) echo $address->getTelephone();
于 2016-06-08T13:21:51.213 回答
1

Luis 之前提到,如果客户没有设置他的帐单地址,你会得到一个错误的回报: 调用非对象中的成员函数。

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

<?php if ($customerAddressId){ ?>
    <?php $address=Mage::getModel('customer/address')->load($customerAddressId); ?>
    <?php $this->getCustomer()->getPrimaryBillingAddress()->getTelephone(); 
} ?>
于 2014-09-25T06:47:31.907 回答
-2
isLoggedIn()) { $customer = Mage::getSingleton('customer/session')->getCustomer(); $customerName = $customer->getName(); // 这样你就可以访问所有其他属性 } ?>
于 2018-01-08T11:12:34.940 回答