Automattic\WooCommerce\Blocks\BlockTypes\ProductCollection
QueryBuilder::get_product_visibility_query()
Return a query for product visibility depending on their stock status.
Method of the class: QueryBuilder{}
No Hooks.
Return
Array
. Tax query for product visibility.
Usage
// private - for code of main (parent) class only $result = $this->get_product_visibility_query( $stock_query, $stock_status );
- $stock_query(array) (required)
- Stock status query.
- $stock_status(array) (required)
- Selected stock status.
QueryBuilder::get_product_visibility_query() QueryBuilder::get product visibility query code WC 9.6.0
private function get_product_visibility_query( $stock_query, $stock_status ) { $product_visibility_terms = wc_get_product_visibility_term_ids(); $product_visibility_not_in = array( is_search() ? $product_visibility_terms['exclude-from-search'] : $product_visibility_terms['exclude-from-catalog'] ); // Hide out of stock products. if ( empty( $stock_query ) && ! in_array( 'outofstock', $stock_status, true ) ) { $product_visibility_not_in[] = $product_visibility_terms['outofstock']; } return array( // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_tax_query 'tax_query' => array( array( 'taxonomy' => 'product_visibility', 'field' => 'term_taxonomy_id', 'terms' => $product_visibility_not_in, 'operator' => 'NOT IN', ), ), ); }