Jump to content

[Résolu] Génération De Nouveau Mot De Passe Client Problème


Recommended Posts

Bonjour,

 

Je rencontre une difficulté avec ma boutique 1.5.4 : lorsqu'un client a oublié son mot de passe et qu'il souhaite donc en générer un nouveau, il reçoit bien le premier email (Confirmation de demande de mot de passe avec le lien à cliquer pour la génération).

 

En cliquant sur ce lien, le client arrive bien sur mon site qui lui indique que le nouveau mot de passe a bien été généré et transmis par email sauf que cet email n'arrive jamais à mon client...

 

Tous les autres emails sont bien envoyés (par exemple, confirmation de commande) mais celui avec le nouveau mot de passe n'arrive jamais...

 

Pourriez-vous m'apporter votre aide svp ?

 

Merci ;-)

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

bonsoir luis

 

vas dans la fiche de ton client change le mots de passe par 123456789 (ou ce que tu veux) et envoies le à ton client, ensuite à lui de mettre le passe qu'il souhaite.

 

je ne pense pas que cela va résoudre ton souci de régénération de mot de passe, mais c'est le plus pour aider ton client rapidement.

 

christophe

  • Like 1
Link to comment
Share on other sites

Bonjour Christophe et merci pour ta réponse !

 

c'est effectivement ce que je fais pour le moment après avoir modifié le lien "mot de passe oublié ?" du formulaire de connexion.

 

Ce dernier renvoie maintenant vers le formulaire de contact et le client doit me réclamer un nouveau mot de passe, mais c'est vraiment pas pratique

Link to comment
Share on other sites

de rien luis

 

n'étant pas un pro du développement php, je ne pourrais pas t'aider dans la modification du code, apparemment ton souci vient après que tu as modifié le lien du formulaire de connexion.

 

ajoute le code que tu as modifié, les développeurs pourront voir l'erreur que tu as fais, par contre donne toutes les informations, la version de prestashop, le thème que tu utilise etc... cela leurs sera très utile ;)

 

christophe

Link to comment
Share on other sites

Merci pour les conseils !

 

Je n'ai modifié aucun code justement ;-)

La seule modification faite (changement du lien "mot de passe oublié ?" vers le formulaire de contact) a été réalisée pour contourner ce problème mais ce n'est pas satisfaisant car je dois assigner les nouveaux mots de passe manuellement :unsure:

 

Le site est donc sur prestashop 1.5.4 avec le theme Leofashion.

Link to comment
Share on other sites

bonjour luis

 

tu devrais poser la question à la personne qui a crée le thème, lui pourra te répondre.

 

christophe

C'est la première chose que j'aurais dû faire... merci ;-)

Je reviendrai poster la solution ici !

Link to comment
Share on other sites

  • 2 weeks later...

Le développeur m'ayant indiqué que cela ne venait pas de son thème (car l'erreur était identique avec le thème par défaut), j'ai dû me replonger seul dans le problème...

En fouillant dans la base de données, je me suis rendu compte que les nouveaux mots de passe étaient bien générés, même pour les clients qui ne recevaient pas l'email avec le nouveau mot de passe (oui, oui, certains clients recevaient l'email, d'autres non...).

 

Du coup, j'ai modifié controllers/front/PasswordController.php pour faire afficher le nouveau mot de passe directement sur la page de confirmation d'envoi d'email.

 

Juste après :

if (Mail::Send($this->context->language->id, 'password', Mail::l('Your new password'), $mail_params, $customer->email, $customer->firstname.' '.$customer->lastname))

J'ai donc ajouté ceci :

$this->context->smarty->assign(array('confirmation' => 3, 'passwordnouveau' => $password));

Et dans le fichier password.tpl du theme, j'ai ajouté ceci au début :

{if isset($confirmation) && $confirmation == 3}
<p class="success">{l s='Voici votre nouveau mot de passe : '} {if isset($passwordnouveau)}{$passwordnouveau}{/if}</p>
{/if}

Du coup, tous les clients verront leur nouveau mot de passe affiché sur le site juste après avoir cliqué sur le lien envoyé dans le premier email et certains recevront ce nouveau mot de passe par email (en plus).

 

Par contre, je ne sais toujours pas pourquoi certains clients ne reçoivent pas l'email avec le nouveau mot de passe, mais bon, on va dire que le problème est résolu ;-)

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

Bonjour :-)

 

Merci beaucoup pour cette modif qui me sera très utile! cependant j'ai un souci je tombe sur une page d'erreur quand je fais les modifs dans les deux fichiers, je ne sais pas ou je me suis trompée :-(

 

voici les modifs que j'ai effectuées dans le passwordcontroller.php

 

if (Mail::Send($this->context->language->id, 'password', Mail::l('Your new password'), $mail_params, $customer->email, $customer->firstname.' '.$customer->lastname));
$this->context->smarty->assign(array('confirmation' => 3, 'passwordnouveau' => $password));
else
$this->context->smarty->assign(array('confirmation' => 1, 'customer_email' => $customer->email));
else
$this->errors[] = Tools::displayError('An error occurred while sending the email.');
}
else
$this->errors[] = Tools::displayError('An error occurred with your account, which prevents us from sending you a new password. Please report this issue using the contact form.');
}
}
else
$this->errors[] = Tools::displayError('We cannot regenerate your password with the data you\'ve submitted.');
}
elseif (Tools::getValue('token') || Tools::getValue('id_customer'))
$this->errors[] = Tools::displayError('We cannot regenerate your password with the data you\'ve submitted.');
}
 
 
et voici les modifs que j'ai fais dans password.tpl
 
  @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
*}
 
{capture name=path}<a href="{$link->getPageLink('authentication', true)|escape:'html':'UTF-8'}" title="{l s='Authentication'}" rel="nofollow">{l s='Authentication'}</a><span class="navigation-pipe">{$navigationPipe}</span>{l s='Forgot your password'}{/capture}
<div class="box">
<h1 class="page-subheading">{l s='Forgot your password?'}</h1>
 
{include file="$tpl_dir./errors.tpl"}
{if isset($confirmation) && $confirmation == 3}
<p class="success">{l s='Voici votre nouveau mot de passe : '} {if 
isset($passwordnouveau)}{$passwordnouveau|escape:'html':'UTF-8'|stripslashes}{/if}</p>
{if isset($confirmation) && $confirmation == 1}
<p class="alert alert-success">{l s='Your password has been successfully reset and a confirmation has been sent to your email address:'} {if isset($customer_email)}{$customer_email|escape:'html':'UTF-8'|stripslashes}{/if}</p>
{elseif isset($confirmation) && $confirmation == 2}
<p class="alert alert-success">{l s='A confirmation email has been sent to your address:'} {if isset($customer_email)}{$customer_email|escape:'html':'UTF-8'|stripslashes}{/if}</p>
{else}
<p>{l s='Please enter the email address you used to register. We will then send you a new password. '}</p>
<form action="{$request_uri|escape:'html':'UTF-8'}" method="post" class="std" id="form_forgotpassword">
 
 
Merci beaucoup pour votre aide :-)))
bonne journée!!
Link to comment
Share on other sites

  • 2 years 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...