Jump to content

Problème de re inscription client


Recommended Posts

Bonjour,

 

nouveau sur la prise en main de prestashop, je cherche à comprendre pourquoi lorsqu'un client est supprimé via l'administration, il ne peut se ré-inscrire avec la même adresse mail.

 

Après recherche, j'ai remarqué que même si un client est supprimé via l'admin, il reste tjrs une entré dans la table ps_customer pour ce client mais avec un champ delete à 1.

 

Je n'aurais aucun problème avec cela, si ça n'empêchait pas la ré-inscription avec cette adresse mail. J'ai donc voulu modifier dans la classe Customer la fonction :

 

static public function customerExists($email, $return_id = false)
{
  if (!Validate::isEmail($email))
die (Tools::displayError());
 $result = Db::getInstance()->getRow('
 SELECT `id_customer`
 FROM `'._DB_PREFIX_.'customer`
 WHERE `email` = \''.pSQL($email).'\'');

 if ($return_id)
  return intval($result['id_customer']);
 else
  return isset($result['id_customer']);
}

 

en rajoutant simplement la close : AND deleted = 0

 

static public function customerExists($email, $return_id = false)
{
  if (!Validate::isEmail($email))
die (Tools::displayError());
 $result = Db::getInstance()->getRow('
 SELECT `id_customer`
 FROM `'._DB_PREFIX_.'customer`
 WHERE `email` = \''.pSQL($email).'\'
 AND `deleted` = 0');

 if ($return_id)
  return intval($result['id_customer']);
 else
  return isset($result['id_customer']);
}

 

Mais à ce moment, la création de compte m'affiche une erreur :

Erreur lors de la création du compte.

 

Je dois sûrement mal m'y prendre donc est-ce que l'un de vous pourrait m'aiguiller sur la marche à suivre pour arriver à mes fins?

 

Par avance merci.

Link to comment
Share on other sites

Salut.

 

D'après le code d'origine, ce n'est pas cette fonction qui t'empêche d'enregistrer l'utilisateur. La requête, de base, dit :

 

"Prendre l'"id_customer" dans la table "customer" avec comme champ "email" égale à X"

 

La modification que tu as faite, fait en gros le contraire de ce que tu veux :

 

"Prendre l'"id_customer" dans la table "customer" avec comme champ "email" égale à X et champ "deleted" à 0"

 

J'ai regardé un peu, et il met des conditions un peu partout. À la limite, je te propose plus de chercher du côté de la suppression plutôt que du côté de la création...

Link to comment
Share on other sites

Pourtant il me semble que justement mon intérêt est que cette fonction retourne false pour une adresse existante mais supprimée, donc je test l'adresse passé en paramètre si elle est dans la base de données et que le champ deleted = 0.

 

J'avais commencé à regarder mais je me suis que s'il gardait malgré la suppression une entré dans ps_customer c'était sûrement pour ne pas faire planter la liste des commandes qui y sont attachées.

 

Merci pour ta réponse en tout cas ;)

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