ログインに成功した後、オブザーバーから顧客データを取得するにはどうすればよいですか?


12

オブザーバーファイルを含むカスタムモジュールを作成しました。ログインしているユーザーに関するすべての情報を表示する必要があります。

回答:


16

イベントを使用するcustomer_login

<customer_login>
    <observers>
        <yourobservername>
            <type>model</type>
            <class>yourmodule/path_to_class</class>
            <method>customerLogin</method>
        </yourobservername>
    </observers>
</customer_login>

オブザーバークラスは次のようになります。

class YourCompany_YourModule_Model_Observer
{
    public function customerLogin($observer)
    {
        $customer = $observer->getCustomer();
    }
}

1
これを行った後、getCustomerはnullを返します。
user2656802

改訂版をご覧ください。乾杯。
philwinkle

Heyy ..私はmagentoの初心者です。同じことをしたいのですが、このコードをファイル構造のどこに置く必要があるか教えてください。
ハッピー14

ユーザーが間違ったパスワードでログインした場合、ログインアクションの前に欲しい。
ラヴィパテル14

@ravipatelが新しい質問をする
philwinkle 14

1

これを試して

    if($customer = Mage::getSingleton('customer/session')->isLoggedIn()) {
$customer =  Mage::getSingleton('customer/session')->getCustomer();
       $customerData = Mage::getModel('customer/customer')->load($customer->getId())->getData();
       //for firstname
       $customerFirstName = $customerData['firstname'];
    }

2
Mage::getSingleton('customer/session')->getCustomer()顧客の詳細を取得するには十分なのに、なぜ顧客インスタンスを再度リロードするのですか?
ラジーエフKトミー

はい、必須ではありません。しかし、コードフローに従って編集した$ customer-> getFirstname()も動作します。
ヴィヴェックカンデルワル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.