Jump to content

Petite astuce pour recevoir un email lorsqu'un commentaire est déposé


Recommended Posts

Je vous met ci-dessous le lien vers l'article de mon blog où j'explique comment faire pour modifier le module de base "productComment" afin qu'il vous envoi automatiquement un email lorsqu'un commentaire est déposé!

 

http://blog.manit4c.com/2013/06/04/recevoir-un-email-lorsquun-commentaire-est-depose-sur-la-boutique/

 

C'est bien plus pratique de recevoir un email que d'aller voir tous le temps dans le module si un nouveau commentaire est arrivé !

 

bonne lecture !

 

Ps: n'hésitez pas à utiliser les commentaire ou à répondre à ce post si vous avez des questions

  • Like 2
Link to comment
Share on other sites

Merci pour l'astuce.

 

Elle pourrait aussi s'améliorer, puisque les données saisies dans le commentaire y sont disponibles, autant les joindres en contenu dans le mail.

 

Je changerai donc votre bout de code :

 

$donnees = array('{texte}' => "nouveau commentaire sur la boutique");

 

par :

$donnees = array(
   '{texte}' => $module_instance->l('New comment available'),
   '{content}' => $comment->content,
   '{id_product}' => $comment->id_product,
   '{id_customer}' => $comment->id_customer,
   '{customer_name}' => $comment->customer_name,
   '{title}' => $comment->title,
   '{grade}' => $comment->grade
  );

 

Et de la même manière, ces données sont utilisables dans vos fichiers :

« modules/productcomments/mails/newcomment.html » et

« modules/productcomments/mails/newcomment.txt »,

 

avec :

 

{texte}
{content}
{id_product}
{id_customer}
{customer_name}
{title}
{grade}

 

Utilisez aussi comme dans mon exemple, l'instance exploitable pour gérer les traductions afin de garder le module international :

 

$module_instance->l('My content')

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

Merci Devnet pour l'amélioration.

J'ai développé ça rapidement histoire d'avoir une petite alerte et ne pas laisser trainer des commentaires inutilement mais ta proposition est très bonne.

 

Ps: désolé pour la réponse tardive mais kle forum Prestashop ne m'envoi plus les mails alors que j'ai bien cliqué sur "follow".. galère :(

Link to comment
Share on other sites

Je me suis permis de mettre à jour mon article avec ton code en citant ma source bien sûr:

http://blog.manit4c....ur-la-boutique/

 

Tu as aussi un tuto que j'avais lancé y'a déjà plus d'un an sur une question équivalent des envois de mails depuis les modules prestashop.

 

http://blog.dev-net.fr/2011/12/envoyer-de-mails-avec-la-gestion-des-langues-depuis-un-module-prestashop/

 

A+

Link to comment
Share on other sites

  • 4 weeks later...

Bonsoir

J ai beau essayer je ne reçois pas de mail voilà mon code je pense pas que je me suis trompé :

   if (count(Tools::getValue('criterion')) >= 1)
   {
 $comment->grade = $grade_sum / count(Tools::getValue('criterion'));
 // Update Grade average of comment
 $comment->save();
   }

//send mail
$donnees = array('{texte}' => "nouveau commentaire sur la boutique");
Mail::Send(1,
'newcomment',
'nouveau commentaire',
$donnees,
Configuration::get('PS_SHOP_EMAIL'),
null,
null,
null,
null,
null,
dirname(__FILE__).'/../../mails/');

   $result = true;
  }

 

Dans le fichier " modules/productcomments/controllers/front/defaut.php "

 

J ai aussi créer le dossier mails et ces deux fichier

 

Une petite aide serait la bienvenue

Merci

Link to comment
Share on other sites

Bonsoir Marc,

 

As-tu suivi la procédure complète ? :) le sous-dossier en ?

 

Créez ensuite un dossier « modules/productcomments/mails/ » et ajoutez y un sous dossier « en ».

Créez ensuite les fichiers « newcomment.html » et « newcomment.txt », placez-les dans le dossier « en » que vous venez de créer et ajoutez y le code suivant (dans les deux fichiers html et txt):

1 {texte}

 

au niveau du code tout semble OK

 

Je post celui de DevNet

 

		   	 if (count(Tools::getValue('criterion')) >= 1)
			{
				$comment->grade = $grade_sum / count(Tools::getValue('criterion'));
				// Update Grade average of comment
				$comment->save();
			}
