Сортировать отзывы/рейтинги по дате в Woocommerce

Вопрос или проблема

Я бы хотел изменить порядок отображения отзывов на странице отдельного продукта. В данный момент они отображаются в порядке возрастания, и нам нужно, чтобы они были в порядке убывания (от самых новых к старым). Я посмотрел файл review.php, но, кажется, в нем нет порядка сортировки. Если вы могли бы направить меня в правильном направлении или предложить альтернативное решение, я был бы очень признателен.

Спасибо.

Вопросы по WooCommerce не относятся к теме, но поскольку отзывы всего лишь комментарии, я думаю, мы можем утверждать, что изменение порядка комментариев все еще актуально.

wp_list_comments() имеет параметр reverse_top_level, который устанавливает самые последние комментарии первыми и идет в обратном порядке. Если он работает так, как я думаю, вам нужно будет добавить этот параметр в wp_list_comments() WooCommerce.

К счастью, фильтр доступен для аргументов wp_list_comments(), которые используются в шаблоне single-product-reviews.php.

<ol class="commentlist">
    <?php wp_list_comments( apply_filters( 'woocommerce_product_review_list_args', array( 'callback' => 'woocommerce_comments' ) ) ); ?>
</ol>

Итак, чтобы добавить новые аргументы, процесс фильтрации такой же, как обычно:

function wpa_filter_list_comments($args){
  $args['reverse_top_level'] = true;
  return $args;
}
add_filter( 'woocommerce_product_review_list_args', 'wpa_filter_list_comments' );

Это сработало для меня!

Из панели управления WordPress перейдите в Настройки, Обсуждения и установите опцию “Комментарии должны отображаться с [старые] комментарии наверху каждой страницы” на “Новые”.

Теперь в Woocommerce последние отзывы продуктов наверху!

Ответ или решение

Для решения задачи сортировки отзывов по дате на странице товаров в WooCommerce, необходимо внести некоторые изменения в параметры, используемые для отображения комментариев. По умолчанию, WooCommerce выводит отзывы в порядке возрастания, что означает, что самые старые отзывы отображаются первыми. Однако в некоторых случаях более логичным и полезным может быть отображение самых новых отзывов в начале списка. Для этого предлагается использовать возможности WordPress для изменения порядка вывода комментариев.

Теория:

В WordPress отзывы товаров в WooCommerce обрабатываются как комментарии. Это означает, что мы можем воспользоваться существующими функциями WordPress для управления порядком вывода комментариев. Ключевой функцией здесь является wp_list_comments(), которая отвечает за вывод всех комментариев. Один из параметров этой функции — reverse_top_level, дозволяет изменять порядок отображения: при значении true сначала будут выведены самые новые комментарии.

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

Пример:

В файле шаблона single-product-reviews.php используется следующий синтаксис для вывода списка комментариев:

<ol class="commentlist">
    <?php wp_list_comments( apply_filters( 'woocommerce_product_review_list_args', array( 'callback' => 'woocommerce_comments' ) ) ); ?>
</ol>

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

function customize_woocommerce_review_order($args) {
    $args['reverse_top_level'] = true;
    return $args;
}
add_filter( 'woocommerce_product_review_list_args', 'customize_woocommerce_review_order' );

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

Применение:

Чтобы применить изменения:

  1. Откройте панель управления WordPress.
  2. Перейдите в меню "Внешний вид" → "Редактор тем" или используйте специальный плагин для вставки пользовательских сниппетов кода, чтобы изменения остались даже при обновлении темы.
  3. Добавьте представленный код в файл functions.php вашей активной темы.

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

Важно: Помимо изменения кода, в настройках WordPress можно установить порядок отображения комментариев. Для этого пройдите в "Настройки" → "Обсуждение" и измените настройку "Комментарии должны выводиться с [более старые] комментарии на каждой странице" на "Новые", чтобы в WooCommerce отзывы были отсортированы от самых новых к самым старым без необходимости вмешательства в код.

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

Оцените материал
Добавить комментарий

Капча загружается...