Changeset 4791 for trunk/includes/admin/tools.php
- Timestamp:
- 03/06/2013 05:00:53 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/includes/admin/tools.php
r4766 r4791 80 80 function bbp_admin_repair_handler() { 81 81 82 if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) { 83 check_admin_referer( 'bbpress-do-counts' ); 84 85 // Stores messages 86 $messages = array(); 87 88 wp_cache_flush(); 89 90 foreach ( (array) bbp_admin_repair_list() as $item ) { 91 if ( isset( $item[2] ) && isset( $_POST[$item[0]] ) && 1 == $_POST[$item[0]] && is_callable( $item[2] ) ) { 92 $messages[] = call_user_func( $item[2] ); 93 } 94 } 95 96 if ( count( $messages ) ) { 97 foreach ( $messages as $message ) { 98 bbp_admin_tools_feedback( $message[1] ); 99 } 82 if ( ! bbp_is_post_request() ) 83 return; 84 85 check_admin_referer( 'bbpress-do-counts' ); 86 87 // Stores messages 88 $messages = array(); 89 90 wp_cache_flush(); 91 92 foreach ( (array) bbp_admin_repair_list() as $item ) { 93 if ( isset( $item[2] ) && isset( $_POST[$item[0]] ) && 1 == $_POST[$item[0]] && is_callable( $item[2] ) ) { 94 $messages[] = call_user_func( $item[2] ); 95 } 96 } 97 98 if ( count( $messages ) ) { 99 foreach ( $messages as $message ) { 100 bbp_admin_tools_feedback( $message[1] ); 100 101 } 101 102 } … … 1144 1145 */ 1145 1146 function bbp_admin_reset_handler() { 1146 if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) && !empty( $_POST['bbpress-are-you-sure'] ) ) { 1147 check_admin_referer( 'bbpress-reset' ); 1148 1149 global $wpdb; 1150 1151 // Stores messages 1152 $messages = array(); 1153 $failed = __( 'Failed', 'bbpress' ); 1154 $success = __( 'Success!', 'bbpress' ); 1155 1156 // Flush the cache; things are about to get ugly. 1157 wp_cache_flush(); 1158 1159 /** Posts *************************************************************/ 1160 1161 $statement = __( 'Deleting Posts… %s', 'bbpress' ); 1162 $sql_posts = $wpdb->get_results( "SELECT `ID` FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')", OBJECT_K ); 1163 $sql_delete = "DELETE FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')"; 1147 1148 // Bail if not resetting 1149 if ( ! bbp_is_post_request() || empty( $_POST['bbpress-are-you-sure'] ) ) 1150 return; 1151 1152 // Only keymasters can proceed 1153 if ( ! bbp_is_user_keymaster() ) 1154 return; 1155 1156 check_admin_referer( 'bbpress-reset' ); 1157 1158 global $wpdb; 1159 1160 // Stores messages 1161 $messages = array(); 1162 $failed = __( 'Failed', 'bbpress' ); 1163 $success = __( 'Success!', 'bbpress' ); 1164 1165 // Flush the cache; things are about to get ugly. 1166 wp_cache_flush(); 1167 1168 /** Posts *************************************************************/ 1169 1170 $statement = __( 'Deleting Posts… %s', 'bbpress' ); 1171 $sql_posts = $wpdb->get_results( "SELECT `ID` FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')", OBJECT_K ); 1172 $sql_delete = "DELETE FROM `{$wpdb->posts}` WHERE `post_type` IN ('forum', 'topic', 'reply')"; 1173 $result = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success; 1174 $messages[] = sprintf( $statement, $result ); 1175 1176 1177 /** Post Meta *********************************************************/ 1178 1179 if ( !empty( $sql_posts ) ) { 1180 foreach( $sql_posts as $key => $value ) { 1181 $sql_meta[] = $key; 1182 } 1183 $statement = __( 'Deleting Post Meta… %s', 'bbpress' ); 1184 $sql_meta = implode( "', '", $sql_meta ); 1185 $sql_delete = "DELETE FROM `{$wpdb->postmeta}` WHERE `post_id` IN ('{$sql_meta}');"; 1164 1186 $result = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success; 1165 1187 $messages[] = sprintf( $statement, $result ); 1166 1167 1168 /** Post Meta *********************************************************/ 1169 1170 if ( !empty( $sql_posts ) ) { 1171 foreach( $sql_posts as $key => $value ) { 1172 $sql_meta[] = $key; 1173 } 1174 $statement = __( 'Deleting Post Meta… %s', 'bbpress' ); 1175 $sql_meta = implode( "', '", $sql_meta ); 1176 $sql_delete = "DELETE FROM `{$wpdb->postmeta}` WHERE `post_id` IN ('{$sql_meta}');"; 1177 $result = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success; 1178 $messages[] = sprintf( $statement, $result ); 1179 } 1180 1181 /** Topic Tags ********************************************************/ 1182 1183 $statement = __( 'Deleting Topic Tags… %s', 'bbpress' ); 1184 $sql_delete = "DELETE a,b,c FROM `{$wpdb->terms}` AS a LEFT JOIN `{$wpdb->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$wpdb->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag';"; 1185 $result = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success; 1186 $messages[] = sprintf( $statement, $result ); 1187 1188 /** User Meta *********************************************************/ 1189 1190 $statement = __( 'Deleting User Meta… %s', 'bbpress' ); 1191 $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%';"; 1192 $result = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success; 1193 $messages[] = sprintf( $statement, $result ); 1194 1195 /** Converter *********************************************************/ 1196 1197 $statement = __( 'Deleting Conversion Table… %s', 'bbpress' ); 1198 $table_name = $wpdb->prefix . 'bbp_converter_translator'; 1199 if ( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ) == $table_name ) { 1200 $wpdb->query( "DROP TABLE {$table_name}" ); 1201 $result = $success; 1202 } else { 1203 $result = $failed; 1204 } 1205 $messages[] = sprintf( $statement, $result ); 1206 1207 /** Options ***********************************************************/ 1208 1209 $statement = __( 'Deleting Settings… %s', 'bbpress' ); 1210 bbp_delete_options(); 1211 $messages[] = sprintf( $statement, $success ); 1212 1213 /** Roles *************************************************************/ 1214 1215 $statement = __( 'Deleting Roles and Capabilities… %s', 'bbpress' ); 1216 remove_role( bbp_get_moderator_role() ); 1217 remove_role( bbp_get_participant_role() ); 1218 bbp_remove_caps(); 1219 $messages[] = sprintf( $statement, $success ); 1220 1221 /** Output ************************************************************/ 1222 1223 if ( count( $messages ) ) { 1224 foreach ( $messages as $message ) { 1225 bbp_admin_tools_feedback( $message ); 1226 } 1227 } 1228 } 1229 } 1188 } 1189 1190 /** Topic Tags ********************************************************/ 1191 1192 $statement = __( 'Deleting Topic Tags… %s', 'bbpress' ); 1193 $sql_delete = "DELETE a,b,c FROM `{$wpdb->terms}` AS a LEFT JOIN `{$wpdb->term_taxonomy}` AS c ON a.term_id = c.term_id LEFT JOIN `{$wpdb->term_relationships}` AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE c.taxonomy = 'topic-tag';"; 1194 $result = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success; 1195 $messages[] = sprintf( $statement, $result ); 1196 1197 /** User Meta *********************************************************/ 1198 1199 $statement = __( 'Deleting User Meta… %s', 'bbpress' ); 1200 $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `meta_key` LIKE '%%_bbp_%%';"; 1201 $result = is_wp_error( $wpdb->query( $sql_delete ) ) ? $failed : $success; 1202 $messages[] = sprintf( $statement, $result ); 1203 1204 /** Converter *********************************************************/ 1205 1206 $statement = __( 'Deleting Conversion Table… %s', 'bbpress' ); 1207 $table_name = $wpdb->prefix . 'bbp_converter_translator'; 1208 if ( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ) == $table_name ) { 1209 $wpdb->query( "DROP TABLE {$table_name}" ); 1210 $result = $success; 1211 } else { 1212 $result = $failed; 1213 } 1214 $messages[] = sprintf( $statement, $result ); 1215 1216 /** Options ***********************************************************/ 1217 1218 $statement = __( 'Deleting Settings… %s', 'bbpress' ); 1219 bbp_delete_options(); 1220 $messages[] = sprintf( $statement, $success ); 1221 1222 /** Roles *************************************************************/ 1223 1224 $statement = __( 'Deleting Roles and Capabilities… %s', 'bbpress' ); 1225 remove_role( bbp_get_moderator_role() ); 1226 remove_role( bbp_get_participant_role() ); 1227 bbp_remove_caps(); 1228 $messages[] = sprintf( $statement, $success ); 1229 1230 /** Output ************************************************************/ 1231 1232 if ( count( $messages ) ) { 1233 foreach ( $messages as $message ) { 1234 bbp_admin_tools_feedback( $message ); 1235 } 1236 } 1237 }
Note: See TracChangeset
for help on using the changeset viewer.