Filter uncanny-automator-pro

automator_jet_crm_validate_pro_common_possible_triggers_tokens

Filters the list of possible trigger tokens for Jet CRM, allowing modification before they are displayed.

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

Description

This filter allows developers to modify the list of possible trigger tokens for Jet CRM deletion triggers. It's applied before tokens are validated, enabling the addition or removal of specific deletion event tokens to tailor trigger availability for different scenarios.


Usage

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

Parameters

$args (mixed)
This parameter contains an array of default trigger codes that represent different Jet CRM deletion events.

Return Value

The filtered value.


Examples

<?php
/**
 * Add or remove specific JET CRM deleted tokens based on the trigger code.
 *
 * This filter allows developers to customize which JET CRM deleted entities
 * are available as tokens for specific triggers. For instance, you might
 * only want to offer 'JETCRM_CONTACT_DELETED' for a trigger related to
 * contact management.
 *
 * @param array $possible_tokens An array of default possible JET CRM deleted tokens.
 * @param array $args            Additional arguments passed to the filter.
 * @return array Modified array of possible JET CRM deleted tokens.
 */
function my_custom_jet_crm_deleted_tokens( $possible_tokens, $args ) {

	// Get the current trigger code from the arguments.
	$current_trigger_code = isset( $args['triggers_meta']['code'] ) ? $args['triggers_meta']['code'] : '';

	// Define tokens that are generally available.
	$general_deleted_tokens = array(
		'JETCRM_CONTACT_DELETED',
		'JETCRM_COMPANY_DELETED',
		'JETCRM_INVOICE_DELETED',
		'JETCRM_TRANSACTION_DELETED',
	);

	// If the trigger code is for a specific purpose, we might want to filter the tokens.
	// For example, if the trigger is only about contacts, remove other tokens.
	if ( 'some_contact_related_trigger_code' === $current_trigger_code ) {
		// Keep only contact-related deleted tokens for this specific trigger.
		$specific_tokens = array_filter( $general_deleted_tokens, function( $token ) {
			return strpos( $token, 'CONTACT' ) !== false;
		} );
		return $specific_tokens;
	}

	// If the trigger code is for a different purpose, we might want to remove certain tokens.
	if ( 'some_other_trigger_code' === $current_trigger_code ) {
		// Remove invoice and transaction deleted tokens for this trigger.
		$filtered_tokens = array_diff( $general_deleted_tokens, array( 'JETCRM_INVOICE_DELETED', 'JETCRM_TRANSACTION_DELETED' ) );
		return $filtered_tokens;
	}

	// If no specific filtering is needed for this trigger, return the original (or modified) tokens.
	return $general_deleted_tokens;
}
add_filter( 'automator_jet_crm_validate_pro_common_possible_triggers_tokens', 'my_custom_jet_crm_deleted_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

uncanny-automator-pro/src/integrations/jet-crm/tokens/jetcrm-pro-tokens.php:171

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

		$trigger_meta_validations = apply_filters(
			'automator_jet_crm_validate_pro_common_possible_triggers_tokens',
			array(
				'JETCRM_CONTACT_DELETED',
				'JETCRM_COMPANY_DELETED',
				'JETCRM_INVOICE_DELETED',
				'JETCRM_TRANSACTION_DELETED',
			),
			$args
		);

		if ( in_array( $trigger_code, $trigger_meta_validations, true ) ) {
			$token_name = __( 'Customer ID', 'uncanny-automator-pro' );
			if ( 'JETCRM_COMPANY_DELETED' === $trigger_code ) {
				$token_name = __( 'Company ID', 'uncanny-automator-pro' );
			} elseif ( 'JETCRM_INVOICE_DELETED' === $trigger_code ) {
				$token_name = __( 'Invoice ID', 'uncanny-automator-pro' );
			} elseif ( 'JETCRM_TRANSACTION_DELETED' === $trigger_code ) {
				$token_name = __( 'Transaction ID', 'uncanny-automator-pro' );
			}

			$fields = array(
				array(
					'tokenId'         => 'object_id',
					'tokenName'       => $token_name,
					'tokenType'       => 'int',
					'tokenIdentifier' => $trigger_code,
				),
			);

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

		return $tokens;
	}


Scroll to Top