Estecado Posted October 21, 2011 Share Posted October 21, 2011 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 More sharing options...
Sbizz Posted October 21, 2011 Share Posted October 21, 2011 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 More sharing options...
Estecado Posted October 21, 2011 Author Share Posted October 21, 2011 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 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