Pedido de WooCommerce siempre entra como pendiente de pago

Buenas tardes Estiamd@s.

Tengo un problema que no le puedo encontrar la solución.
Tengo una web Ecommerce con WooCommerce “Versión 3.4.4” WooCommerce Mercado Pago “Versión 3.0.16”. (Ya probé actualizando a la última versión los dos plugins, no funciona).

Cuando un cliente comprar un producto, a mí me llega la notificación, el pago se efectúa con éxito, etc. El problema es que: EL PEDIDO SIEMPRE ENTRA COMO PENDIENTE DE PAGO y nunca se le envía ninguna notificación vía email al comprador. Antes, el pedido entraba como procesando y automáticamente le enviaba un email a comprador diciéndole que su pedido estaba en proceso, ahora, siempre queda como pendiente de pago, aunque el pago ya haya ingresado en mi cuenta de MercadoPago. Yo tengo ir al panel de control de pedidos y hacerlo todo manual, cambiar el pedido a procesando y después a completado y ahí recién envía todo el email al cliente.

¿A alguno le paso algo parecido con las últimas actualizaciones de MercadoPago o WooCommerce?

Ya levanté un backup que tenía, pero nada, el problema sigue igual. En los registros de WooCommerce me tira este alerta/error:

2018-08-03T10:33:00+00:00 CRITICAL Uncaught Error: Call to undefined method WC_WooMercadoPago_Gateway::calculate_shipping() in /home/ruhdesod/public_html/wp-content/plugins/woo-mercado-pago-module/mercadopago/mercadopago-gateway.php:1901
Stack trace:
#0 /home/ruhdesod/public_html/wp-content/plugins/woo-mercado-pago-module/mercadopago/mercadopago-gateway.php(1847): WC_WooMercadoPago_Gateway->check_mercado_envios(Array)
#1 /home/ruhdesod/public_html/wp-includes/class-wp-hook.php(286): WC_WooMercadoPago_Gateway->successful_request(Array)
#2 /home/ruhdesod/public_html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(’’, Array)
#3 /home/ruhdesod/public_html/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
#4 /home/ruhdesod/public_html/wp-content/plugins/woo-mercado-pago-module/mercadopago/mercadopago-gateway.php(1557): do_action(‘valid_mercadopa…’, Array)
#5 /home/ruhdesod/public_html/wp-includes/class-wp-hook.php(286): WC_WooMercadoPago_Gateway->check_ipn_response(’’)
#6 /home/ruhdesod/public_html/wp-includes/class-wp-hook.php(31

Hola y tenés todo actualizado a la última versión?
Y en cuanto a PHP que versión estás usando? probaste a cambiarla?

Que tal.

Mientras vas encontrando el error y analizando en tu ambiente de desarrollo, puedes hacer el cambio automático de status de pendiente a procesando desde tu página de gracias en producción.

add_action( 'woocommerce_thankyou', 'letsgo_auto_processing_orders');
function letsgo_auto_processing_orders( $order_id ) {
    if ( ! $order_id )
        return;

    $order = wc_get_order( $order_id );

    // If order is "pending" update status to "processing"
    if( $order->has_status( 'pending' ) ) {
        $order->update_status( 'processing' );
    }
}

Recuerda ponerle más condiciones como que sea la pasarela de pago de Mercado Pago y otros parámetros.

Espero te sirva
Saludos

Muchas gracias “gonzalesc”, voy a probar este hook a ver si me funciona.

Respondiendo a las preguntas de “marcelo.ampm”: Si, actualice los dos a la ultima versión y tengo PHP7, también intente levantar a levantar un backup que tenia, cuando todavía no había actualizado los plugin, pensando que el problema era tal vez era las ultimas versiones, pero nada tampoco funciono.

Muchas gracias por responder y a aportar, se agradece muchísimo.

Que hosting es? Les comentaste a ver si hay algún tipo de bloqueo a nivel servidor que puedan chequearte ellos? o incluso mirando en los logs si hay requests desde la IP de MercadoPago?

Pudiste resolverlo? Tengo exactamente el mismo problema.

Hola @Alan_Toro.
No, sabes que no, levante backup de cuando la web funcionaba bien, probé con todas las versiones de MercadoPago y WooCommerce, cambie de template. La semana pasada, de la nada empezó a funcionar bien. Funciono bien dos o tres dias, y hace uno días, otra vez se volvió a joder. Los pedidos me siguen entrando todo en “Pendiente de Pago”

