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.


Parameters

$post_data

(stdClass) (Required) The post insertion/update payload.

$request

(WP_REST_Request) (Required) The current insertion or update request object.


Top ↑

Return

(stdClass) The post insertion/update payload with an added meta_input entry if the insertion/update of UTC dates is required.


Top ↑

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;
	}

Top ↑

Changelog

Changelog
Version Description
4.9 Introduced.