PluginProbe ʕ •ᴥ•ʔ
Advanced Custom Fields: Extended / 0.5
Advanced Custom Fields: Extended v0.5
0.9.2.7 0.9.2.6 0.9.2.5 0.8.6 0.8.6.1 0.8.6.3 0.8.6.5 0.8.6.6 0.8.6.7 0.8.6.8 0.8.6.9 0.8.7 0.8.7.1 0.8.7.2 0.8.7.3 0.8.7.4 0.8.7.5 0.8.7.6 0.8.8 0.8.8.1 0.8.8.10 0.8.8.11 0.8.8.2 0.8.8.3 0.8.8.4 0.8.8.5 0.8.8.6 0.8.8.7 0.8.8.8 0.8.8.9 0.8.9 0.8.9.1 0.8.9.2 0.8.9.3 0.8.9.4 0.8.9.5 0.9 0.9.0.1 0.9.0.2 0.9.0.3 0.9.0.4 0.9.0.5 0.9.0.6 0.9.0.7 0.9.0.8 0.9.0.9 0.9.1 0.9.1.1 0.9.2 0.9.2.1 0.9.2.2 0.9.2.3 0.9.2.4 trunk 0.5 0.5.1 0.5.2 0.5.2.1 0.5.2.3 0.5.5 0.5.5.1 0.5.8 0.5.8.1 0.6 0.6.0.1 0.6.0.2 0.6.1 0.6.3 0.6.5 0.6.7 0.6.7.2 0.7 0.7.0.3 0.7.5 0.7.5.5 0.7.8 0.7.9 0.7.9.3 0.7.9.4 0.7.9.9.8 0.7.9.9.9 0.8 0.8.1 0.8.2 0.8.3 0.8.3.1 0.8.4 0.8.4.1 0.8.4.5 0.8.4.6 0.8.5 0.8.5.5
acf-extended / includes / fields / settings-permissions.php
acf-extended / includes / fields Last commit date
field-dynamic-message.php 7 years ago settings-data.php 7 years ago settings-permissions.php 7 years ago settings-update.php 7 years ago settings-validation.php 7 years ago
settings-permissions.php
76 lines
1 <?php
2
3 if(!defined('ABSPATH'))
4 exit;
5
6 add_action('acf/render_field_settings', 'acfe_permissions_settings', 999);
7 function acfe_permissions_settings($field){
8
9 // Settings
10 acf_render_field_setting($field, array(
11 'label' => __('Permissions'),
12 'name' => 'acfe_permissions',
13 'key' => 'acfe_permissions',
14 'instructions' => __('Select user roles that are allowed to view and edit this field. If nothing is selected, then this field will be available to everyone.'),
15 'type' => 'checkbox',
16 'required' => false,
17 'default_value' => false,
18 'choices' => acfe_get_roles(),
19 'layout' => 'horizontal'
20 ), true);
21
22 }
23
24 add_filter('acf/prepare_field', 'acfe_roles_prepare_field');
25 function acfe_roles_prepare_field($field){
26 if(!isset($field['acfe_permissions']) || empty($field['acfe_permissions']))
27 return $field;
28
29 $current_user_roles = acfe_get_current_user_roles();
30 $render_field = false;
31
32 foreach($current_user_roles as $current_user_role){
33 foreach($field['acfe_permissions'] as $field_role){
34 if($current_user_role !== $field_role)
35 continue;
36
37 $render_field = true;
38 break;
39 }
40
41 if($render_field)
42 break;
43 }
44
45 if(!$render_field)
46 return false;
47
48 return $field;
49 }
50
51 function acfe_get_roles(){
52 global $wp_roles;
53 $choices = array();
54
55 if(is_multisite())
56 $choices['super_admin'] = __('Super Admin');
57
58 foreach($wp_roles->roles as $role => $settings){
59 $choices[$role] = $settings['name'];
60 }
61
62 return $choices;
63 }
64
65 function acfe_get_current_user_roles(){
66 global $current_user;
67
68 if(!is_object($current_user) || !isset($current_user->roles))
69 return false;
70
71 $roles = $current_user->roles;
72 if(is_multisite() && current_user_can('setup_network'))
73 $roles[] = 'super_admin';
74
75 return $roles;
76 }