Jump to content

Poner un checkbox en la inscripción del Newsletter


guelu

Recommended Posts

Buenas amigos,

 

La verdad es que parece una tontería y lo he estado buscando por ahí, pero no lo encuentro. La cuestión es que quiero poner un checkbox para que la gente que se inscriba en el Newsletter acepte las condiciones de uso, o en su defecto un texto que venga a decir que si se inscribe se aceptan de facto las condiciones.

 

Gracias

Link to comment
Share on other sites

Busca en el foro, este tema lo han tratado hace pocos días en este mismo foro. Había un módulo que hacía esto pero era para versiones antiguas de prestashop y algún usuario lo ha estado adaptando a su web en las ultimas fechas. 

Link to comment
Share on other sites

Suponiendo que uses Prestashop 1.6, con plantilla por defecto, primero editar fichero:

/themes/default-bootstrap/modules/blocknewsletter/blocknewsletter.tpl

Mas info, en este tema (no se si es al que se refiere jesa): http://www.prestashop.com/forums/topic/323776-incluir-check-en-suscripci%C3%B3n-a-newsletter/ (que lo acabo de encontrar en google) 

Edited by rafaelamargo (see edit history)
Link to comment
Share on other sites

Hola amigos!

 

Lo primeros agradeceros el enlace y el interés.

 

He estado mirando el código y lo he insertado en mi fichero (no uso el tema por defecto) y efectivamente he conseguido que el checkbox aparezca. El problema ahora es que ingresa el email esté el checkbox clicado o no, es indiferente, por ello debe haber un error en el código que no consigo ver... os lo pego a continuación :

<div id="newsletter_block_left" class="block">
	<p class="title_block">{l s='Newsletter' mod='blocknewsletter'}</p>
	<div class="block_content">
		<form action="{$link->getPageLink('index')|escape:'html':'UTF-8'}" method="post">
			<div class="form-group{if isset($msg) && $msg } {if $nw_error}form-error{else}form-ok{/if}{/if}" >
				<input class="inputNew form-control grey newsletter-input" id="newsletter-input" type="text" name="email" size="18" value="{if isset($msg) && $msg}{$msg}{elseif isset($value) && $value}{$value}{else}{l s='Enter your e-mail' mod='blocknewsletter'}{/if}" />
                <button type="submit" name="submitNewsletter" class="btn btn-default button button-small">
                    <span>{l s='Ok' mod='blocknewsletter'}</span>
                </button>
				<input type="hidden" name="action" value="0" />
			 	<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='Acepto'} </label> <a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}&&;{else}&&;{/if}content_only=1" class="iframe">{l s='Politica Privacidad'}</a></p>
			</div>
		</form>
	</div>
</div>

Muchas gracias!

Link to comment
Share on other sites

Lamentablemente no lo he conseguido aún, asi que para ir tirando lo que he puesto es un texto debajo de la caja de texto del newsletter diciendo que si se hace click en el "ok" se aceptan las condiciones Generales.

 

Creo que con esto podré ir tirando mientras algien nos ayuda a implementarlo con el dichoso checkbox.

 

Os dejo el código como lo tengo hasta ahora:

<!-- Block Newsletter module-->
<div id="newsletter_block_left" class="block">
	<p class="title_block">{l s='Newsletter' mod='blocknewsletter'}</p>
	<div class="block_content">
		<form action="{$link->getPageLink('index')|escape:'html':'UTF-8'}" method="post">
			<div class="form-group{if isset($msg) && $msg } {if $nw_error}form-error{else}form-ok{/if}{/if}" >
				<input class="inputNew form-control grey newsletter-input" id="newsletter-input" type="text" name="email" size="18" value="{if isset($msg) && $msg}{$msg}{elseif isset($value) && $value}{$value}{else}{l s='Enter your e-mail' mod='blocknewsletter'}{/if}" />
                <button type="submit" name="submitNewsletter" class="btn btn-default button button-small">
                    <span>{l s='Ok' mod='blocknewsletter'}</span>
                </button>
				<input type="hidden" name="action" value="0" />

                
                <label for="acepta_lopd_form">{l s='Al hacer click en "OK" acepta las '} </label> <p><a href="{$link->getCMSLink(Configuration::get('PS_CONDITIONS_CMS_ID'))}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="iframe">{l s=' Condiciones Generales'}</a></p>

			</div>
		</form>
	</div>
