Automattic\WooCommerce\Blocks\BlockTypes\ProductCollection
QueryBuilder::get_filter_by_rating_query()
Return a query that filters products by rating.
Method of the class: QueryBuilder{}
No Hooks.
Return
Array
.
Usage
// private - for code of main (parent) class only $result = $this->get_filter_by_rating_query();
QueryBuilder::get_filter_by_rating_query() QueryBuilder::get filter by rating query code WC 9.6.1
private function get_filter_by_rating_query() { $filter_rating_values = get_query_var( RatingFilter::RATING_QUERY_VAR ); if ( empty( $filter_rating_values ) ) { return array(); } $parsed_filter_rating_values = explode( ',', $filter_rating_values ); $product_visibility_terms = wc_get_product_visibility_term_ids(); if ( empty( $parsed_filter_rating_values ) || empty( $product_visibility_terms ) ) { return array(); } $rating_terms = array_map( function ( $rating ) use ( $product_visibility_terms ) { return $product_visibility_terms[ 'rated-' . $rating ]; }, $parsed_filter_rating_values ); return array( // phpcs:ignore WordPress.DB.SlowDBQuery 'tax_query' => array( array( 'field' => 'term_taxonomy_id', 'taxonomy' => 'product_visibility', 'terms' => $rating_terms, 'operator' => 'IN', 'rating_filter' => true, ), ), ); }