【问题标题】:sales_order_place_after not working magento 2sales_order_place_after 不工作 magento 2
【发布时间】:2016-12-18 06:57:18
【问题描述】:

我正在尝试在 magento 2 中收听此事件 sales_order_place_after ,但是在下订单后单击什么也没有发生(在收听另一个事件(如登录)时,相同的观察者工作)。 知道发生了什么吗? 谢谢。

【问题讨论】:

  • 你能补充一点上下文吗?
  • 现在观察者为这个事件工作,我想检索结帐数据,但是当我 var_dump 观察者时我什么也没得到
  • $order = $observer->getEvent()->getData(); $order_content = json_encode($order);我得到 {"order":{"_eavConfig":{}},"name":"sales_order_place_after"}
  • 你好 hamza ,我也遇到了同样的问题,你能分享一下你做了什么吗?

标签: events magento2 observers


【解决方案1】:

您可以通过在模块 app\code\Vendorname\modulename\etc\frontend\events.xml 中使用 Observer 来做到这一点 -

<event name="checkout_onepage_controller_success_action">
    <observer name="mymodule_controller_success_action" instance="Vendorname\modulename\Observer\MyObserver"  />
</event> 

并在 app\code\Vendorname\modulename\MyObserver.php 文件中添加代码 -

<?php
namespace Vendorname\mudulename\Observer;

use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\App\Request\DataPersistorInterface;
use Magento\Framework\App\ObjectManager;
use Magento\Captcha\Observer\CaptchaStringResolver;

class MyObserver implements ObserverInterface
{
      public function execute(\Magento\Framework\Event\Observer $observer)
    {
     $order = $observer->getEvent()->getOrder();
     echo $orderId = $order->getId();
     $comment = $this->getRequest()->getParam('comment');

     print_r("Catched event succssfully !"); exit;

     echo "Do your Work Here";
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-21
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多