Jump to content

[RESOLU]Recevoir Email Quand Commentaire Produit


Recommended Posts

j'utilise ce module http://www.mygeeksgi..._product=18&p=5

sur ma version 1.2.5 et ce qui est bien c'est qu'il m'envoi un mail de notification quand un commentaire produit est poste.

 

je constate qu'a priori ce n'est pas le cas sur le module de base fourni avec prestashop et notamment sur celui de la v1.4.

je me demande donc si il serait possible de coder pour recevoir un mail à chaque fois qu'un commentaire produit est posté.

j'ai pas mal cherché sur le web mais j'ai rien trouvé à ce propos.

 

ou sinon je voudrais au moins savoir comment vous faites, allez vous régulièrement sur la page de validation des commentaires??

 

merci de vos réponses.

Link to comment
Share on other sites

hello,

 

rien de plus simple, dans le controller, repère où est la partie qui inscrit le commentaire dans la base (où si c'est bien fait, appelle une fonction d'un model pour le faire et sous cette partie, il ne te reste plus qu'à coller un petit envoi de mail à la mimine qui t'envoie soit un mail te disant simplement qu'un nouveau commentaire a été posté soit carrément le contenu du commentaire par mail

 

d'où l'intérêt de notre petit die dans l'autre thread, tu ne recevras pas un mail à chaque fois qu'un robot a tenté de poster un truc indésirable :)

 

have swing

Link to comment
Share on other sites

merci, mais je comprends rien :D

 

en fait j'ai voulu utiliser un bout de code du module indiqué plus haut et qui est:

$notify = Configuration::get('PRODUCT_COMMENTS_NOTIFY');
							    if(intval($moderate)==1 && intval($notify)==1) {
								    $shopEmail = Configuration::get('PS_SHOP_EMAIL');
								    $shopName = Configuration::get('PS_SHOP_NAME');
								    $notifyEmail = Configuration::get('PRODUCT_COMMENTS_NOTIFY_EMAIL');
								    $id_lang = (!isset($cookie) OR !is_object($cookie)) ? intval(Configuration::get('PS_LANG_DEFAULT')) : intval($cookie->id_lang);
								    $object = $this->l('A new product comment has been posted and need your moderation.');
								    $message = $object;
								    $template='comment_need_validation';
								    $iso = Language::getIsoById(intval($id_lang));
								    if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html'))
									    Mail::Send($id_lang, $template, $object, array('{shop_name}' => $shopName, '{message}' => stripslashes($message)), $shopEmail, "", $notifyEmail, NULL, NULL, NULL, dirname(__FILE__).'/mails/');

 

sauf que je ne sais pas trop ou le mettre dans le fichier php et quand j'ai essayé plusieurs trucs ca m'a mis le site en carafe.

comme je n'y connais pas grand chose, j'y vais pas mal à tatons en utilisant ma logique , mais je n'ai pas de connaissance en programmations donc c'est pour ca que ce que tu me dis c'est un peu compliqué, il me faut une traduction.

:)

mais merci de t'intérésser à cela, d'autant que je suis sur que ca interessera beaucoup de monde,on pourrait peut etre essayer de faire un genre de tuto.

Link to comment
Share on other sites

hello,

 

sorry, pas beaucoup là aujourd'hui... alors, je ne suis pas sûr que tu aies besoin de tout le code que tu as récupéré mais une partie peut être utile, en revanche pour essayer de me faire un idée sur où le mettre, il faudrait que je vois le code du controller de ton module, à l'aveugle, je risque de te faire faire des bétises... :)

 

have swing

Link to comment
Share on other sites

hello,

 

back on earth :)

