Skip to content

Expert Answers to Your Magento, Shopify & Shopware Questions

Vendor-neutral, engineer-written explanations. Clear definitions first, then practical steps with real examples — no fluff.

Stagebit builds and maintains stores on Magento, Adobe Commerce, Shopify, Shopware, and Laravel, and this library holds the questions our own engineers get asked most often on each platform.

What breaks when I enable HPOS, and how do I test it safely?

SB
Written by Stagebit Engineering Team
Updated September 2026 3 min read Verified by engineers

Enabling HPOS mostly breaks things that talk to orders the old way: plugins or custom code that query wp_posts and wp_postmeta directly instead of going through WooCommerce’s order CRUD methods, custom admin columns or metaboxes built against the post schema, and reports or exports that assume orders live in the posts table. Most well-maintained WooCommerce extensions have already been updated for HPOS, but anything custom or unmaintained is where the risk sits. Test on staging first, with compatibility mode on, before switching anything on a live store.

Quick answer

HPOS typically breaks plugins and custom code that query order data straight from wp_posts and wp_postmeta rather than using WooCommerce’s order functions, along with any custom metaboxes, admin columns, or reports tied to the old post-based schema. To test safely: clone your store to staging, enable compatibility mode (not a full switch), run wp wc hpos sync and wp wc hpos verify_cot_data --verbose, then test checkout with every payment method, refunds, and subscription renewals before switching production.

What can actually break

  • Custom code or plugins using get_post() or WP_Query directly on the shop_order post type instead of WooCommerce’s order functions
  • Custom admin columns or metaboxes added to the orders screen via post-based hooks
  • Reporting, analytics, or export tools that were never updated to read from the HPOS tables
  • Subscriptions or Bookings extensions running on an outdated version that predates HPOS support
  • Import or migration tools that write orders directly into wp_posts, bypassing HPOS sync and causing the two tables to drift apart

This isn’t theoretical. Store owners have reported plugins like Easy Product Bundles for WooCommerce breaking outright after a WooCommerce update tied to HPOS compatibility, with the plugin throwing fatal errors until updated. That’s exactly the failure mode staging is meant to catch before it hits a live store.

How to test the switch safely

  1. Clone the live site to staging. Never run a first HPOS test on production.
  2. Check plugin compatibility first. WooCommerce > Settings > Advanced > Features shows a compatibility status for each active plugin. If WooCommerce detects an incompatible plugin, it disables the HPOS toggle automatically until you resolve or remove it, so you can’t accidentally switch to a broken setup.
  3. Turn on compatibility mode, not a full switch. This syncs orders between the old and new tables so both stay usable while you test.
  4. Migrate historical orders via WP-CLI. Run wp wc hpos sync to move past orders into the new tables.
  5. Verify the migration. Run wp wc hpos verify_cot_data --verbose to confirm the data matches between old and new tables.
  6. Test every critical flow. Checkout with each payment method you accept, process a refund, renew a subscription if you run WooCommerce Subscriptions, and open a few orders in admin to check custom columns and metaboxes still render.
  7. If something looks broken, isolate it the standard way. Deactivate every plugin except WooCommerce and the one you suspect, confirm the issue clears, then reactivate the rest one at a time until it reappears. That tells you exactly which plugin to fix or replace.
  8. Switch production during low traffic. Pick a quiet window, not peak hours.
  9. Don’t disable sync right away. Keep compatibility mode on for a while after the switch as a safety net, then disable sync on read first, and disable it fully only once you’re confident.

If a plugin is flagged incompatible and you can’t drop it, contact the developer before migrating. Keeping compatibility mode on is a genuine fallback: it doesn’t fully protect you from a badly behaved plugin, but it means you’re not migrating on faith. Test the flows that actually matter to your store, not just checkout, and you’ll catch most problems on staging where they’re cheap to fix. If you’d rather not run this testing process yourself, Stagebit’s WooCommerce development team handles HPOS migrations end to end, plugin audit, staging tests, and the production switch.

Was this answer helpful?

Your feedback helps us improve our answers.

Still need help?

Talk to our WooCommerce experts

We rebuild and support WooCommerce stores that have slowed down under plugin bloat, with a focus on Core Web Vitals and checkout reliability.

Talk to WooCommerce Experts