Automattic\WooCommerce\Internal\ProductFilters
QueryClauses::add_query_clauses
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() 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;
}