2003-12-07 20:28:41 -05:00
< ? php
2004-10-18 23:03:06 -04:00
require_once ( 'admin.php' );
2006-06-11 02:43:54 -04:00
require_once ( ABSPATH . WPINC . '/registration.php' );
2004-04-25 00:24:06 -04:00
2005-07-08 21:27:46 -04:00
$action = $_REQUEST [ 'action' ];
2005-11-12 23:40:18 -05:00
$update = '' ;
2003-12-07 20:28:41 -05:00
2006-06-08 14:36:05 -04:00
if ( empty ( $_POST ) ) {
$referer = '<input type="hidden" name="wp_http_referer" value="' . wp_specialchars ( stripslashes ( $_SERVER [ 'REQUEST_URI' ])) . '" />' ;
} elseif ( isset ( $_POST [ 'wp_http_referer' ]) ) {
2006-11-08 16:14:53 -05:00
$redirect = remove_query_arg ( array ( 'wp_http_referer' , 'updated' , 'delete_count' ), stripslashes ( $_POST [ 'wp_http_referer' ]));
2006-06-08 14:36:05 -04:00
$referer = '<input type="hidden" name="wp_http_referer" value="' . wp_specialchars ( $redirect ) . '" />' ;
} else {
$redirect = 'users.php' ;
}
2006-06-11 13:56:56 -04:00
// WP_User_Search class
// by Mark Jaquith
class WP_User_Search {
var $results ;
var $search_term ;
var $page ;
var $raw_page ;
var $users_per_page = 50 ;
var $first_user ;
var $last_user ;
var $query_limit ;
var $query_from_where ;
var $total_users_for_query = 0 ;
var $too_many_total_users = false ;
var $search_errors ;
function WP_User_Search ( $search_term = '' , $page = '' ) { // constructor
$this -> search_term = $search_term ;
$this -> raw_page = ( '' == $page ) ? false : ( int ) $page ;
$this -> page = ( int ) ( '' == $page ) ? 1 : $page ;
$this -> prepare_query ();
$this -> query ();
$this -> prepare_vars_for_template_usage ();
$this -> do_paging ();
}
function prepare_query () {
global $wpdb ;
$this -> first_user = ( $this -> page - 1 ) * $this -> users_per_page ;
$this -> query_limit = 'LIMIT ' . $this -> first_user . ',' . $this -> users_per_page ;
if ( $this -> search_term ) {
$searches = array ();
$search_sql = 'AND (' ;
foreach ( array ( 'user_login' , 'user_nicename' , 'user_email' , 'user_url' , 'display_name' ) as $col )
$searches [] = $col . " LIKE '% $this->search_term %' " ;
$search_sql .= implode ( ' OR ' , $searches );
$search_sql .= ')' ;
}
$this -> query_from_where = " FROM $wpdb->users WHERE 1=1 $search_sql " ;
}
function query () {
global $wpdb ;
$this -> results = $wpdb -> get_col ( 'SELECT ID ' . $this -> query_from_where . $this -> query_limit );
if ( $this -> results )
$this -> total_users_for_query = $wpdb -> get_var ( 'SELECT COUNT(ID) ' . $this -> query_from_where ); // no limit
else
$this -> search_errors = new WP_Error ( 'no_matching_users_found' , __ ( 'No matching users were found!' ));
}
function prepare_vars_for_template_usage () {
$this -> search_term = stripslashes ( $this -> search_term ); // done with DB, from now on we want slashes gone
}
function do_paging () {
if ( $this -> total_users_for_query > $this -> users_per_page ) { // have to page the results
2006-10-03 03:16:49 -04:00
$this -> paging_text = paginate_links ( array (
'total' => ceil ( $this -> total_users_for_query / $this -> users_per_page ),
'current' => $this -> page ,
'prev_text' => '« Previous Page' ,
'next_text' => 'Next Page »' ,
'base' => 'users.php?%_%' ,
'format' => 'userspage=%#%' ,
'add_args' => array ( 'usersearch' => urlencode ( $this -> search_term ) )
) );
2006-06-11 13:56:56 -04:00
}
}
function get_results () {
2006-08-24 18:33:16 -04:00
return ( array ) $this -> results ;
2006-06-11 13:56:56 -04:00
}
function page_links () {
echo $this -> paging_text ;
}
function results_are_paged () {
if ( $this -> paging_text )
return true ;
return false ;
}
function is_search () {
if ( $this -> search_term )
return true ;
return false ;
}
}
2003-12-07 20:28:41 -05:00
switch ( $action ) {
2005-07-12 11:53:13 -04:00
case 'promote' :
2006-05-02 18:36:06 -04:00
check_admin_referer ( 'bulk-users' );
2004-05-17 16:34:05 -04:00
2005-07-12 11:53:13 -04:00
if ( empty ( $_POST [ 'users' ])) {
2006-06-27 01:38:56 -04:00
wp_redirect ( $redirect );
2006-11-14 18:44:25 -05:00
exit ();
2005-07-12 11:53:13 -04:00
}
2003-12-23 15:21:29 -05:00
2005-07-12 11:53:13 -04:00
if ( ! current_user_can ( 'edit_users' ) )
2006-07-05 18:00:03 -04:00
wp_die ( __ ( 'You can’t edit users.' ));
2003-12-23 15:21:29 -05:00
2006-06-08 14:36:05 -04:00
$userids = $_POST [ 'users' ];
2005-11-12 23:40:18 -05:00
$update = 'promote' ;
2006-06-08 14:36:05 -04:00
foreach ( $userids as $id ) {
if ( ! current_user_can ( 'edit_user' , $id ) )
2006-07-05 18:00:03 -04:00
wp_die ( __ ( 'You can’t edit that user.' ));
2005-11-12 23:40:18 -05:00
// The new role of the current user must also have edit_users caps
if ( $id == $current_user -> id && ! $wp_roles -> role_objects [ $_POST [ 'new_role' ]] -> has_cap ( 'edit_users' )) {
$update = 'err_admin_role' ;
continue ;
}
2006-06-08 14:36:05 -04:00
$user = new WP_User ( $id );
$user -> set_role ( $_POST [ 'new_role' ]);
}
2006-02-12 02:53:23 -05:00
2006-06-27 01:38:56 -04:00
wp_redirect ( add_query_arg ( 'update' , $update , $redirect ));
2006-11-14 19:02:28 -05:00
exit ();
2005-03-09 17:49:42 -05:00
2005-07-12 11:53:13 -04:00
break ;
2003-12-23 15:21:29 -05:00
2005-07-12 11:53:13 -04:00
case 'dodelete' :
2003-12-23 15:21:29 -05:00
2006-05-02 18:36:06 -04:00
check_admin_referer ( 'delete-users' );
2005-07-12 11:53:13 -04:00
2005-11-12 23:40:18 -05:00
if ( empty ( $_POST [ 'users' ]) ) {
2006-06-27 01:38:56 -04:00
wp_redirect ( $redirect );
2006-11-14 19:02:28 -05:00
exit ();
2004-05-17 08:38:19 -04:00
}
2003-12-23 15:21:29 -05:00
2006-06-05 12:52:21 -04:00
if ( ! current_user_can ( 'delete_users' ) )
2006-07-05 18:00:03 -04:00
wp_die ( __ ( 'You can’t delete users.' ));
2003-12-23 15:21:29 -05:00
2005-07-12 11:53:13 -04:00
$userids = $_POST [ 'users' ];
2005-11-12 23:40:18 -05:00
$update = 'del' ;
2006-06-08 14:36:05 -04:00
$delete_count = 0 ;
foreach ( ( array ) $userids as $id ) {
if ( ! current_user_can ( 'delete_user' , $id ) )
2006-07-05 18:00:03 -04:00
wp_die ( __ ( 'You can’t delete that user.' ));
2006-06-08 14:36:05 -04:00
2005-11-12 23:40:18 -05:00
if ( $id == $current_user -> id ) {
$update = 'err_admin_del' ;
continue ;
}
2006-06-08 14:36:05 -04:00
switch ( $_POST [ 'delete_option' ]) {
2005-07-12 11:53:13 -04:00
case 'delete' :
wp_delete_user ( $id );
break ;
case 'reassign' :
wp_delete_user ( $id , $_POST [ 'reassign_user' ]);
break ;
}
2006-06-08 14:36:05 -04:00
++ $delete_count ;
2005-07-12 11:53:13 -04:00
}
2003-12-23 15:21:29 -05:00
2006-11-08 16:14:53 -05:00
$redirect = add_query_arg ( array ( 'delete_count' => $delete_count , 'update' => $update ), $redirect );
wp_redirect ( $redirect );
2006-11-14 19:02:28 -05:00
exit ();
2003-12-23 15:21:29 -05:00
break ;
2005-07-12 11:53:13 -04:00
case 'delete' :
2006-05-02 18:36:06 -04:00
check_admin_referer ( 'bulk-users' );
2004-05-17 16:34:05 -04:00
2006-11-14 19:02:28 -05:00
if ( empty ( $_POST [ 'users' ]) ) {
2006-06-27 01:38:56 -04:00
wp_redirect ( $redirect );
2006-11-14 19:02:28 -05:00
exit ();
}
2003-12-07 20:28:41 -05:00
2006-06-05 12:52:21 -04:00
if ( ! current_user_can ( 'delete_users' ) )
2006-06-08 14:36:05 -04:00
$errors = new WP_Error ( 'edit_users' , __ ( 'You can’t delete users.' ));
2003-12-07 20:28:41 -05:00
2005-07-12 11:53:13 -04:00
$userids = $_POST [ 'users' ];
2005-07-08 21:27:46 -04:00
2005-07-12 11:53:13 -04:00
include ( 'admin-header.php' );
?>
< form action = " " method = " post " name = " updateusers " id = " updateusers " >
2006-05-02 18:36:06 -04:00
< ? php wp_nonce_field ( 'delete-users' ) ?>
2006-06-08 14:36:05 -04:00
< ? php echo $referer ; ?>
2005-07-12 11:53:13 -04:00
< div class = " wrap " >
2005-11-12 23:40:18 -05: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 14:36:05 -04:00
foreach ( ( array ) $userids as $id ) {
$user = new WP_User ( $id );
if ( $id == $current_user -> id ) {
2005-12-12 17:48:30 -05:00
echo " <li> " . sprintf ( __ ( 'ID #%1s: %2s <strong>The current user will not be deleted.</strong>' ), $id , $user -> user_login ) . " </li> \n " ;
2005-11-12 23:40:18 -05:00
} else {
2005-12-12 17:48:30 -05:00
echo " <li><input type= \" hidden \" name= \" users[] \" value= \" { $id } \" /> " . sprintf ( __ ( 'ID #%1s: %2s' ), $id , $user -> user_login ) . " </li> \n " ;
2005-11-12 23:40:18 -05:00
$go_delete = true ;
2005-07-12 11:53:13 -04:00
}
2006-06-08 14:36:05 -04: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 )
if ( $login -> ID == $current_user -> id || ! in_array ( $login -> ID , $userids ) )
$user_dropdown .= " <option value= \" { $login -> ID } \" > { $login -> user_login } </option> " ;
$user_dropdown .= '</select>' ;
?>
</ ul >
< ? php if ( $go_delete ) : ?>
< p >< ? php _e ( 'What should be done with posts and links owned by this user?' ); ?> </p>
2005-07-12 11:53:13 -04: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 17:37:02 -05:00
< ? php echo '<label for="delete_option1">' . __ ( 'Attribute all posts and links to:' ) . " </label> $user_dropdown " ; ?> </li>
2005-07-12 11:53:13 -04:00
</ ul >
< input type = " hidden " name = " action " value = " dodelete " />
< p class = " submit " >< input type = " submit " name = " submit " value = " <?php _e('Confirm Deletion'); ?> " /></ p >
2005-11-12 23:40:18 -05:00
< ? php else : ?>
< p >< ? php _e ( 'There are no valid users selected for deletion.' ); ?> </p>
< ? php endif ; ?>
2005-07-12 11:53:13 -04:00
</ div >
</ form >
< ? php
2003-12-07 20:28:41 -05:00
break ;
2005-07-12 11:53:13 -04:00
case 'adduser' :
2006-05-02 18:36:06 -04:00
check_admin_referer ( 'add-user' );
2006-02-12 02:53:23 -05:00
2006-06-05 12:52:21 -04:00
if ( ! current_user_can ( 'create_users' ) )
2006-07-05 18:00:03 -04:00
wp_die ( __ ( 'You can’t create users.' ));
2006-06-05 12:52:21 -04:00
2006-04-01 19:31:26 -05:00
$user_id = add_user ();
2006-06-08 14:36:05 -04:00
$update = 'add' ;
2006-04-01 19:31:26 -05:00
if ( is_wp_error ( $user_id ) )
2006-06-08 14:36:05 -04:00
$add_user_errors = $user_id ;
2006-04-01 19:31:26 -05:00
else {
2006-06-08 14:36:05 -04:00
$new_user_login = apply_filters ( 'pre_user_login' , sanitize_user ( stripslashes ( $_POST [ 'user_login' ]), true ));
2006-11-08 16:14:53 -05:00
$redirect = add_query_arg ( array ( 'usersearch' => urlencode ( $new_user_login ), 'update' => $update ), $redirect );
wp_redirect ( $redirect . '#user-' . $user_id );
2005-07-12 11:53:13 -04:00
die ();
}
2003-12-07 20:28:41 -05:00
default :
2006-06-08 14:36:05 -04:00
wp_enqueue_script ( 'admin-users' );
2006-04-01 19:31:26 -05:00
2006-06-08 14:36:05 -04:00
include ( 'admin-header.php' );
2006-06-11 13:56:56 -04:00
// Query the users
$wp_user_search = new WP_User_Search ( $_GET [ 'usersearch' ], $_GET [ 'userspage' ]);
2006-06-08 14:36:05 -04:00
// Make the user objects
2006-06-11 13:56:56 -04:00
foreach ( $wp_user_search -> get_results () as $userid ) {
2005-07-12 11:53:13 -04:00
$tmp_user = new WP_User ( $userid );
2005-09-06 23:16:08 -04:00
$roles = $tmp_user -> roles ;
2006-01-24 22:44:35 -05:00
$role = array_shift ( $roles );
2005-11-15 21:54:23 -05:00
$roleclasses [ $role ][ $tmp_user -> user_login ] = $tmp_user ;
2006-02-12 02:53:23 -05:00
}
2006-06-08 14:36:05 -04:00
if ( isset ( $_GET [ 'update' ]) ) :
2005-07-12 11:53:13 -04:00
switch ( $_GET [ 'update' ]) {
case 'del' :
2006-06-08 14:36:05 -04:00
case 'del_many' :
2005-07-12 11:53:13 -04:00
?>
2006-06-08 14:36:05 -04:00
< ? php $delete_count = ( int ) $_GET [ 'delete_count' ]; ?>
< div id = " message " class = " updated fade " >< p >< ? php printf ( __ ( '%1$s %2$s deleted.' ), $delete_count , __ngettext ( 'user' , 'users' , $delete_count ) ); ?> </p></div>
2005-07-12 11:53:13 -04:00
< ? php
break ;
case 'add' :
?>
2005-08-07 21:13:22 -04:00
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'New user created.' ); ?> </p></div>
2005-07-12 11:53:13 -04:00
< ? php
break ;
case 'promote' :
?>
2005-08-07 21:13:22 -04:00
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Changed roles.' ); ?> </p></div>
2005-07-12 11:53:13 -04:00
< ? php
break ;
2005-11-12 23:40:18 -05:00
case 'err_admin_role' :
?>
< div id = " message " class = " error " >< p >< ? php _e ( " The current user's role must have user editing capabilities. " ); ?> </p></div>
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Other user roles have been changed.' ); ?> </p></div>
< ? php
break ;
case 'err_admin_del' :
?>
< div id = " message " class = " error " >< p >< ? php _e ( " You can't delete the current user. " ); ?> </p></div>
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Other users have been deleted.' ); ?> </p></div>
< ? php
break ;
2005-07-12 11:53:13 -04:00
}
2006-06-08 14:36:05 -04:00
endif ; ?>
< ? php if ( is_wp_error ( $errors ) ) : ?>
2005-07-12 11:53:13 -04:00
< div class = " error " >
< ul >
< ? php
2006-04-01 19:48:14 -05:00
foreach ( $errors -> get_error_messages () as $message )
2006-06-08 14:36:05 -04:00
echo " <li> $message </li> " ;
2005-07-12 11:53:13 -04:00
?>
</ ul >
</ div >
2006-06-08 14:36:05 -04:00
< ? php endif ; ?>
< div class = " wrap " >
2006-06-10 17:23:19 -04:00
2006-06-11 13:56:56 -04:00
< ? php if ( $wp_user_search -> is_search () ) : ?>
2006-08-24 18:33:16 -04:00
< h2 >< ? php printf ( __ ( 'Users Matching "%s" by Role' ), wp_specialchars ( $wp_user_search -> search_term )); ?> </h2>
2006-06-10 17:23:19 -04:00
< ? php else : ?>
< h2 >< ? php _e ( 'User List by Role' ); ?> </h2>
< ? php endif ; ?>
2006-06-08 14:36:05 -04:00
< form action = " " method = " get " name = " search " id = " search " >
2006-10-05 21:14:47 -04:00
< p >< input type = " text " name = " usersearch " id = " usersearch " value = " <?php echo wp_specialchars( $wp_user_search->search_term , 1); ?> " /> < input type = " submit " value = " <?php _e('Search users »'); ?> " class = " button " /></ p >
2006-06-08 14:36:05 -04:00
</ form >
2006-06-10 17:23:19 -04:00
2006-06-11 13:56:56 -04:00
< ? php if ( is_wp_error ( $wp_user_search -> search_errors ) ) : ?>
2006-06-10 17:23:19 -04:00
< div class = " error " >
< ul >
< ? php
2006-06-11 13:56:56 -04:00
foreach ( $wp_user_search -> search_errors -> get_error_messages () as $message )
2006-06-10 17:23:19 -04:00
echo " <li> $message </li> " ;
?>
</ ul >
</ div >
2006-06-08 14:36:05 -04:00
< ? php endif ; ?>
2006-06-10 17:23:19 -04:00
2006-06-08 14:36:05 -04:00
2006-06-11 13:56:56 -04:00
< ? php if ( $wp_user_search -> get_results () ) : ?>
2006-02-12 02:53:23 -05:00
2006-06-11 13:56:56 -04:00
< ? php if ( $wp_user_search -> is_search () ) : ?>
2006-06-10 17:23:19 -04:00
< p >< a href = " users.php " >< ? php _e ( '« Back to All Users' ); ?> </a></p>
2006-06-08 14:36:05 -04:00
< ? php endif ; ?>
2006-06-10 17:23:19 -04:00
2006-10-05 21:14:47 -04:00
< h3 >< ? php
if ( 0 == $wp_user_search -> first_user && $wp_user_search -> total_users_for_query <= 50 )
printf ( __ ( '%3$s shown below' ), $wp_user_search -> first_user + 1 , min ( $wp_user_search -> first_user + $wp_user_search -> users_per_page , $wp_user_search -> total_users_for_query ), $wp_user_search -> total_users_for_query );
else
printf ( __ ( '%1$s – %2$s of %3$s shown below' ), $wp_user_search -> first_user + 1 , min ( $wp_user_search -> first_user + $wp_user_search -> users_per_page , $wp_user_search -> total_users_for_query ), $wp_user_search -> total_users_for_query ); ?> </h3>
2006-06-10 17:23:19 -04:00
2006-06-11 13:56:56 -04:00
< ? php if ( $wp_user_search -> results_are_paged () ) : ?>
2006-10-05 21:14:47 -04:00
< div class = " user-paging-text " >< p >< ? php $wp_user_search -> page_links (); ?> </p></div>
2006-06-10 17:23:19 -04:00
< ? php endif ; ?>
< form action = " " method = " post " name = " updateusers " id = " updateusers " >
< ? php wp_nonce_field ( 'bulk-users' ) ?>
2006-05-10 16:35:10 -04:00
< table class = " widefat " >
< ? php
foreach ( $roleclasses as $role => $roleclass ) {
2006-10-03 23:49:56 -04:00
uksort ( $roleclass , " strnatcasecmp " );
2006-05-10 16:35:10 -04:00
?>
2005-07-12 11:53:13 -04:00
2006-05-10 16:35:10 -04:00
< tr >
2006-06-10 16:26:26 -04:00
< ? php if ( ! empty ( $role ) ) : ?>
2006-09-26 20:51:17 -04:00
< th colspan = " 7 " >< h3 >< ? php echo $wp_roles -> role_names [ $role ]; ?> </h3></th>
2006-06-10 16:26:26 -04:00
< ? php else : ?>
2006-09-26 20:51:17 -04:00
< th colspan = " 7 " >< h3 >< em >< ? php _e ( 'No role for this blog' ); ?> </h3></th>
2006-06-10 16:26:26 -04:00
< ? php endif ; ?>
2006-05-10 16:35:10 -04:00
</ tr >
2006-06-08 14:36:05 -04:00
< tr class = " thead " >
2006-09-26 20:51:17 -04:00
< th >< ? php _e ( 'ID' ) ?> </th>
< th >< ? php _e ( 'Username' ) ?> </th>
< th >< ? php _e ( 'Name' ) ?> </th>
< th >< ? php _e ( 'E-mail' ) ?> </th>
< th >< ? php _e ( 'Website' ) ?> </th>
< th colspan = " 2 " style = " text-align: center " >< ? php _e ( 'Actions' ) ?> </th>
2006-05-10 16:35:10 -04:00
</ tr >
</ thead >
< tbody id = " role-<?php echo $role ; ?> " >< ? php
$style = '' ;
2006-06-08 14:36:05 -04:00
foreach ( ( array ) $roleclass as $user_object ) {
$style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"' ;
echo " \n \t " . user_row ( $user_object , $style );
2006-05-10 16:35:10 -04:00
}
?>
2006-02-12 02:53:23 -05:00
2006-05-10 16:35:10 -04:00
</ tbody >
2006-06-08 14:36:05 -04:00
< ? php } ?>
2006-05-10 16:35:10 -04:00
</ table >
2004-09-21 19:36:27 -04:00
2006-06-11 13:56:56 -04:00
< ? php if ( $wp_user_search -> results_are_paged () ) : ?>
2006-10-05 21:14:47 -04:00
< div class = " user-paging-text " >< p >< ? php $wp_user_search -> page_links (); ?> </p></div>
2006-06-08 14:36:05 -04:00
< ? php endif ; ?>
2004-09-21 19:36:27 -04:00
2006-09-19 02:11:42 -04:00
< h3 >< ? php _e ( 'Update Selected' ); ?> </h3>
2006-06-08 14:36:05 -04:00
< ul style = " list-style:none; " >
< li >< input type = " radio " name = " action " id = " action0 " value = " delete " /> < label for = " action0 " >< ? php _e ( 'Delete checked users.' ); ?> </label></li>
< li >
< input type = " radio " name = " action " id = " action1 " value = " promote " /> < label for = " action1 " >< ? php _e ( 'Set the Role of checked users to:' ); ?> </label>
2006-07-06 00:34:46 -04:00
< select name = " new_role " onchange = " getElementById('action1').checked = 'true' " >< ? php wp_dropdown_roles (); ?> </select>
2006-06-08 14:36:05 -04:00
</ li >
</ ul >
2006-07-06 00:34:46 -04:00
< p class = " submit " style = " width: 420px " >
2006-06-08 14:36:05 -04:00
< ? php echo $referer ; ?>
2006-07-06 00:34:46 -04:00
< input type = " submit " value = " <?php _e('Bulk Update »'); ?> " />
2006-06-08 14:36:05 -04:00
</ p >
2005-07-12 11:53:13 -04:00
</ form >
2006-06-10 17:23:19 -04:00
< ? php endif ; ?>
</ div >
2006-06-08 14:36:05 -04:00
2005-03-09 17:49:42 -05:00
< ? php
2006-06-08 14:36:05 -04:00
if ( is_wp_error ( $add_user_errors ) ) {
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 = wp_specialchars ( stripslashes ( $_POST [ $formpost ]));
}
unset ( $name );
}
2005-03-09 17:49:42 -05:00
?>
2006-06-08 14:36:05 -04:00
< div class = " wrap " >
< h2 id = " add-new-user " >< ? php _e ( 'Add New User' ) ?> </h2>
2006-10-05 21:14:47 -04:00
< div class = " narrow " >
2006-08-30 17:46:31 -04:00
< ? php echo '<p>' . sprintf ( __ ( 'Users can <a href="%1$s">register themselves</a> or you can manually create users here.' ), get_option ( 'siteurl' ) . '/wp-register.php' ) . '</p>' ; ?>
2006-06-08 14:36:05 -04:00
< form action = " #add-new-user " method = " post " name = " adduser " id = " adduser " >
< ? php wp_nonce_field ( 'add-user' ) ?>
< table class = " editform " width = " 100% " cellspacing = " 2 " cellpadding = " 5 " >
< tr >
2006-08-30 13:09:50 -04:00
< th scope = " row " width = " 33% " >< ? php _e ( 'Username (required)' ) ?> <input name="action" type="hidden" id="action" value="adduser" /></th>
2006-06-08 14:36:05 -04:00
< td width = " 66% " >< input name = " user_login " type = " text " id = " user_login " value = " <?php echo $new_user_login ; ?> " /></ td >
</ tr >
< tr >
< th scope = " row " >< ? php _e ( 'First Name' ) ?> </th>
< td >< input name = " first_name " type = " text " id = " first_name " value = " <?php echo $new_user_firstname ; ?> " /></ td >
</ tr >
< tr >
< th scope = " row " >< ? php _e ( 'Last Name' ) ?> </th>
< td >< input name = " last_name " type = " text " id = " last_name " value = " <?php echo $new_user_lastname ; ?> " /></ td >
</ tr >
< tr >
2006-08-30 13:09:50 -04:00
< th scope = " row " >< ? php _e ( 'E-mail (required)' ) ?> </th>
2006-06-08 14:36:05 -04:00
< td >< input name = " email " type = " text " id = " email " value = " <?php echo $new_user_email ; ?> " /></ td >
</ tr >
< tr >
< th scope = " row " >< ? php _e ( 'Website' ) ?> </th>
< td >< input name = " url " type = " text " id = " url " value = " <?php echo $new_user_uri ; ?> " /></ td >
</ tr >
< ? php if ( apply_filters ( 'show_password_fields' , true ) ) : ?>
< tr >
< th scope = " row " >< ? php _e ( 'Password (twice)' ) ?> </th>
< td >< input name = " pass1 " type = " password " id = " pass1 " />
< br />
< input name = " pass2 " type = " password " id = " pass2 " /></ td >
</ tr >
< ? php endif ; ?>
< tr >
< th scope = " row " >< ? php _e ( 'Role' ); ?> </th>
< td >< select name = " role " id = " role " >
< ? php
if ( ! $new_user_role )
2006-08-30 17:46:31 -04:00
$new_user_role = get_option ( 'default_role' );
2006-06-08 14:36:05 -04:00
wp_dropdown_roles ( $new_user_role );
?>
</ select >
</ td >
</ tr >
</ table >
< p class = " submit " >
< ? php echo $referer ; ?>
< input name = " adduser " type = " submit " id = " addusersub " value = " <?php _e('Add User »') ?> " />
</ p >
2006-10-05 21:14:47 -04:00
</ div >
2006-06-08 14:36:05 -04:00
</ form >
< ? php if ( is_wp_error ( $add_user_errors ) ) : ?>
< div class = " error " >
< ? php
foreach ( $add_user_errors -> get_error_messages () as $message )
2006-09-16 23:08:47 -04:00
echo " <p> $message </p> " ;
2006-06-08 14:36:05 -04:00
?>
</ div >
2005-03-09 17:49:42 -05:00
< ? php endif ; ?>
2006-04-01 19:31:26 -05:00
< div id = " ajax-response " ></ div >
2003-12-07 20:28:41 -05:00
</ div >
2006-06-08 14:36:05 -04:00
< ? php
2003-12-07 20:28:41 -05:00
break ;
2006-06-08 14:36:05 -04:00
} // end of the $action switch
2004-08-22 19:24:50 -04:00
2003-12-10 19:22:36 -05:00
include ( 'admin-footer.php' );
2006-08-30 13:09:50 -04:00
?>