Von der Administratorseite aus kann ich das Auschecken in einem Schritt deaktivieren, aber Benutzer können weiterhin Produkte zum Warenkorb hinzufügen. Ich möchte nur Produkte ohne Auschecken anzeigen. Gibt es dort eine Erweiterung? Ich meine, deaktivieren Sie den Minikorb, fügen Sie dem Warenkorb Links zur gesamten Website hinzu.
Wo kann ich durch Plugins oder Beobachter anpassen oder neu schreiben (meistens in Einzelaufnahme), so dass überall Links zum Hinzufügen zum Warenkorb ausgeblendet werden? Durch Bearbeiten von list.phtml kann ich tun. Aber gibt es einen besseren Weg?
Antworten:
Bitte versuchen Sie es mit app / code / Vendor / Module / etc / di.xml
in app / code / Vendor / Module / Plugin / Product.php
quelle
Es gibt viele Arbeiten, um diese Frage zu beantworten: Hier die Schritte:
1. Deaktivieren Sie die Blockausgabe des Checkout-Moduls
In diesem Fall deaktivieren Sie die Blockausgabe des Checkout-Moduls , wodurch Cart / Checkout leer bleibt und Minicart-Pop entfernt wird. Der Kunde kann also keine Bestellung aufgeben.
Deaktivieren Sie die
Magento_Checkout
Modulausgabe von Adminadmin>Store>Configuration>Advance>Advance
.Es gibt viele Dinge, die Sie in diesem Fall tun müssen.
In diesem Fall benötigen Sie möglicherweise die folgenden Schritte:
Wählen Sie dann das Modul Magento_Checkout aus. Ändern Sie den Status in
Disabled
und klicken Sie anschließend auf die Schaltfläche Konfiguration speichern, um die Einstellung zu speichern.2. Deaktivieren Sie die Ausgabe einiger Blöcke mithilfe des Plugins mit der Schaltfläche AddtoCart
Für den Fall, Idee ist die Ausgabe von Block diejenigen Block deaktiviert , die Add-to-Cart zu Block mit Plugin generieren
Wie Sie wissen , dass aus der Klasse Magento \ Framework \ View \ Element \ AbstractBlock ` toHtml () Ausgabe von Block erzeugt wird ,
In meinem Plugin finden Sie einige Blöcke (
Which are generate Add to Cart button
) Namen im Layout wie :di.xml create ist app \ code [Vendorname] [Module] \ etc \ frontend
, So wird es nur Frontend arbeiten nicht für den Admin .
di.xml
Plugin-Klasse AbstractBlockPlugin befindet sich bei a
pp/code/[Vendorname]/[Module]/Plugin/
.Dann benötigen Sie einen Cache: Flush Magento Shell mit
bin/magento cache:flush
quelle