custom_role = 'um_role'; add_filter('manage_users_columns', array(&$this, 'manage_users_columns') ); add_action('manage_users_custom_column', array(&$this, 'manage_users_custom_column'), 10, 3); add_action('restrict_manage_users', array(&$this, 'restrict_manage_users') ); add_action('admin_init', array(&$this, 'um_bulk_users_edit'), 9); add_filter('views_users', array(&$this, 'views_users') ); add_filter('pre_user_query', array(&$this, 'um_role_filter') ); add_filter('user_row_actions', array(&$this, 'user_row_actions'), 10, 2); } /*** *** @Custom row actions for users page ***/ function user_row_actions($actions, $user_object) { um_fetch_user( $user_object->ID ); $actions = array(); $actions['backend_profile'] = "" . __( 'Edit','ultimatemember' ) . ""; $actions['frontend_profile'] = "" . __( 'Edit in frontend','ultimatemember') . ""; return $actions; } /*** *** @Custom role filter ***/ function um_role_filter( $query ){ global $pagenow; if ( is_admin() && $pagenow=='users.php' && isset($_GET[ $this->custom_role ]) && $_GET[ $this->custom_role ] != '') { $query->role = urldecode($_GET[ $this->custom_role ]); global $wpdb; $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 = '{$query->role}')", $query->query_where ); } return $query; } /*** *** @Change the roles with UM roles ***/ function views_users( $views ) { global $ultimatemember, $query; remove_filter('pre_user_query', array(&$this, 'um_role_filter') ); $views = array(); if ( !isset($_REQUEST[ $this->custom_role ]) ) { $views['all'] = 'All ('.$ultimatemember->query->count_users().')'; } else { $views['all'] = 'All ('.$ultimatemember->query->count_users().')'; } $roles = $ultimatemember->query->get_roles(); foreach($roles as $role => $role_name){ if ( isset($_REQUEST[ $this->custom_role ]) && $_REQUEST[ $this->custom_role ] == $role) { $views[ $role ] = ''.$role_name.' ('. $ultimatemember->query->count_users_by_role($role) .')'; } else { $views[ $role ] = ''.$role_name.' ('. $ultimatemember->query->count_users_by_role($role) . ')'; } } 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 = $_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 if ( !um_user('super_admin') || um_user('role') != 'admin' ) { $ultimatemember->user->set_role( $new_role ); } else { $admin_err = 1; } } if ( $admin_err == 0 ){ wp_redirect( admin_url('users.php?update=promote') ); exit; } else { 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 = $_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; } } if ( $admin_err == 0 ){ wp_redirect( admin_url('users.php?update=users_updated') ); exit; } else { 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; } } } /*** *** @Add UM roles to users admin ***/ function restrict_manage_users() { global $ultimatemember; ?>
_tooltip( __('This is the membership role set by Ultimate Member plugin','ultimatemember') ); $columns['role'] = __('WordPress Role','ultimatemember') . $admin->_tooltip( __('This is the membership role set by WordPress','ultimatemember') ); $columns['um_status'] = __('Status','ultimatemember') . $admin->_tooltip( __('This is current user status in your membership site','ultimatemember') ); return $columns; } /*** *** @show user columns ***/ function manage_users_custom_column($value, $column_name, $user_id) { global $ultimatemember; if ( 'um_status' == $column_name ) { um_fetch_user( $user_id ); if ( um_user('account_status') == 'approved' ) { $output = ''.um_user('account_status_name').''; } else { $output = ''.um_user('account_status_name').''; } return $output; } if ( $this->custom_role == $column_name ) { um_fetch_user( $user_id ); return um_user('role_name'); } return $value; } }