WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Платформа для конвертации и монетизации трафика
функция не описана

WC_Abstract_Order::set_item_discount_amounts() protected WC 3.2.0

After applying coupons via the WC_Discounts class, update line items.

{} Это метод класса: WC_Abstract_Order{}

Хуков нет.

Возвращает

Null. Ничего.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->set_item_discount_amounts( $discounts );
$discounts(WC_Discounts) (обязательный)
Discounts class.

Список изменений

С версии 3.2.0 Введена.

Код WC_Abstract_Order::set_item_discount_amounts() WC 4.7.1

<?php
protected function set_item_discount_amounts( $discounts ) {
	$item_discounts = $discounts->get_discounts_by_item();

	if ( $item_discounts ) {
		foreach ( $item_discounts as $item_id => $amount ) {
			$item = $this->get_item( $item_id, false );

			// If the prices include tax, discounts should be taken off the tax inclusive prices like in the cart.
			if ( $this->get_prices_include_tax() && wc_tax_enabled() && 'taxable' === $item->get_tax_status() ) {
				$taxes = WC_Tax::calc_tax( $amount, WC_Tax::get_rates( $item->get_tax_class() ), true );

				// Use unrounded taxes so totals will be re-calculated accurately, like in cart.
				$amount = $amount - array_sum( $taxes );
			}

			$item->set_total( max( 0, $item->get_total() - $amount ) );
		}
	}
}