https://tdestudiodesign.com/wp-content/plugins/whatsapp/style.css

Si estás aquí, es porque tu sitio web de WooCommerce es lento y te preguntas por qué «/? Wc-AJAX = get_refreshed_fragmentsLa URL genera retrasos y cargas de servidor (picos).

Además, hay demasiada literatura en línea sobre los fragmentos de CART de WooCommerce Ajax (incluidos complementos específicos y opciones de complementos de rendimiento), y desea aprender rápidamente lo que son antes de comprender si debe deshabilitarlos y cómo debe deshabilitarlos.

Las herramientas de optimización de rendimiento como Pingdom y Gtmetrix a menudo culpan a esta pequeña funcionalidad de WooCommerce. Y deshabilitarlo cuidadosamente puede darle un impulso en la velocidad, la carga de la página y, en última instancia, la tasa de conversión de ventas.

Así que aquí está todo lo que necesitas saber.

¿Cuáles son los fragmentos de carro de WooCommerce Ajax?

Pero primero, para aquellos de ustedes que no lo saben: que es ajax?

En el desarrollo web, Ajax (AJAX = JavaScript y XML asíncrono) es una técnica de desarrollo web que, en pocas palabras, le permite Ejecutar funciones sin actualizar páginas del sitio web.

Piense en el «AJAX Agregar al carrito» en la página de WooCommerce Shop: puede agregar productos al carrito (y actualizar el carrito) sin forzar una recarga de una página; AJAX se ejecuta en segundo plano y se comunica con el servidor «asincrónicamente».

Ahora que esto está claro, descubramos ¿Qué son los fragmentos de carro de WooCommerce Ajax? y que la url «tuye.com/?wc- AJAX=GET_REFRESHED_FRAGMENTS«Representa.

Actualización del carrito de AJAX en la página de WooCommerce Shop cuando Ajax Agregar al CART está habilitado. El widget del carrito se actualiza sin forzar una recarga de una página / redirección.

En pocas palabras, incluso en sitios pequeños, e incluso en páginas que no son de wooCommerce, WooCommerce intenta «obtener» los detalles del carrito de compras para que pueda estar listo para «recalcular» el carro cada vez que se hace algo (¡o no se hace!) en una página de WordPress dada.

Este permite que WooCommerce mantenga el widget del carrito actualizado e inmediatamente «escuche» a cualquier evento AJAX ADD al CART que pueda requerir una actualización de CART.

Básicamente, WooCommerce llama «/? Wc-AJAX = get_refreshed_fragments«Para actualizar los elementos del carrito y el carro total asincrónicamente, es decir, sin la necesidad de actualizar la página del sitio web que está visitando.

Ajax es increíble y todo, sin embargo, no subestiman las implicaciones de rendimiento y los conflictos de complementos que esta pequeña funcionalidad podría causar. Que nos lleva a la siguiente sección …

¿Por qué deshabilitar los fragmentos de CART de WooCommerce Ajax?

Para realizar la actualización del carrito en cada página de su sitio web, WooCommerce ejecuta esta funcionalidad AJAX cada vez.

Incluso en la página Acerca de. Incluso en la página de inicio si no tiene productos. Incluso en la página de contacto si solo tiene un formulario de contacto.

Si su tema no proporciona un widget desplegable del carrito de WooCommerce, y si no tener productos que se puedan agregar al carrito En una página de sitio web específica, será mejor que elimine toda la funcionalidad AJAX.

Además, si elige entre la configuración de WooCommerce para redirigir a los usuarios al carrito después de agregar cualquier producto al carrito, definitivamente está forzando una redirección de página (a la página del carrito), por lo que tener los fragmentos de Ajax Cart activos es bastante inútil.

En WooCommerce> Configuración> Productos> General se recomienda deshabilitar AJAX AGREGAR A LOS COMPORTAMIENTO DE CART Y, si es posible, para habilitar la redirección a la página del CART. Esto siempre forzará una recarga de una página (y/o una redirección) y, por lo tanto, guardará al usuario una llamada AJAX necesaria para actualizar el carrito sobre la marcha.

