0

I want to delete option from database when plugin uninstall. It's name is test_option. I am using this code but doesn't work. Where is problem?

function test_delete() {
    if( !current_user_can( 'activate_plugins' ) )
        return;
    check_admin_referer( 'bulk-plugins' );

    if( __FILE__ != WP_UNINSTALL_PLUGIN )
        return;

    delete_option( 'test_option' );
}

register_uninstall_hook( __FILE__, 'test_delete' );
2

This will give you the option to register your unistall hook during plugin activation.

function myplugin_activation_callback(){
    register_uninstall_hook( __FILE__, 'myplugin_uninstall_callback' );
}
register_activation_hook( __FILE__, 'myplugin_activation_callback' );

function myplugin_uninstall_callback(){

    //Perform your uninstall operations here 
    delete_option('test_option');

}  

However, the simplest way is to use an uninstall.php file with the following codes:

if (!defined('WP_UNINSTALL_PLUGIN')) {
    die;
}

//Perform your uninstall operations here 
delete_option('test_option');  

It's not recommended to use both at the same time.

  • Thank you for response. But i don't understand how to use second way. – bilimokur Jan 22 at 18:48
  • @bilimokur Sorry for replying late. Create a file called uninstall.php with the code within it and place the file inside the root directory of your plugin. That file will be automatically called and executed upon uninstalling the plugin. – Abhik Jan 25 at 4:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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