![]() 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/framework/Pricing/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Pricing; use Magento\Framework\Pricing\Amount\AmountInterface; use Magento\Framework\Pricing\Price\PriceInterface; use Magento\Framework\Pricing\Render\Layout; use Magento\Framework\View\Element\AbstractBlock; use Magento\Framework\View\Element\Template; /** * Base price render * * @method string getPriceRenderHandle() * @api * @since 100.0.2 */ class Render extends AbstractBlock { /**#@+ * Zones where prices displaying can be configured */ public const ZONE_ITEM_VIEW = 'item_view'; public const ZONE_ITEM_LIST = 'item_list'; public const ZONE_ITEM_OPTION = 'item_option'; public const ZONE_SALES = 'sales'; public const ZONE_EMAIL = 'email'; public const ZONE_CART = 'cart'; public const ZONE_DEFAULT = null; /**#@-*/ /** * @var string */ protected $defaultTypeRender = 'default'; /** * @var Layout */ protected $priceLayout; /** * Constructor * * @param Template\Context $context * @param Layout $priceLayout * @param array $data */ public function __construct( Template\Context $context, Layout $priceLayout, array $data = [] ) { $this->priceLayout = $priceLayout; parent::__construct($context, $data); } /** * Prepare layout * * @return $this */ protected function _prepareLayout() { $this->priceLayout->addHandle($this->getPriceRenderHandle()); //phpcs:ignore $this->priceLayout->loadLayout(); return parent::_prepareLayout(); } /** * Render price * * @param string $priceCode * @param SaleableInterface $saleableItem * @param array $arguments * @return string * @throws \InvalidArgumentException * @throws \RuntimeException */ public function render($priceCode, SaleableInterface $saleableItem, array $arguments = []) { $useArguments = array_replace($this->_data, $arguments); /** @var \Magento\Framework\Pricing\Render\RendererPool $rendererPool */ $rendererPool = $this->priceLayout->getBlock('render.product.prices'); if (!$rendererPool) { throw new \RuntimeException('Wrong Price Rendering layout configuration. Factory block is missed'); } // obtain concrete Price Render $priceRender = $rendererPool->createPriceRender($priceCode, $saleableItem, $useArguments); return $priceRender->toHtml(); } /** * Render price amount * * @param AmountInterface $amount * @param PriceInterface $price * @param SaleableInterface $saleableItem * @param array $arguments * @return string * @throws \RuntimeException */ public function renderAmount( AmountInterface $amount, PriceInterface $price, SaleableInterface $saleableItem = null, array $arguments = [] ) { $useArguments = array_replace($this->_data, $arguments); /** @var \Magento\Framework\Pricing\Render\RendererPool $rendererPool */ $rendererPool = $this->priceLayout->getBlock('render.product.prices'); if (!$rendererPool) { throw new \RuntimeException('Wrong Price Rendering layout configuration. Factory block is missed'); } // obtain concrete Amount Render $amountRender = $rendererPool->createAmountRender($amount, $saleableItem, $price, $useArguments); return $amountRender->toHtml(); } }