我有一些自定义字段的注册表单,需要使用Wordpress REST api注册用户,
$('#user_register_form').submit(function(e){
e.preventDefault();
var form = $(this),
rest = new DwREST();
rest.registerUser({
first_name: '',
last_name: '',
username: 'amin',
name : 'amin',
email : 'aaaa@amin.ev',
password: '11111',
// passwrod2: '11111' -confirm password field
// custom_field1: ''
// ....
}, function( res ){
console.log( res );
});
});
用户注册工作正常但问题是我无法确认密码是否重复匹配,我搜索了很多并且没有找到要修改为/users/
验证的操作
第二个问题是注册后是否可以自动登录使用REST API创建的用户?
我感谢任何帮助。
答案 0 :(得分:0)
我搜索了rest-api源代码,遗憾的是我没有找到任何合适的钩子去做我需要的东西,只有一个rest_pre_insert_user
钩子让它做我想做的事情有点棘手,但这是解决方法,如果有人遇到同样的问题:
add_filter('rest_pre_insert_user', function( $user, $request ){
$params = $request->get_params();
if( $params['password'] !== $params['password2'] ) {
$error = new WP_Error( 'rest_no_matching_passwords', __( 'Passwords don\'t match' ), array( 'status' => 400 ) );
foreach( $error->error_data as $data ) {
http_response_code( $data['status'] );
}
header('Content-Type: application/json; charset=utf-8;');
foreach( $error->errors as $key => $val ){
$json = json_encode([
'code' => $key,
'type' => 'error',
'message' => $val[0]
]);
}
die( $json );
}
return $user;
}, 10, 2 );