Jump to content

SOLUCIONADO. No quiero correo de pedido si hay un error en el pago


erty2288
 Share

Recommended Posts

Tengo una duda con el pago con tarjeta y es si se puede quitar la notificación de nuevo pedido por correo si el pago con tarjeta no ha sido aceptado, es decir que solo me entren correos de nuevos pedidos si a sido tramitado correctamente hasta el final.

La cosa es que no me interesa que aun habiéndose no aceptado el pedido, me llega un correo se nuevo pedido en mi tienda, eso si, con un mensaje en la parte correspondiente de que verifique si el pago esta realizado, pero me aparece en el correo todo igual que como si estuviera aceptado. 

Mi tienda es una pizzeria con lo cual tener que verificar en el backofice si esta el pedido aceptado con el pago aceptado o no, me hace perder un tiempo que en esos momento no tengo. Me seria mucho mas fácil que solo me generara correo si el pago esta aceptado. Al cliente le queda claro que el pedido no ha sido pagado correctamente porque ademas del mensaje de error de la pasarela de pagos, he incluido una pagina donde retorna la pasarela en donde se lo explico y le indico la manera de recuperar el pedido y volver a intentarlo o pagar con otro método de pago.

A ver si alguien sabe si es posible.

Muchas gracias

Edited by erty2288 (see edit history)

Share this post


Link to post
Share on other sites

Prueba asi, no lo he probado, añade en esta parte el codigo de color rojo

 

// Send 1 email by merchant mail, because Mail::Send doesn't work with an array of recipients

$merchant_mails = explode(self::__MA_MAIL_DELIMITOR__, $this->_merchant_mails);

 

if (file_exists(_PS_MAIL_DIR_.$iso.'/new_order.txt') &&

file_exists(_PS_MAIL_DIR_.$iso.'/new_order.html')

)

$dir_mail = _PS_MAIL_DIR_;

 

if ($dir_mail)

foreach ($merchant_mails as $merchant_mail)

{

if ($id_order_state != Configuration::get('PS_OS_ERROR'))

Mail::Send(

$id_lang,

'new_order',

sprintf(Mail::l('New order : #%d - %s', $id_lang), $order->id, $order->reference),

$template_vars,

$merchant_mail,

null,

$configuration['PS_SHOP_EMAIL'],

$configuration['PS_SHOP_NAME'],

null,

null,

$dir_mail,

null,

$id_shop

);

}

}

Share this post


Link to post
Share on other sites

Prueba a dejarlo asi

 

// Send 1 email by merchant mail, because Mail::Send doesn't work with an array of recipients

$merchant_mails = explode(self::__MA_MAIL_DELIMITOR__, $this->_merchant_mails);

 $id_order_state = (int)Tools::getValue('id_order_state');

if (file_exists(_PS_MAIL_DIR_.$iso.'/new_order.txt') &&

file_exists(_PS_MAIL_DIR_.$iso.'/new_order.html')

)

$dir_mail = _PS_MAIL_DIR_;

 

if ($dir_mail)

foreach ($merchant_mails as $merchant_mail)

{

if ($id_order_state != Configuration::get('PS_OS_ERROR'))

Mail::Send(

$id_lang,

'new_order',

sprintf(Mail::l('New order : #%d - %s', $id_lang), $order->id, $order->reference),

$template_vars,

$merchant_mail,

null,

$configuration['PS_SHOP_EMAIL'],

$configuration['PS_SHOP_NAME'],

null,

null,

$dir_mail,

null,

$id_shop

);

}

}

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More