resplandor2010 Posted February 23, 2012 Share Posted February 23, 2012 Buenos días a todos: Llevo varios días, buscando en internet, y en los foros una solución, o indicación de como cambiar el asunto de los correos que se envian cuando hacen un pedido. Anteriormente, tenía prestashop 1.2, y lo tenía controlado, pero recientemente he actualizado a la 1.4.6 y aunque lo he podido arreglar casi todo, esto del asunto se me resiste. He modificado las traducciones de las plantillas de correo, pero como si no hiciese caso de dichas modificaciones. También he cambiado el asunto en el archivo PaymentModule.php, pero tampoco funciona, y llegan los correos a los clientes con el "Order confirmation". Yo quiero traducir eso, y que añada el número del pedido en el asunto, pero no doy con ello. El que me llega ami, si viene así, pero como es de otro módulo, no funciona igual. Agradecería cualquier ayuda o indicación. Un saludo Link to comment Share on other sites More sharing options...
nadie Posted February 23, 2012 Share Posted February 23, 2012 Buenos días a todos:Llevo varios días, buscando en internet, y en los foros una solución, o indicación de como cambiar el asunto de los correos que se envian cuando hacen un pedido.Anteriormente, tenía prestashop 1.2, y lo tenía controlado, pero recientemente he actualizado a la 1.4.6 y aunque lo he podido arreglar casi todo, esto del asunto se me resiste.He modificado las traducciones de las plantillas de correo, pero como si no hiciese caso de dichas modificaciones. También he cambiado el asunto en el archivo PaymentModule.php, pero tampoco funciona, y llegan los correos a los clientes con el "Order confirmation".Yo quiero traducir eso, y que añada el número del pedido en el asunto, pero no doy con ello. El que me llega ami, si viene así, pero como es de otro módulo, no funciona igual.Agradecería cualquier ayuda o indicación.Un saludo Bueno lo primero es que en mails/idioma/lang.php es donde se traducen los asuntos de los emails generales.Ahora si lo que quieres es por ejemplo, añadir, como sale por ejemplo PedidoTe doy una pista en el mailalerts.php si buscas encuentras esto:$subject = $this->l('New order').' - '.sprintf('%06d', $order->id); Ahora con esa pista, y comparando los dos ficheros el de PaymentModule.php y mailalerts.php, estaras cerca de encontrar tu solucion. Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 23, 2012 Author Share Posted February 23, 2012 Bueno lo primero es que en mails/idioma/lang.php es donde se traducen los asuntos de los emails generales. Ahora si lo que quieres es por ejemplo, añadir, como sale por ejemplo Pedido Te doy una pista en el mailalerts.php si buscas encuentras esto: $subject = $this->l('New order').' - '.sprintf('%06d', $order->id); Ahora con esa pista, y comparando los dos ficheros el de PaymentModule.php y mailalerts.php, estaras cerca de encontrar tu solucion. Gracias por tu respuesta. pero eso ya lo estuve mirando, y o no lo hago bien, o no funciona. Como son 2 líneas diferentes, y yo de programación, se lo justo, no acabo de configurar muy bien la línea. Tengo esto Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); ¿Exactamente como debería de ponerlo, para que me salga igual que el otro? Gracias de antemano. Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 23, 2012 Author Share Posted February 23, 2012 Hola: La verdad, es que no consigo de ninguna manera, que en el asunto que le llega al cliente cuando hace un pedido aparezca el número del pedido. He consegido tarducir el "Order confirmed", modificandolo directamente de los archivos "PaymentModule.php" y "maofree_cashondeliveryfee.php", pues dependiendo de la forma de pago, actuaba uno u otro. Sin embargo, no consigo que en el asunto ponga el nº de pedido. Si alguien me puede ayudar, se lo agradeceré mucho. Link to comment Share on other sites More sharing options...
nadie Posted February 23, 2012 Share Posted February 23, 2012 Hola: La verdad, es que no consigo de ninguna manera, que en el asunto que le llega al cliente cuando hace un pedido aparezca el número del pedido. He consegido tarducir el "Order confirmed", modificandolo directamente de los archivos "PaymentModule.php" y "maofree_cashondeliveryfee.php", pues dependiendo de la forma de pago, actuaba uno u otro. Sin embargo, no consigo que en el asunto ponga el nº de pedido. Si alguien me puede ayudar, se lo agradeceré mucho. Otra pista: Fijate en el Mail::Send, del mailalerts.php y en el Mail::Send del PaymentModule. Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 23, 2012 Author Share Posted February 23, 2012 Otra pista: Fijate en el Mail::Send, del mailalerts.php y en el Mail::Send del PaymentModule. Gracias por tu interés, pero por mucho que miro, no encuentro la relación. En uno, el asunto, es $subject = $this->l('New order').' - '.sprintf('%06d', $order->id); y en el otro Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Pedido confirmado', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); Por mucho que miro, y con mis pocos conocimientos, me es imposible poder fusionar el primero con el segundo. He hecho infinidad de pruebas, y el resultado, ha sido que no envía ningún correo, porque lo hago mal. Debe ser algo sencillo, pero no doy con ello. Sigo buscando alguien, que me diga como se soluciona. Un saludo Link to comment Share on other sites More sharing options...
nadie Posted February 23, 2012 Share Posted February 23, 2012 Gracias por tu interés, pero por mucho que miro, no encuentro la relación. En uno, el asunto, es $subject = $this->l('New order').' - '.sprintf('%06d', $order->id); y en el otro Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Pedido confirmado', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); Por mucho que miro, y con mis pocos conocimientos, me es imposible poder fusionar el primero con el segundo. He hecho infinidad de pruebas, y el resultado, ha sido que no envía ningún correo, porque lo hago mal. Debe ser algo sencillo, pero no doy con ello. Sigo buscando alguien, que me diga como se soluciona. Un saludo Otra pista: En el fichero PaymentModule.php tienes por ejemplo esto: Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); Y en el mailalerts.php esto: Mail::Send($id_lang, $template, $subject, $templateVars, explode(self::__MA_MAIL_DELIMITOR__, $this->_merchant_mails), NULL, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], NULL, NULL, dirname(__FILE__).'/mails/'); Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 23, 2012 Author Share Posted February 23, 2012 Otra pista: En el fichero PaymentModule.php tienes por ejemplo esto: Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); Y en el mailalerts.php esto: Mail::Send($id_lang, $template, $subject, $templateVars, explode(self::__MA_MAIL_DELIMITOR__, $this->_merchant_mails), NULL, $configuration['PS_SHOP_EMAIL'], $configuration['PS_SHOP_NAME'], NULL, NULL, dirname(__FILE__).'/mails/'); Sigo sin ver la relación del uno con el otro. en uno el asunto se genera por Mail::l('Order confirmation', que es lo que quiero cambiar. Pero como ajusto ahí, para que imprima el número de pedido. Se supone que poniendo ahí lo de .sprintf('%06d', $order->id) pero bien puesto, debería de funcionar. Sin embargo yo no soy capaz de ponerlo correctamente. Link to comment Share on other sites More sharing options...
nadie Posted February 23, 2012 Share Posted February 23, 2012 Sigo sin ver la relación del uno con el otro. en uno el asunto se genera por Mail::l('Order confirmation', que es lo que quiero cambiar. Pero como ajusto ahí, para que imprima el número de pedido. Se supone que poniendo ahí lo de .sprintf('%06d', $order->id) pero bien puesto, debería de funcionar. Sin embargo yo no soy capaz de ponerlo correctamente. fijate en que almacena la variable $subject Link to comment Share on other sites More sharing options...
banense Posted February 24, 2012 Share Posted February 24, 2012 aqui te explican como cambiarlo.. no se porque tanto follón jejej.. http://www.prestashop.com/forums/topic/3868-solved-email-subject-translation/ Link to comment Share on other sites More sharing options...
nadie Posted February 24, 2012 Share Posted February 24, 2012 aqui te explican como cambiarlo.. no se porque tanto follón jejej..http://www.prestasho...ct-translation/ Eso creo que no le servirá para el asunto en cuestión , el quiere añadir el numero de pedido en el asunto del mensaje, tal como hace el mailsalert. Link to comment Share on other sites More sharing options...
banense Posted February 24, 2012 Share Posted February 24, 2012 como que no servirá ??? a mi me sirve.. yo lo hago y me funciona..no hay nada imposible con php y prestashop Link to comment Share on other sites More sharing options...
nadie Posted February 24, 2012 Share Posted February 24, 2012 como que no servirá ??? a mi me sirve.. yo lo hago y me funciona..no hay nada imposible con php y prestashop El enlace que has pasado, es para traducir el asunto de los emails, eso ya lo sabe el. lo que quiere y es sencillo hacerlo, es que en la confirmacion del pedido del cliente el asunto del mensaje sea "Confirmacion del Pedido: Numero del Pedido". Un saludo, Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 24, 2012 Author Share Posted February 24, 2012 Hola: Sigo con lo mismo, y se que para vosotros será facil, pero yo no lo consigo. Además hay algo que no me anda fino, y es que cuando modifico las plantillas de los correos a través del back-ofiice, no me hace caso, y se desconfiguran. Para hacerlo correctamente, tengo que modificarlo a través del dreamweaver, pues desde prestahop, no me funciona, y cada vez que abro las plantillas, estas vueleven a estar mal. Lo unico que he podido configurar, es la traducción (desde el mismo aechivo, pues desde el programa no me funciona), pero lo de poner el número de pedido, lo veo muy dificil, porque yo de programación no entiendo, y lo único que hago es fijarme en los archivos, pero en este caso no doy con la tecla. Sigo esperando que alguien me indique como solucionarlo. Gracias. Link to comment Share on other sites More sharing options...
nadie Posted February 24, 2012 Share Posted February 24, 2012 Hola: Sigo con lo mismo, y se que para vosotros será facil, pero yo no lo consigo. Además hay algo que no me anda fino, y es que cuando modifico las plantillas de los correos a través del back-ofiice, no me hace caso, y se desconfiguran. Para hacerlo correctamente, tengo que modificarlo a través del dreamweaver, pues desde prestahop, no me funciona, y cada vez que abro las plantillas, estas vueleven a estar mal. Lo unico que he podido configurar, es la traducción (desde el mismo aechivo, pues desde el programa no me funciona), pero lo de poner el número de pedido, lo veo muy dificil, porque yo de programación no entiendo, y lo único que hago es fijarme en los archivos, pero en este caso no doy con la tecla. Sigo esperando que alguien me indique como solucionarlo. Gracias. Otra Pista: if (Validate::isEmail($customer->email)) { // Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); $subject = $this->l('Pedido Confirmado, Num Pedido:').' - '.sprintf('%06d', $order->id); Mail::Send((int)$order->id_lang, 'order_conf', $subject, $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); } Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 24, 2012 Author Share Posted February 24, 2012 Otra Pista: if (Validate::isEmail($customer->email)) { // Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); $subject = $this->l('Pedido Confirmado, Num Pedido:').' - '.sprintf('%06d', $order->id); Mail::Send((int)$order->id_lang, 'order_conf', $subject, $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); } ¡Por fin...! Muchas gracias nadie. La verdad, es que me gusta aprender, y no que te den las cosas hechas y simplemente pegarlas. Pero los pocos conocimiento que tengo, a veces son insuficientes para conseguir los propositos. Yo ya estaba poniendo las variables, pero no conseguia que cuaudrase todo, y lo único que conseguía era que no se enviase el correo. Por cierto, en el código que me has indicado, he tendido que borrar la llave { quedando así if (Validate::isEmail($customer->email)) // Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); $subject = $this->l('Pedido Confirmado, Num Pedido:').' - '.sprintf('%06d', $order->id); Mail::Send((int)$order->id_lang, 'order_conf', $subject, $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); } Pues como tu habías puesto, al entrar a la cesta, o hacer el pedido, daba error. Lo dicho muchas gracias a nadie y a todos los que participan en este foro, y a seguir aprendiendo. Link to comment Share on other sites More sharing options...
nadie Posted February 24, 2012 Share Posted February 24, 2012 ¡Por fin...! Muchas gracias nadie. La verdad, es que me gusta aprender, y no que te den las cosas hechas y simplemente pegarlas. Pero los pocos conocimiento que tengo, a veces son insuficientes para conseguir los propositos. Yo ya estaba poniendo las variables, pero no conseguia que cuaudrase todo, y lo único que conseguía era que no se enviase el correo. Por cierto, en el código que me has indicado, he tendido que borrar la llave { quedando así if (Validate::isEmail($customer->email)) // Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); $subject = $this->l('Pedido Confirmado, Num Pedido:').' - '.sprintf('%06d', $order->id); Mail::Send((int)$order->id_lang, 'order_conf', $subject, $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); } Pues como tu habías puesto, al entrar a la cesta, o hacer el pedido, daba error. Lo dicho muchas gracias a nadie y a todos los que participan en este foro, y a seguir aprendiendo. Déjalo así exactamente: if (Validate::isEmail($customer->email)) { // Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); $subject = $this->l('Pedido Confirmado, Num Pedido:').' - '.sprintf('%06d', $order->id); Mail::Send((int)$order->id_lang, 'order_conf', $subject, $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); } } // puesto que esta llave cierra otra (es decir esta llave la dejas), y ademas pones las dos llaves que he puesto Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 24, 2012 Author Share Posted February 24, 2012 Déjalo así exactamente: if (Validate::isEmail($customer->email)) { // Mail::Send((int)$order->id_lang, 'order_conf', Mail::l('Order confirmation', (int)$order->id_lang), $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); $subject = $this->l('Pedido Confirmado, Num Pedido:').' - '.sprintf('%06d', $order->id); Mail::Send((int)$order->id_lang, 'order_conf', $subject, $data, $customer->email, $customer->firstname.' '.$customer->lastname, NULL, NULL, $fileAttachment); } } // puesto que esta llave cierra otra (es decir esta llave la dejas), y ademas pones las dos llaves que he puesto No me funciona como dices, ni de este modo, ni con el anterior. De las 2 maneras, al entrar en la cesta o hacer el pedido sale "El sitio web no puede mostrar la página" Sin embargo como yo te he dicho, si funciona, y me llegan los correos con el número de pedido. No se el porqué, pues como he comentado no soy programador, pero he quitado esa llave, pues en el original no la hay y aparentemente funciona todo correctamente. Link to comment Share on other sites More sharing options...
nadie Posted February 24, 2012 Share Posted February 24, 2012 No me funciona como dices, ni de este modo, ni con el anterior. De las 2 maneras, al entrar en la cesta o hacer el pedido sale "El sitio web no puede mostrar la página" Sin embargo como yo te he dicho, si funciona, y me llegan los correos con el número de pedido. No se el porqué, pues como he comentado no soy programador, pero he quitado esa llave, pues en el original no la hay y aparentemente funciona todo correctamente. Te subo el fichero. Sustitúyelo y dime si te salta error. PaymentModule.php Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 24, 2012 Author Share Posted February 24, 2012 Te subo el fichero. Sustitúyelo y dime si te salta error. He puesto el fichero que me has dado, y este funciona correctamente. Es algo raro, pues si copio y pego la parte afectada, no funciona, y con tu archivo si. He comparado ambos archivos con winmerge, y aparte de algunas líneas, que no tiene nada que ver con las llaves, lo demás es igual. No se que hacer, si dejar el tuyo, o el mio que funciona sin la llave. La lineas que cambian, son estas: $customer_message = $order->getFirstMessage(); '{message}' => $customer_message, Yo no las tengo y esta '{payment}' => $order->payment, yo la tengo así '{payment}' => Tools::substr($order->payment, 0, 32), Todo lo demás, menos el codigo en cuestión, es igual. ¿Que me recomiendas? Link to comment Share on other sites More sharing options...
nadie Posted February 24, 2012 Share Posted February 24, 2012 Sube mi fichero, (esta verificado en la 1.4.6.X de prestashop). Link to comment Share on other sites More sharing options...
resplandor2010 Posted February 24, 2012 Author Share Posted February 24, 2012 Sube mi fichero, (esta verificado en la 1.4.6.X de prestashop). De acuerdo, lo dejaré con el tuyo. Mas que nada, lo preguntaba, porque yo había actualizado de la 1.2, y quizás las diferencias hacian falta para algun otro modulo. Estaba haciendo pruebas con el otro archivo afectado, el del contrarreembolso, y me estaba pasando lo mismo, pero al final averigué la causa. Si pego el código directamente del archivo que me has pasado, todo funciona correctamente. Si pego el código de este post, no me funciona. Por lo cual deduzco, que algun espacio en blanco, o algo no está bien en el código aquí expuesto. Tema resuelto. gracias. Link to comment Share on other sites More sharing options...
nadie Posted February 24, 2012 Share Posted February 24, 2012 De acuerdo, lo dejaré con el tuyo. Mas que nada, lo preguntaba, porque yo había actualizado de la 1.2, y quizás las diferencias hacian falta para algun otro modulo. Estaba haciendo pruebas con el otro archivo afectado, el del contrarreembolso, y me estaba pasando lo mismo, pero al final averigué la causa. Si pego el código directamente del archivo que me has pasado, todo funciona correctamente. Si pego el código de este post, no me funciona. Por lo cual deduzco, que algun espacio en blanco, o algo no está bien en el código aquí expuesto. Tema resuelto. gracias. Bueno, lo importante es que se soluciono. Un saludo, y recuerda que estaremos por el foro para guiarte por este mundo lleno de oscuridad y tinieblas. Link to comment Share on other sites More sharing options...
Recommended Posts