How to check if a plugin supports HPOS and Checkout Blocks
By Raz Technologies · published · data updated
Short answer: look for the plugin's compatibility declaration — WooCommerce shows it under Settings → Advanced → Features, developers declare it with FeaturesUtil::declare_compatibility(), and our grid shows it for every plugin we track. See our request a quote plugin ranking for the full comparison.
Why it matters
High-Performance Order Storage (HPOS) moves orders out of the posts table, and the block-based Cart & Checkout replace the classic shortcodes. Plugins that hook into orders or checkout must support both, or they can break silently.
1. In WooCommerce
Go to WooCommerce → Settings → Advanced → Features. WooCommerce lists active plugins that are incompatible with HPOS there.
2. In the plugin's code
Compatible plugins declare it on before_woocommerce_init. If you find these lines with true, the plugin declares support:
add_action( 'before_woocommerce_init', function () {
if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', __FILE__, true );
}
} );The plugin header line WC tested up to: tells you the newest WooCommerce version the developer tested.
3. In our compatibility grid
We read these declarations from every new version of the 87 plugin listings we track and publish them with dates in the WooCommerce compatibility grid.
FAQ
What happens if a plugin does not declare HPOS compatibility?
WooCommerce lists it as incompatible or uncertain on the Features settings screen, and may prevent switching to High-Performance Order Storage until it is deactivated or declared compatible.
Does "declared" mean the plugin was tested?
No. It means the developer states compatibility in code. It is a strong signal but not a test; our lab results are labeled "Tested" separately.