Magento 2: วิธีที่ปลอดภัยและง่ายที่สุดในการปิดการใช้งานเปรียบเทียบผลิตภัณฑ์และโมดูลรายการที่ต้องการ


34

ฉันกำลังสร้าง Magento 2.0 เพียงเพื่อขาย 2 ผลิตภัณฑ์ของฉันทางออนไลน์ โมดูลเปรียบเทียบผลิตภัณฑ์และสิ่งที่ปรารถนานั้นไม่เกี่ยวข้องสำหรับฉัน

ฉันจะลบโมดูลเหล่านั้นอย่างปลอดภัยและง่ายดายได้อย่างไร ฉันไม่ต้องการแฮ็ครหัสหลัก

คำตอบ:


52

ใน Magento 2 ตอนนี้คุณสามารถลบฟังก์ชั่นเปรียบเทียบผลิตภัณฑ์ผ่านไฟล์ xml ได้แล้ว มีการกำหนดบล็อกเปรียบเทียบผลิตภัณฑ์vendor/magento/module-catalog/view/frontend/layout/default.xml

และคุณสามารถลบออกได้โดยเพิ่มdefault.xmlไฟล์ลงในธีมของคุณใน:<theme_dir>/Magento_Catalog/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="catalog.compare.sidebar" remove="true"/> 
        <referenceBlock name="wishlist_sidebar" remove="true" />
    </body>
</page>

ทำงานเหมือนจับใจ Magento 2.0.6
camdixon

FYI ต่อไปนี้เป็นตำแหน่งที่แน่นอนของคำแนะนำ: devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/ …
thdoan

11
มันใช้งานไม่ได้ในเวอร์ชั่น 2.1.X
Jai

สิ่งที่เกี่ยวกับการลบบล็อกรายการที่ฉันต้องการ ?
Razvan Zamfir

คุณสามารถเพิ่มสิ่งนี้เพื่อลบบล็อกสิ่งที่อยากได้จากแถบด้านข้าง: <referenceBlock name = "Favorites_sidebar" remove = "true" />
Frank

32

คุณสามารถเพิ่มคำสั่ง xml ต่อไปนี้ให้กับไฟล์ xml เริ่มต้นของธีมที่กำหนดเองซึ่งควรอยู่ที่/app/design/frontend/Vendor/theme/Magento_Theme/layout/default.xmlหรือไปยังMagento_Catalog/layout/default.xmlไฟล์ในธีมที่กำหนดเองของคุณ:

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

ซึ่งกำจัด

  • แถบด้านข้างเปรียบเทียบบล็อก
  • เปรียบเทียบบล็อกจากหน้ารายละเอียดผลิตภัณฑ์
  • เพิ่มในสิ่งที่ปรารถนาจากหน้ารายละเอียดผลิตภัณฑ์

หากต้องการลบเพิ่มเพื่อเปรียบเทียบจากหน้าหมวดหมู่ (รายการผลิตภัณฑ์แคตตาล็อก) ให้ใช้:

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

5
คำตอบที่ดีคุณต้องเพิ่ม<referenceBlock name="category.product.addto.compare" remove="true"/>เพื่อลบลิงค์ออกจากรายการสินค้าแคตตาล็อก
เดนิส Pshenov

ขอบคุณสำหรับคำตอบของคุณคุณพลาดที่จะเพิ่ม<referenceBlock name="catalogsearch.product.addto.compare" remove="true"/>ฟังก์ชั่นการเปรียบเทียบออกจากผลการค้นหาแคตตาล็อก
Cristiano Casciotti

ขอบคุณ @Devtype
Praveen Chelumalla

15

ฉันใส่รหัสที่มาสำหรับบล็อกเปรียบเทียบทั้งหมด สำหรับ 2.3 นี่คือรายการที่สมบูรณ์ นี่จะเป็นการลบลิงค์เปรียบเทียบออกจากส่วนหัวด้วย

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

ทำงานได้อย่างสมบูรณ์แบบโดยไม่ต้องแก้ไขไฟล์ต้นฉบับใด ๆ ที่สามารถเปลี่ยนแปลงได้ในการอัพเดตในอนาคต
PedroKTFC

สิ่งนี้ควรเข้าสู่ default.xml ของธีมที่กำหนดเองใช่ไหม
Daniel Black

6

ปิดการใช้งานสิ่งที่ปรารถนาในร้านค้า> การกำหนดค่า> ลูกค้า> สิ่งที่ปรารถนาและปิดการใช้งานฟังก์ชั่นเปรียบเทียบวางบรรทัดนี้ด้านล่างใน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="catalog.compare.link" remove="true"/>
        <referenceBlock name="catalog.compare.sidebar" remove="true"/>
    </body>
