مقاله ووکامرس

چرا بعد از فعال‌سازی HPOS بعضی سفارش‌ها در پیشخوان دیده نمی‌شوند؟

مسیر عیب‌یابی قدم‌به‌قدم برای سفارش‌هایی که بعد از روشن کردن HPOS فقط در یک منبع داده ثبت شده‌اند.

حمید اعراب توسعه‌دهنده ارشد بک‌اند وردپرس و ووکامرس
انتشار
زمان مطالعه
۲ دقیقه مطالعه

حمید اعراب ۲۴ دی ۱۴۰۴ ۲ دقیقه مطالعه

تصویر پیکسلی دو جدول پایگاه‌داده که با فلش همگام می‌شوند
فهرست مطالب (3)

ذخیره‌سازی سفارش با کارایی بالا (HPOS) سفارش‌ها را از جدول wp_posts به جدول‌های اختصاصی منتقل می‌کند. وقتی حالت سازگاری روشن است، ووکامرس داده را در هر دو جا نگه می‌دارد و همین‌جا است که ناهمخوانی‌ها شروع می‌شوند.

همگام‌سازی ناقص

اگر همگام‌سازی پس‌زمینه متوقف شده باشد، دو منبع از هم فاصله می‌گیرند. اول وضعیت را بسنجید و بعد همگام‌سازی را دستی اجرا کنید.

wp wc cot sync --batch-size=200
wp wc cot verify_cot_data --verbose

قبل از هر تغییری از پایگاه‌داده نسخهٔ پشتیبان بگیرید و دستورها را ابتدا روی استیجینگ اجرا کنید.

افزونه‌ای که هنوز سفارش را پست فرض می‌کند

افزونه‌هایی که سفارش را با get_posts() یا WP_Query می‌خوانند یا با wp_insert_post() می‌سازند، با HPOS فقط یک طرف را به‌روز می‌کنند. راه درست استفاده از توابع CRUD ووکامرس است:

$order = wc_get_order( $order_id );
$order->update_meta_data( '_erp_reference', $reference );
$order->save();

مشکل معمولاً در HPOS نیست؛ در کدی است که هنوز فرض می‌کند سفارش یک پست است.

چک‌لیست تشخیص

  • سازگاری همهٔ افزونه‌ها را در صفحهٔ «ویژگی‌ها»ی ووکامرس بررسی کنید.
  • خروجی verify_cot_data را برای سفارش‌های ناهمخوان نگه دارید.
  • کدهای سفارشی را برای کوئری مستقیم روی wp_postmeta جست‌وجو کنید.
  • تا رفع همهٔ ناهمخوانی‌ها، حالت سازگاری را خاموش نکنید.

$ ./request_review

همین مشکل را در فروشگاه خودتان دارید؟

توسعه‌دهنده ارشد WordPress و WooCommerce برای معماری، اتصال سیستم‌ها و حل مسائل پیچیده production.

درخواست بررسی فنی

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *