1.4.2 Jun 5, 2026
- Enhancement - Entries Over Time chart now plots a single total line, plus a dashed previous-period line when comparing, with the per-source breakdown shown on hover so source lines no longer overlap and cluster.
- Enhancement - Top Referrers groups entries by host across the Reports tab and email digest, dropping the scheme, leading www., and path so duplicate URLs from one domain combine into a single row with each full URL and its count shown on hover.
- Fix - Entries Over Time tooltip total no longer adds the previous-period value on top of the current-period entry count.
1.4.1 Jun 1, 2026
- Enhancement - "Protect Scripts from Minification" is now "Protect Scripts from Optimization" and also stops caching/optimization plugins from deferring or delaying the tracking scripts.
- Enhancement - Tracking scripts now emit
data-no-defer and auto-register with WP Rocket and LiteSpeed defer/delay exclusion filters, so referral data is no longer lost when "Load JavaScript deferred" or "Delay JavaScript execution" is enabled.
1.4.0 May 21, 2026
- New - Added a Reports tab under Forms → Settings → Referral Tracking with attribution charts for source breakdown, submissions over time, and top UTM source, medium, campaign, and referrers.
- New - Reports tab filters include per-form scope, date-range presets, compare to previous period, and hide unattributed sources.
- New - Added a scheduled weekly or monthly email digest of referral entries with configurable subject, recipients, and a send-test button.
- New - Added the
pb_gforms_rt_invalidate_debounce filter to adjust the Reports cache invalidation debounce window.
- Enhancement - Admin pages moved under Forms → Settings using the Gravity Forms Add-On framework; the standalone page is still reachable at
admin.php?page=pb-gforms-referral-tracking.
- Enhancement - Reports tab now remembers each user's selected date range, compare-period toggle, and hide-unattributed toggle across visits.
- Enhancement - Reports daily-bucket labels follow the site's Date Format setting, and 90- or 365-day ranges bucket by month with thinned-out ticks so the axis stays readable.
- Enhancement - Reports cache invalidation now debounces behind a 60-second transient lock so high-volume submissions don't thrash the cache.
- Enhancement - Multisite uninstall now cleans every subsite, honoring each site's own "Remove Data on Uninstall" preference and clearing per-site cron events.
- Enhancement - Email digest "Recipients" can be left blank to resolve to the site's admin email at send time, so changes to
admin_email flow through automatically.
- Enhancement - Renamed "submission(s)" to "entry/entries" across admin labels, ARIA descriptions, the readme, and the digest email body to match Gravity Forms terminology.
- Enhancement - Raised minimum WordPress version to 6.5 and stopped emitting the WP 6.7+ early-textdomain notice on plugin load.
- Enhancement - Custom Sources settings table now fits the admin column at narrower viewport widths, with horizontal scroll as a fallback on very small screens.
- Fix - Tracking values now populate Gravity Forms hidden fields on sites using WP Rocket "Delay JavaScript Execution" (or other lazy-loaders) that ran the tracker script before its inline configuration snippet.
1.3.0 May 6, 2026
- New - Added an "Add mirror fields" button in Form Settings → Form Options that creates editor-visible Hidden fields, copying captured tracking values into the entry so third-party mapping plugins can pick them from their normal field dropdowns.
- New - Added an "Add missing mirror fields" button that restores only the manually deleted ones and leaves surviving fields' IDs untouched, so saved third-party mappings keep working.
- New - Added a "Remove duplicate mirror fields" button that cleans up accidental editor duplicates in one click.
- New - Added a "Remove mirror fields" button with a confirmation dialog warning that downstream field-ID mappings will lose visibility into past values.
- New - Added the
pb_gforms_referral_tracking_mirror_field_definitions filter for customizing mirror field labels and CSS classes from add-ons.
- Enhancement - Submission sync now writes to every duplicate mirror field so downstream mappings stay populated until duplicates are cleaned up.
- Enhancement - Front-end CSS hides
pb-ref-mirror-* field wrappers so mirror fields do not affect form layout.
- Security - Mirror field add, remove, and dedupe handlers now require an active license plus capability and nonce checks before mutating form fields.
- Fix - Mirror field save failures surface as an error notice instead of a misleading success message that under-reports the result.
- Fix - "Learn more in the documentation" link on the Custom Sources settings page now points to the plugin's documentation page instead of a generic landing page.
1.2.8 - Apr 29, 2026
- New - Added an optional consent gate (off by default) that holds first-touch attribution data in sessionStorage until consent is granted via window event, callback, or flag.
- Enhancement - Tracking cookies now use SameSite=Lax, Secure on HTTPS, and explicit Path.
- Enhancement - Brewhouse licensing/updater updated to 1.4.1 with clearer messaging when the plugin is locked.
- Enhancement - Field injection suspension during migrations and uninstall uses a scoped helper so other plugins'
gform_form_post_get_meta callbacks are no longer dropped.
- Security - Licensing and settings POST handlers require
manage_options; General tab save verifies capability before nonce checks so unauthorized requests cannot probe POST data.
- Fix - Custom source labels and match values no longer lose intentional backslashes from double sanitization.
- Fix - Session-only admin cleanup removes legacy tracking cookies using the configured cookie path.
1.2.7 - Apr 1, 2026
- Fix - Multisite network mode now performs periodic checks only on the main site and syncs shared network status metadata.
- Fix - Entry/export column registration now uses canonical
pb_ref_* keys only, preventing duplicate "Referral Tracker" columns after upgrading from legacy versions.
- Fix - Added one-time export migration to convert saved legacy numeric entry-grid columns to canonical
pb_ref_* keys and remove duplicates.
- Fix - Added one-time historical backfill for
wp_gf_entry_meta so missing/empty pb_ref_* rows are populated from legacy numeric tracking field values.
- Enhancement - Licensing integrity checks now keep runtime behavior aligned with the current license entitlement.
- Enhancement - Sites that were activated before a license expired keep working until the next scheduled revalidation rather than going offline immediately.
- Enhancement - Added throttled, scheduled license revalidation with a grace-window fallback for temporary API failures.
- Enhancement - License notices now distinguish blocked states such as revoked keys and activation-limit failures.
- Enhancement - Added a "Check License Now" action plus diagnostics for last check result, site usage count, and Brewhouse version.
- Enhancement - "Enable referral source tracking on all forms by default" now defaults to OFF on fresh installs and when no prior default is saved.
1.2.6 - Mar 12, 2026
- Fix - Historical Google Ads GCLID migration now retries safely and no longer marks migration complete when the SQL copy fails.
- Fix - Submission fallback now guarantees
Source and Referrer default values even when tracking hidden inputs are missing from POST.
- Fix - Entry edit restore safety-net now logs failures when a tracking field cannot be restored.
- Enhancement - Front-end tracking now falls back to
sessionStorage when cookies are unavailable or blocked.
- Enhancement - Admin users with
manage_options now use session-only tracking persistence for easier QA testing.
- Enhancement - One-time admin cleanup now clears legacy
pb-ref-tracking-* storage immediately after upgrade in session-only mode.
1.2.5 - Mar 2, 2026
- New - Added a "Protect Scripts from Minification" option under Advanced settings that tags tracking scripts with attributes recognized by WP Rocket, LiteSpeed Cache, SG Optimizer, Autoptimize, and Cloudflare Rocket Loader.
- New - Settings page now lists the tracking JS file paths for manual exclusion in caching plugins.
- Enhancement - "Enable by Default" setting is now a checkbox with clearer guidance on all-forms behavior and per-form overrides.
1.2.4 - Feb 28, 2026
- New - Added a "Remove Data on Uninstall" option under Data & Privacy settings, unchecked by default so plugin data is preserved unless the user explicitly opts in before deleting.
- Fix - Uninstall now suspends
gform_form_post_get_meta before reading forms, preventing tracking fields from being permanently saved into form metadata during cleanup.
- Fix - Added a one-time migration that removes orphaned tracking fields accidentally saved into form metadata by earlier plugin versions.
- Enhancement - Consolidated hook-suspension logic into a single reusable helper for safer form metadata operations.
1.2.3 - Feb 27, 2026
- Fix - Editing an entry in the admin no longer wipes tracking values or other form fields, because tracking fields are now excluded from the entry edit screen.
- Fix - Added a
gform_after_update_entry safety net that restores any tracking values cleared during an entry edit.
- Enhancement - Tracking fields now use
GF_Field_Hidden instead of CSS-hidden text fields, reducing interference with third-party plugins.
1.2.2 - Feb 27, 2026
- Fix - Tracking field IDs are now rebuilt with canonical safe IDs on every render, preventing ID collisions with real form fields (email, phone, zip, etc.).
- Fix - Front-end field population restricted to plugin-owned inputs in the
218523x namespace to prevent values from being injected into unrelated fields.
- Fix - Google Ads Tracker migration now suspends
gform_form_post_get_meta so dynamically-injected fields are never saved into permanent form records.
- Fix - Entry list tracking columns now reject IDs outside the plugin namespace, preventing tracking data from replacing real field values in the Entries table.
- Fix - Tracking entry meta is no longer written for forms where tracking is disabled.
1.2.1 - Feb 24, 2026
- New - Added a Click ID tracking field and
{pb_ref_clid} merge tag that capture the first detected click ID (gclid, fbclid, msclkid, etc.).
- Fix - Paid ad clicks now always force a full attribution update, even when a first-touch cookie already exists.
- Fix - UTM fields not present in a new paid visit are now cleared so stale values from a previous session cannot bleed through.
1.2.0 - Feb 20, 2026
- New - Added Custom Sources with label, match field, match type, match value, and priority ordering.
- New - Added an Append Organic/Ads Labels setting for custom source labels.
- New - Added tracking fields as selectable columns in the Gravity Forms entry list.
- New - Added the
pb_gforms_referral_tracking_loaded action for add-on bootstrapping.
- New - Added the
pb_gforms_referral_tracking_custom_sources filter for programmatic custom source rules.
- Fix - Constant Contact, Salesforce, and HubSpot click IDs are now correctly identified.
- Fix - Facebook
fbclid alone is no longer classified as paid traffic.
- Fix - Tracking JS no longer initializes twice on multi-page forms.
- Fix - Click ID cookie now stores only the first detected ID.
- Fix - DuckDuckGo and Yandex organic traffic is now correctly labeled.
- Fix - All plugin options are properly removed on uninstall.
- Fix - Tracking assets are no longer enqueued when Gravity Forms is not active.
1.1.5 - Feb 19, 2026
- i18n - Refreshed all translations and added Filipino, Bengali (Bangladesh), and Urdu (Pakistan) locales.
1.1.4 - Dec 12, 2025
- New - Added merge tags for every tracking field (source, referrer, UTM parameters, click ID), available in notifications, confirmations, and feeds.
- Enhancement - Merge tags only appear in the tag picker when tracking is enabled for the form.
- Enhancement - Activating this plugin alongside the standalone Google Ads-only Gravity Forms tracker now deactivates the older plugin, migrates relevant settings, and shows an admin notice.
1.1.3 - Nov 15, 2025
- Fix - Legacy
pb_gf_* markup IDs and Brewhouse hook prefixes no longer conflict with other plugins that share similar names.
- Enhancement - Brewhouse licensing/updater updated to 1.3.2.
- Enhancement - Multisite activation now activates subsites in chunks with progress feedback rather than blocking on a single long request.
1.1.2 - Nov 14, 2025
- Fix - License key and status are cleared locally when remote deactivation fails, so a new key can be entered immediately.
- Enhancement - Brewhouse updated to 1.2.0 with per-plugin namespacing to avoid cross-plugin collisions.
1.1.1 - Nov 12, 2025
- i18n - Refreshed all bundled translation files against the latest source strings.
1.1.0 - Nov 10, 2025
- New - Added Network-mode deactivation with AJAX progress feedback and automatic subsite license cleanup.
- New - Added leave-page warnings during multisite license operations to prevent half-finished deactivations.
- Enhancement - Search traffic detection now recognizes DuckDuckGo and Yandex.
1.0.6 - Nov 7, 2025
- Enhancement - Brewhouse updater/licensing updated to 1.1.1.
- Enhancement - Licensing notices use plugin-specific markup so they stay visible when default admin notices are hidden.
- Enhancement - Network Mode turns off automatically when the license is not Unlimited, avoiding multisite conflicts.
1.0.5 - Nov 7, 2025
- New - Added Network Mode for unlimited licenses, with chunked subsite activation and progress feedback.
- Enhancement - Tracking is enabled immediately after activation without requiring a settings save.
- Fix - Brewhouse licensing/updater loads safely during activation, preventing conflicts with other plugins.
1.0.4 - Nov 6, 2025
- New - Added a GPL v3 license file.
- Enhancement - Tracking and submission features remain active without an active license; only the settings UI is gated.
- Enhancement - Network activation now enables tracking across all subsites automatically.
- Enhancement - Single-site activation auto-enables the "Enable by Default" setting.
1.0.3 - Oct 24, 2025
- Fix - Tracking fields no longer appear in the form builder or Site Editor preview.
1.0.2 - Oct 24, 2025
- Fix - Hidden tracking fields no longer add extra height to forms on the frontend.
1.0.1 - Oct 24, 2025
- New - Added AI assistant sources to traffic detection: ChatGPT, Perplexity, Copilot, Claude, Grok, and DeepSeek.
- Enhancement - Gemini traffic is now attributed to Google rather than Unknown.
1.0.0 - Sep 30, 2025