Changeset 9533
- Timestamp:
- 02/23/2015 01:39:05 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-members/bp-members-cache.php
r9486 r9533 15 15 */ 16 16 function bp_members_prefetch_member_type( BP_User_Query $bp_user_query ) { 17 $uncached_member_ids = bp_get_non_cached_ids( $bp_user_query->user_ids, 'bp_member_ type' );17 $uncached_member_ids = bp_get_non_cached_ids( $bp_user_query->user_ids, 'bp_member_member_type' ); 18 18 19 19 $member_types = bp_get_object_terms( $uncached_member_ids, 'bp_member_type', array( … … 33 33 $cached_member_ids = array(); 34 34 foreach ( $keyed_member_types as $user_id => $user_member_types ) { 35 wp_cache_set( $user_id, $user_member_types, 'bp_member_ type' );35 wp_cache_set( $user_id, $user_member_types, 'bp_member_member_type' ); 36 36 $cached_member_ids[] = $user_id; 37 37 } … … 39 39 // Cache an empty value for users with no type. 40 40 foreach ( array_diff( $uncached_member_ids, $cached_member_ids ) as $no_type_id ) { 41 wp_cache_set( $no_type_id, '', 'bp_member_ type' );41 wp_cache_set( $no_type_id, '', 'bp_member_member_type' ); 42 42 } 43 43 } … … 54 54 */ 55 55 function bp_members_clear_member_type_cache( $user_id ) { 56 wp_cache_delete( $user_id, 'bp_member_ type' );56 wp_cache_delete( $user_id, 'bp_member_member_type' ); 57 57 } 58 58 add_action( 'wpmu_delete_user', 'bp_members_clear_member_type_cache' ); -
trunk/src/bp-members/bp-members-functions.php
r9471 r9533 2584 2584 // Bust the cache if the type has been updated. 2585 2585 if ( ! is_wp_error( $retval ) ) { 2586 wp_cache_delete( $user_id, 'bp_member_ type' );2586 wp_cache_delete( $user_id, 'bp_member_member_type' ); 2587 2587 2588 2588 /** … … 2613 2613 */ 2614 2614 function bp_get_member_type( $user_id, $single = true ) { 2615 $types = wp_cache_get( $user_id, 'bp_member_ type' );2615 $types = wp_cache_get( $user_id, 'bp_member_member_type' ); 2616 2616 2617 2617 if ( false === $types ) { 2618 $types = bp_get_object_terms( $user_id, 'bp_member_type' 2618 $types = bp_get_object_terms( $user_id, 'bp_member_type' ); 2619 2619 2620 2620 if ( ! is_wp_error( $types ) ) { 2621 2621 $types = wp_list_pluck( $types, 'name' ); 2622 wp_cache_set( $user_id, $types, 'bp_member_ type' );2622 wp_cache_set( $user_id, $types, 'bp_member_member_type' ); 2623 2623 } 2624 2624 } -
trunk/tests/phpunit/testcases/core/class-bp-user-query.php
r9447 r9533 515 515 ) ); 516 516 517 $this->assertSame( array( 'foo' ), wp_cache_get( $users[0], 'bp_member_ type' ) );518 $this->assertSame( array( 'bar' ), wp_cache_get( $users[1], 'bp_member_ type' ) );519 $this->assertSame( array( 'foo' ), wp_cache_get( $users[2], 'bp_member_ type' ) );520 $this->assertSame( '', wp_cache_get( $users[3], 'bp_member_ type' ) );517 $this->assertSame( array( 'foo' ), wp_cache_get( $users[0], 'bp_member_member_type' ) ); 518 $this->assertSame( array( 'bar' ), wp_cache_get( $users[1], 'bp_member_member_type' ) ); 519 $this->assertSame( array( 'foo' ), wp_cache_get( $users[2], 'bp_member_member_type' ) ); 520 $this->assertSame( '', wp_cache_get( $users[3], 'bp_member_member_type' ) ); 521 521 } 522 522 } -
trunk/tests/phpunit/testcases/members/types.php
r9486 r9533 206 206 $this->assertFalse( bp_get_member_type( $u ) ); 207 207 } 208 209 /** 210 * @group BP6242 211 * @group cache 212 */ 213 public function test_bp_get_member_type_should_not_conflict_with_term_cache() { 214 global $wpdb; 215 216 // Offset IDs. 217 $dummy_terms = $this->factory->tag->create_many( 5 ); 218 219 $u1 = $this->factory->user->create(); 220 bp_register_member_type( 'foo' ); 221 bp_set_member_type( $u1, 'foo' ); 222 223 // Fetch a term ID. 224 $terms = get_terms( 'bp_member_type', array( 'hide_empty' => false, 'fields' => 'all' ) ); 225 226 // Make sure the user's ID matches a term ID, to force a cache confusion. 227 $u2 = $this->factory->user->create(); 228 $new_user_id = $terms[0]->term_id; 229 $wpdb->update( $wpdb->users, array( 'ID' => $new_user_id ), array( 'ID' => $u2 ) ); 230 231 bp_set_member_type( $new_user_id, 'foo' ); 232 233 // Reprime the taxonomy cache. 234 $terms = get_terms( 'bp_member_type', array( 'hide_empty' => false, 'fields' => 'all' ) ); 235 236 $this->assertSame( 'foo', bp_get_member_type( $new_user_id, true ) ); 237 } 208 238 }
Note: See TracChangeset
for help on using the changeset viewer.