我正在创建我的第一个插件(根据需要修改现有的插件),尽管它工作得很好,但我正在尝试创建一个简单的选项菜单,以允许停用插件,或停用和删除插件创建的表。
在选项面板中,我有以下表单,允许管理员单击复选框,然后提交我希望获得的表单:
删除插件创建的表停用插件重定向回插件页面以下是“我的选项”页面的代码:
<p class="submitmetataxonomyuninstall">
<form method="post" action=""; onsubmit="if (!this.verify.checked) return false;">
<?php _e("Also Delete all Tables & Data from Database:", \'menu-test\' ); ?>
<input type="checkbox" name="verify" /></p>
<p><i>(IMPORTANT: This action CANNOT be reversed and will remove all tables and data from the database.)</i></p>
<p class="submit"><input type="submit" name="submitmetataxonomyuninstall" class="button-primary" value="<?php esc_attr_e(\'Deactivate & Uninstall\') ?>" /><small> (Checkbox above must be checked for button to work.)</small></p>
</form>
</p>
然而,我就是不能让它发挥作用。
这就是我认为我需要调用的函数(当这是主插件函数时,它会很好地停用和删除表):
register_deactivation_hook( __FILE__, \'simple_term_meta_uninstall\' );
function simple_term_meta_uninstall() {
global $wpdb;
if (function_exists(\'is_multisite\') && is_multisite()) {
// check if it is a network activation - if so, run the activation function for each blog id
if (isset($_GET[\'networkwide\']) && ($_GET[\'networkwide\'] == 1)) {
$old_blog = $wpdb->blogid;
// Get all blog ids
$blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs"));
foreach ($blogids as $blog_id) {
switch_to_blog($blog_id);
_simple_term_meta_uninstall();
}
switch_to_blog($old_blog);
return;
}
}
_simple_term_meta_uninstall();
}
我相信这也会从现有插件文件中调用此函数:
register_uninstall_hook( __FILE__, \'simple_term_meta_uninstall\' );
function _simple_term_meta_uninstall()
{
global $wpdb;
$table_name = $wpdb->prefix . \'termmeta\';
$wpdb->query("DROP TABLE IF EXISTS $table_name");
delete_option( "simple_term_meta_db_version" );
}
如何使用所示的表单调用此函数?