=== WordPress CRM, Email & Marketing Automation for WordPress | Award Winner — Groundhogg ===
Contributors: trainingbusinesspros, Groundhogg, Adrian Tobey
Tags: wordpress crm, marketing automation, crm, email marketing, email automation
Donate link: https://www.groundhogg.io/pricing/
Requires at least: 5.0
Tested up to: 5.8
Requires PHP: 7.1
Stable tag: 2.5.7.4
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl.md

The best WordPress CRM & Marketing Automation plugin. Create funnels, email campaigns, newsletters, marketing automation, and have a CRM all within your WordPress website.

== Description ==

WordPress CRM, Email & Marketing Automation

👉 [Official Site](https://groundhogg.io/) | 📃 [Documentation](https://help.groundhogg.io/) | 🎓 [Groundhogg Academy](https://academy.groundhogg.io/)

🌎 [Facebook Group](https://www.facebook.com/groups/groundhoggwp/) | 📺 [YouTube Channel](https://www.youtube.com/groundhogg)

🚀 [Free Quickstart Course — Launch your first funnel!](https://academy.groundhogg.io/course/groundhogg-quickstart/)

🏆 [2020 Gold Stevie Award Winner](https://www.groundhogg.io/press/gold-2020-stevie-award-winner-our-first-award/)

## Join 3,000+ Small Businesses in 35+ Countries!

### All new Search Filters enable you to find more business, faster! [August 11th, 2021](https://www.groundhogg.io/updates/groundhoggs-all-new-search-filters-enable-you-to-find-more-business-faster/)

[youtube https://youtu.be/shJLAbL-Zxo]

### Groundhogg 2.5 is a preview of what's to come! [August 11th, 2021](https://www.groundhogg.io/updates/groundhogg-2-5-shows-a-glimpse-of-whats-coming-down-the-pipeline/)

[youtube https://youtu.be/25joq7uCfsE]

Groundhogg CRM & Marketing Automation for WordPress can help you dramatically improve how you acquire leads and make more sales!

Our award winning WordPress CRM is the very best alternative to [Infusionsoft](https://groundhogg.io/comparison/groundhogg-vs-infusionsoft/), [ActiveCampaign](https://groundhogg.io/comparison/groundhogg-vs-activecampaign/), [Convertkit](https://www.groundhogg.io/comparison/convertkit/), [HubSpot](https://groundhogg.io/comparison/groundhogg-vs-hubspot/), [MailChimp](https://www.groundhogg.io/comparison/mailchimp/) and [other SaaS platforms](https://www.groundhogg.io/comparison/).

You don’t have to sacrifice CRM features when you switch to our self-hosted solution. In fact you can **[save $1,000s per year](https://www.groundhogg.io/comparison/)** and have the added benefit of owning all your information.

If you are an agency, WaaS, WordPress developer, LMS/Course Creator, WordPress freelancer, or CRM implementation service provider then the Groundhogg CRM and Marketing Automation suite is for you.

## 💸 Eliminating the "Success Tax"

Other SaaS (Software as a Service) CRM platforms will charge you more as your list grows.

But not us!

When using the Groundhogg CRM & Marketing Automation suite free or with any of our paid plans, _we'll never charge you more_!

### 🚫 There are *no limits* on:

* Number of contacts
* Number of funnels or automations
* Number of emails sent

When using Groundhogg CRM & Marketing Automation you will **never** be limited on the amount of **anything**! Unlike [other SaaS platforms](https://www.groundhogg.io/comparison/).

## 🔎 At A Glance

* Best in class CRM & Marketing Automation suite.
* Organize and segment your contacts to send more relevant communications.
* Automate your communications to save you time and increase your productivity.
* Collect data and mine your list so you can stop bleeding money. "The money is in the list!"
* Own your data so you’ll never be at the mercy of a SaaS company again.
* Control your expenses! There are NO LIMITS on how many contacts and users you can have! Groundhogg grows with you! Your costs do NOT increase when your lists grows. We don’t tax you for scaling up!
* Translate & configure into any language.

## 🌎 We care! Join our Community!

Groundhoggers are very generous with their business intelligence. Just as the Groundhogg CRM & Marketing Automation team is deeply committed to helping!  So we create lots of tools to help you succeed.

* 🚀 [**Free** 1-Hour Quickstart Course!](https://academy.groundhogg.io/course/groundhogg-quickstart/)
* 🌎 Community care & support in the [open Facebook group!](https://www.facebook.com/groups/groundhoggwp/)
* 📺 Over **60 hours** of easy Groundhogg [Youtube tutorials!](https://www.youtube.com/groundhogg)
* 📃 Use our [Knowledge Centre](https://help.groundhogg.io/) to get the answers you need.
* 🎙️ Ask your burning questions in **Office Hours** on our _live Facebook stream every Tuesday!_

## 🤷‍♂️ Who can benefit from Groundhogg CRM and Marketing Automation?

The Groundhogg CRM & Marketing Automation suite is being used by a wide variety of 3,000+ businesses in over 35+ countries. The diversity of use cases is huge!

If you're business is using WordPress, you can use Groundhogg.

Here are some of the more common use cases:

* Digital Marketing Agencies
* WordPress Freelancers
* LifterLMS, LearnDash, or TutorLMS sites
* WooCommerce Sites
* WaaS Multisite Platforms
* Blogs and News Sites
* Coaches and Trainers
* Educators and Public Speakers
* Business Directories
* And many more!

## 💡 Made by people who know CRM & Marketing Automation!

Our team is based in Toronto, Canada! We've been helping small businesses implement CRM and Marketing Automation since 2014 working with tools like Infusionsoft, ActiveCampaign and HubSpot.

After some time, it became apparent that there was a desperate need in the WordPress ecosystem for a capable CRM and Marketing Automation tool for WordPress site owners.

One that could match SaaS platforms on features and reliability did not yet exist, so we built it!

Starting in 2018, Adrian Tobey (founder) and his team took their combined 20+ years of experience in the CRM and Marketing Automation industry to create a better option for WordPress based businesses.

We know funnels, CRM, and marketing automation like the back of our hands!

You can trust us to not only provide you with stellar software and support, but also provide you guidance on the kinds of funnels and automation you should be building to get maximum value from our products.

[youtube https://youtu.be/e-_QCUtdghw]

## ❤️ Businesses Love Groundhogg CRM & Marketing Automation!

3,000+ businesses in 35+ countries are using Groundhogg CRM & Marketing Automation to launch their funnels, grow their lists and scale their businesses.

Here's what a few of them had to say about our products and support!

From 👨  **[Chris Badget](https://wordpress.org/support/topic/best-crm-and-marketing-automation-for-wordpress/)**, _CEO of [LifterLMS](https://www.groundhogg.io/best-lifterlms-crm/)_

> Great team, great product, and works with all the key WordPress tools I’m using.
> So nice to be able to do broadcast emails, tagging, and marketing automation all from inside my WordPress website.

From 👨‍🦱 **[Francisco Opazo](https://www.groundhogg.io/best-buddyboss-crm/)**, _Marketing Manager at [BuddyBoss](https://www.groundhogg.io/best-buddyboss-crm/)_

> Groundhogg CRM & Marketing Automation is essential for many community builders, course creators, and membership site owners to achieve higher rates of engagement and retention. It simplifies many complex processes including onboarding, email marketing, funnels, and enables you to scale your marketing efforts more efficiently.

From 👨 **[Jonathan Denwood](https://wordpress.org/support/topic/great-crm-product/)**, _Podcaster & Owner of [WP-Tonic Agency](https://www.groundhogg.io/best-crm-for-agencies/)_

> Adrian and his team have really built a great WordPress based CRM that’s really competitive with the big guys like ActiveCampagin. I would highly recommend it to anybody who is running WordPress.

There are over [90 ⭐⭐⭐⭐⭐ reviews](https://wordpress.org/support/plugin/groundhogg/reviews/?filter=5) for Groundhogg on WordPress.org and even [more reviews on our Facebook Page](https://www.facebook.com/groundhoggwp/reviews/)!

## Features

Here are the tools you can use to launch your funnel, grow your list, and scale your business faster with Groundhogg CRM & Marketing Automation!

### 🕺 Straightforward CRM & Contact Management

* Advanced searching and filtering on any data
* Unlimited CRM custom fields
* Segmentation with tags
* Activity and email history
* Profile pictures
* Automatic location discovery
* CRM Notes
* CSV importing & exporting
* Sync contacts in the CRM with WordPress users
* View congregated information other WordPress plugins in the contact record.

### ⚙️ Funnels & Marketing Automation Features

* Create highly effective customer journeys with our easy to learn funnel builder.
* Over 30+ integrations available to connect the CRM with your favorite WordPress plugins.
* Create simple funnels or complex ones!
* Measure the effectiveness of your funnels with easy to read metrics.
* Start funnels from forms, payments, new users, and more!
* Open API to add your own benchmarks & actions.

### 📧 Simple Email Marketing & SMTP

* 2 Email editors to choose from.
* Plain Text Editor or Drag & Drop Editor
* Use images, headers, paragraph and more.
* Simple preview & testing.
* Perfect for sales emails, newsletters, transactional notifications and more.
* Send broadcast emails to your contact lists.
* Distinguish between **transactional** and **marketing** emails.

### 📈 Unmatched Analytics Reporting

* We track EVERYTHING in the CRM!
* Granular details of how your site is performing.
* See open rates, click through rates and conversions at a glance.
* Detailed results from your funnels and broadcast emails.
* Integrate with Ecommerce to see revenue from your marketing.
* Learn more about your audience with demographic reporting.
* See which funnels/emails are underperforming.

### 🇪🇺 GDPR Ready

* Simple GDPR features to keep you compliant.
* Automatic preferences center, data download, and opt out.
* Track GDPR consent in your CRM
* Prevent marketing to those who withdraw consent.

## 🙌 Get more with premium features!

Groundhogg CRM & Marketing Automation has 45+ extensions to help you expand and integrate Groundhogg to help you build your all in one solution.

👉 Bundle all of our incredible premium features into a [flat rate plan](https://www.groundhogg.io/pricing/). [Yearly](https://www.groundhogg.io/pricing/) & [monthly](https://www.groundhogg.io/pricing/monthly/) options available.

You can also use our **[⏱️ 14 day $1 demo](https://www.groundhogg.io/try/)** to see a preview of these stellar features.

Over **[24+ extensions](https://www.groundhogg.io/downloads/category/add-ons/)** to help you handle more...

* [Extend your CRM with Custom Fields](https://www.groundhogg.io/downloads/advanced-custom-meta-fields/)
* [Extend your CRM with Custom SMTP](https://www.groundhogg.io/downloads/smtp/)
* [Extend your CRM with Advanced Email Preferences](https://www.groundhogg.io/downloads/advanced-preferences/)
* [Extend your CRM with Superlinks](https://www.groundhogg.io/downloads/advanced-features/)
* [Extend your CRM with Lead Scoring](https://www.groundhogg.io/downloads/lead-scoring/)
* [Extend your CRM with Booking Calendars](https://www.groundhogg.io/downloads/booking-calendar/)
* [Extend your CRM with Social Proof Popups](https://www.groundhogg.io/downloads/proof/)
* [Extend your CRM with Signed Contracts](https://www.groundhogg.io/downloads/contracts/)
* [Extend your CRM with Company Management](https://www.groundhogg.io/downloads/companies/)
* [Extend your CRM with a Sales Pipeline](https://www.groundhogg.io/downloads/pipeline/)
* [Extend your CRM with Birthday Automation](https://www.groundhogg.io/downloads/birthdays/)
* And [many more...](https://www.groundhogg.io/downloads/)

Over **[30+ integrations](https://www.groundhogg.io/downloads/category/integrations/)** to connect to your favorite WordPress plugins. Integrate with...

* **[Connect LifterLMS to your CRM](https://www.groundhogg.io/best-lifterlms-crm/)** | _[FREE COURSE](https://academy.groundhogg.io/course/course-creator-essentials/)_
* **[Connect LearnDash to your CRM](https://www.groundhogg.io/best-learndash-crm/)** | _[FREE COURSE](https://academy.groundhogg.io/course/course-creator-essentials/)_
* **[Connect BuddyBoss to your CRM](https://www.groundhogg.io/best-buddyboss-crm/)** | _[FREE COURSE](https://academy.groundhogg.io/course/essentials-funnels-for-buddyboss/)_
* **[Connect GiveWP to your CRM](https://www.groundhogg.io/press/nonprofits-can-finally-leverage-their-data-to-collect-more-donations-with-groundhogg-and-givewp/)**
* **[Connect Easy Digital Downloads to your CRM](https://www.groundhogg.io/best-crm-for-easy-digital-downloads/)**
* [Connect WooCommerce to your CRM](https://www.groundhogg.io/downloads/woocommerce/)
* [Connect HelpScout to your CRM](https://www.groundhogg.io/downloads/woocommerce/)
* [Connect Elementor to your CRM](https://www.groundhogg.io/downloads/elementor/)
* [Connect Amazon Web Services to your CRM](https://www.groundhogg.io/downloads/aws/)
* [Connect SendGrid to your CRM](https://www.groundhogg.io/downloads/sendgrid-integration/)
* [Connect AffiliateWP to your CRM](https://www.groundhogg.io/downloads/affiliatewp-integration/)
* [Connect ThriveCart to your CRM](https://www.groundhogg.io/downloads/thrivecart/)
* [Connect WPForms to your CRM](https://www.groundhogg.io/downloads/wpforms/)
* And [many more...](https://www.groundhogg.io/downloads/category/integrations/)

## ⏱️ Want to test out the premium Groundhogg CRM and Marketing Automation suite?

If you'd like a trial of our premium plans, please check out our [$1 sandbox demo](https://www.groundhogg.io/try/).

## Milestones

* Serving 3,000+ businesses in 35+ countries.
* ⭐⭐⭐⭐⭐ rated software and support!
* 40+ Certified partners.
* 🏆 [Gold Stevie Award 2020](https://www.groundhogg.io/press/gold-2020-stevie-award-winner-our-first-award/) for Tech Start up of the Year _(American Business Awards)_.
* 🏆 [Gold Stevie Award 2021](https://www.groundhogg.io/wp-content/uploads/2021/02/gold-winner-01.jpg) for Best In Class Customer Service _(American Business Awards)_.
* 🏅 Best Software Innovation 2020 finalist _(Canadian Search Awards)_.
* 🏅 Canadian Small Business Awards 2021 finalist _(Canadian Search Awards)_.

[](http://coderisk.com/wp/plugin/groundhogg/RIPS-RLU9faYUDI)

== Screenshots ==
1. Meet the Groundhogg CRM and Marketing Automation team!
2. Advanced searching and filtering to segment your contacts.
3. Admin toolbar widget to search or add contact's anywhere in the admin.
2. Drag and drop steps in any order to create your sales funnel.
3. View funnel reports to help optimize your CRM sales process.
4. Choose from a variety of actions to to communicate with your customers.
5. Choose from a variety of benchmarks to start and move customers through your funnels.
6. Write personalized emails and send them right from your WordPress CRM.
7. Send out mass emails to your list whenever you want.
8. Keep customer info up to date, pull reports and more with your CRM.
9. Know your KPIs with your executive CRM dashboard reports.
10. Choose from easy to use funnel templates to get started faster.

== Installation ==
= Plugin Repo =

* Install Groundhogg CRM and Marketing Automation
* Activate
* Complete the guided setup
* Start Marketing

= FTP =

* Upload the zip archive
* Unzip
* Activate through the plugins manager
* Complete guided setup
* Start Marketing

== Frequently Asked Questions ==

= Does Groundhogg need any additional marketing software like MailChimp? =
No, Groundhogg is a completely standalone, lightweight CRM and marketing automation system designed to save you $1,000s while helping you generate more revenue.

= Does Groundhogg require and external transactional email service like SendGrid? =
No, but it is **highly** recommended. Without a proper transactional email service your emails are likely to end up in spam.

Groundhogg provides a number of recommended solutions:

* [MailHawk](https://mailhawk.io/)
* [SendGrid](https://www.groundhogg.io/downloads/sendgrid-integration/)
* [AWS SES](https://www.groundhogg.io/downloads/aws/)
* [Elastic Email](https://www.groundhogg.io/downloads/elastic-email-integration/)
* [Basic SMTP](https://www.groundhogg.io/downloads/smtp/) for other services.

Groundhogg will automatically use the mail solution you have configured on your WordPress website.

= Does Groundhogg have any required monthly fee or upgrades? =
No, you can use Groundhogg CRM and Marketing Automation for free forever. Groundhogg is a Open Source project designed to democratize CRM and email marketing automation and provide simple easy to use tools to new and none tech savvy business owners.

That being said, our [premium upgrades](https://www.groundhogg.io/pricing/) can seriously help your business! Use our proven tools and strategies to supercharge your marketing and WordPress site!

= Does Groundhogg connect to Woocommerce or other plugins? =
Yes, Groundhogg can [integrate with over 30+](https://www.groundhogg.io/downloads/category/integrations/) of the most popular WordPress plugins around to crate an even more powerful CRM.

= Does Groundhogg work with my theme? =
Groundhogg is theme agnostic, meaning it will work with every and any theme. Groundhogg is mostly administrative and very little is seen by visitors.

= Does Groundhogg track my subscribers? =
Yes, Groundhogg has a very smart tracking system that will allow you to monitor your clients interactions with your emails and your site.

= Does Groundhogg Integrate with my membership plugin? =
Yes, Groundhogg has a builtin connection with the WordPress user API, meaning it will automatically use user roles in your site, like from a membership plugin.

= Is Groundhogg secure? =
We follow all best WordPress security practices. Plus it's open source, so we have a large community looking out for potential weaknesses when it comes to your data.

= Is Groundhogg GDPR, CANSPAM, or CASL compliant? =
Yes, we have tools available to meet the criteria of all the worlds ANTI-SPAM & privacy legislation.

= Is Groundhogg better than my current CRM/Marketing Automation tool? =
Well, that's up to you! We'll never say Groundhogg is better than anyone, but it is **different.** And sometimes different is better than better.

= Where can I upgrade to premium? =
You can purchase a premium plan for access to support and our premium extensions & integrations on our [pricing page](https://www.groundhogg.io/pricing/).

== Changelog ==

= 2.5.7.4 (2021-11-30) =
* ADDED Birthday search filter
* FIXED Invalid nonce error when submitting forms
* FIXED UI bug cant see button when adding contacts to funnels from the contacts screen
* FIXED When importing contacts with birthdays, if no birthday is provided default to empty value instead of date
* FIXED Reset birthdays which have probably been set as a result of a bug, buggy dates are `1970-01-01` and `1999-11-30`

= 2.5.7.3 (2021-11-26) =
* FIXED PHP parse error

= 2.5.7.1 (2021-11-25) =
* FIXED Saved searches with exclude filters not working.
* FIXED Saved searches pre-exclude filters causing JS error.

= 2.5.7 (2021-11-24) =
* ADDED New status column in contact table for ordering and better marketability visibility
* ADDED New "Marketable" search filter makes it easier to determine marketable contacts based on current compliance settings.
* ADDED Use internal forms as part of the quick add component
* ADDED Optional exclude filters in contact search for even more advanced segmentation
* ADDED Settings to blanket disable click tracking and open tracking
* TWEAKED Made contact quick edit a global component so it can be used on other screens
* TWEAKED Adding a new contact from the contacts screen uses the quick-add component
* TWEAKED Contact quick edit uses a save/cancel button instead of auto-saving for consistency with other components
* FIXED Activity capabilities not added to user
* FIXED Tags in the contact REST response not always coming back as an array
* FIXED Contact columns showing in incorrect order after editing via quick edit
* FIXED Stacked modals which disable scrolling will only enable scrolling once the last modal is closed

= 2.5.6 (2021-11-18) =
* ADDED `{birthday}` replacement code
* ADDED MySQL and DB details to system report
* ADDED `\Groundhogg\Contact::has_tags()` alias method
* ADDED `groundhogg/admin/tags/table/sortable_columns` for sortable tags column
* TWEAKED Clicking "broadcast" in the emails page now takes you to the newer UI of the broadcast tool rather than the old one
* TWEAKED Enforce InnoDB engine is used for `wp_gh_object_relationships` due to long key names
* FIXED NGINX systems having a hard time downloading contact files because of missing `/` at the end of the path
* FIXED Tag pickers, email pickers, broadcast scheduler, and search filters not working or un-styled when the toolbar widget is disabled
* FIXED "AND" logic for `[gh_does_not_have_tags]` shortcode
* FIXED invalid timeout delay for contact picker component
* FIXED Edge case handling for usage of "+" in emails

= 2.5.5 (2021-11-02) =
* ADDED More JS components for use in 3.0 and the pipeline extension
* ADDED Custom properties component for creating custom properties for various data types on the fly
* ADDED Data store methods for manipulating object relationships
* ADDED Groundwork for merging various data types including contacts for an upcoming update
* ADDED Groundwork for duplicating various data types like funnels and emails via the API
* ADDED Many activity based filters such as Email Opened now support filtering by the number of times a contact has done that activity.
* ADDED new magic `parse_tags_list()` function which takes a bunch of random input and returns a list of tags
* IMPROVED the notes widget which now supports "note type" for calls, meetings, and emails
* IMPROVED Ground up rethink of permissions makes sales rep and sales manager roles more stable and secure
* TWEAKED the benchmark complete method is now compatible with an array of contacts
* TWEAKED `Contact::has_tag()` now accepts an array of tags and has alias `Contact::has_tags()`
* REMOVED Send email info card, replaced with new email modal widget
* FIXED Various bugs and gotchas

= 2.5.4.2 (2021-10-05) =
* HOT FIX Revert meta cache change

= 2.5.4.1 (2021-10-05) =
* TWEAKED Changed base object cache group format from `{$table_name}/groundhogg/db/{$object_type}` to `groundhogg/db/{$object_type}`
* TWEAKED Changed object meta cache group format from `{$object_type}_meta` to `groundhogg/{$object_type}_meta`

= 2.5.4 (2021-09-20) =
* ADDED All new site activity tracking system! See which pages your contacts visit the most.
* ADDED Support for cookie consent plugins. Define your consent cookie and value in the settings to trigger tracking and cookies in Groundhogg.
* ADDED Built-in support for CookieLawInfo plugin.
* TWEAKED "Active Contacts" to "Waiting Contacts" in funnel list view to avoid confusion.
* TWEAKED Moved email logging hooks earlier to catch emails sent before the `init` hook.
* FIXED Forms not submitting if multiple forms on same page with recaptcha v3 enabled.
* FIXED PHP notice caused by invalid permission callback for API
* FIXED PHP notices when creating a new group in BuddyBoss.
* FIXED Spanish translations causing PHP notice for missing `sprintf` arguments.

= 2.5.3 (2021-08-31) =
* TWEAKED gh-cron.php file when setup on multisite network will automatically ping all the subsites.
* FIXED Super admin role not respected in JS userHasCap check.
* FIXED Contacts being added to template sites in WPUltimo when they should not be.

= 2.5.2 (2021-08-23) =
* ADDED Developer filter `groundhogg/should_convert_user_to_contact_when_user_registered` to prevent adding new users as contacts.
* ADDED Developer filter `groundhogg/should_extrapolate_location` to prevent automatic IP based geolocation.
* FIXED Unable to use the search in the add filters widget because of `disableSelection()` on sortables.
* FIXED Unable to add new steps to funnel if no previous step was active and if there are no steps in the funnel.
* FIXED Searching for contacts in the contact picker not showing new matching contacts.

= 2.5.1.3 (2021-08-16) =
* FIXED Changed is_entry and is_conversion from BIT(1) to TINYINT(1) in wp_gh_steps for boolean values as BIT is not working for some versions of mySQL and mariaDB.

= 2.5.1.2 (2021-08-11) =
* HOT FIX Funnel exporting in REST API format instead of 2.* importable format

= 2.5.1.1 (2021-08-11) =
* HOT FIX Duplicating funnel causing fatal error
* HOT FIX 2.5 upgrade path should be automatic in the event plugins are installed which are hiding notices.

= 2.5.1 (2021-08-11) =
* HOT FIX Importing funnel causing fatal error.

= 2.5 (2021-08-11) =

For all details in this release [see the roundup on Groundhogg.io](https://www.groundhogg.io/updates/groundhogg-2-5-shows-a-glimpse-of-whats-coming-down-the-pipeline/)

* ADDED All new contact filtering system replaces the old advanced search filters to give a superior contact searching experience.
* ADDED New "Groundhogg" widget to the admin bar for contact searching, adding contacts, and scheduling broadcasts.
* ADDED Unquantifiable levels of Groundhogg 3.0 preparation.
* TWEAKED New contact quick editing UI.
* TWEAKED New broadcast scheduling UI.
* TWEAKED Bumped minimum supported WordPress version to 5.0 from 4.9
* TWEAKED Bumped minimum supported PHP version to 7.1 from 5.6
* FIXED Bug causing license to show as disabled when it's actually active.

= 2.4.7.6 (2021-07-30) =
* FIXED Sales manager unable to edit contacts even though they can see them
* FIXED Sales representatives able to view and edit other's contacts if using the advanced search tools

= 2.4.7.5 (2021-07-27) =
* HOT FIX Reverted change to contact query for contact owners.

= 2.4.7.4 (2021-07-27) =
* ADDED HelpScout integration plugin ID for autoinstall support
* FIXED Database warnings when adding a new subsite in a multisite install
* FIXED Event queue not processing if the max_execution_time of a site is 0
* FIXED Non-critical type warnings
* FIXED Date field in forms not working
* FIXED Funnel cookie being set more than once in the reports causing 500 error on some servers
* FIXED Link to mailhawk.io instead of mailhawk.com
* FIXED Dropdown field in forms with empty value causing error when not required
* FIXED mobile phone not saving from contact quick add

= 2.4.7.3 (2021-07-07) =
* HOT FIX Birthdays being saved in `Y-n-j` format instead of `Y-m-d`. Added migration path prompt to fix formatting for contacts with birthdays
* HOT FIX Contact meta queries with `>, <, <=, >=` not working when passed into `esc_url`

= 2.4.7.2 (2021-07-07) =
* FIXED Compatibility for BuddyBoss/BuddyPress core redirect to `/register/` when `$_SERVER['script']` is empty and `DOING_CRON` is defined

= 2.4.7.1 (2021-06-29) =
* FIXED When checking for the existence of an encryption algo force to lowercase
* FIXED Using secret_key instead of secret_iv during encryption/decryption
* FIXED Updated POT file with missing translations

= 2.4.7 (2021-06-24) =
* ADDED Date search filters for email logs
* ADDED Rest route for email logs in V4 REST API
* TWEAKED Fixed several capability checks for the REST API and typo for `permission_callback`
* TWEAKED Returning `FALSE` from a step will still soft fail, but the funnel will continue instead of hard stopping.
* TWEAKED Added more CSS specificity to the dropdown button widget
* FIXED Raise time limit to 60 seconds instead of 10 ahead of running the queue, solving slow processing for server based cron jobs.
* FIXED Missing text domain for some strings
* FIXED Console verbose warnings for duplicate IDs

= 2.4.6.2 (2021-06-09) =
* TWEAKED Iframe resizer checks for same origin before attempting to resize a frame.
* TWEAKED Changed verbiage and organization of the email "Override" settings section to "Defaults" & "Footer" to be more clear as to their purpose.

= 2.4.6.1 (2021-05-12) =
* TWEAKED POST /contacts will update a contact record if it already exists, based on email address.
* TWEAKED Other minor updates to the REST API to improve general performance and minimize queries.

= 2.4.6 (2021-05-10) =
* ADDED Enabled Version 4 of the REST API.
* ADDED Default values for `contact_and_user_match()`.
* ADDED `is_spam` filter to the form submission spam check.
* ADDED New MISC tab in the tools panel to add tools too that do not need to be top level.
* ADDED Search by Email, Not Empty, and REGEX support for First, Last, and Email in the advanced search.
* ADDED Ability to import/export contact notes in contact CSVs.
* TWEAKED Strip slashes from `get_url_vars()`.
* TWEAKED Removed the "new feature" info card.
* TWEAKED First & Last name columns have highest priority in the contact table.
* TWEAKED Clicks in the reports with ?pk= in the URL will be grouped together.
* TWEAKED You can now pass raw objects to Base_Object so your SQL queries become 1 instead of N+1, super memory savings!
* TWEAKED Refactored contact notes to an abstract table capable of storing notes for multiple object types.
* TWEAKED Removed Apply/Remove tag bulk actions because the Bulk Edit function now exists.
* FIXED Tag associations count not working
* FIXED Meta not being deleted when the associated object is deleted.
* FIXED Owner being removed when a contact uploads a file through a form on the frontend.
* FIXED Bounce checker username and password missing at runtime.
* FIXED MailHawk showing in guided setup screen twice.

= 2.4.5.4 (2021-04-05) =
* TWEAKED Better DB cache support for multisite functionality.
* TWEAKED Change DB cache group when blog changes using `switch_to_blog`.
* TWEAKED Improve tag mapping for changes in marketing and GDPR consent.
* FIXED GDPR marketing consent not saving in Groundhogg form submissions.

= 2.4.5.3 (2021-04-05) =
* TWEAKED Updated JS dependencies.
* TWEAKED The `groundhogg/email/to` filter also passes the `$contact` and `$this`
* TWEAKED The Admin Notification step will now accept any replacement code in the `To` field.
* TWEAKED New developer actions and filters to the import & field mapping process. Thanks @petervkay!
* TWEAKED Updated the translations file and fixed some translations.

= 2.4.5.2 (2021-04-04) =
* HOT FIX Updated `DB->delete()` method not accepting capitalized ID index.

= 2.4.5.1 (2021-04-03) =
* ADDED Document event support for replacement codes
* ADDED Additional hooks for the email build process.
* TWEAKED `db->delete` method now supports an array `WHERE` format as well as row IDs.
* TWEAKED Update the `last_changed` in the object cache when tag counts are changed.
* TWEAKED Optimized the tag count increment/decrement functions to only require 1 mySQL call instead of 2.

= 2.4.5 (2021-03-31) =
* ADDED files for Rest API v4, none active for now.
* ADDED jsonSerialization to Base_Object class for easier creation of API responses.
* ADDED New replacement codes for `mobile_phone`, `primary_phone_ext`.
* TWEAKED First 10 tags show in the contact details card, then click a link to see all of them.
* TWEAKED First 10 tags show in tags column in the contact list.
* FIXED Unsubscribe link nonce missing.
* FIXED Typo in admin preferences notice.

= 2.4.4.7 (2021-03-16) =
* TWEAKED Can now add `+` to phone numbers in the admin notification.
* TWEAKED Replacements table modal to be separated into categories, add names of replacement codes.
* TWEAKED Move info card CSS and JS around to make it more modular and usable in extensions.
* TWEAKED Added SiteGround cron job instructions to the Cron Job setup flow.
* FIXED Remove wp_register_script for Vue JS
* FIXED Contact quick edit not usable when table columns spill over width of the page

= 2.4.4.6 (2021-03-16) =
* TWEAKED Info card CSS
* FIXED Admin Notification SMS not working.

= 2.4.4.5 (2021-03-15) =
* ADDED Powered by Groundhogg credit to preferences page IF the include affiliate image in emails option is enabled.
* TWEAKED Added MINUTE in seconds expiration to wp_cache_set calls
* FIXED Form CSS not showing in the block editor
* FIXED Calls to functions deprecated in 5.7

= 2.4.4.4 (2021-03-13) =
* FIXED Illegal syntax causing fatal error in PHP 8.0.3

= 2.4.4.3 (2021-03-11) =
* FIXED API bug caused by DB class update.

= 2.4.4.2 (2021-03-11) =
* TWEAKED Updated the DB update function to accept an array as the first parameter.
* TWEAKED Added an action to the contact details card to add more information from third party plugins.

= 2.4.4.1 (2021-03-11) =
* ADDED Additional developer actions to the reports pages to add more relevant ecommerce reports.
* ADDED SUM() helper function to the DB class API.
* TWEAKED Reformatted a lot of code to bring it up to core WP standards.

= 2.4.4 (2021-03-10) =
* ADDED Contact bulk editing (finally).
* ADDED Add contacts to a funnel from the contacts table in the more actions dropdown.
* ADDED Delete contacts from the more actions dropdown.
* TWEAKED Cleaned up the UI in the contacts table by putting multiple actions in a dropdown button.
* TWEAKED using the core WordPress object cache will be disabled by default, fallback to custom non-persistent object cache. This should fix any strange behaviour being seen on some installs.
* TWEAKED meta tables get their own object cache group.
* TWEAKED Filter out optin status tags from being applied or removed.
* FIXED New personal email feature sending email in plain text when should be text/html.
* FIXED Notes using the contacts object cache group.
* FIXED Removed the example formatting info card.

= 2.4.3 (2021-03-08) =
* ADDED Option to bypass object caching altogether.
* TWEAKED correctly set last changed cache when tag relationships updated

= 2.4.2 (2021-03-08) =
* TWEAKED New complex object caching causing some weird behaviour on some installs, refactored to bypass any complex object caching and only do root DB level object caching.
* TWEAKED Added additional filters to the cron setup tool.

= 2.4.1 (2021-03-08) =
* FIXED Erroneous comma causing fatal error on contacts screen.

= 2.4 (2021-03-08) =
* ADDED Expand/Collapse all contact info cards.
* ADDED View/Display management for info cards so you can hide ones you don't use.
* ADDED Company phone & mobile phone contact fields.
* ADDED Tags, Mobile Phone, Location, & Local time to the contact detail card.
* ADDED Send email info card widget to send one-off emails quickly.
* ADDED Links to easily change optin status within a contact record.
* ADDED Better support for multiple phone types and phone extensions to the phone field in the form builder.
* ADDED Reset tool in the Updates/install screen. Useful for testing purposes.
* ADDED Purge function for skipped/cancelled events as well as failed events.
* ADDED Quickstart checklist on the welcome screen.
* ADDED Quick search bar on the contacts list screen.
* ADDED API for additional columns in the contact table. If using the *Advanced Custom Meta Fields* extension new fields can be automatically added to the contacts table.
* ADDED Initial framework for the search filters API, a way to create advanced contact searches in 3.0.
* ADDED Warning when admin users are logged in on the preferences screen when trying to manage someone else's preferences.
* ADDED Optin Status, Contact Owner, Primary and Mobile Phone to the contact quick edit.
* TWEAKED Improved the cron setup screen, made it a default suggestion, method to verify setup was done correctly.
* TWEAKED Replacements now support Group, Name, and Default Arg attributes when registering.
* TWEAKED Merged segmentation and general info tab, moved all editable fields to the general tab from the details card.
* TWEAKED Refactored contact notes as an info card widget.
* TWEAKED Refactored contact files as an info card widget.
* TWEAKED Merged Install & Updates tabs in the tools screen.
* TWEAKED Improved method of dequeueing styles on the managed pages.
* TWEAKED Quick add form to consolidate fields and add mobile phone field.
* TWEAKED Optimized use of Object Caching in the parent DB class. Now used by multiple methods and not just the main `query` method.
* FIXED Typo in filter of title actions.
* FIXED PHP Warnings & Notices during uninstall.
* FIXED Dequeue Avada theme styles on the managed page.

= 2.3.4.1 (2021-02-16) =
* FIXED Login fails caused by event tracking not being available.

= 2.3.4 (2021-02-16) =
* ADDED Ability to declare data processing consent and marketing consent when importing contacts.
* ADDED Ability to change the column header type when exporting contacts.
* ADDED Option disable unnecessary cookies like `groundhogg-lead-source` in the **Compliance** settings.
* ADDED Initial Info Cards implementation for the contact records.
* TWEAKED Improved the default columns when exporting contacts.
* TWEAKED Improved UI for exporting and importing contacts.
* TWEAKED Better handling of the page tracking script, will now only track on pages when tracking is explicitly requested via the funnel.
* TWEAKED Removed jQuery dependency for the `groundhogg-frontend` script.
* TWEAKED You can now search by full name in the contact quick search.
* FIXED Updated POT file.

= 2.3.3 (2021-02-04) =
* ADDED Setting to enabled one click unsubscribe in the **Compliance** settings.
* ADDED Setting to disable the `list-unsubscribe` header.
* TWEAKED `list-unsubscribe` header will not be added if the email is transactional.
* TWEAKED Added a call to action for contacts to re-subscribe if they unsubscribe.
* TWEAKED Changed the manage email preferences from from radio buttons to links for better UX.
* TWEAKED Change the color of the erase profile button to red for better UX.
* TWEAKED Change the color of the unsubscribe preference options to red for better UX.
* TWEAKED Split **GDPR consent** into **Data Processing Consent** and **Marketing Consent** for improved compliance.
* TWEAKED Contacts can now manage their marketing and data processing consent on the profile page.
* TWEAKED Added a confirmation step to the GDPR profile erasure feature. Explain what will/will not be erased.
* FIXED Google Recaptcha v3 not working with ajax form submission.

= 2.3.2 (2021-02-01) =
* FIXED Owner dropdown not limited to users with owner capabilities
* FIXED Rescheduling and canceling events in the admin screen not working.

= 2.3.1 (2021-01-29) =
* FIXED Unable to activate plugin caused by fatal error

= 2.3 (2021-01-29) =
* ADDED New feature. **Email logging**! Emails can be logged optionally. Find it in the new **Logs** screen.
* ADDED New feature. **Real-time User Meta Syncing**! The user meta will be synced in real-time to the contact record when enabled in the **General Settings**.
* TWEAKED Events have been moved to the **Logs** screen to differentiate it from other kinds of events in WordPress.
* TWEAKED There are now 3 email service options. Core WordPress email, Groundhogg transactional email, and marketing email.
* TWEAKED Any role with the user cap of view_contacts will be applicable for contact owner status.
* TWEAKED Removed the `key` param appended to the URL after a tracking link is clicked. Replaced with the `pk` param now.
* TWEAKED Better capability checks for tabbed pages like the tools for more granular access.
* TWEAKED Email step actions are now visible persistently.
* TWEAKED Option to uninstall the `gh-cron.php` file added for debugging purposes.
* TWEAKED When installing the `gh-cron.php` file Groundhogg will automatically be unhooked from WP-Cron instead of requiring manual input.
* TWEAKED Changed verbiage of **Primary User** to **Primary Contact Owner** for better clarity.
* TWEAKED If the **Primary Contact Owner** is defined all new contacts will have the owner ID of that contact set by default unless it is otherwise changed.
* TWEAKED When contacts are being added manually or imported the contact owner will be automatically set to the current user unless otherwise specified.
* TWEAKED Improved sync of first, last, and email between user records and contact records.
* TWEAKED When using an existing email as a template the `from user` will be copied instead of set to the current user.
* FIXED `key` param conflict with EDD.
* FIXED the sync users tool will re-sync already synced users and contacts.
* FIXED Reporting not loading when script debug is enabled.
* FIXED Wonky CSS in the tools page.
* FIXED Sales Representative and Sales Manager roles capabilities for adding contacts manually.
* FIXED Clicking **search** when in the contact screen will take you to the list with the search open.
* FIXED PHP notices caused by empty reports in the reports area.

= 2.2.24 (2020-12-18) =
* ADDED Ability to have multiple email services installed and differentiate between marketing and transactional emails.

= 2.2.23.4 (2020-12-09) =
* TWEAKED Replacement codes will default to blank "" if no info is available instead of the code name.
* FIXED ChartJS not loading after WordPress 5.6

= 2.2.23.3 (2020-12-09) =
* TWEAKED Improved system status file with more useful information for the support team.
* TWEAKED Auto Link link will support CID specified in the url.
* TWEAKED Added `DOING_GH_CRON` constant to the `gh-cron.php` file.

= 2.2.23.2 (2020-12-07) =
* FIXED License missing message showing even though all active extensions are licensed in some cases.

= 2.2.23.1 (2020-12-07) =
* FIXED License missing message showing for non official extensions. Only show for extensions with official ids.

= 2.2.23 (2020-12-07) =
* TWEAKED Improved license management in the background.
* FIXED Deprecated jQuery function calls in the `fullframe.js` script.

= 2.2.22 (2020-11-27) =
* TWEAKED If the url is just `/gh/` then display the preferences screen.
* TWEAKED Added `noindex` to the managed page. Should have done this sooner.
* TWEAKED Unsubscribe links are now valid for 1 week instead of just 1 day.
* FIXED `{confirmation_link_raw}` & `{auto_login_link}` with redirects not being saved when placed inside buttons.

= 2.2.21.1 (2020-11-25) =
* FIXED URL encoding for `{confirmation_link}` and `{auto_login_link}` redirects

= 2.2.21 (2020-11-25) =
* FIXED `pk` being invalid if multiple usages withing the same email.
* FIXED Error in contact screen caused by invalid step ID provided for starting a funnel.
* FIXES permissions callbacks in open API endpoints.

= 2.2.20 (2020-11-04) =
* Various fixes and tweaks
* UPDATED `readme.text`
* ADDED support for detecting `HTTP_CF_CONNECTING_IP` header.
* ADDED `do_replacements` to the reply-to override.

= 2.2.19.5 (2020-09-28) =
* TWEAKED Merged autocomplete meta picker from ACMF extension into core.

= 2.2.19.4 (2020-09-15) =
* ADDED Auto login link replacement code. Allows 1 time use auto login links for contacts that have linked user accounts.
* TWEAKED The delimiter for importing CSV files will be extrapolated from the CSV rather than enforcing using  `,`.
* TWEAKED The permissions keys are can now be given specific usage so that they can be used in multiple contexts without given broad access.
* FIXED Bulk add tags page still imposing 50 character limit, now fixed.
* FIXED Tags list only showing one tag after adding a tag manually.

= 2.2.19.3 (2020-09-10) =
* ADDED Setting to dismiss tooltips under `Settings > Misc`
* ADDED Filter `groundhogg/admin/reports/predefined_colors` to change the colors used in the reporting charts.
* TWEAKED Tag names are no longer limited to 50 characters. Depending on DB collation its now 191 or 255.
* FIXED Iframe sizing script not compatible with new jQuery version

= 2.2.19.2 (2020-08-27) =
* ADDED Unsubscribe link replacement code.
* FIXED added `content-type: text/plain` header explicitly to admin notifications.
* HOT FIX empty tracking exclusions causing all urls not to be tracked.
* HOT FIX permissions key not being added to confirmation link.

= 2.2.19.1 (2020-08-27) =
* FIXED E_WARNING when URL exclusions is empty.

= 2.2.19 (2020-08-26) =
* ADDED filters to exclude certain links in emails from being re-written to tracking links.
 * You can exclude URLs from the Email settings tab.
* TWEAKED email preferences center.
 * Visitors will be asked to confirm their identify via email in the event their contact tracking cookie is not present.
 * Contacts are issued a `permissions key` in every email which will be passed to the preferences center enabling the contact to make changes to their preferences.
 * If no `permissions key` is provided, the preferences center will be locked and the visitor will be direct to the home page.
 * A `permissions key` will not be required if the contact is logged in to the site.
 * `Permissions keys` will expire after 24 hours, they can be used multiple times in a single session within the 24 hour period.
 * Expired keys will be automatically removed from the database.

= 2.2.18.3 (2020-08-14) =
* ADDED new function `has_replacements()` to check if specific content has Groundhogg replacement codes.
* TWEAKED Custom email headers in simple editor now support replacement codes for the CC, BCC, and FROM email headers.
* FIXED Advanced email preferences extension had invalid ID causing inability to install remotely.

= 2.2.18.2 (2020-07-27) =
* FIXED DB error while importing contacts causing import to fail in some cases.

= 2.2.18.1 (2020-07-23) =
* ADDED Panel in the tools > updates screen to process updates across the whole network.
* FIXED Quick search for contacts was not working when sending a broadcast through the new quick broadcast tool.
* FIXED meta_key index length of 255 is too long when charset is utf8mb4, set to 191.

= 2.2.18 (2020-07-23) =
* ADDED New broadcast status of pending for broadcasts which have not been fully scheduled.
* ADDED New broadcast support for saved searches and custom search form the contacts table.
* TWEAKED SMS broadcasts will also go through the confirmation page.
* FIXED Bug causing browser modal confirm when confirm to send a broadcast.

= 2.2.17.1 (2020-07-06) =
* HOT FIX Broadcast report using email_id for the events table although it's not ready yet.

= 2.2.17 (2020-07-06) =
* ADDED Additional filters and hooks for split testing capability down the road.
* ADDED New broadcast meta db table.
* FIXED Minor bugs

= 2.2.16 (2020-06-25) =
* ADDED Custom headers support to the simple email editor. Useful for adding `Cc` `Bcc` `From` or other email headers.
* ADDED Central DB updates for WaaS multisite installs.
* ADDED `{notes}` replacement code for the new notes format.
* ADDED `{owner}` replacement code for arbitrary owner information. Usage `{owner.user_email}`
* ADDED Additional filter to the step enqueue method for logic compatibility.
* ADDED Support for Google reCAPTCHA v3.
* ADDED `optin_status_exclude` filter to the contact query object.
* ADDED Contact engagement report. Filter engaged & unengaged contacts.
* ADDED Filter when rendering the table name.
* TWEAKED Contacts API endpoint now support `limit` and `offset`.
* TWEAKED Improved the UI of the extensions shop in the settings if no extensions are activated.
* FIXED Screen options no longer saving due to breaking change in WP `5.4.2`
* FIXED SMS Broadcasts not showing in the scheduled list.
* FIXED Transactional emails being sent to bounced/spam emails.

= 2.2.15.1 (2020-06-16) =
* HOT FIX Cancelled broadcasts are not moved out of the event queue.
* HOT FIX Contact marketability is not checked while scheduling the broadcast for non transactional emails.

= 2.2.15 (2020-06-16) =
* TWEAKED Some contact editor CSS.
* TWEAKED Replaced all occurrences `dirname( __FILE__ )` with `__DIR__`.
* TWEAKED Added number internationalization for all tables and admin screens.
* TWEAKED Added number internationalization for new reports.
* TWEAKED Updated translations file.
* TWEAKED Show `no data` available notice for charts with no results.
* TWEAKED the lead scoring report ad to look prettier.
* FIXED Number internationalization on broadcasts screen.
* FIXED Event actions not working on the contact activity screen.

= 2.2.14 (2020-06-15) =
* ADDED Saved searches, custom searches can be saved and loaded.
* ADDED Ability to edit/delete contact notes.
* ADDED Notes context, when the note was created/last edited and by whom.
* ADDED Transactional email support for broadcasts.
* ADDED View Query action for broadcasts.
* ADDED Review broadcast step before it goes live.
* ADDED Warning if permalinks are set to plain.
* TWEAKED Better email device preview.
* TWEAKED Changed `Apply Note` to `Add Note`.
* TWEAKED Broadcasts table view will default to sent if there are no scheduled broadcasts.
* TWEAKED Funnels table view will default to inactive if there are no active funnels.
* FIXED Do not show export contacts button for queries with no results.
* REMOVED Option to disable the API. Disables critical functionality.
* REMOVED `Change Preferences` link from email footer.
* REMOVED Domain mismatch warning, there are many use cases where this warning is not relevant.

= 2.2.13 (2020-06-02) =
* ADDED Ability to restrict tabs in the settings by user capabilities.
* ADDED Additional caps to Admin and Marketer role for managing licenses.
* TWEAKED Additional hooks/filters to the field mapping API.
* TWEAKED Modal table CSS to make it look nicer.
* TWEAKED Made the email WYSIWYG editor toolbar sticky when email is longer than the screen.
* TWEAKED CSS issue on simple email page when the pipeline extension is installed.
* TWEAKED If Groundhogg is white labelled remove the instructional video in the funnel builder when no step is selected.
* TWEAKED Updated the instructional video to match the current version of the funnel builder.
* FIXED Do not show signature field in user profile for non relevant users.
* FIXED MailHawk connection failing because of incorrect use of esc_url.
* REMOVED Duplicate benchmark file.

= 2.2.12 (2020-06-01) =
* ADDED `{owner_signature}` replacement code and signature text box in profile editor.
* TWEAKED Sales Reps/Sales Managers will now be confined to their own contact records at the root level query.
* FIXED Users with `sales_rep` role not showing in the owner dropdown.

= 2.2.11 (2020-06-01) =
* FIXED Compatibility issue with Oxygen builder
* FIXED JS safari issue regarding the `fullframe.js` file
* FIXED Import action redirecting users to the guided setup if not complete if the white label extension is installed and active.

= 2.2.10 (2020-05-26) =
* ADDED Reporting links in email & funnels table for easy access to reports.
* FIXED "View Funnel" link on the funnel report page causing fatal error because of incorrect field name.

= 2.2.9 (2020-05-25) =
* ADDED [MailHawk](https://mailhawk.io) as a recommended email service.
* ADDED Support for tracking bounces from MailHawk.
* TWEAKED `get_by()` in the events table will sort `DESC` instead of `ASC`.
* FIXED Minor CSS issues.
* FIXED Typo in spanish translation file.

= 2.2.8 (2020-05-20) =
* TWEAKED Checkmark will show next to applied updates in the tools section.
* FIXED CSS issue when importing a funnel.
* FIXED CSS issue for responsive grid.
* FIXED Bug in safari causing calendar not to show at full height when embedded.

= 2.2.7 (2020-05-19) =
* FIXED Bug causing looping 302 redirect if target url not available during a tracking link redirect.

= 2.2.6 (2020-05-19) =
* ADDED *Advanced Custom Meta Fields* to list of supported downloads via the extension upgrader.
* FIXED `get_contactdata` not returning false if contact does not exist.

= 2.2.5 (2020-05-18) =
* ADDED additional arguments to filters in the email class
* TWEAKED display style for meta replacement codes
* FIXED tab title missing on bulk processing screen
* FIXED tab title missing on contact editor screen when name is not available

= 2.2.4 (2020-05-15) =
* ADDED Additional hooks to the contact editor screen.
* TWEAKED Optimized tracking to perform fewer queries when accessing events table.
* FIXED Bug causing queue to fail when a contact is not available in the DB for processing.

= 2.2.3 (2020-05-12) =
* HOT FIX Funnels can't be added to the database.

= 2.2.2 (2020-05-12) =
* HOT FIX `queued_id` column not added to events table in some installations.
* FIXED Broadcast send time showing in UTC0 in new dashboard.

= 2.2 (2020-05-11) =
* ADDED Brand new reporting dashboard. The old dashboard reports have been removed.
* ADDED New search filters for contact search
* ADDED Ability to distinguish emails as transactional or marketing. Transactional emails will ignore marketability.
* ADDED 1 click unsubscribe support for Gmail & Yahoo.
* TWEAKED Event queue is now a separate table `gh_event_queue` for faster processing, completed events are moved to the `gh_events` table.
* TWEAKED Updated the managed page style to reflect modern WordPress.
* TWEAKED Improved form impression tracking
* TWEAKED Added form name attribute to forms for GA compatibility
* TWEAKED Contact submissions table now shows link to form instead of form ID
* FIXED Bug causing broadcast events to be deleted if a funnel step with the same ID was deleted.
* FIXED Bug causing the contacts' time zone to be UTC-0 if one was not provided.
* FIXED `create_user_from_contact()` missing user's email address.
* FIXED Newline characters appearing in tag names when bulk editing.
* REMOVED the `do_api_benchmark` REST endpoint and moved it to the advanced features extension.
* REMOVED SendWP promotion.

= 2.1.14.1 (2020-04-20) =
* ADDED Tab in tools to show how to enable the gh-cron.php file
* TWEAKED Create an index on the event claim

= 2.1.14 (2020-04-16) =
* ADDED Option to enable beta versions of Groundhogg extensions!
* TWEAKED Updated limits utils class to allow for multiple synchronous processes.
* TWEAKED Auto cleanup the events table to allow for "stuck" events to be completed.
* TWEAKED Sending speed statistic shows more accurate speed now.
* FIXED tools debug log throwing a time limit error.

= 2.1.13.15 (2020-04-14) =
* FIXED Bug causing Groundhogg tables to be deleted on main site when deleting a subsite in some cases (only on multisite).

= 2.1.13.14 (2020-04-13) =
* FIXED Permalink conflict when home URL (frontend) is different that site url (backend).

= 2.1.13.13 (2020-04-05) =
* FIXED Bug causing email alignment to not work.

= 2.1.13.12 (2020-04-03) =
* TWEAKED Updated responsive email template to perform better on Windows 10 Mail, IOS mobile devices and Outlook Mobile
* FIXED Optin status search using incorrect optin status for the selected option.

= 2.1.13.11 (2020-04-02) =
* TWEAKED Add method for automatic updates and non-automatic updates at the same time.
* TWEAKED Remove non word characters from the export file name when exporting funnels.
* TWEAKED Store micro_time of event completion to better show events in the order they were completed in.
* FIXED Bug causing tag related benchmarks to not properly import tags when importing a funnel template.
* FIXED Delay timer bug caused by difference between localtime and system time.
* FIXED Bug allowing contacts to move backwards in a funnel if a benchmark is completed during the same queue process as the step which triggered it.

= 2.1.13.10 (2020-03-25) =
* ADDED New experimental feature, broadcast send speed.
* FIXED Bug causing duplicate date timers to appear in the funnel editor.

= 2.1.13.9 (2020-03-18) =
* HOT FIX for queue processing issue.

= 2.1.13.8 (2020-03-18) =
* ADDED Reporting link to row actions in broadcast table.
* TWEAKED processing events manually now goes through the bulk processor rather than while reloading the page.
* FIXED When claiming events, double check the claim is empty to avoid creating a new claim for one already in progress.
* FIXED decode special chars in from name.
* FIXED test email sent to customer on list if providing an invalid test email address.
* FIXED weird behavior when deleting steps with active contacts.

= 2.1.13.7 (2020-03-06) =
* TWEAKED bulk job will now retry 3 times before failing.
* FIXED Bug in the broadcast scheduler sometimes causing it to fail when checking for the marketable status of a contact.
* FIXED getting items from CSV will pad array if header size is large than the row

= 2.1.13.6 (2020-03-02) =
* TWEAKED Make usage tracking GDPR compliant.
* TWEAKED Funnel events are given higher priority than broadcast events in the event queue.
* TWEAKED The marketable status of a contact will be checked before scheduling any broadcast emails.
* FIXED Ajax Form Submission not working.
* FIXED checkbox required attribute not added in HTML.

= 2.1.13.5 =
* FIXED Removed version 2.0.8.1 from the db upgrade path. Redundant upgrade.

= 2.1.13.4 & 2.1.13.3 (2020-02-21) =
* TWEAKED Fixed UI compatibility issues for BadgeOS and Post Affiliate PRO in the funnel builder.
* FIXED Groundhogg update notice not showing site wide.
* FIXED left test update version in code.

= 2.1.13.2 (2020-02-21) =
* TWEAKED Update path will no longer run automatically. Instead a notice will show that there are required updates which will need an administrators attention.

= 2.1.13.1 (2020-02-15) =
* ADDED Lock to the update path so two update processes cannot run.
* ADDED Optional update to revert automatic DB update in during 2.1.13 upgrade
* ADDED "Are you sure?" confirmation when re-performing manual updates from the tools page.

= 2.1.13 (2020-02-12) =
* TWEAKED [Refactored optin_status](https://help.groundhogg.io/article/323-refactored-optin-status-2020-02-12) to be 1 greater than the previous value. Ranges from 1-8 instead of 0-7. This allows better handling of the "unconfirmed" status which used to be marked with a 0 value.
* TWEAKED better handling of row options in the contact table for optin statuses.
* TWEAKED 1/1 will automatically be selected when choosing size for columns in the form builder.
* FIXED Admin CSS not loading properly

= 2.1.12.9 (2020-02-10) =
* FIXED The form field builder was loading on every admin page. Now only loads on funnel edit screen.
* FIXED Form config not saving

= 2.1.12.8 (2020-02-09) =
* TWEAKED The "Add Contacts" to funnel form now has the first step selected by default.
* FIXED CSS of notices causing them to show behind the step settings.
* FIXED filter and action name in the form class was the same causing an error.
* FIXED removed redundant actions/filters from the form class.

= 2.1.12.7 (2020-02-08) =
* FIXED Bug where hooks for user_registered were called when user was created through Groundhogg.
* FIXED Bug where optin_status tags were sometimes not being created when a new contact was created.

= 2.1.12.6 (2020-02-07) =
* FIXED Bug causing tags to not sync when adding/removing manually with WPFusion.

= 2.1.12.5 (2020-02-04) =
* ADDED more filters & actions to the contact editor
* TWEAKED Tag mapping for new contacts was a bit wonky when using a validation tool
* TWEAKED CSS in contact editor

= 2.1.12.4 (2020-02-03) =
* TWEAKED Readme
* FIXED Url encoding sometimes wonky in simple email editor when adding links with query strings
* FIXED Entering an invalid email address in the test email form will send test to incorrect contact record.

= 2.1.12.3 (2020-01-31) =
* ADDED Base action/benchmark classes for better LMS integrations with LifterLMS, LearnDash, TutorLMS and any others.
* ADDED More actions/filters to extend admin pages.

= 2.1.12.2 (2020-01-30) =
* ADDED Option to hide the admin links in the Admin notification footer
* TWEAKED The admin menu items for better organization

= 2.1.12.1 (2020-01-30) =
* ADDED Option to enable "Experimental features," for flexibility to test new stuff without breaking anything.
* TWEAKED More contextual information about the current process added to the bulk processor page.
* FIXED Broadcast title in events table showing as SMS instead of Email and vice versa.
* FIXED Tag relationships automatically recalculated after import or deletion of contacts.

= 2.1.12 (2020-01-27) =
* ADDED Date Filter to contact search
* ADDED Owner Filter to contact search
* ADDED New hooks for search filters
* ADDED New hooks for contact query search params
* ADDED Support for a "primary" user for referencing contact details
* TWEAKED Owner replacement codes will fallback to default from email instead of administrative email.
* TWEAKED after_form_submit_handler called during non admin user registration.
* FIXED Number validation adding "+" when shouldn't.
* FIXED Some SMS functions related to validating mobile numbers.
* FIXED When scheduling broadcast with "send in local time" contact tz defaulting to utc-0 instead of site time.
* FIXED SMS Broadcast appearing as email broadcast in events table

= 2.1.11.3 (2020-01-24) =
* FIXED Link to quickstart course on welcome page going to wrong place.

= 2.1.11.2 (2020-01-18) =
* TWEAKED Bulk Job processor will now notify user of low max_input_vars
* TWEAKED Transients for contact imports is now set to 1 DAY instead of 1 HOUR
* TWEAKED Show contacts by descending ID instead of ascending

= 2.1.11.1 (2020-01-16) =
* TWEAKED Added time_scheduled column to the events table to start tracking when an event is initially added to the queue
* TWEAKED Modified the contact REST API ADD endpoint to support the addition of tags to the contact record.

= 2.1.11 (2020-01-14) =
* REMOVED Groundhogg Sending Service functionality. Please use an alternative transactional email service.

= 2.1.10 (2020-01-013) =
* ADDED Courses link to welcome screen menu.
* ADDED CTA to take the quickstart course on the welcome screen.
* ADDED Setting to enable unrestricted access to contact file uploads.
* FIXED Minified js file missing from package.

= 2.1.9.1 (2020-01-09) =
* FIXED Bug during stats collection causing fatal error.

= 2.1.9 (2020-01-08) =
* TWEAKED Make way for new Advanced Features in the broadcast tool.
* TWEAKED Support first order clause in the DB query sql builder.

= 2.1.8.5 (2020-01-06) =
* FIXED PHP notice generated by early call to get_current_screen

= 2.1.8.4 (2020-01-06) =
* ADDED Compatibility with Material WP admin theme plugin.

= 2.1.8.3 (2020-01-03) =
* ADDED "view terms" link to the Terms form field. Links to the link provided in the settings.
* TWEAKED Some admin CSS for 5.3.2 compatibility.
* FIXED check that $.fn.pointer is defined for plugin compatibility when starting the guided tour.

= 2.1.8.2 (2019-12-20) =
* TWEAKED Regular notice dismiss button will also dismiss the review notice request.

= 2.1.8.1 (2019-12-20) =
* TWEAKED Prevent review request if Groundhogg is whitelabeled.

= 2.1.8 (2019-12-18) =
* ADDED More filters to the event process to allow for conditional logic.
* ADDED Meta query search to the contact search filters.
* TWEAKED the "ALL" view in the contacts screen will now show ALL contacts regardless of optin status.
* FIXED Specialchars in radio button options causing form to not submit.
* FIXED Default shortcode [col] using "size" instead of "width."
* FIXED File access URL not working on WPEngine
* UPDATED POT file

= 2.1.7.2 (2019-12-11) =
* TWEAKED Added the step icon to the step settings section.
* FIXED Replacement codes are parsed based on the first occurrence of the delimiter only.
* FIXED Old filter for extensions with custom email templates.
* FIXED Some CSS in the funnel builder.
* FIXED Review request notice permanently dismissing.
* FIXED Better handling of setting the return-path email header.

= 2.1.7.1 (2019-12-06) =
* ADDED Ability to remove files from a contact from the contact editor.
* ADDED Last 7 Days reporting range.
* TWEAKED You can now save contact fields as empty.
* TWEAKED CSS compatibility for advanced email editor.
* TWEAKED Reporting range picker now shows dates in local date format.
* FIXED File access links not working in email if not logged in.
* FIXED Email author was not being set in simple email builder.
* FIXED Replacements not inserting into tiny_mce content from the replacement modal

= 2.1.7 (2019-12-03) =
* TWEAKED Whole new welcome page UI. Goodbye to the BG image and docs/extensions. New welcome page is just focused on education.
* TWEAKED Funnel builder UI now takes over the whole screen for the best editing experience.
* TWEAKED Overall improvement of the layout of the funnel builder and js event management.
* TWEAKED {files} will not longer take any parameters, just simply list the files in the filebox.
* TWEAKED Re-designed the guided setup onboarding experience.
* TWEAKED Initialize Groundhogg DB objects during plugins_loaded instead of setup_theme.
* TWEAKED Add a fallback emergency DB init to the base_object class in the event a plugin calls something before the DBs are initialized.
* FIXED Deprecated Multisite function compatibility.
* FIXED Import CSV not uploading on some occasions.
* FIXED Default attribute in the contact shortcode works now as per the docs.
* FIXED Unconfirmed view in the contacts table not working.

= 2.1.6.3 (2019-11-24) =
* ADDED Complained view to contact list.
* ADDED More hooks to optin status management functions for the contacts admin screen
* TWEAKED Tracking link error message when error occurs.
* TWEAKED Ignore form spam check if user is logged in.
* FIXED PHP notice occurring when hiding sending service settings.

= 2.1.6.2 (2019-11-22) =
* ADDED optin status filter to contact search
* TWEAKED Changed /files/ permalink structure to /uploads/ for backwards compatibility with older versions of WP multisite.
* FIXED Import funnel upload not working.

= 2.1.6.1 (2019-11-20) =
* ADDED Filter to submission handler contact args before creating a contact.
* FIXED Fatal error in submission handler cause by undefined function when an email address is not present in the posted data.
* FIXED continuous redirect with benchmark link click caused on some setups.

= 2.1.6 (2019-11-20) =
* ADDED More error checking for incorrectly configured funnels.
* ADDED Installed premium extensions now included in the stats collection.
* ADDED Collect more useful data from stats collection like language and PHP version.
* TWEAKED Removed old unused code from pre version 2.0
* TWEAKED Updated POT file with new strings.
* TWEAKED Contacts will no longer be able to move backwards through a funnel, they will only be able to complete benchmarks which come after the current active step. Contacts will still be able to restart a funnel upon completing the initial benchmark.
* TWEAKED Hide Sending Service settings if no key is present.
* FIXED Active contacts funnel column not showing accurate results.
* FIXED PHP Notice when Base_Object data is empty.
* FIXED Email will be recognized as a confirmation email when {confirmation_link_raw} is included.

= 2.1.5.2 (2019-11-19) =
* TWEAKED When basic email editor is in use parse images to make them responsive.
* FIXED Fatal error in tracking API caused by undefined function call.

= 2.1.5.1 (2019-11-18) =
* TWEAKED Re-arranged the phone number and email field in the contact editor.
* TWEAKED Event cancel link shown based on status instead of time.
* TWEAKED Ensured conditional shortcodes work in the email builder.
* FIXED Some UTF-8 characters not being accepted in web forms.

= 2.1.5 (2019-11-15) =
* ADDED The beginning of the advanced contacts search.
* ADDED Ability to search for contacts that have 1 or more tags.
* TWEAKED UI in funnel editor to make it easier to edit funnels
* TWEAKED Steps will show an icon when there is a configuration error
* FIXED Bug in admin email notification when FROM email set in the settings.
* FIXED Bug in bulk action screen causing nonce failure when items is less than 400 and importing large list.

= 2.1.4 (2019-11-11) =
* ADDED Better all around support for default from name and email address.
* TWEAKED List of installed premium Groundhogg extensions sent to Library API to fetch relevant funnel templates.
* TWEAKED Escape URLs during SendWP install.

= 2.1.3 (2019-11-06) =
* ADDED Support for {owner_phone} in admin notification SMS field.
* ADDED Replacements support for WP_User.
* TWEAKED Saved templates shows admin title instead of subject line as title.
* TWEAKED Updated PO file.
* FIXED Adding new email from "My Emails" tab while advanced email editor is enabled.
* FIXED Bulk apply tag action not working in contact list.

= 2.1.2 (2019-11-04) =
* ADDED options to set your Groundhogg affiliate ID.
* ADDED option to show "this email was sent with Groundhogg" in the email footer. (using aff ID)
* TWEAKED The form response and TY page now support replacements.
* FIXED replacement codes in links not working in basic email editor.
* FIXED Last broadcast report not showing most recent broadcast stats.

= 2.1.1 (2019-11-01) =
* TWEAKED instant regret for the new add email flow. We put the old one back.
* FIXED Notices bug when adding notice with WP_Error

= 2.1 (2019-11-01) =
* ADDED Template library to replace builtin templates.
* TWEAKED Better guided setup onboarding experience.
* FIXED Some special characters not being accepted in first & last name fields.
* REMOVED SMS, Superlinks, Advanced Email Editor, Advanced Funnel Steps.

= 2.0.12.2 (2019-10-22) =
* FIXED Bounce checker running even if settings are not setup
* FIXED fixed deprecated calls to mime_content_type in PHP 7.2+
* FIXED file upload through form saving wrong URL to meta

= 2.0.12.1 (2019-10-15) =
* FIXED Bug caused emails which were sent to appear as failed with an error related to another email address.

= 2.0.12 (2019-10-08) =
* ADDED SendWP integration is now the recommended email delivery tool.
* TWEAKED improved birthday field UI in the form.

= 2.0.11.8 (2019-10-07) =
* TWEAKED Sending service now pings new serverless architecture!

= 2.0.11.7 (2019-09-27) =
* TWEAKED Table base class now provides better support for queries in the URL
* TWEAKED Table base class includes column_cb function
* TWEAKED Admin_Page class will fallback on to the default view action if no method is supported for the current action.
* TWEAKED if webhook body is empty, pass the full contact details.
* FIXED fatal error when removing a role from a user that does not have an associated contact record.
* FIXED Webhook test does not work in funnel builder 2.0
* FIXED Birthday error when birthday is left blank

= 2.0.11.6 (2019-09-26) =
* ADDED a new method "JSON import" for importing funnels.
* ADDED error message when invalid birthday provided in the admin.
* ADDED the {owner_phone} replacement code. Set user phone number under users > edit > contact methods
* TWEAKED Remove error code from error message in admin because it's very ugly.
* FIXED "Skip if confirmed" causing all confirmation "Email Confirmed" steps to trigger. Should only trigger the steps in the current funnel.

= 2.0.11.5 (2019-09-24) =
* ADDED Default localization library and supporting functions for validating mobile phone numbers
* TWEAKED Birthday field in contact record now supports empty value to not save DOB as incorrect date
* TWEAKED Better handling of the birthday field in the admin
* FIXED Connection to Groundhogg sending service account in guided setup not starting
* FIXED First & Last name field only accepts values longer than 3 characters. Changed to a minimum of 2 characters.
* FIXED failed event notifications missing failure reason.
* FIXED form errors not showing on managed submit page.
* FIXED Missing roles after updating to 2.0.11.3
* FIXED Minor DB error introduced in last update

= 2.0.11.4 (2019-09-22) =
* FIXED Reporting time ranges not being respected in some cases by the Contact Query
* FIXED Calling static method from instance causing PHP notice.

= 2.0.11.3 (2019-09-20) =
* FIXED 'upload_files' cap is removed if uninstalling and "remove all GH data" is enabled in the settings.
* FIXED leadsource cookie in js not matching up with PHP causing leadsource to be missing in some cases.
* FIXED First & Last will no longer be modified to strtolower or ucwords
* FIXED Contact appearing in query twice if has 2 tags which are both in the tags_include request

= 2.0.11.2 (2019-09-18) =
* ADDED More developer hooks and filters.
* TWEAKED Show merged content email in the add view instead of plain body in div.
* FIXED Bottom bulk action not working
* FIXED Image SRC with query strings were being unfairly sanitized when email is sent.

= 2.0.11.1 (2019-09-17) =
* ADDED Preview pagination to paginate records during the import mapping process
* ADDED ALT-Body editor to the new Simple Email Editor
* TWEAKED Parse email content for images and sanitize their styling for guaranteed responsiveness.
* TWEAKED Mapping User/Owner ID also supports user email and username as well as ID
* FIXED export list function only exports the contacts listed and not all the contacts from the query.
* FIXED Updated the POT file.

= 2.0.11 (2019-09-16) =
* ADDED New simple email builder option for users who'd rather use the WP editor instead of our email builder.
* ADDED Show Premium SMTP options in email step during guided setup.
* ADDED Safe mode. Enables the easy temporary deactivation of other plugins.
* TWEAKED Shortened the tracking link markup
* TWEAKED remove editor styles from email text block.
* FIXED Email Browser view sometimes not loading email at correct height.

= 2.0.10 (2019-09-14) =
* ADDED Option to disable behaviour of the logged in user taking precedence over tracking link information.
* ADDED Compatibility to extend the preferences center.
* TWEAKED Failed event notifications will send a max of 1 per minute.
* TWEAKED Updates amd Install tools tab shows display names instead of identifiers.
* FIXED Typo in 'cancelled' status.
* FIXED CSS issue in "Add Step" modal in the V2 editor.

= 2.0.9.16 (2019-09-13) =
* ADDED German translation. Shout out to Josef Weindler for making that possible.
* FIXED updated POT file to include new and updated strings.
* FIXED IP geolocation from geoplugin.net not working due to the referer not being set properly.

= 2.0.9.15 (2019-09-12) =
* FIXED File access URL

= 2.0.9.14 (2019-09-12) =
* ADDED Support for serialized contact meta on the custom info page.
* ADDED Support for syncing contact meta in the user sync tool
* ADDED Support for manually starting upgrade process for Groundhogg and other extensions
* ADDED Support for manually starting install/activation process for Groundhogg and other extensions
* ADDED New "change preferences" link takes contacts to the profile preferences page
* TWEAKED "Unsubscribe" link now takes contacts to the manage preferences page instead of the profile preferences page
* TWEAKED Reporting time ranges
* FIXED Events actions in the contact activity tab not redirecting back to contact record.
* FIXED View all events in contact activity tab not showing contact specific events.

= 2.0.9.13 (2019-09-11) =
* FIXED Unable to save email as ready.
* FIXED Bug where content not deselected in email editor after update

= 2.0.9.12 (2019-09-11) =
* TWEAKED Email saving to only post required arguments instead of whole form
* TWEAKED Error notice JSON will now also include the original error code and message
* TWEAKED better support for HREF and SRC attributes in array_to_atts()
* FIXED Alt-body newlines missing when auto generated from html content.
* FIXED Clicking on a funnel/step/contact in the events table shows events related to the query
* FIXED Error during saving email causing block toolbar to dissapear
* REMOVED API V2, it wasn't being included anyway so it's just taking up file space
* REMOVED WP Bakery Block, wasn't working anyway and WP Bakery is no longer relevant to support

= 2.0.9.11 (2019-09-10) =
* TWEAKED DB queries make better use of the wp_cache system.
* TWEAKED Tracking stats optin now requires a choice of which free extension you want to avoid confusion.
* FIXED possible function re-declaration causing fatal error.
* FIXED File access rule for admins not allowing them to download contact files.

= 2.0.9.10 (2019-09-09) =
* FIXED Unconfirmed view in contacts table showing all contacts
* FIXED Contact query using groupby in count request causing unexpected behaviour

= 2.0.9.9 (2019-09-07) =
* FIXED Unable to download export files.
* FIXED Contact Query returning an array during when counting if count is 0
* FIXED GeoIP not working after switch to wp_remote_get

= 2.0.9.8 (2019-09-06) =
* FIXED first and last name checked eve if not present in form
* FIXED manage-page added to posts db every time plugin updates
* FIXED Bug where nested replacements caused fatal error.

= 2.0.9.7 (2019-09-06) =
* ADDED Action to reset tags in the event of a failed install.
* FIXED Various recommendations from the WP Plugin team
* FIXED Import function for contacts not working.

= 2.0.9.6 (2019-09-05) =
* FIXED Various security issues.

= 2.0.9.5 (2019-09-05) =
* FIXED Arbitrary readfile vulnerability

= 2.0.9.4 (2019-09-05) =
* TWEAKED Contact Query class optimized
* FIXED bug where admin user linked to contact record on update.
* FIXED bug completed events shows zero when running queue manually.
* FIXED redirect after running queue to remove url params from query string.
* FIXED missing translation context in form errors.

= 2.0.9.3 (2019-09-04) =
* FIXED Managed page query not working.

= 2.0.9.2 (2019-09-04) =
* ADDED missing translation contexts to preferences page
* ADDED Screen options panel to change number of records per page
* TWEAKED rewrite url structure for managed pages now open to modification if you know what you're doing.
* FIXED SMS page orderby broken

= 2.0.9.1 (2019-09-03) =
* FIXED pagination bug when manually selecting a page.
* FIXED DB query bug showing too many results on tags page.

= 2.0.9 (2019-09-03) =
* ADDED Plugins API benchmark! Developer happiness is now at an all time high!
* ADDED Plugins API endpoint for using webhooks to move people through funnels.
* ADDED Birthday field mapping for importer and form integrations.
* TWEAKED Added compatibility for DB query vars with similar names. e.g. 'val' & 'value' or 'relation' & 'relationship'
* FIXED missing minified file for the delay timer action.
* FIXED Field label showing even if no label in the form builder.

= 2.0.8.1 (2019-09-02) =
* ADDED Rewrite rules list to system report.
* TWEAKED Create user bulk job now has a 'Role' option.
* FIXED Bug in Abstract Table class causing fatal error in some extensions in Admin view.
* FIXED Bug where adding query strings to url in email builder caused a 404 error.

= 2.0.8 (2019-08-30) =
* ADDED birthday field support for the form builder and contact record.
* ADDED option to disable the JS page tracking script.
* TWEAKED optimized some DB queries and tables
* TWEAKED form shortcode supports do_replacements to autopopulate form fields with replacements info.
* FIXED Un-needed tracking script loading on admin pages.
* FIXED Form impressions cookie checked before logging new impression.

= 2.0.7.1 (2019-08-29) =
* FIXED Error adding .htaccess to protected /groundhogg/ uploads folder
* FIXED function imap_open checked if exists before usage.

= 2.0.7 (2019-08-29) =
* ADDED file_access_url() to create access links for protected Groundhogg files.
* FIXED Admin_Page::admin_url() not using based admin_url() funtction.

= 2.0.6 (2019-08-28) =
* FIXED File uploader causing error when file is not uploaded.

= 2.0.5 (2019-08-28) =
* FIXED Typo in the Sending Service settings
* FIXED Updates showing for inactive premium extensions.

= 2.0.4 (2019-08-28) =
* FIXED Fallback from details missing when email sending from contact owner but no owner is set.
* FIXED Non-required phone field throwing validation error.
* FIXED Broadcasts not showing in table.

= 2.0.3 (2019-08-27) =
* ADDED class to allow for old versions of extensions to update.
* FIXED EDD_Updater class not being initialized for 2.0 versions of extensions.

= 2.0.2 (2019-08-27) =
* FIXED verbage in email for tracking optin.
* TWEAKED HTML utils link picker class.

= 2.0.1 (2019-08-27) =
* See all new changes [here](https://www.groundhogg.io/new-in-2-0/).
* USE Namespace, autoloader, and more goodies to improve code organization.

= 1.3.11.13 =
* FIXED bug that allowed the Create User step to add users to any subsite on a multisite.

= 1.3.11.12 =
* ADDED Preparation for upgrading to 2.0

= 1.3.11.11 =

* FIXED {id} not working
* FIXED GDPR & Terms compliance being removed when updating a contact

= 1.3.11.10 =
* FIXED Altbody being included in plain text emails when using GH_SS_MAIL function.
* FIXED Street Address 2 should not be required.

= 1.3.11.9 =
* ADDED {id} replacement code

= 1.3.11.8 =
* FIXED comptibility bug with plugins which include forms on all admin pages.
* FIXED Plaintext emails being sent out with missing line breaks when using the Groundhogg sending service.

= 1.3.7 =
* ADDED extra nonce to frontend form impression checks to ensure request is intentional.
* ADDED extra nonce to frontend page view checks to ensure request is intentional.
* ADDED option to include full or minified files.
* FIXED v2 Elementor integration conflict
* FIXED v2 Elementor integration script inclusion.

= 1.3.6 =
* Just a notification to prompt users to update to plugin with resolved vulnerabilities.

= 1.3.5 =
* ADDED local images to assets/images
* FIXED remote code execution (RCE) vulnerability (https://www.pluginvulnerabilities.com/2019/04/05/our-proactive-monitoring-caught-an-authenticated-remote-code-execution-rce-vulnerability-being-introduced-in-to-groundhogg/)
* REMOVED Extraneous jQuery library.

= 1.3.4 =
* FIXED Fixed the new Elementor integration which was disabled in 1.3.1. Elementor Integration now supports complex field mapping.

= 1.3.3 =
* ADDED New meta_query & meta_query_count helpers to the DB widgets to cut down on duplicate code.

= 1.3.2 =
* HOT FIX for dashboard db error when no new contacts have been created.

= 1.3.1 =
* HOT FIX Rollback Elementor integration to previous version as doesn't work when multiplte forms on same page.

= 1.3 =
* ADDED Tags settings tab to add options for tag mapping
* ADDED optin status tag mapping so that it is easier to reference a broad scope of contacts without having to manage the tag associations through funnels.
* ADDED option to enable/disable cron job via GHSS from settings page.
* ADDED Tools Specific page for managing imported lists, exported lists, system info and other tools to be added in the future.
* ADDED Field mapping when importing contact lists, as well as a page to re-import lists and delete imported lists.
* ADDED New method for exporting lists, lists are now generated server side and are stored in an exports folder, exports can be re-downloaded multiple times.
* ADDED Api for mapping fields for form integrations and Zapier integration for more flexibility.
* ADDED Field mapping to the Elementor integration.
* TWEAKED Major performance overhaul of report generation for the dashboard. reports arte now generated much quicker when the number of contacts is > 20,000
* TWEAKED Users are no longer auto converted to contacts upon installation. you must now sync contacts via the tools page.
* TWEAKED Overhauled the file system for contact specific uploads, as well as for imports/exports.
* TWEAKED X-Mailer header now set as Groundhogg.
* TWEAKED skipping email confirmation emails will result in a skip rather than a WP_Error
* TWEAKED funnels events which return false will soft fail and skip rather than hard fail with a WP Error.
* TWEAKED Changed MOST instances of "new WPGH_Contact()" to "wpgh_get_contact()" so that the contacts cache is checked rather than querying the DB every time.
* TWEAKED Changed MOST instances of "new WPGH_Step()" to "wpgh_get_funnel_step()" so that the steps cache is checked rather than querying the DB every time.
* TWEAKED implemented a tag cache array to avoid duplicate db queries.
* TWEAKED the Admin page abstract class to include more beneficial functions.
* TWEAKED Obfuscated the email address on the email preferences page.
* TWEAKED Broadcast scheduling gets sent through new bulk jobs system.
* FIXED EDD Plugin Updater slowing down admin dashboard with extraneous call to api endpoint.
* FIXED Renamed EDD Plugin Updater to prevent conflicts from another plugin.

= 1.2.10.2 =
* HOT FIX Send all emails in HTML content type as GHSS does not like plain text emails. Use 'the_content' filter on plain text emails.

= 1.2.10.1 =
* HOT FIX Elementor form integration broken after last update.

= 1.2.10 =
* ADDED Send email notifications when event fails option.
* ADDED Test method for GHSS.
* TWEAKED Moved Misc settings to a misc tab
* TWEAKED SMS Step now has a skip if no phone available option.
* TWEAKED GH SS now uses an extended version of PHPMailer for better email encoding and support for attachments.
* FIXED checking for option that does not exist in SMS Step. (Non lethal)

= 1.2.9.1 =
* HOT FIX for WP mail bug when using GHSS.

= 1.2.9 =
* ADDED Submission handler function for form extensions.
* ADDED Shoddy column support for email builder.
* ADDED Link picker for Button & Image Email blocks
* ADDED Warning when sending email from an email address which has a different host than the given site.
* TWEAKED improved link picker for link supported benchmarks.
* TWEAKED Form File input visual ques.
* TWEAKED Form Date picker now uses jQuery datepicker UI instead of browser date select.
* TWEAKED Contact now has a meta cache array for faster querying of metadata
* FIXED Iframe in modal now has proper scroll bar.
* FIXED wp_mail() bug.
* FIXED Site stats collection had num contacts and num funnels reversed.

= 1.2.8 =
* TWEAKED Better warning for the global multisite db network.
* FIXED Does not drop main network DB if subsite is deleted when the global DB option is enabled.

= 1.2.7 =
* ADDED DB status to system report.
* FIXED typo in notice when changing a contacts email address.
* FIXED Dashboard not loading if circle graph report is in closed position.

= 1.2.6 =
* ADDED progress bars to import/bulk delete tools to provide visual keys for progress.
* ADDED Last broadcast Report in the dashboard.
* TWEAKED Broadcasts are now scheduled in batches to avoid timing out for larger lists on bad hosting.
* FIXED Add note not working. Code removed accidentally.

= 1.2.5 =
* TWEAKED wpgh_get_contact now uses a cache to avoid multiple creations of similar objects.
* TWEAKED Added option to send transactional emails through the Groundhogg Sending Service.
* FIXED Send in TimeZone not scheduling events at the correct time in some cases.

= 1.2.4 =
* ADDED Updated API methods v3.
* ADDED My templates to emails section for easy duplicating of emails.
* ADDED Ability to search and copy previous emails from the my-emails tab.
* TWEAKED When duplicating and email append (Copy) to the subject line.
* TWEAKED New UI for adding options and tags in the form builder.
* TWEAKED API only loads when wp_rest_init is invoked rather than loading all of the classes ahead of time.
* TWEAKED API Errors now have more revealing HTTP response codes.
* TWEAKED Frontend tracking script now uses the REST API instead of admin-ajax.php for better performance.
* TWEAKED Rather than explicitly enabling the API, a user must now explicitly disable it due to the fact we now use the API for most basic functionality.
* FIXED Form Impression reporting bug only tracking impressions for existing contacts.

= 1.2.3 =
* TWEAKED Reporting widgets can also register a shortcode for custom admin pages
* TWEAKED Improved class hierarchy for custom reports in the dashboard
* TWEAKED SMS Api & Email API now use id_or_email
* FIXED Global Multisite DB queue error
* FIXED Email & SMS API Sending notification should be POST, not GET

= 1.2.2 =
* ADDED Schedule broadcasts at time in subscribers' timezone.
* ADDED Schedule timers to run in subscribers' timezones.
* ADDED Schedule SMS Broadcasts to run in subscribers' timezones.
* ADDED Geographic reports to dashboard
* ADDED Pie chart of optin status report
* ADDED Tools menu item.
* ADDED Admin menu base class for use in extensions.
* TWEAKED Funnel Breakdown will now also feature a line chart of contact progress
* TWEAKED Emails sent using the Groundhogg Sending Service will not longer use wp_mail as backup for error reporting purposes
* TWEAKED The Groundhogg Sending Service url is now aws.groundhogg.io to improve the speed of requests.
* FIXED Confirmation emails not skipping if email is already confirmed.
* FIXED Email HTML not working

= 1.2.1 =
* ADDED Automatic GEO location via geoplugin.net when a form is submitted and IP is collected.
* ADDED Extrapolate location from IP via contact record.
* ADDED Timezone and IP field to location section of contact record
* TWEAKED changed "Address" to "Location" in contact record
* TWEAKED excluded protected meta data from custom info tab

= 1.2 =
* ADDED Gravatar image to contact profile.
* ADDED Ability to unlink contact records from user accounts.
* ADDED Guided Setup UI for new installations.
* ADDED Central database for SMS so it can be used throughout plugin.
* ADDED UI for managing SMS globally
* ADDED Error reporting for failed events in the events screen.
* ADDED Process events direct from contact activity tab.
* ADDED Support for manually confirming a contact's email address.
* ADDED Login abandonment funnel template
* ADDED SMS API endpoint.
* ADDED IMAP Test connection UI and more Bounce checker settings.
* TWEAKED improved email and instruction copy in the funnel templates.
* TWEAKED Add note UI rather than edit notes directly
* TWEAKED form fields now default to required false, so no need to add required false into the form shortcode. Explicit required="true" now required.
* TWEAKED removed SMS character limit.
* TWEAKED removed 5 second check preventing emails sent in succession, no longer needed.
* FIXED Email content centered if not explicitly given left align
* FIXED Emails sent if in draft mode.
* FIXED Non required fields are being required by the submission handler.

= 1.1.4 =
* ADDED Search form to welcome page for docs help
* ADDED Distinct helper methods to Funnel Parent Class
* TWEAKED Welcome page now queries docs direct from documentation site
* TWEAKED Welcome page now queries extensions direct from store
* TWEAKED Stats collection will retrieve display_name

= 1.1.3 =
* FIXED First & Last being set to null if not present in form.
* TWEAKED Form spam verification is now more strict.
* TWEAKED Is submission fails information is saved so you do not need to re-enter it all.

= 1.1.2 =
* FIXED File upload file type specification not working
* FIXED File upload not working if files not specified

= 1.1.1 =
* ADDED New admin form submit action accessible from the contact record
* TWEAKED Added spacing around button block & fixed centering issue for improved usability in outlook.
* TWEAKED converted spacer to table format for outlook compat
* TWEAKED Default email template for improved outlook compat
* TWEAKED Image block now also uses width attribute for compatibility across platforms.
* TWEAKED New filter and action hook guide
* TWEAKED Form builder content area now sizes to the content automatically
* TWEAKED Form builder content is auto formatted
* TWEAKED Long form country is now converted to country code when importing
* FIXED Email report wrongly included queued email statistics
* FIXED Reporting month time ranges are now more specific

= 1.1 =
* ADDED Prompt to allow anonymous usage tracking.
* ADDED Logged in benchmark
* ADDED Ability to deactivate a license from the licenses tab in the settings.
* ADDED Ability to add tags based on radio button, dropdown selection, or checkbox enabling in the form builder.
* TWEAKED Improved localization all around.
* TWEAKED Quick UI improvement for creating emails from the broadcast view.
* TWEAKED added URL params for pages with dynamic content to help excluding in various caching plugins.
* TWEAKED API for ordering sub menu items
* TWEAKED Renamed Groundhogg submenu item to Welcome
* TWEAKED Various CSS fixes
* TWEAKED SMTP check now checks for MOST WP SMTP plugins as well as Groundhogg service before publishing notice.
* TWEAKED Referral prompt is now removed if the installation has active extensions.
* TWEAKED Form builder is a little bit more specific when including fields to be added
* FIXED z-index issue causing admin bar in editors to display above the admin bar.

= 1.0.24 =
* ADDED Elementor Forms Integration.
* TWEAKED Upped limit of contacts per request during contact import from 25 to 100 to limit the number of requests.
* FIXED Import script making concurrent requests causing 503 errors for really large lists. Requests are now consecutive instead.

= 1.0.23.1 =
* ADDED AR_es locale
* TWEAKED Import contacts efficiency.
* FIXED pass by reference notice in contact edit screen.

= 1.0.23 =
* ADDED Tabbed contact record sections to cut down on scrolling.
* FIXED Var dump $_FILES in contact record update.
* FIXED Modal defaults only being loaded in funnel builder causing the modal not to work

= 1.0.22 =
* ADDED Quick export button to contacts view
* ADDED Import link to contact page
* ADDED Actions for registering new From builder shortcodes
* ADDED much better way of handling form errors.
* UPDATED New REST API method for GH Email & SMS service that significantly improves usage performance and provides superior error reporting.
* FIXED Some funnel builder assets loading on every page.

= 1.0.21.1 =
* ADDED Failed status to Events table
* FIXED Rest API function typo.

= 1.0.21 =
* FIXED fatal error on multisite conversion of users to contacts.
* FIXED email preferences center not being installed on multisite subsites.

= 1.0.20.5 =
* ADDED WP Bakery block support
* REMOVED Semaphore usage in the event queue as it was causing problems.
* FIXED Call to deprecated function get_user_by_email()

= 1.0.20.4 =
* FIXED Fatal error when adding users or updating user roles.

= 1.0.20.3 =
* ADDED Translations for es_ES, fr_FR, fr_CA, ja, pt_BR, ro_RO
* ADDED Translations
* FIXED PHP Fatal Error when activating for the first time.

= 1.0.20.2 =
* TWEAKED Base API Class
* FIXED PHP error from direct accessing unresolved array.
* FIXED PHP Fatal error when activating.

= 1.0.20.1 =
* ADDED Beaver Builder form block.
* TWEAKED Test Email selection will now default to the current user.
* TWEAKED More proper error messages when now test email is selected.
* FIXED Contact => Account linking was not working properly.

= 1.0.20 =
* ADDED Iframe support for Forms! You can now paste forms into your CRM on any site anywhere.
* ADDED Support for custom page builder blocks. Elementor is the first to be added. Others will come later.

= 1.0.19.5 =
* ADDED Raw email confirmation link that can be put in buttons.
* TWEAKED Create user step will now update a users level if the user already exists instead of adding another action to do so.
* TWEAKED Renamed the cron job to wpgh_process_queue for better semantics.
* TWEAKED Checking bounces now occurs hourly rather than with the queue process to avoid anything breaking being buggy.
* TWEAKED Some benchmarks process the queue instantly. The following benchmarks are Forms, Link Clicks, Page Views & Email Confirmations
* FIXED when creating a new email in a funnel you had to select the email after creating it which was annoying. The email is now auto updated as expected.
* FIXED When editing an email and clicking "Save Changes" in the funnel builder not working.

= 1.0.19.4 =
* ADDED Option to change the queue interval time.
* ADDED plugin API to the multisite options page.
* TWEAKED CSS for inputs & text areas hardened to not be overwritten by WC.

= 1.0.19.3 =
* ADDED UTM Reporting
* ADDED Preview modal for the form builder.
* ADDED White labelling support
* TWEAKED better tracking support for UTM variables
* TWEAKED events belonging to a deleted step get move forward to the next available action.
* FIXED partial match URL not accepting partial match strings.
* FIXED wrong verbage for reporting toggle caused by altered css ID

= 1.0.19.2 =
* ADDED Source Page report to dashboard.
* FIXED Bug where empty title showing on contact record with no first or last name.
* FIXED Settings page setup so that extensions can add option easier.

= 1.0.19.1 =
* FIXED Create user step setting optin status to unconfirmed by accident.

= 1.0.19 =
* ADDED New Contacts By Social Media Source Report
* ADDED New Contacts By Search Engine Source Report
* TWEAKED Added new reporting times to funnel reporting view in correlation with the dashboard
* FIXED Collapse status of steps saved.
* FIXED Bugs where collapsed report widgets caused JS Errors.

= 1.0.18.2 =
* ADDED time to next queue run in the events table
* FIXED manually process events button CSS

= 1.0.18.1 =
* ADDED Export ability to reporting widgets
* ADDED several new default reporting time ranges.
* ADDED funnel breakdown report widget
* ADDED Active Funnels report widget
* ADDED Lead Source Activity report
* ADDED reporting capabilities for admin and marketers
* ADDED Compare option for META_QUERY in WPGH_CONTACT_QUERY class
* FIXED could not collapse step if newly added.
* FIXED could not delete all tags from a contact
* FIXED file upload error on contact editor page when no files uploaded
* TWEAKED moved dashboard reporting to widgets in the WP admin dashboard
* TWEAKED the delay time between consecutive events have been changed from 10 seconds to 0 to allow for recursive and immediate queue iteration.
* TWEAKED Cron schedule changed from every 10 minutes to every 5 minutes.
* REMOVED Dashboard page

= 1.0.18 =
* ADDED replacement codes {owner_first_name} & {owner_last_name}
* ADDED date_picker generator to the HTML helper class
* TWEAKED steps are now collapsible for better ui
* TWEAKED Form layout CSS for better compatibility
* TWEAKED Ignore tracking link replacement on mailto: links
* TWEAKED Removed the ajax process functionality for queue events altogether because it was eating up too many resources and causing server timeouts in edge cases, implementation has been left included in the event someone comes up with a better way to tackle it. The best way to ensure events go out on time is to set up the server scheduler
* TWEAKED Queue will run recursively until all successive scheduled events are completed.
* FIXED Textarea in form builder not showing options

= 1.0.17.1 =
* Fixed Contact Scripts breaking quick edit links in admin area

= 1.0.17 =
* ADDED Contact File Management. Upload files from both admin and Frontend to contact record.
* ADDED email management and sending via the REST API.
* ADDED Date and Time form fields
* FIXED grammer and spelling mistakes returned via the REST API.
* FIXED Bug where user role tags were not being applied properly.

= 1.0.16.3 =
* ADDED Account Creation button in contact record if the contact does not have an associated user account.
* TWEAKED API V2 Improvements in json responses
* TWEAKED default method for hooking into the user_register hook that in turn triggers the Account Created benchmark

= 1.0.16.2 =
* FIXED Nested function loop causing 500 level error

= 1.0.16.1 =
* TWEAKD MAX Ajax queue calls is 5 per page view to limit server load.
* FIXED Upgrader class causing 500 error in admin
* FIXED Form Shortcode calling class constructor with to many arguments.

= 1.0.16 =
* ADDED introduction of the Marketplace
* ADDED user roles re auto converted to tags and applies to the contact so sending broadcasts to specific users becomes easier
* ADDED the standard create_contact_from_user function that can be used in multiple contexts...
* ADDED upgrade class to handle updates
* ADDED better API structure and authentication
* ADDED API tab in settings area
* ADDED Standardized method for updating email marketing preferences
* ADDED Field timer for dynamic delay times.
* FIXED Email block toolbar disappearing after save

= 1.0.15.1 =
* TWEAKED Role Changed benchmark now also supports add_user_role as well.
* TWEAKED Double check max event setting so as not to imply it could be 0
* FIXED wrong setting name for Email Confirmation page

= 1.0.15 =
* ADDED Gutenberg Form Block
* TWEAKED HTML block in email builder support code-mirror now
* TWEAKED minified ALL js files for faster performance
* TWEAKED checkbox field now has visible value option in form builder
* FIXED Email HTML editor view not working when editing emails in the funnel builder
* FIXED serialized meta was not being duplicated properly when duplicating campaigns

= 1.0.14.1 =
* ADDED Email browser page auto created on install
* FIXED Meta data tables not registered during plugin activation causing email preferences funnel to not register correctly.
* FIXED steps being added if dragged in but not dropped.
* TWEAKED notice if max_input_vars to small for funnel.
* TWEAKED removed step_order input arg from funnel editor to conserve max_input_vars since it wasn't being ued.

= 1.0.14 =
* FIXED slashes appearing when saving contact names with the ['] of ["] symbol.
* FIXED quotes escaped in email subject line and preheader.
* TWEAKED better handling of changing email addresses for a contact.
* TWEAKED exclude meta list so that meta data does not appear moe than once

= 1.0.13.4 =
* ADDED support articles to support articles column on welcome page
* TWEAKED double check semaphore locking is enabled
* FIXED get_pages() not working on global multisite

= 1.0.13.3 =
* ADDED Go back button in broadcast report if the broadcast has yet to be sent.
* TWEAKED Export function now exports all the contact meta as well.
* FIXED mixing source_page & page_source, now just page_source

= 1.0.13.2 =
* ADDED New link click benchmark
* ADDED Exclude list for scheduling broadcasts
* FIXED Settings bug where privacy_policy and terms were overwriting each other.

= 1.0.13.1 =
* Forgot some critical files

= 1.0.13 =
* ADDED code to prepare for bounce responses from AWS
* ADDED new graph for form activity.
* ADDED Replacement Codes Popup
* TWEAKED View email in browser now has a shortcode and a specific page to use.
* TWEAKED the settings page is now much more extendable  for extra plugins.
* TWEAKED there is now a check to see if a "robot" is submitting form. All robots will fail.
* FIXED Form builder was using dropdown shortcode but that shortcode wasn't actually registered...

= 1.0.12 =
* ADDED Interactive Broadcast pie chart.
* ADDED Dashboard Reports.
* TWEAKED Form Address Field to include proper placeholder information
* TWEAKED Form Address Field to have better condensed layout
* TWEAKED Report to use the jquery Flot library
* TWEAKED Import contact trimming column headers
* TWEAKED Better error reporting when contact import fails.

= 1.0.11.1 =
* FIXED Line which included the report missing
* TWEAKED added new code for the default form.

= 1.0.11 =
* ADDED New Funnel Reporting Graph at top of funnel when in reporting mode.
* ADDED compatibility for modal outside of funnel editor.
* TWEAKED New form build improvements. Popup UI for adding fields in the form builder.

= 1.0.10.4 =
* ADDED Introduced funnel warnings for date timers with descending dates and dates that are in the past.

= 1.0.10.3 =
* ADDED some mobile compatibility for the funnel view. Mostly just for basic edits and funnel reporting purposes.
* FIXED bug where cron was called a private function.

= 1.0.10.2 =
* TWEAKED Groundhogg email service no sends email along with sender name + sender email
* TWEAKED Event quueue locking using semaphore if it exists as a library.

= 1.0.10.1 =
* Fixed bug where broadcasts were always being schedules for 9:30 AM despite other settings.
* TWEAKED Cleaned up some event queue code
* TWEAKED Switched back to an older method of queue traversal. There is now only a single ajax request that can process the event queue every 30 seconds to avoid queue collisions.

= 1.0.10 =
* ADDED SMS messaging step. Uses the same credit system as emails.
* FIXED Misc bug fixes.

= 1.0.9.2 =
* FIXED contact->update() method not updating properties
* TWEAKED parent methods in WPGH_Funnel_Step no longer call __doing_it_wrong
* TWEAKED Queue now gives a thread ID to check on each while loop if the queue is the only one in action.
* TWEAKED Queue will spawn separately on multisite unless global multisite usage is enabled.

= 1.0.9.1 =
* FIXED Share link not exporting emails or tags.
* TWEAKED Hooks for deleting and saving contacts

= 1.0.9 =
* ADDED System Report
* ADDED Conversion Rate Reporting for the Form Fill Step.
* ADDED Skip Confirmation emails if already confirmed.
* TWEAKED Email step now defaults to most recent email instead of oldest email.
* TWEAKED "Form Fill" step now called "Web Form" step.
* FIXED Email link picker bug replacing line before with link picker text if adding link at the beginning of a text block.

= 1.0.8.2 =
* ADDED Share link to allow the sharing of funnels via links.
* TWEAKED Disabled autocomplete for broadcast date picker.
* FIXED Clicking image or button in email editor cause page reload.
* FIXED PHP warning if a tag is deleted but a broadcast report is trying to access it.

= 1.0.8.1 =
* FIXED queue failsafe bug

= 1.0.8 =
* FIXED could not use function in right context fatal error.
* FIXED multisite funnel capability comparing string to int.
* TWEAKED adding emails is also now done through the admin modal system.
* TWEAKED better handling of edit email link when email changes.
* FIXED activation error "you do not have permissions..."
* TWEAKED DBs now clean themselves whenever stuff is deleted...
* ADDED GH email sender API!
* TWEAKED added failsafe event running to ensure that no event is run TWICE within 5 minutes...
* TWEAKED emails cannot be sent within 30 seconds of each other to a contact.
* TEAKED email sending delayed by 30 seconds

= 1.0.7 =
* FIXED Emails were not updating from the funnel editor when click the "save changes button" in the modal. Click said button will now update the email.
* FIXED Implemented the queue not being able to be started by two different requests.
* FIXED multisite bugs
* FIXED Tracking will force ssl if SSL is present in the blog url option.
* FIXED duplicating steps in funnel literally duplicating the step which helps no one.
* FIXED contact count not updating properly when contacts deleted.
* FIXED longer imports using different import tag.
* TWEAKED The create user step will now ask which blog you want to add the user too if on multisite.
* TWEAKED if the funnel step is not available for the funnel builder than show an unkown question mark.
* TWEAKED an event cannot be added to the queue if there is a similar event within 60 seconds of the time its being added.
* TWEAKED if global multisite setting is enabled you can choose to only run an event if the associated step can be run by the current blog.

= 1.0.6 =
* Added Funnel updates automatically when the modal closes.
* Added Contacts which have unconfirmed emails will show as (Unconfirmed) int he table view
* Added new wpgh_get_contact( $id_or_email ) function instead of new WPGH_Contact
* Fixed removed console.log() calls.
* Added form CSS to auto style some elements for compatibility with the from styling extension.
* Changed the benchmark picker to be order by OPT GROUP and only include active steps.

= 1.0.5 =
* Changed WP_Popup to be a singleton class. Enqueue with wpgh_enqueue_modal(); Calling new WPGH_Popup() will throw an error.
* Added WP_Popup support for source from URLS. Use #source=<?php urlencode( 'https://mysite.com' ) ?>
* Added WP_Popup support for width and height from init href. Use #source=id&width=400&height=500
* Fixed links which trigger the popup now prevent default behaviour
* Changed editing emails in funnels to open up the modal with an iFrame of he editing screen rather than opening up a new tab for better UX.

= 1.0.4 =
* If a label is not present in a custom text field then use the placeholder as that is the next likely place.
* Added Popup modal from Styling extension to core instead.
* Added ability to add contacts to a funnel via the edit funnel UI.
* Added ability to add contact to a funnel via the edit contact UI.
* Added "mailto" option in List-Unsubscribe header.
* Added "Import Y-m-d H:i:s" added to contacts when imported.
* Added spinners next to import/export buttons.
* Added BULK delete by tag to the tools.
* Changed class WPGH_Importer to WPGH_Bulk_Contact_Manager
* Fixed import status showing 100% when actually not done.
* Fixed import/export js loading on every page, no only loads on tools page
* Fixed superlinks not redirecting on multisite.

= 1.0.3 =
* Changed WPGH_Contact_Query can now accept optin_status as an array of status options.
* Added the broadcast reporting view
* Fixed email preferences form not being installed correctly.

= 1.0.2 =
* Added WPGH_Form instance to wpgh_form_code filter
* Added Columns and Rows to the Funnel Form Editor
* Added base class CSS for frontend forms
* Fixed text editor bar is now sticky when scrolling.

= 1.0.1 =
* Changed to a vastly superior layout in the funnel editor.
* Fixed load funnel editor scripts in head rather than in footer.
* Changed editing view for emails to make similar to new Funnel Editor layout.
* Fixed load email editor scripts in head instead of footer.

= 1.0 =
* Stricter checking of whether a contact exists or not.
* Fixed wonky text editing in email editor.
* Allowed for HTML and richtext in the form element.

= 0.9.18 =
* Added round robin functionality to Apply Owner step.
* Changed Sales Managers can only see contacts they are the owner of.
* Fixed the create user step now links a user record to a contact if it exists... may be redundant but it's best to make sure.
* Fixed [attributes] arg in HTML class being escaped when it shouldn't be
* Fixed funnel stats refresh not working as a result of new ajax save.
* Fixed the phone field not saving to primary phone.
* Simplified the email editor text bar.
* Fixed extensions errors when licensing new extensions
* Fixed multisite config by retrieving options with get_blog_option rather than switch_to_blog
* Began Adding API Stuff.

= 0.9.17 =
* Fixed Apply owner step not saving.
* Fixed date timer select box for no reason.
* Added disable toggles to delay and date timers for testing
* Fixed Checkbox required="false" still required
* Fixed {_meta} replacement code showing as Array
* Changed form buttons adding to bottom of text
* Changed funnels save via AJAX instead of from POST

= 0.9.16 =
* Fixed global multisite bugs where restore current was never being called resulting in weird behaviour.

= 0.9.15 =
* Fixed activation fatal error.
* Added multisite functionality. Use the same info across all subsites in the event you have a multisite setup.

= 0.9.14 =
* Fixed text color picker from simple editor not working, again.
* Added filter to email blocks to make it easier to add custom blocks.

= 0.9.13 =
* Added simple editor to the form fill benchmark. Buttons now allow the user to quickly add standard fields to the forms without the need to view complete documentation.
* Fixed bug in form address field that caused a warning
* Fixed {_blah} replacement code not working because of unregistered code

= 0.9.12 / 0.9.11 =
* Updated bounce checker Library. Has a few bugs that were incompatible with PHP 7.0 +
* Fixed function name formlift_ to wpgh_ in locations.php
* Fixed meta not being saved via custom form fields
* Added security and copyright to all file headers
* Added .htaccess to templates/funnels
* Added email preferences funnel template
* Changed the form shortcode to be a text editor in the step itself, needs updated documentation.

= 0.9.10 =
* Fixed email preferences not working AT ALL, oops...
* Added last_optin to submission

= 0.9.9 =
* Finished implementing the Create User Action.
* Fixed bug where add from previous emails gives a warning.
* Tracking now uses the Logged in user as a contact if it exists so that if you're logged in replacement codes
among other functionality will work on the front end.
* Added reporting ranges to the active contacts column in funnel list

= 0.9.8 =
* Added Welcome Page
* Changed menu structure
* Added image assets
* Added address section to contact record.
* Added replacement codes {phone}, {phone_ext} & {address}
* Added locations functions to get lists of known geographic areas
* Fixed bug where clicking the confirmation link in tracking history resulted in a db error.

= 0.9.7 =
* Added send email function to contact record.
* Fixed Email Search Bug when searching in select2 email picker.
* New HTML Helper "dropdown_owners"
* Owner field now extended to include new roles "Marketer" & "Sales Manager"
* Fixed Saving Contact owner not working when adding new contact

= 0.9.6 =
* Fixed bug when deleting contacts with no tags caused a warning.
* Added emails send plaintext version as well as HTML for better spam score.
* Added alt tag to tracking image
* Added List-Unsubscribe header

= 0.9.5 =
* introduction of complex roles and caps
* Minor UI fixes regarding select2 library

= 0.9.4 =
* fixed {meta} not provided meta data
* fixed exporting funnel throwing errors
* added duplicate funnel link to table
* added empty trash link to emails table
* added filter to modify settings array

= 0.9.3 =
* Moved is recaptcha enabled check to functions.php
* fixed returning string instead of array when doing recaptcha check.
* get_tags() will now return an empty array instead of false.

= 0.9.2 =
* Add option to remove ALL data from WP when uninstalling Groundhogg
* Fixed gh_referer not being set when leadsource tracking

= 0.9.1 =
* Pre-release with some bug fixes

= 0.9 =
* Pre-release for testing installation from repo

= 0.1 =
* First Commit
