[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-admin/network/ -> user-new.php (source)

   1  <?php
   2  /**
   3   * Add New User network administration panel.
   4   *
   5   * @package WordPress
   6   * @subpackage Multisite
   7   * @since 3.1.0
   8   */
   9  
  10  /** Load WordPress Administration Bootstrap */
  11  require_once  __DIR__ . '/admin.php';
  12  
  13  if ( ! current_user_can( 'create_users' ) ) {
  14      wp_die( __( 'Sorry, you are not allowed to add users to this network.' ) );
  15  }
  16  
  17  get_current_screen()->add_help_tab(
  18      array(
  19          'id'      => 'overview',
  20          'title'   => __( 'Overview' ),
  21          'content' =>
  22              '<p>' . __( 'Add User will set up a new user account on the network and send that person an email with username and password.' ) . '</p>' .
  23              '<p>' . __( 'Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them.' ) . '</p>',
  24      )
  25  );
  26  
  27  get_current_screen()->set_help_sidebar(
  28      '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
  29      '<p>' . __( '<a href="https://codex.wordpress.org/Network_Admin_Users_Screen">Documentation on Network Users</a>' ) . '</p>' .
  30      '<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>' ) . '</p>'
  31  );
  32  
  33  if ( isset( $_REQUEST['action'] ) && 'add-user' === $_REQUEST['action'] ) {
  34      check_admin_referer( 'add-user', '_wpnonce_add-user' );
  35  
  36      if ( ! current_user_can( 'manage_network_users' ) ) {
  37          wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
  38      }
  39  
  40      if ( ! is_array( $_POST['user'] ) ) {
  41          wp_die( __( 'Cannot create an empty user.' ) );
  42      }
  43  
  44      $user = wp_unslash( $_POST['user'] );
  45  
  46      $user_details = wpmu_validate_user_signup( $user['username'], $user['email'] );
  47  
  48      if ( is_wp_error( $user_details['errors'] ) && $user_details['errors']->has_errors() ) {
  49          $add_user_errors = $user_details['errors'];
  50      } else {
  51          $password = wp_generate_password( 12, false );
  52          $user_id  = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, sanitize_email( $user['email'] ) );
  53  
  54          if ( ! $user_id ) {
  55              $add_user_errors = new WP_Error( 'add_user_fail', __( 'Cannot add user.' ) );
  56          } else {
  57              /**
  58               * Fires after a new user has been created via the network user-new.php page.
  59               *
  60               * @since 4.4.0
  61               *
  62               * @param int $user_id ID of the newly created user.
  63               */
  64              do_action( 'network_user_new_created_user', $user_id );
  65  
  66              wp_redirect(
  67                  add_query_arg(
  68                      array(
  69                          'update'  => 'added',
  70                          'user_id' => $user_id,
  71                      ),
  72                      'user-new.php'
  73                  )
  74              );
  75              exit;
  76          }
  77      }
  78  }
  79  
  80  if ( isset( $_GET['update'] ) ) {
  81      $messages = array();
  82      if ( 'added' === $_GET['update'] ) {
  83          $edit_link = '';
  84          if ( isset( $_GET['user_id'] ) ) {
  85              $user_id_new = absint( $_GET['user_id'] );
  86              if ( $user_id_new ) {
  87                  $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_id_new ) ) );
  88              }
  89          }
  90  
  91          $message = __( 'User added.' );
  92  
  93          if ( $edit_link ) {
  94              $message .= sprintf( ' <a href="%s">%s</a>', $edit_link, __( 'Edit user' ) );
  95          }
  96  
  97          $messages[] = $message;
  98      }
  99  }
 100  
 101  // Used in the HTML title tag.
 102  $title       = __( 'Add New User' );
 103  $parent_file = 'users.php';
 104  
 105  require_once ABSPATH . 'wp-admin/admin-header.php'; ?>
 106  
 107  <div class="wrap">
 108  <h1 id="add-new-user"><?php _e( 'Add New User' ); ?></h1>
 109  <?php
 110  if ( ! empty( $messages ) ) {
 111      foreach ( $messages as $msg ) {
 112          echo '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
 113      }
 114  }
 115  
 116  if ( isset( $add_user_errors ) && is_wp_error( $add_user_errors ) ) {
 117      ?>
 118      <div class="error">
 119          <?php
 120          foreach ( $add_user_errors->get_error_messages() as $message ) {
 121              echo "<p>$message</p>";
 122          }
 123          ?>
 124      </div>
 125  <?php } ?>
 126      <form action="<?php echo esc_url( network_admin_url( 'user-new.php?action=add-user' ) ); ?>" id="adduser" method="post" novalidate="novalidate">
 127      <table class="form-table" role="presentation">
 128          <tr class="form-field form-required">
 129              <th scope="row"><label for="username"><?php _e( 'Username' ); ?></label></th>
 130              <td><input type="text" class="regular-text" name="user[username]" id="username" autocapitalize="none" autocorrect="off" maxlength="60" /></td>
 131          </tr>
 132          <tr class="form-field form-required">
 133              <th scope="row"><label for="email"><?php _e( 'Email' ); ?></label></th>
 134              <td><input type="email" class="regular-text" name="user[email]" id="email" /></td>
 135          </tr>
 136          <tr class="form-field">
 137              <td colspan="2" class="td-full"><?php _e( 'A password reset link will be sent to the user via email.' ); ?></td>
 138          </tr>
 139      </table>
 140      <?php
 141      /**
 142       * Fires at the end of the new user form in network admin.
 143       *
 144       * @since 4.5.0
 145       */
 146      do_action( 'network_user_new_form' );
 147  
 148      wp_nonce_field( 'add-user', '_wpnonce_add-user' );
 149      submit_button( __( 'Add User' ), 'primary', 'add-user' );
 150      ?>
 151      </form>
 152  </div>
 153  <?php
 154  require_once ABSPATH . 'wp-admin/admin-footer.php';


Generated: Sat Apr 27 01:00:02 2024 Cross-referenced by PHPXref 0.7.1