static function init() { self::$post_stati = array('' => __('Don‘t change', 'wp-access-areas'), 'publish' => __('Public'), 'private' => __('Private'), 'draft' => __('Draft'), 'pending' => __('Pending Review')); self::$role_caps = array('wpaa_set_view_cap' => __('Change View Access', 'wp-access-areas'), 'wpaa_set_edit_cap' => __('Change Edit Access', 'wp-access-areas'), 'wpaa_set_comment_cap' => __('Change Comment Access', 'wp-access-areas')); add_option('wpaa_default_behavior', '404'); add_option('wpaa_fallback_page', 0); add_option('wpaa_default_caps', array()); add_option('wpaa_default_post_status', 'publish'); add_option('wpaa_enable_assign_cap', 0); add_action('update_option_wpaa_enable_assign_cap', array(__CLASS__, 'enable_assign_cap'), 10, 2); add_filter('pre_update_option_wpaa_enable_assign_cap', array(__CLASS__, 'assign_role_cap'), 10); add_action('admin_menu', array(__CLASS__, 'create_menu')); add_action('admin_init', array(__CLASS__, 'register_settings')); add_action('load-settings_page_wpaa_settings', array(__CLASS__, 'load_style')); }
/** * Activation hook */ function accessareas_activate() { UndisclosedInstall::activate(); } /** * Deactivation hook */ function accessareas_deactivate() { UndisclosedInstall::deactivate(); } /** * Uninstall hook */ function accessareas_uninstall() { UndisclosedInstall::uninstall(); } // access area data model if (is_admin()) { UndisclosedCaps::init(); UndisclosedUsers::init(); UndisclosedEditPost::init(); UndisclosedSettings::init(); } register_activation_hook(__FILE__, 'accessareas_activate'); register_deactivation_hook(__FILE__, 'accessareas_deactivate'); register_uninstall_hook(__FILE__, 'accessareas_uninstall');
private static function _delete_userlabel_from_blog(&$userlabel) { global $wpdb; $post_status_sql = ''; $default_post_status = get_option('wpaa_default_post_status'); if ($default_post_status && in_array($default_post_status, UndisclosedSettings::get_post_stati())) { $post_status_sql = $wpdb->prepare(" , post_status=%s ", $default_post_status); } // delete everything from posts and restore usefull default values $query = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_view_cap='exist' {$post_status_sql} WHERE post_view_cap=%s", $userlabel->capability)); $query = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_edit_cap='exist' WHERE post_edit_cap=%s", $userlabel->capability)); // back to default $query = $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_comment_cap='exist',comment_status='closed' WHERE post_comment_cap=%s", $userlabel->capability)); // back to default // set back options if (get_option('wpaa_default_view_cap') == $userlabel->capability) { update_option('wpaa_default_view_cap', 'exist'); } if (get_option('wpaa_default_edit_cap') == $userlabel->capability) { update_option('wpaa_default_edit_cap', 'exist'); } if (get_option('wpaa_default_comment_cap') == $userlabel->capability) { update_option('wpaa_default_comment_cap', 'exist'); } if (is_multisite()) { $current_blog_id = get_current_blog_id(); } // remove all caps from users $users = get_users(); foreach ($users as $user) { if (is_multisite()) { $user->for_blog($current_blog_id); } $user->remove_cap($userlabel->capability); } self::_clear_cache(); }