¿Has creado un sitio web con Gravity Forms y necesitas cumplir con los requisitos de consentimiento del RGPD?
Pues estás en el lugar indicado. En esta guía, echaremos un vistazo a los requisitos de la prueba del consentimiento del RGPD y a cómo agregar la Consent Database de iubenda a tu sitio web de Gravity Forms.
→ Salta a Cómo agregar la Consent Database en Gravity Forms
El registro de los consentimientos es específicamente requerido bajo el RGPD. Se requiere mantener un registro completo y exhaustivo del consentimiento y es una parte esencial del cumplimiento de la privacidad. El registro de las pruebas es gestionado directamente por ti, el responsable del tratamiento de datos. Como resultado, el RGPD requiere que conserves una “prueba” o un registro del consentimiento que contenga detalles específicos que puedan probar que el consentimiento recibido es genuino y, por lo tanto, válido según el RGPD. El consentimiento debe ser explícito, otorgado libremente y verificable según el RGPD. Puedes obtener más información sobre la Consent Database de iubenda aquí.
Este registro debería incluir una forma de identificar al usuario, una prueba del consentimiento, el registro de la acción de consentimiento y los documentos legales disponibles para el usuario en el momento de prestar dicho consentimiento, entre otras cosas.
Se debe registrar la siguiente información:
Puedes consultar todos los requisitos aquí.
La solución de consentimiento de iubenda registra y gestiona automáticamente el consentimiento y las preferencias de privacidad de manera conforme al RGPD y la LGPD para cada uno de tus usuarios. Puedes obtener más información sobre la Consent Database de iubenda aquí.
La siguiente guía sobre cómo integrar nuestra Consent Database en Gravity Forms ha sido creada específicamente para desarrolladores. Sabemos que se trata de una guía compleja, por lo tanto, utiliza este ejemplo como punto de partida y habla con tu equipo técnico para personalizarlo de acuerdo con tu caso específico.
Dado que Gravity Forms no es compatible con nuestro plugin de WordPress y pueden surgir conflictos al usar nuestro método Javascript, hemos decidido crear un ejemplo de integración utilizando los action hooks de Gravity Forms y nuestra API de la Consent Database.
Para crear un consentimiento en Gravity Forms, sigue estos pasos:
Al hacerlo, save_consent() se lanza cada vez que se envía un formulario.
//Creating the function that sends consent to ConS
function save_consent(){
$consent_data = array(
"timestamp" => date('Y-m-d H:i:s'),
"subject" => array(
"full_name"=>$_POST["input_1_3"], //input sent via form (Please note: real name in the Gravity Forms is input_1.3, but dots (and spaces) in a variabile should be changed in _
"email" => $_POST["input_2"], //
),
"legal_notices" => array(
array(
"identifier" => "term"
),
array(
"identifier" => "privacy_policy"
)
),
"preferences" => array(
"privacy_policy_gform" => true
),
);
$req = curl_init();
curl_setopt($req, CURLOPT_URL, 'https://consent.iubenda.com/consent');
curl_setopt($req, CURLOPT_RETURNTRANSFER, true);
curl_setopt($req, CURLOPT_HTTPHEADER, array(
'ApiKey: YOUR PRIVATE API KEY',
'Content-Type: application/json'
));
curl_setopt($req, CURLOPT_POST, true);
curl_setopt($req, CURLOPT_POSTFIELDS, json_encode($consent_data));
$response = curl_exec($req);
}
//the number 8 is the ID of the form where we want to append the save consent function
add_action( 'gform_after_submission_8', 'save_consent', 10, 2 )
Nota:
Si tienes varios formularios y quieres añadir la misma función save_consent
para todos ellos, puedes cambiar add_action
de esta manera:
add_action( 'gform_after_submission', 'save_consent', 10, 2 )
Esta función lee los datos de consentimiento provenientes de Gravity Forms a través de una solicitud POST.
Contiene una matriz, que es el ejemplo de PHP que puedes encontrar aquí en nuestra documentación de la API HTTP de la Consent Database.
En nuestra función PHP, encontrarás una o más de estas keywords seguidas de la variable superglobal $_POST, que contiene el valor de la misma, para que puedas crear el consentimiento con los valores que el usuario ha completado en el formulario.
Puedes encontrar más información sobre la variable superglobal $_POST en la documentación oficial de PHP.
Por ejemplo, supón que has creado un formulario utilizando Gravity Forms que tiene el siguiente código HTML:
<form action="/action_page.php">
<label for="fname">First name:</label><br>
<input type="text" id="fname" name="fname" value="John"><br>
<label for="lname">Last name:</label><br>
<input type="text" id="lname" name="lname" value="Doe"><br><br>
<input type="submit" value="Submit">
</form>
Personalizarás esta parte de nuestro ejemplo:
De este modo:
"subject" => array(
"first_name"=>$_POST["fname"],
"last_name" =>$_POST["lname"];
),
Ahora, añade tu propia clave API privada de la Consent Database en la siguiente función, como se muestra a continuación:
Ten en cuenta que la Consent Database tiene 2 claves diferentes, una pública y una privada, utiliza siempre la privada, ya que la pública no funcionará con nuestra API.
A continuación, también puedes personalizar las preferencias, suelen coincidir con la casilla de verificación que el usuario acepta al enviar el formulario: "preferences" => array("privacy_policy_gform" => true)
Pero también puedes decidir pasar este valor empleando la variable $_POST, como hemos hecho dentro del “subject” (interesado) si quieres leerlo dinámicamente.
Por último, puedes personalizar el consentimiento, pasando también las pruebas del consentimiento, como hemos hecho en este ejemplo.
"proofs"
:
[
{
"content"
:
"proof_1"
,
"form"
:
"proof_1 form"
}]
En este caso, “content” puede ser un resumen de los valores insertados por el usuario en el formulario y “form” es el código HTML del formulario completado por el usuario.
Personaliza add_action( 'gform_after_submission_8', 'save_consent', 10, 2 )
con el ID del formulario, puedes encontrarlo en la configuración de Gravity Forms. Si el ID del formulario es 6754, entonces 'gform_after_submission_8'
será 'gform_after_submission_6754'
¡Y eso es todo! Recuerda que esto es un ejemplo, pero es un buen punto de partida. Te recomendamos que te pongas en contacto con tu equipo técnico para personalizar todo lo anterior según tu caso concreto.