capabilities = array_merge( preg_filter( '/^/', ATUM_PREFIX, $this->capabilities ), $this->wp_capabilities ); $admin_roles = (array) apply_filters( 'atum/capabilities/admin_roles', [ get_role( 'administrator' ) ] ); foreach ( $admin_roles as $admin_role ) { if ( is_a( $admin_role, '\WP_Role' ) ) { foreach ( $this->capabilities as $cap ) { $admin_role->add_cap( $cap ); } } } } /** * Check whether the current user has ATUM capabilities * * @since 1.3.6 * * @param string $capability * * @return bool */ public static function current_user_can( $capability ) { return current_user_can( ATUM_PREFIX . $capability ); } /******************* * Instance methods *******************/ /** * Cannot be cloned */ public function __clone() { _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin’ huh?', ATUM_TEXT_DOMAIN ), '1.0.0' ); } /** * Cannot be serialized */ public function __sleep() { _doing_it_wrong( __FUNCTION__, esc_attr__( 'Cheatin’ huh?', ATUM_TEXT_DOMAIN ), '1.0.0' ); } /** * Get Singleton instance * * @return AtumCapabilities instance */ public static function get_instance() { if ( ! ( self::$instance && is_a( self::$instance, __CLASS__ ) ) ) { self::$instance = new self(); } return self::$instance; } }