En la página de detalles del producto, muestra un porcentaje de descuento. Cuando abro la página de la lista, no se puede mostrar el porcentaje del producto configurable.
Por favor, dame la solución para eso.
He utilizado el siguiente código para eso, pero no funciona para el producto 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>
Respuestas:
Puede agregar crear un archivo de precio separado para el producto configurable y el código dentro de él.
agregar código
ya que es producto configurable no es posible verificarlo por
getFinalPrice()
ygetSpecialPrice()
.agregue el siguiente código para el producto configurable.
Nota: puede obtener esto directamente cambiando el archivo
app\design\frontend\Vendor\theme\Magento_Catalog\templates\product\price\final_price.phtml
, solo tiene que poner la condición para el producto configurableporcentaje se mostrará en la página de listado
fuente
Haría algo como esto
y llamarlo en plantilla
fuente
Puede verificarlo sin anular ningún archivo. Necesitas usar afterPlugin para eso.
1) Cree el archivo di.xml en app / code / VendorName / ModuleName / etc / frontend
2) Cree el archivo de complemento ProductList.php en app / code / VendorName / ModuleName / Plugin
Salida (en producto configurable):
Espero, tal vez sea útil para ti.
fuente
Por favor, intente con el siguiente código:
Espero que funcione para ti
fuente