/** * Returns an array of views for the list table. * * @since 1.0.0 * @access protected * @return array */ protected function get_views() { $active = members_get_role_group('active'); $inactive = members_get_role_group('inactive'); if ($active) { $active->roles = members_get_active_role_slugs(); } if ($inactive) { $inactive->roles = members_get_inactive_role_slugs(); } $views = array(); $current = ' class="current"'; $all_count = count(members_get_role_slugs()); // Add the default/all view. $views['all'] = sprintf('<a%s href="%s">%s</a>', 'all' === $this->role_view ? $current : '', esc_url(members_get_edit_roles_url()), sprintf(_n('All %s', 'All %s', $all_count, 'members'), sprintf('<span class="count">(%s)</span>', number_format_i18n($all_count)))); // Loop through the role groups and put them into the view list. foreach (members_get_role_groups() as $group) { // Skip role groups that shouldn't be shown in the view list. if (!$group->show_in_view_list) { continue; } $count = count($group->roles); // Skip any views with 0 roles. if (0 >= $count) { continue; } $noop = $group->label_count; // Add the view link. $views[$group->name] = sprintf('<a%s href="%s">%s</a>', $group->name === $this->role_view ? $current : '', 'all' === $group->name ? esc_url(members_get_edit_roles_url()) : esc_url(members_get_role_view_url($group->name)), sprintf(translate_nooped_plural($noop, $count, $noop['domain']), sprintf('<span class="count">(%s)</span>', number_format_i18n($count)))); } return apply_filters('members_manage_roles_views', $views, $this->role_view, members_get_edit_roles_url()); }
/** * Returns the URL to permanently delete a role (edit roles screen). * * @since 1.0.0 * @access public * @param string $role * @return string */ function members_get_delete_role_url($role) { $url = add_query_arg(array('action' => 'delete', 'role' => $role), members_get_edit_roles_url()); return wp_nonce_url($url, 'delete_role', 'members_delete_role_nonce'); }
/** * Displays the page content. * * @since 1.0.0 * @access public * @return void */ public function page() { require_once members_plugin()->admin_dir . 'class-role-list-table.php'; ?> <div class="wrap"> <h1> <?php esc_html_e('Roles', 'members'); ?> <?php if (current_user_can('create_roles')) { ?> <a href="<?php echo esc_url(members_get_new_role_url()); ?> " class="page-title-action"><?php esc_html_e('Add New', 'members'); ?> </a> <?php } ?> </h1> <?php settings_errors('members_roles'); ?> <div id="poststuff"> <form id="roles" action="<?php echo esc_url(members_get_edit_roles_url()); ?> " method="post"> <?php $table = new Members_Role_List_Table(); ?> <?php $table->prepare_items(); ?> <?php $table->display(); ?> </form><!-- #roles --> </div><!-- #poststuff --> </div><!-- .wrap --> <?php }