2017-09-11 3 views
0

ich ein registeration Formular mit einigen benutzerdefinierten Feldern habe und Benutzer mit Wordpress-REST-API registrieren muß,Validate Wordpress Passwort wiederholt mit 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 : '[email protected]', 
     password: '11111', 
     // passwrod2: '11111' -confirm password field 
     // custom_field1: '' 
     // .... 

    }, function(res){ 
     console.log(res); 
    }); 
}); 

Die registeration Benutzer funktioniert gut, aber das Problem ist, kann ich nicht bestätigen password repeat matches oder nicht, ich suchte viel und fand keine Aktion zu ändern /users/ Validierung

die zweite Frage ist, ist es möglich, automatisch mit REST API nach der Registrierung erstellt Benutzer angemeldet?

ich freue mich über jede Hilfe.

Antwort

0

Ich suchte in Rest-Api-Quellcodes, leider habe ich keinen richtigen Haken gefunden, um zu tun, was ich brauchte, es gibt nur einen rest_pre_insert_user Haken, der es zu tun, was ich tun möchte, ist ein bisschen schwierig, aber hier ist die Arbeit um, falls jemand das gleiche Problem hat:

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

+0

Wenn Sie Ihre eigene Frage bitte mich als akzeptierte Antwort markiert beantwortet haben. –

+0

Ich tat es einfach, danke – Amin