Magento 2: il modo più semplice e sicuro per disabilitare Confronta prodotti e Modulo Wishlist


34

Sto costruendo Magento 2.0 solo per vendere 2 dei miei prodotti online. Il modulo di confronto prodotti e lista desideri è irrilevante per me.

Come rimuovo in modo semplice e sicuro quei moduli? Non voglio hackerare il codice principale.

Risposte:


52

In Magento 2, ora puoi effettivamente rimuovere la funzionalità Confronta prodotti tramite file XML. Il blocco Confronta prodotti è definito invendor/magento/module-catalog/view/frontend/layout/default.xml

e puoi rimuoverlo aggiungendo un default.xmlfile al tuo tema in:<theme_dir>/Magento_Catalog/layout/default.xml

all'interno del quale rimuovi il blocco come segue:

<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>

Ha funzionato come un fascino. Magento 2.0.6
camdixon,

Cordiali saluti, ecco la posizione esatta delle istruzioni: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/…
thdoan

11
Non funziona nella versione 2.1.X
Jai

Che ne dici di rimuovere il blocco La mia lista dei desideri ?
Razvan Zamfir,

Puoi aggiungerlo per rimuovere il blocco wishlist dalla barra laterale: <referenceBlock name = "wishlist_sidebar" remove = "true" />
Frank

32

Puoi aggiungere le seguenti istruzioni xml al file xml predefinito del tuo tema personalizzato che dovrebbe trovarsi in /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlo al Magento_Catalog/layout/default.xmlfile nel tuo tema personalizzato:

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

di cui si sbarazza

  • blocco confronto barra laterale
  • confrontare il blocco dalla pagina dei dettagli del prodotto
  • aggiungi alla lista dei desideri dalla pagina dei dettagli del prodotto

Per rimuovere aggiungi per confrontare dalle pagine delle categorie (elenco prodotti catalogo) utilizzare:

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

5
Ottima risposta, è inoltre necessario aggiungere <referenceBlock name="category.product.addto.compare" remove="true"/>per rimuovere il collegamento dall'elenco dei prodotti del catalogo.
Denis Pshenov,

Grazie per la risposta, ti sei perso di aggiungere anche <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>che rimuove la funzione di confronto anche dai risultati di ricerca del catalogo.
Cristiano Casciotti,

Grazie @Devtype
Praveen Chelumalla il

15

Ho preso la fonte per tutti i blocchi di confronto. Per 2.3 questo è l'elenco completo. Questo rimuoverà anche il link di confronto dall'intestazione.

<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>

Funziona perfettamente senza dover modificare alcun file sorgente che potrebbe cambiare in futuri aggiornamenti.
PedroKTFC

Questo dovrebbe andare in default.xml di un tema personalizzato giusto?
Daniel Black,

6

Disabilita la lista dei desideri su Negozi> Configurazione> Clienti> Lista dei desideri e per disabilitare la funzione Confronta incolla queste righe di seguito su Magento_Catalog / layout / default.xml del tuo tema.

<?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>

Impostare $ showCompare su false nei seguenti modelli:

Magento / Catalogue / view / frontend / templates / product / list / items.phtml Magento / Catalogue / view / frontend / templates / product / widget / new / content / new_grid.phtml Magento / Catalogue / view / frontend / templates / product / widget / nuovo / contenuto / new_list.phtml Magento / Catalogo / vista / frontend / modelli / prodotto / widget / contenuto / grid.phtml

Rimuovi il personale di confronto tra i seguenti modelli:

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

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


A partire da 2.1.x questa soluzione è probabilmente la più ben messa insieme.
themanwhokststman

4

Magento fornisce l'utilità della riga di comando per questo esempio

php bin/magento module:disable -f Magento_Wishlist

poiché la lista dei desideri di Magento dipende anche dall'altro modulo, quindi l'utilizzo senza [-f] non disabiliterà o abiliterà il modulo e visualizzerà un avviso come

inserisci qui la descrizione dell'immagine

dopo aver usato il comando con [-f] flag risolverà questo problema

inserisci qui la descrizione dell'immagine

si prega di controllare l'avviso quando si utilizza il comando con forza

Avviso: hai usato l'opzione --force. Di conseguenza, i moduli potrebbero non funzionare correttamente.

Puoi controllare anche qui le informazioni complete http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- moduli


