public static function setupCustomUserCaps() { global $wp_roles; if (function_exists('wpcf_access_register_caps')) { // integrate with Types Access //cred_log('Access Active', 'access.log'); add_filter('types-access-area', array(__CLASS__, 'register_access_cred_user_area')); add_filter('types-access-group', array(__CLASS__, 'register_access_cred_user_group'), 10, 2); add_filter('types-access-cap', array(__CLASS__, 'register_access_cred_user_caps'), 10, 3); // do any necessary changes when access imports / exports custom capabilities add_filter('access_import_custom_capabilities_' . '__CRED_CRED_USER', array(__CLASS__, 'import_access_cred_user_caps'), 1, 2); add_filter('access_export_custom_capabilities_' . '__CRED_CRED_USER', array(__CLASS__, 'export_access_cred_user_caps'), 1, 2); } elseif (function_exists('ure_not_edit_admin') || class_exists('Members_Load')) { // export custom cred caps to admin role for other plugins to manipulate them (eg User Role Editor or Members) if (!isset($wp_roles) && class_exists('WP_Roles')) { $wp_roles = new WP_Roles(); } $wp_roles->use_db = true; if ($wp_roles->is_role('administrator')) { $administrator = $wp_roles->get_role('administrator'); } else { $administrator = false; trigger_error(__('Administrator Role not found! CRED Users capabilities will not work', 'wp-cred'), E_USER_NOTICE); return; } if ($administrator) { self::addCredUserCapsToRoleUser($administrator); } } else { self::$caps = array_merge(self::$caps, self::buildCredUserCaps()); add_filter('user_has_cap', array('CRED_Helper', 'defaultCredCapsFilter'), 5, 3); } }