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:
- Deaktivieren Sie die Blockausgabe des Checkout-Moduls mit der Magento-Standardsystemeinstellung
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
<?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\Framework\View\Element\AbstractBlock">
<plugin name="disabledOutofAddtoCartblock" type="[Vendorname]\[Module]\Plugin\AbstractBlockPlugin" />
</type>
</config>
Plugin-Klasse AbstractBlockPlugin befindet sich bei a pp/code/[Vendorname]/[Module]/Plugin/
.
<?php
namespace [Vendorname]\[Module]\Plugin;
class AbstractBlockPlugin{
/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
public function __construct(
\Psr\Log\LoggerInterface $logger
){
$this->logger = $logger;
}
/**
* Using after method change return value of toHtml
*/
public function afterToHtml(\Magento\Framework\View\Element\AbstractBlock $block ,$result){
$moduleName = $block->getModuleName();
$nameInLayout = $block->getNameInLayout();
$_disableBlocksNameInLayout = array(
'product.info.addtocart','product.info.addtocart.additional','product.info.addtocart.bundle',
);
/**
* If block name is match then return Blank
*/
if(in_array($nameInLayout ,$_disableBlocksNameInLayout)){
return "";
}
return $result;
}
}
Dann benötigen Sie einen Cache: Flush Magento Shell mit bin/magento cache:flush