/**
  * Send reset password email.
  *
  * @param array $validation_result The validation result.
  * @return mixed
  */
 public static function validation($validation_result)
 {
     $form = $validation_result['form'];
     $username = Utils::get_field_value($form, 'user_login');
     if (!empty($username)) {
         if (!function_exists('retrieve_password')) {
             ob_start();
             require_once ABSPATH . '/wp-login.php';
             ob_end_clean();
         }
         $_POST['user_login'] = $username;
         retrieve_password();
     }
     return $validation_result;
 }
Esempio n. 2
0
 /**
  * Log them in.
  *
  * @param array $validation_result The validation result.
  * @return mixed
  */
 public static function validation($validation_result)
 {
     $form = $validation_result['form'];
     $username = Utils::get_field_value($form, 'user_login');
     if (strpos($username, '@')) {
         $user_info = get_user_by('email', $username);
         $username = $user_info ? $user_info->user_login : false;
     }
     $password = Utils::get_field_value($form, 'user_pass');
     $user = wp_signon(['user_login' => $username, 'user_password' => $password, 'remember' => true]);
     if (is_wp_error($user)) {
         $validation_result['is_valid'] = false;
         $validation_result['form']['fields'][0]->validation_message = 'Invalid username or password.';
         $validation_result['form']['fields'][0]->failed_validation = true;
     } else {
         wp_set_current_user($user->ID);
     }
     return $validation_result;
 }
Esempio n. 3
0
 /**
  * Validate the data and insert the user.
  *
  * @param array $validation_result The results.
  * @return mixed
  * @throws \Exception
  */
 public static function validation($validation_result)
 {
     $valid_args = ['user_login', 'user_pass', 'user_email', 'display_name', 'first_name', 'last_name'];
     $form = $validation_result['form'];
     $args = [];
     $errors = [];
     foreach ($valid_args as $arg) {
         $value = Utils::get_field_value($form, $arg);
         if (false !== $value) {
             $args[$arg] = $value;
         }
     }
     if (!(isset($args['user_email']) && isset($args['user_pass']))) {
         throw new \Exception('The signup form must have user_email and user_pass fields.');
     }
     $errors['user_email'] = Validate::email($args['user_email']);
     $errors['user_pass'] = Validate::password($args['user_pass']);
     if (array_filter($errors)) {
         // There's an error in a specific field if we get here.
         foreach ($form['fields'] as &$field) {
             if (isset($errors[$field->adminLabel]) && $errors[$field->adminLabel]) {
                 $field->validation_message = $errors[$field->adminLabel];
                 $field->failed_validation = true;
             }
         }
         $validation_result['is_valid'] = false;
         return $validation_result;
     }
     $args['user_login'] = isset($args['user_login']) && $args['user_login'] ? $args['user_login'] : self::generate_username($args);
     $user_id = wp_insert_user($args);
     if (is_wp_error($user_id)) {
         // There was an error when inserting the user if we get here.
         foreach ($user_id->errors as $error) {
             $validation_result['form']['fields'][0]->validation_message = '<p>' . $error[0] . '</p>';
         }
         $validation_result['form']['fields'][0]->failed_validation = true;
         $validation_result['is_valid'] = false;
         return $validation_result;
     }
     wp_new_user_notification($user_id, null, 'both');
     return $validation_result;
 }
Esempio n. 4
0
 /**
  * Validate the data and update the user.
  *
  * @param array $validation_result The results.
  * @return mixed
  * @throws \Exception
  */
 public static function validation($validation_result)
 {
     $valid_args = ['user_pass', 'user_email', 'display_name', 'first_name', 'last_name'];
     $form = $validation_result['form'];
     $args = ['ID' => get_current_user_id()];
     $errors = [];
     foreach ($valid_args as $arg) {
         $value = Utils::get_field_value($form, $arg);
         if (false !== $value) {
             $args[$arg] = $value;
         }
     }
     if (isset($args['user_email'])) {
         $errors['user_email'] = Validate::email($args['user_email']);
     }
     if (isset($args['user_pass'])) {
         $errors['user_pass'] = Validate::password($args['user_pass']);
     }
     if (array_filter($errors)) {
         // There's an error in a specific field if we get here.
         foreach ($form['fields'] as &$field) {
             if (isset($errors[$field->adminLabel]) && $errors[$field->adminLabel]) {
                 $field->validation_message = $errors[$field->adminLabel];
                 $field->failed_validation = true;
             }
         }
         $validation_result['is_valid'] = false;
         return $validation_result;
     }
     $user_id = wp_update_user($args);
     if (is_wp_error($user_id)) {
         // There was an error updating the user if we get here.
         foreach ($user_id->errors as $error) {
             $validation_result['form']['fields'][0]->validation_message = '<p>' . $error[0] . '</p>';
         }
         $validation_result['form']['fields'][0]->failed_validation = true;
         $validation_result['is_valid'] = false;
         return $validation_result;
     }
     return $validation_result;
 }