Magento 2: Cách an toàn và dễ dàng nhất để vô hiệu hóa So sánh sản phẩm & Mô-đun Wishlist


34

Tôi đang xây dựng Magento 2.0 chỉ để bán 2 sản phẩm của mình trực tuyến. Các sản phẩm so sánh và mô-đun wishlist là không liên quan đến tôi.

Làm thế nào tôi an toàn và dễ dàng loại bỏ các mô-đun? Tôi không muốn hack mã lõi.

Câu trả lời:


52

Trong Magento 2, giờ đây bạn thực sự có thể xóa chức năng So sánh sản phẩm thông qua tệp xml. So sánh khối sản phẩm được xác định trongvendor/magento/module-catalog/view/frontend/layout/default.xml

và bạn có thể xóa nó bằng cách thêm một default.xmltệp vào chủ đề của bạn trong:<theme_dir>/Magento_Catalog/layout/default.xml

bên trong mà bạn loại bỏ khối của bạn như sau:

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

Làm việc như người ở. Magento 2.0.6
camdixon

FYI, đây là vị trí chính xác của các hướng dẫn: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/ Kẻ
thdoan

11
Nó không hoạt động trong phiên bản 2.1.X
Jai

Còn việc xóa khối Danh sách mong muốn của tôi thì sao?
Razvan Zamfir

Bạn có thể thêm phần này để xóa khối danh sách mong muốn khỏi thanh bên: <ReferenceBlock name = "wishlist_sidebar" remove = "true" />
Frank

32

Bạn có thể thêm hướng dẫn xml sau vào tệp xml mặc định của chủ đề tùy chỉnh sẽ được đặt tại /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlhoặc để Magento_Catalog/layout/default.xmlgửi tệp trong chủ đề tùy chỉnh của bạn:

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

mà thoát khỏi

  • khối so sánh thanh bên
  • khối so sánh từ trang chi tiết sản phẩm
  • thêm vào danh sách mong muốn từ trang chi tiết sản phẩm

Để xóa thêm để so sánh từ các trang danh mục (danh sách sản phẩm danh mục) sử dụng:

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

5
Câu trả lời tuyệt vời, bạn cũng cần thêm <referenceBlock name="category.product.addto.compare" remove="true"/>để xóa liên kết khỏi danh sách sản phẩm danh mục.
Denis Pshenov

Cảm ơn câu trả lời của bạn, bạn đã bỏ lỡ để thêm cũng <referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>loại bỏ chức năng so sánh khỏi kết quả tìm kiếm danh mục.
Cristiano Casciotti

Cảm ơn bạn @Devtype
Praveen Chelumalla

15

Tôi đã lấy nguồn cho tất cả các khối so sánh. Đối với 2.3 đây là danh sách đầy đủ. Điều này cũng sẽ loại bỏ liên kết so sánh từ tiêu đề.

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

Điều này hoạt động hoàn hảo mà không phải sửa đổi bất kỳ tệp nguồn nào có thể thay đổi trong các bản cập nhật trong tương lai.
PedroKTFC

Điều này sẽ đi vào default.xml của một chủ đề tùy chỉnh phải không?
Daniel Black

6

Vô hiệu hóa Danh sách mong muốn trên Cửa hàng> Cấu hình> Khách hàng> Danh sách mong muốn và để tắt chức năng So sánh dán các dòng này bên dưới trên Magento_Catalog / layout / default.xml của chủ đề của bạn.

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

Đặt $ showCompare thành false trong các mẫu sau:

Magento / Catalog / view / frontend / samples / sản phẩm / list / items.phtml Magento / Catalog / view / frontend / samples / sản phẩm / widget / new / content / new_grid.phtml Magento / Catalog / view / frontend / samples / sản phẩm / widget / new / content / new_list.phtml Magento / Catalog / view / frontend / samples / sản phẩm / widget / content / Grid.phtml

Xóa so sánh nhân viên liên quan khỏi các mẫu sau:

Magento / Catalog / view / frontend / samples / sản phẩm / list.phtml Magento / Catalog / view / frontend / samples / sản phẩm / list.phtml Magento / Wishslist / view / frontend / samples / item / configure / addto.phtml

Tham khảo: https://coderwall.com/p/vsqmbw/remove-product-compare-feftality-on-magento-2-frontend


Tính đến 2.1.x, giải pháp này có lẽ được kết hợp tốt nhất.
themanwhoknowstheman

4

Magento cung cấp tiện ích dòng lệnh cho ví dụ này

php bin/magento module:disable -f Magento_Wishlist

vì danh sách mong muốn của Magento cũng phụ thuộc vào mô-đun khác, do đó, việc sử dụng mà không có [-f] sẽ không vô hiệu hóa hoặc kích hoạt mô-đun và sẽ hiển thị cảnh báo như

nhập mô tả hình ảnh ở đây

sau khi sử dụng lệnh với cờ [-f] sẽ giải quyết vấn đề này

nhập mô tả hình ảnh ở đây

vui lòng kiểm tra cảnh báo khi bạn đang sử dụng lệnh mạnh mẽ

Thông báo: Bạn đã sử dụng tùy chọn --force. Kết quả là các mô-đun có thể không hoạt động đúng.

Bạn cũng có thể kiểm tra thông tin đầy đủ tại đây http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- mô-đun


