Как я могу получить данные клиента от наблюдателя после успешного входа?

12

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

user2656802
источник

Ответы:

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();
    }
}
philwinkle
источник
1
после того, как я это сделаю, getCustomer возвращает ноль.
user2656802
Смотрите ревизию. Приветствия.
Philwinkle
Эй, я очень новичок в magento. Я тоже хочу сделать то же самое. Можете ли вы сказать мне, где я должен поместить этот код в файловую структуру?
Счастливого
Я хочу перед действиями входа в систему, когда пользователь вводит неправильный пароль.
Рави Патель
@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 () также будет работать.
Вивек Хандельвал