Enrique J. Ros

Adaptar el formulario de registro de WooCommerce al RGPD

Parece mentira pero, después de las semanas de locura previas a la entrada definitiva en vigor del RGPD (Reglamento General de Protección de Datos), de modificaciones en webs, adaptaciones de textos y formularios y demás cambios apresurados, aún quedan flecos que pulir.

Por ejemplo, el formulario de registro de WooCommerce. ¡Maldita sea! Ni habría pensado en este formulario si no me hubiera preguntado uno de mis clientes del servicio de mantenimiento. El cliente está dando su email, así que hay que adaptarlo. Es más, ¡está creando una cuenta de usuario! Toca informarle con detalle de lo que haremos con sus datos.

Cómo adaptar el formulario de registro de WooCommerce al RGPD

Para empezar, tengo que decir que quizá no necesites hacerlo: sólo te hace falta, evidentemente, si tienes habilitado este formulario en la web.

La opción la tienes en WooCommerce > Ajustes > Cuentas y Privacidad > Creación de cuenta > Permite a los clientes crear una cuenta en la página “Mi cuenta” si tienes WooCommerce actualizado a la versión 3.4+ o en WooCommerce > Ajustes > Cuentas > Registro de usuario > Permitir el alta como cliente en la página “Mi cuenta” si usas una versión anterior (si es el caso más te vale que vayas pensando en actualizar).

Si tienes activada esta opción los clientes podrán crear una cuenta de usuario desde la página Mi cuenta. Y claro, para ello tienen que dar obligatoriamente el email: ¡dato personal!

Pues nada, toca incluir, como siempre, la dichosa casilla de aceptación de la política de privacidad además de la información de la “primera capa”, los datos básicos de privacidad que se aplican a dicho formulario: responsable del tratamiento, finalidad, legitimación, destinatarios… En fin, creo que ya sabes de qué va.

Añadir la casilla de aceptación

Lo primero y más básico será añadir la casilla (obligatoria) de aceptación de la política de privacidad. Y hay varias formas de hacerlo, en función de la aversión que tengas al código.

La primera forma es por código, haciendo uso del hook woocommerce_register_form para añadir un nuevo campo (nuestra casilla) mediante la función woocommerce_form_field.

Si todo esto te suena a chino, haremos algo mejor: darte el código completo. Que vendría a ser algo así:

add_action( 'woocommerce_register_form', function () {
  
  woocommerce_form_field( 'politica_privacidad_registro', array(
	  'type'          => 'checkbox',
	  'class'         => array('form-row rgpd'),
	  'label_class'   => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
	  'input_class'   => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
	  'required'      => true,
	  'label'         => 'He leído y acepto la política de privacidad',
	  )); 
}, 10);

El texto que aparecerá junto a la casilla es el que está a la derecha del índice label. Por supuesto, deberías incluir el enlace a la política de privacidad. Si no sabes dónde tienes que poner ese código, puedes echarle un vistazo a este artículo:

Perfecto, ya aparece nuestra casilla. Pero, si haces la prueba, verás que se permite el registro aunque ésta no esté marcada. Claro, hemos añadido el checkbox pero no realizamos sobre él ninguna comprobación.

Hacer obligatoria la casilla de aceptación

Tal y como tenemos ahora mismo las cosas, esa casilla no sirve de nada, porque la cuenta se puede crear sin marcarla (es decir, el usuario podría estar dando datos personales sin aceptar nuestra política de privacidad).

Lo que tenemos que hacer es comprobar que la casilla está marcada antes de crear la cuenta y, si no es así, mostrar un error al usuario. Esto podemos hacerlo gracias al hook (filtro) woocommerce_registration_errors, mediante el que podemos mostrar un error si el usuario no ha marcado la casilla.

De nuevo, te doy el código:

add_filter( 'woocommerce_registration_errors', function ( $errores, $usuario, $email ) {
    if ( ! (int) isset( $_POST['politica_privacidad_registro'] ) ) {
        $errores->add( 'politica_privacidad_registro_error', 'Tienes que aceptar nuestra política de privacidad' );
    }
return $errores;
}, 10, 3);

Y, ahora sí, está cada cosa en su sitio:

Añadir el texto básico de protección de datos

Bueno, en realidad aún queda un pequeño detalle: añadir el texto básico de la política de privacidad al formulario.

Para esto tenemos dos opciones. Por un lado la opción “cutre”, de andar por casa, que es editar la página Mi cuenta y añadir el texto en el contenido de esta página, justo debajo del shortcode [woocommerce_my_account]

Digo que es cutre poco elegante porque así el texto quedará en realidad debajo del formulario de login, y no del de registro, lo que no es lo ideal (debe quedar claro que el texto aplica al formulario de registro).

La solución “buena” es, de nuevo, utilizar código para añadir este texto al final del formulario. Para ello podemos usar el hook woocommerce_register_form_end. De nuevo, aquí tienes el código:

add_action ('woocommerce_register_form_end', function () {
  echo 'Aquí iría el texto básico de privacidad';
}, 10);

Quedando, ahora sí, cada cosa donde debe estar (el texto legal es sólo un ejemplo):

Sí, es cierto: no queda muy elegante, pero ¿qué formulario ha quedado elegante después del RGPD? Esta maldit… ley se ha cargado el diseño de los formularios.

Adaptando al RGPD el formulario de registro de WooCommerce con un plugin

Demasiado código, ¿verdad? La buena noticia es que hay alternativa: puedes usar un plugin que te permitirá adaptar este formulario:

Mediante una sencilla página de ajustes (en Ajustes > RGPD en registro) podrás:

Como ves, con este sencillo plugin queda resuelta la adaptación al RGPD de este formulario de registro de WooCommerce. Uno más y sigue la cuenta.

Vídeo: Adaptar el formulario de registro de WooCommerce al RGPD

Salir de la versión móvil