Magento 2: Sicheres und einfaches Deaktivieren des Compare Products & Wishlist Module


34

Ich erstelle Magento 2.0, um nur 2 meiner Produkte online zu verkaufen. Das Modul Produkte vergleichen und Wunschliste ist für mich irrelevant.

Wie entferne ich diese Module sicher und einfach? Ich möchte den Kerncode nicht hacken.

Antworten:


52

In Magento 2 können Sie jetzt die Funktionen zum Vergleichen von Produkten über eine XML-Datei entfernen. Der Produktvergleichsblock ist in definiertvendor/magento/module-catalog/view/frontend/layout/default.xml

und Sie können es entfernen, indem Sie default.xmlIhrem Thema eine Datei hinzufügen in:<theme_dir>/Magento_Catalog/layout/default.xml

in dem du deinen Block wie folgt entfernst:

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.sidebar" remove="true"/> 
        <referenceBlock name="wishlist_sidebar" remove="true" />
    </body>
</page>

Lief wie am Schnürchen. Magento 2.0.6
camdixon


11
Es funktioniert nicht in Version 2.1.X
Jai

Was ist mit dem Entfernen des Blocks " Meine Wunschliste" ?
Razvan Zamfir

Sie können dies hinzufügen, um den Wunschliste-Block aus der Seitenleiste zu entfernen: <referenceBlock name = "wishlist_sidebar" remove = "true" />
Frank

32

Sie können der Standard-XML-Datei Ihres benutzerdefinierten Themas, die sich in Ihrem benutzerdefinierten Thema befinden sollte, /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmloder der Magento_Catalog/layout/default.xmlDatei in Ihrem benutzerdefinierten Thema die folgenden XML-Anweisungen hinzufügen :

    <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    <referenceBlock name="view.addto.compare" remove="true" />
    <referenceBlock name="view.addto.wishlist" remove="true" />

was los wird

  • Seitenleiste vergleichen Block
  • Vergleiche Block von der Produktdetailseite
  • Zur Wunschliste hinzufügen von der Produktdetailseite

Zum Entfernen von Hinzufügen zum Vergleichen von Kategorieseiten (Katalogproduktliste) verwenden Sie:

<referenceBlock name="category.product.addto.compare" remove="true"/>

5
Gute Antwort, Sie müssen auch hinzufügen <referenceBlock name="category.product.addto.compare" remove="true"/>, um den Link von der Katalogproduktliste zu entfernen.
Denis Pshenov

Vielen Dank für Ihre Antwort, Sie haben versäumt, auch hinzuzufügen, <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>dass die Vergleichsfunktion auch aus den Suchergebnissen des Katalogs entfernt wird.
Cristiano Casciotti

Vielen Dank @ Devtype
Praveen Chelumalla

15

Ich habe die Quelle nach allen Vergleichsblöcken durchsucht. Für 2.3 ist dies die vollständige Liste. Dadurch wird auch der Vergleichslink aus der Kopfzeile entfernt.

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <!-- Remove compare -->
        <referenceBlock name="catalog.compare.link" remove="true" />
        <referenceBlock name="catalog.compare.sidebar" remove="true"/>
        <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>
        <referenceBlock name="category.product.addto.compare" remove="true"/>
        <referenceBlock name="crosssell.product.addto.compare" remove="true" />
        <referenceBlock name="related.product.addto.compare" remove="true" />
        <referenceBlock name="upsell.product.addto.compare" remove="true" />
        <referenceBlock name="view.addto.compare" remove="true" />
    </body>
</page>

Dies funktioniert einwandfrei, ohne dass Quelldateien geändert werden müssen, die sich in zukünftigen Updates ändern könnten.
PedroKTFC

Das sollte in die default.xml eines benutzerdefinierten Themas gehen, oder?
Daniel Black

6

Deaktivieren Sie die Wunschliste unter Stores> Configuration> Customers> Wishlist und fügen Sie zum Deaktivieren der Compare-Funktion die folgenden Zeilen in Magento_Catalog / layout / default.xml Ihres Themes ein.

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.link" remove="true"/>
        <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    </body>
</page>

Setzen Sie $ showCompare in den folgenden Vorlagen auf false:

Magento / Catalog / view / frontend / templates / product / list / items.phtml Magento / Catalog / view / frontend / templates / product / widget / new / content / new_grid.phtml Magento / Catalog / view / frontend / templates / product / widget / new / content / new_list.phtml Magento / Catalog / view / frontend / templates / product / widget / content / grid.phtml

