Quick Buy Now Button for WooCommerce – Skip Cart
Add a lightweight Buy Now button to WooCommerce products: skip the cart and send customers straight to checkout in one click.
WooCommerce HPOS keeps orders in dedicated tables instead of WordPress posts. Learn what changes, where the setting is, what compatibility mode does, and how to switch an existing store safely.
WooCommerce HPOS, short for High-Performance Order Storage, is the way WooCommerce keeps orders in dedicated database tables instead of the general WordPress posts tables. It used to be called custom order tables. As of October 2026 it is on by default for new installations, a change that arrived in WooCommerce 8.2 in October 2023, while an existing store keeps its old storage until you switch it under WooCommerce > Settings > Advanced > Features. This guide explains what changes, what compatibility mode is for, and how to switch without putting orders at risk.
In short
Until HPOS, WooCommerce stored orders and refunds as custom post types and post meta records, in the same tables WordPress uses for its posts. WooCommerce's HPOS documentation says this came with performance issues. HPOS moves the data into four tables designed for WooCommerce queries: _wc_orders, _wc_order_addresses, _wc_order_operational_data and _wc_orders_meta, each with your database prefix in front.
The orders themselves do not change: the same customers, items, totals and order IDs, still managed under WooCommerce > Orders. What changes is underneath. Plugins and custom code should get order data through WooCommerce's order API instead of reading the posts tables directly, and plugins that still do the latter cause most HPOS problems.
WooCommerce released HPOS as stable in version 8.2 and made it the default for new installations. The documentation describes three benefits:
The merchant documentation adds that businesses of all sizes benefit and that there are no special hosting limits. It gives no speed figure for your store, so measure before and after, as the speed guide describes.
Two details about "default". An existing store is never migrated automatically: the feature is opt-in, and you can stay on legacy storage. And WooCommerce's installer code (not the documentation) enables HPOS for a new store only when it has no orders yet and no active WooCommerce plugin that is incompatible or has not declared support, so check the Features screen instead of assuming. WooCommerce's developer blog says it recommends moving to HPOS.
Open WooCommerce > Settings > Advanced > Features. The labels below come from WooCommerce's documentation and plugin code, checked in October 2026, and the wording can differ slightly between versions.
Compatibility mode exists because many plugins still read the old tables. WooCommerce treats one set of tables as authoritative, the working copy, and the other as a backup that receives the changes. With HPOS authoritative and compatibility mode on, each change is also copied to the posts tables, so older plugins find current data there and you can switch back. The developer blog explains the design. Three rules follow:
Each plugin's author declares HPOS compatibility in code. WooCommerce can only show what plugins declare, and only for plugins whose main file has a WC tested up to header. Where to look:
/wp-admin/plugins.php?plugin_status=incompatible_with_feature&feature_id=custom_order_tables on your own site.Stores in Saudi Arabia and the Gulf often rely on local payment, courier and e-invoicing plugins, so check those first: see payment gateways in Saudi Arabia and ZATCA e-invoicing.
If your plugin touches orders, use WooCommerce's order API, such as wc_get_order(), instead of post and postmeta functions, and declare compatibility only after testing both storages. The official HPOS recipe book covers audits, order queries and the declaration, and the snippet itself is in how to sell a WordPress plugin.
Large stores should use WooCommerce's phased plan and its command-line tools, which sync many orders faster.
| Problem | Likely cause | What to do |
|---|---|---|
| The HPOS option is greyed out | An active plugin is flagged incompatible, or orders are waiting to sync | Open View and manage, or wait for the sync |
| The sync seems stuck | Scheduled actions are not running | Check Scheduled Actions, and ask your host about a server-side cron task |
| A report or plugin shows old or missing orders | It reads the posts tables directly | Ask the author for an HPOS-compatible version |
| Subscriptions or bookings look wrong | The extension was deactivated during the migration | Switch back to posts storage, let the sync finish, then switch again, as the merchant documentation says |
| An old integration fails | It uses the Legacy REST API, removed from core in WooCommerce 9.0 and not compatible with HPOS | Ask the provider to move to the current REST API |
No. For existing stores it is opt-in and you can switch at any time, though WooCommerce recommends it.
WooCommerce documents scalability as a design goal but publishes no figure for your store, so measure your own order screens and checkout before and after.
Yes. While compatibility mode is on, WooCommerce says reverting to the posts tables can be done instantly. Take a backup anyway.
No. Order IDs are kept identical in both sets of tables so that synchronisation can work, and no data is meant to be lost. A tested backup is still your safety net.
Check the Features and Plugins screens to see where you stand, then read how to update WordPress and WooCommerce safely for the staging routine. If a plugin needs replacing, browse WooCommerce plugins on DevMarket and check each listing's compatibility notes.
The software this guide talks about, ready to look at.
Add a lightweight Buy Now button to WooCommerce products: skip the cart and send customers straight to checkout in one click.
Fix the WordPress critical error and white screen of death calmly: back up, read the logs, find the cause by elimination, then handle database, 500, memory, maintenance mode, 404 and login errors.
9 min read
Choose a WordPress theme by testing, not by demo. Compare block and classic themes, sources, speed, accessibility, RTL support, WooCommerce, builder lock-in and licence terms on a staging copy.
9 min read
Use this WordPress maintenance checklist to plan weekly, monthly and yearly tasks: updates, backups, users, plugins, security, speed, PHP, domain and SSL, plus Site Health and WooCommerce checks.
9 min read
Every item on DevMarket has a human-reviewed release, an instant licence key and clear update and support terms.