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!