Если вы управляете службой поддержки на сайте WordPress с помощью системы тикетов, рано или поздно сталкиваетесь с необходимостью автоматического закрытия тикетов, которые долгое время остаются открытыми без активности. Это поможет поддерживать порядок, ускорит обработку заявок и освободит ресурсы для новых запросов.
Зачем нужно автоматическое закрытие тикетов в WordPress?
Ручное управление тикетами — трудоёмкий процесс, особенно при большом количестве запросов. Открытые тикеты, по которым нет действий, занимают место в очереди и могут запутать команду поддержки. Автоматическое закрытие помогает:
- Поддерживать актуальность статусов тикетов.
- Автоматически освобождать очередь для новых заявок.
- Повысить производительность команды поддержки.
- Снизить количество тикетов, которые забыты или игнорируются.
Рассмотрим, как реализовать это на практике.
Выбор плагина для поддержки тикетов с функцией автоматического закрытия
Существует несколько популярных плагинов для поддержки на WordPress, которые позволяют организовать тикеты и управлять ими. Некоторые из них имеют встроенные функции автоматизации, другие требуют доработки.
Плагин Awesome Support
Один из самых популярных плагинов для поддержки клиентов. Поддерживает кастомные статусы тикетов и расширения. Для автоматического закрытия можно использовать дополнения или добавить кастомный код.
WP Support Plus Responsive Ticket System
Поддерживает автоматические напоминания и изменение статусов. Есть опции для настройки логики закрытия тикетов.
Easy WP Support Ticket System
Простой плагин с базовой функциональностью, можно расширить с помощью хуков WordPress.
Если выбранный плагин не поддерживает автоматическое закрытие из коробки, можно реализовать свою логику с помощью кода.
Реализация автоматического закрытия тикетов на примере кастомного кода
Предположим, вы используете кастомный тип записи support_ticket для тикетов. В этом случае можно создать функцию, которая по расписанию будет менять статус тикета на "закрыт", если с ним не было активности более 30 дней.
Шаг 1. Добавление cron-задачи для запуска проверки
function wptask_schedule_ticket_closing() {
if ( ! wp_next_scheduled( 'wptask_auto_close_tickets_hook' ) ) {
wp_schedule_event( time(), 'daily', 'wptask_auto_close_tickets_hook' );
}
}
add_action( 'wp', 'wptask_schedule_ticket_closing' );
Эта функция регистрирует ежедневное событие для проверки тикетов.
Шаг 2. Функция проверки и закрытия тикетов
function wptask_auto_close_tickets() {
$args = array(
'post_type' => 'support_ticket',
'post_status' => 'open',
'date_query' => array(
array(
'column' => 'post_modified_gmt',
'before' => '30 days ago',
),
),
'posts_per_page' => -1,
);
$tickets = get_posts( $args );
foreach ( $tickets as $ticket ) {
// Обновляем статус тикета на 'closed'
wp_update_post( array(
'ID' => $ticket->ID,
'post_status' => 'closed',
) );
// Можно добавить уведомление пользователю или администратору
// wptask_notify_ticket_closed( $ticket->ID );
}
}
add_action( 'wptask_auto_close_tickets_hook', 'wptask_auto_close_tickets' );
Этот код выбирает все открытые тикеты, которые не обновлялись более 30 дней, и закрывает их.
Шаг 3. Очистка cron при деактивации темы или плагина
function wptask_deactivate() {
wp_clear_scheduled_hook( 'wptask_auto_close_tickets_hook' );
}
register_deactivation_hook( __FILE__, 'wptask_deactivate' );
Это предотвратит запуск задачи после удаления кода.
Уведомления о закрытии тикета: как предупредить пользователя
Важно не просто автоматически закрыть тикет, а уведомить пользователя, чтобы он при необходимости мог переоткрыть запрос. Для этого можно отправить email перед закрытием.
Добавление уведомления по email
function wptask_notify_ticket_closing( $ticket_id ) {
$ticket = get_post( $ticket_id );
$user_email = get_post_meta( $ticket_id, 'user_email', true );
if ( ! $user_email ) {
return;
}
$subject = 'Ваш тикет будет закрыт автоматически';
$message = 'Здравствуйте!\n\nВаш тикет "' . $ticket->post_title . '" не обновлялся более 30 дней и будет закрыт. Если у вас остались вопросы, пожалуйста, ответьте на это письмо, чтобы переоткрыть тикет.';
wp_mail( $user_email, $subject, $message );
}
Вы можете вызвать эту функцию за 3-5 дней до закрытия, используя отдельный cron или добавив логику в основную функцию.
Использование плагина WPGPT для расширения поддержки
Если ваша поддержка включает автоматические ответы или чат-боты на базе ИИ, плагин WPGPT поможет автоматизировать ответы и снизить нагрузку на операторов. Его можно интегрировать с системой тикетов для обработки повторяющихся вопросов и уведомлений.
Преимущества и возможные сложности автоматического закрытия тикетов
Автоматизация экономит время, но требует тщательной настройки, чтобы исключить случайное закрытие активных тикетов. Рекомендуется:
- Уведомлять пользователей о предстоящем закрытии.
- Добавлять возможность переоткрытия тикетов.
- Регулярно мониторить логи работы скрипта.
- Тестировать на копии сайта перед запуском на живом проекте.
Хорошо настроенная автоматизация станет мощным инструментом для поддержки клиентов и поможет поддерживать порядок в системе тикетов.