Automattic\WooCommerce\Blocks\BlockTypes

ProductFilterRating::get_rating_counts()privateWC 1.0

Retrieve the rating filter data for current block.

Method of the class: ProductFilterRating{}

No Hooks.

Return

null. Nothing (null).

Usage

// private - for code of main (parent) class only
$result = $this->get_rating_counts( $block );
$block(WP_Block) (required)
Block instance.

ProductFilterRating::get_rating_counts() code WC 9.8.2

private function get_rating_counts( $block ) {
	$filters    = Package::container()->get( QueryFilters::class );
	$query_vars = ProductCollectionUtils::get_query_vars( $block, 1 );

	if ( ! empty( $query_vars['tax_query'] ) ) {
		// phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_tax_query
		$query_vars['tax_query'] = ProductCollectionUtils::remove_query_array( $query_vars['tax_query'], 'rating_filter', true );
	}

	if ( isset( $query_vars['taxonomy'] ) && false !== strpos( $query_vars['taxonomy'], 'pa_' ) ) {
		unset(
			$query_vars['taxonomy'],
			$query_vars['term']
		);
	}

	$counts = $filters->get_rating_counts( $query_vars );
	$data   = array();

	foreach ( $counts as $key => $value ) {
		$data[] = array(
			'rating' => $key,
			'count'  => $value,
		);
	}

	return $data;
}