Today when I logged in to my local test site I saw a scary warning across every admin page.
WooCommerce has detected that some of your active plugins are incompatible with currently enabled WooCommerce features. Please review the details.
I clicked the link and I’m presented with a list of plugins that are incompatible with enabled WooCommerce features.
Okay, WooCommerce Memberships is incompatible with High-Performance order storage. The plugin needs an update so updating will probably fix it, no problem ✅
But what’s this? WP Fusion (the plugin we develop) and two of our addons are incompatible? Incompatible with what?? We added support for HPOS at the end of 2022.
I start digging through the code, and it appears to be related to WP Fusion declaring incompatibility with the new block-based product editor and block-based checkout.
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', WPF_PLUGIN_PATH, true );
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'product_block_editor', WPF_PLUGIN_PATH, false );
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', WPF_PLUGIN_PATH, false );
Okay, let’s go to the Manage WooCommerce features page and disable those features.
Huh. No option, or indication that anything is wrong.
Out of curiosity, let’s try enabling the New product editor. Check the box, save the page, nothing happens. The box is still un-checked. No indication that it’s failed to save due to an incompatible feature.
Thankfully I noticed this before any customer contacted us, to say our plugins aren’t compatible with WooCommerce (when they are).
What are we going to do about it? 🤔
We will need to find a way to add our own notice to the Incompatible Plugins list indicating exactly what features in WP Fusion are incompatible with enabled Woo features (for example, WP Fusion is only incompatible with the block-based checkout if you’ve enabled the setting to add an email optin checkbox to the checkout form).
This post on the Woo developer blog covers declaring incompatibility with the checkout blocks, but there’s nothing about providing context to users. Maybe it’s possible, maybe it’s not. We will probably waste a lot of time trying to find out.
This goes back to my general frustration with the way new features are being rolled out at WooCommerce. This isn’t amateur hour. WooCommerce is in use on 7+ million sites and has thousands of third-party add-ons, like WP Fusion.
The new block-based product editor is going to break interfaces that thousands of our customers depend on, and that we’ve spent the last eight years optimizing.
Unlike the WordPress 5.0 release, which introduced the block editor but included support for legacy meta boxes, the new WooCommerce editor has no legacy fallbacks. Our settings are just gone.
In the conversations I had with WooCommerce leadership at WordCamp Asia in Taipei, the message I got was, “This is the future, and it’s coming whether you like it or not. Start integrating with the new editor today so you’re not left behind”.
It will take us several months and thousands of dollars to rebuild everything using the new block framework.
Why should I feel secure in making that investment when Woo can’t even tell me why this checkbox won’t save?
Update: WooCommerce has kindly reached out for feedback about what they could do to improve the experience, and they also informed me that it’s the Astra theme that prevents activation of the new product editor. Here are the suggestions I sent:
a.) If something is incompatible with a feature, it should at least show the incompatible feature in the list. I was looking towards the block product editor but actually it was the block-based checkout that caused us to show up as incompatible.
b.) If features are managed in the Advanced » Features tab, then it should show that the block-based checkout is enabled, and that there are plugins that are incompatible with it (ideally with some context). At the moment I can only find that info if I go to the block editor checkout page and see the notice.
c.) I’m curious what the shortcoming was in the Woo framework or docs that caused Astra to feel like they need to hijack the settings page save to make their theme work correctly. They’re pretty talented (and in use on 1 million+ sites) and I feel like if there was a standardized way to achieve that goal they would have followed it. If other plugins are going to do this, then Woo should anticipate it and say “Some plugin is blocking the activation of the New Product Editor feature”.
d.) Now that I’ve declared we do not support the block product editor, and switched themes, I can still enable and use it, and there’s no indication in the admin or on the product editor that users are missing functionality from WP Fusion.
e.) (long shot) Some kind of legacy fallback section or modal on the new product editor for interfaces registered via woocommerce_product_data_panels
or add_meta_box()
. It could be tucked away with maybe a tiny indicator that an active plugin hasn’t yet migrated to the new UI, “you can find their settings here”.