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.
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:
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.xml
tệ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>
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.xml
hoặc để Magento_Catalog/layout/default.xml
gử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
Để 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"/>
<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.
<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.
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>
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
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ư
sau khi sử dụng lệnh với cờ [-f] sẽ giải quyết vấn đề nà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Ậ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.phtml
mẫ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
để 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.phtml
tệ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.
Đố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>
Đâ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.xml
và 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>
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!
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>
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:
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.
Bạn có thể sử dụng mô-đun trả phí này để vô hiệu hóa so sánh trong magento 2 ($ 20).
http://www.mage20.com/magento-2-disable-compare.html
Các tính năng :