gpt4 book ai didi

php - Magento 2 事件观察器不工作

转载 作者:行者123 更新时间:2023-12-02 15:07:47 26 4
gpt4 key购买 nike

我正在尝试为我的 Magento 2 页面创建一个简单的事件观察器。

app/code/Ndac/Orderinfo/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>

app/code/Ndac/Orderinfo/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>

app/code/Ndac/Orderinfo/registration.php

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

app/code/Ndac/Orderinfo/Observer/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 事件。

现在运行升级命令并清除缓存。

关于php - Magento 2 事件观察器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46152671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com