通过uninstall.php删除插件选项前确认

时间:2012-01-03 作者:urok93

我正在创建WordPress插件并进行卸载。php文件就绪。它删除插件在删除时使用的选项。我想做的是弹出一个对话框,询问当用户决定删除插件时是删除还是保留这些选项。我该怎么做?

<?php
// If uninstall not called from WordPress exit
if( !defined( \'WP_UNINSTALL_PLUGIN\' ) )
exit ();
// Delete option from options table
delete_option( \'my_options\' );
//
?>

1 个回复
最合适的回答,由SO网友:turbonerd 整理而成

您可以使用JavaScript警报来执行您所要求的操作,但我能想到的唯一方法可能是添加大量不必要的复杂性。

我使用您示例中的代码编写了一个小PHP脚本。如果您有任何困难修改它为您的目的,请不要犹豫,让我知道。

<?php 
    // die if not uninstalling
    if( !defined( \'WP_UNINSTALL_PLUGIN\' ) )
        exit ();

    // if the "act" variable hasn\'t been set, display a form
    if (!isset($_GET["act"])) {
?>
    <p>Would you like to keep the options configured by this plugin?</p>
    <form action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
        <select name="act">
            <option>Select choice..</option>
            <option value="keep">Keep options</option>
            <option value="delete">Delete options</option>
        </select>
        <input type="submit" value="Go" />
    </form>
<?php
    } else {
        // if the "act" variable has been set, see if the user wants to delete the options..
        if ($_GET["act"] == "delete") {
            delete_option( \'my_options\' );
            echo "Options deleted; uninstallation successful.";
            return;
        } else {
            // .. or keep them
            echo "Options kept; uninstallation successful.";
            return;
        }
    }
?>
**编辑:首选路线**

好的,根据this post, 显然,您不应该/不能在uninstall.php 而不是基本删除选项等。

因此,我的建议是:在插件设置中创建一个选项,上面写着“保留删除设置”或类似的内容(在我的示例中称为“DELETE\\u OPTIONS”)。然后在uninstall.php:

<?php 
    $options = get_option(\'MY_PLUGIN_OPTIONS\');

    if ( true === $options[\'DELETE_OPTIONS\'] ) {
        delete_option(\'MY_PLUGIN_OPTIONS\');
    }
?>
你好Duncan

结束

相关推荐

如果自定义管理页面未挂钩到ADD_OPTIONS_PAGE(),则不会显示设置API已更新消息

一直在使用设置API,发现只有通过add\\u options\\u page()将设置页面连接到WordPress菜单时,才会显示消息(用于成功或错误)。其他任何操作都不起作用,例如add\\u dashboard\\u page()。想知道这是不是真的?我尝试使用的示例代码是包含“RegisteredSettingsTest”类的答案Where to hook register_settings for Settings API when also want to update options out