Введение в автоматизацию задач в WordPress
Если вы работаете с командой или управляете множеством задач на сайте WordPress, автоматизация создания и управления задачами поможет существенно сэкономить время и повысить эффективность. Плагин WPTasks — отличный инструмент для реализации такой автоматизации, позволяющий создавать задачи, назначать ответственных и отслеживать прогресс прямо в админке WordPress.
В этой статье подробно рассмотрим, как с помощью WPTasks и небольших доработок на PHP автоматизировать процесс создания задач, а также как интегрировать автоматические уведомления и фильтрацию задач по статусам.
Установка и базовая настройка WPTasks
Для начала необходимо установить плагин WPTasks. Это можно сделать через админку WordPress: в разделе Плагины → Добавить новый введите WPTasks в поиске, установите и активируйте плагин.
После установки перейдите в настройки плагина, настройте основные параметры, такие как роли пользователей, которым разрешено создавать и управлять задачами, и шаблоны уведомлений.
Пример базовой настройки ролей
Допустим, вы хотите, чтобы только пользователи с ролью project_manager могли создавать задачи, а остальные только просматривали их. Можно добавить следующий код в файл functions.php вашей темы или в специальный плагин:
function wptasks_add_custom_roles() {
add_role('project_manager', 'Project Manager', array(
'read' => true,
'edit_tasks' => true,
'publish_tasks' => true,
));
}
add_action('init', 'wptasks_add_custom_roles');Это добавит новую роль с необходимыми правами. В WPTasks можно потом привязать права к этой роли.
Автоматическое создание задач по событию
Одна из частых задач — автоматическое создание задачи при наступлении определённого события, например, при публикации новой статьи или поступлении заявки с формы.
Создание задачи при публикации записи
Добавим код, который автоматически создаёт задачу в WPTasks при публикации записи в определённой категории.
function wptasks_create_task_on_post_publish($post_ID, $post) {
if ($post->post_type !== 'post') {
return;
}
if (!has_category('important', $post_ID)) {
return;
}
// Формируем данные задачи
$task_title = 'Проверьте новую важную статью: ' . $post->post_title;
$task_description = 'Публикация: ' . get_permalink($post_ID);
// Создаем задачу через WPTasks API
$task_data = array(
'post_title' => $task_title,
'post_content' => $task_description,
'post_type' => 'wptasks_task', // тип задач WPTasks
'post_status' => 'publish',
);
wp_insert_post($task_data);
}
add_action('publish_post', 'wptasks_create_task_on_post_publish', 10, 2);Этот код срабатывает при публикации записи, проверяет её категорию и создаёт новую задачу с заголовком и ссылкой на статью.
Фильтрация и отображение задач по статусам
В WPTasks можно настраивать статусы задач. Для удобства пользователей полезно вывести список задач с фильтрацией по статусу и ответственному.
Пример шорткода для вывода задач с фильтром
Создадим шорткод [wptasks_filtered_tasks status="new"], который выведет список задач со статусом «new».
function wptasks_filtered_tasks_shortcode($atts) {
$atts = shortcode_atts(array(
'status' => 'new',
), $atts, 'wptasks_filtered_tasks');
$args = array(
'post_type' => 'wptasks_task',
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_wptasks_status',
'value' => $atts['status'],
'compare' => '=',
),
),
);
$query = new WP_Query($args);
if (!$query->have_posts()) {
return '<p>Задачи не найдены.</p>';
}
$output = '<ul>';
while ($query->have_posts()) {
$query->the_post();
$output .= '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
wp_reset_postdata();
$output .= '</ul>';
return $output;
}
add_shortcode('wptasks_filtered_tasks', 'wptasks_filtered_tasks_shortcode');Теперь вы можете вставлять этот шорткод в любую страницу и показывать задачи по нужному статусу.
Автоматические уведомления о новых и просроченных задачах
Очень удобно, если WPTasks отправляет уведомления ответственным о новых или просроченных задачах. Для этого можно расширить функционал через WP-Cron.
Пример функции отправки уведомлений
Создадим задачу Cron, которая будет раз в сутки проверять задачи со статусом «new» и отправлять email ответственным.
function wptasks_send_daily_notifications() {
$args = array(
'post_type' => 'wptasks_task',
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => '_wptasks_status',
'value' => 'new',
'compare' => '=',
),
),
);
$tasks = get_posts($args);
foreach ($tasks as $task) {
$assignee_id = get_post_meta($task->ID, '_wptasks_assignee', true);
if (!$assignee_id) continue;
$user_info = get_userdata($assignee_id);
if (!$user_info) continue;
$to = $user_info->user_email;
$subject = 'Новая задача: ' . $task->post_title;
$message = 'Появилась новая задача: "' . $task->post_title . '". Подробнее: ' . get_permalink($task->ID);
wp_mail($to, $subject, $message);
}
}
if (!wp_next_scheduled('wptasks_daily_notifications_event')) {
wp_schedule_event(time(), 'daily', 'wptasks_daily_notifications_event');
}
add_action('wptasks_daily_notifications_event', 'wptasks_send_daily_notifications');Этот код создаёт ежедневное событие, которое рассылает письма ответственным пользователям. Не забудьте настроить почтовую систему WordPress для корректной отправки.
Интеграция WPTasks с другими плагинами
WPTasks можно интегрировать с популярными плагинами, например, Contact Form 7 или Gravity Forms, чтобы создавать задачи из заявок автоматически.
Пример интеграции с Contact Form 7
Добавим обработчик события отправки формы CF7, который создаст задачу в WPTasks с данными из заявки.
function wptasks_cf7_create_task($contact_form) {
$submission = WPCF7_Submission::get_instance();
if (!$submission) {
return;
}
$data = $submission->get_posted_data();
$task_title = 'Новая заявка с сайта: ' . $data['your-name'];
$task_content = 'Email: ' . $data['your-email'] . '\nСообщение: ' . $data['your-message'];
$task_data = array(
'post_title' => $task_title,
'post_content' => $task_content,
'post_type' => 'wptasks_task',
'post_status' => 'publish',
);
wp_insert_post($task_data);
}
add_action('wpcf7_mail_sent', 'wptasks_cf7_create_task');Так вы автоматически будете получать задачи из форм обратной связи.
Дополнительные советы по оптимизации работы с WPTasks
Для улучшения производительности и удобства работы с WPTasks рекомендуем:
- Регулярно очищать старые и завершённые задачи — можно настроить автоматическое удаление или архивирование.
- Использовать плагин Clearfy Pro для оптимизации базы данных и отключения лишних функций WordPress, что ускорит загрузку страниц с задачами.
- Настроить ABC Pagination для удобной навигации по спискам задач, если их много.
- Использовать WPRemark для автоматизации оценок и комментариев к задачам, если требуется коллективное обсуждение.
Благодаря этим инструментам управление задачами в WordPress станет максимально эффективным и автоматизированным.
Заключение
Автоматизация создания и управления задачами в WordPress с помощью плагина WPTasks и кастомных решений на PHP — мощный способ оптимизировать рабочие процессы. В статье мы рассмотрели примеры создания задач при публикации записей, интеграцию с формами, фильтрацию задач и автоматические уведомления. Применяйте эти техники, чтобы сделать управление проектами на вашем сайте максимально удобным и современным.
Для скачивания и подробной информации о WPTasks вы можете посетить официальный сайт плагина: https://wpshop.ru/wptasks.