Автоматизация сбора и отображения отзывов на сайте WordPress помогает повысить доверие посетителей и улучшить пользовательский опыт без лишних временных затрат. В этой статье разберём, как создать автоматические отзывы на сайте WordPress с помощью плагинов и собственного кода.
Почему важны автоматические отзывы на WordPress
Отзывы — один из ключевых факторов доверия к сайту. Но ручной сбор отзывов требует времени и усилий. Автоматизация позволяет:
- Собирать отзывы сразу после взаимодействия пользователя с сайтом или покупкой.
- Автоматически публиковать их с минимальным вмешательством администратора.
- Повысить активность и вовлечённость посетителей.
- Уменьшить нагрузку на службу поддержки.
Для этого можно использовать готовые плагины или написать собственный функционал, интегрирующий автоматическую отправку форм и публикацию отзывов.
Используемые плагины для автоматических отзывов
Для создания автоматических отзывов на WordPress можно рассмотреть следующие плагины:
1. Expert Review
Expert Review — удобный плагин для управления отзывами с возможностью автоматического сбора отзывов через email и формы на сайте. Позволяет настраивать шаблоны писем и управлять модерацией.
2. WP Customer Reviews
Этот бесплатный плагин позволяет добавлять отзывы к страницам или товарам, поддерживает модерацию и проверку спама, а также интеграцию с контактными формами для автоматического добавления отзывов.
3. WP Review Pro (от MyThemeShop)
Плагин с расширенными возможностями для отзывов и рейтингов. Можно настроить автоматическую публикацию отзывов, интеграцию с WooCommerce и кастомные поля.
Как создать автоматические отзывы с помощью собственного кода
Если вы хотите более гибкое решение, можно добавить автоматическую отправку отзывов через AJAX и последующую публикацию. Рассмотрим пример функционала.
Регистрация шорткода с формой отзыва
function wpmax_register_review_form_shortcode() {
ob_start();
?>
<form id="wpmax-review-form">
<label>Ваше имя:</label>
<input type="text" name="author" required />
<label>Отзыв:</label>
<textarea name="content" required></textarea>
<input type="submit" value="Отправить отзыв" />
<div id="wpmax-review-message"></div>
</form>
<script>
jQuery(document).ready(function($){
$('#wpmax-review-form').on('submit', function(e){
e.preventDefault();
var data = {
action: 'wpmax_submit_review',
author: $(this).find('input[name=author]').val(),
content: $(this).find('textarea[name=content]').val(),
nonce: wpmax_ajax_object.nonce
};
$.post(wpmax_ajax_object.ajax_url, data, function(response){
$('#wpmax-review-message').text(response.data.message);
if(response.success){
$('#wpmax-review-form')[0].reset();
}
});
});
});
</script>
<?php
return ob_get_clean();
}
add_shortcode('wpmax_review_form', 'wpmax_register_review_form_shortcode');
Обработка AJAX-запроса для создания отзыва
function wpmax_handle_ajax_review() {
check_ajax_referer('wpmax_nonce_action', 'nonce');
$author = sanitize_text_field($_POST['author']);
$content = sanitize_textarea_field($_POST['content']);
if(empty($author) || empty($content)) {
wp_send_json_error(['message' => 'Пожалуйста, заполните все поля.']);
}
$new_review = [
'post_title' => wp_strip_all_tags($author),
'post_content' => $content,
'post_status' => 'pending', // модерация
'post_type' => 'wpmax_review'
];
$post_id = wp_insert_post($new_review);
if($post_id) {
wp_send_json_success(['message' => 'Спасибо за отзыв! После проверки он появится на сайте.']);
} else {
wp_send_json_error(['message' => 'Ошибка при сохранении отзыва.']);
}
}
add_action('wp_ajax_wpmax_submit_review', 'wpmax_handle_ajax_review');
add_action('wp_ajax_nopriv_wpmax_submit_review', 'wpmax_handle_ajax_review');
Регистрация типа записей для отзывов
function wpmax_register_review_cpt() {
$labels = [
'name' => 'Отзывы',
'singular_name' => 'Отзыв',
'add_new_item' => 'Добавить новый отзыв',
'edit_item' => 'Редактировать отзыв',
'all_items' => 'Все отзывы',
'menu_name' => 'Отзывы'
];
$args = [
'labels' => $labels,
'public' => true,
'has_archive' => false,
'supports' => ['title', 'editor'],
'show_in_rest' => true,
'capability_type' => 'post',
];
register_post_type('wpmax_review', $args);
}
add_action('init', 'wpmax_register_review_cpt');
Вывод отзывов на сайте с пагинацией
Чтобы отзывы выглядели красиво и были удобны для чтения, добавим вывод с пагинацией и фильтрацией по статусу:
function wpmax_show_reviews($atts) {
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$query = new WP_Query([
'post_type' => 'wpmax_review',
'post_status' => 'publish',
'posts_per_page' => 5,
'paged' => $paged
]);
ob_start();
if($query->have_posts()) {
echo '<div class="wpmax-reviews-list">';
while($query->have_posts()) {
$query->the_post();
echo '<div class="wpmax-review-item">';
echo '<h4>' . get_the_title() . '</h4>';
echo '<div>' . get_the_content() . '</div>';
echo '</div>';
}
echo '</div>';
// пагинация
$big = 999999999;
echo paginate_links([
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => max(1, $paged),
'total' => $query->max_num_pages
]);
} else {
echo '<p>Отзывов пока нет.</p>';
}
wp_reset_postdata();
return ob_get_clean();
}
add_shortcode('wpmax_reviews_list', 'wpmax_show_reviews');
Дополнительные советы и интеграция с плагинами
Для повышения качества отзывов и борьбы со спамом рекомендуется:
- Использовать Clearfy Pro для оптимизации и защиты сайта.
- Добавить CAPTCHA (например, Google reCAPTCHA) в форму отзыва.
- Настроить email-уведомления с помощью функций WordPress для информирования админа о новых отзывах.
- Внедрить автоматическое напоминание по email с просьбой оставить отзыв после заказа, используя WooCommerce hooks или сторонние сервисы.
Использование готовых плагинов ускорит процесс, например, Expert Review позволяет настроить рассылку писем с приглашением оставить отзыв и автоматизировать публикацию. Если вы хотите контролировать весь процесс, описанный код отлично подойдёт для начала.