Dentro de los estados de pedidos en Woocommerce, tambien tenemos que tener en cuenta que mediante los diferentes plugins, las pasarelas de pago suelen asignar estados de pedido que tienen por defecto. Generalmente son estados de pedido tipo a los que ya trae por defecto Woocommerce o personalizados por la pasarela tipo a:
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 pedidos en woocommerce por defecto de las distintas pasarelas? ¿Simplificarías estos estados de pedido y gestión de procesos para los pedidos de Woocommerce? Yo la mayoría de las veces, si, y tu cliente lo va a querer, nunca les vale asi que tenlo en cuenta.
Cómo personalizar el estado de pedidos en Woocommerce de las pasarelas de pago
Pues si ya tienes claro que lo que quieres es personalizar esos estados de pedido en Woocommerce y como se quedan, lo más sencillo en añadir una líneas de código al functions de tu wordpress y modificarlo a tu gusto.
Si ya requieres algo un poco más complejo, puedes hacer tu propio plugin, aunque en la mayoría de los casos no vas a necesitar tantos cambios, aquí te dejo tambien donde y como añadir estos códigos (snippets) para personalizar los estados de pedido en Woocommerce o WordPress.
Te pongo un ejemplo de como modificar el estado a pendiente de las transferencias bancarias, puedes adaptarlo al estado de pedido que quieras:
/* Cambiar estado de pedido de transferencias bancarias */
add_filter( 'woocommerce_bacs_process_payment_order_status', 'empc_cambiar_estado_pedido_transferencias', 9999, 2 );
function empc_cambiar_estado_pedido_transferencias( $status, $order ) {
return 'pending';
}
Con este código en concreto que te pongo, lo que cambias es los estados de pedido por defecto para los pagos por transferencias bancarias (woocommerce_bacs_process_payment_order_status
) al estado de pendiente (pending
).
Adaptar el código de ejemplo
Pero claro, es el código de ejemplo que te doy y seguramente tu necesites tu propio código para personalizar tus estados de pedido.
Pues tan solo tienes que personalizar la función anterior (empc_cambiar_estado_pedido_transferencias)
y cambiar su nombre por el que mejor de venga según el uso que quieras darle teniendo en cuenta 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 que más te vas a encontrar y el filtro para cada una de estas ID’s, que también puedes ver mediante la URL cuando se gestiona:
- 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 estados de pedido en Woocommerce que puedes modificar son estos:
- En espera –
on-hold
- Pendiente –
pending
- Procesando –
processing
- Completado –
completed
- Cancelado –
cancelled
- Reembolsado –
refunded
- Falló –
failed
Otra forma de cambio en el estado de pedido
Otro ejemplo para cambiar el estado de pedido de una pasarela de pago diferente es por ejemplo con stripe, aunque lo puedes aplicar a la que necesites, y que 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', 'empc_cambiar_estado_pedido_stripe', 9999, 2 );
function empc_cambiar_estado_pedido_stripe( $status, $order ) {
return 'completed';
}
Creo que es una manera sencilla de explicar como cambiar estados de pedido aunque como todo, dependerá de las necesidades que tengas y del cliente que te encuentres, es una de las tantas maneras de personalizar las tiendas Woocommerce para adaptarlas a las necesidades de cualquier tienda online Woocommerce.