- $caps[] = 'delete_private_posts';
- }
- break;
- case 'delete_page':
- $author_data = get_userdata( $user_id );
- //echo "post ID: {$args[0]}<br />";
- $page = get_page( $args[0] );
- $page_author_data = get_userdata( $page->post_author );
- //echo "current user id : $user_id, page author id: " . $page_author_data->ID . "<br />";
- // If the user is the author...
-
- if ('' != $page->post_author) {
- $page_author_data = get_userdata( $page->post_author );
- } else {
- //No author set yet so default to current user for cap checks
- $page_author_data = $author_data;
- }
-
- if ( is_object( $page_author_data ) && $user_id == $page_author_data->ID ) {
- // If the page is published...
- if ( $page->post_status == 'publish' ) {
- $caps[] = 'delete_published_pages';
- } elseif ( 'trash' == $page->post_status ) {
- if ('publish' == get_post_meta($page->ID, '_wp_trash_meta_status', true) )
- $caps[] = 'delete_published_pages';
- } else {
- // If the page is draft...
- $caps[] = 'delete_pages';
- }
- } else {
- // The user is trying to edit someone else's page.
- $caps[] = 'delete_others_pages';
- // The page is published, extra cap required.
- if ( $page->post_status == 'publish' )
- $caps[] = 'delete_published_pages';
- elseif ( $page->post_status == 'private' )
- $caps[] = 'delete_private_pages';