gugu76 Posted February 6, 2014 Share Posted February 6, 2014 Buongirono a tutti, dunque ho un problema che non riesco a risolvere con la mia versione di prestashop in versione 1.5.6.1. Dunque nella pagina di creazione account tradizionale, trovo due check box, una per l'iscrizione alla newsletter e una per ricevere offerte promozionali dai partner. Al fine di essere in regola con la normativa sulla privacy, volevo spostare le due checkbox sotto l'informativa per la privacy. Ma a parte lo spostamento che non è il mio problema, ho un altro problema. Cancellando o commentando il codice qui sotto (quello originale) {if $newsletter} <p class="checkbox" > <input type="checkbox" name="newsletter" id="newsletter" value="1" {if isset($smarty.post.newsletter) AND $smarty.post.newsletter == 1} checked="checked"{/if} autocomplete="off"/> <label for="newsletter">{l s='Sign up for our newsletter!'}</label> </p> <p class="checkbox" > <input type="checkbox"name="optin" id="optin" value="1" {if isset($smarty.post.optin) AND $smarty.post.optin == 1} checked="checked"{/if} autocomplete="off"/> <label for="optin">{l s='Receive special offers from our partners!'}</label> riesco a far sparire i box di richiesta e a spostarli, ma comunque chi si registra sul sito deve "obbligatoriamente" fleggare il campo newsletter altrimenti il processo di registrazione non va abuon fine e il sistema suggerisce di fleggare i campi. Anche cancellando il codice, la pagina viene caricata senza box da fleggare tuttavia compare sempre questo errore in alto. Ci sono 1 errori newsletter richiestiHo lavorato sul file tpl del tema ma non riesco a venirne a capo. I campi li vorrei lasciare ma non renderli obbligatori. Ho provato anche a disattivare ed eliminare il modulo newsletter ma non cambia nulla. Non è un discorso del tema in quanto anche lavorando sul tema di defualt ho sempre questo problema. Qualcuno ha un idea su dove devo mettere le mani? grazie e saluti a tutti. Link to comment Share on other sites More sharing options...
Luigi Massa Posted February 6, 2014 Share Posted February 6, 2014 Prova a dare un'occhiata all'IdentityController if (!isset($_POST['newsletter'])) $this->customer->newsletter = 0; elseif (!$origin_newsletter && isset($_POST['newsletter'])) if ($module_newsletter = Module::getInstanceByName('blocknewsletter')) if ($module_newsletter->active) $module_newsletter->confirmSubscription($this->customer->email); Link to comment Share on other sites More sharing options...
gugu76 Posted February 6, 2014 Author Share Posted February 6, 2014 (edited) Ciao, ecco il file che c'e' nella root class IdentityControllerCore extends FrontController{ public $auth = true; public $php_self = 'identity'; public $authRedirection = 'identity'; public $ssl = true; public function init() { parent::init(); $this->customer = $this->context->customer; } /** * Start forms process * @see FrontController::postProcess() */ public function postProcess() { $origin_newsletter = (bool)$this->customer->newsletter; if (isset($_POST['years']) && isset($_POST['months']) && isset($_POST['days'])) $this->customer->birthday = (int)($_POST['years']).'-'.(int)($_POST['months']).'-'.(int)($_POST['days']); if (Tools::isSubmit('submitIdentity')) { if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) && !(Tools::getValue('months') == '' && Tools::getValue('days') == '' && Tools::getValue('years') == '')) $this->errors[] = Tools::displayError('Invalid date of birth.'); else { $email = trim(Tools::getValue('email')); $this->customer->birthday = (empty($_POST['years']) ? '' : (int)$_POST['years'].'-'.(int)$_POST['months'].'-'.(int)$_POST['days']); if (isset($_POST['old_passwd'])) $_POST['old_passwd'] = trim($_POST['old_passwd']); if (!Validate::isEmail($email)) $this->errors[] = Tools::displayError('This email address is not valid'); elseif ($this->customer->email != $email && Customer::customerExists($email, true)) $this->errors[] = Tools::displayError('An account using this email address has already been registered.'); elseif ((!isset($_POST['old_passwd']) || empty($_POST['old_passwd'])) || (Tools::encrypt($_POST['old_passwd']) != $this->context->cookie->passwd)) $this->errors[] = Tools::displayError('The password you entered is incorrect.'); elseif ($_POST['passwd'] != $_POST['confirmation']) $this->errors[] = Tools::displayError('The password and confirmation do not match.'); else { $prev_id_default_group = $this->customer->id_default_group; // Merge all errors of this file and of the Object Model $this->errors = array_merge($this->errors, $this->customer->validateController()); } if (!count($this->errors)) { $this->customer->id_default_group = (int)$prev_id_default_group; $this->customer->firstname = Tools::ucwords($this->customer->firstname); if (!isset($_POST['newsletter'])) $this->customer->newsletter = 0; elseif (!$origin_newsletter && isset($_POST['newsletter'])) if ($module_newsletter = Module::getInstanceByName('blocknewsletter')) if ($module_newsletter->active) $module_newsletter->confirmSubscription($this->customer->email); if (!isset($_POST['optin'])) $this->customer->optin = 0; if (Tools::getValue('passwd')) $this->context->cookie->passwd = $this->customer->passwd; if ($this->customer->update()) { $this->context->cookie->customer_lastname = $this->customer->lastname; $this->context->cookie->customer_firstname = $this->customer->firstname; $this->context->smarty->assign('confirmation', 1); } else $this->errors[] = Tools::displayError('The information cannot be updated.'); } } } else $_POST = array_map('stripslashes', $this->customer->getFields()); return $this->customer; } /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { parent::initContent(); if ($this->customer->birthday) $birthday = explode('-', $this->customer->birthday); else $birthday = array('-', '-', '-'); /* Generate years, months and days */ $this->context->smarty->assign(array( 'years' => Tools::dateYears(), 'sl_year' => $birthday[0], 'months' => Tools::dateMonths(), 'sl_month' => $birthday[1], 'days' => Tools::dateDays(), 'sl_day' => $birthday[2], 'errors' => $this->errors, 'genders' => Gender::getGenders(), )); $this->context->smarty->assign('newsletter', (int)Module::getInstanceByName('blocknewsletter')->active); $this->setTemplate(_PS_THEME_DIR_.'identity.tpl'); } public function setMedia() { parent::setMedia(); $this->addCSS(_THEME_CSS_DIR_.'identity.css'); }} Edited February 6, 2014 by gugu76 (see edit history) Link to comment Share on other sites More sharing options...
gugu76 Posted February 6, 2014 Author Share Posted February 6, 2014 Non sono un programmatore... mi arrangio. Non pretendo di essere aiutato... io non ho mai avuto occasione di farlo. Tuttavia ogni volta che cerco documentazione per cercare di risolvere i vari problemi, trovo decine di richieste simile alle mie che non hanno mai avuto risposta. Trovo decine di persone che hanno avuto la malagurata sorte di scegliere questa piattaforma "gratuita" per il loro business. Il bello e che documentadosi su prestashop uno dovrebbe poprio sceglierla per le migliaia se non milioni di persone che hanno scelto questo sistema di vendita. E anni che seguo prestashop ma vedo che purtroppo le cose non sono cambiate, la comunità che c'era su oscommerce... ragazzi quello era un altro modo di essere community. Tutto e gratis, nessuno è tenuto a fare niente e nessuno può pretendere niente, ma come esperienza personale posso manifestare il mio disgusto per come gira la baracca. Per non parlare dell'"italianizzazione" di prestashop pari a quella di un sistema nato 2 settimane fa nonostante siano passati anni. Link to comment Share on other sites More sharing options...
eugenata Posted February 7, 2014 Share Posted February 7, 2014 (edited) ... Dunque nella pagina di creazione account tradizionale, trovo due check box, una per l'iscrizione alla newsletter e una per ricevere offerte promozionali dai partner. Al fine di essere in regola con la normativa sulla privacy, volevo spostare le due checkbox sotto l'informativa per la privacy. ... Ciao gugu76, scusa se posto anche qui ma l'argomento ch ehai sollevato è di interresse generale, per cui ti chiedo di spiegare il motivo per cui è necessario spoare i checkbox di iscrizione newsletter e optin e dove esattamente dovrebbero essere per la normativa italiana. Scrivo questo perchè personalmente non sono a conoscienza di questa presunta indicazione nella normativa sulla privacy ma vorrei capire da te cosa c'è che non è in regola e a quale regola ti riferisci (ti chiedo cortesemente di citare la fonte). Aggiungo che probabilmente l'errore è dovuto al fatto che il campo newsletter è stato impostato come obbligatorio in b.o. Edited February 7, 2014 by eugenata (see edit history) Link to comment Share on other sites More sharing options...
Emanuela82 Posted February 27, 2014 Share Posted February 27, 2014 Ciao, a quanto ho capito il problema dovresti risolverlo nel BO cliccando su "clienti" e in fondo alla pagina sulla sinistra devi cliccare su "impostare campi obbbligatori per questa sessione" e successivamente togliere la spunta su newsletter e optin.spero di esserti stato di aiuto Link to comment Share on other sites More sharing options...
GrandeLupo Posted May 17, 2018 Share Posted May 17, 2018 Ho un problema simile, che fino ad oggi non mi ero posto. Utilizzo la versione di Prestashop 1.6.1.12, in Preferenze > Clienti, ho l'opzione (spunta) di attivare/Disabilitare la casella Iscrizione alla newsletter che Abilita opt-in . La disattivazione funziona solo per "Abilita opt-in", cioèè le offerte dei partner, ma non per la registrazione classica alla newsletter, che durante il processo di creazione dell'account , rimane la casellina di spunta. Come mai? Come mai disabilitando da BO, non si toglie questa spunta ? Spero qualcuno possa dare un cosiglio e soluzione. Grazie a tutti Link to comment Share on other sites More sharing options...
fedesib Posted May 21, 2018 Share Posted May 21, 2018 Ciao, disabilitando la newsletter non si elimina il checkbox perchè il controller (AuthController.php) che crea il form di registrazione verifica sia il valore (sì/no) impostato nel backoffice sia la presenza del modulo "newsletter" (e il fatto che questo modulo sia attivo). Se una delle due condizioni è vera, il checkbox viene mostrato. Prova a disabilitare il modulo newsletter, dovrebbe sparire il checkbox in registrazione. Buon pomeriggio, Federica 1 Link to comment Share on other sites More sharing options...
GrandeLupo Posted May 21, 2018 Share Posted May 21, 2018 (edited) Grande, Grande, Grande Federica!!! RISOLTO, disattivando il modulo newsletter e togliendo la spunta in corrispondenza di "Abilita la registrazione alla newsletter", si disattiva il campo. In realtà alla fine lo sto tenendo in quanto lo sfrutto per altro. Chi aderisce partecipa all'estrazione di omaggi. Grazie ancora Fede per la dritta.... *** PS: Fede, o chiunque altro membro della community, ho un problema con la Nota di Consegna, questo è il post pubblicato con i dettagli:https://www.prestashop.com/forums/topic/824417-consiglio-per-generare-nota-di-consegna-con-importo-prima-della-fa/?tab=comments#comment-2869105 Grazie Edited May 22, 2018 by GrandeLupo (see edit history) Link to comment Share on other sites More sharing options...
fedesib Posted May 22, 2018 Share Posted May 22, 2018 (edited) Ciao, sono contenta che tu abbia risolto! Per il problema con la nota di consegna: se ho tempo più tardi dò un'occhiata e ti faccio sapere cosa ne penso (se ho una soluzione). Buona giornata, Federica Edited May 22, 2018 by fedesib (see edit history) 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now