web/wp-admin/user-edit.php
changeset 194 32102edaa81b
parent 136 bde1974c263b
child 204 09a1c134465b
equal deleted inserted replaced
193:2f6f6f7551ca 194:32102edaa81b
     5  * @package WordPress
     5  * @package WordPress
     6  * @subpackage Administration
     6  * @subpackage Administration
     7  */
     7  */
     8 
     8 
     9 /** WordPress Administration Bootstrap */
     9 /** WordPress Administration Bootstrap */
    10 require_once('admin.php');
    10 require_once('./admin.php');
    11 
    11 
    12 if ( !defined('IS_PROFILE_PAGE') )
    12 wp_reset_vars(array('action', 'redirect', 'profile', 'user_id', 'wp_http_referer'));
    13 	define('IS_PROFILE_PAGE', false);
    13 
       
    14 $user_id = (int) $user_id;
       
    15 $current_user = wp_get_current_user();
       
    16 if ( ! defined( 'IS_PROFILE_PAGE' ) )
       
    17 	define( 'IS_PROFILE_PAGE', ( $user_id == $current_user->ID ) );
       
    18 
       
    19 if ( ! $user_id && IS_PROFILE_PAGE )
       
    20 	$user_id = $current_user->ID;
       
    21 elseif ( ! $user_id && ! IS_PROFILE_PAGE )
       
    22 	wp_die(__( 'Invalid user ID.' ) );
       
    23 elseif ( ! get_userdata( $user_id ) )
       
    24 	wp_die( __('Invalid user ID.') );
    14 
    25 
    15 wp_enqueue_script('user-profile');
    26 wp_enqueue_script('user-profile');
    16 wp_enqueue_script('password-strength-meter');
       
    17 
    27 
    18 $title = IS_PROFILE_PAGE ? __('Profile') : __('Edit User');
    28 $title = IS_PROFILE_PAGE ? __('Profile') : __('Edit User');
    19 if ( current_user_can('edit_users') && !IS_PROFILE_PAGE )
    29 if ( current_user_can('edit_users') && !IS_PROFILE_PAGE )
    20 	$submenu_file = 'users.php';
    30 	$submenu_file = 'users.php';
    21 else
    31 else
    22 	$submenu_file = 'profile.php';
    32 	$submenu_file = 'profile.php';
    23 $parent_file = 'users.php';
    33 
    24 
    34 if ( current_user_can('edit_users') && !is_user_admin() )
    25 wp_reset_vars(array('action', 'redirect', 'profile', 'user_id', 'wp_http_referer'));
    35 	$parent_file = 'users.php';
       
    36 else
       
    37 	$parent_file = 'profile.php';
       
    38 
       
    39 $profile_help = '<p>' . __('Your profile contains information about you (your &#8220;account&#8221;) as well as some personal options related to using WordPress.') . '</p>' .
       
    40 	'<p>' . __('You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things. You can hide the Toolbar (formerly called the Admin Bar) from the front end of your site, however it cannot be disabled on the admin screens.') . '</p>' .
       
    41 	'<p>' . __('Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts.') . '</p>' .
       
    42 	'<p>' . __('Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so.') . '</p>' .
       
    43 	'<p>' . __('Remember to click the Update Profile button when you are finished.') . '</p>';
       
    44 
       
    45 get_current_screen()->add_help_tab( array(
       
    46 	'id'      => 'overview',
       
    47 	'title'   => __('Overview'),
       
    48 	'content' => $profile_help,
       
    49 ) );
       
    50 
       
    51 get_current_screen()->set_help_sidebar(
       
    52     '<p><strong>' . __('For more information:') . '</strong></p>' .
       
    53     '<p>' . __('<a href="http://codex.wordpress.org/Users_Your_Profile_Screen" target="_blank">Documentation on User Profiles</a>') . '</p>' .
       
    54     '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
       
    55 );
    26 
    56 
    27 $wp_http_referer = remove_query_arg(array('update', 'delete_count'), stripslashes($wp_http_referer));
    57 $wp_http_referer = remove_query_arg(array('update', 'delete_count'), stripslashes($wp_http_referer));
    28 
    58 
    29 $user_id = (int) $user_id;
    59 $user_can_edit = current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' );
    30 
       
    31 if ( !$user_id ) {
       
    32 	if ( IS_PROFILE_PAGE ) {
       
    33 		$current_user = wp_get_current_user();
       
    34 		$user_id = $current_user->ID;
       
    35 	} else {
       
    36 		wp_die(__('Invalid user ID.'));
       
    37 	}
       
    38 } elseif ( !get_userdata($user_id) ) {
       
    39 	wp_die( __('Invalid user ID.') );
       
    40 }
       
    41 
       
    42 $all_post_caps = array('posts', 'pages');
       
    43 $user_can_edit = false;
       
    44 foreach ( $all_post_caps as $post_cap )
       
    45 	$user_can_edit |= current_user_can("edit_$post_cap");
       
    46 
    60 
    47 /**
    61 /**
    48  * Optional SSL preference that can be turned on by hooking to the 'personal_options' action.
    62  * Optional SSL preference that can be turned on by hooking to the 'personal_options' action.
    49  *
    63  *
    50  * @since 2.7.0
    64  * @since 2.7.0
    58 		<td><label for="use_ssl"><input name="use_ssl" type="checkbox" id="use_ssl" value="1" <?php checked('1', $user->use_ssl); ?> /> <?php _e('Always use https when visiting the admin'); ?></label></td>
    72 		<td><label for="use_ssl"><input name="use_ssl" type="checkbox" id="use_ssl" value="1" <?php checked('1', $user->use_ssl); ?> /> <?php _e('Always use https when visiting the admin'); ?></label></td>
    59 	</tr>
    73 	</tr>
    60 <?php
    74 <?php
    61 }
    75 }
    62 
    76 
       
    77 // Only allow super admins on multisite to edit every user.
       
    78 if ( is_multisite() && ! current_user_can( 'manage_network_users' ) && $user_id != $current_user->ID && ! apply_filters( 'enable_edit_any_user_configuration', true ) )
       
    79 	wp_die( __( 'You do not have permission to edit this user.' ) );
       
    80 
       
    81 // Execute confirmed email change. See send_confirmation_on_profile_email().
       
    82 if ( is_multisite() && IS_PROFILE_PAGE && isset( $_GET[ 'newuseremail' ] ) && $current_user->ID ) {
       
    83 	$new_email = get_option( $current_user->ID . '_new_email' );
       
    84 	if ( $new_email[ 'hash' ] == $_GET[ 'newuseremail' ] ) {
       
    85 		$user->ID = $current_user->ID;
       
    86 		$user->user_email = esc_html( trim( $new_email[ 'newemail' ] ) );
       
    87 		if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_login FROM {$wpdb->signups} WHERE user_login = %s", $current_user->user_login ) ) )
       
    88 			$wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $user->user_email, $current_user->user_login ) );
       
    89 		wp_update_user( get_object_vars( $user ) );
       
    90 		delete_option( $current_user->ID . '_new_email' );
       
    91 		wp_redirect( add_query_arg( array('updated' => 'true'), self_admin_url( 'profile.php' ) ) );
       
    92 		die();
       
    93 	}
       
    94 } elseif ( is_multisite() && IS_PROFILE_PAGE && !empty( $_GET['dismiss'] ) && $current_user->ID . '_new_email' == $_GET['dismiss'] ) {
       
    95 	delete_option( $current_user->ID . '_new_email' );
       
    96 	wp_redirect( add_query_arg( array('updated' => 'true'), self_admin_url( 'profile.php' ) ) );
       
    97 	die();
       
    98 }
       
    99 
    63 switch ($action) {
   100 switch ($action) {
    64 case 'switchposts':
       
    65 
       
    66 check_admin_referer();
       
    67 
       
    68 /* TODO: Switch all posts from one user to another user */
       
    69 
       
    70 break;
       
    71 
       
    72 case 'update':
   101 case 'update':
    73 
   102 
    74 check_admin_referer('update-user_' . $user_id);
   103 check_admin_referer('update-user_' . $user_id);
    75 
   104 
    76 if ( !current_user_can('edit_user', $user_id) )
   105 if ( !current_user_can('edit_user', $user_id) )
    79 if ( IS_PROFILE_PAGE )
   108 if ( IS_PROFILE_PAGE )
    80 	do_action('personal_options_update', $user_id);
   109 	do_action('personal_options_update', $user_id);
    81 else
   110 else
    82 	do_action('edit_user_profile_update', $user_id);
   111 	do_action('edit_user_profile_update', $user_id);
    83 
   112 
    84 $errors = edit_user($user_id);
   113 if ( !is_multisite() ) {
       
   114 	$errors = edit_user($user_id);
       
   115 } else {
       
   116 	$user = get_userdata( $user_id );
       
   117 
       
   118 	// Update the email address in signups, if present.
       
   119 	if ( $user->user_login && isset( $_POST[ 'email' ] ) && is_email( $_POST[ 'email' ] ) && $wpdb->get_var( $wpdb->prepare( "SELECT user_login FROM {$wpdb->signups} WHERE user_login = %s", $user->user_login ) ) )
       
   120 		$wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $_POST[ 'email' ], $user_login ) );
       
   121 
       
   122 	// WPMU must delete the user from the current blog if WP added him after editing.
       
   123 	$delete_role = false;
       
   124 	$blog_prefix = $wpdb->get_blog_prefix();
       
   125 	if ( $user_id != $current_user->ID ) {
       
   126 		$cap = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->usermeta} WHERE user_id = '{$user_id}' AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'" );
       
   127 		if ( !is_network_admin() && null == $cap && $_POST[ 'role' ] == '' ) {
       
   128 			$_POST[ 'role' ] = 'contributor';
       
   129 			$delete_role = true;
       
   130 		}
       
   131 	}
       
   132 	if ( !isset( $errors ) || ( isset( $errors ) && is_object( $errors ) && false == $errors->get_error_codes() ) )
       
   133 		$errors = edit_user($user_id);
       
   134 	if ( $delete_role ) // stops users being added to current blog when they are edited
       
   135 		delete_user_meta( $user_id, $blog_prefix . 'capabilities' );
       
   136 
       
   137 	if ( is_multisite() && is_network_admin() && !IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) && empty( $_POST['super_admin'] ) == is_super_admin( $user_id ) )
       
   138 		empty( $_POST['super_admin'] ) ? revoke_super_admin( $user_id ) : grant_super_admin( $user_id );
       
   139 }
    85 
   140 
    86 if ( !is_wp_error( $errors ) ) {
   141 if ( !is_wp_error( $errors ) ) {
    87 	$redirect = (IS_PROFILE_PAGE ? "profile.php?" : "user-edit.php?user_id=$user_id&"). "updated=true";
   142 	$redirect = (IS_PROFILE_PAGE ? "profile.php?" : "user-edit.php?user_id=$user_id&"). "updated=true";
    88 	$redirect = add_query_arg('wp_http_referer', urlencode($wp_http_referer), $redirect);
   143 	if ( $wp_http_referer )
       
   144 		$redirect = add_query_arg('wp_http_referer', urlencode($wp_http_referer), $redirect);
    89 	wp_redirect($redirect);
   145 	wp_redirect($redirect);
    90 	exit;
   146 	exit;
    91 }
   147 }
    92 
   148 
    93 default:
   149 default:
    94 $profileuser = get_user_to_edit($user_id);
   150 $profileuser = get_user_to_edit($user_id);
    95 
   151 
    96 if ( !current_user_can('edit_user', $user_id) )
   152 if ( !current_user_can('edit_user', $user_id) )
    97 	wp_die(__('You do not have permission to edit this user.'));
   153 	wp_die(__('You do not have permission to edit this user.'));
    98 
   154 
    99 include ('admin-header.php');
   155 include (ABSPATH . 'wp-admin/admin-header.php');
   100 ?>
   156 ?>
   101 
   157 
       
   158 <?php if ( !IS_PROFILE_PAGE && is_super_admin( $profileuser->ID ) && current_user_can( 'manage_network_options' ) ) { ?>
       
   159 	<div class="updated"><p><strong><?php _e('Important:'); ?></strong> <?php _e('This user has super admin privileges.'); ?></p></div>
       
   160 <?php } ?>
   102 <?php if ( isset($_GET['updated']) ) : ?>
   161 <?php if ( isset($_GET['updated']) ) : ?>
   103 <div id="message" class="updated fade">
   162 <div id="message" class="updated">
       
   163 	<?php if ( IS_PROFILE_PAGE ) : ?>
       
   164 	<p><strong><?php _e('Profile updated.') ?></strong></p>
       
   165 	<?php else: ?>
   104 	<p><strong><?php _e('User updated.') ?></strong></p>
   166 	<p><strong><?php _e('User updated.') ?></strong></p>
       
   167 	<?php endif; ?>
   105 	<?php if ( $wp_http_referer && !IS_PROFILE_PAGE ) : ?>
   168 	<?php if ( $wp_http_referer && !IS_PROFILE_PAGE ) : ?>
   106 	<p><a href="users.php"><?php _e('&larr; Back to Authors and Users'); ?></a></p>
   169 	<p><a href="<?php echo esc_url( $wp_http_referer ); ?>"><?php _e('&larr; Back to Users'); ?></a></p>
   107 	<?php endif; ?>
   170 	<?php endif; ?>
   108 </div>
   171 </div>
   109 <?php endif; ?>
   172 <?php endif; ?>
   110 <?php if ( isset( $errors ) && is_wp_error( $errors ) ) : ?>
   173 <?php if ( isset( $errors ) && is_wp_error( $errors ) ) : ?>
   111 <div class="error">
   174 <div class="error"><p><?php echo implode( "</p>\n<p>", $errors->get_error_messages() ); ?></p></div>
   112 	<ul>
       
   113 	<?php
       
   114 	foreach( $errors->get_error_messages() as $message )
       
   115 		echo "<li>$message</li>";
       
   116 	?>
       
   117 	</ul>
       
   118 </div>
       
   119 <?php endif; ?>
   175 <?php endif; ?>
   120 
   176 
   121 <div class="wrap" id="profile-page">
   177 <div class="wrap" id="profile-page">
   122 <?php screen_icon(); ?>
   178 <?php screen_icon(); ?>
   123 <h2><?php echo esc_html( $title ); ?></h2>
   179 <h2>
   124 
   180 <?php
   125 <form id="your-profile" action="<?php if ( IS_PROFILE_PAGE ) { echo admin_url('profile.php'); } else { echo admin_url('user-edit.php'); } ?>" method="post">
   181 echo esc_html( $title );
       
   182 if ( ! IS_PROFILE_PAGE ) {
       
   183 	if ( current_user_can( 'create_users' ) ) { ?>
       
   184 		<a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'user' ); ?></a>
       
   185 	<?php } elseif ( is_multisite() && current_user_can( 'promote_users' ) ) { ?>
       
   186 		<a href="user-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add Existing', 'user' ); ?></a>
       
   187 	<?php }
       
   188 } ?>
       
   189 </h2>
       
   190 
       
   191 <form id="your-profile" action="<?php echo esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post"<?php do_action('user_edit_form_tag'); ?>>
   126 <?php wp_nonce_field('update-user_' . $user_id) ?>
   192 <?php wp_nonce_field('update-user_' . $user_id) ?>
   127 <?php if ( $wp_http_referer ) : ?>
   193 <?php if ( $wp_http_referer ) : ?>
   128 	<input type="hidden" name="wp_http_referer" value="<?php echo esc_url($wp_http_referer); ?>" />
   194 	<input type="hidden" name="wp_http_referer" value="<?php echo esc_url($wp_http_referer); ?>" />
   129 <?php endif; ?>
   195 <?php endif; ?>
   130 <p>
   196 <p>
   139 	<tr>
   205 	<tr>
   140 		<th scope="row"><?php _e('Visual Editor')?></th>
   206 		<th scope="row"><?php _e('Visual Editor')?></th>
   141 		<td><label for="rich_editing"><input name="rich_editing" type="checkbox" id="rich_editing" value="false" <?php checked('false', $profileuser->rich_editing); ?> /> <?php _e('Disable the visual editor when writing'); ?></label></td>
   207 		<td><label for="rich_editing"><input name="rich_editing" type="checkbox" id="rich_editing" value="false" <?php checked('false', $profileuser->rich_editing); ?> /> <?php _e('Disable the visual editor when writing'); ?></label></td>
   142 	</tr>
   208 	</tr>
   143 <?php endif; ?>
   209 <?php endif; ?>
   144 <?php if (count($_wp_admin_css_colors) > 1 ) : ?>
   210 <?php if ( count($_wp_admin_css_colors) > 1 && has_action('admin_color_scheme_picker') ) : ?>
   145 <tr>
   211 <tr>
   146 <th scope="row"><?php _e('Admin Color Scheme')?></th>
   212 <th scope="row"><?php _e('Admin Color Scheme')?></th>
   147 <td><fieldset><legend class="screen-reader-text"><span><?php _e('Admin Color Scheme')?></span></legend>
   213 <td><?php do_action( 'admin_color_scheme_picker' ); ?></td>
   148 <?php
   214 </tr>
   149 $current_color = get_user_option('admin_color', $user_id);
   215 <?php
   150 if ( empty($current_color) )
   216 endif; // $_wp_admin_css_colors
   151 	$current_color = 'fresh';
   217 if ( !( IS_PROFILE_PAGE && !$user_can_edit ) ) : ?>
   152 foreach ( $_wp_admin_css_colors as $color => $color_info ): ?>
       
   153 <div class="color-option"><input name="admin_color" id="admin_color_<?php echo $color; ?>" type="radio" value="<?php echo esc_attr($color) ?>" class="tog" <?php checked($color, $current_color); ?> />
       
   154 	<table class="color-palette">
       
   155 	<tr>
       
   156 	<?php foreach ( $color_info->colors as $html_color ): ?>
       
   157 	<td style="background-color: <?php echo $html_color ?>" title="<?php echo $color ?>">&nbsp;</td>
       
   158 	<?php endforeach; ?>
       
   159 	</tr>
       
   160 	</table>
       
   161 
       
   162 	<label for="admin_color_<?php echo $color; ?>"><?php echo $color_info->name ?></label>
       
   163 </div>
       
   164 	<?php endforeach; ?>
       
   165 </fieldset></td>
       
   166 </tr>
       
   167 <?php if ( !( IS_PROFILE_PAGE && !$user_can_edit ) ) : ?>
       
   168 <tr>
   218 <tr>
   169 <th scope="row"><?php _e( 'Keyboard Shortcuts' ); ?></th>
   219 <th scope="row"><?php _e( 'Keyboard Shortcuts' ); ?></th>
   170 <td><label for="comment_shortcuts"><input type="checkbox" name="comment_shortcuts" id="comment_shortcuts" value="true" <?php if ( !empty($profileuser->comment_shortcuts) ) checked('true', $profileuser->comment_shortcuts); ?> /> <?php _e('Enable keyboard shortcuts for comment moderation.'); ?></label> <?php _e('<a href="http://codex.wordpress.org/Keyboard_Shortcuts">More information</a>'); ?></td>
   220 <td><label for="comment_shortcuts"><input type="checkbox" name="comment_shortcuts" id="comment_shortcuts" value="true" <?php if ( !empty($profileuser->comment_shortcuts) ) checked('true', $profileuser->comment_shortcuts); ?> /> <?php _e('Enable keyboard shortcuts for comment moderation.'); ?></label> <?php _e('<a href="http://codex.wordpress.org/Keyboard_Shortcuts" target="_blank">More information</a>'); ?></td>
   171 </tr>
   221 </tr>
   172 <?php
   222 <?php endif; ?>
   173 endif;
   223 <tr class="show-admin-bar">
   174 endif;
   224 <th scope="row"><?php _e('Toolbar')?></th>
   175 do_action('personal_options', $profileuser);
   225 <td><fieldset><legend class="screen-reader-text"><span><?php _e('Toolbar') ?></span></legend>
   176 ?>
   226 <label for="admin_bar_front">
       
   227 <input name="admin_bar_front" type="checkbox" id="admin_bar_front" value="1"<?php checked( _get_admin_bar_pref( 'front', $profileuser->ID ) ); ?> />
       
   228 <?php _e( 'Show Toolbar when viewing site' ); ?></label><br />
       
   229 </fieldset>
       
   230 </td>
       
   231 </tr>
       
   232 <?php do_action('personal_options', $profileuser); ?>
   177 </table>
   233 </table>
   178 <?php
   234 <?php
   179 	if ( IS_PROFILE_PAGE )
   235 	if ( IS_PROFILE_PAGE )
   180 		do_action('profile_personal_options', $profileuser);
   236 		do_action('profile_personal_options', $profileuser);
   181 ?>
   237 ?>
   183 <h3><?php _e('Name') ?></h3>
   239 <h3><?php _e('Name') ?></h3>
   184 
   240 
   185 <table class="form-table">
   241 <table class="form-table">
   186 	<tr>
   242 	<tr>
   187 		<th><label for="user_login"><?php _e('Username'); ?></label></th>
   243 		<th><label for="user_login"><?php _e('Username'); ?></label></th>
   188 		<td><input type="text" name="user_login" id="user_login" value="<?php echo esc_attr($profileuser->user_login); ?>" disabled="disabled" class="regular-text" /> <span class="description"><?php _e('Your username cannot be changed.'); ?></span></td>
   244 		<td><input type="text" name="user_login" id="user_login" value="<?php echo esc_attr($profileuser->user_login); ?>" disabled="disabled" class="regular-text" /> <span class="description"><?php _e('Usernames cannot be changed.'); ?></span></td>
   189 	</tr>
   245 	</tr>
   190 
   246 
   191 <?php if ( !IS_PROFILE_PAGE ): ?>
   247 <?php if ( !IS_PROFILE_PAGE && !is_network_admin() ) : ?>
   192 <tr><th><label for="role"><?php _e('Role:') ?></label></th>
   248 <tr><th><label for="role"><?php _e('Role:') ?></label></th>
   193 <td><select name="role" id="role">
   249 <td><select name="role" id="role">
   194 <?php
   250 <?php
   195 // Get the highest/primary role for this user
   251 // Get the highest/primary role for this user
   196 // TODO: create a function that does this: wp_get_user_role()
   252 // TODO: create a function that does this: wp_get_user_role()
   200 // print the full list of roles with the primary one selected.
   256 // print the full list of roles with the primary one selected.
   201 wp_dropdown_roles($user_role);
   257 wp_dropdown_roles($user_role);
   202 
   258 
   203 // print the 'no role' option. Make it selected if the user has no role yet.
   259 // print the 'no role' option. Make it selected if the user has no role yet.
   204 if ( $user_role )
   260 if ( $user_role )
   205 	echo '<option value="">' . __('&mdash; No role for this blog &mdash;') . '</option>';
   261 	echo '<option value="">' . __('&mdash; No role for this site &mdash;') . '</option>';
   206 else
   262 else
   207 	echo '<option value="" selected="selected">' . __('&mdash; No role for this blog &mdash;') . '</option>';
   263 	echo '<option value="" selected="selected">' . __('&mdash; No role for this site &mdash;') . '</option>';
   208 ?>
   264 ?>
   209 </select></td></tr>
   265 </select></td></tr>
   210 <?php endif; //!IS_PROFILE_PAGE ?>
   266 <?php endif; //!IS_PROFILE_PAGE
   211 
   267 
   212 <tr>
   268 if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) ) { ?>
   213 	<th><label for="first_name"><?php _e('First name') ?></label></th>
   269 <tr><th><label for="role"><?php _e('Super Admin'); ?></label></th>
       
   270 <td>
       
   271 <?php if ( $profileuser->user_email != get_site_option( 'admin_email' ) ) : ?>
       
   272 <p><label><input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( $profileuser->ID ) ); ?> /> <?php _e( 'Grant this user super admin privileges for the Network.' ); ?></label></p>
       
   273 <?php else : ?>
       
   274 <p><?php _e( 'Super admin privileges cannot be removed because this user has the network admin email.' ); ?></p>
       
   275 <?php endif; ?>
       
   276 </td></tr>
       
   277 <?php } ?>
       
   278 
       
   279 <tr>
       
   280 	<th><label for="first_name"><?php _e('First Name') ?></label></th>
   214 	<td><input type="text" name="first_name" id="first_name" value="<?php echo esc_attr($profileuser->first_name) ?>" class="regular-text" /></td>
   281 	<td><input type="text" name="first_name" id="first_name" value="<?php echo esc_attr($profileuser->first_name) ?>" class="regular-text" /></td>
   215 </tr>
   282 </tr>
   216 
   283 
   217 <tr>
   284 <tr>
   218 	<th><label for="last_name"><?php _e('Last name') ?></label></th>
   285 	<th><label for="last_name"><?php _e('Last Name') ?></label></th>
   219 	<td><input type="text" name="last_name" id="last_name" value="<?php echo esc_attr($profileuser->last_name) ?>" class="regular-text" /></td>
   286 	<td><input type="text" name="last_name" id="last_name" value="<?php echo esc_attr($profileuser->last_name) ?>" class="regular-text" /></td>
   220 </tr>
   287 </tr>
   221 
   288 
   222 <tr>
   289 <tr>
   223 	<th><label for="nickname"><?php _e('Nickname'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
   290 	<th><label for="nickname"><?php _e('Nickname'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
   230 		<select name="display_name" id="display_name">
   297 		<select name="display_name" id="display_name">
   231 		<?php
   298 		<?php
   232 			$public_display = array();
   299 			$public_display = array();
   233 			$public_display['display_nickname']  = $profileuser->nickname;
   300 			$public_display['display_nickname']  = $profileuser->nickname;
   234 			$public_display['display_username']  = $profileuser->user_login;
   301 			$public_display['display_username']  = $profileuser->user_login;
       
   302 
   235 			if ( !empty($profileuser->first_name) )
   303 			if ( !empty($profileuser->first_name) )
   236 				$public_display['display_firstname'] = $profileuser->first_name;
   304 				$public_display['display_firstname'] = $profileuser->first_name;
       
   305 
   237 			if ( !empty($profileuser->last_name) )
   306 			if ( !empty($profileuser->last_name) )
   238 				$public_display['display_lastname'] = $profileuser->last_name;
   307 				$public_display['display_lastname'] = $profileuser->last_name;
       
   308 
   239 			if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
   309 			if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) {
   240 				$public_display['display_firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
   310 				$public_display['display_firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name;
   241 				$public_display['display_lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
   311 				$public_display['display_lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name;
   242 			}
   312 			}
   243 			if ( !in_array( $profileuser->display_name, $public_display ) )// Only add this if it isn't duplicated elsewhere
   313 
       
   314 			if ( !in_array( $profileuser->display_name, $public_display ) ) // Only add this if it isn't duplicated elsewhere
   244 				$public_display = array( 'display_displayname' => $profileuser->display_name ) + $public_display;
   315 				$public_display = array( 'display_displayname' => $profileuser->display_name ) + $public_display;
       
   316 
   245 			$public_display = array_map( 'trim', $public_display );
   317 			$public_display = array_map( 'trim', $public_display );
       
   318 			$public_display = array_unique( $public_display );
       
   319 
   246 			foreach ( $public_display as $id => $item ) {
   320 			foreach ( $public_display as $id => $item ) {
   247 		?>
   321 		?>
   248 			<option id="<?php echo $id; ?>" value="<?php echo esc_attr($item); ?>"<?php selected( $profileuser->display_name, $item ); ?>><?php echo $item; ?></option>
   322 			<option <?php selected( $profileuser->display_name, $item ); ?>><?php echo $item; ?></option>
   249 		<?php
   323 		<?php
   250 			}
   324 			}
   251 		?>
   325 		?>
   252 		</select>
   326 		</select>
   253 	</td>
   327 	</td>
   257 <h3><?php _e('Contact Info') ?></h3>
   331 <h3><?php _e('Contact Info') ?></h3>
   258 
   332 
   259 <table class="form-table">
   333 <table class="form-table">
   260 <tr>
   334 <tr>
   261 	<th><label for="email"><?php _e('E-mail'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
   335 	<th><label for="email"><?php _e('E-mail'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
   262 	<td><input type="text" name="email" id="email" value="<?php echo esc_attr($profileuser->user_email) ?>" class="regular-text" /></td>
   336 	<td><input type="text" name="email" id="email" value="<?php echo esc_attr($profileuser->user_email) ?>" class="regular-text" />
       
   337 	<?php
       
   338 	$new_email = get_option( $current_user->ID . '_new_email' );
       
   339 	if ( $new_email && $new_email != $current_user->user_email ) : ?>
       
   340 	<div class="updated inline">
       
   341 	<p><?php printf( __('There is a pending change of your e-mail to <code>%1$s</code>. <a href="%2$s">Cancel</a>'), $new_email['newemail'], esc_url( self_admin_url( 'profile.php?dismiss=' . $current_user->ID . '_new_email' ) ) ); ?></p>
       
   342 	</div>
       
   343 	<?php endif; ?>
       
   344 	</td>
   263 </tr>
   345 </tr>
   264 
   346 
   265 <tr>
   347 <tr>
   266 	<th><label for="url"><?php _e('Website') ?></label></th>
   348 	<th><label for="url"><?php _e('Website') ?></label></th>
   267 	<td><input type="text" name="url" id="url" value="<?php echo esc_attr($profileuser->user_url) ?>" class="regular-text code" /></td>
   349 	<td><input type="text" name="url" id="url" value="<?php echo esc_attr($profileuser->user_url) ?>" class="regular-text code" /></td>
   268 </tr>
   350 </tr>
   269 
   351 
   270 <?php
   352 <?php
   271 	foreach (_wp_get_user_contactmethods() as $name => $desc) {
   353 	foreach (_wp_get_user_contactmethods( $profileuser ) as $name => $desc) {
   272 ?>
   354 ?>
   273 <tr>
   355 <tr>
   274 	<th><label for="<?php echo $name; ?>"><?php echo apply_filters('user_'.$name.'_label', $desc); ?></label></th>
   356 	<th><label for="<?php echo $name; ?>"><?php echo apply_filters('user_'.$name.'_label', $desc); ?></label></th>
   275 	<td><input type="text" name="<?php echo $name; ?>" id="<?php echo $name; ?>" value="<?php echo esc_attr($profileuser->$name) ?>" class="regular-text" /></td>
   357 	<td><input type="text" name="<?php echo $name; ?>" id="<?php echo $name; ?>" value="<?php echo esc_attr($profileuser->$name) ?>" class="regular-text" /></td>
   276 </tr>
   358 </tr>
   282 <h3><?php IS_PROFILE_PAGE ? _e('About Yourself') : _e('About the user'); ?></h3>
   364 <h3><?php IS_PROFILE_PAGE ? _e('About Yourself') : _e('About the user'); ?></h3>
   283 
   365 
   284 <table class="form-table">
   366 <table class="form-table">
   285 <tr>
   367 <tr>
   286 	<th><label for="description"><?php _e('Biographical Info'); ?></label></th>
   368 	<th><label for="description"><?php _e('Biographical Info'); ?></label></th>
   287 	<td><textarea name="description" id="description" rows="5" cols="30"><?php echo esc_html($profileuser->description); ?></textarea><br />
   369 	<td><textarea name="description" id="description" rows="5" cols="30"><?php echo $profileuser->description; // textarea_escaped ?></textarea><br />
   288 	<span class="description"><?php _e('Share a little biographical information to fill out your profile. This may be shown publicly.'); ?></span></td>
   370 	<span class="description"><?php _e('Share a little biographical information to fill out your profile. This may be shown publicly.'); ?></span></td>
   289 </tr>
   371 </tr>
   290 
   372 
   291 <?php
   373 <?php
   292 $show_password_fields = apply_filters('show_password_fields', true, $profileuser);
   374 $show_password_fields = apply_filters('show_password_fields', true, $profileuser);
   302 </tr>
   384 </tr>
   303 <?php endif; ?>
   385 <?php endif; ?>
   304 </table>
   386 </table>
   305 
   387 
   306 <?php
   388 <?php
   307 	if ( IS_PROFILE_PAGE ) {
   389 	if ( IS_PROFILE_PAGE )
   308 		do_action('show_user_profile', $profileuser);
   390 		do_action( 'show_user_profile', $profileuser );
   309 	} else {
   391 	else
   310 		do_action('edit_user_profile', $profileuser);
   392 		do_action( 'edit_user_profile', $profileuser );
   311 	}
       
   312 ?>
   393 ?>
   313 
   394 
   314 <?php if ( count($profileuser->caps) > count($profileuser->roles) && apply_filters('additional_capabilities_display', true, $profileuser) ) { ?>
   395 <?php if ( count($profileuser->caps) > count($profileuser->roles) && apply_filters('additional_capabilities_display', true, $profileuser) ) { ?>
   315 <br class="clear" />
   396 <br class="clear" />
   316 	<table width="99%" style="border: none;" cellspacing="2" cellpadding="3" class="editform">
   397 	<table width="99%" style="border: none;" cellspacing="2" cellpadding="3" class="editform">
   329 			?></td>
   410 			?></td>
   330 		</tr>
   411 		</tr>
   331 	</table>
   412 	</table>
   332 <?php } ?>
   413 <?php } ?>
   333 
   414 
   334 <p class="submit">
   415 <input type="hidden" name="action" value="update" />
   335 	<input type="hidden" name="action" value="update" />
   416 <input type="hidden" name="user_id" id="user_id" value="<?php echo esc_attr($user_id); ?>" />
   336 	<input type="hidden" name="user_id" id="user_id" value="<?php echo esc_attr($user_id); ?>" />
   417 
   337 	<input type="submit" class="button-primary" value="<?php IS_PROFILE_PAGE ? esc_attr_e('Update Profile') : esc_attr_e('Update User') ?>" name="submit" />
   418 <?php submit_button( IS_PROFILE_PAGE ? __('Update Profile') : __('Update User') ); ?>
   338 </p>
   419 
   339 </form>
   420 </form>
   340 </div>
   421 </div>
   341 <?php
   422 <?php
   342 break;
   423 break;
   343 }
   424 }
   344 
   425 ?>
   345 include('admin-footer.php');
   426 <script type="text/javascript" charset="utf-8">
   346 ?>
   427 	if (window.location.hash == '#password') {
       
   428 		document.getElementById('pass1').focus();
       
   429 	}
       
   430 </script>
       
   431 <?php
       
   432 include( ABSPATH . 'wp-admin/admin-footer.php');