Magento 2 показать нормальную цену по специальной цене на миникарте

9

Я могу установить Нормальную цену вместе со Специальной ценой, в то же время поместив пользовательскую функцию в основной файл

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

Я сделал изменения в версии 2.1.1 Magento.

Ракеш Джесадия
источник
2
в Magento2.1.8 больше не отображается в sidebar.phtml. Я вижу из vendor / magento / module-checkout / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xml, шаблон является vendor / magento / module-checkout / view / frontend / web / template / minicart / item / price.html Теперь я делаю не знаю, как получить цену происхождения.
user1506075