![]() 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-checkout/Controller/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Checkout\Controller; use Magento\Catalog\Controller\Product\View\ViewInterface; use Magento\Checkout\Model\Cart as CustomerCart; use Magento\Checkout\Model\Session; use Magento\Framework\App\Action\Context; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\Controller\Result\Redirect; use Magento\Framework\Data\Form\FormKey\Validator; use Magento\Framework\UrlInterface; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\Store; use Magento\Store\Model\StoreManagerInterface; /** * Shopping cart controller * * @api */ abstract class Cart extends \Magento\Framework\App\Action\Action implements ViewInterface { /** * @var ScopeConfigInterface */ protected $_scopeConfig; /** * @var Session */ protected $_checkoutSession; /** * @var StoreManagerInterface */ protected $_storeManager; /** * @var Validator */ protected $_formKeyValidator; /** * @var CustomerCart */ protected $cart; /** * @param Context $context * @param ScopeConfigInterface $scopeConfig * @param Session $checkoutSession * @param StoreManagerInterface $storeManager * @param Validator $formKeyValidator * @param CustomerCart $cart * @codeCoverageIgnore */ public function __construct( Context $context, ScopeConfigInterface $scopeConfig, Session $checkoutSession, StoreManagerInterface $storeManager, Validator $formKeyValidator, CustomerCart $cart ) { $this->_formKeyValidator = $formKeyValidator; $this->_scopeConfig = $scopeConfig; $this->_checkoutSession = $checkoutSession; $this->_storeManager = $storeManager; $this->cart = $cart; parent::__construct($context); } /** * Set back redirect url to response * * @param null|string $backUrl * * @return Redirect */ protected function _goBack($backUrl = null) { $resultRedirect = $this->resultRedirectFactory->create(); if ($backUrl || $backUrl = $this->getBackUrl($this->_redirect->getRefererUrl())) { $resultRedirect->setUrl($backUrl); } return $resultRedirect; } /** * Check if URL corresponds store * * @param string $url * @return bool */ protected function _isInternalUrl($url) { if (strpos($url, 'http') === false) { return false; } /** * Url must start from base secure or base unsecure url */ /** @var $store Store */ $store = $this->_storeManager->getStore(); $unsecure = strpos($url, (string) $store->getBaseUrl()) === 0; $secure = strpos($url, (string) $store->getBaseUrl(UrlInterface::URL_TYPE_LINK, true)) === 0; return $unsecure || $secure; } /** * Get resolved back url * * @param string|null $defaultUrl * @return mixed|null|string */ protected function getBackUrl($defaultUrl = null) { $returnUrl = $this->getRequest()->getParam('return_url'); if ($returnUrl && $this->_isInternalUrl($returnUrl)) { $this->messageManager->getMessages()->clear(); return $returnUrl; } if ($this->shouldRedirectToCart() || $this->getRequest()->getParam('in_cart')) { if ($this->getRequest()->getActionName() == 'add' && !$this->getRequest()->getParam('in_cart')) { $this->_checkoutSession->setContinueShoppingUrl($this->_redirect->getRefererUrl()); } return $this->_url->getUrl('checkout/cart'); } return $defaultUrl; } /** * Is redirect should be performed after the product was added to cart. * * @return bool */ private function shouldRedirectToCart() { return $this->_scopeConfig->isSetFlag( 'checkout/cart/redirect_to_cart', ScopeInterface::SCOPE_STORE ); } }