/** * Sets up needed actions/filters for the admin to initialize. * * @since 1.0.0 * @access public * @return void */ public function __construct() { // If multiple roles per user is not enabled, bail. if (!members_multiple_user_roles_enabled()) { return; } // Only run our customization on the 'user-edit.php' page in the admin. add_action('load-user-edit.php', array($this, 'load_user_edit')); }
/** * Handles the output of the roles column on the `users.php` screen. * * @since 1.0.0 * @access public * @param string $output * @param string $column * @param int $user_id * @return string */ function members_manage_users_custom_column($output, $column, $user_id) { if ('roles' === $column && members_multiple_user_roles_enabled()) { $user = new WP_User($user_id); $user_roles = array(); $output = esc_html__('None', 'members'); if (is_array($user->roles)) { foreach ($user->roles as $role) { if (members_role_exists($role)) { $user_roles[] = members_translate_role($role); } } $output = join(', ', $user_roles); } } return $output; }
/** * Multiple roles field callback. * * @since 1.0.0 * @access public * @return void */ public function field_enable_multi_roles() { ?> <label> <input type="checkbox" name="members_settings[multi_roles]" value="true" <?php checked(members_multiple_user_roles_enabled()); ?> /> <?php esc_html_e('Allow users to be assigned more than a single role.', 'members'); ?> </label> <?php }