Created
November 22, 2024 16:57
-
-
Save ajtatum/3014dc71c684c8cefbe2873aadc3d25f to your computer and use it in GitHub Desktop.
Fluent Forms and AFL UTM Tracker Snippet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
/* | |
* Add the smartcode to the list | |
*/ | |
add_filter('fluentform_editor_shortcodes', function ($smartCodes) { | |
$smartCodes[0]['shortcodes']['{afl_session_landing_page}'] = 'AFL Session Landing Page'; | |
//$smartCodes[0]['shortcodes']['{afl_session_visit_date}'] = 'AFL Session Visit Date'; | |
$smartCodes[0]['shortcodes']['{afl_first_utm_url}'] = 'AFL First UTM URL'; | |
//$smartCodes[0]['shortcodes']['{afl_first_utm_visit_date}'] = 'AFL First UTM Visit Date'; | |
$smartCodes[0]['shortcodes']['{afl_first_utm_source}'] = 'AFL First UTM Source'; | |
$smartCodes[0]['shortcodes']['{afl_first_utm_medium}'] = 'AFL First UTM Medium'; | |
$smartCodes[0]['shortcodes']['{afl_first_utm_campaign}'] = 'AFL First UTM Campaign'; | |
$smartCodes[0]['shortcodes']['{afl_first_utm_term}'] = 'AFL First UTM Term'; | |
$smartCodes[0]['shortcodes']['{afl_first_utm_content}'] = 'AFL First UTM Content'; | |
$smartCodes[0]['shortcodes']['{ajtd_login_redirect_to}'] = 'Login Redirect To'; | |
$smartCodes[0]['shortcodes']['{fluent_form_name}'] = 'Fluent Form Name'; | |
$smartCodes[0]['shortcodes']['{form_for}'] = 'Form For'; | |
/* | |
$afl_fields = getAFLDateFields(); | |
foreach ($afl_fields_ids as $field) | |
{ | |
$smartCodes[0]['shortcodes']['{'. $field->key .'}'] = '\'' . $field->name . '\''; | |
} | |
*/ | |
$afl_fields_ids = array('afl_wc_utm_gclid_visit', 'afl_wc_utm_fbclid_visit', 'afl_wc_utm_msclkid_visit', 'afl_wc_utm_conversion_ts', 'afl_wc_utm_sess_visit', 'afl_wc_utm_utm_1st_visit', 'afl_wc_utm_utm_visit'); | |
foreach ($afl_fields_ids as $field) | |
{ | |
switch($field) { | |
case "afl_wc_utm_gclid_visit": | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_gclid_visit}'] = 'AFL Google Visit DateTime'; | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_gclid_visit_date}'] = 'AFL Google Visit Date'; | |
break; | |
case "afl_wc_utm_fbclid_visit": | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_fbclid_visit}'] = 'AFL Facebook Visit DateTime'; | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_fbclid_visit_date}'] = 'AFL Facebook Visit Date'; | |
break; | |
case "afl_wc_utm_msclkid_visit": | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_msclkid_visit}'] = 'AFL Microsoft Visit DateTime'; | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_msclkid_visit_date}'] = 'AFL Microsoft Visit Date'; | |
break; | |
case "afl_wc_utm_conversion_ts": | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_conversion_ts}'] = 'AFL Conversion DateTime'; | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_conversion_date}'] = 'AFL Conversion Date'; | |
break; | |
case "afl_wc_utm_sess_visit": | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_sess_visit}'] = 'AFL Session Visit DateTime'; | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_sess_visit_date}'] = 'AFL Session Visit Date'; | |
break; | |
case "afl_wc_utm_utm_1st_visit": | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_utm_1st_visit}'] = 'AFL First UTM Visit DateTime'; | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_utm_1st_visit_date}'] = 'AFL First UTM Visit Date'; | |
break; | |
case "afl_wc_utm_utm_visit": | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_utm_visit}'] = 'AFL Last UTM Visit DateTime'; | |
$smartCodes[0]['shortcodes']['{afl_wc_utm_utm_visit_date}'] = 'AFL Last UTM Visit Date'; | |
break; | |
default: | |
break; | |
} | |
} | |
return $smartCodes; | |
}); | |
/* | |
* Transform the smartcode | |
*/ | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_gclid_visit', function ($value, $form) { | |
return GetIsoDateFromCookieTimeStamp('afl_wc_utm_gclid_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_fbclid_visit', function ($value, $form) { | |
return GetIsoDateFromCookieTimeStamp('afl_wc_utm_fbclid_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_msclkid_visit', function ($value, $form) { | |
return GetIsoDateFromCookieTimeStamp('afl_wc_utm_msclkid_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_conversion_ts', function ($value, $form) { | |
return GetIsoDateFromCookieTimeStamp('afl_wc_utm_conversion_ts'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_sess_visit', function ($value, $form) { | |
return GetIsoDateFromCookieTimeStamp('afl_wc_utm_sess_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_utm_1st_visit', function ($value, $form) { | |
return GetIsoDateFromCookieTimeStamp('afl_wc_utm_utm_1st_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_utm_visit', function ($value, $form) { | |
return GetIsoDateFromCookieTimeStamp('afl_wc_utm_utm_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_gclid_visit_date', function ($value, $form) { | |
return GetDateFromCookieTimeStamp('afl_wc_utm_gclid_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_fbclid_visit_date', function ($value, $form) { | |
return GetDateFromCookieTimeStamp('afl_wc_utm_fbclid_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_msclkid_visit_date', function ($value, $form) { | |
return GetDateFromCookieTimeStamp('afl_wc_utm_msclkid_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_conversion_date', function ($value, $form) { | |
return GetDateFromCookieTimeStamp('afl_wc_utm_conversion_ts'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_sess_visit_date', function ($value, $form) { | |
return GetDateFromCookieTimeStamp('afl_wc_utm_sess_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_utm_1st_visit_date', function ($value, $form) { | |
return GetDateFromCookieTimeStamp('afl_wc_utm_utm_1st_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_wc_utm_utm_visit_date', function ($value, $form) { | |
return GetDateFromCookieTimeStamp('afl_wc_utm_utm_visit'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_session_landing_page', function ($value, $form) { | |
if(isset($_COOKIE['afl_wc_utm_sess_landing'])) { | |
return urldecode($_COOKIE['afl_wc_utm_sess_landing']); | |
} | |
return ''; | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_first_utm_url', function ($value, $form) { | |
if(isset($_COOKIE['afl_wc_utm_utm_1st_url'])) { | |
return urldecode($_COOKIE['afl_wc_utm_utm_1st_url']); | |
} | |
return ''; | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_first_utm_source', function ($value, $form) { | |
return GetQueryStringFromCookieURL('afl_wc_utm_utm_1st_url', 'utm_source'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_first_utm_medium', function ($value, $form) { | |
return GetQueryStringFromCookieURL('afl_wc_utm_utm_1st_url', 'utm_medium'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_first_utm_campaign', function ($value, $form) { | |
return GetQueryStringFromCookieURL('afl_wc_utm_utm_1st_url', 'utm_campaign'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_first_utm_term', function ($value, $form) { | |
return GetQueryStringFromCookieURL('afl_wc_utm_utm_1st_url', 'utm_term'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_afl_first_utm_content', function ($value, $form) { | |
return GetQueryStringFromCookieURL('afl_wc_utm_utm_1st_url', 'utm_content'); | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_ajtd_login_redirect_to', function ($value, $form) { | |
$redirect_to = ''; | |
if (isset($_GET['redirect_to']) && !empty($_GET['redirect_to'])) | |
{ | |
$redirect_to = filter_var($_GET['redirect_to'], FILTER_SANITIZE_URL); | |
} | |
if(empty($redirect_to)) | |
{ | |
$redirect_to = 'https://ajtatumdigital.com/'; | |
} | |
return $redirect_to; | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_fluent_form_name', function ($value, $form) { | |
$dynamicValue = $form->title; | |
return $dynamicValue; | |
}, 10, 2); | |
add_filter('fluentform_editor_shortcode_callback_form_for', function ($value, $form) { | |
$form_for = ''; | |
if (isset($_GET['for']) && !empty($_GET['for'])) | |
{ | |
$form_for = filter_var($_GET['for'], FILTER_SANITIZE_STRING); | |
} | |
if(!empty($form_for)) | |
{ | |
switch($form_for) { | |
case "tds": | |
$form_for = "TDS Podcast"; | |
break; | |
case "pod": | |
$form_for = "AJTD Podcast"; | |
break; | |
default: | |
$form_for = $form->title; | |
break; | |
} | |
} | |
else | |
{ | |
$id = $form->id; | |
switch($id) { | |
case 7: | |
$form_for = "AJTD Contact"; | |
break; | |
default: | |
$form_for = $form->title; | |
break; | |
} | |
} | |
return $form_for; | |
}, 10, 2); | |
function GetQueryStringFromCookieURL($cookieName, $queryString) | |
{ | |
if(isset($_COOKIE[$cookieName])) { | |
$url = urldecode($_COOKIE[$cookieName]); | |
parse_str(parse_url($url)['query'], $params); | |
return $params[$queryString] ?? ''; | |
} | |
return ''; | |
} | |
function GetIsoDateFromCookieTimeStamp($cookieName) | |
{ | |
if(isset($_COOKIE[$cookieName])) { | |
$timestamp = $_COOKIE[$cookieName]; | |
return GetIsoDateFromTimeStamp($timestamp); | |
} | |
return ''; | |
} | |
function GetDateFromCookieTimeStamp($cookieName) | |
{ | |
if(isset($_COOKIE[$cookieName])) { | |
$timestamp = $_COOKIE[$cookieName]; | |
return GetDateFromTimeStamp($timestamp); | |
} | |
return ''; | |
} | |
function GetDateFromTimeStamp($unixTime) | |
{ | |
$timeZone = new \DateTimeZone('America/New_York'); | |
$time = new \DateTime(); | |
$time->setTimestamp($unixTime)->setTimezone($timeZone); | |
$formattedTime = $time->format('Y-m-d'); | |
return $formattedTime; | |
} | |
function GetIsoDateFromTimeStamp($unixTime) | |
{ | |
$timeZone = new \DateTimeZone('America/New_York'); | |
$time = new \DateTime(); | |
$time->setTimestamp($unixTime)->setTimezone($timeZone); | |
$formattedTime = $time->format('c'); | |
return $formattedTime; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment