Введение
В одной из прошлых статей мы выводили разницу цен в виде экономии, выводимую в интерфейсе карточки товара MiniShop2, где создавали простой сниппет с использованием полей актуальной и старой цены — old_price и price.
В некоторых случаях симпатичнее было бы вывести процент % экономии. В таком случае мы немного изменим формулу расчёта и создадим новый сниппет «discount».
Создание сниппета «discount»
Создаём сниппет с именем discount и помещаем в него следующий код:
$price2 = str_replace(" ","",empty($price) ? 0 : $price);
$old_price2 = str_replace(" ","",empty($old_price) ? 0 : $old_price);
if($old_price2 > 0){
return '<div class="percent">Скидка: <span>'.number_format(round((($old_price2 - $price2) / $old_price2) * 100), 0, '.', ' ') .'</span> %</div>';
}
return '';
Вывод в карточке товара
Осталось вывести сниппет некэшируемым в карточке товара или в сетке товаров:
В этом сниппете мы сразу убрали десятичный разделитель MiniShop2 ms2_price_format.