jat Posted August 26, 2020 Share Posted August 26, 2020 (edited) Hola a tod@s Me gustaría añadir un input tipo file, para adjuntar una imagen, dentro de Adminitracion en el formulario de mensajes que está dentro del pedido del cliente, como el que adjunto en la imagen. He creado un override de view.tpl (override/controllers/admin/templates/orders/helpers/view/view.tpl) He añadido el siguiente código en la línea 869: {* TODO fileupload *} <div class="form-group"> <label class="control-label col-lg-3">{l s='Captura de pantalla'}</label> <div class="col-lg-9 form-control-file"> <input type="file" name="filetoclient" class="form-control form-control-file"> </div> </div> {* End fileupload *} Y se muestra correctamente. Pero necesito que incluya ese archivo en el email. Alguna idea de que controlador tengo que modificar para ello? No he encontrado mucha info Muchas gracias Version Prestashop: 1.7.6.7 Theme: StarterTheme modificado https://github.com/PrestaShop/StarterTheme/ Edited August 28, 2020 by jat poner un título mas apropiado (see edit history) Link to comment Share on other sites More sharing options...
Pixefora D Posted August 31, 2020 Share Posted August 31, 2020 El controlador que debes de editar es AdminCustomerThreadsController.php. En la linea 438 encontrarás la funcion mail: if (Mail::Send( (int)$ct->id_lang, 'reply_msg', sprintf(Mail::l('An answer to your message is available #ct%1$s #tc%2$s', $ct->id_lang), $ct->id, $ct->token), $params, Tools::getValue('msg_email'), null, $from_email, $from_name, $file_attachment, null, _PS_MAIL_DIR_, true, $ct->id_shop)) { $ct->status = 'closed'; $ct->update(); } Debes subir primero el archivo al servidor, y posteriormente adjuntarlo en la funcion mail. Para adjuntarlo, puedes hacerlo añadiendo en la variable $file_attachment los siguientes contenidos: if (!empty($_FILES['joinFile']['name'])) { $file_attachment['content'] = file_get_contents($_FILES['joinFile']['tmp_name']); $file_attachment['name'] = $_FILES['joinFile']['name']; $file_attachment['mime'] = $_FILES['joinFile']['type']; } OJO, no lo he probado, pero según veo el controlador ya hace esto, es decir, mandar archivos tal y como tu quieres hacerlo. Creo que si al name del file le pones joinFile subirá el archivo y lo mandará al correo como adjunto sin que tengas que hacer nada. Si no funciona, entonces debes de hacerlo como anteriormente te indico. Por favor, hazme saber si JoinFile funciona. 1 Link to comment Share on other sites More sharing options...
Pixefora D Posted September 8, 2020 Share Posted September 8, 2020 @jat Funcionó lo de joinFile ? Link to comment Share on other sites More sharing options...
jat Posted September 10, 2020 Author Share Posted September 10, 2020 @Pixefora D Muchas gracias ante nada, No me funciono pero hoy voy a seguir probando con lo que me has enviado. Si funciona lo publico Link to comment Share on other sites More sharing options...
oharryo Posted September 10, 2020 Share Posted September 10, 2020 Gracias por sus respuestas @Pixefora D y @jat, ya tengo una idea para comenzar, en mi caso estoy editando el módulo ps_wirepayment (Pagos por transferencia bancaria), justamente edité el archivo "\modules\ps_wirepayment\views\templates\hook\ps_wirepayment_intro.tpl", y le añadí input de tipo file lo que busco es que me permita añadir un archivo PNG, JPG o PDF, para luego subirlo en alguna carpeta del servidor y añadir un link en el correo de order_conf.html Si alguien nos puede dar una ayuda sería fantástico. Link to comment Share on other sites More sharing options...
Pixefora D Posted September 10, 2020 Share Posted September 10, 2020 En el controlador validation.php verás el método postProcess. Ahí puedes meter el php necesario para subir el archivo donde quieras y guardarlo en la base de datos Luego puedes editar directamente la plantilla de correo y ponerle el enlace a la imagen o archivo que acabas de subir. Un saludo. Link to comment Share on other sites More sharing options...
jat Posted September 11, 2020 Author Share Posted September 11, 2020 (edited) Le 08/09/2020 à 12:46 PM, Pixefora D a dit : @jat Funcionó lo de joinFile ? Hola @Pixefora D que versión de prestashop utilizas? Yo la 1.7.6.7, y en el archivo AdminCustomerThreadsController.php no es exactamente igual, aparentemente, por eso te pregunto. Un saludo Edited September 11, 2020 by jat (see edit history) Link to comment Share on other sites More sharing options...
Pixefora D Posted September 11, 2020 Share Posted September 11, 2020 Perdona, mandé el código de 1.6. Para 1.7 sería algo así, linea 398: if (Mail::Send( $this->context->language->id, 'forward_msg', $this->trans( 'Fwd: Customer message', array(), 'Emails.Subject', $this->context->language->locale ), $params, $employee->email, $employee->firstname.' '.$employee->lastname, $current_employee->email, $current_employee->firstname.' '.$current_employee->lastname, null, null, _PS_MAIL_DIR_, true)) { $cm->private = 1; $cm->message = $this->trans('Message forwarded to', array(), 'Admin.Catalog.Feature').' '.$employee->firstname.' '.$employee->lastname."\n".$this->trans('Comment:').' '.$message; $cm->add(); } Puedes añadirle el tipo FILE y subirlo antes del envío de correo, con lo que te quedaría algo asi (no testeado): if (isset($_FILES) && !empty($_FILES['joinFile']['name']) && $_FILES['joinFile']['error'] != 0) { $this->errors[] = $this->trans('An error occurred during the file upload process.', array(), 'Admin.Notifications.Error'); } else { $file_attachment = null; if (!empty($_FILES['joinFile']['name'])) { $file_attachment['content'] = file_get_contents($_FILES['joinFile']['tmp_name']); $file_attachment['name'] = $_FILES['joinFile']['name']; $file_attachment['mime'] = $_FILES['joinFile']['type']; } } if (Mail::Send( $this->context->language->id, 'forward_msg', $this->trans( 'Fwd: Customer message', array(), 'Emails.Subject', $this->context->language->locale ), $params, $email, null, $current_employee->email, $current_employee->firstname.' '.$current_employee->lastname, $file_attachment, null, _PS_MAIL_DIR_, true)) { $cm->message = $this->trans('Message forwarded to', array(), 'Admin.Catalog.Feature').' '.$email."\n".$this->trans('Comment:').' '.$message; $cm->add(); } 1 Link to comment Share on other sites More sharing options...
Marcia Pereira Posted June 1, 2021 Share Posted June 1, 2021 (edited) On 8/26/2020 at 10:24 AM, jat said: Hola a tod@s Me gustaría añadir un input tipo file, para adjuntar una imagen, dentro de Adminitracion en el formulario de mensajes que está dentro del pedido del cliente, como el que adjunto en la imagen. He creado un override de view.tpl (override/controllers/admin/templates/orders/helpers/view/view.tpl) He añadido el siguiente código en la línea 869: {* TODO fileupload *} <div class="form-group"> <label class="control-label col-lg-3">{l s='Captura de pantalla'}</label> <div class="col-lg-9 form-control-file"> <input type="file" name="filetoclient" class="form-control form-control-file"> </div> </div> {* End fileupload *} Y se muestra correctamente. Pero necesito que incluya ese archivo en el email. Alguna idea de que controlador tengo que modificar para ello? No he encontrado mucha info Muchas gracias Version Prestashop: 1.7.6.7 Theme: StarterTheme modificado https://github.com/PrestaShop/StarterTheme/ Hola jat, he probado lo que sugieres porque en mi caso en la tienda que llevo es necesario enviar un comprobante de envío (recibo) de que el paquete fue enviado al cliente y visualmente aparece la opcion de seleccionar una imagen pero me he dado cuenta de que no envía ninguna imagen. Ni al correo del cliente ni en la página de seguimiento de pedidos https://websiteejemplo.com/historial-compra Da para adjuntar el archivo y todo ok pero al enviar el mensaje no envía el archivo adjunto Al cliente le aparece solo el texto y no el archivo como tal ¿Has conseguido solucionarlo? ya he buscado por todas partes pero este es el unico post que encuentro sobre el tema Edited June 1, 2021 by Marcia Pereira (see edit history) Link to comment Share on other sites More sharing options...
sylarlocke Posted August 11, 2022 Share Posted August 11, 2022 Hola, habéis conseguido que se pueda adjuntar al email el archivo adjunto? Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now