I am not going to write your form for you, but create a form and submit it to a page to do the processing, or use the AJAX API. Then use WP_User_Query
to actually search for users. It is a very WP_Query
-like class that should let you do everything you want including search for user metadata from the $wpdb->usermeta
table by passing a meta_query
parameter similar to the following from the Codex:
$args = array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'country',
'value' => 'Israel',
'compare' => '='
),
array(
'key' => 'age',
'value' => array( 20, 30 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
)
);
$user_query = new WP_User_Query( $args );
If you have trouble, edit the question to include your (attempt at working) code and more detail, and I will edit the answer.