فهرست مطالب

5/5 - (1 امتیاز)

یک باگ وردپرس باعث شده فروشگاه‌هایی که از افزونه WooCommerce استفاده می‌کنن، با ارور جدی (Fatal Error) روبرو بشن و کل سایتشون از دسترس خارج بشه. منشاء این مشکل فقط یه خط کد ناقصه که باعث بروز این اختلال شده. خوشبختانه برای این مشکل، راه‌حل موقت ارائه شده و تیم WooCommerce هم در حال کار روی یه آپدیت دائمی به‌صورت پچ (Patch) هست تا این باگ برای همیشه رفع بشه.

اگه از وردپرس برای راه‌اندازی فروشگاه آنلاین استفاده می‌کنی یا روی بهینه‌سازی سئو صفحه نویسنده تمرکز داری، باید بدونی چنین باگ‌هایی نه تنها روی تجربه کاربری تأثیر منفی می‌ذارن، بلکه ممکنه رتبه صفحات مهم سایت از جمله صفحه نویسنده (Author Page) رو هم دچار افت کنن. پس خیلی مهمه که به‌روز باشی و اخبار مربوط به آپدیت‌ها یا مشکلات افزونه‌ها مثل این باگ ووکامرس رو جدی بگیری.

باگ ووکامرس

جزئیات بیشتر درباره باگ ووکامرس و علت کرش کردن سایت‌ها

یکی از کاربران در انجمن پشتیبانی WordPress.org گزارشی درباره این باگ منتشر کرد و خیلی زود افراد دیگه‌ای که با همین مشکل مواجه شده بودن، اعلام کردن که سایتشون ناگهانی از کار افتاده، بدون اینکه تغییری در افزونه‌ها یا تنظیمات سایت داده باشن.

کاربری که این مشکل رو اول گزارش کرده بود، یه راه‌حل موقت هم ارائه داد: فقط با ویرایش یک خط کد در فایل BlockPatterns.php (از فایل‌های داخلی افزونه WooCommerce) میشه سایت رو دوباره بالا آورد.

مسیر این فایل در وردپرس به این شکله:

wp-content/plugins/woocommerce/src/Blocks/BlockPatterns.php

کاربران دیگه هم گزارش کردن که با ارور مرگباری به شکل زیر مواجه شدن:

Uncaught Error: strpos(): Argument #1 ($haystack) must be of type string, null given in /var/www/site/data/www/site.com.br/wp-content/plugins/woocommerce/src/Blocks/BlockPatterns.php on line 251

یکی از مشارکت‌کننده‌ها در بحث نوشته:

«دقیقاً همین مشکل برای من هم پیش اومد.
این اتفاق تو نسخه 9.8.2 رخ داد و حتی آپدیت به نسخه 9.8.3 هم کمکی نکرد. داون‌گرید کردن به نسخه 9.7.1 هم جواب نداد.
بدون اینکه هیچ تغییری توی افزونه‌ها بدم یا آپدیتی انجام بدم، سایت یک‌دفعه کرش کرد.
فعلاً با تغییر کد در خط 251 مشکل موقتاً برطرف شده، ولی باید راه‌حل پایدارتری پیدا کنیم تا تیم ووکامرس پچ رسمی منتشر کنه.»

در حالی که بعضی‌ها بعد از آپدیت افزونه‌ها این ارور رو گرفتن و عقب‌گرد (Rollback) هم جواب نداده، عده‌ای دیگه می‌گن اصلاً هیچ تغییری در سایتشون ایجاد نکرده بودن و با این ارور مواجه شدن.

یکی از اعضای پشتیبانی WooCommerce در پاسخ به این گزارش‌ها اعلام کرد که تیم ووکامرس در جریان مشکل هست و داره برای رفعش تلاش می‌کنه:

«مرسی که این مشکل رو گزارش دادین. این یه باگ شناخته‌شده‌ست و راه‌حل موقت توی این لینک قرار داده شده:

https://github.com/woocommerce/woocommerce/issues/57760#issuecomment-2854510504

شما می‌تونید وضعیت پیشرفت کار و به‌روزرسانی‌ها رو از طریق همین بحث توی گیت‌هاب دنبال کنید:
https://github.com/woocommerce/woocommerce/issues/57760
تیم ما در حال بررسی فعال و ارائه راه‌حل نهایی هست.»

