wp_ajax_autocomplete_user()

In this article

Handles user autocomplete via AJAX.

Source

function wp_ajax_autocomplete_user() {	if ( ! is_multisite() || ! current_user_can( 'promote_users' ) || wp_is_large_network( 'users' ) ) {	wp_die( -1 );	}	/** This filter is documented in wp-admin/user-new.php */	if ( ! current_user_can( 'manage_network_users' ) && ! apply_filters( 'autocomplete_users_for_site_admins', false ) ) {	wp_die( -1 );	}	$return = array();	/* * Check the type of request. * Current allowed values are `add` and `search`. */	if ( isset( $_REQUEST['autocomplete_type'] ) && 'search' === $_REQUEST['autocomplete_type'] ) {	$type = $_REQUEST['autocomplete_type'];	} else {	$type = 'add';	}	/* * Check the desired field for value. * Current allowed values are `user_email` and `user_login`. */	if ( isset( $_REQUEST['autocomplete_field'] ) && 'user_email' === $_REQUEST['autocomplete_field'] ) {	$field = $_REQUEST['autocomplete_field'];	} else {	$field = 'user_login';	}	// Exclude current users of this blog.	if ( isset( $_REQUEST['site_id'] ) ) {	$id = absint( $_REQUEST['site_id'] );	} else {	$id = get_current_blog_id();	}	$include_blog_users = ( 'search' === $type ? get_users(	array(	'blog_id' => $id,	'fields' => 'ID',	)	) : array() );	$exclude_blog_users = ( 'add' === $type ? get_users(	array(	'blog_id' => $id,	'fields' => 'ID',	)	) : array() );	$users = get_users(	array(	'blog_id' => false,	'search' => '*' . $_REQUEST['term'] . '*',	'include' => $include_blog_users,	'exclude' => $exclude_blog_users,	'search_columns' => array( 'user_login', 'user_nicename', 'user_email' ),	)	);	foreach ( $users as $user ) {	$return[] = array(	/* translators: 1: User login, 2: User email address. */	'label' => sprintf( _x( '%1$s (%2$s)', 'user autocomplete result' ), $user->user_login, $user->user_email ),	'value' => $user->$field,	);	}	wp_die( wp_json_encode( $return ) ); } 

Hooks

apply_filters( ‘autocomplete_users_for_site_admins’, bool $enable )

Filters whether to enable user auto-complete for non-super admins in Multisite.

Changelog

VersionDescription
3.4.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.