Automattic\WooCommerce\Blocks\BlockTypes\ProductCollection

QueryBuilder::get_final_query_args()publicWC 1.0

Get final query args based on provided values

Method of the class: QueryBuilder{}

No Hooks.

Return

null. Nothing (null).

Usage

$QueryBuilder = new QueryBuilder();
$QueryBuilder->get_final_query_args(;

QueryBuilder::get_final_query_args() code WC 9.6.0

public function get_final_query_args(
	$collection_args,
	$common_query_values,
	$query,
	$is_exclude_applied_filters = false
) {
	$orderby_query    = $query['orderby'] ? $this->get_custom_orderby_query( $query['orderby'] ) : array();
	$on_sale_query    = $this->get_on_sale_products_query( $query['on_sale'] );
	$stock_query      = $this->get_stock_status_query( $query['stock_status'] );
	$visibility_query = is_array( $query['stock_status'] ) ? $this->get_product_visibility_query( $stock_query, $query['stock_status'] ) : array();
	$featured_query   = $this->get_featured_query( $query['featured'] ?? false );
	$attributes_query = $this->get_product_attributes_query( $query['product_attributes'] );
	$taxonomies_query = $query['taxonomies_query'] ?? array();
	$tax_query        = $this->merge_tax_queries( $visibility_query, $attributes_query, $taxonomies_query, $featured_query );
	$date_query       = $this->get_date_query( $query['timeFrame'] ?? array() );
	$price_query_args = $this->get_price_range_query_args( $query['priceRange'] ?? array() );
	$handpicked_query = $this->get_handpicked_query( $query['handpicked_products'] ?? false );

	// We exclude applied filters to generate product ids for the filter blocks.
	$applied_filters_query = $is_exclude_applied_filters ? array() : $this->get_queries_by_applied_filters();

	// Allow collections to provide their own query parameters.
	$handlers = $this->collection_handler_store[ $collection_args['name'] ] ?? null;
	if ( isset( $handlers['build_query'] ) ) {
		$collection_query = call_user_func(
			$handlers['build_query'],
			$collection_args,
			$common_query_values,
			$query,
			$is_exclude_applied_filters
		);
	} else {
		$collection_query = array();
	}

	return $this->merge_queries(
		$common_query_values,
		$orderby_query,
		$on_sale_query,
		$stock_query,
		$tax_query,
		$applied_filters_query,
		$date_query,
		$price_query_args,
		$handpicked_query,
		$collection_query
	);
}