Наблюдатель событий Magento 2 не работает

Я пытаюсь создать простой наблюдатель событий для моей страницы Magento 2.

Приложение / код / ​​NDAC / OrderInfo / и т.д. / 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 / OrderInfo / и т.д. / 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 / OrderInfo / registration.php

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

Приложение / код / ​​NDAC / OrderInfo / наблюдатель / 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 остается пустым после того, как я размещаю заказ.

2

Решение

Существует проблема с именованием файлов.

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

это должно быть как:

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

Должно быть events.xml, А также, если это событие не работает, попробуйте с checkout_onepage_controller_success_action событие.

Теперь запустите команду обновления и очистите кеш.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector