Jump to content

Notificacion comentario al email


elreyes

Recommended Posts

Buen dia,

 

Comento los siguiente, tengo activo el modulo de comentarios oficial de prestashop en mi tienda, pero lamentablemente ese modulo no tiene ningun tipo de notificacion cuando alguien opina en alguno de mis productos.

 

Uso Prestashop uso la 1.5.3.1.

 

Agradeceria mucho si alguien me logra ayudar con eso, de momento no tengo el dinero para el modulo de pago que realiza esta funcion.

 

Mil Gracias.

Link to comment
Share on other sites

Bueno si quieres enviar un correo al administrador de la tienda, agrega las siguientes lineas.

 

En el archivo tu_tienda.com/modules/productcomments/controllers/front/default.php

Localiza el codigo:

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

 

Y reemplazalo por este:

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

$cmt_vars = array(
 '{cmt_customer}' => $comment->customer_name,
 '{cmt_grade}' => $comment->grade,
 '{cmt_comment}' => $comment->content
);
Mail::Send($this->context->language->id, 'comment', Mail::l('Have a new comment', $this->context->language->id), $cmt_vars, Configuration::Get('PS_SHOP_EMAIL'), null, null, null, null, null, _PS_MODULE_DIR_.'productcomments/mails/');

$result = true;

 

 

Ahora solo necesitaras agregar la plantilla de correo para que recibas la notificacion.

En la ruta tu_tienda.com/modules/productcomments

> Crea una carpeta con el nombre de mails

> Dentro de la carpeta mails, crea una carpeta con el nombre de es

> Ahora dentro de la carpeta es, crea un archivo con el nombre de comment.html

> Dentro del archivo comment.html, agrega este contenido:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mensaje de {shop_name}</title>
</head>
<body>
<table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 550px;">
<tbody>
<tr>
<td align="left"><a title="{shop_name}" href="{shop_url}"><img style="border: none;" src="{shop_logo}" alt="{shop_name}" /></a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Hola,</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="background-color: #db3484; color: #fff; font-size: 12px; font-weight: bold; padding: 0.5em 1em;" align="left">Tienes un comentario nuevo</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><strong>Cliente:</strong> {cmt_customer}<br>
 <strong>Calificacion:</strong> {cmt_grade} <br>
 <strong>Comentario:</strong></td>
</tr>
<tr>
<td>{cmt_comment}</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="font-size: 10px; border-top: 1px solid #D9DADE;" align="center"><a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}">{shop_name}</a> dirigida por <a style="text-decoration: none; color: #374953;" href="http://www.prestashop.com/">PrestaShop™</a></td>
</tr>
</tbody>
</table>
</body>
</html>

 

 

Con esto ya tendras lista la plantilla de correo electronico, si quieres agregar en mas idiomas solo crea las carpetas correspondientes, tambien seria conveniente que agregues las plantillas en texto plano.

Cualquier duda, avisame

 

 

Saludos,

Sergio Q.

  • Like 2
Link to comment
Share on other sites

Bueno si quieres enviar un correo al administrador de la tienda, agrega las siguientes lineas.

 

En el archivo tu_tienda.com/modules/productcomments/controllers/front/default.php

Localiza el codigo:

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

 

Y reemplazalo por este:

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

$cmt_vars = array(
 '{cmt_customer}' => $comment->customer_name,
 '{cmt_grade}' => $comment->grade,
 '{cmt_comment}' => $comment->content
);
Mail::Send($this->context->language->id, 'comment', Mail::l('Have a new comment', $this->context->language->id), $cmt_vars, Configuration::Get('PS_SHOP_EMAIL'), null, null, null, null, null, _PS_MODULE_DIR_.'productcomments/mails/');

$result = true;

 

 

Ahora solo necesitaras agregar la plantilla de correo para que recibas la notificacion.

En la ruta tu_tienda.com/modules/productcomments

> Crea una carpeta con el nombre de mails

> Dentro de la carpeta mails, crea una carpeta con el nombre de es

> Ahora dentro de la carpeta es, crea un archivo con el nombre de comment.html

