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


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 возвращает ноль.
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 () также будет работать.
Вивек Хандельвал
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.