首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在提交按钮上切换角色

在提交按钮上切换角色
EN

WordPress Development用户
提问于 2018-09-17 08:19:58
回答 2查看 40关注 0票数 0

我在一个锦标赛网站上工作。当你注册时,你有一个角色“成员”,你可以创建一个CPT“团队”。

我创建了一个" TeamAdmin“角色,其功能为edit_published_posts,例如,TeamAdmin可以更改团队名称。

我的问题是如何在submit按钮上切换角色,例如在团队创建时将角色切换到"TeamAdmin"?

EN

回答 2

WordPress Development用户

发布于 2018-09-17 08:47:45

确切的解决方案取决于您如何创建一个团队。你得参与到那个行动中去。假设创建团队是通过创建自定义类型" team“的post来完成的,那么您将链接到save_post_team,导致如下所示:

代码语言:javascript
复制
add_action ('save_post_team', 'wpse314398_change_team_captain_role', 10, 3);
function wpse314398_change_team_captain_role ($post_id, $post, $update) {
  $current_user = wp_get_current_user();
  $current_user->remove_role ('Member');
  $current_user->add_role ('TeamAdmin');
  }

您还可以保留成员角色,因为用户在WordPress中可能有多个角色。如果允许用户删除他们的团队,您也可能希望拥有一个反向函数。

票数 0
EN

WordPress Development用户

发布于 2018-09-17 10:44:55

非常感谢,最后我在提交的表单上修改了状态:

wp_insert_post($team_post);//获取成员ID $user_id = get_current_user_id();//将其角色更改为Team wp_update_user();

我的新角色就是这样

类oArenaRole {公共函数__construct() {

代码语言:javascript
复制
    $this->addCap();
}

public function addRole()
{
    // Create new role for Admin Team
    add_role('TeamAdmin', 'Administrateur de la team', [
        'read' => true,
        'edit_published_posts' => true,
    ]);
}

public function addCap()
{
    $role = get_role('Team Admin');

}

public function removeRole()
{
    remove_role('TeamAdmin');
}

public function activation()
{
    $this->addRole();
    $this->addCap();
}

public function deactivation()
{
    $this->removeRole();
}

}

提交状态更改,但TeamAdmin不可能编辑已发布的CPT

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/314398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档