我正在尝试在目录和产品页面上以特殊价格显示产品的图像上的销售徽章。

我使用了以下php:

<?php // sale badge ?>
<?php
    $specialPrice = $_product->getSpecialPrice();
    $specialPriceFromDate = $_product->getSpecialFromDate();
    $specialPriceToDate   = $_product->getSpecialToDate();
?>
<?php if ($specialPrice || ($currentDate >= $specialPriceFromDate && $currentDate <= $specialPriceToDate) || ($currentDate >= $specialPriceFromDate && $specialPriceFromDate != '' && $specialPriceToDate == '')): ?>
    <span class="sale-badge"><?php echo $this->__('Sale') ?></span>
<?php endif; ?>
.

这将正确显示徽章,除非日期特殊价格已经通过,即使产品不再以特殊价格仍然显示徽章。

该想法是在以下情景中显示徽章:

  1. 没有特别的或特殊的日期设定(即,产品永久地在手动改变之前永久)
  2. 从日期出发但没有迄今为止(即,一旦从日期通过该产品,将永久地在手动改变之前永久性)
  3. 没有日期,但有一个迄今为止(即产品在特殊情况下,直到迄今为止通过)
  4. 有一个来自和迄今为止的(即产品仅在规定时期内的特殊)

    我相信我刚错过了一些明显的东西,但有人能指出它是什么?

有帮助吗?

解决方案

hugh,你不需要大量的代码。避票最终价格少于产品价格。主价是自动计算的。

试试这个

<?php if($_product->getFinalPrice()<$_product->getPrice()): ?>
  <span class="sale-badge"><?php echo $this->__('Sale') ?></span>
    <?php endif; ?>
.

许可以下: CC-BY-SA归因
scroll top