Проблема.В WooCommerce рейтинг товаров выводится только когда у товара есть отзывы с оценкой товара. Нам требуется вывести рейтинг звезд товаров даже если товар еще не оценен. Т.е. Будет пустой рейтинг.
Решение: Для принудительного вывода звездного рейтинга товаров в каталоге / категориях WooCommerce необходимо в файл темы functions.php
вставить Код №1:
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 = ‘<div class=”star-rating” title=”‘ . $title . ‘”>’;
$rating_html .= ‘<span style=”width:’ . ( ( $rating / 5 ) * 100 ) . ‘%”><strong class=”rating”>’ . $rating . ‘</strong> ‘ . __( ‘из 5’, ‘woocommerce’ ) . ‘</span>’;
$rating_html .= ‘</div>’;
return $rating_html;
}
|
Спасибо источнику woohelp.ru
Чтобы на странице товара тоже выводился рейтинг, даже если нет комментариев с оценками, необходимо изменить файл /wp-content/plugins/woocommerce/templates/single-product/rating.php
[сначала копируем файл из папки плагина в нашу тему, папку /wp-content/themes/mytheme/woocommerce/single-product/
]. В представленном Коде №2 нужно убрать конструкцию 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”>
<?php echo wc_get_rating_html( $average, $rating_count ); ?>
<?php if ( comments_open() ) : ?><a href=“<?php echo get_permalink( $product–>get_id() ); ?>#reviews” class=“woocommerce-review-link” rel=“nofollow”>(<?php printf( _n( ‘%s customer review’, ‘%s customer reviews’, $review_count, ‘woocommerce’ ), ‘<span class=”count”>’ . esc_html( $review_count ) . ‘</span>’ ); ?>)</a><?php endif ?>
</div>
<?php endif; /* Удаляем конец if */ ?>
|