![]() 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/cartforge.co/vendor/magento/module-checkout/Block/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Checkout\Block; use Magento\Customer\Model\Context; use Magento\Framework\Phrase; /** * Shopping cart block * * @api * @since 100.0.2 */ class Cart extends \Magento\Checkout\Block\Cart\AbstractCart { /** * @var \Magento\Catalog\Model\ResourceModel\Url */ protected $_catalogUrlBuilder; /** * @var \Magento\Framework\App\Http\Context */ protected $httpContext; /** * @var \Magento\Checkout\Helper\Cart */ protected $_cartHelper; /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Checkout\Model\Session $checkoutSession * @param \Magento\Catalog\Model\ResourceModel\Url $catalogUrlBuilder * @param \Magento\Checkout\Helper\Cart $cartHelper * @param \Magento\Framework\App\Http\Context $httpContext * @param array $data * @codeCoverageIgnore */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Customer\Model\Session $customerSession, \Magento\Checkout\Model\Session $checkoutSession, \Magento\Catalog\Model\ResourceModel\Url $catalogUrlBuilder, \Magento\Checkout\Helper\Cart $cartHelper, \Magento\Framework\App\Http\Context $httpContext, array $data = [] ) { $this->_cartHelper = $cartHelper; $this->_catalogUrlBuilder = $catalogUrlBuilder; parent::__construct($context, $customerSession, $checkoutSession, $data); $this->_isScopePrivate = true; $this->httpContext = $httpContext; } /** * Prepare Quote Item Product URLs * * @codeCoverageIgnore * @return void */ protected function _construct() { parent::_construct(); $this->prepareItemUrls(); } /** * Prepare cart items URLs * * @return void * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function prepareItemUrls() { $products = []; /* @var $item \Magento\Quote\Model\Quote\Item */ foreach ($this->getItems() as $item) { $product = $item->getProduct(); $option = $item->getOptionByCode('product_type'); if ($option) { $product = $option->getProduct(); } if ($item->getStoreId() != $this->_storeManager->getStore()->getId() && !$item->getRedirectUrl() && !$product->isVisibleInSiteVisibility() ) { $products[$product->getId()] = $item->getStoreId(); } } if ($products) { $products = $this->_catalogUrlBuilder->getRewriteByProductStore($products); foreach ($this->getItems() as $item) { $product = $item->getProduct(); $option = $item->getOptionByCode('product_type'); if ($option) { $product = $option->getProduct(); } if (isset($products[$product->getId()])) { $object = new \Magento\Framework\DataObject($products[$product->getId()]); $item->getProduct()->setUrlDataObject($object); } } } } /** * Check quote for error * * @codeCoverageIgnore * @return bool */ public function hasError() { return $this->getQuote()->getHasError(); } /** * Get Items Summary Qty * * @codeCoverageIgnore * @return int */ public function getItemsSummaryQty() { return $this->getQuote()->getItemsSummaryQty(); } /** * Check if Wishlist Active * * @codeCoverageIgnore * @return bool */ public function isWishlistActive() { $isActive = $this->_getData('is_wishlist_active'); if ($isActive === null) { $isActive = $this->_scopeConfig->getValue( 'wishlist/general/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE ) && $this->httpContext->getValue( Context::CONTEXT_AUTH ); $this->setIsWishlistActive($isActive); } return $isActive; } /** * Get Checkout Url * * @codeCoverageIgnore * @return string */ public function getCheckoutUrl() { return $this->getUrl('checkout', ['_secure' => true]); } /** * Get Continue Shopping Url * * @return string */ public function getContinueShoppingUrl() { $url = $this->getData('continue_shopping_url'); if ($url === null) { $url = $this->_checkoutSession->getContinueShoppingUrl(true); if (!$url) { $url = $this->_urlBuilder->getUrl(); } $this->setData('continue_shopping_url', $url); } return $url; } /** * Check if quote is virtual * * @return bool * @codeCoverageIgnore * @SuppressWarnings(PHPMD.BooleanGetMethodName) */ public function getIsVirtual() { return $this->_cartHelper->getIsVirtualQuote(); } /** * Return list of available checkout methods * * @param string $alias Container block alias in layout * @return array */ public function getMethods($alias) { $childName = $this->getLayout()->getChildName($this->getNameInLayout(), $alias); if ($childName) { return $this->getLayout()->getChildNames($childName); } return []; } /** * Return HTML of checkout method (link, button etc.) * * @param string $name Block name in layout * @return string * @throws \Magento\Framework\Exception\LocalizedException */ public function getMethodHtml($name) { $block = $this->getLayout()->getBlock($name); if (!$block) { throw new \Magento\Framework\Exception\LocalizedException( new Phrase( $this->escapeHtml( __('Invalid method: %1', $name) ) ) ); } return $block->toHtml(); } /** * Return customer quote items * * @return array */ public function getItems() { if ($this->getCustomItems()) { return $this->getCustomItems(); } return parent::getItems(); } /** * Get Item Count * * @codeCoverageIgnore * @return int */ public function getItemsCount() { return $this->getQuote()->getItemsCount(); } /** * Render pagination HTML * * @return string * @since 100.1.7 */ public function getPagerHtml() { return $this->getChildHtml('pager'); } }