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.