Pregunta sobre Transdirect Shipping Plugin for Woocommerce de Wordpress:

La activación provoca un error de tiempo de cURL

Un usuario preguntó 👇

¡Dios los bendiga! ¡Gran plugin! Buen diseño de las páginas de la tienda. Espero que asista a Mackay en NQLD, ¡vale la pena el esfuerzo de resolución de problemas!

Veo problemas de conexión y no estoy seguro de si es mi servidor, WordPress, Jetpack, Woo Commerce o este plugin. Dado que TransDirect usa la API Rest, creo que Jetpack necesita estar conectado a WordPress, sin embargo, tan pronto como activo TransDirect obtengo lo siguiente:

Estado del sitio> Problemas críticos
Error de API de descanso: [] Error de CURL 28: la operación se realizó después de 10000 milisegundos con 0 bytes recibidos Error de bucle invertido: [] Error 28 de CURL: operación temporizada después de 10001 milisegundos y 0 bytes recibidos

Tengo todos los demás plugins desactivados (incluidas las pasarelas de pago), solo sucede cuando TransDirect está activado.

¿Debo ver (o corregir) algún libro web en WooCommerce? Es difícil saber a dónde acudir para solucionar este problema.

Si no atiende a Mackay, avíseme por todos los medios y ahórrese un dolor de cabeza a los dos

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 6 meses

Hola de nuevo. Me pregunto si alguien ya está viendo esto.

He hablado con mi empresa de alojamiento y están convencidos de que el plugin TransDirect está «yendo más allá de la salida cURL esperada». Ellos escribieron:

En la investigación, no encontramos ningún error de inicio de sesión del lado del servidor que indique un error de configuración (como un tiempo de espera o un mal funcionamiento que podamos solucionar), ni mencionamos ningún inicio de sesión de log_security que mencione un bloqueo de cualquier aplicación API específica en su sitio web. «

Una vez más, si no atiende a Mackay, dígalo y marcaré el problema como resuelto.

(@tdreece)

Hace 1 año, 5 meses

Hola Ozcoolie,

El problema parece ser un límite de tiempo para los servidores establecidos para las respuestas cURL. Cuando solicite una cotización de nuestros servicios, solicitaremos una cotización en tiempo real a nuestros transportistas. Desafortunadamente, esto a veces demorará entre 10 y 20 segundos en obtener una respuesta de algunos de nuestros socios operadores. Actualmente estamos trabajando en un método para aumentar el tiempo de respuesta de nuestras cotizaciones independientemente de nuestros socios proveedores, pero mientras tanto recomiendo aumentar este límite a 20 segundos en su sitio web.

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 5 meses

Gracias por tu respuesta @tdreece.

Sin duda, aplicaré un límite de tiempo más largo, ya que puedo entender claramente cómo podría suceder esto si un visitante está completando un pedido en el front-end, pero esto está sucediendo en el back-end tan pronto como sea posible. El plugin está activado. La única solicitud de API que se realiza en ese momento es (creo) la autenticación, ¿es correcto?

Para probar algunas teorías, utilicé Apiary para escribir mi propio plugin de API para averiguar qué tan rápido se ejecuta la autenticación; la respuesta es casi inmediata.

Debido a que la tienda aún no está activa, no tenemos reservas, por lo que una edición de API en las reservas devuelve una edición vacía, de nuevo casi de inmediato. Espero que las respuestas de reserva disminuyan un poco cuando tengamos algunas para regresar.

No he investigado el código de su plugin, pero me pregunto si interactúa con la API Rest integrada. Me parece que mi plugin de prueba es la página de carga más rápida en la administración hasta ahora sin pasar por la API Rest.

¿Es posible que la API Rest Rest integrada esté ralentizando las cosas?

(@tdreece)

Hace 1 año, 5 meses

Hola @ozcoolie

La creación de la consulta puede tener algunas características adicionales que ofrece el plugin en comparación con las citas en vivo solo. El plugin sincronizará el inventario de su tienda con el área de miembros y también intentará sincronizar los nuevos pedidos de los clientes. El retraso es uno de estos posibles procesos. Veré si podemos agregar algunas opciones a nuestro plugin para deshabilitar estas funciones en caso de que esto suceda.

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 5 meses

Además, mientras estoy en el tema de la API pública de Transdirect … Desde que creé un plugin, creo que también podría usarlo para generar una descripción general como la que se muestra en la página de su panel de control.

La sección de Reservas establece que todas las posibles listas de estado son: cotizado, reservado, pagado, pendiente, confirmado, cancelado, recogido, en_transito, entrega, error. Tengo algunas preguntas sobre estos estados.

1) Si se asume que la lista de estados se proporciona en el orden exacto en que ocurren los eventos, también es seguro asumir que:

Esperando la recogida tiene algo que haya alcanzado el estado «confirmado» (que no sea «declarado») y

Por cierto ¿Hay algo «pick_up» o «in_transit» y «delivery» significa que el cliente recibió el envío?

2) Dado que muchos son correctos hasta ahora, y asumiendo que todo lo reservado a través del frente del almacén está «reservado por» y «pagado» por el receptor, es seguro asumir que cualquier pago / factura pendiente (que debemos pagar) ¿Son aquellos en los que el valor es «reservado_por» «remitente» y el estado ha ido más allá de «reservado» pero no «confirmado»? ¿Lo ha logrado todavía?

Entiendo que esto es una gran aceptación y todos sabemos lo que dicen sobre ASS-U-ME, así que quiero confirmación y / o corrección 🙂

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 5 meses

@tdreece Jeepers! esa fue una respuesta rápida. Gracias por los comentarios sobre la API Rest integrada … realmente lo apreciamos. Seguiré adelante e implementaré su sugerencia, ya que sería trágico si ocurriera un lapso de tiempo en la parte delantera.

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 5 meses

