Contact Form 7 5.6 Beta

El lanzamiento de la versión 5.6 de Contact Form está programado para el 17 de junio. Dado que la versión 5.6 viene con grandes cambios, estamos lanzando una versión 5.6 Beta para pruebas.

Puedes descargar una copia de la versión beta desde el repositorio de GitHub. Si encuentras algún error, por favor, infórmanos creando un issue en GitHub.

Si encuentra alguna extension o tema que no funcione correctamente con la beta de la versión 5.6 de Contact Form 7, por favor, informa el problema a los desarrolladores de ese producto, no a nosotros. No podemos asumir ninguna responsabilidad por productos de terceros.

Introducción de Schema-Woven Validation

La principal característica de la versión 5.6 es la introducción de Schema-Woven Validation. Esto significará que un único esquema podrá regular la validación de las entradas del usuario, tanto en el lado del servidor como en el lado del cliente (en el navegador). Además, dado que el esquema se distribuye a través de la API REST de WordPress, esto permitirá validar las entradas de usuario en un servidor web, aunque el servidor no sea el de origen del formulario.

La versión 5.6 de Contact Form 7 es compatible con 15 tipos de reglas para el esquema, que corresponden a los filtros de validación tradicionales que admiten las versiones anteriores de Contact Form 7, y las versiones futuras van a añadir más tipos de reglas. Puede que pronto aparezcan también algunas «reglas compuestas» que permitan formularios multipaso o lógica condicional.

Para los desarrolladores: el mecanismo de validación basado en filtros existente seguirá funcionando. Si has creado filtros de validación personalizados, no necesitas modificarlos (aunque solo seguirán funcionando para la validación del lado del servidor).

El gancho de filtro wpcf7_support_html5 queda obsoleto

El gancho de filtro wpcf7_support_html5 filter se ha marcado como obsoleto (deprecated) en la versión 5.6 de Contact Form 7 y se eliminará por completo en el futuro cercano.

Este gancho fue creado hace 9 años, cuando la versión 3.4 de Contact Form 7 introdujo las etiquetas de formulario para campos de entrada HTML5. Al enganchar una función de retorno que devuelve false, puedes suprimir el uso de los tipos de entrada HTML5.

Ahora, los tipos de entrada HTML5 son ampliamente aceptados y no hay razón para evitar su uso, por lo que el gancho de filtro wpcf7_support_html5 ya no debería estar en uso.

La opción de tipo de archivo admite tipos MIME

Ahora puedes usar tipos MIME para declarar tipos de archivos aceptables para un campo de subida de archivos, como se muestra en el siguiente ejempo:

[file archivo-123 filetypes:image/*|txt|application/pdf]
Este campo acepta todos los archivos de imagen, texto y archivos PDF.

Un tipo MIME utilizado en la opción filetypes debe ser uno de los tipos que WordPress define en wp_get_mime_types(), o uno que use un comodín (*) en su parte de subtipo (como image/*).

Al igual que con la API de archivos, los tipos MIME no se utilizan directamente para la validación del tipo de archivo. Esto significa que los validadores no leerán el bytestream de un archivo para determinar su tipo de medio. En su lugar, los tipos MIME se convierten en extensiones de archivo, y las extensiones de archivo se utilizan para validar.

La versión 5.6 de Contact Form 7 también cambia la opción filetypes que es usada cuando se omite la opción. El nuevo valor por defecto de la opción filetypes es audio/*|video/*|image/*.

Cambios de marcado en los controles de formulario

Para una manipulación más coherente del DOM, el marcado HTML de los controles de formulario ha cambiado ligeramente. Los cambios no afectarán a la mayoría de los usuarios, pero si eres desarrollador de un plugin o un tema que aplica estilo a los formularios, puede que tengas que prestar atención.

El nuevo marcado añade el atributo data-name="{nombre-del-campo}" a los elementos contenedores de los controles de formulario (wpcf7-form-control-wrap), y, en favor de ello, elimina las clases {nombre-del-campo} del elemento.

Marcado anterior:

<span class="wpcf7-form-control-wrap tu-nombre">
    <input class="wpcf7-form-control wpcf7-text" type="text" name="tu-nombre" />
</span>

Nuevo marcado:

<span class="wpcf7-form-control-wrap" data-name="tu-nombre">
    <input class="wpcf7-form-control wpcf7-text" type="text" name="tu-nombre" />
</span>

Otros cambios destacados

  • Campos de número: Acepta entradas de números decimales.
  • Validador de configuración: Acepta valores vacíos para Cc, Bcc, y Reply-To como una cabecera de correo electrónico válida.
  • Mensajes: Algunos mensajes por defecto para errores de validación han cambiado para utilizar una redacción más natural.
  • Introduce WPCF7_ContactForm::is_false().
  • WPCF7_FormTagsManager::filter() es compatible con la condición basetype.
  • Introduce wpcf7_exclude_blank().
  • Reemplaza algunas referencias $_SERVER['SERVER_NAME'] con los nombres de servidor proporcionados por network_home_url().
  • API REST: Devuelve un estado de error HTTP 415 cuando el valor de la cabecera Content-Type en una solicitud de creación de comentarios no es multipart/form-data.
  • Introduce WPCF7_Submission::get_posted_string().
  • WPCF7_Validation::invalidate() acepta un objeto WP_Error.
  • La lógica de validación ha cambiado en wpcf7_is_url(), wpcf7_is_tel(), y wpcf7_is_number().
  • Usa el gancho de acción shutdown en lugar de template_redirect.

Puedes explorar la lista completa de cambios en GitHub.