提问者:小点点

wordpress-向用户添加多个角色,Foreach只添加第一个角色


我正在尝试用php和wordpress实现一种同时添加多个角色的方法。见下图。

它的工作方式是,我可以选择多个角色,并得到他们的“鼻涕虫”。到目前为止一切正常,我得到了正确的角色“slug”。现在,下一个问题是当我转到php并更新用户的角色时。我在使用选定角色创建的数组上使用foreach,并在此foreach中使用add_role()。然而,由于某些原因,这个foreach只添加了第一个角色,而跳过了其他角色。尽管所有数据都是正确的,但它为什么只使用第一个选定的角色?

这就是我的php,它应该更新用户角色:

$oUser = get_user_by('ID', $_POST['iUserID']);

if(isset($_POST['aRoles']) && !empty($_POST['aRoles'])){

    foreach ($_POST['aRoles'] as $key => $oRole) {
        $oUser->add_role( $oRole );
    }

}

我试过:

  • 添加睡眠以查看可能代码运行得太快
  • 我已经确保代码确实到达了Foreach内部
  • 尝试手动设置角色字符串,没有运气。

共1个答案

匿名用户

哦好吧。我搞砸了。它一直在工作...这只是我在角色中表现的方式。我的坏。

我要说的是,尽管我很兴奋,@CBroe在添加角色之前给出了一个非常好的评论,删除了这个角色。所以我会把它作为我的答案。感谢所有看过的人。我的错误在于没有看到代码中的正确位置。