Додаємо мета поля до пошуку в таблиці юзерів в консолі WordPress

07.07.2023 | Написав

Розкажу, як зробити кастомний пошук в таблиці юзерів в консолі WordPress. Наприклад, в вас є додаткове поле «User Number» до кожного юзера, і Вам потрібно шукати по ньому. Робимо це так:

Додаємо в function.php:

//custom users table search
add_action( 'pre_user_query', 'my_theme_custom_user_search'  );
function my_theme_custom_user_search( $query ) {
    global $wpdb;
    global $pagenow;
 
    if (is_admin() && 'users.php' == $pagenow) {
        if( empty($_REQUEST['s']) ){return;}
        $query->query_fields = 'DISTINCT '.$query->query_fields;
        $query->query_from .= ' LEFT JOIN '.$wpdb->usermeta.' ON '.$wpdb->usermeta.'.user_id = '.$wpdb->users.'.ID';
        $query->query_where = "WHERE 1=1 
            AND (user_login LIKE '%".$_REQUEST['s']."%' 
            OR user_email LIKE '%".$_REQUEST['s']."%' 
            OR display_name LIKE '%".$_REQUEST['s']."%' 
            OR ID = '".$_REQUEST['s']."' 
            OR (meta_value LIKE '%".$_REQUEST['s']."%' AND meta_key = 'user_number'))";
    }
    return $query;
}

Ми прив’язалися до хука pre_user_query і, в результаті, замінили стандартний пошук на наш кастомний, де будемо шукати в логіні, імейлі, відображуваному імені та тому кастомному полю, яке ми вказали в запиті.

Рубрика: Веброзробка
Позначки:,
Коментарі читачів статті "Додаємо мета поля до пошуку в таблиці юзерів в консолі WordPress"

Немає коментарів.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.