person encoding in laptop

Conectarse a una base de datos externa e insertar registros de Gravity Forms

Gravity Forms es plugin de formularios que nos permite a los Desarrolladores de WordPress acelerar los tiempos de desarrollo con su plugin, hace tiempo hice un desarrollo de para un cliente y necesitaba registrar los datos que se obtenían en Gravity Forms en una base de datos externa, bueno pues para resolverlo he utilizado el siguiente código.

Antes de iniciar con el tutorial te explicare:

¿Qué es Gravity Forms?

Gravity Forms es un plugin para WordPress que permite diseñar y crear rápidamente formularios para WordPress utilizando un intuitivo editor de formulario visual que es muy parecido a la interfaz del nuevo editor de WordPress (Gutenberg).

Pero bueno una vez aclarado este concepto podemos proceder al:

¿Cómo hacerlo?

Bueno pues Gravity Forms es un muy buen plugin de formularios que nos permite a los Desarrolladores de WordPress acelerar los tiempos de desarrollo con su plugin, hace tiempo hice un desarrollo de para un cliente y necesitaba registrar los datos que se obtenían en Gravity Forms en una base de datos externa, para resolverlo he utilizado el siguiente código, basta con agregar el siguiente código en el archivo functions.php de tu tema hijo:

<?php
add_action('gform_after_submission', 'add_data_custom_db', 10, 2);
function add_data_custom_db($entry, $form)
{
	/**
	 * Definimos los datos de conexion de la Base de Datos.
	 */
    $DB_USER = 'root';
    $DB_PASSWORD = 'root';
    $DB_NAME = 'pruebas';
    $DB_HOST = 'localhost';
	$DB_TABLE = 'datos';
    /*
     * Si quieres revisar que datos puedes extraer del formulario de Gravity Forms
     * mediante el Objeto $entry usa la siguientes líneas.
     */
    echo '<pre>';
    var_dump($entry);
    echo '</pre>';
	/**
	 * Gravity Forms - Entry Object
	 * Para mas información acerca del Objeto $entry puedes visitar la documentación oficial:            https://docs.gravityforms.com/entry-object/
	 */
    $date = rgar( $entry, 'date_created' ); // Devuelve la fecha de creación del registro.
	$name = rgar( $entry, '1.3' );  // Devuelve el valor asociado con el campo de nombre de Gravity Forms, solamente el nombre. 
	$age = $entry['2'];
    /**
	 * Creamos un nuevo objeto de la clase wpdb para poder conectar la base de datos externa y enviar los datos, ejecuta una funcion SQL y devuelve un obejto PHP.
	 */
    $newdb = new wpdb($DB_USER, $DB_PASSWORD, $DB_NAME, $DB_HOST);
	// Muestra los errores al hacer la conexion.
	$newdb->show_errors();
	/**
	 * Declaración SQL para insertar en base de datos externa con Gravity Forms
	 */
	$sql = $newdb->prepare("INSERT INTO `$DB_TABLE` (`Nombre`, `Edad`) values (%s, %d)", $name, $age);
	// Execute the SQL Query
	$newdb->query($sql);
}
?>

Conclusión

Este código es muy útil cuando se hará algún tipo de tratamiento a los datos o bien poderlo consultar fuera de WordPress con una aplicación web hecha con alguna otra tecnología, además de que puede ser una alternativa para evitar la sobrecarga en la base de datos de WordPress, si se tiene planeado realizar miles de registros.

¿Aún con dudas?

Si ¿Necesitas ayuda con algún proyecto web? No dudes en contactarme desarrollo soluciones completas y personalizadas con WordPress y PHP, con herramientas y procesos modernos, utilizando HTML, CSS, SCSS, PHP, JavaScript, Bootstrap y más… Si ¿Estás listo? ¡Envíame un mensaje y hablemos de tu proyecto web!