wordpress功能函数add_user_to_blog(),向博客添加用户,并指定用户的角色。

用法:

add_user_to_blog( int $blog_id, int $user_id, string $role )

描述:

当用户被添加到博客时,使用' add_user_to_blog '动作来触发一个事件。

参数:

$blog_id

(int) (必需) 用户要添加到的博客的ID。

$user_id

(int) (必需) 添加的用户ID。

$role

(string) (必需) 您希望用户拥有的角色。

返回

(true|WP_Error)成功时为true,如果用户不存在或无法添加,则为WP_Error对象。

更多信息

  • 在设置角色之前,它不会检查用户是否已经是博客的成员。如果您不想覆盖已经是博客成员的用户的角色,可以使用is_user_member_of_blog()首先检查。
  • 在调用这个函数之前,您不需要调用switch_to_blog()来切换到您想要添加用户的博客。该函数将切换到博客本身,并在返回之前还原当前博客。

来源:

文件: wp-includes/ms-functions.php

function add_user_to_blog( $blog_id, $user_id, $role ) {

switch_to_blog( $blog_id );

$user = get_userdata( $user_id );

if ( ! $user ) {

restore_current_blog();

return new WP_Error( 'user_does_not_exist', __( 'The requested user does not exist.' ) );

}

/**

* Filters whether a user should be added to a site.

*

* @since 4.9.0

*

* @param true|WP_Error $retval True if the user should be added to the site, error

* object otherwise.

* @param int $user_id User ID.

* @param string $role User role.

* @param int $blog_id Site ID.

*/

$can_add_user = apply_filters( 'can_add_user_to_blog', true, $user_id, $role, $blog_id );

if ( true !== $can_add_user ) {

restore_current_blog();

if ( is_wp_error( $can_add_user ) ) {

return $can_add_user;

}

return new WP_Error( 'user_cannot_be_added', __( 'User cannot be added to this site.' ) );

}

if ( ! get_user_meta( $user_id, 'primary_blog', true ) ) {

update_user_meta( $user_id, 'primary_blog', $blog_id );

$site = get_site( $blog_id );

update_user_meta( $user_id, 'source_domain', $site->domain );

}

$user->set_role( $role );

/**

* Fires immediately after a user is added to a site.

*

* @since MU (3.0.0)

*

* @param int $user_id User ID.

* @param string $role User role.

* @param int $blog_id Blog ID.

*/

do_action( 'add_user_to_blog', $user_id, $role, $blog_id );

clean_user_cache( $user_id );

wp_cache_delete( $blog_id . '_user_count', 'blog-details' );

restore_current_blog();

return true;

}

更新日志:
WordPress功能函数add_user_to_blog() (https://www.wpzt.net/) WordPress开发教程 第1张
用户贡献的笔记:

(由Codex - 5年前贡献)

例子:

//ADD USER ID 1 TO BLOG ID 1 AS AN EDITOR

$user_id = 1;

$blog_id = 1;

$role = 'editor';

add_user_to_blog( $blog_id, $user_id, $role )

?>

//ADD USER ID 2 TO BLOG ID 3 AS AN ADMINISTRATOR

$user_id = 2;

$blog_id = 3;

$role = 'administrator';

add_user_to_blog( $blog_id, $user_id, $role )

?>