Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
06/14/2012 08:12:59 PM (13 years ago)
Author:
djpaul
Message:

When a group is created or deleted, clear each group member's "total groups count" cache.
Addresses a bug where the counts never changed in an environment with a persistent object cache.

  • See #4226
  • Specify cache group for to wp_cache_delete() in groups_clear_group_user_object_cache().
  • Add $user_ids parameter to the 'bp_groups_delete_group' action to save a repeat DB query later.
  • Add $group object parameter to the 'groups_created_group' action.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-groups/bp-groups-classes.php

    r5999 r6100  
    173173
    174174        // Fetch the user IDs of all the members of the group
    175         $user_ids = BP_Groups_Member::get_group_member_ids( $this->id );
    176         $user_ids = implode( ',', (array) $user_ids );
     175        $user_ids    = BP_Groups_Member::get_group_member_ids( $this->id );
     176        $user_id_str = implode( ',', (array) $user_ids );
    177177
    178178        // Modify group count usermeta for members
    179         $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->usermeta} SET meta_value = meta_value - 1 WHERE meta_key = 'total_group_count' AND user_id IN ( {$user_ids} )" ) );
     179        $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->usermeta} SET meta_value = meta_value - 1 WHERE meta_key = 'total_group_count' AND user_id IN ( {$user_id_str} )" ) );
    180180
    181181        // Now delete all group member entries
    182182        BP_Groups_Member::delete_all( $this->id );
    183183
    184         do_action_ref_array( 'bp_groups_delete_group', array( &$this ) );
     184        do_action_ref_array( 'bp_groups_delete_group', array( &$this, $user_ids ) );
    185185
    186186        wp_cache_delete( 'bp_groups_group_' . $this->id, 'bp' );
Note: See TracChangeset for help on using the changeset viewer.