Filter Dynamic uncanny-automator

automator_possible_tokens_{dynamic}

> **Note:** This is a dynamic hook. The actual hook name is constructed at runtime. Filters possible tokens for specific dynamic trigger events, allowing customization of available data points.

add_filter( 'automator_possible_tokens_{dynamic}', $callback, 10, 2 );

Description

This dynamic filter hook, `automator_possible_tokens_events_manager`, allows developers to modify the available tokens for the Events Manager integration. Developers can add custom tokens or remove existing ones to customize automation triggers and actions based on Events Manager data. The `$possible_tokens` array and `$trigger_meta` argument provide context.


Usage

add_filter( 'automator_possible_tokens_{dynamic}', 'your_function_name', 10, 2 );

Parameters

$possible_tokens (mixed)
This parameter holds an array of tokens that can be used with the hook, which will be modified by the filter.
$trigger_meta (mixed)
This parameter is an array containing tokens that can be used to populate dynamic fields within your automation.

Return Value

The filtered value.


Examples

/**
 * Adds a new token to the automator_possible_tokens_em_event_attendee filter.
 * This token allows users to insert the attendee's full name into an automation.
 *
 * @param array  $possible_tokens An array of existing possible tokens.
 * @param string $trigger_meta    The meta key associated with the trigger.
 *
 * @return array The modified array of possible tokens including the new attendee name token.
 */
add_filter( 'automator_possible_tokens_em_event_attendee', function( $possible_tokens, $trigger_meta ) {

	// Check if the trigger_meta matches what we expect for EM Event Attendee triggers.
	// This helps ensure we only modify tokens for the correct context.
	if ( 'em_event_attendee' === $trigger_meta ) {
		$possible_tokens[ $trigger_meta . '_ATTENDEE_FULL_NAME' ] = esc_attr_x( 'Attendee - Full Name', 'Events Manager', 'uncanny-automator' );
	}

	return $possible_tokens;
}, 10, 2 );

Placement

This code should be placed in the functions.php file of your active theme, a custom plugin, or using a code snippets plugin.


Source Code

src/integrations/events-manager/tokens/em-tokens.php:71

public function em_possible_tokens( $tokens = array(), $args = array() ) {
		if ( ! automator_do_identify_tokens() ) {
			return $tokens;
		}
		$trigger_meta    = $args['meta'];
		$possible_tokens = array(
			$trigger_meta                => esc_attr_x( 'Event title', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_ID'        => esc_attr_x( 'Event ID', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_URL'       => esc_attr_x( 'Event URL', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_THUMB_ID'  => esc_attr_x( 'Event featured image ID', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_THUMB_URL' => esc_attr_x( 'Event featured image URL', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_ATTENDEE_NAME'       => esc_attr_x( 'Attendee - Name', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_ATTENDEE_EMAIL'      => esc_attr_x( 'Attendee - Email', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_ATTENDEE_PHONE'      => esc_attr_x( 'Attendee - Phone', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_BOOKED_SPACES'       => esc_attr_x( 'Booking - Spaces booked', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_COMMENT'             => esc_attr_x( 'Booking - Attendee comments', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_PRICE_PAID'          => esc_attr_x( 'Booking - Price paid', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_START_DATE'          => esc_attr_x( 'Event - Start date', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_END_DATE'            => esc_attr_x( 'Event - End date', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_TOTAL_SPACES'        => esc_attr_x( 'Event - Total spaces', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_MAX_SPACES'          => esc_attr_x( 'Event - Maximum spaces per booking', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_CONFIRMED_SPACES'    => esc_attr_x( 'Event - Confirmed spaces', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_PENDING_SPACES'      => esc_attr_x( 'Event - Pending spaces', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_AVAILABLE_SPACES'    => esc_attr_x( 'Event - Available spaces', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_NAME'       => esc_attr_x( 'Location - Name', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_ADDRESS'    => esc_attr_x( 'Location - Address', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_TOWN'       => esc_attr_x( 'Location - Town', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_STATE'      => esc_attr_x( 'Location - State', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_POSTCODE'   => esc_attr_x( 'Location - Postcode', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_REGION'     => esc_attr_x( 'Location - Region', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_COUNTRY'    => esc_attr_x( 'Location - Country', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_URL'        => esc_attr_x( 'Location - URL', 'Events Manager', 'uncanny-automator' ),
			$trigger_meta . '_LOCATION_LINK_TITLE' => esc_attr_x( 'Location - Link text', 'Events Manager', 'uncanny-automator' ),
		);
		$possible_tokens = apply_filters( 'automator_possible_tokens_' . $trigger_meta, $possible_tokens, $trigger_meta );
		$fields          = array();
		foreach ( $possible_tokens as $token_id => $token_name ) {
			$token_type = 'text';
			if ( $trigger_meta . '_ATTENDEE_EMAIL' === $token_id ) {
				$token_type = 'email';
			}
			$fields[] = array(
				'tokenId'         => $token_id,
				'tokenName'       => $token_name,
				'tokenType'       => $token_type,
				'tokenIdentifier' => $trigger_meta,
			);
		}

		return array_merge( $tokens, $fields );
	}

Scroll to Top