Magento 2: Cara aman dan termudah untuk menonaktifkan Bandingkan produk & Modul Wishlist


34

Saya membangun Magento 2.0 hanya untuk menjual 2 produk saya secara online. Modul perbandingan produk dan daftar harapan tidak relevan bagi saya.

Bagaimana saya menghapus modul-modul itu dengan aman dan mudah? Saya tidak ingin meretas kode inti.

Jawaban:


52

Di Magento 2, Anda sekarang sebenarnya dapat menghapus Bandingkan fungsi produk melalui file xml. Bandingkan blok produk didefinisikan dalamvendor/magento/module-catalog/view/frontend/layout/default.xml

dan Anda dapat menghapusnya dengan menambahkan default.xmlfile ke tema Anda di:<theme_dir>/Magento_Catalog/layout/default.xml

di mana Anda menghapus blok Anda sebagai berikut:

<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>

Bekerja seperti pesona. Magento 2.0.6
camdixon

FYI, inilah lokasi persis dari instruksi: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/…
thdoan

11
Ini tidak berfungsi dalam versi 2.1.X
Jai

Bagaimana dengan menghapus blok Daftar Keinginan Saya ?
Razvan Zamfir

Anda dapat menambahkan ini untuk menghapus blok wishlist dari sidebar: <referenceBlock name = "wishlist_sidebar" remove = "true" />
Frank

32

Anda dapat menambahkan instruksi xml berikut ke file xml default tema kustom Anda yang harusnya terletak di /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlatau untuk Magento_Catalog/layout/default.xmlfile dalam tema kustom Anda:

    <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    <referenceBlock name="view.addto.compare" remove="true" />
    <referenceBlock name="view.addto.wishlist" remove="true" />

yang menghilangkan

  • blok pembanding sidebar
  • bandingkan blok dari halaman detail produk
  • tambahkan ke daftar harapan dari halaman detail produk

Untuk menghapus tambahkan untuk membandingkan dari halaman kategori (daftar produk katalog) gunakan:

<referenceBlock name="category.product.addto.compare" remove="true"/>

5
Jawaban bagus, Anda juga perlu menambahkan <referenceBlock name="category.product.addto.compare" remove="true"/>untuk menghapus tautan dari daftar produk katalog.
Denis Pshenov

Terima kasih atas jawaban Anda, Anda telah melewatkan untuk menambahkan juga <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>yang menghapus fungsi bandingkan juga dari hasil pencarian katalog.
Cristiano Casciotti

Terima kasih @Devtype
Praveen Chelumalla

15

Saya mengambil sumber untuk semua blok pembanding. Untuk 2.3 ini adalah daftar lengkap. Ini juga akan menghapus tautan perbandingan dari header.

<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>

Ini berfungsi sempurna tanpa harus memodifikasi file sumber apa pun yang dapat berubah di masa depan pembaruan.
PedroKTFC

Ini harus masuk ke default.xml dari tema khusus kan?
Daniel Black

6

Nonaktifkan Wishlist di Toko> Konfigurasi> Pelanggan> Wishlist dan untuk menonaktifkan fungsi Bandingkan tempelkan baris ini di bawah ini di Magento_Catalog / layout / default.xml tema Anda.

<?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>

Setel $ showCompare ke false di templat berikut:

Magento / Katalog / view / frontend / templates / produk / daftar / items.phtml Magento / Katalog / view / frontend / templates / produk / widget / baru / konten / new_grid.phtml Magento / Katalog / view / frontend / templates / produk / widget / baru / konten / new_list.phtml Magento / Katalog / view / frontend / templates / produk / widget / konten / grid.phtml

Hapus bandingkan staf terkait dari templat berikut:

Magento / Katalog / view / frontend / templates / produk / list.phtml Magento / Katalog / view / frontend / templates / produk / listing.phtml Magento / Wishslist / view / frontend / templates / item / configure / addto.phtml

Referensi: https://coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend


Pada 2.1.x solusi ini mungkin yang paling baik disatukan.
themanwhoknowstheman

4

Magento menyediakan utilitas baris perintah sebagai contoh

php bin/magento module:disable -f Magento_Wishlist

karena Magento wishlist tergantung pada modul lain juga jadi menggunakan tanpa [-f] tidak akan menonaktifkan atau mengaktifkan modul dan akan menampilkan peringatan seperti

masukkan deskripsi gambar di sini

setelah menggunakan perintah dengan flag [-f] akan menyelesaikan masalah ini

masukkan deskripsi gambar di sini

silakan periksa peringatan ketika Anda menggunakan perintah dengan paksa

Lansiran: Anda menggunakan opsi --force. Akibatnya, modul mungkin tidak berfungsi dengan baik.

Anda dapat memeriksa informasi lengkap di sini juga http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- modul


Terima kasih. Jawaban Anda terlihat menjanjikan tetapi saya agak gugup ... Apakah ini tidak akan merusak fungsi lainnya?
Malaiselvan

Anda dapat mencoba hal yang sama di Test Instance, itu tidak boleh rem terutama izin akan mengubah yang perlu diubah
webkul

