حل مشکل wc-ajax=get_refreshed_fragments در ووکامرس

یکی از مشکلاتی که زمان لود سایت های ووکامرسی را بالا می برد فراخوانی تابع آی جاکس wc-ajax می باشد که با wc-ajax=get_refreshed_fragments فراخوانی میشود. در ادامه با حل این مشکل با شما هستیم.

حل مشکل wc-ajax=get_refreshed_fragments در ووکامرس

ساده سریع و کاربردی :

برای رفع مشکل لود سایت خود بخاطر wc-ajax=get_refreshed کار زیر را انجام دهید:

  1. وارد پنل مدیریتی یا داشبورد وردپرس شوید
  2. از منوی نمایش گزینه ویرایشگر پوسته را انتخاب کنید.
  3. در صفحه باز شده به دنبال function.php بگردید و آن را باز کنید
  4. کد زیر را به انتهای فایل function.php اضافه کنید و بروزرسانی کنید.

 

/** 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’); }

پس از به روزرسانی پرونده، به منوی “ووکامرس>پیکربندی” بروید و بر روی تب “محصولات” کلیک کنید و گزینه “انتقال به برگه سبد خرید بعد از «افزودن به سبد»” را فعال نمایید.

 

کد بالا مشکل بروزرسانی سبد خرید را فقط در صفحه اول استاتیک غیرفعال می کند. اگر می خواهید این مورد را در همه پست ها غیرفعال کنید، پیشنهاد می شود کد زیر را در پرونده function.php پوسته خود اضافه کنید.

/** 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’);

}

 

اگر نگران تغییر در پرونده تم یا دسترسی به هاست هستید، می توانید از پلاگین رایگان برای اینکار استفاده کنید. افزونه “Disable Cart Fragment” را از پنل مدیریت وردپرس خود نصب و فعال کنید.

این افزونه هیچ صفحه تنظیماتی ندارد. با فعال سازی ساده افزونه، مشکل wc-ajax=get_refreshed_fragments ووکامرس در تمام صفحات سایت غیرفعال می شود.

اگر می خواهید اسکریپت را فقط در صفحات خاص غیرفعال کنید، کد زیر را در پرونده wp-config.php خود اضافه کنید.

define(‘DISABLE_CART_FRAGMENTS’, ‘ID-1,ID-2,ID-3’);

ID-1 ، ID-2 و ID-3 شناسه های پست یا صفحه هستند.

 

خب حالا که روش حل wc-ajax=get_refreshed_fragments رو گفتیم مقدمه رو اخر میگیم:

WooCommerce یکی از افزونه های محبوب برای تبدیل سایت وردپرسی به یک فروشگاه آنلاین است. امروزه افزودنی ها و پوسته های زیادی با ووکامرس سازگار هستند که می توان در اینترنت آنها را مشاهده نمود. اخیراً مشاهده شده است که برخی کاربران از سرعت پایین لود سایت خود گلایه دارند و در گزارش آنالیز سایت با ابزارهای آنلاین همچون gtmetrix، با مشکل”wc-ajax=get_refreshed_fragments” مواجه می شوند که به طور متوسط باعث می شود یک ثانیه سایت دیرتر لود شود. پس از تجزیه و تحلیل بیشتر مشخص گردید که بارگیری صفحات سایت در اکثر موارد 5 تا 10 ثانیه طول می کشد.

wc-ajax=get_refreshed_fragments چیست؟

اساساً WooCommerce سعی می کند با فراخوانی اسکریپت جزئیات سبد خرید را جمع آوری کند و برای انجام این کار زمان زیادی لازم است.
wc-ajax=get_refreshed_fragments وظیفه بروزرسانی سبد خرید شما را دارد، این اسکریپت با هربار ورود کاربر به صفحات مختلف سعی می‌کند، سبد خرید را بروزرسانی کند و تمام محتویات آن را بررسی نماید.
یکی از مسائل دیگری که در اجرا این اسکریپت وجود دارد این است که در صفحاتی که حتی شما محصولی برای نمایش ندارید، برای مثال درباره ما، تماس باما، صفحات وبلاگ و… این اسکریپت اجرا شده و بارگذاری صفحات شما را با مشکل روبرو می‌کند.
وقتی کدهای سایت را بررسی نمایید، می توانید متنی شبیه به قطعه کد زیر را در تمام صفحات سایت خود مشاهده کنید:

<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>

7
امتیاز :
بدون رای!
حجت میرزائی کارشناس ارشد هوش مصنوعی هستم. از سال 85 کد نویسی با C# را شروع کردم و از سال 91 بصورت حرفه ای کار در زمینه طراحی وب را آغاز کردم. هم اکنون با Asp.net و وردپرس کار طراحی وب انجام میدهم. علاقه مند به مباحث سئو و طراحی اپلیکیشن های موبایل می باشم.
رزومه بنده را در لینک روبرو مشاهده کنید رزومه مهندس حجت میرزائی

مطالب زیر را حتما بخوانید

دیدگاه خود را ارسال نمایید