Какой плагин worpdress создает для отзывов отдельные страницы, но общий рейтинг?

Ссылка скопирована
1 ответ

Привет!
Ищу плагин, который может создавать для отзыва о товаре, услуге отдельные страницы для каждого отзыва, но при этом все отзывы об этом товаре, услуге суммируется и выводится общий рейтинг.
Страница товара, услуги с рейтингом, виджет ленты с отзывами, которые имеют отдельные страницы как на otzovik или похоже.

Дополнительно:

Ответы:

Вряд ли вы такой найдете. Это придется создавать самому.

  • Я такой видел год назад, не могу найти
  • Макс, на официальном каталоге?
  • Дмитрий, раньше была такая тема web2. 0 и ее разработчик сделал плагин такой для отзывов на themeforest. Теперь он оттуда ушел и я не найду
  • Макс, Раз ушел, то придется делать самому.
  • Дмитрий, нашлось https://www.salephpscripts.com/wordpress-ratings-r...

    Возможно кто-то знает получше

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Редакция DevOps Ответ

Готовый плагин «как Otzovik»: отдельная страница для каждого отзыва, общий рейтинг у товара/услуги, лента отзывов и нормальная структура URL — найти сложно. Большинство review-плагинов для WordPress хранят отзывы как комментарии или записи внутри одного объекта, но не делают полноценные отдельные страницы отзывов с общей агрегацией рейтинга.

Рабочая архитектура обычно такая:

  • создать custom post type review для отдельных страниц отзывов;
  • связать отзыв с товаром или услугой через post meta, ACF relationship или таксономию;
  • хранить оценку в метаполе, например _rating;
  • на странице товара считать средний рейтинг по связанным отзывам;
  • в ленте выводить последние отзывы ссылками на их отдельные страницы.

Пример подсчёта среднего рейтинга по отзывам, связанным с текущим товаром:

$reviews = get_posts([
    'post_type' => 'review',
    'posts_per_page' => -1,
    'meta_query' => [
        [
            'key' => '_review_product_id',
            'value' => get_the_ID(),
            'compare' => '=',
        ],
    ],
]);
 
$sum = 0;
$count = 0;
 
foreach ($reviews as $review) {
    $rating = (float) get_post_meta($review->ID, '_rating', true);
    if ($rating > 0) {
        $sum += $rating;
        $count++;
    }
}
 
$average = $count ? round($sum / $count, 1) : 0;

$reviews = get_posts([ 'post_type' => 'review', 'posts_per_page' => -1, 'meta_query' => [ [ 'key' => '_review_product_id', 'value' => get_the_ID(), 'compare' => '=', ], ], ]); $sum = 0; $count = 0; foreach ($reviews as $review) { $rating = (float) get_post_meta($review->ID, '_rating', true); if ($rating > 0) { $sum += $rating; $count++; } } $average = $count ? round($sum / $count, 1) : 0;

Если сайт на WooCommerce, можно использовать штатные отзывы товаров для простого рейтинга, но отдельные SEO-страницы каждого отзыва из коробки они не дадут. Если отдельные страницы принципиальны, лучше делать кастомный тип записей или отдельный небольшой плагин, а не пытаться ломать стандартные комментарии WooCommerce.

Из готовых решений можно смотреть в сторону плагинов отзывов с custom schema и shortcodes, но перед установкой проверьте два условия: создаётся ли отдельный публичный URL для каждого отзыва и можно ли связать много отзывов с одним объектом для расчёта общего рейтинга. Если одного из этих пунктов нет, плагин не решит вашу задачу.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно