2004-08-01 11:13:50 +02:00
< ? php
2008-08-16 09:27:34 +02:00
/**
* Edit user administration panel .
*
* @ package WordPress
* @ subpackage Administration
*/
2008-01-31 22:44:17 +01:00
2008-08-16 09:27:34 +02:00
/** WordPress Administration Bootstrap */
2010-04-18 08:14:45 +02:00
require_once ( './admin.php' );
2004-08-01 11:13:50 +02:00
2010-04-02 08:46:07 +02:00
wp_reset_vars ( array ( 'action' , 'redirect' , 'profile' , 'user_id' , 'wp_http_referer' ));
$user_id = ( int ) $user_id ;
$current_user = wp_get_current_user ();
if ( ! defined ( 'IS_PROFILE_PAGE' ) )
define ( 'IS_PROFILE_PAGE' , ( $user_id == $current_user -> ID ) );
if ( ! $user_id && IS_PROFILE_PAGE )
$user_id = $current_user -> ID ;
elseif ( ! $user_id && ! IS_PROFILE_PAGE )
wp_die ( __ ( 'Invalid user ID.' ) );
elseif ( ! get_userdata ( $user_id ) )
wp_die ( __ ( 'Invalid user ID.' ) );
2008-01-31 23:03:48 +01:00
2009-05-16 08:29:10 +02:00
wp_enqueue_script ( 'user-profile' );
2008-01-31 22:44:17 +01:00
2009-05-16 08:29:10 +02:00
$title = IS_PROFILE_PAGE ? __ ( 'Profile' ) : __ ( 'Edit User' );
if ( current_user_can ( 'edit_users' ) && ! IS_PROFILE_PAGE )
2008-01-31 23:03:48 +01:00
$submenu_file = 'users.php' ;
2006-11-18 08:31:29 +01:00
else
2008-01-31 23:03:48 +01:00
$submenu_file = 'profile.php' ;
2010-10-07 21:34:18 +02:00
if ( current_user_can ( 'edit_users' ) && ! is_user_admin () )
$parent_file = 'users.php' ;
else
$parent_file = 'profile.php' ;
2004-08-01 11:13:50 +02:00
2010-05-28 01:10:26 +02:00
// contextual help - choose Help on the top right of admin panel to preview this.
add_contextual_help ( $current_screen ,
2010-06-01 19:44:38 +02:00
'<p>' . __ ( 'Your profile contains information about you (your “account”) as well as some personal options related to using WordPress.' ) . '</p>' .
2010-06-02 22:04:07 +02:00
'<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.' ) . '</p>' .
2010-05-28 01:10:26 +02:00
'<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>' .
'<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>' .
2010-06-02 22:04:07 +02:00
'<p>' . __ ( 'Remember to click the Update Profile button when you are finished.' ) . '</p>' .
'<p><strong>' . __ ( 'For more information:' ) . '</strong></p>' .
2010-06-04 05:42:43 +02:00
'<p>' . __ ( '<a href="http://codex.wordpress.org/Users_Your_Profile_SubPanel" target="_blank">Documentation on User Profiles</a>' ) . '</p>' .
'<p>' . __ ( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
2010-05-28 01:10:26 +02:00
);
2006-06-08 20:36:05 +02:00
$wp_http_referer = remove_query_arg ( array ( 'update' , 'delete_count' ), stripslashes ( $wp_http_referer ));
2009-05-28 22:35:09 +02:00
$all_post_caps = array ( 'posts' , 'pages' );
2009-05-24 20:46:01 +02:00
$user_can_edit = false ;
2009-05-28 22:35:09 +02:00
foreach ( $all_post_caps as $post_cap )
$user_can_edit |= current_user_can ( " edit_ $post_cap " );
2009-05-24 20:46:01 +02:00
2008-10-10 20:21:16 +02:00
/**
* Optional SSL preference that can be turned on by hooking to the 'personal_options' action .
*
* @ since 2.7 . 0
*
* @ param object $user User data object
*/
2008-08-21 19:40:38 +02:00
function use_ssl_preference ( $user ) {
?>
< tr >
< th scope = " row " >< ? php _e ( 'Use https' ) ?> </th>
< 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>
</ tr >
< ? php
}
2006-09-24 12:08:58 +02:00
2010-01-14 03:02:19 +01:00
2010-03-03 08:04:25 +01:00
// Only allow super admins on multisite to edit every user.
2010-04-05 04:59:10 +02:00
if ( is_multisite () && ! current_user_can ( 'manage_network_users' ) && $user_id != $current_user -> ID && ! apply_filters ( 'enable_edit_any_user_configuration' , true ) )
2010-01-15 23:11:12 +01:00
wp_die ( __ ( 'You do not have permission to edit this user.' ) );
2010-02-02 19:00:45 +01:00
// Execute confirmed email change. See send_confirmation_on_profile_email().
if ( is_multisite () && IS_PROFILE_PAGE && isset ( $_GET [ 'newuseremail' ] ) && $current_user -> ID ) {
$new_email = get_option ( $current_user -> ID . '_new_email' );
if ( $new_email [ 'hash' ] == $_GET [ 'newuseremail' ] ) {
$user -> ID = $current_user -> ID ;
2010-02-13 11:35:10 +01:00
$user -> user_email = esc_html ( trim ( $new_email [ 'newemail' ] ) );
2010-02-02 19:00:45 +01:00
if ( $wpdb -> get_var ( $wpdb -> prepare ( " SELECT user_login FROM { $wpdb -> signups } WHERE user_login = %s " , $current_user -> user_login ) ) )
$wpdb -> query ( $wpdb -> prepare ( " UPDATE { $wpdb -> signups } SET user_email = %s WHERE user_login = %s " , $user -> user_email , $current_user -> user_login ) );
wp_update_user ( get_object_vars ( $user ) );
delete_option ( $current_user -> ID . '_new_email' );
2010-07-30 22:34:54 +02:00
wp_redirect ( add_query_arg ( array ( 'updated' => 'true' ), self_admin_url ( 'profile.php' ) ) );
2010-02-02 19:00:45 +01:00
die ();
}
2010-05-22 09:53:59 +02:00
} elseif ( is_multisite () && IS_PROFILE_PAGE && ! empty ( $_GET [ 'dismiss' ] ) && $current_user -> ID . '_new_email' == $_GET [ 'dismiss' ] ) {
delete_option ( $current_user -> ID . '_new_email' );
2010-07-30 22:34:54 +02:00
wp_redirect ( add_query_arg ( array ( 'updated' => 'true' ), self_admin_url ( 'profile.php' ) ) );
2010-05-22 09:53:59 +02:00
die ();
2010-02-02 19:00:45 +01:00
}
2004-08-01 11:13:50 +02:00
switch ( $action ) {
case 'update' :
2006-05-27 01:08:05 +02:00
check_admin_referer ( 'update-user_' . $user_id );
2006-03-05 23:45:44 +01:00
2006-06-05 18:52:21 +02:00
if ( ! current_user_can ( 'edit_user' , $user_id ) )
2006-09-24 12:08:58 +02:00
wp_die ( __ ( 'You do not have permission to edit this user.' ));
2009-05-16 08:29:10 +02:00
if ( IS_PROFILE_PAGE )
2009-05-12 18:54:18 +02:00
do_action ( 'personal_options_update' , $user_id );
2008-10-15 23:10:55 +02:00
else
2009-05-12 18:54:18 +02:00
do_action ( 'edit_user_profile_update' , $user_id );
2008-01-31 22:44:17 +01:00
2010-01-14 03:02:19 +01:00
if ( ! is_multisite () ) {
$errors = edit_user ( $user_id );
} else {
2010-01-26 18:51:50 +01:00
$user = get_userdata ( $user_id );
// Update the email address in signups, if present.
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 ) ) )
$wpdb -> query ( $wpdb -> prepare ( " UPDATE { $wpdb -> signups } SET user_email = %s WHERE user_login = %s " , $_POST [ 'email' ], $user_login ) );
2010-01-14 03:02:19 +01:00
// WPMU must delete the user from the current blog if WP added him after editing.
$delete_role = false ;
$blog_prefix = $wpdb -> get_blog_prefix ();
2010-01-18 21:34:48 +01:00
if ( $user_id != $current_user -> ID ) {
2010-01-14 03:02:19 +01:00
$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: { }' " );
2010-11-24 09:06:38 +01:00
if ( ! is_network_admin () && null == $cap && $_POST [ 'role' ] == '' ) {
2010-01-14 03:02:19 +01:00
$_POST [ 'role' ] = 'contributor' ;
$delete_role = true ;
}
}
if ( ! isset ( $errors ) || ( isset ( $errors ) && is_object ( $errors ) && false == $errors -> get_error_codes () ) )
$errors = edit_user ( $user_id );
2010-01-18 21:34:48 +01:00
if ( $delete_role ) // stops users being added to current blog when they are edited
2010-04-02 08:46:07 +02:00
delete_user_meta ( $user_id , $blog_prefix . 'capabilities' );
2010-12-07 19:10:16 +01:00
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 ) )
2010-04-02 08:46:07 +02:00
empty ( $_POST [ 'super_admin' ] ) ? revoke_super_admin ( $user_id ) : grant_super_admin ( $user_id );
2010-01-14 03:02:19 +01:00
}
2005-07-12 17:53:13 +02:00
2008-08-21 19:40:38 +02:00
if ( ! is_wp_error ( $errors ) ) {
2009-05-16 08:29:10 +02:00
$redirect = ( IS_PROFILE_PAGE ? " profile.php? " : " user-edit.php?user_id= $user_id & " ) . " updated=true " ;
2011-01-01 23:30:46 +01:00
if ( $wp_http_referer )
$redirect = add_query_arg ( 'wp_http_referer' , urlencode ( $wp_http_referer ), $redirect );
2006-06-27 07:38:56 +02:00
wp_redirect ( $redirect );
2005-09-14 02:03:02 +02:00
exit ;
2005-07-12 17:53:13 +02:00
}
2004-08-01 11:13:50 +02:00
default :
2006-08-25 00:33:16 +02:00
$profileuser = get_user_to_edit ( $user_id );
2004-08-01 11:13:50 +02:00
2006-06-05 18:52:21 +02:00
if ( ! current_user_can ( 'edit_user' , $user_id ) )
2008-08-21 19:40:38 +02:00
wp_die ( __ ( 'You do not have permission to edit this user.' ));
2006-09-24 12:08:58 +02:00
2010-07-30 22:34:54 +02:00
include ( ABSPATH . 'wp-admin/admin-header.php' );
2004-08-01 11:13:50 +02:00
?>
2010-04-05 04:59:10 +02:00
< ? php if ( ! IS_PROFILE_PAGE && is_super_admin ( $profileuser -> ID ) && current_user_can ( 'manage_network_options' ) ) { ?>
2010-04-02 08:46:07 +02:00
< div class = " updated " >< p >< strong >< ? php _e ( 'Important:' ); ?> </strong> <?php _e('This user has super admin privileges.'); ?></p></div>
< ? php } ?>
2004-10-29 03:17:17 +02:00
< ? php if ( isset ( $_GET [ 'updated' ]) ) : ?>
2009-12-26 10:00:58 +01:00
< div id = " message " class = " updated " >
2004-08-01 11:13:50 +02:00
< p >< strong >< ? php _e ( 'User updated.' ) ?> </strong></p>
2009-05-16 08:29:10 +02:00
< ? php if ( $wp_http_referer && ! IS_PROFILE_PAGE ) : ?>
2011-01-01 23:30:46 +01:00
< p >< a href = " <?php echo esc_url( $wp_http_referer ); ?> " >< ? php _e ( '← Back to Authors and Users' ); ?> </a></p>
2006-06-08 20:36:05 +02:00
< ? php endif ; ?>
2004-08-01 11:13:50 +02:00
</ div >
< ? php endif ; ?>
2008-09-21 22:41:25 +02:00
< ? php if ( isset ( $errors ) && is_wp_error ( $errors ) ) : ?>
2010-04-27 23:57:18 +02:00
< div class = " error " >< p >< ? php echo implode ( " </p> \n <p> " , $errors -> get_error_messages () ); ?> </p></div>
2005-07-12 17:53:13 +02:00
< ? php endif ; ?>
2004-08-01 11:13:50 +02:00
2008-03-10 23:09:26 +01:00
< div class = " wrap " id = " profile-page " >
2008-11-26 14:51:25 +01:00
< ? php screen_icon (); ?>
2009-05-18 17:11:07 +02:00
< h2 >< ? php echo esc_html ( $title ); ?> </h2>
2005-07-12 17:53:13 +02:00
2010-07-30 22:34:54 +02:00
< 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' ); ?> >
2006-06-04 05:41:33 +02:00
< ? php wp_nonce_field ( 'update-user_' . $user_id ) ?>
2006-06-08 20:36:05 +02:00
< ? php if ( $wp_http_referer ) : ?>
2009-05-18 18:00:33 +02:00
< input type = " hidden " name = " wp_http_referer " value = " <?php echo esc_url( $wp_http_referer ); ?> " />
2006-06-08 20:36:05 +02:00
< ? php endif ; ?>
2005-09-14 02:03:02 +02:00
< p >
< input type = " hidden " name = " from " value = " profile " />
< input type = " hidden " name = " checkuser_id " value = " <?php echo $user_ID ?> " />
</ p >
2008-01-31 22:44:17 +01:00
< h3 >< ? php _e ( 'Personal Options' ); ?> </h3>
2008-03-10 23:09:26 +01:00
< table class = " form-table " >
2009-05-24 20:46:01 +02:00
< ? php if ( rich_edit_exists () && ! ( IS_PROFILE_PAGE && ! $user_can_edit ) ) : // don't bother showing the option if the editor has been removed ?>
2008-03-10 23:09:26 +01:00
< tr >
2008-03-11 22:06:03 +01:00
< th scope = " row " >< ? php _e ( 'Visual Editor' ) ?> </th>
2008-10-03 00:01:33 +02:00
< 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>
2008-03-10 23:09:26 +01:00
</ tr >
2008-01-31 22:44:17 +01:00
< ? php endif ; ?>
2010-02-28 07:34:31 +01:00
< ? php if ( count ( $_wp_admin_css_colors ) > 1 && has_action ( 'admin_color_scheme_picker' ) ) : ?>
2008-03-11 22:06:03 +01:00
< tr >
< th scope = " row " >< ? php _e ( 'Admin Color Scheme' ) ?> </th>
2010-02-28 07:34:31 +01:00
< td >< ? php do_action ( 'admin_color_scheme_picker' ); ?> </td>
2008-03-11 23:03:05 +01:00
</ tr >
2010-02-19 23:02:43 +01:00
< ? php
2010-02-28 07:34:31 +01:00
endif ; // $_wp_admin_css_colors
2010-02-19 23:02:43 +01:00
if ( ! ( IS_PROFILE_PAGE && ! $user_can_edit ) ) : ?>
2008-10-17 00:23:32 +02:00
< tr >
< th scope = " row " >< ? php _e ( 'Keyboard Shortcuts' ); ?> </th>
2010-11-18 04:26:03 +01:00
< 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>
2008-10-17 00:23:32 +02:00
</ tr >
2010-12-17 22:48:30 +01:00
< ? php endif ; ?>
2011-01-07 17:47:39 +01:00
< tr class = " show-admin-bar " >
< th scope = " row " >< ? php _e ( 'Show Admin Bar' ) ?> </th>
2011-01-07 17:39:18 +01:00
< td >< fieldset >< legend class = " screen-reader-text " >< span >< ? php _e ( 'Show Admin Bar' ) ?> </span></legend>
< label for = " admin_bar_front " >
< input name = " admin_bar_front " type = " checkbox " id = " admin_bar_front " value = " 1 " < ? php checked ( _get_admin_bar_pref ( 'front' , $profileuser -> ID ) ); ?> />
< ? php /* translators: Show admin bar when viewing site */ _e ( 'when viewing site' ); ?> </label><br />
< label for = " admin_bar_admin " >
< input name = " admin_bar_admin " type = " checkbox " id = " admin_bar_admin " value = " 1 " < ? php checked ( _get_admin_bar_pref ( 'admin' , $profileuser -> ID ) ); ?> />
< ? php /* translators: Show admin bar in dashboard */ _e ( 'in dashboard' ); ?> </label>
</ td >
</ tr >
2010-12-17 22:48:30 +01:00
< ? php do_action ( 'personal_options' , $profileuser ); ?>
2008-03-11 22:06:03 +01:00
</ table >
2008-07-26 10:05:30 +02:00
< ? php
2009-05-16 08:29:10 +02:00
if ( IS_PROFILE_PAGE )
2008-08-21 19:40:38 +02:00
do_action ( 'profile_personal_options' , $profileuser );
2008-01-31 22:44:17 +01:00
?>
2007-03-28 18:10:48 +02:00
2008-03-11 20:36:46 +01:00
< h3 >< ? php _e ( 'Name' ) ?> </h3>
2007-03-28 18:10:48 +02:00
2008-03-10 23:09:26 +01:00
< table class = " form-table " >
< tr >
2008-03-11 09:54:08 +01:00
< th >< label for = " user_login " >< ? php _e ( 'Username' ); ?> </label></th>
2010-03-26 14:56:10 +01:00
< 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>
2008-03-10 23:09:26 +01:00
</ tr >
2005-11-06 04:58:52 +01:00
2010-12-07 19:10:16 +01:00
< ? php if ( ! IS_PROFILE_PAGE && ! is_network_admin () ) : ?>
2008-03-11 09:54:08 +01:00
< tr >< th >< label for = " role " >< ? php _e ( 'Role:' ) ?> </label></th>
2009-01-06 18:23:11 +01:00
< td >< select name = " role " id = " role " >
2005-11-06 04:58:52 +01:00
< ? php
2009-01-06 18:23:11 +01:00
// Get the highest/primary role for this user
// TODO: create a function that does this: wp_get_user_role()
$user_roles = $profileuser -> roles ;
$user_role = array_shift ( $user_roles );
// print the full list of roles with the primary one selected.
wp_dropdown_roles ( $user_role );
// print the 'no role' option. Make it selected if the user has no role yet.
if ( $user_role )
2010-04-30 05:17:49 +02:00
echo '<option value="">' . __ ( '— No role for this site —' ) . '</option>' ;
2006-06-10 22:26:26 +02:00
else
2010-04-30 05:17:49 +02:00
echo '<option value="" selected="selected">' . __ ( '— No role for this site —' ) . '</option>' ;
2009-01-06 23:05:57 +01:00
?>
2010-04-02 08:46:07 +02:00
</ select >
2010-11-05 18:26:32 +01:00
< ? php endif ; //!IS_PROFILE_PAGE
2010-12-07 19:10:16 +01:00
if ( is_multisite () && is_network_admin () && ! IS_PROFILE_PAGE && current_user_can ( 'manage_network_options' ) && ! isset ( $super_admins ) ) { ?>
2010-11-05 18:26:32 +01:00
< tr >< th >< label for = " role " >< ? php _e ( 'Super Admin' ); ?> </label></th>
< td >
2010-12-07 19:10:16 +01:00
< ? php if ( $profileuser -> user_email != get_site_option ( 'admin_email' ) ) : ?>
< 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>
< ? php else : ?>
< p >< ? php _e ( 'Super admin privileges cannot be removed because this user has the network admin email.' ); ?> </p>
< ? php endif ; ?>
2010-04-02 08:46:07 +02:00
</ td ></ tr >
2010-12-07 19:10:16 +01:00
< ? php } ?>
2005-09-14 02:03:02 +02:00
2008-03-10 23:09:26 +01:00
< tr >
2010-01-21 22:37:43 +01:00
< th >< label for = " first_name " >< ? php _e ( 'First Name' ) ?> </label></th>
2009-05-05 21:43:53 +02:00
< td >< input type = " text " name = " first_name " id = " first_name " value = " <?php echo esc_attr( $profileuser->first_name ) ?> " class = " regular-text " /></ td >
2008-03-10 23:09:26 +01:00
</ tr >
< tr >
2010-01-21 22:37:43 +01:00
< th >< label for = " last_name " >< ? php _e ( 'Last Name' ) ?> </label></th>
2009-05-05 21:43:53 +02:00
< td >< input type = " text " name = " last_name " id = " last_name " value = " <?php echo esc_attr( $profileuser->last_name ) ?> " class = " regular-text " /></ td >
2008-03-10 23:09:26 +01:00
</ tr >
< tr >
2009-05-14 19:01:04 +02:00
< th >< label for = " nickname " >< ? php _e ( 'Nickname' ); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
2009-05-05 21:43:53 +02:00
< td >< input type = " text " name = " nickname " id = " nickname " value = " <?php echo esc_attr( $profileuser->nickname ) ?> " class = " regular-text " /></ td >
2008-03-10 23:09:26 +01:00
</ tr >
< tr >
2009-05-14 19:01:04 +02:00
< th >< label for = " display_name " >< ? php _e ( 'Display name publicly as' ) ?> </label></th>
2008-03-10 23:09:26 +01:00
< td >
2008-03-11 09:54:08 +01:00
< select name = " display_name " id = " display_name " >
2008-03-10 23:09:26 +01:00
< ? php
$public_display = array ();
2009-04-23 07:55:26 +02:00
$public_display [ 'display_username' ] = $profileuser -> user_login ;
2010-03-01 23:34:43 +01:00
$public_display [ 'display_nickname' ] = $profileuser -> nickname ;
2009-05-14 19:01:04 +02:00
if ( ! empty ( $profileuser -> first_name ) )
$public_display [ 'display_firstname' ] = $profileuser -> first_name ;
if ( ! empty ( $profileuser -> last_name ) )
$public_display [ 'display_lastname' ] = $profileuser -> last_name ;
if ( ! empty ( $profileuser -> first_name ) && ! empty ( $profileuser -> last_name ) ) {
$public_display [ 'display_firstlast' ] = $profileuser -> first_name . ' ' . $profileuser -> last_name ;
$public_display [ 'display_lastfirst' ] = $profileuser -> last_name . ' ' . $profileuser -> first_name ;
}
2010-03-01 23:34:43 +01:00
if ( ! in_array ( $profileuser -> display_name , $public_display ) ) // Only add this if it isn't duplicated elsewhere
2009-04-23 07:55:26 +02:00
$public_display = array ( 'display_displayname' => $profileuser -> display_name ) + $public_display ;
$public_display = array_map ( 'trim' , $public_display );
2010-03-01 23:34:43 +01:00
$public_display = array_unique ( $public_display );
2009-04-23 07:55:26 +02:00
foreach ( $public_display as $id => $item ) {
2008-03-10 23:09:26 +01:00
?>
2009-05-05 21:43:53 +02:00
< option id = " <?php echo $id ; ?> " value = " <?php echo esc_attr( $item ); ?> " < ? php selected ( $profileuser -> display_name , $item ); ?> ><?php echo $item; ?></option>
2008-03-10 23:09:26 +01:00
< ? php
}
?>
</ select >
</ td >
</ tr >
</ table >
2008-03-11 20:36:46 +01:00
< h3 >< ? php _e ( 'Contact Info' ) ?> </h3>
2008-03-10 23:09:26 +01:00
< table class = " form-table " >
< tr >
2009-05-14 19:01:04 +02:00
< th >< label for = " email " >< ? php _e ( 'E-mail' ); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
2010-05-22 09:53:59 +02:00
< td >< input type = " text " name = " email " id = " email " value = " <?php echo esc_attr( $profileuser->user_email ) ?> " class = " regular-text " />
< ? php
$new_email = get_option ( $current_user -> ID . '_new_email' );
if ( $new_email && $new_email != $current_user -> user_email ) : ?>
< div class = " updated inline " >
2010-07-30 22:34:54 +02:00
< 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>
2010-05-22 09:53:59 +02:00
</ div >
< ? php endif ; ?>
</ td >
2008-03-10 23:09:26 +01:00
</ tr >
< tr >
2008-03-11 09:54:08 +01:00
< th >< label for = " url " >< ? php _e ( 'Website' ) ?> </label></th>
2009-05-05 21:43:53 +02:00
< td >< input type = " text " name = " url " id = " url " value = " <?php echo esc_attr( $profileuser->user_url ) ?> " class = " regular-text code " /></ td >
2008-03-11 23:03:05 +01:00
</ tr >
2008-03-10 23:09:26 +01:00
2009-08-06 23:59:52 +02:00
< ? php
2010-10-21 17:42:06 +02:00
foreach ( _wp_get_user_contactmethods ( $profileuser ) as $name => $desc ) {
2009-08-06 23:59:52 +02:00
?>
2008-03-10 23:09:26 +01:00
< tr >
2009-08-06 23:59:52 +02:00
< th >< label for = " <?php echo $name ; ?> " >< ? php echo apply_filters ( 'user_' . $name . '_label' , $desc ); ?> </label></th>
< td >< input type = " text " name = " <?php echo $name ; ?> " id = " <?php echo $name ; ?> " value = " <?php echo esc_attr( $profileuser -> $name ) ?> " class = " regular-text " /></ td >
2009-09-14 16:03:32 +02:00
</ tr >
2009-08-06 23:59:52 +02:00
< ? php
}
?>
2008-03-10 23:09:26 +01:00
</ table >
2009-05-16 08:29:10 +02:00
< h3 >< ? php IS_PROFILE_PAGE ? _e ( 'About Yourself' ) : _e ( 'About the user' ); ?> </h3>
2008-03-10 23:09:26 +01:00
< table class = " form-table " >
< tr >
2008-03-11 09:54:08 +01:00
< th >< label for = " description " >< ? php _e ( 'Biographical Info' ); ?> </label></th>
2010-12-25 18:58:01 +01:00
< td >< textarea name = " description " id = " description " rows = " 5 " cols = " 30 " >< ? php echo $profileuser -> description ; // textarea_escaped ?></textarea><br />
2009-05-14 19:01:04 +02:00
< span class = " description " >< ? php _e ( 'Share a little biographical information to fill out your profile. This may be shown publicly.' ); ?> </span></td>
2008-03-10 23:09:26 +01:00
</ tr >
2005-09-14 02:03:02 +02:00
< ? php
2009-05-12 18:54:18 +02:00
$show_password_fields = apply_filters ( 'show_password_fields' , true , $profileuser );
2005-03-09 23:49:42 +01:00
if ( $show_password_fields ) :
?>
2009-05-03 19:06:29 +02:00
< tr id = " password " >
2008-06-23 23:51:47 +02:00
< th >< label for = " pass1 " >< ? php _e ( 'New Password' ); ?> </label></th>
2009-05-14 19:01:04 +02:00
< td >< input type = " password " name = " pass1 " id = " pass1 " size = " 16 " value = " " autocomplete = " off " /> < span class = " description " >< ? php _e ( " If you would like to change the password type a new one. Otherwise leave this blank. " ); ?> </span><br />
< input type = " password " name = " pass2 " id = " pass2 " size = " 16 " value = " " autocomplete = " off " /> < span class = " description " >< ? php _e ( " Type your new password again. " ); ?> </span><br />
2008-08-26 02:40:10 +02:00
< div id = " pass-strength-result " >< ? php _e ( 'Strength indicator' ); ?> </div>
2009-05-16 08:29:10 +02:00
< p class = " description indicator-hint " >< ? php _e ( 'Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ & ).' ); ?> </p>
</ td >
2008-03-10 23:09:26 +01:00
</ tr >
2005-03-09 23:49:42 +01:00
< ? php endif ; ?>
2008-03-11 23:03:05 +01:00
</ table >
2005-09-14 02:03:02 +02:00
2008-01-31 22:44:17 +01:00
< ? php
2010-04-02 08:46:07 +02:00
if ( IS_PROFILE_PAGE )
do_action ( 'show_user_profile' , $profileuser );
else
do_action ( 'edit_user_profile' , $profileuser );
2008-01-31 22:44:17 +01:00
?>
2005-09-14 02:03:02 +02:00
2009-09-14 15:57:48 +02:00
< ? php if ( count ( $profileuser -> caps ) > count ( $profileuser -> roles ) && apply_filters ( 'additional_capabilities_display' , true , $profileuser ) ) { ?>
2008-03-15 00:58:31 +01:00
< br class = " clear " />
2008-02-29 18:09:44 +01:00
< table width = " 99% " style = " border: none; " cellspacing = " 2 " cellpadding = " 3 " class = " editform " >
2006-11-19 08:56:05 +01:00
< tr >
2008-06-23 23:51:47 +02:00
< th scope = " row " >< ? php _e ( 'Additional Capabilities' ) ?> </th>
2006-11-19 08:56:05 +01:00
< td >< ? php
2005-09-14 02:03:02 +02:00
$output = '' ;
2009-09-14 15:57:48 +02:00
foreach ( $profileuser -> caps as $cap => $value ) {
if ( ! $wp_roles -> is_role ( $cap ) ) {
if ( $output != '' )
$output .= ', ' ;
2005-09-14 02:03:02 +02:00
$output .= $value ? $cap : " Denied: { $cap } " ;
}
}
echo $output ;
?> </td>
2006-11-19 08:56:05 +01:00
</ tr >
</ table >
2009-09-14 15:57:48 +02:00
< ? php } ?>
2008-03-11 23:03:05 +01:00
2010-10-17 20:24:34 +02:00
< input type = " hidden " name = " action " value = " update " />
< input type = " hidden " name = " user_id " id = " user_id " value = " <?php echo esc_attr( $user_id ); ?> " />
< ? php submit_button ( IS_PROFILE_PAGE ? __ ( 'Update Profile' ) : __ ( 'Update User' ) ); ?>
2004-08-01 11:13:50 +02:00
</ form >
</ div >
< ? php
break ;
}
2010-04-20 19:16:14 +02:00
?>
< script type = " text/javascript " charset = " utf-8 " >
if ( window . location . hash == '#password' ) {
document . getElementById ( 'pass1' ) . focus ();
}
</ script >
< ? php
2010-07-30 22:34:54 +02:00
include ( ABSPATH . 'wp-admin/admin-footer.php' );
2005-03-13 18:06:18 +01:00
?>