diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php
index 375648e768..ba722f8f06 100644
--- a/src/wp-includes/capabilities.php
+++ b/src/wp-includes/capabilities.php
@@ -659,6 +659,37 @@ function current_user_can_for_blog( $blog_id, $capability ) {
 	return $can;
 }
 
+/**
+ * Whether a particular user has a specific capability for a given site.
+ *
+ *
+ * @param int|WP_User $user       User ID or object.
+ * @param string      $capability Capability name.
+ * @return bool Whether the user has the given capability.
+ */
+function user_can_for_blog( $user, $blog_id, $capability ) {
+	if ( ! is_object( $user ) ) {
+		$user = get_userdata( $user );
+	}
+
+	if ( ! $user || ! $user->exists() ) {
+		return false;
+	}
+
+	$switched = is_multisite() ? switch_to_blog( $blog_id ) : false;
+
+	$args = array_slice( func_get_args(), 2 );
+	$args = array_merge( array( $capability ), $args );
+
+	$can = call_user_func_array( array( $user, 'has_cap' ), $args );
+
+	if ( $switched ) {
+		restore_current_blog();
+	}
+
+	return $can;
+}
+
 /**
  * Whether the author of the supplied post has a specific capability.
  *
