How can i delete options on plugin uninstallation?

admin2025-06-04  2

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' );

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' );
Share Improve this question asked Jan 22, 2019 at 17:55 wpdevwpdev 5492 gold badges13 silver badges28 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 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.

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1748985891a315397.html

最新回复(0)