Como posso obter dados do cliente do observador após o login bem-sucedido?


12

Eu criei um módulo personalizado no qual tenho um arquivo observador. Eu preciso exibir todas as informações sobre o usuário conectado.

Respostas:


16

Use o evento customer_login:

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

Sua classe de observador ficaria assim:

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

1
depois de fazer isso, o getCustomer retorna nulo.
user2656802

Veja a revisão. Felicidades.
philwinkle

Ei .. eu sou muito novo em magento.Eu também quero fazer a mesma coisa.Pode me dizer onde eu tenho que colocar esse código na estrutura de arquivos?
Feliz

Eu quero antes da ação de logon quando o usuário logar com senha incorreta.
Ravi Patel

@ravipatel faça uma nova pergunta
philwinkle

1

Tente isto

    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()é suficiente para obter detalhes do cliente, por que recarregar a instância do cliente novamente?
Rajeev K Tomy 17/05

Sim, não é necessário. Mas editei de acordo com o fluxo de código $ customer -> getFirstname () também funcionará.
Vivek Khandelwal
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.