//send mail
$donnees = array(
'{texte}' => $module_instance->l('New comment available'),
'{content}' => $comment->content,
'{id_product}' => $comment->id_product,
'{id_customer}' => $comment->id_customer,
'{customer_name}' => $comment->customer_name,
'{title}' => $comment->title,
'{grade}' => $comment->grade
  );
Mail::Send(1,
'newcomment',
'nouveau commentaire',
$donnees,
Configuration::get('PS_SHOP_EMAIL'),
null,
null,
null,
null,
null,
dirname(__FILE__).'/../../mails/');

			$result = true;
		}

Link to comment
Share on other sites

Hi

maniT4c

 

 

 

the code:

 

<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2013 PrestaShop SA
*  @license	http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
// Include Module
include_once(dirname(__FILE__).'/../../productcomments.php');
// Include Models
include_once(dirname(__FILE__).'/../../ProductComment.php');
include_once(dirname(__FILE__).'/../../ProductCommentCriterion.php');
class ProductCommentsDefaultModuleFrontController extends ModuleFrontController
{
public function __construct()
{
 parent::__construct();
 $this->context = Context::getContext();
}
public function initContent()
{
 parent::initContent();
 if (Tools::isSubmit('action'))
 {
  switch(Tools::getValue('action'))
  {
case 'add_comment':
 $this->ajaxProcessAddComment();
 break;
case 'report_abuse':
 $this->ajaxProcessReportAbuse();
 break;
case 'comment_is_usefull':
 $this->ajaxProcessCommentIsUsefull();
 break;
  }
 }
}
protected function ajaxProcessAddComment()
{
 $module_instance = new ProductComments();
 $result = true;
 $id_guest = 0;
 $id_customer = $this->context->customer->id;
 if (!$id_customer)
  $id_guest = $this->context->cookie->id_guest;
 $errors = array();
 // Validation
 if (!Validate::isInt(Tools::getValue('id_product')))
  $errors[] = $module_instance->l('ID product is incorrect');
 if (!Tools::getValue('title') || !Validate::isGenericName(Tools::getValue('title')))
  $errors[] = $module_instance->l('Title is incorrect');
 if (!Tools::getValue('content') || !Validate::isMessage(Tools::getValue('content')))
  $errors[] = $module_instance->l('Comment is incorrect');
 if (!$id_customer && (!Tools::isSubmit('customer_name') || !Tools::getValue('customer_name') || !Validate::isGenericName(Tools::getValue('customer_name'))))
  $errors[] = $module_instance->l('Customer name is incorrect');
 if (!$this->context->customer->id && !Configuration::get('PRODUCT_COMMENTS_ALLOW_GUESTS'))
  $errors[] = $module_instance->l('You must be logged in order to send a comment');
 if (!count(Tools::getValue('criterion')))
  $errors[] = $module_instance->l('You must give a rating');
 $product = new Product(Tools::getValue('id_product'));
 if (!$product->id)
  $errors[] = $module_instance->l('Product not found');
 if (!count($errors))
 {
  $customer_comment = ProductComment::getByCustomer(Tools::getValue('id_product'), $id_customer, true, $id_guest);
  if (!$customer_comment || ($customer_comment && (strtotime($customer_comment['date_add']) + Configuration::get('PRODUCT_COMMENTS_MINIMAL_TIME')) < time()))
  {
$comment = new ProductComment();
$comment->content = strip_tags(Tools::getValue('content'));
$comment->id_product = (int)Tools::getValue('id_product');
$comment->id_customer = (int)$id_customer;
$comment->id_guest = $id_guest;
$comment->customer_name = Tools::getValue('customer_name');
if (!$comment->customer_name)
 $comment->customer_name = pSQL($this->context->customer->firstname.' '.$this->context->customer->lastname);
$comment->title = Tools::getValue('title');
$comment->grade = 0;
$comment->validate = 0;
$comment->save();
$grade_sum = 0;
foreach(Tools::getValue('criterion') as $id_product_comment_criterion => $grade)
{
 $grade_sum += $grade;
 $product_comment_criterion = new ProductCommentCriterion($id_product_comment_criterion);
 if ($product_comment_criterion->id)
  $product_comment_criterion->addGrade($comment->id, $grade);
}
if (count(Tools::getValue('criterion')) >= 1)
{
 $comment->grade = $grade_sum / count(Tools::getValue('criterion'));
 // Update Grade average of comment
 $comment->save();



  //send mail
$donnees = array(
'{texte}' => $module_instance->l('New comment'),
'{content}' => $comment->content,
'{id_product}' => $comment->id_product,
'{id_customer}' => $comment->id_customer,
'{customer_name}' => $comment->customer_name,
'{title}' => $comment->title,
'{grade}' => $comment->grade
  );
Mail::Send(1,
'newcomment',
'new comment',
$donnees,
Configuration::get('PS_SHOP_EMAIL'),
null,
null,
null,
null,
null,
dirname(__FILE__).'/../../mails/');


}
$result = true;
  }
  else
  {
$result = false;
$errors[] = $module_instance->l('You should wait').' '.Configuration::get('PRODUCT_COMMENTS_MINIMAL_TIME').' '.$module_instance->l('seconds before posting a new comment');
  }
 }
 else
  $result = false;
 die(Tools::jsonEncode(array(
  'result' => $result,
  'errors' => $errors
 )));
}
protected function ajaxProcessReportAbuse()
{
 if (!Tools::isSubmit('id_product_comment'))
  die('0');
 if (ProductComment::isAlreadyReport(Tools::getValue('id_product_comment'), $this->context->cookie->id_customer))
  die('0');
 if (ProductComment::reportComment((int)Tools::getValue('id_product_comment'), $this->context->cookie->id_customer))
  die('1');
 die('0');
}
protected function ajaxProcessCommentIsUsefull()
{
 if (!Tools::isSubmit('id_product_comment') || !Tools::isSubmit('value'))
  die('0');
 if (ProductComment::isAlreadyUsefulness(Tools::getValue('id_product_comment'), $this->context->cookie->id_customer))
  die('0');
 if (ProductComment::setCommentUsefulness((int)Tools::getValue('id_product_comment'), (bool)Tools::getValue('value'), $this->context->cookie->id_customer))
  die('1');
 die('0');
}
}

