PHP показать продажу значок не работает правильно
-
12-12-2019 - |
Вопрос
Я пытаюсь показать значок продажи над изображением продуктов со специальной ценой на каталоге и страницах продукта.
Я использовал следующий 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; ?>
.
Это правильно отображает значок, если специальная цена на сегодняшний день не пройдет, когда она по-прежнему отображает значок, даже если продукт больше не по специальной цене.
Идея предназначена для отображения значка в следующих сценариях:
- нет специальных или специальных для набора датеков (I.e. Продукт постоянно навсегда навсегда до тех пор, пока не изменяется вручную)
- Есть с даты, но нет на сегодняшний день (то есть как только из даты проходит продукт навсегда на специальное время до изменений вручную)
- нет с даты, но есть на сегодняшний день (то есть продукт на специальном, пока на сегодняшний день не проходит)
- есть от а до на сегодняшний день (то есть продукт только на специальном виде в течение определенного периода)
Я уверен, что я просто пропустил что-то очевидное, но может кто-то указать, что это так, пожалуйста?
Решение
Hugh, у вас не нужно много кодов. Просто проверка окончательной цен меньше, чем цена продукта. Линальная цена рассчитывает автоматически.
попробуйте это
<?php if($_product->getFinalPrice()<$_product->getPrice()): ?>
<span class="sale-badge"><?php echo $this->__('Sale') ?></span>
<?php endif; ?>
. Не связан с magento.stackexchange