PHP per mostrare il distintivo di vendita non funziona correttamente
-
12-12-2019 - |
Domanda
Sto cercando di visualizzare un badge di vendita sull'immagine dei prodotti con un prezzo speciale sul catalogo e sulle pagine dei prodotti.
Ho usato il seguente 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; ?>
.
Visualizza il badge correttamente a meno che il prezzo speciale di data non sia passato quando visualizza ancora il badge anche se il prodotto non è più al prezzo speciale.
L'idea è per il distintivo da visualizzare nei seguenti scenari:
- .
- Non ci sono speciali da date o speciali per date (cioè il prodotto è permanentemente su speciale fino al modificato manualmente)
- Esiste una data ma non data (cioè una volta che la data finalizza il prodotto è permanentemente su speciale fino al modifica manuale)
- Non esiste una data ma c'è una fino ad oggi (cioè il prodotto è in particolare fino ad oggi passa)
- c'è da e per data (cioè il prodotto è solo su speciale all'interno del periodo definito)
Sono sicuro che ho appena perso qualcosa di ovvio ma qualcuno può indicare quello che è per favore?
Soluzione
hugh, tu non hai bisogno di molti codici. Controllare il prezzo finale del prezzo è meno quindi il prezzo del prodotto. Il prezzo di riferimento è calcola automaticamente.
Prova questo
<?php if($_product->getFinalPrice()<$_product->getPrice()): ?>
<span class="sale-badge"><?php echo $this->__('Sale') ?></span>
<?php endif; ?>
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange