Як відключити 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.