Validar un NIF con Gravity Forms

Cuando pedimos a un usuario que introduzca su NIF en un campo de un formulario, tan importante como guardar ese dato es validar el dato antes de guardarlo, pues no tiene ningún sentido guardar un dato que no es válido y por tanto no vamos a poder usar para cualquiera que sea el cometido para el que le hemos pedido al usuario que nos lo proporcione.

Aunque Gravity Forms no trae de serie un tipo de campo específico para validar el NIF, afortunadamente, pone a nuestra disposición filtros con los que podemos validar cualquier dato introducido en un campo del formulario con nuestra propia función de validación. De esta manera no sólo podemos validar un NIF sino cualquier otro tipo de dato que necesitemos validar.

El acto de validar el NIF en Gravity Forms consistirá de dos partes claramente diferenciadas.

  1. Obtener el dato que el usuario ha introducido en el formulario y validarlo con nuestra función de validación de NIF.
  2. Si nuestra función de validación de NIF nos dice que el dato no es válido, se lo haremos saber a Gravity Forms y le proporcionaremos un mensaje de error de validación para el campo.

Función de validación del NIF

Si buscas un poco en Gooogle encontrarás que hay ya muchas funciones creadas para validar un NIF. Para el ejemplo que nos ocupa yo voy a usar esta. Que pertenece a un módulo de validación para Drupal que se encuentra bajo licencia GPL.

Pero tú puedes usar cualquier otra ya sea creada por un tercero o por ti mismo, lo importante es que sea capaz de comprobar correctamente la validez del NIF.

La función de validación del NIF debe devolvernos true o false en base a la validez del NIF introducido. Esta función que voy a usar en el ejemplo sirve tanto para personas físicas nacionales o extranjeras y empresas (por cierto, dato curioso, aunque la gente sigue usando el término CIF cuando se habla del identificador fiscal de una empresa, desde el año 2008 ese término no existe y se utiliza el término NIF tanto para personas físicas como para empresas).

Podemos añadir la función de validación del NIF usando el método clásico del archivo functions.php del theme (sólo si sabes lo que haces), o en un plugin que creemos a tal efecto, o incluso usando algún plugin para agregar fragmentos de código a WordPress. Lo importante es que de una manera u otra tengamos disponible la función de validación de NIF en nuestro WordPress para llamarla desde la función que engancharemos a continuación al filtro de validación de Gravity Forms.

Informando a Gravity Forms cuando el NIF no es válido

Gravity Forms nos proporciona dos filtros que podemos usar para realizar validaciones de datos:

En este caso, puesto que sólo queremos validar un campo del formulario, vamos a usar el primer filtro que está específicamente indicado para validar un único campo (aunque también se puede usar para validar varios campos) y resulta más sencillo de utilizar para los que no tienen demasiado experiencia en programación.

Con el fin, precisamente, de que nuestro código de validación se ejecute únicamente para el campo en cuestión del formulario concreto donde tenemos el campo, vamos a especificar tanto la id del formulario como la id del campo en el nombre del filtro tal como se indica en la documentación. De tal manera que si, por ejemplo, la id del formulario es 1 y la id del campo para el NIF es 3, el nombre del filtro a usar sería gform_field_validation_1_3

La función completa sería quedaría de la siguiente forma:

Por último indicar que el tipo de campo que usaremos en el editor de formularios de Gravity Forms será el campo “Línea de texto“, ya que este campo carece de validación del tipo de dato introducido por parte de Gravity Forms y de esta manera sólo se aplicará nuestra función de validación de NIF.

A mí no me cuentes historias y dámelo hecho (WP way of life…)

Si no te has enterado de nada y le tienes pánico a eso de editar código fuente. No te preocupes, he creado un pequeño plugin que simplemente tienes que descargar el archivo zip desde Github, instalar y activar en tu WordPress como harías con cualquier otro plugin en formato zip.

Una vez activado el plugin cualquier campo de línea de texto al que añadas la clase CSS validar_nif en los ajustes del campo se le aplicará la validación del NIF.

Ahora ya no tienes excusa para no recopilar NIF válidos con Gravity Forms ;)

2 pensamientos en “Validar un NIF con Gravity Forms

Deja un comentario

Tu dirección de email no será publicada. Campos obligatorios marcados con *