![]() 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/Helper/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Checkout\Helper; /** * Shopping cart helper * * @author Magento Core Team <[email protected]> */ class Cart extends \Magento\Framework\Url\Helper\Data { /** * Path to controller to delete item from cart */ const DELETE_URL = 'checkout/cart/delete'; /** * Path for redirect to cart */ const XML_PATH_REDIRECT_TO_CART = 'checkout/cart/redirect_to_cart'; /** * Maximal coupon code length according to database table definitions (longer codes are truncated) */ const COUPON_CODE_MAX_LENGTH = 255; /** * @var \Magento\Checkout\Model\Cart */ protected $_checkoutCart; /** * @var \Magento\Checkout\Model\Session */ protected $_checkoutSession; /** * @param \Magento\Framework\App\Helper\Context $context * @param \Magento\Checkout\Model\Cart $checkoutCart * @param \Magento\Checkout\Model\Session $checkoutSession * @codeCoverageIgnore */ public function __construct( \Magento\Framework\App\Helper\Context $context, \Magento\Checkout\Model\Cart $checkoutCart, \Magento\Checkout\Model\Session $checkoutSession ) { $this->_checkoutCart = $checkoutCart; $this->_checkoutSession = $checkoutSession; parent::__construct($context); } /** * Retrieve cart instance * * @return \Magento\Checkout\Model\Cart * @codeCoverageIgnore */ public function getCart() { return $this->_checkoutCart; } /** * Retrieve url for add product to cart * * @param \Magento\Catalog\Model\Product $product * @param array $additional * @return string */ public function getAddUrl($product, $additional = []) { if (isset($additional['useUencPlaceholder'])) { $uenc = "%uenc%"; unset($additional['useUencPlaceholder']); } else { $uenc = $this->urlEncoder->encode($this->_urlBuilder->getCurrentUrl()); } $urlParamName = \Magento\Framework\App\ActionInterface::PARAM_NAME_URL_ENCODED; $routeParams = [ $urlParamName => $uenc, 'product' => $product->getEntityId(), '_secure' => $this->_getRequest()->isSecure() ]; if (!empty($additional)) { $routeParams = array_merge($routeParams, $additional); } if ($product->hasUrlDataObject()) { $routeParams['_scope'] = $product->getUrlDataObject()->getStoreId(); $routeParams['_scope_to_url'] = true; } if ($this->_getRequest()->getRouteName() == 'checkout' && $this->_getRequest()->getControllerName() == 'cart' ) { $routeParams['in_cart'] = 1; } return $this->_getUrl('checkout/cart/add', $routeParams); } /** * Retrieve url for remove product from cart * * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item * @return string */ public function getRemoveUrl($item) { $params = [ 'id' => $item->getId(), \Magento\Framework\App\ActionInterface::PARAM_NAME_BASE64_URL => $this->getCurrentBase64Url(), ]; return $this->_getUrl(self::DELETE_URL, $params); } /** * Get post parameters for delete from cart * * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item * @return string */ public function getDeletePostJson($item) { $url = $this->_getUrl(self::DELETE_URL); $data = ['id' => $item->getId()]; if (!$this->_request->isAjax()) { $data[\Magento\Framework\App\ActionInterface::PARAM_NAME_URL_ENCODED] = $this->getCurrentBase64Url(); } return json_encode(['action' => $url, 'data' => $data]); } /** * Retrieve shopping cart url * * @return string * @codeCoverageIgnore */ public function getCartUrl() { return $this->_getUrl('checkout/cart'); } /** * Retrieve current quote instance * * @return \Magento\Quote\Model\Quote * @codeCoverageIgnore */ public function getQuote() { return $this->_checkoutSession->getQuote(); } /** * Get shopping cart items count * * @return int * @codeCoverageIgnore */ public function getItemsCount() { return $this->getCart()->getItemsCount(); } /** * Get shopping cart summary qty * * @return int|float * @codeCoverageIgnore */ public function getItemsQty() { return $this->getCart()->getItemsQty(); } /** * Get shopping cart items summary (include config settings) * * @return int|float * @codeCoverageIgnore */ public function getSummaryCount() { return $this->getCart()->getSummaryQty(); } /** * Check quote for virtual products only * * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) * @codeCoverageIgnore */ public function getIsVirtualQuote() { return $this->getQuote()->isVirtual(); } /** * Checks if customer should be redirected to shopping cart after adding a product * * @param int|string|\Magento\Store\Model\Store $store * @return bool * @SuppressWarnings(PHPMD.BooleanGetMethodName) * @codeCoverageIgnore */ public function getShouldRedirectToCart($store = null) { return $this->scopeConfig->isSetFlag( self::XML_PATH_REDIRECT_TO_CART, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $store ); } }