Tribe__Events__Editor__Meta::add_utc_dates( stdClass $post_data, WP_REST_Request $request )
Adds, triggering their updates, the UTC start and end dates to the post insertion or update REST payload.
Contents
Parameters
- $post_data
-
(stdClass) (Required) The post insertion/update payload.
- $request
-
(WP_REST_Request) (Required) The current insertion or update request object.
Return
(stdClass) The post insertion/update payload with an added meta_input entry if the insertion/update of UTC dates is required.
Source
File: src/Tribe/Editor/Meta.php
public function add_utc_dates( $post_data, WP_REST_Request $request ) {
$json_params = $request->get_json_params();
$meta = Tribe__Utils__Array::get( $json_params, 'meta', array() );
// No changes to start or end? No need to update UTC dates.
if ( ! ( isset( $meta['_EventStartDate'] ) || isset( $meta['_EventEndDate'] ) ) ) {
return $post_data;
}
if ( ! isset( $post_data->meta_input ) ) {
$post_data->meta_input = array();
}
$post_id = $request->get_param( 'id' );
$timezone_string = Tribe__Events__Timezones::get_event_timezone_string( $post_id );
$timezone_string = Tribe__Utils__Array::get( $meta, '_EventTimezone', $timezone_string );
$timezone = Tribe__Timezones::build_timezone_object( $timezone_string );
$utc = new DateTimeZone( 'UTC' );
$start_date = get_post_meta( $post_id, '_EventStartDate', true );
$start_date = Tribe__Utils__Array::get( $meta, '_EventStartDate', $start_date );
$end_date = get_post_meta( $post_id, '_EventEndDate', true );
$end_date = Tribe__Utils__Array::get( $meta, '_EventEndDate', $end_date );
$utc_start_date = Tribe__Date_Utils::build_date_object( $start_date, $timezone )
->setTimezone( $utc )
->format( 'Y-m-d H:i:s' );
$utc_end_date = Tribe__Date_Utils::build_date_object( $end_date, $timezone )
->setTimezone( $utc )
->format( 'Y-m-d H:i:s' );
$post_data->meta_input['_EventStartDateUTC'] = $utc_start_date;
$post_data->meta_input['_EventEndDateUTC'] = $utc_end_date;
return $post_data;
}
Changelog
| Version | Description |
|---|---|
| 4.9 | Introduced. |