Jump to content

Divers beug avec le module mailalerts


Recommended Posts

Bonjour à tous,

J'utilise la version 1.2.1.0 de Prestashop et j'ai repéré 2 beug avec le module mailalerts (dont 1 que j'ai corrigé).

Le 1er (corrigé) :
dans le fichier myalerts.php, en bas de page dans la fonction DELETEALERT, remplacer
AND `customer_email` = '.strval($customer_email).'
par :
AND `customer_email` = \''.strval($customer_email).'\'
sinon votre base de données ne sera pas mise à jour à chaque envoi d'alerte, seul 1 email sera envoyé (alors qu'il aurait dû y en avoir plusieurs pour un même produit s'il y a plusieurs inscriptions), et lors de la mise à jour de votre stock dans votre fiche produit vous aurez un message d'erreur de syntaxe.

Le 2ème beug (j'arrive pas à le corriger) :
Si un client va dans son compte et décide de supprimer des alertes (rubrique Mes alertes), il doit cliquer sur la croix rouge mais là rien ne se passe. Aucune mise à jour de la base de données, aucune alerte de supprimer. Si quelqu'un trouve la solution pour régler ce problème ça aidera beaucoup de monde...

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

Si exactement le même problème... impossible de supprimer une alerte dans la liste...
Je ne reçois pas non plus de mail quand le stock est rétabli côté client... Bizarre ce module ne m'a pas l'air super stable....
Tu as trouvé une solution ??
Merci de ta réponse.

Link to comment
Share on other sites

Alors petite solution que j'ai trouvé pour supprimer les alertes dans la liste avec la croix rouge....
Il y a une erreur dans la fonction :
Dans le fichier /modules/mailalerts/mailalerts.php

static public function deleteAlert($id_customer, $customer_email, $id_product, $id_product_attribute)
   {
       $query = 'DELETE FROM `'._DB_PREFIX_.'mailalert_customer_oos` 
       WHERE `id_customer` = '.intval($id_customer).'
       AND `customer_email` = '.strval($customer_email).'
       AND `id_product` = '.intval($id_product).'
       AND `id_product_attribute` = '.intval($id_product_attribute).';';
       return Db::getInstance()->Execute($query);
   }


j'ai fait un echo de cette requète et je me suis rendue compte que id_product = 0 il y avait donc une inversion dans les paramètres d'entrée de la fonction...
J'ai donc remplacé par :

static public function deleteAlert($id_customer, $id_product, $customer_email, $id_product_attribute)
   {
       $query = 'DELETE FROM `'._DB_PREFIX_.'mailalert_customer_oos` 
       WHERE `id_customer` = '.intval($id_customer).'
       AND `customer_email` = '.strval($customer_email).'
       AND `id_product` = '.intval($id_product).'
       AND `id_product_attribute` = '.intval($id_product_attribute).';';
       return Db::getInstance()->Execute($query);
   }


Et là ça marche bien :)
J'espère avoir pu aidé... et faire avancer l'instabilité de ce module...

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