Uncategorized WordPress

Auto Activating WordPress Plugins is the right choice

During the WordPress 4.2 cycle, one of the goals was to do some work aimed at improving the experience of users when updating and installing plugins.  While the decision was ultimately made to scale back to just updating for this release, the code that installed plugins also automatically activated plugins when a user installs them.  This generated a lot of controversy, but is ultimately what we should be doing for users.

The End User

Most end users of WordPress doesn’t have a staging site, doesn’t keep there site in version control, and doesn’t install plugins to activate them later on. When they install a plugin, they start using it right away. When they install a plugin, they want to either play with it to see if it works for them, or they set it up and start using it.

One of WordPress’s biggest strengths are it’s philosophies. One of them is that WordPress designs for the majority:

Many end users of WordPress are non-technically minded. They don’t know what AJAX is, nor do they care about which version of PHP they are using. The average WordPress user simply wants to be able to write without problems or interruption. These are the users that we design the software for as they are ultimately the ones who are going to spend the most time using it for what it was built for.

By following this philosophy, it is really easy for see that auto activation is the right path.

How about an option?

Some of the comments about this is that it should be a checkbox.  People think that the solution to a complicated and controversial decision is to add an option.  The WordPress philosophies once again guide us to say that an option shouldn’t be our default answer. We need to make smart decisions instead.

When making decisions these are the users we consider first. A great example of this consideration is software options. Every time you give a user an option, you are asking them to make a decision. When a user doesn’t care or understand the option this ultimately leads to frustration. As developers we sometimes feel that providing options for everything is a good thing, you can never have too many choices, right? Ultimately these choices end up being technical ones, choices that the average end user has no interest in. It’s our duty as developers to make smart design decisions and avoid putting the weight of technical choices on our end users.

Yes, there are right times to add options. Andy Adams points this out when he wrote:

Instead of making a theme either fully-customizable or configuration-free, I’ve realized that the ultimate goal is to add “just the right options” to make the user experience more pleasant

There are absolutely use cases for not auto activating.  Some developers like to use the UI to do installs locally and then check out the code before deciding to install a plugin.  There are also plugins such as ones that enable a maintenance mode or help with debugging that you want easily available, but not necessarily activated.  These are the exception though, not the rule.

Why Installs are not a part of 4.2

This leads us to now.  Despite auto activating being the right decision, the decision was made to remove auto installs in large part do to auto activation.  This is a decision I ultimately advocated for taking.  The problem wasn’t the activation, it was the experience of what happens after activating.  The UX needs to be cleaned up there.  We need to make it possible for some plugins to opt-out and we need to make it easier for users to take action right after installing a plugin.

Shiny installs will be back, and when they come back I fully intend to advocate for auto activation. This may change with more information, but right now it is the right choice.

4 replies on “Auto Activating WordPress Plugins is the right choice”

I agree that 99% (or more) of the times a plugin is installed it is going to be immediately activated, but I still feel strongly that there needs to be a way for that 1% (or less) of us to install without activation. Adding an opt-in checkbox defeats the purpose entirely, but an opt-out checkbox (or an opt-in checkbox that’s pre-checked?) would make sense, although I suppose there’s potential either way to introduce UX confusion for the non-technical, so a global opt-out option might be the way to go. To be honest, I bet a hook to block shiny activation would be sufficient for the 1% as well.

I am against auto-activating (and auto-updating). I have a maintenance plugin on all my own sites. If that plugin gets activated then it goes on maintenance.
On clients sites I turn on the maitenance plugin when I am updating things for them, I do it 2am-5am their time zone.

One time I was going on vacation (I am from Toronto, Canada so eastern time zone) to Croatia then Greece. I am from Croatia and have family, I have internet access but in Greece…it was going to be no technology, I am on vacation type of vacation. I was leaving at 10pm to Croatia (stayed there for 2 weeks, then 2 weeks in Greece).

That morning the maintenance plugin got an update. So I updated the plugin on my own sites then clients’s. That plugin is the one plugin they all have in common.

I then left for the airport. What if the plugin would of been activated. I was leaving for a month. I would of not had a job when I come back after a month. That client would of had to hire someone, send me the bill of that someone and give my job to that someone (thus firing me, I don’t like being fired).

I don’t understand how people can’t spend 5 minutes in the morning checking for updates, I have 8 of my own sites. It takes me less than 3 minutes to check them all and update (This doesn’t count core updates 4.1 – > 4.1.1 – > 4.2 – > etc…).

One click on my browser and all 8 pages open /wp-admin. Voila.

Even the auto-update for core takes what? up to 72 hours I heard. In that 72 hours my site could be hacked if the update is a security/urgent update. If there is an update, at least 30 accounts I follow on twitter are going to mention that there is an update. Bob Dunn, WPTavern, WordPress itself, and everyone in the WP Community that is heavily engaged. I usually update within 60 minutes of the update coming out.

If that plugin gets activated then it goes on maintenance.

I think you’re misunderstanding the functionality being discussed. The feature is to automatically activate a plugin immediately after it has first been installed, not to automatically activate a plugin after an update or at any other time.

I am from Toronto, Canada

I’m sorry about your hockey team (I’m a Flames fan :P).

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.