AP_Roles()
Description #
AnsPress user role helper
Source #
File: includes/class/roles-cap.php
class AP_Roles { /** * Base user capabilities. * * @var array */ public $base_caps = array(); /** * Moderator level permissions. * * @var array */ public $mod_caps = array(); /** * Initialize the class */ public function __construct() { $this->base_caps = ap_role_caps( 'participant' ); $this->mod_caps = ap_role_caps( 'moderator' ); } /** * Add roles and cap, called on plugin activation * * @since 2.0.1 */ public function add_roles() { // @codingStandardsIgnoreStart add_role( 'ap_moderator', __( 'AnsPress Moderator', 'anspress-question-answer' ), array( 'read' => true, ) ); add_role( 'ap_participant', __( 'AnsPress Participants', 'anspress-question-answer' ), array( 'read' => true ) ); add_role( 'ap_banned', __( 'AnsPress Banned', 'anspress-question-answer' ), array( 'read' => true ) ); // @codingStandardsIgnoreEnd } /** * Add new capabilities * * @access public * @since 2.0 * @global WP_Roles $wp_roles * @return void */ public function add_capabilities() { global $wp_roles; if ( class_exists( 'WP_Roles' ) && ! isset( $wp_roles ) ) { $wp_roles = new WP_Roles(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited } if ( is_object( $wp_roles ) ) { $roles = array( 'editor', 'administrator', 'contributor', 'author', 'ap_participant', 'ap_moderator', 'subscriber' ); foreach ( $roles as $role_name ) { // Add base cpas to all roles. foreach ( $this->base_caps as $k => $grant ) { $wp_roles->add_cap( $role_name, $k ); } if ( in_array( $role_name, array( 'editor', 'administrator', 'ap_moderator' ), true ) ) { foreach ( $this->mod_caps as $k => $grant ) { $wp_roles->add_cap( $role_name, $k ); } } } } } /** * Remove an AnsPress role */ public static function remove_roles() { global $wp_roles; if ( class_exists( 'WP_Roles' ) && ! isset( $wp_roles ) ) { $wp_roles = new WP_Roles(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited } $wp_roles->remove_role( 'ap_participant' ); $wp_roles->remove_role( 'ap_moderator' ); $wp_roles->remove_role( 'ap_banned' ); } }
Expand full source code Collapse full source code View on GitHub: includes/class/roles-cap.php:21
Add your comment