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

Если вы управляете службой поддержки на сайте 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 поможет автоматизировать ответы и снизить нагрузку на операторов. Его можно интегрировать с системой тикетов для обработки повторяющихся вопросов и уведомлений.

Преимущества и возможные сложности автоматического закрытия тикетов

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

  • Уведомлять пользователей о предстоящем закрытии.
  • Добавлять возможность переоткрытия тикетов.
  • Регулярно мониторить логи работы скрипта.
  • Тестировать на копии сайта перед запуском на живом проекте.

Хорошо настроенная автоматизация станет мощным инструментом для поддержки клиентов и поможет поддерживать порядок в системе тикетов.

WooCommerce: автоматическое удаление неоплаченных заказов через 24 часа
01.06.2026
Автоматическое создание отчёта об ошибках в WordPress
12.12.2025
Как использовать хуки в WordPress для автоматизации задач
07.12.2025
Автоматическое отключение неиспользуемых шорткодов в WordPress
14.04.2026
Как создать автоматические уведомления в WordPress с помощью хуков и плагинов
09.01.2026