/** * Registers widgets for the plugin. * * @since 0.2.0 * @access public * @return void */ function members_register_widgets() { // If the login form widget is enabled. if (members_login_widget_enabled()) { require_once members_plugin()->inc_dir . 'class-widget-login.php'; register_widget('Members_Widget_Login'); } // If the users widget is enabled. if (members_users_widget_enabled()) { require_once members_plugin()->inc_dir . 'class-widget-users.php'; register_widget('Members_Widget_users'); } }
/** * Counts the number of users for all roles on the site and returns this as an array. If * the `$role` parameter is given, the return value will be the count just for that particular role. * * @since 0.2.0 * @access public * @param string $role * @return int|array */ function members_get_role_user_count($role = '') { // If the count is not already set for all roles, let's get it. if (empty(members_plugin()->role_user_count)) { // Count users. $user_count = count_users(); // Loop through the user count by role to get a count of the users with each role. foreach ($user_count['avail_roles'] as $_role => $count) { members_plugin()->role_user_count[$_role] = $count; } } // Return the role count. if ($role) { return isset(members_plugin()->role_user_count[$role]) ? members_plugin()->role_user_count[$role] : 0; } // If the `$role` parameter wasn't passed into this function, return the array of user counts. return members_plugin()->role_user_count; }
/** * 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 }
/** * Registers custom plugin scripts. * * @since 1.0.0 * @access public * @return void */ function members_admin_register_styles() { $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; wp_register_style('members-admin', members_plugin()->css_uri . "admin{$min}.css"); }
$role = get_role('administrator'); // If the administrator role exists, add required capabilities for the plugin. if (!empty($role)) { $role->add_cap('list_roles'); // View roles in backend. $role->add_cap('create_roles'); // Create new roles. $role->add_cap('delete_roles'); // Delete existing roles. $role->add_cap('edit_roles'); // Edit existing roles/caps. $role->add_cap('restrict_content'); // Edit per-post content permissions. } } } /** * Gets the instance of the `Members_Plugin` class. This function is useful for quickly grabbing data * used throughout the plugin. * * @since 1.0.0 * @access public * @return object */ function members_plugin() { return Members_Plugin::get_instance(); } // Let's roll! members_plugin();
/** * Disables the comments template if a user doesn't have permission to view the post the * comments are associated with. * * @since 0.1.0 * @param string $template * @return string */ function members_content_permissions_comments($template) { // Check if the current user has permission to view the comments' post. if (!members_can_current_user_view_post(get_the_ID())) { // Look for a 'comments-no-access.php' template in the parent and child theme. $has_template = locate_template(array('comments-no-access.php')); // If the template was found, use it. Otherwise, fall back to the Members comments.php template. $template = $has_template ? $has_template : members_plugin()->templates_dir . 'comments.php'; // Allow devs to overwrite the comments template. $template = apply_filters('members_comments_template', $template); } // Return the comments template filename. return $template; }