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;
}