Jump to content

[Solucionado] Agregar multiples destinatarios de correo al crear un nuevo contato para clientes


Recommended Posts

Hola, espero que alguien me pueda dar una luz con este problema tengo un sitio en prestashop 1.5.6.2., estoy creando un contacto en la opcion: Clientes - > Contacto del menu superior, necesitaba agregar dos destinatarios mas  de correo administrador de contacto, logre hacerlo modificando el controlador AdminContactsController.php agregando las siguientes lineas

 

en $this->fields_list = array 

 

agregue 

'email2' => array('title' => $this->l('Email address'), 'width' => 130),
'email3' => array('title' => $this->l('Email address'), 'width' => 130),

 

y en el 'input' = > array

 

array(
'type' => 'text',
'label' => $this->l('Email opcional 2'),
'name' => 'email2',//adicinal por malon para agregar mas emails
'size' => 33,
'required' => false,
'desc' => $this->l('Emails will be sent to this address'),
),
array(
'type' => 'text',
'label' => $this->l('Email opcional 3'),
'name' => 'email3',//adicinal por malon para agregar mas emails
'size' => 33,
'required' => false,
'desc' => $this->l('Emails will be sent to this address'),
),

 

modifique la clase  la clase contact.php agregando estas lineas 

 

public $email2;
public $email3;

 

 

en  $definition = array agregue 

 

'email2' => array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'size' => 128),
'email3' => array('type' => self::TYPE_STRING, 'validate' => 'isEmail', 'size' => 128),

 

y agregue los dos campos de email en la tabla _contact, pero no logro hacer que me envíe el correo a los otros dos destinatarios administrativos, alguien tiene una idea como puedo hacerlo?

Edited by nadie
Moderación del foro añade la palabra "Solucionado" al titulo del tema. (see edit history)
Link to comment
Share on other sites

Puedes explicar lo que quieres hacer? No entiendo nada de lo que has puesto...

Si lo que quieres es tener 2 direcciones más de e-mail no necesitas tocar nada de código, basta con que las crees desde el BO en el apartado Clientes->Contacto

 

Lo que he podido entender es que quieres crear varias cuentas de e-mail a parte de las 2 que vienen ya creadas por defecto en prestashop para que también les lleguen los e-mail. Pero qué e-mails quieres que le lleguen? Si son los de nuevos pedidos, poco stock, etc, basta con que añadas las direcciones de e-mail en el módulo myalerts

Link to comment
Share on other sites

gracias por responder, lo que estoy haciendo en realidad es utilizar la funcionalidad de contactos para servicio al cliente, los que se crean desde la pestaña clientes seleccionando la opción contacto. Cree varios contactos: quejas y reclamos, comentarios y sugerencias, envios, etc, pero al crear un nuevo contacto necesitaba que ese mensaje llegara a 3  correos administrativos de esa opción de contacto. la modificación que hice al codigo fue para que me permitiera agregar 2 email más de contacto. pero no se como hacer que envie el correo a los otros dos emails que se pueden agregar.   

 

este es un print de las opciones que agregué.

 

modificado.png

 

no se si hice bien, pero mi inconveniente es cuando el cliente envía un mensaje a una de estas opcines, no se como hacer que  llegue a los otros correos opcionales.

 

Espero me puedas ayudar y  si hay otra forma agradecería la ayuda. saludos.

Link to comment
Share on other sites

Cordial saludo.

 

 

marlonmonsalve27 veo que aun no te han dado solución a tu inquietud, aunque ya has avanzado un 50% en la implementación de múltiples direcciones de notificación en la opción de contáctenos.

 

como veo ya has implementado en el backend los 2 campos adicionales de email; por ende solo me centrare en como enviar las notificaciones a cada una de las direcciones implementadas:

 

1) en el controlador del front Contactcontroller.php que se encuentra en /controllers/front/ContactController.php debes identificar las siguientes lineas que se encuentran en la función "public function postProcess()"

 

marloncillo1.jpg

 

Esta porción de código es la encargada de enviar el Email al cliente que se registra como la notificación al email registrado el la pestaña "Clientes > Contacto" en este caso como has agregado dos direcciones adicionales vamos a editar las lineas de código respectivas y adicionar la funcionalidad para enviar la respectiva notificación a los dos email adicionales:

 

2) Primero vamos a entender que hace este pequeño fragmento de código para así adentrarnos en la solución;

 

como vez la primera parte del if envía la notificación al cliente que se registro si no existe un email registrado en la pestaña de contactenos 

 

marloncillo2.JPG

 

La segunda parte envía el email de notificación al cliente como la notificación al email registrado en la pestaña "Clientes > Contacto"

 

marloncillo3.JPG

 

ahora manos a la obra:

 

1) Solo necesitamos la primera parte del if es decir desde el !Mail:: ..... hasta  $fileAttachment) como te señalo en la siguiente imagen: 

 

marloncillo4.JPG

 

2) vamos a crear 2 if adicionales para enviar las notificaciones a los dos Email adicionales que creaste de la siguiente forma:

 

Capture.JPG

 

Tener presente que el if($contact->email2 y 3 debe corresponder al parametro $var_list, $contact->email2 y/0 3 dentro de la funcion send de la clase Mail ver imagen:

 

Capture.JPG

 

Nota: estos dos if deben ponerse al final del if original 

 

Capture.JPG

 

Nota 2: Tener muy presente que el campo $contact->email2 y $contact->email3 son los nombres de los campos que creaste es decir; si tus campos son correo1 y correo2 en los if deben ir $contact->correo1 y $contact->correo2 es decir como nombres tus campos en tu backed deben ir en el front end

 

Guardamos nuestro archivo y ahora podremos enviar email de notificación a dos correos electrónicos diferentes; en el caso de que necesites mas direcciones solo debes replicar el proceso por el numero de direcciones que desees

 

quedo atento

  • Like 1
Link to comment
Share on other sites

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