Avisos
Vaciar todo

Pedidos exitosos marcados como cancelados  

 
MALCOLM
 MALCOLM
Nuevo usuario

Hola,

Desde hace unos días tenemos un problema con los pedidos que están entrando, se marcan como cancelados cuando realmente el pago se procesó con éxito y no nos llega aviso por email y al revés un pedido que finalmente no se procesó el pago lo marcó como procesando. He estado mirando en foros y algunas veces esto pasaba por incompatibilidades con plugins de envíos, pero no tenemos ninguno instalado. En redsys nos dicen que el módulo es antiguo, pero he mirado el plugin y está instalada la última versión. Ya no sé qué más hacer....

Muchas gracias y un saludo,

Natalia

Contenido solo visible a usuarios registrados

Citar
Respondido : 22/02/2023 11:14 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Malcolm.

Por defecto los pedidos cuando terminan de la pasarela de pago se quedan en estado pendientes no cambia el estado y es el administrador el que tienen que cambiar el estado del pedido.

Cuando un pedido lleva un tiempo en estado pendiente, WooCommerce lo cambia a cancelado y los productos vuelven a estar disponibles, esto se hace para llevar un control de stock.

 

.- Accede a WooCommerce -> Ajustes -> productos -> Inventario

.- En la opción Mantener en inventario (en minutos)  es donde le indicas cuánto tiempo puede estar un pedido en estado pendiente antes de cancelar el pedido, si quieres que no se cancele el pedido dejas la celda vacía:

screenshot joomlero cp7004.webjoomla.es 2023.02.22 12 51 56

Puedes modificar este comportamiento y que los pedidos queden en otro estado:

.- Añade lo siguiente al archivo functions.php que encontras en wp-content -> themes -> tu_plantilla o si utilizas algún plugin para añadir código como puede ser Code Snippets

// Actualiza automáticamente el estado de los pedidos a COMPLETADO
add_action( 'woocommerce_order_status_processing', 'actualiza_estado_pedidos_a_completado' );
add_action( 'woocommerce_order_status_on-hold', 'actualiza_estado_pedidos_a_completado' );
function actualiza_estado_pedidos_a_completado( $order_id ) {
global $woocommerce;

//ID's de las pasarelas de pago a las que afecta
$paymentMethods = array( 'bacs', 'cheque', 'cod', 'paypal', ‘redsys’ );

if ( !$order_id ) return;
$order = new WC_Order( $order_id );

if ( !in_array( $order->payment_method, $paymentMethods ) ) return;
$order->update_status( 'completed' );
}

Esta función lo que realiza es modificar los estados de los pedidos a completado.

 

En este enlace tienes documentación:

-> https://www.webempresa.com/blog/cambiar-estado-del-pedido-en-woocommerce-automaticamente.html

 

Un saludo

 

ResponderCitar
Respondido : 22/02/2023 12:01 pm

wpdoctor-revisa-la-salud-de-tu-wordpress