Magento 2: Bezpieczny i najprostszy sposób na wyłączenie Porównaj produkty i moduł listy życzeń


34

Buduję Magento 2.0 tylko po to, by sprzedawać 2 moje produkty online. Moduł porównywania produktów i listy życzeń jest dla mnie nieistotny.

Jak bezpiecznie i łatwo usunąć te moduły? Nie chcę zhakować rdzenia kodu.

Odpowiedzi:


52

W Magento 2 możesz teraz faktycznie usunąć funkcjonalność Porównaj produkty za pomocą pliku xml. Blok Porównaj produkty jest zdefiniowany wvendor/magento/module-catalog/view/frontend/layout/default.xml

i możesz go usunąć, dodając default.xmlplik do motywu w:<theme_dir>/Magento_Catalog/layout/default.xml

wewnątrz którego usuwasz blok w następujący sposób:

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

Działa jak urok. Magento 2.0.6
camdixon

Do Twojej wiadomości, oto dokładna lokalizacja instrukcji: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/…
środa

11
Nie działa w wersji 2.1.X
Jai

Co z usunięciem bloku Moja lista życzeń ?
Razvan Zamfir

Możesz dodać to, aby usunąć blok listy życzeń z paska bocznego: <referenceBlock name = "wishlist_sidebar" remove = "true" />
Frank

32

Możesz dodać następującą instrukcję xml do domyślnego pliku xml niestandardowej kompozycji, który powinien znajdować się w /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmllub w Magento_Catalog/layout/default.xmlpliku niestandardowym:

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

który się pozbywa

  • blok porównania paska bocznego
  • porównaj blok ze strony szczegółów produktu
  • dodaj do listy życzeń ze strony szczegółów produktu

Aby usunąć dodaj do porównania ze stron kategorii (lista produktów w katalogu), użyj:

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

5
Świetna odpowiedź, musisz również dodać, <referenceBlock name="category.product.addto.compare" remove="true"/>aby usunąć link z listy produktów katalogu.
Denis Pshenov,

Dzięki za odpowiedź, nie udało Ci się również dodać, <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>która usuwa funkcję porównywania również z wyników wyszukiwania w katalogu.
Cristiano Casciotti

Dziękuję @Devtype
Praveen Chelumalla

15

Przeszukałem źródło wszystkich porównywanych bloków. Dla 2.3 jest to pełna lista. Spowoduje to również usunięcie linku porównującego z nagłówka.

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

Działa to doskonale bez konieczności modyfikowania plików źródłowych, które mogą ulec zmianie w przyszłych aktualizacjach.
PedroKTFC

To powinno przejść do default.xml niestandardowego motywu, prawda?
Daniel Black

6

Wyłącz listę życzeń w sklepach> Konfiguracja> Klienci> Lista życzeń i aby wyłączyć funkcję Porównaj, wklej poniższe linie poniżej w Magento_Catalog / layout / default.xml swojego motywu.

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

Ustaw $ showCompare na false w następujących szablonach:

Magento / Katalog / widok / frontend / szablony / produkt / lista / items.phtml Magento / Katalog / widok / frontend / szablony / produkt / widget / nowy / content / new_grid.phtml Magento / Katalog / widok / frontend / szablony / produkt / widget / new / content / new_list.phtml Magento / Catalog / view / frontend / templates / product / widget / content / grid.phtml

Usuń pokrewnych pracowników z następujących szablonów:

Magento / Katalog / widok / frontend / szablony / produkt / list.phtml Magento / Katalog / widok / frontend / szablony / produkt / listing.phtml Magento / Lista życzeń / widok / frontend / szablony / item / configure / addto.phtml

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


Począwszy od wersji 2.1.x to rozwiązanie jest prawdopodobnie najlepiej dopasowane.
themanwhoknowstheman

4

Magento dostarcza na przykład narzędzie wiersza poleceń

php bin/magento module:disable -f Magento_Wishlist

ponieważ lista życzeń Magento zależy również od drugiego modułu, więc użycie bez [-f] nie wyłączy lub nie włączy modułu i wyświetli ostrzeżenie jak

wprowadź opis zdjęcia tutaj

po użyciu polecenia z flagą [-f] rozwiąże ten problem

wprowadź opis zdjęcia tutaj

sprawdź ostrzeżenie, gdy używasz polecenia zdecydowanie

Alert: Użyłeś opcji --force. W rezultacie moduły mogą nie działać poprawnie.

Możesz sprawdzić pełne informacje tutaj http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- moduły


Dzięki. Twoja odpowiedź wygląda obiecująco, ale trochę się denerwuję ... Czy to nie zepsuje żadnej innej funkcjonalności?
Malaiselvan

