29 lines
1.2 KiB
PHP
29 lines
1.2 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Esun\EmailPreview\Block\Order\Email\Items;
|
|
|
|
use Magento\Catalog\Helper\Image;
|
|
use Magento\Catalog\Api\ProductRepositoryInterface;
|
|
|
|
class DefaultItems extends \Magento\Sales\Block\Order\Email\Items\Order\DefaultOrder
|
|
{
|
|
public function __construct(\Magento\Framework\View\Element\Template\Context $context, private readonly Image $imageHelper, private readonly ProductRepositoryInterface $products, array $data = []) { parent::__construct($context, $data); }
|
|
public function getProductImageUrl(): string
|
|
{
|
|
$item = $this->getItem();
|
|
try {
|
|
$product = $item->getProductId()
|
|
? $this->products->getById((int)$item->getProductId(), false, (int)$item->getStoreId())
|
|
: $this->products->get((string)$item->getSku(), false, (int)$item->getStoreId());
|
|
$image = (string)($product->getThumbnail() ?: $product->getSmallImage() ?: $product->getImage());
|
|
if ($image === '' || $image === 'no_selection') {
|
|
return '';
|
|
}
|
|
return (string)$this->imageHelper->init($product, 'product_thumbnail_image')->resize(96, 96)->getUrl();
|
|
} catch (\Throwable) {
|
|
return '';
|
|
}
|
|
}
|
|
}
|