Last Thursday, Vova Feldman published an article asking that we stop blaming plugin authors for the plethora of admin notices that users are bombarded with each day. The real culprit? The lack of a notifications mechanism in WordPress core.
Feldman’s post was prompted by a tweet in which Scott Bolinger called out plugin authors for letting admin notices get out of control:
Feldman argues that laying the blame on plugin authors is the wrong way to look at the issue. While I agree that the underlying problem lies with WordPress, plugin authors have played their part in creating an atmosphere where they have become the scapegoat for everything wrong with the system.
I have developed plugins since a fateful day in April 2007 in which I released a plugin that simply listed the current page’s subpages. I have worked on 100s of plugins for clients and public release since then. In that time, I have maybe added a custom admin notice two times and only when the plugin had a major change, such as a database update. I reserved such notices for the OMGBBQ-very-important-you-need-to-read-this type of stuff. I considered it my duty to create an experience in which the user did not have to dismiss a notice every time one of my plugins received an update.
This was not because I was cognizant of the growing issue of dozens of notices on some sites or how often users were being overwhelmed with them. For many years, I worked within a bubble where I simply focused on creating what I considered an ideal experience for my users. I always thought the admin notices system created an abysmal experience. It did not make sense to use it more than necessary.
On the other hand, there were likely a few times over the years where I should have added some sort of notices for changes. Instead, I avoided doing so altogether because WordPress lacked a notifications system. I missed some good opportunities for communication.
To a large extent, the issue stems from this lack of a proper notification system. However, plugin authors have perpetuated this broken system by continuing to use it when unnecessary. They have used it as a billboard to place their holiday ads. They have used it to upsell commercial versions of their products and services while prompting users for a five-star rating. There is plenty of blame to go around.
Instead of placing blame, we should start asking what tools would solve problems for developers.
The Need for a Better System
Technically, WordPress simply has a hook and a set of common classes that developers can use in their HTML to provide some different colors for notices. There is no API, and without an API, it is impossible for even third-party plugin developers to even try their hands at creating various solutions.
The closest thing WordPress has to an API is a little-known project from the Themes Team that provides a standardized method for theme authors to add notices. However, the project covers only one aspect of admin notices, which is to create a consistent UI.
The admin notice issue cannot be properly addressed without identifying the problems that plugin authors have tried to solve within the system, which at least includes the following:
- User-oriented notifications, generally appearing after a user action.
- Advertising commercial products and services.
- Calls for plugin feedback or star ratings.
One of the primary issues with the current notification system is that it was created for the first item in that list. The other two items are not necessarily bad things. They are just poor usages of the system in place. However, there is no other standard method to handle those scenarios.
Advertising is something we all must deal with in some form or fashion. I am unsure if there could or even should be a standard API for advertising. An outright ban of ads in the admin notice area could create a beast of its own, forcing plugin authors to come up with more obtrusive forms of advertising in other areas of the admin. I want to support advertising but not when that advertising wiggles its way to the top of every admin screen.
WordPress provides no easy way for end-users to rate or review plugins from their admin interfaces. Having an easy way to provide direct feedback would be immensely helpful for both users and developers. While I am certain many people would argue against such integration with the WordPress.org site (there are arguments against any external integration out of the box), ratings and reviews would require an explicit opt-in from end-users because they would need an account on WordPress.org.
Advertising and plugin feedback should not be a part of a discussion on admin notices. However, reality dictates that they are integral to the conversation.
The first order of business must be to create a new notification system from the ground up. It should provide a standard API for plugin authors while handing over full management capabilities to the site owners. Users should be able to disable notices altogether or even enable/disable notices on a per-plugin basis. Notice that a particular plugin author provides useless notices? Well, just disable notices from that plugin. The author lost their privileges.
From that point, we can let the progress drive the discussion on what to do about advertising and calls for feedback. A new system may shift them to a new screen — out of sight out of mind — but not make those problems disappear.
More than anything, it is time for a champion. The project does not get done without someone who will pave the path forward and earn the green light for a new notifications system in WordPress.