Plugin Tracker Dashboard Pro
Secure local-only dashboard that tracks plugins, themes, and WordPress core version history.
by SoyProgramador · github.com/soyprogramadorpe/plugin-tracker-pro
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/soyprogramadorpe/plugin-tracker-pro/archive/refs/heads/main.zipVersión: 3.4.0
Autor: Cultura Interactive
Dashboard especializado para entornos locales/Staging que empodera a los desarrolladores con el rastreo del historial de versiones de plugins, themes y el core de WordPress. Permite comparar fácilmente las diferencias entre entornos de Staging y Production de manera segura a través de una API REST.
✨ Características Principales
- Dashboard Unificado: Visualiza qué plugins están instalados, sus versiones y su estado directamente desde tu panel de WordPress.
- Soporte Completo Multisite: Integración nativa con WordPress Multisite (Network Admin). El historial se maneja de forma centralizada al igual que las actualizaciones de los plugins.
- Comparación Inteligente de Entornos: Compara mediante la REST API el estado de tus plugins en Staging contra Production. Descubre instantáneamente dependencias desactualizadas o plugins faltantes.
- Exportación de Reportes: Exporta el historial de cambios a CSV filtrando por rango de fechas (ideal para auditorías con clientes).
- Seguridad Garantizada: API completamente
read-only, autenticación por Bearer Token y operaciones protegidas para entornos de producción.
📦 Instalación y Configuración
El proyecto requiere instalar el plugin en el entorno de Staging y agregar un pequeño fragmento de código (snippet) en Production.
1. Entorno de Staging (Donde usarás el Dashboard)
- Descarga e instala el contenido de la carpeta
plugin-tracker-proen tu directorio/wp-content/plugins/de Staging. - Activa el plugin desde el panel de WordPress.
- Nota Multisite: Haz "Network Activate" desde el Network Admin.
2. Entorno de Production (De donde leeremos los datos)
Para mantener Production limpio, solo necesitamos exponer la API de solo-lectura agregando el archivo prd-api-snippet.php.
- Recomendado (Especialmente Multisite): Copia todo el código de
prd-api-snippet.phpy pégalo al final del archivofunctions.phpde tu tema activo (idealmente un Child Theme). - Alternativa: Usa un plugin como Code Snippets para inyectar este código.
⚙️ Vinculación de Entornos
Una vez instalado en ambos servidores, necesitas conectarlos:
- Generar Token en Production: Ve a
Settings → Plugin Tracker APIy haz clic en "Generate API Token". Copia la clave de 64 caracteres. - Configurar Staging: En tu Staging, ve a
Plugin Tracker → Settings(si es Multisite, estará en Network Admin). Completa:- Production Server URL:
https://tudominio.com(Sin / al final) - API Token: Pega el token generado en el paso anterior
- Production Server URL:
- ¡Guarda los cambios y disfruta de la comparación haciendo clic en "Compare with Production" dentro de tu Dashboard!
🛡️ Aspectos de Seguridad de la API
El sistema fue diseñado con un modelo arquitectónico de cero riesgos para los entornos de Production:
- Solo-Lectura (Read-only): La API rechaza cualquier petición que no sea
GET. No modifica, ni borra, ni instala nada. - Sin Acceso a Base de Datos: Trabaja directamente sobre los Hooks públicos de WordPress para obtener la lista de software, sin exponer información sensible.
- Defensa ante Timing Attacks: Las comparaciones de Token utilizan la función
hash_equals()a tiempo constante.
🆘 Solución de Problemas Frecuentes
| Problema | Solución Recomendada |
|---|---|
| "API authentication failed" | Verifica que no haya un espacio adicional inadvertido al copiar el Token. Regenéralo si el problema persiste. |
| "Could not reach PRD server" | Confirma que tu servidor Staging tiene salida a internet y que no hay reglas estrictas en el firewall de PRD bloqueando las peticiones. |
| "White Screen" post inserción | Un error de sintaxis en functions.php puede quebrar el sitio. Accede vía FTP y asegúrate de no haber pegado el código del API dentro de otra función existente. |
| No muestra Token generado | Revisa que el código a inyectar copie por completo la etiqueta de apertura <?php original. |
Para el historial completo de versiones, correcciones y notas de lanzamiento, por favor consulta el archivo changelog.txt incluido en este repositorio.