Magento 2 muestra precio normal con precio especial en minicart

9

Puedo establecer el precio normal junto con el precio especial mientras pongo una función personalizada en el archivo central

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

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

    return $priceExclTax;
}

Y llamando a esta función en el archivo central, vendor/magento/module-weee/view/frontend/templates/checkout/cart/item/price/sidebar.phtml

Así que obtengo ambos precios correctamente, pero quiero anular eso

vendor/magento/module-weee/Block/Item/Price/Renderer.php bloquear en mi módulo personalizado.

He creado di.xml con el siguiente código:

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

Y solo pon esa getUnitItemPriceExclTax()función en ese bloque.

ingrese la descripción de la imagen aquí

Ronak Chauhan
fuente

Respuestas:

11

No necesita anular el archivo Renderer.php en core y nunca debe hacerlo en core. Puede simplemente hacer cambios en el archivo sidebar.phtml y configurar sus cambios.

Puede obtener el precio del siguiente método:

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

Después de obtener los cambios anteriores, puede hacerlo debajo del código en su archivo de plantilla:

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

He realizado cambios en Magento Versión 2.1.1.

Rakesh Jesadiya
fuente
2
en Magento2.1.8 Ya no se renderiza en sidebar.phtml. Veo de vendor / magento / module-checkout / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xml, la plantilla es vendor / magento / module-checkout / view / frontend / web / template / minicart / item / price.html Ahora lo hago No sé cómo obtener el precio de origen.
user1506075