Sviatoy
@Sviatoy
beginner

Как сделать, чтоб выводилось слово отзывов в соответсвии с кол-вом (напр. 1 отзыв, 2 отзыва, 0 отзывов), Woocommerce?

Помогите, пожалуйста, решить задачу. Пытаюсь вывести в карточку товара (Woocommerce) рейтинг (звёздочки) и кол-во отзывов и хочу чтоб, при нажатии на них переходило на страницу товара, непосредственно, к отзывам. Какие действия я произвёл: скопировал в тему (underscores) файл rating.php (woocommerce -> loop -> rating.php) и внёс следующие изменения:
<?php
    if (!defined('ABSPATH')) {
       exit; // Exit if accessed directly.
    }
    
    global $product;
    
    if (!wc_review_ratings_enabled()) {
       return;
    }
    
    $rating_count = $product->get_rating_count();
    $review_count = $product->get_review_count();
    $average      = $product->get_average_rating();
    
    if ($rating_count >= 0) : ?>

   <div class="woocommerce-product-rating">          
      <?php $rating_html  = '<a href="' . get_the_permalink() . '#respond"><div class="star-rating ehi-star-rating"><span style="width:' . (($average / 5) * 100) . '%"></span></div><span class="count">' . esc_html($review_count) . ' отзывов</span></a>';
      echo $rating_html;
      ?>          
   </div>    
<?php endif; ?>

Всё получилось
6381cb32dc14f429726516.jpeg
Кроме, естественно, того что слово "отзывов" статично, а задача состоит как раз в том, чтобы была динамика (0 отзывов, 1 отзыв, 2 отзыва). Пробовал другой вариант:
<?php
if (!defined('ABSPATH')) {
   exit; // Exit if accessed directly.
}

global $product;

if (!wc_review_ratings_enabled()) {
   return;
}

$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average      = $product->get_average_rating();

if ($rating_count >= 0) : ?>

   <div class="woocommerce-product-rating">          
      <?php $rating_html  = '<a href="' . get_the_permalink() . '#respond"><div class="star-rating ehi-star-rating"><span style="width:' . (($average / 5) * 100) . '%"></span></div></a>';
      echo $rating_html;
      ?>
      <a href="#reviews"><?php printf(_n('%s review', '%s reviews', $review_count, 'woocommerce'), '<span class="count">' . esc_html($review_count) . '</span>'); ?></a>
   </div>
<?php endif; ?>

Здесь слово "отзывы" динамичны, как раз то, что нужно.
6381cb5f54e48036392935.jpeg
Но здесь другая проблема - при нажатии на отзывы не переходит на страницу товара к отзывам. Хотя, при нажатии на звёздочки переходит куда надо. Пробовал добавить к ссылке get_the_permalink() вот таким образом:
<a href="<?php get_the_permalink(); ?>#reviews">
Но без результатно. Помогите, пожалуйста, решить задачу!
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы