¿Cómo eliminar pedidos fallidos automáticamente en WooCommerce?

En tiendas WooCommerce es común acumular pedidos con estado «fallido» debido a intentos de pago incompletos o errores en la transacción. Aunque estos pedidos no afectan directamente las ventas, pueden saturar la base de datos y generar confusión operativa, especialmente en sitios con alto volumen de tráfico.

Eliminar estos pedidos automáticamente puede ayudar a mantener la tienda ordenada y optimizada. A continuación, te mostramos cómo hacerlo con un simple código.

¿Cuándo se considera un pedido «fallido»?

  • El cliente abandona el proceso de pago
  • Hay un error con la pasarela de pago
  • La transacción es rechazada por el banco o tarjeta

Riesgo de mantener pedidos fallidos

  • Generan ruido en reportes
  • Ocupan espacio innecesario en la base de datos
  • Pueden causar problemas si el sitio genera accesos, QRs o correos automáticos al crearse el pedido

Solución: Borrar pedidos fallidos automáticamente

Puedes hacerlo con este snippet en tu plugin de funciones personalizadas o usando un plugin como Code Snippets:

add_action('woocommerce_order_status_failed', 'dani_eliminar_pedidos_fallidos_automaticamente');

function dani_eliminar_pedidos_fallidos_automaticamente($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);
    if ($order && $order->get_status() === 'failed') {
        wp_delete_post($order_id, true); // Borrado permanente
    }
}

Consideraciones:

  • El código elimina el pedido de inmediato al cambiar a estado «fallido»
  • Es borrado permanente (no va a papelera)
  • Si prefieres enviarlo a la papelera usa wp_trash_post($order_id);

Recomendaciones finales

  • Asegúrate de tener un respaldo de la base de datos
  • Prueba el snippet primero en un entorno staging o local
  • Usa este método solo si estás seguro de que los pedidos fallidos no tienen valor operativamente

Con esta acción, mantendrás tu base de datos más limpia y evitarás posibles abusos por parte de usuarios que aprovechen accesos generados por errores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *