Як відключити Magento 2 відгуки


24

Я намагаюся відключити функцію відгуків про продукт Magento 2. Я спробував вимкнути модуль у магазинах адміністратора Magento 2 \ Advanced \ Advanced \ Magento_Review, але вкладка "Огляди" кожного продукту все ще є. Чи є спосіб відключити це? Я точно знаю, що ми могли б відключити його в Magento 1.

Відповіді:


1

Замість цього скористайтеся параметром командного рядка:

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

Якщо ви хочете очистити кеш:

php bin/magento cache:flush

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


15
Зараз це неможливо в M2.2. Він має занадто багато залежностей.
— Ентоні

8
Неможливо відключити Magento_Review, оскільки модулі залежать від ядра багатьох модулів.
— mahmoudismail

Це неможливо, оскільки модуль перегляду має багато залежностей у M2.
— Rishabh Rk Rai

51

Відключення модуля в командному рядку вирішує помилки в різних місцях. Краща ідея - приховати його за допомогою XML. Просто створіть дочірню тему (якщо у вас її вже немає), наприклад:

Як створити тему для дитини в Magento 2

а потім всередині дочірньої теми створіть:

app / design / frontend / company_name / theme_name / Magento_Theme / 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="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-link" delete = "true" /> у Magento_Customer / layout / customer_account. xml
— fogx

Це має бути правильна відповідь. Ми ніколи не повинні відключати модуль Magento_Review. тому багато інших модулів залежать від цього.
— Magento Learner

1
Добре працює в magento 2.3.1
— електроїд

26

У Magento 2.0.2 ви отримаєте помилку, якщо спробуєте те, що запропонував @MagePsycho. Ви все ще можете відключити вихід модуля, змінивши його стан у Додаткові параметри Magento 2.

Магазини> Конфігурація> Додатково> Розширено та шукайте "Огляд".

Ви, можливо, хочете промити кеш після цього.


3
Це шлях. Модуль відгуків позначається як залежність від інших основних модулів (наприклад, Замовника) і не може бути відключений.
— Мир

з розділу magento 2.2 Магазини> Конфігурація> Додатково> Додатково видалено, прийміть відповідь Майка як прийняту.
— LucScu

1
Але в Magento 2.2.2
— D Singh

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 Devs потрібно вирівняти більше речей. Дуже хороший улов!
— Макс

8

створити:

app / design / frontend / company_name / theme_name / Magento_Theme / layout / 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>

Дякуємо, це також можна використовувати в одному продукті в розділі LMLout Update 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 Singh

5

Щонайменше в Magento 2.3 Commerce ви можете відключити Відгуки в адміністраторі в магазинах> Конфігурація> Каталог> Відгуки про товар введіть тут опис зображення


3

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


2

Магазини> Конфігурація> Додатково> Розширено та шукайте "Огляд"

інакше

app / тощо / 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.

Найкраще все-таки вимкнути вихід модуля або повністю відключити модуль (але все-таки код автоматично завантажений).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.