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

روش سیستماتیک عیب‌یابی در ووکامرس

بدون روش، عیب‌یابی به آزمون و خطا تبدیل می‌شود و آزمون و خطا در فروشگاه درآمدزا یعنی از دست دادن سفارش. روش من در هر پروژه، پنج گام است. گام اول: بازتولید خطا در محیط آزمایشی، نه روی سایت زنده. گام دوم: پاک کردن کش و بررسی لاگ‌ها. گام سوم: خاموش کردن افزونه‌ها یکی‌یکی و مشاهده تغییر. گام چهارم: تغییر قالب به یک قالب پیش‌فرض مثل Twenty Twenty-Four. گام پنجم: بررسی خطاهای دیتابیس و گزارش سرور.

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

در عیب‌یابی، هر چه ساده‌تر شروع کنید، سریع‌تر به پاسخ می‌رسید. پاک کردن کش، همیشه ارزان‌ترین گام اول است.

خطاهای پرداخت و درگاه

خطاهای پرداخت، بیشترین سهم را در پرونده‌های پشتیبانی دارند. چهار خطای رایج:

  • درگاه در مرحله تست باقی مانده: پرداخت در محیط آزمایشی انجام می‌شود و در واقع پولی منتقل نمی‌شود.
  • عدم تطبیق واحد پول: درگاه به تومان تنظیم است اما ووکامرس به ریال محاسبه می‌کند.
  • خطای بازگشت از درگاه: بعد از پرداخت، کاربر به صفحه‌ای نامعتبر برمی‌گردد.
  • قطع ارتباط با API درگاه: سرور فروشگاه به دلیل فایروال یا DNS نمی‌تواند با API درگاه ارتباط برقرار کند.

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

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

خطاهای سبد خرید و تسویه‌حساب

سبد خرید و تسویه‌حساب دو صفحه‌ای هستند که هر خطایی در آن‌ها، مستقیماً به فروش ضربه می‌زند. رایج‌ترین خطاها:

خطاعلت رایجاقدام اول
سبد خرید خالی نمایش داده می‌شودمشکل session یا کوکیبررسی قالب و افزونه کش
دکمه افزودن به سبد کار نمی‌کندتضاد جاوااسکریپتخاموش کردن افزونه‌های غیرضروری
صفحه تسویه‌حساب سفید استخطای PHP در قالبفعال‌سازی WP_DEBUG
کد تخفیف اعمال نمی‌شودمحدودیت کوپن یا کشبررسی تنظیمات کوپن

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

خطاهای سفارش و ارسال

خطاهای سفارش معمولاً دیرتر از بقیه کشف می‌شوند چون به صورت مستقیم در front-end دیده نمی‌شوند. مهم‌ترین آن‌ها: ارسال نشدن ایمیل سفارش، ثبت نشدن سفارش در پنل، گیر کردن در وضعیت pending و خطا در محاسبه هزینه ارسال. در فروشگاه‌های ایرانی، ارسال نشدن ایمیل سفارش از همه رایج‌تر است چون هاست‌های اشتراکی معمولاً ارسال SMTP را محدود می‌کنند. راهنمای اختصاصی این خطا در رفع خطای ارسال سفارش در ووکامرس آمده است.

برای جلوگیری از خطاهای سفارش، توصیه می‌کنم یک چرخه کاری مشخص برای مدیریت سفارش‌ها بسازید. اگر می‌خواهید این بخش را جدی بگیرید، مدیریت سفارش‌ها در ووکامرس راهنمای کاملی است. برای بررسی هزینه ارسال و روش‌های آن هم تنظیم روش‌های ارسال در ووکامرس را ببینید.

خطاهای محصول و موجودی

