• Hola Jairo, he tenido la oportunidad de de usar este plug y el que ofrece el mismo PayU Latam para descargar de su sitio, y debo decir que este plugin funciona ?mil veces mejor!. El de PayU Latam me arroja varios errores con los datos transmitidos, además incluyen un paso extra luego de dar clic en el checkout donde el usuario debe volver a dar clic en pagar para por fin ser direccionado a la plataforma de pagos.

    Sin embargo veo que este plug no se actualiza desde hace 6 a?os, y con la última actualización de woocommerce, me está arrojando algunos errores que de cara al cliente, parecen no influir en el proceso, porque las transacciones pasan sin problemas y son aprobadas, canceladas, o pendientes como normalmente sucede.

    Pero en los logs, cada vez que alguien registra una nueva compra aparecen las siguents 4 líneas de error:

    ——-
    1. id was called incorrectly. Order properties should not be accessed directly. Backtrace: require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), do_action(‘template_redirect’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action(‘wc_ajax_checkout’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_payulatam->process_payment, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.

    2. order_key was called incorrectly. Order properties should not be accessed directly. Backtrace: require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), do_action(‘template_redirect’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action(‘wc_ajax_checkout’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_payulatam->process_payment, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.

    3. The woocommerce_get_page_id function is deprecated since version 3.0. Replace with wc_get_page_id.

    4. The wc_get_page_id argument is deprecated since version 2.1. The “pay” and “thanks” pages are no-longer used – an endpoint is added to the checkout instead. To get a valid link use the WC_Order::get_checkout_payment_url() or WC_Order::get_checkout_order_received_url() methods instead.
    ——-

    No soy experto en código y realmente no sé cómo lo puedo solucionar, sin embargo te agradezco o agradeco a quien tenga el conocimiento y me pueda ayudar a corregir estos errores…

Viewing 3 replies - 1 through 3 (of 3 total)
  • me pasa exactamente lo mismo, dejo un reply para que la gente lo vea, tambien me sucede que no se actualiza el estado del pedido, no se si tiene que ver con el plugin pero agredeceria cualquier asesoramiento, la ultima vez un cliente pudo entrar 2 veces a un link de pago y los dos fueron aprobados para una misma compra, se tuvo que realizar reembolso

    Hola @diegogomez lamentablemente este plugins pareciera que ya no tiene soporte por parte de su autor, quizás motivado a que PayuLatam sacó su propia versión la cual al ver el código se puede decir que es un fork (bifurcación) de este desarrollado por Jairo, solo que con algunas mejoras y compatibilidad para Woocommerce 3.x y el código distribuido en (3) archivos, en lugar de (1) solo.

    No sé que clases de errores te arroja el plugin nativo de PayU Latam, hasta ahora ninguno de nuestros clientes nos han manifestado problema, y actualmente todos se encuentran usando la versión más reciente de Woocommerce (v5.2.2) y del plugin nativo de PayuLatam (v2.0) los que aún se encontraban usando este, si presentaron algunos problemas como los que menciona @cristian996 donde los estados de los pedidos no se actualizan correctamente.

    Para corregir los errores que mencionas hay que sentarse y analizar todo el código escrito por Jairo ya que algunas funciones que usa han quedado depreciadas en las versiones recientes de Woocommerce.

    Con respecto a tu punto: “…, además incluyen un paso extra luego de dar clic en el checkout donde el usuario debe volver a dar clic en pagar para por fin ser direccionado a la plataforma de pagos.”

    Te explico brevemente y en modo simple (ya que manifiestas no ser experto en código) como solucionarlo en el plugin nativo de PayuLatam, con una peque?as líneas que hemos tomado de este plugin desarrollado por el amigo Jairo:

    Descarga el plugin nativo de Payu Latam para Woocommerce descomprímelo y dentro de la carpeta woocommerce-payu-latam debes buscar el archivo payu-latam.php

    Muy bien, ahora, abrimos el archivo payu-latam.php si no tienes instalado ningún editor de código (que facilitaría la labor) bien lo puedes hacer con el bloc de notas de Windows.

    Si tienes un editor de código busca la línea 199, si lo has abierto con bloc de notas busca el siguiente trozo de código: (Para buscar en bloc de notas presiona Ctrl+B)

    $payu_args_array[] = "<input type='hidden' name='$key' value='$value'/>"; (Esta línea es la 198)

    Ok, en la línea 199 encontrarás una llave curva de cierre ( } )

    Qué vamos a hacer, en la línea siguiente (línea 200) vas a pegar el siguiente código:

    /**start jQuery Redirection to Payu Latam Gateway Payment*/
    		$code='jQuery("body").block({
    						message: "' . esc_js( __( 'Gracias por su pedido. Ahora le redirigimos a PayU Latam para realizar el pago.', 'payu_latam' ) ) . '",
    						baseZ: 99999,
    						overlayCSS:
    						{
    							background: "#fff",
    							opacity: 0.6
    						},
    						css: {
    					        padding:        "20px",
    					        zindex:         "9999999",
    					        textAlign:      "center",
    					        color:          "#555",
    					        border:         "3px solid #aaa",
    					        backgroundColor:"#fff",
    					        cursor:         "wait",
    					        lineHeight:		"24px",
    					    }
    					});
    				jQuery("#submit_payu_latam").click();';
    				
    			if (version_compare( WOOCOMMERCE_VERSION, '2.1', '>=')) {
    				 wc_enqueue_js($code);
    			} else {
    				$woocommerce->add_inline_js($code);
    			}
    		/**end jQuery Redirection to Payu Latam Gateway Payment*/

    Este código va a ocupar las líneas 200 hasta la 227

    Finalmente guardamos los cambios, cargamos el plugin en nuestro sitio WordPress y probamos que funciona correctamente.

    Cómo esto es un agregado al código original del plugin nativo de PayuLatam, deberás volver a realizar estos pasos si actualizas el plugin en el futuro.

    Thread Starter diegogomez

    (@diegogomez)

    @ommixyz gracias por tu respuesta.

    Tienes toda la razón con respecto a esta versión no oficial y la de PayU, y lo ideal sería que PayU haga las mejoras en su código para optimizar el proceso, pero con tus indicaciones por ahora podría ser suficiente, aún no lo he probado, pero muchas gracias.

    Respecto a los errores que me arroja el plug ofical, son varios, la verdad le perdí el hilo por que sigo utilizando el plug de jairo que me arroja menos errores, por lo menos en el momento en que los comparé ambos, pero realizaré los ajustes que me indicas con el plug oficial y escribiré nuevamente para ver cómo me va.

    Gracias.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Actualización ?por favor! Jairo’ is closed to new replies.