HPOS در ووکامرس چیست؟ افزایش سرعت و مقیاس‌پذیری سفارشات WooCommerce

HPOS در ووکامرس چیست؟ افزایش سرعت و مقیاس‌پذیری سفارشات WooCommerce اگر فروشگاه ووکامرسی شما از چند سفارش در روز به صدها یا هزاران سفارش رسیده باشد، احتمالاً متوجه شده‌اید که افزایش حجم سفارش‌ها فقط فضای دیتابیس را بیشتر نمی‌کند؛ بخش مدیریت سفارش‌ها، گزارش‌گیری، جست‌وجوی سفارش و بعضی عملیات پس‌زمین...

۱ شهریور ۱۴۰۵ 5 دقیقه 0 دیدگاه
تصویر پیدا نشد

HPOS در ووکامرس چیست؟ افزایش سرعت و مقیاس‌پذیری سفارشات WooCommerce

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

یکی از مهم‌ترین تغییراتی که WooCommerce برای حل این مسئله ایجاد کرده High-Performance Order Storage یا به اختصار HPOS است.

HPOS شیوه ذخیره‌سازی سفارش‌های WooCommerce را تغییر می‌دهد. به‌جای اینکه اطلاعات اصلی سفارش‌ها مانند گذشته در جداول عمومی WordPress یعنی wp_posts و wp_postmeta ذخیره شوند، WooCommerce جداول اختصاصی برای سفارش‌ها در اختیار دارد.

هدف این معماری، ساده‌ترشدن ساختار داده، کاهش فشار روی جداول عمومی WordPress و فراهم‌کردن زیرساخت بهتر برای فروشگاه‌هایی است که تعداد سفارش آن‌ها رشد می‌کند. WooCommerce HPOS را معماری‌ای با جداول و Indexهای اختصاصی سفارش معرفی می‌کند که برای Queryهای فروشگاهی بهینه شده است.

WooCommerce قبل از HPOS سفارش‌ها را کجا ذخیره می‌کرد؟

برای سال‌ها WooCommerce سفارش را مانند یک Custom Post Type در WordPress ذخیره می‌کرد.

یعنی سفارش در:

wp_posts

قرار می‌گرفت و بخش زیادی از جزئیات آن در:

wp_postmeta

ذخیره می‌شد.

این معماری در ابتدای کار مزیت مهمی داشت: WooCommerce می‌توانست از API و ساختار آماده WordPress استفاده کند.

اما یک سفارش فروشگاهی با یک نوشته وبلاگ متفاوت است.

یک سفارش ممکن است شامل اطلاعاتی مثل:

  • وضعیت سفارش
  • نام مشتری
  • آدرس صورتحساب
  • آدرس ارسال
  • روش پرداخت
  • مبلغ
  • ارز
  • تاریخ ایجاد
  • اطلاعات مالیاتی
  • Metaهای مختلف

باشد.

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

WooCommerce نیز در مستندات HPOS توضیح می‌دهد که رشد تعداد مشتری و سفارش باعث افزایش فشار روی دیتابیس می‌شود و جداول اختصاصی HPOS برای کاهش Read/Writeهای غیرضروری و Busy Tableها طراحی شده‌اند.

HPOS چیست؟

HPOS مخفف:

High-Performance Order Storage

است.

این قابلیت قبلاً با نام:

Custom Order Tables

شناخته می‌شد.

در این معماری WooCommerce برای سفارش‌ها جداول اختصاصی ایجاد می‌کند.

از جمله:

wp_wc_orders
wp_wc_order_addresses
wp_wc_order_operational_data
wp_wc_orders_meta

نام دقیق Prefix ممکن است در سایت شما به‌جای wp_ چیز دیگری باشد.

برای مثال اگر Prefix دیتابیس:

vatan_

باشد، جدول می‌تواند به شکل:

vatan_wc_orders

ایجاد شود.

WooCommerce این ساختار را برای نیازهای خاص Commerce طراحی کرده است، نه برای یک Post عمومی WordPress.

تفاوت ذخیره سفارش قبل و بعد از HPOS

ساختار قدیمی:

Order
 ↓
wp_posts
 ↓
wp_postmeta

در HPOS:

Order
 ↓
wc_orders
 ├─ wc_order_addresses
 ├─ wc_order_operational_data
 └─ wc_orders_meta

در نتیجه اطلاعات اصلی سفارش دیگر مجبور نیستند میان داده‌های نوشته‌ها، برگه‌ها و سایر Custom Post Typeها قرار بگیرند.

چرا wp_postmeta می‌تواند برای فروشگاه بزرگ مشکل‌ساز شود؟

