Contact Form 7 5.4 Beta

La próxima actualización principal, la versión 5.4 de Contact Form 7, está prevista para el 24 de febrero. Dado que la versión 5.4 trae cambios inusualmente grandes, hemos decidido tener un período de pruebas beta de unas pocas semanas antes del lanzamiento en vivo.

Puedes descargar una copia del paquete de la versión beta del plugin desde el repositorio de GitHub. Si encuentras algún error, infórmanos creando una incidencia (issue) en GitHub.

Si encuentras que un plugin que usas no funciona correctamente con la versión 5.4 de Contact Form 7, por favor, informa del problema al desarrollador de ese plugin, no a nosotros. No podemos asumir ninguna responsabilidad con respecto a productos de terceros.

Los principales cambios de la 5.4 se dividen en los cuatro grupos siguientes:

Puedes consultar la lista completa de cambios en GitHub.

Introducción del módulo de integración de Sendinblue

Como anunciamos el pasado mes de diciembre, hemos estado preparando la introducción del módulo de integración para Sendinblue, la plataforma de CRM y marketing por correo electrónico líder en Europa.

Este módulo añade Sendinblue a la página del menú Integración con otros servicios (Contacto > Integración). Consulta la integración de Sendinblue para conocer los detalles y el uso.

  • Nuevo gancho de filtro: wpcf7_sendinblue_collect_parameters
  • La función wpcf7_mask_password() usada en la página del menú de integración ha sido mejorada y ahora se puede establecer la longitud del texto no enmascarado tanto para el lado derecho como para el izquierdo.

Revisión del código JavaScript de la vista pública

En la versión 5.4, realizamos cambios drásticos en el JavaScript utilizado en la vista pública (área no administrativa) de un sitio web, que durante mucho tiempo no ha cambiado los scripts basados en jQuery. El nuevo código JavaScript se basa en los paquetes de @wordpress que se incluyen con WordPress, y no utiliza jQuery, con solo unas pocas excepciones como la utilizada para el selector de fecha, que se basa en jQuery UI.

  • Se han eliminado algunas características que hoy en día son obsoletas e innecesarias. Entre ellas se encuentran el polyfill del marcador de posición y el polyfill del campo numérico.
  • Nuevo tipo de evento del DOM: wpcf7reset (se dispara al reiniciar el formulario)
  • Anteriormente, el objetivo de los eventos wpcf7* era el elemento div padre del elemento formulario. En 5.4, esto ha cambiado al propio elemento form. Sin embargo, dado que los eventos wpcf7* se desplazan hacia la raíz del documento, este cambio no afecta a los usos reales de esos eventos DOM, por lo que puedes seguir apuntando al elemento div padre.
  • reCAPTCHA recupera un nuevo token antes del envío de un formulario. Esto debería solucionar el problema de la caducidad del token.

Mejora del proceso de subida de archivos

En las versiones anteriores de 5.4, la mayor parte del proceso de subida de archivos se implementaba en el módulo de archivos (modules/file.php). Este enfoque se vuelve problemático cuando intentas desarrollar un módulo de subida de archivos personalizado, ya que tienes que implementar redundantemente todo el proceso en tu módulo. La versión 5.4 traslada este proceso a un archivo separado e independiente de los módulos (includes/file.php), e introduce un nuevo enfoque que permite procesar los archivos subidos de forma más segura.

  • Los métodos add_uploaded_file() y remove_uploaded_files() de la clase WPCF7_Submission se han convertido en métodos privados, lo que significa que no puedes llamarlos desde las funciones de tu módulo personalizado. En lugar de llamar a estos métodos, haz que tu etiqueta de formulario personalizada sea compatible con la característica de subida de archivos, tal y como lo hace el módulo de archivos incorporado.
  • Los archivos subidos se procesan después de la verificación antispam. El proceso consume una cantidad relativa de tiempo y recursos. Puedes y debes abortarlo cuando sepas que el envío es un spam.
  • La validación de las restricciones de entrada (campo obligatorio, comprobación del tipo y tamaño de archivo, etc.) se realizan en una función recién introducida, wpcf7_unship_uploaded_file(). Esta función devuelve un objeto WP_Error cuando la entrada no es válida, o una matriz de rutas de archivos cuando es válida.
  • La salida de wpcf7_unship_uploaded_file() se pasa a una función de filtro de validación a través de su tercer parámetro. Cuando la salida es WP_Error, la función debe llamar a invalidate() para enviar el error al formulario.
  • wpcf7_unship_uploaded_file() está diseñada para poder manejar múltiples archivos subidos simultáneamente a través de un solo campo.
  • Hay un cambio en la salida de WPCF7_Submission::uploaded_files(). Antes era una matriz de rutas de archivos, pero en 5.4 la salida es una matriz de matrices de las rutas de archivos.
  • El tercer parámetro que se pasa a las funciones del filtro wpcf7_upload_file_name ha cambiado. Antes era un objeto WPCF7_FormTag. En 5.4, es la matriz $args que se pasa a wpcf7_unship_uploaded_file(). Todavía puedes acceder al objeto WPCF7_FormTag a través de $args['tag'].

Nuevo icono de carga con CSS moderno

La versión 5.4 renueva el icono del carga o spinner (también conocido como cargador Ajax) desde cero. Anteriormente, se utilizaba un GIF animado para el icono. Sin embargo, el nuevo icono se ha implementado aprovechando varios trucos de CSS que están disponibles en todos los navegadores modernos.

  • Se ha eliminado assets/ajax-loader.gif
  • Contact Form 7, en versiones anteriores, establecía la clase is-active en el elemento span de los iconos de carga para controlar la visibilidad del icono. En la versión 5.4, se elimina el uso de la clase is-active. En su lugar, se utiliza la clase submitting del elemento form para este propósito.