wpinc.ru wordpress WP Inc

Почему в WooCommerce не отображается оценка заказа и как это исправить

Диагностика проблемы: отсутствует оценка заказа в WooCommerce

При использовании WooCommerce многие сталкиваются с ситуацией, когда после оформления заказа на странице подтверждения или в личном кабинете клиента не отображается оценка заказа (например, рейтинг или пользовательский отзыв), хотя соответствующие функции и плагины для отзывов активированы. Это может привести к ухудшению пользовательского опыта и снижению вовлеченности.

Для начала необходимо проверить несколько ключевых моментов:

  • Активирован ли функционал отзывов и оценок в настройках WooCommerce.
  • Не конфликтует ли тема или плагин с выводом оценок.
  • Корректно ли настроены хуки, отвечающие за вывод отзывов после оформления заказа.
  • Отсутствуют ли ошибки JavaScript на странице оформления заказа и подтверждения.

Проверка включения отзывов в WooCommerce

Перейдите в WooCommerce > Настройки > Товары > Общие и убедитесь, что опция Включить отзывы о товарах активирована.

Если отзывы включены, но оценки не отображаются на странице заказа, значит проблема в выводе или конфликтах.

Пошаговое решение: как добавить и отобразить оценку заказа после оформления

Чаще всего пользователи хотят видеть рейтинг заказа или отзыв по заказанным товарам на странице "Спасибо за заказ" (thankyou page). WooCommerce стандартно не выводит оценку заказа, только отзывы на товары. Чтобы реализовать это, можно добавить кастомный код.

1. Добавляем вывод средней оценки заказанных товаров на страницу "Спасибо за заказ"

Добавьте следующий код в файл functions.php вашей дочерней темы или в кастомный плагин:

add_action('woocommerce_thankyou', 'display_order_products_average_rating', 15); function display_order_products_average_rating($order_id) {     if (!$order_id) return;      $order = wc_get_order($order_id);     if (!$order) return;      $items = $order->get_items();     if (empty($items)) return;      $ratings = [];      foreach ($items as $item) {         $product_id = $item->get_product_id();         $rating = get_post_meta($product_id, '_wc_average_rating', true); // стандартный мета ключ для среднего рейтинга         if ($rating) {             $ratings[] = floatval($rating);         }     }      if (empty($ratings)) {         echo '<p>Рейтинги для товаров отсутствуют.</p>';         return;     }      $avg_rating = array_sum($ratings) / count($ratings);      echo '<h2>Средняя оценка вашего заказа: <strong>' . round($avg_rating, 2) . ' / 5</strong></h2>'; }

Этот код собирает средние рейтинги всех товаров в заказе и отображает среднее значение на странице благодарности.

2. Вывод отзывов по товарам заказа

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

add_action('woocommerce_thankyou', 'display_order_products_reviews', 20); function display_order_products_reviews($order_id) {     if (!$order_id) return;      $order = wc_get_order($order_id);     if (!$order) return;      $items = $order->get_items();     if (empty($items)) return;      echo '<h2>Отзывы по вашим товарам:</h2>';      foreach ($items as $item) {         $product_id = $item->get_product_id();          $args = [             'post_id' => $product_id,             'number' => 3,             'status' => 'approve',         ];          $comments = get_comments($args);          if (empty($comments)) {             echo '<p>Отзывов для товара ' . get_the_title($product_id) . ' нет.</p>';             continue;         }          echo '<h3>' . get_the_title($product_id) . '</h3><ul>';         foreach ($comments as $comment) {             $rating = intval(get_comment_meta($comment->comment_ID, 'rating', true));             echo '<li><strong>' . esc_html($comment->comment_author) . '</strong> (' . $rating . ' / 5): ' . esc_html($comment->comment_content) . '</li>';         }         echo '</ul>';     } }

Проверка результата после внедрения

  • Оформите тестовый заказ с товарами, у которых есть рейтинг и отзывы.
  • После оплаты перейдите на страницу благодарности (thankyou page) — там должна отобразиться средняя оценка заказа и отзывы по товарам.
  • Проверьте также консоль браузера на наличие ошибок JavaScript.
  • Убедитесь, что отображение корректно на мобильных и десктопных устройствах.

Частые ошибки и их исправление

  • Средний рейтинг не выводится или равен 0: Убедитесь, что у товаров есть валидные отзывы с рейтингами. Проверьте мета ключ _wc_average_rating в базе.
  • Отзывы не отображаются: Проверьте, что комментарии одобрены и имеют мета ключ rating. Проверьте, что get_comments вызывается с правильными параметрами.
  • Код вызывает фатальные ошибки: Проверьте, что код вставлен в правильном месте и что у вас активна дочерняя тема или плагин для кастомных функций.
  • Конфликты с темой или плагинами: Попробуйте временно сменить тему на стандартную (например, Storefront) и отключить другие плагины, чтобы выявить конфликт.

Практические советы по производительности и безопасности

  • Кэшируйте результаты средней оценки заказа, чтобы не вызывать лишние запросы при повторном просмотре страницы. Например, используйте transient API WordPress.
  • Для вывода отзывов используйте пагинацию или ограничьте количество, чтобы не перегружать страницу.
  • Всегда экранируйте вывод, особенно если отзывы выводятся из пользовательского ввода (используйте esc_html(), esc_attr()).
  • Обновляйте WooCommerce и тему, чтобы избежать несовместимостей.

Сравнение вариантов решения задачи

МетодОписаниеПлюсыМинусы
Стандартный вывод отзывов WooCommerceОтзывы отображаются только на страницах товараПростота, нет кодаНет оценки заказа на thankyou page
Кастомный код для средней оценки заказаВывод средней оценки всех товаров заказа на thankyou pageПрямо на странице заказа, информативноНужна доработка под дизайн, может нагружать страницу
Использование плагинов отзывов с поддержкой кастомных страницПлагины могут реализовать отзывы и рейтинги с расширенными функциямиДополнительные возможности, готовые решенияМожет влиять на производительность, требует настройки
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше