Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
12/12/2021 02:09:02 PM (3 years ago)
Author:
imath
Message:

Support date queries for Members, Groups and Sites

According to components, date queries can be restricted to a limited list of loop types:

  • For Members, the $type parameter in bp_has_members() needs to be either active, newest, random or online.
  • For Groups, the $type parameter in bp_has_groups() needs to be either active or newest.
  • For sites, the $type parameter in bp_has_blogs() needs to be either active or newest.

Props r-a-y

Fixes #8488

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/core/class-bp-user-query.php

    r12450 r13184  
    780780        $this->assertSame( '', wp_cache_get( $users[3], 'bp_member_member_type' ) );
    781781    }
     782
     783    /**
     784     * @group date_query
     785     */
     786    public function test_date_query_before() {
     787        $u1 = self::factory()->user->create( array(
     788            'last_activity' => date( 'Y-m-d H:i:s', time() ),
     789        ) );
     790        $u2 = self::factory()->user->create( array(
     791            'last_activity' => '2008-03-25 17:13:55',
     792        ) );
     793        $u3 = self::factory()->user->create( array(
     794            'last_activity' => '2010-01-01 12:00',
     795        ) );
     796
     797        // 'date_query' before test
     798        $query = new BP_User_Query( array(
     799            'date_query' => array( array(
     800                'before' => array(
     801                    'year'  => 2010,
     802                    'month' => 1,
     803                    'day'   => 1,
     804                ),
     805            ) )
     806        ) );
     807
     808        $this->assertEquals( $u2, $query->user_ids[0] );
     809    }
     810
     811    /**
     812     * @group date_query
     813     */
     814    public function test_date_query_range() {
     815        $u1 = self::factory()->user->create( array(
     816            'last_activity' => date( 'Y-m-d H:i:s', time() ),
     817        ) );
     818        $u2 = self::factory()->user->create( array(
     819            'last_activity' => '2008-03-25 17:13:55',
     820        ) );
     821        $u3 = self::factory()->user->create( array(
     822            'last_activity' => '2001-01-01 12:00',
     823        ) );
     824
     825        // 'date_query' range test
     826        $query = new BP_User_Query( array(
     827            'date_query' => array( array(
     828                'after'  => 'January 2nd, 2001',
     829                'before' => array(
     830                    'year'  => 2010,
     831                    'month' => 1,
     832                    'day'   => 1,
     833                ),
     834                'inclusive' => true,
     835            ) )
     836        ) );
     837
     838        $this->assertEquals( $u2, $query->user_ids[0] );
     839    }
     840
     841    /**
     842     * @group date_query
     843     */
     844    public function test_date_query_after() {
     845        $u1 = self::factory()->user->create( array(
     846            'last_activity' => date( 'Y-m-d H:i:s', time() ),
     847        ) );
     848        $u2 = self::factory()->user->create( array(
     849            'last_activity' => '2008-03-25 17:13:55',
     850        ) );
     851        $u3 = self::factory()->user->create( array(
     852            'last_activity' => '2001-01-01 12:00',
     853        ) );
     854
     855        // 'date_query' after and relative test
     856        $query = new BP_User_Query( array(
     857            'date_query' => array( array(
     858                'after' => '1 day ago'
     859            ) )
     860        ) );
     861
     862        $this->assertEquals( $u1, $query->user_ids[0] );
     863    }
     864
    782865}
Note: See TracChangeset for help on using the changeset viewer.