Backup pre-corrección namespaces: mejoras schemas y componentes

Cambios incluidos:
- Actualización de copy/textos en 7 schemas JSON
- Mejoras en AdminAjaxHandler con mapeos adicionales
- Refactorización de FormBuilders y Renderers
- Correcciones en dashboard admin JS
- Nuevo ContactFormRenderer funcional

NOTA: Este commit sirve como respaldo antes de corregir
inconsistencias de case en namespaces (API→Api, WordPress→Wordpress)

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
FrankZamora
2025-11-26 17:59:01 -06:00
parent 0846a3bf03
commit 4c807e1cf2
26 changed files with 717 additions and 79 deletions

View File

@@ -191,6 +191,7 @@ add_action('after_setup_theme', function() {
'footer_menu_1' => __('Footer Menu 1 (Widget 1)', 'roi-theme'),
'footer_menu_2' => __('Footer Menu 2 (Widget 2)', 'roi-theme'),
'footer_menu_3' => __('Footer Menu 3 (Widget 3)', 'roi-theme'),
'footer_menu_4' => __('Footer Menu 4 (Widget 1B - Bases de datos)', 'roi-theme'),
]);
// TODO: Agregar más configuraciones según sea necesario
@@ -218,7 +219,51 @@ add_action('after_setup_theme', function() {
// });
// =============================================================================
// 5. INFORMACIÓN DE DEBUG (Solo en desarrollo)
// 5. RENDERIZAR MODAL DE CONTACTO (Let's Talk)
// =============================================================================
/**
* Renderizar modal de contacto en el footer
* Usa la misma configuracion que contact-form (mismo webhook)
*/
add_action('wp_footer', function() use ($container) {
if ($container === null) {
return;
}
try {
// Obtener configuracion del contact-form
$repository = $container->getComponentSettingsRepository();
$settings = $repository->getComponentSettings('contact-form');
if (empty($settings)) {
return;
}
// Crear Component entity
$componentName = new \ROITheme\Shared\Domain\ValueObjects\ComponentName('contact-form');
$component = new \ROITheme\Shared\Domain\Entities\Component(
name: $componentName,
configuration: \ROITheme\Shared\Domain\ValueObjects\ComponentConfiguration::fromArray($settings),
visibility: \ROITheme\Shared\Domain\ValueObjects\ComponentVisibility::allDevices()
);
// Crear renderer y renderizar modal
$cssGenerator = new \ROITheme\Shared\Infrastructure\Services\CSSGeneratorService();
$renderer = new \ROITheme\Public\ContactForm\Infrastructure\Ui\ContactFormRenderer($cssGenerator);
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo $renderer->renderModal($component);
} catch (\Throwable $e) {
if (defined('WP_DEBUG') && WP_DEBUG) {
error_log('ROI Theme: Failed to render contact modal: ' . $e->getMessage());
}
}
}, 99); // Prioridad alta para que se renderice al final del footer
// =============================================================================
// 5.1. INFORMACIÓN DE DEBUG (Solo en desarrollo)
// =============================================================================
if (defined('WP_DEBUG') && WP_DEBUG) {