public static function wpcf_process_change_role_caps_ajax() { if (!current_user_can('manage_options')) { _e('There are security problems. You do not have permissions.', 'wpcf-access'); die; } if (!isset($_POST['wpnonce']) || !wp_verify_nonce($_POST['wpnonce'], 'wpcf-access-error-pages')) { die('verification failed'); } $role = sanitize_text_field($_POST['role']); $caps = ''; if (isset($_POST['caps'])) { $caps = array_map('sanitize_text_field', $_POST['caps']); } TAccess_Loader::load('CLASS/Admin_Edit'); $model = TAccess_Loader::get('MODEL/Access'); $default_caps = getDefaultCaps(); $default_wordpress_caps = $default_caps[10]; $access_roles = $model->getAccessRoles(); $wocommerce_caps = get_woocommerce_caps(); $wpml_caps_list = get_wpml_caps(); $custom_caps = get_option('wpcf_access_custom_caps'); //$toolset_caps_list = get_toolset_caps(); $role_data = get_role($role); for ($i = 0, $caps_limit = count($default_wordpress_caps); $i < $caps_limit; $i++) { if (isset($access_roles[$role]['caps'][$default_wordpress_caps[$i]])) { unset($access_roles[$role]['caps'][$default_wordpress_caps[$i]]); $role_data->remove_cap($default_wordpress_caps[$i]); } } foreach ($wocommerce_caps as $cap => $cap_info) { if (isset($access_roles[$role]['caps'][$cap])) { unset($access_roles[$role]['caps'][$cap]); $role_data->remove_cap($cap); } } foreach ($wpml_caps_list as $cap => $cap_info) { if (isset($access_roles[$role]['caps'][$cap])) { unset($access_roles[$role]['caps'][$cap]); $role_data->remove_cap($cap); } } if (is_array($custom_caps)) { foreach ($custom_caps as $cap => $cap_info) { if (isset($access_roles[$role]['caps'][$cap])) { unset($access_roles[$role]['caps'][$cap]); $role_data->remove_cap($cap); } } } if (class_exists('WPDD_Layouts_Users_Profiles')) { foreach (WPDD_Layouts_Users_Profiles::ddl_get_capabilities() as $cap => $cap_info) { if (isset($access_roles[$role]['caps'][$cap])) { unset($access_roles[$role]['caps'][$cap]); $role_data->remove_cap($cap); } } } $access_caps = array('access_change_post_group' => __('Select access group for content', 'wpcf-access'), 'access_create_new_group' => __('Create new access groups', 'wpcf-access')); foreach ($access_caps as $cap => $cap_info) { if (isset($access_roles[$role]['caps'][$cap])) { unset($access_roles[$role]['caps'][$cap]); $role_data->remove_cap($cap); } } /* foreach ($toolset_caps_list as $cap => $cap_info){ if ( isset( $access_roles[$role]['caps'][$cap] ) ){ unset( $access_roles[$role]['caps'][$cap] ); $role_data->remove_cap($cap); } } */ for ($i = 0, $caps_limit = count($caps); $i < $caps_limit; $i++) { $cap = str_replace('cap_', '', $caps[$i]); $access_roles[$role]['caps'][$cap] = true; $role_data->add_cap($cap); } $model->updateAccessRoles($access_roles); die; }
function wpcf_access_layouts_capabilities($data) { if (class_exists('WPDD_Layouts_Users_Profiles')) { $wp_roles['label'] = __('Layouts capabilities', 'wpcf-access'); $wp_roles['capabilities'] = WPDD_Layouts_Users_Profiles::ddl_get_capabilities(); $data[] = $wp_roles; } return $data; }