【问题标题】:Magento 2 checkout_onepage_controller_success_action event not firedMagento 2 checkout_onepage_controller_success_action 事件未触发
【发布时间】:2020-12-29 18:37:59
【问题描述】:

我正在使用 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。所以我无法理解我的事件是否被触发。

我做错了什么?

【问题讨论】:

  • 在观察者文件中添加记录器,这样您就可以跟踪您的事件是否有效

标签: php events observers magento-2.0


【解决方案1】:

您必须正确遵循模块目录结构。 看: 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

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多