Comment puis-je obtenir des données client de l'observateur après une connexion réussie?


12

J'ai créé un module personnalisé dans lequel j'ai un fichier d'observateur. J'ai besoin d'afficher toutes les informations sur l'utilisateur connecté.

Réponses:


16

Utilisez l'événement customer_login:

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

Votre classe d'observateurs ressemblerait à ceci:

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

1
après avoir fait cela, getCustomer retourne null.
user2656802

Voir la révision. À votre santé.
philwinkle

Heyy .. Je suis très nouveau dans magento.Je veux aussi faire la même chose.Pouvez-vous me dire où je dois mettre ce code dans la structure des fichiers?
Joyeux

Je veux avant l'action de connexion lorsque l'utilisateur se connecte à un mauvais mot de passe.
ravi patel

@ravipatel poser une nouvelle question
philwinkle

1

Essaye ça

    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()suffit pour obtenir les détails du client, alors pourquoi recharger à nouveau l'instance client?
Rajeev K Tomy

Oui, ce n'est pas obligatoire. Mais j'ai édité selon le flux de code $ customer -> getFirstname () fonctionnera également.
Vivek Khandelwal
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.