wp_postmeta یک جدول عمومی است.

اطلاعات Meta انواع مختلف محتوا داخل آن قرار می‌گیرد:

  • نوشته‌ها
  • برگه‌ها
  • محصولات
  • سفارش‌ها در معماری قدیمی
  • افزونه‌ها
  • Custom Fields

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

اگر Queryها دائماً مجبور باشند برای پیدا کردن داده سفارش میان حجم زیادی از Meta جست‌وجو کنند، دیتابیس کار بیشتری انجام می‌دهد.

البته صرف بزرگ‌بودن wp_postmeta الزاماً به معنی کندبودن سایت نیست؛ Indexها، Queryهای افزونه‌ها، RAM دیتابیس، Storage و Cache نیز اهمیت دارند.

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

HPOS چه مزایایی دارد؟

WooCommerce سه مزیت اصلی برای HPOS مطرح می‌کند:

Scalability، Reliability و Simplicity.

مقیاس‌پذیری بهتر

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

این مسئله مخصوصاً برای فروشگاه‌هایی اهمیت دارد که:

  • سفارش روزانه بالا دارند؛
  • سال‌ها فعالیت کرده‌اند؛
  • دیتابیس بزرگی دارند؛
  • چندین افزونه سفارش دارند؛
  • گزارش‌های متعدد اجرا می‌کنند.

کاهش فشار روی wp_posts و wp_postmeta

HPOS باعث می‌شود داده اصلی سفارش از Post Storage سنتی فاصله بگیرد.

در نتیجه داده سفارش دیگر باعث رشد مستقیم همان ساختاری نمی‌شود که نوشته‌ها و بسیاری از داده‌های دیگر WordPress نیز از آن استفاده می‌کنند.

Indexهای اختصاصی

وقتی Schema مخصوص سفارش طراحی شده باشد، WooCommerce می‌تواند Indexهای متناسب‌تری برای Queryهای مرتبط با سفارش ایجاد کند.

معماری تمیزتر

برای توسعه‌دهندگان نیز مدل داده‌ای که ستون‌هایی مخصوص Order دارد معمولاً قابل‌فهم‌تر از ذخیره حجم زیادی از اطلاعات به شکل Meta است.

آیا HPOS سرعت فروشگاه را زیاد می‌کند؟

می‌تواند، اما باید دقیق صحبت کنیم.

HPOS به‌صورت خاص لایه ذخیره و Query سفارش‌ها را بهینه می‌کند.

بنابراین بیشترین تأثیر آن را باید در عملیات مرتبط با Order انتظار داشت، نه همه قسمت‌های سایت.

مثلاً می‌تواند به بهبود این موارد کمک کند:

  • خواندن سفارش‌ها
  • نوشتن سفارش‌ها
  • مدیریت Order Data
  • Queryهای سفارش
  • بخش مدیریت فروشگاه
  • مقیاس‌پذیری دیتابیس

اما اگر صفحه محصول شما به‌دلیل تصویر هشت مگابایتی کند است، HPOS آن را حل نمی‌کند.

اگر Plugin خاصی در Checkout به یک API خارجی کند متصل می‌شود، HPOS الزاماً Checkout را سریع نمی‌کند.

اگر CPU هاست ضعیف است، HPOS CPU قدرتمندتر ایجاد نمی‌کند.

HPOS با Redis چه تفاوتی دارد؟

HPOS و Redis کاملاً متفاوت‌اند.

HPOS:

ساختار ذخیره داده سفارش در Database را تغییر می‌دهد.

Redis Object Cache:

بخشی از داده‌های پرکاربرد را در RAM نگه می‌دارد.

یعنی:

WooCommerce
↓
Redis Object Cache
↓
HPOS Tables
↓
MySQL / MariaDB

می‌توان هر دو را هم‌زمان استفاده کرد.

در تنظیمات جدید WooCommerce حتی گزینه HPOS Data Caching نیز وجود دارد که Cache داده Order در Data Store را فراهم می‌کند و WooCommerce استفاده از آن را برای فروشگاه‌هایی که Object Cache دارند توصیه می‌کند.

HPOS با هاست قوی‌تر چه تفاوتی دارد؟

HPOS یک Optimization نرم‌افزاری است.

هاست بهتر منابع زیرساختی فراهم می‌کند:

  • CPU سریع‌تر
  • RAM بیشتر
  • NVMe
  • MySQL/MariaDB مناسب
  • Redis
  • PHP Workers بیشتر

این دو جایگزین هم نیستند.

فروشگاه بزرگ معمولاً هم به معماری نرم‌افزاری مناسب و هم زیرساخت مناسب نیاز دارد.

