Magento 2 | Страница "Событие для успеха"
Какое правильное событие должно произойти, когда клиент что-то заказал и перенаправляется на страницу успеха. После перенаправления на страницу успеха должно произойти событие.
Заранее спасибо!
3
2 answers
Вы можете использовать следующее событие для страницы успеха.
checkout_onepage_controller_success_action
Чтобы получить идентификатор заказа
public function execute(\Magento\Framework\Event\Observer $observer)
{
$orderIds = $observer->getEvent()->getOrderIds();
$orderId = $orderIds[0];
}
Пожар события в
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Checkout\Controller\Onepage;
class Success extends \Magento\Checkout\Controller\Onepage
{
/**
* Order success action
*
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute()
{
$session = $this->getOnepage()->getCheckout();
if (!$this->_objectManager->get(\Magento\Checkout\Model\Session\SuccessValidator::class)->isValid()) {
return $this->resultRedirectFactory->create()->setPath('checkout/cart');
}
$session->clearQuote();
//@todo: Refactor it to match CQRS
$resultPage = $this->resultPageFactory->create();
$this->_eventManager->dispatch(
'checkout_onepage_controller_success_action',
['order_ids' => [$session->getLastOrderId()]]
);
return $resultPage;
}
}
2
Author: Addify, 2018-08-29 10:21:45
Используйте приведенное ниже событие, которое запускается на странице успеха
checkout_onepage_controller_success_action
Его использование в контроллере ниже
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Checkout\Controller\Onepage;
class Success extends \Magento\Checkout\Controller\Onepage
{
/**
* Order success action
*
* @return \Magento\Framework\Controller\ResultInterface
*/
public function execute()
{
$session = $this->getOnepage()->getCheckout();
if (!$this->_objectManager->get(\Magento\Checkout\Model\Session\SuccessValidator::class)->isValid()) {
return $this->resultRedirectFactory->create()->setPath('checkout/cart');
}
$session->clearQuote();
//@todo: Refactor it to match CQRS
$resultPage = $this->resultPageFactory->create();
$this->_eventManager->dispatch(
'checkout_onepage_controller_success_action',
['order_ids' => [$session->getLastOrderId()]]
);
return $resultPage;
}
}
1
Author: Ansar Husain, 2018-08-29 10:21:45