Bagaimana saya bisa mendapatkan data pelanggan dari pengamat setelah berhasil masuk?


Jawaban:


16

Gunakan acara customer_login:

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

Kelas pengamat Anda akan terlihat seperti ini:

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

1
setelah saya melakukan ini getCustomer mengembalikan null.
user2656802

Lihat revisi. Bersulang.
philwinkle

Heyy .. Saya sangat baru di magento.I juga ingin melakukan hal yang sama. Bisakah Anda memberi tahu saya di mana saya harus meletakkan kode ini dalam struktur file?
Selamat

Saya ingin sebelum tindakan login ketika pengguna memasukkan kata sandi yang salah.
ravi patel

@ravipatel mengajukan pertanyaan baru
philwinkle

1

Coba ini

    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()cukup untuk mendapatkan detail pelanggan, lalu mengapa memuat ulang instance pelanggan lagi?
Rajeev K Tomy

Ya itu tidak wajib. Tapi saya diedit sesuai dengan aliran kode $ customer -> getFirstname () juga akan berfungsi.
Vivek Khandelwal
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.