Мне надо вывести в кастомном блоке именно общий процент скидки для всех товаров. находящихся в корзине.
Я нашел способ вывести денежное значение, сколько вообще экономится в деньгах на всех товарх, что в корзине.
function bbloomer_show_total_discount_cart_checkout() {
$discount_total = 0;
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
$product = $values['data'];
if ( $product->is_on_sale() ) {
$regular_price = $product->get_regular_price();
$sale_price = $product->get_sale_price();
$discount = ( (float)$regular_price - (float)$sale_price ) * (int)$values['quantity'];
$discount_total += $discount;
}
}
if ( $discount_total > 0 ) {
echo '<tr><th>You Saved</th><td data-title="You Saved">' . wc_price( $discount_total + WC()->cart->get_discount_total() ) .'</td></tr>';
}
}
Просто цепляю к нужному мне хуку.
Но я в математике что-то совсем неуч, что аж стыдно.
Как правильно вывести именно процент? Какая формула вместо
$discount = ( (float)$regular_price - (float)$sale_price ) * (int)$values['quantity'];
Я пробовал $discount = ( $regular_price / $sale_price ); но выводит "1"
И наоборот $discount = ( $sale_price / $regular_price ); тоже 1. а там скидка 10 центов, не может быть 1%, там должно быть 0,00....1, не знаю сколько нулей, цена 158 целых валютных единиц.