diff --git a/admin/assets/css/um-admin-misc.css b/admin/assets/css/um-admin-misc.css index 46348c1b..cbbe9603 100644 --- a/admin/assets/css/um-admin-misc.css +++ b/admin/assets/css/um-admin-misc.css @@ -251,3 +251,9 @@ p.disabled-on-off .um-admin-yesno *{ border-radius: 0 3px 3px 0; border: 1px solid #ddd; } + +.um-admin.users-php .subsubsub li.subsep { + display: block; + visibility: hidden; + height: 0; +} diff --git a/admin/core/um-admin-users.php b/admin/core/um-admin-users.php index cbaf7b00..8e2dea07 100644 --- a/admin/core/um-admin-users.php +++ b/admin/core/um-admin-users.php @@ -23,7 +23,7 @@ class UM_Admin_Users { add_filter('user_row_actions', array(&$this, 'user_row_actions'), 10, 2); } - + /*** *** @Custom row actions for users page ***/ @@ -42,7 +42,7 @@ class UM_Admin_Users { return $actions; } - + /*** *** @sort users by newest first ***/ @@ -57,7 +57,7 @@ class UM_Admin_Users { } return $query; - + } /*** @@ -67,37 +67,37 @@ class UM_Admin_Users { global $wpdb, $pagenow; if ( is_admin() && $pagenow=='users.php' && isset($_GET[ $this->custom_role ]) && $_GET[ $this->custom_role ] != '') { - + $role = $_GET[ $this->custom_role ]; - $query->query_where = - str_replace('WHERE 1=1', + $query->query_where = + str_replace('WHERE 1=1', "WHERE 1=1 AND {$wpdb->users}.ID IN ( - SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta - WHERE {$wpdb->usermeta}.meta_key = 'role' - AND {$wpdb->usermeta}.meta_value = '{$role}')", + SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta + WHERE {$wpdb->usermeta}.meta_key = 'role' + AND {$wpdb->usermeta}.meta_value = '{$role}')", $query->query_where ); } - + if ( is_admin() && $pagenow=='users.php' && isset($_GET[ 'status' ]) && $_GET[ 'status' ] != '') { - + $status = urldecode($_GET[ 'status' ]); - + if ( $status == 'needs-verification') { - $query->query_where = str_replace('WHERE 1=1', + $query->query_where = str_replace('WHERE 1=1', "WHERE 1=1 AND {$wpdb->users}.ID IN ( - SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta - WHERE {$wpdb->usermeta}.meta_key = '_um_verified' - AND {$wpdb->usermeta}.meta_value = 'pending')", + SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta + WHERE {$wpdb->usermeta}.meta_key = '_um_verified' + AND {$wpdb->usermeta}.meta_value = 'pending')", $query->query_where ); } else { - $query->query_where = str_replace('WHERE 1=1', + $query->query_where = str_replace('WHERE 1=1', "WHERE 1=1 AND {$wpdb->users}.ID IN ( - SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta - WHERE {$wpdb->usermeta}.meta_key = 'account_status' - AND {$wpdb->usermeta}.meta_value = '{$status}')", + SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta + WHERE {$wpdb->usermeta}.meta_key = 'account_status' + AND {$wpdb->usermeta}.meta_value = '{$status}')", $query->query_where ); } @@ -105,9 +105,9 @@ class UM_Admin_Users { } return $query; - + } - + /*** *** @Change the roles with UM roles ***/ @@ -115,15 +115,16 @@ class UM_Admin_Users { global $ultimatemember, $query; remove_filter('pre_user_query', array(&$this, 'custom_users_filter') ); - - $views = array(); + + $old_views = $views; + $views = array(); if ( !isset($_REQUEST[ $this->custom_role ]) && !isset($_REQUEST['status']) ) { $views['all'] = 'All ('.$ultimatemember->query->count_users().')'; } else { $views['all'] = 'All ('.$ultimatemember->query->count_users().')'; } - + $status = array( 'approved' => __('Approved','ultimatemember'), 'awaiting_admin_review' => __('Pending review','ultimatemember'), @@ -131,45 +132,56 @@ class UM_Admin_Users { 'inactive' => __('Inactive','ultimatemember'), 'rejected' => __('Rejected','ultimatemember') ); - + $ultimatemember->query->count_users_by_status( 'unassigned' ); - + foreach( $status as $k => $v ) { if ( isset($_REQUEST['status']) && $_REQUEST['status'] == $k ) { $current = 'class="current"'; } else { $current = ''; } - + $views[ $k ] = ''. $v . ' ('.$ultimatemember->query->count_users_by_status( $k ).')'; } - + $views = apply_filters('um_admin_views_users', $views ); - + + // remove all filters + unset($old_views['all']); + + // add separator + $views['subsep'] = ''; + + // merge views + foreach( $old_views as $key => $view ) { + $views[ $key ] = $view; + } + return $views; } - + /*** *** @Bulk user editing actions ***/ function um_bulk_users_edit(){ global $ultimatemember; - + $admin_err = 0; if (isset($_REQUEST) && !empty ($_REQUEST) ){ - + // bulk change role if (isset($_REQUEST['users']) && is_array($_REQUEST['users']) && isset($_REQUEST['um_changeit']) && $_REQUEST['um_changeit'] != '' && isset($_REQUEST['um_change_role']) && !empty($_REQUEST['um_change_role']) ){ - + if ( ! current_user_can( 'edit_users' ) ) wp_die( __( 'You do not have enough permissions to do that.','ultimatemember') ); - + check_admin_referer('bulk-users'); - + $users = $_REQUEST['users']; $new_role = current( array_filter( $_REQUEST['um_change_role'] ) ); - + foreach($users as $user_id){ $ultimatemember->user->set( $user_id ); // change role for non-wp admins or non-community admins only @@ -179,7 +191,7 @@ class UM_Admin_Users { $admin_err = 1; } } - + if ( $admin_err == 0 ){ wp_redirect( admin_url('users.php?update=promote') ); exit; @@ -187,38 +199,38 @@ class UM_Admin_Users { wp_redirect( admin_url('users.php?update=err_admin_role') ); exit; } - + } else if ( isset($_REQUEST['um_changeit']) && $_REQUEST['um_changeit'] != '' ) { - + wp_redirect( admin_url('users.php') ); exit; - + } - + // bulk edit users if ( isset($_REQUEST['users']) && is_array($_REQUEST['users']) && isset($_REQUEST['um_bulkedit']) && $_REQUEST['um_bulkedit'] != '' && isset($_REQUEST['um_bulk_action']) && !empty($_REQUEST['um_bulk_action']) ){ - + if ( ! current_user_can( 'edit_users' ) ) wp_die( __( 'You do not have enough permissions to do that.','ultimatemember') ); - + check_admin_referer('bulk-users'); - + $users = $_REQUEST['users']; $bulk_action = current( array_filter( $_REQUEST['um_bulk_action']) ); foreach($users as $user_id){ $ultimatemember->user->set( $user_id ); if ( !um_user('super_admin') ) { - + do_action("um_admin_user_action_hook", $bulk_action); - + do_action("um_admin_user_action_{$bulk_action}_hook"); - + } else { $admin_err = 1; } } - + // Finished. redirect now if ( $admin_err == 0 ){ wp_redirect( admin_url('users.php?update=users_updated') ); @@ -227,36 +239,36 @@ class UM_Admin_Users { wp_redirect( admin_url('users.php?update=err_users_updated') ); exit; } - + } else if ( isset($_REQUEST['um_bulkedit']) && $_REQUEST['um_bulkedit'] != '' ) { - + wp_redirect( admin_url('users.php') ); exit; - + } - + // filter by user role if ( isset($_REQUEST['um_filter_role']) && ! isset( $_REQUEST['um_filter_processed'] ) && ( ! isset( $_REQUEST['new_role'] ) || empty( $_REQUEST['new_role'] ) ) && $_REQUEST['um_filter_role'] ) { $filter_role = current( array_filter( $_REQUEST['um_filter_role'] ) ); $uri = add_query_arg('um_role',$filter_role); $uri = add_query_arg('s',$_REQUEST['s'], $uri); $uri = add_query_arg('um_filter_processed',true, $uri); - + exit( wp_redirect( $uri ) ); } - + } } - + /*** *** @Add UM roles to users admin ***/ function restrict_manage_users() { global $ultimatemember; ?> - +