Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
11/08/2022 06:27:01 AM (3 years ago)
Author:
imath
Message:

xProfile: allow the loop to fetch fields from multiple fields group

You can now pass an array of fields group ID into the $profile_group_id
parameter.

Props boonebgorges, espellcaste

Closes https://github.com/buddypress/buddypress/pull/30
Fixes #4075

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/xprofile/template.php

    r12887 r13358  
    127127        $profile_template = $reset_profile_template;
    128128    }
     129
     130    /**
     131     * @group bp_has_profile
     132     */
     133    public function test_bp_has_profile_get_multiple_groups() {
     134        global $profile_template;
     135        $reset_profile_template = $profile_template;
     136
     137        $g1 = self::factory()->xprofile_group->create();
     138        $g2 = self::factory()->xprofile_group->create();
     139        $g3 = self::factory()->xprofile_group->create();
     140
     141        $field_in_1 = self::factory()->xprofile_field->create(
     142            [
     143                'field_group_id' => $g1,
     144                'type'           => 'textbox',
     145                'name'           => 'field1'
     146            ]
     147        );
     148
     149        $field_in_2 = self::factory()->xprofile_field->create(
     150            [
     151                'field_group_id' => $g2,
     152                'type'           => 'textbox',
     153                'name'           => 'field2'
     154            ]
     155        );
     156
     157        self::factory()->xprofile_field->create(
     158            [
     159                'field_group_id' => $g3,
     160                'type'           => 'textbox',
     161                'name'           => 'field3'
     162            ]
     163        );
     164
     165        bp_has_profile( [ 'profile_group_id' => join( ',', [ $g1, $g2 ] ) ] );
     166
     167        $group_ids = wp_list_pluck( $profile_template->groups, 'id' );
     168
     169        $this->assertSame( 2, $profile_template->group_count );
     170        $this->assertContains( $g1, $group_ids );
     171        $this->assertContains( $g2, $group_ids );
     172        $this->assertNotContains( $g3, $group_ids );
     173
     174        xprofile_delete_field_group( $g1 );
     175        xprofile_delete_field_group( $g2 );
     176        xprofile_delete_field_group( $g3 );
     177
     178        $profile_template = $reset_profile_template;
     179    }
    129180}
Note: See TracChangeset for help on using the changeset viewer.