WC_Product::set_rating_counts PHP Method

set_rating_counts() public method

Set rating counts. Read only.
public set_rating_counts ( array $counts )
$counts array
    public function set_rating_counts($counts)
    {
        $this->set_prop('rating_counts', array_filter(array_map('absint', (array) $counts)));
    }

Usage Example

 /**
  * Get product rating count for a product. Please note this is not cached.
  *
  * @since 2.7.0
  * @param WC_Product $product
  * @return array of integers
  */
 public static function get_rating_counts_for_product(&$product)
 {
     global $wpdb;
     $counts = array();
     $raw_counts = $wpdb->get_results($wpdb->prepare("\n\t\t\tSELECT meta_value, COUNT( * ) as meta_value_count FROM {$wpdb->commentmeta}\n\t\t\tLEFT JOIN {$wpdb->comments} ON {$wpdb->commentmeta}.comment_id = {$wpdb->comments}.comment_ID\n\t\t\tWHERE meta_key = 'rating'\n\t\t\tAND comment_post_ID = %d\n\t\t\tAND comment_approved = '1'\n\t\t\tAND meta_value > 0\n\t\t\tGROUP BY meta_value\n\t\t", $product->get_id()));
     foreach ($raw_counts as $count) {
         $counts[$count->meta_value] = absint($count->meta_value_count);
     }
     $product->set_rating_counts($counts);
     $data_store = $product->get_data_store();
     $data_store->update_rating_counts($product);
     return $counts;
 }
WC_Product