Grazie. La tua risposta sembra promettente ma io sono un po 'nervoso ... Questo non romperà altre funzionalità?
Malaiselvan,

Puoi provare lo stesso in Istanza di prova, non dovrebbe frenare principalmente l'autorizzazione cambierà che deve essere modificata
webkul

4

Può essere disabilitato da

store> Configurazioni> Clienti> Lista dei desideri> Opzioni generali> Abilitato: No.


4

AGGIORNARE: dopo un aggiornamento di base di Magento 2, la risposta di klara è ora il modo migliore per disabilitare la funzionalità di confronto. Per favore leggi sotto !

Per disabilitare la funzionalità Elenco desideri, è necessario accedere all'amministrazione, in Negozi> Configurazione> Clienti> Elenco desideri e selezionare Abilitato: No.

Per disabilitare la funzionalità Confronta, non c'è alcuna opzione nell'amministrazione. Devi sovrascrivere il module-catalog/view/frontend/templates/product/list.phtmlmodello.

Per fare ciò, devi copiare il contenuto del file che ho nominato sopra in un nuovo file all'interno del tema che si trova sotto <theme_dir>/Magento_Catalog/templates/product/list.phtml. Quindi, si desidera rimuovere le righe interessate:

<?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>

Questi sono alle righe da 111 a 121 in Magento 2.0.1


3

per disabilitare la barra laterale:

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

per rimuovere il "Add to compare"collegamento nella pagina del prodotto è necessario sovrascrivere il Magento_Catalog/templates/product/view/addto.phtmlfile nel tema e rimuovere l'ancora di confronto lì. In questo modo è possibile mantenere la lista dei desideri ma rimuovere la funzionalità di confronto.


3

Per Magento 2.1.x

Aggiunta di un file default.xml al tema 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>

aggiungi anche <referenceBlock name = "catalog.compare.link" remove = "true" /> per rimuovere il link nel menu principale
Aref Ben Lazrek,

3

Questa è un'estensione di altre soluzioni fornite qui. Utilizzare il file /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmle aggiungere quanto segue

<?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

È possibile aggiungere la riga: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> amministratore -> PRODOTTI -> Categorie -> Design personalizzato -> Aggiornamento layout personalizzato


0

Dopo aver provato tutti i metodi di cui sopra per le singole pagine del prodotto, ho trovato l'unico file che contava nel mio caso, con un tema installato, ma utilizzando il mio tema figlio addtocart.phtml. Altre opzioni funzioneranno per la vista della categoria della griglia e per la vista della lista (la suddetta list.phtml, ma sulle pagine dei singoli prodotti:

<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>

Questo deve essere commentato. Ore e ore di tentativi ed era questo file.

Se qualcuno trova diversamente, per favore fatemi sapere!


trova una soluzione. Penso che la mia risposta sia la migliore pratica
Goldy,

0

M2.1 soluzione rapida e semplice.
Se non si desidera creare un tema personalizzato e / o si preferisce lavorare dal back-end, è possibile effettuare le seguenti operazioni nel back-end. Passare alla pagina cms, alla categoria o alla pagina del prodotto che si desidera modificare. Esempio per la pagina della categoria: in Progettazione -> Aggiornamento XML layout aggiungere il seguente codice:

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

Nota: se si desidera che blocchi aggiuntivi rimangano nella barra laterale, impostare il contenitore aggiuntivo su "false" in questo modo:

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

0

La lista dei desideri può essere disabilitata tramite backend, come scritto in altre risposte.

Esiste un modulo FOSS che può rimuovere la funzione di confronto a livello di visualizzazione per negozio:

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

Ho fatto una breve recensione:

  • Aggiunge un handle di layout per rimuovere i blocchi di confronto
  • Questo utilizza sostanzialmente lo stesso codice delle risposte qui (ma è attivato solo a livello di negozio)
  • Il collegamento addto viene rimosso iniettando CSS nella testa, che suona un po 'strano ma evita di sostituire i template di base

0

Sto usando il tema Ultimo su Magento 2.3.3. Non ho potuto disabilitare il link di confronto dal file catalog_product_view.xml del tema poiché le impostazioni non provengono da lì ma si trovano in:

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

Ho optato per la soluzione rapida e sporca, semplicemente rimosso quanto segue:

                    <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>

Il pulsante di confronto è sparito per sempre, tuttavia se esegui un aggiornamento di Magento tornerà, quindi dovrà essere rimosso di nuovo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.