Tutoriales

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.

Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.

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

Francisco Javier Carazo Gil

Entradas recientes

Checkout seguro: cobra sin perder conversiones

Configura un checkout seguro en WordPress y WooCommerce para proteger pagos, reducir errores de integración…

hace % días

Checkout seguro: cobra sin perder conversiones

Configura un checkout seguro en WordPress y WooCommerce para proteger pagos, reducir errores de integración…

hace % días

¿Qué aporta la integración de Bizum y métodos similares en el proceso de pago?

El comercio electrónico español, que se encuentra en pleno crecimiento y transformación, vive actualmente un…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Mejores addons para suscripciones WooCommerce

Compara los mejores addons para suscripciones WooCommerce y elige pagos, membresías y automatizaciones compatibles con…

hace % días

Desarrollo de plugins a medida WordPress

El desarrollo de plugins a medida WordPress resuelve pagos, reservas y flujos propios con integración…

hace % días