Как создать автоматические эскалации в тикет-системе 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, которые помогут автоматизировать многие рутинные операции.

Как создать систему отслеживания проблем в WordPress с пользовательским статусом тикетов
28.12.2025
Как правильно удалить плагин WordPress без остатков
26.05.2026
Как настроить robots.txt в WordPress для закрытия технических страниц
16.08.2026
Как избежать проблем с производительностью при обработке большого количества тикетов в WordPress
15.05.2026
Как создать собственный тип записей (Custom Post Type) в WordPress
28.11.2025