wpmake.ru wordpress WPMake

Как создать модуль для автоматического ответа на комментарии WordPress

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

Почему полезны автоматические ответы на комментарии в WordPress

Автоматические ответы позволяют:

  • Поддерживать общение с аудиторией даже при отсутствии администратора;
  • Быстро информировать комментаторов о важных деталях;
  • Увеличивать вовлеченность и количество повторных посещений;
  • Сокращать время на рутинную работу по модерации и ответам.

Это особенно актуально для блогов с большой посещаемостью и ограниченными ресурсами на поддержку.

Используемые хуки WordPress для обработки комментариев

Для создания модуля автоматического ответа нам понадобится использовать хук comment_post. Этот хук срабатывает после добавления нового комментария и позволяет выполнить произвольный код.

Сигнатура хука:

do_action( 'comment_post', int $comment_ID, int $comment_approved )

Параметры:

  • $comment_ID — ID добавленного комментария;
  • $comment_approved — статус одобрения (1 — одобрен, 0 — на модерации).

Пример использования хука для автоматического ответа

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

function wpmake_auto_reply_comment( $comment_ID, $comment_approved ) {
    // Отвечаем только на одобренные комментарии
    if ( 1 !== $comment_approved ) {
        return;
    }

    $comment = get_comment( $comment_ID );
    $post_id = $comment->comment_post_ID;

    // Проверяем, чтобы не было циклов (не отвечать на свой ответ)
    if ( $comment->comment_author_email === 'auto-reply@wpmake.ru' ) {
        return;
    }

    $reply_content = 'Спасибо за ваш комментарий! Мы обязательно рассмотрим ваше мнение.';

    $replydata = array(
        'comment_post_ID'      => $post_id,
        'comment_content'      => $reply_content,
        'comment_parent'       => $comment_ID,
        'user_id'              => 0, // Гость или можно указать ID администратора
        'comment_author'       => 'Автоответчик',
        'comment_author_email' => 'auto-reply@wpmake.ru',
        'comment_approved'     => 1,
    );

    wp_insert_comment( $replydata );
}
add_action( 'comment_post', 'wpmake_auto_reply_comment', 10, 2 );

Данный код добавляет ответный комментарий с фиксированным текстом каждому новому одобренному комментарию. Мы используем специальный email, чтобы избежать бесконечных циклов ответов.

Расширение функционала: динамические ответы и фильтрация по постам

Чтобы сделать ответы более полезными и релевантными, можно расширить функционал:

  • Использовать разные тексты ответов в зависимости от категории поста;
  • Добавлять ссылки на полезные материалы;
  • Отвечать только на комментарии определённой длины или с ключевыми словами;
  • Настраивать задержку ответа через WP-Cron.

Пример: ответ в зависимости от категории записи

function wpmake_auto_reply_by_category( $comment_ID, $comment_approved ) {
    if ( 1 !== $comment_approved ) return;

    $comment = get_comment( $comment_ID );
    if ( $comment->comment_author_email === 'auto-reply@wpmake.ru' ) return;

    $post_id = $comment->comment_post_ID;
    $categories = get_the_category( $post_id );

    $reply_content = 'Спасибо за ваш комментарий!';

    foreach ( $categories as $category ) {
        if ( $category->slug === 'wordpress' ) {
            $reply_content = 'Спасибо за ваш комментарий по теме WordPress! Ознакомьтесь с нашими гайдами на сайте.';
            break;
        } elseif ( $category->slug === 'seo' ) {
            $reply_content = 'Спасибо за ваш SEO-комментарий! Рекомендуем нашу статью по оптимизации.';
            break;
        }
    }

    $replydata = array(
        'comment_post_ID'      => $post_id,
        'comment_content'      => $reply_content,
        'comment_parent'       => $comment_ID,
        'user_id'              => 0,
        'comment_author'       => 'Автоответчик',
        'comment_author_email' => 'auto-reply@wpmake.ru',
        'comment_approved'     => 1,
    );

    wp_insert_comment( $replydata );
}
add_action( 'comment_post', 'wpmake_auto_reply_by_category', 10, 2 );

Популярные плагины для автоматических ответов на комментарии

Если вы хотите внедрить автоматические ответы быстро и с расширенным функционалом, обратите внимание на следующие плагины:

  • Replyable — плагин с ИИ для умных автоматических ответов, который анализирует содержание комментария и отвечает соответствующе.
  • Comment Auto Responder — простой плагин для создания шаблонных ответов с настройкой условий показа.
  • WP GPT Comments — плагин, основанный на технологиях GPT, способный генерировать содержательные ответы на комментарии. Подробнее на wpshop.ru.

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

Советы по предотвращению спама и избыточных ответов

При автоматическом ответе важно избегать:

  • Ответов на спам-комментарии — обязательно используйте фильтры или антиспам-плагины;
  • Ответов на собственные автоматические комментарии — используйте уникальный email автора автоответа;
  • Чрезмерного количества ответов на один и тот же комментарий — можно предусмотреть проверку наличия уже существующего ответа.

Проверка наличия ответного комментария

function wpmake_already_replied( $comment_ID ) {
    $args = array(
        'parent' => $comment_ID,
        'author_email' => 'auto-reply@wpmake.ru',
        'count' => true,
    );
    $count = get_comments( $args );
    return $count > 0;
}

function wpmake_auto_reply_comment_safely( $comment_ID, $comment_approved ) {
    if ( 1 !== $comment_approved ) return;

    $comment = get_comment( $comment_ID );
    if ( $comment->comment_author_email === 'auto-reply@wpmake.ru' ) return;

    if ( wpmake_already_replied( $comment_ID ) ) return;

    $reply_content = 'Спасибо за ваш комментарий! Мы обязательно рассмотрим ваше мнение.';

    $replydata = array(
        'comment_post_ID'      => $comment->comment_post_ID,
        'comment_content'      => $reply_content,
        'comment_parent'       => $comment_ID,
        'user_id'              => 0,
        'comment_author'       => 'Автоответчик',
        'comment_author_email' => 'auto-reply@wpmake.ru',
        'comment_approved'     => 1,
    );
    wp_insert_comment( $replydata );
}
add_action( 'comment_post', 'wpmake_auto_reply_comment_safely', 10, 2 );
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