ممکن است HPOS فعال باشد ولی هاست دائماً CPU Limit بخورد.

یا برعکس، سرور بسیار قدرتمند باشد ولی Pluginهای قدیمی Queryهای مستقیم و نامناسب روی دیتابیس اجرا کنند.

آیا HPOS برای فروشگاه جدید فعال است؟

HPOS از WooCommerce 8.2 که در اکتبر ۲۰۲۳ منتشر شد، برای نصب‌های جدید به‌صورت پیش‌فرض فعال شد.

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

فروشگاه‌های قدیمی‌تر ممکن است هنوز روی ساختار Legacy Order Storage باشند.

چگونه بفهمیم HPOS فعال است؟

در پیشخوان WordPress وارد:

WooCommerce → Settings → Advanced → Features

شوید.

در این بخش گزینه مربوط به Order Data Storage یا High-Performance Order Storage را مشاهده می‌کنید.

بسته به وضعیت فروشگاه، WooCommerce مشخص می‌کند کدام Data Store در حال حاضر Authoritative است. مستندات رسمی نیز همین مسیر را برای مدیریت HPOS معرفی می‌کنند.

Authoritative Data Store چیست؟

Authoritative یعنی منبع اصلی و معتبر داده سفارش.

در دوره مهاجرت ممکن است اطلاعات هم در:

wp_posts / wp_postmeta

و هم در:

wc_orders

وجود داشته باشند.

اما یکی از این دو ساختار باید منبع اصلی باشد.

وقتی HPOS Authoritative باشد، WooCommerce جداول Order جدید را منبع اصلی می‌داند.

Compatibility Mode چیست؟

WooCommerce برای مهاجرت فروشگاه‌های قدیمی Compatibility Mode دارد.

در این حالت داده‌های سفارش بین:

HPOS Tables

و:

Posts Tables

همگام می‌شوند.

هدف این است که افزونه یا کدی که هنوز با ساختار قدیمی کار می‌کند فرصت مهاجرت داشته باشد.

برای فعال‌سازی HPOS در فروشگاه موجود، WooCommerce توصیه می‌کند ابتدا Compatibility Mode فعال شود تا داده‌های سفارش Sync شوند.

چرا نباید Compatibility Mode را برای همیشه روشن نگه داریم؟

Compatibility Mode برای دوران گذار مفید است.

اما عملاً دو ساختار داده باید همگام شوند.

یعنی مزیت کامل جداشدن از Legacy Storage را به دست نمی‌آورید.

برای مهاجرت کنترل‌شده بسیار مفید است، اما هدف نهایی معمولاً این است که تمام Pluginها HPOS-compatible شوند و HPOS به Data Store اصلی تبدیل شود.

تغییر مهم WooCommerce 10.7 در سال ۲۰۲۶

این بخش یکی از دلایلی است که مقاله امروز ارزش زمانی دارد.

WooCommerce در فوریه ۲۰۲۶ اعلام کرد از WooCommerce 10.7، قابلیت Sync on Read در HPOS به‌طور پیش‌فرض خاموش می‌شود. این تغییر برای فروشگاه‌هایی اهمیت دارد که Compatibility Mode فعال دارند اما هنوز Plugin یا Custom Code آن‌ها به‌طور کامل HPOS-compatible نیست.

Sync on Read قبلاً می‌توانست هنگام خواندن Order ناسازگاری میان دو Data Store را تشخیص داده و Synchronization انجام دهد.

خاموش‌شدن پیش‌فرض آن یعنی اتکا به کد قدیمی برای خواندن مستقیم wp_posts در آینده ریسک بیشتری دارد.

برای مدیر فروشگاه، نتیجه ساده است:

در ۲۰۲۶ بررسی HPOS Compatibility افزونه‌ها جدی‌تر از قبل است.

مهم‌ترین ریسک فعال‌سازی HPOS چیست؟

مهم‌ترین ریسک، افزونه یا کد ناسازگار است.

فرض کنید یک Plugin قدیمی برای دریافت سفارش مستقیم Query می‌زند:

SELECT *
FROM wp_posts
WHERE post_type = 'shop_order';

وقتی HPOS منبع اصلی باشد، این روش دیگر معماری صحیحی نیست.

Plugin باید از WooCommerce CRUD/API استفاده کند.

مثلاً توسعه‌دهندگان به‌جای دسترسی مستقیم به Post Storage باید از APIهای Order خود WooCommerce استفاده کنند.

قبل از فعال‌سازی HPOS چه افزونه‌هایی را بررسی کنیم؟

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

