web/wp-content/plugins/acf-extended/includes/acfe-user-functions.php (35 lines of code) (raw):

<?php if(!defined('ABSPATH')){ exit; } /** * acfe_get_roles * * Retrieve all available roles (working with WPMU) * * @param array $filtered_user_roles * * @return array */ function acfe_get_roles($filtered_user_roles = array()){ $list = array(); global $wp_roles; if(is_multisite()){ $list['super_admin'] = __('Super Admin'); } foreach($wp_roles->roles as $role => $settings){ $list[ $role ] = $settings['name']; } $user_roles = $list; if(!empty($filtered_user_roles)){ $user_roles = array(); foreach($list as $role => $role_label){ if(in_array($role, $filtered_user_roles)){ $user_roles[$role] = $role_label; } } } return $user_roles; } /** * acfe_get_current_user_roles * * Retrieve currently logged user roles * * @return false|string[] */ function acfe_get_current_user_roles(){ global $current_user; if(!is_object($current_user) || !isset($current_user->roles)){ return false; } $roles = $current_user->roles; if(is_multisite() && current_user_can('setup_network')){ $roles[] = 'super_admin'; } return $roles; }