Как создать автоматический экспорт пользовательских данных в WordPress

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

Почему важен автоматический экспорт данных пользователей в WordPress

Экспорт пользовательских данных позволяет быстро получить актуальную информацию о зарегистрированных пользователях, их метаполях, ролях и действиях. Ручной экспорт через админку неудобен и подвержен ошибкам, особенно если база пользователей большая.

Автоматизация процесса помогает:

  • Регулярно создавать резервные копии данных;
  • Автоматически отправлять данные в CRM или аналитические системы;
  • Обеспечивать соответствие требованиям законодательства (например, GDPR) за счёт оперативного предоставления данных;
  • Экономить время и снижать вероятность человеческой ошибки.

Выбор формата экспорта

Самым популярным и универсальным форматом для экспорта данных пользователей считается CSV. Он легко открывается в Excel, Google Sheets и подходит для большинства интеграций.

Другой распространенный формат — JSON, удобный для передачи данных в API и обработки программно.

В зависимости от задачи можно реализовать экспорт в оба формата.

Пример создания автоматического экспорта пользователей в CSV с помощью WPAddons

Плагин WPAddons позволяет расширять функциональность WordPress. Ниже пример функции, которая экспортирует всех пользователей в CSV и сохраняет файл в папку uploads с помощью cron-задачи.

function wpaddons_export_users_to_csv() {
    if ( ! current_user_can('manage_options') ) {
        return;
    }
    $users = get_users();
    if ( empty($users) ) {
        return;
    }
    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/wpaddons_users_export.csv';

    $fp = fopen($file_path, 'w');
    if ( ! $fp ) {
        return;
    }

    // Заголовки CSV
    fputcsv($fp, array('ID', 'Логин', 'Email', 'Роль', 'Дата регистрации'));

    foreach ( $users as $user ) {
        $roles = implode(',', $user->roles);
        fputcsv($fp, array(
            $user->ID,
            $user->user_login,
            $user->user_email,
            $roles,
            $user->user_registered
        ));
    }

    fclose($fp);
}

// Регистрация cron задачи
if ( ! wp_next_scheduled( 'wpaddons_daily_user_export' ) ) {
    wp_schedule_event( time(), 'daily', 'wpaddons_daily_user_export' );
}
add_action( 'wpaddons_daily_user_export', 'wpaddons_export_users_to_csv' );

Этот код создаёт ежедневную cron-задачу, которая сохраняет CSV-файл с данными пользователей. Файл можно использовать для выгрузки или автоматической передачи.

Как запустить экспорт вручную

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

add_action('admin_init', function() {
    if ( isset($_GET['wpaddons_export_users']) && current_user_can('manage_options') ) {
        wpaddons_export_users_to_csv();
        echo 'Экспорт завершён';
        exit;
    }
});

После добавления кода в functions.php сайта достаточно перейти по адресу https://ваш-сайт.ru/wp-admin/?wpaddons_export_users=1 для создания файла.

Автоматическая отправка экспортированного файла по email

Часто помимо создания файла нужно автоматически отправить его администратору или другому адресату. Добавим в функцию отправку email с вложением:

function wpaddons_send_exported_csv() {
    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/wpaddons_users_export.csv';

    if ( ! file_exists($file_path) ) {
        return;
    }

    $to = get_option('admin_email');
    $subject = 'Автоматический экспорт пользователей WordPress';
    $message = 'Во вложении файл с экспортированными данными пользователей.';
    $headers = array('Content-Type: text/html; charset=UTF-8');
    
    wp_mail( $to, $subject, $message, $headers, array($file_path) );
}
add_action('wpaddons_daily_user_export', 'wpaddons_send_exported_csv', 20);

Теперь после создания CSV-файла он будет автоматически отправлен на email администратора.

Использование плагинов для автоматического экспорта пользователей

Если не хочется писать код, можно воспользоваться готовыми решениями:

  • Export Users to CSV — простой плагин с возможностью экспорта пользователей вручную и по расписанию;
  • WP All Export — мощный инструмент для экспорта любых данных, включая пользователей, с гибкими настройками;
  • Advanced Cron Manager — помогает управлять и отлаживать cron-задачи, полезен для настройки автоматического экспорта.

Для интеграции с WPAddons можно использовать экспорт в CSV и далее подключать автоматическую отправку email или выгрузку на удалённый сервер.

Настройка cron-задач в WordPress

WordPress cron работает только при посещении сайта, что может быть недостаточно надёжно. Для критичных задач лучше настроить системный cron на сервере с вызовом wp-cron.php.

Пример команды в crontab:

*/15 * * * * wget -q -O - https://ваш-сайт.ru/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Это обеспечит запуск задач каждые 15 минут.

Расширение экспорта пользовательских метаданных и ролей

В реальных проектах полезно экспортировать не только стандартные поля пользователей, но и их метаданные, например, телефон, адрес, дополнительные поля профиля.

Добавим выгрузку некоторых метаполей:

function wpaddons_export_users_with_meta_to_csv() {
    $users = get_users();
    if ( empty($users) ) {
        return;
    }
    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/wpaddons_users_export_full.csv';

    $fp = fopen($file_path, 'w');
    if ( ! $fp ) {
        return;
    }

    fputcsv($fp, array('ID', 'Логин', 'Email', 'Роль', 'Телефон', 'Адрес', 'Дата регистрации'));

    foreach ( $users as $user ) {
        $roles = implode(',', $user->roles);
        $phone = get_user_meta($user->ID, 'phone', true);
        $address = get_user_meta($user->ID, 'address', true);
        fputcsv($fp, array(
            $user->ID,
            $user->user_login,
            $user->user_email,
            $roles,
            $phone,
            $address,
            $user->user_registered
        ));
    }

    fclose($fp);
}
add_action('wpaddons_daily_user_export', 'wpaddons_export_users_with_meta_to_csv');

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

Заключение

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

Как автоматически изменять URL постов в WordPress по маске
09.01.2026
Как создать автоматический экспорт пользовательских данных в WordPress
06.04.2026
Создание автоматического отзыва на формы обращений в WordPress
25.12.2025
Автоматическое удаление старых постов в WordPress: практическое руководство
05.01.2026
Автоматическое отключение Pingback и Trackback в WordPress: практическое руководство
11.04.2026