В современных проектах на 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 — важный инструмент для администраторов и разработчиков, позволяющий эффективно управлять информацией и интегрировать сайт с внешними системами. Используя приведённые примеры кода и плагины, вы сможете настроить удобный и надёжный процесс экспорта без лишних усилий.