Вывести общий рейтинг товаров?
Всем привет.
Пытаюсь вывести общий средний рейтинг всех товаров выведенных через цикл.
В итоге выводится средний рейтинг одного товара.
Кто может помочь?
<?php
$products = wc_get_products( ['post_type'=>'product', 'post_parent'=>$post->ID, 'post_type'=>'product'] );
foreach( $products as $prod ){
$prod_rating_count = $prod->get_rating_count();
$prod_review_count = $prod->get_review_count();
$prod_average = $prod->get_average_rating();
}
echo wc_get_rating_html( $prod_average );
?>
Ответы (1 шт):
Автор решения: Valerii Vasyliev
→ Ссылка
У Вас в цикле выводится значение среднего рейтинга последнего товара + нужно добавить wc_get_products аргумента на статус публикации и выборку всех товаров
Попробуйте так
$total_raiting = 0;
$products = wc_get_products( ['post_type'=>'product', 'post_parent'=>$post->ID, 'post_type'=>'product', 'limit' => -1, 'status' => 'publish'] );
if ($products) {
foreach( $products as $prod ){
$total_raiting += $prod->get_average_rating();
}
echo wc_get_rating_html( $total_raiting / sizeof($products) );
} else {
echo wc_get_rating_html( $total_raiting );
}