مخصوصاً:

  • درگاه پرداخت
  • افزونه حمل‌ونقل
  • افزونه صدور فاکتور
  • افزونه حسابداری
  • CRM
  • اتصال ERP
  • پیامک سفارش
  • اتصال پست
  • افزونه انبار
  • Marketplace
  • Subscription
  • Membership
  • Export/Import سفارش
  • Reporting
  • Webhook سفارشی

اگر Plugin فقط ظاهر Header را تغییر می‌دهد، احتمال اثر HPOS بسیار کم است.

ولی Plugin حسابداری که مستقیماً سفارش‌ها را می‌خواند باید حتماً بررسی شود.

چطور بفهمیم افزونه HPOS-compatible است؟

اول صفحه رسمی Plugin را بررسی کنید.

بسیاری از Extensionهای جدید WooCommerce صراحتاً عبارت:

HPOS Compatible

را درج می‌کنند. اسناد فعلی WooCommerce برای Extensionهای متعدد نیز همین سازگاری را اعلام می‌کنند.

همچنین WooCommerce در بخش Features می‌تواند Pluginهای شناخته‌شده ناسازگار را نمایش دهد.

اما برای افزونه اختصاصی یا محلی بهتر است از توسعه‌دهنده سؤال کنید.

آیا درگاه‌های پرداخت ایرانی با HPOS سازگارند؟

نمی‌توان درباره همه درگاه‌ها یک پاسخ واحد داد.

هر Plugin باید جداگانه بررسی شود.

درگاه‌هایی که از API استاندارد WooCommerce برای Order استفاده می‌کنند معمولاً مسیر بهتری برای سازگاری دارند.

اما اگر افزونه‌ای بسیار قدیمی باشد و مستقیماً:

wp_posts
wp_postmeta

را Query کند، باید تست شود.

برای فروشگاه واقعی، فقط مشاهده متن «Compatible» کافی نیست؛ پرداخت تستی نیز انجام دهید.

روش امن فعال‌سازی HPOS

برای فروشگاه فعال این ترتیب توصیه می‌شود:

۱. بکاپ کامل تهیه کنید

حداقل:

  • Database
  • wp-content
  • wp-config.php

باید نسخه قابل بازیابی داشته باشند.

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

۲. WooCommerce را به‌روز کنید

از یک نسخه قدیمی مستقیماً روی Production مهاجرت بزرگ انجام ندهید.

ابتدا Compatibility افزونه‌ها را بررسی کنید.

۳. Staging بسازید

مهاجرت را ابتدا روی Clone فروشگاه انجام دهید.

Staging یکی از مهم‌ترین امکاناتی است که هنگام انتخاب هاست ووکامرس حرفه‌ای باید در نظر بگیرید.

۴. افزونه‌ها را بررسی کنید

به‌خصوص افزونه‌هایی که Order Data را می‌خوانند.

۵. Compatibility Mode را فعال کنید

برای فروشگاه قدیمی، WooCommerce امکان Synchronization سفارش‌ها را فراهم می‌کند.

۶. منتظر تکمیل Synchronization بمانید

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

Background Actions باید تکمیل شوند.

۷. HPOS را Authoritative کنید

بعد از Sync شدن داده‌ها:

Use the WooCommerce orders tables

را انتخاب کنید. راهنمای WooCommerce برای فروشگاه‌های بزرگ نیز همین فرآیند را توصیه می‌کند.

۸. Compatibility Mode را فوراً خاموش نکنید

WooCommerce برای مهاجرت فروشگاه بزرگ پیشنهاد می‌کند ابتدا HPOS را منبع اصلی کنید اما Synchronization را مدتی نگه دارید تا امکان Rollback سریع وجود داشته باشد.

بعد از فعال‌سازی چه چیزهایی را تست کنیم؟

فقط صفحه اصلی سایت را باز نکنید.

یک Order Lifecycle کامل را آزمایش کنید.

سمت کاربر

  • بازشدن Product
  • Add to Cart
  • Cart
  • Coupon
  • Checkout
  • درگاه پرداخت
  • ایجاد Order
  • صفحه Thank You
  • My Account
  • Order History

سمت مدیریت

  • مشاهده سفارش
  • ویرایش سفارش
  • تغییر Status
  • افزودن Order Note
  • Refund
  • Search Order
  • Filter Order
  • ایجاد دستی Order

Integrationها

  • پیامک
  • ایمیل
  • حسابداری
  • حمل‌ونقل
  • CRM
  • Webhook
  • API

اگر یکی از این مراحل مشکل دارد، قبل از خاموش‌کردن Compatibility Mode علت را بررسی کنید.

جدول‌های HPOS چه هستند؟

چهار جدول اصلی نقش مهمی دارند.

wp_wc_orders

