JairoA Posted November 18, 2019 Share Posted November 18, 2019 (edited) Hola a todos! Tengo entre manos el siguiente objetivo: Evitar que prestashop envíe el email de confirmación de pedido cuando el pedido se haya pagado con "pago con tarjeta". La forma habitual de elegir cúando se envía emails es asociando un email a un estado de pedido (pago aceptado, envíado, cancelado, etc). Pero en este caso lo que necesito es establecer una regla que evite envíar los emails, asociados a esos estados, en el caso de que el pedido se haya pagado con tajeta Por ejemplo, en la tienda te pueden pagar con paypal, con baintre, amazon pay, etc. Y todos estos pedidos se generan con el estado "pago aceptado" y la tienda envía un email de confirmación de pedido. Pues lo que quiero hacer es que esos emails se sigan enviando con normalidad excepto en un método de pago "pago con tarjeta". (Digo pago con tarjeta porque es el más habitual pero imagino que el proceso será el mismo para otros métodos de pago una vez averigue como hacerlo.) Y como llevo un rato buscando el archivo donde se controla el envío de emails sin conseguir absolutamente nada, aquí estoy, pidiendo socorro a la comunidad. Espero que alguien pueda ayudarme y de antemano muchas gracias por vuestro tiempo saludos Edited December 5, 2019 by JairoA (see edit history) Link to comment Share on other sites More sharing options...
Luisejo Posted November 19, 2019 Share Posted November 19, 2019 (edited) Hola @JairoA Mira, lo que puedes hacer es acceder a Configurar -> Configuración de pedidos. Y es ahí donde puedes desactivar las notificaciones que desees. Saludos. Edited November 19, 2019 by Luisejo (see edit history) Link to comment Share on other sites More sharing options...
JairoA Posted December 3, 2019 Author Share Posted December 3, 2019 (edited) Hola @Luisejo Muchas gracias por tu respuesta. En efecto, desde esa pantalla se puede elegir el email que se quiere enviar en cada estado de pedido. Pero existe un email, el email de confirmación de pedido (order_conf) que prestashop envía automáticamente cada vez que entra un pedido en la tienda. Lo que estaba buscando es la manera de desactivar ese email en determinador métodods de pago, es decir, no quiero enviar ese email cuando el cliente pague con tarjeta (redsys), por ejemplo. Y he encontrado la manera de hacerlo basándome en este post: https://victor-rodenas.com/2017/04/10/evitar-que-el-cliente-reciba-el-email-de-confirmacion-en-prestashop/ En el post se puede encontrar la manera de evitar que el cliente reciba el email de confirmación de pedido comentando una parte del código de /classes/PaymentModule.php Y siguiendo esa lógica se puede desactivar ese email teniendo en cuenta el método de pago. En vez de comentar el código del post, se puede agregar una condición al if que está antes de Mail::send. Así es como lo he dejado yo: if (Validate::isEmail($this->context->customer->email) && stristr($order->payment, 'Redsys') == FALSE) { Mail::Send( (int) $order->id_lang, 'order_conf', Context::getContext()->getTranslator()->trans( 'Order confirmation', array(), 'Emails.Subject', $orderLanguage->locale ), $data, $this->context->customer->email, $this->context->customer->firstname . ' ' . $this->context->customer->lastname, null, null, $file_attachement, null, _PS_MAIL_DIR_, false, (int) $order->id_shop ); } De esa forma el email de confirmación de pedido se sigue enviando excepto cuando el pedido haya usado como método de pago "Redsys". No sé si es la manera adecuada de hacerlo o la más optima pero lleva una semana funcionando y no da problemas. Espero que a alguien le sirva y si he cometido un gran error que alguien me abra los ojos jeje. Saludos Edited December 3, 2019 by JairoA (see edit history) 1 Link to comment Share on other sites More sharing options...
Luisejo Posted December 4, 2019 Share Posted December 4, 2019 Muchas gracias por tu aporte @JairoA Ahora solo nos falta marcar el hilo del foro como [Solucionado] Un saludo. 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