Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
05/15/2011 03:01:28 PM (15 years ago)
Author:
boonebgorges
Message:

Adds meta_key and meta_value params to bp_has_members() and related functions. Fixes #3205

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core/bp-core-classes.php

    r4330 r4360  
    110110        /** Static Functions ******************************************************/
    111111
    112         function get_users( $type, $limit = 0, $page = 1, $user_id = 0, $include = false, $search_terms = false, $populate_extras = true, $exclude = false ) {
     112        function get_users( $type, $limit = 0, $page = 1, $user_id = 0, $include = false, $search_terms = false, $populate_extras = true, $exclude = false, $meta_key = false, $meta_value = false ) {
    113113                global $wpdb, $bp;
    114114
     
    125125                if ( 'alphabetical' == $type )
    126126                        $sql['select_alpha'] = ", pd.value as fullname";
     127               
     128                if ( $meta_key ) {
     129                        $sql['select_meta'] = ", umm.meta_key";
     130                       
     131                        if ( $meta_value )
     132                                $sql['select_meta'] .= ", umm.meta_value";
     133                }
    127134
    128135                $sql['from'] = "FROM " . CUSTOM_USER_TABLE . " u LEFT JOIN " . CUSTOM_USER_META_TABLE . " um ON um.user_id = u.ID";
     
    130137                if ( $search_terms && bp_is_active( 'xprofile' ) || 'alphabetical' == $type )
    131138                        $sql['join_profiledata'] = "LEFT JOIN {$bp->profile->table_name_data} pd ON u.ID = pd.user_id";
     139                       
     140                if ( $meta_key )
     141                        $sql['join_meta'] = "LEFT JOIN {$wpdb->usermeta} umm ON umm.user_id = u.ID";
    132142
    133143                $sql['where'] = 'WHERE ' . bp_core_get_status_sql( 'u.' );
     
    174184                        $search_terms             = like_escape( $wpdb->escape( $search_terms ) );
    175185                        $sql['where_searchterms'] = "AND pd.value LIKE '%%$search_terms%%'";
     186                }
     187               
     188                if ( $meta_key ) {
     189                        $sql['where_meta'] = $wpdb->prepare( " AND umm.meta_key = %s", $meta_key );
     190                       
     191                        // If a meta value is provided, match it
     192                        if ( $meta_value ) {
     193                                $sql['where_meta'] .= $wpdb->prepare( " AND umm.meta_value = %s", $meta_value );
     194                        }
    176195                }
    177196
Note: See TracChangeset for help on using the changeset viewer.