Entfernen Sie vergleichende Mitarbeiter aus den folgenden Vorlagen:

Magento / Catalog / view / frontend / templates / product / list.phtml Magento / Catalog / view / frontend / templates / product / listing.phtml Magento / Wishslist / view / frontend / templates / item / configure / addto.phtml

Referenz: https://coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend


Ab 2.1.x ist diese Lösung wahrscheinlich die am besten zusammengestellte.
themanwhoknowstheman

4

Magento bietet ein Befehlszeilenprogramm für dieses Beispiel

php bin/magento module:disable -f Magento_Wishlist

Da die Magento-Wunschliste auch von dem anderen Modul abhängt, wird die Verwendung von ohne [-f] das Modul nicht deaktivieren oder aktivieren und es wird eine Warnung wie angezeigt

Bildbeschreibung hier eingeben

Wenn Sie den Befehl mit dem Flag [-f] verwenden, wird das Problem behoben

Bildbeschreibung hier eingeben

Bitte überprüfen Sie die Warnung, wenn Sie den Befehl erzwingen

Warnung: Sie haben die Option --force verwendet. Infolgedessen funktionieren Module möglicherweise nicht richtig.

Sie können die vollständigen Informationen auch hier überprüfen: http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- Module


Vielen Dank. Ihre Antwort sieht vielversprechend aus, aber ich bin etwas nervös ... Wird dies keine andere Funktionalität beeinträchtigen?
Malaiselvan

Sie können das gleiche in Test Instance versuchen, es sollte nicht bremsen, vor allem die Erlaubnis wird sich ändern, die geändert werden müssen
Webkul

4

Es kann von deaktiviert werden

Laden> Konfigurationen> Kunden> Wunschliste> Allgemeine Optionen> Aktiviert: Nein.


4

UPDATE: Nach einem Magento 2-Core-Update ist die Antwort von Klara nun die beste Möglichkeit, die Vergleichsfunktion zu deaktivieren. Bitte lesen Sie unten !

Um die Wish List-Funktion zu deaktivieren, müssen Sie in der Administration unter Stores> Configuration> Customers> Wish List die Option Enabled: No auswählen.

Zum Deaktivieren der Vergleichsfunktion gibt es keine Option in der Verwaltung. Sie müssen die module-catalog/view/frontend/templates/product/list.phtmlVorlage überschreiben .

Dazu müssen Sie den Inhalt der oben genannten Datei in eine neue Datei in Ihrem Design unter kopieren <theme_dir>/Magento_Catalog/templates/product/list.phtml. Dann möchten Sie die betroffenen Zeilen entfernen:

<?php
$compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare');
?>
<a href="#"
   class="action tocompare"
   title="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
   aria-label="<?php echo $block->escapeHtml(__('Add to Compare')); ?>"
   data-post='<?php /* @escapeNotVerified */ echo $compareHelper->getPostDataParams($_product); ?>'
   role="button">
    <span><?php /* @escapeNotVerified */ echo __('Add to Compare') ?></span>
</a>

Diese befinden sich in Magento 2.0.1 in den Zeilen 111 bis 121


3

So deaktivieren Sie die Seitenleiste:

<body>
  <referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>

Um den "Add to compare"Link auf der Produktseite zu entfernen , müssen Sie die Magento_Catalog/templates/product/view/addto.phtmlDatei in Ihrem Design überschreiben und den Vergleichsanker dort entfernen. Auf diese Weise können Sie die Wunschliste behalten, aber die Vergleichsfunktion entfernen.


3

Für Magento 2.1.x

Hinzufügen einer default.xml-Datei zu Ihrem Thema in: /Magento_Catalog/layout/default.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="category.product.addto.compare" remove="true"/>
        <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    </body>
</page>

Fügen Sie auch <referenceBlock name = "catalog.compare.link" remove = "true" /> hinzu, um den Link im oberen Menü zu entfernen
Aref Ben Lazrek

3

Dies ist eine Erweiterung anderer hier bereitgestellter Lösungen. Verwenden Sie die Datei /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlund fügen Sie Folgendes hinzu

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
    <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    <referenceBlock name="catalog.compare.link" remove="true"/>
    <referenceBlock name="related.product.addto.compare" remove="true"/>
    <referenceBlock name="view.addto.compare" remove="true"/>
    <referenceBlock name="upsell.product.addto.compare" remove="true"/>
    </body>
</page>

