Ich möchte final_price.phtml überschreiben. Ich habe versucht, in meinem Modul zu folgen, aber es funktioniert nicht. Ich habe app / code / MyVendor / MyModule / view / frontend / layout / catalog_product_prices.xml erstellt
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/layout_generic.xsd">
<referenceBlock name="render.product.prices">
<arguments>
<argument name="default" xsi:type="array">
<item name="prices" xsi:type="array">
<item name="final_price" xsi:type="array">
<!-- item name="render_class" xsi:type="string">Magento\Catalog\Pricing\Render\FinalPriceBox</item> -->
<item name="render_template" xsi:type="string">MyVendor_MyModule::product/price/final_price.phtml</item>
</item>
</item>
</argument>
</arguments>
</referenceBlock>
</layout>
Außerdem habe ich auch eine Vorlagendatei erstellt. unter app / code / MyVendor / MyModule / view / frontend / templates / product / price / final_price.phtml Und in final_price.phtml habe ich meinen benutzerdefinierten Code geschrieben.
Aber es funktioniert nicht. Kann mir jemand sagen, was in diesem Code fehlt?
Antworten:
Sie können eine alternative Methode zum Überschreiben der Vorlage verwenden. Verwenden Sie den folgenden Code. Es wird klappen.
app / code / MyVendor / MyModule / etc / di.xml
MyVendor \ MyModule \ Plugin \ FinalPricePlugin.php
Hoffe es wird für dich funktionieren.
quelle
Dafür muss kein Plugin geschrieben werden, wir müssen es auf XML-Ebene tun
Erstellen Sie eine Layout-XML
app \ code \ MYNAME_SPACE \ MY_MODULE \ view \ base \ layout \ catalog_product_prices.xml
Die obige XML-Datei wirkt sich nur auf einfache Produkte aus, wenn Sie das Bundle-Produkt dann ändern müssen
sollte sein
oder im Falle eines konfigurierbaren Produkts
Erstellen Sie eine HTML-Datei
\ app \ code \ MYNAME_SPACE \ MY_MODULE \ view \ base \ templates \ product \ price \ final_price.phtml
Kopieren Sie final_price vom Kernmodul und ändern Sie es nach Bedarf
Um andere Preistypen zu ändern, können Sie sich darauf beziehen
Hersteller \ Magento \ Modul-Bundle \ Ansicht \ Basis \ Layout \ Katalog_Produkt_Preise.xml
quelle
Ich konnte überschreiben,
final_price.phtml
indem ich das Verzeichnis unter meinem Thema neu erstellte.quelle
Überprüfen Sie zuerst Ihre final_price.phtml auf Fehler.
Leeren und bereinigen Sie nun den Cache mit cli-Befehlen
Jetzt aktualisieren.
quelle
Ich hatte das gleiche Problem, das ich nicht überschreiben konnte
final_price.phml
. Ich löste das Problem durch Zugabesequence
zu demmodule.xml
mit Magento_Catalog (und dannsetup:upgrade
):quelle
Erstellen Sie app / code / Vendor / Moduleview / base / templates / product / price / final_price.phtml
bin / magento-Setup: Upgrade && bin / magento-Setup: di: kompilieren && bin / magento-Setup: statischer Inhalt: Bereitstellen && bin / magento c: c && bin / magento c: f
quelle