All articles
WooCommerce

WooCommerce HPOS Plugin Compatibility Test Before Production

HandL WP Engineering·
WooCommerce HPOS Plugin Compatibility Test Before Production

HPOS changes how WooCommerce stores orders. Compatible plugins should use WooCommerce order APIs, but older custom code may still read wp_posts and wp_postmeta directly.

Use this before enabling HPOS on a store with payment gateways, fulfillment tools, subscriptions, custom reports, feeds, exports, or tracking snippets.

Quick answer

Start with evidence, not a plugin setting. The first useful checks are: Clone production to staging and update plugins there first. Create test orders for each payment method, coupon, shipping method, and tax state. Check order exports, fulfillment sync, email templates, refunds, and analytics. Keep every change small enough to reverse.

Fast diagnosis map

Use this map before changing production. It helps separate a real platform issue from a cached page, stale setting, or missing handoff.

SignalWhat it meansUseful next check
Order export emptyCheck access, users, or ownership firstClone to staging
Webhook missing orderLook for a configuration, plugin, or data mismatchEnable HPOS test mode
Tracking plugin reads postmetaInspect the layer most likely to be hidden from the normal UIRun order matrix
Fulfillment app staleProve whether the problem is still activeFix direct queries

What to check first

  • Clone production to staging and update plugins there first.
  • Create test orders for each payment method, coupon, shipping method, and tax state.
  • Check order exports, fulfillment sync, email templates, refunds, and analytics.
  • Review any custom plugin or theme code that queries shop_order posts directly.
  • Keep compatibility mode or sync enabled until the test matrix passes.

Run a focused check

These commands or fields give you a useful starting point. Adapt paths, IDs, and privacy handling to the site before running anything on production.

wp option get woocommerce_custom_orders_table_enabled
wp option get woocommerce_custom_orders_table_data_sync_enabled
wp plugin list --status=active --fields=name,version,update

# Search custom code for direct order table assumptions
grep -R "shop_order\|_billing_email\|wp_posts" wp-content/themes wp-content/plugins -n
WooCommerce HPOS plugin compatibility test matrix covering payment, fulfillment, exports, analytics, and tracking

Safe fix order

Do the work in this order so each result can be verified. If a step fails, stop and capture the evidence before making a broader change.

  1. Clone to staging
  2. Enable HPOS test mode
  3. Run order matrix
  4. Fix direct queries
  5. Launch with rollback plan

Verification checklist

The fix is not done when the warning disappears. Confirm the result from the visitor side, admin side, and reporting side.

  • Orders appear in admin and in every connected system.
  • Refunds and failed payments are represented correctly.
  • Purchase tracking fires once with the correct order ID.
  • Support staff can still find orders by customer, email, and status.

Mistakes to avoid

  • Do not judge the result by the homepage only.
  • Do not clear every cache layer until you know which layer affects the symptom.
  • Do not delete evidence before copying filenames, timestamps, versions, and affected URLs.
  • Do not make privacy or crawler decisions without writing down the business reason.
  • Do not leave temporary debug settings, test accounts, or broad permissions in place.

When HandL WP should help

Bring in help when the issue affects leads, checkout, ads, malware risk, search visibility, or a client production site. HandL WP can trace the problem through WordPress, hosting, tracking, cache, and Search Console, then verify the business workflow after the technical fix.

If this is active on a production site, test WooCommerce HPOS safely.

Helpful references

Ready when you are

Get WordPress help, before the next lead is lost.

Tell us what’s broken or what you need built. We’ll review your request and reply with clear next steps, usually within a few business hours.

Same-day emergency triage · Backed by HandL Digital