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

WC_Cart_Totals::adjust_non_base_location_price() protected WC 3.2.0

Only ran if woocommerce_adjust_non_base_location_prices is true.

If the customer is outside of the base location, this removes the base taxes. This is off by default unless the filter is used.

Uses edit context so unfiltered tax class is returned.

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

Хуков нет.

Возвращает

Объект.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->adjust_non_base_location_price( $item );
$item(объект) (обязательный)
Item to adjust the prices of.

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

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

Код WC_Cart_Totals::adjust_non_base_location_price() WC 4.7.1

<?php
protected function adjust_non_base_location_price( $item ) {
	if ( $item->price_includes_tax && $item->taxable ) {
		$base_tax_rates = WC_Tax::get_base_tax_rates( $item->product->get_tax_class( 'unfiltered' ) );

		if ( $item->tax_rates !== $base_tax_rates ) {
			// Work out a new base price without the shop's base tax.
			$taxes     = WC_Tax::calc_tax( $item->price, $base_tax_rates, true );
			$new_taxes = WC_Tax::calc_tax( $item->price - array_sum( $taxes ), $item->tax_rates, false );

			// Now we have a new item price.
			$item->price = $item->price - array_sum( $taxes ) + array_sum( $new_taxes );
		}
	}
	return $item;
}