Для эффективного управления системой поддержки в 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');Подобные решения значительно ускоряют работу службы поддержки и повышают качество обслуживания.