اطلاعات اصلی Order.

برای مثال مواردی مانند:

  • ID
  • Status
  • Currency
  • Customer
  • Total
  • Dates

wp_wc_order_addresses

اطلاعات آدرس.

مثل:

  • Billing
  • Shipping

wp_wc_order_operational_data

داده‌های Operational که برای پردازش داخلی Order استفاده می‌شوند.

wp_wc_orders_meta

Metaهایی که همچنان ساختار Key/Value دارند اما مختص Order هستند.

این تفکیک نسبت به ریختن همه‌چیز در Post Meta ساختار مشخص‌تری فراهم می‌کند.

آیا HPOS حجم دیتابیس را کم می‌کند؟

الزاماً به شکل چشمگیر و فوری خیر.

HPOS هدفش فقط کوچک‌کردن حجم نیست.

هدف اصلی ساختار بهتر و Query مناسب‌تر است.

در Compatibility Mode حتی ممکن است به‌دلیل نگهداری داده در دو ساختار، حجم دیتابیس موقتاً بیشتر شود.

بنابراین HPOS را ابزار پاکسازی Database تصور نکنید.

آیا بعد از HPOS می‌توان wp_posts سفارش‌های قدیمی را حذف کرد؟

این کار را دستی انجام ندهید.

حذف رکوردهای Order از wp_posts با Query دلخواه می‌تواند Integration یا Synchronization را خراب کند.

مدیریت Migration را به WooCommerce بسپارید.

خصوصاً روی فروشگاه Production:

DELETE FROM wp_posts ...

راه مناسبی برای «پاکسازی HPOS» نیست.

HPOS و wp_postmeta بزرگ

اگر فروشگاه شما wp_postmeta بسیار بزرگی دارد، HPOS کمک می‌کند رشد جدید Order Data از معماری قبلی جدا شود.

اما HPOS همه Metaهای قدیمی سایت را پاک نمی‌کند.

ممکن است جدول همچنان به‌دلیل:

  • Product Meta
  • Elementor
  • ACF
  • Plugin Data
  • Old Transients

بزرگ باشد.

پس Database Optimization همچنان موضوع جداگانه‌ای است.

HPOS برای فروشگاه کوچک لازم است؟

اگر WooCommerce جدید استفاده می‌کنید، معمولاً دلیلی برای برگشت به Legacy Storage ندارید مگر Compatibility Problem داشته باشید.

اما نباید انتظار داشته باشید فروشگاهی با ۲۰ سفارش با فعال‌سازی HPOS ناگهان تفاوت Performance قابل مشاهده زیادی داشته باشد.

مزیت معماری HPOS با رشد Order Data ارزش بیشتری پیدا می‌کند.

HPOS برای فروشگاه پرترافیک

برای فروشگاهی با:

  • هزاران سفارش
  • تعداد زیاد Customer
  • گزارش‌گیری مداوم
  • API Integration
  • تیم پشتیبانی سفارش
  • Automation

معماری Order Storage اهمیت بسیار بیشتری دارد.

WooCommerce صراحتاً HPOS را برای بهبود Scalability فروشگاه با افزایش مشتری و سفارش طراحی کرده است.

HPOS و هاست ووکامرس چه ارتباطی دارند؟

HPOS مشکل همه زیرساخت را حل نمی‌کند.

یک WooCommerce Hosting مناسب باید در کنار آن مواردی مانند این‌ها را فراهم کند:

  • CPU مناسب
  • RAM کافی
  • NVMe
  • PHP جدید
  • PHP Worker مناسب
  • MySQL/MariaDB بهینه
  • Redis Object Cache
  • OPcache
  • Backup
  • Staging
  • Cron پایدار

داده Search Console وطن هاست نشان می‌دهد عبارت «بهترین هاست ووکامرس» ۳۲۹ Impression با میانگین رتبه ۲۶.۰۹ و «هاست مخصوص ووکامرس» ۲۳۰ Impression با رتبه حدود ۴۸.۴۹ داشته است؛ بنابراین این مقاله می‌تواند به‌صورت طبیعی به صفحه تجاری هاست ووکامرس متصل شود.

برای WooCommerce چه دیتابیسی مناسب است؟

WooCommerce در مستندات فعلی MySQL 8.0 یا جدیدتر یا MariaDB 10.6 یا جدیدتر را برای Performance و Security بهتر توصیه می‌کند.

این نکته در HPOS اهمیت دارد، چون HPOS همچنان روی همان دیتابیس Relational شما کار می‌کند.

HPOS جای MySQL را نمی‌گیرد.

ساختار کلی:

WooCommerce
↓
HPOS
↓
MySQL / MariaDB
↓
NVMe

