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é.

user2656802
la source

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();
    }
}
philwinkle
la source
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'];
    }
Deepak Mallah
la source
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