Skip to content

Instantly share code, notes, and snippets.

@ajtatum
Created November 22, 2024 16:57
Show Gist options
  • Save ajtatum/3014dc71c684c8cefbe2873aadc3d25f to your computer and use it in GitHub Desktop.
Save ajtatum/3014dc71c684c8cefbe2873aadc3d25f to your computer and use it in GitHub Desktop.
Fluent Forms and AFL UTM Tracker Snippet
<?
/*
* 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