我在前端(在用户管理部分)有一个用户注册表,其中有三个额外的字段(除了默认字段):生日、国家/地区、语言。它们的值存储在usermeta表中。
我有这个操作挂钩,为注册用户退役所有元数据:
add_action('user_register', 'new_user_func');
// user registration callback function
function new_user_func($userID) {
$newUser = get_user_meta( $userID );
$userMeta = array();
foreach ($newUser as $key => $value) {
$userMeta[$key] = $value[0];
}
//do something with $userMeta...
}
提交后的var_dump($userMeta)没有给我额外的字段值。。仅默认值(名字、姓氏等)
有人知道可能是什么情况吗?
您是否尝试使用获取值
$meta = get_the_author_meta($meta_key, $user_id);
也许get_user_meta()不支持您自己添加的元值。
如果这也不起作用,也许你需要看看你是如何创建新的元字段的。这里有一个关于如何做到这一点的相当不错的教程:http://justintadlock.com/archives/2009/09/10/adding-and-using-custom-user-profile-fields
为user_register操作读取编码解码器条目,它说:触发此操作时,并非所有用户元数据都已存储在数据库中。