</div>

Un saludo

Link to comment
Share on other sites

He solicitado borrar mis mensajes del otro tema, porque en el tema del estilo yo tampoco he conseguido y no quiero crear confusiones, he visto que ahora prestashop te crea unos elementos automaticos, cuando añades un elemento en el formulario.

 

Yo no he conseguido colocarlo sin que se baje (si puedes solucionar eso, dimelo), lo que si creo que he conseguido es que funcione la validación real gracias a moraira: http://www.prestashop.com/forums/topic/244467-adaptar-el-formulario-de-contacto-a-la-lopd-con-un-check/ , es decir, yo lo tengo asi:

<script type="text/javascript">
{literal}
 
$('document').ready(function() {
 
// desactivo boton envio
 
$('#formsucripcion').submit(function() {
 
if ($("#acepta_lopd_form").is(":checked")) {
 
$('#submitNewsletter').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.' mod='blocknewsletter'}{literal}");
 
$('#submitNewsletter').show()
 
return false;
 
}
 
});
 
});
{/literal}
 
</script>
 
 
{*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*}
<!-- Block Newsletter module-->
<div id="newsletter_block_left" class="block">
<h4>{l s='Newsletter' mod='blocknewsletter'}</h4>
<div class="block_content">
<form action="{$link->getPageLink('index')|escape:'html':'UTF-8'}" method="post"  id="formsucripcion">
<div class="form-group{if isset($msg) && $msg } {if $nw_error}form-error{else}form-ok{/if}{/if}" >
<input class="inputNew form-control grey newsletter-input" id="newsletter-input" type="text" name="email" size="18" value="{if isset($msg) && $msg}{$msg}{elseif isset($value) && $value}{$value}{else}{l s='Enter your e-mail' mod='blocknewsletter'}{/if}" />
                <button type="submit" name="submitNewsletter" id="submitNewsletter" class="btn btn-default button button-small">
                    <span>{l s='Ok' mod='blocknewsletter'}</span>
                </button>
<input type="hidden" name="action" value="0" />
     <label for="terminosm">
 
<script type="text/javascript">{literal}
$('a.enlace_ventana').fancybox({
    type: 'iframe',
 
});{/literal}
</script>
<input type="checkbox" name="acepta_lopd_form" id="acepta_lopd_form"> 
<a id="enlace_ventana" href="{$link->getCMSLink(1)}{if Configuration::get('PS_REWRITING_SETTINGS') == 1}?{else}&{/if}content_only=1" class="enlace_ventana" >
{l s='He leido y aceptado los  terminos' mod='blocknewsletter'}
</a></label> 
</div>               
 
</form>
</div>
</div>
<!-- /Block Newsletter module-->
{strip}
{if isset($msg) && $msg}
{addJsDef msg_newsl=$msg|@addcslashes:'\''}
{/if}
{if isset($nw_error)}
{addJsDef nw_error=$nw_error}
{/if}
{addJsDefL name=placeholder_blocknewsletter}{l s='Enter your e-mail' mod='blocknewsletter' js=1}{/addJsDefL}
{if isset($msg) && $msg}
{addJsDefL name=alert_blocknewsletter}{l s='Newsletter : %1$s' sprintf=$msg js=1 mod="blocknewsletter"}{/addJsDefL}
{/if}
{/strip}

Link to comment
Share on other sites

He probado tu código rafaelamargo, me funciona la ventana emergente, pero sigue tragandose todo los email esté o no clicado el checkbox, estoy empezando a pensar que debe de tratarse de un problema de tabulación en mi archivo tpl. Me puedes poner tu código con la tabulación que te aparece?

 

Gracias...

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...