Advertisement
campusboy

rest_authorization.php

Nov 13th, 2018
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.25 KB | None | 0 0
  1. <?php
  2.  
  3. function rest_authorization( WP_REST_Request $request ) {
  4.     $log = trim( $request->get_param( 'log' ) );
  5.     $psw = trim( $request->get_param( 'psw' ) );
  6.  
  7.     $errors = [
  8.         'status' => false,
  9.         'text'   => '',
  10.         'fields' => [
  11.             'log' => '',
  12.             'psw' => '',
  13.         ],
  14.     ];
  15.  
  16.     if ( ! $log || ! $psw ) {
  17.         $errors['text'] .= ! $log ? __( '<strong>ERROR</strong>: The username field is empty.' ) . '<br>' : '';
  18.         $errors['text'] .= ! $psw ? __( '<strong>ERROR</strong>: The password field is empty.' ) : '';
  19.  
  20.         $errors['fields']['log'] = empty( $log );
  21.         $errors['fields']['psw'] = empty( $psw );
  22.  
  23.         return $errors;
  24.     }
  25.  
  26.     $user = wp_signon( [
  27.         'user_login'    => $log,
  28.         'user_password' => $psw,
  29.         'remember'      => 1,
  30.     ] );
  31.  
  32.     if ( is_wp_error( $user ) ) {
  33.         $code = $user->get_error_code();
  34.  
  35.         return wp_parse_args( [
  36.             'text'   => preg_replace( '/<a.+a>/', '', $user->get_error_message() ),
  37.             'fields' => [
  38.                 'log' => 'invalid_username' == $code,
  39.                 'psw' => 'incorrect_password' == $code,
  40.             ],
  41.         ], $errors );
  42.     }
  43.  
  44.     return [ 'status' => true ];
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement