Exemple #1
0
function userpro_memberlist_loop($args)
{
    global $userpro;
    $per_page = isset($args['per_page']) ? $args['per_page'] : 0;
    $relation = isset($args['relation']) ? $args['relation'] : 'AND';
    $role = isset($args['role']) ? $args['role'] : '';
    $memberlist_verified = isset($args['memberlist_verified']) ? $args['memberlist_verified'] : 0;
    $sortby = isset($args['sortby']) ? $args['sortby'] : '';
    $order = isset($args['order']) ? $args['order'] : '';
    $arr = array();
    if (get_option('userpro_trial') == 1) {
        $per_page = 3;
        do_action('userpro_pre_form_message');
    }
    global $wpdb;
    $blog_id = get_current_blog_id();
    $page = !empty($_GET['userp']) ? $_GET['userp'] : 1;
    $offset = ($page - 1) * $per_page;
    /** QUERY ARGS BEGIN **/
    /* exclude specific users? */
    if (isset($args['exclude'])) {
        $exclude = explode(',', $args['exclude']);
        $query['exclude'] = $exclude;
    }
    /* Start Added by Ranjith to hide/show unapproved users */
    if (isset($args['userpro_show_unapproved_members']) && $args['userpro_show_unapproved_members'] === '0') {
        $user_ids = get_users(array('meta_key' => '_account_status', 'meta_value' => array('pending_admin', 'pending'), 'fields' => "ID"));
        if (isset($args['exclude'])) {
            $exclude = explode(',', $args['exclude']);
            if (is_array($user_ids) && is_array($exclude)) {
                $query['exclude'] = array_merge($user_ids, $exclude);
            } else {
                if (is_array($user_ids)) {
                    $query['exclude'] = $user_ids;
                } else {
                    if (is_array($exclude)) {
                        $query['exclude'] = $exclude;
                    }
                }
            }
        }
    }
    /* End */
    $query['meta_query'] = array('relation' => strtoupper($relation));
    if (isset($role) && $role != '') {
        $roles = explode(',', $role);
        $query['meta_query']['relation'] = 'AND';
        if (count($roles) >= 2) {
            $role_query['relation'] = 'or';
        }
        foreach ($roles as $subrole) {
            $role_query[] = array('key' => $wpdb->get_blog_prefix($blog_id) . 'capabilities', 'value' => $subrole, 'compare' => 'like');
        }
        $query['meta_query'][] = $role_query;
    }
    /* limited to userpro fields */
    if (userpro_retrieve_metakeys()) {
        foreach (userpro_retrieve_metakeys() as $key) {
            if ($userpro->field_type($key) == 'multiselect' || $userpro->field_type($key) == 'checkbox' || $userpro->field_type($key) == 'checkbox-full') {
                $like = 'like';
            } else {
                $like = '=';
            }
            if (isset($args[$key]) && $key != 'role') {
                if (substr(trim(htmlspecialchars_decode($args[$key])), 0, 1) === '>') {
                    $choices = explode('>', trim(htmlspecialchars_decode($args[$key])));
                    $target = $choices[1];
                    $query['meta_query'][] = array('key' => $key, 'value' => $target, 'compare' => '>');
                } elseif (substr(trim(htmlspecialchars_decode($args[$key])), 0, 1) === '<') {
                    $choices = explode('<', trim(htmlspecialchars_decode($args[$key])));
                    $target = $choices[1];
                    $query['meta_query'][] = array('key' => $key, 'value' => $target, 'compare' => '<');
                } elseif (strstr(esc_attr(trim($args[$key])), ':')) {
                    $choices = explode(':', esc_attr(trim($args[$key])));
                    $min = $choices[0];
                    $max = $choices[1];
                    $query['meta_query'][] = array('key' => $key, 'value' => array($min, $max), 'compare' => 'between');
                } elseif (strstr(esc_attr(trim($args[$key])), ',')) {
                    $choices = explode(',', esc_attr(trim($args[$key])));
                    foreach ($choices as $choice) {
                        $query['meta_query'][] = array('key' => $key, 'value' => $choice, 'compare' => $like);
                    }
                } else {
                    $query['meta_query'][] = array('key' => $key, 'value' => esc_attr(trim($args[$key])), 'compare' => $like);
                }
            }
        }
    }
    if ($memberlist_verified) {
        $query['meta_query'][] = array('key' => 'userpro_verified', 'value' => 1, 'compare' => '=');
    }
    if (isset($args['memberlist_verified']) && $args['memberlist_verified'] === '0') {
        $query['meta_query'][] = array('key' => 'userpro_verified', 'compare' => 'NOT EXISTS');
    }
    $memberlist_withavatar = $args['memberlist_withavatar'];
    if (isset($memberlist_withavatar) && $memberlist_withavatar == 1) {
        $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '!=');
    }
    /**
    			CUSTOM SEARCH FILTERS UPDATE
    		**
    		**
    		**/
    if (isset($_GET['searchuser'])) {
        global $userpro_emd;
        $role = isset($args['role']) ? $args['role'] : '';
        if ($role != '') {
            $role = str_replace(',', '|', $role);
        }
        $role_query['relation'] = 'and';
        $role_query[] = array('key' => $wpdb->get_blog_prefix($blog_id) . 'capabilities', 'value' => $role, 'compare' => 'REGEXP');
        /* Searchuser query param */
        $search_string = esc_attr(trim(get_query_var('searchuser')));
        if ($search_string != '') {
            if (isset($args['memberlist_filters']) && !empty($args['memberlist_filters'])) {
                $customfilters = explode(',', $args['memberlist_filters']);
                if ($customfilters) {
                    if (count($customfilters) > 1) {
                        $customfiltersquery['relation'] = 'or';
                    }
                    foreach ($customfilters as $customfilter) {
                        $customfiltersquery[] = array('key' => $customfilter, 'value' => $search_string, 'compare' => 'like');
                    }
                    $query['meta_query'][] = $customfiltersquery;
                    $testkeys = new WP_User_Query($query);
                } elseif ($role != '') {
                    if (count($customfilters) > 1) {
                        $customfilter_query['relation'] = 'or';
                    }
                    foreach ($customfilters as $customfilter) {
                        $customfilter_query[] = array('key' => $customfilter, 'value' => $search_string, 'compare' => 'like');
                    }
                    // 						$query['meta_query'][] = array(
                    // 								'relation'	=> 'and' ,
                    // 								array(
                    // 										'key' => $wpdb->get_blog_prefix( $blog_id ) . 'capabilities',
                    // 										'value' =>$role,
                    // 										'compare' => 'REGEXP'
                    // 								) ,
                    // 								$customfilter_query
                    // 						);
                }
            }
            if (empty($testkeys->results) && $role != '') {
                $query['meta_query'][] = array('relation' => 'and', array('key' => 'display_name', 'value' => $search_string, 'compare' => 'like'), array('key' => $wpdb->get_blog_prefix($blog_id) . 'capabilities', 'value' => $role, 'compare' => 'REGEXP'));
            } else {
                if (empty($testkeys->results)) {
                    $query['meta_query'][] = array('key' => 'display_name', 'value' => $search_string, 'compare' => 'like');
                }
            }
        }
        /* Searchuser query param */
        parse_str($_SERVER['QUERY_STRING'], $params);
        foreach ($params as $k => $v) {
            $v = trim(strip_tags(esc_attr($v)));
            $cleankey = str_replace('emd-', '', $k);
            if (strstr($cleankey, 'from_')) {
                $rangekey = str_replace('from_', '', $cleankey);
                if (is_numeric($v)) {
                    $rangefilter[$rangekey]['compare']['min'] = $v;
                }
            } elseif (strstr($cleankey, 'to_')) {
                $rangekey = str_replace('to_', '', $cleankey);
                if (is_numeric($v)) {
                    $rangefilter[$rangekey]['compare']['max'] = $v;
                }
            } else {
                if (in_array('emd_' . $cleankey, $userpro_emd->must_be_custom_fields)) {
                    $cleanparams[$cleankey] = $v;
                } elseif ($userpro->field_label($cleankey) != '') {
                    $cleanparams[$cleankey] = $v;
                }
            }
        }
        if (isset($rangefilter)) {
            foreach ($rangefilter as $range_k => $arr) {
                if (isset($arr['compare']['min']) && isset($arr['compare']['max']) || isset($arr['compare']['min']) || isset($arr['compare']['max'])) {
                    if (!isset($arr['compare']['min'])) {
                        $split = explode(',', $args[$range_k . '_range']);
                        $arr['compare']['min'] = $split[0];
                    }
                    if (!isset($arr['compare']['max'])) {
                        $split = explode(',', $args[$range_k . '_range']);
                        $arr['compare']['max'] = $split[1];
                    }
                    $query['meta_query'][] = array('key' => $range_k, 'value' => array($arr['compare']['min'], $arr['compare']['max']), 'compare' => 'between');
                }
            }
        }
        if (isset($cleanparams)) {
            foreach ($cleanparams as $k => $v) {
                if ($k == 'photopreference') {
                    if ($v === '1') {
                        $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '!=');
                    }
                    if ($v === '2') {
                        $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '==');
                    }
                } elseif ($k == 'accountstatus') {
                    if ($v > 0) {
                        $query['meta_query'][] = array('key' => 'userpro_verified', 'value' => 1, 'compare' => '==');
                    }
                } elseif ($v != 'all') {
                    if ($v != '') {
                        if ($userpro->field_type($k) == 'multiselect' || $userpro->field_type($k) == 'checkbox' || $userpro->field_type($k) == 'checkbox-full') {
                            $like = 'like';
                        } else {
                            $like = '=';
                        }
                        $query['meta_query'][] = array('key' => $k, 'value' => $v, 'compare' => $like);
                    }
                }
            }
        }
    }
    /** DO **/
    if ($sortby) {
        $query['orderby'] = $sortby;
    }
    if ($order) {
        $query['order'] = strtoupper($order);
    }
    // asc to ASC
    /** QUERY ARGS END **/
    $defaultorder = array('ID', 'display_name', 'name', 'user_name', 'login', 'user_login', 'nicename', 'user_nicename', 'email', 'user_email', 'url', 'user_url', 'registered', 'user_registered', 'post_count');
    /* Start Added By Yogesh for sorting the users*/
    if (in_array($sortby, $defaultorder)) {
        $query['number'] = $per_page;
        $query['offset'] = $offset;
    }
    /* End Added By Yogesh for sorting the users*/
    /* Search mode */
    if (isset($_GET['searchuser']) && !empty($_GET['searchuser']) || count($query['meta_query']) > 1) {
        $count_args = array_merge($query, array('number' => 10000));
        unset($count_args['offset']);
        $user_count_query = $userpro->get_cached_query($count_args);
    }
    $wp_user_query = $userpro->get_cached_query($query);
    if ($per_page) {
        /* Get Total Users */
        if (isset($_GET['searchuser']) && !empty($_GET['searchuser']) || count($query['meta_query']) > 1) {
            $user_count = $user_count_query->get_results();
            $total_users = $user_count ? count($user_count) : 1;
        } else {
            /* Commented by Ranjith to show proper count */
            //$result = count_users();
            //$total_users = $result['total_users'];
            $total_users = $wp_user_query->total_users;
        }
        $total_pages = ceil($total_users / $per_page);
    }
    remove_action('pre_user_query', 'userpro_query_search_displayname');
    $url = parse_url(wp_guess_url());
    if (isset($url['query'])) {
        $string_query = $url['query'];
    } else {
        $string_query = null;
    }
    if (!in_array($sortby, $defaultorder)) {
        /* Start Added By Yogesh for sorting the users*/
        $userstable = $wpdb->base_prefix . "users";
        $usermetatable = $wpdb->base_prefix . "usermeta";
        $query = "SELECT a.ID\n\t\t\tFROM {$userstable} AS a\n\t\t\tJOIN {$usermetatable} ON a.ID= {$usermetatable}.user_id WHERE {$usermetatable}.meta_key = '{$sortby}' AND {$usermetatable}.user_id = a.ID ORDER BY   {$usermetatable}.meta_value {$order}";
        $orderArray = $wpdb->get_results($query);
        $allusers = sortArrayByArray($wp_user_query->results, $orderArray);
        $paged_users = array();
        $keyedUsers = array();
        foreach ($allusers as $key => $user) {
            $keyedUsers[] = $user;
        }
        for ($i = $offset; $i < $offset + $per_page; $i++) {
            if (isset($keyedUsers[$i])) {
                array_push($paged_users, $keyedUsers[$i]);
            }
        }
        $wp_user_query->results = $paged_users;
    }
    /* End Added By Yogesh for sorting the users*/
    if (!empty($wp_user_query->results)) {
        $arr['total'] = $total_users;
        $arr['paginate'] = paginate_links(array('base' => @add_query_arg('userp', '%#%'), 'total' => $total_pages, 'current' => $page, 'show_all' => false, 'end_size' => 1, 'mid_size' => 2, 'prev_next' => true, 'prev_text' => __('« Previous', 'userpro'), 'next_text' => __('Next »', 'userpro'), 'type' => 'plain', 'add_args' => false));
        $arr['users'] = $wp_user_query->results;
    }
    return $arr;
}
Exemple #2
0
 function setup_query($args)
 {
     global $wpdb, $userpro;
     $blog_id = get_current_blog_id();
     $query['meta_query'] = array('relation' => 'AND');
     $query['orderby'] = 'registered';
     $query['order'] = 'desc';
     /* Query Parameters */
     /* Role */
     if (isset($args['role'])) {
         $role = str_replace(',', '|', $args['role']);
         $query['meta_query'][] = array('key' => $wpdb->get_blog_prefix($blog_id) . 'capabilities', 'value' => $role, 'compare' => 'REGEXP');
     }
     /* meta keys */
     if (userpro_retrieve_metakeys()) {
         foreach (userpro_retrieve_metakeys() as $key) {
             if ($userpro->field_type($key) == 'multiselect' || $userpro->field_type($key) == 'checkbox' || $userpro->field_type($key) == 'checkbox-full') {
                 $like = 'like';
             } else {
                 $like = '=';
             }
             if (isset($args[$key]) && $key != 'role') {
                 if (substr(trim(htmlspecialchars_decode($args[$key])), 0, 1) === '>') {
                     $choices = explode('>', trim(htmlspecialchars_decode($args[$key])));
                     $target = $choices[1];
                     $query['meta_query'][] = array('key' => $key, 'value' => $target, 'compare' => '>');
                 } elseif (substr(trim(htmlspecialchars_decode($args[$key])), 0, 1) === '<') {
                     $choices = explode('<', trim(htmlspecialchars_decode($args[$key])));
                     $target = $choices[1];
                     $query['meta_query'][] = array('key' => $key, 'value' => $target, 'compare' => '<');
                 } elseif (strstr(esc_attr(trim($args[$key])), ':')) {
                     $choices = explode(':', esc_attr(trim($args[$key])));
                     $min = $choices[0];
                     $max = $choices[1];
                     $query['meta_query'][] = array('key' => $key, 'value' => array($min, $max), 'compare' => 'between');
                 } elseif (strstr(esc_attr(trim($args[$key])), ',')) {
                     $choices = explode(',', esc_attr(trim($args[$key])));
                     foreach ($choices as $choice) {
                         $query['meta_query'][] = array('key' => $key, 'value' => $choice, 'compare' => $like);
                     }
                 } else {
                     $query['meta_query'][] = array('key' => $key, 'value' => esc_attr(trim($args[$key])), 'compare' => $like);
                 }
             }
         }
     }
     /* Search Parameters */
     if (isset($_GET['emd-search'])) {
         parse_str($_SERVER['QUERY_STRING'], $params);
         foreach ($params as $k => $v) {
             $v = trim(strip_tags(esc_attr($v)));
             $cleankey = str_replace('emd-', '', $k);
             if (in_array('emd_' . $cleankey, $this->must_be_custom_fields)) {
                 $cleanparams[$cleankey] = $v;
             } elseif ($userpro->field_label($cleankey) != '') {
                 $cleanparams[$cleankey] = $v;
             }
         }
         foreach ($cleanparams as $k => $v) {
             if ($k == 'photopreference') {
                 if ($v === '1') {
                     $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '!=');
                 }
                 if ($v === '2') {
                     $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '==');
                 }
             } elseif ($k == 'accountstatus') {
                 if ($v > 0) {
                     $query['meta_query'][] = array('key' => 'userpro_verified', 'value' => 1, 'compare' => '==');
                 }
             } elseif ($v != 'all') {
                 if ($v != '') {
                     if ($userpro->field_type($k) == 'multiselect' || $userpro->field_type($k) == 'checkbox' || $userpro->field_type($k) == 'checkbox-full') {
                         $like = 'like';
                     } else {
                         $like = '=';
                     }
                     $query['meta_query'][] = array('key' => $k, 'value' => $v, 'compare' => $like);
                 }
             }
         }
     }
     return $query;
 }