Idealmente, Los únicos lugares donde «/? Wc-AJAX = get_refreshed_fragments«Deberían correr son Páginas y archivos de WooCommerce donde sus clientes puede agregar al carrito y desea usar un widget de carrito dinámico

Por ejemplo, si tiene botones de carrito en sus páginas de categoría y desea que el widget del carrito se actualice en consecuencia sin una recarga de página (y tiene un agregado AJAX al carrito habilitado), entonces necesita «/? Wc-AJAX = get_refreshed_fragments« activo.

Además, en el Página de carro Puede cambiar cantidades o eliminar elementos sin actualizar la página, y allí también desea que el widget del carrito actualice en consecuencia (pero la verdadera pregunta aquí es: ¿Por qué hay un widget de carrito en la página del carrito, ya que no tiene sentido?). Entonces, en la página del carrito también necesitas «/? Wc-AJAX = get_refreshed_fragments» activo, o el widget no se actualizará si actualiza el carrito.

Conclusión:

  1. Si tu tema no tiene un widget de carro de encabezado dinámicopuede deshabilitar «/? wc-ajax = get_refreshed_fragments»
  2. Si su tema tiene un widget de carrito de encabezado dinámico, pero no le importa Mostrando el contenido del widget del carrito sobre la marchapuede deshabilitar «/? wc-ajax = get_refreshed_fragments» en todas partes
  3. Si desea mantener activa la funcionalidad del widget del carritodebe deshabilitar «/? wc-ajax = get_refreshed_fragments» solo en esas páginas donde no hay AJAX agregar a la funcionalidad del carrito (archivos de productos de wooCommerce) o funcionalidad de actualización del carrito (página del carrito)

¿Cómo deshabilitar los fragmentos de CART de WooCommerce Ajax?

Ahora que entendimos qué son los fragmentos de CART y por qué/cuando se deben eliminar, podemos entrar en un poco de codificación.

Por supuesto, hay complementos para eso, pero cuando puede lograr una funcionalidad como esta con unas pocas líneas de PHP, no tiene sentido encontrar una solución diferente, incluso si no sabe cómo codificar.

Pero primero, veamos cómo WooCommerce agrega esta llamada de Ajax (en términos de desarrollo, diríamos «cómo consulta este script «).

En primer lugar, el guión «fragmentos de WC-CART«Se describe mediante una función llamada» registro_scripts () «. Llama a un script JS desde la carpeta /activos y requiere que se habiliten jQuery y cookies:

 'wc-cart-fragments' => array( 'src'     => self::get_asset_url( 'assets/js/frontend/cart-fragments' . $suffix . '.js' ), 'deps'    => array( 'jquery', 'js-cookie' ), 'version' => WC_VERSION, ), 

En el mismo archivo, este es el momento «fragmentos de WC-CART«Se llama:

 self::enqueue_script( 'wc-cart-fragments' ); 

