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

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

Что такое эскалация тикетов и зачем она нужна

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

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

Например, если тикет в статусе "В ожидании ответа" не обновлялся более 48 часов, его нужно автоматически перевести в статус "Эскалация" и уведомить ответственного менеджера.

Создание пользовательских статусов тикетов для эскалаций

Для начала добавим новые статусы, которые будут отражать этапы эскалации. Используем функцию wpticket_register_ticket_statuses() для регистрации статусов через фильтр register_post_status, если тикеты — это кастомный тип записей.

function wpticket_register_ticket_statuses() {
    register_post_status('escalated', array(
        'label' => 'Эскалировано',
        'public' => true,
        'exclude_from_search' => false,
        'show_in_admin_all_list' => true,
        'show_in_admin_status_list' => true,
        'label_count' => _n_noop('Эскалировано <span class="count">(%s)</span>', 'Эскалировано <span class="count">(%s)</span>'),
    ));
}
add_action('init', 'wpticket_register_ticket_statuses');

После этого нужно добавить эти статусы в админские фильтры и в логику обработки тикетов, чтобы можно было выбирать их вручную и отображать в списках.

Настройка cron-задачи для проверки тикетов на эскалацию

Для автоматической проверки тикетов по расписанию используем WP Cron. Создадим задачу, которая будет запускаться, например, каждый час и искать тикеты, которые не обновлялись более 48 часов в статусе «В ожидании ответа».

function wpticket_schedule_escalation_check() {
    if (!wp_next_scheduled('wpticket_escalation_cron_hook')) {
        wp_schedule_event(time(), 'hourly', 'wpticket_escalation_cron_hook');
    }
}
add_action('wp', 'wpticket_schedule_escalation_check');

function wpticket_escalation_cron_function() {
    $args = array(
        'post_type' => 'ticket',
        'post_status' => 'waiting-for-response',
        'date_query' => array(
            array(
                'column' => 'post_modified_gmt',
                'before' => '48 hours ago',
            ),
        ),
        'posts_per_page' => -1,
    );
    $tickets = get_posts($args);

    foreach ($tickets as $ticket) {
        wp_update_post(array(
            'ID' => $ticket->ID,
            'post_status' => 'escalated',
        ));
        // Отправка уведомления ответственному
        wpticket_notify_manager($ticket->ID);
    }
}
add_action('wpticket_escalation_cron_hook', 'wpticket_escalation_cron_function');

Отправка уведомлений при эскалации тикета

Чтобы менеджеры не пропускали эскалированные тикеты, нужно автоматически отправлять им уведомления. Для этого можно использовать стандартную функцию wp_mail() или интегрировать более мощный плагин уведомлений.

function wpticket_notify_manager($ticket_id) {
    $ticket = get_post($ticket_id);
    $manager_email = get_option('wpticket_manager_email'); // email менеджера из настроек

    $subject = 'Тикет #' . $ticket_id . ' эскалирован';
    $message = 'Тикет с заголовком "' . $ticket->post_title . '" не был обработан вовремя и автоматически эскалирован.';

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

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

Использование плагина Clearfy Pro для оптимизации и автоматизации тикетов

Плагин Clearfy Pro предоставляет инструменты для управления производительностью и безопасности WordPress, а также позволяет гибко настраивать пользовательские типы записей и статусы. Его можно использовать для упрощения создания и контроля тикетов, а также для реализации дополнительных автоматизаций без глубокого погружения в код.

Рекомендации по тестированию и отладке системы эскалаций

После внедрения автоматических эскалаций важно тщательно протестировать систему. Проверьте, что cron-задачи выполняются вовремя, статусы меняются корректно, и уведомления доходят до менеджеров.

Проверить расписание WP Cron можно с помощью плагина WP Crontrol. Для отладки кода используйте логи ошибок, а также временно добавляйте записи в файл журнала с помощью функции error_log().

Не забудьте предусмотреть возможность ручного возврата тикета из статуса «Эскалировано» в нормальный рабочий статус, чтобы менеджеры могли корректно обрабатывать тикеты.

Заключение

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

Если хотите упростить процесс, обратите внимание на плагины из WPSHOP, которые помогут автоматизировать многие рутинные операции.

Как использовать hooks в WordPress для решения практических задач
02.12.2025
Как решить проблему замедленной работы AJAX в тикет-системе WordPress
01.03.2026
Как автоматизировать управление тикетами в WordPress
21.12.2025
Автоматизация обработки возвратов в WooCommerce с помощью хуков
06.07.2026
Как создать собственный тип записей (Custom Post Type) в WordPress
28.11.2025