Filter uncanny-automator

automator_armember_validate_common_trigger_codes

Filters the trigger codes for armember payment cancellation before validation.

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

Description

This filter allows developers to modify the array of trigger codes that are considered valid for common ARMember trigger validations. It fires after ARMember trigger arguments are processed, enabling customization of which ARMember actions are recognized as valid trigger events within the Automator plugin.


Usage

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

Parameters

$args (mixed)
This parameter contains an array of ARMember trigger codes that are considered valid for common trigger validations within the automator.

Return Value

The filtered value.


Examples

add_filter(
	'automator_armember_validate_common_trigger_codes',
	'my_custom_armember_trigger_validation',
	10,
	2
);

/**
 * Custom validation for ARMember trigger codes.
 *
 * This function adds a custom trigger code ('MY_CUSTOM_ARMEMBER_EVENT')
 * to the list of validated common trigger codes for ARMember.
 *
 * @param array $trigger_meta_validations The array of trigger codes to validate.
 * @param array $args                   The arguments passed to the filter.
 * @return array The modified array of trigger codes to validate.
 */
function my_custom_armember_trigger_validation( $trigger_meta_validations, $args ) {
	// Add a custom trigger code to the list of validations.
	// This assumes 'MY_CUSTOM_ARMEMBER_EVENT' is a valid ARMember trigger code
	// that your custom integration or plugin might use.
	$trigger_meta_validations[] = 'MY_CUSTOM_ARMEMBER_EVENT';

	// You could also conditionally add it based on $args if needed.
	// For example, if a specific user role or membership level is involved.
	// if ( isset( $args['user_id'] ) && get_user_meta( $args['user_id'], 'is_premium_member', true ) ) {
	//     $trigger_meta_validations[] = 'MY_PREMIUM_ARMEMBER_EVENT';
	// }

	return $trigger_meta_validations;
}

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:55

public function save_token_data( $args, $trigger ) {
		if ( ! isset( $args['trigger_args'] ) || ! isset( $args['entry_args']['code'] ) ) {
			return;
		}

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

		if ( in_array( $args['entry_args']['code'], $trigger_meta_validations, true ) ) {
			$trigger_log_entry = $args['trigger_entry'];
			if ( isset( $args['trigger_args'][0], $args['trigger_args'][1] ) ) {
				Automator()->db->token->save( 'save_user_id', $args['trigger_args'][0], $trigger_log_entry );
				Automator()->db->token->save( 'save_plan_id', $args['trigger_args'][1], $trigger_log_entry );
			}
		}
	}


Scroll to Top