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()函数放在该块中。

在此处输入图片说明

Answers:


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'9
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.