web/wp-content/plugins/acf-extended/includes/field-groups/field-group-permissions.php (26 lines of code) (raw):
<?php
if(!defined('ABSPATH')){
exit;
}
if(!class_exists('acfe_field_group_permissions')):
class acfe_field_group_permissions{
/**
* construct
*/
function __construct(){
add_filter('acfe/prepare_field_group', array($this, 'prepare_field_group'));
}
/**
* prepare_field_group
*
* @param $field_group
*
* @return false|mixed
*/
function prepare_field_group($field_group){
// no permissions
// display normally
if(!acf_maybe_get($field_group, 'acfe_permissions')){
return $field_group;
}
// get current user roles
$current_user_roles = acfe_get_current_user_roles();
// loop roles
foreach($current_user_roles as $current_user_role){
foreach($field_group['acfe_permissions'] as $field_group_role){
// current user has the selected role
// display normally
if($field_group_role === $current_user_role){
return $field_group;
}
}
}
// hide field group
return false;
}
}
// initialize
new acfe_field_group_permissions();
endif;