user_can() WordPress Function

The user_can() function is used to check if the current user has a certain capability. If the user has the capability, the function will return true. Otherwise, it will return false.

user_can( int|WP_User $user, string $capability, mixed $args ) #

Returns whether a particular user has the specified capability.


Description

This function also accepts an ID of an object to check against if the capability is a meta capability. Meta capabilities such as edit_post and edit_user are capabilities used by the map_meta_cap() function to map to primitive capabilities that a user or role has, such as edit_posts and edit_others_posts.

Example usage:

user_can( $user->ID, 'edit_posts' );
user_can( $user->ID, 'edit_post', $post->ID );
user_can( $user->ID, 'edit_post_meta', $post->ID, $meta_key );

Top ↑

Parameters

$user

(int|WP_User)(Required)User ID or object.

$capability

(string)(Required)Capability name.

$args

(mixed)(Optional)further parameters, typically starting with an object ID.


Top ↑

Return

(bool) Whether the user has the given capability.


Top ↑

Source

File: wp-includes/capabilities.php

function user_can( $user, $capability, ...$args ) {
	if ( ! is_object( $user ) ) {
		$user = get_userdata( $user );
	}

	if ( empty( $user ) ) {
		// User is logged out, create anonymous user object.
		$user = new WP_User( 0 );
		$user->init( new stdClass );
	}

	return $user->has_cap( $capability, ...$args );
}


Top ↑

Changelog

Changelog
VersionDescription
5.3.0Formalized the existing and already documented ...$args parameter by adding it to the function signature.
3.1.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.