alors, pour utiliser la portion de code prestashop que tu as trouvée (pas tout, on ne va pas conditionner le fait d'envoyer un mail ou pas à la config puisque tu veux en recevoir :)), ligne 552 dans ton fichier, je tenterais volontiers de remplacer

				   	 else
						$smarty->assign('confirmation', $this->l('Comment posted.').((int)(Configuration::get('PRODUCT_COMMENTS_MODERATE')) ? ' '.$this->l('Awaiting moderator validation.') : ''));

par

				   	 else
					{
						//le traitement de base
						$smarty->assign('confirmation', $this->l('Comment posted.').((int)(Configuration::get('PRODUCT_COMMENTS_MODERATE')) ? ' '.$this->l('Awaiting moderator validation.') : ''));
						//l'envoi de mail
						$shopEmail = Configuration::get('PS_SHOP_EMAIL');
						$shopName = Configuration::get('PS_SHOP_NAME');
						$notifyEmail = Configuration::get('PRODUCT_COMMENTS_NOTIFY_EMAIL');
						$id_lang = (!isset($cookie) OR !is_object($cookie)) ? intval(Configuration::get('PS_LANG_DEFAULT')) : intval($cookie->id_lang);
						$object = $this->l('A new product comment has been posted and need your moderation.');
						$message = $object;
						$template='comment_need_validation';
						$iso = Language::getIsoById(intval($id_lang));
						if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html'))
						Mail::Send($id_lang, $template, $object, array('{shop_name}' => $shopName, '{message}' => stripslashes($message)), $shopEmail, "", $notifyEmail, NULL, NULL, NULL, dirname(__FILE__).'/mails/');
					}

si tout se passe bien, cross your fingers :) ça ne devrait pas mettre la bête en vrac et faire partir un mail utilisant les templates de mail prestahop

 

raconte-moi le résultat

 

have swing

Link to comment
Share on other sites

Hello,

 

sorry, un peu dans tous les sens en ce moment, pas beaucoup là pour venir jouer sur le forum...

 

ah ben en fait le fichier que tu me renvoies là n'est pas du tout le même que le premier :)

deux choses

- en fait, là où tu as ajouté le bout de code, tu l'as conditionné comme si tu utilisais les commentaires prestashop avec (ligne 896)

if(intval($moderate)==1 && intval($notify)==1) {
$shopEmail = Configuration::get('PS_SHOP_EMAIL');
$shopName = Configuration::get('PS_SHOP_NAME');
$notifyEmail = Configuration::get('PRODUCT_COMMENTS_NOTIFY_EMAIL');

$id_lang = (!isset($cookie) OR !is_object($cookie)) ? intval(Configuration::get('PS_LANG_DEFAULT')) : intval($cookie->id_lang);

$object = $this->l('A new product comment has been posted and need your moderation.');
$message = $object;
$template='comment_need_validation';
$iso = Language::getIsoById(intval($id_lang));
if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') AND file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html'))
Mail::Send($id_lang, $template, $object, array('{shop_name}' => $shopName, '{message}' => stripslashes($message)), $shopEmail, "", $notifyEmail, NULL, NULL, NULL, dirname(__FILE__).'/mails/');
}

mais tu n'utilises pas les commentaires de prestashop et donc le notify n'est pas sur 1 :)

essaye la même chose sans encadrer dans cette condition, ça fonctionnera peut-être

 

si pas, regarde juste au dessus, tu as un mail qui part vers l'auteur du commentaire ça donne la syntaxe de la faço dont le module fonctionne et, on pourra aussi tester un truc tout bête, le mail codé à la mano froidement, là on est sûr que ça part et, ensuite, on adaptera à la syntaxe prestashop

 

petite édition; je vois que tu as la même chose ligne 1000 dans le fichier (partout où tu l'as mis, fais-le sans condition pour voir)

 

have swing

Link to comment
Share on other sites

merci de ta réponse mais je ne connais pas assez le php pour comprendre tout ce que tu dis.

plus claireemnt il faudrait que je supprime

&& intval($notify)==1)

c'est bien ca?

 

pour la ligne 1000 c'est sur le fichier du module et je ne sais pas du tout ou mettre ca dans fichier presta de base.

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 months 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...