성공적인 로그인 후 관찰자로부터 고객 데이터를 얻으려면 어떻게해야합니까?


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

Heyy .. 나는 magento에서 매우 새롭다. 나는 또한 같은 일을하고 싶다.이 코드를 파일 구조에 어디에 넣어야하는지 말해 줄 수 있습니까?
Happy

사용자가 잘못된 비밀번호 로그인을 할 때 로그인 작업 전에 원합니다.
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()고객 세부 정보를 얻는 데 충분하면 왜 고객 인스턴스를 다시로드합니까?
Rajeev K Tomy

예, 필요하지 않습니다. 그러나 코드 흐름 $ customer-> getFirstname ()에 따라 편집하면 작동합니다.
Vivek Khandelwal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.