Làm thế nào tôi có thể lấy dữ liệu khách hàng từ người quan sát sau khi đăng nhập thành công?


12

Tôi đã tạo một mô-đun tùy chỉnh trong đó tôi có một tệp quan sát viên. Tôi cần hiển thị tất cả thông tin về người dùng đã đăng nhập.

Câu trả lời:


16

Sử dụng sự kiện customer_login:

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

Lớp người quan sát của bạn sẽ trông như thế này:

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

1
sau khi tôi làm điều này, getCustomer trả về null.
dùng2656802

Xem bản sửa đổi. Chúc mừng.
philwinkle

Heyy .. Tôi rất mới trong magento. Tôi cũng muốn làm điều tương tự. Bạn có thể cho tôi biết nơi tôi phải đặt mã này trong cấu trúc tệp không?
Chúc mừng

Tôi muốn trước khi đăng nhập hành động khi người dùng đăng nhập sai mật khẩu đăng nhập.
ravi patel

@ravipatel hỏi một câu hỏi mới
philwinkle

1

Thử đi

    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()là đủ để có được thông tin chi tiết của khách hàng, vậy thì tại sao lại tải lại ví dụ của khách hàng?
Rajeev K Tomy

Có nó là không cần thiết. Nhưng tôi đã chỉnh sửa theo dòng mã $ customer -> getFirstname () cũng sẽ hoạt động.
Vivek Khandelwal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.