Pedidos procesando y completado editables en WooCommerce

Cuando tienes un comercio electrónico, lo normal es que una vez recibes el pago, no puedas editarlo. En otras palabras si el estado del pedido es “Procesando” o “Completado”, no podrás editar su contenido. El cliente pidió una cosa y ha pagado por ello. ¿Por qué vas a editarlo?

Pues esa es la norma, lo que suele pasar por lo general, pero es verdad que más de un cliente de WooCommerce, que con el tema de las pasarelas de pago para WordPress conocemos bastantes, lo necesita. ¿Por qué? Razones cada uno tiene las suyas, pero es verdad, que por defecto, lo único que podrás hacer en caso de querer modificar un pedido es:

  • Crear una devolución y devolver parte del mismo. El problema de este método, es que es posible que realmente no sea devolución como tal.
  • Otra posibilidad es pasar el pedido a “Pendiente de pago”, editarlo y volverlo a pasar a procesando. Este segundo método es más limpio a priori, pero como el pedido vuelve a pasar a “Procesando”, tiene un inconveniente y es que se ejecutan todos los hooks asociados (por ejemplo el correo de “Nuevo pedido”) y genera problemas y dudas entre gestores de la tienda e inconvenientes.

¿Cuál es la solución? WooCommerce ofrece un hook para decir si un estado es editable, así que será el que usemos. Os cuento cómo.

Cómo editar pedidos procesando o completados con WooCommerce

El hook en cuestión es wc_order_is_editable, es de tipo filtro y recibe dos parámetros:

  • $is_editable: un parámetro que incluye si el pedido actual es editable o no
  • $order: el objeto del pedido

Para el caso que nos ocupa, deberíais poner en vuestro tema hijo o plugins de funciones la siguiente función:

add_filter( 'wc_order_is_editable', 'cod_pedidos_editables', 10, 2 );
function cod_pedidos_editables( $is_editable, $order ) {
    if( in_array( $order->get_status(), array( 'processing', 'completed' ) ) )
        return true;

    return $is_editable;
}

Como veis, básicamente accedemos al estado del pedido, vemos si es “procesando” o “completado” y si lo es, devolvemos true. Para todos los demás casos, devolvemos el que trae por defecto.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
Cargando…

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Carrito