| Server IP : 104.26.4.103 / Your IP : 216.73.216.4 Web Server : nginx/1.27.1 System : Linux in-5 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64 User : arabianexpress ( 1872) PHP Version : 8.0.30 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /storage/v9321/leapdubai/public_html/wp-content/plugins/kirki/app/Traits/ |
Upload File : |
<?php
namespace Kirki\App\Traits;
defined('ABSPATH') || exit;
use Kirki\App\Constants\UserMetaKeys;
use Kirki\Framework\Database\Query\QueryBuilder;
use Kirki\Framework\Supports\Arr;
trait SearchableUser {
/**
* Search users
*
* @param QueryBuilder $query
* @param string $keyword
*
* @return QueryBuilder
*/
public function scope_search(QueryBuilder $query, $keyword) {
if ($keyword === '') {
return $query;
}
if (str_contains($keyword, '@')) {
return $query->where_like('user_email', $keyword . '%');
}
if (is_numeric($keyword)) {
return $query->where(function (QueryBuilder $query) use ($keyword) {
$query->where_like('user_login', $keyword . '%')
->or_where_like('ID', $keyword . '%');
});
}
if (preg_match('|^https?://|', $keyword) && !(is_multisite() && wp_is_large_network('users'))) {
return $query->where_like('user_url', $keyword . '%');
}
return $query->where(function (QueryBuilder $query) use ($keyword) {
$query->where_like('user_login', $keyword . '%')
->or_where_like('user_url', $keyword . '%')
->or_where_like('user_email', $keyword . '%')
->or_where_like('user_nicename', $keyword . '%')
->or_where_like('display_name', $keyword . '%');
});
}
/**
* Search users by role
*
* @param QueryBuilder $query
* @param string|array $role
*
* @return QueryBuilder
*/
public function scope_role(QueryBuilder $query, $role) {
if (empty($role)) {
return $query;
}
$roles = Arr::wrap($role);
return $query->where_has('meta', function (QueryBuilder $query) use ($roles) {
$query->where('meta_key', '=', UserMetaKeys::CAPABILITIES);
foreach ($roles as $role) {
$query->where_like('meta_value', '%' . $role . '%');
}
});
}
}