Как создать автоматический отчет по тикетам в WordPress с WPtickets

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

Зачем нужен автоматический отчет по тикетам в WPtickets

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

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

Создание кастомной функции для сбора данных по тикетам

Для начала напишем функцию wptickets_get_tickets_report(), которая будет собирать статистику по тикетам за заданный период. Используем WP_Query для выборки постов типа ticket с необходимыми параметрами.

function wptickets_get_tickets_report($start_date, $end_date) {
    $args = [
        'post_type'      => 'ticket',
        'posts_per_page' => -1,
        'date_query'     => [
            [
                'after'     => $start_date,
                'before'    => $end_date,
                'inclusive' => true,
            ],
        ],
    ];

    $query = new WP_Query($args);
    $tickets = $query->posts;

    $report = [
        'total'      => count($tickets),
        'open'       => 0,
        'closed'     => 0,
        'in_progress'=> 0,
        'avg_response_time' => 0,
    ];

    $response_times = [];

    foreach ($tickets as $ticket) {
        $status = get_post_meta($ticket->ID, '_ticket_status', true);

        if ($status === 'open') $report['open']++;
        elseif ($status === 'closed') $report['closed']++;
        elseif ($status === 'in_progress') $report['in_progress']++;

        $created = get_post_time('U', false, $ticket->ID);
        $first_response = get_post_meta($ticket->ID, '_first_response_time', true);
        if ($first_response) {
            $response_times[] = $first_response - $created;
        }
    }

    if (!empty($response_times)) {
        $report['avg_response_time'] = array_sum($response_times) / count($response_times);
    }

    return $report;
}

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

Форматирование отчета и отправка по email

Теперь создадим функцию wptickets_send_report_email(), которая превратит массив с отчетом в читаемый HTML и отправит письмо менеджеру.

function wptickets_send_report_email($report, $start_date, $end_date) {
    $subject = "Отчет по тикетам с $start_date по $end_date";

    $body = "<h2>Отчет по тикетам с $start_date по $end_date</h2>";
    $body .= "<ul>";
    $body .= "<li>Всего тикетов: {$report['total']}</li>";
    $body .= "<li>Открытых: {$report['open']}</li>";
    $body .= "<li>В работе: {$report['in_progress']}</li>";
    $body .= "<li>Закрытых: {$report['closed']}</li>";
    $avg_hours = round($report['avg_response_time'] / 3600, 2);
    $body .= "<li>Среднее время первого ответа: {$avg_hours} часов</li>";
    $body .= "</ul>";

    $to = get_option('admin_email');
    $headers = ['Content-Type: text/html; charset=UTF-8'];

    wp_mail($to, $subject, $body, $headers);
}

Обратите внимание, что письмо отправляется на email администратора сайта, но вы можете заменить адрес на любой другой.

Автоматизация отправки отчетов по расписанию через WP-Cron

Чтобы отчет формировался и отправлялся автоматически, создадим крон-задачу. Добавим в файл функций следующий код:

function wptickets_schedule_daily_report() {
    if (!wp_next_scheduled('wptickets_daily_report_hook')) {
        wp_schedule_event(strtotime('tomorrow midnight'), 'daily', 'wptickets_daily_report_hook');
    }
}
add_action('wp', 'wptickets_schedule_daily_report');

function wptickets_daily_report_callback() {
    $yesterday = date('Y-m-d', strtotime('yesterday'));
    $today = date('Y-m-d');

    $report = wptickets_get_tickets_report($yesterday, $today);
    wptickets_send_report_email($report, $yesterday, $today);
}
add_action('wptickets_daily_report_hook', 'wptickets_daily_report_callback');

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

Дополнительные советы по улучшению отчетов в WPtickets

1. Расширьте сбор данных: Добавляйте метрики, например, среднее время закрытия тикета, количество повторных обращений или оценку удовлетворенности клиента.

2. Используйте таблицы или CSV: Для более удобного анализа можно формировать отчеты в формате CSV и прикреплять их к письму.

3. Интеграция с WPRemark: Для улучшения анализа можно подключить WPRemark (https://wpshop.ru/wpremark/?utm_source=wptickets.ru&utm_medium=article&utm_campaign=kak-sozdat-avtomaticheskiy-otchet-po-tiketam-v-wordpress-s-wptickets) и собирать отзывы клиентов вместе с тикетами.

4. Защита от сбоев: Добавьте логирование ошибок отправки и возможность повторной отправки отчета вручную.

Итоги

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

Как создать удобный инструмент импорта тикетов в WPtickets для WordPress
15.02.2026
Как создать кастомный фильтр для тикетов в WPtickets
11.02.2026
Как создать автозакрытие тикетов в WPtickets для эффективного управления поддержкой
08.01.2026
Как автоматизировать процесс распределения тикетов в WordPress
17.12.2025
Как создать автоматический отчет по тикетам в WordPress с WPtickets
19.02.2026