Як я можу отримати дані від клієнта від спостерігача після успішного входу?


12

Я зробив спеціальний модуль, у якому я маю файл спостерігача. Мені потрібно відобразити всю інформацію про зареєстрованого користувача.

Відповіді:


16

Скористайтеся подією customer_login:

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

Ваш клас спостерігачів виглядав би так:

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

1
після цього я getCustomer повертає null.
user2656802

Дивіться редакцію. Ура.
philwinkle

Гей, я дуже новачок у magento.Я також хочу зробити те саме. Чи можете ви сказати мені, де я повинен помістити цей код у структуру файлів?
Щасливий

Я хочу перед входом в дію, коли користувач невірно ввійшов в систему.
ravi patel

@ravipatel задайте нове запитання
philwinkle

1

Спробуйте це

    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()достатньо, щоб отримати детальну інформацію про клієнта, то навіщо знову завантажувати екземпляр клієнта?
Радєєв К Томі

Так, це не потрібно. Але я редагувався відповідно до потоку коду $ customer -> getFirstname () також буде працювати.
Вівек Ханделваль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.