Magento 2 checkout_onepage_controller_success_action事件未触发

问题描述

我正在使用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