Fase-01: Preparación del entorno y estructura inicial

- Verificación de entorno XAMPP (PHP 8.0.30, Composer 2.9.1, WP-CLI 2.12.0)
- Configuración de Composer con PSR-4 para 24 namespaces
- Configuración de PHPUnit con 140 tests preparados
- Configuración de PHPCS con WordPress Coding Standards
- Scripts de backup y rollback con mejoras de seguridad
- Estructura de contextos (admin/, public/, shared/)
- Schemas JSON para 11 componentes del sistema
- Código fuente inicial con arquitectura limpia en src/
- Documentación de procedimientos de emergencia

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
FrankZamora
2025-11-19 16:34:49 -06:00
parent 677fbd4368
commit 90de6df77c
86 changed files with 16098 additions and 0 deletions

View File

@@ -0,0 +1,186 @@
{
"component_name": "contact-modal",
"version": "1.0.0",
"description": "Modal de contacto Bootstrap 5 con formulario AJAX para consultas de clientes",
"groups": {
"general": {
"label": "Configuración General",
"priority": 10,
"fields": {
"modal_title": {
"type": "text",
"label": "Título del modal",
"default": "¿Tienes alguna pregunta?",
"required": true,
"description": "Título que aparece en el encabezado del modal"
},
"modal_description": {
"type": "textarea",
"label": "Descripción",
"default": "Completa el formulario y nuestro equipo te responderá en menos de 24 horas.",
"description": "Texto descriptivo debajo del título"
}
}
},
"form_fields": {
"label": "Campos del Formulario",
"priority": 20,
"fields": {
"fullName": {
"type": "object",
"label": "Campo Nombre Completo",
"default": {
"label": "Nombre completo",
"placeholder": "",
"required": true
},
"fields": {
"label": {"type": "text", "label": "Etiqueta"},
"placeholder": {"type": "text", "label": "Placeholder"},
"required": {"type": "boolean", "label": "Requerido"}
}
},
"company": {
"type": "object",
"label": "Campo Empresa",
"default": {
"label": "Empresa",
"placeholder": "",
"required": false
},
"fields": {
"label": {"type": "text", "label": "Etiqueta"},
"placeholder": {"type": "text", "label": "Placeholder"},
"required": {"type": "boolean", "label": "Requerido"}
}
},
"whatsapp": {
"type": "object",
"label": "Campo WhatsApp",
"default": {
"label": "WhatsApp",
"placeholder": "",
"required": true
},
"fields": {
"label": {"type": "text", "label": "Etiqueta"},
"placeholder": {"type": "text", "label": "Placeholder"},
"required": {"type": "boolean", "label": "Requerido"}
}
},
"email": {
"type": "object",
"label": "Campo Email",
"default": {
"label": "Correo electrónico",
"placeholder": "",
"required": true
},
"fields": {
"label": {"type": "text", "label": "Etiqueta"},
"placeholder": {"type": "text", "label": "Placeholder"},
"required": {"type": "boolean", "label": "Requerido"}
}
},
"comments": {
"type": "object",
"label": "Campo Comentarios",
"default": {
"label": "¿En qué podemos ayudarte?",
"placeholder": "",
"required": false,
"rows": 4
},
"fields": {
"label": {"type": "text", "label": "Etiqueta"},
"placeholder": {"type": "text", "label": "Placeholder"},
"required": {"type": "boolean", "label": "Requerido"},
"rows": {"type": "number", "label": "Filas"}
}
}
}
},
"submit_button": {
"label": "Botón de Envío",
"priority": 30,
"fields": {
"text": {
"type": "text",
"label": "Texto del botón",
"default": "Enviar Mensaje",
"required": true,
"description": "Texto que aparece en el botón de envío"
},
"icon": {
"type": "text",
"label": "Ícono del botón",
"default": "bi-send-fill",
"description": "Clase de Bootstrap Icons (ej: bi-send-fill)"
}
}
},
"messages": {
"label": "Mensajes del Sistema",
"priority": 40,
"fields": {
"success": {
"type": "textarea",
"label": "Mensaje de éxito",
"default": "Mensaje enviado exitosamente. Te responderemos pronto.",
"description": "Mensaje cuando el formulario se envía correctamente"
},
"error": {
"type": "textarea",
"label": "Mensaje de error",
"default": "Error al enviar el mensaje. Por favor intenta nuevamente.",
"description": "Mensaje cuando ocurre un error"
},
"validation_error": {
"type": "textarea",
"label": "Mensaje de validación",
"default": "Por favor completa todos los campos requeridos.",
"description": "Mensaje cuando faltan campos obligatorios"
}
}
},
"settings": {
"label": "Configuración Avanzada",
"priority": 50,
"fields": {
"modal_id": {
"type": "text",
"label": "ID del modal",
"default": "contactModal",
"readonly": true,
"description": "ID HTML del modal (no modificar)"
},
"form_id": {
"type": "text",
"label": "ID del formulario",
"default": "modalContactForm",
"readonly": true,
"description": "ID HTML del formulario (no modificar)"
},
"ajax_action": {
"type": "text",
"label": "Acción AJAX",
"default": "roi_contact_modal_submit",
"readonly": true,
"description": "Nombre de la acción AJAX (no modificar)"
},
"email_to": {
"type": "email",
"label": "Email de destino",
"default": "",
"description": "Email donde se recibirán los mensajes (vacío = admin email)"
},
"email_subject": {
"type": "text",
"label": "Asunto del email",
"default": "Nuevo mensaje de contacto desde el sitio web",
"description": "Asunto del email que se enviará"
}
}
}
}
}