- 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>
187 lines
5.9 KiB
JSON
187 lines
5.9 KiB
JSON
{
|
|
"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á"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|