Jump to content

Avertie par mail d'un nouvel inscrit (client)


fhcom

Recommended Posts

Bonjour

ma question existe il une solution pour que l'on puisse etre avertie de nouvelle inscription d'un client

recevoir un mail nous informant de cela

car j'ai fait un groupe qui n'a accès qu'a certain produit professionnel que les autres ne doivent pas voir, et c'est seulement en fonction du formulaire d'inscription que c'est comment et les mettre en groupe

donc le fait d'être avertie me permet de leurs donner un accès quasi immédiat ou du moin dans les plus court délais

merci de votre réponse

Link to comment
Share on other sites

  • 2 weeks later...

Module installé sur version 1.2.5. OK mais petit soucis:

Je me suis inscrit comme nouveau client sur ma boutique. Donc en tant que client, j'ai bien reçu le mail d'inscription (module configuré en mode "activation automatique") et en tant qu'admin, j'ai bien reçu le mail pour m'indiquer de la présence d'un nouveau client sur mon site.

Mais c'est l'intitulé du mail coté admin qui bug, il me marque "Nouveau Client en attente de validation" alors que son compte est déjà activé lors de son inscription.

Étant donné qu'il y a possibilité d'avoir cette intitulé, je n'ai pas oser modifier la source du module.

Donc si quelqu'un peux m'aider pour trouver le bug. Merci. Module joint pour évité de le chercher sur l'autre post :-P

customerregistrationV2.0.zip

Link to comment
Share on other sites

Dans le fichier customerregistration.php, fonction sendMail(), il faut ajouter un cas pour le sujet du mail

Le code

if ($approval->privilege_request)
   $subject = $this->l('New customer with privilege access waiting for registration');
else
   $subject = $this->l('New customer waiting for registration');




devient

if ($approval->privilege_request)
       $subject = $this->l('New customer with privilege access waiting for registration');
elseif ($approval->is_approved)
       $subject = $this->l('New customer has registered');
else
       $subject = $this->l('New customer waiting for registration');



+ un petit passage par les traduction

Je n'ai pas testé.
En cas de problème, contactez-moi en PM

Link to comment
Share on other sites

Pour le contenu du mail, ca n'est pas la même chose : le contenu du mail est dans le template qui se trouve dans le répertoire mail.

Donc 2 options :

Avec le module d'origine
-- passer par les traductions pour modifier le sujet du mail
-- changer le contenu du mail dans le répertoire mail

En modifiant le module
-- modif du post précédent pour le sujet
-- ajout de nouveaux template mail dans le répertoire mail
-- dans sendMail(), faire un test sur $approval->is_approval pour choisir le template (ligne $template =....)

Tester le 'is_approval' permet de passer facilement du mode bloqué au mode notification administration, si pas de besoin de basculer, autant changer le contenu du template mail

Link to comment
Share on other sites

Pour ma part, pour l'instant je n'utilise pas la validation par admin, donc le compte est validé de suite. Et je n'utilise pas non plus la fonction d'apartenir à un groupe.

J'ai pas trop suivie ton explication et j'ai beau chercher, je n'ai pas trouver le texte "son inscription est en attente de validation".

Pour le moment ca me gène pas mais si j'utilise le module pour une autre personne, ca ne le fais pas. Donc en attente de ton explication un peu plus compréhensible je laisse tel quel.

Link to comment
Share on other sites

Pour modifier le contenu même du mail, il faut modifier le contenu des fichiers
pending_registration.txt et pending_registration.html dans le répertoire mails/fr.

Ou sinon :
-- les copier pour créer les fichiers customer_has_register.txt et customer_has_register.html
-- modifier leur contenu pour mettre le texte voulu
-- dans le fichier customerregistration.php, function sendMail(), remplacer $template='pending_registration' par $template='customer_has_register'

:)

Link to comment
Share on other sites

En effet, cette solution remplace le pending_registration par customer_has_register. Mais n'est-il pas possible de RAJOUTER cette option plutôt que de la remplacer ?

Je veux dire par là, est-ce que toutes les options sont envisageable ou bien si je met l'enregistrement par admin je ne vais pas rencontrer des bugs dans ce cas là ?

Link to comment
Share on other sites

Si c'est possible, sans risque de bug :
-- dans le répertoire mail, laisser le pending et créer le has_register (txt et html)
-- dans la fonction sendMail(), faire un test
if ($approval->is_approved)
$template = 'customer_has_register';
else
$template = 'pending_registration';

Link to comment
Share on other sites

J'ai fais la modif avec ceci :

if ($approval->is_approved)
$template = ‘customer_has_register’;
else
$template = ‘pending_registration’;

Au moment où le nouveau client clique sur "S'enregistrer", j'ai eu droit à un "Erreur de configuration mail". J'ai donc modifier comme ceci :

elseif ($approval->is_approved)
$subject = $this->l('customer_has_register');
else
$subject = $this->l('pending_registration');

Ca remarche mais j'ai toujours dans le contenu de mon mail le texte "en attente de validation".

