{"id":24731450,"url":"https://github.com/marcalorri/wp-referrer-tracker","last_synced_at":"2026-04-28T21:06:05.669Z","repository":{"id":342081559,"uuid":"1172451630","full_name":"marcalorri/wp-referrer-tracker","owner":"marcalorri","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-23T13:52:55.000Z","size":79,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T15:34:00.447Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcalorri.png","metadata":{"files":{"readme":"readme.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-04T10:22:33.000Z","updated_at":"2026-04-23T13:52:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/marcalorri/wp-referrer-tracker","commit_stats":null,"previous_names":["marcalorri/wp-referrer-tracker"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/marcalorri/wp-referrer-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcalorri%2Fwp-referrer-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcalorri%2Fwp-referrer-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcalorri%2Fwp-referrer-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcalorri%2Fwp-referrer-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcalorri","download_url":"https://codeload.github.com/marcalorri/wp-referrer-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcalorri%2Fwp-referrer-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32399099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cf7","contact-form-7-integration","wordpress","wordpress-plugin"],"created_at":"2025-01-27T16:49:40.124Z","updated_at":"2026-04-28T21:06:05.663Z","avatar_url":"https://github.com/marcalorri.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"=== ReferrerTracker ===\nContributors: referrertracker\nTags: analytics, tracking, utm, wpforms, contact-form-7\nRequires at least: 5.8\nTested up to: 6.9\nRequires PHP: 7.4\nStable tag: 0.3.3\nLicense: GPLv2 or later\nLicense URI: https://www.gnu.org/licenses/gpl-2.0.html\n\nAdds the ReferrerTracker tracking script to your site and helps populate hidden tracking fields in supported form plugins.\n\n== Description ==\n\nThis plugin loads the ReferrerTracker script in your site head and configures it with your API Key.\n\nIt also includes a small compatibility bridge for WPForms so ReferrerTracker can fill fields when WPForms applies CSS classes to field wrappers instead of the actual input.\n\n== Installation ==\n\n1. Upload the plugin folder to the `/wp-content/plugins/referrertracker/` directory, or install it as a ZIP from WordPress.\n2. Activate the plugin through the 'Plugins' menu in WordPress.\n3. Go to Settings -\u003e ReferrerTracker and set your API Key.\n\n== Configuration ==\n\n1. Navigate to Settings -\u003e ReferrerTracker.\n2. Set:\n   - API Key (required)\n   - Cookie Duration (days) (optional, max 90)\n   - Debug (optional)\n\n== Capturing data in forms ==\n\nReferrerTracker fills fields in this order:\n\n1. By ID (recommended): IDs with the `rt-` prefix (e.g. `rt-source`, `rt-gclid`)\n2. By name: exact names like `rt_source`, `rt_gclid`, etc.\n3. By class: classes like `js-rt-source`, `js-rt-gclid`, etc.\n\nSee the ReferrerTracker docs for the full reference table.\n\n== WPForms ==\n\nWPForms often applies \"Field CSS Class\" on a wrapper element, not the `\u003cinput\u003e`.\nThis plugin includes a bridge that copies `js-rt-*` classes from wrappers to the actual input so ReferrerTracker can fill fields.\n\nSteps:\n\n1. In WPForms, add Hidden Fields for the parameters you want to capture.\n2. For each hidden field, set its CSS Class (Advanced tab) to one of:\n\n- js-rt-source\n- js-rt-medium\n- js-rt-campaign\n- js-rt-content\n- js-rt-term\n- js-rt-referrer\n- js-rt-landing-page\n- js-rt-gclid\n- js-rt-fbclid\n- js-rt-msclkid\n- js-rt-ttclid\n- js-rt-li-fat-id\n- js-rt-twclid\n- js-rt-epik\n- js-rt-rdt-cid\n\n== Contact Form 7 ==\n\nIf you already have hidden fields with ReferrerTracker IDs/names/classes, it should work without additional changes.\n\n== Gravity Forms ==\n\nGravity Forms can populate fields dynamically using a \"Parameter Name\".\n\nThis plugin adds server-side support for Gravity Forms by reading ReferrerTracker cookies and providing them as dynamic values.\n\nSteps:\n\n1. Add Hidden Fields for the parameters you want to capture.\n2. For each hidden field, enable \"Allow field to be populated dynamically\".\n3. Set the \"Parameter Name\" to either:\n\n- `rt_source`, `rt_medium`, `rt_campaign`, `rt_content`, `rt_term`\n- `rt_referrer`, `rt_landing_page`\n- `rt_gclid`, `rt_fbclid`, `rt_msclkid`, `rt_ttclid`, `rt_li_fat_id`, `rt_twclid`, `rt_epik`, `rt_rdt_cid`\n\nOr, alternatively, you can use the ReferrerTracker class-style names and the plugin will map them:\n\n- `js-rt-source`, `js-rt-medium`, `js-rt-campaign`, `js-rt-content`, `js-rt-term`\n- `js-rt-referrer`, `js-rt-landing-page`\n- `js-rt-gclid`, `js-rt-fbclid`, `js-rt-msclkid`, `js-rt-ttclid`, `js-rt-li-fat-id`, `js-rt-twclid`, `js-rt-epik`, `js-rt-rdt-cid`\n\n== Updates (GitHub Releases) ==\n\nThis plugin can be updated from GitHub Releases.\n\nTypical flow:\n\n1. Bump the plugin version in `referrertracker.php`.\n2. Create a GitHub Release with a tag like `v0.1.1`.\n3. The repository GitHub Action will automatically attach a ZIP asset with the correct plugin folder structure.\n\n== Changelog ==\n\n= 0.3.3 =\n* Renamed core script from referrer-tracker.min.js to rt.min.js to reduce ad-blocker false positives.\n\n= 0.3.2 =\n* Scripts: added data-cfasync, data-no-optimize, data-no-minify attributes to prevent caching/optimization plugins from breaking script execution.\n* Scripts: removed unnecessary setTimeout delay from configure() call.\n* Bridge: extended periodic field fill from 5s to 10s for late-rendered forms.\n* Bridge: added underscore-format ID lookup (rt_source) alongside hyphen-format (rt-source) for broader field matching.\n\n= 0.3.1 =\n* Admin: Quick setup section is now collapsible.\n* Admin: removed duplicate \"Settings\" heading.\n* Admin: form field references displayed as clean HTML tables for easy copy-paste.\n* Updated Spanish translations.\n\n= 0.3.0 =\n* Updated core script: localStorage-only, no more cookies.\n* Bridge: removed cookie fallback from storage reader.\n* Config: pass storageExpireDays instead of cookieExpireDays.\n* Admin: renamed \"Cookie Duration\" to \"Storage Duration\".\n* Removed gravityforms.php server-side cookie integration (dead code).\n* Gravity Forms fields are now populated client-side by the bridge like all other form plugins.\n\n= 0.2.1 =\n* Fix bridge to parse new localStorage JSON format with expiry ({v, e}) from updated core script.\n* Fix config key: pass cookieExpireDays (instead of cookieDuration) so the admin setting is respected.\n* Ship updated referrer-tracker.min.js with localStorage-first reads.\n\n= 0.2.0 =\n* Bridge reads localStorage first (then sessionStorage, then cookies) when populating form fields.\n* Fill all supported fields by ID, name, and class from storage on page load, mutations, and before submit.\n* Intercept submit button clicks for AJAX forms.\n\n= 0.1.9 =\n* Improve WPForms compatibility: ensure populated hidden fields are submitted/saved.\n\n= 0.1.8 =\n* Update admin form instructions with full documentation examples.\n* Add Fluent Forms and Ninja Forms instruction tabs.\n\n= 0.1.7 =\n* Improve translation loading and i18n strings.\n\n= 0.1.6 =\n* Security hardening (sanitized cookie reads, safer handling of admin query args).\n* Release ZIP build improvements (exclude hidden files).\n* Update readme headers.\n\n= 0.1.5 =\n* Add i18n support and Spanish (es_ES) translations.\n\n= 0.1.4 =\n* Add tabbed instructions for supported form plugins on the settings page.\n* Automate release ZIP attachment via GitHub Actions.\n\n= 0.1.3 =\n* Add Settings link in plugin list and redirect to settings after activation.\n\n= 0.1.2 =\n* Fix GitHub update package URL to avoid zipball download issues.\n\n= 0.1.1 =\n* Add Gravity Forms server-side dynamic population support via cookies.\n\n= 0.1.0 =\n* Initial release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcalorri%2Fwp-referrer-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcalorri%2Fwp-referrer-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcalorri%2Fwp-referrer-tracker/lists"}