Magento 2 affiche le prix normal avec un prix spécial sur minicart


9

Je peux définir le prix normal avec le prix spécial tout en mettant une fonction personnalisée dans le fichier core

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

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

    return $priceExclTax;
}

Et en appelant cette fonction dans le fichier core, vendor/magento/module-weee/view/frontend/templates/checkout/cart/item/price/sidebar.phtml

Donc, obtenir les deux prix correctement, mais je veux remplacer cela

vendor/magento/module-weee/Block/Item/Price/Renderer.php bloquer sur mon module personnalisé.

J'ai créé di.xml avec le code ci-dessous:

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

Et mettez simplement cette getUnitItemPriceExclTax()fonction dans ce bloc.

entrez la description de l'image ici

Réponses:


11

Vous n'avez pas besoin de remplacer le fichier Renderer.php dans le noyau et vous ne devriez jamais le faire dans le noyau. Vous pouvez simplement modifier le fichier sidebar.phtml et définir vos modifications.

Vous pouvez obtenir le prix de la méthode ci-dessous:

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

Après avoir obtenu les modifications ci-dessus, vous pouvez le faire sous le code dans votre fichier de modèle:

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

J'ai effectué des modifications dans Magento version 2.1.1.


2
dans Magento2.1.8 Il n'est plus rendu dans sidebar.phtml. Je vois de vendeur / magento / module-checkout / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xml, le modèle est vendor / magento / module-checkout / view / frontend / web / template / minicart / item / price.html Maintenant je fais ne sais pas comment obtenir le prix d'origine.
user1506075
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.