• I got an alert today that Search Exclude is incompatible with WooCommerce, specifically the “High-Performance order storage” function.

    It does not seem to actually be causing conflicts but the instructions I am given as a WooCommerce user is to deactivate your plugin.

    I asked WooCommerce for help – specifically what YOU can do and this was their response!

    Point the QuadLayers developer to these official WooCommerce resources:

    1. HPOS Documentation for Merchants & Developers:
      https://woocommerce.com/document/high-performance-order-storage/
    2. The Upgrade Recipe Book (developer-focused technical guide):
      The HPOS documentation above links to the Upgrade Recipe Book on GitHub, which contains all the technical details developers need to declare compatibility. The key thing the developer needs to do is add a simple compatibility declaration using WooCommerce’s FeaturesUtil::declare_compatibility() method inside a before_woocommerce_init hook. This is often just a few lines of code and doesn’t require any changes to how the plugin actually functions.
    3. Developer Blog & GitHub Guides:
      WooCommerce has published blog posts and GitHub guides specifically for developers updating their plugins for HPOS. These are referenced in the documentation above.

    In short, tell them: “You likely just need to add an HPOS compatibility declaration — it doesn’t mean you need to rewrite anything, just signal to WooCommerce that your plugin is safe to use with HPOS.”

Viewing 1 replies (of 1 total)
  • Same here after updating 2.6.6 → 2.6.7. The cause is the two headers added to search-exclude.php in 2.6.7:

    * WC requires at least:    4.0
    * WC tested up to: 11.1

    With a “WC tested up to” header, WooCommerce treats the plugin as a WooCommerce extension and expects it to declare which features it supports. 2.6.7 doesn’t declare any, so it’s listed as “uncertain” for everything, and HPOS (custom_order_tables) is the one feature where WooCommerce counts “uncertain” as incompatible. 2.6.6 had no WC headers, so it was never checked.

    Search Exclude has no order-related code, so there’s no real conflict. Adding this to the main plugin file should clear the warning:

    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 );
    }
    } );

    (Removing the two WC headers would also work, since the plugin doesn’t depend on WooCommerce.)

    For anyone else seeing this: HPOS stays on and orders aren’t affected. The only side effect is that the HPOS setting is locked while the plugin is active.

Viewing 1 replies (of 1 total)

You must be logged in to reply to this topic.