Автоматическое отправление отчёта о задачах WordPress по email

В повседневной работе с WordPress часто возникает необходимость автоматически получать отчёты о состоянии задач, выполнении планов или обновлениях. Это особенно актуально для сайтов, где используется система управления задачами, например, на базе плагина WPTasks или кастомных решений. В этой статье разберём, как реализовать автоматическую отправку отчётов по email с подробным описанием и примерами кода.

Почему важно автоматизировать отправку отчётов в WordPress

Автоматизация отправки отчётов позволяет:

  • Экономить время — не нужно вручную формировать и рассылать сводки;
  • Своевременно получать актуальную информацию о состоянии задач;
  • Повысить контроль над выполнением проектов и задач;
  • Уменьшить риск пропуска важных событий и дедлайнов;
  • Интегрировать отчёты в общую систему управления проектами.

Для сайтов с большим количеством задач или пользователей такое решение становится необходимостью.

Обзор способов реализации автоматической отправки отчётов по email

В WordPress для автоматической отправки писем можно использовать несколько подходов:

  • WP-Cron — встроенный планировщик задач WordPress, который позволяет запускать функции по расписанию;
  • Плагины для автоматизации — например, Clearfy Pro имеет расширенные возможности по работе с cron и email;
  • Кастомные решения — написание собственного кода с использованием wp_mail() и хуков.

Рассмотрим реализацию на базе WP-Cron с примером кода, который можно адаптировать под свои задачи.

Пример кода: автоматическая отправка отчёта о задачах с WPTasks

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

1. Регистрация cron задачи

add_action('wptasks_daily_report_event', 'wptasks_send_daily_report');

function wptasks_activate_cron() {
    if (!wp_next_scheduled('wptasks_daily_report_event')) {
        wp_schedule_event(time(), 'daily', 'wptasks_daily_report_event');
    }
}

register_activation_hook(__FILE__, 'wptasks_activate_cron');

function wptasks_deactivate_cron() {
    $timestamp = wp_next_scheduled('wptasks_daily_report_event');
    wp_unschedule_event($timestamp, 'wptasks_daily_report_event');
}

register_deactivation_hook(__FILE__, 'wptasks_deactivate_cron');

Этот код создаёт ежедневное событие WP-Cron, которое будет запускать функцию wptasks_send_daily_report.

2. Функция формирования и отправки отчёта

function wptasks_send_daily_report() {
    $args = array(
        'post_type'      => 'wptask',
        'post_status'    => 'publish',
        'posts_per_page' => -1,
    );
    $tasks = get_posts($args);

    $total_tasks = count($tasks);
    $urgent_tasks = array_filter($tasks, function($task) {
        $priority = get_post_meta($task->ID, 'priority', true);
        return $priority === 'high';
    });

    $message = "Отчёт по задачам за сегодня:\n";
    $message .= "Всего задач: " . $total_tasks . "\n";
    $message .= "Срочные задачи:\n";

    foreach ($urgent_tasks as $task) {
        $message .= '- ' . $task->post_title . "\n";
    }

    $to = 'manager@yourdomain.com';
    $subject = 'Ежедневный отчёт по задачам WordPress';
    $headers = array('Content-Type: text/plain; charset=UTF-8');

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

В этом примере мы собираем все задачи типа wptask, подсчитываем их количество, фильтруем по мета-полю priority и формируем текст отчёта, который отправляем на email.

Дополнительные советы и улучшения для автоматизации отчётов

Чтобы сделать отправку отчётов более удобной и эффективной, рекомендуем:

  • Добавить возможность отправлять отчёты в HTML-формате с таблицей и стилизацией;
  • Использовать фильтры WP для изменения получателей или формата отчёта через админку;
  • Интегрировать отчёты с плагинами уведомлений, например, My Popup, для отображения сообщений на сайте;
  • Использовать сторонние SMTP-плагины для повышения надежности доставки писем;
  • Добавить логирование отправленных отчётов для отладки и контроля.

Пример HTML письма с таблицей

function wptasks_send_daily_report() {
    $args = array(
        'post_type'      => 'wptask',
        'post_status'    => 'publish',
        'posts_per_page' => -1,
    );
    $tasks = get_posts($args);

    $total_tasks = count($tasks);

    $message = '<h2>Отчёт по задачам за сегодня</h2>';
    $message .= '<p>Всего задач: ' . $total_tasks . '</p>';
    $message .= '<table border="1" cellpadding="5" cellspacing="0">';
    $message .= '<thead><tr><th>Заголовок</th><th>Приоритет</th></tr></thead>';
    $message .= '<tbody>';

    foreach ($tasks as $task) {
        $priority = get_post_meta($task->ID, 'priority', true);
        $message .= '<tr><td>' . esc_html($task->post_title) . '</td><td>' . esc_html($priority) . '</td></tr>';
    }

    $message .= '</tbody></table>';

    $to = 'manager@yourdomain.com';
    $subject = 'Ежедневный отчёт по задачам WordPress';
    $headers = array('Content-Type: text/html; charset=UTF-8');

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

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

Для упрощения настройки и расширения возможностей можно использовать готовые плагины:

  • My Popup — для отображения всплывающих уведомлений и интеграции с email;
  • Clearfy Pro — для расширенного управления WP-Cron и оптимизации отправки писем;
  • WPRemark — для добавления оценок и комментариев, которые также можно включить в отчёты.

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

Удаление неиспользуемых метаданных в WordPress для оптимизации базы данных
11.01.2026
Как автоматизировать создание задач из форм в WordPress
30.03.2026
Автоматизация управления задачами в WordPress с помощью WPTasks
21.01.2026
Как создать автоматическое резервное копирование в WordPress
15.11.2025
Как автоматизировать удаление старых записей через метаключи в WordPress
02.02.2026