Lo que no probe, fue con el codigo/hook que proporciona @gonzalesc. No se si esto puede ser una alternativa. La verdad es muy rato, para mi es algo de MercadoPago, pero el tema es que tengo otras web que si funcionan bien.

Saludos.

Hola, alguien pudo resolver el problema?
Tengo instalado WooCommerce 3.5.3 y MercadoPago 3.0.17 con la misma situación.
Luego de varios días los pedidos Completados vuelven a estado Procesando.
Si el pago falló por alguna circunstancia (tarjeta sin saldo por ejemplo), queda como Pendiente de Pago aunque luego el cliente haga el pago por otro medio y MercadoPago lo informe. En las Notas del Pedido aparece continuamente el mensaje “Mercado Pago: El cliente todavía no efectuó el pago.”
Al final, en algunos casos opto por enviar a la Papelera el pedido luego que se completa para que no siga apareciendo como pendiente.
Muchas gracias

Hola @Rodolfo, tengo un cliente al que le pasa lo mismo. Tenían pedidos Completados incluso, y semanas después les aparecen de la nada marcados como Pendientes de Pago… Podría ser un bug de MercadoPago… no tengo pruebas ni tampoco otra explicacion…

Pero tengo sin embargo otros clientes con mucho más tráfico de pedidos y no les pasa aunque tienen la misma versión de WooCommerce y el plugin de MercadoPago, así que no se si depende de algún otro plugin de Woo, o quizás problemas con sus clientes, o con su cuenta de MercadoPago… Es inexplicable por ahora…

Muchas gracias Marcelo, seguiremos esperando…

Buenas tengo el mismo problema , con la misma version de woocommerce y mercadopago.
Alguno pudo resolverlo?

Hola encontraron alguna solución a esto? tengo el mismo problema

Disculpame que te mosleste, pero encontraste la solucion a esto?? me pasa lo mismo

Hola Facundo, la verdad que hasta ahora no. El cliente que tenia este problema, de un día para el otro le empezó a funcionar bien todo, pero ahora, otra vez le esta pasando lo mismo y funciona mal.
Nosotros nunca tocamos nada. Estoy seguro que es un error/falla de MercadoPago con WooCommerce.
El problema no es de WooCommerce, es de MP estoy casi seguro.

1 me gusta

@luizgutierrez usas el plugin de Mercado Pago de Kijam?

Saludos

Probaste con la version 3.1 del plugin de Mercado que ahora pide las credenciales de custom checkout porque no van más las básicas?

@gonzalesc Yo siempre instalo la versión oficial de MercadoPago, la que están en el repositorio de plugins de Wordpress.
Siempre veo 2, una en ingles y otra en español. La verdad no se cual es la diferencia.
La de Kijam no lo use nunca.

@marcelo.ampm Esta versión de MP que mencionas ¿Se descarga del repositorio oficial de Wordpress?

Sí, la 3.1 que se actualizó hace unos días… Probá cambiando las credenciales por las de custom checkout en la versión actualizada del plugin. Porque se que MP venía teniendo “problemas de performance” en sus servidores porque procesan miles de operaciones por hora…

Buen dia! a mi me pasa lo mismo y no he encontrado respuesta coincido que debe ser de MP que ya viene arrastrando varios bug inclusive actualizando su plugin siguen ocurriendo.

tomando en consideracion la solucion de @gonzalesc dejo aca su codigo con el filtro para que sea solo en mercadopago…a mi me funciono como solucion parcial hasta q se solucione en el plugin:

coloquemos esto en el functions.php

//pasar orden de pendiente en MP

add_action( ‘woocommerce_thankyou’, ‘letsgo_auto_processing_orders’);
function letsgo_auto_processing_orders( $order_id ) {
if ( ! $order_id )
return;
$order = wc_get_order( $order_id );
//ID’s de las pasarelas de pago a las que afecta
$paymentMethods = array( ‘woo-mercado-pago-basic’ );
if ( !in_array( $order->payment_method, $paymentMethods ) ) return;
// If order is “pending” update status to “processing”
if( $order->has_status( ‘pending’ ) ) {
$order->update_status( ‘processing’ );
} }

espero les sirva y gracias a @gonzalesc por la idea original

Saludos

3 Me gusta