Make WordPress Core


Ignore:
Timestamp:
09/14/2005 12:03:02 AM (21 years ago)
Author:
ryan
Message:

User create/update rework. Introduce wp_insert_user(), wp_create_user(), wp_update_user(), add_user(), update_user(), wp_new_user_notification().

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin-functions.php

    r2866 r2872  
    343343               
    344344        return $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'");
     345}
     346
     347// Creates a new user from the "Users" form using $_POST information.
     348
     349function add_user() {
     350        return update_user();   
     351}
     352
     353function update_user($user_id = 0) {
     354       
     355        if ( $user_id != 0 ) {
     356                $update = true;
     357                $user->ID = $user_id;
     358                $userdata = get_userdata($user_id);
     359                $user->user_login = $userdata->user_login;
     360        } else {
     361                $update = false;
     362                $user = '';
     363        }
     364       
     365        if ( isset($_POST['user_login']) )
     366                $user->user_login = wp_specialchars(trim($_POST['user_login']));
     367
     368        $pass1 = $pass2 = '';
     369        if ( isset($_POST['pass1']) )
     370                $pass1 = $_POST['pass1'];
     371        if ( isset($_POST['pass2']) )
     372                $pass2 = $_POST['pass2'];
     373
     374        if ( isset($_POST['email']) )
     375                $user->user_email = wp_specialchars(trim($_POST['email']));
     376        if ( isset($_POST['url']) ) {
     377                $user->user_url = wp_specialchars(trim($_POST['url']));
     378                $user->user_url = preg_match('/^(https?|ftps?|mailto|news|gopher):/is', $user->user_url) ? $user->user_url : 'http://' . $user->user_url;
     379        }
     380        if ( isset($_POST['first_name']) )
     381                $user->first_name = wp_specialchars(trim($_POST['first_name']));
     382        if ( isset($_POST['last_name']) )
     383                $user->last_name = wp_specialchars(trim($_POST['last_name']));
     384        if ( isset($_POST['nickname']) )
     385                $user->nickname = wp_specialchars(trim($_POST['nickname']));
     386        if ( isset($_POST['display_name']) )
     387                $user->display_name = wp_specialchars(trim($_POST['display_name']));
     388        if ( isset($_POST['description']) )
     389                $user->description = wp_specialchars(trim($_POST['description']));
     390        if ( isset($_POST['jabber']) )
     391                $user->jabber = wp_specialchars(trim($_POST['jabber']));
     392        if ( isset($_POST['aim']) )
     393                $user->aim = wp_specialchars(trim($_POST['aim']));
     394        if ( isset($_POST['yim']) )
     395                $user->yim = wp_specialchars(trim($_POST['yim']));
     396
     397        $errors = array();
     398               
     399        /* checking that username has been typed */
     400        if ($user->user_login == '')
     401                $errors['user_login'] = __('<strong>ERROR</strong>: Please enter a username.');
     402
     403        /* checking the password has been typed twice */
     404        do_action('check_passwords', array($user->user_login, &$pass1, &$pass2));
     405       
     406        if ( !$update ) {
     407                if ( $pass1 == '' || $pass2 == '' )
     408                        $errors['pass'] = __('<strong>ERROR</strong>: Please enter your password twice.');
     409        } else {
     410                if ( ( empty($pass1) && !empty($pass2) ) || ( empty($pass2) && !empty($pass1) ) )
     411                        $errors['pass'] = __("<strong>ERROR</strong>: you typed your new password only once.");
     412        }
     413       
     414        /* checking the password has been typed twice the same */
     415        if ($pass1 != $pass2)
     416                $errors['pass'] = __('<strong>ERROR</strong>: Please type the same password in the two password fields.');
     417
     418        if ( !empty($pass1) )
     419                $user->user_pass = $pass1;
     420       
     421        if ( !$update && username_exists( $user_login ) )
     422                $errors['user_login'] = __('<strong>ERROR</strong>: This username is already registered, please choose another one.');
     423
     424        /* checking e-mail address */
     425        if (empty($user->user_email)) {
     426                $errors['user_email'] = __("<strong>ERROR</strong>: please type an e-mail address");
     427        } else if (!is_email($user->user_email)) {
     428                $errors['user_email'] = __("<strong>ERROR</strong>: the email address isn't correct");
     429        }
     430
     431        if ( count($errors) != 0 )
     432                return $errors;
     433       
     434        if ( $update ) {
     435                $user_id = wp_update_user(get_object_vars($user));
     436        } else {
     437                $user_id = wp_insert_user(get_object_vars($user));
     438                wp_new_user_notification($user_id);
     439        }
     440       
     441        return $errors;
    345442}
    346443
Note: See TracChangeset for help on using the changeset viewer.