Jak mogę uzyskać dane klienta od obserwatora po udanym zalogowaniu?

12

Stworzyłem niestandardowy moduł, w którym mam plik obserwatora. Muszę wyświetlić wszystkie informacje o zalogowanym użytkowniku.

użytkownik2656802
źródło

Odpowiedzi:

16

Wykorzystaj wydarzenie customer_login:

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

Twoja klasa obserwatorów wyglądałaby tak:

class YourCompany_YourModule_Model_Observer
{
    public function customerLogin($observer)
    {
        $customer = $observer->getCustomer();
    }
}
philwinkle
źródło
1
po zrobieniu tego getCustomer zwraca null.
user2656802,
Zobacz wersję. Twoje zdrowie.
philwinkle,
Hej ... Jestem nowy w Magento. Chcę również zrobić to samo. Czy możesz mi powiedzieć, gdzie muszę umieścić ten kod w strukturze plików?
Szczęśliwy
Chcę przed zalogowaniem akcji, gdy użytkownik zaloguje się niepoprawne hasło.
ravi patel
@ravipatel zadaj nowe pytanie
philwinkle
1

Spróbuj tego

    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'];
    }
Deepak Mallah
źródło
2
Mage::getSingleton('customer/session')->getCustomer()wystarczy, aby uzyskać dane klienta, to po co ponownie ładować instancję klienta?
Rajeev K Tomy
Tak, nie jest wymagane. Ale edytowałem zgodnie z przepływem kodu $ customer -> getFirstname () również będzie działać.
Vivek Khandelwal