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
Contents
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.
Return
(array|null|string) The attachment metadata value, array of values, or null.
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 );
}
Changelog
| Version | Description |
|---|---|
| 4.5 | Introduced. |