diff --git src/bp-members/bp-members-functions.php src/bp-members/bp-members-functions.php
index 8ee5a6d..a3b911e 100644
|
|
function bp_get_member_type( $user_id, $single = true ) { |
2750 | 2750 | $types = bp_get_object_terms( $user_id, 'bp_member_type' ); |
2751 | 2751 | |
2752 | 2752 | if ( ! is_wp_error( $types ) ) { |
| 2753 | // Filter out currently unregistered member types. |
| 2754 | foreach ( $types as $key => $mtype ) { |
| 2755 | if ( ! bp_get_member_type_object( $mtype->name ) ) { |
| 2756 | unset( $types[$key] ); |
| 2757 | } |
| 2758 | } |
| 2759 | |
2753 | 2760 | $types = wp_list_pluck( $types, 'name' ); |
2754 | 2761 | wp_cache_set( $user_id, $types, 'bp_member_member_type' ); |
2755 | 2762 | } |
diff --git tests/phpunit/testcases/members/types.php tests/phpunit/testcases/members/types.php
index 91dccd0..9170d3e 100644
|
|
class BP_Tests_Members_Types extends BP_UnitTestCase { |
392 | 392 | $types = bp_get_member_type( $u1, false ); |
393 | 393 | $this->assertEqualSets( array( 'bar', 'foo' ), $types ); |
394 | 394 | } |
| 395 | |
| 396 | public function test_bp_get_member_type_should_not_return_unregistered_types() { |
| 397 | $u1 = $this->factory->user->create(); |
| 398 | bp_register_member_type( 'foo' ); |
| 399 | bp_set_member_type( $u1, 'foo' ); |
| 400 | |
| 401 | // Directly set a type that hasn't been registered. |
| 402 | bp_set_object_terms( $u1, 'ugh', 'bp_member_type', true ); |
| 403 | |
| 404 | $type = bp_get_member_type( $u1, false ); |
| 405 | $this->assertEquals( array( 'foo' ), $type ); |
| 406 | } |
395 | 407 | } |