php - Wordpress - 向用户添加多个角色,foreach 只添加第一个角色
问题描述
我正在尝试实现一种使用 php 和 wordpress 一次添加多个角色的方法。见下图。
它的工作方式是我可以选择多个角色并获得他们的“蛞蝓”。到目前为止一切正常,我得到了正确的角色“蛞蝓”。现在下一个问题是当我去 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 );
}
}
我试过了:
- 添加 sleep 看看可能是代码运行的太快了
- 我已经确保代码确实到达了 foreach 内部
- 尝试手动设置角色字符串,没有运气。
解决方案
那好吧。我搞砸了。它一直在起作用……这正是我在角色中展示的方式。我的错。
我想说的是,即使我搞砸了,@CBroe 还是给出了非常好的评论,在添加角色之前删除了该角色。所以我会把它标记为我的答案。感谢所有看过的人。我不看代码中的正确位置,这很糟糕。