Tribe__Events__Pro__Editor__Meta::fake_blocks_response( null|array|string $value, int $post_id, string $meta_key, string|array $single )

Return a fake response with the data from the old classic meta field into the new meta field keys used by the new recurrence UI, returns only: rules and exclusions


Parameters

$value

(null|array|string) (Required) The value get_metadata() should return a single metadata value, or an array of values.

$post_id

(int) (Required) Post ID.

$meta_key

(string) (Required) Meta key.

$single

(string|array) (Required) Meta value, or an array of values.


Top ↑

Return

(array|null|string) The attachment metadata value, array of values, or null.


Top ↑

Source

File: src/Tribe/Editor/Meta.php

	public function fake_blocks_response( $value, $post_id, $meta_key, $single ) {
		/** @var Tribe__Events__Pro__Editor__Recurrence__Blocks_Meta $blocks_meta */
		$blocks_meta = tribe( 'events-pro.editor.recurrence.blocks-meta' );
		$valid_keys  = array(
			$blocks_meta->get_exclusions_key(),
			$blocks_meta->get_rules_key(),
		);

		if ( ! in_array( $meta_key, $valid_keys ) ) {
			return $value;
		}

		$recurrence = get_post_meta( $post_id, '_EventRecurrence', true );
		$result     = $this->get_value( $post_id, $meta_key );
		if ( empty( $recurrence ) || ! empty( $result ) ) {
			return $value;
		}

		$keys = array(
			$blocks_meta->get_rules_key()      => 'rules',
			$blocks_meta->get_exclusions_key() => 'exclusions',
		);
		$key  = $keys[ $meta_key ];
		if ( empty( $recurrence[ $key ] ) ) {
			return $value;
		}

		$types = $recurrence[ $key ];
		$data  = array();
		foreach ( $types as $type ) {
			$blocks = new Tribe__Events__Pro__Editor__Recurrence__Blocks( $type );
			$blocks->parse();
			$data[] = $blocks->get_parsed();
		}
		$encoded = json_encode( $data );

		return $single ? $encoded : array( $encoded );
	}

Top ↑

Changelog

Changelog
Version Description
4.5 Introduced.