1

Sie können die Zeile hinzufügen: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> Administrator -> PRODUKTE -> Kategorien -> Benutzerdefiniertes Design -> Benutzerdefiniertes Layout-Update


0

Nachdem ich alle oben genannten Methoden für die einzelnen Produktseiten ausprobiert hatte, fand ich die eine Datei, die in meinem Fall von Bedeutung war, mit einem installierten Thema, aber unter Verwendung meines eigenen untergeordneten Themas addtocart.phtml. Andere Optionen funktionieren für die Rasterkategorieansicht und die Listenkategorieansicht (die oben genannten list.phtml, jedoch auf einzelnen Produktseiten:

<a href="#" data-post='<?php /* @escapeNotVerified */ echo $compareHelper->getPostDataParams($_product);?>'
            data-role="add-to-links"
            class="action tocompare">
    <i class="fa fa-retweet icons"></i>
    <span><?php /* @escapeNotVerified */ echo __('Compare') ?></span>
</a>

Dies muss auskommentiert werden. Stundenlang versucht und es war diese Datei.

Wenn jemand etwas anderes findet, lass es mich wissen!


find a solution.il denke, meine Antwort ist Best Practice
Goldy

0

M2.1 schnelle und einfache Lösung.
Wenn Sie kein benutzerdefiniertes Design erstellen und / oder lieber vom Backend aus arbeiten möchten, können Sie im Backend die folgenden Schritte ausführen. Navigieren Sie zu der CMS-Seite, Kategorie oder Produktseite, die Sie ändern möchten. Beispiel für Kategorieseite: Fügen Sie unter Design -> Layout Update XML den folgenden Code hinzu:

<referenceContainer name="content">
    <referenceBlock name="catalog.compare.sidebar" remove="true" />
    <referenceContainer name="sidebar.additional" remove="true" />
 </referenceContainer>

Hinweis: Wenn Sie möchten, dass zusätzliche Blöcke in der Seitenleiste verbleiben, setzen Sie den zusätzlichen Container wie folgt auf "false":

 <referenceContainer name="content">
     <referenceContainer name="sidebar.additional" remove="false" />
 </referenceContainer> 

0

Die Wunschliste kann über das Backend deaktiviert werden, wie in anderen Antworten beschrieben.

Es gibt ein FOSS-Modul, mit dem die Vergleichsfunktion auf Store-View-Ebene entfernt werden kann:

https://github.com/Joshua29LK/disable-compare-magento-2

Ich habe eine kurze Rezension gemacht:

  • Es wird ein Layout-Handle hinzugefügt, um die Vergleichsblöcke zu entfernen
  • Dies verwendet im Grunde den gleichen Code wie in den Antworten hier (ist jedoch nur auf Filialebene aktiviert).
  • Der Add-to-Link wird durch Injizieren von CSS in den Kopf entfernt, was etwas seltsam klingt, aber das Ersetzen von Kernvorlagen vermeidet

0

Ich verwende das Ultimo-Theme für Magento 2.3.3. Ich konnte den Vergleichslink in der Datei catalog_product_view.xml des Themas nicht deaktivieren, da die Einstellungen nicht von dort stammen, sondern sich in folgendem Verzeichnis befinden:

vendor/magento/module-catalog/view/frontend/layout/catalog_product_view.xml

Ich entschied mich für die schnelle und schmutzige Lösung, entfernte einfach das Folgende:

                    <container name="product.info.social" label="Product social links container" htmlTag="div" htmlClass="product-social-links">
                        <block class="Magento\Catalog\Block\Product\View" name="product.info.addto" as="addto" template="Magento_Catalog::product/view/addto.phtml">
                            <block class="Magento\Catalog\Block\Product\View\AddTo\Compare" name="view.addto.compare" after="view.addto.wishlist"
                                   template="Magento_Catalog::product/view/addto/compare.phtml" >
                                <arguments>
                                    <argument name="addToCompareViewModel" xsi:type="object">Magento\Catalog\ViewModel\Product\Checker\AddToCompareAvailability</argument>
                                </arguments>
                            </block>
                        </block>
                        <block class="Magento\Catalog\Block\Product\View" name="product.info.mailto" template="Magento_Catalog::product/view/mailto.phtml"/>
                    </container>

Die Vergleichsschaltfläche ist für immer verschwunden. Wenn Sie jedoch ein Magento-Upgrade durchführen, wird sie wieder angezeigt und muss erneut entfernt werden.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.