From 043d31609f6327a462d5ebacb7d171f022aaacb8 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Mon, 18 Mar 2013 21:11:06 +0000 Subject: [PATCH] Bulk actions: do not move locked posts to the trash, props pdclark, see #23792 git-svn-id: http://core.svn.wordpress.org/trunk@23747 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/edit.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/wp-admin/edit.php b/wp-admin/edit.php index 8af5bbc100..a71c9c01b3 100644 --- a/wp-admin/edit.php +++ b/wp-admin/edit.php @@ -48,7 +48,7 @@ $doaction = $wp_list_table->current_action(); if ( $doaction ) { check_admin_referer('bulk-posts'); - $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() ); + $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'locked', 'ids'), wp_get_referer() ); if ( ! $sendback ) $sendback = admin_url( $parent_file ); $sendback = add_query_arg( 'paged', $pagenum, $sendback ); @@ -75,17 +75,24 @@ if ( $doaction ) { switch ( $doaction ) { case 'trash': - $trashed = 0; + $trashed = $locked = 0; + foreach( (array) $post_ids as $post_id ) { if ( !current_user_can($post_type_object->cap->delete_post, $post_id) ) wp_die( __('You are not allowed to move this item to the Trash.') ); + if ( wp_check_post_lock( $post_id ) ) { + $locked++; + continue; + } + if ( !wp_trash_post($post_id) ) wp_die( __('Error in moving to Trash.') ); $trashed++; } - $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids) ), $sendback ); + + $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids), 'locked' => $locked ), $sendback ); break; case 'untrash': $untrashed = 0;