• Saltar a la navegación principal
  • Saltar al contenido principal

Dani Sánchez - Gestionatuweb

Desarrollador web freelance

  • Quién soy
  • ¿Eres agencia?
  • WordPress
    • Mantenimiento WordPress
    • Desarrollo WordPress
    • Soporte técnico WordPress
  • Cursos
  • Blog
  • Portfolio
  • Solicita Presupuesto

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

El 20 de agosto de 2018 por dani 10 comentarios

Aviso: Esta entrada tiene 2 o más años, es posible que el método difiera ligeramente, las capturas de pantalla no se correspondan con la versión actual o que la herramienta/complemento ya no esté disponible.
Advertencia: Esta entrada contiene códigos o snippets que podrían no funcionar correctamente en tu instalación de WordPress, o podrían ser incompatibles con tu theme o plugins activos. Úsalos bajo tu responsabilidad, preferiblemente en un entorno de desarrollo y haz siempre copias de tus archivos antes de modificarlos.

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 <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 como: desarrollo web, formularios, php, programación web, tutoriales, wordpress

Interacciones con los lectores

Comentarios

  1. Olga dice

    1 de junio de 2021 a las 10:41

    Buenas Dani!

    Que alegría encontrar tu web.
    Muchas gracias por compartir tus conocimientos.
    He incluido tus funciones y, en la que añade el check, me arroja el siguiente mensaje:
    Los cambios en tu código PHP se han revertido debido a un error en la línea 49 del archivo wp-content/themes/sober-child/functions.php. Por favor, arréglalo y trata de guardar de nuevo.

    syntax error, unexpected ‘<'

    La línea 49 es esta:

    echo  Acepto los ...

    ¿Estoy copiando algo mal?

    Un abrazo

    Olga

    Responder
    • dani dice

      1 de junio de 2021 a las 12:08

      Hola, parece que había un pequeño error en el código y no estaba bien cerrado el link. Perdona pero no se puede escribir código HTML en los comentarios para mostrarte cómo ponerlo correctamente. Vuelve a intentar sustituir la # por la URL de los términos y condiciones sin modificar nada más.

      Saludos.

      Responder
  2. Ederson dice

    28 de mayo de 2021 a las 03:01

    Excelente aporte, gracias.

    Sí me gustaría saber si es posible que cuando le den clic a Política de privacidad, en vez de ir a una página, se despliegue hacia abajo.

    Responder
    • dani dice

      29 de mayo de 2021 a las 10:13

      Hola Ederson, eso sería algo más complejo. No he probado si es posible insertar un div oculto con la politica de privacidad, que al hacer clic en el link lo despliegue con algún recurso CSS o Jquery.

      Habría que probarlo…

      Responder
  3. Ernesto dice

    26 de marzo de 2021 a las 08:25

    Funciona perfecto!!!

    gracias por tan buen aporte de equipo 😉

    Responder
  4. Henry dice

    17 de abril de 2020 a las 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
  5. Marco dice

    25 de marzo de 2020 a las 15:13

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

    Responder
  6. Rafael Moreno dice

    28 de agosto de 2018 a las 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 a las 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 a las 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

Deja una respuesta 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

Hosting recomendado

Raiola Networks

Autor

Dani Sánchez
Dani Sánchez
@danisanchez82

Entradas recientes

  • Optimizar el archivo de configuración de WordPress (wp-config.php)
  • ¿Qué plugins tengo instalados en mi web en 2022?
  • Tu alojamiento web no es compatible con la rotación de imágenes. [Solución]
  • Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)
  • Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34

Comentarios recientes

  1. Armando en Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora 34
  2. Vito en Configurar en español los campos tipo fecha (date) en Ninja Forms
  3. Manel en Calcular rutas con OpenStreetMap partiendo de la geolocalización del usuario
  4. Leo en Modificar textos predefinidos de WordPress sin editar la traducción
  5. Alejo en Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)

Categorías

  • Actualidad
  • Afiliación AliExpress
  • Agent Press Pro
  • Bettaso Web Restaurantes
  • Cursos
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Iniciación a PHP
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • WordPress

Divi 20% descuento

Hosting Recomendado

Raiola Networks
Banner

Sitios web corporativos, blogs y tiendas online cuidando hasta el mínimo detalle

Si deseas proponerme un proyecto web ponte en contacto conmigo.

Contacto

Gestionatuweb © 2022 · Desarrollado con Genesis · Acceder
Política de privacidad · Política de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde a tus gustos. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias. Más información sobre las cookies que utilizamos en nuestra: Política de cookies.

Gestor de cookies:  GDPR Cookie Compliance
Resumen de uso de cookies

En Gestionatuweb.net utilizamos cookies técnicas para el correcto funcionamiento del sitio. Además, utilizamos cookies para obtener datos estadísticos sobre el uso de la web, con el fin de mejorar la experiencia de navegación y conocer qué contenidos son los más consultados. Otras cookies son usadas para servicios adicionales, como conexión con redes sociales, marketing o mostrar publicidad acorde con tus intereses. Puedes desactivar todas las cookies (excepto las técnicas) pulsando en Rechazar, o elegir qué cookies admites y cuales no en el botón de Preferencias.

Cookies técnicas (necesarias)

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies. Estas cookies son:

  • moove_gdpr_popup: Comprueba si debe mostrar o no el aviso de cookies (si ya ha sido aceptado o rechazado no se vuelve a mostrar mientras persista esta cookie). Expira en 1 año.
  • cpnb_cookiesSettings: Comprueba qué categorías de cookies se aceptan o rechazan (por ejemplo, cookies analíticas, cookies de publicidad dirigida, etc.). Expira en 1 año.
  • _GRECAPTCHA: Esta web utiliza el servicio reCAPTCHA para fortalecer la seguridad en los formularios y evitar el envío masivo de SPAM. reCAPTCHA utiliza esta cookie necesaria para realizar su análisis de riesgo. Expira en 6 meses.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de analítica

Utilizamos Google Analytics para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares. Dejando estas cookies activas nos permite mejorar nuestra web.

  • _ga: Analítica de Google. Se usa para distinguir a los usuarios. Expira en 2 años.
  • _gid: Se usa para distinguir a los usuarios. Expira en 24 horas.
  • _gat: Se usa para limitar el porcentaje de solicitudes. Expira en 1 minuto.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Cookies de publicidad

Utilizamos Google Adsense para mostrar publicidad en los artículos del blog acordes a tus intereses. Esta publicidad nos ayuda al mantenimiento del sitio web y del tiempo dedicado a la redacción del blog.

  • _gads: Publicidad de Google Adsense. Proporciona la publicación de anuncios de interés para el usuario. Expira en 13 meses.

¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!

Política de cookies

Más información sobre nuestra política de cookies