Los pedidos de MercadoPago se quedan en «Procesando» en WooCommerce: causas y soluciones

Uno de los problemas más comunes que experimentan los usuarios de WooCommerce que utilizan el plugin oficial de MercadoPago es que, a pesar de que el cliente realiza el pago correctamente, el pedido nunca pasa del estado «procesando» a «completado». En este artículo, exploraremos las posibles causas de este comportamiento y cómo solucionarlo, incluyendo un snippet de código para automatizar el cambio de estado en casos apropiados.

 

¿Por qué los pedidos quedan en estado «Procesando»?

WooCommerce maneja los estados de los pedidos de la siguiente manera:

  • Si el producto no es virtual ni descargable, el pedido pasa a «procesando» tras un pago exitoso.
  • Si el producto es virtual y descargable, WooCommerce lo marca automáticamente como «completado».
  • Sin embargo, si algo falla en el proceso de confirmación de pago (por ejemplo, el webhook no responde correctamente), el pedido puede quedarse en «procesando» indefinidamente, aunque MercadoPago ya haya aprobado el pago.

 

Causas comunes del problema

  1. Webhook de MercadoPago mal configurado o sin respuesta
    • El webhook es responsable de notificar a WooCommerce que el pago fue exitoso. Si no está configurado correctamente o falla, el pedido no se actualiza adecuadamente.
    • Verifica la configuración del webhook en tu panel de notificaciones de MercadoPago.
    • Asegúrate de que apunte a la URL correcta: https://tusitio.com/?wc-api=wc_gateway_mercadopago
  2. Productos físicos
    • WooCommerce nunca marcará como «completado» automáticamente un pedido que contenga productos físicos, ya que asume que requieren envío manual.
  3. Problemas de compatibilidad o conflictos de plugins
    • Plugins de seguridad, caché o checkout personalizado pueden interferir con la recepción de notificaciones de MercadoPago.
  4. Fallas en el plugin de MercadoPago
    • En algunos casos, el plugin puede no interpretar correctamente la respuesta del servidor o asociar incorrectamente el order_id con el payment_id.

 

¿Cómo identificar el problema?

  1. Activar los logs de WooCommerce
    • Desde el panel: WooCommerce > Estado > Logs
    • Selecciona uno de los archivos que comienzan con mercadopago y revisa los errores o respuestas del webhook.
    • Para más detalles sobre cómo utilizar el sistema de registros de WooCommerce, puedes consultar el artículo. Cómo usar el sistema de logs de WooCommerce en tus plugins.
  2. Probar con productos virtuales y descargables.
    • Para testear, puedes crear un producto de prueba con ambas opciones marcadas. Si el pedido se completa correctamente, el sistema funciona, pero el comportamiento es intencional para productos físicos.

 

Solución opcional: Forzar pedidos de MercadoPago como «completados»

Si tus productos no requieren procesamiento manual (por ejemplo, son licencias digitales, accesos, enlaces de descarga que no están marcados como descargables), puedes forzar que los pedidos pagados con MercadoPago pasen de «procesando» a «completado» automáticamente.

Agrega este snippet en el archivo functions.phpde tu tema hijo o en un plugin personalizado:

<?php
add_action( 'woocommerce_thankyou', function ( $orderId ) {
    $order = wc_get_order( $orderId );
    
    if ( ! $order ) {
        return;
    }

    if ( $order->get_payment_method() === 'mercadopago' && $order->has_status( 'processing' ) ) {
        $order->update_status( 'completed', 'Estado forzado tras pago exitoso con MercadoPago.' );
    }
} );
Utiliza este código solo si estás seguro de que tus productos no requieren envío ni procesamiento manual. De lo contrario, podrías omitir pasos importantes de logística.

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x