WordPress at Your Fingertips
function is not described


ProductQuery::adjust_price_filter_for_tax_class() protected WC 1.0

Adjusts a price filter based on a tax class and whether or not the amount includes or excludes taxes.

This calculation logic is based on wc_get_price_excluding_tax and wc_get_price_including_tax in core.

{} It's a method of the class: ProductQuery{}




// protected - for code of main (parent) or child class
$result = $this->adjust_price_filter_for_tax_class( $price_filter, $tax_class );
$price_filter(float) (required)
Price filter amount as entered.
$tax_class(string) (required)
Tax class for adjustment.

Code of ProductQuery::adjust_price_filter_for_tax_class() WC 5.6.0

protected function adjust_price_filter_for_tax_class( $price_filter, $tax_class ) {
	$tax_display    = get_option( 'woocommerce_tax_display_shop' );
	$tax_rates      = WC_Tax::get_rates( $tax_class );
	$base_tax_rates = WC_Tax::get_base_tax_rates( $tax_class );

	// If prices are shown incl. tax, we want to remove the taxes from the filter amount to match prices stored excl. tax.
	if ( 'incl' === $tax_display ) {
		$taxes = apply_filters( 'woocommerce_adjust_non_base_location_prices', true ) ? WC_Tax::calc_tax( $price_filter, $base_tax_rates, true ) : WC_Tax::calc_tax( $price_filter, $tax_rates, true );
		return $price_filter - array_sum( $taxes );

	// If prices are shown excl. tax, add taxes to match the prices stored in the DB.
	$taxes = WC_Tax::calc_tax( $price_filter, $tax_rates, false );

	return $price_filter + array_sum( $taxes );