Support » Plugin: HandL UTM Grabber » Using Handl with ActiveCampaign

  • Resolved kellykirk2010

    (@kellykirk2010)


    Hello,

    I’m trying to figure out how to use this Handl Plugin with ActiveCampaign.

    Things I’ve done already:
    1 I’ve added the plugin to the website already.
    2. I added the shortcuts you listed under Step 1: WPs Native Shortcuts (can be found on this webpage http://www.haktansuren.com/handl-utm-grabber/) to the contact form as a hidden field in ActiveCampaign.
    3. Then I’m testing this with a test URL, but it’s not populating in ActiveCampaign.

    I noticed there is not a tutorial for ActiveCampaign – it just says that it works with it.

    Please help! This would be great if I can get this to work.

    https://wordpress.org/plugins/handl-utm-grabber/

Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Author Haktan Suren

    (@haktansuren)

    Hi @kellykirk2010,

    I think there is something wrong at Step 2. Can you give me more info on how you added the shortcodes in the AC form? Can you share me the code? and the URL where you have the form?

    Thanks,

    I can’t share the URL…

    But here’s a screenshot of how the field is managed in ActiveCampaign: https://drive.google.com/file/d/0B0X5mr33_jBBbDBoZF93TFdpOGs/view?usp=sharing

    Here is the actual form code:

    <style>
     #_form_1_ { font-size:14px; line-height:1.6; font-family:arial, helvetica, sans-serif; margin:0; }
     #_form_1_ * { outline:0; }
     ._form_hide { display:none; visibility:hidden; }
     ._form_show { display:block; visibility:visible; }
     #_form_1_._form-top { top:0; }
     #_form_1_._form-bottom { bottom:0; }
     #_form_1_._form-left { left:0; }
     #_form_1_._form-right { right:0; }
     #_form_1_ input[type="text"],#_form_1_ input[type="date"],#_form_1_ textarea { padding:6px; height:auto; border:#979797 1px solid; border-radius:4px; color:#000 !important; font-size:13px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; }
     #_form_1_ textarea { resize:none; }
     #_form_1_ ._submit { -webkit-appearance:none; cursor:pointer; font-family:arial, sans-serif; font-size:14px; text-align:center; background:#333 !important; border:0 !important; -moz-border-radius:4px !important; -webkit-border-radius:4px !important; border-radius:4px !important; color:#fff !important; padding:10px !important; }
     #_form_1_ ._close-icon { cursor:pointer; background-image:url('https://d226aj4ao1t61q.cloudfront.net/esfkyjh1u_forms-close-dark.png'); background-repeat:no-repeat; background-size:14.2px 14.2px; position:absolute; display:block; top:11px; right:9px; overflow:hidden; width:16.2px; height:16.2px; }
     #_form_1_ ._close-icon:before { position:relative; }
     #_form_1_ ._form-body { margin-bottom:30px; }
     #_form_1_ ._form-image-left { width:150px; float:left; }
     #_form_1_ ._form-content-right { margin-left:164px; }
     #_form_1_ ._form-branding { color:#fff; font-size:10px; clear:both; text-align:left; margin-top:30px; font-weight:100; }
     #_form_1_ ._form-branding ._logo { display:block; width:130px; height:14px; margin-top:6px; background-image:url('https://d226aj4ao1t61q.cloudfront.net/hh9ujqgv5_aclogo_li.png'); background-size:130px auto; background-repeat:no-repeat; }
     #_form_1_ ._form-label,#_form_1_ ._form_element ._form-label { font-weight:bold; margin-bottom:5px; display:block; }
     #_form_1_._dark ._form-branding { color:#333; }
     #_form_1_._dark ._form-branding ._logo { background-image:url('https://d226aj4ao1t61q.cloudfront.net/jftq2c8s_aclogo_dk.png'); }
     #_form_1_ ._form_element { position:relative; margin-bottom:10px; font-size:0; max-width:100%; }
     #_form_1_ ._form_element * { font-size:14px; }
     #_form_1_ ._form_element._clear { clear:both; width:100%; float:none; }
     #_form_1_ ._form_element._clear:after { clear:left; }
     #_form_1_ ._form_element input[type="text"],#_form_1_ ._form_element input[type="date"],#_form_1_ ._form_element select,#_form_1_ ._form_element textarea:not(.g-recaptcha-response) { display:block; width:100%; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; }
     #_form_1_ ._field-wrapper { position:relative; }
     #_form_1_ ._inline-style { float:left; }
     #_form_1_ ._inline-style input[type="text"] { width:150px; }
     #_form_1_ ._inline-style:not(._clear) + ._inline-style:not(._clear) { margin-left:20px; }
     #_form_1_ ._form_element img._form-image { max-width:100%; }
     #_form_1_ ._clear-element { clear:left; }
     #_form_1_ ._full_width { width:100%; }
     #_form_1_ ._form_full_field { display:block; width:100%; margin-bottom:10px; }
     #_form_1_ input[type="text"]._has_error,#_form_1_ textarea._has_error { border:#f37c7b 1px solid; }
     #_form_1_ input[type="checkbox"]._has_error { outline:#f37c7b 1px solid; }
     #_form_1_ ._error { display:block; position:absolute; font-size:13px; z-index:10000001; }
     #_form_1_ ._error._above { padding-bottom:4px; top:-41px; right:0; }
     #_form_1_ ._error._below { padding-top:4px; top:100%; right:0; }
     #_form_1_ ._error._above ._error-arrow { bottom:0; right:15px; border-left:5px solid transparent; border-right:5px solid transparent; border-top:5px solid #f37c7b; }
     #_form_1_ ._error._below ._error-arrow { top:0; right:15px; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:5px solid #f37c7b; }
     #_form_1_ ._error-inner { padding:8px 12px; background-color:#f37c7b; font-size:13px; font-family:arial, sans-serif; color:#fff; text-align:center; text-decoration:none; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; }
     #_form_1_ ._error-inner._form_error { margin-bottom:5px; position:absolute; text-align:left; }
     #_form_1_ ._button-wrapper ._error-inner._form_error { position:static; }
     #_form_1_ ._error-inner._no_arrow { margin-bottom:10px; }
     #_form_1_ ._error-arrow { position:absolute; width:0; height:0; }
     #_form_1_ ._error-html { margin-bottom:10px; }
     .pika-single { z-index:10000001 !important; }
     @media all and (min-width:320px) and (max-width:667px) { ::-webkit-scrollbar { display:none; }
     ._form-wrapper { position:fixed; top:0; bottom:0; right:0; left:0; height:100%; width:100%; overflow:hidden; overflow-y:scroll; overflow-y:-moz-scrollbars-none; -ms-overflow-style:none; }
     #_form_1_ { margin:0; width:100%; min-width:100%; max-width:100%; box-sizing:border-box; }
     #_form_1_ * { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-size:1em; }
     #_form_1_ ._form-content { margin:0; width:100%; }
     #_form_1_ ._form-inner { display:block; min-width:100%; }
     #_form_1_ ._form-title,#_form_1_ ._inline-style { margin-top:0; margin-right:0; margin-left:0; }
     #_form_1_ ._form-title { font-size:1.2em; }
     #_form_1_ ._form_element { margin:0 0 20px; padding:0; width:100%; }
     #_form_1_ ._form-element,#_form_1_ ._inline-style,#_form_1_ input[type="text"],#_form_1_ label,#_form_1_ p,#_form_1_ textarea:not(.g-recaptcha-response) { float:none; display:block; width:100%; }
     #_form_1_ ._row,#_form_1_ p,#_form_1_ label { margin-bottom:0.7em; }
     #_form_1_ ._form-image { max-width:100%; height:auto !important; }
     #_form_1_ input[type="text"] { padding-left:10px; padding-right:10px; line-height:1.3em; -webkit-appearance:none; }
     #_form_1_ input[type="radio"],#_form_1_ input[type="checkbox"] { width:1.3em; height:1.3em; font-size:1em; margin:0 0.3em 0 0; }
     #_form_1_ button[type="submit"] { padding:20px; font-size:1.5em; }
     #_form_1_ ._inline-style { margin:20px 0 0 !important; }
     }
     #_form_1_ { position:relative; text-align:left; margin:25px auto 0; padding:20px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; *zoom:1; background:#fff !important; border:0px solid #b0b0b0 !important; width:500px; -moz-border-radius:0px !important; -webkit-border-radius:0px !important; border-radius:0px !important; color:#000 !important; }
     #_form_1_ ._form-title { font-size:22px; line-height:22px; font-weight:600; margin-bottom:0; }
     #_form_1_:before,#_form_1_:after { content:" "; display:table; }
     #_form_1_:after { clear:both; }
     #_form_1_._inline-style { width:auto; display:inline-block; }
     #_form_1_._inline-style input[type="text"],#_form_1_._inline-style input[type="date"] { padding:10px 12px; }
     #_form_1_._inline-style button._inline-style { position:relative; top:27px; }
     #_form_1_._inline-style p { margin:0; }
     #_form_1_._inline-style ._button-wrapper { position:relative; margin:27px 12.5px 0 20px; }
     #_form_1_ ._form-thank-you { position:relative; left:0; right:0; text-align:center; font-size:18px; }
     @media all and (min-width:320px) and (max-width:667px) { #_form_1_._inline-form._inline-style ._inline-style._button-wrapper { margin-top:20px !important; margin-left:0 !important; }
     }
    </style>
    <form method="POST" action="https://kellykirk.activehosted.com/proc.php" id="_form_1_" class="_form _form_1 _inline-form  _dark" novalidate>
      <input type="hidden" name="u" value="1" />
      <input type="hidden" name="f" value="1" />
      <input type="hidden" name="s" />
      <input type="hidden" name="c" value="0" />
      <input type="hidden" name="m" value="0" />
      <input type="hidden" name="act" value="sub" />
      <input type="hidden" name="v" value="2" />
      <div class="_form-content">
        <div class="_form_element _x17199725 _full_width _clear" >
          <div class="_form-title">
            TEST COPY HERE
          </div>
        </div>
        <div class="_form_element _x23716752 _full_width _clear" >
          <div class="_html-code">
            <p>
              <center>
                TEST COPY HERE
              </center>
            </p>
          </div>
        </div>
        <div class="_form_element _x53612784 _full_width " >
          <label class="_form-label">
            Full Name
          </label>
          <div class="_field-wrapper">
            <input type="text" name="fullname" placeholder="Type your name" />
          </div>
        </div>
        <div class="_form_element _x94132436 _full_width " >
          <label class="_form-label">
            Email*
          </label>
          <div class="_field-wrapper">
            <input type="text" name="email" placeholder="Type your email" required/>
          </div>
        </div>
        <div class="_form_element _field1 _full_width " >
          <label class="_form-label">
            Do You Have Life Insurance?
          </label>
          <div class="_field-wrapper">
            <select name="field[1]" >
              <option value="Yes" >
                Yes
              </option>
              <option value="No" >
                No
              </option>
            </select>
          </div>
        </div>
        <div class="_form_element _field12 _full_width " >
          <input type="hidden" name="field[12]" value="[utm_source]" />
        </div>
        <div class="_form_element _field13 _full_width " >
          <input type="hidden" name="field[13]" value="[utm_medium]" />
        </div>
        <div class="_form_element _field14 _full_width " >
          <input type="hidden" name="field[14]" value="[utm_campaign]" />
        </div>
        <div class="_form_element _field15 _full_width " >
          <input type="hidden" name="field[15]" value="[utm_term]" />
        </div>
        <div class="_form_element _field16 _full_width " >
          <input type="hidden" name="field[16]" value="[utm_content]" />
        </div>
        <div class="_form_element _field17 _full_width " >
          <input type="hidden" name="field[17]" value="[gclid]" />
        </div>
        <div class="_form_element _field18 _full_width " >
          <input type="hidden" name="field[18]" value="[handl_original_ref]" />
        </div>
        <div class="_form_element _field19 _full_width " >
          <input type="hidden" name="field[19]" value="[handl_landing_page]" />
        </div>
        <div class="_form_element _field20 _full_width " >
          <input type="hidden" name="field[20]" value="[handl_ip]" />
        </div>
        <div class="_form_element _field21 _full_width " >
          <input type="hidden" name="field[21]" value="[handl_ref]" />
        </div>
        <div class="_form_element _field22 _full_width " >
          <input type="hidden" name="field[22]" value="[handl_url]" />
        </div>
        <div class="_button-wrapper _full_width">
          <button id="_form_1_submit" class="_submit" type="submit">
            Submit
          </button>
        </div>
        <div class="_clear-element">
        </div>
      </div>
      <div class="_form-thank-you" style="display:none;">
      </div>
      <div class="_form-branding">
        <div class="_marketing-by">
          Marketing by
        </div>
        <a href="http://www.activecampaign.com"></a>
      </div>
    </form><script type="text/javascript">
    window._show_thank_you = function(id, message, trackcmp_url) {
      var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you');
      form.querySelector('._form-content').style.display = 'none';
      thank_you.innerHTML = message;
      thank_you.style.display = 'block';
      if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) {
        // Site tracking URL to use after inline form submission.
        _load_script(trackcmp_url);
      }
      if (typeof window._form_callback !== 'undefined') window._form_callback(id);
    };
    window._show_error = function(id, message, html) {
      var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button');
      err.innerHTML = message;
      err.className = '_error-inner _form_error _no_arrow';
      var wrapper = document.createElement('div');
      wrapper.className = '_form-inner';
      wrapper.appendChild(err);
      button.parentNode.insertBefore(wrapper, button);
      if (html) {
        var div = document.createElement('div');
        div.className = '_error-html';
        div.innerHTML = html;
        err.appendChild(div);
      }
    };
    window._load_script = function(url, callback) {
        var head = document.querySelector('head'), script = document.createElement('script'), r = false;
        script.type = 'text/javascript';
        script.charset = 'utf-8';
        script.src = url;
        if (callback) {
          script.onload = script.onreadystatechange = function() {
          if (!r && (!this.readyState || this.readyState == 'complete')) {
            r = true;
            callback();
            }
          };
        }
        head.appendChild(script);
    };
    (function() {
      if (window.location.search.search("excludeform") !== -1) return false;
      var getCookie = function(name) {
        var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));
        return match ? match[2] : null;
      }
      var setCookie = function(name, value) {
        var now = new Date();
        var time = now.getTime();
        var expireTime = time + 1000 * 60 * 60 * 24 * 365;
        now.setTime(expireTime);
        document.cookie = name + '=' + value + '; expires=' + now + ';path=/';
      }
          var addEvent = function(element, event, func) {
        if (element.addEventListener) {
          element.addEventListener(event, func);
        } else {
          var oldFunc = element['on' + event];
          element['on' + event] = function() {
            oldFunc.apply(this, arguments);
            func.apply(this, arguments);
          };
        }
      }
      var _removed = false;
      var form_to_submit = document.getElementById('_form_1_');
      var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;
      var remove_tooltips = function() {
        for (var i = 0; i < tooltips.length; i++) {
          tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);
        }
          tooltips = [];
      };
      var remove_tooltip = function(elem) {
        for (var i = 0; i < tooltips.length; i++) {
          if (tooltips[i].elem === elem) {
            tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);
            tooltips.splice(i, 1);
            return;
          }
        }
      };
      var create_tooltip = function(elem, text) {
        var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {};
        if (elem.type != 'radio' && elem.type != 'checkbox') {
          tooltip.className = '_error';
          arrow.className = '_error-arrow';
          inner.className = '_error-inner';
          inner.innerHTML = text;
          tooltip.appendChild(arrow);
          tooltip.appendChild(inner);
          elem.parentNode.appendChild(tooltip);
        } else {
          tooltip.className = '_error-inner _no_arrow';
          tooltip.innerHTML = text;
          elem.parentNode.insertBefore(tooltip, elem);
          new_tooltip.no_arrow = true;
        }
        new_tooltip.tip = tooltip;
        new_tooltip.elem = elem;
        tooltips.push(new_tooltip);
        return new_tooltip;
      };
      var resize_tooltip = function(tooltip) {
        var rect = tooltip.elem.getBoundingClientRect();
        var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));
        if (scrollPosition < 40) {
          tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below';
        } else {
          tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above';
        }
      };
      var resize_tooltips = function() {
        if (_removed) return;
        for (var i = 0; i < tooltips.length; i++) {
          if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);
        }
      };
      var validate_field = function(elem, remove) {
        var tooltip = null, value = elem.value, no_error = true;
        remove ? remove_tooltip(elem) : false;
        if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, '');
        if (elem.getAttribute('required') !== null) {
          if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) {
            var elems = form_to_submit.elements[elem.name];
            no_error = false;
            for (var i = 0; i < elems.length; i++) {
              if (elems[i].checked) no_error = true;
            }
            if (!no_error) {
              tooltip = create_tooltip(elem, "Please select an option.");
            }
          } else if (elem.type =='checkbox') {
            var elems = form_to_submit.elements[elem.name], found = false, err = [];
            no_error = true;
            for (var i = 0; i < elems.length; i++) {
              if (elems[i].getAttribute('required') === null) continue;
              if (!found && elems[i] !== elem) return true;
              found = true;
              elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, '');
              if (!elems[i].checked) {
                no_error = false;
                elems[i].className = elems[i].className + ' _has_error';
                err.push("Checking %s is required".replace("%s", elems[i].value));
              }
            }
            if (!no_error) {
              tooltip = create_tooltip(elem, err.join(''));
            }
          } else if (elem.tagName == 'SELECT') {
            var selected = true;
            if (elem.multiple) {
              selected = false;
              for (var i = 0; i < elem.options.length; i++) {
                if (elem.options[i].selected) {
                  selected = true;
                  break;
                }
              }
            } else {
              for (var i = 0; i < elem.options.length; i++) {
                if (elem.options[i].selected && !elem.options[i].value) {
                  selected = false;
                }
              }
            }
            if (!selected) {
              no_error = false;
              tooltip = create_tooltip(elem, "Please select an option.");
            }
          } else if (value === undefined || value === null || value === '') {
            elem.className = elem.className + ' _has_error';
            no_error = false;
            tooltip = create_tooltip(elem, "This field is required.");
          }
        }
        if (no_error && elem.name == 'email') {
          if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) {
            elem.className = elem.className + ' _has_error';
            no_error = false;
            tooltip = create_tooltip(elem, "Enter a valid email address.");
          }
        }
        if (no_error && /date_field/.test(elem.className)) {
          if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) {
            elem.className = elem.className + ' _has_error';
            no_error = false;
            tooltip = create_tooltip(elem, "Enter a valid date.");
          }
        }
        tooltip ? resize_tooltip(tooltip) : false;
        return no_error;
      };
      var needs_validate = function(el) {
        return el.name == 'email' || el.getAttribute('required') !== null;
      };
      var validate_form = function(e) {
        var err = form_to_submit.querySelector('._form_error'), no_error = true;
        err ? err.parentNode.removeChild(err) : false;
        if (!submitted) {
          submitted = true;
          for (var i = 0, len = allInputs.length; i < len; i++) {
            var input = allInputs[i];
            if (needs_validate(input)) {
              if (input.type == 'text') {
                addEvent(input, 'input', function() {
                  validate_field(this, true);
                });
              } else if (input.type == 'radio' || input.type == 'checkbox') {
                (function(el) {
                  var radios = form_to_submit.elements[el.name];
                  for (var i = 0; i < radios.length; i++) {
                    addEvent(radios[i], 'click', function() {
                      validate_field(el, true);
                    });
                  }
                })(input);
              } else if (input.tagName == 'SELECT') {
                addEvent(input, 'change', function() {
                  validate_field(input, true);
                });
              }
            }
          }
        }
        remove_tooltips();
        for (var i = 0, len = allInputs.length; i < len; i++) {
          var elem = allInputs[i];
          if (needs_validate(elem)) {
            validate_field(elem) ? true : no_error = false;
          }
        }
        if (!no_error && e) {
          e.preventDefault();
        }
        resize_tooltips();
        return no_error;
      };
      addEvent(window, 'resize', resize_tooltips);
      addEvent(window, 'scroll', resize_tooltips);
      var form_submit = function(e) {
        e.preventDefault();
        if (validate_form()) {
                var serialized = _form_serialize(document.getElementById('_form_1_'));
          _load_script('https://kellykirk.activehosted.com/proc.php?' + serialized + '&jsonp=true');
        }
        return false;
      };
      addEvent(form_to_submit, 'submit', form_submit);
      window._old_serialize = null;
      if (typeof serialize !== 'undefined') window._old_serialize = window.serialize;
      _load_script("//d3rxaij56vjege.cloudfront.net/form-serialize/0.3/serialize.min.js", function() {
        window._form_serialize = window.serialize;
        if (window._old_serialize) window.serialize = window._old_serialize;
      });
    })();
    </script>
    <code></code>
    Plugin Author Haktan Suren

    (@haktansuren)

    OK I think I know the problem. Usage of the shortcode in form elements do not work in WordPress. That’s why you need to use “INPUT FIELD WRAPPER

    To give you an example from your code:
    Instead of
    <div class="_form_element _field12 _full_width "><input name="field[12]" type="hidden" value="[utm_source]" /></div>

    you should use this
    [utm_source_i]<div class="_form_element _field12 _full_width "><input type="hidden" name="field[12]" value="%s" /></div>[/utm_source_i]

    OR simply assign proper class to your elements. See HASSLE FREE IMPLEMENTATION (NO SHORTCODE)

    Example
    <div class="_form_element _field12 _full_width "><input name="field[12]" type="hidden" value="[utm_source]" class="utm_source" /></div>

    Hope it resolves the problem you are having, let us know either way.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Using Handl with ActiveCampaign’ is closed to new replies.