Skip to:
Content

BuddyPress.org

Changeset 11045


Ignore:
Timestamp:
08/30/2016 06:39:57 PM (3 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.