Автоматическое присвоение ответственных сотрудников тикетам в WordPress

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

Почему важно автоматизировать присвоение ответственных в тикет-системах WordPress

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

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

Ключевые критерии распределения тикетов

  • Тип запроса (техническая поддержка, продажи, бухгалтерия и т.д.)
  • Приоритет (высокий, средний, низкий)
  • Категория или тег тикета
  • Нагрузка на сотрудников (учитывать текущие открытые тикеты)
  • Регион или язык пользователя

Для реализации этих критериев можно использовать пользовательские поля и мета-данные в WordPress.

Практическая реализация автоматического присвоения ответственных в WordPress

Рассмотрим пример, как с помощью хуков WordPress и кастомного кода реализовать автоматическое присвоение ответственного при создании тикета.

Создание пользовательского поля для ответственного

Предположим, что у вас есть кастомный тип записи ticket для тикетов. Добавим к нему мета-поле assigned_to, где будет храниться ID пользователя-ответственного.

Код автоматического присвоения ответственного

function wpticket_assign_responsible_on_ticket_save($post_id, $post, $update) {
    // Проверяем тип записи
    if ($post->post_type !== 'ticket') {
        return;
    }

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

    // Получаем мета инфо тикета (например, категорию)
    $category = get_post_meta($post_id, 'ticket_category', true);

    // Определяем ответственного по категории
    $responsibles = [
        'technical' => 2, // ID пользователя тех. поддержки
        'sales' => 3,      // ID менеджера по продажам
        'billing' => 4     // ID бухгалтерии
    ];

    $assigned_user_id = isset($responsibles[$category]) ? $responsibles[$category] : 1; // 1 - админ по умолчанию

    // Сохраняем ID ответственного
    update_post_meta($post_id, 'assigned_to', $assigned_user_id);
}
add_action('wp_insert_post', 'wpticket_assign_responsible_on_ticket_save', 10, 3);

В этом примере мы при создании тикета автоматически назначаем ответственного в зависимости от категории. Если категория не определена — ставим админа с ID 1.

Уведомление ответственных сотрудников о новых тикетах

После присвоения ответственного полезно отправлять ему уведомление по email. Для этого расширим код:

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

    $assigned_to = get_post_meta($post_id, 'assigned_to', true);
    if (!$assigned_to) {
        return;
    }

    $user_info = get_userdata($assigned_to);
    if (!$user_info) {
        return;
    }

    $subject = 'Новый тикет назначен вам';
    $message = sprintf('Здравствуйте, %s!\n\nВам назначен новый тикет с ID %d. Пожалуйста, проверьте его в админке.',
        $user_info->display_name, $post_id);

    wp_mail($user_info->user_email, $subject, $message);
}
add_action('wp_insert_post', 'wpticket_notify_responsible_on_ticket_creation', 20, 3);

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

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

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

Пример расширения с Clearfy Pro

Clearfy Pro позволяет создавать пользовательские роли и настраивать права доступа, что полезно при распределении тикетов. Также с ним можно отключить лишние скрипты и улучшить производительность, что важно при интенсивной работе службы поддержки.

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

Для более интеллектуального распределения стоит учитывать количество открытых тикетов у каждого сотрудника. Это можно сделать, запросив количество тикетов с мета-полем assigned_to равным ID пользователя и статусом «открыт».

function wpticket_get_least_loaded_user($responsibles) {
    $min_count = PHP_INT_MAX;
    $selected_user = null;

    foreach ($responsibles as $user_id) {
        $args = [
            'post_type' => 'ticket',
            'post_status' => 'publish',
            'meta_query' => [
                [
                    'key' => 'assigned_to',
                    'value' => $user_id,
                    'compare' => '=',
                ],
                [
                    'key' => 'ticket_status',
                    'value' => 'open',
                    'compare' => '=',
                ],
            ],
            'fields' => 'ids',
        ];

        $query = new WP_Query($args);
        $count = $query->found_posts;

        if ($count < $min_count) {
            $min_count = $count;
            $selected_user = $user_id;
        }
    }

    return $selected_user;
}

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

Резюме

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

Используйте собственные хуки и мета-поля для гибкости или расширяйте возможности с помощью плагинов из WPShop.

Как решить проблему замедленной работы AJAX в тикет-системе WordPress
01.03.2026
Как добавить автоматическое сохранение формы в WordPress с помощью AJAX
10.04.2026
Как создать двухуровневую систему разрешений в WordPress для тикетов
24.03.2026
Оптимизация обработки AJAX-запросов в тикет-системе WordPress
18.06.2026
Как решить проблему повторной загрузки скрипта в WordPress
10.12.2025