WooCommerce este unul dintre cele mai populare pluginuri care vă vor transforma site-ul WordPress într-un magazin online. Cele mai populare teme oferă o funcție integrată de magazin care utilizează pluginul WooCommerce. Din testarea vitezei paginii pe GTmetrix și Pingdom, se poate concluziona adesea că elementul “wc-ajax=get_refreshed_fragments” durează aproximativ o secundă pentru a se încărca. Dacă întâmpinați o problemă legată de viteza de încărcare a paginii cu apeluri Ajax WooCommerce, iată soluțiile care vă vor ajuta să rezolvați această problemă în diferite scenarii.
Cuprins
Ce este wc-ajax=get_refreshed_fragments ?
Mai jos este o captură de ecran de la Pingdom care arată timpul de așteptare îndelungat necesar pentru încărcarea “wc-ajax=get_refreshed_fragments” pe pagină. De asemenea, puteți observa că acest script va fi listat ca o problemă de blocare a redării în Google PageSpeed Insights și îl puteți găsi sub graficul de tip cascadă din GTmetrix.

Practic, WooCommerce încearcă să colecteze detaliile coșului de cumpărături prin apelarea unui script, iar acest proces durează mult. Pluginul preia detaliile coșului de cumpărături care nu sunt stocate în cache pe fiecare pagină pentru a afișa cele mai recente articole din coș, apelând la Ajax-ul de administrare.
Pe paginile unde apare scriptul, îl puteți găsi în codul sursă, de exemplu, sub următoarea formă:
Referințe admin Ajax și încărcarea paginii.
WooCommerce utilizează acest apel Ajax de administrare pentru actualizarea treptată a coșului de cumpărături, cu scopul de a actualiza articolele și totalul din coș fără a reîmprospăta pagina. Apelarea Ajax de administrare pe fiecare pagină va întârzia semnificativ timpul de încărcare a paginii și, de asemenea, va consuma resurse importante ale serverului. O altă problemă este că pluginul efectuează această acțiune chiar și pe o pagină care nu conține un coș de cumpărături sau detalii legate de produs.
De exemplu, problema există pe pagina “Despre noi”, unde nu sunt disponibile componente WooCommerce. Așadar, ștergerea coșului de cumpărături de pe pagină nu va contribui la îmbunătățirea vitezei de încărcare a paginii. Ceea ce trebuie să facem este să dezactivăm actualizările coșului de cumpărături acolo unde nu sunt afișate coșuri sau produse.
Cum pot remedia problema cu wc-ajax=get_refreshed_fragments?
Problema ar trebui rezolvată prin dezactivarea scriptului, modificând fișierul functions.php al temei dvs.
Puteți modifica fișierul functions.php prin panoul de administrare WordPress sau folosind FTP.
În loc să modificați fișierul functions.php al temei principale, puteți crea o temă secundară și adăuga acolo funcționalități suplimentare. Acest lucru vă va ajuta să păstrați modificările atunci când actualizați tema principală.
Există trei opțiuni pentru a dezactiva scriptul de fragmentare a coșului de cumpărături WooCommerce Ajax.
- Dezactivați fragmentarea coșului de cumpărături doar pe pagina de start
- Dezactivați fragmentarea coșului de cumpărături doar pe pagina de start și în postări
- Dezactivați toate stilurile și scripturile WooCommerce pe toate paginile, cu excepția paginilor magazinului.
Să discutăm în detaliu toate cele trei opțiuni, dar asigurați-vă că alegeți doar una dintre ele.
Dezactivați doar fragmentarea coșului de cumpărături pe pagina de start
Conectați-vă la panoul de administrare WordPress, accesați “Aspect > Editor fișiere temă” din meniul din stânga și localizați fișierul functions.php. Adăugați următorul cod la sfârșitul fișierului.
/** Dezactivează apelul Ajax din 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'); } În editor, ar trebui să arate ca mai jos; după ce ați lipit codul, faceți clic pe “Actualizează fișierul” sau „Actualizează” pentru a salva modificările.

Dacă doriți să utilizați FTP, conectați-vă la serverul dvs. folosind un cont FTP. Accesați “/wp-content/tema-dumneavoastră/” și găsiți fișierul “functions.php”. Editați-l și adăugați codul de mai sus la sfârșitul fișierului, apoi încărcați fișierul modificat înapoi pe server.
Odată ce fișierul a fost actualizat, accesați meniul “WooCommerce > Setări” și mergeți la fila “Produse”. Bifați caseta de lângă “Redirecționați către coș atunci când se adaugă un produs.”

Acest lucru va ajuta clientul să acceseze pagina principală a coșului de cumpărături, în loc să aștepte mult timp după ce a adăugat un articol în coș. În caz contrar, chiar dacă un articol a fost adăugat, este posibil ca coșul să nu afișeze detaliile actualizate atunci când vă aflați pe aceeași pagină, deoarece scriptul de fragmentare a coșului este dezactivat.
Dezactivați fragmentarea coșului de cumpărături doar pe pagina de start și în postări
Codul de mai sus va dezactiva scriptul de fragmentare a coșului doar pe pagina de start statică. Dacă doriți să dezactivați scriptul pe toate postările, încercați să adăugați următorul cod în fișierul function.php al temei dvs.
/** Dezactivează apelul Ajax din WooCommerce pe pagina principală și în postări*/
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');
} Dezactivarea tuturor stilurilor și scripturilor WooCommerce pe toate paginile, cu excepția paginilor magazinului.
În cazul în care doriți să obțineți cel mai bun rezultat și nu aveți nevoie de elementele magazinului pe alte subpagini sau în articole, puteți utiliza scriptul de mai jos, adăugându-l în fișierul functions.php după același principiu descris mai sus.
/** Dezactivare toate stilurile și scripturile WooCommerce, cu excepția paginilor magazinului*/
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() ) {
Stiluri #
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' );
Scripturi #
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' );
}
}
} Rețineți că, efectuând una dintre acțiunile de mai sus, interveniți asupra structurii șablonului și a setărilor magazinului. Dacă nu sunteți sigur de acțiunile pe care le întreprindeți, consultați-vă cu administratorul site-ului.