Changeset 56802
- Timestamp:
- 10/08/2023 08:08:08 PM (11 months ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/js/_enqueues/admin/inline-edit-post.js
r56712 r56802 492 492 493 493 fields = $('#edit-'+id).find(':input').serialize(); 494 495 var status = $(':input[name="_status"]').val();496 497 if ( [ 'draft', 'pending', 'auto-draft' ].includes( status ) ) {498 params.edit_date = 'false';499 }500 501 494 params = fields + '&' + $.param(params); 502 495 -
trunk/src/wp-admin/includes/post.php
r56752 r56802 170 170 break; 171 171 } 172 }173 174 if ( isset( $post_data['edit_date'] ) && 'false' === $post_data['edit_date'] ) {175 $post_data['edit_date'] = false;176 172 } 177 173 … … 198 194 } 199 195 200 $post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] ); 196 /* 197 * Only assign a post date if the user has explicitly set a new value. 198 * See #59125 and #19907. 199 */ 200 $previous_date = $post_id ? get_post_field( 'post_date', $post_id ) : false; 201 if ( $previous_date && $previous_date !== $post_data['post_date'] ) { 202 $post_data['edit_date'] = true; 203 $post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] ); 204 } else { 205 $post_data['edit_date'] = false; 206 unset( $post_data['post_date'] ); 207 unset( $post_data['post_date_gmt'] ); 208 } 201 209 } 202 210 -
trunk/tests/phpunit/tests/ajax/wpAjaxInlineSave.php
r56022 r56802 90 90 91 91 /** 92 * When updating a draft in quick edit mode, it should not set the publish date of the post when this one will be published.92 * When updating a draft in quick edit mode, it should not set the publish date of the post if the date passed is unchanged. 93 93 * 94 94 * @ticket 19907 … … 125 125 $_POST['post_view'] = 'list'; 126 126 $_POST['edit_date'] = 'false'; 127 $_POST['mm'] = get_the_date( 'm', $post ); 128 $_POST['jj'] = get_the_date( 'd', $post ); 129 $_POST['aa'] = get_the_date( 'Y', $post ); 130 $_POST['hh'] = get_the_date( 'H', $post ); 131 $_POST['mn'] = get_the_date( 'i', $post ); 132 $_POST['ss'] = get_the_date( 's', $post ); 133 134 // Make the request. 135 try { 136 $this->_handleAjax( 'inline-save' ); 137 } catch ( WPAjaxDieContinueException $e ) { 138 unset( $e ); 139 } 140 141 $post = get_post( $post->ID ); 142 143 $post_date = sprintf( '%04d-%02d-%02d %02d:%02d:%02d', $_POST['aa'], $_POST['mm'], $_POST['jj'], $_POST['hh'], $_POST['mn'], $_POST['ss'] ); 144 145 $this->assertEquals( '0000-00-00 00:00:00', $post->post_date_gmt ); 146 } 147 148 /** 149 * When updating a draft in quick edit mode, it should set the publish date of the post if there is a new date set. 150 * 151 * @ticket 59125 152 * 153 * @covers ::edit_post 154 */ 155 public function test_quick_edit_draft_should_set_publish_date() { 156 // Become an administrator. 157 $this->_setRole( 'administrator' ); 158 159 $user = get_current_user_id(); 160 161 $post = self::factory()->post->create_and_get( 162 array( 163 'post_status' => 'draft', 164 'post_author' => $user, 165 ) 166 ); 167 168 $this->assertSame( 'draft', $post->post_status ); 169 170 $this->assertEquals( '0000-00-00 00:00:00', $post->post_date_gmt ); 171 172 // Set up a request. 173 $_POST['_inline_edit'] = wp_create_nonce( 'inlineeditnonce' ); 174 $_POST['post_ID'] = $post->ID; 175 $_POST['post_type'] = 'post'; 176 $_POST['content'] = 'content test'; 177 $_POST['excerpt'] = 'excerpt test'; 178 $_POST['_status'] = $post->post_status; 179 $_POST['post_status'] = $post->post_status; 180 $_POST['post_author'] = $user; 181 $_POST['screen'] = 'edit-post'; 182 $_POST['post_view'] = 'list'; 183 $_POST['edit_date'] = 'true'; 127 184 $_POST['mm'] = '09'; 128 185 $_POST['jj'] = 11; … … 141 198 $post = get_post( $post->ID ); 142 199 143 $this->assertEquals( ' 0000-00-00 00:00:00', $post->post_date_gmt );200 $this->assertEquals( '2020-09-11 19:20:11', $post->post_date_gmt ); 144 201 } 145 202 }
Note: See TracChangeset
for help on using the changeset viewer.