Version 3.26.1
Fixed
- Avada forms pushed
form_submiton pages nobody submitted.isAvadaSuccessState()testedelement.style.display !== "none", which reads only the inline style attribute. Avada renders.fusion-form-response-successinto the static markup and hides it with a CSS class carrying no style attribute, so the value was"", the check passed about 50 ms after the page loaded, and every render that started an observation produced a submission event. Measured on one client: 29 contact-less rows against 32 real leads in a month, driven by OEM lock-screen ad renderers (com.samsung.android.dynamiclock,com.hihonor.magazine,com.heytap.pictorial) and Meta's ad crawler re-rendering the landing page, each phantom carrying the ad'sgclid. Visibility is now read from computed style plus layout, and every success signal must transition from absent to present after the submission, so a message that was already on the page cannot register as one. - Avada submissions with neither an email address nor a phone number no longer push
form_submit. The framework module already requires an email field before it tracks a form at all, so a submission reaching this state is a false positive, not a name-only form. - The Avada click watcher listened on
.fusion-button, which on a typical Avada page matches dozens of ordinary buttons (32 on the client contact page). It now binds to real submit controls only.
Added
tests/standalone/test-avada-success-detection.html: browser regression cover for the above. A hidden-by-class success node must not fire, a success node becoming visible must fire, a contact-less success must be suppressed, and a non-submit Fusion button must start no observation.
Changed
trackFormSubmission()accepts an opt-inrequire_contactoption that suppresses aform_submitcarrying neither email nor phone. Only the Avada module sets it. It is off by default because the dataLayer specification requiresform_submiton every real submission, name-only and multi-step forms included, so the other frameworks are untouched.
Removed
- Auto-BCC email system (Feature 010): Deleted the 11 files it left behind. The feature was dropped from the plugin loader in 3.22.0, which orphaned
includes/email/, the AJAX handler, the settings view, and its CSS and JS in the tree. Nothing required them and there is no autoloader, so those classes were never defined, theclass_exists()guards inchoice-universal-form-tracker.phpnever fired, and the code could not run on any install. The dead init block went with it.uninstall.phpalready sweepscuft_%options and transients, so acuft_auto_bcc_configrow left by a pre-3.22.0 install is still cleaned up on uninstall.
Installation
Automatic Update
If you already have the plugin installed, it should automatically detect this update. Go to Plugins in your WordPress admin and click Update Now.
Manual Installation
- Download the
choice-uft-v3.26.1.zipfile from the assets below - In WordPress admin, go to Plugins → Add New → Upload Plugin
- Choose the downloaded zip file and click Install Now
- Activate the plugin after installation
Requirements
- WordPress 5.0 or higher
- PHP 7.4 or higher
Support
For issues or questions, please visit: https://github.com/ChoiceOMG/choice-uft/issues