• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria
  • Ir al pie de página

Dani Sánchez - Gestionatuweb

Desarrollador web freelance - Dani Sánchez Gestionatuweb

  • ¿Eres agencia?
  • WordPress
    • Mantenimiento
    • Desarrollo
    • Soporte técnico
  • Cursos
  • Porfolio
  • Blog
  • Contacto
  • Solicita Presupuesto
Estás aquí: Inicio / Publicaciones / Cómo añadir un checkbox en el formulario de registro de WordPress para aceptar la política de privacidad

Publicaciones, Tutoriales, Wordpress / 20 de agosto de 2018

Cómo añadir un checkbox en el formulario de registro de WordPress para aceptar la política de privacidad

Si queremos permitir que cualquier usuario se registre en nuestro sitio web con WordPress, tenemos que añadir de alguna forma el «check» que valide que nuestro usuario ha aceptado los términos y condiciones de la política de privacidad de nuestro sitio web, tal y como obliga el actual RGPD.

Esta casilla de verificación (checkbox) no se encuentra por defecto en el formulario de registro de WordPress.

Lo primero que tenemos que hacer es habilitar el registro de usuarios en los ajustes generales de WordPress, habilitando la casilla Cualquiera puede registrarse.

Luego podemos crear un enlace hacia el formulario de registro utilizando el slug: www.tuweb.com/wp-login.php?action=register

WordPress también ofrece el enlace de registro en el formulario de inicio de sesión:

Una vez accedemos al formulario de registro por defecto de WordPress tenemos los campos para nombre de usuario y dirección de e-mail. Aquí necesitamos añadir la casilla de validación (checkbox) para asegurarnos del consentimiento de políticas de privacidad de nuestro nuevo usuario.

Para añadirla vamos a insertar una nueva función en el archivo functions.php de nuestro tema:

function aceptacion_terminos_registro_wordpress() {
    echo "<input type='checkbox' name='acepto'/> Acepto los <b><a href='#'>términos y condiciones</a></b> de la política de protección de datos.";
}
add_action('register_form', 'aceptacion_terminos_registro_wordpress');

Dentro del <a href=»#»> sustituimos la almohadilla (#) por la URL donde se encuentre nuestro aviso legal.

Ahora solo nos queda validar que la casilla haya sido activada, por lo que agregamos la siguiente función:

function validar_aceptacion($errors, $sanitized_user_login, $user_email){
    if(empty($_POST['acepto'])){
        $errors->add('acepto_error', __('<strong>ERROR</strong>: Debes marcar la casilla de aceptación de privacidad.', 'gestionatuweb'));
    }
    return $errors;
}
add_filter('registration_errors', 'validar_aceptacion', 10, 3);

Ahora si intentamos registrarnos sin haber marcado la casilla de aceptación, aparecerá un error que no nos permitirá finalizar el registro y cumpliremos perfectamente con el nuevo RGPD.

Si te ha gustado el artículo, compártelo y ayúdame a difundirlo. Hasta el siguiente post 😉

Archivado en:Publicaciones, Tutoriales, Wordpress Etiquetado con:desarrollo web, formularios, php, programación web, tutoriales, wordpress

Interacciones con los lectores

Este artículo puede contener código que podría no funcionar correctamente en tu versión de WordPress o causar incompatibilidad con tu plantilla o plugins. Úsalo bajo tu responsabilidad y haz siempre copia de tus archivos antes de modificarlos.