</page>

ตั้งค่า$ showCompareเป็น false ในเทมเพลตต่อไปนี้:

Magento / Catalog / view / frontend / template / product / list / items.phtml Magento / Catalog / view / frontend / template / product / widget / new / content / new_grid.phtml Magento / Catalog / view / frontend / template / product / widget / new / content / new_list.phtml Magento / Catalog / view / frontend / template / product / widget / content / grid.phtml

ลบการเปรียบเทียบเจ้าหน้าที่ที่เกี่ยวข้องจากแม่แบบต่อไปนี้:

Magento / Catalog / view / frontend / template / product / list.phtml Magento / Catalog / view / frontend / template / product / listing.phtml Magento / Wishslist / view / frontend / แม่แบบ / item / configure / addto.phtml

การอ้างอิง: https://coderwall.com/p/vsqmbw/remove-product-compare-functionality-on-magento-2-frontend


ในฐานะของ 2.1.x โซลูชันนี้น่าจะเป็นที่สุด
themanwhoknowstheman

4

Magento ให้ยูทิลิตี้บรรทัดคำสั่งเพื่อเป็นตัวอย่าง

php bin/magento module:disable -f Magento_Wishlist

เนื่องจากสิ่งที่อยากได้ Magento ขึ้นอยู่กับโมดูลอื่นเช่นกันดังนั้นการใช้โดยไม่มี [-f] จะไม่ปิดใช้งานหรือเปิดใช้งานโมดูลและจะแสดงคำเตือนเช่น

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากใช้คำสั่งด้วยแฟล็ก [-f] จะแก้ปัญหานี้ได้

ป้อนคำอธิบายรูปภาพที่นี่

โปรดตรวจสอบคำเตือนเมื่อคุณใช้คำสั่งอย่างแข็งขัน

การแจ้งเตือน: คุณใช้ตัวเลือก --force เป็นผลให้โมดูลอาจทำงานไม่ถูกต้อง

คุณสามารถตรวจสอบข้อมูลที่สมบูรณ์ที่นี่เช่นกันhttp://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli-subcommands-enable.html#instgde-cli-subcommands-enable- โมดูล


ขอบคุณ คำตอบของคุณดูมีแนวโน้ม แต่ฉันกังวลเล็กน้อย ... นี่จะไม่ทำลายฟังก์ชันการทำงานอื่น ๆ หรือไม่
Malaiselvan

คุณสามารถลองแบบเดียวกันได้ใน Test Instance ไม่ควรเบรคสิทธิ์ส่วนใหญ่จะเปลี่ยนที่จะต้องมีการเปลี่ยนแปลง
webkul

4

มันสามารถปิดการใช้งานจาก

ร้านค้า> การกำหนดค่า> ลูกค้า> รายการสินค้าที่ต้องการ> ตัวเลือกทั่วไป> เปิดใช้งาน: ไม่


4

UPDATE:หลังจากการอัปเดต Magento 2 core ตอนนี้คำตอบของ klara เป็นวิธีที่ดีที่สุดในการปิดใช้งานฟังก์ชั่นเปรียบเทียบ โปรดอ่านด้านล่าง!

ในการปิดการใช้งานฟังก์ชั่นรายการที่ต้องการคุณต้องไปที่การบริหารภายใต้ร้านค้า> การกำหนดค่า> ลูกค้า> รายการที่ต้องการและเลือกเปิดใช้งาน: ไม่

เพื่อปิดใช้งานฟังก์ชั่นเปรียบเทียบไม่มีตัวเลือกในการบริหาร คุณต้องแทนที่module-catalog/view/frontend/templates/product/list.phtmlเทมเพลต

หากต้องการทำเช่นนั้นคุณจะต้องคัดลอกเนื้อหาของไฟล์ที่ฉันตั้งชื่อไว้ข้างต้นในไฟล์ใหม่ภายในธีมของคุณที่อยู่ด้าน<theme_dir>/Magento_Catalog/templates/product/list.phtmlล่าง จากนั้นคุณต้องการลบบรรทัดที่เกี่ยวข้อง:

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

พวกนี้อยู่ที่สาย 111 ถึง 121 ใน Magento 2.0.1


3

วิธีปิดใช้งานแถบข้าง:

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

เพื่อลบ"Add to compare"ลิงค์ในหน้าผลิตภัณฑ์คุณจำเป็นต้องเขียนทับMagento_Catalog/templates/product/view/addto.phtmlไฟล์ในธีมของคุณและลบ anchor เปรียบเทียบที่นั่น วิธีนี้คุณสามารถเก็บสิ่งที่อยากได้ แต่ลบฟังก์ชั่นการเปรียบเทียบ


3

สำหรับ Magento 2.1.x