Link to comment
Share on other sites

Bonjour, je suis dans le même cas ! prestashop 1.5.3.1

les commentaires sont bien pris en compte mais je ne reçoit pas de mail ! j'ai regarder dans les SPAM et autres mais je ne recoit pas.

J'ai meme d'upliqué le dossier "en" et je l'ai appelé "fr" mais rien ne change.

Avez vous une solution ?

Link to comment
Share on other sites

Hi ba609

Your code is wrong:

if (count(Tools::getValue('criterion')) >= 1)
    {
	 $comment->grade = $grade_sum / count(Tools::getValue('criterion'));
	 // Update Grade average of comment
	 $comment->save();



  //send mail
$donnees = array(
    '{texte}' => $module_instance->l('New comment'),
    '{content}' => $comment->content,
    '{id_product}' => $comment->id_product,
    '{id_customer}' => $comment->id_customer,
    '{customer_name}' => $comment->customer_name,
    '{title}' => $comment->title,
    '{grade}' => $comment->grade
  );
Mail::Send(1,
'newcomment',
'new comment',
$donnees,
Configuration::get('PS_SHOP_EMAIL'),
null,
null,
null,
null,
null,
dirname(__FILE__).'/../../mails/');


    }
    $result = true;

 

Use this one:

if (count(Tools::getValue('criterion')) >= 1)
   {
 $comment->grade = $grade_sum / count(Tools::getValue('criterion'));
 // Update Grade average of comment
 $comment->save();
   }
   //send mail
   $donnees = array(
 '{texte}' => $module_instance->l('New comment available'),
 '{content}' => $comment->content,
 '{id_product}' => $comment->id_product,
 '{id_customer}' => $comment->id_customer,
 '{customer_name}' => $comment->customer_name,
 '{title}' => $comment->title,
 '{grade}' => $comment->grade
   );   
   Mail::Send(1,
  'newcomment',
  'nouveau commentaire',
  $donnees,
  Configuration::get('PS_SHOP_EMAIL'),
  null,
  null,
  null,
  null,
  null,
  dirname(__FILE__).'/../../mails/');

   $result = true;

Look the }

Link to comment
Share on other sites

Ok, paste the entire "modules/productcomments/controllers/front/defaut.php" code, i will check it again.

 

Do you have created the "modules/productcomments/mails/en" directory ? check your arborescence again.

 

You can also test with my first code

$donnees = array('{texte}' => "nouveau commentaire sur la boutique");

Perhaps somme data are missing.

 

It's not easy to fix your issue because, product comment use ajax and we can not see error message.