Cảm ơn. Câu trả lời của bạn có vẻ đầy hứa hẹn nhưng tôi hơi lo lắng ... Điều này sẽ không phá vỡ bất kỳ chức năng nào khác phải không?
Malaiselvan

Bạn có thể thử tương tự trong Trường hợp thử nghiệm, không nên chủ yếu cho phép thay đổi quyền thay đổi cần phải thay đổi
webkul

4

Nó có thể bị vô hiệu hóa từ

cửa hàng> Cấu hình> Khách hàng> Danh sách mong muốn> Tùy chọn chung> Đã bật: Không.


4

CẬP NHẬT: Sau khi cập nhật lõi Magento 2, câu trả lời của klara bây giờ là cách tốt nhất để tắt chức năng So sánh. Xin vui lòng đọc dưới đây !

Để tắt chức năng Danh sách mong muốn, bạn cần vào phần quản trị, trong Cửa hàng> Cấu hình> Khách hàng> Danh sách mong muốn và chọn Kích hoạt: Không.

Để tắt chức năng So sánh, không có tùy chọn nào trong quản trị. Bạn cần ghi đè lên module-catalog/view/frontend/templates/product/list.phtmlmẫu.

Để làm như vậy, bạn cần sao chép nội dung của tệp tôi đã đặt tên ở trên trong một tệp mới bên trong chủ đề của bạn nằm bên dưới <theme_dir>/Magento_Catalog/templates/product/list.phtml. Sau đó, bạn muốn xóa các dòng liên quan:

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

Đó là những dòng 111 đến 121 trong Magento 2.0.1


3

để tắt thanh bên:

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

để xóa "Add to compare"liên kết trên trang sản phẩm, bạn cần ghi đè Magento_Catalog/templates/product/view/addto.phtmltệp trong chủ đề của mình và xóa neo so sánh ở đó. Bằng cách này bạn có thể giữ danh sách mong muốn nhưng loại bỏ chức năng so sánh.


3

Đối với Magento 2.1.x

Thêm tệp default.xml vào chủ đề của bạn trong: /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>

thêm <
ReferenceBlock

3

Đây là một phần mở rộng của các giải pháp khác được cung cấp ở đây. Sử dụng tệp /app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlvà thêm vào như sau

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

Bạn có thể thêm dòng: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> quản trị viên -> SẢN PHẨM -> Danh mục -> Thiết kế tùy chỉnh -> Cập nhật bố cục tùy chỉnh


0

Sau khi thử tất cả các phương pháp trên cho các trang sản phẩm riêng lẻ, tôi tìm thấy một tệp quan trọng trong trường hợp của tôi, với một chủ đề được cài đặt, nhưng sử dụng chủ đề con của riêng tôi addtocart.phtml. Các tùy chọn khác sẽ hoạt động cho chế độ xem danh mục lưới và chế độ xem danh mục (đã nói ở trên list.phtml, nhưng trên các trang sản phẩm riêng lẻ:

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

Điều này cần phải được nhận xét ra. Giờ và giờ cố gắng và đó là tập tin này.

Nếu ai tìm thấy khác, xin vui lòng cho tôi biết!


tìm một giải pháp. Tôi nghĩ rằng câu trả lời của tôi là cách thực hành tốt nhất
Goldy

0

Giải pháp M2.1 nhanh chóng và dễ dàng.
Nếu bạn không muốn tạo một chủ đề tùy chỉnh và / hoặc thích làm việc từ phụ trợ, bạn có thể thực hiện các thao tác sau trong phần phụ trợ. Điều hướng đến trang cms, danh mục hoặc trang sản phẩm bạn muốn thay đổi. Ví dụ cho Trang Danh mục: bên dưới Thiết kế -> Cập nhật Bố cục XML thêm mã sau đây:

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

Lưu ý: nếu bạn muốn các khối bổ sung vẫn ở trong thanh bên, hãy đặt thùng chứa bổ sung thành "false" như thế này:

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

0

Danh sách mong muốn có thể được vô hiệu hóa thông qua phụ trợ, như được viết trong các câu trả lời khác.

Có một mô-đun FOSS có thể loại bỏ chức năng so sánh ở cấp độ mỗi cửa hàng:

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

Tôi đã làm một bài đánh giá ngắn:

  • Nó thêm một tay cầm bố trí để loại bỏ các khối so sánh
  • Điều này về cơ bản sử dụng mã giống như trong các câu trả lời ở đây (nhưng chỉ được kích hoạt ở cấp độ cửa hàng)
  • Liên kết addto được loại bỏ bằng cách đưa CSS vào đầu, nghe có vẻ hơi lạ nhưng tránh thay thế các mẫu cốt lõi

0

Tôi đang sử dụng chủ đề Ultimo trên Magento 2.3.3. Tôi không thể vô hiệu hóa liên kết so sánh từ tệp catalog_product_view.xml của chủ đề vì các cài đặt không đến từ đó nhưng chúng được đặt trong:

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

Tôi đã đi đến giải pháp nhanh chóng và bẩn thỉu, chỉ cần loại bỏ như sau:

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

Nút so sánh sẽ biến mất mãi mãi, tuy nhiên nếu bạn thực hiện nâng cấp Magento thì nó sẽ quay lại nên sẽ cần phải gỡ bỏ lại.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.