راهاندازی یک فروشگاه اینترنتی با ووکامرس مثل چیدن قطعات یک پازل بزرگ است. شما یک قالب زیبا انتخاب میکنید، چند افزونه برای بهینهسازی فروش میخرید و همه چیز در ظاهر عالی به نظر میرسد. اما امروزه دیگه تقریباً همه وبمسترها میدانند که با بزرگتر شدن سایت، کابوس تداخلها شروع میشود؛ دکمه افزودن به سبد خرید کار نمیکند، صفحه تسویه حساب لود نمیشود یا کل سایت با خطای 500 یا همان صفحه مرگ سفید مواجه میشود!
اگر شما هم درگیر این مشکلات شدهاید، اصلاً نگران نباشید. در این مقاله میخواهیم به عنوان یک کارشناس وردپرس، یک بار برای همیشه یاد بگیریم که چطور مثل یک متخصص، تداخلهای افزونهها و قالبها را با ووکامرس شناسایی و در سریعترین زمان ممکن رفع کنیم.
پایه علمی: تداخل در وردپرس اصلاً چرا اتفاق میافتد؟
پیش از اینکه آستینها را بالا بزنیم، باید بدانیم ریشه این تداخلها کجاست. در بیشتر مواقع، دلیل اصلی تداخل، شیوه نامگذاری توابع، قلابها (Hooks) یا کدهای جاوا اسکریپت تکراری و ناسازگار است.
طبق تعریف دانشنامه عمومی ویکیپدیا در رابطه با سیستمهای مدیریت محتوا:
سیستمهای ماژولار مانند وردپرس به دلیل تنوع بالایی که در توسعهدهندگان قالبها و افزونهها دارند، مستعد خطای عدم سازگاری کدهای همنام یا بارگذاری همزمان کتابخانههای مختلف (مانند نسخههای متفاوت jQuery) هستند که این امر منجر به از کار افتادن بخشهایی از فرانتاند یا بکپند سایت میشود.
کریس لِما (Chris Lema)، یکی از مشاوران و متخصصان سرشناس حوزه وردپرس و ووکامرس، در این باره میگوید:
"بیشتر تداخلهای فروشگاهی به خاطر بد بودن افزونهها نیست؛ بلکه به خاطر این است که دو افزونه عالی، تلاش میکنند یک کارِ واحد را روی یک بخشِ واحد از دیتابیس یا صفحه وب انجام دهند بدون اینکه از وجود یکدیگر باخبر باشند."
نقشه راه عیبیابی سریع تداخلهای ووکامرس (گام به گام)
برای اینکه بدون آسیب زدن به فروشگاه و از دست رفتن اطلاعات مشتریان تداخل را پیدا کنید، این مسیر ۴ مرحلهای را به دقت دنبال کنید:
گام اول: فعالسازی حالت عیبیابی (WordPress Debug Mode)
اولین کاری که باید بکنید این است که از وردپرس بخواهید کدهای خطا را به شما نشان دهد. به طور پیشفرض وردپرس خطاها را پنهان میکند.
برای این کار کافی است وارد هاست خود شده، فایل wp-config.php را باز کنید و کدهای زیر را پیدا کرده و تنظیمات آن را به true تغییر دهید:
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
// Disable displaying errors directly on the screen
define( 'WP_DEBUG_DISPLAY', false );
توجه: تمامی کامنتهای کدهای فوق برای خوانایی بهتر توسعهدهندگان به زبان انگلیسی درج شدهاند.
با این کار، خطاهای سایت در فایلی به نام debug.log در پوشه wp-content ذخیره میشوند و شما دقیقاً میبینید کدام افزونه یا قالب دارد ساز مخالف میزند.
گام دوم: ایزوله کردن قالب (تست سازگاری قالب)
گاهی اوقات مقصر اصلی، کدهای اختصاصی یا شیوه طراحی قالب شماست که با آپدیت جدید ووکامرس سازگار نیست.
- از پیشخوان وردپرس به مسیر نمایش > پوستهها بروید.
- یکی از قالبهای پیشفرض و استاندارد وردپرس (مثل Twenty Twenty-Four) یا قالب رسمی ووکامرس یعنی Storefront را فعال کنید.
- بررسی کنید که آیا مشکل ووکامرس حل شد یا خیر. اگر حل شد، یعنی مشکل از قالب شماست و باید با طراح آن تماس بگیرید.
گام سوم: غیرفعالسازی افزونهها (روش دودویی یا ۵۰/۵۰)
اگر با تغییر قالب مشکل حل نشد، ۱۰۰٪ تداخل از سمت افزونههاست. اگر تعداد افزونههایتان زیاد است، تکتک غیرفعال کردن آنها زمانبر است. بهترین روش، روش ۵۰/۵۰ است:
- به مسیر افزونهها > افزونههای نصبشده بروید.
- به جز خودِ افزونه ووکامرس، نیمی از افزونههای سایت را انتخاب و غیرفعال کنید.
- سایت را بررسی کنید؛ اگر مشکل حل شد، یعنی افزونه خراب در میان همان نیمی است که غیرفعال کردید. اگر حل نشد، یعنی در نیمه دوم است.
- این کار را آنقدر تکرار کنید تا دقیقاً به افزونه ناسازگار برسید.
گام چهارم: بررسی ابزار Inspect مروگر (کنسول جاوا اسکریپت)
در بسیاری از مواقع، دکمههای ووکامرس (مثل دکمه افزودن به سبد خرید AJAX) به دلیل خطای جاوا اسکریپتی کار نمیکنند.
- روی صفحه مورد نظر راستکلیک کرده و Inspect را بزنید.
- به تب Console بروید.
- خطاهایی که با رنگ قرمز مشخص شدهاند را بخوانید. در انتهای خط خطا، نام فایل و افزونهای که این خطا را ایجاد کرده (مثلاً
wp-content/plugins/plugin-name/...) کاملاً مشخص است.
دادههای نمونه و راهحلهای سریع برای چند تداخل رایج
برای اینکه کار شما سریعتر راه بیفتد، این جدول تداخلهای رایج و راهکار مستقیم آنها را بررسی کنید:
نوع تداخل/مشکل علت معمول راهکار سریع و تجربی
کار نکردن دکمه افزودن به سبد خرید تداخل افزونههای بهینهسازی راکت یا لایتاسپید کش (Minify کردن جاوا اسکریپت) استثنا کردن فایلهای ووکامرس از فشردهسازی JS یا غیرفعال کردن لود تنبل (Lazy Load) دکمهها سفید شدن صفحه تسویه حساب (Checkout) تداخل درگاههای بانکی قدیمی یا افزونههای چندمرحلهای کردن تسویه حساب آپدیت نسخه PHP هاست به 8.1 یا 8.2 و بهروزرسانی افزونه درگاه بانکی به هم ریختگی استایل محصولات عدم پشتیبانی قالب از کدهای CSS جدید ووکامرس استفاده از افزونههای ترمیم استایل یا افزودن کدهای CSS سفارشی در بخش سفارشیسازی قالب
نتیجهگیری
رفع تداخل در وردپرس و ووکامرس نیاز به فاز پدیده و عجیبی ندارد؛ فقط کافیست با خونسردی و با استفاده از روشهای سیستماتیک مثل فعال کردن WP_DEBUG یا تست قالب پیشفرض، عامل مزاحم را پیدا کنید. همیشه به یاد داشته باشید که پیش از انجام هرگونه تغییر، غیرفعالسازی یا آپدیت، یک نسخه پشتیبان (Backup) کامل از سایت و دیتابیس خود تهیه کنید تا امنیت کسبوکار آنلاینتان به خطر نیفتد.
نظرات کاربران (0)