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


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();
    }
}

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'];
    }

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.