@tdreece

Aunque no es una mejor solución ya que sirvo a este sitio web en particular como un dominio de plugin, el tiempo de espera de cURL de 20 segundos en el servidor no resolvió el problema (también probé 30 segundos para el propósito del ejercicio).
Error: [] CURL Error 28: operación temporizada después de 30001 milisegundos y 0 bytes recibidos

La mejor solución para mi situación es ingresar el filtro de WordPress «http_request_args» en el plugin MU del subdominio:

function oz_debug_url_request_args($r, $url){
        $r["timeout"] = 30;
        return $r;
}

Sin embargo, esto tampoco resolvió el problema.
Error: [] Error 28 de CURL: operación temporizada después de 30001 milisegundos y 0 bytes recibidos

Si el plugin Transdirect estuviera usando PHP para solicitudes HTTP, podría:
curl_setopt($curl, CURL_TIMEOUT, 20000);
.. ya que solo necesita el plugin Transdirect. Como mi propio plugin de prueba usa PHP, esto funciona como se esperaba, aunque estoy comenzando a dudar de que no resolvería el problema en particular.

Sin escribir el plugin Transdirect, aprecio cómo puedo brindar más ayuda para aislar la causa. Pero no dude en reunirse conmigo con sugerencias si tiene alguna. Dispuesto a ayudar 🙂

Esta respuesta fue modificada hace 1 año, 5 meses.

(@tdreece)

Hace 1 año, 5 meses

@ozcoolie, su comprensión de los distintos estados es correcta, todo lo que haya alcanzado el estado ‘confirmado’ se ha reservado con éxito por mensajería, pero no hay escaneos de seguimiento para expresar la recopilación.

El campo ‘reservar por’ que proporcionamos durante la reserva es una opción que se puede seleccionar manualmente para que podamos ver quién es el responsable del envío. Sin embargo, esto no es un problema para nuestros clientes con números de cuenta, ya que nuestro servicio se puede utilizar de forma ad-hoc sin una cuenta, debemos especificarlo.

Al enviar productos desde su tienda a uno de sus clientes, el valor del campo ‘reservado_por’ debe establecerse para el remitente. El valor de este campo no afecta el estado de la reserva para pagos. El pago solo impedirá la recepción de ‘Certificados’ si el método de pago en la cuenta está configurado como un método prepago, como PayPal / tarjeta de crédito, si el pago falla. Si su cuenta se liquida en una cuenta de crédito pospago, no se requiere el pago inmediato, por lo que la reserva procederá a la confirmación.

Agradezco su rápida respuesta después de aumentar el tiempo de espera de cURL y enviar esto a nuestros desarrolladores.

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 5 meses

@tdreece Gracias por confirmar y aclarar la API pública.

Decidí hacer un pedido para ver si el tiempo de espera de cURL afecta en absoluto a la interfaz; respondió perfectamente y sin mala conducta al escribir una dirección. Puedo ver el pedido resultante en el panel de miembros de su sitio web y todos los detalles son correctos.

Sin embargo, mi llamada a la API en todas las reservas sigue devolviendo una matriz vacía. Y Apiary sigue produciendo datos de demostración, no la reserva, incluso cuando proporciono el ID de reserva. La única llamada que devuelve los datos esperados es obtener el miembro actualmente autenticado.

Y, si bien es excelente en la parte frontal, el plugin Transdirect no hace mucho en la parte posterior. Puedo ver la reserva seleccionada por el usuario y el ID de mensajería en campos personalizados y eso es todo. ¿Cómo realizan los clientes el seguimiento de sus pedidos si no son actualizaciones de estado a través de Woo Commerce?

¿Sería correcto suponer: si quiero más funcionalidad, tendré que usar la API pública?

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 5 meses

Además … FYI: los datos de visualización que restaura Apiary generan errores json_decode en PHP. Json_last_error informa «JSON_ERROR_SYNTAX» que creo que falta en los corchetes de matriz alrededor de matrices anidadas, por ejemplo:


        "quotes": {
            "toll" : {
                "price": 47.87,
                "insured_amount" : 0,
                "service_type": "road",
                "transit_time": "1-2 days" 
            },
            "allied" : {
                "price" : 56.97,
                "insured_amount" : 0,
                "service_type": "road",
                "transit_time": "1-2 days"
            },
            "couriers_please" : {
                "price": 53.65,
                "insured_amount" : 0,
                "service_type": "road",
                "transit_time": "1-2 days"
            }
        }

… debe haber corchetes .i "quotes" : [{...}, {...}]

No estoy seguro de si esto tiene algo que ver con el hang cURL, pero pensé en mencionarlo de todos modos.

Lanzador de hilos

(@ozcoolie)

Hace 1 año, 5 meses

@tdreece Acabo de descubrir que este problema de tiempo de espera está afectando a la interfaz, pero solo para Firefox para dispositivos móviles (hasta ahora).

Ha pasado por todo el proceso de deshabilitar todos los demás plugins nuevamente y solo está sucediendo con el plugin Trandirect habilitado. FF no lo informa como un error JS ni nada, no carga ningún CSS, por lo que parece estar sucediendo al principio de la secuencia de carga.

Fuimos en vivo el mismo día del hallazgo, tal vez el arma saltó un poco 😮

(@transdirect)

Hace 1 año, 2 meses

Hola @ozcoolie,

Nos disculpamos por cualquier inconveniente.

¿Puede proporcionarme su dirección de correo electrónico para que nuestro equipo de soporte pueda comunicarse con usted para obtener más información sobre su sitio web y que podamos analizar el problema antes que usted?

Gracias. Equipo de soporte de Transdirect

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

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