Isključite \”wc-ajax=get_refreshed_fragments\” i ubrzajte WordPress sajt [WooCommerce]

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