Skip to content

Commit 42b83db

Browse files
committed
Fix: Incorrect post status if user is before site time-zone
1 parent 413b7ea commit 42b83db

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/js/_enqueues/admin/inline-edit-post.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,14 @@ window.wp = window.wp || {};
434434
post_date_string += ' ' + $(':input[name="hh"]').val() + ':' + $(':input[name="mn"]').val() + ':' + $(':input[name="ss"]').val();
435435
var post_date = new Date( post_date_string );
436436
status = $('._status', rowData).text();
437-
if ( 'future' !== status && Date.now() > post_date ) {
437+
// Convert browser Date into site timezone before comparing.
438+
var browserDate = new Date();
439+
var browserOffset = browserDate.getTimezoneOffset();
440+
var siteOffset = (window.inlineEditPostConfig && inlineEditPostConfig.siteTzOffset)
441+
? parseInt(inlineEditPostConfig.siteTzOffset, 10)
442+
: browserOffset;
443+
var siteDate = new Date( browserDate.getTime() + (browserOffset - siteOffset) * 60000 );
444+
if ( 'future' !== status && siteDate > post_date ) {
438445
$('select[name="_status"] option[value="future"]', editRow).remove();
439446
} else {
440447
$('select[name="_status"] option[value="publish"]', editRow).remove();

src/wp-admin/edit.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,14 @@
235235
$wp_list_table->prepare_items();
236236

237237
wp_enqueue_script( 'inline-edit-post' );
238+
wp_localize_script(
239+
'inline-edit-post',
240+
'inlineEditPostConfig',
241+
array(
242+
// get the site offset and convert to minutes.
243+
'siteTzOffset' => (int) ( - get_option( 'gmt_offset' ) * 60 ),
244+
)
245+
);
238246
wp_enqueue_script( 'heartbeat' );
239247

240248
if ( 'wp_block' === $post_type ) {

0 commit comments

Comments
 (0)