function userpro_memberlist_loop($args)
{
    global $userpro;
    extract($args);
    if (get_option('userpro_trial') == 1) {
        $per_page = 3;
        do_action('userpro_pre_form_message');
    }
    global $wpdb;
    $blog_id = get_current_blog_id();
    $page = !empty($_GET['userp']) ? $_GET['userp'] : 1;
    $offset = ($page - 1) * $per_page;
    /** QUERY ARGS BEGIN **/
    $query['meta_query'] = array('relation' => strtoupper($relation));
    if (isset($role)) {
        $roles = explode(',', $role);
        if (count($roles) >= 2) {
            $query['meta_query']['relation'] = 'or';
        }
        foreach ($roles as $subrole) {
            $query['meta_query'][] = array('key' => $wpdb->get_blog_prefix($blog_id) . 'capabilities', 'value' => $subrole, 'compare' => 'like');
        }
    }
    /* limited to userpro fields */
    if (userpro_retrieve_metakeys()) {
        foreach (userpro_retrieve_metakeys() as $key) {
            if ($userpro->field_type($key) == 'multiselect') {
                $like = 'like';
            } else {
                $like = '=';
            }
            if (isset($args[$key]) && $key != 'role') {
                if (substr(trim(htmlspecialchars_decode($args[$key])), 0, 1) === '>') {
                    $choices = explode('>', trim(htmlspecialchars_decode($args[$key])));
                    $target = $choices[1];
                    $query['meta_query'][] = array('key' => $key, 'value' => $target, 'compare' => '>');
                } elseif (substr(trim(htmlspecialchars_decode($args[$key])), 0, 1) === '<') {
                    $choices = explode('<', trim(htmlspecialchars_decode($args[$key])));
                    $target = $choices[1];
                    $query['meta_query'][] = array('key' => $key, 'value' => $target, 'compare' => '<');
                } elseif (strstr(esc_attr(trim($args[$key])), ':')) {
                    $choices = explode(':', esc_attr(trim($args[$key])));
                    $min = $choices[0];
                    $max = $choices[1];
                    $query['meta_query'][] = array('key' => $key, 'value' => array($min, $max), 'compare' => 'between');
                } elseif (strstr(esc_attr(trim($args[$key])), ',')) {
                    $choices = explode(',', esc_attr(trim($args[$key])));
                    foreach ($choices as $choice) {
                        $query['meta_query'][] = array('key' => $key, 'value' => $choice, 'compare' => $like);
                    }
                } else {
                    $query['meta_query'][] = array('key' => $key, 'value' => esc_attr(trim($args[$key])), 'compare' => $like);
                }
            }
        }
    }
    if ($memberlist_verified) {
        $query['meta_query'][] = array('key' => 'userpro_verified', 'value' => 1, 'compare' => '=');
    }
    if (isset($memberlist_withavatar) && $memberlist_withavatar == 1) {
        $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '!=');
    }
    /**
    			CUSTOM SEARCH FILTERS UPDATE
    		**
    		**
    		**/
    if (isset($_GET['searchuser'])) {
        global $userpro_emd;
        /* Searchuser query param */
        $search_string = esc_attr(trim(get_query_var('searchuser')));
        if ($search_string != '') {
            if (isset($args['memberlist_filters']) && !empty($args['memberlist_filters'])) {
                $customfilters = explode(',', $args['memberlist_filters']);
                if ($customfilters) {
                    foreach ($customfilters as $customfilter) {
                        $query['meta_query'][] = array('key' => $customfilter, 'value' => $search_string, 'compare' => '=');
                    }
                    $testkeys = new WP_User_Query($query);
                }
            }
            if (empty($testkeys->results)) {
                $query['meta_query'][] = array('key' => 'display_name', 'value' => $search_string, 'compare' => 'like');
            }
        }
        /* Searchuser query param */
        parse_str($_SERVER['QUERY_STRING'], $params);
        foreach ($params as $k => $v) {
            $v = trim(strip_tags(esc_attr($v)));
            $cleankey = str_replace('emd-', '', $k);
            if (strstr($cleankey, 'from_')) {
                $rangekey = str_replace('from_', '', $cleankey);
                if (is_numeric($v)) {
                    $rangefilter[$rangekey]['compare']['min'] = $v;
                }
            } elseif (strstr($cleankey, 'to_')) {
                $rangekey = str_replace('to_', '', $cleankey);
                if (is_numeric($v)) {
                    $rangefilter[$rangekey]['compare']['max'] = $v;
                }
            } else {
                if (in_array('emd_' . $cleankey, $userpro_emd->must_be_custom_fields)) {
                    $cleanparams[$cleankey] = $v;
                } elseif ($userpro->field_label($cleankey) != '') {
                    $cleanparams[$cleankey] = $v;
                }
            }
        }
        if (isset($rangefilter)) {
            foreach ($rangefilter as $range_k => $arr) {
                if (isset($arr['compare']['min']) && isset($arr['compare']['max']) || isset($arr['compare']['min']) || isset($arr['compare']['max'])) {
                    if (!isset($arr['compare']['min'])) {
                        $split = explode(',', $args[$range_k . '_range']);
                        $arr['compare']['min'] = $split[0];
                    }
                    if (!isset($arr['compare']['max'])) {
                        $split = explode(',', $args[$range_k . '_range']);
                        $arr['compare']['max'] = $split[1];
                    }
                    $query['meta_query'][] = array('key' => $range_k, 'value' => array($arr['compare']['min'], $arr['compare']['max']), 'compare' => 'between');
                }
            }
        }
        if (isset($cleanparams)) {
            foreach ($cleanparams as $k => $v) {
                if ($k == 'photopreference') {
                    if ($v === '1') {
                        $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '!=');
                    }
                    if ($v === '2') {
                        $query['meta_query'][] = array('key' => 'profilepicture', 'value' => '', 'compare' => '==');
                    }
                } elseif ($k == 'accountstatus') {
                    if ($v > 0) {
                        $query['meta_query'][] = array('key' => 'userpro_verified', 'value' => 1, 'compare' => '==');
                    }
                } elseif ($v != 'all') {
                    if ($v != '') {
                        $query['meta_query'][] = array('key' => $k, 'value' => $v, 'compare' => '=');
                    }
                }
            }
        }
    }
    /** DO **/
    if ($sortby) {
        $query['orderby'] = $sortby;
    }
    if ($order) {
        $query['order'] = strtoupper($order);
    }
    // asc to ASC
    /** QUERY ARGS END **/
    $query['number'] = $per_page;
    $query['offset'] = $offset;
    $count_args = array_merge($query, array('number' => 99999999999));
    unset($count_args['offset']);
    $user_count_query = $userpro->get_cached_query($count_args);
    //$user_count_query = new WP_User_Query($count_args);
    if ($per_page) {
        $user_count = $user_count_query->get_results();
        $total_users = $user_count ? count($user_count) : 1;
        $total_pages = ceil($total_users / $per_page);
    }
    $wp_user_query = $userpro->get_cached_query($query);
    //$wp_user_query = new WP_User_Query($query);
    remove_action('pre_user_query', 'userpro_query_search_displayname');
    $url = parse_url(wp_guess_url());
    if (isset($url['query'])) {
        $string_query = $url['query'];
    } else {
        $string_query = null;
    }
    if (!empty($wp_user_query->results)) {
        $arr['total'] = $total_users;
    }
    $arr['paginate'] = paginate_links(array('base' => @add_query_arg('userp', '%#%'), 'total' => $total_pages, 'current' => $page, 'show_all' => false, 'end_size' => 1, 'mid_size' => 2, 'prev_next' => true, 'prev_text' => __('« Previous', 'userpro'), 'next_text' => __('Next »', 'userpro'), 'type' => 'plain'));
    $arr['users'] = $wp_user_query->results;
    return $arr;
}
Exemple #4
0
    function show_filters($args)
    {
        $big_array = array_merge(userpro_retrieve_metakeys(), $this->must_be_custom_fields);
        foreach ($args as $key => $v) {
            if (in_array($key, $big_array) || in_array(str_replace('emd_', '', $key), $big_array)) {
                $options = explode(',', $args[$key]);
                if (!isset($options[1])) {
                    $type = 'input';
                } else {
                    $type = $options[1];
                }
                if (in_array($key, $this->must_be_custom_fields)) {
                    $type = 'custom';
                }
                $label = $options[0];
                if ($label) {
                    $array[$key] = array('label' => $label, 'type' => $type);
                }
            }
        }
        if (is_array($array)) {
            foreach ($array as $custom_field => $data) {
                $custom_field = str_replace('emd_', '', $custom_field);
                ?>
		
		<div class="emd-filter">
			
			<div class="emd-filter-head"><?php 
                echo $data['label'];
                ?>
</div>
			
			<?php 
                if ($data['type'] == 'dropdown') {
                    ?>
			<select name="emd-<?php 
                    echo $custom_field;
                    ?>
" id="emd-<?php 
                    echo $custom_field;
                    ?>
" class="chosen-select" data-placeholder="<?php 
                    echo $this->placeholder($custom_field);
                    ?>
">
				<?php 
                    $this->loop_options($custom_field);
                    ?>
			</select>
			<?php 
                }
                ?>
			
			<?php 
                if ($data['type'] == 'radio') {
                    ?>
			<?php 
                    $this->loop_options_radio($custom_field);
                    ?>
			<?php 
                }
                ?>
			
			<?php 
                if ($data['type'] == 'input') {
                    ?>
			<div class="userpro-input">
				<input type="text" name="emd-<?php 
                    echo $custom_field;
                    ?>
" id="emd-<?php 
                    echo $custom_field;
                    ?>
" placeholder="<?php 
                    echo $this->placeholder($custom_field);
                    ?>
" value="<?php 
                    echo $this->try_text_value($custom_field);
                    ?>
" />
			</div><div class="userpro-clear"></div>
			<?php 
                }
                ?>
			
			<?php 
                if ($data['type'] == 'custom') {
                    ?>
			<?php 
                    $this->loop_custom_options($custom_field);
                    ?>
			<?php 
                }
                ?>
			
		</div>
		
		<?php 
            }
        }
    }
