Version 3.28.0
WordPress.org directory review preparation. Plugin Check (general, plugin_repo, security, performance, accessibility) on the directory package went from 635 warnings to none.
Changed
generate_leadobeys the Generate Lead Events setting.cuft-dataLayer-utils.jspushed it on every submission with an email address whatevercuft_generate_lead_enabledsaid. The setting now reaches the browser aswindow.cuftLeadSettings(inline beforecuft-dataLayer-utils), and gates the push, the deprecated strict dual-fire, and therecordEventcall;cuft_record_eventalso refusesgenerate_leadwhile the setting is off. A page cached before the upgrade, with nocuftLeadSettings, keeps pushing as it did.- Upgrade defaults (migration 3.28.0,
cuft_db_versionnow 3.28.0). An existing install getscuft_generate_lead_enabled = 1andcuft_webhook_require_key = 0, so it behaves as before; a new install getscuft_generate_lead_enabled = 0andcuft_webhook_require_key = 1with a generated key. Existing means: a storedcuft_db_version; or, during activation,cuft_db_versionorcuft_gtm_idpresent before activation wrote its defaults; or, outside activation,cuft_gtm_idpresent. - Requires WordPress 6.2. Every query goes through
$wpdb->prepare()with identifiers bound by%i. - Main class renamed
Choice_Universal_Form_TrackertoCUFT_Plugin, andAbstract_CUFT_AdaptertoCUFT_Abstract_Adapter, for the directory's prefix rule. - Plugin URI now points at https://choice.marketing/tools/choice-uft/; License header reads
GPLv2 or later. - Admin notices show only on the plugin's screens and the Plugins screen; the informational notice is dismissible per user.
- Inline admin scripts and styles moved to
assets/cuft-admin.jsandassets/cuft-admin.css; the GTM loader is enqueued throughwp_add_inline_script. error_log()calls route throughCUFT_Logger::debug_log(), which writes only underWP_DEBUG.- readme
== External services ==rewritten per service, with terms and privacy links for the Choice OMG phone validation service and its sub-processors.
Security
- Webhook key. New setting "Require webhook key" on the Click Tracking screen. When on,
cuft_webhookrejects any request whosekeydoes not matchcuft_webhook_key(hash_equals), with HTTP 403. The screen shows the full keyed URL and a nonce-checked Regenerate button; the "security through obscurity" wording is gone. - Test mode, which let any visitor append
?test_mode=1and suppress form notification emails, is removed with the Test Form Builder. - Nonce plus
manage_optionson every admin action and AJAX handler; request, cookie and server input unslashed and sanitized. - CSV exports neutralise spreadsheet formulas in visitor-supplied columns.
Removed
- Test Form Builder. Framework adapters, adapter factory, form builder and its AJAX endpoints, the test form templates, sessions and validator, test mode (
?test_mode=1), the/cuft-test-form/rewrite rule and theform_id/test_modequery vars, and their Testing Dashboard card and scripts. The sample data generator, event simulator and test events table remain. Test forms made by earlier versions are deleted on upgrade and uninstall byCUFT_Legacy_Test_Forms, which matches only posts carrying_cuft_test_form = 1and acuft_test_<time>_<4 digits>instance ID, never titles. - The Gravity Forms and Ninja Forms scripts' test-mode blocks, which wrote fake
gclidand UTM values into session storage on any URL containingtest=1,cuft_test=1or-test-form.
Fixed
- Stray translator comment printed on the Testing Dashboard.
- Migration index check looked for
date_updatedwhile creatingidx_date_updated, so a second run failed. CUFT_Logger::log()was called with its arguments reversed in the click tracker and event recorder.- Uninstall cleared a cron hook the plugin never scheduled and left the real ones, the test events table, and transient timeouts behind.
- The directory package hides the GTM template download buttons, whose files it does not ship.
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.28.0.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