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.