Request for comments: Removing the filter to turn off WooCommerce Admin

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.


Keep yourself in the loop!

Sign up for the WooCommerce developer newsletter:
Hidden
Hidden
Hidden


15 responses to “Request for comments: Removing the filter to turn off WooCommerce Admin”

  1. The admin can be heavy on most hosts, and with sites that have a lot of products and orders, and are not optimized well, it tends to greatly slow them down when an admin accidentally clicks this link

  2. Bill M Avatar

    I’ve been trying to turn off the Admin for a while . When trying to enter a customer note within the order details, you have to wait for the buttons to load then moves the screen down a bit which throws off your writing or when trying to copy and paste text for the note. We use Google analytics for all of the analytics, do not need it within woocommerce AND all of the above adding to bloat.

  3. therealsimplesimon Avatar
    therealsimplesimon

    As above, the WC Admin appears to impose a HUGE load on the server – more so than the entire rest of WooCommerce itself. This load appears to be due to the “useless for many” Analytics subsystem.

    However, the converse is that when trying to kick the Analytics load off the server, we need to disable everything having to do with WC Admin. IF (and only if) we can enable ONLY the pieces a client might need via the woocommerce_admin_features filter.

    AND, of course, a good documentation page for it would be helpful:
    Documentation / Search results for “woocommerce_admin_features”
    No results found for “woocommerce_admin_features”.

  4. Please DO NOT “fix” this! It is important that you listen to store owners some of the time!

    This feedback is apt from a store owner point of view
    “….I believe a CMS is supposed to only deliver content, and not include extensive reporting tools as this should be done externally to spare resources.”

    https://github.com/woocommerce/woocommerce-admin/pull/6563#issuecomment-800089591

  5. Admin is heavy, too far away from business needs and UI unoptimized (constant DIV block on top my interface with useless information and meaningless Inbox; the large pop-up window which cannot be closed).
    I do not use it and have no idea why I need it.
    So please keep that options for people like me and do not remove that filter

    1. I have to agree with this, the messages on admin can be annoying and most cant be dismissed. “Coupons are being moved from X to Y”, should be dismiss-able. Also for a modern UI, I do not get why clicking the “Background updates has completed” notification brings a full page reload and sends a user away from their current page to Woo admin. The User experience of the new admin dashboard might be nice, but its not necessary to force users onto this

      1. Simon Gondeck Avatar
        Simon Gondeck

        I agree Paul that Coupons moving to the Marketing tab does not make sense. I also do not like the “Home” page that shows up as the first line item under the WooCommerce tab. I get that WC is trying to market more of their own plugins but seems overkill.

  6. While I would like to keep other new functionalities, it would be great to have a filter that disables only Analytics. It takes huge load on the server even with extensive resources.

  7. lkraav Avatar

    WooCommerce 5.2 included additional usage tracking about this filter that should provide some helpful insights.

    This track would deliver a false positive for me, becaues I’m forced to enable WC Admin or half of AutomateWoo breaks.

    We’re outsourcing all analytics to Metorik, hence for us WC Admin a bunch of dead code with a security vector.

    Ideally WooCommerce would be become more light core + configurable modules.

    For WC Admin specifically, I think you’re proposing a similar idea with feature flags, just for a smaller surface, which I’d certainly vote for.

  8. hjoelr Avatar

    As others have mentioned, I’ve disabled wc-admin using this hook because it has had a significant negative impact on store performance…specifically a 2.7x increase in page load time from 1.7 seconds to 4.7 seconds. I did some analysis of this in this issue https://github.com/woocommerce/woocommerce-admin/issues/5690 and I’m seeing that there’s been work on this front. I may need to experiment again with the performance impact.

  9. webgmclassics Avatar
    webgmclassics

    The popular plugin, https://wordpress.org/plugins/disable-dashboard-for-woocommerce/ , uses this hook to disable the admin.

    I think the new Admin (especially the analytics section) was a huge mistake for self-hosted WooCommerse stores. The need for “look up tables” is indicative of the underlying problem. It behooves me why many of the features in the new “Admin” were added on top of a legacy architecture that already struggled with ecommerce performance. We needed dedicated product and order tables long before a new bloated admin.

    Any future of WooCommerce that does not allow developers to disable these “features” that are tax already limited server resources is a future I am not interested in.

  10. Tassos Avatar

    I agree with all of the above and we had to disable it on all our client sites as all servers (different servers on three different hosts) as they kept kept crashing if there were more than few products. In one of them especially because the have a couple of thousand of products within a month the msql became over 10gb which was ridiculous and it took a lot of digging until we figured out that the bloat was as a result of all the useless additions through the woo admin which were never there before. Please do not do that if you relay care about small businesses like ours.

  11. Simon Gondeck Avatar
    Simon Gondeck

    WooCommerce Admin would be less annoying if the Coupons tab did not move into its own Marketing Tab 🙂

  12. […] is an open request for comments about a forthcoming plan to remove the ability to programmatically disable WooCommerce Admin via […]

  13. WooCommerce Admin overloads a wordpress installation a lot. The option to disable it should come in the same woocommerce options.

Leave a Reply

Your email address will not be published. Required fields are marked *