Pressbits 005: Don’t delete plugin options on deactivation


In this episode of Pressbits I discuss my pet peeve of plugin developers deleting my options settings on deactivation, rather than upon uninstallation.

You should listen to it, especially if you’re a plugin developer.

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

If you would rather download it directly you can do that too, or subscribe to this show via RSS or on iTunes. If you would prefer a written summary, you can also read that just after the jump.

Deactivating and uninstalling a plugin are not the same thing

Let’s talk about plugin options. Specifically, what I expect as a user when I deactivate a plugin, versus uninstall one. WordPress has some hooks built in that help enable plugin others to do things, namely register_activation_hook, register_deactivation_hook, and register_uninstall_hook. The deactivation hook and uninstall hook are great places to trigger certain things. Unfortunately, too many plugin authors unset options in the wrong one.

When I deactivate a plugin, I’m not really trying to totally remove the plugin from my site, but rather just turn it off. So when a plugin author deletes all of the options I’ve selected on a plugins’ settings screen on the deactivation hook, it makes me angry that I have to go and reset them when I turn it back on. So angry that I might just find another solution for what your plugin is doing.

What they should be doing instead, is removing these options, and everything else, with the uninstall hook. When i uninstall a plugin completely, it is safe to assume I am finished with it, and it is the appropriate place to take such action. But when I simply deactivate, in all likelihood I’m just debugging something in my theme or another plugin, or maybe backing up or upgrading something.

So consider this a friendly message to plugin developers, and future plugin developers – remove options on the uninstall hook, and not the deactivation hook.

3 thoughts on “Pressbits 005: Don’t delete plugin options on deactivation

  1. I HATE it when a plugin automatically deletes settings on deactivation. Settings should never be removed without the user giving the plugin explicit permission to do so.

  2. I can’t say how strongly I agree with this point. Just yesterday while troubleshooting a problem I had to deactivate all the plugins on a client site. What a pain it is to reconfigure the ones that lost all my settings. Great point Brian.

Comments are closed.