J'ai aussi créé le "customer_has_register" en .php et .html mais j'ai l'impression que cela n'a rien apporté. Il dois juste y avoir un bug lors du choix de l'envoi du mail lorsqu'un client est enregistré automatiquement.

Link to comment
Share on other sites

Dans le répertoire mails/fr, il doit y avoir 4 fichiers :
pending_registration.txt et pending_registration.html
customer_has_registrer.txt et customer_has_registrer.html
Chacun avec le texte adéquate.

Ensuite, dans la fonction sendMail(), au lieu d'avoir $template='pending_registration', il faut avoir
if ($approval->is_approved)
$template='customer_has_register'
else
$template='pending_registration'

Link to comment
Share on other sites

Bon, visiblement il y avais des petites erreurs d'écriture mais maintenant ca marche............mais.........j'ai voulut essayé bien sûr que toutes les fonctions marchent.

J'ai donc activé la fonction enregistrement par mail. Le client s'enregistre sur le site, il reçois un mail de confirmation que son compte est ACTIVE :gulp: . De mon coté, je reçois bien un mail me disant qu'une personne s'est inscrit sur le site.

Je vais sur mon site admin et j'active le compte du client, il reçois un mail lui disant que son compte est activé et qu'il peux passer commande. Par contre, il lui es rappelé son adresse email mais le mot de passe il dis : "Déjà envoyé".

Donc voici la pertie du code qui permet toute cette gestion. Où est l'erreur ?

    public function sendMail ($mailName, $params)
   {
       require_once (dirname(__FILE__).'/ApprovedCustomer.php');

       switch ($mailName) {
           case 'customer_registration_ok':
               $id_customer = intval($params['id_customer']);
               if ($id_customer <> 0) {
                   $user = new Customer ($id_customer);
                   Mail::Send(intval(Configuration::get('PS_LANG_DEFAULT')),
                       'customer_registration_ok', 
                       $this->l('Your account is activated'), 
                       array('{firstname}' => $user->firstname, '{lastname}' => $user->lastname, '{email}' => $user->email, '{passwd}' => $this->l('Already sent')), 
                       $user->email, NULL, strval(Configuration::get('PS_SHOP_EMAIL')), 
                       strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');    
               }
           break;

           case 'pending_registration':
               $customer = $params['customer'];
               $approval = $params['approval'];
               $template = 'pending_registration';
               if ($approval->privilege_request)
                   $subject = $this->l('New customer with privilege access waiting for registration');
/*elseif ($approval->is_approved)
      $subject = $this->l('New customer has registered');
               else
                   $subject = $this->l('New customer waiting for registration');*/
if ($approval->is_approved)
$template = 'customer_has_register';
else
$template = 'pending_registration';
               $templateVars = array(
                   '{firstname}' => $customer->firstname,
                   '{lastname}' => $customer->lastname,
                   '{email}' => $customer->email,
                   '{privilege_request}' => (($approval->privilege_request) ?$this->l('YES') :$this->l('NO') )
                   );
               $dest = split(self::__MAIL_DELIMITOR__, $this->_mails);
               if (!Mail::Send(intval(Configuration::get('PS_LANG_DEFAULT')), $template, $subject, $templateVars,
                            $dest, 
                            NULL, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], NULL, NULL, dirname(__FILE__).'/mails/') ) {
                   //die('Send Mail Failed');
               }
           break;

           case 'customer_privilege_ok':
               $id_customer = intval($params['id_customer']);
               if ($id_customer <> 0) {
                   $user = new Customer ($id_customer);
                   Mail::Send(intval(Configuration::get('PS_LANG_DEFAULT')),
                       'customer_privilege_ok', 
                       $this->l('Privilege access granted'), 
                       array('{firstname}' => $user->firstname, '{lastname}' => $user->lastname, '{email}' => $user->email, '{passwd}' => $this->l('Already sent')), 
                       $user->email, NULL, strval(Configuration::get('PS_SHOP_EMAIL')), 
                       strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, dirname(__FILE__).'/mails/');

Link to comment
Share on other sites

Je ne comprends pas ce qui ne te convient pas:

Lors de son inscription, qu'il soit bloqué ou non par mon module, le client reçoit le mail standard de Presta lui donnant les infos de son compte, en particulier son mot de passe.
Donc lorsque côté admin le module le débloque, pas la peine de renvoyer le mot de passe (c'est d'ailleurs pas possible puisqu'on ne peut pas le décripter)

Link to comment
Share on other sites

  • 2 years later...

je relance ce post très interessant, j'ai installé lemodule customer registration, et j'aimerais le modifier un peu. je souhaiterais n'être prévenue par mail que lorsqu'un client s'inscrit comme pro.

et aussi je souhaiterais remplacer le champ privilège par un numéro de siret. ca impliquerai de faire la demande non pas à partir d'un code mais à partir du fait que le champ soit rempli ou non.

Link to comment
Share on other sites

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...