Valencia, 09/11/2026, G.B.
Siguiendo con mi filosofía de desarrollo en Indaga.net, donde apuesto por la ligereza, la privacidad de los datos y la ausencia de dependencias innecesarias, hoy presento la versión 1.1.1 del plugin Formulario de Contacto Indaga.
Cuando diseño soluciones propias para WordPress, mi objetivo principal es eliminar el código pesado y los plugins sobredimensionados que suelen acompañar a herramientas genéricas. Un formulario de contacto debe ser rápido, seguro por defecto y muy fácil de administrar desde el propio panel de control.
Novedades de la versión 1.1.1
Esta nueva versión pule la experiencia de administración y añade herramientas internas clave para la gestión diaria y la resolución de incidencias:
- Sistema de logs y diagnóstico integrado: Para averiguar fácilmente por qué un correo puede fallar (por restricciones del servidor o políticas SMTP), he incorporado una pestaña de Logs que registra automáticamente los eventos recientes (intentos de envío, errores de captcha, validaciones o fallos de transmisión), manteniendo un historial limpio de hasta 100 entradas.
- Herramienta de prueba de correo directo: En el listado de formularios he añadido un botón de prueba (Probar email) que permite simular y comprobar al instante si la pasarela de correo del servidor o plugin SMTP está entregando los mensajes correctamente (yo tengo instalado SMTP Indaga, por lo que el email receptor debe ser el mismo que el configurado en eses plugin).
- Generación inteligente de identificadores: Al crear una nueva instancia de formulario, si dejo el ID en blanco, el sistema genera automáticamente un slug limpio y seguro a partir del nombre asignado utilizando
sanitize_title(). - Claves de captcha más robustas: He perfeccionado la generación de los transients temporales del captcha matemático combinando el identificador del formulario, la marca de tiempo y
wp_rand(), blindando el proceso frente a colisiones de caché.
Seguridad nativa sin fricción
Manteniendo los estándares habituales de mis desarrollos en Indaga.net, el plugin sigue apostando por una protección invisible pero eficaz:
- Cero JavaScript externo: Sin llamadas a servicios de terceros ni rastreadores de datos.
- Honeypot y captcha dinámico: Bloquea bots y envíos automatizados sin obligar a la visita a resolver imágenes complejas o rompecabezas molestos.
- Patrón Post/Redirect/Get (PRG): Evita el reenvío duplicado de formularios cuando se recarga la página tras enviar una consulta.
Conclusión
Construir mis propias herramientas nativas no solo mejora el rendimiento global de la web, sino que me otorga un control absoluto sobre cada línea de código que se ejecuta. El plugin ya está operativo y funcionando a pleno rendimiento en mi entorno de producción.
Como siempre, cualquier sugerencia o comentario para seguir mejorando el código es más que bienvenido.
Ficha Técnica del Plugin: Formulario de Contacto Indaga
- Nombre del Plugin: Formulario de Contacto Indaga
- Slug / Archivo Principal:
indaga-contacto/indaga-contacto.php - Versión Actual: 1.1.1
- Autor: Guillermo Beltrán Pilato (Indaga.net)
- Licencia: GPL v2 or later
- Acceso en wp-admin: Contacto Indaga (
wp-admin/admin.php?page=indaga-contacto) - Shortcode Principal: (entre corchetes [ ] )
indaga_contactoindaga_contacto id="mi-formulario"Admite parámetro de instancia, como en el segundo ejemplo.
Descripción Breve
Formulario de contacto nativo, seguro y ligero para WordPress, diseñado sin dependencias externas. Permite gestionar múltiples instancias de formularios, incluye captcha matemático temporal, campo oculto anti-bots (Honeypot), validación de privacidad, registro de logs de diagnóstico y herramienta integrada para probar el envío directo de correo.
Especificaciones Técnicas y Características
- Gestión de Instancias: Soporte para múltiples formularios personalizados mediante shortcode. Si al crear una instancia dejo el ID en blanco, el plugin genera un slug limpio automáticamente con
sanitize_title(). - Seguridad Integrada: Verificación de Nonces anti-CSRF (
wp_verify_nonce), honeypot antispam, captcha matemático temporal conset_transient(expiración a 5 minutos) usando claves dinámicas compuestas por ID, tiempo ywp_rand(), y checkbox obligatorio con enlace a la política de privacidad. - Sanitización y Escapado: Filtros estrictos de entrada (
sanitize_text_field,sanitize_email,sanitize_textarea_field) y escapado seguro en salida (esc_html,esc_attr,esc_url,wp_kses_post). - Diagnóstico y Logs: Pestaña de logs en el panel de control con registro de hasta 100 eventos recientes y función para probar el envío directo de emails mediante
wp_mail. - Rendimiento: Carga condicional de estilos mediante
wp_add_inline_style, archivo único, cero librerías externas y cero peticiones HTTP adicionales.
