added filtering to display_users
Showing
3 changed files
with
21 additions
and
9 deletions
| ... | @@ -437,5 +437,6 @@ input.dp-applied { | ... | @@ -437,5 +437,6 @@ input.dp-applied { |
| 437 | 437 | ||
| 438 | .users-role-bar { margin-top:15px; font-size:11px; } | 438 | .users-role-bar { margin-top:15px; font-size:11px; } |
| 439 | .users-role-bar a { text-decoration: none; } | 439 | .users-role-bar a { text-decoration: none; } |
| 440 | .sm_count { font-size:11px; color:#999; } | 440 | .users-role-bar a.active { color:#000; font-weight: bold; } |
| 441 | .sm_count { font-size:11px; color:#999; font-weight: normal; } | ||
| 441 | 442 | ... | ... |
| ... | @@ -57,12 +57,21 @@ function search_special_status($key) { | ... | @@ -57,12 +57,21 @@ function search_special_status($key) { |
| 57 | } | 57 | } |
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | function get_users() { | 60 | function get_users($role = null, $start=0, $limit=20) { |
| 61 | global $wpdb; | 61 | global $wpdb; |
| 62 | 62 | ||
| 63 | $users = array(); | 63 | $users = array(); |
| 64 | 64 | ||
| 65 | $wp_user_search = $wpdb->get_results("SELECT ID, display_name,user_login,user_email FROM $wpdb->users ORDER BY ID"); | 65 | $blog_prefix = $wpdb->get_blog_prefix( $blog_id ); |
| 66 | |||
| 67 | if ($role) { | ||
| 68 | $filter = "AND {$wpdb->usermeta}.user_id IN (SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='wp_capabilities' AND meta_value LIKE '%$role%' )"; | ||
| 69 | } else { | ||
| 70 | $filter = ""; | ||
| 71 | } | ||
| 72 | $query = "SELECT {$wpdb->users}.*, meta_value as last_name FROM $wpdb->users, $wpdb->usermeta WHERE {$wpdb->users}.ID = {$wpdb->usermeta}.user_id AND meta_key = 'last_name' $filter ORDER BY last_name ASC LIMIT $start,$limit"; | ||
| 73 | |||
| 74 | $wp_user_search = $wpdb->get_results($query); | ||
| 66 | foreach ( $wp_user_search as $user ) { | 75 | foreach ( $wp_user_search as $user ) { |
| 67 | $uid = (int) $user->ID; | 76 | $uid = (int) $user->ID; |
| 68 | 77 | ||
| ... | @@ -74,7 +83,7 @@ function get_users() { | ... | @@ -74,7 +83,7 @@ function get_users() { |
| 74 | reset($user->roles); | 83 | reset($user->roles); |
| 75 | $role = ucwords(current($user->roles)); | 84 | $role = ucwords(current($user->roles)); |
| 76 | 85 | ||
| 77 | $users[] = array('uid'=>$uid,'name'=>$name,'role'=>$role, 'user_login'=>$user_login, 'email'=>$user->user_email); | 86 | $users[] = array('uid'=>$uid,'name'=>$name,'first_name'=>get_user_meta($uid,'first_name',true),'last_name'=>get_user_meta($uid, 'last_name',true),'role'=>$role, 'user_login'=>$user_login, 'email'=>$user->user_email); |
| 78 | } | 87 | } |
| 79 | return $users; | 88 | return $users; |
| 80 | } | 89 | } | ... | ... |
| ... | @@ -20,11 +20,11 @@ use WP_User; | ... | @@ -20,11 +20,11 @@ use WP_User; |
| 20 | 20 | ||
| 21 | <div class="users-role-bar"> | 21 | <div class="users-role-bar"> |
| 22 | <?php $users = count_users(); ?> | 22 | <?php $users = count_users(); ?> |
| 23 | <a href="/wp-admin/admin.php?page=cbv_users">All (<?php echo $users['total_users']?>)</a> | 23 | <a href="/wp-admin/admin.php?page=cbv_users" <?php echo (!isset($_GET['role']) ? "class='active'" : ""); ?>>All <span class="sm_count">(<?php echo $users['total_users']?>)</span></a> |
| 24 | <?php | 24 | <?php |
| 25 | if (isset($users['avail_roles'])) { | 25 | if (isset($users['avail_roles'])) { |
| 26 | foreach($users['avail_roles'] as $role=>$counted) { | 26 | foreach($users['avail_roles'] as $role=>$counted) { |
| 27 | print ' | <a href="/wp-admin/admin.php?page=cbv_users&role='.$role.'">'.ucwords($role).' <span class="sm_count">('.$counted.')</span></a>'; | 27 | print ' | <a href="/wp-admin/admin.php?page=cbv_users&role='.$role.'" '.( (isset($_GET['role']) && $_GET['role']==$role) ? "class='active'" : "").'>'.ucwords($role).' <span class="sm_count">('.$counted.')</span></a>'; |
| 28 | } | 28 | } |
| 29 | } | 29 | } |
| 30 | 30 | ||
| ... | @@ -34,20 +34,22 @@ use WP_User; | ... | @@ -34,20 +34,22 @@ use WP_User; |
| 34 | <table cellspacing="0" class="widefat post fixed" style="margin-top:15px;"> | 34 | <table cellspacing="0" class="widefat post fixed" style="margin-top:15px;"> |
| 35 | <thead> | 35 | <thead> |
| 36 | <tr> | 36 | <tr> |
| 37 | <th scope="col" width="180" class="manage-column">Username</th> | ||
| 38 | <th scope="col" class="manage-column">Name</th> | 37 | <th scope="col" class="manage-column">Name</th> |
| 38 | <th scope="col" width="180" class="manage-column">Username</th> | ||
| 39 | <th scope="col" width="250" class="manage-column">Email</th> | 39 | <th scope="col" width="250" class="manage-column">Email</th> |
| 40 | <th scope="col" width="200" class="manage-column">Role</th> | 40 | <th scope="col" width="200" class="manage-column">Role</th> |
| 41 | </tr> | 41 | </tr> |
| 42 | </thead> | 42 | </thead> |
| 43 | <tbody> | 43 | <tbody> |
| 44 | <?php $users = get_users(); | 44 | <?php |
| 45 | $filter_role = (isset($_GET['role']) ? $_GET['role'] : null); | ||
| 46 | $users = get_users($filter_role, 0); | ||
| 45 | 47 | ||
| 46 | foreach($users as $user): | 48 | foreach($users as $user): |
| 47 | ?> | 49 | ?> |
| 48 | <tr> | 50 | <tr> |
| 51 | <td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['last_name'].', '.$user['first_name']?></a></td> | ||
| 49 | <td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['user_login']?></a></td> | 52 | <td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['user_login']?></a></td> |
| 50 | <td><a href="/wp-admin/admin.php?page=cbv_users&action=edit&uid=<?php echo $user['uid']?>"><?php echo $user['name']?></a></td> | ||
| 51 | <td><?php echo $user['email']?></td> | 53 | <td><?php echo $user['email']?></td> |
| 52 | <td><?php echo $user['role']?></td> | 54 | <td><?php echo $user['role']?></td> |
| 53 | </tr> | 55 | </tr> | ... | ... |
-
Please register or sign in to post a comment