Как отключить Magento 2 отзыва

24

Я пытаюсь отключить функцию обзоров продуктов Magento 2. Я пытался отключить модуль в Magento 2 admin Stores \ Advanced \ Advanced \ Magento_Review, но вкладка отзывов для каждого продукта все еще там. Есть ли способ отключить его? Я точно знаю, что мы можем отключить его в Magento 1.

Омри Зобель
источник

Ответы:

1

Вместо этого используйте параметр командной строки:

php bin/magento module:disable --clear-static-content Magento_Review

Если вы хотите очистить кеш:

php bin/magento cache:flush

(Запустите его из корня вашей директории Magento 2)

MagePsycho
источник
15
Теперь это невозможно в M2.2. У него слишком много зависимостей.
Энтони
8
Невозможно отключить Magento_Review, так как модули зависят от ядра многих модулей.
Махмудисмаил
Это невозможно, так как модуль обзора имеет много зависимостей в M2.
Rishabh Rk Rai
51

Отключение модуля в командной строке приводит к ошибкам в разных местах. Лучшая идея - скрыть это с помощью XML. Просто создайте дочернюю тему (если у вас ее еще нет), например:

Как создать детскую тему в Magento 2

а затем внутри вашей дочерней темы создайте:

приложение / дизайн / интерфейс / company_name / THEME_NAME / Magento_Theme / макет / 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="reviews.tab" remove="true" />
        <referenceBlock name="product.review.form" remove="true" />
        <referenceBlock name="product.info.review" remove="true" />
    </body>
</page>
Майк
источник
Помните, что все отзывы находятся на странице отзывов на вкладке клиента (тоже отключите). Отлично работает в 2.1.7. Работайте так же, когда добавляются только в макет страницы продукта.
Патрик Падус
Именно то, что мне было нужно!
вектор
1
чтобы развернуть пост @Patryk Padus: <! - Удалить мои обзоры продуктов -> <referenceBlock name = "customer-account-navigation-product-reviews-link" remove = "true" /> в Magento_Customer / layout / customer_account. xml
fogx
Это должен быть правильный ответ. Мы никогда не должны отключать модуль Magento_Review. так много других модулей зависят от этого.
Magento Learner
1
Хорошо работает в magento 2.3.1
Electroid
26

В Magento 2.0.2 вы получите ошибку, если попробуете то, что предложено @MagePsycho. Вы по-прежнему можете отключить вывод модуля, изменив его состояние в меню «Дополнительные настройки» Magento 2.

Магазины> Конфигурация> Дополнительно> Дополнительно и найдите «Обзор».

Вы можете захотеть очистить кеш позже.

Максимум
источник
3
Это путь. Модуль отзывов помечается как зависимый от других основных модулей (например, Заказчик) и не может быть отключен.
Мир
из раздела magento 2.2 Магазины> Конфигурация> Дополнительно> Дополнительно удалено, ответ Майка будет принят.
LucScu
1
Но в Magento 2.2.2 нет расширенной вкладки
D Сингх,
8

В Magento 2.1 отключение вывода, как предложено @Max, вызовет хлопотный всплывающий текст в редакторе представления продукта.

введите описание изображения здесь

Не очень круто. Это вызвано запросом Ajax, который завершается в 503. И вы заметите, что там есть вкладка «Отзывы о товаре». Это работало на 2.0, потому что администратор все еще обрабатывал блоки. Теперь это сделано с UiComponent.

«Продукт Вкладка Обзор» добавляется корыта adminhtml/di.xmlиз Magento_Review

  <virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool">
        <arguments>
            <argument name="modifiers" xsi:type="array">
                <item name="review" xsi:type="array">
                    <item name="class" xsi:type="string">Magento\Review\Ui\DataProvider\Product\Form\Modifier\Review</item>
                    <item name="sortOrder" xsi:type="number">20</item>
                </item>
            </argument>
        </arguments>
    </virtualType>

Нет способа - или, по крайней мере, не нашел, как - удалить аргумент. Таким образом, мы должны переписать это, так или иначе.

Сначала я подумал сделать плагин Magento\Review\Ui\DataProvider\Product\Form\Modifier\Review. Но копание в коде ядра заставляет меня открыть Dummy.phpкласс. Итак, в пользовательском модуле создайтеadminhtml/di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <virtualType name="Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Pool">
        <arguments>
            <argument name="modifiers" xsi:type="array">
                <item name="review" xsi:type="array">
                    <item name="class" xsi:type="string">Magento\Ui\DataProvider\Modifier\Dummy</item>
                </item>
            </argument>
        </arguments>
    </virtualType>
