BP_Groups_Member::prime_group_admins_mods_cache( array $group_ids )

Prime the bp_group_admins cache for one or more groups.

Description

Parameters

$group_ids

(Required) IDs of the groups.

Return

(bool) True on success.

Source

File: bp-groups/classes/class-bp-groups-member.php

1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
public static function prime_group_admins_mods_cache( $group_ids ) {
    global $wpdb;
 
    $uncached = bp_get_non_cached_ids( $group_ids, 'bp_group_admins' );
 
    if ( $uncached ) {
        $bp = buddypress();
        $uncached_sql = implode( ',', array_map( 'intval', $uncached ) );
        $group_admin_mods = $wpdb->get_results( "SELECT user_id, group_id, date_modified, is_admin, is_mod FROM {$bp->groups->table_name_members} WHERE group_id IN ({$uncached_sql}) AND ( is_admin = 1 OR is_mod = 1 ) AND is_banned = 0" );
 
        $admins = $mods = array();
        if ( $group_admin_mods ) {
            foreach ( $group_admin_mods as $group_admin_mod ) {
                $obj = new stdClass();
                $obj->user_id = $group_admin_mod->user_id;
                $obj->date_modified = $group_admin_mod->date_modified;
 
                if ( $group_admin_mod->is_admin ) {
                    $admins[ $group_admin_mod->group_id ][] = $obj;
                } else {
                    $mods[ $group_admin_mod->group_id ][] = $obj;
                }
            }
        }
 
        // Prime cache for all groups, even those with no matches.
        foreach ( $uncached as $group_id ) {
            $group_admins = isset( $admins[ $group_id ] ) ? $admins[ $group_id ] : array();
            wp_cache_set( $group_id, $group_admins, 'bp_group_admins' );
 
            $group_mods = isset( $mods[ $group_id ] ) ? $mods[ $group_id ] : array();
            wp_cache_set( $group_id, $group_mods, 'bp_group_mods' );
        }
    }
}

Changelog

Changelog
Version Description
BuddyPress 2.7.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.