Comentarios

  1. Rafael Moreno dice

    28 de agosto de 2018 en 14:41

    Hola Daniel. Me parece un fantástico aporte, y no entiendo como es posible que WordPress no implemente esta opción tanto en el registro como en los comentarios a los post.

    Me queda una duda, y es que en mi web guardo la aceptación de los usuarios en los comentarios (utilicé un código en functions.php paa poderlos implementar) en la base de datos de WordPress, po si algún día tengo que demostrar que el usuario aceptó la politica. Entiendo que en tu código no queda ninguna prueba de que se hizo clic en esa casilla. ¿Es así? ¿Se podría implementar el almacenamiento de ese dato en la base de datos?

    Muchísimas gracias por el articulo.

    Responder
    • Daniel, Gestionatuweb.net dice

      28 de agosto de 2018 en 15:27

      Hola Rafael, es una observación interesante. No conozco al 100% todos los términos del nuevo reglamento RGPD, entiendo que para todo usuario registrado con anterioridad, se debía solicitar una re-aceptación de los términos y condiciones legales del sitio web, pero una vez entrado en vigor el nuevo reglamento, ya es obligatorio tener la casilla obligando a aceptar, pero no tengo constancia de que también debiera quedar registrado ese clic en la base de datos.

      Efectívamente, existen métodos para registrar ese click, yo crearía una nueva tabla en la base de datos, que registrase el ID del usuario y el valor del checkbox, mediante un insert, pero sería complicado explicar por aquí.

      Por otro lado, nada me impediría a mí como administrador de la base de datos, marcar esa aceptación para todo usuario registrado, entonces no se qué validez tendría ese mecanismo.

      Entiendo que es suficiciente limitar el registro mediante el checkbox, ya que no hay manera de registrarse si no se acepta, y si se registra es porque lo ha aceptado, no se si me explico.

      Un saludo.

      Responder
      • Rafael dice

        28 de agosto de 2018 en 16:29

        Hola de nuevo Daniel. Repito las gracias por el código, que ya he incluido en mi web.
        Te pongo aquí la parte del código de los comentarios donde se guarda el checkin en la base de datos. Este código lo copié de la web Hormigas en la nube, que lo puso a disposición de los usuarios de WordPress para ajustar los comentarios a la RGPD, igual que has hecho tú ahora con el Registro.
        La ayuda de personas como vosotros es super valiosa para que los que sabemos menos podamos aprovechar mejor las posibilidades que nos brinda internet. Muchísimas gracias!!!

        Saludos cordiales.

        // Guardamos el valor aceptado en la tabla comment metadata
        function save_comment_meta_data ( $post_id ) {
        $privacy_comment = $_POST[‘privacy’];
        if ( $privacy_comment ) {
        add_comment_meta( $post_id, ‘privacy’, $privacy_comment, true );
        }}

        add_action( ‘comment_post’, ‘save_comment_meta_data’, 1 );

        // Mostramos el valor del metadato en la página de administración de comentarios
        if ( is_admin() ) {
        function show_commeta() {
        echo get_comment_text(), ‘‘, get_comment_meta(get_comment_ID(), ‘privacy’,1), ‘‘;
        }
        add_action(‘comment_text’, ‘show_commeta’);
        }

        Responder
  2. Marco dice

    25 de marzo de 2020 en 15:13

    no funciona, me da error en la segunda linea. ECHO

    Responder
  3. Henry dice

    17 de abril de 2020 en 01:34

    Hola Daniel, eres un fenómeno! 2 codigos copiados a mi archivo functions.php y va de maravilla y a la primera! Primero fue ‘capar’ a los usuarios el acceso al panel de admin y ahora este último de los terminos, y condiciones. como podria saber el trafico que tiene mi web o alguna pagina….
    Saludos y mil gracias,

    Responder

Responder a Marco Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  Acepto la política de privacidad

Barra lateral primaria

Daniel Sánchez

@danisanchez82
t.me/gestionatuweb

Buscar en la web

Entradas recientes

  • Adiós WhatsApp…
  • Configuración de WP Fastest Cache
  • Cómo añadir un enlace personalizado en el menú admin de WordPress
  • Hooks de Genesis Framework (init, header y framework) – Parte 1
  • Añade el soporte de Genesis Framework para tus Custom Post

Categorías

  • Actualidad
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • Wordpress

Comentarios recientes

  • Isaias en Crear un WebView con Android Studio para cargar una web en una APP Android
  • Isaias en Crear un WebView con Android Studio para cargar una web en una APP Android
  • Carlos en Crear un WebView con Android Studio para cargar una web en una APP Android
  • william maffiold en Instalar LAMP y phpMyAdmin en MX Linux 19
  • dani en Divi, diseñar una plantilla predeterminada para cargar Custom Posts

Hosting de confianza

Footer

Buscar en la web

  • Inicio
  • Agencias
  • Mantenimiento WordPress
  • Desarrollo WordPress
  • Soporte técnico WordPress
  • Cursos
  • Portfolio
  • Blog
  • Contacto
  • Política de privacidad

Mis redes

  • Facebook
  • LinkedIn
  • Twitter
  • YouTube

© 2016–2021 Gestionatuweb · Programado con Genesis Framework · Iniciar sesión

Utilizo cookies para obtener datos estadísticos sobre el uso de mi sitio web y personalizar la publicidad (no intrusiva) del blog según tus intereses. En ningún caso estas cookies te identifican como persona, solo a tu dispositivo en la Red. Aceptando el uso de cookies me ayudarás a mantenener el blog gracias a la publicidad y podré mejorar la experiencia de uso gracias a la analítica web. Puedes navegar por mi sitio web sin que se instale ninguna de estas cookies, aunque este mensaje permanecerá visible en todo momento.AceptoPolítica de privacidad