اگه در حال کار روی سئو صفحه نویسنده هستی، حواست باشه چنین خطاهایی می‌تونن باعث بشن صفحه نویسنده یا سایر صفحات مهم سایت از نتایج گوگل خارج بشن یا افت رتبه بگیرن. پس همیشه توصیه میشه نسخه‌های جدید افزونه‌ها رو با دقت بررسی و تست کنی.

راه‌حل فوری برای رفع باگ ووکامرس در گیت‌هاب منتشر شد

یکی از کاربران، راه‌حل موقتی برای این باگ رو داخل مخزن رسمی GitHub ووکامرس منتشر کرده که فعلاً می‌تونه مشکل رو برطرف کنه.

اگه سایتت به خاطر این خطا از کار افتاده و با این ارور مواجه می‌شی:

کپی کد

تنها کاری که باید بکنی اینه که در خط ۲۵۱ از فایل BlockPatterns.php این تغییر رو اعمال کنی:

کپی کد

این ?? '' باعث میشه وقتی مقدار title خالیه یا وجود نداره، یه رشته خالی به جای null به تابع داده بشه تا خطا پیش نیاد.

بعد از اعمال این تغییر، حتماً کش (Cache) وردپرس رو پاک کن تا تغییرات درست اعمال بشه. اگه از افزونه‌های کش استفاده می‌کنی یا سیستم کش سرور داری، همه اون‌ها رو هم پاک‌سازی کن.

این راه‌حل موقته و به کسانی که به دنبال راهی برای راه‌اندازی سریع سایتشون هستن کمک می‌کنه تا سایت رو بالا بیارن و در عین حال منتظر پچ رسمی از طرف تیم ووکامرس برای باگ شماره #57759 باشن.

در همون صفحه گیت‌هاب ووکامرس، توضیح دیگه‌ای هم داده شده:

«ممکنه بعضی از سایت‌ها با ارور مربوط به کلاس BlockPatterns.php مواجه بشن و سایتشون بارگذاری نشه. دلیل این خطا، پاسخ نادرست از مخزن الگوهای ووکامرس (Woo Pattern Repository) بوده. یه فیکس برای این مشکل توی مخزن اعمال شده، اما بعضی از سایت‌ها همچنان ممکنه مقدار کش اشتباهی داشته باشن.»

و در ادامه نوشتن:

«این مشکل از سمت منبع کش برطرف شده، ولی هنوز بعضی از سایت‌ها کش نادرست دارن. ما به‌زودی آپدیت‌های پچ برای برطرف کردن این مشکل منتشر می‌کنیم.»

برای کسانی که روی سئو صفحه نویسنده کار می‌کنن، این مسئله اهمیت زیادی داره چون خطاهایی از این نوع می‌تونن باعث بشن صفحات نویسنده از دسترس موتورهای جستجو خارج بشن. پس تا زمانی که پچ رسمی منتشر بشه، استفاده از این راه‌حل فوری می‌تونه کمک کنه سایت فعلاً فعال بمونه.

مشکل اضافی برای کاربران WP Engine

یکی از کاربران گزارش داده که حتی بعد از اعمال راه‌حل موقت هم سایتش که روی پلتفرم WP Engine میزبانی میشه همچنان مشکل داره:

«دارم برای اجرای این فیکس روی سایت WP Engine تقلا می‌کنم. فکر می‌کنم مشکل از کش باشه، ولی با اینکه تغییرات رو اعمال کردم و همه کش‌ها رو پاک کردم، هنوز درست نشده. ممکنه یه مرحله اضافی وجود داشته باشه که من جا انداختم؟ تنها چیزی که فعلاً جواب داده، بازگردانی نسخه پشتیبان (Backup) بوده.»

در پاسخ به این سوال، یکی از کاربران توضیح داده:

«مشکل اینه که WP Engine یه پلتفرمه، نه یه سرور ساده. به‌خاطر همین، چندین لایه کش داره که باید پاک‌سازی بشن، از جمله Page Cache و کش Varnish.
جزئیات بیشتر رو می‌تونی توی این صفحه ببینی:
https://wpengine.com/support/cache/»

اگه از هاست‌های مدیریت‌شده مثل WP Engine استفاده می‌کنی و تمرکزت روی سئو صفحه نویسنده یا صفحات دیگه سایتته، حواست باشه که کش‌های چندلایه ممکنه باعث بشن تغییراتی که اعمال می‌کنی فوراً دیده نشن. پس بعد از هر فیکس یا تغییر مهم، همه لایه‌های کش رو بررسی و پاک کن تا مطمئن بشی سایت به‌درستی بارگذاری میشه.

5/5 - (1 امتیاز)

نوشته های مرتبط

مقاله های دیگر