4

Itu dapat dinonaktifkan dari

store> Konfigurasi> Pelanggan> Daftar Keinginan> Opsi umum> Diaktifkan: Tidak.


4

UPDATE: Setelah pembaruan inti Magento 2, jawaban klara sekarang adalah cara terbaik untuk menonaktifkan fungsi Bandingkan. Silakan baca di bawah ini!

Untuk menonaktifkan fungsi Daftar Keinginan, Anda harus masuk dalam administrasi, di bawah Toko> Konfigurasi> Pelanggan> Daftar Keinginan dan pilih Diaktifkan: Tidak.

Untuk menonaktifkan fungsi Bandingkan, tidak ada opsi dalam administrasi. Anda perlu mengganti module-catalog/view/frontend/templates/product/list.phtmltemplate.

Untuk melakukannya, Anda perlu menyalin konten file yang saya sebutkan di atas dalam file baru di dalam tema Anda yang berada di bawah <theme_dir>/Magento_Catalog/templates/product/list.phtml. Kemudian, Anda ingin menghapus garis yang bersangkutan:

<?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>

Itu ada di baris 111 hingga 121 di Magento 2.0.1


3

untuk menonaktifkan bilah sisi:

<body>
  <referenceBlock name="catalog.compare.sidebar" remove="true"/>
</body>

untuk menghapus "Add to compare"tautan pada halaman produk Anda perlu menimpa Magento_Catalog/templates/product/view/addto.phtmlfile dalam tema Anda dan menghapus anchor bandingkan di sana. Dengan cara ini Anda dapat menyimpan wishlist tetapi menghapus fungsi bandingkan.


3

Untuk Magento 2.1.x

Menambahkan file default.xml ke tema Anda di: /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>

tambahkan juga <referenceBlock name = "catalog.compare.link" remove = "true" /> untuk menghapus tautan di menu atas
Aref Ben Lazrek

3

Ini adalah perpanjangan dari solusi lain yang disediakan di sini. Gunakan file /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmldan tambahkan berikut ini

<?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>

1

Anda dapat menambahkan baris: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> administrator -> PRODUK -> Kategori -> Desain Kustom -> Pembaruan Tata Letak Kustom


0

Setelah mencoba semua metode di atas untuk masing-masing halaman produk, saya menemukan satu file yang penting dalam kasus saya, dengan tema yang diinstal, tetapi menggunakan tema anak saya sendiri addtocart.phtml. Opsi lain akan berfungsi untuk tampilan kategori kisi dan tampilan kategori daftar (yang disebutkan di atas list.phtml, tetapi pada halaman produk individual:

<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>

Ini perlu dikomentari. Berjam-jam mencoba dan itu adalah file ini.

Jika ada yang menemukan yang sebaliknya, beri tahu saya!


temukan solusinya. Saya kira jawaban saya adalah praktik terbaik
Goldy

0

M2.1 solusi cepat dan mudah.
Jika Anda tidak ingin membuat tema khusus dan / atau lebih suka bekerja dari backend, Anda dapat melakukan yang berikut di backend. Arahkan ke halaman cms, kategori atau halaman produk yang ingin Anda ubah. Contoh untuk Halaman Kategori: di bawah Desain -> Pembaruan Tata Letak XML tambahkan kode berikut:

<referenceContainer name="content">
    <referenceBlock name="catalog.compare.sidebar" remove="true" />
    <referenceContainer name="sidebar.additional" remove="true" />
 </referenceContainer>

Catatan: jika Anda ingin blok tambahan tetap berada di sidebar, atur wadah tambahan ke "false" seperti ini:

 <referenceContainer name="content">
     <referenceContainer name="sidebar.additional" remove="false" />
 </referenceContainer> 

0

Daftar keinginan dapat dinonaktifkan melalui backend, seperti yang ditulis dalam jawaban lain.

Ada modul FOSS yang dapat menghapus fungsi bandingkan pada tingkat per-store-view:

https://github.com/Joshua29LK/disable-compare-magento-2

Saya melakukan tinjauan singkat:

  • Ia menambahkan pegangan tata letak untuk menghapus blok pembanding
  • Ini pada dasarnya menggunakan kode yang sama dengan jawaban di sini (tetapi diaktifkan hanya pada tingkat toko)
  • Link addto dihapus dengan menyuntikkan CSS ke kepala, yang terdengar agak aneh tetapi menghindari mengganti template inti

0

Saya menggunakan tema Ultimo di Magento 2.3.3. Saya tidak bisa menonaktifkan tautan perbandingan dari file catalog_product_view.xml tema karena pengaturannya tidak berasal dari sana tetapi mereka berada di:

vendor/magento/module-catalog/view/frontend/layout/catalog_product_view.xml

Saya mencari solusi cepat dan kotor, cukup hapus yang berikut ini:

                    <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>

Tombol bandingkan hilang selamanya, namun jika Anda melakukan upgrade Magento itu akan kembali sehingga perlu dihapus lagi.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.