است.

آیا NVMe برای HPOS مهم است؟

Storage سریع می‌تواند روی عملکرد دیتابیس اثر بگذارد.

HPOS تعداد و ساختار Queryها را بهتر می‌کند، اما Queryها همچنان باید روی Storage اجرا شوند.

برای فروشگاه Database-heavy، NVMe مناسب معمولاً انتخاب بهتری از Storage بسیار کند است.

اما همان‌طور که قبلاً در وطن هاست مقاله مستقل درباره NVMe وجود دارد، بهتر است در این مقاله فقط لینک داخلی داده شود و وارد مقایسه کامل NVMe و SSD نشویم.

HPOS و PHP چه ارتباطی دارند؟

WooCommerce CRUD از PHP اجرا می‌شود و Order Data را از Data Store دریافت می‌کند.

پس HPOS بخشی از مسیر است:

Request
↓
PHP
↓
WooCommerce CRUD
↓
HPOS
↓
Database

اگر PHP Workerها اشباع باشند، HPOS به‌تنهایی مشکل را حل نمی‌کند.

به همین دلیل مقاله قبلی «بهترین نسخه PHP برای وردپرس و ووکامرس» مکمل طبیعی این صفحه است.

HPOS و Cron Job

Migration و بعضی عملیات Background در WooCommerce از Scheduled Actions استفاده می‌کنند.

WooCommerce در فرآیند Sync HPOS نیز Background Action زمان‌بندی می‌کند.

اگر Scheduled Actionها گیر کرده باشند، Migration نیز ممکن است کامل نشود.

وطن هاست از قبل مقاله مستقلی درباره Cron Job دارد و Search Console نیز آن صفحه را ثبت کرده است؛ پس توضیح Cron را در این مقاله کوتاه نگه می‌داریم و لینک داخلی می‌دهیم تا Cannibalization ایجاد نشود.

چگونه Pending Actions را بررسی کنیم؟

در WooCommerce می‌توانید Scheduled Actions را بررسی کنید.

اگر هنگام Migration تعداد زیادی Action با وضعیت Pending یا Failed باقی مانده‌اند، مشکل را قبل از ادامه بررسی کنید.

WooCommerce مستندات رسمی برای Scheduled Actions و ارتباط آن‌ها با WP-Cron دارد.

HPOS و Backup

قبل از Migration حتماً Backup بگیرید.

WooCommerce یکی از مزایای HPOS را ساده‌ترشدن Backup هدفمند Order Data می‌داند، اما این به معنی بی‌نیازی از Full Backup نیست.

برای فروشگاه بهتر است حداقل:

  • Database Backup
  • File Backup
  • Off-site Backup
  • Restore Test

داشته باشید.

Backupی که هرگز Restore آن تست نشده، هنوز کاملاً قابل اعتماد نیست.

آیا می‌توان HPOS را غیرفعال کرد؟

در فروشگاه‌هایی که Migration به‌درستی انجام شده و Compatibility Mode فعال است، امکان برگشت کنترل‌شده وجود دارد.

به همین دلیل WooCommerce برای فروشگاه بزرگ پیشنهاد می‌کند هنگام مرحله اول مهاجرت Synchronization را فوراً خاموش نکنید؛ اگر مشکلی مشاهده شد می‌توان Data Store را برگرداند بدون اینکه Downtime جدی ایجاد شود.

ولی HPOS معماری آینده WooCommerce است.

بنابراین اگر Plugin ناسازگار دارید، راه‌حل بلندمدت بهتر این است که Plugin به‌روزرسانی یا جایگزین شود، نه اینکه فروشگاه برای همیشه روی Legacy Storage بماند.

اگر افزونه با HPOS سازگار نیست چه کنیم؟

سه گزینه منطقی دارید:

  1. نسخه جدید Plugin را بررسی کنید.
  2. با توسعه‌دهنده درباره HPOS Compatibility تماس بگیرید.
  3. افزونه جایگزین پیدا کنید.

اگر Plugin اختصاصی است، توسعه‌دهنده باید دسترسی مستقیم به Posts Table را کنار بگذارد و از WooCommerce Order API استفاده کند.

اشتباهات رایج هنگام فعال‌سازی HPOS

فعال‌سازی مستقیم روی فروشگاه اصلی

برای فروشگاه مهم، ابتدا Staging.

بررسی‌نکردن درگاه پرداخت

Checkout مهم‌ترین مسیر درآمد سایت است.

بی‌توجهی به افزونه حسابداری

افزونه‌های Accounting و ERP شدیداً به Order Data وابسته‌اند.

خاموش‌کردن زودهنگام Compatibility Mode

