Añade en tu Code Snippets el código:
Archivo exporta en CSV con nombre del tipo: users-export-2024-07-04
Código
<div class="bsm-slider-outer">
<div class="bsm-slider"
id="bsm_f0a2042b"
style="border-radius:10px"
data-total="3"
data-autoplay="true"
data-interval="10000"
data-pause="true">
<div class="bsm-track">
<div class="bsm-slide" style="border-radius:10px">
<div class="bsm-slide__img-wrap">
<a href="https://ariapsa.com/diseno-de-paginas-web/" target="_blank" rel="noopener" class="bsm-slide__img-link">
<img src="https://ariapsa.com/wp-content/uploads/2026/08/ads-diseno-de-disitios-web-rotativo-01.jpg"
alt="Diseño de sitios y páginas web"
class="bsm-slide__img"
loading="lazy" width="350" height="190">
</a>
</div>
<div class="bsm-slide__body">
<h2 class="bsm-slide__title">Diseño de sitios y páginas web</h2> <p class="bsm-slide__desc">Desde landing page hasta tiendas online, incluye dominio y hosting <a href="https://ariapsa.com/diseno-de-paginas-web/" target="_blank" rel="noopener"
class="bsm-slide__btn"
style="background-color:#ca0771 !important;color:#ffffff !important;display:inline-block !important;padding:9px 20px !important;border-radius:5px !important;text-decoration:none !important;font-weight:700 !important;">
Ver planes y precios </a>
</div>
</div>
<div class="bsm-slide" style="border-radius:10px">
<div class="bsm-slide__img-wrap">
<a href="https://ariapsa.com/mkt" target="_blank" rel="noopener" class="bsm-slide__img-link">
<img src="https://ariapsa.com/wp-content/uploads/2026/08/ads-banner-rotativo-marketing-digital-ariapsa.jpg"
alt="¿Necesitas marketing digital para tu negocio?"
class="bsm-slide__img"
loading="lazy" width="350" height="190">
</a>
</div>
<div class="bsm-slide__body">
<h2 class="bsm-slide__title">¿Necesitas marketing digital para tu negocio?</h2> <p class="bsm-slide__desc">Planes desde posicionamiento SEO, redes sociales, Google y ChatGPT ADS. <a href="https://ariapsa.com/mkt" target="_blank" rel="noopener"
class="bsm-slide__btn"
style="background-color:#c70a78 !important;color:#ffffff !important;display:inline-block !important;padding:9px 20px !important;border-radius:5px !important;text-decoration:none !important;font-weight:700 !important;">
Ver planes </a>
</div>
</div>
<div class="bsm-slide" style="border-radius:10px">
<div class="bsm-slide__img-wrap">
<a href="https://ariapsa.com/dossier" target="_blank" rel="noopener" class="bsm-slide__img-link">
<img src="https://ariapsa.com/wp-content/uploads/2026/08/ads-diseno-de-dossier.jpg"
alt="Dossier de ventas"
class="bsm-slide__img"
loading="lazy" width="350" height="190">
</a>
</div>
<div class="bsm-slide__body">
<h2 class="bsm-slide__title">Dossier de ventas</h2> <p class="bsm-slide__desc">Convertimos tu presentación PPT en una herramienta de prospección optimizada para móviles. <a href="https://ariapsa.com/dossier" target="_blank" rel="noopener"
class="bsm-slide__btn"
style="background-color:#af1854 !important;color:#ffffff !important;display:inline-block !important;padding:9px 20px !important;border-radius:5px !important;text-decoration:none !important;font-weight:700 !important;">
Cotizar ahora </a>
</div>
</div>
</div><!-- /.bsm-track -->
<div class="bsm-arrows--center">
<button class="bsm-arrow bsm-arrow--prev" aria-label="Anterior">‹</button>
<button class="bsm-arrow bsm-arrow--next" aria-label="Siguiente">›</button>
</div>
<div class="bsm-dots" role="tablist">
<button class="bsm-dot bsm-dot--active"
data-index="0"
role="tab"
aria-label="Slide 1"></button>
<button class="bsm-dot"
data-index="1"
role="tab"
aria-label="Slide 2"></button>
<button class="bsm-dot"
data-index="2"
role="tab"
aria-label="Slide 3"></button>
</div>
</div>
</div>
<script>
(function(){
var el=document.getElementById('bsm_f0a2042b');
if(!el) return;
var track=el.querySelector('.bsm-track');
var dots=el.querySelectorAll('.bsm-dot');
var total=parseInt(el.dataset.total,10)||1;
var doAuto=el.dataset.autoplay==='true';
var ms=parseInt(el.dataset.interval,10)||10000;
var pauseH=el.dataset.pause==='true';
var cur=0,timer=null,busy=false;
function go(n,instant){
if(busy&&!instant) return;
n=((n%total)+total)%total;
if(n===cur&&!instant) return;
cur=n;
if(!instant){
busy=true;
track.classList.add('bsm-animating');
var done=function(){ track.removeEventListener('transitionend',done); track.classList.remove('bsm-animating'); busy=false; };
track.addEventListener('transitionend',done);
setTimeout(function(){ if(busy){ track.classList.remove('bsm-animating'); busy=false; } },500);
}
track.style.transform='translateX(-'+(cur*100)+'%)';
dots.forEach(function(d,i){ d.classList.toggle('bsm-dot--active',i===cur); d.setAttribute('aria-selected',i===cur?'true':'false'); });
}
function startAuto(){ if(doAuto&&total>1) timer=setInterval(function(){ go(cur+1); },ms); }
function stopAuto(){ clearInterval(timer); }
function resetAuto(){ stopAuto(); startAuto(); }
el.querySelectorAll('.bsm-arrow--prev').forEach(function(btn){ btn.addEventListener('click',function(e){ e.preventDefault(); go(cur-1); resetAuto(); }); });
el.querySelectorAll('.bsm-arrow--next').forEach(function(btn){ btn.addEventListener('click',function(e){ e.preventDefault(); go(cur+1); resetAuto(); }); });
dots.forEach(function(d){ d.addEventListener('click',function(e){ e.preventDefault(); go(parseInt(d.dataset.index,10)); resetAuto(); }); });
if(pauseH){ el.addEventListener('mouseenter',stopAuto); el.addEventListener('mouseleave',startAuto); }
var tx=null;
el.addEventListener('touchstart',function(e){ tx=e.touches[0].clientX; },{passive:true});
el.addEventListener('touchend',function(e){ if(tx===null) return; var dx=e.changedTouches[0].clientX-tx; if(Math.abs(dx)>40){ go(dx<0?cur+1:cur-1); resetAuto(); } tx=null; });
go(0,true);
startAuto();
})();
</script>
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
}
