Filter uncanny-automator

automator_armember_validate_common_tokens_trigger_code

Filters the common tokens available for validating ARMember trigger codes, allowing for custom token inclusion.

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

Description

This filter hook allows developers to modify the array of valid trigger codes for ARMemeber common tokens. It fires when the plugin is validating trigger codes for ARMemeber automations, enabling custom validation logic or the addition of new trigger codes. The first parameter is the array of trigger codes, and the second is the arguments array containing trigger metadata.


Usage

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

Parameters

$args (mixed)
This parameter is an array containing specific trigger codes related to Armember plans, used to validate common tokens.

Return Value

The filtered value.


Examples

<?php
/**
 * Example of how to filter the ARMEMBER trigger codes that are considered valid for common tokens.
 *
 * This filter allows you to add or remove specific ARMEMBER trigger codes from the default list
 * that Uncanny Automator considers to have common tokens. This can be useful if you've
 * created custom ARMEMBER triggers or want to exclude certain built-in triggers from having
 * common token support.
 *
 * @param array $trigger_codes An array of ARMEMBER trigger codes that are considered valid for common tokens.
 * @param array $args          The arguments passed to the filter, which includes trigger metadata.
 * @return array The modified array of ARMEMBER trigger codes.
 */
function my_custom_armember_common_token_triggers( $trigger_codes = array(), $args = array() ) {

    // Let's say we want to exclude the 'ARM_CANCEL_PLAN' trigger from having common tokens
    // for some reason, perhaps it's handled differently in our custom setup.
    $trigger_codes_to_remove = array( 'ARM_CANCEL_PLAN' );

    // Remove the specified trigger codes from the list.
    $trigger_codes = array_diff( $trigger_codes, $trigger_codes_to_remove );

    // If we have a custom trigger code, let's add it.
    // For demonstration, let's assume 'MY_CUSTOM_ARMEMBER_EVENT' is a custom trigger.
    $custom_trigger_code = 'MY_CUSTOM_ARMEMBER_EVENT';
    if ( ! in_array( $custom_trigger_code, $trigger_codes, true ) ) {
        $trigger_codes[] = $custom_trigger_code;
    }

    return $trigger_codes;
}
add_filter( 'automator_armember_validate_common_tokens_trigger_code', 'my_custom_armember_common_token_triggers', 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/armember/tokens/armember-tokens.php:81
uncanny-automator-pro/src/integrations/armember/tokens/armember-pro-tokens.php:97

public function armember_possible_tokens( $tokens = array(), $args = array() ) {
		$trigger_code = $args['triggers_meta']['code'];

		$trigger_meta_validations = apply_filters(
			'automator_armember_validate_common_tokens_trigger_code',
			array( 'ARM_CANCEL_PLAN' ),
			$args
		);

		if ( in_array( $trigger_code, $trigger_meta_validations, true ) ) {

			$fields = array(
				array(
					'tokenId'         => 'ARM_MEMBERSHIP_PLAN',
					'tokenName'       => esc_html_x( 'Membership plan', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBERSHIP_TYPE',
					'tokenName'       => esc_html_x( 'Membership type', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBERSHIP_PLAN_ID',
					'tokenName'       => esc_html_x( 'Plan ID', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'int',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBER_USERNAME',
					'tokenName'       => esc_html_x( 'Member username', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBER_EMAIL',
					'tokenName'       => esc_html_x( 'Member email', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'email',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBER_FIRST_NAME',
					'tokenName'       => esc_html_x( 'Member first name', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBER_LAST_NAME',
					'tokenName'       => esc_html_x( 'Member last name', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBER_ROLE',
					'tokenName'       => esc_html_x( 'Member role', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBER_STATUS',
					'tokenName'       => esc_html_x( 'Member status', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
				array(
					'tokenId'         => 'ARM_MEMBER_JOINED_DATE',
					'tokenName'       => esc_html_x( 'Member joined date', 'Armember', 'uncanny-automator' ),
					'tokenType'       => 'text',
					'tokenIdentifier' => $trigger_code,
				),
			);

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

		return $tokens;
	}


Scroll to Top