Magento 2 mostra il prezzo normale con il prezzo speciale su minicart


9

Posso impostare il prezzo normale insieme al prezzo speciale mentre inserisco la funzione personalizzata nel file principale

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

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

    return $priceExclTax;
}

E chiamando questa funzione nel file principale, vendor/magento/module-weee/view/frontend/templates/checkout/cart/item/price/sidebar.phtml

Quindi ottenere entrambi i prezzi correttamente, ma voglio sostituirlo

vendor/magento/module-weee/Block/Item/Price/Renderer.php blocco sul mio modulo personalizzato.

Ho creato di.xml con il codice seguente:

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

E metti semplicemente quella getUnitItemPriceExclTax()funzione in quel blocco.

inserisci qui la descrizione dell'immagine

Risposte:


11

Non è necessario sovrascrivere il file Renderer.php nel core e non dovresti mai farlo nel core. Puoi semplicemente modificare il file sidebar.phtml e impostare le modifiche.

Puoi ottenere il prezzo dal seguente metodo:

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

Dopo aver ottenuto le modifiche sopra puoi farlo sotto il codice nel tuo file modello:

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

Ho apportato modifiche in Magento versione 2.1.1.


2
in Magento2.1.8 Non viene più visualizzato in sidebar.phtml. Vedo da vendor / magento / module-checkout / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xml, Il modello è vendor / magento / module-checkout / view / frontend / web / template / minicart / item / price.html Ora lo faccio non so come ottenere il prezzo di origine.
user1506075
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.