Automattic\WooCommerce\Internal\ProductFilters

QueryClauses::add_query_clausespublicWC 1.0

Add conditional query clauses based on the filter params in query vars.

There isn't a clause for rating filter because we use tax_query for it (product_visibility).

Method of the class: QueryClauses{}

No Hooks.

Returns

Array.

Usage

$QueryClauses = new QueryClauses();
$QueryClauses->add_query_clauses( $args, $wp_query ): array;
$args(array) (required)
Query args.
$wp_query(WP_Query) (required)
WP_Query object.

QueryClauses::add_query_clauses() code WC 10.3.3

public function add_query_clauses( array $args, \WP_Query $wp_query ): array {
	if ( $wp_query->get( 'filter_stock_status' ) ) {
		$stock_statuses = trim( $wp_query->get( 'filter_stock_status' ) );
		$stock_statuses = explode( ',', $stock_statuses );

		$args = $this->add_stock_clauses( $args, $stock_statuses );
	}

	if ( $wp_query->get( 'min_price' ) || $wp_query->get( 'max_price' ) ) {
		$price_range = array(
			'min_price' => $wp_query->get( 'min_price' ),
			'max_price' => $wp_query->get( 'max_price' ),
		);
		$price_range = array_filter( $price_range );
		$args        = $this->add_price_clauses( $args, $price_range );
	}

	$args = $this->add_attribute_clauses(
		$args,
		$this->get_chosen_attributes( $wp_query->query_vars )
	);

	$args = $this->add_taxonomy_clauses(
		$args,
		$this->get_chosen_taxonomies( $wp_query->query_vars )
	);

	return $args;
}