قبل از اطمینان از سلامت Integrationها این کار ریسک ایجاد می‌کند.

دستکاری دستی جداول

HPOS Migration را با SQL دستی مدیریت نکنید مگر دقیقاً ساختار داخلی WooCommerce را می‌شناسید.

انتظار معجزه Performance

HPOS یک Optimization تخصصی برای Order Storage است، نه جایگزین Cache، CPU و هاست مناسب.

آیا HPOS برای Elementor تأثیری دارد؟

Elementor عمدتاً با محتوای صفحه و Front-end سروکار دارد.

خود Elementor معمولاً دلیل اصلی تصمیم HPOS نیست.

ولی Add-onهایی که اطلاعات Order نمایش می‌دهند یا Dashboard فروشگاه می‌سازند باید بررسی شوند.

HPOS و ACF

اگر از ACF روی Orderها استفاده می‌کنید، سازگاری نسخه افزونه اهمیت دارد.

ACF در نسخه‌های جدید پشتیبانی HPOS را توسعه داده است، اما Custom Code قدیمی که فرض می‌کند Order همیشه Post است باید بررسی شود.

قاعده اصلی همان است:

Order را از WooCommerce API بخوانید، نه با فرض ساختار قدیمی دیتابیس.

HPOS و گزارش‌گیری

یکی از مزایای معماری اختصاصی Order این است که داده‌های اصلی در Schema مناسب‌تری قرار دارند.

اما Report Plugin نیز باید HPOS-compatible باشد.

گزارش‌گیری که مستقیم از wp_postmeta می‌خواند ممکن است روی HPOS Authoritative داده ناقص یا قدیمی دریافت کند.

HPOS و REST API

اگر Integration از REST API استاندارد WooCommerce استفاده کند، معماری داخلی Storage باید برای آن کمتر اهمیت داشته باشد.

این یکی از دلایل ارزش API Abstraction است.

Custom Integrationهایی که مستقیم SQL Query می‌زنند شکننده‌تر هستند.

چه فروشگاه‌هایی باید HPOS را جدی‌تر بررسی کنند؟

اگر یکی از این شرایط را دارید:

  • بیش از چند هزار Order دارید؛
  • wp_postmeta بسیار بزرگ شده؛
  • wp-admin سفارش‌ها کند است؛
  • گزارش‌گیری سنگین دارید؛
  • API Integration دارید؛
  • قصد Scale فروشگاه دارید؛
  • WooCommerce قدیمی را Upgrade می‌کنید؛
  • می‌خواهید Plugin جدید سفارش نصب کنید؛

HPOS باید بخشی از بررسی فنی شما باشد.

چک‌لیست مهاجرت HPOS

قبل از Migration:

  • بکاپ کامل
  • Staging
  • آخرین WooCommerce پایدار
  • بررسی Pluginها
  • بررسی Theme/Custom Code
  • بررسی Payment Gateway
  • بررسی Accounting
  • بررسی Shipping
  • بررسی Cron/Scheduled Actions

هنگام Migration:

  • Compatibility Mode
  • Sync کامل Orders
  • بررسی Failed Actions
  • انتخاب HPOS به‌عنوان Data Store
  • حفظ Sync موقت

بعد از Migration:

  • سفارش تست
  • پرداخت
  • Refund
  • Email
  • SMS
  • حسابداری
  • Shipment
  • API
  • Webhook
  • Reports
  • Backup

هنگام انتخاب هاست ووکامرس چه مواردی مهم است؟

اگر هدف شما فروشگاه جدی است، فقط حجم دیسک را مقایسه نکنید.

برای مثال پلن:

50GB NVMe

به‌تنهایی چیز زیادی درباره Performance Checkout نمی‌گوید.

موارد مهم‌تر:

  • CPU
  • PHP Worker
  • RAM
  • NVMe
  • Database Performance
  • Redis
  • PHP Version
  • Backup
  • Staging
  • Cron Reliability
  • امکان رشد منابع

WooCommerce برای محیط فعلی خود PHP جدید، دیتابیس مدرن، HTTPS و منابع قابل Scale را توصیه می‌کند.

HPOS به معنی بی‌نیازی از بهینه‌سازی نیست

حتی بهترین Schema هم نمی‌تواند Plugin ضعیف را نجات دهد.

فرض کنید Plugin گزارش‌گیری هر بار صدها Query غیرضروری اجرا کند.

HPOS ممکن است Queryها را بهتر کند، اما طراحی ضعیف Plugin همچنان باقی است.

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

Theme
Plugins
PHP
Object Cache
HPOS
Database
Storage
CPU
Network

جمع‌بندی؛ آیا HPOS را فعال کنیم؟

