Na página de detalhes do produto, está mostrando uma porcentagem de desconto. quando abro a página da lista, ela não pode mostrar a porcentagem do produto configurável.
Por favor, me dê a solução para isso.
Eu usei o código abaixo para isso, mas ele não está funcionando para o produto configurável.
<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>
Respostas:
Você pode adicionar um arquivo de preço saperate para produtos e códigos configuráveis.
adicionar código
como é um produto configurável, não é possível verificá-lo com
getFinalPrice()
egetSpecialPrice()
.adicione o código abaixo para o produto configurável.
Nota: você pode obtê-lo diretamente alterando o arquivo
app\design\frontend\Vendor\theme\Magento_Catalog\templates\product\price\final_price.phtml
, basta colocar a condição para o produto configurávelporcentagem será exibida na página de listagem
fonte
Eu faria algo assim
e chamá-lo no modelo
fonte
Você pode verificá-lo sem substituir nenhum arquivo. Você precisa usar o afterPlugin para isso.
1) Criar di.xml arquivo em app / code / VendorName / ModuleName / etc / frontend
2) Crie o arquivo de plug-in ProductList.php em app / code / VendorName / ModuleName / Plugin
Saída (no produto configurável):
Espero que seja útil para você.
fonte
Por favor, tente com o código abaixo:
Espero que funcione para você
fonte