/groundhogg

Marketing Automation Plugin

Primary LanguageJavaScript

=== 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.9
Tested up to: 6.2
Requires PHP: 7.1
Stable tag: 3.1
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl.md

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

== Description ==

# Groundhogg 3.0 is here!

Groundhogg 3.0 introduces a new powerful email editor that rivals even the priciest SaaS CRM and email marketing platforms.

Create beautiful email templates to send as broadcasts, or to use in funnels and automations.

[youtube https://youtu.be/vVRbKys1Uc4]

Do your business a favor and switch to Groundhogg.

## Epic WordPress CRM, Email & Marketing Automation

Businesses that switch to Groundhogg save on average **$240/m** on CRM fees.

πŸ‘‰ [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) | [β…© (Twitter)](https://twitter.com/Groundhoggwp/)

πŸš€ [**14-day demo!** Try before you buy.](https://groundhogg.io/try/)

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

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.

## πŸͺ“ Ax 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/).

Businesses [save $1,000s a year](https://groundhogg.io/pricing/) after switching to Groundhogg.

## πŸ’½ You own your data!

The reality of SaaS CRMs is that you pay, and pay, and pay, and you invest all this money into a system to help your business thrive, but it can be taken away at a moments notice.

Putting your data in a SaaS CRM is like renting an apartment, but with less protection and stingier landlords. You can get evicted at any time, for any reason. There is no recourse.

This leaves your business exposed. What would happen to your business if your CRM was turned off?

With Groundhogg you actually [own your data](https://www.groundhogg.io/learn/email-and-self-hosting-is-now-more-critical-than-ever/)! No one expect you can make impactful changes.

## πŸ”Ž At A Glance

Everything your business needs to thrive!

* 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.

## ❀️ 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 [110 ⭐⭐⭐⭐⭐ 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/)!

**Kris Britton of the KAYBE marketing agency moved all of his clients from HubSpot to Groundhogg!**

[youtube https://youtu.be/EzQW0oexYFs]

## 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.

**Quickly and easily segment your list with Groundhogg's unrivaled search filter system!**

Groundhogg's search filters give you more control than any other CRM to segment your list to find exactly the leads you're looking for.

Our integrations with [WooCommerce](https://www.groundhogg.io/downloads/woocommerce/), [AffiliateWP](https://www.groundhogg.io/downloads/affiliatewp-integration/), [LearnDash](https://www.groundhogg.io/downloads/learndash-integration/), [and more](https://www.groundhogg.io/downloads/category/integrations/) add additional search filters you can use to create powerful segments so you can send hyper targeted messages.

[youtube https://youtu.be/TI0WV62dSU0]

### βš™οΈ 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.

[youtube https://youtu.be/uWZ8pNgBysg]

### πŸ“§ Simple Email Marketing & SMTP

* 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 under-performing.

**Use campaigns to make comparing reporting results easier**

[youtube https://youtu.be/LIEVWVBC2Ww]

### πŸ‡ͺπŸ‡Ί 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. Create funnels in the CRM quickly using our drag & drop builder with dozens of triggers and actions.
2. Start with pre-written templates base don real CRM use cases.
3. Quickly write, preview, test and send personalized emails from the CRM.
4. Upgrade to the drag and drop email editor to create emails with HTML and blocks.
5. Groundhogg's CRM reports give you the most data visibility of any small business CRM and Marketing Automation suite.
6. Create your personalized CRM report dashboard to monitor your most important metrics.
7. The Groundhogg CRM pulls data from all your integrations to show all activity and data on a single screen.
8. Filter contacts in the CRM using dozens of search filters to segment based on tags, custom fields, activity, purchase history, and more!
9. Send out mass emails to your list and view details reports of your subscribers' engagement.

== 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 ==

= 3.1 (2023-12-07) =
* ADDED Custom post type and taxonomy support to the email editor posts block.
* ADDED Card style options for the email editor posts block.
* ADDED Dynamic Shortcode block to the email editor.
* ADDED Search filters to events and email logs (more to come).
* ADDED Specify search columns for the emails table quick search.
* TWEAKED Adding contacts to a funnel is now a similar experience to scheduling a broadcast.
* TWEAKED Contacts are added to a funnel via a background task instead of the loader.
* TWEAKED Introduced the new DB\Query class and DB\Filters class to facilitate search filters for more data types.
* TWEAKED Optimized several of the contact demographic reports to perform queries faster.
* DEPRECATED User role, opt-in status, and marketability tag mapping will continue to be supported, but will no longer be active by default on new installs.

= 3.0.1 (2023-11-20) =
* TWEAKED Disable the advanced email editor automatically

= 3.0 (2023-11-20) =
* NEW [Drag & Drop block-based (not Gutenberg) email editor](https://www.groundhogg.io/press/groundhogg-3-0-columns-conditional-content-socials-and-more/)
* NEW Campaigns as method for organizing funnels, emails, and broadcasts
* NEW Add heading dividers to custom reports page to make grouping your custom reports easier
* NEW View detailed email logs in contact activity timeline.
* NEW Background processing for broadcast scheduling.
* ADDED Exclude filters to custom reports for more advanced reporting.
* ADDED New report value types for number reports,
 * Sum of a custom field
 * Average of a custom field
 * Number of distinct custom field values
 * Total number of activities
* ADDED Option to disable user syncing in WordPress integration settings.
* ADDED Developer filters/actions to the new form submission handler.
* ADDED Support for defining some options as constants in `wp-config.php`.
* ADDED View email logs in contact activity timeline.
* TWEAKED Improved the email log modal.
* TWEAKED Moved user meta sync option to WordPress integration settings.
* TWEAKED Dropdown and checkbox fields can now be pre-selected with the value setting in the form builder.

= 2.7.11.11 (2023-10-25) =
* FIXED Properly sanitize task data.
* FIXED PHP Notice if custom fields tab was deleted.

= 2.7.11.10 (2023-07-27) =
* ADDED Sort contacts by custom fields values and user meta (when available).
* ADDED Sort contacts by tag count.
* ADDED Sort contacts by birthday.
* TWEAKED Do not add primary ID to `INSERT` command if table is using `AUTO_INCREMENT`.
* FIXED Filtering by `datetime`, `tel`, and `url` custom field types not working.

= 2.7.11.9 (2023-07-03) =
* ADDED `thumbnail` argument for the `{posts.layout=h2 thumbnail}` replacement code to show thumbnails for the `h1-h6` layout formats.
* ADDED `columns` argument for the `{posts.layout=grid columns=1}` replacement code show 1-3 columns for the cards/grid formats.
* ADDED Handling for the `In-Reply-To` header to enable email threading in Gmail.
* ADDED `hey.com` to list of known public email providers.
* FIXED `{posts}` replacement causing timeout if post count is an odd number without a featured image.

= 2.7.11.8 (2023-06-22) =
* HOT FIX Visited pages not being tracked from form submissions.
* HOT FIX `track_live_activity()` causing fatal error if no current event is being tracked.

= 2.7.11.7 (2023-06-22) =
* TWEAKED Shortened tracking URL structure, from `/gh/tracking/email/click/<contact>/<event>/<email>/<link>` to `/gh/c/<contact>/<event>/<link>`.
* TWEAKED Removed redundant update versions prior to version 2.5.
* FIXED Fatal error when sending test email while browser view is enabled.
* FIXED Unsubscribe activity not correlating to broadcasts and funnels.

= 2.7.11.6 (2023-06-21) =
* HOT FIX Permalinks conflict with new email archive feature preventing open/click tracing from working.

= 2.7.11.5 (2023-06-21) =
* TWEAKED Task Summary now supports replacements in the Create Task action.
* HOT FIX Fatal Error when installing Groundhogg for the first time.

= 2.7.11.4 (2023-06-20) =
* HOT FIX Numeric search filters not working
* HOT FIX Fatal error caused by login benchmark when pro features and calendar addon are both active.

= 2.7.11.3 (2023-06-19) =
* ADDED New email archive feature.
* IMPROVED Security regarding the browser view feature.
* IMPROVED The browser view feature loads faster now and shows in a wider viewport.
* FIXED Gutenberg block not working.
* FIXED Owner signature editor not working sometimes on multisite.

= 2.7.11.2 (2023-06-13) =
* HOT FIX frontend.js not working due to erroneous import statement.

= 2.7.11.1 (2023-06-12) =
* IMPROVED Optimized the page tracking system and cookie to not explode in size.
* FIXED Default contact tab setting not providing a valid tab to show sometimes.
* FIXED Suggested help docs not loading in help screen before ticket flow.
* FIXED 2 Vulnerabilities responsibly disclosed to us by Patchstack.

= 2.7.11 (2023-06-01) =
* ADDED Custom activity is now shown in the contact activity timeline.
* IMPROVED Optimized some reports for better performance.
* TWEAKED Changed redirect HTTP method for tracking links from `301` to `307`.
* FIXED Contacts not shown when clicking the report of who click a specific link.
* FIXED Impressions not recording for forms built with the new Form Builder.
* FIXED Duplicating a step in the funnel returning original step JSON instead of the new step, causing rendering issues.
* FIXED Date format in reporting date picker showing placeholder instead of actual date.

= 2.7.10.3 (2023-05-26) =
* HOT FIX Replacement code for `{auto_login_link}` not working.

= 2.7.10.2 (2023-05-24) =
* FIXED Email logs page causing fatal error.
* FIXED More display issues in funnel reports showing incorrect numbers.

= 2.7.10.1 (2023-05-19) =
* FIXED Tag picker will only make necessary GET requests
* FIXED Display issues in funnel reports showing incorrect numbers.
* FIXED Admin bar widget not working when white labelled.
* FIXED Task due dates showing relative to GMT instead of local time zone.
* FIXED Files not uploading to contact record from admin screen.

= 2.7.10 (2023-05-18) =
* ADDED Task management
 * NEW Tasks tab in contact record.
 * NEW **My Tasks** panel in the Groundhogg admin bar widget
 * NEW Task automation. Create tasks and do automation when tasks are completed in funnels.
* ADDED Default contact tab profile option so the default tab can be set per user.
* IMPROVED Contact quick search in admin bar widget shows more useful information.
* TWEAKED Enhanced security around email logs and potentially sensitive information.
* TWEAKED `{posts}` replacement code now uses the proper `WP_Query` loop syntax.
* FIXED Added missing capability/nonce checks. Thanks to WordFence for practicing responsible disclosure.

= 2.7.9.8 (2023-05-01) =
* HOT FIX Table/API searching for some endpoints not working.
* TWEAKED `get_owners` is now always passed through the `groundhogg/owners` filter.

= 2.7.9.7 (2023-04-28) =
* ADDED Application flow for *Review Your Funnel* series.
* ADDED More search filter registration helper functions.
* ADDED Remote Notifications system to the Toolbar Widget.
* TWEAKED Convert mobile number to e164 format after most contact creation/update opportunities.
* TWEAKED Cached owners also passed through `groundhogg/owners` filter
* FIXED Web Form URLs search and replaced when importing funnels.
* FIXED Phone field not saving in web forms when phone type is not changed at least once.
* FIXED PHP Warnings when submitting web form with a phone field.

= 2.7.9.6 (2023-03-28) =
* TWEAKED Changed "Source Page" to "Signup Page" to make it more obvious.
* TWEAKED Edit Form link shows to admins when looking at a form on the hosted page.
* FIXED Tag picker in form options sometimes not working.
* FIXED Tags not being applied during form submission when more than one tag is selected for a single option.

= 2.7.9.5 (2023-03-24) =
* ADDED New **Log Only** email service which will not send email but just log them.
* TWEAKED Bumped minimum required WordPress version to 5.9.
* FIXED Forms columns CSS not responsive.
* FIXED Translation issues.

= 2.7.9.4 (2023-03-17) =
* ADDED New address line replacement codes
* TWEAKED Added CSS to remove underline in posts grid article headlines in emails.
* FIXED Admin notification step title causing fatal error
* FIXED Potential low risk (admin authentication required) vulnerability, credit to WPScan.com for disclosing safely.
* FIXED Track activity actions now fired from API
* FIXED Mapping to notes not working

= 2.7.9.3 (2023-03-03) =
* ADDED `value` column to the activity table.
* ADDED Opt-in Status replacement code.
* TWEAKED Birthday field will have inputs reordered based on the `date_format` setting.
* TWEAKED Refactored occurrences of "Optin" to "Opt-in."
* TWEAKED Field mapping API is now better visually organized.
* TWEAKED Optimized table queries to utilize the `FOUND_ROWS()` MySQL function instead of `COUNT()`.
* TWEAKED Optimized `DB::get_sql()` method to parse queries.
* TWEAKED `DB` class support for `WP_Meta_Query`.
* TWEAKED Add `?by_user_id=1` to any `gh/v4/contacts/<ID>/` request to fetch contact by the user ID.

= 2.7.9.2 (2023-03-02) =
* ADDED Developer method to clear pending funnel events by step type
* FIXED Potential undefined variable when performing DELETE operations with \Groundhogg\DB::query() method

= 2.7.9.1 (2023-02-22) =
* ADDED `maybeFetchItem` method for JS object stores.
* TWEAKED License notice
* TWEAKED Some admin CSS
* UPDATED language POT file

= 2.7.9 (2023-02-20) =
* ADDED New categories UI optimization for funnel steps for easier funnel building.
* ADDED Standardized method for generating step names.
* ADDED Tool in logs management to purge old activity logs.
* ADDED Event type filter in delete event logs management tool.
* ADDED Custom Email, Phone Number, and Hidden field types to new form builder.
* ADDED URL, Email, and Phone Number custom field types.
* TWEAKED Most standard funnel steps now have generated step names.
* TWEAKED Will double check CA and US origin when validating mobile numbers before giving up.
* FIXED Field mapping to date & time custom fields not working.

= 2.7.8.5 (2023-02-01) =
* ADDED Logs management screen and tools for debugging and cleaning up logs.
* TWEAKED Moved recaptcha settings to the integrations tab.
* FIXED API and Licenses tab not showing after last update.

= 2.7.8.4 (2023-01-27) =
* ADDED `plain` posts layout option for plain text version compatibility.
* ADDED Integrations tab in settings area for more obvious place to put integration settings.
* TWEAKED Exporting contacts is now faster and more resource efficient.
* TWEAKED Cache contact owner IDs in an option so that users are not queried every page load.
* FIXED Missing text domain for some strings in preferences center.

= 2.7.8.3 (2023-01-19) =
* HOT FIX Absolute URLs not working in form redirect.
* FIXED Form submission dates not showing correctly in activity feed.

= 2.7.8.2 (2023-01-18) =
* TWEAKED Enabling safe mode will check for a 200 OK, otherwise will revert.
* FIXED Fatal error when previewing email and no contact record available.
* FIXED Logged in user tracking not used if user precedence is disabled and no contact tracking is available.
* FIXED New forms not working in Elementor popups.
* FIXED New forms not setting tracking cookie after submission.
* FIXED Deprecation notices when registering elementor widgets.

= 2.7.8.1 (2023-01-12) =
* IMPROVED SMS Broadcast reports now provide meaningful information.
* HOT FIX Multiselect dropdowns not working in new form builder.
* FIXED If page tracking nonce is invalid request a new nonce via API.
* FIXED Not redirect to thank you page when only url path is provided.

= 2.7.8 (2023-01-09) =
* ADDED More developer hooks in the event queue.
* ADDED **Contact ID** and **User ID** filters.
* TWEAKED Events moved from queue table to history in one big batch instead of many smaller batches.
* TWEAKED When downloading files from admin pages use `/wp-admin/` link instead of `/gh/`.
* TWEAKED Built-in wp-cron will only process the event queue as a fail safe, and will not execute if the event queue has already run.
* FIXED Non-required fields giving invalid data error when empty value provided.
* FIXED Transactional broadcasts not being sent to all deliverable contacts.
* FIXED Contact column screen options missing when white labeled.

= 2.7.7.9 (2022-12-16) =
* ADDED Misc interface setting to enable custom step titles for all step types.
* ADDED Developer hook to filter the template library URL.
* FIXED Recent Thrive Suite update dequeuing and unregistering select2 scripts. Very naughty of them.

= 2.7.7.8 (2022-12-12) =
* FIXED Delay Timer setting time to 12:00 AM if weekday or weekend is selected and timer is enqueue on the opposite.

= 2.7.7.7 (2022-12-12) =
* ADDED Tool to restore pending events if events were deleted.
* HOT FIX Fixed archiving funnel cancelling all active events.

= 2.7.7.6 (2022-12-12) =
* HOT FIX Update method cancelling events...

= 2.7.7.5 (2022-12-12) =
* ADDED The `within` parameter to the posts replacement to limit posts to a given date range.
* ADDED Setting to select default middle tab in the contact record in MISC Interface settings.
* TWEAKED Optimized broadcast scheduling by batch inserting events with a single query rather than doing multiple insert queries.
* TWEAKED Legacy steps are now hidden from the funnel editor (when adding) unless enabled in the interface settings.
* FIXED Events not displaying correct "today/yesterday/tomorrow" in contact activity timeline.
* FIXED Translations for some form fields in the v2 form not available.
* FIXED Restore, Archive, and Delete actions for funnels not using correct class methods.

= 2.7.7.4 (2022-12-07) =
* ADDED Format support for `{meta}` replacements.
* ADDED Posts related replacement codes to show lists or grids of posts, post titles, and more in emails.
* TWEAKED Make `split_name` function compatible with arrays.
* FIXED Inserting replacement code into text field not triggering input/change event.
* FIXED If the email address of a contact is changed then the uploads folder of that contact will be renamed accordingly.
* FIXED Targeting specific day of next month in delay timer actually scheduling for the same day of month next year.

= 2.7.7.3 (2022-11-14) =
* ADDED compatibility check for dokan lite to dequeue conflict scripts on the reports dashboard.
* TWEAKED Ignore license checks and notices for inactive addons.
* TWEAKED Improved select2 usability
* FIXED Fatal error caused by invalid numeric value when displaying number custom fields.
* FIXED Fatal error using stdClass instead of array in new form builder when rendering.

= 2.7.7.2 (2022-11-11) =
* TWEAKED Change js file handles to avoid ChartJS conflict.
* TWEAKED Number custom fields will show as a formatted number when used as a replacement.
* FIXED DB errors when importing funnels.
* FIXED License checker script not updating license status correctly.

= 2.7.7.1 (2022-11-04) =
* TWEAKED combined frontend JS files.
* FIXED Recaptcha v3 issues with new form builder.
* FIXED Fatal error when previewing emails while not being logged in.

= 2.7.7 (2022-09-29) =
* ADDED New form visual drag and drop builder!
* ADDED Upgrade path from the old form builder to the new one.
* ADDED HollerBox installer to guided setup.
* ADDED Full screen toggle for the funnel editor
* UPDATED New icons for funnel steps!
* TWEAKED Update the Gutenberg block to also be compatible with the new form builder.
* TWEAKED Benchmarks will no longer process instantly when they are completed unless explicitly defined that they should.
* FIXED Select2 defaulting to first option instead of showing placeholder text.

= 2.7.6.3 (2022-09-29) =
* TWEAKED Moved enqueue next action logic from `Event_Queue::process()` to `Step::run_after()`
* TWEAKED Do not do an UPDATE query to skip enqueued steps if the `Step::enqueue()` method from `Step::run_after()`
* TWEAKED Add a check for `Limits::limits_exceeded()` in inner foreach loop in the event queue.

= 2.7.6.2 (2022-09-29) =
* FIXED Use `INSERT IGNORE` for object/tag relationships to avoid duplicate key errors.

= 2.7.6.1 (2022-09-29) =
* ADDED LocalDateTime custom field type
* TWEAKED Use while loop for event queue processing instead of recursive function to avoid memory issues.
* TWEAKED Store local active/inactive stats at step level to avoid having to look at the parent funnel status.
* FIXED HTML in funnel step names showing in breakdown chart columns.
* FIXED `process_events()` function removes contact ID filter after processing.

= 2.7.6 (2022-09-28) =
* IMPROVED Delay Timer has more advanced settings enabling delays based on day of week, day of month, and waiting for specific months.
* TWEAKED Some step types will have their step titles generated from the settings (e.g. the delay timer) if the site language is english.
* TWEAKED Time diff in activity timeline shows site date format
* TWEAKED Further reduce the number of select queries run during the event queue process, there are now zero ID based `SELECT * FROM` queries *for events* during the event queue processing.
* FIXED Before/After query vars not working in `Contact_Query` class

= 2.7.5.2 (2022-09-26) =
* TWEAKED `process_events()` function will call the `Event_Queue::run_queue()` function directly instead of using `do_action()`
* TWEAKED The `Event_Store` will now only select necessary columns from the `wp_gh_event_queue` table.
* TWEAKED Switched to new telemetry method.
* TWEAKED Updated cron action names to `groundhogg/<action>` for easier identification.
* FIXED The run again/uncancel actions for events were not working.
* FIXED Email log modal content showing under table when should be hidden.
* FIXED MySQL errors related to funnel reports with no set conversion benchmark.
* FIXED Tag Pickers in Funnel Editor show `Please select one` placeholder as a selected tag.

= 2.7.5.1 (2022-09-23) =
* FIXED Funnels report showing incorrect open/click rates
* FIXED Funnels report not showing in any particular order
* FIXED Unmarketable filter not working if email confirmation is required
* FIXED Email Link Clicked filter showing results for opens instead of clicks
* FIXED Broadcast received filter not showing correct context if coming from reports page

= 2.7.5 (2022-09-23) =
* IMPROVED Reports dashboard gets a facelift
 * New styles make viewing your reports more enjoyable.
 * Quick stat numbers are clickable and show relevant contacts with correct search filters.
 * Funnels tab shows list of all active funnels and their results. Click into each individual report to see expanded results.
 * Show number of conversions instead of abandonment rate in the funnel report.
 * Broadcasts page shows list of broadcasts sent within the given time range, and their results, ordered by date sent. Click into each individual report to see expanded results.
* TWEAKED Optimized the Sync Users bulk job to handle larger datasets of 100K plus users.
* TWEAKED Show a prompt to schedule a broadcast in the reports and there are no sent broadcasts.
* TWEAKED Show a prompt to launch a funnel in the reports and there are no active funnels.

= 2.7.4.3 (2022-09-20) =
* TWEAKED Optimized the contact import tool to import more contacts at a time.
* TWEAKED Optimized the event queue by removing excessive queries on the queue table.
* FIXED Potential event queue bug causing events to be executed twice, and executed events to left out of reports during parallel queue processing.
* FIXED Contact import process taking a long time when importing mobile phone number with the twilio addon installed.
* FIXED Consent cookie value not saving in settings.
* FIXED Bulk edit not updating all contacts when updating only optin_status or owner_id
* FIXED Filters not showing after returning from bulk edit tool and no exclude filters defined

= 2.7.4.2 (2022-09-19) =
* FIXED Unable to add form fields to form builder.
* FIXED Insert at cursor replacements widget moving cursor to end of content in input fields.

= 2.7.4.1 (2022-09-18) =
* ADDED Presto Player integration download ID for supporting remote download and install
* FIXED From address dropdown not showing Contact Owner as selection after page refresh

= 2.7.4 (2022-09-14) =
* ADDED Setting to explicitly select 1 or more benchmarks to track as a conversion.
* ADDED Setting to enable entering a funnel at an inner benchmark.
* TWEAKED CSS for funnel step duplicate & delete actions
* FIXED Potential for emails to be sent to undeliverable addresses.

= 2.7.3.1 (2022-09-13) =
* HOT FIX Disable auto slug search and replace for link click benchmark.

= 2.7.3 (2022-09-13) =
* ADDED There is now a *Start From Scratch* button on the add funnel screen
* ADDED Insert replacement code shortcut `CTRL + Shift + {`
* IMPROVED When importing funnel templates...
 * Steps with *skip to* functionally will correctly import their desired behaviour relative to other steps.
  * Loop action
  * Field Timer, Date Timer, & Advanced Timer
  * Any step with Conditional Logic enabled
 * *Link Click* benchmark links in email content will be correctly updated to the new step's link
 * JSON data is now based on the v4 API response
 * Legacy funnel templates will still be supported for importing
* TWEAKED The funnel library will now only show templates for which the necessary step types are actively registered
* TWEAKED Forms & Link Click benchmarks will now show use a pretty slug when embedding. Old URLs will still work fine!
* TWEAKED show 404 errors on the managed page for non-existent resources
* TWEAKED When sending an email template to a contact manually, process the event right away and report event failures
* TWEAKED Disable the WordPress emoji to image conversion feature while sending/editing emails
* FIXED Email log preview UI is now readable
* FIXED Email editor toolbar fixed to low when scrolling in the modal

= 2.7.2.1 (2022-09-09) =
* TWEAKED Some CSS issues in the funnel builder
* TWEAKED Form CSS uses grid and flexbox for improved mobile responsiveness
* TWEAKED Custom meta filter has better handling for missing or empty meta keys when the compares selection is a negative

= 2.7.2 (2022-09-08) =
* ADDED The **default FROM address** is now an option when selecting email FROM address in the email editor.
* IMPROVED The **Apply Note** action now has a rich text editor in the funnel
* IMPROVED **Admin Notification** action now has a rich text editor, emails are sent in HTML format.
* TWEAKED Cleaned up the Admin Notification action UI, removed the FROM address setting in favor of always using the default.
* TWEAKED Clarified settings sections in the MISC tab
* FIXED Potential 401 error while bulk editing contacts
* FIXED Potential DB error when scheduling a new broadcast
* FIXED CSS issues with modals and modal headers

= 2.7.1.1 (2022-09-05) =
* HOT FIX `__serialize` & `__unserialize` functions in `Base_Object` acting up with typed params

= 2.7.1 (2022-09-05) =
* HOT FIX Missing dependency causing JS issue in modal

= 2.7 (2022-09-05) =
* IMPROVED Funnel UI receives a new coat of paint!
 * Updated colors to match new contact UI
 * More visually appealing layout
 * Textual helpers in the step flow to make the functionality clearer
 * Drag and drop steps into the flow
 * Warnings and errors are shown more clearly
 * Think of this as a sort of 3.0 preview
* ADDED New developer class, the `Activity_Benchmark` class gives a simple way to hook into the contact activity tracking system.
* ADDED New `Custom Field` button to the form builder that enabled the easy embedding of custom fields from contact records in forms.
* TWEAKED Admin styles for several components to improve the user experience.
* TWEAKED Benchmark that are completed and sequential actions will processed synchronously for the current contact.
* FIXED Individually purchased support licenses not being accepted in the troubleshooter license verification.

= 2.6.3.10 (2022-08-10) =
* FIXED "Does not start with/Does not end with" comparisons not working in search filters
* FIXED Future date range comparison not setting minimum date bound in search filters

= 2.6.3.9 (2022-08-09) =
* TWEAKED Add as file mapping for form integrations now supports array of multiple files
* TWEAKED Add as file mapping will support absolute path to file or url of file
* TWEAKED Add as file mapping will only allow copying of files from the same server

= 2.6.3.8 (2022-08-03) =
* TWEAKED If there are more than 3 custom tabs in the contact record, tabs can be shown via a dropdown dialog to clean up the UI.
* UPDATED Translation files with new strings.
* FIXED Fatal error in AWS integration when pulling up identity verification details
* FIXED From email address filter will replace invalid from email addresses with the default

= 2.6.3.7 (2022-07-26) =
* ADDED Data filters for the email logger
* TWEAKED Events log table will now default ASC order for waiting events, and DESC for completed and otherwise.
* TWEAKED Simplified some event queue login and queries
* FIXED Multiple PHP Warnings
* FIXED Email log date filter fields in wrong order for BETWEEN clause.

= 2.6.3.6 (2022-07-15) =
* TWEAKED Use white labeled name for form Blocks
* TWEAKED Use white labeled name for user profile settings

= 2.6.3.5 (2022-06-28) =
* TWEAKED Added 'event' and 'event_queue_item' as non persistent cache groups
* TWEAKED Return to list of edited contacts after completed bulk edit
* FIXED Webhook mapping not saving after exiting the email edit modal without saving
* FIXED Location fields in bulk edit not saving

= 2.6.3.4 (2022-06-23) =
* FIXED Funnel history contact search filter not working
* FIXED Zip Code filter not working

= 2.6.3.3 (2022-06-23) =
* ADDED "Unsubscribed" activity filter
* FIXED Autocomplete not working on Safari
* FIXED "Email Confirmed" filter not working
* FIXED "Greater than or Equal to" comparator not working

= 2.6.3.2 (2022-06-22) =
* FIXED recaptcha v3 causing forms to submit to success page when they are set to ajax.

= 2.6.3.1 (2022-05-18) =
* TWEAKED Combined several tools pages into one to make the interface less confusing.
 * Moved user sync to the Misc tab
 * Removed the create users tool (can be done via a funnel)
 * Removed the delete users tool (can be done from the contact's tab)
 * Combined install and updates and system info tabs
 * Visually updated the tools screen
* TWEAKED Updated the profile audit email with better formatting.
* TWEAKED Special link sent from the preferences screen will not require the tracking cookie to be set for changes to be made.
* FIXED Default contact owner not being used.
* FIXED Un-serialize values in custom reports.

= 2.6.3 (2022-05-11) =
* ADDED New custom reports feature! Build a custom dashboard that gives you the stats you need.
* FIXED Mapping to tags not working for Ninja Forms.

= 2.6.2.11 (2022-05-10) =
* FIXED Email duplication not carrying over meta data
* FIXED Added error handling to delay timer when using timezones

= 2.6.2.10 (2022-05-05) =
* ADDED New `{local_date}` which will display the given date based on the local time of the contact
* IMPROVED the web form usability on the managed page.
* FIXED Some legacy WordPress systems unable to download files on NGINX
* FIXED Saved Searched picker not filtering in broadcast scheduler
* FIXED Contact's displayed address different from supplied address

= 2.6.2.9 (2022-04-18) =
* FIXED Values in array format not mapping to tags during field mapping

= 2.6.2.8 (2022-04-14) =
* TWEAKED Return WP_Error from Event::run() if event is not waiting or has no claim as a failsafe instead of returning false which might allow proceeding funnel events to run out of turn.
* TWEAKED Added additional failsafe checks to event claim process to prevent claiming events out of turn.

= 2.6.2.7 (2022-04-04) =
* TWEAKED Added some CSS polish to some of the admin areas, such as the licenses settings page and the templates pages for funnels and emails
* TWEAKED Made it possible to enqueue scripts on the contact edit page to enable integrations to add items to the activity timeline

= 2.6.2.6 (2022-04-01) =
* FIXED Passing an empty string to the add_tag method would apply the most recently created tag
* FIXED download_file capability conflict with woocommerce

= 2.6.2.5 (2022-03-26) =
* FIXED Missing view_emails cap for admins

= 2.6.2.4 (2022-03-25) =
* ADDED Composed & 1-off emails now show in the activity timeline
* ADDED "Today" date filter for search filters
* TWEAKED Gave the welcome screen a visual refresh and updated remaining img assets with new logo
* TWEAKED Changed file rewrite path from `/uploads/` to `/files/`
* TWEAKED Add view permissions for funnels, emails, events, and activity to Sales Reps and Managers so they can view the activity timeline
* FIXED Contact file uploads & downloads for Sales Reps and Sales Managers
* FIXED Some custom field search filters showing corrupted when they are actually fine
* FIXED Multiple UI issues for Sales Managers and Sales Reps
* FIXED Notes widget loading in ALL notes instead of object notes
* FIXED Mapping array values from form integrations to comma seperated strings

= 2.6.2.3 (2022-03-11) =
* ADDED New logos and brand assets!
* ADDED (Again) Send an email template from the contact record.
* TWEAKED track activity when composed email is sent. Will show in activity timeline in a future update.
* FIXED Ticket link in help page links to the ticket portion of the troubleshooter.

= 2.6.2.2 (2022-03-09) =
* FIXED Fatal error if not contact record linked to the logged in admin.
* FIXED Ghost custom fields causing custom field editor to not load
* FIXED DB error caused by missing field name in the page-visits table.
* FIXED PHP notice caused by missing array index.

= 2.6.2.1 (2022-03-07) =
* TWEAKED The "skip if confirmed" logic for confirmation emails to handle logic outside of the run process.
* TWEAKED Contact::get_time_zone() will return wp_timezone_string() if no timezone is set.
* TWEAKED When creating a contact, if an owner is logged in the default owner will be be the logged in user instead of the primary owner from the settings.
* TWEAKED When importing a list, do not set the owner to the current user and allow the default fallback to take effect.
* FIXED Changed `blacklist_keys` to `disallowed_keys`.
* FIXED Custom contact table columns will echo a return value if not void.
* FIXED Check for the view_contacts cap before display the Groundhogg admin bar widget.
* FIXED Removed title actions from the help page.
* FIXED Typos in the new troubleshooter.

= 2.6.2 (2022-03-02) =
* ADDED the new Groundhogg troubleshooter! A guided support tool to help users identify and resolve issues quickly.
* ADDED column width option for custom fields for more control over the layout.
* FIXED rare fatal error caused by missing contact resource from when processing event-queue.
* FIXED remote_install not working for some plugins.
* FIXED Conflict between BuddyPress activity meta table and Groundhogg activity meta table.

= 2.6.1.2 (2022-02-23) =
* FIXED Options not saving after sorting in custom fields
* FIXED Fatal error caused by trailing comma in PHP < 7.3

= 2.6.1.1 (2022-02-22) =
* FIXED Custom field saving issue, missing fields and mapping. If your custom fields disappeared after editing them in 2.6, follow [this guide](https://help.groundhogg.io/article/541-custom-fields-disappeared-afgter-updating-to-2-6) to fix it!

= 2.6.1 (2022-02-22) =
* FIXED Display issue for custom fields in the contact table.

= 2.6 (2022-02-22) =
* NEW UI for the contact record
  * Condensed design to fit more on the screen, less scrolling.
  * Custom field management is now FREE and part of Groundhogg core! _If you have created custom fields previously with the Custom Field Management addon you will have to update the addon and the custom fields will be refactored._
  * Additional contact methods including email addresses and phone numbers.
  * Improved tag picker is very user friendly.
  * Activity timeline shows all events and activity in order.
  * Improved file box management.
  * Notes get more space and support media.
  * Edits are saved via the API, no page reloading!
  * Custom tabs are backwards compatible.
 * ADDED Contact merging!
 * ADDED Support for multilingual sites by saving the contact locale and switching to their locale when necessary.
 * ADDED When adding a contact via the admin you can opt them into GDPR requirements.
 * ADDED CRM data reassignment when deleting users that are CRM users.
 * ADDED Option to delete associated contact records when deleting users from the admin.
 * TWEAKED when a form is submitting via AJAX and is in an iframe, the iframe will be resized to show any messages.
 * TWEAKED all jQuery removed from the form ajax submission script.
 * TWEAKED all jQuery removed from the fullframe script.
 * TWEAKED contacts table and record is now mobile responsive for better mobile usability.
 * FIXED Search filters which may have been saved, and then settings get corrupted will show a "corrupted filter" notice instead of crashing, which you'll be able to delete.
 * FIXED fullframe.js conflicting with the forms iframe script causing console errors.
 * FIXED fullframe.js made to be compatible with plugins which optimize iframes.
 * FIXED Replacement code regex will not span multiple lines.
 * FIXED Search issues with custom checkbox fields.
 * REMOVED Company/Business details in favour of adding them to the Companies addon since these fields are usually unused unless the companies addon is installed.

= 2.5.7.9 (2022-01-05) =
* ADDED From address select in the send email widget for contacts
* TWEAKED New Groundhogg themed loading spinner! (Gears if white labeled)
* FIXED Unable to send email from contact record if no contact owner is selected

= 2.5.7.8 (2021-12-30) =
* FIXED "Send in local time" option missing for broadcasts.
* FIXED Time zone mapping not working during bulk edit or importing contacts.

= 2.5.7.7 (2021-12-24) =
* FIXED Reports now showing correct data after switching moment distribution.

= 2.5.7.6 (2021-12-23) =
* FIXED Use WordPress moment.js dist instead of bundled.

= 2.5.7.5 (2021-12-21) =
* ADDED New $_GET `{GET.url_param}` replacement code for frontend usage in `[ghr]` shortcodes and in forms.
* ADDED logs table for debugging. Not hooked up to anything yet but I'm sure it will be useful in the future.
* TWEAKED Adjacent starting benchmarks now count towards the conversion rate of a funnel instead of just the first one.
* TWEAKED Hide the finish link during cron setup for White label installs.

= 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