orderPlace = $orderPlace; $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class); } /** * @inheritdoc * * @throws LocalizedException */ public function execute() { $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); $agreement = array_keys($this->getRequest()->getPostValue('agreement', [])); $quote = $this->checkoutSession->getQuote(); try { $this->validateQuote($quote); $this->orderPlace->execute($quote, $agreement); /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */ return $resultRedirect->setPath('checkout/onepage/success', ['_secure' => true]); } catch (\Exception $e) { $this->logger->critical($e); $this->messageManager->addExceptionMessage( $e, 'The order #' . $quote->getReservedOrderId() . ' cannot be processed.' ); } return $resultRedirect->setPath('checkout/cart', ['_secure' => true]); } }