Владельцы сайтов на WordPress часто сталкиваются с необходимостью автоматического сбора отзывов пользователей. Такие отзывы повышают доверие и улучшают конверсию, но важной задачей становится не только сбор, но и управление этими отзывами: их оценка, подтверждение и возможность отзыва. В этой статье рассмотрим, как реализовать систему оценки и отзыва автоматических отзывов в WordPress с подтверждением, используя примеры кода и популярные плагины.
Почему важно подтверждать и управлять автоматическими отзывами
Автоматические отзывы могут поступать из различных источников: формы на сайте, импорт из внешних сервисов, отзывы с маркетплейсов и т.п. Без контроля такие отзывы могут содержать спам, недостоверную информацию или быть неактуальными. Подтверждение отзывов позволяет фильтровать их перед публикацией, а система оценки помогает выделять наиболее полезные для пользователей.
Кроме того, возможность отзыва позволяет посетителям или администраторам сайта отменять или скрывать нежелательные отзывы, что улучшает качество контента и пользовательский опыт.
Настройка подтверждения отзывов в WordPress с помощью плагина Expert Review
Плагин Expert Review отлично подходит для управления отзывами. Он позволяет добавлять отзывы с рейтингом, настраивать модерацию и подтверждение.
Основные возможности плагина:
- Добавление отзывов с оценкой по нескольким критериям.
- Модерация и подтверждение перед публикацией.
- Возможность отзывать ранее добавленные отзывы.
- Интеграция с WooCommerce и другими плагинами.
Для активации подтверждения отзывов в Expert Review перейдите в настройки плагина и включите опцию «Требовать подтверждение отзывов». Это позволит администратору проверять отзывы перед их отображением на сайте.
Реализация пользовательской системы оценки и отзыва с подтверждением: пример кода
Если вы хотите реализовать кастомное решение без использования сторонних плагинов, можно создать собственный тип записи и метаполя для отзывов с рейтингом и статусом подтверждения.
Создание типа записи «Отзыв»
function wpdesk_register_review_post_type() {
$args = array(
'public' => true,
'label' => 'Отзывы',
'supports' => array('title', 'editor', 'author'),
'capability_type' => 'post',
'show_in_rest' => true,
);
register_post_type('wpdesk_review', $args);
}
add_action('init', 'wpdesk_register_review_post_type');Этот тип записи будет хранить отзывы. Далее добавим метаполя для рейтинга и статуса подтверждения.
Добавление метаполей рейтинга и подтверждения
function wpdesk_add_review_meta_boxes() {
add_meta_box(
'wpdesk_review_rating',
'Рейтинг отзыва',
'wpdesk_render_review_rating_box',
'wpdesk_review',
'side'
);
add_meta_box(
'wpdesk_review_approved',
'Подтверждение отзыва',
'wpdesk_render_review_approved_box',
'wpdesk_review',
'side'
);
}
add_action('add_meta_boxes', 'wpdesk_add_review_meta_boxes');
function wpdesk_render_review_rating_box($post) {
$rating = get_post_meta($post->ID, '_wpdesk_review_rating', true);
echo '<label for="wpdesk_review_rating">Рейтинг (1-5): </label>';
echo '<input type="number" id="wpdesk_review_rating" name="wpdesk_review_rating" value="' . esc_attr($rating) . '" min="1" max="5" />';
}
function wpdesk_render_review_approved_box($post) {
$approved = get_post_meta($post->ID, '_wpdesk_review_approved', true);
$checked = $approved ? 'checked' : '';
echo '<input type="checkbox" id="wpdesk_review_approved" name="wpdesk_review_approved" ' . $checked . '/>';
echo '<label for="wpdesk_review_approved">Отзыв подтвержден</label>';
}Сохранение метаданных
function wpdesk_save_review_meta($post_id) {
if (array_key_exists('wpdesk_review_rating', $_POST)) {
update_post_meta($post_id, '_wpdesk_review_rating', intval($_POST['wpdesk_review_rating']));
}
$approved = isset($_POST['wpdesk_review_approved']) ? 1 : 0;
update_post_meta($post_id, '_wpdesk_review_approved', $approved);
}
add_action('save_post_wpdesk_review', 'wpdesk_save_review_meta');Отображение только подтвержденных отзывов на сайте
Чтобы выводить отзывы только с подтверждением, используйте WP_Query с мета-запросом:
$args = array(
'post_type' => 'wpdesk_review',
'meta_key' => '_wpdesk_review_approved',
'meta_value' => '1',
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$rating = get_post_meta(get_the_ID(), '_wpdesk_review_rating', true);
echo '<h3>' . get_the_title() . '</h3>';
echo '<p>Рейтинг: ' . esc_html($rating) . '/5</p>';
echo get_the_content();
}
wp_reset_postdata();
} else {
echo 'Отзывов пока нет.';
}Как пользователям отзывать отзывы: примеры и советы
Чтобы пользователь мог отозвать или изменить свой отзыв, можно добавить кнопку на фронтенд с формой. Для этого понадобится создать AJAX обработчик, который проверит права пользователя и обновит статус отзыва.
Пример AJAX обработчика:
add_action('wp_ajax_wpdesk_revoke_review', 'wpdesk_revoke_review_callback');
function wpdesk_revoke_review_callback() {
$review_id = intval($_POST['review_id']);
if (!current_user_can('edit_post', $review_id)) {
wp_send_json_error('Нет прав для отзыва');
}
update_post_meta($review_id, '_wpdesk_review_approved', 0);
wp_send_json_success('Отзыв отозван');
}На странице с отзывами добавьте кнопку с JavaScript, вызывающим этот AJAX:
jQuery(document).on('click', '.wpdesk-revoke-review', function() {
var reviewId = jQuery(this).data('review-id');
jQuery.post(wpdesk_ajax_url, {
action: 'wpdesk_revoke_review',
review_id: reviewId
}, function(response) {
if(response.success) {
alert(response.data);
location.reload();
} else {
alert('Ошибка: ' + response.data);
}
});
});Дополнительные плагины для расширенного управления отзывами
Если вам требуется расширенный функционал, обратите внимание на плагины из экосистемы WPShop:
- WPRemark — автоматизация отзывов с подтверждением и модерацией.
- Expert Review — расширенные рейтинги и критерии оценки.
- WPGPT — интеграция с ИИ для анализа и генерации отзывов.
Эти инструменты помогут упростить управление отзывами и повысить их качество без глубоких технических знаний.
Заключение
Система оценки и отзыва автоматических отзывов с подтверждением — важный элемент качественного сайта на WordPress. Используя как готовые плагины, так и кастомный код, можно добиться гибкого и надежного решения, которое улучшит доверие пользователей и повысит эффективность вашего ресурса.