Users Toolkit
WordPress plugin to identify/clean spam users, optimize DB and manage backups
by Alfonso Fernández (alfonso@cientifi.ca) · github.com/alfonsofernandezyf/users-toolkit · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/alfonsofernandezyf/users-toolkit/archive/refs/heads/main.zipPlugin de WordPress para identificar usuarios potencialmente spam, ejecutar acciones masivas de usuarios y mantener la base de datos optimizada con respaldo previo.
Versión: 1.4.1
Autor: Alfonso Fernández
Email: alfonso@cientifi.ca
Resumen
Users Toolkit agrega un menú de administración con 4 módulos:
Dashboard: métricas rápidas de base de datos.Usuarios Spam: búsqueda avanzada de usuarios por actividad/inactividad.Optimización DB: limpieza segura de transients, comentarios y cron.Backups: creación, descarga y eliminación de respaldos de base de datos.
Características principales
- Identificación de usuarios por criterios positivos y negativos.
- Filtro por uno o varios roles de WordPress.
- Criterios soportados:
- Cursos LearnDash
- Certificados LearnDash
- Pedidos WooCommerce
- Membresías WooCommerce
- Comentarios
- Descargas WP-DLM
- Correo sospechoso (dominios desechables, TLDs riesgosos y patrones de bot)
- Perfil incompleto (sin
first_name,last_name,emailodisplay_name) - Autoría de contenido (incluye tipos de post dinámicos)
- Modo de coincidencia:
- Coincidir con todos los criterios
- Coincidir con cualquiera de los criterios
- Filtros avanzados en resultados:
- País único o múltiples países
- Inclusión o exclusión de países seleccionados
- Atajo de selección
MX + LATAM
- Acciones sobre usuarios:
- Simulación (dry run)
- Exportación con metadatos
- Eliminación por lotes automática
- Reanudación de eliminación pendiente si se interrumpe
- Backups de base de datos:
- Ejecución en segundo plano con barra de progreso
- Fallback por WP-Cron si falla loopback
- Método PHP por streaming para mayor estabilidad en hosting compartido
- Descarga y borrado desde interfaz
- Optimización de base de datos:
- Limpieza de transients expirados
- Limpieza de comentarios spam/papelera por API de WordPress
- Limpieza de entradas cron malformadas
- Optimización de tablas
Requisitos
- WordPress
>= 5.8 - PHP
>= 7.4 - Rol con capacidad
manage_options
Instalación
- Copia la carpeta
users-toolkiten:wp-content/plugins/users-toolkit
- Activa el plugin en:
WordPress Admin > Plugins
- Abre:
WordPress Admin > Users Toolkit
Guía rápida de uso
1) Identificar usuarios
Ruta: Users Toolkit > Usuarios Spam
- Opcional: selecciona uno o más roles.
- Marca criterios en:
Debe TENERNO debe tener
- Opcional: activa
Coincidir con TODOS los criterios. - Haz clic en
Identificar Usuarios. - Revisa los resultados y ejecuta una acción.
Tip:
- Si solo quieres listar usuarios de un rol, selecciona el rol y no marques más criterios.
Nota de membresías:
- El filtro considera membresías históricas (incluyendo expiradas/canceladas) para evitar marcar como spam usuarios legítimos con actividad previa.
2) Ejecutar acciones sobre usuarios
Desde la tabla de resultados:
- Define alcance:
- Usuarios seleccionados
- Todos los usuarios de la lista
- Elige acción:
SimularExportar usuarios con metadatosEliminar usuarios permanentemente
Recomendación:
- Ejecuta primero
SimularoExportarantes de eliminar.
3) Optimizar base de datos
Ruta: Users Toolkit > Optimización DB
Puedes ejecutar previsualización y luego aplicar:
- Limpiar transients expirados
- Limpiar comentarios spam/papelera
- Limpiar eventos cron obsoletos/malformados
- Optimizar tablas
4) Crear backup de base de datos
Ruta: Users Toolkit > Backups
- Haz clic en
Crear Backup. - Espera la finalización en la barra de progreso.
- Descarga el archivo generado.
Ubicación de backups:
wp-content/uploads/users-toolkit/backups/
Solución de problemas
El backup se queda en progreso
- Verifica que WP-Cron esté habilitado o tenga un disparador externo si usas
DISABLE_WP_CRON. - Revisa loopback requests del sitio (Site Health).
- Revisa
wp-content/debug.logpara errores de PHP.
Errores de comunicación AJAX
- El plugin mantiene el proceso en segundo plano y sigue reportando progreso.
- Si hay timeout del navegador/proxy, deja la pantalla abierta para que el polling continúe.
Rendimiento lento en búsqueda de usuarios
- Limita por roles cuando sea posible.
- Ejecuta en horarios de baja carga.
- Evita combinar demasiados criterios en sitios con muchos usuarios.
Scripts de prueba
El repositorio incluye scripts utilitarios en la raíz:
test-search-users.phptest-find-inactive-users.phptest-no-courses-no-orders.php
Más detalles en:
README-SCRIPTS.md
Estructura del plugin
users-toolkit/
├── admin/
│ ├── class-users-toolkit-admin.php
│ ├── js/users-toolkit-admin.js
│ └── partials/
├── includes/
│ ├── class-users-toolkit.php
│ ├── class-users-toolkit-spam-user-identifier.php
│ ├── class-users-toolkit-spam-user-cleaner.php
│ ├── class-users-toolkit-database-optimizer.php
│ ├── class-users-toolkit-database-backup.php
│ └── class-users-toolkit-progress-tracker.php
└── users-toolkit.php
Seguridad y buenas prácticas
- Realiza backup antes de operaciones destructivas.
- Prueba primero con simulación.
- Revisa permisos de administrador y accesos al entorno de producción.
Licencia
GPL v2 o superior.