Añade en tu Code Snippets el código:
Archivo exporta en CSV con nombre del tipo: users-export-2024-07-04
<div style="text-align: center; margin: 20px 0;">
<a href="https://ariapsa.com/mb" target="_blank">
<img src="https://ariapsa.com/wp-content/uploads/2024/08/Marca-blanca-Diseno-de-paginas-web-mexico-ariapsa.jpg" alt="Banner" style="max-width: 100%; height: auto;">
</a>
</div>
function export_users_to_csv() {
if ( isset( $_POST['export_users'] ) && $_POST['export_users'] == 'export_csv' ) {
// Verificar nonce de seguridad
check_admin_referer( 'export_users_nonce', 'export_users_nonce' );
// Obtener todos los usuarios
$users = get_users();
// Nombre del archivo CSV
$csv_filename = 'users-export-' . date( 'Y-m-d' ) . '.csv';
// Cabecera del archivo CSV
$csv_fields = array(
'User ID',
'Username',
'Email',
'First Name',
'Last Name',
'Registered Date',
'User Role', // Nueva columna añadida
);
// Iniciar la descarga del archivo CSV
header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment; filename=' . $csv_filename );
// Abrir el archivo CSV para escritura
$csv_file = fopen( 'php://output', 'w' );
// Escribir la cabecera del CSV
fputcsv( $csv_file, $csv_fields );
// Escribir datos de los usuarios al CSV
foreach ( $users as $user ) {
// Obtener roles del usuario
$user_roles = $user->roles;
$user_roles_display = implode(', ', $user_roles);
$user_data = array(
$user->ID,
$user->user_login,
$user->user_email,
$user->first_name,
$user->last_name,
$user->user_registered,
$user_roles_display, // Agregar roles como texto
);
fputcsv( $csv_file, $user_data );
}
// Cerrar el archivo CSV
fclose( $csv_file );
// Finalizar la ejecución del script
exit;
}
}
add_action( 'admin_init', 'export_users_to_csv' );
// Agregar el enlace de exportación al menú de usuarios
function add_users_export_menu_item() {
add_submenu_page(
'users.php', // ID del menú principal
'Export Users to CSV', // Título de la página
'Export to CSV', // Título del menú
'manage_options', // Capacidad requerida
'export-users-csv', // ID único de la página
'render_users_export_page' // Callback de la página
);
}
add_action( 'admin_menu', 'add_users_export_menu_item' );
// Callback para renderizar la página de exportación
function render_users_export_page() {
?>
<div class="wrap">
<h1>Export Users to CSV</h1>
<form method="post">
<?php wp_nonce_field( 'export_users_nonce', 'export_users_nonce' ); ?>
<input type="hidden" name="export_users" value="export_csv">
<p>
<button type="submit" class="button">Export Users to CSV</button>
</p>
</form>
</div>
<?php
}