Добавление подписки на обновления тикетов в WPtickets

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

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

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

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

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

Реализация подписки с помощью кастомного кода

Создаем пользовательское поле "Подписчики"

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

function wptickets_add_subscription_field() {
    $ticket_id = get_the_ID();
    $users = get_users(['role__in' => ['subscriber', 'editor', 'administrator']]);
    $subscribers = get_post_meta($ticket_id, '_wptickets_subscribers', true);
    if (!is_array($subscribers)) $subscribers = [];
    echo '<h3>Подписаться на обновления тикета</h3>';
    foreach ($users as $user) {
        $checked = in_array($user->ID, $subscribers) ? 'checked' : '';
        echo '<label><input type="checkbox" name="wptickets_subscribers[]" value="'.esc_attr($user->ID).'" '.$checked.'> '.esc_html($user->display_name).'</label><br>';
    }
}
add_action('wptickets_ticket_meta_after', 'wptickets_add_subscription_field');

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

Сохраняем подписчиков при обновлении тикета

function wptickets_save_subscription_field($post_id) {
    if (isset($_POST['wptickets_subscribers']) && is_array($_POST['wptickets_subscribers'])) {
        $subscribers = array_map('intval', $_POST['wptickets_subscribers']);
        update_post_meta($post_id, '_wptickets_subscribers', $subscribers);
    } else {
        delete_post_meta($post_id, '_wptickets_subscribers');
    }
}
add_action('save_post_wpticket', 'wptickets_save_subscription_field');

После сохранения тикета подписчики будут храниться в метаполе _wptickets_subscribers.

Отправка уведомлений подписчикам при обновлении тикета

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

function wptickets_notify_subscribers($ticket_id) {
    $subscribers = get_post_meta($ticket_id, '_wptickets_subscribers', true);
    if (empty($subscribers) || !is_array($subscribers)) return;

    $ticket = get_post($ticket_id);
    $subject = 'Обновление тикета №' . $ticket_id . ': ' . $ticket->post_title;
    $message = 'Тикет обновлен. Просмотреть: ' . get_permalink($ticket_id);

    foreach ($subscribers as $user_id) {
        $user = get_userdata($user_id);
        if ($user && is_email($user->user_email)) {
            wp_mail($user->user_email, $subject, $message);
        }
    }
}
add_action('wptickets_ticket_updated', 'wptickets_notify_subscribers');
add_action('comment_post', function($comment_id, $comment_approved, $commentdata) {
    if ($comment_approved && $commentdata['comment_post_type'] === 'wpticket') {
        wptickets_notify_subscribers($commentdata['comment_post_ID']);
    }
}, 10, 3);

Этот код слушает обновления тикета и комментарии к тикету, отправляя письма всем подписчикам.

Использование плагинов для расширения подписки

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

  • Subscribe to Comments Reloaded — позволяет подписываться на комментарии, которые можно адаптировать под тикеты.
  • Better Notifications for WP — расширенный контроль уведомлений с возможностью создания кастомных шаблонов писем.
  • WP User Frontend — обеспечивает форму с расширенными возможностями, включая подписку на обновления.

Для интеграции с WPtickets потребуется некоторая настройка, например, добавление триггеров, чтобы уведомления отправлялись при обновлении тикета.

Рекомендации по оптимизации подписки

Подписка может привести к большому количеству писем, особенно если тикет активно обсуждается. Чтобы не перегружать пользователей, можно:

  • Добавить возможность выбора типа уведомлений (только статус, только комментарии, все изменения).
  • Реализовать ежедневную сводку изменений вместо мгновенных писем.
  • Добавить в письма ссылки для отписки или настройки подписки.

Это улучшит пользовательский опыт и снизит нагрузку на почтовый сервер.

Пример интеграции с плагином WPRemark для расширенной подписки

WPRemark позволяет расширять функционал комментариев и уведомлений. В связке с WPtickets можно использовать WPRemark для создания подписки с более гибкой логикой.

Например, можно создавать кастомные триггеры, чтобы подписчики получали уведомления с кастомным контентом или через разные каналы — email, Telegram и другие.

Подробнее про WPRemark и способы интеграции с WPtickets читайте на официальной странице плагина WPRemark.

Итоги и практические советы

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

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

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

Если хотите автоматизировать больше процессов поддержки, рекомендуем ознакомиться с плагинами на WPSHOP.RU — там много полезных инструментов для WPtickets и других задач WordPress.

Как решить проблемы с отправкой почты в WPtickets на WordPress
20.04.2026
Как создать автозакрытие тикетов в WPtickets для эффективного управления поддержкой
08.01.2026
Как создать автоматический экспорт тикетов из WPtickets в CSV
30.04.2026
Как использовать шорткод WooCommerce для отображения статуса заказов на странице пользователя
01.07.2026
Как отладить проблемы с отслеживанием статусов тикетов в WPtickets
05.06.2026