问题描述
我正在使用Magento 2平台。 我已经创建了自定义模式名称MerchantTrack。 写入events.xml(MagentoSite \ app \ code \ Magento \ MerchantTrack \ Checkout \ etc \ frontend \ events.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="checkout_onepage_controller_success_action ">
<observer name="merchanttrack_checkout_onepage_controller_success_action" instance="Magento\MerchantTrack\Checkout\Observer\MyObserver" />
</event>
</config>
在下面写入MyObserver.PHP(MagentoSite \ app \ code \ Magento \ MerchantTrack \ Checkout \ Observer \ MyObserver.PHP)的代码
<?PHP
namespace Magento\MerchantTrack\Checkout\Observer;
use Magento\Framework\Event\ObserverInterface;
class MyObserver implements ObserverInterface {
public function execute(\Magento\Framework\Event\Observer $observer)
{
$orderIds = $observer->getEvent()->getorderIds();
echo $orderId = $orderIds[0]; exit;
}
}
下订单时,成功进入(/ MagentoSite / checkout / onepage / success /)页面时,我看不到回显到观察者页面的orderid。因此我无法理解我的事件是否被触发。
我在做什么错了?
解决方法
您必须正确遵循模块目录结构。 看到: https://devdocs.magento.com/guides/v2.3/extension-dev-guide/build/module-file-structure.html#module-file-structure
MagentoSite \ app \ code \ Magento \ MerchantTrack \ Checkout \ etc \ frontend \ events.xml
您已经创建了额外的文件夹,即 Magento
您的目录应如下所示。 MagentoSite \ app \ code \ MerchantTrack \ Checkout \ etc \ frontend \ events.xml