Magento 2 pokazuje normalną cenę ze specjalną ceną na minicart


9

Mogę ustawić cenę normalną wraz z ceną specjalną, a jednocześnie umieścić niestandardową funkcję w pliku podstawowym

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

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

    return $priceExclTax;
}

I wywołanie tej funkcji do pliku podstawowego, vendor/magento/module-weee/view/frontend/templates/checkout/cart/item/price/sidebar.phtml

Tak więc prawidłowe ustalenie obu cen, ale chcę to zastąpić

vendor/magento/module-weee/Block/Item/Price/Renderer.php blok na moim module niestandardowym.

Stworzyłem di.xml z poniższym kodem:

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

I po prostu umieść tę getUnitItemPriceExclTax()funkcję w tym bloku.

wprowadź opis zdjęcia tutaj

Odpowiedzi:


11

Nie musisz zastępować pliku Renderer.php w rdzeniu i nigdy nie powinieneś tego robić w rdzeniu. Możesz po prostu wprowadzić zmiany w pliku sidebar.phtml i ustawić zmiany.

Możesz uzyskać cenę z poniższej metody:

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

Po uzyskaniu powyższych zmian możesz to zrobić poniżej kodu w pliku szablonu:

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

Wprowadziłem zmiany w Magento w wersji 2.1.1.


2
w Magento2.1.8 Nie jest już renderowany w sidebar.phtml. Widzę od dostawcy / magento / module-checkout / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xml, szablon to dostawca / magento / module-checkout / view / frontend / web / template / minicart / item / price.html Teraz robię nie wiem jak uzyskać cenę pochodzenia.
user1506075,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.