Skip to:
Content

BuddyPress.org

Changeset 11045


Ignore:
Timestamp:
08/30/2016 06:39:57 PM (10 years ago)
Author:
dcavins
Message:

Return active types only in bp_get_member_type().

When compiling the array of types for the member in
bp_get_member_type(), only include those types that are currently
registered.

Fixes #7225.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-members/bp-members-functions.php

    r10938 r11045  
    27482748
    27492749        if ( false === $types ) {
    2750                 $types = bp_get_object_terms( $user_id, 'bp_member_type' );
    2751 
    2752                 if ( ! is_wp_error( $types ) ) {
    2753                         $types = wp_list_pluck( $types, 'name' );
     2750                $raw_types = bp_get_object_terms( $user_id, 'bp_member_type' );
     2751
     2752                if ( ! is_wp_error( $raw_types ) ) {
     2753                        $types =  array();
     2754
     2755                        // Only include currently registered group types.
     2756                        foreach ( $raw_types as $mtype ) {
     2757                                if ( bp_get_member_type_object( $mtype->name ) ) {
     2758                                        $types[] = $mtype->name;
     2759                                }
     2760                        }
     2761
    27542762                        wp_cache_set( $user_id, $types, 'bp_member_member_type' );
    27552763                }
  • trunk/tests/phpunit/testcases/members/types.php

    r10022 r11045  
    393393                $this->assertEqualSets( array( 'bar', 'foo' ), $types );
    394394        }
     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        }
    395407}
Note: See TracChangeset for help on using the changeset viewer.