Для эффективного управления службой поддержки на базе WordPress с использованием плагина WPtickets, важно иметь возможность получать подробные и своевременные отчеты о состоянии тикетов. Автоматические отчеты помогают менеджерам быстро оценивать нагрузку, выявлять проблемные моменты и улучшать качество сервиса.
Почему нужны автоматические отчеты по тикетам
Автоматизация отчетов позволяет сократить ручной труд и снизить вероятность ошибок при сборе данных. Вместо того чтобы вручную выгружать статистику по тикетам, вы можете настроить регулярную рассылку отчётов с ключевыми метриками — количеством новых, открытых, решённых тикетов, временем реакции и другими показателями.
Такой подход повышает прозрачность работы службы поддержки и помогает своевременно реагировать на проблемы.
Основные показатели для отчета по тикетам
Прежде чем создавать автоматический отчет, определите ключевые показатели, которые хотите видеть:
- Общее количество тикетов за период
- Количество новых и закрытых тикетов
- Среднее время ответа на тикет
- Количество тикетов по категориям или отделам
- Топ по авторам тикетов (клиенты, которые обращаются чаще всего)
Эти данные помогут понять загрузку и эффективность работы поддержки.
Настройка автоматической отправки отчетов через WPtickets
WPtickets не имеет встроенного функционала комплексной отчетности, но с помощью кастомных функций и стандартных WordPress возможностей можно организовать автоматическую генерацию и отправку отчетов по расписанию.
Создание пользовательской функции для сбора данных
Для начала нужно написать функцию, которая соберет нужные данные из базы WPtickets. Пример функции wptickets_generate_report():
function wptickets_generate_report() {
global $wpdb;
$table = $wpdb->prefix . 'wptickets'; // таблица тикетов
// Получаем количество тикетов за последние 7 дней
$count_tickets = $wpdb->get_var("SELECT COUNT(*) FROM $table WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)");
// Получаем количество закрытых тикетов
$closed_tickets = $wpdb->get_var("SELECT COUNT(*) FROM $table WHERE status = 'closed' AND updated_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)");
// Формируем отчет
$report = "Отчет по тикетам за последнюю неделю:\n";
$report .= "Всего тикетов: " . $count_tickets . "\n";
$report .= "Закрытых тикетов: " . $closed_tickets . "\n";
return $report;
}
Эта функция — базовый пример, который вы можете расширить по своим требованиям, добавив более сложные запросы и метрики.
Автоматическая рассылка отчета с помощью WP Cron
Теперь нужно настроить автоматическую отправку письма с отчетом. Для этого используем WP Cron — систему планировщика задач WordPress.
Добавим событие для еженедельной отправки:
function wptickets_schedule_report() {
if ( ! wp_next_scheduled( 'wptickets_weekly_report_event' ) ) {
wp_schedule_event( time(), 'weekly', 'wptickets_weekly_report_event' );
}
}
add_action( 'wp', 'wptickets_schedule_report' );
// Хук для отправки письма
add_action( 'wptickets_weekly_report_event', 'wptickets_send_report' );
function wptickets_send_report() {
$to = 'manager@example.com';
$subject = 'Еженедельный отчет по тикетам WPtickets';
$message = wptickets_generate_report();
wp_mail( $to, $subject, $message );
}
В этом примере отчет будет отправляться каждую неделю на указанный email менеджера.
Использование плагинов для расширенной аналитики в WPtickets
Если вам нужны более продвинутые отчеты с графиками и фильтрами, можно использовать интеграцию WPtickets с аналитическими плагинами. Например:
- WPDataTables — позволяет строить таблицы и графики на основе данных из базы WPtickets. Можно вывести динамические отчеты на странице админки.
- WP Crontrol — для управления и отладки задач WP Cron, поможет контролировать выполнение автоматических отчетов.
- Advanced Custom Fields (ACF) — если вы добавляете кастомные поля в тикеты, ACF поможет гибко работать с этими данными в отчетах.
Используйте эти инструменты для создания удобных панелей мониторинга и отчетности.
Пример создания отчета с таблицей и фильтрами в админке
Вы можете вывести отчет в админке WordPress в виде таблицы с фильтрами по дате и статусу тикета. Вот упрощенный пример:
add_action('admin_menu', 'wptickets_add_report_page');
function wptickets_add_report_page() {
add_menu_page('Отчет по тикетам', 'Отчет WPtickets', 'manage_options', 'wptickets-report', 'wptickets_report_page');
}
function wptickets_report_page() {
global $wpdb;
$table = $wpdb->prefix . 'wptickets';
$status = isset($_GET['status']) ? sanitize_text_field($_GET['status']) : '';
$date_from = isset($_GET['date_from']) ? sanitize_text_field($_GET['date_from']) : '';
$date_to = isset($_GET['date_to']) ? sanitize_text_field($_GET['date_to']) : '';
$where = [];
if ($status) {
$where[] = "status = '" . esc_sql($status) . "'";
}
if ($date_from) {
$where[] = "created_at >= '" . esc_sql($date_from) . "'";
}
if ($date_to) {
$where[] = "created_at <= '" . esc_sql($date_to) . "'";
}
$where_sql = '';
if (!empty($where)) {
$where_sql = 'WHERE ' . implode(' AND ', $where);
}
$tickets = $wpdb->get_results("SELECT * FROM $table $where_sql ORDER BY created_at DESC");
echo '<h1>Отчет по тикетам WPtickets</h1>';
echo '<form method="GET">';
echo '<input type="hidden" name="page" value="wptickets-report" />';
echo '<label>Статус: <select name="status">';
echo '<option value="">Все</option>';
echo '<option value="open" ' . selected($status, 'open', false) . '>Открытые</option>';
echo '<option value="closed" ' . selected($status, 'closed', false) . '>Закрытые</option>';
echo '</select></label>';
echo '<label>Дата с: <input type="date" name="date_from" value="' . esc_attr($date_from) . '" /></label>';
echo '<label>по: <input type="date" name="date_to" value="' . esc_attr($date_to) . '" /></label>';
echo '<input type="submit" value="Фильтровать" />';
echo '</form>';
if ($tickets) {
echo '<table border="1" cellpadding="5" cellspacing="0">';
echo '<tr><th>ID</th><th>Тема</th><th>Статус</th><th>Дата создания</th></tr>';
foreach ($tickets as $ticket) {
echo '<tr>';
echo '<td>' . esc_html($ticket->id) . '</td>';
echo '<td>' . esc_html($ticket->subject) . '</td>';
echo '<td>' . esc_html($ticket->status) . '</td>';
echo '<td>' . esc_html($ticket->created_at) . '</td>';
echo '</tr>';
}
echo '</table>';
} else {
echo '<p>Тикеты не найдены.</p>';
}
}
Так вы получите удобный интерфейс для просмотра и фильтрации тикетов прямо в админке без лишних плагинов.
Итоги и рекомендации
Автоматизация отчетности по тикетам в WPtickets — важный элемент повышения эффективности поддержки. Используйте кастомные функции для сбора данных, настройте WP Cron для регулярной отправки отчетов и при необходимости расширяйте функционал с помощью плагинов аналитики.
Если хотите глубже интегрировать аналитику, обратите внимание на плагин WPRemark, который позволяет автоматизировать работу с отзывами и может быть полезен в связке с WPtickets для оценки качества поддержки.