File "class-acf-location-user-role.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/.wp-cli/wp-content/plugins/advanced-custom-fields-pro/includes/locations/class-acf-location-user-role.php
File size: 2.06 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
if( ! class_exists('ACF_Location_User_Role') ) :
class ACF_Location_User_Role extends acf_location {
/**
* initialize
*
* Sets up the class functionality.
*
* @date 5/03/2014
* @since 5.0.0
*
* @param void
* @return void
*/
function initialize() {
$this->name = 'user_role';
$this->label = __("User Role", 'acf');
$this->category = 'user';
}
/**
* rule_match
*
* Determines if the given location $rule is a match for the current $screen.
*
* @date 17/9/19
* @since 5.8.1
*
* @param bool $result Whether or not this location rule is a match.
* @param array $rule The locatio rule data.
* @param array $screen The current screen data.
* @return bool
*/
function rule_match( $result, $rule, $screen ) {
// Extract vars.
$user_id = acf_maybe_get( $screen, 'user_id' );
$user_role = acf_maybe_get( $screen, 'user_role' );
// Allow $user_role to be supplied (third-party compatibility).
if( $user_role ) {
// Do nothing
// Determine $user_role from $user_id.
} elseif( $user_id ) {
// Use default role for new user.
if( $user_id == 'new' ) {
$user_role = get_option('default_role');
// Check if user can, and if so, set the value allowing them to match.
} elseif( user_can($user_id, $rule['value']) ) {
$user_role = $rule['value'];
}
// Return false if not a user.
} else {
return false;
}
// Compare and return.
return $this->compare( $user_role, $rule );
}
/**
* rule_values
*
* Returns an array of values for this location rule.
*
* @date 17/9/19
* @since 5.8.1
*
* @param array $choices An empty array.
* @param array $rule The locatio rule data.
* @return array
*/
function rule_values( $choices, $rule ) {
global $wp_roles;
// Merge roles with defaults and return.
return wp_parse_args($wp_roles->get_names(), array(
'all' => __('All', 'acf')
));
}
}
// initialize
acf_register_location_rule( 'ACF_Location_User_Role' );
endif; // class_exists check