| @@ -12,9 +12,9 @@ | ||
| 12 | 12 | |
| 13 | 13 | /** |
| 14 | 14 | * Admin reset page |
| 15 | 15 | * |
| 16 | - * @since 2.0.0 bbPress (r2613) | |
| 16 | + * @since 2.6.0 bbPress (r6277) | |
| 17 | 17 | * |
| 18 | 18 | */ |
| 19 | 19 | function bbp_admin_reset_page() { |
| 20 | 20 | ?> |
| @@ -42,8 +42,9 @@ | ||
| 42 | 42 | <?php esc_html_e( 'Forum Moderators', 'bbpress' ); ?><br /> |
| 43 | 43 | <?php esc_html_e( 'Importer Helper Data', 'bbpress' ); ?><br /> |
| 44 | 44 | </td> |
| 45 | 45 | </tr> |
| 46 | + <?php if ( ! is_multisite() ) : ?> | |
| 46 | 47 | <tr valign="top"> |
| 47 | 48 | <th scope="row"><?php esc_html_e( 'Delete imported users?', 'bbpress' ); ?></th> |
| 48 | 49 | <td> |
| 49 | 50 | <fieldset> |
| @@ -52,8 +53,9 @@ | ||
| 52 | 53 | <p class="description"><?php esc_html_e( 'Proceeding without this checked removes the meta-data necessary to delete these users later.', 'bbpress' ); ?></p> |
| 53 | 54 | </fieldset> |
| 54 | 55 | </td> |
| 55 | 56 | </tr> |
| 57 | + <?php endif; ?> | |
| 56 | 58 | <tr valign="top"> |
| 57 | 59 | <th scope="row"><?php esc_html_e( 'Do you really want to do this?', 'bbpress' ); ?></th> |
| 58 | 60 | <td> |
| 59 | 61 | <fieldset> |
| @@ -78,9 +80,9 @@ | ||
| 78 | 80 | |
| 79 | 81 | /** |
| 80 | 82 | * Handle a bbPress admin area reset request. |
| 81 | 83 | * |
| 82 | - * @since 2.0.0 bbPress (r2613) | |
| 84 | + * @since 2.1.0 bbPress (r3884) | |
| 83 | 85 | */ |
| 84 | 86 | function bbp_admin_reset_handler() { |
| 85 | 87 | |
| 86 | 88 | // Bail if not resetting. |
| @@ -102,9 +104,9 @@ | ||
| 102 | 104 | |
| 103 | 105 | /** |
| 104 | 106 | * Wrapper for determining admin reset query feedback presented to a user. |
| 105 | 107 | * |
| 106 | - * @since 2.6.0 bbPress (r6758) | |
| 108 | + * @since 2.6.0 bbPress (r6759) | |
| 107 | 109 | * |
| 108 | 110 | * @param array $args Array of query, message, and possible responses |
| 109 | 111 | * |
| 110 | 112 | * @return string |
| @@ -146,9 +148,9 @@ | ||
| 146 | 148 | |
| 147 | 149 | /** |
| 148 | 150 | * Perform a bbPress database reset. |
| 149 | 151 | * |
| 150 | - * @since 2.6.0 bbPress | |
| 152 | + * @since 2.6.0 bbPress (r6750) | |
| 151 | 153 | */ |
| 152 | 154 | function bbp_admin_reset_database() { |
| 153 | 155 | |
| 154 | 156 | // Define variables. |
| @@ -222,42 +224,39 @@ | ||
| 222 | 224 | |
| 223 | 225 | /** User ******************************************************************/ |
| 224 | 226 | |
| 225 | 227 | // First, if we're deleting previously imported users, delete them now |
| 226 | - if ( ! empty( $_POST['bbpress-delete-imported-users'] ) ) { | |
| 227 | - $sql_users = $bbp_db->get_results( "SELECT `user_id` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '_bbp_old_user_id'", OBJECT_K ); | |
| 228 | + if ( ! is_multisite() && ! empty( $_POST['bbpress-delete-imported-users'] ) ) { | |
| 229 | + $sql_users = array_unique( array_map( 'intval', $bbp_db->get_col( "SELECT `user_id` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '_bbp_old_user_id'" ) ) ); | |
| 228 | 230 | |
| 229 | 231 | if ( ! empty( $sql_users ) ) { |
| 230 | - $sql_meta = array(); | |
| 231 | - foreach ( $sql_users as $key => $value ) { | |
| 232 | - $sql_meta[] = $key; | |
| 232 | + require_once ABSPATH . 'wp-admin/includes/user.php'; | |
| 233 | + $deleted = true; | |
| 234 | + foreach ( $sql_users as $user_id ) { | |
| 235 | + if ( ! wp_delete_user( (int) $user_id ) ) { | |
| 236 | + $deleted = false; | |
| 237 | + } | |
| 233 | 238 | } |
| 234 | 239 | |
| 235 | - // Users | |
| 236 | - $sql_meta = implode( "', '", $sql_meta ); | |
| 237 | - $messages[] = bbp_admin_reset_query_feedback( | |
| 238 | - array( | |
| 239 | - 'query' => "DELETE FROM `{$bbp_db->users}` WHERE `ID` IN ('{$sql_meta}')", | |
| 240 | - /* translators: %s: Status of the user deletion process */ | |
| 241 | - 'message' => esc_html__( 'Deleting Imported Users… %s', 'bbpress' ) | |
| 242 | - ) | |
| 240 | + $messages[] = sprintf( | |
| 241 | + /* translators: %s: Status of the user deletion process */ | |
| 242 | + esc_html__( 'Deleting Imported Users… %s', 'bbpress' ), | |
| 243 | + $deleted ? esc_html__( 'Success!', 'bbpress' ) : esc_html__( 'Failed!', 'bbpress' ) | |
| 243 | 244 | ); |
| 244 | - | |
| 245 | - // User meta | |
| 246 | - $messages[] = bbp_admin_reset_query_feedback( | |
| 247 | - array( | |
| 248 | - 'query' => "DELETE FROM `{$bbp_db->usermeta}` WHERE `user_id` IN ('{$sql_meta}')", | |
| 249 | - /* translators: %s: Status of the user meta deletion process */ | |
| 250 | - 'message' => esc_html__( 'Deleting Imported User Meta… %s', 'bbpress' ) | |
| 251 | - ) | |
| 252 | - ); | |
| 253 | 245 | } |
| 254 | 246 | } |
| 255 | 247 | |
| 256 | - // Next, if we still have users that were not imported delete that meta data | |
| 248 | + // Remove only this site's user options on multisite. Converter metadata is global. | |
| 249 | + $meta_key = is_multisite() | |
| 250 | + ? $bbp_db->get_blog_prefix() . '_bbp_' | |
| 251 | + : '_bbp_'; | |
| 252 | + $like = is_multisite() | |
| 253 | + ? $bbp_db->esc_like( $meta_key ) . '%' | |
| 254 | + : '%' . $bbp_db->esc_like( $meta_key ) . '%'; | |
| 255 | + | |
| 257 | 256 | $messages[] = bbp_admin_reset_query_feedback( |
| 258 | 257 | array( |
| 259 | - 'query' => "DELETE FROM `{$bbp_db->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%'", | |
| 258 | + 'query' => $bbp_db->prepare( "DELETE FROM `{$bbp_db->usermeta}` WHERE `meta_key` LIKE %s", $like ), | |
| 260 | 259 | /* translators: %s: Status of the user meta deletion process */ |
| 261 | 260 | 'message' => esc_html__( 'Deleting bbPress Specific User Meta… %s', 'bbpress' ) |
| 262 | 261 | ) |
| 263 | 262 | ); |