{"id":283998,"date":"2026-03-16T20:41:18","date_gmt":"2026-03-16T20:41:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/conversionquality\/"},"modified":"2026-03-16T20:47:45","modified_gmt":"2026-03-16T20:47:45","slug":"conversionquality","status":"publish","type":"plugin","link":"https:\/\/hy.wordpress.org\/plugins\/conversionquality\/","author":23456315,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.2","stable_tag":"2.2.2","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"ConversionQuality","header_author":"ConversionQuality","header_description":"Track form conversions (CF7, Ninja Forms, WPForms, Gravity Forms, Formidable, Elementor Pro, Forminator, Fluent Forms, Avada, Divi, Quform) and rate your lead quality with ConversionQuality.","assets_banners_color":"","last_updated":"2026-03-16 20:47:45","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/conversionquality.com","header_plugin_uri":"https:\/\/conversionquality.com","header_author_uri":"https:\/\/conversionquality.com\/about","rating":0,"author_block_rating":0,"active_installs":0,"downloads":155,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.2":{"tag":"2.2.2","author":"gerardcuenca","date":"2026-03-16 20:47:45"}},"upgrade_notice":{"2.2.2":"<p>Security and WordPress.org compliance fixes. Auto-tracking is now off by default on fresh installs. Existing installations where tracking was already enabled are not affected.<\/p>","2.2.0":"<p>Security fix for Elementor adapter + internal prefix rename for WordPress.org compliance. All settings are migrated automatically. No breaking changes.<\/p>","2.1.2":"<p>WordPress.org coding standards compliance: enqueued scripts\/styles, proper function prefixes, clarified readme description.<\/p>","2.1.1":"<p>Elementor adapter now compatible with PRO Elements (GPL fork). Forms in templates are auto-detected. No breaking changes.<\/p>","2.1.0":"<p>My Conversions tab simplified to read-only activity monitor. Rating is now done via email links or ConversionQuality.com. No breaking changes.<\/p>","2.0.0":"<p>Major release: Now supports 10 form plugins (CF7, Ninja Forms, WPForms, Gravity Forms, Formidable, Elementor Pro, Forminator, Fluent Forms, Avada, Quform). Adds Secret Key for enhanced security. 100% backwards compatible.<\/p>","1.2.1":"<p>Fixes WP Mail SMTP compatibility issue. Recommended for all users with SMTP plugins.<\/p>","1.2.0":"<p>Per-form tracking configuration. Choose which forms to track individually.<\/p>","1.1.0":"<p>New developer hooks and GSheetConnector\/Zapier integration support.<\/p>","1.0.2":"<p>Adds full Contact Form 7 integration with email rating links. Highly recommended for CF7 users.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.2"],"block_files":[],"assets_screenshots":{"screenshot-2.png":{"filename":"screenshot-2.png","revision":3484232,"resolution":"2","location":"plugin"},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3484232,"resolution":"5","location":"plugin"},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3484232,"resolution":"4","location":"plugin"},"screenshot-1.png":{"filename":"screenshot-1.png","revision":3484232,"resolution":"1","location":"plugin"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3484232,"resolution":"3","location":"plugin"}},"screenshots":{"1":"<strong>Settings<\/strong> - Configure your API key, enable auto tracking, test connection, and view help documentation","2":"<strong>My Conversions<\/strong> - Read-only activity monitor showing recent conversions with source, campaign, landing page, device type, and rating status","3":"<strong>Link Tracking<\/strong> - Auto-track clicks on phone (tel:), email (mailto:), and WhatsApp links with per-device and rating settings","4":"<strong>Forms Integration<\/strong> - Configure tracking for 10 form plugins (CF7, Ninja Forms, WPForms, Gravity Forms, Formidable, Elementor Pro, Forminator, Fluent Forms, Avada, Quform) with per-form email link and field injection options","5":"<strong>Debug Logs<\/strong> - Real-time color-coded logging of form submissions and API responses for troubleshooting (auto-cleans after 7 days)"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[232,1152,986,985,257901],"plugin_category":[36],"plugin_contributors":[257902],"plugin_business_model":[],"class_list":["post-283998","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-contact-form-7","plugin_tags-conversion-tracking","plugin_tags-google-ads","plugin_tags-lead-quality","plugin_category-analytics","plugin_contributors-gerardcuenca","plugin_committers-gerardcuenca"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/conversionquality.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/conversionquality\/trunk\/screenshot-1.png?rev=3484232","caption":"<strong>Settings<\/strong> - Configure your API key, enable auto tracking, test connection, and view help documentation"},{"src":"https:\/\/ps.w.org\/conversionquality\/trunk\/screenshot-2.png?rev=3484232","caption":"<strong>My Conversions<\/strong> - Read-only activity monitor showing recent conversions with source, campaign, landing page, device type, and rating status"},{"src":"https:\/\/ps.w.org\/conversionquality\/trunk\/screenshot-3.png?rev=3484232","caption":"<strong>Link Tracking<\/strong> - Auto-track clicks on phone (tel:), email (mailto:), and WhatsApp links with per-device and rating settings"},{"src":"https:\/\/ps.w.org\/conversionquality\/trunk\/screenshot-4.png?rev=3484232","caption":"<strong>Forms Integration<\/strong> - Configure tracking for 10 form plugins (CF7, Ninja Forms, WPForms, Gravity Forms, Formidable, Elementor Pro, Forminator, Fluent Forms, Avada, Quform) with per-form email link and field injection options"},{"src":"https:\/\/ps.w.org\/conversionquality\/trunk\/screenshot-5.png?rev=3484232","caption":"<strong>Debug Logs<\/strong> - Real-time color-coded logging of form submissions and API responses for troubleshooting (auto-cleans after 7 days)"}],"raw_content":"<!--section=description-->\n<p><strong>Stop wasting budget on low-quality leads.<\/strong> ConversionQuality helps you identify which marketing campaigns generate actual qualified prospects, not just form submissions.<\/p>\n\n<h4>The Problem<\/h4>\n\n<p>Traditional analytics show you CONVERSIONS, but not QUALITY:\n* Campaign A: 100 conversions at \u20ac50 each = \u20ac5,000 spent\n* But only 20 are qualified leads you can actually close\n* <strong>Real cost per quality lead: \u20ac250<\/strong> (not \u20ac50!)<\/p>\n\n<h4>The Solution<\/h4>\n\n<p>ConversionQuality lets you <strong>rate every lead<\/strong> (1-5 stars) after contacting them \u2014 via email links or the ConversionQuality.com dashboard \u2014 then shows:\n* Cost per HIGH-QUALITY lead (4-5 stars)\n* Which campaigns\/keywords generate qualified prospects\n* Which traffic sources waste your budget\n* Compare quality across Google Ads, Facebook, organic, direct traffic<\/p>\n\n<h4>Key Features<\/h4>\n\n<p><strong>\u2713 Multi-Source Lead Tracking<\/strong>\nTrack leads from ANY traffic source:\n* Google Ads (Search, Display, Shopping, Performance Max)\n* Facebook &amp; Instagram Ads\n* Microsoft Ads (Bing)\n* Organic search (Google, Bing)\n* Direct traffic\n* Email campaigns\n* Referral sources<\/p>\n\n<p><strong>\u2713 Lead Quality Rating System<\/strong>\n* Rate leads 1-5 stars via email links or ConversionQuality.com dashboard\n* Mark leads as \"Unreachable\" if they don't respond\n* Add notes to each lead for context\n* See quality breakdown by campaign<\/p>\n\n<p><strong>\u2713 Multi-Form Plugin Integration<\/strong>\n* Contact Form 7, Ninja Forms, WPForms, Gravity Forms, Formidable Forms, Elementor Pro, Forminator, Fluent Forms, Avada Forms, Quform\n* Automatic tracking of form submissions from any supported plugin\n* Email rating links sent to you (not the customer)\n* One-click rating without WordPress login\n* Per-form configuration with individual settings<\/p>\n\n<p><strong>\u2713 Conversion Monitor<\/strong>\n* See latest conversions in your WordPress admin panel\n* View rating status, source, campaign, and landing page at a glance\n* Device detection (mobile\/desktop) from screen size\n* Direct link to full dashboard on ConversionQuality.com<\/p>\n\n<p><strong>\u2713 Automatic Tracking (opt-in)<\/strong>\n* JavaScript tracker injected on all pages once you enable it in settings\n* Captures first visit data (landing page, referrer)\n* Tracks UTM parameters, gclid, fbclid\n* No cookies \u2014 uses localStorage for session data<\/p>\n\n<p><strong>\u2713 Privacy &amp; Security<\/strong>\n* Cookie-free: uses localStorage (client-side) for visit data, conversions sent server-side via API\n* IPs anonymized (only first 2 octets visible)\n* Data encrypted in transit (HTTPS)\n* Compatible with consent management platforms (Cookiebot, etc.)<\/p>\n\n<h4>Who Is This For?<\/h4>\n\n<ul>\n<li><strong>B2B companies<\/strong> tracking lead quality from paid ads<\/li>\n<li><strong>Service businesses<\/strong> (lawyers, consultants, agencies)<\/li>\n<li><strong>High-ticket offers<\/strong> where lead quality matters more than volume<\/li>\n<li><strong>Marketing agencies<\/strong> managing campaigns for clients<\/li>\n<li><strong>Anyone frustrated<\/strong> with Google Ads \"conversions\" that don't convert<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Install &amp; activate<\/strong> this plugin<\/li>\n<li><strong>Get your API key<\/strong> from <a href=\"https:\/\/conversionquality.com\">conversionquality.com<\/a><\/li>\n<li><strong>Enter API key<\/strong> in plugin settings<\/li>\n<li><strong>Enable tracking<\/strong> - tracker.js auto-injected on your site<\/li>\n<li><strong>Rate leads<\/strong> as they come in (via email links or ConversionQuality.com)<\/li>\n<li><strong>Analyze data<\/strong> on ConversionQuality platform<\/li>\n<\/ol>\n\n<h4>Multilingual Support<\/h4>\n\n<p>Fully translated interface:\n* \ud83c\uddec\ud83c\udde7 English\n* \ud83c\uddea\ud83c\uddf8 Spanish (Espa\u00f1ol)\n* More languages coming soon (French, German)<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>Active ConversionQuality account (free trial available)<\/li>\n<li>One of: Contact Form 7, Ninja Forms, WPForms, Gravity Forms, Formidable Forms, Elementor Pro, Forminator, Fluent Forms, Avada Forms, or Quform (optional, for form integration)<\/li>\n<\/ul>\n\n<h4>Privacy &amp; GDPR Compliance<\/h4>\n\n<p>This plugin sends conversion data to conversionquality.com servers for analysis:\n* <strong>Data collected<\/strong>: Page URL, referrer, UTM parameters, anonymized IP, device type, user agent\n* <strong>Data NOT collected<\/strong>: Personal information, cookies, cross-site tracking\n* <strong>User rights<\/strong>: Clients can request data deletion at any time\n* <strong>Legal basis<\/strong>: Legitimate interest for marketing analytics<\/p>\n\n<p>For full privacy policy, visit: <a href=\"https:\/\/conversionquality.com\/privacy\">conversionquality.com\/privacy<\/a><\/p>\n\n<h4>Links<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/conversionquality.com\">Website<\/a><\/li>\n<li><a href=\"https:\/\/conversionquality.com\/docs\">Documentation<\/a><\/li>\n<li><a href=\"https:\/\/conversionquality.com\/support\">Support<\/a><\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin is a client for the <strong>ConversionQuality<\/strong> SaaS platform. In order to function, it communicates with ConversionQuality servers in the following situations:<\/p>\n\n<ol>\n<li><p><strong>Tracker script<\/strong> \u2014 When the site owner enables \"Automatic Tracking\" in the plugin settings, a JavaScript file (<code>tracker.js<\/code>) is loaded from <code>https:\/\/conversionquality.com<\/code>. This script captures anonymous visit data (landing page, referrer, UTM parameters, anonymized IP, device type) and sends it to ConversionQuality servers each time a tracked conversion event occurs (e.g. a form submission, a click on a tracked link). <strong>This feature is disabled by default<\/strong> and must be explicitly enabled by the site administrator.<\/p><\/li>\n<li><p><strong>Form integration<\/strong> \u2014 When a supported form plugin (CF7, Ninja Forms, WPForms, etc.) detects a submission and the site owner has enabled form tracking, a server-side API request is sent to <code>https:\/\/conversionquality.com\/api\/track.php<\/code> to register the conversion.<\/p><\/li>\n<li><p><strong>Dashboard data<\/strong> \u2014 When an administrator views the Conversions tab in the plugin settings, a request is made to <code>https:\/\/conversionquality.com\/api\/get-leads.php<\/code> to retrieve the most recent conversions for display.<\/p><\/li>\n<\/ol>\n\n<p>No data is ever transmitted without the site administrator having first entered a valid API key and enabled the relevant feature.<\/p>\n\n<p><strong>Service:<\/strong> ConversionQuality (https:\/\/conversionquality.com)\n<strong>Privacy Policy:<\/strong> https:\/\/conversionquality.com\/privacy\n<strong>Terms of Service:<\/strong> https:\/\/conversionquality.com\/terms<\/p>\n\n<h3>Privacy &amp; Data Collection<\/h3>\n\n<p><strong>What data is collected:<\/strong>\n* Page URLs visited on your site\n* Referrer (where visitor came from)\n* UTM parameters and click IDs (gclid, fbclid, msclkid)\n* Anonymized IP address (only first 2 octets, e.g., 192.168.xxx.xxx)\n* Device type (mobile, tablet, desktop)\n* User agent string (browser information)\n* Screen resolution\n* Form submission data (if form integration enabled)<\/p>\n\n<p><strong>What data is NOT collected:<\/strong>\n* Cookies\n* Personal identifiable information (names, emails) - unless voluntarily submitted via forms\n* Cross-site tracking\n* Browser fingerprinting\n* Behavioral tracking beyond your website<\/p>\n\n<p><strong>Where data is sent:<\/strong>\nAll tracking data is sent to ConversionQuality servers (conversionquality.com) via secure HTTPS connection for analytics processing.<\/p>\n\n<p><strong>Data retention:<\/strong>\n* Active leads: Retained as long as your ConversionQuality account is active\n* You can delete any lead data at any time from your ConversionQuality dashboard\n* Account deletion removes all associated data within 30 days<\/p>\n\n<p><strong>Legal basis (GDPR):<\/strong>\nLegitimate interest for marketing analytics and business optimization.<\/p>\n\n<p><strong>User rights:<\/strong>\n* Right to access: Request copy of your data\n* Right to erasure: Request deletion of your data\n* Right to objection: Opt-out of tracking\n* Contact: privacy@conversionquality.com<\/p>\n\n<p>For complete privacy policy, visit: <a href=\"https:\/\/conversionquality.com\/privacy\">https:\/\/conversionquality.com\/privacy<\/a><\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log into your WordPress dashboard<\/li>\n<li>Go to <strong>Plugins &gt; Add New<\/strong><\/li>\n<li>Search for \"ConversionQuality\"<\/li>\n<li>Click <strong>Install Now<\/strong> and then <strong>Activate<\/strong><\/li>\n<li>Go to <strong>ConversionQuality &gt; Settings<\/strong><\/li>\n<li>Enter your API key from <a href=\"https:\/\/conversionquality.com\">conversionquality.com<\/a><\/li>\n<li>Enable automatic tracking<\/li>\n<li>Done! Start rating your leads.<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Go to <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong><\/li>\n<li>Choose the ZIP file and click <strong>Install Now<\/strong><\/li>\n<li>Click <strong>Activate Plugin<\/strong><\/li>\n<li>Configure your API key in <strong>ConversionQuality &gt; Settings<\/strong><\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<p><strong>Basic Setup:<\/strong>\n1. Get API key from conversionquality.com\n2. Enter it in plugin settings\n3. Enable \"Automatic Tracking\"\n4. Set \"Conversions Limit\" (how many to show in My Conversions tab)<\/p>\n\n<p><strong>Form Plugin Integration (Optional):<\/strong>\n1. Install any supported form plugin (CF7, Ninja Forms, WPForms, Gravity Forms, Formidable, Elementor Pro, Forminator, Fluent Forms, Avada, Quform)\n2. Go to <strong>ConversionQuality &gt; Forms<\/strong> tab\n3. Enable \"Forms Integration\"\n4. Configure per-form tracking settings\n5. Rating links will auto-appear in form notification emails<\/p>\n\n<p><strong>Conversion Monitor:<\/strong>\nLatest conversions appear in the My Conversions tab with source, campaign, and rating status.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20conversionquality%20account%3F\"><h3>Do I need a ConversionQuality account?<\/h3><\/dt>\n<dd><p>Yes. This plugin connects to the ConversionQuality platform. You can sign up for a free trial at <a href=\"https:\/\/conversionquality.com\">conversionquality.com<\/a>.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20google%20ads%3F\"><h3>Does this work with Google Ads?<\/h3><\/dt>\n<dd><p>Yes! Automatically captures gclid (Google Click ID) and all UTM parameters from Google Ads campaigns.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20facebook%20ads%3F\"><h3>Does this work with Facebook Ads?<\/h3><\/dt>\n<dd><p>Yes! Captures fbclid (Facebook Click ID) and UTM parameters from Facebook\/Instagram campaigns.<\/p><\/dd>\n<dt id=\"does%20this%20replace%20google%20analytics%3F\"><h3>Does this replace Google Analytics?<\/h3><\/dt>\n<dd><p>No, it complements it. Google Analytics shows traffic and conversions. ConversionQuality adds QUALITY ratings to understand which traffic converts to actual business.<\/p><\/dd>\n<dt id=\"is%20contact%20form%207%20required%3F\"><h3>Is Contact Form 7 required?<\/h3><\/dt>\n<dd><p>No. The plugin works standalone for tracking conversions. Form integration (CF7, Ninja Forms, WPForms, Gravity Forms, Formidable, Elementor Pro, Forminator, Fluent Forms, Avada, Quform) adds automatic form submission tracking + email rating links.<\/p><\/dd>\n<dt id=\"does%20this%20use%20cookies%3F\"><h3>Does this use cookies?<\/h3><\/dt>\n<dd><p>No cookies. The tracker uses localStorage (client-side) to temporarily store visit data like landing page and referrer. Conversion data is then sent to ConversionQuality servers via HTTPS API.<\/p><\/dd>\n<dt id=\"is%20this%20gdpr%20compliant%3F\"><h3>Is this GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes. We anonymize IPs, don't use cookies, and allow data deletion on request. See Privacy Policy for full details.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20site%3F\"><h3>Will this slow down my site?<\/h3><\/dt>\n<dd><p>No. The tracker.js file is tiny (&lt; 10KB) and loads asynchronously. Zero impact on page speed.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20for%20multiple%20websites%3F\"><h3>Can I use this for multiple websites?<\/h3><\/dt>\n<dd><p>Yes, but each site needs its own ConversionQuality account\/API key. Contact us for agency\/multi-site pricing.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%3F\"><h3>What happens to my data if I uninstall?<\/h3><\/dt>\n<dd><p>Data on ConversionQuality platform remains (you own it). WordPress options are deleted cleanly. You can request full data deletion from your ConversionQuality account.<\/p><\/dd>\n<dt id=\"how%20do%20i%20track%20specific%20buttons%20or%20links%3F\"><h3>How do I track specific buttons or links?<\/h3><\/dt>\n<dd><p>Add the attribute <code>data-cq-track=\"button_name\"<\/code> to any link or button:<\/p>\n\n<pre><code>&lt;a href=\"\/contact\" data-cq-track=\"contact_button\"&gt;Contact Us&lt;\/a&gt;\n<\/code><\/pre><\/dd>\n<dt id=\"can%20i%20see%20leads%20outside%20wordpress%3F\"><h3>Can I see leads outside WordPress?<\/h3><\/dt>\n<dd><p>Yes, you can also access your full dashboard at conversionquality.com<\/p><\/dd>\n<dt id=\"how%20does%20cf7%20integration%20work%3F\"><h3>How does CF7 integration work?<\/h3><\/dt>\n<dd><p>When someone submits a Contact Form 7:\n1. A conversion is automatically registered in ConversionQuality\n2. A rating link is added to the email you receive\n3. Click the link to rate that specific lead (no WordPress login needed)<\/p><\/dd>\n<dt id=\"does%20cf7%20integration%20require%20database%20changes%3F\"><h3>Does CF7 integration require database changes?<\/h3><\/dt>\n<dd><p>No, it works server-side. No database modifications needed.<\/p><\/dd>\n<dt id=\"how%20do%20form%20conversions%20appear%20in%20my%20dashboard%3F\"><h3>How do form conversions appear in my dashboard?<\/h3><\/dt>\n<dd><p>Form submissions appear with the name <code>form_cf7_{id}<\/code> where {id} is the form ID. Example: <code>form_cf7_123<\/code><\/p><\/dd>\n<dt id=\"do%20i%20need%20tracker.js%20for%20forms%20to%20work%3F\"><h3>Do I need tracker.js for forms to work?<\/h3><\/dt>\n<dd><p>No. CF7 integration works independently from the JavaScript tracker. Conversions are registered server-side when forms are submitted.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><ul>\n<li><strong>Documentation<\/strong>: <a href=\"https:\/\/conversionquality.com\/docs\">conversionquality.com\/docs<\/a><\/li>\n<li><strong>Email Support<\/strong>: support@conversionquality.com<\/li>\n<li><strong>WordPress Forum<\/strong>: Use the support forum here<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.2 (2026-03-09)<\/h4>\n\n<ul>\n<li><strong>Changed:<\/strong> Automatic tracking is now <strong>disabled by default<\/strong> on fresh installs \u2014 site administrator must opt in explicitly (WordPress.org guideline compliance)<\/li>\n<li><strong>Removed:<\/strong> <code>data-cookieconsent=\"ignore\"<\/code> attribute from injected script tags \u2014 tracker respects any CMP configured by the site owner<\/li>\n<li><strong>Security:<\/strong> Quform adapter <code>get_form_id_from_post()<\/code> now verifies that at least one <code>quform_*<\/code> POST key is present before processing, preventing spoofed POST requests from triggering conversion registration<\/li>\n<li><strong>Security:<\/strong> Removed generic <code>form_id<\/code> fallback from Quform adapter (was unsafe \u2014 any POST with that key could trigger the adapter)<\/li>\n<li><strong>Security:<\/strong> Divi adapter now sanitizes POST key names with <code>sanitize_key()<\/code> before logging, preventing stored XSS via crafted POST key names<\/li>\n<li><strong>Docs:<\/strong> Added required \"External Services\" section to readme.txt disclosing all communication with ConversionQuality servers<\/li>\n<\/ul>\n\n<h4>2.2.1 (2026-03-02)<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> CF7 and Ninja hidden fields (first_url, screen_size, referrer) were silently ignored since v2.2.0 due to prefix mismatch<\/li>\n<li><strong>Improved:<\/strong> Form adapters now use <code>convqual_*<\/code> as primary field names with <code>cq_*<\/code> backwards-compatible fallback<\/li>\n<li><strong>Improved:<\/strong> CF7 adapter injects both <code>convqual_*<\/code> and <code>cq_*<\/code> field names for third-party integration compatibility<\/li>\n<\/ul>\n\n<h4>2.2.0 (2026-02-26)<\/h4>\n\n<ul>\n<li><strong>Security:<\/strong> Removed unverified <code>$_POST<\/code> fallbacks from Elementor adapter (CSRF hardening)<\/li>\n<li><strong>Changed:<\/strong> All internal prefixes renamed from <code>cq_<\/code> to <code>convqual_<\/code> (WordPress.org compliance: 4+ char prefix)<\/li>\n<li><strong>Added:<\/strong> Automatic migration of existing settings from <code>cq_*<\/code> to <code>convqual_*<\/code> options (transparent to users)<\/li>\n<li><strong>Improved:<\/strong> Uninstall cleanup now removes both old and new option names<\/li>\n<li>No breaking changes \u2014 existing installations are migrated automatically on first admin load<\/li>\n<\/ul>\n\n<h4>2.1.2 (2026-02-23)<\/h4>\n\n<ul>\n<li><strong>Improved:<\/strong> Moved all inline scripts and styles to enqueued external files (WordPress coding standards)<\/li>\n<li><strong>Improved:<\/strong> All function names now use proper <code>cq_<\/code> prefix<\/li>\n<li><strong>Fixed:<\/strong> Clarified GDPR\/localStorage description in readme (no longer contradictory)<\/li>\n<\/ul>\n\n<h4>2.1.1 (2026-02-17)<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> Elementor Pro Forms adapter now compatible with PRO Elements (GPL fork)<\/li>\n<li><strong>Fixed:<\/strong> Form detection expanded to include Elementor templates (theme builder, popups, global widgets)<\/li>\n<li><strong>Fixed:<\/strong> Forms inside templates are auto-enabled at runtime when not found in the tracked list<\/li>\n<li><strong>Improved:<\/strong> All Elementor form handlers protected with try\/catch to prevent fatal errors<\/li>\n<li><strong>Improved:<\/strong> Safe data extraction with $_POST fallback when Form_Record is unavailable<\/li>\n<li><strong>Technical:<\/strong> Removed class_exists check for Forms\\Module (not loaded during AJAX in PRO Elements)<\/li>\n<li><strong>Technical:<\/strong> Added form_submitted hook as additional fallback for PRO Elements compatibility<\/li>\n<\/ul>\n\n<h4>2.1.0 (2026-02-14)<\/h4>\n\n<ul>\n<li><strong>Changed:<\/strong> \"My Conversions\" tab is now a read-only activity monitor (no more rating from WordPress)<\/li>\n<li><strong>Removed:<\/strong> Star rating buttons, notes field, and \"Unreachable\" button from conversion cards<\/li>\n<li><strong>Removed:<\/strong> \"Rating disabled\" warning for email-link conversions<\/li>\n<li><strong>Removed:<\/strong> Expandable details section (IP, gclid, screen size)<\/li>\n<li><strong>Added:<\/strong> Device type detection (mobile\/desktop icon) based on screen size<\/li>\n<li><strong>Added:<\/strong> Landing page path displayed on each conversion card<\/li>\n<li><strong>Added:<\/strong> \"Pending\" status badge for unrated conversions<\/li>\n<li><strong>Added:<\/strong> \"View full dashboard on ConversionQuality.com\" link<\/li>\n<li><strong>Improved:<\/strong> Time display now uses WordPress locale (translatable via human_time_diff)<\/li>\n<li><strong>Improved:<\/strong> Tab URL changed from <code>tab=leads<\/code> to <code>tab=conversions<\/code><\/li>\n<li><strong>Cleaned:<\/strong> Removed all rating JavaScript (admin.js) and related CSS<\/li>\n<li><strong>Cleaned:<\/strong> Removed AJAX rating endpoint and unused i18n strings<\/li>\n<li>Rating is now done exclusively via email links or ConversionQuality.com dashboard<\/li>\n<\/ul>\n\n<h4>2.0.0 (2026-02-07)<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> Multi-form plugin support - now integrates with 10 form plugins: Contact Form 7, Ninja Forms, WPForms, Gravity Forms, Formidable Forms, Elementor Pro, Forminator, Fluent Forms, Avada Forms, Quform<\/li>\n<li><strong>New:<\/strong> Secret Key for secure API operations (reading leads, rating). API Key is now public-only (tracking)<\/li>\n<li><strong>New:<\/strong> Per-form settings grouped by plugin - each form has independent tracking, email link, and field injection options<\/li>\n<li><strong>New:<\/strong> Adapter architecture - shared logic with thin adapters per form plugin<\/li>\n<li><strong>Improved:<\/strong> GSheetConnector\/Zapier field injection now works for all form plugins<\/li>\n<li>100% backwards compatible - existing CF7 setups continue working without changes<\/li>\n<\/ul>\n\n<h4>1.2.1 (2026-01-25)<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> WP Mail SMTP compatibility - resolved conflict that caused CF7 emails to fail<\/li>\n<li>Compatible with WP Mail SMTP, Post SMTP, FluentSMTP, and other SMTP plugins<\/li>\n<\/ul>\n\n<h4>1.2.0 (2026-01-21)<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> Per-form tracking configuration - enable\/disable tracking for each CF7 form individually<\/li>\n<li><strong>New:<\/strong> Per-form email link and field injection settings<\/li>\n<li><strong>New:<\/strong> Default settings for newly created forms<\/li>\n<li><strong>Improved:<\/strong> Event names now use form title instead of ID (e.g., <code>cf7_contact_form<\/code> instead of <code>form_cf7_123<\/code>)<\/li>\n<\/ul>\n\n<h4>1.1.2 (2026-01-20)<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> Additional fields for GSheetConnector: <code>cq_id<\/code>, <code>cq_timestamp<\/code>, <code>wp_datetime<\/code><\/li>\n<\/ul>\n\n<h4>1.1.1 (2026-01-20)<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> SSL certificate errors on some hosting providers (<code>sslverify<\/code> compatibility)<\/li>\n<\/ul>\n\n<h4>1.1.0 (2025-01-02)<\/h4>\n\n<ul>\n<li><strong>New:<\/strong> Developer hook <code>cq_conversion_registered<\/code> for third-party integrations<\/li>\n<li><strong>New:<\/strong> Optional <code>cq_rating_url<\/code> field injection into CF7 posted data (for GSheetConnector, Zapier, etc.)<\/li>\n<\/ul>\n\n<h4>1.0.6 (2025-12-02)<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> Rating links now appear correctly in CF7 emails when duplicate detection is triggered<\/li>\n<li><strong>Fixed:<\/strong> Backend API returns existing token for duplicate conversions<\/li>\n<\/ul>\n\n<h4>1.0.5 (2025-01-05)<\/h4>\n\n<ul>\n<li><strong>Improved:<\/strong> WordPress Coding Standards (WPCS) compliance for WordPress.org approval<\/li>\n<li><strong>Added:<\/strong> Transients cache system for API calls (5-minute cache duration)<\/li>\n<li><strong>Improved:<\/strong> Dashboard loads instantly from cache, significantly reducing server load<\/li>\n<li><strong>Improved:<\/strong> User-friendly error messages with clear, actionable guidance<\/li>\n<li><strong>Improved:<\/strong> Better error handling for API connection failures with specific messages<\/li>\n<li><strong>Improved:<\/strong> Automatic cache invalidation when rating leads to ensure fresh data<\/li>\n<li><strong>Fixed:<\/strong> Proper sanitization of $_SERVER variables following WordPress security standards<\/li>\n<li><strong>Fixed:<\/strong> Missing translations for \"Campaign:\", \"View page\", \"Rated:\" in dashboard<\/li>\n<li><strong>Technical:<\/strong> Now uses WordPress native functions wp_get_referer() and is_ssl()<\/li>\n<li><strong>Technical:<\/strong> Proper escaping of HTML attributes with esc_attr() throughout the plugin<\/li>\n<li><strong>Performance:<\/strong> Significant speed improvement on admin pages due to caching layer<\/li>\n<li><strong>Quality:<\/strong> Code ready for WordPress.org submission with full standards compliance<\/li>\n<\/ul>\n\n<h4>1.0.4 (2025-01-04)<\/h4>\n\n<ul>\n<li><strong>Fixed:<\/strong> Critical IP detection bug - now captures real client IP instead of server IP<\/li>\n<li><strong>Improved:<\/strong> Cloudflare compatibility with CF-Connecting-IP header detection<\/li>\n<li><strong>Improved:<\/strong> Proxy\/load balancer support with X-Forwarded-For parsing<\/li>\n<li><strong>Added:<\/strong> Automatic IP validation with fallback mechanism<\/li>\n<li><strong>Technical:<\/strong> New get_real_client_ip() method with priority hierarchy (CF-Connecting-IP &gt; X-Forwarded-For &gt; REMOTE_ADDR)<\/li>\n<li><strong>Backend:<\/strong> API now correctly prioritizes POST['ip'] over header detection<\/li>\n<li><strong>Impact:<\/strong> Conversions now correctly attributed to actual visitor IPs, not server IPs<\/li>\n<li><strong>Compatibility:<\/strong> Works with Cloudflare, Nginx proxy_pass, Apache mod_proxy, and load balancers<\/li>\n<\/ul>\n\n<h4>1.0.3 (2025-01-03)<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> Full internationalization (i18n) system with text domain support<\/li>\n<li><strong>Added:<\/strong> Complete Spanish translation (conversionquality-es_ES.po\/mo) with ~150 strings<\/li>\n<li><strong>Added:<\/strong> Complete English translation (conversionquality-en_US.po\/mo) with ~150 strings<\/li>\n<li><strong>Added:<\/strong> Python script (generate_mo.py) to compile .po to .mo files with correct UTF-8 encoding<\/li>\n<li><strong>Added:<\/strong> New Debug tab with real-time logging of CF7 submissions and API calls<\/li>\n<li><strong>Improved:<\/strong> Auto-cleanup of logs after 7 days (max 50 entries for privacy\/performance)<\/li>\n<li><strong>Improved:<\/strong> Email translations now respect site language with switch_to_locale(), not admin user locale<\/li>\n<li><strong>Fixed:<\/strong> UTF-8 encoding for Spanish characters (\u00e1\u00e9\u00ed\u00f3\u00fa, \u00f1) - uses HTML entities in emails<\/li>\n<li><strong>Fixed:<\/strong> Emoji compatibility in emails (&#128200; instead of direct emoji)<\/li>\n<li><strong>Backend:<\/strong> track.php now generates tokens ALWAYS, not only when sending email (needed for CF7)<\/li>\n<li><strong>Backend:<\/strong> rate.php now allows rating leads with enviar_valoracion=0<\/li>\n<li><strong>Backend:<\/strong> dashboard.php shows ratings correctly (fixed verification order)<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li><strong>Added:<\/strong> Contact Form 7 integration with automatic conversion tracking<\/li>\n<li><strong>Added:<\/strong> Email rating links in CF7 notification emails (sent to admin only, not form submitter)<\/li>\n<li><strong>Added:<\/strong> Forms configuration tab in admin settings<\/li>\n<li><strong>Added:<\/strong> New CQ_Forms class for handling form integrations<\/li>\n<li><strong>Improved:<\/strong> HTML email formatting with nl2br() for proper structure<\/li>\n<li><strong>Improved:<\/strong> Token generation reliability for rating links<\/li>\n<li><strong>Fixed:<\/strong> Emails only sent to admin, never to user submitting the form<\/li>\n<li><strong>Fixed:<\/strong> No duplicate emails when CF7 integration is active<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li><strong>Improved:<\/strong> Error logging and debugging capabilities<\/li>\n<li><strong>Improved:<\/strong> API connection reliability<\/li>\n<li><strong>Fixed:<\/strong> Various stability improvements<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Dashboard widget with lead ratings (1-5 stars)<\/li>\n<li>Automatic tracker.js injection<\/li>\n<li>API key validation with \"Test Connection\" button<\/li>\n<li>Basic Contact Form 7 support<\/li>\n<li>Multi-language foundation<\/li>\n<li>UTM parameters and click ID tracking (gclid, fbclid, msclkid)<\/li>\n<\/ul>","raw_excerpt":"Track and rate lead quality from Google Ads, Facebook, and all traffic sources. Know which campaigns generate HIGH-QUALITY leads, not just volume.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283998"}],"author":[{"embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gerardcuenca"}],"wp:attachment":[{"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283998"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283998"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283998"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283998"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283998"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hy.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}