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 に答える