Skip to content
Marketing Automation Plugin
PHP JavaScript CSS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
api Added Broadcasts api May 1, 2019
assets go away Jun 18, 2019
blocks Steps are now accessed via more or less the same cache method as cont… Apr 3, 2019
includes add terms & gdpr consent to API Jun 18, 2019
languages rename groundhogg sub-menu-item to "welcome page" Feb 15, 2019
templates new SMS api endpoint Mar 6, 2019
README.txt add terms & gdpr consent to API Jun 18, 2019
groundhogg.php add terms & gdpr consent to API Jun 18, 2019
package.json Moved SMS Broadcasts to the Broadcasts UI for better management. Mar 17, 2019
uninstall.php multisite DB fix Mar 19, 2019
webpack.config.min.js Added gutenberg block for forms Dec 7, 2018


=== Groundhogg ===
Contributors: trainingbusinesspros, groundhogg, dhrumit
Tags: marketing, email, contacts, contact, CRM, marketing automation, email automation, funnels, marketing funnels, marketing campaigns, campaigns, broadcast, contacts, contact management
Donate link:
Requires at least: 4.9
Tested up to: 5.2
Requires PHP: 7.0
Stable tag: trunk
License: GPLv3
License URI:

Say hello to the easiest way to Simplify, Consolidate & Automate your Sales & Marketing in WordPress.

== Description ==

Say hello to the easiest way to Simplify, Consolidate & Automate your Sales & Marketing in WordPress.

Groundhogg provides a suite of digital marketing and sales tools that allow you to create and implement high converting funnels in a matter of minutes. If you're new to marketing, Groundhogg also comes with pre-built funnel and email templates to speed up the process.

Our [extensions library]( will allow you to connect WordPress' most powerful plugins, adding more trigger points and useful interaction tools.

= How Does It Work? =

Groundhogg combines the basics of your run of the mill CRM with a simple yet highly versatile funnel builder.

The funnel builder allows you to use benchmarks and actions in any combination to design the perfect customer journey which brings them from State A to State B. (See the screenshots to see an example of our visual builder)

= Benchmark Triggers Include: =

* When an account is created.
* When a contact's email is confirmed.
* Whenever a form is filled out.
* A page is visited.
* A User's role is changed.
* A tag is applied
* OR if a tag is removed.

= Any of those triggers can launch these Actions: =

* Send an email
* Create an admin notification
* Apply a note
* Apply a tag
* Remove a tag
* Apply a contact Owner
* Wait till a specific date
* Wait for a certain amount of time
* Create a user account
* Edit contact details
* OR send an HTTP POST

With our simple visual editing experience, you can use any combination of the above to create a funnel that will ensure your potential customers are paying customers.

= By Marketers For... None Marketers? =

We understand that not everyone is born with epic writing abilities and that not everyone knows how to put together a killer sales funnel.

So you don't have to, we did it for you! Groundhogg comes with a suite of default funnels with pre-written emails and preset settings so that you don't have to know the "How," just the "What."

If you're struggling with your current CRM or marketing platform, then ditch it. Export your mailing list and import it into Groundhogg and start having more meaningful conversations that creates a bigger impact.

== Screenshots ==
1. The funnel builder in all its glory, Benchmarks show on right.
2. The Funnel builder in reporting mode
3. The funnel builder in all its glory, Actions show on right.
4. Our HTML Email editor
5. Use Superlinks to dynamically send contacts to different places
6. Segment contacts using custom tags
7. Import or export Funnels across multiple sites.
8. Ditch your current CRM and import your list TODAY!
9. Start with awesome funnel templates designed by digital marketers.
10. Pre-written email templates provide inspiration for you next literary masterpiece.

== Installation ==
= Plugin Repo =

* Install
* 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 ==
= Do I need any additional marketing software like mailchimp? =
No, Groundhogg is a completely standalone, lightweight marketing system designed to keep you in the black, even when it comes to your monthly software bill.

= Is there any monthly fee or required upgrade? =
No, you can use Groundhogg for free forever. Groundhogg is a Open Source project designed to democratize email marketing and provide simple easy to use tools to new and none tech savvy business owners.

= Will it connect to Woocommerce or other plugins? =
Yes, you can find our Official [Woocommerce]( extension on our site among other extensions for other popular plugins.

= Is it 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 it GDPR, CANSPAM, and CASL compliant? =
Yes, we have tools available to meet the criteria of all the worlds ANTI-SPAM & privacy legislation.

== Changelog ==

= =
* ADD Terms & GDPR consent to field mapping API.

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

= =
* FIXED Listener for bounce errors when using GHSS not causing PHP notice on PHP < 7.1

* FIXED CSS z-index of select2 in funnel editor caused by previous compatibility resolution.

= =
* FIXED CSS compatibility issue with select2 in the form builder when WPEP is installed.

= =
* TWEAKED Field timer now normalizes any custom meta given to ensure it works as intended.
* FIXED failing security check when submitting forms from the admin screen.
* FIXED form styling in admin screen.

= =
* FIXED NAMSPACE constant not allowed in php 5.6, changed to NAME_SPACE for backwards compatibility.

= =
* ADDED New more self explanatory hook to register API endpoints for extensions.
* ADDED NAMESPACE constant for v3 API.
* FIXED Bug when importing contacts under 400 may exceed max_input_vars setting
* FIXED Missing images in Email Setup Step
* FIXED Oauth domain registration in guided setup giving a missing parameters error.

= =
* FIXED Last name placeholder missing.

= 1.3.11 =
* ADDED All/Any condition to Tag Added & Tag Removed Benchmarks

= 1.3.10 =
* ADDED support for unicode letters in first/last name regex.
* FIXED Admin notification not showing line breaks when sending with plain text emails.

= 1.3.9 =
* TWEAKED Page pickers on settings page are now ajax powered to avoid extraneous get_posts() call.
* TWEAKED tracking links, link click benchmarks, and Superlinks now use re-write rules to perform redirects rather than checking the REQUEST_URI.
* FIXED Loading form integration when Elementor PRO is not installed.

= 1.3.8 =
* FIXED Status toggles inheriting incorrect CSS labels.
* FIXED not adding new emails from Custom Email templates.
* FIXED Report meta query only using source_page as meta key.

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

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

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

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

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

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

= =
* 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()

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

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

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

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

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

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

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

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

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

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

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

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

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

= =
* FIXED Nested function loop causing 500 level error

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

= =
* 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( '' ) ?>
* 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
You can’t perform that action at this time.