WP_User_Query не возвращает результаты поиска по электронной почте

Я реализовал пользовательский поиск в WordPress, но поиск не возвращает результаты, когда ваш поиск по user_email, только first_name & фамилия работа. Вот мой код ….

    $search_string = esc_attr( $search );
$users = new WP_User_Query( array(
'search'         => "*{$search_string}*",
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
'meta_query' => array(
'relation' => 'OR',
array(
'key'     => 'first_name',
'value'   => $search_string,
'compare' => 'LIKE'
),
array(
'key'     => 'last_name',
'value'   => $search_string,
'compare' => 'LIKE'
)
)
) );
$users_found = $users->get_results();

Я не могу выполнить поиск по адресу электронной почты, … Я не получаю результатов, хотя код выглядит корректно.

1

Решение

Вы должны написать запрос для user_email отдельно также, как показано ниже:

$q1 = new WP_User_Query( array(
'user_email' => "*{$search_string}*",
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
);

$users = new WP_User_Query( array(
'search'         => "*{$search_string}*",
'search_columns' => array(
'user_login',
'user_nicename',
'user_email',
'user_url',
),
'meta_query' => array(
'relation' => 'OR',
array(
'key'     => 'first_name',
'value'   => $search_string,
'compare' => 'LIKE'
),
array(
'key'     => 'last_name',
'value'   => $search_string,
'compare' => 'LIKE'
)
)
) );

$unique = array_unique( array_merge( $q1->get_results(), $users->get_results() ), SORT_REGULAR  );
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector