Проблема: В WooCommerce рейтинг товаров выводится только когда у товара есть отзывы с оценкой товара. Нам требуется вывести рейтинг звезд товаров даже если товар еще не оценен. Т.е. Будет пустой рейтинг.
Решение: Для принудительного вывода звездного рейтинга товаров в каталоге / категориях WooCommerce необходимо в файл темы function.php
вставить код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//Вывод рейтинга в звездах в каталог
add_filter('woocommerce_product_get_rating_html', 'your_get_rating_html', 10, 2);
function your_get_rating_html($rating_html, $rating) {
if ( $rating > 0 ) {
$title = sprintf( __( 'Оценка %s из 5', 'woocommerce' ), $rating );
} else {
$title = 'Еще не оценено';
$rating = 0;
}
$rating_html = '
$rating_html .= '. ( ( $rating / 5 ) * 100 ) . '%">' . $rating . ' ' . __( 'из 5', 'woocommerce' ) . '';
$rating_html .= '
'
;
return $rating_html;
}
|
Спасибо источнику woohelp.ru
Чтобы на странице товара тоже выводился рейтинг, даже если нет комментариев с оценками, необходимо изменить файл /wp-content/plugins/woocommerce/templates/single-product/rating.php
[сначала копируем файл из папки плагина в нашу тему папку /wp-content/themes/mytheme/woocommerce/single-product/
]. В представленном коде нужно убрать конструкцию if: if ( $rating_count > 0 ) :
.
1
2
3
4
5
6
7
8
9
10
11
|
if ( $rating_count > 0 ) : /* удаляем условие (внимательней - закрывающий тег php должен остаться) */ ?>
div class="woocommerce-product-rating">
echo wc_get_rating_html( $average, $rating_count ); ?>
if ( comments_open() ) : ?>a href=" echo get_permalink( $product->get_id() ); ?>#reviews" class="woocommerce-review-link" rel="nofollow">( printf( _n( '%s customer review', '%s customer reviews', $review_count, 'woocommerce' ), '' . esc_html( $review_count ) . '' ); ?>)/a> endif ?>
/div>
endif; /* Удаляем конец if */ ?>
|