* @copyright Copyright (c) 2009 - 2018, Justin Tadlock * @link https://themehybrid.com/plugins/members * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ namespace Members\Admin; /** * Class to handle the role meta box edit/new role screen. * * @since 2.0.0 * @access public */ final class Meta_Box_Publish_Role { /** * Holds the instances of this class. * * @since 2.0.0 * @access private * @var object */ private static $instance; /** * Adds our methods to the proper hooks. * * @since 2.0.0 * @access public * @return void */ protected function __construct() { add_action( 'members_load_role_edit', array( $this, 'load' ) ); add_action( 'members_load_role_new', array( $this, 'load' ) ); } /** * Runs on the page load hook to hook in the meta boxes. * * @since 2.0.0 * @access public * @return void */ public function load() { add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) ); } /** * Adds the meta box. * * @since 2.0.0 * @access public * @param string $screen_id * @return void */ public function add_meta_boxes( $screen_id ) { add_meta_box( 'submitdiv', esc_html__( 'Role', 'members' ), array( $this, 'meta_box' ), $screen_id, 'side', 'high' ); } /** * Outputs the meta box HTML. * * @since 2.0.0 * @access public * @param object $role * @return void */ public function meta_box( $role ) { // Set up some defaults for new roles. $is_editable = true; $user_count = 0; $grant_count = 0; $deny_count = 0; // If we're editing a role, overwrite the defaults. if ( $role ) { $is_editable = members_is_role_editable( $role->name ); $user_count = members_get_role_user_count( $role->name ); $grant_count = members_get_role_granted_cap_count( $role->name ); $deny_count = members_get_role_denied_cap_count( $role->name ); } ?>