كيفية ربط الإجراء بعد نجاح تسجيل دخول العميل باستخدام Magento؟

magento.stackexchange https://magento.stackexchange.com//questions/58947

سؤال

أنا أستخدم ماجنتو 1.4.1.1.بعد نجاح تسجيل الخروج، يتم توجيه العميل إلى "logout.phtml" أولاً ثم إلى "الصفحة الرئيسية" لاحقًا.

هل هناك أي طريقة يمكنني من خلالها تشغيل Magento لأكواد "php" بعد نجاح "تسجيل الدخول"؟

من فضلك لا تتردد في تقديم نماذج التعليمات البرمجية لأنني جديد في Magento.

/var/www/app/etc/modules/Lpf_ModuleCookie.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Lpf_ModuleCookie>
            <active>true</active>
            <codePool>local</codePool>
        </Lpf_ModuleCookie>
    </modules>
</config>

/var/www/app/code/local/Lpf/ModuleCookie/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Lpf_ModuleCookie>
            <version>0.1</version>
        </Lpf_ModuleCookie>
    </modules>
    <events>
        <customer_login>
            <observers>
                <customer_login>
                    <type>model</type>
                    <class>ModuleCookie/observer</class>
                    <method>customerLogin</method>
                </customer_login>
            </observers>
        </customer_login>
    </events>
</config>

/var/www/app/code/local/Lpf/Observer.php

<?php
class Lpf_ModuleCookie_Model_Observer
{
     /**
      * Run couple of 'php' codes after customer logs in
      *
      * @param Varien_Event_Observer $observer
      */
     public function customerLogin($observer)
     {
         Mage::log(__METHOD__ . '() Hello!'); // Remove afterwards. Check your var/log/system.log to see if came to this point
         $customer = $observer->getCustomer();
         // "run couple of 'php' codes"
     }

}
?>
هل كانت مفيدة؟

المحلول

على ال Mage_Customer_Model_Session طريقة النموذج setCustomerAsLoggedIn() حدث customer_login يتم إرسالها.أعتقد أنك بحاجة إلى الانضمام إلى هذا الحدث.يمكنك القيام بذلك على النحو التالي.

أضف الحدث إلى الوحدة النمطية الخاصة بك config.xml الملف (app/code/local/Lpf/ModuleCookie/etc/config.xml):

<?xml version="1.0"?>
<config>
    <modules>
        <Lpf_ModuleCookie>
            <version>0.1</version>
        </Lpf_ModuleCookie>
    </modules>
    <global>
        <models>
            <lpf_modulecookie>
                <class>Lpf_ModuleCookie_Model</class>
            </lpf_modulecookie>
        </models>
    </global>
    <frontend>
        <events>
            <customer_login>
                <observers>
                    <lpf_modulecookie_customer_login>
                        <type>model</type>
                        <class>lpf_modulecookie/observer</class>
                        <method>customerLogin</method>
                    </lpf_modulecookie_customer_login>
                </observers>
            </customer_login>
        </events>
    </frontend>
</config>

الآن قم بإنشاء نموذج Lpf_ModuleCookie_Model_Observer (app/code/local/Lpf/ModuleCookie/Model/Observer.php).أضف customerLogin() طريقة للفئة:

class Lpf_ModuleCookie_Model_Observer
{

     /**
      * Run couple of 'php' codes after customer logs in
      *
      * @param Varien_Event_Observer $observer
      */
     public function customerLogin($observer)
     {
         Mage::log(__METHOD__ . '() Hello!'); // Remove afterwards. Check your var/log/system.log to see if came to this point
         $customer = $observer->getCustomer();
         // "run couple of 'php' codes"
     }

}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top