Разное количество отзывов в категории и карточке товара

Добрый день! Подскажите как сделать что бы количество отзывов в категории было такое же, как в карточке товара?

Вот пример отзывов в карточке:

В категории другая цифра:

Как сделать одинаково? 

Вижу что выводится через:

{if $p.rating > 0 && $theme_settings.products_show_reviews}
{include file="inc/product.rating.html" product=$p}
{/if}

Если в файле product.rating.html пишу $reviews то в категории вообще пропадает цифра.

6 ответов

  • 1
    Алексей Webasyst 4 декабря 2020 21:22 #

    Отзывы могут фильтроваться как минимум приложением MyLang по локали, плагином Хорошие отзывы по оценкам.
    В настройках продуктов обычно есть настройки, посмотрите используете ли вы что-то из этого.

    • +1
      Axex Yexel Axex Yexel 7 декабря 2020 13:00 #

      Смотрю что все отзывы и рейтинги работают через этот файл product.rating.html:

      {strip}
      {if isset($rating)}
          {$_rating = floor($rating)}
      {elseif isset($product)}
          {$_rating = floor($product.rating)}
      {else}
          {$_rating = $rating}
      {/if}
      {if !isset($stars_only)}<div class="{if !isset($hide_base_wrapper_class)}item__rating{/if}{if isset($wrapper_class)} {$wrapper_class}{/if}">{/if}
          <div class="stars">
              <div class="stars__list">
                  {for $i=1 to 5}
                  <div class="stars__i{if $i <= $_rating} stars__i_checked{/if}">
                      <svg class="icon" width="15" height="14"><use xlink:href="#icon-star"></use></svg>
                  </div>
                  {/for}
              </div>
              {if !isset($stars_only) && !isset($hide_links) && isset($product)}<div class="stars__count"><a href="{$wa->shop->productUrl($product, 'reviews')}">({$_reviews_count|default:$product.rating_count})</a></div>{/if}
          </div>
          {if !isset($stars_only)}
      </div>{/if}
      {/strip}

      Получается что тут как то распределяется: в товаре показывать число с количеством отзывов, а в категории под товарами показывать число с рейтингом. А как сделать везде одно число непонятно ((. Проверил все возможные плагины виновники, они не влияют.

      • +1
        replicant replicant 7 декабря 2020 13:17 #

        Обратите внимание на

        {$_reviews_count|default:$product.rating_count}

        Это вывод кол-ва отзывов либо по-умолчанию кол-ва поставивших рейтинг. Если ваша тема дизайна допускает выставление рейтинга без отзыва, либо публикацию отзыва без оценки, то возможно расхождение этих данных.

        rating_count - это поле в таблице shop_product
        reviews_count - это кол-во собственно отзывов к товару и лежат они в совершенно другой таблице в БД, а считаются как элементы массива $reviews, если память не изменяет

        Между собой эти вещи связаны весьма условно.

        • +1
          Axex Yexel Axex Yexel 7 декабря 2020 13:45 #

          Получается рейтинг и отзывы связаны между собой визуально, но технически это разные вещи и выводятся они с совершенно разных мест. Как то так я и думал. Выходит что с карточки товара не получиться вытащить значение количества отзывов и подвязать его в листинге товаров в категории?

          • +1
            replicant replicant 7 декабря 2020 14:46 #

            Напрямую из листинга товаров доступа к массиву отзывов и их количеству нет. Поэтому в листинге срабатывает условие, которое выводит вам переменную rating_count из массива товара т.к. rating_count доступна в категориях, то показать её там очень просто.

            При переходе в карточку товара становится доступным ещё и кол-во отзывов, поэтому условие уже выдает reviews_total_count или reviews_count.

            Технически способы передать кол-во отзывов в листинг можно придумать, но надо садиться и прикидывать варианты.

            • +1
              Axex Yexel Axex Yexel 7 декабря 2020 15:20 #

              Понял Вас, спасибо большое за ответ, подумаю как лучше поступить!

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите