- Configuración de Composer con PSR-4 en _testing-suite/
- Configuración de PHPUnit en _testing-suite/phpunit.xml
- Configuración de PHPCS en _testing-suite/phpcs.xml
- WordPress Test Suite integrado en bootstrap-integration.php
- Scripts de backup automatizado (backup-database.php, backup-files.bat)
- Procedimientos de rollback documentados (RESTORE-PROCEDURE.md)
- Estrategia de Git branching documentada (GIT-BRANCHING-STRATEGY.md)
- .gitignore actualizado para excluir _testing-suite/ y _planeacion/
- Limpieza de estructura anterior de Clean Architecture
- Documentación completa en _planeacion/roi-theme/_MIGRACION-CLEAN-ARCHITECTURE/Fase-00/
Archivos de configuración movidos a _testing-suite/:
- composer.json (PSR-4 autoloading, dev dependencies)
- phpunit.xml (3 suites: Unit, Integration, E2E)
- phpcs.xml (WordPress Coding Standards)
- bootstrap-unit.php y bootstrap-integration.php
Sistema de backup implementado con 4 mejoras críticas:
- Password protegido con --defaults-file
- Verificación de espacio en disco
- Lock files para prevenir ejecuciones concurrentes
- Detección automática de rutas
Procedimientos de rollback documentados:
- Rollback de base de datos (5-10 min)
- Rollback de archivos (10-15 min)
- Rollback de Git (5 min)
- Rollback completo (20-30 min)
Preparación del entorno completa. Listo para comenzar Fase-1.
- Agregar remove_submenu_page() para eliminar entrada duplicada
- WordPress crea automáticamente primer submenú con nombre del padre
- Ahora solo aparece submenú 'Theme Options'
- Cambiar menu slug principal a 'apus-theme-menu' (contenedor)
- Menú principal sin callback (solo contenedor del submenú)
- Submenú 'Theme Options' con slug 'apus-theme-settings' (página real)
- Actualizar hook en enqueue_assets a 'apus-theme_page_apus-theme-settings'
- Limpiar logs de debug
Ahora el menú 'Apus Theme' muestra correctamente el submenú desplegable con 'Theme Options'
- Comentar add_theme_page() en inc/admin/theme-options.php
- Comentar add_theme_page() en admin/theme-options/theme-options.php
- Estos archivos viejos estaban registrando 'Theme Options' en menú Apariencia
- Ahora solo se usa el nuevo registro en admin/includes/class-admin-menu.php
- Elimina conflicto que mostraba el menú en dos lugares
- Cambiar de 'appearance_page_apus-theme-settings' a 'toplevel_page_apus-theme-settings'
- Necesario para que assets se carguen correctamente en menú de nivel superior
- Sin esto, el CSS/JS no se cargaba en la página de configuración
- Diagrama de arquitectura final implementada
- Estructura de tablas (defaults y components)
- Flujo de datos completo (escritura/lectura)
- Decisión arquitectónica: Opción A (wp_options para personalizaciones)
- Responsabilidades de cada clase
- Estado actual y próximos pasos
- Checklist de verificación
Completa documentación requerida por FASE 6 del plan
- Cambiar de add_theme_page() a add_menu_page()
- Posición 61 (después de Appearance, antes de Plugins)
- Ícono dashicons-admin-generic
- Menú ahora aparece al mismo nivel que Dashboard, Settings, etc.
- NO dentro del menú Apariencia
Completa PASO 2.0 del PLAN-PREPARACION-TEMA-BD.md
- Agregar constante TABLE_DEFAULTS para tabla de valores por defecto
- Modificar get_table_name() para aceptar parámetro table_type
- Actualizar create_tables() para crear ambas tablas con estructura idéntica
- Modificar todos los métodos (get_config, save_config, delete_config, list_components) para aceptar table_type
- Actualizar Settings Manager get_defaults() para leer desde tabla defaults usando DB Manager
- Mantener compatibilidad hacia atrás con valor por defecto 'components'
Arquitectura final:
- wp_apus_theme_components_defaults = Valores por defecto del tema (escritura algoritmo)
- wp_apus_theme_components = Personalizaciones del usuario (escritura admin panel)
- Una sola clase (APUS_DB_Manager) maneja ambas tablas con misma estructura
- Cambiar posición de 59 a 61
- Aclarar que debe estar AL MISMO NIVEL que Settings, Dashboard, etc.
- NO debe estar dentro de Settings ni ningún otro menú
- Agregar tabla de posiciones de menús WordPress
- Posición 61 = entre Appearance (60) y Plugins (65)
- Plan de 6 fases para preparar tema antes de modificar algoritmo
- FASE 1: Análisis de arquitectura actual
- FASE 2: Corregir ubicación del menú admin (nuevo paso agregado)
* Cambiar add_theme_page() a add_menu_page()
* Mover 'Apus Theme Options' a menú propio en sidebar
- FASE 3: Crear Defaults Manager
- FASE 4: Decisión sobre personalizaciones
- FASE 5: Testing y validación
- FASE 6: Documentación
Plan ejecutable paso a paso antes de tocar algoritmo.
ERROR CRÍTICO corregido:
- El sitio estaba caído porque init.php intentaba cargar sanitizers eliminados
- Eliminadas líneas 30-36 que cargaban class-topbar-sanitizer.php y otros
- Sitio ahora funcional nuevamente
Ref: admin/init.php línea 33
- Tabla para almacenar valores por defecto de componentes
- Estructura con 8 columnas: id, component_name, config_key, config_value,
data_type, version, created_at, updated_at
- Índices optimizados para búsquedas rápidas
- UNIQUE constraint en (component_name, config_key) para evitar duplicados
- Tabla ejecutada y verificada en base de datos preciosunitarios_wp
Esta tabla será la ÚNICA fuente de verdad para defaults de componentes.
El algoritmo consultará esta tabla en lugar de tener defaults hardcodeados.
Ref: PROBLEMA-DEFAULTS-HARDCODEADOS-ALGORITMO.md (Líneas 418-437)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Eliminados todos los componentes incorrectos y defaults duplicados
preparando el sistema para la implementación correcta con tabla de BD.
ARCHIVOS ELIMINADOS (11 archivos):
- admin/assets/js/component-navbar.js
- admin/assets/css/component-navbar.css
- admin/components/component-top-bar.php
- admin/components/component-navbar.php
- admin/components/component-hero-section.php
- admin/components/component-lets-talk-button.php
- admin/includes/sanitizers/class-topbar-sanitizer.php
- admin/includes/sanitizers/class-navbar-sanitizer.php
- admin/includes/sanitizers/class-herosection-sanitizer.php
- admin/includes/sanitizers/class-letstalkbutton-sanitizer.php
- template-parts/navbar-configurable.php
ARCHIVOS MODIFICADOS (6 archivos):
- admin/includes/class-admin-menu.php: Eliminados enqueues de componentes
- admin/includes/class-settings-manager.php: Limpiados get_defaults() y sanitize_settings()
- admin/includes/class-validator.php: Eliminado validate_top_bar()
- admin/pages/main.php: Reducido de 521 a 37 líneas (93%)
- admin/assets/js/admin-app.js: Reducido de 431 a 219 líneas (49%)
- header.php: Eliminado código de Top Bar (92 líneas)
BASE DE DATOS:
- Eliminada opción 'apus_theme_settings' de wp_options
RESUMEN:
- 11 archivos eliminados
- 6 archivos limpiados
- 1 opción de BD eliminada
- Todos los defaults hardcodeados eliminados
- Sistema preparado para FASE 2 (crear tabla de defaults)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>