Changeset 6759 for trunk/src/includes/admin/tools/reset.php
- Timestamp:
- 12/21/2017 07:02:57 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/includes/admin/tools/reset.php
r6750 r6759 101 101 102 102 /** 103 * Wrapper for determining admin reset query feedback presented to a user. 104 * 105 * @since 2.6.0 bbPress (r6758) 106 * 107 * @param array $args Array of query, message, and possible responses 108 * 109 * @return string 110 */ 111 function bbp_admin_reset_query_feedback( $args = array() ) { 112 static $defaults = null; 113 114 // Only set defaults one time to avoid hitting the GetText API repeatedly 115 if ( null === $defaults ) { 116 $defaults = array( 117 'query' => '', 118 'message' => esc_html__( 'Resetting…', 'bbpress' ), 119 'responses' => array( 120 'success' => esc_html__( 'Success!', 'bbpress' ), 121 'failure' => esc_html__( 'Failed!', 'bbpress' ), 122 'skipped' => esc_html__( 'Skipped.', 'bbpress' ) 123 ) 124 ); 125 } 126 127 // Parse arguments 128 $r = bbp_parse_args( $args, $defaults, 'admin_reset_query_feedback' ); 129 130 // Success/Failure based on query error 131 if ( ! empty( $r['query'] ) ) { 132 $query = bbp_db()->query( $r['query'] ); 133 $result = ! is_wp_error( $query ) 134 ? $r['responses']['success'] 135 : $r['responses']['failure']; 136 137 // Skip if empty 138 } else { 139 $result = $r['responses']['skipped']; 140 } 141 142 // Return feedback 143 return sprintf( $r['message'], $result ); 144 } 145 146 /** 103 147 * Perform a bbPress database reset. 104 148 * … … 107 151 function bbp_admin_reset_database() { 108 152 109 // Stores messages.153 // Define variables. 110 154 $messages = array(); 111 $ failed = esc_html__( 'Failed!', 'bbpress');112 $ success = esc_html__( 'Success!', 'bbpress');113 114 // Flush the cache; things are about to get ugly.155 $sql_meta = array(); 156 $bbp_db = bbp_db(); 157 158 // Flush the whole cache; things are about to get ugly. 115 159 wp_cache_flush(); 116 160 … … 122 166 $rpt = bbp_get_reply_post_type(); 123 167 124 // Define variables. 125 $bbp_db = bbp_db(); 126 $statement = esc_html__( 'Deleting Posts… %s', 'bbpress' ); 127 128 $sql_posts = $bbp_db->get_results( "SELECT `ID` FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')", OBJECT_K ); 129 $sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')"; 130 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success; 131 $messages[] = sprintf( $statement, $result ); 132 133 /** Post Meta *************************************************************/ 134 168 // Get post IDs 169 $sql_posts = $bbp_db->get_results( "SELECT `ID` FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')", OBJECT_K ); 135 170 if ( ! empty( $sql_posts ) ) { 136 $sql_meta = array(); 171 172 // Meta data 137 173 foreach ( $sql_posts as $key => $value ) { 138 174 $sql_meta[] = $key; 139 175 } 140 $statement = esc_html__( 'Deleting Post Meta… %s', 'bbpress' ); 141 $sql_meta = implode( "', '", $sql_meta ); 142 $sql_delete = "DELETE FROM `{$bbp_db->postmeta}` WHERE `post_id` IN ('{$sql_meta}')"; 143 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success; 144 $messages[] = sprintf( $statement, $result ); 145 } 146 147 /** Post Revisions ********************************************************/ 148 149 if ( ! empty( $sql_posts ) ) { 150 $sql_meta = array(); 151 foreach ( $sql_posts as $key => $value ) { 152 $sql_meta[] = $key; 153 } 154 $statement = esc_html__( 'Deleting Post Revisions… %s', 'bbpress' ); 155 $sql_meta = implode( "', '", $sql_meta ); 156 $sql_delete = "DELETE FROM `{$bbp_db->posts}` WHERE `post_parent` IN ('{$sql_meta}') AND `post_type` = 'revision'"; 157 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success; 158 $messages[] = sprintf( $statement, $result ); 159 } 160 161 /** Forum moderators ******************************************************/ 162 163 $statement = esc_html__( 'Deleting Forum Moderators… %s', 'bbpress' ); 164 $sql_delete = "DELETE a,b,c FROM `{$bbp_db->terms}` AS a LEFT JOIN `{$bbp_db->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$bbp_db->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'forum-mod'"; 165 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success; 166 $messages[] = sprintf( $statement, $result ); 176 $sql_meta = implode( "', '", $sql_meta ); 177 178 // Delete posts 179 $messages[] = bbp_admin_reset_query_feedback( array( 180 'query' => "DELETE FROM `{$bbp_db->posts}` WHERE `post_type` IN ('{$fpt}', '{$tpt}', '{$rpt}')", 181 'message' => esc_html__( 'Removing Forums, Topics, and Replies… %s', 'bbpress' ) 182 ) ); 183 184 /** Post Meta *********************************************************/ 185 186 if ( ! empty( $sql_posts ) ) { 187 $messages[] = bbp_admin_reset_query_feedback( array( 188 'query' => "DELETE FROM `{$bbp_db->postmeta}` WHERE `post_id` IN ('{$sql_meta}')", 189 'message' => esc_html__( 'Removing Forum, Topic, and Reply Meta Data… %s', 'bbpress' ) 190 ) ); 191 } 192 193 /** Post Revisions ****************************************************/ 194 195 if ( ! empty( $sql_posts ) ) { 196 $messages[] = bbp_admin_reset_query_feedback( array( 197 'query' => "DELETE FROM `{$bbp_db->posts}` WHERE `post_parent` IN ('{$sql_meta}') AND `post_type` = 'revision'", 198 'message' => esc_html__( 'Removing Revision Data… %s', 'bbpress' ) 199 ) ); 200 } 201 } 167 202 168 203 /** Topic Tags ************************************************************/ 169 204 170 $ statement = esc_html__( 'Deleting Topic Tags… %s', 'bbpress' );171 $sql_delete = "DELETE a,b,c FROM `{$bbp_db->terms}` AS a LEFT JOIN `{$bbp_db->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$bbp_db->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag'";172 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;173 $messages[] = sprintf( $statement, $result);205 $messages[] = bbp_admin_reset_query_feedback( array( 206 'query' => "DELETE a,b,c FROM `{$bbp_db->terms}` AS a LEFT JOIN `{$bbp_db->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$bbp_db->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag'", 207 'message' => esc_html__( 'Deleting Topic Tags… %s', 'bbpress' ) 208 ) ); 174 209 175 210 /** User ******************************************************************/ … … 177 212 // First, if we're deleting previously imported users, delete them now 178 213 if ( ! empty( $_POST['bbpress-delete-imported-users'] ) ) { 179 $sql_users = $bbp_db->get_results( "SELECT `user_id` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '_bbp_old_user_id'", OBJECT_K ); 214 $sql_users = $bbp_db->get_results( "SELECT `user_id` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '_bbp_old_user_id'", OBJECT_K ); 215 180 216 if ( ! empty( $sql_users ) ) { 181 217 $sql_meta = array(); … … 183 219 $sql_meta[] = $key; 184 220 } 185 $statement = esc_html__( 'Deleting Imported Users… %s', 'bbpress' ); 221 222 // Users 186 223 $sql_meta = implode( "', '", $sql_meta ); 187 $sql_delete = "DELETE FROM `{$bbp_db->users}` WHERE `ID` IN ('{$sql_meta}')"; 188 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success; 189 $messages[] = sprintf( $statement, $result ); 190 $statement = esc_html__( 'Deleting Imported User Meta… %s', 'bbpress' ); 191 $sql_delete = "DELETE FROM `{$bbp_db->usermeta}` WHERE `user_id` IN ('{$sql_meta}')"; 192 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success; 193 $messages[] = sprintf( $statement, $result ); 224 $messages[] = bbp_admin_reset_query_feedback( array( 225 'query' => "DELETE FROM `{$bbp_db->users}` WHERE `ID` IN ('{$sql_meta}')", 226 'message' => esc_html__( 'Deleting Imported Users… %s', 'bbpress' ) 227 ) ); 228 229 // User meta 230 $messages[] = bbp_admin_reset_query_feedback( array( 231 'query' => "DELETE FROM `{$bbp_db->usermeta}` WHERE `user_id` IN ('{$sql_meta}')", 232 'message' => esc_html__( 'Deleting Imported User Meta… %s', 'bbpress' ) 233 ) ); 194 234 } 195 235 } 196 236 197 237 // Next, if we still have users that were not imported delete that meta data 198 $ statement = esc_html__( 'Deleting User Meta… %s', 'bbpress' );199 $sql_delete = "DELETE FROM `{$bbp_db->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%'";200 $result = is_wp_error( $bbp_db->query( $sql_delete ) ) ? $failed : $success;201 $messages[] = sprintf( $statement, $result);238 $messages[] = bbp_admin_reset_query_feedback( array( 239 'query' => "DELETE FROM `{$bbp_db->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%'", 240 'message' => esc_html__( 'Deleting bbPress Specific User Meta… %s', 'bbpress' ) 241 ) ); 202 242 203 243 /** Converter *************************************************************/ 204 244 205 $statement = esc_html__( 'Deleting Conversion Table… %s', 'bbpress' );206 245 $table_name = $bbp_db->prefix . 'bbp_converter_translator'; 207 246 if ( $bbp_db->get_var( "SHOW TABLES LIKE '{$table_name}'" ) === $table_name ) { 208 $bbp_db->query( "DROP TABLE {$table_name}" ); 209 $result = $success; 210 } else { 211 $result = $failed; 212 } 213 $messages[] = sprintf( $statement, $result ); 247 $messages[] = bbp_admin_reset_query_feedback( array( 248 'query' => "DROP TABLE {$table_name}", 249 'message' => esc_html__( 'Dropping Conversion Table… %s', 'bbpress' ) 250 ) ); 251 } 214 252 215 253 /** Options ***************************************************************/ 216 254 217 $statement = esc_html__( 'Deleting Settings… %s', 'bbpress' );218 255 bbp_delete_options(); 219 $messages[] = sprintf( $statement, $success);256 $messages[] = esc_html__( 'Deleting Settings… Success!', 'bbpress' ); 220 257 221 258 /** Roles *****************************************************************/ 222 259 223 $statement = esc_html__( 'Deleting Roles and Capabilities… %s', 'bbpress' );224 260 bbp_remove_roles(); 225 261 bbp_remove_caps(); 226 $messages[] = sprintf( $statement, $success);262 $messages[] = esc_html__( 'Removing Roles and Capabilities… Success!', 'bbpress' ); 227 263 228 264 /** Output ****************************************************************/
Note: See TracChangeset
for help on using the changeset viewer.