WooCommerce je najpopularniji dodatak za kreiranje prodavnice u WordPress-u. Ukoliko ste nekada testirali brzinu svog sajta na alatima gtmetrix ili pingdom, možda ste uočili komponentu “wc-ajax=get_refreshed_fragments” kojoj treba poprilično dosta vremena da se učita. U zavisnosti od brzine servera, ovo može usporiti sajt do 20 sekundi.
Ukoliko imate problem sa učitavanjem vašeg vebsajta zbog ovoga rešenje postoji.
Šta je wc-ajax=get_refreshed_fragments?
Primer:
WooCommerce pokušava da prikupi podatke o korpi za kupovinu pozivajući ovu skriptu i njoj treba dosta vremena da se završi. Nažalost keširanje nije rešenje.
<script type='text/javascript'>
/* <![CDATA[ */ var wc_add_to_cart_params = {"ajax_url":"\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View Cart","cart_url":"http:\/\/localhost\/shop\/cart\/","is_cart":"","cart_redirect_after_add":"yes"}; /* ]]> */
</script>
Ovo je deo koda koji poziva skriptu.
Kako rešiti ovaj problem?
Problem može biti rešen opozivanjem skripte tako što ćete dodati kod u functions.php fajl vaše teme putem WP Admin panela ili FTP-a. Imate tri rešenja:
- Ugasiti samo za početnu stranicu
- Ugasiti za početnu stranicu i članke
- Ugasiti svuda osim na stranicama za kupovinu
1. Ugasite samo na početnoj
Kod dodajete na kraj functions.php fajla vaše teme
/** Disable Ajax Call from 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'); }
Kada je fajl ažuriran, otiđite na “WooCommerce > Settings” meni pa na “Display” sekciju ispod “Products” taba. Čekirajte čekboks “Redirect to the cart page after successful addition”.
2. Ugasiti za početnu stranicu i članke
/** Disable Ajax Call from WooCommerce on front page and posts*/
add_action( 'wp_enqueue_scripts', 'dequeue_woocommerce_cart_fragments', 11);
function dequeue_woocommerce_cart_fragments() {
if (is_front_page() || is_single() ) wp_dequeue_script('wc-cart-fragments');
}
3. Ugasiti svuda osim na stranicama za kupovinu
/** Disable All WooCommerce Styles and Scripts Except Shop Pages*/
add_action( 'wp_enqueue_scripts', 'dequeue_woocommerce_styles_scripts', 99 );
function dequeue_woocommerce_styles_scripts() {
if ( function_exists( 'is_woocommerce' ) ) {
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
# Styles
wp_dequeue_style( 'woocommerce-general' );
wp_dequeue_style( 'woocommerce-layout' );
wp_dequeue_style( 'woocommerce-smallscreen' );
wp_dequeue_style( 'woocommerce_frontend_styles' );
wp_dequeue_style( 'woocommerce_fancybox_styles' );
wp_dequeue_style( 'woocommerce_chosen_styles' );
wp_dequeue_style( 'woocommerce_prettyPhoto_css' );
# Scripts
wp_dequeue_script( 'wc_price_slider' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-add-to-cart' );
wp_dequeue_script( 'wc-cart-fragments' );
wp_dequeue_script( 'wc-checkout' );
wp_dequeue_script( 'wc-add-to-cart-variation' );
wp_dequeue_script( 'wc-single-product' );
wp_dequeue_script( 'wc-cart' );
wp_dequeue_script( 'wc-chosen' );
wp_dequeue_script( 'woocommerce' );
wp_dequeue_script( 'prettyPhoto' );
wp_dequeue_script( 'prettyPhoto-init' );
wp_dequeue_script( 'jquery-blockui' );
wp_dequeue_script( 'jquery-placeholder' );
wp_dequeue_script( 'fancybox' );
wp_dequeue_script( 'jqueryui' );
}
}
}
Napomena: izaberite samo jednu od ove tri opcije
Postoji i plugin ukoliko ovo rešenje iz nekoga razloga ne možete da primenite
https://wordpress.org/plugins/disable-cart-fragments-littlebizzy/