Dość powszechny problem w sklepach internetowych z WooCommerce to nadmierne obciążenie procesora żądaniami AJAX koszyka. Fix wc-ajax = get_refreshed_fragments High CPU Usage.
Zawartość
Nadmierne obciążenie procesów CPU według dowolnego obecnego scenariusza, nie robi nic innego, jak… zmniejsza szybkość ładowania stron sklepu internetowego, aby uzyskać niski wynik SEO i doświadczenia użytkownika. Mniej zamówień na stronie.
Do czego służy i do czego służy zapytanie wc-ajax = get_refreshed_fragments
Dla zrozumienia wszystkich, za pomocą tego skryptu AJAX, WooCommerce dopuszczać dodawanie produktów do koszyka i aktualizowanie koszyka bez odświeżania strony internetowej. Koszyk będzie komunikował się asynchronicznie z serwerem hosta poprzez AJAX (Asynchronous JavaScript and XML).

Domyślnie, /?wc-ajax=get_refreshed_fragments
jest obecny na wszystkich stronach witryny, aby śledzić działania Add to Cart użytkownika oraz zmian, które mogą pojawić się w widżecie koszyka. Te działania uruchamiają procesy CPU i spowolnić ładowanie stron internetowych. Czasami o 4-5 sekund, a to dużo.
Naprawiono wc-ajax = get_refreshed_fragments Wysoki CPU Użycie (Wyłącz fragmenty koszyka AJAX)
Jeśli nie korzystasz z widżetu dynamicznego koszyka w nagłówku lub w innym stałym obszarze sklepu, najlepiej zrezygnować z dynamicznej aktualizacji i śledzenia akcji dodawania/aktualizacji koszyka.
Możesz to wyłączyć AJAX Cart Fragments na stronach archiwum i przekierowuj użytkowników bezpośrednio do koszyka po dodaniu produktu do koszyka.
WooCommerce → Settings → Products.

Jeśli chcesz pozostawić ten skrypt aktywny ”Add to Cart Ajax”, ale aby nie uruchamiać się na pierwszej stronie sklepu, edytuj plik functions.php bieżącego motywu i dodaj następujący kod:
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'); }
W scenariuszu, w którym oprócz stron WooCommerce masz też bloga lub inne spersonalizowane strony, na których nie ma produktów, dobrym pomysłem jest wyłączenie z nich fragmentów.
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');
}
Całkowita dezaktywacja i fix wc-ajax = get_refreshed_fragments High CPU Usage (Disable AJAX Cart Fragments) odbywa się to za pomocą następującego kodu:
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_account_page () &&! 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');
}
}
}
Po wybraniu jednej z tych metod (zwłaszcza tej ostatniej) od razu zauważysz wzrost szybkości ładowania sklepu internetowego i znacznie mniejsze zużycie zasobów na procesorze (CPU).