Link to comment
Share on other sites

Je viens de retester chez moi et ça marche sans soucis :'(

 

Je ne vois pas d'où viens le soucis mais vous n'êtes pas les seuls à rencontrer des problèmes donc il y a quelque chose de différents mais je ne vois pas où.

Essayez peut être de faire ça:

Mail::Send((int)Context::getContext()->language->id,
  'newcomment',
  'nouveau commentaire',
  $donnees,
  Configuration::get('PS_SHOP_EMAIL'),
  null,
  null,
  null,
  null,
  null,
  dirname(__FILE__).'/../../mails/');

 

Et dans le dossier mail il faut créer le sous dossier correspondant à votre langue donc "fr" si votre site est en français et y ajouter les deux fichier newcomment.tpl et newcomment.txt

 

Je vous conseille de regarder le module "mailalerts" qui utilise la fonction mail pour envoyer les alertes vous y trouverez peut être une différence.

Je suis en congé à partir de cet après-midi donc je ne pourrai plus intervenir mais n'hésitez pas à continuer la conversation ici il y a surement d'autres développeur qui viendront participer.

Link to comment
Share on other sites

OUI un grand merci a toi !! je vai essayer de paufiner un peut ce petit module et essayer d'integré un lien directement sur la fiche produit ! car il est pas facile de rechercher ou a été mit le commentaire... Mais felicitation !!

Link to comment
Share on other sites

