使用 REST 验证 wordpress 密码重复 api

Validate wordpress password repeat with REST api

我有一个包含一些自定义字段的注册表单,需要使用 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/验证[=13=的操作]

第二个问题是注册后使用 REST api 创建的用户是否可以自动登录?

感谢任何帮助。

我搜索了 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 );

Reference