Tribe__Events__Updater::migrate_event_status_reason_field()

Update Event Status reason field from extension to a central field for both.

Contents


Source

File: src/Tribe/Updater.php

	public function migrate_event_status_reason_field() {
		$args = [
			'posts_per_page' => 500,
			'meta_query' => [
				[
					'relation' => 'OR',
					[
						'key'     => Event_Status_Meta::$key_control_status,
						'value'   => [ 'canceled', 'postponed' ],
						'compare' => 'IN',
					],
				],
			],
		];

		$events = tribe_events()->by_args( $args )->get_ids();

		foreach ( $events as $event_id ) {
			$event = tribe_get_event( $event_id );

			$status = get_post_meta( $event_id, Event_Status_Meta::$key_control_status, true );

			// Update event status to TEC field.
			update_post_meta( $event_id, Event_Status_Meta::$key_status, $status );

			$reason = '';
			if ( 'canceled' === $status ) {
				$reason = get_post_meta( $event->ID, Event_Status_Meta::$key_status_canceled_reason, true );
			}

			if ( 'postponed' === $status ) {
				$reason = get_post_meta( $event->ID, Event_Status_Meta::$key_status_postponed_reason, true );
			}

			if ( empty( $reason ) ) {
				continue;
			}

			// Update reason to central source.
			update_post_meta( $event_id, Event_Status_Meta::$key_status_reason, $reason );
		}
	}

Top ↑

Changelog

Changelog
Version Description
5.11.0 Introduced.