bp_admin_repair_group_count()
Recalculate group counts for each user.
Description
Return
(array)
Source
File: bp-core/admin/bp-core-admin-tools.php
503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 | function bp_admin_repair_group_count() { global $wpdb ; if ( ! bp_is_active( 'groups' ) ) { return ; } $statement = __( 'Counting the number of groups for each user… %s' , 'buddyboss' ); $result = __( 'Failed!' , 'buddyboss' ); $sql_delete = "DELETE FROM {$wpdb->usermeta} WHERE meta_key IN ( 'total_group_count' );" ; if ( is_wp_error( $wpdb ->query( $sql_delete ) ) ) { return array ( 1, sprintf( $statement , $result ) ); } $bp = buddypress(); // Walk through all users on the site. $total_users = $wpdb ->get_row( "SELECT count(ID) as c FROM {$wpdb->users}" )->c; if ( $total_users > 0 ) { $per_query = 500; $offset = 0; while ( $offset < $total_users ) { // But only bother to update counts for users that have groups. $users = $wpdb ->get_col( $wpdb ->prepare( "SELECT user_id FROM {$bp->groups->table_name_members} WHERE is_confirmed = 1 AND is_banned = 0 AND user_id > %d AND user_id <= %d" , $offset , $offset + $per_query ) ); foreach ( $users as $user ) { BP_Groups_Member::refresh_total_group_count_for_user( $user ); } $offset += $per_query ; } } else { return array ( 2, sprintf( $statement , $result ) ); } return array ( 0, sprintf( $statement , __( 'Complete!' , 'buddyboss' ) ) ); } |
Changelog
Version | Description |
---|---|
BuddyPress 2.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.