Viewing File: /home/fshjisk/mimikoparis/wp-content/plugins/content-control/classes/Is.php
<?php
namespace JP\CC;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class Is
* @package JP\CC
*/
class Is {
/**
*
*
* @param string $who
* @param array $roles
* @param array $args context and other args to pass to the filters, generic for now so it could be extended later.
*
* @return bool
*/
public static function accessible( $who = '', $roles = array(), $args = array() ) {
if ( is_string( $args ) ) {
$args = array( 'context' => $args );
}
if ( ! is_array( $roles ) ) {
$roles = array();
}
$args = wp_parse_args( $args, array(
'context' => '',
) );
if ( is_string( key( $roles ) ) ) {
$roles = array_keys( $roles );
}
$logged_in = is_user_logged_in();
$exclude = false;
switch ( $who ) {
case 'logged_in':
if ( ! $logged_in ) {
$exclude = true;
} elseif ( ! empty( $roles ) ) {
// Checks all roles, should not exclude if any are active.
$valid_role = false;
foreach ( $roles as $role ) {
if ( current_user_can( $role ) ) {
$valid_role = true;
break;
}
}
if ( ! $valid_role ) {
$exclude = true;
}
}
break;
case 'logged_out':
$exclude = $logged_in;
break;
default:
// Do nothing if the who value does not match logged_in or logged_out.
}
$exclude = apply_filters( 'jp_cc_is_accessible', $exclude, $who, $roles, $args );
return ! $exclude;
}
public static function access_blocked( $who = '', $roles = array(), $args = array() ) {
return ! static::accessible( $who, $roles, $args );
}
}
Back to Directory
File Manager