=== HandL UTM Grabber / Tracker===
Contributors: haktansuren
Tags: utm,tracker,gclid,tracking,utm tracking,grabber,shortcodes,contact form 7,leads,collect,collect leads
Requires at least: 3.6.0
Tested up to: 6.9
Stable tag: 2.8.3
Requires PHP: 5.3
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

The easiest (we mean it!) way to capture UTMs on your (optin) forms. Supports: Contact Form 7, Gravity Forms, Ninja Forms, Salesforce, ActiveCampaign and many more.

== Description ==
= WordPress UTM Tracker Plugin =

Capture and track **all the UTM** variables, gclid (and more) as soon as user hits your website (ANY page of your WP installation): One great feature of the plugin is the UTM variables are saved in **client's browser (COOKIES)** and even though there is no UTM variables in URL (query arguments/parameters), the variables can still be accessible via shortcode across any page/widget of your website. Because they are pulled from client-side user cookies.

> #### Major features in HandL UTM Grabber / Tracker include:
>
> * Add hidden fields in your forms (incl. Contact Form 7, Gravity Forms, WordPress-to-lead for Salesforce CRM, Ninja Forms, ActiveCampaign, Caldera Forms, WooCommerce, Formidable and many more.)
> * Pass UTM variables and all the parameters to major marketing tools such as Salesforce CRM, PipeDrive CRM, HubSpot Email Marketing, HubSpot CRM, Google Sheets, Active Campaign, Zoho CRM, Zoho Mail, Zoho Invoice, Agile CRM, Slack, Trello, Infusionsoft by Keap, Microsoft Excel, Dropbox, HelpScout, Zendesk, Freshbooks, Freshsales, Intercom, Click Funnels, Microsoft Dynamics 365 CRM, Capsule CRM, Insightly CRM, Printfection, Acuity Scheduling, Quickbooks Online, Vero, Aweber, Interspire using our Zapier integration...
> * Hassle free implementation (no shortcodes). See below...   

