qva*_*asz 2 php events module magento magento2
我正在尝试为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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
app / code / Ndac / Orderinfo / registration.php
<?php \Magento\Framework\Component\ComponentRegistrar::register(\Magento\Framework\Component\ComponentRegistrar::MODULE,"Orderinfo", __DIR__);
Run Code Online (Sandbox Code Playgroud)
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);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我运行以下命令:bin/magento setup:upgrade模块在仪表板上显示并启用,但下订单后test.txt仍然为空。
文件命名存在问题。
app/code/Ndac/Orderinfo/etc/event.xml
Run Code Online (Sandbox Code Playgroud)
这必须是:
app/code/Ndac/Orderinfo/etc/events.xml
Run Code Online (Sandbox Code Playgroud)
它必须是events.xml。而且,如果此事件无效,请尝试使用该checkout_onepage_controller_success_action事件。
现在运行升级命令并清除缓存。
| 归档时间: |
|
| 查看次数: |
2541 次 |
| 最近记录: |