привет всем
пишу плагин, работающий с несколькими своими таблицами, но вот в чем беда — когда удаляешь этот плагин, то остаеются таблицы в БД.
/* wp-test-plg/classes/Base.php */
public function init($wpdb) {
if ($wpdb instanceof wpdb) {
$this->db = $wpdb;
}
add_action('admin_menu', array(&$this, 'createAdminMenu'));
register_activation_hook(WP_PLUGIN_DIR . '/wp-test-plg/wp-test-plg.php', array($this, 'activate'));
register_uninstall_hook(WP_PLUGIN_DIR . '/wp-test-plg/wp-test-plg.php', array($this, 'uninstall')); // это почему-то не работает.
}
public function uninstall() {
$sql = "DROP TABLE IF EXISTS {$this->db->prefix}my-plg";
try {
$this->db->query($sql);
} catch (Exception $e) {
echo $e->getMessage();
}
}
В случае, когда вместо register_uninstall_hook пишется register_deactivation_hook, то все ок, таблицу убивает. Но это не то что нужно, напр. если деактивировать по какой-то причине, затем снова активировать и потерять все данные.
Подскажите, пожалуйста, как пофиксить