ok ca signifie que c'est l'id de la langue anglaise qui ne correspond pas à 1 (normalement c'est l'id d'origine je crois).

 

L'un de vous peut me copier le code de son front/defaut.php que je puisse vérifier et mettre à jour l'article de mon blog ?

 

For ba609, please paste your defaut.php code i will check and use it for update my blog post

Link to comment
Share on other sites

<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2013 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
// Include Module
include_once(dirname(__FILE__).'/../../productcomments.php');
// Include Models
include_once(dirname(__FILE__).'/../../ProductComment.php');
include_once(dirname(__FILE__).'/../../ProductCommentCriterion.php');
class ProductCommentsDefaultModuleFrontController extends ModuleFrontController
{
public function __construct()
{
 parent::__construct();
 $this->context = Context::getContext();
}
public function initContent()
{
 parent::initContent();
 if (Tools::isSubmit('action'))
 {
  switch(Tools::getValue('action'))
  {
   case 'add_comment':
 $this->ajaxProcessAddComment();
 break;
   case 'report_abuse':
 $this->ajaxProcessReportAbuse();
 break;
   case 'comment_is_usefull':
 $this->ajaxProcessCommentIsUsefull();
 break;
  }
 }
}
protected function ajaxProcessAddComment()
{
 $module_instance = new ProductComments();
 $result = true;
 $id_guest = 0;
 $id_customer = $this->context->customer->id;
 if (!$id_customer)
  $id_guest = $this->context->cookie->id_guest;
 $errors = array();
 // Validation
 if (!Validate::isInt(Tools::getValue('id_product')))
  $errors[] = $module_instance->l('ID product is incorrect');
 if (!Tools::getValue('title') || !Validate::isGenericName(Tools::getValue('title')))
  $errors[] = $module_instance->l('Title is incorrect');
 if (!Tools::getValue('content') || !Validate::isMessage(Tools::getValue('content')))
  $errors[] = $module_instance->l('Comment is incorrect');
 if (!$id_customer && (!Tools::isSubmit('customer_name') || !Tools::getValue('customer_name') || !Validate::isGenericName(Tools::getValue('customer_name'))))
  $errors[] = $module_instance->l('Customer name is incorrect');
 if (!$this->context->customer->id && !Configuration::get('PRODUCT_COMMENTS_ALLOW_GUESTS'))
  $errors[] = $module_instance->l('You must be logged in order to send a comment');
 if (!count(Tools::getValue('criterion')))
  $errors[] = $module_instance->l('You must give a rating');
 $product = new Product(Tools::getValue('id_product'));
 if (!$product->id)
  $errors[] = $module_instance->l('Product not found');
 if (!count($errors))
 {
  $customer_comment = ProductComment::getByCustomer(Tools::getValue('id_product'), $id_customer, true, $id_guest);
  if (!$customer_comment || ($customer_comment && (strtotime($customer_comment['date_add']) + Configuration::get('PRODUCT_COMMENTS_MINIMAL_TIME')) < time()))
  {
   $comment = new ProductComment();
   $comment->content = strip_tags(Tools::getValue('content'));
   $comment->id_product = (int)Tools::getValue('id_product');
   $comment->id_customer = (int)$id_customer;
   $comment->id_guest = $id_guest;
   $comment->customer_name = Tools::getValue('customer_name');
   if (!$comment->customer_name)
 $comment->customer_name = pSQL($this->context->customer->firstname.' '.$this->context->customer->lastname);
   $comment->title = Tools::getValue('title');
   $comment->grade = 0;
   $comment->validate = 0;
   $comment->save();
   $grade_sum = 0;
   foreach(Tools::getValue('criterion') as $id_product_comment_criterion => $grade)
   {
 $grade_sum += $grade;
 $product_comment_criterion = new ProductCommentCriterion($id_product_comment_criterion);
 if ($product_comment_criterion->id)
  $product_comment_criterion->addGrade($comment->id, $grade);
   }




 if (count(Tools::getValue('criterion')) >= 1)
   {
	 $comment->grade = $grade_sum / count(Tools::getValue('criterion'));
	 // Update Grade average of comment
	 $comment->save();
   }
   //send mail
$donnees = array(
	 '{texte}' => $module_instance->l('New comment available'),
	 '{content}' => $comment->content,
	 '{id_product}' => $comment->id_product,
	 '{id_customer}' => $comment->id_customer,
	 '{customer_name}' => $comment->customer_name,
	 '{title}' => $comment->title,
	 '{grade}' => $comment->grade
   );  
Mail::Send((int)Context::getContext()->language->id,
	  'newcomment',
	  'New comment',
	  $donnees,
	  Configuration::get('PS_SHOP_EMAIL'),
	  null,
	  null,
	  null,
	  null,
	  null,
	  dirname(__FILE__).'/../../mails/');

   $result = true;











   $result = true;
  }
  else
  {
   $result = false;
   $errors[] = $module_instance->l('You should wait').' '.Configuration::get('PRODUCT_COMMENTS_MINIMAL_TIME').' '.$module_instance->l('seconds before posting a new comment');
  }
 }
 else
  $result = false;
 die(Tools::jsonEncode(array(
  'result' => $result,
  'errors' => $errors
 )));
}
protected function ajaxProcessReportAbuse()
{
 if (!Tools::isSubmit('id_product_comment'))
  die('0');
 if (ProductComment::isAlreadyReport(Tools::getValue('id_product_comment'), $this->context->cookie->id_customer))
  die('0');
 if (ProductComment::reportComment((int)Tools::getValue('id_product_comment'), $this->context->cookie->id_customer))
  die('1');
 die('0');
}
protected function ajaxProcessCommentIsUsefull()
{
 if (!Tools::isSubmit('id_product_comment') || !Tools::isSubmit('value'))
  die('0');
 if (ProductComment::isAlreadyUsefulness(Tools::getValue('id_product_comment'), $this->context->cookie->id_customer))
  die('0');
 if (ProductComment::setCommentUsefulness((int)Tools::getValue('id_product_comment'), (bool)Tools::getValue('value'), $this->context->cookie->id_customer))
  die('1');
 die('0');
}
}

Link to comment
Share on other sites

maniT4c => tu pourrai essayer d'inclure une petite chose maintenant que le probleme est résolue ?

 

sur ce liens une modification existait ! mais pour les anciennes version sans controller !

http://www.webbax.ch/2012/07/30/suivre-les-commentaires-sur-votre-boutique-prestashop/

 

il y a une chose que je trouve particulierement pratique ! c'est le fait de pouvoir cliquer directement sur la fiche produit et d'atterir sur le produit ou le commentaire à été posté ! car meme dans le module dans le back office des fois je cherche des heures le nouveau commentaire...

 

la ligne serait apparement.

 

'<strong>'.$this->l('Fiche produit').'</strong> : <a href="'.Tools::getHttpHost(true).$_SERVER['REQUEST_URI'].'">'.$this->l('Voir la fiche produit').'</a><br/>'.

 

serait t'il possible de la modifier et de l'inclure dans ton script !? celà permettrait de supprimer la ligne

'{id_product}' => $comment->id_product,

 

merci d'avance ;) je pense que tu y arrivera plus facilement que moi :)

Link to comment
Share on other sites

Pas trop le temps là (je suis enfin en vacance :D ).

En bidouillant vite fait je dirais qu'il suffit de modifier le tpl du mail.

Là où il y a

{id_product}

tu met un truc du genre

<a href="http://www.myshop.com/{id_product}-dfsf.html">voir la fiche produit</a>

 

C'est un peu bourrin comme méthode, je l'ai pas testé mais je penses que tu utilise la réécriture d'url.

Donc avec un lien faux comme celui-ci mais avec l'id correcte, ton prestashop te corrigera l'url et te donnera la bonne.

 

 

Sinon après si tu veux faire plus propre il faut récupérer l'object product dans le controller defaut.php et récupérer son url.

C'est pas super compliquée mais là j'ai pas le temps :)

