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

¿Por qué falla Bizum en WooCommerce? 9 causas

Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…

hace % días

Plugin gratuito Redsys WordPress: qué revisar

Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…

hace % días

Qué necesito para activar CECA Online en mi web

¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…

hace % días

Cómo elegir una pasarela para suscripciones

Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…

hace % días

Plugin Bizum WordPress para cobrar con control

Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…

hace % días

Cómo aceptar CECA en reservas de WordPress

Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…

hace % días