Filter uncanny-automator

automator_wsformlite_validate_common_possible_trigger_tokens

Filters possible trigger tokens for WS Form Lite submissions before validation.

add_filter( 'automator_wsformlite_validate_common_possible_trigger_tokens', $callback, 10, 1 );

Description

Filters the array of tokens used for validating common WS Form Lite trigger tokens. Developers can add or remove tokens from this array to customize which WS Form Lite trigger tokens are considered valid for use in automations, allowing for more granular control over integration logic.


Usage

add_filter( 'automator_wsformlite_validate_common_possible_trigger_tokens', 'your_function_name', 10, 1 );

Parameters

$args (mixed)
This parameter provides a default array of common trigger tokens that can be extended or modified by other functions.

Return Value

The filtered value.


Examples

/**
 * Example of how to filter the possible trigger tokens for WSForm Lite submissions.
 * This example adds a custom trigger code to the list of validations.
 *
 * @param array $trigger_meta_validations The array of trigger codes that are considered valid for common tokens.
 * @param array $args                     The arguments passed to the filter, including triggers_meta.
 * @return array The modified array of trigger codes.
 */
add_filter( 'automator_wsformlite_validate_common_possible_trigger_tokens', function( $trigger_meta_validations, $args ) {

	// Check if the current trigger is related to a specific WSForm Lite form submission.
	// This is a hypothetical check for demonstration. In a real scenario, you might
	// have other conditions to check based on $args.
	if ( isset( $args['triggers_meta']['code'] ) && 'WSFORM_FORMS' === $args['triggers_meta']['code'] ) {
		// Add a custom trigger code that we want to treat as a common token.
		$trigger_meta_validations[] = 'MY_CUSTOM_WSFORM_SUBMISSION_TOKEN';
	}

	return $trigger_meta_validations;
}, 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/ws-form-lite/tokens/ws-form-lite-tokens.php:65

public function wsformlite_possible_tokens( $tokens = array(), $args = array() ) {
		$trigger_code = $args['triggers_meta']['code'];
		$form_id      = ! empty( $args['triggers_meta']['WSFORM_FORMS'] ) ? $args['triggers_meta']['WSFORM_FORMS'] : '';

		if ( empty( $form_id ) ) {
			return $tokens;
		}

		$trigger_meta_validations = apply_filters(
			'automator_wsformlite_validate_common_possible_trigger_tokens',
			array( 'WSFORM_FROM_SUBMITTED', 'WSFORM_ANON_FROM_SUBMITTED' ),
			$args
		);

		if ( in_array( $trigger_code, $trigger_meta_validations, true ) ) {
			$fields = array(
				array(
					'tokenId'         => 'FORM_ID',
					'tokenName'       => esc_html__( 'Form ID', 'uncanny-automator' ),
					'tokenType'       => 'int',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'FORM_TITLE',
					'tokenName'       => esc_html__( 'Form title', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
			);

			$form_fields = $this->get_form_fields( $form_id );
			if ( ! empty( $form_fields ) ) {
				foreach ( $form_fields as $field ) {
					$fields[] = array(
						'tokenId'         => "wsf_$form_id|field_$field->id",
						'tokenName'       => esc_html( $field->label ),
						'tokenType'       => $field->type,
						'tokenIdentifier' => $trigger_code,
					);
				}
			}

			$tokens = array_merge( $tokens, $fields );
		}

		return $tokens;
	}


Scroll to Top