Как протестировать или оформить страницу успеха заказа Или как остановить перенаправление страницы успеха в Magento 2
У меня проблема на странице успеха Magento 2, она отображается пустой после успешного размещения заказа. Я пытаюсь отладить его, но проблема заключается в том, что при попытке обновить страницу успеха после изменения кода она очищает текущий сеанс и перенаправляет на домашнюю страницу. Я хочу прекратить перенаправление страницы успеха и остаться на той же странице при обновлении страницы.
У кого-нибудь есть идеи в Magento 2? Пожалуйста, дайте мне знать, если кто-нибудь уже это делает?
4 answers
Вы можете остановить перенаправление страницы успешного оформления заказа после обновления страницы, проверьте код ниже
Vendor/magento/module-checkout/Controller/Onepage/Success.php
Закомментировать Строку Нет : 22
//$session->clearQuote();
Теперь вы можете отладить страницу успешного оформления заказа.
Пожалуйста, откройте Magento\Checkout\Controller\Onepage\Success.php и комментарий под строкой
$session->clearQuote();
Для временных целей.
Вы также можете установить модуль Magepal, который отлично работает без каких-либо изменений кода. Убедитесь, что вы установили его в качестве разработчика требования:
composer require --dev magepal/magento2-preview-checkout-success-page
Вы можете остановить перенаправление страницы успешного оформления заказа после обновления страницы, проверьте код ниже
Vendor/magento/module-checkout/Controller/Onepage/Success.php
Закомментировать Строку Нет : 22 И в Magento 2.3... Строка Нет : 26
//$session->clearQuote();
Пример:-
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(); ***** COMMENT THIS LINE *****
//@todo: Refactor it to match CQRS
$resultPage = $this->resultPageFactory->create();
$this->_eventManager->dispatch(
'checkout_onepage_controller_success_action',
[
'order_ids' => [$session->getLastOrderId()],
'order' => $session->getLastRealOrder()
]
);
return $resultPage;
}
Теперь вы можете отладить страницу успешного оформления заказа.