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

12

Saya telah membuat modul khusus di mana saya memiliki file pengamat. Saya perlu menampilkan semua informasi tentang pengguna yang masuk.

pengguna2656802
sumber

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();
    }
}
Philwinkle
sumber
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'];
    }
Deepak Mallah
sumber
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