我正在开发一个有几个选项的小插件。为此,我使用以下代码:
add_action(\'admin_init\', array($this, \'pa_register_settings\'));
function pa_register_settings()
{
register_setting(\'pa_options\', \'pa_settings\');
register_setting(\'pa_options\', \'pa_metrics\');
register_setting(\'pa_options\', \'pa_token\');
}
我想知道卸载插件时,从数据库中删除这些设置的正确方法是什么?
SO网友:Bainternet
WordPress有一个名为register_deactivation_hook
它注册了一个插件函数,以便在插件停用时运行,因此:
register_deactivation_hook( __FILE__, \'myplugin_deactivate\' );
function myplugin_deactivate(){
//delete plugins option here ex:
delete_option(\'pa_options\');
}
Update:就像小马提到的一个技巧一样,有时用户停用插件,当他们重新激活插件时,如果你使用这种方法,他们将失去所有设置。
因此,更好的方法是在插件的管理面板中创建一个卸载选项并提交,只有这样,您才能从数据库中删除这些选项,并使用deactivate_plugins( \'/plugin-folder/plugin-name.php\' );