問題描述

我的設定中有自定義角色,我想透過一個功能自動更改使用者的角色。說使用者 A 有 SUBSCRIBER 角色,如何將其更改為 EDITOR?當新增角色時,我們只是:

add_role( $role_name , $role_display_name , array( 'read' =>  true,
                                                   'edit_posts' => false,
                                                   'delete_posts' => false, ));

改變角色怎麼樣?有什麼像:

change_role($old_role, $new_role);

更新:我認為這個會做的:

$wp_user_object = new WP_User($current_user->ID);
$wp_user_object->set_role('editor');

最佳解決方案

請參閱 WP_User class,您可以使用它為使用者新增和刪除角色。

編輯:我最初應該提供這個答案的更多資訊,所以我在下面新增更多的資訊。

更具體地說,可以透過建立 WP_user 類的例項並呼叫 add_role()remove_role()方法來設定使用者的角色。

例子

將訂閱者角色更改為編輯

// NOTE: Of course change 3 to the appropriate user ID
$u = new WP_User( 3 );

// Remove role
$u->remove_role( 'subscriber' );

// Add role
$u->add_role( 'editor' );

希望這比我最初的回應更有幫助,這不一定有幫助。

次佳解決方案

只需要注意,當您不知道使用者當前的角色時,更簡單的更改使用者角色的方法尤其有用:->set_role()

例:

// Fetch the WP_User object of our user.
$u = new WP_User( 3 );

// Replace the current role with 'editor' role
$u->set_role( 'editor' );

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。