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