> Dentro del archivo comment.html, agrega este contenido:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Mensaje de {shop_name}</title>
</head>
<body>
<table style="font-family: Verdana,sans-serif; font-size: 11px; color: #374953; width: 550px;">
<tbody>
<tr>
<td align="left"><a title="{shop_name}" href="{shop_url}"><img style="border: none;" src="{shop_logo}" alt="{shop_name}" /></a></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left">Hola,</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="background-color: #db3484; color: #fff; font-size: 12px; font-weight: bold; padding: 0.5em 1em;" align="left">Tienes un comentario nuevo</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="left"><strong>Cliente:</strong> {cmt_customer}<br>
 <strong>Calificacion:</strong> {cmt_grade} <br>
 <strong>Comentario:</strong></td>
</tr>
<tr>
<td>{cmt_comment}</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td style="font-size: 10px; border-top: 1px solid #D9DADE;" align="center"><a style="color: #db3484; font-weight: bold; text-decoration: none;" href="{shop_url}">{shop_name}</a> dirigida por <a style="text-decoration: none; color: #374953;" href="http://www.prestashop.com/">PrestaShop™</a></td>
</tr>
</tbody>
</table>
</body>
</html>

 

 

Con esto ya tendras lista la plantilla de correo electronico, si quieres agregar en mas idiomas solo crea las carpetas correspondientes, tambien seria conveniente que agregues las plantillas en texto plano.

Cualquier duda, avisame

 

 

Saludos,

Sergio Q.

 

estimado amigo hice todos los pasos que indicaste pero aun sigue sin avisarme al correo :( De antemano mil gracias por tu aporte.

  • Like 1
Link to comment
Share on other sites

 

 

estimado amigo hice todos los pasos que indicaste pero aun sigue sin avisarme al correo :( De antemano mil gracias por tu aporte.

Algo debes haber hecho mal, lo probaste en el idioma español ?

Si lo probaste en otro idioma y no creaste las carpetas de los email, entonces no te funcionara, tal como lo explico en los detalles.

Link to comment
Share on other sites

Algo debes haber hecho mal, lo probaste en el idioma español ?

Si lo probaste en otro idioma y no creaste las carpetas de los email, entonces no te funcionara, tal como lo explico en los detalles.

COKOTO solo en español, es decir reemplace el codigo como dijiste, luego cree las carpetas y agregue el archivo html y dentro de el copie la plantilla que me indicaste. Pero aun asi no llegan. Te adjunto los archivos tal cual como quedaron.

comment.html

default.php

Edited by elreyes (see edit history)
Link to comment
Share on other sites

COKOTO solo en español, es decir reemplace el codigo como dijiste, luego cree las carpetas y agregue el archivo html y dentro de el copie la plantilla que me indicaste. Pero aun asi no llegan. Te adjunto los archivos tal cual como quedaron.

 

Ademas del fichero:

 

comment.html

 

crea uno llamado

 

comment.txt

 

y subelo al mismo directorio:

 

/modules/productcomments/mails/es/

 

(A mi me funciona)

Link to comment
Share on other sites

Es probable que ese sea el detalle, en los pasos hago la indicación de que si la configuración de emails esta configurado como envíos en texto, es necesario crear el archivo tal como te menciona nadie y dentro poner el contenido de la plantilla, OJO, solo el contenido de la plantilla no el código HTML.

Link to comment
Share on other sites

Queridos amigos ya lo he logrado, parece ser que necesitamos crear dos carpeatas para cada idioma, es y en. De lo contrario la plantilla no funciona. Ya esta funcionando correctamente. Lo unico raro es que esta en español y al correo me llega con asunto "Have a new comment" aunque personalmente no tengo problemas con eso.

 

Mil gracias por su inmesa ayuda !!!

Link to comment
Share on other sites

Que bien que lo solucionaste, veo que el problema era que lo estabas usando con el sitio en inglés y como te mencione solo tenías la plantilla en español y por eso no te enviaba el correo.

Para cambiar el texto en inglés lo puedes hacer desde traducciones en tu back office y ya lo recibirás en el idioma correcto, lo puse en inglés para seguir el esquema de prestashop.

 

Saludos.

  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...