Categorías
woocommerce

Cambiar estado del pedido en WooCommerce automáticamente

Vas a ver como con este sencillo método cambiaras el estado del pedido en WooCommerce de forma automática a procesado.

Insertar en funtions.php

// 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
    // bacs - Transferencia bancaria directa
    // cheque - Pagos por cheque
    // cod - Contra reembolso
    // redsys - Redsys redirección
    // paytpv - paycomet con Tarjeta
    $paymentMethods = array( 'bacs', 'cheque', 'cod', 'redsys' ,'paytpv' );
    
    if ( !$order_id ) return;
    $order = new WC_Order( $order_id );

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

El código anterior se activa en la página de agradecimiento, cuando el cliente ya ha finalizado la compra y se le muestra toda la información con el resumen de su pedido.

En ese momento, el código anterior toma el ID del pedido y automáticamente cambia su estado a Completado

Una vez activado el sniper, muy recomendado desactivar el envió de correo Procesando tu pedido, sino llegaran 2 email seguidos el de procesando y el de completado.

Para desactivarlo entrar en Panel de administración > WooCommerce > Ajustes > Emails > Procesando tu pedido y deshabilitarlo.

Con esto conseguirás que no se envíe el primer email.