CMS WordPress

Utilizar Gravity Forms como formulario de alta para nuevos usuarios

Guardar respuestas de Gravity Forms en una base de datos

Gravity Forms es, junto a Contact Form 7 y Ninja Formsuno de los generadores de formularios más flexibles y potentes de WordPress.

Dispone de campos condicionales lógicos, paginación, estructuración por columnas, validación da campos avanzados… y es de pago. Aunque esto no debe ser un problema, ya que en el post «Usar Gravity Forms sin licencia – legal bypass license» te explicamos cómo saltarte este pequeño inconveniente.

Sin embargo, al ser de pago, hay muchas funcionalidades que Contact Form 7 solventa con otros plugins gratuitos, y que Gravity Forms no tiene o son también de pago.

Un ejemplo de ello es almacenar la información de un formulario cumplimentado, en una base de datos. Gravity Forms te envía esa información directamente al email, pero no la almacena.

Otro ejemplo es  utilizar Gravity Forms como formulario de alta de usuarios. Lo que implica no sólo almacenar sus datos en una BBDD, sino poder recoger y manipular esos datos.

A través de este post, vamos a mostrarte cómo puede hacer todo esto, y utilizar la potencia de este plugin para introducir datos en tu propio plugin personal.

 

Resumen de contenidos

  1. Los IDs de campos simples y compuestos en Gravity Forms
  2. Creando un script I: Recoger datos y almacenarlos en variables
  3. Creando un script II: Subida a base de datos
  4. Bonus: Crear usuarios automáticamente con Gravity Forms

 

Los IDs de campos simples y compuestos en Gravity Forms

Tenemos instalado y activado el plugin y estamos creando un formulario. ¿Qué debemos mirar antes de ponernos a programar?

El id del formulario, que nos lo dará la url. En la imagen de arriba es «1».

Y el id de los campos que queramos almacenar en una BBDD. Para verlo basta con pasar el ratón sobre ellos, y enseguida nos aparecerá. El id del campo «Nombre» es «11».

Sin embargo, hay un detalle muy a tener en cuenta: Existen campos, como el campo «Nombre», que son compuestos. Esto quiere decir que tienen 2 o más inputs, y por ello, el id de cada input será diferente al id del campo global.

En el siguiente punto os indicamos cómo extraer los ids en estos casos.

 

Creando un script I: Recoger datos y almacenarlos en variables

Nosotros siempre recomendamos colocar las funciones y/o modificaciones que creemos, no en el functions.php de nuestro tema activo, que sería donde habitualmente se colocan, sino en nuestro propio plugin.

De esa forma no se compromete la estabilidad de toda la web, y se pueden desactivar las modificaciones que hemos hecho, desactivando el plugin. Además, tampoco se perderán cuando actualicemos el tema.

 

Recordemos que para crear un plugin, debemos crear una carpeta en /wp-content/plugins/ y situar un archivo .php que contendrá la siguiente cabecera:

 

Vamos a usar el action gform_after_submission, que es el que se ejecutará tras el envío de cada formulario de Gravity Forms.

Por lo tanto nuestro hook será:

Y nuestra función va a recibir, al menos, el parámetro $entry.

Este parámetro contendrá toda la información del último formulario enviado, por lo que podemos hacerle un var_dump para ver todo lo que contiene.

Como decíamos en el punto anterior, los campos compuestos no muestran su id desde el administrador de WordPress, por lo que usar un var_dump nos ayudará a conocerlo. Ej:

 

Una vez tenemos claro todo lo que recibimos y cuáles son sus identificadores, comentamos a extraer la información que nos interesa y asignarlas a variables PHP:

 

Creando un script II: Subida a base de datos

El siguiente paso será almacenar los datos en una BBDD para tener un registro.

Nosotros no vamos a crear una tabla nueva en la base de datos, ya que queremos que esos datos estén disponibles como posts de tipo personalizado. Pero recomendamos que, sobretodo si es tu primera vez, lo hagas aparte.

Para subir datos, debes asegurarte de incluir la llamada global $wpdb y el comando:

 

Quedando por tanto, dentro de la misma función que hemos descrito en el «Creando un Script I»:

 

Bonus: Crear usuarios automáticamente con Gravity Forms

¿Y qué se puede hacer con toda la información recogida arriba? Pues podemos, ya que estamos, crear un usuario nuevo para que pueda acceder y editar sus propios datos.

Para ello, añadimos a la función de arriba lo siguiente:

 

Si quisiésemos que los datos personalizados no estuviesen ni en una tabla aparte, ni como post (tal y como se ha visto en este ejemplo), sino que prefiriésemos asignarlos a su perfil de usuario, os recomendamos leer este post:

Añadir campos personalizados al formulario de registro de WordPress

 

 

¿Tienes dudas? ¿Has conseguido vincular tu Gravity Forms a una base de datos? ¿Te has atascado en algún punto? ¡Te ayudamos en los comentarios!

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

Escribir comentario

Haz clic aquí para dejar tu comentario