/** * Plugin deactivation cleanup. * @param $drop overrides the groups_delete_data option, default is false */ private static function cleanup($drop = false) { global $wpdb, $wp_roles; $delete_data = Groups_Options::get_option('groups_delete_data', false); if ($delete_data || $drop) { foreach ($wp_roles->role_objects as $role) { $role->remove_cap(GROUPS_ACCESS_GROUPS); $role->remove_cap(GROUPS_ADMINISTER_GROUPS); $role->remove_cap(GROUPS_ADMINISTER_OPTIONS); } $wpdb->query('DROP TABLE IF EXISTS ' . _groups_get_tablename('group')); $wpdb->query('DROP TABLE IF EXISTS ' . _groups_get_tablename('capability')); $wpdb->query('DROP TABLE IF EXISTS ' . _groups_get_tablename('user_group')); $wpdb->query('DROP TABLE IF EXISTS ' . _groups_get_tablename('user_capability')); $wpdb->query('DROP TABLE IF EXISTS ' . _groups_get_tablename('group_capability')); Groups_Options::flush_options(); delete_option(GROUPS_ADMINISTRATOR_ACCESS_OVERRIDE); delete_option('groups_plugin_version'); delete_option('groups_delete_data'); } }