Ich habe ein Plugin erstellt, um einen Link für jedes Produkt wie folgt hinzuzufügen:
<?php
namespace Vendorname\Modulename\Plugin;
class ProductData
{
protected $urlInterface;
protected $scopeConfig;
public function __construct(
\Magento\Framework\UrlInterface $urlInterface,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
) {
$this->urlInterface = $urlInterface;
$this->scopeConfig = $scopeConfig;
}
public function aroundGetProductDetailsHtml(
\Magento\Catalog\Block\Product\ListProduct $subject,
\Closure $proceed,
\Magento\Catalog\Model\Product $product
)
{
$result = $proceed($product);
return $result . '<a href="#">mydata</a>';
return $result;
}
}
Oben funktioniert gut hinzugefügt mydata Link zu jedem Produkt. Aber es funktioniert nicht auf der Suchseite. Kann mir jemand helfen, mithilfe des Plugins einen Link zum Suchseitenprodukt hinzuzufügen?
di.xml Datei
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Catalog\Block\Product\ListProduct">
<plugin name="my-block"
type="Vendorname\Modulename\Plugin\ProductData"
sortOrder="10"/>
</type>
</config>
di.xml
bitte Ihre Datei posten ?Antworten:
Grundsätzlich verwendet die Suchseite dieselbe Vorlage wie die Produktliste, ABER sie verwendet einen virtuellen Typblock, der die
Magento\Catalog\Block\Product\ListProduct
Klasse verwendet, die Sie einbinden.Hier ist die offizielle Dokumentation verwirrend, weil in der Liste der Plugin-Einschränkungen Folgendes steht:
Das folgende Beispiel wird jedoch gegeben:
Und es heißt:
Wirklich verwirrend hier, was ich versuchen würde, wenn ich wäre, würden Sie immer noch versuchen, den virtuellen Typ durch Aktualisieren Ihres
di.xml
wie folgt zu Plugin :quelle
quelle
füge dies in deine di.xml ein. Es wird auf der Katalogsuchseite angezeigt.
quelle