123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Checkout\Controller\Cart;
- use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
- /**
- * Action Delete.
- *
- * Deletes item from cart.
- */
- class Delete extends \Magento\Checkout\Controller\Cart implements HttpPostActionInterface
- {
- /**
- * Delete shopping cart item action
- *
- * @return \Magento\Framework\Controller\Result\Redirect
- */
- public function execute()
- {
- if (!$this->_formKeyValidator->validate($this->getRequest())) {
- return $this->resultRedirectFactory->create()->setPath('*/*/');
- }
- $id = (int)$this->getRequest()->getParam('id');
- if ($id) {
- try {
- $this->cart->removeItem($id);
- // We should set Totals to be recollected once more because of Cart model as usually is loading
- // before action executing and in case when triggerRecollect setted as true recollecting will
- // executed and the flag will be true already.
- $this->cart->getQuote()->setTotalsCollectedFlag(false);
- $this->cart->save();
- } catch (\Exception $e) {
- $this->messageManager->addErrorMessage(__('We can\'t remove the item.'));
- $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
- }
- }
- $defaultUrl = $this->_objectManager->create(\Magento\Framework\UrlInterface::class)->getUrl('*/*');
- return $this->resultRedirectFactory->create()->setUrl($this->_redirect->getRedirectUrl($defaultUrl));
- }
- }
|