Magento 2は通常の価格でミニカートの特別価格を表示します


9

カスタム関数をコアファイルに入れながら、通常価格特別価格を設定できます

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

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

    return $priceExclTax;
}

そしてこの関数をコアファイルに呼び出し、 vendor/magento/module-weee/view/frontend/templates/checkout/cart/item/price/sidebar.phtml

したがって、両方の価格を正しく取得しますが、それを上書きしたいと思います

vendor/magento/module-weee/Block/Item/Price/Renderer.php カスタムモジュールをブロックします。

以下のコードでdi.xmlを作成しました:

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

そしてgetUnitItemPriceExclTax()、そのブロックにその関数を配置します。

ここに画像の説明を入力してください

回答:


11

コアでRenderer.phpファイルをオーバーライドする必要はありません。コアで行うべきではありません。sidebar.phtmlファイルを変更して、変更を設定するだけです。

あなたは以下の方法から価格を得ることができます:

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

上記の変更を行った後、テンプレートファイルのコードの下で実行できます。

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

Magentoバージョン2.1.1で変更を行いました。


2
Magento2.1.8ではsidebar.phtmlでレンダリングされなくなりました。vendor / magento / module-checkout / view / frontend / layout / checkout_cart_sidebar_item_price_renderers.xmlから確認できます。テンプレートはvendor / magento / module-checkout / view / frontend / web / template / minicart / item / price.htmlです元の価格を取得する方法がわかりません。
user1506075
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.