Wie kann ich nach erfolgreicher Anmeldung Kundendaten vom Beobachter erhalten?


12

Ich habe ein benutzerdefiniertes Modul erstellt, in dem ich eine Beobachterdatei habe. Ich muss alle Informationen über den angemeldeten Benutzer anzeigen.

Antworten:


16

Nutzen Sie die Veranstaltung customer_login:

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

Ihre Beobachterklasse würde so aussehen:

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

1
nachdem ich das tue, gibt der getCustomer null zurück.
user2656802

Siehe die Revision. Prost.
Philwinkle

Hey, ich bin sehr neu in Magento. Ich möchte auch dasselbe tun. Kannst du mir sagen, wo ich diesen Code in der Dateistruktur ablegen muss?
Happy

Ich möchte vor dem Login eine Aktion ausführen, wenn sich der Benutzer mit einem falschen Passwort anmeldet.
Ravi Patel

@ Ravipatel eine neue Frage stellen
Philwinkle

1

Versuche dies

    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()reicht aus, um Kundendaten abzurufen, warum dann die Kundeninstanz erneut laden?
Rajeev K Tomy

Ja, es ist nicht erforderlich. Ich habe aber nach dem Code-Flow $ customer editiert -> getFirstname () wird auch funktionieren.
Vivek Khandelwal
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.