2003-12-08 02:28:41 +01:00
< ? php
2008-08-16 09:27:34 +02:00
/**
* Users administration panel .
*
* @ package WordPress
* @ subpackage Administration
*/
/** WordPress Administration Bootstrap */
2004-10-19 05:03:06 +02:00
require_once ( 'admin.php' );
2008-08-16 09:27:34 +02:00
/** WordPress Registration API */
2006-06-11 08:43:54 +02:00
require_once ( ABSPATH . WPINC . '/registration.php' );
2004-04-25 06:24:06 +02:00
2006-11-30 19:38:06 +01:00
if ( ! current_user_can ( 'edit_users' ) )
wp_die ( __ ( 'Cheatin’ uh?' ));
2006-11-18 08:31:29 +01:00
$title = __ ( 'Users' );
2006-11-30 19:38:06 +01:00
$parent_file = 'users.php' ;
2006-11-18 08:31:29 +01:00
2008-08-14 19:00:37 +02:00
$action = isset ( $_REQUEST [ 'action' ]) ? $_REQUEST [ 'action' ] : '' ;
2005-11-13 05:40:18 +01:00
$update = '' ;
2003-12-08 02:28:41 +01:00
2008-02-23 00:36:53 +01:00
if ( empty ( $action ) ) {
2008-08-20 23:42:31 +02:00
if ( isset ( $_GET [ 'changeit' ]) && ! empty ( $_GET [ 'new_role' ]) )
2008-02-23 00:36:53 +01:00
$action = 'promote' ;
}
2008-02-16 22:44:50 +01:00
if ( empty ( $_REQUEST ) ) {
2006-12-21 11:10:04 +01:00
$referer = '<input type="hidden" name="wp_http_referer" value="' . attribute_escape ( stripslashes ( $_SERVER [ 'REQUEST_URI' ])) . '" />' ;
2008-02-16 22:44:50 +01:00
} elseif ( isset ( $_REQUEST [ 'wp_http_referer' ]) ) {
$redirect = remove_query_arg ( array ( 'wp_http_referer' , 'updated' , 'delete_count' ), stripslashes ( $_REQUEST [ 'wp_http_referer' ]));
2006-12-21 11:10:04 +01:00
$referer = '<input type="hidden" name="wp_http_referer" value="' . attribute_escape ( $redirect ) . '" />' ;
2006-06-08 20:36:05 +02:00
} else {
$redirect = 'users.php' ;
2008-08-14 19:00:37 +02:00
$referer = '' ;
2006-06-08 20:36:05 +02:00
}
2003-12-08 02:28:41 +01:00
switch ( $action ) {
2005-07-12 17:53:13 +02:00
case 'promote' :
2006-05-03 00:36:06 +02:00
check_admin_referer ( 'bulk-users' );
2004-05-17 22:34:05 +02:00
2008-02-16 22:44:50 +01:00
if ( empty ( $_REQUEST [ 'users' ])) {
2006-06-27 07:38:56 +02:00
wp_redirect ( $redirect );
2006-11-15 00:44:25 +01:00
exit ();
2005-07-12 17:53:13 +02:00
}
2003-12-23 21:21:29 +01:00
2005-07-12 17:53:13 +02:00
if ( ! current_user_can ( 'edit_users' ) )
2006-07-06 00:00:03 +02:00
wp_die ( __ ( 'You can’t edit users.' ));
2003-12-23 21:21:29 +01:00
2008-02-16 22:44:50 +01:00
$userids = $_REQUEST [ 'users' ];
2005-11-13 05:40:18 +01:00
$update = 'promote' ;
2006-06-08 20:36:05 +02:00
foreach ( $userids as $id ) {
if ( ! current_user_can ( 'edit_user' , $id ) )
2006-07-06 00:00:03 +02:00
wp_die ( __ ( 'You can’t edit that user.' ));
2005-11-13 05:40:18 +01:00
// The new role of the current user must also have edit_users caps
2008-02-16 22:44:50 +01:00
if ( $id == $current_user -> ID && ! $wp_roles -> role_objects [ $_REQUEST [ 'new_role' ]] -> has_cap ( 'edit_users' )) {
2005-11-13 05:40:18 +01:00
$update = 'err_admin_role' ;
continue ;
}
2006-06-08 20:36:05 +02:00
$user = new WP_User ( $id );
2008-02-16 22:44:50 +01:00
$user -> set_role ( $_REQUEST [ 'new_role' ]);
2006-06-08 20:36:05 +02:00
}
2006-02-12 08:53:23 +01:00
2006-06-27 07:38:56 +02:00
wp_redirect ( add_query_arg ( 'update' , $update , $redirect ));
2006-11-15 01:02:28 +01:00
exit ();
2005-03-09 23:49:42 +01:00
2005-07-12 17:53:13 +02:00
break ;
2003-12-23 21:21:29 +01:00
2005-07-12 17:53:13 +02:00
case 'dodelete' :
2003-12-23 21:21:29 +01:00
2006-05-03 00:36:06 +02:00
check_admin_referer ( 'delete-users' );
2005-07-12 17:53:13 +02:00
2008-02-16 22:44:50 +01:00
if ( empty ( $_REQUEST [ 'users' ]) ) {
2006-06-27 07:38:56 +02:00
wp_redirect ( $redirect );
2006-11-15 01:02:28 +01:00
exit ();
2004-05-17 14:38:19 +02:00
}
2003-12-23 21:21:29 +01:00
2006-06-05 18:52:21 +02:00
if ( ! current_user_can ( 'delete_users' ) )
2006-07-06 00:00:03 +02:00
wp_die ( __ ( 'You can’t delete users.' ));
2003-12-23 21:21:29 +01:00
2008-02-16 22:44:50 +01:00
$userids = $_REQUEST [ 'users' ];
2005-11-13 05:40:18 +01:00
$update = 'del' ;
2006-06-08 20:36:05 +02:00
$delete_count = 0 ;
foreach ( ( array ) $userids as $id ) {
if ( ! current_user_can ( 'delete_user' , $id ) )
2006-07-06 00:00:03 +02:00
wp_die ( __ ( 'You can’t delete that user.' ));
2006-06-08 20:36:05 +02:00
2006-11-20 05:29:06 +01:00
if ( $id == $current_user -> ID ) {
2005-11-13 05:40:18 +01:00
$update = 'err_admin_del' ;
continue ;
}
2008-02-16 22:44:50 +01:00
switch ( $_REQUEST [ 'delete_option' ]) {
2005-07-12 17:53:13 +02:00
case 'delete' :
wp_delete_user ( $id );
break ;
case 'reassign' :
2008-02-16 22:44:50 +01:00
wp_delete_user ( $id , $_REQUEST [ 'reassign_user' ]);
2005-07-12 17:53:13 +02:00
break ;
}
2006-06-08 20:36:05 +02:00
++ $delete_count ;
2005-07-12 17:53:13 +02:00
}
2003-12-23 21:21:29 +01:00
2006-11-08 22:14:53 +01:00
$redirect = add_query_arg ( array ( 'delete_count' => $delete_count , 'update' => $update ), $redirect );
wp_redirect ( $redirect );
2006-11-15 01:02:28 +01:00
exit ();
2003-12-23 21:21:29 +01:00
break ;
2005-07-12 17:53:13 +02:00
case 'delete' :
2006-05-03 00:36:06 +02:00
check_admin_referer ( 'bulk-users' );
2004-05-17 22:34:05 +02:00
2008-09-17 06:39:08 +02:00
if ( empty ( $_REQUEST [ 'users' ]) && empty ( $_REQUEST [ 'user' ]) ) {
2006-06-27 07:38:56 +02:00
wp_redirect ( $redirect );
2006-11-15 01:02:28 +01:00
exit ();
}
2003-12-08 02:28:41 +01:00
2006-06-05 18:52:21 +02:00
if ( ! current_user_can ( 'delete_users' ) )
2006-06-08 20:36:05 +02:00
$errors = new WP_Error ( 'edit_users' , __ ( 'You can’t delete users.' ));
2003-12-08 02:28:41 +01:00
2008-09-17 06:39:08 +02:00
if ( empty ( $_REQUEST [ 'users' ]) )
$userids = array ( intval ( $_REQUEST [ 'user' ]));
else
$userids = $_REQUEST [ 'users' ];
2005-07-09 03:27:46 +02:00
2005-07-12 17:53:13 +02:00
include ( 'admin-header.php' );
?>
< form action = " " method = " post " name = " updateusers " id = " updateusers " >
2006-05-03 00:36:06 +02:00
< ? php wp_nonce_field ( 'delete-users' ) ?>
2006-06-08 20:36:05 +02:00
< ? php echo $referer ; ?>
2008-01-07 21:38:49 +01:00
2005-07-12 17:53:13 +02:00
< div class = " wrap " >
2005-11-13 05:40:18 +01:00
< h2 >< ? php _e ( 'Delete Users' ); ?> </h2>
< p >< ? php _e ( 'You have specified these users for deletion:' ); ?> </p>
< ul >
< ? php
$go_delete = false ;
2006-06-08 20:36:05 +02:00
foreach ( ( array ) $userids as $id ) {
$user = new WP_User ( $id );
2006-11-20 05:29:06 +01:00
if ( $id == $current_user -> ID ) {
2005-12-12 23:48:30 +01:00
echo " <li> " . sprintf ( __ ( 'ID #%1s: %2s <strong>The current user will not be deleted.</strong>' ), $id , $user -> user_login ) . " </li> \n " ;
2005-11-13 05:40:18 +01:00
} else {
2005-12-12 23:48:30 +01:00
echo " <li><input type= \" hidden \" name= \" users[] \" value= \" { $id } \" /> " . sprintf ( __ ( 'ID #%1s: %2s' ), $id , $user -> user_login ) . " </li> \n " ;
2005-11-13 05:40:18 +01:00
$go_delete = true ;
2005-07-12 17:53:13 +02:00
}
2006-06-08 20:36:05 +02:00
}
$all_logins = $wpdb -> get_results ( " SELECT ID, user_login FROM $wpdb->users ORDER BY user_login " );
$user_dropdown = '<select name="reassign_user">' ;
foreach ( ( array ) $all_logins as $login )
2006-11-20 05:29:06 +01:00
if ( $login -> ID == $current_user -> ID || ! in_array ( $login -> ID , $userids ) )
2006-06-08 20:36:05 +02:00
$user_dropdown .= " <option value= \" { $login -> ID } \" > { $login -> user_login } </option> " ;
$user_dropdown .= '</select>' ;
?>
</ ul >
< ? php if ( $go_delete ) : ?>
2008-05-04 12:37:06 +02:00
< fieldset >< p >< legend >< ? php _e ( 'What should be done with posts and links owned by this user?' ); ?> </legend></p>
2005-07-12 17:53:13 +02:00
< ul style = " list-style:none; " >
< li >< label >< input type = " radio " id = " delete_option0 " name = " delete_option " value = " delete " checked = " checked " />
< ? php _e ( 'Delete all posts and links.' ); ?> </label></li>
< li >< input type = " radio " id = " delete_option1 " name = " delete_option " value = " reassign " />
2005-12-02 23:37:02 +01:00
< ? php echo '<label for="delete_option1">' . __ ( 'Attribute all posts and links to:' ) . " </label> $user_dropdown " ; ?> </li>
2008-05-04 12:37:06 +02:00
</ ul ></ fieldset >
2005-07-12 17:53:13 +02:00
< input type = " hidden " name = " action " value = " dodelete " />
2008-02-21 01:27:23 +01:00
< p class = " submit " >< input type = " submit " name = " submit " value = " <?php _e('Confirm Deletion'); ?> " class = " button-secondary " /></ p >
2005-11-13 05:40:18 +01:00
< ? php else : ?>
< p >< ? php _e ( 'There are no valid users selected for deletion.' ); ?> </p>
< ? php endif ; ?>
2005-07-12 17:53:13 +02:00
</ div >
</ form >
< ? php
2003-12-08 02:28:41 +01:00
break ;
2005-07-12 17:53:13 +02:00
case 'adduser' :
2006-05-03 00:36:06 +02:00
check_admin_referer ( 'add-user' );
2006-02-12 08:53:23 +01:00
2006-06-05 18:52:21 +02:00
if ( ! current_user_can ( 'create_users' ) )
2006-07-06 00:00:03 +02:00
wp_die ( __ ( 'You can’t create users.' ));
2006-06-05 18:52:21 +02:00
2006-04-02 02:31:26 +02:00
$user_id = add_user ();
2006-06-08 20:36:05 +02:00
$update = 'add' ;
2006-04-02 02:31:26 +02:00
if ( is_wp_error ( $user_id ) )
2006-06-08 20:36:05 +02:00
$add_user_errors = $user_id ;
2006-04-02 02:31:26 +02:00
else {
2008-02-16 22:44:50 +01:00
$new_user_login = apply_filters ( 'pre_user_login' , sanitize_user ( stripslashes ( $_REQUEST [ 'user_login' ]), true ));
2006-11-08 22:14:53 +01:00
$redirect = add_query_arg ( array ( 'usersearch' => urlencode ( $new_user_login ), 'update' => $update ), $redirect );
wp_redirect ( $redirect . '#user-' . $user_id );
2005-07-12 17:53:13 +02:00
die ();
}
2003-12-08 02:28:41 +01:00
default :
2008-02-20 06:45:16 +01:00
if ( ! empty ( $_GET [ '_wp_http_referer' ]) ) {
wp_redirect ( remove_query_arg ( array ( '_wp_http_referer' , '_wpnonce' ), stripslashes ( $_SERVER [ 'REQUEST_URI' ])));
2008-03-02 21:17:30 +01:00
exit ;
2008-02-20 06:45:16 +01:00
}
2006-06-08 20:36:05 +02:00
wp_enqueue_script ( 'admin-users' );
2008-01-07 21:38:49 +01:00
wp_enqueue_script ( 'admin-forms' );
2008-02-05 07:47:27 +01:00
2006-06-08 20:36:05 +02:00
include ( 'admin-header.php' );
2008-08-14 19:00:37 +02:00
$usersearch = isset ( $_GET [ 'usersearch' ]) ? $_GET [ 'usersearch' ] : null ;
$userspage = isset ( $_GET [ 'userspage' ]) ? $_GET [ 'userspage' ] : null ;
$role = isset ( $_GET [ 'role' ]) ? $_GET [ 'role' ] : null ;
2006-06-11 19:56:56 +02:00
// Query the users
2008-08-14 19:00:37 +02:00
$wp_user_search = new WP_User_Search ( $usersearch , $userspage , $role );
2008-09-11 20:54:05 +02:00
$messages = array ();
2006-06-08 20:36:05 +02:00
if ( isset ( $_GET [ 'update' ]) ) :
2005-07-12 17:53:13 +02:00
switch ( $_GET [ 'update' ]) {
case 'del' :
2006-06-08 20:36:05 +02:00
case 'del_many' :
2008-09-11 20:54:05 +02:00
$delete_count = isset ( $_GET [ 'delete_count' ]) ? ( int ) $_GET [ 'delete_count' ] : 0 ;
$messages [] = '<div id="message" class="updated fade"><p>' . sprintf ( __ngettext ( '%s user deleted' , '%s users deleted' , $delete_count ), $delete_count ) . '</p></div>' ;
2005-07-12 17:53:13 +02:00
break ;
case 'add' :
2008-09-11 20:54:05 +02:00
$messages [] = '<div id="message" class="updated fade"><p>' . __ ( 'New user created.' ) . '</p></div>' ;
2005-07-12 17:53:13 +02:00
break ;
case 'promote' :
2008-09-11 20:54:05 +02:00
$messages [] = '<div id="message" class="updated fade"><p>' . __ ( 'Changed roles.' ) . '</p></div>' ;
2005-07-12 17:53:13 +02:00
break ;
2005-11-13 05:40:18 +01:00
case 'err_admin_role' :
2008-09-11 20:54:05 +02:00
$messages [] = '<div id="message" class="error"><p>' . __ ( " The current user's role must have user editing capabilities. " ) . '</p></div>' ;
$messages [] = '<div id="message" class="updated fade"><p>' . __ ( 'Other user roles have been changed.' ) . '</p></div>' ;
2005-11-13 05:40:18 +01:00
break ;
case 'err_admin_del' :
2008-09-11 20:54:05 +02:00
$messages [] = '<div id="message" class="error"><p>' . __ ( " You can't delete the current user. " ) . '</p></div>' ;
$messages [] = '<div id="message" class="updated fade"><p>' . __ ( 'Other users have been deleted.' ) . '</p></div>' ;
2005-11-13 05:40:18 +01:00
break ;
2005-07-12 17:53:13 +02:00
}
2006-06-08 20:36:05 +02:00
endif ; ?>
2008-09-11 20:54:05 +02:00
< form class = " search-form " action = " " method = " get " >
< p id = " user-search " class = " search-box " >
< label class = " hidden " for = " user-search-input " >< ? php _e ( 'Search Users' ); ?> </label>
< input type = " text " id = " user-search-input " class = " search-input " name = " usersearch " value = " <?php echo attribute_escape( $wp_user_search->search_term ); ?> " />
< input type = " submit " value = " <?php _e( 'Search Users' ); ?> " class = " button " />
</ p >
</ form >
2008-08-14 19:00:37 +02:00
< ? php if ( isset ( $errors ) && is_wp_error ( $errors ) ) : ?>
2005-07-12 17:53:13 +02:00
< div class = " error " >
< ul >
< ? php
2008-09-11 20:54:05 +02:00
foreach ( $errors -> get_error_messages () as $err )
echo " <li> $err </li> \n " ;
2005-07-12 17:53:13 +02:00
?>
</ ul >
</ div >
2008-09-11 20:54:05 +02:00
< ? php endif ;
if ( ! empty ( $messages ) ) {
foreach ( $messages as $msg )
echo $msg ;
} ?>
2006-06-08 20:36:05 +02:00
< div class = " wrap " >
2008-09-19 07:31:00 +02:00
2008-09-22 05:27:48 +02:00
< form id = " adv-settings " action = " " method = " get " >
2008-09-19 07:31:00 +02:00
< div id = " show-settings " >< a href = " #edit_settings " id = " show-settings-link " class = " hide-if-no-js " >< ? php _e ( 'Advanced Options' ) ?> </a>
< a href = " #edit_settings " id = " hide-settings-link " class = " hide-if-js hide-if-no-js " >< ? php _e ( 'Hide Options' ) ?> </a></div>
< div id = " edit-settings " class = " hide-if-js hide-if-no-js " >
< div id = " edit-settings-wrap " >
< h5 >< ? php _e ( 'Show on screen' ) ?> </h5>
< div class = " metabox-prefs " >
< ? php manage_columns_prefs ( 'user' ) ?>
< br class = " clear " />
</ div ></ div >
2008-09-22 05:27:48 +02:00
< ? php wp_nonce_field ( 'hiddencolumns' , 'hiddencolumnsnonce' , false ); ?>
</ div ></ form >
2008-09-19 07:31:00 +02:00
2008-02-16 22:44:50 +01:00
< form id = " posts-filter " action = " " method = " get " >
2006-06-11 19:56:56 +02:00
< ? php if ( $wp_user_search -> is_search () ) : ?>
2008-08-20 23:42:31 +02:00
< h2 >< ? php printf ( current_user_can ( 'create_users' ) ? __ ( 'Users Matching "%2$s" (<a href="%1$s">Add New</a>)' ) : __ ( 'Add New' ), '#add-new-user' , wp_specialchars ( $wp_user_search -> search_term ) ); ?> </h2>
2006-06-10 23:23:19 +02:00
< ? php else : ?>
2008-08-20 23:42:31 +02:00
< h2 >< ? php printf ( current_user_can ( 'create_users' ) ? __ ( 'Users (<a href="%s">Add New</a>)' ) : __ ( 'Add New' ), '#add-new-user' ); ?> </h2>
2006-06-10 23:23:19 +02:00
< ? php endif ; ?>
2008-02-16 22:44:50 +01:00
< ul class = " subsubsub " >
< ? php
$role_links = array ();
2008-02-17 02:34:30 +01:00
$avail_roles = array ();
$users_of_blog = get_users_of_blog ();
foreach ( ( array ) $users_of_blog as $b_user ) {
$b_roles = unserialize ( $b_user -> meta_value );
foreach ( ( array ) $b_roles as $b_role => $val ) {
if ( ! isset ( $avail_roles [ $b_role ]) )
$avail_roles [ $b_role ] = 0 ;
$avail_roles [ $b_role ] ++ ;
}
}
2008-02-17 21:16:22 +01:00
unset ( $users_of_blog );
2008-02-17 02:34:30 +01:00
2008-02-27 01:46:27 +01:00
$current_role = false ;
2008-08-14 19:00:37 +02:00
$class = empty ( $role ) ? ' class="current"' : '' ;
2008-03-11 22:21:24 +01:00
$role_links [] = " <li><a href= \" users.php \" $class > " . __ ( 'All Users' ) . " </a> " ;
2008-08-14 19:00:37 +02:00
foreach ( $wp_roles -> get_names () as $this_role => $name ) {
2008-09-19 07:40:40 +02:00
if ( ! isset ( $avail_roles [ $this_role ]) )
2008-02-17 02:34:30 +01:00
continue ;
2008-02-16 22:44:50 +01:00
$class = '' ;
2008-08-14 19:00:37 +02:00
if ( $this_role == $role ) {
$current_role = $role ;
2008-02-16 22:44:50 +01:00
$class = ' class="current"' ;
2008-02-27 01:46:27 +01:00
}
2008-02-16 22:44:50 +01:00
2008-02-19 21:28:54 +01:00
$name = translate_with_context ( $name );
2008-08-14 19:00:37 +02:00
$name = sprintf ( _c ( '%1$s (%2$s)|user role with count' ), $name , $avail_roles [ $this_role ]);
$role_links [] = " <li><a href= \" users.php?role= $this_role\ " $class > " . $name . '</a>';
2008-02-16 22:44:50 +01:00
}
echo implode ( ' |</li>' , $role_links ) . '</li>' ;
unset ( $role_links );
?>
</ ul >
2008-08-20 23:42:31 +02:00
2008-02-16 22:44:50 +01:00
< div class = " tablenav " >
< ? php if ( $wp_user_search -> results_are_paged () ) : ?>
< div class = " tablenav-pages " >< ? php $wp_user_search -> page_links (); ?> </div>
< ? php endif ; ?>
2008-03-15 00:58:31 +01:00
< div class = " alignleft " >
2008-08-20 23:42:31 +02:00
< select name = " action " >
< option value = " " selected >< ? php _e ( 'Actions' ); ?> </option>
< option value = " delete " >< ? php _e ( 'Delete' ); ?> </option>
</ select >
< input type = " submit " value = " <?php _e('Apply'); ?> " name = " doaction " class = " button-secondary action " />
2008-09-08 08:01:33 +02:00
< label class = " hidden " for = " new_role " >< ? php _e ( 'Change role to…' ) ?> </label><select name="new_role" id="new_role"><option value=''><?php _e('Change role to…') ?></option><?php wp_dropdown_roles(); ?></select>
2008-02-23 00:36:53 +01:00
< input type = " submit " value = " <?php _e('Change'); ?> " name = " changeit " class = " button-secondary " />
2008-02-16 22:44:50 +01:00
< ? php wp_nonce_field ( 'bulk-users' ); ?>
</ div >
2008-03-15 00:58:31 +01:00
< br class = " clear " />
2008-02-16 22:44:50 +01:00
</ div >
2008-03-15 00:58:31 +01:00
< br class = " clear " />
2006-06-10 23:23:19 +02:00
2006-06-11 19:56:56 +02:00
< ? php if ( is_wp_error ( $wp_user_search -> search_errors ) ) : ?>
2006-06-10 23:23:19 +02:00
< div class = " error " >
< ul >
< ? php
2006-06-11 19:56:56 +02:00
foreach ( $wp_user_search -> search_errors -> get_error_messages () as $message )
2006-06-10 23:23:19 +02:00
echo " <li> $message </li> " ;
?>
</ ul >
</ div >
2006-06-08 20:36:05 +02:00
< ? php endif ; ?>
2006-06-10 23:23:19 +02:00
2006-06-08 20:36:05 +02:00
2006-06-11 19:56:56 +02:00
< ? php if ( $wp_user_search -> get_results () ) : ?>
2006-02-12 08:53:23 +01:00
2006-06-11 19:56:56 +02:00
< ? php if ( $wp_user_search -> is_search () ) : ?>
2006-06-10 23:23:19 +02:00
< p >< a href = " users.php " >< ? php _e ( '« Back to All Users' ); ?> </a></p>
2006-06-08 20:36:05 +02:00
< ? php endif ; ?>
2006-06-10 23:23:19 +02:00
2006-05-10 22:35:10 +02:00
< table class = " widefat " >
2008-03-01 21:40:06 +01:00
< thead >
2006-06-08 20:36:05 +02:00
< tr class = " thead " >
2008-09-19 07:31:00 +02:00
< ? php print_column_headers ( 'user' ) ?>
2006-05-10 22:35:10 +02:00
</ tr >
2008-03-01 21:40:06 +01:00
</ thead >
2008-02-17 21:16:22 +01:00
< tbody id = " users " class = " list:user user-list " >
2008-02-16 22:44:50 +01:00
< ? php
2008-02-27 01:46:27 +01:00
$style = '' ;
2008-02-17 21:16:22 +01:00
foreach ( $wp_user_search -> get_results () as $userid ) {
$user_object = new WP_User ( $userid );
2008-02-17 23:06:26 +01:00
$roles = $user_object -> roles ;
2008-02-17 21:16:22 +01:00
$role = array_shift ( $roles );
2006-06-08 20:36:05 +02:00
$style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"' ;
2008-01-07 21:38:49 +01:00
echo " \n \t " . user_row ( $user_object , $style , $role );
2006-05-10 22:35:10 +02:00
}
?>
</ tbody >
</ table >
2004-09-22 01:36:27 +02:00
2008-02-16 22:44:50 +01:00
< div class = " tablenav " >
2006-06-11 19:56:56 +02:00
< ? php if ( $wp_user_search -> results_are_paged () ) : ?>
2008-02-16 22:44:50 +01:00
< div class = " tablenav-pages " >< ? php $wp_user_search -> page_links (); ?> </div>
2006-06-08 20:36:05 +02:00
< ? php endif ; ?>
2004-09-22 01:36:27 +02:00
2008-03-15 00:58:31 +01:00
< br class = " clear " />
2008-02-16 22:44:50 +01:00
</ div >
2006-06-10 23:23:19 +02:00
< ? php endif ; ?>
2008-09-22 05:27:48 +02:00
2008-03-30 18:48:31 +02:00
</ form >
2006-06-10 23:23:19 +02:00
</ div >
2006-06-08 20:36:05 +02:00
2005-03-09 23:49:42 +01:00
< ? php
2008-08-14 19:00:37 +02:00
foreach ( array ( 'user_login' => 'user_login' , 'first_name' => 'user_firstname' , 'last_name' => 'user_lastname' , 'email' => 'user_email' , 'url' => 'user_uri' , 'role' => 'user_role' ) as $formpost => $var ) {
$var = 'new_' . $var ;
$$var = isset ( $_REQUEST [ $formpost ]) ? attribute_escape ( stripslashes ( $_REQUEST [ $formpost ])) : '' ;
2006-06-08 20:36:05 +02:00
}
2008-08-14 19:00:37 +02:00
unset ( $name );
2005-03-09 23:49:42 +01:00
?>
2006-06-08 20:36:05 +02:00
2008-03-15 00:58:31 +01:00
< br class = " clear " />
2008-04-14 18:57:29 +02:00
< ? php if ( current_user_can ( 'create_users' ) ) { ?>
2008-02-16 22:44:50 +01:00
2006-06-08 20:36:05 +02:00
< div class = " wrap " >
< h2 id = " add-new-user " >< ? php _e ( 'Add New User' ) ?> </h2>
2006-12-02 00:00:04 +01:00
2008-08-14 19:00:37 +02:00
< ? php if ( isset ( $add_user_errors ) && is_wp_error ( $add_user_errors ) ) : ?>
2006-12-02 00:00:04 +01:00
< div class = " error " >
< ? php
foreach ( $add_user_errors -> get_error_messages () as $message )
echo " <p> $message </p> " ;
?>
</ div >
< ? php endif ; ?>
< div id = " ajax-response " ></ div >
2007-09-04 01:32:58 +02:00
< ? php
if ( get_option ( 'users_can_register' ) )
2008-05-27 19:46:01 +02:00
echo '<p>' . sprintf ( __ ( 'Users can <a href="%1$s">register themselves</a> or you can manually create users here.' ), site_url ( 'wp-register.php' )) . '</p>' ;
2007-09-04 01:32:58 +02:00
else
2008-05-27 19:46:01 +02:00
echo '<p>' . sprintf ( __ ( 'Users cannot currently <a href="%1$s">register themselves</a>, but you can manually create users here.' ), admin_url ( 'options-general.php#users_can_register' )) . '</p>' ;
2007-03-29 04:30:57 +02:00
?>
2008-03-18 20:20:18 +01:00
< form action = " #add-new-user " method = " post " name = " adduser " id = " adduser " class = " add:users: validate " >
2006-06-08 20:36:05 +02:00
< ? php wp_nonce_field ( 'add-user' ) ?>
2008-02-24 05:33:10 +01:00
< table class = " form-table " >
2007-11-01 07:23:16 +01:00
< tr class = " form-field form-required " >
2008-05-04 12:37:06 +02:00
< th scope = " row " >< label for = " user_login " >< ? php _e ( 'Username (required)' ) ?> </label><input name="action" type="hidden" id="action" value="adduser" /></th>
2008-05-04 23:28:12 +02:00
< td >< input name = " user_login " type = " text " id = " user_login " value = " <?php echo $new_user_login ; ?> " aria - required = " true " /></ td >
2006-06-08 20:36:05 +02:00
</ tr >
2007-11-01 07:23:16 +01:00
< tr class = " form-field " >
2008-05-04 12:37:06 +02:00
< th scope = " row " >< label for = " first_name " >< ? php _e ( 'First Name' ) ?> </label></th>
2006-06-08 20:36:05 +02:00
< td >< input name = " first_name " type = " text " id = " first_name " value = " <?php echo $new_user_firstname ; ?> " /></ td >
</ tr >
2007-11-01 07:23:16 +01:00
< tr class = " form-field " >
2008-05-04 12:37:06 +02:00
< th scope = " row " >< label for = " last_name " >< ? php _e ( 'Last Name' ) ?> </label></th>
2006-06-08 20:36:05 +02:00
< td >< input name = " last_name " type = " text " id = " last_name " value = " <?php echo $new_user_lastname ; ?> " /></ td >
</ tr >
2007-11-01 07:23:16 +01:00
< tr class = " form-field form-required " >
2008-05-04 12:37:06 +02:00
< th scope = " row " >< label for = " email " >< ? php _e ( 'E-mail (required)' ) ?> </label></th>
2006-06-08 20:36:05 +02:00
< td >< input name = " email " type = " text " id = " email " value = " <?php echo $new_user_email ; ?> " /></ td >
</ tr >
2007-11-01 07:23:16 +01:00
< tr class = " form-field " >
2008-05-04 12:37:06 +02:00
< th scope = " row " >< label for = " url " >< ? php _e ( 'Website' ) ?> </label></th>
2006-06-08 20:36:05 +02:00
< td >< input name = " url " type = " text " id = " url " value = " <?php echo $new_user_uri ; ?> " /></ td >
</ tr >
< ? php if ( apply_filters ( 'show_password_fields' , true ) ) : ?>
2007-11-01 07:23:16 +01:00
< tr class = " form-field form-required " >
2008-05-04 12:37:06 +02:00
< th scope = " row " >< label for = " pass1 " >< ? php _e ( 'Password (twice)' ) ?> </label></th>
2006-06-08 20:36:05 +02:00
< td >< input name = " pass1 " type = " password " id = " pass1 " />
< br />
< input name = " pass2 " type = " password " id = " pass2 " /></ td >
</ tr >
< ? php endif ; ?>
2007-11-01 07:23:16 +01:00
< tr class = " form-field " >
2008-05-04 12:37:06 +02:00
< th scope = " row " >< label for = " role " >< ? php _e ( 'Role' ); ?> </label></th>
2006-06-08 20:36:05 +02:00
< td >< select name = " role " id = " role " >
< ? php
if ( ! $new_user_role )
2008-02-27 01:46:27 +01:00
$new_user_role = $current_role ? $current_role : get_option ( 'default_role' );
2006-06-08 20:36:05 +02:00
wp_dropdown_roles ( $new_user_role );
?>
</ select >
</ td >
</ tr >
</ table >
< p class = " submit " >
< ? php echo $referer ; ?>
2008-02-19 21:33:59 +01:00
< input name = " adduser " type = " submit " id = " addusersub " value = " <?php _e('Add User') ?> " />
2006-06-08 20:36:05 +02:00
</ p >
</ form >
2003-12-08 02:28:41 +01:00
</ div >
2006-06-08 20:36:05 +02:00
< ? php
2008-04-14 18:57:29 +02:00
}
2003-12-08 02:28:41 +01:00
break ;
2006-06-08 20:36:05 +02:00
} // end of the $action switch
2004-08-23 01:24:50 +02:00
2003-12-11 01:22:36 +01:00
include ( 'admin-footer.php' );
2006-08-30 19:09:50 +02:00
?>