WC_API_Taxes::query_tax_rates()protectedWC 2.5.0

Helper method to get tax rates objects

Метод класса: WC_API_Taxes{}

Хуков нет.

Возвращает

Массив.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->query_tax_rates( $args, $count_only );
$args(массив) (обязательный)
-
$count_only(true|false)
-
По умолчанию: false

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

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

Код WC_API_Taxes::query_tax_rates() WC 7.7.2

protected function query_tax_rates( $args, $count_only = false ) {
	global $wpdb;

	$results = '';

	// Set args
	$args = $this->merge_query_args( $args, array() );

	$query = "
		SELECT tax_rate_id
		FROM {$wpdb->prefix}woocommerce_tax_rates
		WHERE 1 = 1
	";

	// Filter by tax class
	if ( ! empty( $args['tax_rate_class'] ) ) {
		$tax_rate_class = esc_sql( 'standard' !== $args['tax_rate_class'] ? sanitize_title( $args['tax_rate_class'] ) : '' );
		$query .= " AND tax_rate_class = '$tax_rate_class'";
	}

	// Order tax rates
	$order_by = ' ORDER BY tax_rate_order';

	// Pagination
	$per_page   = absint( isset( $args['posts_per_page'] ) ? $args['posts_per_page'] : get_option( 'posts_per_page' ) );
	$offset     = 1 < $args['paged'] ? ( $args['paged'] - 1 ) * $per_page : 0;
	$pagination = sprintf( ' LIMIT %d, %d', $offset, $per_page );

	if ( ! $count_only ) {
		$results = $wpdb->get_results( $query . $order_by . $pagination );
	}

	$wpdb->get_results( $query );
	$headers              = new stdClass;
	$headers->page        = $args['paged'];
	$headers->total       = (int) $wpdb->num_rows;
	$headers->is_single   = $per_page > $headers->total;
	$headers->total_pages = ceil( $headers->total / $per_page );

	return array(
		'results' => $results,
		'headers' => $headers,
	);
}