El plugin de formularios por excelencia en WordPress (casi podría llamarse un estándar), recibe una actualización mayor en su versión 5.4
Según el blog del desarrollador, Contact Form 7 recibe los siguientes cambios:
Integración nativa con Sendinblue
Este módulo agrega Sendinblue a la sección de Integración de Contact Form 7
- Nuevo hook wpcf7_sendinblue_collect_parameters.
- La función wpcf7_mask_password() se ha mejorado, permitiendo establecer longitudes de texto sin máscara para ambos lados.
Revisión del JavaScript frontal
En la nueva versión 5.4, se han realizado cambios drásticos en el JavaScript que se usa en la parte frontal (zona pública, no adminstrativa) dek sitio web, que durante mucho tiempo no ha cambiado los scripts basados en jQuery.
La nueva codificación de JavaScript se basa en los @wordpress
paquetes que se incluyen con WordPress y no usa jQuery, salvo pocas excepciones, como la que se usa para el respaldo del selector de fecha, que se basa en la interfaz de usuario de jQuery.
- Se han eliminado algunas características que hoy en día están desactualizadas o son prescindibles. Estos incluyen el polyfill de marcador de posición y el polyfill de campo numérico.
- Nuevo tipo de evento DOM:
wpcf7reset
(se activa al restablecer el formulario). - Anteriormente, el target event de los
wpcf7*
era elelemento div
padre delelemento form
. En la versión 5.4, ha cambiado alelementor form
en sí. Sin embargo, dado que los eventoswpcf7*
fluyen hacia la raíz del documento, este cambio no afecta los usos reales de esos eventos DOM, por lo que puede continuar apuntando al elemento div principal . - reCAPTCHA recupera un nuevo token antes de enviar un formulario. Esto debería solucionar el problema de caducidad del token.
Se mejora el proceso de carga de archivos
En versiones anteriores a la 5.4, la mayor parte del proceso para los archivos cargados se implementó en el módulo de archivos (modules / file.php). Este enfoque se vuelve problemático cuando intentas desarrollar un módulo de carga de archivos personalizado, ya que tienes que implementar de forma redundante todo el proceso en tu módulo.
La version 5.4 mueve este proceso a un archivo independiente de los módulos (incluye / file.php) e introduce un nuevo enfoque que le permite procesar los archivos cargados de una forma más segura.
add_uploaded_file()
yremove_uploaded_files()
de la claseWPCF7_Submission
se convierten en métodos privados, lo que significa que no pueden ser llamados desde las funciones de tu módulo personalizado. En lugar de llamar a estos métodos, haz que tu etiqueta de formulario personalizada admita la funciónfile-uploading
, tal como lo hace el módulo de archivo incorporado .- Los archivos cargados se procesan después de la verificación antispam. El proceso consume una cantidad relativa de tiempo y recursos. Puedes y debes cancelarlo cuando sepas que el envío es spam.
- Las restricciones de validación de entrada (campo obligatorio, tipo de archivo y la verificación del tamaño del archivo, etc.) ahora se realizan en una nueva función,
wpcf7_unship_uploaded_file()
. Esta función devuelve un objetoWP_Error
cuando la entrada no es válida, o una matriz de rutas de archivo 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 esWP_Error
, la función debe llamar ainvalidate()
para enviar el error al formulario. wpcf7_unship_uploaded_file()
está diseñado para poder manejar múltiples archivos cargados simultáneamente a través de un solo campo .- Hay un cambio en la salida de
WPCF7_Submission::uploaded_files()
. Anteriormente era una matriz de rutas de archivo pero, en la versión 5.4, la salida es una matriz de matrices de rutas de archivo. - El tercer parámetro pasado a las funciones de filtro
wpcf7_upload_file_name
ahora ha cambiado. Anteriormente, era un objetoWPCF7_FormTag
. En la versión 5.4, es lamatriz $args
pasada awpcf7_unship_uploaded_file()
. Aunque aún puedes acceder al objetoWPCF7_FormTag
a través de$args['tag']
.
Nuevo icono de ruleta con CSS moderno
La versión 5.4 renueva el ícono de ruleta (también conocido como Ajax-loader) desde cero. Anteriormente, se utilizaba un GIF de animación para el icono. Sin embargo, el nuevo icono se ha implementado aprovechando varios trucos CSS que están disponibles en todos los navegadores modernos.
Por lo que:
- assets / ajax-loader.gif ha sido eliminado.
- Contact Form 7, en versiones anteriores, establecía la clase
is-active
en el elementospan
de los iconos giratorios para controlar la visibilidad del icono. En la versión 5.4se elimina el uso de la clase is-active
. En cambio, la clasesubmitting
del elementoform
se usa para este propósito.
Transcripción del artículo original: Contact Form 7 5.4 Beta.
Marcel dice
Contact form empezó a fallar desde su última actualizacion.
El loader queda siempre en pantalla..
Esto afecta decenas de sitios …
dani dice
Hola, desconozco el problema ya que no me ha ocurrido en ninguno de los sitios donde lo tengo. Puede que intefiera con algún otro plugin que haga uso de ajax, ya que comentas que se queda en «loading» permanente y no termina de procesar el envío.
Comprueba en el inspector del navegador, en la pestaña Network o Red, en qué proceso se está atascando, por si te da alguna pista.
Saludos.