Link to comment
Share on other sites

  • 3 months later...
  • 5 months later...

Perhaps your mail box does not accept mail when the sender and the target is the same. You can change the target mail.

Change this:

Configuration::get('PS_SHOP_EMAIL'),
By

'[email protected]'

 

Salut, je tente d'installer la fonction sur un Prestashop 1.5.6.2. Mais il faudrait que je change l'email comme dans l'exemple au dessus. Je ne suis pas sur de comprendre : il faut remplacer 'PS_SHOP_EMAIL' par '[email protected]' ou bien toute la ligne (avec la virgule de la fin) Configuration::get('PS_SHOP_EMAIL'), par '[email protected]' ?!

Link to comment
Share on other sites

Bonjour,

Configuration::get('PS_SHOP_EMAIL')

Ca signifie aller chercher la variable "ps_shop_email" dans la configuration de prestashop (donc l'email enregistré lors de l'installation de prestashop).

 

Si vous mettez

Configuration::get('[email protected]') 

Le script essaiera d'aller chercher la valeur de la variable [email protected] dans la configuration de prestashop ce qui n'a pas de sens car cette variable n'existe pas.

 

Il faut donc en effet mettre:

'[email protected]

.

Link to comment
Share on other sites

  • 1 year later...
  • 1 month later...

En parlant de ça est-i possible d'ajouter le champ e-mail, que le client puisse écrire son e-mail lorsqu'il poste un commentaire ? histoire qu'on puisse lui répondre et qu'on l'avertisse manuellement sur son mail que l'on a posté une réponse à son commentaire.

Link to comment
Share on other sites

Techniquement oui.

Voici la théorie:

1. Rajouter le camp "email" dans le class "comment"

2. rajouter ce même champ dans la table de la base de donnée

3. rajouter le champ sur le formulaire (dans le tpl)

4. modifier le tpl de l'admin pour qu'il affiche l'email enregistré.

Merci.

Alors j'ai réussi à afficher le champ déjà en ajoutant ce code la dans le productcomment.tpl

                    <label for="comment_email">

                        {l s='E-mail:' mod='productcomments'} <sup class="required">*</sup>

                        <input id="comment_email" name="E-mail" type="text" value=""/>

 

Maintenant faut qu'il s'affiche au niveau du back office, je vais regarder comment faire et aussi ajouter ce même champ dans la table car je sais pas.

Link to comment
Share on other sites

Fait les étapes dans l'ordre :)

Car afficher dans l'admin l'email qui n'existe pas dans la bdd ça ne fonctionnera pas :)

 

Si tu n'as pas de compétence en php ça va être compliqué par contre :D

Bas si tu es capable d'expliquer je saurai le faire, je suis pas un pro du php mais si on m'indique la marche à suivre :)

Link to comment
Share on other sites

Genre aller sur la base de donnée prestashop et faire une instruction sql ?

 

ALTER TABLE "Nom de la table" ADD COLUMN "Nom de la colonne à inserrer" [type de données] selon le type [taille] BEFORE "le nom d'une colonne existante afin que la nouvelle colonne soit insérée juste devant"

 

ce qui donnerait

 

ALTER TABLE "ps_product_comment" ADD COLUMN "e-mail" [type de données] BEFORE "title"

type de données je sais pas par contre

Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous !

 

super pratique ! bravo !!!

 

j'aimerais faire la même chose pour les inscription à la newsletters

 

c'est vrais ça serait plus pratique aussi, de recevoir un mail quand quelqu’un s'inscrit au lieu de vérifier manuellement ...

 

j'avais une piste ici https://www.prestashop.com/forums/topic/260294-astuce-notification-email-pour-inscription-newsletter/ 

mais ne fonctionne pas   :-(

 

si quelqu’un a une idée ?

 

merci d'avance

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