Magento 2 แสดงราคาปกติพร้อมราคาพิเศษใน minicart


9

ฉันสามารถตั้งราคาปกติพร้อมกับราคาพิเศษในขณะที่ใส่ฟังก์ชั่นที่กำหนดเองในไฟล์ core

vendor/magento/module-weee/Block/Item/Price/Renderer.php

public function getUnitItemPriceExclTax()
{
    $priceExclTax = $this->getItem()->getProduct()->getPrice();

    return $priceExclTax;
}

และเรียกฟังก์ชั่นนี้เป็นไฟล์หลัก vendor/magento/module-weee/view/frontend/templates/checkout/cart/item/price/sidebar.phtml

รับราคาทั้งคู่อย่างถูกต้อง แต่ฉันต้องการแทนที่นั่น

vendor/magento/module-weee/Block/Item/Price/Renderer.php บล็อกในโมดูลที่กำหนดเองของฉัน

ฉันได้สร้าง di.xml ด้วยรหัสด้านล่าง:

<preference for="Magento\Weee\Block\Item\Price\Renderer" type="<namespace\<module_name>\Block\Item\Price\Renderer"/>

และใส่getUnitItemPriceExclTax()ฟังก์ชั่นนั้นในบล็อกนั้น

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

คำตอบ:


11

คุณไม่จำเป็นต้องแทนที่ไฟล์ Renderer.php ในแกนและคุณไม่ควรทำในแกน คุณสามารถเปลี่ยนแปลงได้ในไฟล์ sidebar.phtml และตั้งค่าการเปลี่ยนแปลงของคุณ

คุณจะได้รับราคาจากวิธีการด้านล่าง:

$finalPrice = $item->getProduct()->getFinalPrice();
$normalPrice = $item->getProduct()->getPrice();

หลังจากได้รับการเปลี่ยนแปลงข้างต้นคุณสามารถทำได้ด้านล่างรหัสในไฟล์แม่แบบของคุณ

<?php if ($block->displayPriceWithWeeeDetails()): ?>
        <span class="minicart-tax-total">
    <?php else: ?>
        <span class="minicart-price">
    <?php endif; ?>
        <?php /* @escapeNotVerified */ echo $block->formatPrice($block->getUnitDisplayPriceExclTax()); ?> 
        </span>

    <?php if($normalPrice != $finalPrice){ ?>
    <span class="minicart-old-price">
            <?php /* @escapeNotVerified */ echo $block->formatPrice($normalPrice); ?>
    </span>
    <?php }   ?>

ฉันทำการเปลี่ยนแปลงใน Magento เวอร์ชัน 2.1.1 แล้ว


2
ใน Magento2.1.8 มันจะไม่แสดงผลใน sidebar.phtml อีกต่อไป ฉันเห็นจากผู้ขาย / magento / module-checkout / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xml เทมเพลตคือผู้ขาย / magento / module-checkout / view / frontend / เว็บ / แม่แบบ / minicart / item / price.html ตอนนี้ฉันทำได้ ไม่ทราบวิธีรับราคาเริ่มต้น
user1506075
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.