В этом материале мы разберём, как настроить автоматическое отправление отчетов с вашего сайта на WordPress. Такая автоматизация полезна для регулярного мониторинга состояния сайта, аналитики посещаемости, контроля заказов или других пользовательских данных. Мы рассмотрим, как сделать это с помощью PHP-кода, а также какие плагины помогут упростить задачу.
Зачем нужна автоматическая отправка отчетов в WordPress?
Регулярные отчеты позволяют держать руку на пульсе своего сайта без необходимости заходить в админку. Например, вы можете настроить отправку ежедневных или еженедельных сводок по заказам, активности пользователей, ошибкам или статистике посещаемости. Это экономит время и помогает быстро реагировать на проблемы.
Чаще всего такие отчеты отправляются на электронную почту, но можно использовать и другие каналы, например Slack или Telegram, через API.
Настройка автоматической отправки отчетов через wp_cron
Что такое wp_cron и как он работает
WordPress имеет встроенную систему планировщика задач — wp_cron. Она позволяет запускать пользовательские функции по расписанию. Для автоматической отправки отчетов мы можем написать функцию, которая формирует отчет и отправляет его на email, а затем зарегистрировать её в расписании.
Пример кода для wp5.ru: автоматическая отправка отчета о новых пользователях
function wp5_send_new_users_report() {
global $wpdb;
// Получаем пользователей, зарегистрированных за последний день
$date = date('Y-m-d H:i:s', strtotime('-1 day'));
$users = $wpdb->get_results($wpdb->prepare(
"SELECT user_login, user_email, user_registered FROM $wpdb->users WHERE user_registered > %s",
$date
));
if (empty($users)) {
return; // Нет новых пользователей
}
$message = "Отчет по новым пользователям за последние 24 часа:\n\n";
foreach ($users as $user) {
$message .= "Логин: {$user->user_login}, Email: {$user->user_email}, Зарегистрирован: {$user->user_registered}\n";
}
wp_mail('admin@wp5.ru', 'Отчет новых пользователей', $message);
}
// Регистрируем задачу
function wp5_schedule_reports() {
if (!wp_next_scheduled('wp5_daily_new_users_report')) {
wp_schedule_event(time(), 'daily', 'wp5_daily_new_users_report');
}
}
add_action('wp', 'wp5_schedule_reports');
add_action('wp5_daily_new_users_report', 'wp5_send_new_users_report');
// Очистка при деактивации плагина
function wp5_deactivate_report_schedule() {
$timestamp = wp_next_scheduled('wp5_daily_new_users_report');
if ($timestamp) {
wp_unschedule_event($timestamp, 'wp5_daily_new_users_report');
}
}
register_deactivation_hook(__FILE__, 'wp5_deactivate_report_schedule');
В этом примере мы ежедневно отправляем письмо с информацией о новых пользователях за последние 24 часа. Код можно адаптировать под любые данные.
Использование плагинов для автоматизации отчетов
Если вы хотите обойтись без кода, можно использовать плагины. Вот несколько полезных вариантов:
- WP Crontrol — позволяет управлять задачами wp_cron из админки, удобно для отладки.
- Report Builder for WP — строит отчеты по заказам, пользователям и другим данным с возможностью отправки по email.
- Expert Review — плагин для сбора и анализа отзывов, умеет создавать отчеты и уведомления.
Использование готовых решений ускорит настройку и даст дополнительные возможности, например, визуализацию данных.
Как отправлять более сложные отчеты: CSV и вложения
Для удобства анализа данные часто отправляют в виде файлов CSV. Рассмотрим, как добавить вложение с CSV-файлом в письмо.
function wp5_send_csv_report() {
global $wpdb;
$users = $wpdb->get_results("SELECT user_login, user_email, user_registered FROM $wpdb->users");
if (empty($users)) {
return;
}
// Создаем CSV содержимое
$csv = "Логин,Email,Дата регистрации\n";
foreach ($users as $user) {
$csv .= "{$user->user_login},{$user->user_email},{$user->user_registered}\n";
}
// Сохраняем во временный файл
$upload_dir = wp_upload_dir();
$file_path = $upload_dir['basedir'] . '/user_report.csv';
file_put_contents($file_path, $csv);
$to = 'admin@wp5.ru';
$subject = 'CSV отчет пользователей';
$message = 'Во вложении отчет по пользователям.';
$headers = array('Content-Type: text/html; charset=UTF-8');
$attachments = array($file_path);
wp_mail($to, $subject, $message, $headers, $attachments);
// Опционально удалить файл после отправки
@unlink($file_path);
}
Вы можете запустить эту функцию по расписанию через wp_cron так же, как в предыдущем примере.
Советы по надежности и безопасности
При создании автоматических отчетов учитывайте следующие моменты:
- Проверяйте объем данных, чтобы письма не были слишком тяжелыми.
- Используйте защиту от повторного запуска — wp_cron может запускаться несколько раз подряд.
- Не отправляйте конфиденциальные данные без шифрования.
- Логируйте ошибки отправки, чтобы вовремя выявлять проблемы.
- Если отправка писем проблематична, рассмотрите SMTP-плагины типа WP Mail SMTP.
Заключение
Автоматическая отправка отчетов в WordPress — мощный инструмент для мониторинга и управления сайтом. С помощью wp_cron и небольшой порции кода вы сможете настроить регулярные уведомления, а плагины помогут быстро расширить функционал без программистских навыков.
Для расширенных возможностей советуем ознакомиться с Expert Review и другими плагинами на wpshop.ru.