成功登录后如何从观察者获取客户数据?


12

我制作了一个自定义模块,其中有一个观察者文件。我需要显示有关已登录用户的所有信息。

Answers:


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 2013年

请参阅修订。干杯。
philwinkle

嗨,我是magento的新手。我也想做同样的事情。您能告诉我我必须将此代码放在文件结构中的什么位置吗?
2014年

我要在登录操作之前,当用户登录密码错误登录时。
ravi patel 2014年

@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()足以获取客户详细信息,那么为什么再次重新加载客户实例?
拉杰夫K托米

是的,它不是必需的。但是我根据代码流程$ customer-> getFirstname()进行了编辑。
Vivek Khandelwal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.