【发布时间】:2020-06-02 01:10:57
【问题描述】:
我在这里尝试了很多建议,但似乎没有什么对我有用。我正在尝试收听事件'checkout_onepage_controller_success_action'。我正在尝试在结帐时将订单状态设置为“完成”(目前,我已注释掉该部分)。
正如您在下面看到的(在执行方法中),我试图打印出订单对象然后退出。但是在测试时,什么也没有发生。没有打印出来,没有错误信息。没什么...
我在测试前运行了以下命令:
bin/magento setup:upgrade, bin/magento setup:di:compile, bin/magento cache:clean
我还尝试收听事件sales_order_place_after。我也一无所获……
应用程序/代码/[公司]/[模块]/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 instance="[company]\[module]\Observer\CheckoutSuccessObserver" name="checkout_onepage_controller_success_action_observer"/>
</event>
</config>
app/code/[company]/[module]/Observer/CheckoutSuccessObserver.php
<?php
namespace [company]\[module]\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\Event\Observer;
/**
* Class CheckoutSuccessObserver
*
* @package [company]\[module]\Observer
*/
class CheckoutSuccessObserver implements ObserverInterface
{
/**
* Execute observer
*
* @param \Magento\Framework\Event\Observer $observer
* @return void
*/
public function execute(Observer $observer)
{
$order = $observer->getEvent()->getOrder();
print_r($order); exit;
//$order = $observer->getEvent()->getOrder();
//$order_id = $order->getIncrementId();
//$order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
//$order->setData('state', "complete");
//$order->setStatus("complete");
//$history = $order->addStatusHistoryComment('Order was set to complete by our automation tool.', false);
//$history->setIsCustomerNotified(null);
//$order->save();
}
}
【问题讨论】:
-
你的模块启用了吗?