Как создать простую классификацию тикетов в WPtickets для WordPress

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

Зачем нужна классификация тикетов в WPtickets

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

  • Группировать тикеты по типам проблем (технические, финансовые, общие вопросы и т.д.).
  • Назначать ответственных по категориям.
  • Автоматизировать обработку с помощью фильтров и правил.
  • Анализировать статистику по разным направлениям поддержки.

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

Создание кастомной таксономии для тикетов

В WordPress можно добавить свою таксономию (например, «Тип тикета»), которая будет связана с кастомным типом записи WPtickets. Это позволит создавать категории и ярлыки для тикетов.

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

function wptickets_register_ticket_type_taxonomy() {
    register_taxonomy(
        'wptickets_ticket_type',
        'wptickets',
        array(
            'labels' => array(
                'name' => 'Типы тикетов',
                'singular_name' => 'Тип тикета',
                'search_items' => 'Поиск типов тикетов',
                'all_items' => 'Все типы',
                'edit_item' => 'Редактировать тип',
                'add_new_item' => 'Добавить новый тип',
                'menu_name' => 'Типы тикетов',
            ),
            'hierarchical' => true, // как категории
            'show_ui' => true,
            'show_in_rest' => true,
            'rewrite' => array('slug' => 'ticket-type'),
        )
    );
}
add_action('init', 'wptickets_register_ticket_type_taxonomy');

Эта функция регистрирует новую таксономию «Типы тикетов», которую можно использовать в админке для назначения категорий к тикетам.

Добавление пользовательских полей для расширенной классификации

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

Пример добавления метаполя «Приоритет» с тремя вариантами:

function wptickets_add_priority_meta_box() {
    add_meta_box('wptickets_priority', 'Приоритет тикета', 'wptickets_priority_meta_box_callback', 'wptickets', 'side');
}
add_action('add_meta_boxes', 'wptickets_add_priority_meta_box');

function wptickets_priority_meta_box_callback($post) {
    $value = get_post_meta($post->ID, '_wptickets_priority', true);
    ?>
    <label for="wptickets_priority_field">Выберите приоритет:</label>
    <select name="wptickets_priority_field" id="wptickets_priority_field">
        <option value="low" <?php selected($value, 'low'); ?>>Низкий</option>
        <option value="medium" <?php selected($value, 'medium'); ?>>Средний</option>
        <option value="high" <?php selected($value, 'high'); ?>>Высокий</option>
    </select>
    <?php
}

function wptickets_save_priority_meta_box_data($post_id) {
    if (array_key_exists('wptickets_priority_field', $_POST)) {
        update_post_meta($post_id, '_wptickets_priority', sanitize_text_field($_POST['wptickets_priority_field']));
    }
}
add_action('save_post', 'wptickets_save_priority_meta_box_data');

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

Фильтрация и отображение тикетов по классификации

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

$args = array(
    'post_type' => 'wptickets',
    'tax_query' => array(
        array(
            'taxonomy' => 'wptickets_ticket_type',
            'field'    => 'slug',
            'terms'    => 'tehnicheskie-voprosy',
        ),
    ),
    'meta_query' => array(
        array(
            'key' => '_wptickets_priority',
            'value' => 'high',
        ),
    ),
);
$query = new WP_Query($args);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        echo '<h3>' . get_the_title() . '</h3>';
        echo '<p>' . get_the_excerpt() . '</p>';
    }
    wp_reset_postdata();
} else {
    echo '<p>Тикеты не найдены.</p>';
}

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

Рекомендации по плагинам для расширения функционала классификации

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

  • Custom Post Type UI - для удобного создания таксономий и типов записей без кода.
  • Meta Box - мощный инструмент для создания метаполей и форм редактирования.
  • Clearfy Pro - оптимизация и расширение возможностей WordPress, в том числе для кастомных типов записей.

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

Интеграция классификации с автоматизацией WPtickets

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

Пример автоприсваивания менеджера по типу тикета:

function wptickets_assign_manager_by_type($ticket_id) {
    $terms = wp_get_post_terms($ticket_id, 'wptickets_ticket_type');
    if (!empty($terms)) {
        $type = $terms[0]->slug;
        $manager_id = 0;
        switch ($type) {
            case 'tehnicheskie-voprosy':
                $manager_id = 5; // ID сотрудника
                break;
            case 'finansovye-voprosy':
                $manager_id = 7;
                break;
        }
        if ($manager_id) {
            update_post_meta($ticket_id, '_wptickets_assigned_manager', $manager_id);
        }
    }
}
add_action('wptickets_ticket_created', 'wptickets_assign_manager_by_type');

Подобные решения значительно ускоряют работу службы поддержки и повышают качество обслуживания.

Отладка ошибок оплаты и обновление статуса заказов в WooCommerce
24.06.2026
Как установить права доступа к тикетам WPtickets через capabilities в WordPress
31.05.2026
Как создать автозакрытие тикетов в WPtickets для эффективного управления поддержкой
08.01.2026
Как создать систему поддержки (тикетов) в WordPress
20.11.2025
Интеграция WPtickets с WPRemark для автоматического присваивания тикетов
26.12.2025