¿Cómo puedo obtener los datos del cliente del observador después de un inicio de sesión exitoso?

12

He creado un módulo personalizado en el que tengo un archivo de observador. Necesito mostrar toda la información sobre el usuario conectado.

usuario2656802
fuente

Respuestas:

16

Usa el evento customer_login:

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

Su clase de observador se vería así:

class YourCompany_YourModule_Model_Observer
{
    public function customerLogin($observer)
    {
        $customer = $observer->getCustomer();
    }
}
philwinkle
fuente
1
después de hacer esto, getCustomer devuelve nulo.
user2656802
Ver la revisión. Salud.
philwinkle
Hola, soy muy nuevo en magento. También quiero hacer lo mismo. ¿Puedes decirme dónde tengo que poner este código en la estructura de archivos?
Feliz
Quiero antes de iniciar sesión cuando el usuario inicia sesión con contraseña incorrecta.
ravi patel
@ravipatel hace una nueva pregunta
philwinkle
1

Prueba esto

    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
fuente
2
Mage::getSingleton('customer/session')->getCustomer()es suficiente para obtener detalles del cliente, entonces ¿por qué volver a cargar la instancia del cliente nuevamente?
Rajeev K Tomy
Sí, no es obligatorio Pero edité de acuerdo con el flujo de código $ customer -> getFirstname () también funcionará.
Vivek Khandelwal