ฉันจะรับข้อมูลลูกค้าจากผู้สังเกตการณ์หลังจากลงชื่อเข้าใช้สำเร็จได้อย่างไร


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 จะคืนค่าว่าง
2656802

ดูการแก้ไข ไชโย
philwinkle

เฮ้ .. ฉันใหม่มากใน magento ฉันต้องการทำสิ่งเดียวกันคุณสามารถบอกฉันได้ไหมว่าฉันต้องวางรหัสนี้ไว้ในโครงสร้างไฟล์หรือไม่
มีความสุข

ฉันต้องการก่อนที่จะเข้าสู่ระบบการกระทำเมื่อผู้ใช้เข้าสู่ระบบรหัสผ่านไม่ถูกต้อง
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

ใช่มันไม่จำเป็น แต่ฉันแก้ไขตามกระแสรหัสลูกค้า $ -> getFirstname () ก็จะทำงานเช่นกัน
Vivek Khandelwal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.