bp_admin_repair_group_count()
Recalculate group counts for each user.
Description
Return
(array)
Source
File: bp-core/admin/bp-core-admin-tools.php
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.