Magento 2 - 在列表视图中获取产品详细信息使用插件添加自定义块
Magento 2 - Get product details in list view adding custom block using plugin
我试图使用插件系统来修改列出的每个产品的块。
我是这样设置的:
Vendor/Module/etc/frontend/di.xml
<type name="Magento\Catalog\Block\Product\AbstractProduct">
<plugin name="vendor.module.category.products.list" type="Vendor\Module\Plugin\Block\Product\AbstractProduct" />
</type>
Vendor/Module/Plugin/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
中提取产品详细信息。
有人知道该怎么做吗?提前谢谢你
你需要使用 around 插件而不是像这样的 after 插件,
<?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>';
}
}
我试图使用插件系统来修改列出的每个产品的块。
我是这样设置的:
Vendor/Module/etc/frontend/di.xml
<type name="Magento\Catalog\Block\Product\AbstractProduct">
<plugin name="vendor.module.category.products.list" type="Vendor\Module\Plugin\Block\Product\AbstractProduct" />
</type>
Vendor/Module/Plugin/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
中提取产品详细信息。
有人知道该怎么做吗?提前谢谢你
你需要使用 around 插件而不是像这样的 after 插件,
<?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>';
}
}