From 074d2adb95e0ce7e96da7eaff0a06cfcdc13ec54 Mon Sep 17 00:00:00 2001 From: joedolson Date: Sun, 8 Oct 2023 20:10:25 +0000 Subject: [PATCH] Quick/Bulk Edit: Fix inability to quick edit draft post date. Follow up to [56022] to fix inability to set a date/time in quick editing. Allow a user to set a quick/edit date while preventing accidental date assignments per the original intent. Props tristanleboss, ivanzhuck, tibbsa, sabernhardt, sergeybiryukov, oandregal, khokansardar, joedolson, shailu25. Fixes #59125. See #19907. Built from https://develop.svn.wordpress.org/trunk@56802 git-svn-id: http://core.svn.wordpress.org/trunk@56314 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/post.php | 18 +++++++++++++----- wp-admin/js/inline-edit-post.js | 7 ------- wp-admin/js/inline-edit-post.min.js | 2 +- wp-includes/version.php | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php index cac831cbd9..3b1603a38c 100644 --- a/wp-admin/includes/post.php +++ b/wp-admin/includes/post.php @@ -171,10 +171,6 @@ function _wp_translate_postdata( $update = false, $post_data = null ) { } } - if ( isset( $post_data['edit_date'] ) && 'false' === $post_data['edit_date'] ) { - $post_data['edit_date'] = false; - } - if ( ! empty( $post_data['edit_date'] ) ) { $aa = $post_data['aa']; $mm = $post_data['mm']; @@ -197,7 +193,19 @@ function _wp_translate_postdata( $update = false, $post_data = null ) { return new WP_Error( 'invalid_date', __( 'Invalid date.' ) ); } - $post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] ); + /* + * Only assign a post date if the user has explicitly set a new value. + * See #59125 and #19907. + */ + $previous_date = $post_id ? get_post_field( 'post_date', $post_id ) : false; + if ( $previous_date && $previous_date !== $post_data['post_date'] ) { + $post_data['edit_date'] = true; + $post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] ); + } else { + $post_data['edit_date'] = false; + unset( $post_data['post_date'] ); + unset( $post_data['post_date_gmt'] ); + } } if ( isset( $post_data['post_category'] ) ) { diff --git a/wp-admin/js/inline-edit-post.js b/wp-admin/js/inline-edit-post.js index 5fff8c3f28..1f572353ff 100644 --- a/wp-admin/js/inline-edit-post.js +++ b/wp-admin/js/inline-edit-post.js @@ -491,13 +491,6 @@ window.wp = window.wp || {}; }; fields = $('#edit-'+id).find(':input').serialize(); - - var status = $(':input[name="_status"]').val(); - - if ( [ 'draft', 'pending', 'auto-draft' ].includes( status ) ) { - params.edit_date = 'false'; - } - params = fields + '&' + $.param(params); // Make Ajax request. diff --git a/wp-admin/js/inline-edit-post.min.js b/wp-admin/js/inline-edit-post.min.js index 3f141af10a..f759abedba 100644 --- a/wp-admin/js/inline-edit-post.min.js +++ b/wp-admin/js/inline-edit-post.min.js @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -window.wp=window.wp||{},function(u,h){window.inlineEditPost={init:function(){var i=this,t=u("#inline-edit"),e=u("#bulk-edit");i.type=u("table.widefat").hasClass("pages")?"page":"post",i.what="#post-",t.on("keyup",function(t){if(27===t.which)return inlineEditPost.revert()}),e.on("keyup",function(t){if(27===t.which)return inlineEditPost.revert()}),u(".cancel",t).on("click",function(){return inlineEditPost.revert()}),u(".save",t).on("click",function(){return inlineEditPost.save(this)}),u("td",t).on("keydown",function(t){if(13===t.which&&!u(t.target).hasClass("cancel"))return inlineEditPost.save(this)}),u(".cancel",e).on("click",function(){return inlineEditPost.revert()}),u('#inline-edit .inline-edit-private input[value="private"]').on("click",function(){var t=u("input.inline-edit-password-input");u(this).prop("checked")?t.val("").prop("disabled",!0):t.prop("disabled",!1)}),u("#the-list").on("click",".editinline",function(){u(this).attr("aria-expanded","true"),inlineEditPost.edit(this)}),u("#bulk-edit").find("fieldset:first").after(u("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(u("#inline-edit .inline-edit-tags-wrap").clone()),u('select[name="_status"] option[value="future"]',e).remove(),u("#doaction").on("click",function(t){var e;i.whichBulkButtonId=u(this).attr("id"),e=i.whichBulkButtonId.substr(2),"edit"===u('select[name="'+e+'"]').val()?(t.preventDefault(),i.setBulk()):0');if(this.revert(),u("#bulk-edit td").attr("colspan",u("th:visible, td:visible",".widefat:first thead").length),u("table.widefat tbody").prepend(u("#bulk-edit")).prepend(''),u("#bulk-edit").addClass("inline-editor").show(),u('tbody th.check-column input[type="checkbox"]').each(function(){var t,e,i;u(this).prop("checked")&&(a=!1,t=u(this).val(),e=u("#inline_"+t+" .post_title").html()||h.i18n.__("(no title)"),i=h.i18n.sprintf(h.i18n.__("Remove “%s” from Bulk Edit"),e),n+='
  • ")}),a)return this.revert();u("#bulk-titles").html('"),e.each(function(){var t=u(this).val();u("#category_"+t).text().split(",").map(function(t){i[t]||(i[t]=0),i[t]++})}),u('.inline-edit-categories input[name="post_category[]"]').each(function(){u('').remove(),i[u(this).val()]==e.length?u(this).prop("checked",!0):0