คำถามติดแท็ก event-observer

เหตุการณ์ / ผู้สังเกตการณ์ใช้เพื่อทำงานกับ Magento แบบไดนามิกโดยไม่ต้องเปลี่ยนรหัสหลัก

3
ฉันจะเปลี่ยนสตริงที่ส่งผ่านเหตุการณ์ได้อย่างไร
ในฟังก์ชั่นผู้สังเกตการณ์ของฉันฉันได้รับตัวแปรที่ส่งผ่านโดยเหตุการณ์เช่นนั้น: public function observerFunc(Varien_Event_Observer $observer) { $sth = $observer->getEvent()->getSth(); } ถ้าsthเป็นวัตถุฉันสามารถปรับเปลี่ยนได้โดยการเรียกวิธีการกับมัน แต่ฉันจะแก้ไขได้sthอย่างไรถ้ามันเป็นสตริงธรรมดา? ฉันลองทำสิ่งต่อไปนี้โดยไม่ประสบความสำเร็จ: public function observerFunc(Varien_Event_Observer $observer) { $sth = $observer->getEvent()->getSth(); $observer->getEvent()->setSth('test'); $observer->setSth('test'); } ฉันเพิ่งเรียนรู้ว่าบางเหตุการณ์ผ่านวัตถุการขนส่งซึ่งสามารถเปลี่ยนสตริงได้ (ขอบคุณอเล็กซ์ ) แต่เหตุการณ์page_block_html_topmenu_gethtml_afterไม่ได้ แล้วฉันจะทำอย่างไรดี กิจกรรมที่เป็นปัญหาถูกส่งแบบนี้และฉันต้องการเปลี่ยน $ html: $html = $this->_getHtml($this->_menu, $childrenWrapClass); Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array( 'menu' => $this->_menu, 'html' => $html ));

3
Magento 2: ส่วนขยายใดให้เลือกใช้
เราสามารถขยายคอนโทรลเลอร์ได้สองวิธี: การใช้การกำหนดค่าตามความชอบและการใช้ปลั๊กอิน แต่ฉันไม่เข้าใจว่าอันไหนดีและข้อดี / ข้อเสียของการตั้งค่า vs ปลั๊กอิน <preference for="Magento\Checkout\Controller\Index\Index" type="mymodule\Helloworld\Controller\Index\Index" /> <type name="Magento\Catalog\Model\Product"> <plugin name="getname-test-module" type="mymodule\Helloworld\Model\Plugin\Product" sortOrder="10"/> </type>

3
การสกัดกั้นใน magento2 แทนที่ผู้สังเกตการณ์ใน magento1 หรือไม่
การสกัดกั้นตั้งใจที่จะเป็นวิธีที่ต้องการเมื่อจัดการกับการเปลี่ยนพฤติกรรมของวิธีการดั้งเดิมใน Magento2 ในฐานะผู้สังเกตการณ์ใน magento1 หรือไม่? https://wiki.magento.com/display/MAGE2DOC/Using+Interception

3
ตรวจสอบว่าลูกค้าใหม่ใน customer_save_after
ฉันมีกิจกรรมที่ฉันต้องการดำเนินการเมื่อลูกค้าลงทะเบียนหรือบันทึกรายละเอียดของพวกเขา สำหรับสิ่งนี้ฉันใช้สองเหตุการณ์: customer_register_success และ customer_save_after ปัญหาที่ฉันมีคือฉันลงเอยด้วยการทำงานสองครั้งเพราะ customer_save_after จะถูกเรียกใช้ในการดำเนินการเดียวกันcustomer_register_successเสมอ ฉันได้พยายามตรวจสอบว่าลูกค้าเป็นของใหม่โดยการตรวจสอบข้อมูลต้นฉบับและเรียกว่าisObjectNewแต่ข้อมูลส่งคืนทั้งที่บอกเป็นนัยถึงวัตถุนั้นจริงแล้วไม่ใช่ของใหม่ ฉันจะตรวจสอบเพื่อดูว่าลูกค้าเพิ่งลงทะเบียนในเหตุการณ์ customer_save_after สั้น ๆ ของการตั้งค่าบางอย่างในรีจิสทรีในcustomer_register_successเหตุการณ์ได้อย่างไร

4
Magento Observer Events - ลำดับของการปฏิบัติการ
ฉันพยายามฉีดฟังก์ชันการทำงานลงในcatalog_model_product_duplicateเหตุการณ์ ส่วนหนึ่งของโมดูลนี้คือเพื่อให้แน่ใจว่าสถานะสต็อกของผลิตภัณฑ์ที่ซ้ำกันซ้ำซ้อน ปัจจุบันมันไม่ได้เป็น ฉันเห็นว่าCatalogInventoryสังเกตเหตุการณ์นี้และตั้งค่าข้อมูลหุ้นมาตรฐาน ฉันสามารถรับประกันได้ว่ากิจกรรมหลักจะได้รับการแก้ไขก่อนที่คนในพื้นที่ของฉัน มีคำสั่งของการดำเนินการที่นี่ที่ฉันสามารถพึ่งพาได้หรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.