null, 'roles' => array(), 'class' => '', 'message' => Options::get( 'default_denial_message' , '' ), ), static::normalize_empty_atts( $atts ), 'content_control' ); $who = isset( $atts['logged_out'] ) ? 'logged_out' : 'logged_in'; $roles = ! is_array( $atts['roles'] ) ? explode( ',', $atts['roles'] ) : $atts['roles']; $roles = array_map( 'trim', $roles ); $classes = ! is_array( $atts['class'] ) ? explode( ' ', $atts['class'] ) : $atts['class']; $classes[] = 'jp-cc'; if ( Is::accessible( $who, $roles, 'shortcode' ) ) { $classes[] = 'jp-cc-accessible'; $container = '
%2$s
'; } else { $classes[] = 'jp-cc-not-accessible'; $container = '
%3$s
'; } $classes = implode( ' ', $classes ); return sprintf( $container, $classes, do_shortcode( $content ), do_shortcode( $atts['message'] ) ); } /** * Takes empty attributes and sets them to true. * * @param array $atts * * @return mixed */ public static function normalize_empty_atts( $atts = array() ) { if ( ! is_array( $atts ) ) { if ( empty( $atts ) ) { $atts = array(); } } foreach ( $atts as $attribute => $value ) { if ( is_int( $attribute ) ) { $atts[ strtolower( $value ) ] = true; unset( $atts[ $attribute ] ); } } return $atts; } }