Upgrade to HandL UTM Grabber V3 to unlock all the [**premium features**](https://utmgrabber.com/?utm_source=WordPress_FREE&utm_medium=wordpress_update_link&utm_campaign=HandL_Plugin_Page)

* Track all UTM and custom parameters
* Adjust cookie time as you wish
* EU GDPR compliant tracking
* Latest Wordpress & PHP 7.4 Support
* Server & client side tracking
* Tracks clientid from Google Analytics
* Track source from Organic Traffic
* Pass all tracked data to different domains/iframes
* Google Analytics (GA) offline conversions
* Site 2 Site (S2S) Postback


We support most common WordPress form/ecommerce/membership plugins

* Contact Form 7
* Ninja Form
* Gravity Forms
* Caldera Forms
* Formidable
* WPForms
* Elementor
* Thrive Leads
* Divi
* Ultimate Membership
* WooCommerce
* ARForms
* Cognito Forms
* Easy Registration Forms
* Form Maker
* Form Titan
* Forminator
* Formstack
* Heyflow
* JotForm
* Logiforms
* Marketo
* NexForms
* Ontraport
* Optimize Leads
* Optimize Press
* Optin Monster
* Pardot
* Piotnet
* Quorum
* Sleeknote
* Spiffy
* Thrive Architect
* Thrive Leads
* Typeform
* Webflow
* WP Fluent Forms
* WP Everest
* Yith WooCommerce Request a Quote 
* Zoho Forms

We integrate with most of the marketing tools using our Zapier/Integromat integration

* Salesforce CRM
* PipeDrive CRM
* HubSpot Email Marketing
* HubSpot CRM
* Google Sheets
* Active Campaign
* Zoho CRM
* Zoho Mail
* Zoho Invoice
* Agile CRM
* Slack
* Trello
* Infusionsoft by Keap
* Microsoft Excel
* Dropbox
* HelpScout
* Zendesk
* Freshbooks
* Freshsales
* Intercom
* Click Funnels
* Microsoft Dynamics 365 CRM
* Capsule CRM
* Insightly CRM
* Printfection
* Acuity Scheduling
* Quickbooks Online
* Vero
* Aweber
* Interspire
* SendGrid
* MailChimp
* GetResponse
* ConvertKit
* Drip
* MailerLite
* Klaviyo
* Mailgen

Compatible with many other plugins

* AffiliateWP
* Amelia Booking
* Bloom
* Brave
* Brilliant Web-to-Lead
* Calendly
* Easy Appointments
* Easy Digital Downloads
* Memberpress
* SamCart
* Thrive Cart
* Ultimate Member
* WP Job Manager


List of GDPR solutions we are compatible with

* Borlabs Cookie
* Complianz
* Cookie Information
* Cookie Notice
* Cookiebot
* CookiePro
* CookieYes (GDPR Cookie Consent)
* Ultimate GDPR & CCPA



[Check out the documentation](https://handldigital.com/utm-grabber/documentation/public/?utm_medium=referral&utm_source=wordpress.org&utm_campaign=HandL+UTM+Grabber+Readme&utm_content=Documentation)

Please [review](https://wordpress.org/support/view/plugin-reviews/handl-utm-grabber#postform) if you like the plugin!

Question/Problem/Support join our [slack channel](https://www.haktansuren.com/slack-handlwp/).

**SPECIAL THANKS:** This plugin has been tested on various operating systems and browsers thanks to <a href='https://www.browserstack.com'>BrowserStack!</a> 

== Installation ==

This section describes how to install the plugin and get it working.

1. Upload `handl-utm-grabber` folder to the `/wp-content/plugins/` directory via FTP
1. Activate the plugin through the 'Plugins' menu in WordPress

== Frequently Asked Questions ==
= I'm using X Forms. Can I use this plugin to track UTMs? =
Most likely the answer is yes! This plugin is the only UTM Tracking plugin that supports majority of the form plugins. Here is the list of forms we support out of the box. Please contact us if your form is not listed here. Like said, we probably support your favorite forms too :)
* Contact Form 7
* Ninja Form
* WPForms
* Elementor
* Thrive Leads
* Formidable

= What can I track with HandL UTM Grabber / Tracker? =
You can track UTMs, ValueTrack, Facebook Ads parameters and EVERYTHING (using the custom parameters)

= I have WooCommerce, how can I use HandL UTM Grabber / Tracker to track UTMs? =
HandL UTM Grabber / Tracker supports WooCommerce out of the box. Just activate the plugin and next order via WooCommerce will collect all the UTMs, ValueTrack, Facebook Ads parameters and EVERYTHING (using the custom parameters)

= How long can I track our leads / users for using HandL UTM Grabber / Tracker? =
Community version tracks your leads/users for 30 days. However you can define your own value with HandL UTM Grabber / Tracker V3


== Screenshots ==

1. It should look like this after install.
1. Gravity Form Integration.
1. Salesforce Integration.
1. Append UTM variables to all URLs automatically.
1. Contact Form 7 Integration
1. Elementor Integration
1. Ninja Forms Integration
1. Ultimate Member Integration
1. WooCommerce to Webhook/Postback/IPN Integration
1. WPForms Integration
1. Zapier Integration

== Changelog ==
= 2.8.3 =
* Security: Improved output escaping and sanitization
* Security: Added direct file access protection

= 2.8.2 =
* New: Added Elementor integration for tracking UTM parameters in forms

= 2.8.1 =
* Security: Fixed reflected XSS vulnerabilities in shortcode output
* Security: Improved input sanitization for UTM and tracking parameters following WordPress best practices
* Security: Added context-aware output escaping using esc_html() and esc_url()
* Security: Removed urldecode() from output to prevent double-encoding bypass attacks
* Security: Implemented "sanitize early, escape late" pattern throughout the codebase

= 2.8 =
* Brand new interface
* Fixed UI bugs and improved user experience in Contact Form 7 integration

= 2.7.32 =
Contact Form 7 Bugfix for 6.1

= 2.7.31 =
* Added shortcuts for Contact Form 7 integration and more documentation for CF7 and Gravity

= 2.7.30 =
* Added httponly cookie setting (default is still httponly=false)

= 2.7.29 =
* Fixed ninja form check for site status health check

= 2.7.28 =
* Fixed append UTM to all the links bug (potential XSS vulnerability)

= 2.7.27 =
* Fixed decoding problem

= 2.7.26 =
* Added more to the knowledge base. Fixed PHP8.1 related bug as well.

= 2.7.25 =
* Introduced knowledge base

= 2.7.24 =
* Dr. UTM Lab release and other notifications.

= 2.7.23 =
* Fixing the append utm feature bug

= 2.7.22 =
* Fixing fatal error caused by 2.7.21

= 2.7.21 =
* Gravity form improvements

= 2.7.19 =
* Best practise for tracking on IOS 14 has been added. Dead links are corrected.

= 2.7.18 =
* Plugin maintenance and cleanups

= 2.7.17 =
* GCLID Reporter apps released.

= 2.7.16 =
* Bugfix: Potential XSS fix. Big shout out to Marcos Oliveira (@marcosvixtor). Thanks for reporting it.

= 2.7.15 =
* Bugfix: Subscribers can see UTM on the Toolbar. Thanks @risoedus for reporting

= 2.7.14 =
* Some new seasonal notifications added.

= 2.7.13 =
* HandL notifications added.

= 2.7.12 =
* Health check and best practice of collecting UTMs in Ninja Forms

= 2.7.11 =
* New domain update.

= 2.7.10 =
* Health check and best practice of collecting UTMs related to caching. Check "site health" page to make sure you are not missing any data.

= 2.7.9 =
* Health check and best practice of collecting UTMs in Gravity Forms

= 2.7.8 =
* BugFix: UTM field values having `%` was breaking the JavScript.
* Coming Soon: UTM Grabber smart troubleshooting / notifications

= 2.7.7 =
* Health check and best practice of collecting UTMs in Contact Form 7

= 2.7.6 =
* Adding new health check for website audit and tracking js bug fix for utm-out

= 2.7.5 =
* Fixing WP CLI related problems.

= 2.7.4 =
* Improvements, plugin page description change, screenshot added. PHP 5.4 fix for array notation.

= 2.7.3 =
* Various improvements including menu bar for UTM and health check recommendations. 

= 2.7.2 =
* fix for headers already sent. Thanks for reporting [@labatt](https://wordpress.org/support/topic/php-warning-cannot-modify-header-information-headers-already-sent-5/)

= 2.7.1 =
* fix for null coalescing operator for PHP < 7.0 compatiblility

= 2.7 =
* Zapier integration added for Contact Form 7, Ninja Form, Gravity Form

= 2.6.6 =
* simple_html_dom.php dependency upgraded to the latest

= 2.6.5 =
* Critical Bug Fix: Possible cross-site request forgery (CSRF) due to add_option, update_option usage

= 2.6.4 =
* Varnish cache and WP Engine workaround fix (JS based COOKIE save)
* 502 error fixed. Possibly caused by printed text before we set the COOKIES. 
* PHP 7.3 related warnings due to simple_html_dom.php fixed

= 2.6.3 =
* BUG FIX: https://wordpress.org/support/topic/php-notice-undefined-index-ninja-php/ & https://wordpress.org/support/topic/php-deprecated-function/

= 2.6.2 =
* NEW FEATURE: append UTM parameters to all the anchor tag (<a>) having class “.utm-out”

= 2.6.1 =
* Absolutely nothing, just trying to fix the version

= 2.6.0 =
* Ninja Form Merge Tags implemented for all the variables used in HandL UTM Grabber / Tracker (e.g. {handl:utm_campaign})

= 2.5.13 =
* localhost cookie problem fixed.  

= 2.5.12 =
* Bugfix for [handl_landing_page] and [handl_url]: the URL was not populating on secure sites (https://). Subdomain suport for all the UTM variables and other shortcodes. Special thanks to David W for sponsoring the update. 

= 2.5.11 =
* Security Bugfix: Potential XSS attack using cookies. Special thanks to Robert Tubridy for reporting. 

= 2.5.10 =
* Bugfix: Fix for append UTM variables to all the links: it was adding the UTMs even though the feature is turned off.

= 2.5.9 =
* Bugfix: Initialize SERVER variables and fix nav_menu_link_attributes  

= 2.5.8 =
* Bugfix: Visual Composer Accordion/Tabs fix (Append UTM feature conflict). Thanks [@radasonea](https://wordpress.org/support/topic/accordion-visual-doesnt-work-after-plugin-activates/)   

= 2.5.7 =
* Bug-fix caused by v2.5.7.

= 2.5.6 =
* Append UTM fix for WP menu, new shortcodes: [username] and [email]

= 2.5.5 =
* Fix for the JS in footer for website uses minify JS (Thanks [sylvainww](https://wordpress.org/support/topic/plugin-adds-uncaught-referenceerror-2/))

= 2.5.4 =
* Added CouponHut theme support (Thanks [zizzi17](https://wordpress.org/support/topic/append-to-all-urls-works-only-partially/))

= 2.5.3 =
* WooCommerce support: All parameters (UTM and others) are appended to the corresponding order's meta when available. 

= 2.5 =
* One click to aappend UTM variables to all the links on your site. 

= 2.3 =
* Fix for php close tag at the end of the file. 

= 2.2 =
* New shortcodes added for leads tracking (e.g. Original Referral URL, Referral URL, IP, Landing Page etc.)

= 2.1 =
* Shortcode support for CF7 and Salesforce (Thanks to jenrstretch and wpkmi)

= 2.0 =
* Hassle Free Implementation (No Shortcode)

= 1.4 =
* Gravity Forms support added (Thanks [hashimwarren](https://wordpress.org/support/topic/gravity-forms-45 ))

= 1.3 =
* BugFix for Text Widget (Thanks [eddygbarrett](https://wordpress.org/support/topic/handl-not-working))

= 1.2 =
* BugFix for Contact Form 7 (Thanks [wpkmi](https://wordpress.org/support/topic/contact-form-7-form-submission-hangs-when-utm-grabber-plugin-is-enabled))

= 1.1 =
* Shortcodes changed to support form input
* World's most effective written code :)

= 1.0 =
* Hello World :)


== Upgrade Notice ==

= 1.0 =
HandL UTM Grabber's birthday :)
