@alexiusgrey

Как вывести именно процент,а не сумму скидки?

Мне надо вывести в кастомном блоке именно общий процент скидки для всех товаров. находящихся в корзине.
Я нашел способ вывести денежное значение, сколько вообще экономится в деньгах на всех товарх, что в корзине.
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 целых валютных единиц.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 2
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
(a/b-1)*100
( $regular_price / $sale_price -1)*100;
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Обычная же пропорция.
Цена : 100%
Цена со скидкой : x%
x = (100% / Цена) * Цена со скидкой = Цена со скидкой / Цена * 100%
Скидка = (1 - Цена со скидкой / Цена) * 100%

(1 - 157.90 / 158) * 100% = 0.06%
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы