Automattic\WooCommerce\Internal\ProductFilters

QueryClauses::add_stock_clausespublicWC 1.0

Add query clauses for stock filter.

Method of the class: QueryClauses{}

No Hooks.

Returns

Array.

Usage

$QueryClauses = new QueryClauses();
$QueryClauses->add_stock_clauses( $args, $stock_statuses ): array;
$args(array) (required)
Query args.
$stock_statuses(array) (required)
Stock statuses to be queried.

QueryClauses::add_stock_clauses() code WC 10.3.3

public function add_stock_clauses( array $args, array $stock_statuses ): array {
	$stock_statuses = array_filter( $stock_statuses );

	if ( empty( $stock_statuses ) ) {
		return $args;
	}

	$filtered_stock_statuses = array_intersect(
		array_map( 'esc_sql', $stock_statuses ),
		array_keys( wc_get_product_stock_status_options() )
	);

	if ( ! empty( $filtered_stock_statuses ) ) {
		$args['join']   = $this->append_product_sorting_table_join( $args['join'] );
		$args['where'] .= ' AND wc_product_meta_lookup.stock_status IN ("' . implode( '","', $filtered_stock_statuses ) . '")';
	}

	if ( ! empty( $stock_statuses ) && empty( $filtered_stock_statuses ) ) {
		$args['where'] .= ' AND 1=0';
	}

	return $args;
}