6

I'm planing to create a plugin called Goodbye Dolly. Once installed, it will take care for the installation to remove the auto-installing Hello Dolly (Wordpress Plugin) shipping with wordpress.

This is due to popular request. Some folks have asked for it.

I like the idea. I never cared so far because I removed it manually. But I like the idea to save the hassles and have this removal automated for the future.

I wanted to just delete the file when it exists basically. But I'm unsure a bit about file system abstraction. And I would like to do this on install / update already, so this does not needs to be checked for all the time.

So which hooks are to be considered? Any best practice ideas?

Update:

3 Answers 3

7

While I appreciate the idea, isn't this just replacing one plugin with another? Rarst's link already has the answer -- it just needs to be reworked a bit to check for the plugin periodically, like so:

function goodbye_dolly() {
    if (file_exists(WP_PLUGIN_DIR.'/hello.php')) {
        require_once(ABSPATH.'wp-admin/includes/plugin.php');
        require_once(ABSPATH.'wp-admin/includes/file.php');
        delete_plugins(array('hello.php'));
    }
}

add_action('admin_init','goodbye_dolly');

Slap that into your functions.php file (in a child theme if you aren't already using a custom theme) and you should be good to go.

1
  • 3
    This code should run on upgrade only to save resources.
    – fuxia
    Commented Mar 25, 2011 at 5:16
5

There is the plugin Unwanted Plugins Remover now. It will remove the plugins Akismet and Hello Dolly on every upgrade. You can filter the plugin list to match only one of those plugins or to add more.

From the code:

$this->unwanted_plugins = apply_filters( 
    'unwanted_plugins_list', array( 'akismet/akismet.php', 'hello.php' ) 
);
0
1

Mike had covered killing Dolly in one of his answers, but that was written for initial install script.

I've tried to follow code that upgrades core to find a fitting hook, but that is quite a maze with some upgrader classes I am not acquainted with yet.

1
  • Okay that's at least an entry into the topic. I'll check your link.
    – hakre
    Commented Dec 25, 2010 at 20:40

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.