Dans la page de détail du produit, il affiche un pourcentage de remise. lorsque j'ouvre la page de liste, il ne peut pas afficher le pourcentage du produit configurable.
Veuillez me donner la solution pour cela.
J'ai utilisé le code ci-dessous pour cela, mais cela ne fonctionne pas pour le produit configurable.
<div class="discount-p">
<?php
if($_product->getTypeId() == "simple") {
$simplePrice = $_product->getPrice();
} else {
$_children = $_product->getTypeInstance()->getUsedProducts($_product);
foreach ($_children as $child){
$simplePrice = $child->getPrice();
break;
}
}
$_finalPrice =$_product->getFinalPrice();
$_price = $simplePrice;
if($_finalPrice < $_price) {
$_savingPercent = 100 - round(($_finalPrice / $_price)*100);
echo '('. $_savingPercent . '%off)';
}
?>
</div>
Réponses:
Vous pouvez ajouter créer un fichier de prix saperate pour le produit configurable et le code qu'il contient.
ajouter du code
comme c'est un produit configurable impossible de le vérifier par
getFinalPrice()
etgetSpecialPrice()
.ajoutez le code ci-dessous pour le produit configurable.
Remarque: vous pouvez l'obtenir directement en modifiant le fichier
app\design\frontend\Vendor\theme\Magento_Catalog\templates\product\price\final_price.phtml
, il vous suffit de mettre une condition pour le produit configurablepourcentage apparaîtra dans la page de liste
la source
Je ferais quelque chose comme ça
et appelez-le dans le modèle
la source
Vous pouvez le vérifier sans remplacer aucun fichier. Vous devez utiliser afterPlugin pour cela.
1) Créez un fichier di.xml dans app / code / VendorName / ModuleName / etc / frontend
2) Créez le fichier du plugin ProductList.php dans app / code / VendorName / ModuleName / Plugin
Sortie (dans le produit configurable):
J'espère, cela peut vous être utile.
la source
Veuillez essayer avec le code ci-dessous:
J'espère que son travail pour vous
la source