Este truco les va a venir muy bien a nuestros lectores.
Es muy importante que nuestro formulario prestashop cumpla la ley LOPD.
El mensaje que debe aparecer el final del formulario es:
He leído y acepto los Términos y Condiciones de Privacidad
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 nombrados en la política de privacidad de nuestra tienda prestashop.
Para cumplir con esto es 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.
1. Deberemos modificar el fichero contact-form.tpl de nuestra plantilla e incluir este script al final del fichero:
{literal}
<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("Acepte los Términos y Condiciones de Privacidad , por favor haga clic en la casilla de abajo.");
$('#submitMessage').show()
return false;
}
});
});
</script>
{/literal}
2. En el mismo archivo, modificaremos el formulario. Cambiando 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 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">He leído y acepto los </label>
<a href="link a la política de privacidad" target="_blank"
class="iframe">{l s='Términos y Condiciones de Privacidad'}</a>
</p>
Si tenéis cualquier duda o estáis usando una versión de Prestashop anterior a la 1.6
No dudéis en poneros en contacto con nosotros estaremos encantados en ayudaros
he aplicado el codigo tal y como habeis explicado en prestashop 1.6.1.9 y al pulsar en el formulario, una vez activo el fuerce de compilación subido el archivo con las modificaciones indicadas, al pulsar en el botón del formularios, el servidor dedicado me da un error 500. ¿ Sabéis a que se debe ?
hola gracias por este gran aporte.
me reporta un error en esta linea de código:
$(‘document’).ready(function() {
como no estoy muy puesto en php no veo el problema 😉
gracias por tu ayuda
Hola.
¿Cómo lo enlazo al CMS correspondiente?. Gracias.
Buenas.
He hecho todos los pasos y me funciona bien pero firefox y según parece en otro ordenador en chrome el botón aparece en el centro del formulario y no en la parte izquierda como en el resto.
¿Cómo puedo solucionar esto?
Gracias.
Funciona perfectamente con la versión de prestashop 1.4.3. Mil gracias
Saludos. y para la versión 1.6.1. cual sería la forma de hacerlo, en el contac-form
Fernando
José Sánchez (@PepInca) 04 Oct 2015
Gracias. Excelente trabajo. Me ha venido bien. Aprendí mucho. Saludos de Mallorca. Estamos en contacto. Sigo tu blog excelente.