¿Me ayudas a llegar a más gente?

Cuando alguien hace una compra en tu tienda, WooCommerce añade esa compra automáticamente a la lista de pedidos y le asigna un estado en función del método de pago que haya usado el cliente.

Los estados de los pedidos te permiten identificar en qué fase se encuentra cada uno de ellos, por ejemplo; si un pedido está “En espera“, quiere decir que los productos de ese pedido se han descontado del stock, pero aún no se ha recibido el pago del mismo.

WooCommerce asocia un estado por defecto de pedido a cada pedido recibido, pero no actualiza ese estado aunque tú hayas recibido el dinero y el cliente ya tenga el paquete en su domicilio. Al final eres tú quien tiene que actualizar el estado del pedido a “Completado” de forma manual.

En esta entrada te voy a mostrar un sencillo método para cambiar el estado del pedido en WooCommerce de forma automática.

Truco para actualizar automáticamente el estado de un pedido en WooCommerce a COMPLETADO.

Exceptuando la pasarela de pago de Paypal (si se ha configurado correctamente), todas las demás no actualizan el estado del pedido a “Completado“, sino que lo dejan “En espera” o “Procesando“.

En este caso, lo que buscamos es que todo pedido recibido se considere directamente como un pedido completado. Bien sea porque trabajas con pasarelas de pago instantáneas -es decir, el pago se recibe por adelantado- o porque simplemente no quieres preocuparte de marcar manualmente los pedidos que ya se hayan completado. (Una tarea un tanto engorrosa si recibes un número de pedidos elevado)

Obviamente esta opción se puede configurar a través de plugins, pero los que he encontrado son plugins de pago muy completos que incluyen multitud de funciones más y para el caso que nos ocupa, creo sinceramente que no merece la pena.

La solución que yo te propongo se basa en usar un sencillo código snippet, ahorrándonos así añadir más carga de plugins a la tienda online. Si aún no estás familiarizado con estos códigos y no estás seguro de cómo usarlos, te recomiendo que leas antes este artículo en el que te hablo de cómo hacerlo de forma correcta; Añadir códigos snippet en WooCommerce de forma correcta.

// 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' );
    
    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.

El código anterior está configurado para aplicar el cambio de estado a todos los pedidos que se hayan pagado usando cualquiera de las siguientes pasarelas de pago:

  • Transferencia Bancaria Directa (ID = ‘bacs‘)
  • Pago mediante cheques (ID = ‘cheque‘)
  • Pago en entrega (ID = ‘cod‘)
  • Paypal (ID = ‘paypal‘)

Si quieres quitar o añadir nuevos métodos de pago al código anterior, simplemente modifica la siguiente línea:


     $paymentMethods = array( 'bacs', 'cheque', 'cod', 'paypal' );

Por ejemplo, si quieres añadir un nuevo método de pago que estés usando en tú tienda, tendrías que modificar el código de la siguiente manera:


     $paymentMethods = array( 'bacs', 'cheque', 'cod', 'paypal', 'ID_nuevo_método_pago' );

Donde ID_nuevo_método_pago será el ID de la nueva pasarela de pago.

Para saber qué ID corresponde a cada pasarela, simplemente entra en “WooCommerce > Ajustes > Finalizar compra > Opciones de pago” y justo al final de la página verás todas las pasarelas habilitadas y sus IDs.

Actualizar estado pedidos WooCommerce según método de pago

Con esto ya sería suficiente para hacer el cambio automático del estado del pedido.

Sin embargo, si dejamos los ajustes generales de WooCommerce tal cual están, cuando un cliente realice su pedido, recibirá dos emails al mismo tiempo; uno diciendo que su pedido se está procesando y otro avisando de que su pedido se ha completado.

Lo ideal sería notificarle directamente de que su pedido está completado y no enviarle el primer email para no crear confusión.

¿Cómo se hace esto? Muy sencillo.

Desde tu panel de administración entra en “WooCommerce > Ajustes > Emails > Procesando tu pedido” y desmarca la casilla “Habilitar“. Con esto conseguirás que no se envíe el primer email.

Como ves, la solución que te he propuesto para cambiar el estado del pedido en WooCommerce de forma automática es bien sencilla y sin necesidad de plugins adicionales.

Ni que decir tiene, que si en algún momento quieres volver a modificar el estado de un pedido, lo podrás hacer sin problema desde el panel de edición del pedido.

Si te ha gustado, por favor ayúdame a difundirlo. ¡Gracias!

Uso de cookies

Este sitio web utiliza cookies para que disfrutes de una mejor experiencia de usuario. Si continúas navegando estarás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, clica en el enlace para mayor información.

ACEPTAR
Aviso de cookies