در بخش محصولات، شایع‌ترین خطاها مربوط به variable product و موجودی هستند. سه خطای کلاسیک: نمایش ندادن variation ها در صفحه محصول، عدم اعمال موجودی روی variation، و نمایش نادرست قیمت در صفحه دسته. برای رفع خطای variation، رفع خطای محصولات متغیر در ووکامرس راهنمای اختصاصی دارد. برای ساخت درست محصول متغیر از ابتدا، ساخت محصول متغیر در ووکامرس را ببینید.

خطاهای موجودی معمولاً از ناهماهنگی بین تنظیمات سراسری و تنظیمات محصول می‌آیند. اگر متوجه شدید که موجودی محصولی به‌روزرسانی نمی‌شود، بررسی کنید Manage stock در سطح محصول فعال است یا نه. راهنمای کامل این موضوع در مدیریت موجودی محصولات در ووکامرس آمده است. برای سفارشی‌سازی نحوه نمایش محصول در صفحه محصول هم سفارشی‌سازی صفحه محصول در ووکامرس نقطه شروع خوبی است.

خطاهای ایمیل و اعلان

ارسال ایمیل ووکامرس روی تابع wp_mail وردپرس سوار است که به SMTP پیش‌فرض هاست متکی است. سه خطای رایج: ایمیل‌ها به اسپم می‌روند، ایمیل‌ها اصلاً ارسال نمی‌شوند، یا فقط برای بعضی از مشتریان ارسال می‌شوند. برای رفع این خطاها، حتماً یک افزونه SMTP معتبر نصب کنید. تنظیمات SPF، DKIM و DMARC در دامنه هم در تحویل ایمیل نقش مهمی دارند. اگر فروشگاه شما تخفیف‌های گروهی ارسال می‌کند، مطمئن شوید بخش «تخفیف و کد تخفیف» با بخش «ایمیل و اعلان» هماهنگ است.

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

در عیب‌یابی، اول به ساده‌ترین فرض اعتماد نکنید و آخرین فرض پیچیده را هم رد نکنید. علت واقعی معمولاً بین این دو است.

پرسش‌های پرتکرار درباره خطاهای ووکامرس

چرا بعد از آپدیت ووکامرس، سایت سفید می‌شود؟ معمولاً به دلیل ناسازگاری قالب یا افزونه‌ای است که با نسخه جدید ووکامرس سازگار نیست. فعال‌سازی WP_DEBUG در wp-config.php پیام خطا را نشان می‌دهد و بعد می‌توانید افزونه متخلف را پیدا کنید.

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

چرا تصویر محصولات در صفحه فروشگاه دیده نمی‌شود؟ معمولاً به دلیل مشکل تنظیمات رسانه، تداخل افزونه بهینه‌سازی تصویر، یا تنظیم نادرست سایز thumbnail در قالب.

آیا می‌توان بدون محیط آزمایشی عیب‌یابی کرد؟ می‌توان اما ریسک بالاست. حداقل قبل از هر تغییر، یک بکاپ کامل از فایل‌ها و دیتابیس بگیرید. راهنمای بکاپ در بکاپ‌گیری از فروشگاه ووکامرس آمده است.

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

برای اتصال فروشگاه به سرویس‌های بیرونی که گاهی منبع خطاهای پنهان هستند، اتصال ووکامرس به API های خارجی را ببینید. برای اطمینان از سلامت امنیتی فروشگاه بعد از هر عیب‌یابی، امنیت فروشگاه ووکامرس نکات مهمی دارد. و برای مدیریت داده‌های مشتری که در فرآیند عیب‌یابی ممکن است تغییر کنند، مدیریت مشتریان در ووکامرس توصیه می‌شود.

آنچه بعد از صدها عیب‌یابی یاد گرفتم

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

اگر خطایی در فروشگاه ووکامرس داشته‌اید که مدت‌ها پیدا نمی‌شد یا رفع آن درس بزرگی داشت، در دیدگاه بنویسید. برای من جالب است بدانم کدام نوع خطا بیشترین زمان تیم شما را در پروژه‌های واقعی گرفته است. 🔍