</config>

И не забудьте добавить <sequence><Magento_Review/>в свой module.xml. Потому что XML объединены в точном порядке. Это должно быть ПОСЛЕ Magento_Review

И, пожалуйста, обратите внимание: отключение Ouput НЕ отключает модуль, как упоминается в заголовке этой темы. Это будет только скрывать это:

  1. контроллеры все еще будут активны. Если вы делаете сообщение о правильном действии, контроллер все равно будет работать, и у вас даже будет сообщение об успехе на веб-интерфейсе.

  2. вы все равно найдете меню в админке, в «Отчете»

  3. каждая модель логики, инъекции, наблюдатели все равно будут применяться.

Во всяком случае, с моей точки зрения, это все же лучшее решение. Потому что принудительное отключение модуля module:disable -fкажется немного грубым ...

Пол Равалитера
источник
Очень интересно - кажется, что разработчикам Magento нужно выровнять больше вещей. Очень хороший улов!
Макс
8

Создайте:

приложение / дизайн / интерфейс / company_name / THEME_NAME / Magento_Theme / макет / default.xml

и добавьте это:

<?xml version="1.0"?>
<page layout="3columns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
      ...
      ...
         <referenceBlock name="reviews.tab" remove="true" />
         <referenceBlock name="customer-account-navigation-product-reviews-link" remove="true" />
         <referenceBlock name="customer_account_dashboard_info1" remove="true" />
         <referenceBlock name="review_customer_list" remove="true" />
         <referenceBlock name="customers_review" remove="true" />
         <referenceBlock name="product.review.form" remove="true" />
         <referenceBlock name="review_view" remove="true" />
         <referenceBlock name="product.info.product_additional_data" remove="true" />

      ...
      ...
 </body>
</page>
Кетан Борада
источник
Спасибо, это также можно использовать в отдельном продукте в разделе «Обновление макета XML» для удаления отзывов о конкретном элементе.
Dawhoo
Похоже, что по крайней мере ссылка на тогда еще не существующую форму обзора все еще появляется на страницах продукта. Он может быть скрыт с помощью CSS .product-reviews-summary, но может быть есть еще одно правило, которое можно добавить, default.xmlчтобы фактически удалить его?
ACJ
5

В Magento 2.2 вы должны просто отключить его в app / etc / config.php

'Magento_Review' => 0,
Эржен Райндерс
источник
1
Это не проверяет зависимости модуля и может привести к непредвиденному поведению.
Йонн Триморо
Да, это работает в Magento 2.2.2
D Сингх
5

По крайней мере, в Magento 2.3 Commerce вы можете отключить Обзоры в admin в Магазинах> Конфигурация> Каталог> Обзоры продуктов введите описание изображения здесь

siliconrockstar
источник
3

php bin/magento module:disable -f Magento_Reviewотключить модуль, на который полагаются другие модули. Это должно быть сделано в первую очередь в тестовой среде, чтобы заметить любой сбой в функциональности.

Клаудиу Крянгэ
источник
2

Магазины> Конфигурация> Дополнительно> Дополнительно и поиск "Обзор"

или еще

app / etc / config.php 'Magento_Review' => 0,

Радость
источник
2

В Magento 2.2.5, по крайней мере, простое отключение вывода модуля через, app/etc/config.phpкажется, творит чудеса:

'system' => [
    'default' => [
        'advanced' => [
            'modules_disable_output' => [
                'Magento_Review' => '1',
                'Magento_Newsletter' => '1',
            ],
        ],
        // … other config
    ],
],

Это удаляет связанные выходные данные модуля (формы, сообщения) с фронтов магазина, а также из интерфейса администратора.

Эмма
источник
0

Просто напомнить, что в Magento 2.3.0 ситуация улучшена (так как во внешнем интерфейсе не отображается никаких ошибок, когда не устанавливается модуль-обзор), однако компиляция DI по-прежнему не выполняется, как Magento\Review\Block\Adminhtml\Gridуказано в Magento\Customer\Block\Adminhtml\Edit\Tab\1Reviews.

Лучше всего по-прежнему отключать вывод модуля или полностью отключать модуль (но при этом иметь код, загружаемый автоматически).

Erfan
источник