![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-catalog/Controller/Product/Compare/ |
<?php /** * * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Controller\Product\Compare; use Magento\Catalog\Model\Product\Attribute\Source\Status; use Magento\Catalog\Model\ResourceModel\Product\Compare\Item\Collection; use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface; use Magento\Framework\Exception\NoSuchEntityException; /** * Remove item from compare list action. */ class Remove extends \Magento\Catalog\Controller\Product\Compare implements HttpPostActionInterface { /** * Remove item from compare list. * * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @return \Magento\Framework\Controller\ResultInterface */ public function execute() { $productId = (int)$this->getRequest()->getParam('product'); if ($this->_formKeyValidator->validate($this->getRequest()) && $productId) { $storeId = $this->_storeManager->getStore()->getId(); try { /** @var \Magento\Catalog\Model\Product $product */ $product = $this->productRepository->getById($productId, false, $storeId); } catch (NoSuchEntityException $e) { $product = null; } if ($product && (int)$product->getStatus() !== Status::STATUS_DISABLED) { /** @var $item \Magento\Catalog\Model\Product\Compare\Item */ $item = $this->_compareItemFactory->create(); if ($this->_customerSession->isLoggedIn()) { $item->setCustomerId($this->_customerSession->getCustomerId()); } elseif ($this->_customerId) { $item->setCustomerId($this->_customerId); } else { $item->addVisitorId($this->_customerVisitor->getId()); } $item->loadByProduct($product); /** @var $helper \Magento\Catalog\Helper\Product\Compare */ $helper = $this->_objectManager->get(\Magento\Catalog\Helper\Product\Compare::class); if ($item->getId()) { $item->delete(); $productName = $this->_objectManager->get(\Magento\Framework\Escaper::class) ->escapeHtml($product->getName()); $this->messageManager->addSuccessMessage( __('You removed product %1 from the comparison list.', $productName) ); $this->_eventManager->dispatch( 'catalog_product_compare_remove_product', ['product' => $item] ); $helper->calculate(); } } } if (!$this->getRequest()->getParam('isAjax', false)) { $resultRedirect = $this->resultRedirectFactory->create(); return $resultRedirect->setRefererOrBaseUrl(); } } }