Как создать автоматический сбор отзывов в WordPress с подтверждением

Автоматический сбор отзывов на сайте — отличный способ увеличить количество обратной связи от пользователей и повысить доверие к вашему контенту или продуктам. В этой статье мы подробно разберём, как реализовать такую систему в WordPress с подтверждением отзывов, чтобы минимизировать спам и повысить качество отзывов.

Почему важен автоматический сбор отзывов с подтверждением

Отзывы играют ключевую роль в повышении конверсии и доверия посетителей. Однако часто владельцы сайтов сталкиваются с проблемами:

  • Большое количество спама и фейковых отзывов.
  • Пользователи не оставляют отзывы из-за сложности процесса.
  • Отсутствие модерации и подтверждения приводит к публикации некачественного контента.

Автоматизация сбора отзывов с подтверждением позволяет решить эти задачи, сделав процесс удобным и безопасным.

Выбор плагина для автоматического сбора отзывов

Для реализации системы можно использовать готовые решения, которые значительно облегчат задачу. Среди популярных плагинов стоит выделить:

  • Expert Review — мощный плагин для сбора и управления отзывами с поддержкой подтверждений и модерации.
  • WPRemark — удобный инструмент для сбора отзывов с возможностью автоматической проверки и уведомлений.

Оба плагина имеют встроенные механизмы подтверждения через email, что позволяет защититься от спама.

Создание простой системы сбора отзывов с подтверждением на PHP и WordPress

Если по каким-то причинам вы хотите сделать кастомное решение, ниже пример минимальной реализации с подтверждением по email.

1. Создание формы для отзывов

Добавим шорткод, который выводит форму:

function wpall_render_review_form() {
    if ( isset($_POST['wpall_review_submit']) ) {
        wpall_handle_review_submission();
    }
    ob_start();
    ?>
    <form method="post">
        <p><label for="wpall_review_name">Ваше имя:</label><br>
        <input type="text" id="wpall_review_name" name="wpall_review_name" required></p>

        <p><label for="wpall_review_email">Email для подтверждения:</label><br>
        <input type="email" id="wpall_review_email" name="wpall_review_email" required></p>

        <p><label for="wpall_review_text">Отзыв:</label><br>
        <textarea id="wpall_review_text" name="wpall_review_text" required></textarea></p>

        <p><input type="submit" name="wpall_review_submit" value="Отправить отзыв"></p>
    </form>
    <?php
    return ob_get_clean();
}
add_shortcode('wpall_review_form', 'wpall_render_review_form');

2. Обработка и сохранение отзыва с отправкой письма подтверждения

Создадим функцию, которая принимает данные, сохраняет их в базу в статусе «ожидает подтверждения» и отправляет письмо с ссылкой подтверждения:

function wpall_handle_review_submission() {
    global $wpdb;
    $table = $wpdb->prefix . 'wpall_reviews';

    $name = sanitize_text_field($_POST['wpall_review_name']);
    $email = sanitize_email($_POST['wpall_review_email']);
    $text = sanitize_textarea_field($_POST['wpall_review_text']);
    $token = wp_generate_password(20, false);

    // Создаем таблицу, если не существует
    $charset_collate = $wpdb->get_charset_collate();
    $sql = "CREATE TABLE IF NOT EXISTS $table (
        id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
        name VARCHAR(255) NOT NULL,
        email VARCHAR(255) NOT NULL,
        review TEXT NOT NULL,
        token VARCHAR(255) NOT NULL,
        status VARCHAR(20) NOT NULL DEFAULT 'pending',
        PRIMARY KEY  (id)
    ) $charset_collate;";
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);

    $wpdb->insert($table, [
        'name' => $name,
        'email' => $email,
        'review' => $text,
        'token' => $token,
        'status' => 'pending'
    ]);

    $confirm_url = add_query_arg([
        'wpall_review_confirm' => '1',
        'token' => $token
    ], home_url());

    $subject = 'Подтвердите ваш отзыв на сайте';
    $message = "Здравствуйте, $name!\n\nПожалуйста, подтвердите ваш отзыв, перейдя по ссылке:\n$confirm_url";

    wp_mail($email, $subject, $message);
    echo '<p>Спасибо за отзыв! Проверьте ваш email для подтверждения.</p>';
}

3. Подтверждение отзыва по ссылке

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

function wpall_handle_review_confirmation() {
    if ( isset($_GET['wpall_review_confirm'], $_GET['token']) ) {
        global $wpdb;
        $table = $wpdb->prefix . 'wpall_reviews';
        $token = sanitize_text_field($_GET['token']);

        $review = $wpdb->get_row($wpdb->prepare("SELECT * FROM $table WHERE token = %s AND status = 'pending'", $token));
        if ($review) {
            $wpdb->update($table, ['status' => 'approved'], ['id' => $review->id]);
            echo '<p>Ваш отзыв подтверждён и опубликован. Спасибо!</p>';
        } else {
            echo '<p>Неверный или устаревший токен подтверждения.</p>';
        }
        exit;
    }
}
add_action('template_redirect', 'wpall_handle_review_confirmation');

Вывод подтверждённых отзывов на сайте

Теперь можно вывести все одобренные отзывы с помощью шорткода:

function wpall_show_approved_reviews() {
    global $wpdb;
    $table = $wpdb->prefix . 'wpall_reviews';
    $reviews = $wpdb->get_results("SELECT name, review FROM $table WHERE status = 'approved' ORDER BY id DESC");

    if (empty($reviews)) {
        return '<p>Отзывы отсутствуют.</p>';
    }

    $output = '<ul class="wpall-reviews">';
    foreach($reviews as $r) {
        $output .= '<li><strong>' . esc_html($r->name) . '</strong>: ' . esc_html($r->review) . '</li>';
    }
    $output .= '</ul>';
    return $output;
}
add_shortcode('wpall_show_reviews', 'wpall_show_approved_reviews');

Советы по улучшению и безопасности

Защита от спама

Для повышения безопасности и снижения количества спама рекомендуем добавить капчу (например, Google reCAPTCHA) в форму. Это значительно уменьшит автоматические отправки.

Модерация и уведомления

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

Использование плагинов для расширения функционала

Плагины Expert Review и WPRemark изначально имеют все необходимые функции, включая email-подтверждение, модерацию, рейтинги и интеграцию с дизайном сайта. Их стоит рассмотреть для профессиональных проектов.

Итог

Автоматический сбор отзывов с подтверждением — это важный элемент современного сайта на WordPress, который помогает улучшить взаимодействие с пользователями и повысить качество контента. Вы можете использовать готовые решения или создать своё, опираясь на примеры кода из статьи.

Автоматическое удаление старых записей и ревизий в WordPress через WP-Cron
12.01.2026
Как создать автоответчик в комментариях WordPress
13.02.2026
Как создать динамические отзывы в WordPress с подтверждением
20.01.2026
WooCommerce: автоматическое изменение цены продукта при добавлении в корзину
08.05.2026
WooCommerce: автоматическое удаление неоплаченных заказов по срокам
12.05.2026