Date/Time: XML-RPC: Сalculate the proper offset for GMT in wp.newPost, wp.editComment, mw.newPost, mw.editPost when post_date or comment_date is set.

Previously, `post_date` or `comment_date` was assumed to be GMT, which is only true if the timezone string for the site matches GMT.

Add unit tests.

Props Rarst, smerriman, justdaiv, wonderboymusic, noyle.
Merges [46864] to the 5.3 branch.
Fixes #30429.
Built from https://develop.svn.wordpress.org/branches/5.3@46865


git-svn-id: http://core.svn.wordpress.org/branches/5.3@46665 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Sergey Biryukov 2019-12-09 20:08:06 +00:00
parent e5f1a70a87
commit 1cdaf142f2
2 changed files with 9 additions and 9 deletions

View File

@ -1469,8 +1469,8 @@ class wp_xmlrpc_server extends IXR_Server {
$post_data['edit_date'] = false;
if ( ! empty( $dateCreated ) ) {
$post_data['post_date'] = get_date_from_gmt( iso8601_to_datetime( $dateCreated ) );
$post_data['post_date_gmt'] = iso8601_to_datetime( $dateCreated, 'GMT' );
$post_data['post_date'] = iso8601_to_datetime( $dateCreated );
$post_data['post_date_gmt'] = iso8601_to_datetime( $dateCreated, 'gmt' );
// Flag the post date to be edited.
$post_data['edit_date'] = true;
@ -3762,8 +3762,8 @@ class wp_xmlrpc_server extends IXR_Server {
if ( ! empty( $content_struct['date_created_gmt'] ) ) {
// We know this is supposed to be GMT, so we're going to slap that Z on there by force
$dateCreated = rtrim( $content_struct['date_created_gmt']->getIso(), 'Z' ) . 'Z';
$comment['comment_date'] = get_date_from_gmt( iso8601_to_datetime( $dateCreated ) );
$comment['comment_date_gmt'] = iso8601_to_datetime( $dateCreated, 'GMT' );
$comment['comment_date'] = get_date_from_gmt( $dateCreated );
$comment['comment_date_gmt'] = iso8601_to_datetime( $dateCreated, 'gmt' );
}
if ( isset( $content_struct['content'] ) ) {
@ -5481,8 +5481,8 @@ class wp_xmlrpc_server extends IXR_Server {
}
if ( ! empty( $dateCreated ) ) {
$post_date = get_date_from_gmt( iso8601_to_datetime( $dateCreated ) );
$post_date_gmt = iso8601_to_datetime( $dateCreated, 'GMT' );
$post_date = iso8601_to_datetime( $dateCreated );
$post_date_gmt = iso8601_to_datetime( $dateCreated, 'gmt' );
} else {
$post_date = '';
$post_date_gmt = '';
@ -5870,8 +5870,8 @@ class wp_xmlrpc_server extends IXR_Server {
$edit_date = false;
if ( ! empty( $dateCreated ) ) {
$post_date = get_date_from_gmt( iso8601_to_datetime( $dateCreated ) );
$post_date_gmt = iso8601_to_datetime( $dateCreated, 'GMT' );
$post_date = iso8601_to_datetime( $dateCreated );
$post_date_gmt = iso8601_to_datetime( $dateCreated, 'gmt' );
// Flag the post date to be edited.
$edit_date = true;

View File

@ -13,7 +13,7 @@
*
* @global string $wp_version
*/
$wp_version = '5.3.1-alpha-46863';
$wp_version = '5.3.1-alpha-46865';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.