Buenas tardes,
Les escribo por que sus compañeros de soporte me han referido al foro y espero puedan ayudarme. Aunque las métircas ede páginas de analisis es bastante buena la página web sigue cargando lento. En especial la home y la página de cualquier producto cuando le das a añadir al carrito.
Desde soporte han dicho que intnete desactivar wc-ajax=get_refreshed_fragments (carga dos veces por cada acceso que se realiza a la web,)pero eso ya lo he hecho con un snipet. No se si esta seria la unica solución o pueden ayduarme de alguna otra forma.
Muchas gracias
Contenido solo visible a usuarios registrados
Hola Rafael,
Este tipo de conflictos suele ser muy comunes en WooCommerce y está relacionado mucho con wc-ajax=get_refreshed_fragments que se utiliza para actualizar de forma dinámica el carrito en la cabecera sin necesidad de recargar la página, es muy útil, pero puede volverse una carga innecesaria y generar este comportamiento en un sitio web.
De momento veo que la web carga muy bien, sin embargo, para mayor detalle indícanos que código están añadiendo, actualmente si reviso tu sitio web no veo este desactivado por lo menos en tu pagina de inicio:
Ten en cuenta que dependiendo del código este desactiva el cart fragment solo en el home o todas las páginas, por ejemplo para desactivarlo en todas las páginas exceptuando el carrito y el checkout puedes utilizar
add_action( 'wp_enqueue_scripts', 'conditionally_remove_cart_fragments', 20 );
function conditionally_remove_cart_fragments() {
if ( ! is_cart() && ! is_checkout() ) {
wp_dequeue_script( 'wc-cart-fragments' );
wp_deregister_script( 'wc-cart-fragments' );
}
}
Puedes verificar esto y comprobar como va todo
Un Saludo
Hola, el código que usamos es este:
/** Deshabilitar las llamadas Ajax WooCommerce **/
add_action( 'wp_enqueue_scripts', 'dequeue_woocommerce_cart_fragments', 11);
function dequeue_woocommerce_cart_fragments() {
if (is_front_page()) wp_dequeue_script('wc-cart-fragments');
}
Lo he cambiado por el que me has adjuntado. Este también puede ser el motivo por el que al intentar añadir un producto al carrito tarde tanto en hacerlo?
Muchas gracias
Hola, Rafael
El código facilitado por mi compañera lo que hace es simplemente evitar la carga innecesaria del script wc-cart-fragments en páginas que no son el carrito de compra ni la página de finalizar compra, es decir, todas las páginas menos esa, lo que mejora los tiempos de carga durante la navegación por la tienda y no afecta al evento de añadir al carrito productos.
Una mejora que le puedes hacer a dicho código es añadir comprobación a wc-cart-fragments para saber si está en estado enqueued (encolado), algo que por defecto WooCommerce suele hacer. Con esto se añade una capa de seguridad y se evitan posibles errores si el script no se encola en ciertas circunstancias.
Tendrías que sustituir tu actual código, en el plugin de "snippets" que uses, por el siguiente:
add_action( 'wp_enqueue_scripts', 'conditionally_remove_cart_fragments', 20 );
function conditionally_remove_cart_fragments() {
if ( ! is_cart() && ! is_checkout() && wp_script_is( 'wc-cart-fragments', 'enqueued' ) ) {
wp_dequeue_script( 'wc-cart-fragments' );
wp_deregister_script( 'wc-cart-fragments' );
}
}
Apenas, es una ligera modificación, pero que añade esa comprobación.
Quedo pendiente de tus indicaciones para seguir ayudándote. 😊
Hola, ya hemos hecho la modificación. Muchas gracias
Hola, Rafael
De nada, gracias a ti. 😊
Cualquier consulta que tengas al respecto, no dudes en comunicarlo.
Cerramos el tema, pero si por cualquier causa necesitas reabrirlo, dínoslo vía ticket citando este hilo y lo reabrimos. 😉
Un saludo