3

This is more of a "best practices" than a question, but I was wondering, what to people typically remove when their plugin is removed? I have a plugin that does the following:

  • registers custom post types
  • registers custom taxonomies
  • uses custom options

Right now my plugin removes all of the custom options as they are installed by the plugin and used mostly internally. Since the posts for the custom post type and terms for the custom taxonomy are added by the user, would be be appropriate to remove these?

1
  • 2
    just add an option that allows the user to choose to remove that data if they wish Commented Jan 8, 2012 at 17:32

2 Answers 2

2

In another answer I wrote about uninstall/activate/deactivate/upgrade routines. I guess most of the comments already tell it, but to sum it up:

  • Uninstall: Remove everything, your plugin added
  • Deactivate: Do nothing
  • Activate: Do what your plugin needs.

On Uninstall the user simply wants to get rid of the plugin, so it's fair to not leave any mess. Remove everything including tables, etc. Ok, if you got tables, you should maybe tell the user what your plugin is going to do. A simple alert() should do the trick.

2
  • I agree that on uninstall the plugin should removed everything it added, but did the plugin add the posts or did the user add the posts? I think the best solution is to give the user the option to decide, but I'm still interested in what you think.
    – v0idless
    Commented Jan 9, 2012 at 2:22
  • On this point I'm with @OneTrickPony . If it's really posts, then you should ask the user anyway. If it's CPT contents, then it depends on what actually the CPT does. If it's something, that can be re-used by some other plugin: Ask. If not: Delete. Imagine some user has to delete hundreds of posts per hand. That would be an extreme pain.
    – kaiser
    Commented Jan 9, 2012 at 2:41
1

I think it's important that you remove custom options by default (or maybe even give the user the chance to export/import them, depending on the depth/scope of your plug-in).

The user should definitely be prompted before deleting custom posts and taxonomies though (i.e. "Would you also like to delete..."). Maybe they wish to re-use the data with their own functions, another plug-in or otherwise.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.