اگر فروشگاه جدید WooCommerce دارید، احتمالاً از قبل HPOS فعال است.

اگر فروشگاه قدیمی دارید و هنوز Legacy Order Storage استفاده می‌کنید، مسیر آینده WooCommerce به‌وضوح HPOS است؛ اما Migration باید کنترل‌شده انجام شود.

HPOS سفارش‌ها را از ساختار عمومی wp_posts/wp_postmeta به جداول اختصاصی WooCommerce منتقل می‌کند و هدف آن افزایش Scalability، Reliability و سادگی مدل داده است.

برای فروشگاه کوچک ممکن است تفاوت Performance بسیار محسوس نباشد.

اما با افزایش تعداد سفارش، ارزش معماری اختصاصی بیشتر می‌شود.

قبل از فعال‌سازی:

Backup → Staging → Compatibility Check → Sync → Test

و بعد:

HPOS → Monitoring → حذف تدریجی وابستگی‌های Legacy

مهم‌ترین نکته در سال ۲۰۲۶ نیز این است که افزونه‌ها و Custom Code فروشگاه باید واقعاً HPOS-compatible باشند؛ تغییر رفتار Sync on Read در WooCommerce 10.7 نشان می‌دهد اتکا به روش‌های قدیمی دسترسی به Order Data دیگر راهکار آینده‌داری نیست.

سؤالات متداول

HPOS در ووکامرس چیست؟

HPOS یا High-Performance Order Storage معماری ذخیره سفارش WooCommerce است که داده‌های سفارش را در جداول اختصاصی و بهینه‌شده به‌جای ساختار سنتی wp_posts و wp_postmeta نگهداری می‌کند.

آیا HPOS سرعت ووکامرس را زیاد می‌کند؟

HPOS می‌تواند عملیات مرتبط با Order Data و مقیاس‌پذیری دیتابیس را بهبود دهد، مخصوصاً در فروشگاه دارای سفارش زیاد. اما مشکلات تصویر، JavaScript، CPU یا Plugin کند را به‌تنهایی حل نمی‌کند.

HPOS از چه نسخه‌ای پیش‌فرض است؟

از WooCommerce 8.2، HPOS برای نصب‌های جدید به‌صورت پیش‌فرض فعال شده است.

چگونه بفهمیم HPOS فعال است؟

از مسیر WooCommerce → Settings → Advanced → Features وضعیت Order Data Storage را بررسی کنید.

Compatibility Mode چیست؟

حالت مهاجرتی است که Order Data را بین HPOS Tables و Legacy Posts Tables همگام نگه می‌دارد تا افزونه‌های قدیمی فرصت سازگاری داشته باشند.

آیا HPOS برای فروشگاه کوچک لازم است؟

در WooCommerce جدید معمولاً استفاده از معماری پیش‌فرض HPOS منطقی است، اما انتظار جهش بزرگ Performance در فروشگاه بسیار کوچک نداشته باشید.

آیا HPOS با Redis کار می‌کند؟

بله. Redis Object Cache و HPOS لایه‌های متفاوتی هستند و می‌توانند هم‌زمان استفاده شوند. WooCommerce حتی برای HPOS گزینه Data Caching مخصوص دارد که در حضور Object Cache توصیه می‌شود.

آیا همه افزونه‌های WooCommerce با HPOS سازگار هستند؟

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

آیا فعال‌سازی HPOS اطلاعات سفارش‌ها را حذف می‌کند؟

در فرآیند استاندارد WooCommerce، Orderها Synchronize می‌شوند؛ بااین‌حال قبل از Migration حتماً Full Backup تهیه کنید.

آیا می‌توان HPOS را دوباره غیرفعال کرد؟

در دوره Migration و زمانی که Synchronization برقرار است امکان Rollback کنترل‌شده وجود دارد. WooCommerce برای فروشگاه‌های بزرگ توصیه می‌کند Sync را بلافاصله بعد از تغییر Data Store خاموش نکنید.

جدول اصلی HPOS چیست؟

یکی از جداول اصلی wc_orders است و جداول دیگری برای Address، Operational Data و Order Meta نیز استفاده می‌شوند.

HPOS جای Redis را می‌گیرد؟

خیر. HPOS ساختار Database است؛ Redis یک In-memory Object Cache است.

نظرت راجب این مطلب ؟

امتیاز خودت رو ثبت کن

میانگین نظرات : 0 / 5. تعداد نظرات : 0

بدون نظر

ثبت دیدگاه

دیدگاه خود را ثبت کنید

امتیاز شما

هنوز دیدگاهی ثبت نشده است. اولین نفر باشید ✨