wordpress - WordPress:如何根据另一个高级自定义字段设置特定角色
问题描述
我正在开发一个 WordPress 应用程序,我们通过高级自定义字段插件添加了一个自定义字段。
这运作良好!
我们需要根据我们通过高级自定义字段插件添加的注册密码来设置一个特定的角色。
我们尝试在function wp_insert_user( $userdata ) {
方法内更新 users.php 中的代码,但失败了。
这是我们尝试设置的代码:
debug_to_console('hey cindyyyyyyyyyyyyyy');
debug_to_console($userdata);
if ( isset( $userdata['role'] ) ) {
$user->set_role( $userdata['role'] );
} elseif ( ! $update ) {
if ($userdata['registration_pin'] == 9742)
{
$user->set_role('club_member');
}
else if ($userdata['registration_pin'] == 9744) {
$user->set_role('new_member');
}
else{
$user->set_role( get_option( 'default_role' ) );
}
//$user->set_role( get_option( 'default_role' ) );
// $user->set_role('new_member');
// $user->set_role('club_member');
}
在此代码中,它传递了 2 个 if 语句并直接转到设置“默认角色”的 else。
解决方案
它通过这两个“if 语句”的唯一方法是因为 $userdata['registration_pin'] 不等于 9742 或 9744,或者 $userdata['registration_pin'] 不存在于 $userdata
我确定问题是 $userdata['registration_pin'] 不存在,ACF 不会像这样在您的用户数据中保存自定义字段...默认情况下,来自 ACF 的自定义字段保存在 user_meta 表中
您应该能够通过以下方式访问注册密钥:
$registration_key = get_user_meta($user_id, 'registration_key', true);
推荐阅读
- node.js - 将 sendbird 与 Angular6 集成
- rxjs6 - 仅从 ReplaySubject 获取最新值
- firebase - Firebase Cloud Functions 上的 Puppeteer 名称解析错误
- html - 网格:两个区域不会并排出现
- python - Python:产量或回报
- excel - 读取 A 列,根据模式插入行
- java - 初学者:无法运行这个程序,即使它是解决方案
- python - Python多处理队列错误:'function'对象没有属性'put'
- javascript - 绑定到 vue v-model 的 bootstrap-datepicker 在失去焦点时恢复到以前的数据
- c++ - 为什么一个非常大的值会导致这段代码无限重复?