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.