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 dirのルートから実行します)


15
現在、M2.2では不可能です。依存関係が多すぎます。
アンソニー

8
モジュールは多くのモジュールコアに依存しているため、Magento_Reviewを無効にできません。
mahmoudismail

ReviewモジュールにはM2に多くの依存関係があるため、これは不可能です。
リシャブRkライ

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の投稿を展開するには、次のようにします。 xml
fogx

これが正解です。Magento_Reviewモジュールを無効にしないでください。他の多くのモジュールがそれに依存しています。
Magentoの学習

1
magento 2.3.1で
正常に動作します

26

Magento 2.0.2では、@ MagePsychoが提案したことを試みるとエラーが発生します。Magento 2の詳細設定でステータスを変更することで、モジュール出力を無効にすることができます。

「ショップ」>「構成」>「詳細」>「詳細」を選択して、「レビュー」を検索します。

後でキャッシュをフラッシュしたい場合があります。


3
これが道です。レビューモジュールは、他のコアモジュール(顧客など)によって依存関係としてマークされ、無効にすることはできません。
ミール

magento 2.2セクションから[ショップ]> [構成]> [詳細設定]> [詳細設定]が削除されました。マイクの回答を受け入れてください。
LucScu

1
しかし、Magento 2.2.2には高度なタブはありません
Dシン

8

Magento 2.1では、@ Maxが示唆したように出力を無効にすると、製品ビューの編集で厄介なポピンが発生します。

ここに画像の説明を入力してください

あまりクールではありません。503で終了するAjaxリクエストが原因です。また、「製品レビュー」タブがまだあることがわかります。2.0でも機能しました。これは、管理者がブロックを介してまだレンダリングされていたためです。これで、UiComponentで完了しました。

「製品のレビュー]タブは、」トラフ追加されるadminhtml/di.xmlMagento_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>

ありがとうございます。これは、特定のアイテムのレビューを削除するために、レイアウト更新XMLの下の単一の製品で使用することもできます。
-dawhoo

少なくとも存在しないレビューフォームへのリンクが製品ページにまだ表示されているようです。非表示にすることでCSSで非表示にできます.product-reviews-summaryが、おそらくdefault.xml実際に削除するために追加できる別のルールがありますか?
ACJ


5

少なくともMagento 2.3 Commerceでは、[ストア]> [構成]> [カタログ]> [製品レビュー]で管理者のレビューを無効にできます。 ここに画像の説明を入力してください


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ます。

最善の方法は、モジュール出力を無効にするか、モジュールを完全に無効にすることです(ただし、コードは自動ロードされます)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.