/** * Perform database and options clean-up before deleting plug-in */ function rublon2factor_plugin_uninstall() { global $wpdb; // Clear settings for all sites if (RublonMultisiteHelper::isMultisite()) { RublonMultisiteHelper::uninstallMultisite(); } else { delete_option(RublonHelper::RUBLON_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_ADDITIONAL_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_OTHER_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_REGISTRATION_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_TRANSIENTS_SETTINGS_KEY); // Bulk delete user meta $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->usermeta} WHERE meta_key IN (%s, %s, %s)", RublonHelper::RUBLON_META_PROFILE_ID, RublonHelper::RUBLON_META_USER_PROTTYPE, RublonHelper::RUBLON_META_AUTH_CHANGED_MSG)); $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE %s", RublonHelper::RUBLON_META_DEVICE_ID . '%')); // $all_user_ids = get_users(array( // 'fields' => 'id', // )); // foreach ($all_user_ids as $user_id) { // delete_user_meta($user_id, RublonHelper::RUBLON_META_PROFILE_ID); // delete_user_meta($user_id, RublonHelper::RUBLON_META_USER_PROTTYPE); // delete_user_meta($user_id, RublonHelper::RUBLON_META_AUTH_CHANGED_MSG); // } } }
public static function uninstallMultisite() { global $wpdb; // Bulk delete user meta $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->usermeta} WHERE meta_key IN (%s, %s, %s)", RublonHelper::RUBLON_META_PROFILE_ID, RublonHelper::RUBLON_META_USER_PROTTYPE, RublonHelper::RUBLON_META_AUTH_CHANGED_MSG)); $current_blog_id = get_current_blog_id(); $sites = RublonMultisiteHelper::getSiteList($current_blog_id); foreach ($sites as $site) { switch_to_blog(intval($site['blog_id'])); delete_option(RublonHelper::RUBLON_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_ADDITIONAL_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_OTHER_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_REGISTRATION_SETTINGS_KEY); delete_option(RublonHelper::RUBLON_TRANSIENTS_SETTINGS_KEY); // Changed to bulk delete: // $all_user_ids = get_users('fields=id'); // foreach ($all_user_ids as $user_id) { // delete_user_meta($user_id, RublonHelper::RUBLON_META_PROFILE_ID); // delete_user_meta($user_id, RublonHelper::RUBLON_META_USER_PROTTYPE); // delete_user_meta($user_id, RublonHelper::RUBLON_META_AUTH_CHANGED_MSG); // } restore_current_blog(); } // Clear network settings delete_site_option(RublonHelper::RUBLON_SETTINGS_KEY); delete_site_option(RublonHelper::RUBLON_ADDITIONAL_SETTINGS_KEY); delete_site_option(RublonHelper::RUBLON_OTHER_SETTINGS_KEY); delete_site_option(RublonHelper::RUBLON_REGISTRATION_SETTINGS_KEY); delete_site_option(RublonHelper::RUBLON_TRANSIENTS_SETTINGS_KEY); }