Como vimos hace poco, hay diversos estados de pedido en WooCommerce, y también aprendimos que, por defecto, las pasarelas de pago suelen asignar un estado de pedido por defecto a los pedidos realizados por los clientes.
Estos estados de pedido por defecto asignados por las pasarelas de pago más populares son los siguientes:
Transferencia bancaria – En espera
Cheque – En espera
Contra reembolso – En espera
Stripe – Procesando
PayPal – Procesando
RedSys – Procesando
Pero ¿y si tú prefieres cambiar esos estados de pedido por defecto de las distintas pasarelas?
Podrías por ejemplo, cambiarlas a:
Transferencia bancaria – Pendiente
Cheque – Pendiente
Contra reembolso – Pendiente
Stripe – Completado
PayPal – Completado
RedSys – Completado
Y simplificarías procesos a la hora de gestionar los pedidos de WooCommerce.
Cómo cambiar el estado de pedido de las pasarelas de pago
Si estás decidido, solo necesitarás añadir unas líneas de código a tu instalación de WooCommerce, como explicaba en esta sencilla guía de cómo y dónde copiar y pegar códigos en WordPress.
El código sería como este:
/* Cambiar estado de pedido de transferencias bancarias */
add_filter( ‘woocommerce_bacs_process_payment_order_status’, ‘ayudawp_cambiar_estado_pedido_transferencias’, 9999, 2 );
function ayudawp_cambiar_estado_pedido_transferencias( $status, $order ) {
return ‘pending’;
}
Este código en concreto cambiará el estado de pedido por defecto de los pagos mediante transferencia bancaria (woocommerce_bacs_process_payment_order_status) al estado de pendiente (pending).
Cómo adaptar el código de ejemplo
En el código de ejemplo anterior, además del nombre de la función personalizada que hace referencia a la utilidad del código (ayudawp_cambiar_estado_pedido_transferencias), que deberías cambiar de nombre según el uso que vaya a tener, lo importante son estos 2 elementos:
El filtro woocommerce_ID-DE-LA-PASARELA-DE-PAGO_process_payment_order_status, en el que deberás cambiar el ID de la pasarela de ejemplo (bacs, para las transferencias bancarias, por el ID adecuado de cada pasarela.
La acción de retorno, que será el nuevo estado (en el ejemplo pending)
Los IDs de las pasarelas de pago más habituales, y el filtro para cada una, que puedes adivinar en la URL cuando la estás gestionando, son estos:
Transferencia bancaria (bacs) – woocommerce_bacs_process_payment_order_status
Contra reembolso (cod) – woocommerce_cod_process_payment_order_status
Cheque (cheque) – woocommerce_cheque_process_payment_order_status
PayPal (paypal) – woocommerce_paypal_process_payment_order_status
Stripe (stripe) – woocommerce_stripe_process_payment_order_status
RedSys (redsys) – woocommerce_redsys_process_payment_order_status
Bizum (bizumredsys) – woocommerce_bizumredsys_process_payment_order_status
Y los códigos de estados de pedido a los que puedes cambiar son estos:
En espera – on-hold
Pendiente – pending
Procesando – processing
Completado – completed
Cancelado – cancelled
Reembolsado – refunded
Falló – failed
Y aquí tienes unas capturas de dónde puedes verlos:
Otro ejemplo de cambio de estado de pedido de pasarela de pago
Para que veas cómo aplicar el código para cambiar el estado de otra pasarela de pago, aquí tienes cómo haríamos para que los pedidos realizados con Stripe, en vez de quedar en estado de procesando, su estado por defecto después del pedido sea el de completado.
/* Cambiar estado de pedido de Stripe */
add_filter( ‘woocommerce_stripe_process_payment_order_status’, ‘ayudawp_cambiar_estado_pedido_stripe’, 9999, 2 );
function ayudawp_cambiar_estado_pedido_stripe( $status, $order ) {
return ‘completed’;
}
Espero haberlo explicado bien y de manera sencilla, y que con esta sencilla guía seas capaz de decidir tú el estado de pedido por defecto para la distintas pasarelas de pago activas en tu tienda online con WooCommerce.