【发布时间】:2012-09-15 11:19:09
【问题描述】:
我已经尝试了所有我能找到的方法来设置注册时的用户密码,但没有成功......我显示了字段,验证(如果密码匹配等)我在屏幕上打印它们,我打印用户 ID在屏幕上,所以需要的每个参数都在那里,但该功能似乎根本不起作用...... 这不起作用...
$newpassword = "zzzzzz";
update_user_meta($user_id, 'user_pass', $newpassword);
这也不行……
add_action( 'user_register', 'ts_register_extra_fields', 10 );
function ts_register_extra_fields($user_id, $password='11',$meta = array()){
$userdata = array();
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];
}
$new_user_id = wp_update_user( $userdata );
}
我的客户明天需要这个,所以我现在完全迷路了,我不知道为什么它不起作用......
忘记添加了,所有这些代码都是在我的主题的functions.php中添加的。 (正如我已经说过的,我在屏幕上发布了变量)。
add_action( 'user_register', 'ts_register_extra_fields', 100 );
function ts_register_extra_fields( $user_id, $password = '', $meta = array() ) {
$userdata = array();
$userdata['ID'] = $user_id;
$userdata['contacto'] = $_POST['contacto'];
$userdata['nif'] = $_POST['nif'];
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];
echo "im in";
}
$new_user_id = wp_insert_user( $userdata );
echo "id-".$userdata['ID'];
echo "contacto-".$userdata['contacto'];
echo "nif-".$userdata['nif'];
echo "pass-".$userdata['user_pass'];
}
所有这些回声都输出正确的数据...例如 id = 195 下次我尝试 196 等... contacto 和 nif 显示了我在自定义注册字段中输入的数据,并且 pass 还显示了我在自定义注册字段密码中输入的数据...
【问题讨论】:
-
你是如何设置 $user_id 的?
-
也不是,我用了一个已经创建好的用户ID,还是不行。已经用 wp_insert_user 测试过,加了个大号,也不行……