Я перепробовал много предложений, но у меня ничего не получается. Я пытаюсь прослушать событие 'checkout_onepage_controller_success_action'
. Я пытаюсь установить статус заказа на «завершить» при оформлении заказа (сейчас я закомментировал эту часть).
Как вы можете видеть ниже (внутри метода execute), я пытаюсь распечатать закажите объект, затем выйдите. Но при тестировании ничего не происходит. Нет распечатки, нет сообщения об ошибке. Ничего ...
Перед тестированием я выполнил следующие команды: 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>
приложение / код / [компания] / [модуль] /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();
}
}