Дарим чек-лист по подготовке к сезону продаж за подписку на наш телеграм Получить
База знаний
Bodysite.Help — единая база знаний и хаб поддержки по всем продуктам

Хелперы для объединения отзывов о товарах группы (плагин "Группы товаров")

Начиная с версии 1.2 в плагине "Группы товаров" есть хелперы для получения сгруппированных отзывов. 

Внимание! Для внедрения хелперов нужен опыт редактирования PHP-кода.

Если вы не уверены в своих возможностях, пожалуйста, обратитесь к компетентному специалисту.

Конфигурационный файл:

Для начала, необходимо в конфигурационном файле перечислить id групп, по которым отзывы товаров будут объединяться. Сделать это нужно по адресу: wa-config/apps/shop/plugins/productgroup/config.php. Если такого файла нет - его нужно создать. 

ID группы можно подсмотреть в стандартных хелперах, пример:

Из стандартного хелпера видно, что ID группы равен пяти: {shopProductgroupViewHelper::getCategoryProductBlock($product.id, 5)}

Пример содержимого конфигурационного файла:

<span class="group-instr__code"><?php

return array(
    'reviews_group_ids' => array(1,2,3),
);
</span>

Доступные Хелперы:

{$rating_info = shopProductgroupWaProductReviewsHelper::getProductRatingInfo($product)}

- Возвращает общие данные о рейтинге товара

{$rating_info.average_rate} - средний рейтинг
{$rating_info.reviews_count} - количество опубликованных отзывов

{$products_rating_info = shopProductgroupWaProductReviewsHelper::getProductsRatingInfo($products)}

- Возвращает общие данные сразу для нескольких товаров. Удобно использовать на странице категории, например.

{foreach $products_rating_info as $product_id => $rating_info}

{$rating_info.average_rate} - средний рейтинг

{$rating_info.reviews_count} - количество опубликованных отзывов

{/foreach}

Пример использования (Одинаковые количество отзывов и оценка у выделенных товаров из одной группы):

{$count_by_rate = shopProductgroupWaProductReviewsHelper::getProductReviewsCountByRate($product)}

- возвращает количество отзывов для каждой оценки.

{$count_by_rate['5']} - количество отзывов с оценкой 5

Пример использования:

{$reviews = shopProductgroupWaProductReviewsHelper::getProductReviews($product)}

- возвращает массив отзывов для товара, максимум 20 штук, без ответов. Формат данных - как у стандартных отзывов.

{shopProductgroupWaProductReviewsHelper::appendProductLabelToReviews($reviews)}

- Добавляет каждому отзыву в массиве данные группы.

{foreach $reviews as $review}

{$review.group_label} - название группы, по которой отзывы были собраны. Если их несколько - берем первую.

{$review.product_label} - настройка "Название ссылки" у товара группы.

{/foreach}

Пример использования: 

{$reviews_collection = shopProductgroupWaProductReviewsHelper::buildCollection($product)}

- Возвращает экземпляр класса shopProductgroupProductGroupReviewsCollection. Для гибкого и продвинутого использования.

Настройка:
Эти методы возвращают экземпляр класса - надо сохранять в переменной, иначе smarty выдаст ошибку.

В скобках - значения по умолчанию
{$_ = $reviews_collection->setOffset(20)} - задать сдвиг от начала (0)
{$_ = $reviews_collection->setLimit(50)} - количество отзывов (20)
{$_ = $reviews_collection->setSort('id', 'ASC')} - задать поля сортировки ('datetime', 'DESC'). Используются поля таблицы shop_product_reviews
{$_ = $reviews_collection->setRateFilter(5)} - фильтрация по оценке(не задана). Например, взять отзывы только с оценкой 5
{$_ = $reviews_collection->setStatusFilter('deleted')} - фильтрация по статусу отзыва ('approved'). Например, так получим только удаленные отзывы
{$_ = $reviews_collection->removeRateFilter()} - убирает фильтрацию по оценке
{$_ = $reviews_collection->removeStatusFilter()} - убирает фильтрацию по статусу

Получение данных:
{$is_empty = $reviews_collection->isEmpty()} - true, если нет отзывов
{$reviews = $reviews_collection->getReviews()} - список отзывов
{$reviews_with_replies = $reviews_collection->getReviewsWithReplies()} - список отзывов. У каждого есть поле 'comments' - массив ответов на отзыв
{$reviews_count = $reviews_collection->count()} - количество отзывов в коллекции (*)
{$average_rate = $reviews_collection->averageRate()} - средний рейтинг коллекции (*)
{$count_by_rate = $reviews_collection->countByRate()} - возвращает количество отзывов для каждой оценки (*)

* - не учитывает offset/limit, но учитывает фильтрацию по оценке/статусу


Инструкция была полезна?
77% считают ответ полезным
Спасибо за обратную связь!
Чтобы добавить комментарий, войдите в личный кабинет
Как правильно обращаться в техподдержку?
Не работает решение, что делать?
Не применяются настройки плагина, почему?
Куда пропали лицензии?
Как интегрировать плагин в мою тему дизайна
Купил плагин, как активировать лицензию?
Как можно получить скидку?
Есть ли тестовый период за продукт
Слетела лицензия что делать?
Не могу настроить CRON, что делать?
Написать в техподдержку
В техническую поддержку входит:
  • Консультации по вопросам приобретения
  • Консультации по функционалу и возможностям
  • Выявление и решение проблем в работе функционала
В техническую поддержку не входит:
  • Настройка решения
  • Доработка под запросы клиента
  • Устранение багов в консультационной форме (без предоставления доступов к сайту)
Платная диагностика:
  • Диагностика сложных и неоднозначных проблем
  • Выявление конфликтов со сторонними решениями
  • Выявление конфликтов в вашей среде сервера
  • Приоритетный срок на обработку тикетов
  • Оплата только банковской картой