Как создать автоматические ответы в тикет-системе WordPress

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

Зачем нужны автоматические ответы в тикет-системе WordPress

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

Типичные сценарии для автоответов:

  • Подтверждение создания тикета;
  • Изменение статуса тикета (например, «в работе», «решен»);
  • Запрос дополнительной информации;
  • Закрытие тикета с благодарностью.

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

Если у вас еще нет тикет-системы, рекомендую обратить внимание на плагины с поддержкой автоответов. Например:

  • JS Help Desk — простая и бесплатная система с базовыми автоответами.
  • Expert Review — плагин для отзывов и тикетов с расширенной системой уведомлений.

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

Как реализовать автоматические ответы программно в WordPress

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

1. Хук для отслеживания изменения статуса тикета

В WordPress мы можем использовать хук transition_post_status или save_post_ticket. Пример:

function wpticket_send_auto_response($post_id, $post, $update) {
    if ($post->post_type !== 'ticket') {
        return;
    }

    // Проверяем, что это обновление, а не новая запись
    if (!$update) {
        return;
    }

    // Получаем предыдущий статус
    $old_status = get_post_meta($post_id, '_old_ticket_status', true);
    $new_status = get_post_status($post_id);

    if ($old_status === $new_status) {
        return; // Статус не изменился
    }

    // Сохраняем новый статус для последующего сравнения
    update_post_meta($post_id, '_old_ticket_status', $new_status);

    // Отправляем письмо при смене статуса
    wpticket_send_email_on_status_change($post_id, $new_status);
}
add_action('save_post_ticket', 'wpticket_send_auto_response', 10, 3);

2. Функция отправки письма

Создадим функцию, которая формирует и отправляет письмо пользователю:

function wpticket_send_email_on_status_change($post_id, $new_status) {
    $post = get_post($post_id);
    $user_email = get_post_meta($post_id, '_ticket_user_email', true); // email пользователя

    if (empty($user_email)) {
        return; // Нет email — ничего не отправляем
    }

    $subject = 'Обновление статуса вашего тикета №' . $post_id;
    $message = "Здравствуйте!\n\nСтатус вашего тикета изменился на: " . $new_status . ".\n\n";
    $message .= "Вы можете просмотреть тикет по ссылке: " . get_permalink($post_id) . "\n\nСпасибо за обращение!";

    wp_mail($user_email, $subject, $message);
}

Как сохранить email пользователя при создании тикета

Чтобы функция работала, нужно сохранять email пользователя в мета-поле _ticket_user_email. Если тикеты создаются из формы, добавьте в обработчик сохранение:

if (isset($_POST['user_email'])) {
    update_post_meta($post_id, '_ticket_user_email', sanitize_email($_POST['user_email']));
}

Дополнительные возможности: шаблоны писем и локализация

Для удобства и масштабирования автоответов рекомендую вынести текст сообщений в отдельные шаблоны или использовать фильтры для их изменения. Например:

function wpticket_get_email_template($status) {
    $templates = [
        'new' => 'Ваш тикет принят и будет обработан в ближайшее время.',
        'in_progress' => 'Ваш тикет находится в обработке.',
        'closed' => 'Ваш тикет закрыт. Спасибо за обращение!'
    ];
    return isset($templates[$status]) ? $templates[$status] : 'Обновление по вашему тикету.';
}

В функции отправки письма тогда можно использовать:

$message = "Здравствуйте!\n\n" . wpticket_get_email_template($new_status) . "\n\nС уважением, служба поддержки.";

Рекомендации по улучшению автоответов

  • Используйте HTML-письма для более приятного оформления;
  • Добавьте ссылки на базу знаний или FAQ для самостоятельного решения;
  • Логируйте отправленные письма для отладки и контроля;
  • Добавьте проверку частоты отправки, чтобы не спамить пользователя;
  • Используйте SMTP-серверы или специализированные сервисы для надежной доставки.

Заключение

Автоматические ответы — важный элемент любой тикет-системы. Их можно реализовать как с помощью готовых плагинов, так и самостоятельно, используя хук save_post_ticket и функцию wp_mail. Такой подход позволит гибко настраивать логику уведомлений под ваши задачи и существенно повысит качество поддержки.

Для расширенного функционала советую посмотреть на Expert Review — плагин с широкими возможностями по управлению тикетами и уведомлениями.

Как создать автоматическое распределение тикетов в WordPress
06.02.2026
Как создать автоматический отчет о проблемах в тикет-системе WordPress
26.02.2026
Как создать собственный виджет в WordPress: подробное руководство с примером кода
02.12.2025
Как отладить и исправить проблемы с неработающими AJAX-запросами в тикет-системе WordPress
04.05.2026
Как автоматизировать процесс обработки тикетов в WordPress
18.01.2026