Php Magento 2-在列表视图中获取产品详细信息,使用插件添加自定义块

Php Magento 2-在列表视图中获取产品详细信息,使用插件添加自定义块,php,magento,magento2,magento2.1,magento2.2,Php,Magento,Magento2,Magento2.1,Magento2.2,我试图使用插件系统来修改列出的每个产品的块 我可以这样设置它: 供应商/Module/etc/frontend/di.xml 供应商/Module/Plugin/Block/Product/AbstractProduct.php <?php namespace Vendor\Module\Plugin\Block\Product; class AbstractProduct { public function afterGetProductDetailsHtml(

我试图使用插件系统来修改列出的每个产品的块

我可以这样设置它:

供应商/Module/etc/frontend/di.xml


供应商/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>';
    }
}  

你需要像这样在插件后的插件instade周围使用

<?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>';
    }
}  

你试过arround插件吗?因为在那个插件里你可以看到产品的细节。我认为它们都是平等的。。。让我试试,谢谢!好的,试着让我知道。@DhirenVasoya成功了!非常感谢。我发布了答案,请接受它,这样它也会帮助社区中的其他人。
<?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>';
    }
}