Как настроить кастомные уведомления о тикетах в WordPress

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

Почему нужны кастомные уведомления в системе тикетов WordPress

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

Также компании хотят добавить дополнительную логику: например, уведомления только при определённых статусах, или отправлять письма разным отделам, либо персонализировать шаблоны под бренд.

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

Использование хуков для кастомизации уведомлений о тикетах

Если вы используете собственную систему тикетов, например построенную на базе Custom Post Type, то уведомления можно добавить через хуки WordPress.

Пример функции, которая отправляет письмо при создании тикета:

function wpticket_send_new_ticket_notification( $ticket_id ) {
    $ticket = get_post( $ticket_id );
    if ( 'ticket' !== $ticket->post_type ) {
        return;
    }

    $user = get_userdata( $ticket->post_author );
    $to = $user->user_email;
    $subject = 'Ваш тикет принят: ' . $ticket->post_title;
    $message = 'Здравствуйте, ' . $user->display_name . "!\n";
    $message .= 'Ваш тикет был успешно создан. Вы можете просмотреть его по ссылке: ' . get_permalink( $ticket_id );

    wp_mail( $to, $subject, $message );
}
add_action( 'wp_insert_post', 'wpticket_send_new_ticket_notification', 10, 1 );

Эта функция отправит письмо пользователю сразу после создания тикета. Можно дополнительно фильтровать события, чтобы уведомления не отправлялись при обновлении, а только при создании.

Чтобы отправлять уведомления при изменении статуса, можно использовать мета-поля или таксономии для статусов и отслеживать изменения через хук save_post с сохранением предыдущего значения.

Отслеживание изменения статуса тикета для уведомлений

Для этого добавим функцию, которая сравнивает старый и новый статус, и при изменении отправляет письмо:

function wpticket_notify_status_change( $post_id, $post_after, $post_before ) {
    if ( $post_after->post_type !== 'ticket' ) {
        return;
    }

    $old_status = get_post_meta( $post_id, '_ticket_status', true );
    $new_status = isset( $_POST['ticket_status'] ) ? sanitize_text_field( $_POST['ticket_status'] ) : '';

    if ( $new_status && $new_status !== $old_status ) {
        update_post_meta( $post_id, '_ticket_status', $new_status );

        $user = get_userdata( $post_after->post_author );
        $to = $user->user_email;
        $subject = 'Статус вашего тикета изменён';
        $message = "Здравствуйте, {$user->display_name}!\n";
        $message .= "Статус вашего тикета '{$post_after->post_title}' изменён на: {$new_status}.\n";
        $message .= 'Посмотреть тикет: ' . get_permalink( $post_id );

        wp_mail( $to, $subject, $message );
    }
}
add_action( 'post_updated', 'wpticket_notify_status_change', 10, 3 );

Обратите внимание, что здесь предполагается, что статус хранится в мета-поле _ticket_status и обновляется через форму редактирования.

Популярные плагины для управления уведомлениями тикетов в WordPress

Если вы хотите готовое решение, обратите внимание на плагины, которые позволяют гибко настраивать уведомления:

  • Expert Review — расширенный плагин для работы с отзывами и тикетами, который включает гибкую систему уведомлений с шаблонами писем.
  • WPRemark — плагин комментариев и обратной связи с возможностью настройки уведомлений пользователям и администраторам.
  • My Popup — позволяет создавать уведомления и всплывающие окна, которые можно использовать для информирования посетителей о статусах тикетов или важных обновлениях.

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

Создание шаблонов писем для уведомлений о тикетах

Чтобы письма выглядели профессионально и содержали всю необходимую информацию, стоит использовать HTML-шаблоны с переменными.

Пример базового шаблона письма:

function wpticket_get_email_template( $user_name, $ticket_title, $ticket_link, $status ) {
    return "<html><body>
        <h2>Здравствуйте, {$user_name}!</h2>
        <p>Статус вашего тикета <strong>{$ticket_title}</strong> изменён на <strong>{$status}</strong>.</p>
        <p>Вы можете просмотреть тикет по ссылке: <a href='" . esc_url( $ticket_link ) . "'>Открыть тикет</a>.</p>
        <hr>
        <p>Это автоматическое сообщение от сайта.</p>
    </body></html>";
}

Чтобы отправить письмо с HTML, используйте заголовки в wp_mail:

add_filter( 'wp_mail_content_type', function() { return 'text/html'; } );

wp_mail( $to, $subject, wpticket_get_email_template( $user_name, $ticket_title, $ticket_link, $status ) );

remove_filter( 'wp_mail_content_type', 'set_html_content_type' );

Обработка вложений и дополнительные данные в уведомлениях

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

Пример отправки письма с вложением:

$attachments = array( WP_CONTENT_DIR . '/uploads/ticket-attachments/file1.pdf' );

wp_mail( $to, $subject, $message, $headers, $attachments );

Убедитесь, что у вас есть безопасная и удобная система загрузки файлов в тикеты, чтобы прикреплять их к уведомлениям.

Резюме по настройке кастомных уведомлений

Для эффективных уведомлений в системе тикетов на WordPress рекомендуем:

  • Использовать хуки wp_insert_post и post_updated для отправки писем при создании и изменении тикетов.
  • Хранить статусы тикетов в мета-полях и отслеживать их изменения.
  • Создавать HTML-шаблоны писем с переменными для персонализации.
  • Использовать плагины Expert Review или WPRemark для расширенной работы с уведомлениями без кода.
  • Добавлять вложения в письма, если требуется отправлять файлы.

Такой подход обеспечит удобное и профессиональное взаимодействие с пользователями и сотрудниками через систему тикетов.

Как создать собственный шорткод в WordPress
09.11.2025
Как решить проблему не работающих AJAX-запросов в тикет-системе WordPress
21.05.2026
Как автоматизировать расширенную обработку тикетов в WordPress
22.01.2026
Как правильно удалить плагин WordPress без остатков
26.05.2026
Как создать систему отслеживания проблем в WordPress с пользовательским статусом тикетов
28.12.2025