From 5e8fbb204c383e403e56d5ccbf9099ad8c07acc7 Mon Sep 17 00:00:00 2001 From: Zoro Date: Thu, 11 Jun 2026 15:22:22 -0600 Subject: [PATCH 1/3] Add utm_content to the plugins-page upgrade link The 'Upgrade to Pro' / 'Renew' link on the WP Plugins page routes through utm_campaign=plugin-row with no utm_content, so GA can't separate new-upgrade intent from renewal intent on a link that converts at 3.6%. Tag it 'upgrade' or 'renew' to match the existing form-templates convention; applies to both the Sales-API CTA and the default upgrade link. Co-Authored-By: Claude Opus 4.8 (1M context) --- classes/controllers/FrmAppController.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/classes/controllers/FrmAppController.php b/classes/controllers/FrmAppController.php index fac66973b4..820a40bfff 100644 --- a/classes/controllers/FrmAppController.php +++ b/classes/controllers/FrmAppController.php @@ -374,7 +374,9 @@ public static function settings_link( $links ) { $settings = array(); if ( ! FrmAppHelper::pro_is_installed() ) { - if ( FrmAddonsController::is_license_expired() ) { + $is_expired = FrmAddonsController::is_license_expired(); + + if ( $is_expired ) { $label = __( 'Renew', 'formidable' ); } else { $label = FrmSalesApi::get_best_sale_value( 'plugin_page_cta_text' ); @@ -384,12 +386,13 @@ public static function settings_link( $links ) { } } - $upgrade_link = FrmSalesApi::get_best_sale_value( 'plugin_page_cta_link' ); + $upgrade_content = $is_expired ? 'renew' : 'upgrade'; + $upgrade_link = FrmSalesApi::get_best_sale_value( 'plugin_page_cta_link' ); if ( $upgrade_link ) { - $upgrade_link = FrmAppHelper::maybe_add_missing_utm( $upgrade_link, array( 'medium' => 'plugin-row' ) ); + $upgrade_link = FrmAppHelper::maybe_add_missing_utm( $upgrade_link, array( 'medium' => 'plugin-row', 'content' => $upgrade_content ) ); } else { - $upgrade_link = FrmAppHelper::admin_upgrade_link( 'plugin-row' ); + $upgrade_link = FrmAppHelper::admin_upgrade_link( array( 'campaign' => 'plugin-row', 'content' => $upgrade_content ) ); } $settings[] = '' . esc_html( $label ) . ''; From 63a96ecd9fc08f3283d7cbfbe7d3e0620e4b4887 Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Fri, 12 Jun 2026 10:35:57 -0300 Subject: [PATCH 2/3] Run fixers and remove duplicate code --- classes/controllers/FrmAppController.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/classes/controllers/FrmAppController.php b/classes/controllers/FrmAppController.php index 820a40bfff..a95ba92418 100644 --- a/classes/controllers/FrmAppController.php +++ b/classes/controllers/FrmAppController.php @@ -389,10 +389,15 @@ public static function settings_link( $links ) { $upgrade_content = $is_expired ? 'renew' : 'upgrade'; $upgrade_link = FrmSalesApi::get_best_sale_value( 'plugin_page_cta_link' ); + $utm = array( + 'medium' => 'plugin-row', + 'content' => $upgrade_content, + ); + if ( $upgrade_link ) { - $upgrade_link = FrmAppHelper::maybe_add_missing_utm( $upgrade_link, array( 'medium' => 'plugin-row', 'content' => $upgrade_content ) ); + $upgrade_link = FrmAppHelper::maybe_add_missing_utm( $upgrade_link, $utm ); } else { - $upgrade_link = FrmAppHelper::admin_upgrade_link( array( 'campaign' => 'plugin-row', 'content' => $upgrade_content ) ); + $upgrade_link = FrmAppHelper::admin_upgrade_link( $utm ); } $settings[] = '' . esc_html( $label ) . ''; From ed21c37d72a7812f5bb0a7e4d18f69379e97465e Mon Sep 17 00:00:00 2001 From: Mike Letellier Date: Tue, 16 Jun 2026 10:23:33 -0300 Subject: [PATCH 3/3] Use campaign --- classes/controllers/FrmAppController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/controllers/FrmAppController.php b/classes/controllers/FrmAppController.php index a95ba92418..aa4fbe7515 100644 --- a/classes/controllers/FrmAppController.php +++ b/classes/controllers/FrmAppController.php @@ -390,8 +390,8 @@ public static function settings_link( $links ) { $upgrade_link = FrmSalesApi::get_best_sale_value( 'plugin_page_cta_link' ); $utm = array( - 'medium' => 'plugin-row', - 'content' => $upgrade_content, + 'campaign' => 'plugin-row', + 'content' => $upgrade_content, ); if ( $upgrade_link ) {