Skip to main content

better_messages_search_user_sql_condition

REQUIREMENTS

To be able to implement this guide, you need to learn how to insert PHP snippets to your website.

You can find guide here: WP Beginner

This filter allows to modify MySQL query which is used to search users in Better Messages, which will allow to modify search results

Examples

Exclude specific user ids from search results

add_filter( 'better_messages_search_user_sql_condition', 'exclude_user_role_from_search', 10, 4 );

function exclude_user_role_from_search( $sql_array, $user_ids, $search, $user_id ){
// Exclude user ID 1,2,3 from search results
$sql_array[] = "AND `ID` NOT IN(1,2,3)";

return $sql_array;
}

Exclude subscriber role users from search results

add_filter( 'better_messages_search_user_sql_condition', 'exclude_user_role_from_search', 10, 4 );

function exclude_user_role_from_search( $sql_array, $user_ids, $search, $user_id ){
global $wpdb;
$role = 'subscriber';

$sql_array[] = $wpdb->prepare("AND `ID` NOT IN(SELECT user_id FROM `{$wpdb->usermeta}` WHERE `meta_key` = 'wp_capabilities' AND `meta_value` LIKE %s)", '%' . $role . '%');

return $sql_array;
}

Show only subscriber role users in search results

add_filter( 'better_messages_search_user_sql_condition', 'include_only_user_role_in_search', 10, 4 );

function include_only_user_role_in_search( $sql_array, $user_ids, $search, $user_id ){
global $wpdb;
$role = 'subscriber';

$sql_array[] = $wpdb->prepare("AND `ID` IN(SELECT user_id FROM `{$wpdb->usermeta}` WHERE `meta_key` = 'wp_capabilities' AND `meta_value` LIKE %s)", '%' . $role . '%');

return $sql_array;
}