imageBuilder = $imageBuilder; $this->priceCurrency = $priceCurrency; $this->_maliciousCode = $maliciousCode; $this->imageProvider = $imageProvider ?: ObjectManager::getInstance()->get(ImageProvider::class); parent::__construct($context, $data); } /** * Filter malicious code before insert content to email * * @param string|array $content * @return string|array */ public function getFilteredContent($content) { return $this->_maliciousCode->filter($content); } /** * Set Store scope * * @param int|string|\Magento\Store\Model\Website|\Magento\Store\Model\Store $store * @return $this */ public function setStore($store) { if ($store instanceof \Magento\Store\Model\Website) { $store = $store->getDefaultStore(); } if (!$store instanceof \Magento\Store\Model\Store) { $store = $this->_storeManager->getStore($store); } $this->_store = $store; return $this; } /** * Retrieve current store object * * @return \Magento\Store\Model\Store */ public function getStore() { if ($this->_store === null) { $this->_store = $this->_storeManager->getStore(); } return $this->_store; } /** * Convert price from default currency to current currency * * @param float $price * @param bool $format Format price to currency format * @param bool $includeContainer Enclose into * @return float|string */ public function formatPrice($price, $format = true, $includeContainer = true) { return $format ? $this->priceCurrency->convertAndFormat($price, $includeContainer) : $this->priceCurrency->convert($price); } /** * Reset product collection * * @return void */ public function reset() { $this->_products = []; } /** * Add product to collection * * @param \Magento\Catalog\Model\Product $product * @return void */ public function addProduct(\Magento\Catalog\Model\Product $product) { $this->_products[$product->getId()] = $product; } /** * Retrieve product collection array * * @return \Magento\Catalog\Model\Product[] */ public function getProducts() { return $this->_products; } /** * Get store url params * * @return array */ protected function _getUrlParams() { return ['_scope' => $this->getStore(), '_scope_to_url' => true]; } /** * @return \Magento\Framework\Pricing\Render */ protected function getPriceRender() { return $this->_layout->createBlock( \Magento\Framework\Pricing\Render::class, '', ['data' => ['price_render_handle' => 'catalog_product_prices']] ); } /** * Return HTML block with tier price * * @param \Magento\Catalog\Model\Product $product * @param string $priceType * @param string $renderZone * @param array $arguments * @return string */ public function getProductPriceHtml( \Magento\Catalog\Model\Product $product, $priceType, $renderZone = \Magento\Framework\Pricing\Render::ZONE_ITEM_LIST, array $arguments = [] ) { if (!isset($arguments['zone'])) { $arguments['zone'] = $renderZone; } /** @var \Magento\Framework\Pricing\Render $priceRender */ $priceRender = $this->getPriceRender(); $price = ''; if ($priceRender) { $price = $priceRender->render( $priceType, $product, $arguments ); } return $price; } /** * Retrieve product image. * * @param \Magento\Catalog\Model\Product $product * @param string $imageId * @param array $attributes * @return \Magento\Catalog\Block\Product\Image */ public function getImage($product, $imageId, $attributes = []) { return $this->imageProvider->getImage($product, $imageId, $attributes); } }