Możesz wypróbować to samo w Instancji testowej, nie powinno to hamować głównie pozwolenie zmieni to, co trzeba zmienić
webkul 13.01.2016

4

Można go wyłączyć z

sklep> Konfiguracje> Klienci> Lista życzeń> Opcje ogólne> Włączone: Nie.


4

AKTUALIZACJA: Po aktualizacji rdzenia Magento 2 odpowiedź Klary jest teraz najlepszym sposobem na wyłączenie funkcji porównywania. Proszę przeczytać poniżej !

Aby wyłączyć funkcjonalność Listy życzeń, musisz przejść do administracji w obszarze Sklepy> Konfiguracja> Klienci> Lista życzeń i wybrać Włączone: Nie.

Aby wyłączyć funkcję Porównaj, nie ma opcji w administracji. Musisz zastąpić module-catalog/view/frontend/templates/product/list.phtmlszablon.

Aby to zrobić, musisz skopiować zawartość pliku, który wymieniłem powyżej, w nowym pliku wewnątrz motywu znajdującym się pod <theme_dir>/Magento_Catalog/templates/product/list.phtml. Następnie chcesz usunąć odnośne linie:

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

Są to w liniach od 111 do 121 w Magento 2.0.1


3

aby wyłączyć pasek boczny:

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

aby usunąć "Add to compare"link na stronie produktu, musisz zastąpić Magento_Catalog/templates/product/view/addto.phtmlplik w motywie i usunąć tam kotwicę porównania. W ten sposób możesz zachować listę życzeń, ale usunąć funkcję porównywania.


3

Dla Magento 2.1.x

Dodawanie pliku default.xml do motywu w: /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>

dodaj również <referenceBlock name = "catalog.compare.link" remove = "true" />, aby usunąć link w górnym menu
Aref Ben Lazrek

3

Jest to rozszerzenie innych dostarczonych tutaj rozwiązań. Użyj pliku /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmli dodaj następujące elementy

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

Możesz dodać wiersz: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> administrator -> PRODUKTY -> Kategorie -> Niestandardowy projekt -> Niestandardowa aktualizacja układu


0

Po wypróbowaniu wszystkich powyższych metod dla poszczególnych stron produktu znalazłem jeden plik, który miał znaczenie w moim przypadku, z zainstalowanym motywem, ale wykorzystujący własny motyw potomny addtocart.phtml. Inne opcje będą działać dla widoku kategorii siatki i widoku kategorii listy (wyżej wspomniane list.phtml, ale na poszczególnych stronach produktu:

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

Należy to skomentować. Wiele godzin prób i to był ten plik.

Jeśli ktoś stwierdzi inaczej, daj mi znać!


znajdź rozwiązanie. myślę, że moja odpowiedź to najlepsza praktyka
Goldy,

0

Szybkie i łatwe rozwiązanie M2.1.
Jeśli nie chcesz tworzyć niestandardowego motywu i / lub wolisz pracować z backendu, możesz wykonać następujące czynności w backendie. Przejdź do strony cms, kategorii lub strony produktu, którą chcesz zmienić. Przykład strony kategorii: w obszarze Projektowanie -> Aktualizacja układu XML dodaj następujący kod:

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

Uwaga: jeśli chcesz, aby dodatkowe bloki pozostały na pasku bocznym, ustaw dodatkowy kontener na „fałsz” w następujący sposób:

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

0

Listę życzeń można wyłączyć za pomocą backendu, jak napisano w innych odpowiedziach.

Istnieje moduł FOSS, który może usunąć funkcję porównywania na poziomie widoku na sklep:

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

Zrobiłem krótką recenzję:

  • Dodaje uchwyt układu, aby usunąć bloki porównania
  • Wykorzystuje to w zasadzie ten sam kod, co w odpowiedziach tutaj (ale jest aktywowany tylko na poziomie sklepu)
  • Link addto jest usuwany przez wstrzyknięcie CSS do głowy, co brzmi nieco dziwnie, ale unika wymiany podstawowych szablonów

0

Używam motywu Ultimo na Magento 2.3.3. Nie mogłem wyłączyć linku porównania w pliku catalog_product_view.xml kompozycji, ponieważ ustawienia nie pochodzą z tego miejsca, ale znajdują się w:

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

Wybrałem szybkie i brudne rozwiązanie, po prostu usunąłem następujące elementy:

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

Przycisk porównania zniknął na zawsze, jednak jeśli wykonasz aktualizację Magento, wróci, więc trzeba będzie ją ponownie usunąć.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.