/, LOPD, Prestashop/Prestashop 1.6: Adaptar el formulario de contacto a la LOPD con un “he leído y acepto…”

Prestashop 1.6: Adaptar el formulario de contacto a la LOPD con un “he leído y acepto…”

Para que nuestro formulario de contacto cumpla con la LOPD (Ley Orgánica de Protección de Datos) el usuario tiene que aceptar explícitamente que ha leído y acepta los términos y condiciones citados en la política de privacidad de la página web. Para ello, necesitamos incluir un check box al final del formulario con el texto de “He leído y acepto los términos y condiciones y la política de Privacidad” o algo similar.
Si el usuario no ha seleccionado este check box, no se le debe permitir enviar el mensaje y se le debe mostrar un aviso indicándole que debe aceptar las condiciones.
Además, con nuestra solución podrá acceder a estos términos y condiciones con un pop-up o ventana emergente, sin salir de la página del formulario.

1. Deberemos ir al archivo contact-form.tpl de nuestra plantilla e incluir esto al final del archivo:

<script type=”text/javascript”>
$(‘document’).ready(function() {
// desactivo boton envio
$(‘#formcontacto’).submit(function() {
if ($(“#acepta_lopd_form”).is(“:checked”)) {
$(‘#submitMessage’).hide()
return true;
} else  {
alert (“{/literal}{l s=”If you agree to the terms in the Customer Data Privacy message, please click the check box below.”}{literal}”);
$(‘#submitMessage’).show()
return false;
}
});
});
</script>
{/literal}

2. En el mismo archivo, modificaremos el formulario. Cambiaremos la línea:

<form action=”{$request_uri|escape:’htmlall’:’UTF-8′}” method=”post” class=”contact-form-box” enctype=”multipart/form-data”>

Por esta otra:

 <form action=”{$request_uri|escape:’htmlall’:’UTF-8′}” id=”formcontacto” name=”formcontacto” method=”post” class=”contact-form-box” enctype=”multipart/form-data”>

Para añadir un nombre y un id al formulario.

3. Añadimos el checkbox en el formulario, después del textarea (mensaje) y antes del submit (botón de Enviar):

<p class=”checkbox” id=”security_informations”>
<input id=”acepta_lopd_form” type=”checkbox” value=”1″ {if isset($smarty.post.acepta_lopd_form) AND $smarty.post.acepta_lopd_form == 1}checked=”checked”{/if}  name=”acepta_lopd_form”>
<label for=”acepta_lopd_form”>{l s=’I agree to the’} </label> <a href=”{$link->getCMSLink(Configuration::get(‘PS_CONDITIONS_CMS_ID’))}{if Configuration::get(‘PS_REWRITING_SETTINGS’) == 1}&#63;{else}&amp;{/if}content_only=1″ class=”iframe”>{l s=’Privacy Policy’}</a> {l s=’and will adhere to them unconditionally.’}

 

Estamos diciéndole que el enlace a los términos y condiciones va a ser el que hayamos definido desde el panel de administración:

{$link->getCMSLink(Configuration::get(‘PS_CONDITIONS_CMS_ID’))},

pero cogiendo sólo el contenido textual, sin cabecera ni pie:

content_only=1.

4. Después del checkbox y antes del submit, añadiremos el siguiente script, para que las condiciones se abran en una ventana emergente:

<script type=”text/javascript”>
$(document).ready(function() {
$(“a.iframe”).fancybox({
‘type’ : ‘iframe’,
‘width’:900,
‘height’:600
});
});
</script>

Y eso es todo. Si tenéis cualquier duda o estáis usando una versión de Prestashop anterior a la 1.6., os aconsejo que echéis un vistado al foro de Prestashop:

http://www.prestashop.com/forums/topic/244467-adaptar-el-formulario-de-contacto-a-la-lopd-con-un-check/

¡También podéis consultarnos por aquí y os ayudaremos en lo que podamos!

2018-04-30T11:45:52+00:00 05/06/2014|Comercio electrónico, LOPD, Prestashop|

11 Comentarios

  1. doomsday 26/06/2014 en 21:42 - Responder

    Hola.

    He realizado pasos a paso y no funciona, cuando pulso enviar sin marcar el check no muestra la ventana de advertencia. Puede verificar que está todo correcto?

    Gracias y saludos.

    PD: En el punto 1, al principio del bloque falta la etiqueta {literal} y en el punto 3 falta cerrar la etiqueta p

  2. Me ha funcionado perfectamente, pero el script que termina con {/literal} debería empezar por {literal}.

  3. Wokan09 20/11/2014 en 00:42 - Responder

    Pues yo he seguido los pasos exactamente igual y no me ha funcionado 🙁 es como si el script no hiciera nada y por consiguiente me manda el formulario aunque esté la casilla desmarcada, a alguien mas le ha pasado? Un saludo y gracias

  4. Manuel Buitrago 19/06/2015 en 21:45 - Responder

    Muchas gracias por la ayuda, me ha servido y mucho, pero …. no habría manera de adaptarlo al registro de clientes=???? pleaseee. gracias, saludos.

  5. Iván García 10/03/2016 en 12:54 - Responder

    Necesito que enlace con política de privacidad y no con términos y condiciones. ¿Cómo podría hacerlo?

  6. Svanessap 09/05/2017 en 11:14 - Responder

    Hola buenas, he introducido y el código y va perfecto, pero el único fallo que encuentro es que el formulario lo envía igualmente aunque no se seleccione la casilla, ¿cómo se puede cambiar por favor? ¡Gracias!

  7. Me ocurre lo mismo. Se envía el formulario sin marcar la casilla. ¿Cómo lo arreglamos?

  8. Hector 23/08/2017 en 08:18 - Responder

    Hola. he seguido los pasos que se mencionan. Y no consigo que me funcione.

    Al hacer click me lleva a la pagina de los términos y condiciones pero no me lo muestra en un pop-up o ventana emergente.

    Por otra parte aunque no seleccione el ckeckbox me envía el formulario.

    Trabajo con la versión 1.6.1.14 de Prestashop. ¿A alguien le sucede lo mismo?

  9. Hector 24/08/2017 en 15:31 - Responder

    Solucionado:

    He tenido que añadir las referencias a estos dos archivos en el header.tpl

    jquery.fancybox.css
    jquery.fancybox.js

    Ignoro porque pero en la página de Contacto no las referenciaba y en la de Compra del carrito sí.

Deje su comentario