Magento 2 mostra preço normal com preço especial no minicart

9

Eu posso definir o preço normal junto com o preço especial enquanto coloco a função personalizada no arquivo principal

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

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

    return $priceExclTax;
}

E chamando essa função no arquivo principal, vendor/magento/module-weee/view/frontend/templates/checkout/cart/item/price/sidebar.phtml

Então, obtendo os dois preços corretamente, mas quero substituir isso

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

Eu criei di.xml com o código abaixo:

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

E apenas coloque essa getUnitItemPriceExclTax()função nesse bloco.

insira a descrição da imagem aqui

Ronak Chauhan
fonte

Respostas:

11

Você não precisa substituir o arquivo Renderer.php no núcleo e nunca deve fazê-lo no núcleo. Você pode apenas alterar o arquivo sidebar.phtml e definir suas alterações.

Você pode obter o preço abaixo do método:

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

Após obter as alterações acima, você pode fazê-lo abaixo do código no seu arquivo de modelo:

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

Fiz alterações no Magento Versão 2.1.1.

Rakesh Jesadiya
fonte
2
no Magento2.1.8 Não é mais renderizado em sidebar.phtml. Eu vejo no fornecedor / magento / check-out do módulo / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xml. O modelo é fornecedor / magento / check-out do módulo / view / frontend / web / template / minicart / item / price.html não sabe como obter o preço de origem.
User1506075