static function disclosure_box_info() { global $wp_roles; $post = get_post(get_the_ID()); $post_type_object = get_post_type_object($post->post_type); $editing_cap = $post_type_object->cap->edit_posts; $post_behavior = get_post_meta($post->ID, '_wpaa_post_behavior', true); $post_fallback_page = get_post_meta($post->ID, '_wpaa_fallback_page', true); // <select> with - Evereybody, Logged-in only, list WP-Roles, list discosure-groups $roles = $wp_roles->get_names(); $groups = UndisclosedUserlabel::get_label_array(); $user_role_caps = wpaa_get_user_role_caps(); $rolenames = array(); $edit_rolenames = array(); foreach ($roles as $role => $rolename) { if (wpaa_user_can_role($role, $user_role_caps)) { $rolenames[$role] = $rolename; if (get_role($role)->has_cap($editing_cap)) { $edit_rolenames[$role] = $rolename; } } } if (self::can_edit_view_cap($post->post_type, $post_type_object)) { ?> <div class="disclosure-view-select misc-pub-section"> <label for="post_view_cap-select"><strong><?php _e('Who can read:', 'wp-access-areas'); ?> </strong></label><br /> <?php self::access_area_dropdown($rolenames, $groups, $post->post_view_cap, 'post_view_cap'); ?> </div><?php } if (self::can_edit_edit_cap()) { ?> <div class="disclosure-edit-select misc-pub-section"> <label for="post_edit_cap-select"><strong><?php _e('Who can edit:', 'wp-access-areas'); ?> </strong></label><br /> <?php self::access_area_dropdown($edit_rolenames, $groups, $post->post_edit_cap, 'post_edit_cap'); ?> </div><?php } if (self::can_edit_comment_cap($post->post_type) && wpaa_user_can($post->post_comment_cap)) { ?> <div class="disclosure-comment-select misc-pub-section"> <label for="post_comment_cap-select"><strong><?php _e('Who can comment:', 'wp-access-areas'); ?> </strong></label><br /> <?php self::access_area_dropdown($rolenames, $groups, $post->post_comment_cap, 'post_comment_cap'); ?> </div><?php } }
static function skip_undisclosed_items($items) { // everything's fine - return. if (current_user_can('administrator')) { return $items; } // remove undisclosed posts $ret = array(); foreach ($items as $i => $item) { if (wpaa_user_can($item->post_view_cap)) { $ret[] = $item; } } return $ret; }