การเพิ่มไฟล์ default.xml ให้กับธีมของคุณใน: /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>

เพิ่มด้วย <referenceBlock name = "catalog.compare.link" remove = "true" /> เพื่อลบลิงค์ในเมนูด้านบน
Aref Ben Lazrek

3

นี่คือส่วนขยายของโซลูชันอื่น ๆ ที่มีให้ที่นี่ ใช้ไฟล์/app/design/frontend/Vendor/theme/Magento_Theme/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="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

คุณสามารถเพิ่มบรรทัด: <referenceBlock name="catalog.compare.sidebar" remove="true"/> Magento -> administrator -> PRODUCTS -> Categories -> Custom Design -> Custom Layout Update


0

หลังจากที่พยายามทุกวิธีการข้างต้นสำหรับหน้าผลิตภัณฑ์แต่ละผมพบว่าไฟล์หนึ่งที่สำคัญในกรณีของฉันมีธีมติดตั้ง addtocart.phtmlแต่ใช้ธีมเด็กของตัวเอง ตัวเลือกอื่น ๆ จะใช้งานได้สำหรับมุมมองประเภทกริดและมุมมองรายการประเภท (ดังกล่าวข้างต้นlist.phtmlแต่ในแต่ละหน้าผลิตภัณฑ์:

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

สิ่งนี้จะต้องมีการแสดงความคิดเห็น ชั่วโมงและเวลาพยายามและเป็นไฟล์นี้

หากใครพบเป็นอย่างอื่นโปรดแจ้งให้เราทราบ!


หาวิธีแก้ปัญหาฉันคิดว่าคำตอบของฉันคือแนวทางปฏิบัติที่ดีที่สุด
Goldy

0

วิธีแก้ปัญหาที่ง่ายและรวดเร็ว M2.1
หากคุณไม่ต้องการสร้างธีมที่กำหนดเองและ / หรือต้องการทำงานจากแบ็กเอนด์คุณสามารถทำสิ่งต่อไปนี้ในแบ็กเอนด์ นำทางไปยังหน้า cms ​​หมวดหมู่หรือหน้าผลิตภัณฑ์ที่คุณต้องการแก้ไข ตัวอย่างสำหรับหน้าหมวดหมู่: ภายใต้การออกแบบ -> การปรับปรุงเค้าโครง XML เพิ่มรหัสต่อไปนี้:

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

หมายเหตุ: หากคุณต้องการบล็อกเพิ่มเติมให้อยู่ในแถบด้านข้างให้ตั้งค่าคอนเทนเนอร์เพิ่มเติมเป็น "false" เช่นนี้:

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

0

รายการความปรารถนาสามารถปิดการใช้งานผ่านทางแบ็กเอนด์ตามที่เขียนไว้ในคำตอบอื่น ๆ

มีโมดูล FOSS ซึ่งสามารถลบฟังก์ชั่นการเปรียบเทียบในระดับต่อร้านค้าได้:

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

ฉันทำรีวิวสั้น ๆ :

  • เพิ่มตัวจัดการโครงร่างเพื่อลบบล็อกเปรียบเทียบ
  • สิ่งนี้ใช้รหัสเดียวกับในคำตอบที่นี่ (แต่เปิดใช้งานในระดับร้านค้าเท่านั้น)
  • ลิงก์ addto จะถูกลบออกโดยการฉีด CSS เข้าไปในหัวซึ่งฟังดูแปลกไปเล็กน้อย แต่หลีกเลี่ยงการแทนที่เทมเพลตหลัก

0

ฉันใช้ชุดรูปแบบ Ultimo ใน Magento 2.3.3 ฉันไม่สามารถปิดใช้งานลิงก์เปรียบเทียบจากไฟล์catalog_product_view.xmlของชุดรูปแบบเนื่องจากการตั้งค่าไม่ได้มาจากที่นั่น แต่อยู่ใน:

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

ฉันไปหาทางออกที่รวดเร็วและสกปรกเพียงลบสิ่งต่อไปนี้:

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

ปุ่มเปรียบเทียบหายไปตลอดกาลอย่างไรก็ตามหากคุณทำการอัพเกรด Magento มันจะกลับมาอีกครั้งดังนั้นจึงต้องลบอีกครั้ง


-2

คุณสามารถใช้โมดูลที่ชำระเงินนี้เพื่อปิดใช้งานการเปรียบเทียบใน magento 2 ($ 20)
http://www.mage20.com/magento-2-disable-compare.html

คุณสมบัติ :

  • ไม่มีเทมเพลตเขียนใหม่
  • เพียงแค่กำหนดค่าใช่ / ไม่ใช่ในการกำหนดค่าระบบ
  • ทำงานได้ดีบน magento 2.x
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.