Jump to content

Problème ajout email dans Bloc Newsletter


Recommended Posts

Bonjour,

 

Je rencontre une difficulté avec le module "Bloc Newsletter" (celui qui est de base dans le BO).

 

Il s'avère que dès los que j'ajoute une adresse e-mail, il y a un message d'erreur disant :

"Cette adresse e-mail est déjà enregistrée."

 

Alors que l'adresse n'est pas du tout enregistrée.

 

Ce bloc est destiné dans ma boutique, à envoyer un code de réduction aux clients. Du coup, cela ne se fait pas.

 

Pourriez-vous m'aider ?

 

Merci d'avance

Link to comment
Share on other sites

  • 4 weeks later...

J'ai exactement le même problème, avec la version 1.5.4.1 de Prestashop.

 

Soit il me dit que l'email saisi est invalide ou il me dit que l'email est déjà enregistré.

 

Quand je vais récupérer la liste des membres inscrits, on retrouve bien les emails saisis.

 

Merci

  • Like 1
Link to comment
Share on other sites

  • 4 months later...
  • 2 months later...

@nabisacademy : Si ton bloc newsletter marche et qu'il arrive à récupérer les adresses mails des inscrits, il suffit de partir dans l'onglet Modules et chercher "lettre d'informations" (Moi j'arrive à y accéder en tapant newsletter dans le B.O) . C'est ce module qui te permet des récupérer les fichiers csv contenant ta base de données inscrits. 

Un peu en retard mais bon çà peut toujours servir pour d'autres. Sinon moi mon problème c'est qu'il ne récupère aucun e-mail justement. Je pense que le module n'est pas compatible avec la version 1.5.6 de prestashop

Link to comment
Share on other sites

  • 7 months later...

Je note un comportement étrange de la méthode Blocknewsletter::isNewsletterRegistered

 

 

La méthode Blocknewsletter::newsletterRegistration stocke le résultat de Blocknewsletter::isNewsletterRegistered dans la variable $register_status.

 

Si on force la méthode Blocknewsletter::isNewsletterRegistered avec une valeur quelconque (entre -1 et 2) la méthode Blocknewsletter::newsletterRegistration se comporte bien, si on ne force rien, la variable $register_status reste vide et on n'a un mauvais message d'erreur, mais ce qui est étonnant c'est que le mail est quand même enregistré.

 

Je suis arrivé à cette conclusion en plaçant des die directement dans les différentes méthodes.
Si ça parle à quelqu'un, moi je ne comprends pas pourquoi ça fait ça.

 

EDIT 1

Je viens de confirmer une hypothèse, l'enregistrement du mail est fait 2 fois au cours du processus.
Peut-être qu'une méthode javascript et en cause ?

Edited by Graphart créations (see edit history)
Link to comment
Share on other sites

Merci pour le lien, je vais allez voir.

En attendant, j'ai une solution à proposer pour les gens dans la même galère que moi.

 

La solution est toute bête, dans le fichier blocknewsletter.php il faut ajouter unset($_POST); à la ligne 376  (à la fin de la méthode Blocknewsletter::newsletterRegistration) Pour éviter qu'elle ne soit déclenchée deux fois.

 
Cela implique de modifier le fichier du module. pour assurer la compatibilité et les mises à jours, je suggère d'aller voir une surcouche des modules très malin que Julien Breux propose => https://gist.github.com/JulienBreux/2287709
Simple et efficace, je l'ai déjà utilisé quelques fois.
Link to comment
Share on other sites

  • 7 months later...

Bonjour 

 

Il me semble avoir un problème connexe, car lorsque je rentre une adresse email dans mon bloc newsletter , Prestashop 1.6 me renvoi le message suivant:

 

 

[PrestaShopDatabaseException]

Unknown column 'id_shop_group' in 'field list'
 

SELECT GROUP_CONCAT(id_shop_group) as groupid FROM ps_sendin_newsletter WHERE email = "[email protected]" GROUP BY email LIMIT 1
at line 635 in file classes/db/Db.php

 

629.             WebserviceRequest::getInstance()->setError(500, '
 '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
630.         }
631.         else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))
632.         {
633.             if ($sql)
634.                 throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
635.             throw new PrestaShopDatabaseException($this->getMsgError());
636.         }
637.     }
638.
639.     /**

 

Même chose en création de compte client. Mais le compte est créé quand même sauf que le client croit que cela n'a pas marché.

 

Quelqu'un peut m'aider ?

 

Merci

Link to comment
Share on other sites

  • 2 months later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...