Na stronie szczegółów produktu pokazuje procent rabatu. kiedy otwieram stronę z listą, nie może pokazywać wartości procentowej dla konfigurowalnego produktu.
Proszę o rozwiązanie tego problemu.
Użyłem do tego poniższego kodu, ale nie działa on w przypadku konfigurowalnego produktu.
<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>
Odpowiedzi:
Możesz dodać stwórz plik cenowy dla konfigurowalnego produktu i kodu w nim.
dodaj kod
ponieważ jest to produkt konfigurowalny, nie można go sprawdzić za pomocą
getFinalPrice()
igetSpecialPrice()
.dodaj poniższy kod dla konfigurowalnego produktu.
Uwaga: możesz to uzyskać bezpośrednio poprzez zmianę pliku
app\design\frontend\Vendor\theme\Magento_Catalog\templates\product\price\final_price.phtml
, wystarczy ustawić warunek dla konfigurowalnego produktuprocent wyświetli się na stronie z listą
źródło
Zrobiłbym coś takiego
i nazwij to w szablonie
źródło
Możesz to sprawdzić bez zastępowania żadnego pliku. Musisz do tego użyć afterPlugin .
1) Utwórz plik di.xml w app / code / VendorName / ModuleName / etc / frontend
2) Utwórz plik wtyczki ProductList.php w app / code / VendorName / ModuleName / Plugin
Wyjście (w konfigurowalnym produkcie):
Mam nadzieję, że może ci to pomóc.
źródło
Spróbuj z poniższym kodem:
Mam nadzieję, że to dla ciebie działa
źródło