Я будую Magento 2.0 тільки для продажу 2 моєї продукції в Інтернеті. Модуль порівняння продуктів та списку бажань для мене не має значення.
Як я безпечно та легко видаляю ці модулі? Я не хочу зламати основний код.
Я будую Magento 2.0 тільки для продажу 2 моєї продукції в Інтернеті. Модуль порівняння продуктів та списку бажань для мене не має значення.
Як я безпечно та легко видаляю ці модулі? Я не хочу зламати основний код.
Відповіді:
У Magento 2 ви можете фактично видалити Порівняння функціональності продуктів через XML-файл. Блок порівняння продуктів визначений вvendor/magento/module-catalog/view/frontend/layout/default.xml
і ви можете видалити його, додавши default.xml
файл до своєї теми в:<theme_dir>/Magento_Catalog/layout/default.xml
всередині якого ви видаляєте свій блок наступним чином:
<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>
Ви можете додати наступну інструкцію xml до файлу xml за замовчуванням для власної теми, який повинен бути розміщений у /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xml
або в Magento_Catalog/layout/default.xml
файл у вашій спеціальній темі:
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
<referenceBlock name="view.addto.compare" remove="true" />
<referenceBlock name="view.addto.wishlist" remove="true" />
від якої позбавляється
Для видалення додавання для порівняння зі сторінок категорій (список продуктів каталогу) використовуйте:
<referenceBlock name="category.product.addto.compare" remove="true"/>
<referenceBlock name="category.product.addto.compare" remove="true"/>
щоб видалити посилання зі списку продуктів каталогу.
<referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>
те, що знімає функцію порівняння також з результатів пошуку в каталозі.
Я схвилював джерело для всіх блоків порівняння. Для 2.3 це повний перелік. Це також видалить посилання порівняння із заголовка.
<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>
Вимкнути список бажань у магазинах> Конфігурація> Клієнти> Список бажань та відключити функцію Порівняння вставити ці рядки нижче на 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="catalog.compare.link" remove="true"/>
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>
</page>
Встановіть $ showCompare для false у таких шаблонах:
Magento / Каталог / перегляд / frontend / шаблони / продукт / список / items.phtml Magento / Каталог / view / frontend / templates / product / widget / new / content / new_grid.phtml Magento / Каталог / Перегляд / frontend / шаблони / продукт / віджет / новий / контент / new_list.phtml Magento / Каталог / перегляд / frontend / шаблони / продукт / віджет / вміст / grid.phtml
Видаліть порівняння пов'язаного персоналу з таких шаблонів:
Magento / Каталог / view / frontend / templates / product / list.phtml Magento / Каталог / view / frontend / templates / product / listing.phtml Magento / Список бажань / view / frontend / templates / item / configure / addto.phtml
Довідка: https://coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend
Magento наводить приклад утиліти командного рядка
php bin/magento module:disable -f Magento_Wishlist
оскільки список бажань Magento залежить від іншого модуля, тому використання без [-f] не відключить і не включить модуль і покаже попередження, як
після використання команди з [-f] прапором буде вирішено цю проблему
будь ласка, перевірте попередження, коли ви використовуєте команду насильно
Сповіщення: Ви використовували опцію --force. В результаті модулі можуть не працювати належним чином.
Ви також можете перевірити тут повну інформацію http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- модулі
ОНОВЛЕННЯ: Після оновлення Magento 2, відповідь клари тепер найкращий спосіб відключити функцію Порівняння. Прочитайте нижче!
Щоб вимкнути функцію Списку бажань, вам потрібно перейти в адміністрацію, в розділі Магазини> Конфігурація> Клієнти> Список побажань і вибрати Увімкнено: Ні.
Щоб вимкнути функцію Порівняння, в адміністрації немає жодної можливості. Вам потрібно перекрити module-catalog/view/frontend/templates/product/list.phtml
шаблон.
Для цього вам потрібно скопіювати вміст файла, який я назвав вище, у новий файл всередині вашої теми, розташований під <theme_dir>/Magento_Catalog/templates/product/list.phtml
. Потім потрібно видалити відповідні рядки:
<?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>
Вони знаходяться на лініях від 111 до 121 в Magento 2.0.1
щоб відключити бічну панель:
<body>
<referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>
щоб видалити "Add to compare"
посилання на сторінці продукту, вам потрібно перезаписати Magento_Catalog/templates/product/view/addto.phtml
файл у свою тему і видалити там порівняльний якір. Таким чином ви можете зберегти список бажань, але видалити функцію порівняння.
Для Magento 2.1.x
Додавання файлу default.xml до теми в /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>
Це розширення інших рішень, наданих тут. Скористайтеся файлом /app/design/frontend/Vendor/theme/Magento_Theme/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="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>
Спробувавши всі вищевказані методи для окремих сторінок продукту, я знайшов один файл, який мав значення в моєму випадку, із встановленою темою, але використовуючи власну дочірню тему addtocart.phtml
. Інші параметри працюватимуть для перегляду категорій сітки та перегляду категорій списку (згадане вище list.phtml
, але на окремих сторінках продукту:
<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>
Це потрібно прокоментувати. Години і години спроб і саме цей файл.
Якщо хтось виявить інше, будь ласка, дайте мені знати!
Швидке та просте рішення M2.1.
Якщо ви не хочете створювати власну тему та / або вважаєте за краще працювати з бекенда, ви можете виконати наступне в сервісі. Перейдіть на сторінку cms, категорію чи сторінку продукту, яку ви хочете змінити. Приклад для категорії категорій: у розділі Дизайн -> Оновлення макета XML додайте наступний код:
<referenceContainer name="content">
<referenceBlock name="catalog.compare.sidebar" remove="true" />
<referenceContainer name="sidebar.additional" remove="true" />
</referenceContainer>
Примітка. Якщо ви хочете, щоб додаткові блоки залишалися на бічній панелі, встановіть додатковий контейнер на "false", як це:
<referenceContainer name="content">
<referenceContainer name="sidebar.additional" remove="false" />
</referenceContainer>
Список побажань можна відключити за допомогою бекенда, як написано в інших відповідях.
Існує модуль FOSS, який може видалити функцію порівняння на рівні перегляду магазину:
https://github.com/Joshua29LK/disable-compare-magento-2
Я зробив короткий огляд:
Я використовую тему Ultimo на Magento 2.3.3. Я не зміг відключити посилання на порівняння з файлу теми catalog_product_view.xml теми, оскільки налаштування не надходять звідти, але вони знаходяться в:
vendor/magento/module-catalog/view/frontend/layout/catalog_product_view.xml
Я пішов на швидке і брудне рішення, просто видалив наступне:
<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>
Кнопка порівняння відпала назавжди, проте якщо ви виконаєте оновлення Magento, вона повернеться, тому її потрібно буде знову зняти.
Ви можете використовувати цей платний модуль, щоб відключити порівняння в magento 2 ($ 20).
http://www.mage20.com/magento-2-disable-compare.html
Особливості :