Flsupport_Tokens::parse_flsupport_trigger_tokens( $value, $pieces, $recipe_id, $trigger_data, int $user_id, $replace_args )
Contents
Parameters Parameters
- $value
-
(Required)
- $pieces
-
(Required)
- $recipe_id
-
(Required)
- $trigger_data
-
(Required)
- $user_id
-
(Required)
- $replace_args
-
(Required)
Return Return
(int|mixed|string)
Source Source
File: src/integrations/fluent-support/tokens/flsupport-tokens.php
public function parse_flsupport_trigger_tokens( $value, $pieces, $recipe_id, $trigger_data, $user_id, $replace_args ) { if ( $pieces ) { if ( ! isset( $pieces[2] ) ) { return $value; } if ( stristr( $pieces[2], 'FLSUPPORT-' ) ) { global $wpdb; $trigger_id = isset( $replace_args['trigger_id'] ) ? $replace_args['trigger_id'] : 0; $trigger_log_id = isset( $replace_args['trigger_log_id'] ) ? $replace_args['trigger_log_id'] : 0; if ( 0 === (int) $trigger_id || 0 === (int) $trigger_log_id ) { return $value; } $trigger_code = $pieces[1]; $token_identifier = strtoupper( $pieces[2] ); $identifier = trim( str_replace( 'FLSUPPORT-', '', $token_identifier ), '-' ); $identifier_parts = explode( '-', $identifier ); $object_type = $identifier_parts[0]; $token_field = strtolower( str_replace( $object_type . '-', '', $identifier ) ); $ticket_id = intval( Automator()->helpers->recipe->get_form_data_from_trigger_meta( 'FLSUPPORTTICKETID', $trigger_id, $trigger_log_id, $user_id ) ); if ( 0 === (int) $ticket_id ) { return $value; } $person_id = intval( Automator()->helpers->recipe->get_form_data_from_trigger_meta( 'FLSUPPORTPERSONID', $trigger_id, $trigger_log_id, $user_id ) ); $cache_key = $trigger_id . '-' . $ticket_id; if ( ! isset( $this->trigger_tickets[ $cache_key ] ) ) { // Only query ticket object once per trigger request. $this->trigger_tickets[ $cache_key ] = $this->get_ticket_object( $ticket_id ); } $ticket = $this->trigger_tickets[ $cache_key ]; switch ( $object_type ) { case 'TICKET': $value = $this->get_object_field( $token_field, $ticket ); break; case 'AGENT': $value = $this->get_object_field( $token_field, $this->get_person_object( $ticket->agent_id ) ); break; case 'CUSTOMER': $value = $this->get_object_field( $token_field, $this->get_person_object( $ticket->customer_id ) ); break; case 'CONVERSATION': $response_id = intval( Automator()->helpers->recipe->get_form_data_from_trigger_meta( 'FLSUPPORTRESPONSEID', $trigger_id, $trigger_log_id, $user_id ) ); $value = $this->get_object_field( $token_field, $this->get_response_object( $response_id ) ); break; default: $value = apply_filters( 'uap_fl_support_token_value', $value, $trigger_id, $pieces ); } } } return $value; }
Expand full source code Collapse full source code View on Github