WC_Abstract_Order::set_item_discount_amounts( WC_Discounts $discounts )
After applying coupons via the WC_Discounts class, update line items.
Description Description
Parameters Parameters
- $discounts
-
(Required) Discounts class.
Source Source
File: includes/abstracts/abstract-wc-order.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 ) ); } } }
Changelog Changelog
Version | Description |
---|---|
3.2.0 | Introduced. |