function userpro_modify_search_filters($args)
{
    global $userpro_emd;
    $big_array = userpro_retrieve_metakeys();
    foreach ($args as $key => $v) {
        if (in_array($key, $big_array) || in_array(str_replace('search_', '', $key), $big_array)) {
            $options = explode(',', $args[$key]);
            if (!isset($options[1])) {
                $type = 'input';
            } else {
                $type = $options[1];
            }
            if (in_array($key, $userpro_emd->must_be_custom_fields)) {
                $type = 'custom';
            }
            $label = $options[0];
            if ($label) {
                $array[$key] = array('label' => $label, 'type' => $type);
            }
        }
        if (in_array($key, $big_array) || in_array(str_replace('search_from_', '', $key), $big_array) || in_array(str_replace('search_to_', '', $key), $big_array)) {
            $options = explode(',', $args[$key]);
            if (!isset($options[1])) {
                $type = 'input';
            } else {
                $type = $options[1];
            }
            if (in_array($key, $userpro_emd->must_be_custom_fields)) {
                $type = 'custom';
            }
            $label = $options[0];
            if ($label) {
                $array[$key] = array('label' => $label, 'type' => $type);
            }
        }
    }
    if (isset($array) && userpro_retrieve_metakeys()) {
        foreach (userpro_retrieve_metakeys() as $key) {
            unset($array[$key]);
            // remove native keys
        }
    }
    if (isset($array) && isset($array['role'])) {
        unset($array['role']);
        // remove role
    }
    if (isset($array) && is_array($array)) {
        foreach ($array as $custom_field => $data) {
            $custom_field = str_replace('search_', '', $custom_field);
            $purekey = str_replace('from_', '', $custom_field);
            $purekey = str_replace('to_', '', $purekey);
            ?>
		
		<div class="emd-filter">
			
			<div class="emd-filter-head"><?php 
            echo $data['label'];
            ?>
</div>
			
			<?php 
            if ($data['type'] == 'dropdown') {
                ?>
			
			<?php 
                if (strstr($custom_field, 'from_') || strstr($custom_field, 'to_')) {
                    ?>
			
			<?php 
                    if (isset($args[$purekey . '_range'])) {
                        $range = $args[$purekey . '_range'];
                    } else {
                        $range = '1,100';
                    }
                    ?>
			
			<select name="emd-<?php 
                    echo $custom_field;
                    ?>
" id="emd-<?php 
                    echo $custom_field;
                    ?>
" class="chosen-select-compact" data-placeholder="<?php 
                    echo $data['label'];
                    ?>
">
				<?php 
                    $userpro_emd->loop_options($custom_field, $num_range = $range);
                    ?>
			</select>
			
			<?php 
                } else {
                    ?>
			
			<select name="emd-<?php 
                    echo $custom_field;
                    ?>
" id="emd-<?php 
                    echo $custom_field;
                    ?>
" class="chosen-select" data-placeholder="<?php 
                    echo $data['label'];
                    ?>
">
				<?php 
                    $userpro_emd->loop_options($custom_field);
                    ?>
			</select>
			
			<?php 
                }
                ?>
			
			<?php 
            }
            ?>
			
			<?php 
            if ($data['type'] == 'radio') {
                ?>
			<?php 
                $userpro_emd->loop_options_radio($custom_field);
                ?>
			<?php 
            }
            ?>
			
			<?php 
            if ($data['type'] == 'input') {
                ?>
			<div class="userpro-input">
				<input type="text" name="emd-<?php 
                echo $custom_field;
                ?>
" id="emd-<?php 
                echo $custom_field;
                ?>
" placeholder="<?php 
                echo $data['label'];
                ?>
" value="<?php 
                echo $userpro_emd->try_text_value($custom_field);
                ?>
" />
			</div><div class="userpro-clear"></div>
			<?php 
            }
            ?>
			
			<?php 
            if ($data['type'] == 'custom') {
                ?>
			<?php 
                $userpro_emd->loop_custom_options($custom_field);
                ?>
			<?php 
            }
            ?>
			
		</div>
		
		<?php 
        }
    }
}