{"id":205090,"date":"2024-10-09T10:55:16","date_gmt":"2024-10-09T10:55:16","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/leadtrackr\/"},"modified":"2026-09-09T09:20:47","modified_gmt":"2026-09-09T09:20:47","slug":"leadtrackr","status":"publish","type":"plugin","link":"https:\/\/ory.wordpress.org\/plugins\/leadtrackr\/","author":23133933,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.2","stable_tag":"1.1.2","tested":"7.0.5","requires":"6.0","requires_php":"7.0","requires_plugins":null,"header_name":"LeadTrackr","header_author":"LeadTrackr","header_description":"LeadTrackr description","assets_banners_color":"","last_updated":"2026-09-09 09:20:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/leadtrackr.io\/","rating":0,"author_block_rating":0,"active_installs":20,"downloads":1590,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["changelog","description"],"tags":{"1.0.1":{"tag":"1.0.1","author":"leadtrackr","date":"2024-10-09 11:06:20","revision":3165667},"1.0.2":{"tag":"1.0.2","author":"leadtrackr","date":"2025-08-07 14:04:54","revision":3341103},"1.0.3":{"tag":"1.0.3","author":"leadtrackr","date":"2025-08-29 08:40:47","revision":3352480},"1.0.4":{"tag":"1.0.4","author":"leadtrackr","date":"2025-09-04 07:45:34","revision":3355854},"1.0.5":{"tag":"1.0.5","author":"leadtrackr","date":"2025-12-03 16:13:32","revision":3409824},"1.0.6":{"tag":"1.0.6","author":"leadtrackr","date":"2026-01-12 15:56:28","revision":3437903},"1.0.7":{"tag":"1.0.7","author":"leadtrackr","date":"2026-01-18 12:34:23","revision":3441895},"1.1.0":{"tag":"1.1.0","author":"leadtrackr","date":"2026-08-26 08:26:00","revision":3666520},"1.1.1":{"tag":"1.1.1","author":"leadtrackr","date":"2026-08-26 08:35:23","revision":3666543},"1.1.2":{"tag":"1.1.2","author":"leadtrackr","date":"2026-09-09 09:20:47","revision":3687993}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3165679,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3165679,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3165679,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.1.0","1.1.1","1.1.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[],"plugin_category":[],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-205090","plugin","type-plugin","status-publish","hentry","plugin_committers-leadtrackr"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/leadtrackr\/assets\/icon.svg?rev=3165679","icon":"https:\/\/ps.w.org\/leadtrackr\/assets\/icon.svg?rev=3165679","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=changelog-->\n<h3>1.1.2<\/h3>\n\n<p><strong>A failure inside the plugin can no longer break a form.<\/strong> Everything that runs inside a visitor's request \u2014 the six form integrations and the frontend scripts \u2014 is now wrapped so that whatever it throws is written to the error log and stops there. Tracking is worth less than the submission it observes: if LeadTrackr cannot record a lead, the visitor still sees their form go through.<\/p>\n\n<p>Fixed:<\/p>\n\n<ul>\n<li>Sites configured by an earlier version could hold an empty value where a list of forms was expected. On PHP 8 that ended the request with a fatal error, so the form returned a 500 to the visitor and the lead was lost along with it. Stored form settings are now read as a list whatever the option holds, and rows that are not usable form records are skipped rather than deciding whether the form works.<\/li>\n<li>The plugin's own settings page failed to load on those same sites, which left the configuration unreachable exactly when it needed correcting.<\/li>\n<li>Saving the settings with the Project ID field empty overwrote a working project ID with nothing. Every lead on the site stopped from that moment, while the form kept submitting and the page still said saved. That save is now refused, and the API keeps what it has if a project ID arrives empty anyway.<\/li>\n<\/ul>\n\n<h3>1.1.0<\/h3>\n\n<p><strong>Channel Flow no longer needs Google Tag Manager.<\/strong> The plugin records the visitor's journey itself, so a site without GTM gets a channel path too. One entry per session rather than per pageview, using the same definition GA4 uses: a new session after 30 minutes of inactivity, or when a new campaign brings the visitor in. Enabled by default on new installations and left off on sites that update, so nothing changes under an existing site's feet.<\/p>\n\n<p><strong>The LeadBot can be switched on from the plugin.<\/strong> A contact launcher for message, phone and WhatsApp, with settings for who is talking, which channels appear and how it looks. Nothing is requested from the CDN unless it is switched on.<\/p>\n\n<p><strong>Leads carry more context.<\/strong> The landing page of each session, the page the conversion happened on, and the Google Consent Mode state at that moment. Consent is recorded only \u2014 the plugin never blocks on it; that stays the CMP's job.<\/p>\n\n<p><strong>Optional API token for server-side delivery.<\/strong> With a token, leads are sent server-side, which adds the visitor's IP address and user agent. Sites that update keep working without one.<\/p>\n\n<p>Fixed:<\/p>\n\n<ul>\n<li>Country domains of search engines were recorded as referrals instead of organic traffic, so a visitor arriving through google.nl showed up as <code>www.google.nl \/ referral<\/code>.<\/li>\n<li>Composite name fields were stored as a single value. Fluent Forms and WPForms submit first and last name as one object, which ended up in the first name field in one piece.<\/li>\n<li>Fields were matched in form order, so a company name appearing before the first name claimed that slot and the real first name was never stored.<\/li>\n<li>Campaigns using auto-tagging without UTM parameters are now attributed through the click ID in the URL.<\/li>\n<li>The Elementor form scan loaded every page builder blob on the site into memory, which could exhaust the memory limit on large sites.<\/li>\n<li>The settings page could not be saved on sites without pretty permalinks.<\/li>\n<li>Leads are no longer sent when no project ID is configured, and a failed delivery is logged instead of disappearing silently.<\/li>\n<li>Divi's tab was always available, even when Divi was not installed.<\/li>\n<\/ul>\n\n<!--section=description-->\n<h3>Use of Third-Party Service<\/h3>\n\n<p>This plugin relies on a third-party service provided by the plugin developer (LeadTrackr) to process and send form submissions. Specifically, form submissions are sent to the LeadTrackr API endpoint for the creation of leads.<\/p>\n\n<ul>\n<li>API endpoint: <code>https:\/\/app.leadtrackr.io\/api\/leads\/createLead<\/code><\/li>\n<li>API endpoint when an API token is configured: <code>https:\/\/app.leadtrackr.io\/api\/leads\/createServerSideLead<\/code>. This request also includes the visitor's IP address and user agent.<\/li>\n<li>The service processes lead creation requests using the submitted data.<\/li>\n<li>For more information, please review the <a href=\"https:\/\/leadtrackr.io\/tos\">LeadTrackr Terms of Use<\/a> and <a href=\"https:\/\/leadtrackr.io\/privacy-policy\">Privacy Policy<\/a>.<\/li>\n<\/ul>\n\n<p>By using this plugin, users agree to transmit data to this external service as part of the lead creation functionality.<\/p>\n\n<h3>Remote Script<\/h3>\n\n<p>The optional LeadBot contact launcher is loaded from a third-party CDN, and only when it is switched on in the plugin settings. Sites that leave it off request nothing from this host.<\/p>\n\n<ul>\n<li>Script: <code>https:\/\/cdn.jsdelivr.net\/gh\/leadtrackr\/leadtrackr-leadbot@1\/dist\/lt-leadbot.min.js<\/code><\/li>\n<li>Source code: https:\/\/github.com\/leadtrackr\/leadtrackr-leadbot<\/li>\n<li>Submissions made through the LeadBot are sent to the same LeadTrackr API described above.<\/li>\n<\/ul>\n\n<h3>Cookies<\/h3>\n\n<p>With Channel Flow tracking enabled, the plugin sets two first-party cookies on the visitor's browser:<\/p>\n\n<ul>\n<li><code>lt_channelflow<\/code> \u2014 the visitor's marketing channel path (source, medium, campaign and landing page per session). Contains no personal information and no unique visitor identifier. Expires after 395 days.<\/li>\n<li><code>lt_session<\/code> \u2014 indicates whether the visitor is still within the same browsing session. Contains no visitor information. Expires after 30 minutes of inactivity.<\/li>\n<li><code>lt_consent<\/code> \u2014 the Google Consent Mode state (granted or denied per category) at the visitor's last pageview, so it can be recorded alongside the lead. Only set on sites that run Google Consent Mode, and only when a definite state can be read. Contains no visitor information. Expires after 30 minutes of inactivity.<\/li>\n<\/ul>\n\n<p>Channel Flow tracking is enabled by default on new installations and left disabled on sites that update from an earlier version.<\/p>","raw_excerpt":"Use of Third-Party Service","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/205090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=205090"}],"author":[{"embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/leadtrackr"}],"wp:attachment":[{"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=205090"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=205090"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=205090"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=205090"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=205090"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ory.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=205090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}