/**
* Get product rating for a product. Please note this is not cached.
*
* @since 2.7.0
* @param WC_Product $product
* @return float
*/
public static function get_average_rating_for_product(&$product)
{
global $wpdb;
$count = $product->get_rating_count();
if ($count) {
$ratings = $wpdb->get_var($wpdb->prepare("\n\t\t\t\tSELECT SUM(meta_value) FROM {$wpdb->commentmeta}\n\t\t\t\tLEFT JOIN {$wpdb->comments} ON {$wpdb->commentmeta}.comment_id = {$wpdb->comments}.comment_ID\n\t\t\t\tWHERE meta_key = 'rating'\n\t\t\t\tAND comment_post_ID = %d\n\t\t\t\tAND comment_approved = '1'\n\t\t\t\tAND meta_value > 0\n\t\t\t", $product->get_id()));
$average = number_format($ratings / $count, 2, '.', '');
} else {
$average = 0;
}
$product->set_average_rating($average);
$data_store = $product->get_data_store();
$data_store->update_average_rating($product);
return $average;
}