Magento 2 - Получить информацию о продукте в виде списка, добавив пользовательский блок с помощью плагина
Я пытался использовать систему плагинов для изменения блока каждого продукта в списке.
Я смог настроить его таким образом:
Производитель / модуль / и т.д. / интерфейс /di.xml
<type name="Magento\Catalog\Block\Product\AbstractProduct">
<plugin name="vendor.module.category.products.list" type="Vendor\Module\Plugin\Block\Product\AbstractProduct" />
</type>
Производитель / модуль / плагин /Block/Product/AbstractProduct.php
<?php
namespace Vendor\Module\Plugin\Block\Product;
class AbstractProduct
{
public function afterGetProductDetailsHtml(
\Magento\Catalog\Block\Product\AbstractProduct $subject,
$result
) {
// Here is where I want to pull product details like SKU
// I also want to pull my custom helper method here
return '<b>rendered additional html element</b>';
}
}
Проблема в том, что я не могу вытащить детали продукта в afterGetProductDetailsHtml
, Кто-нибудь знает, как это сделать? заранее спасибо
1 ответ
Решение
Вам нужно использовать плагин Arround вместо плагинов, как это,
<?php
namespace Vendor\Module\Plugin\Block\Product;
class AbstractProduct
{
public function aroundGetProductDetailsHtml(
\Magento\Catalog\Block\Product\AbstractProduct $subject,
callable $proceed)
) {
// Here is where I want to pull product details like SKU
// I also want to pull my custom helper method here
return '<b>rendered additional html element</b>';
}
}