Si observamos la función «enqueue_script ()», descubriremos que nuestro «fragmentos de WC-CART«El script se registra primero y luego se enoja según la documentación de WordPress (https://developer.wordpress.org/reference/functions/wp_enqueue_script)

 private static function enqueue_script( $handle, $path = '', $deps = array( 'jquery' ), $version = WC_VERSION, $in_footer = true ) { if ( ! in_array( $handle, self::$scripts, true ) && $path ) { self::register_script( $handle, $path, $deps, $version, $in_footer ); } wp_enqueue_script( $handle ); } 

Si algo está «enoado», entonces puede ser «dequuoso» (similar a las funciones ADD_ACTION () y remove_action () php).

Debe asegurarse de llamar a la función «Dequeue» después de la «Enqueue», de modo que ya se haya agregado y puede eliminarla (de ahí la prioridad = 11 como «fragmentos WC-CART» está enoado a la prioridad predeterminada de 10).

TL;

 /**  * @snippet       Disable WooCommerce Ajax Cart Fragments Everywhere  * @how-to        businessbloomer.com/woocommerce-customization  * @author        Rodolfo Melogli, Business Bloomer  * @compatible    WooCommerce 3.6.4  * @community     https://businessbloomer.com/club/  */  add_action( 'wp_enqueue_scripts', 'bbloomer_disable_woocommerce_cart_fragments', 11 );   function bbloomer_disable_woocommerce_cart_fragments() {  wp_dequeue_script( 'wc-cart-fragments' );  } 

Tenga en cuenta que en caso de que tenga un widget de carrito de encabezado, Esto romperá el «carrito desplegable». Todavía podrá ver la cantidad de artículos y el total de carros en el encabezado, pero en el flotador no obtendrá los artículos y los botones de carrito/pago.

En Business Bloomer, deshabilité por completo el widget del carrito, por lo tanto, tiene sentido usar esta función.

En caso de que quieras Simplemente optimice su página de inicio y deje los «fragmentos WC-CART» en las otras páginas del sitio webpuedes usar este fragmento en su lugar:

 /**  * @snippet       Disable WooCommerce Ajax Cart Fragments On Static Homepage  * @how-to        businessbloomer.com/woocommerce-customization  * @author        Rodolfo Melogli, Business Bloomer  * @compatible    WooCommerce 3.6.4  * @community     https://businessbloomer.com/club/  */  add_action( 'wp_enqueue_scripts', 'bbloomer_disable_woocommerce_cart_fragments', 11 );   function bbloomer_disable_woocommerce_cart_fragments() {  if ( is_front_page() ) wp_dequeue_script( 'wc-cart-fragments' );  } 

Pensamientos finales: WooCommerce Ajax Cart Fragments Sí o No?

Hemos visto que los fragmentos de carro de AJAX «podrían» darle un impulso en la velocidad del sitio web, pero también «podría» causar algunos problemas, principalmente si desea seguir usando su widget de carrito desplegable.

Entonces, en esta sección quiero ver lo que otros han descubierto con respecto a «/? Wc-AJAX = get_refreshed_fragments».

¿Realmente le da más beneficios que desventajas? ¿Realmente aumenta la velocidad de la página de su sitio web? ¿Vale la pena deshabilitar los fragmentos de carro?

Alerta de spoiler: Eso depende.

Colm Troy de Commercegurus Fragmentos de carro de Ajax profundamente probados (así como otros bits que debe leer en su artículo: https://www.commercegurus.com/guides/speed-upwooCommerce/) Y, en su guía, descubrió que:

… El tiempo de solicitud «/? Wc-AJAX = get_refreshed_fragments» toma 448 ms, que es, con mucho, nuestra solicitud HTTP más lenta en este punto.

En algunos servidores más lentos con bases de datos grandes y mal optimizadas, esta solicitud a menudo puede tardar más de 1-2 segundos en ejecutarse.

La buena noticia es que esta solicitud no se bloquea y se ejecuta bien después de que el DOM se cargue, por lo que, en general, no hace daño nuestros tiempos de carga percibidos (pero definitivamente perjudica nuestros tiempos completamente cargados y puede dañar algunas cosas que GPSI se preocupa por el tiempo como el tiempo. a interactiva y en la primera CPU inactiva).

También me dijo recientemente que:

He llegado a la conclusión de que los novatos de WooCommerce a menudo terminan rompiendo sus sitios eliminando fragmentos, ya que no han pensado completamente en todos los diferentes escenarios de dónde puede aparecer un widget de carro, por lo que definitivamente es uno para proceder con precaución.

En las tiendas de WooCommerce con picos de carga y toneladas de tráfico, lo primero que hacemos es deshacerse de los fragmentos de carritos, eliminar los widgets del carrito y hacer que los clientes se redirigan al carrito al agregar al carro.

Mantiene las cosas agradables, simples y rápidas 🙂

¿Quieres mantener la conversación? Comparta sus comentarios, pruebas y opinión en los comentarios 🙂

Deja una respuesta

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