Warning: Invalid argument supplied for foreach() in /home/cipherco/doactions.org/wp-content/themes/hooks/pages/class_details.php on line 21

MRH_Manage_Roles

The members MRH Manage Roles class.

Published Date - July 31, 2023

Defined

The class is defined in the following location(s).

members/addons/members-role-hierarchy/admin/class-manage-roles.php

final class MRH_Manage_Roles {

	/**
	 * Returns the instance.
	 *
	 * @since  1.0.0
	 * @access public
	 * @return object
	 */
	public static function get_instance() {

		static $instance = null;

		if ( is_null( $instance ) ) {
			$instance = new self;
			$instance->setup_actions();
		}

		return $instance;
	}

	/**
	 * Sets up our initial actions.
	 *
	 * @since  1.0.0
	 * @access public
	 * @return void
	 */
	private function __construct() {}

	/**
	 * Sets up actions and filters.
	 *
	 * @since  1.0.0
	 * @access public
	 * @return void
	 */
	private function setup_actions() {

		add_action( 'members_load_manage_roles', array( $this, 'load' ) );
	}

	/**
	 * Runs on the manage roles screen load.
	 *
	 * @since  1.0.0
	 * @access public
	 * @return void
	 */
	public function load() {

		add_filter( 'members_manage_roles_columns', array( $this, 'columns' ) );

		add_filter( 'members_manage_roles_column_position', array( $this, 'column_position' ), 10, 2 );

		add_action( 'admin_head', array( $this, 'print_styles' ) );
	}

	/**
	 * Adds custom columns.
	 *
	 * @since  1.0.0
	 * @access public
	 * @param  array   $columns
	 * @return array
	 */
	public function columns( $columns ) {

		$columns['position'] = esc_html__( 'Position', 'members' );

		return $columns;
	}

	/**
	 * Handles the output for custom "position" column.
	 *
	 * @since  1.0.0
	 * @access public
	 * @param  string  $output
	 * @param  string  $role
	 * @return string
	 */
	public function column_position( $output, $role ) {

		return mrh_get_role_position( $role );
	}

	/**
	 * Prints custom styles to the header.
	 *
	 * @since  1.0.0
	 * @access public
	 * @return void
	 */
	public function print_styles() { ?>

		<style type="text/css">
			@media only screen and ( min-width: 783px ) {
				.members_page_roles .column-position {
					width: 100px;
					text-align: center;
				}
			}
		</style>
	<?php }
}