Автоматические отзывы — отличный способ повысить доверие к вашему сайту и сэкономить время на модерации. В этой статье разберём, как реализовать автоматический сбор и публикацию отзывов в WordPress с помощью популярных плагинов и собственных решений на PHP.
Почему важны автоматические отзывы в WordPress
Отзывы помогают посетителям принимать решения. Однако сбор отзывов вручную требует времени и внимания. Автоматизация позволяет:
- Собирать отзывы без участия администратора;
- Публиковать отзывы сразу после проверки или автоматически;
- Интегрироваться с внешними сервисами отзывов;
- Повысить активность на сайте и улучшить SEO.
Рассмотрим практические способы реализации.
Использование плагина Quizle для создания отзывов с экспертной оценкой
Плагин Quizle позволяет создавать интерактивные опросы и отзывы с экспертной оценкой. Можно настроить автоматическую публикацию отзывов после прохождения теста.
Преимущества Quizle:
- Гибкая настройка форм обратной связи и отзывов;
- Возможность интеграции с кастомными типами записей;
- Автоматическое добавление отзывов в базу;
- Поддержка рейтингов и комментариев.
Пример кода для автоматической публикации отзыва после прохождения:
function wpacademy_publish_quizle_review($quiz_result_id) {
$result = get_post($quiz_result_id);
if (!$result) return;
$review_post = array(
'post_title' => 'Отзыв пользователя ' . $result->post_author,
'post_content' => $result->post_content,
'post_status' => 'publish',
'post_type' => 'review'
);
wp_insert_post($review_post);
}
add_action('quizle_after_result_save', 'wpacademy_publish_quizle_review');Автоматическое добавление отзывов с помощью WPExpertReview
Плагин WPExpertReview предназначен для сбора и отображения экспертных оценок и отзывов.
Чтобы автоматизировать добавление отзывов из внешних источников, можно использовать REST API плагина или написать скрипт, который будет создавать записи с отзывами в WordPress.
Пример автоматического создания отзыва из JSON-данных:
function wpacademy_add_review_from_json($json_data) {
$data = json_decode($json_data, true);
if (empty($data['author']) || empty($data['content'])) return;
$post = array(
'post_title' => 'Отзыв от ' . sanitize_text_field($data['author']),
'post_content' => sanitize_textarea_field($data['content']),
'post_status' => 'publish',
'post_type' => 'wpexpertreview'
);
wp_insert_post($post);
}Создание собственного решения для автоматических отзывов через формы и AJAX
Регистрация кастомного типа записи "Отзыв"
Для начала создадим тип записи review, если его нет:
function wpacademy_register_review_cpt() {
register_post_type('review', array(
'labels' => array(
'name' => 'Отзывы',
'singular_name' => 'Отзыв'
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'author', 'comments')
));
}
add_action('init', 'wpacademy_register_review_cpt');Создание формы для сбора отзывов с AJAX
Добавим форму в шаблон или виджет:
<form id="wpacademy-review-form">
<input type="text" name="author" placeholder="Ваше имя" required>
<textarea name="content" placeholder="Ваш отзыв" required></textarea>
<button type="submit">Отправить</button>
</form>
<div id="wpacademy-review-message"></div>JavaScript для отправки формы:
jQuery(document).ready(function($) {
$('#wpacademy-review-form').on('submit', function(e) {
e.preventDefault();
var data = {
action: 'wpacademy_submit_review',
author: $(this).find('input[name="author"]').val(),
content: $(this).find('textarea[name="content"]').val(),
nonce: wpacademy_ajax.nonce
};
$.post(wpakademy_ajax.url, data, function(response) {
$('#wpacademy-review-message').text(response.data.message);
if (response.success) {
$('#wpacademy-review-form')[0].reset();
}
});
});
});Обработка запроса на сервере
function wpacademy_handle_submit_review() {
check_ajax_referer('wpacademy_nonce', 'nonce');
$author = sanitize_text_field($_POST['author']);
$content = sanitize_textarea_field($_POST['content']);
if (empty($author) || empty($content)) {
wp_send_json_error(array('message' => 'Пожалуйста, заполните все поля'));
}
$post_id = wp_insert_post(array(
'post_title' => 'Отзыв от ' . $author,
'post_content' => $content,
'post_status' => 'pending', // Можно сразу 'publish'
'post_type' => 'review'
));
if ($post_id) {
wp_send_json_success(array('message' => 'Спасибо за отзыв! После проверки он будет опубликован.'));
} else {
wp_send_json_error(array('message' => 'Ошибка при сохранении отзыва'));
}
}
add_action('wp_ajax_wpacademy_submit_review', 'wpacademy_handle_submit_review');
add_action('wp_ajax_nopriv_wpacademy_submit_review', 'wpacademy_handle_submit_review');Дополнительные советы по автоматизации отзывов
1. Настройте уведомления на email для модераторов, чтобы быстро публиковать отзывы.
2. Используйте антиспам-плагины или reCAPTCHA для защиты формы отзывов.
3. Для SEO добавьте поддержку schema.org для отзывов, чтобы поисковики лучше индексировали.
4. Рассмотрите интеграцию с WooCommerce, если отзывы нужны для товаров.
5. Для массового импорта отзывов используйте WPRemark или WPExpertReview с их API.
Заключение
Автоматизация сбора и публикации отзывов в WordPress — практическая задача, которую можно решить разными способами: от готовых плагинов Quizle и WPExpertReview до собственных AJAX-форм и обработки данных через PHP. Выбирайте подходящий вариант в зависимости от требований и уровня технической подготовки.