簡體   English   中英

Magento 2事件觀察器不起作用

[英]Magento 2 event observer not working

我正在嘗試為Magento 2頁面創建一個簡單的事件觀察器。

應用程序/代碼/ NDAC /訂單信息的/ etc / event.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">

   <event name="sales_order_place_after">
       <observer name="OrderInfo" instance="Ndac\Orderinfo\Observer\OrderInfo" />
   </event>

</config>

應用程序/代碼/ NDAC /訂單信息的/ etc / module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Orderinfo" setup_version="1.0.0"></module>
</config>

應用程序/代碼/ NDAC /訂單信息/和registration.php

<?php \Magento\Framework\Component\ComponentRegistrar::register(\Magento\Framework\Component\ComponentRegistrar::MODULE,"Orderinfo", __DIR__);

應用程序/代碼/ NDAC /訂單信息/觀測/ OrderInfo.php

<?php
namespace Ndac\Orderinfo\Observer;

use Magento\Sales\Model\Order;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;

class OrderInfo implements ObserverInterface {
    // Tried it with constructor
    public __construct() {
        $file = fopen("/mnt/data/magento/test.txt", "w") or die ("die");
        fwrite($file, "test");
        fclose($file);
    }

    public function execute(Observer $observer)
    {
        $file = fopen("/mnt/data/magento/test.txt", "w") or die ("die")
        fwrite($file, "test");
        fclose($file);
    }
}
?>

我運行以下命令: bin/magento setup:upgrade ,該模塊顯示在儀表板上,並已啟用,但下訂單后test.txt仍然為空。

文件命名存在問題。

app/code/Ndac/Orderinfo/etc/event.xml

這必須是:

app/code/Ndac/Orderinfo/etc/events.xml

它必須是events.xml 另外,如果此事件不起作用,請嘗試使用checkout_onepage_controller_success_action事件。

現在運行升級命令並清除緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM