$search_text="AND (uml.meta_value LIKE '%$search%' OR umf.meta_value LIKE '%$search%' OR u.user_email LIKE '%$search%' OR u.user_login LIKE '%$search%')";
}else{
$search_text="";
}
$blog_prefix=$wpdb->get_blog_prefix();
if($role){
$extra_table="";//", {$wpdb->usermeta} as umc";
//$filter = "AND (umc.user_id=u.ID AND umc.meta_key='wp_capabilites' AND umc.meta_value LIKE '%$role%')";
$filter="AND u.ID IN (SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='wp_capabilities' AND meta_value LIKE '%".$wpdb->escape($role)."%')";
}else{
$extra_table="";
$filter="";
}
if($return_count_only){
$query="
SELECT
COUNT(*)
FROM
{$wpdb->users} as u, {$wpdb->usermeta} as uml, {$wpdb->usermeta} as umf, {$wpdb->usermeta} as ums $extra_table
WHERE
(uml.user_id=u.ID AND uml.meta_key='last_name')
AND (umf.user_id=u.ID AND umf.meta_key='first_name')
AND (ums.user_id=u.ID AND ums.meta_key='status')
$filter
$search_text";
return$count=$wpdb->get_var($query);
}
$query="
SELECT
u.ID, u.user_login, user_email, uml.meta_value as last_name, umf.meta_value as first_name
FROM
{$wpdb->users} as u, {$wpdb->usermeta} as uml, {$wpdb->usermeta} as umf, {$wpdb->usermeta} as ums $extra_table
WHERE
(uml.user_id=u.ID AND uml.meta_key='last_name')
AND (umf.user_id=u.ID AND umf.meta_key='first_name')
AND (ums.user_id=u.ID AND ums.meta_key='status')
$filter
$search_text
ORDER BY last_name ASC, first_name ASC
";
/*
$query = "
SELECT u.ID, u.user_login, CONCAT('{', GROUP_CONCAT(CONCAT('"', m.meta_key, '"', ':', '"', m.meta_value, '"')), '}') AS meta_data, (SELECT meta_value FROM wp_usermeta as mt where meta_key = 'last_name' and mt.user_id = u.ID) AS ln
FROM wp_users as u left join wp_usermeta as m on u.ID = m.user_id where m.meta_key IN ('first_name', 'last_name')