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.
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:
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.xml
plik 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>
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.xml
lub w Magento_Catalog/layout/default.xml
pliku 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
Aby usunąć dodaj do porównania ze stron kategorii (lista produktów w katalogu), użyj:
<referenceBlock name="category.product.addto.compare" remove="true"/>
<referenceBlock name="category.product.addto.compare" remove="true"/>
aby usunąć link z listy produktów katalogu.
<referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>
która usuwa funkcję porównywania również z wyników wyszukiwania w katalogu.
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>
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
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
po użyciu polecenia z flagą [-f] rozwiąże ten problem
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
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.phtml
szablon.
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
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.phtml
plik w motywie i usunąć tam kotwicę porównania. W ten sposób możesz zachować listę życzeń, ale usunąć funkcję porównywania.
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>
Jest to rozszerzenie innych dostarczonych tutaj rozwiązań. Użyj pliku /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xml
i 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>
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ć!
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>
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ę:
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ąć.
Możesz użyć tego płatnego modułu, aby wyłączyć porównywanie w Magento 2 (20 USD).
http://www.mage20.com/magento-2-disable-compare.html
Funkcje :