feat(custom-css-manager): implementar TIPO 3 - CSS Crítico Personalizado

Nuevo sistema de gestión de CSS personalizado con panel admin:
- Admin/CustomCSSManager: CRUD de snippets CSS (crítico/diferido)
- Public/CustomCSSManager: Inyección dinámica en frontend
- Schema JSON para configuración del componente

Migración de CSS estático a BD:
- Tablas APU (~14KB) → snippet diferido en BD
- Tablas Genéricas (~10KB) → snippet diferido en BD
- Comentadas funciones legacy en enqueue-scripts.php

Limpieza de archivos obsoletos:
- Eliminado build-bootstrap-subset.js
- Eliminado migrate-legacy-options.php
- Eliminado minify-css.php
- Eliminado purgecss.config.js

Beneficios:
- CSS editable desde admin sin tocar código
- Soporte crítico (head) y diferido (footer)
- Filtrado por scope (all/home/single/archive)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
FrankZamora
2025-12-01 15:43:25 -06:00
parent 423aae062c
commit 9cb0dd1491
24 changed files with 1553 additions and 784 deletions

View File

@@ -295,7 +295,43 @@ add_action('wp_footer', function() use ($container) {
}, 99); // Prioridad alta para que se renderice al final del footer
// =============================================================================
// 5.1. INFORMACIÓN DE DEBUG (Solo en desarrollo)
// 5.2. CUSTOM CSS MANAGER (TIPO 3: CSS Crítico Personalizado)
// =============================================================================
/**
* Bootstrap CustomCSSManager
*
* Inicializa el sistema de CSS personalizado configurable.
* - Frontend: Inyecta CSS crítico (head) y diferido (footer)
* - Admin: El FormBuilder se auto-registra cuando es instanciado por el dashboard
*/
add_action('after_setup_theme', function() {
// Solo inyectar CSS en frontend (no admin)
if (is_admin()) {
return;
}
global $wpdb;
// Repository compartido
$repository = new \ROITheme\Admin\CustomCSSManager\Infrastructure\Persistence\WordPressSnippetRepository($wpdb);
// Use Cases para Public
$getCriticalUseCase = new \ROITheme\Public\CustomCSSManager\Application\UseCases\GetCriticalSnippetsUseCase($repository);
$getDeferredUseCase = new \ROITheme\Public\CustomCSSManager\Application\UseCases\GetDeferredSnippetsUseCase($repository);
// Injector de CSS en frontend
$injector = new \ROITheme\Public\CustomCSSManager\Infrastructure\Services\CustomCSSInjector(
$getCriticalUseCase,
$getDeferredUseCase
);
// Registrar hooks
$injector->register();
}, 5); // Priority 5: después de theme setup básico
// =============================================================================
// 5.3. INFORMACIÓN DE DEBUG (Solo en desarrollo)
// =============================================================================
if (defined('WP_DEBUG') && WP_DEBUG) {