Зачем нужны динамические отзывы с подтверждением
Отзывы — один из важнейших элементов доверия на сайте. Однако не все отзывы одинаково полезны: отзывы с подтверждением факта покупки или использования услуги повышают лояльность и конверсию. В этой статье мы разберём, как создать на WordPress динамическую систему отзывов с подтверждением, чтобы пользователи могли оставлять отзывы, а администраторы — подтверждать их подлинность.
Реализация такой системы позволит автоматизировать процесс модерации и повысить качество отзывов. Это особенно актуально для интернет-магазинов на WooCommerce или сервисных сайтов, где важна репутация.
Выбор плагина для отзывов с подтверждением
Существует несколько плагинов, которые поддерживают функционал подтверждённых отзывов. Вот несколько популярных вариантов, которые можно адаптировать под свои задачи:
- WP Customer Reviews — позволяет собирать отзывы и вручную подтверждать или отклонять их. Есть возможность интеграции с формами и уведомлениями.
- WooCommerce Verified Reviews — автоматически подтверждает отзывы только от покупателей, сделавших заказ в вашем магазине.
- WPRemark — плагин из экосистемы WPShop, который поддерживает расширенные отзывы с кастомными полями и модерацией.
Если у вас магазин на WooCommerce, советуем обратить внимание на WooCommerce Verified Reviews — он позволяет автоматизировать подтверждение.
Создание собственной системы подтверждённых отзывов на WordPress
Если нужно больше контроля, можно сделать систему своими силами. Рассмотрим пример создания кастомного типа записи «Отзыв» с метаполем подтверждения и формой отправки отзывов с AJAX.
Регистрация кастомного типа записи и метаполя
Добавьте в functions.php вашей темы или в плагин следующий код для регистрации типа и метаполя:
function wpdesk_register_review_post_type() {
$args = [
'public' => true,
'label' => 'Отзывы',
'supports' => ['title', 'editor', 'author'],
'capability_type' => 'post',
];
register_post_type('wpdesk_review', $args);
// Добавляем метаполе подтверждения
add_action('add_meta_boxes', function() {
add_meta_box('wpdesk_review_confirm', 'Подтверждение отзыва', function($post) {
$value = get_post_meta($post->ID, '_wpdesk_review_confirmed', true);
?>
<label><input type="checkbox" name="wpdesk_review_confirmed" value="yes" <?php checked($value, 'yes'); ?>> Подтвердить отзыв</label>
<?php
}, 'wpdesk_review', 'side');
});
add_action('save_post_wpdesk_review', function($post_id) {
if (isset($_POST['wpdesk_review_confirmed'])) {
update_post_meta($post_id, '_wpdesk_review_confirmed', 'yes');
} else {
delete_post_meta($post_id, '_wpdesk_review_confirmed');
}
});
}
add_action('init', 'wpdesk_register_review_post_type');Этот код создаст новый тип записи и добавит на страницу редактирования чекбокс для подтверждения.
Создание формы для отправки отзыва с AJAX
Форма позволит посетителям отправлять отзывы без перезагрузки страницы. Добавьте следующий код в functions.php или плагин:
function wpdesk_enqueue_review_scripts() {
wp_enqueue_script('wpdesk-review-ajax', get_template_directory_uri() . '/js/wpdesk-review-ajax.js', ['jquery'], null, true);
wp_localize_script('wpdesk-review-ajax', 'wpdeskReviewAjax', [
'ajaxurl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('wpdesk_review_nonce')
]);
}
add_action('wp_enqueue_scripts', 'wpdesk_enqueue_review_scripts');
function wpdesk_handle_review_submission() {
check_ajax_referer('wpdesk_review_nonce', 'nonce');
$name = sanitize_text_field($_POST['name'] ?? '');
$content = sanitize_textarea_field($_POST['content'] ?? '');
if (empty($name) || empty($content)) {
wp_send_json_error('Заполните все поля');
}
$post_id = wp_insert_post([
'post_type' => 'wpdesk_review',
'post_title' => 'Отзыв от ' . $name,
'post_content' => $content,
'post_status' => 'pending'
]);
if ($post_id) {
wp_send_json_success('Спасибо за отзыв! Он будет опубликован после проверки.');
} else {
wp_send_json_error('Ошибка при сохранении отзыва');
}
}
add_action('wp_ajax_wpdesk_submit_review', 'wpdesk_handle_review_submission');
add_action('wp_ajax_nopriv_wpdesk_submit_review', 'wpdesk_handle_review_submission');Также создайте файл wpdesk-review-ajax.js в папке вашей темы /js/ со следующим содержимым:
jQuery(document).ready(function($){
$('#wpdesk-review-form').on('submit', function(e){
e.preventDefault();
var data = {
action: 'wpdesk_submit_review',
nonce: wpdeskReviewAjax.nonce,
name: $('#wpdesk-review-name').val(),
content: $('#wpdesk-review-content').val()
};
$.post(wpdeskReviewAjax.ajaxurl, data, function(response){
if(response.success){
alert(response.data);
$('#wpdesk-review-form')[0].reset();
} else {
alert('Ошибка: ' + response.data);
}
});
});
});HTML-код формы для вставки в страницу или виджет
Добавьте этот код в нужном месте темы или в текстовом виджете:
<form id="wpdesk-review-form">
<label for="wpdesk-review-name">Ваше имя:</label>
<input type="text" id="wpdesk-review-name" name="name" required>
<label for="wpdesk-review-content">Ваш отзыв:</label>
<textarea id="wpdesk-review-content" name="content" required></textarea>
<button type="submit">Отправить отзыв</button>
</form>Вывод подтверждённых отзывов на сайте
Чтобы вывести только подтверждённые отзывы, используйте WP_Query с метазапросом:
$args = [
'post_type' => 'wpdesk_review',
'post_status' => 'publish',
'meta_key' => '_wpdesk_review_confirmed',
'meta_value' => 'yes',
'posts_per_page' => 10
];
$query = new WP_Query($args);
if ($query->have_posts()) {
echo '<ul class="wpdesk-reviews">';
while ($query->have_posts()) {
$query->the_post();
echo '<li><strong>' . get_the_title() . '</strong><br>' . get_the_content() . '</li>';
}
echo '</ul>';
wp_reset_postdata();
} else {
echo '<p>Отзывов пока нет.</p>';
}Как улучшить систему отзывов с помощью плагинов WPShop
Для расширения функционала можно использовать плагин WPRemark, который позволяет создавать отзывы с рейтингами, кастомными полями и удобной модерацией. Его интеграция позволит быстро внедрить подтверждение отзывов и автоматизировать работу с ними.
Также при необходимости можно добавить визуализацию отзывов через WPStories для привлечения внимания пользователей.
Заключение
Динамические отзывы с подтверждением — важный элемент доверия и качества сайта на WordPress. В статье рассмотрено, как создать такую систему самостоятельно, а также какие плагины выбрать для упрощения задачи. Используйте приведённые примеры кода и рекомендации, чтобы повысить лояльность посетителей и увеличить конверсию на вашем сайте.