Overview
We are plotting a path that will eventually eliminate the ability for developers to programmatically disable WooCommerce Admin via the woocommerce_admin_disabled
filter. We understand that many stores and extensions rely on this filter for various purposes, so we want to capture feedback from you to help guide the decisions we make about how to best proceed. This post is intended to provide a bit of background about the filter itself along with our rationale for electing to removing the filter. We’ll also share some of the considerations we’ve taken into account so far and provide a lightweight roadmap of next steps. We are eager to hear your feedback and questions about this initiative as a whole, or about any of the pieces covered in this post.
Background
The current admin experience in WooCommerce initially began its journey to WooCommerce core as a feature plugin that was released back in 2018. The introduction of this plugin marked a pivot, of sorts, toward a modern-JavaScript-powered future for WooCommerce, enabled principally by the arrival of React in WordPress core. By 2020, when WooCommerce Admin was bundled into the release of WooCommerce 4.0, the feature plugin was already active on over one million stores, and the adoption has only increased since then.
Early adoption levels notwithstanding, the team who maintain WooCommerce Admin understood that there were many stores out there who would need to disable the new functionality for one reason or another. With that in mind, they opted to include a filter that would allow WooCommerce Admin to be disabled entirely. That filter, woocommerce_admin_disabled
, essentially functions as a master switch for all the functionality that WooCommerce Admin provides.
As WooCommerce Admin’s features continue to become increasingly interwoven into the merchant experience in WooCommerce, both via the core plugin and the growing number of extensions that use those features, we believe it is time to plot a pathway toward removing that filter.
Why are we proposing to remove this filter
There are both philosophical and practical reasons underpinning the recent Pull Request proposing to remove this filter. As the section above mentions, WooCommerce Admin is becoming more and more a part of the core WooCommerce experience for merchants. Moreover, the components and functionality it exposes for developers form the foundation of a modern-JavaScript-powered WooCommerce built for a Gutenberg-era WordPress environment. For all intents and purposes, WooCommerce Admin and WooCommerce Core are becoming inextricable because both are critical for running a WooCommerce store.
Against the backdrop of that technical melding, the practical challenges of supporting an all-encompassing cutoff switch begin to emerge. For instance, a recent pull request from the community illustrates the kinds of issues that can arise when new functionality is unavailable because its underlying codebase has been disabled upstream. By eliminating the heavy-handedness of the woocommerce_admin_disabled
filter, we’re hoping to make it easier for developers to take advantage of new features by giving them more confidence that those features will be available in a store when they need them.
Current considerations
One bit of feedback that we consistently receive from folks in the community is that there are stores who prefer to disable the Analytics system that WooCommerce Admin provides. Some stores use external services for analytical reporting and others may simply be disabling the functionality in an effort to optimize store performance or reduce bloat.
With that in mind, one measure we’re currently aiming to keep in place is the feature flagging system in WooCommerce Admin available via the woocommerce_admin_features
filter. With this system, we can provide developers more granular control over individual pieces of WooCommerce Admin functionality. For instance, the Analytics system could be placed behind a feature flag that developers could toggle to streamline the merchant experience while still having access to the underlying framework itself.
Proposed next steps
To begin with, we’re trying to get a better idea of how many stores are using the woocommerce_admin_disabled
filter and for what reasons. WooCommerce 5.2 included additional usage tracking about this filter that should provide some helpful insights.
We also believe its important to capture feedback directly from the developer community. That’s one of the underlying reasons for this RFC, but we’re also proactively reaching out to developers in the community to solicit input as well. If you believe your plugin or extension will be affected and haven’t heard from us yet, please don’t hesitate to reach out.
As we capture more feedback and usage data, we’ll be laying out a plan for deprecating the filter over a set period of time or number of core releases. We’re also going to be putting together a list of distinct features in WooCommerce that should support programmatic toggleability as well as parts of WooCommerce that need to take into account any repercussions arising from allowing developers to toggle them.
Share your questions, comments, and concerns
As I mentioned above, we’re eager to hear your thoughts about this initiative. We understand changing this filter will have lots of reverberations, many of which we haven’t considered yet. It’s also important to us that the developer community has the opportunity to weigh in on decisions about the direction of the platform or the availability of its extensibility features. Use the comments below to provide feedback or reach out to us in the WooCommerce Community Slack. We look forward to hearing from you.
Leave a Reply