Проблема.В WooCommerce рейтинг товаров выводится только когда у товара есть отзывы с оценкой товара. Нам требуется вывести рейтинг звезд товаров даже если товар еще не оценен. Т.е. Будет пустой рейтинг.
Решение: Для принудительного вывода звездного рейтинга товаров в каталоге / категориях WooCommerce необходимо в файл темы functions.php
вставить Код №1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//Вывод рейтинга в звездах в каталог 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 |
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 */ ?> |