From 116d2bac268671cb9ce37c719e030c718fb6bc66 Mon Sep 17 00:00:00 2001 From: girishpanchal30 Date: Thu, 5 Feb 2026 18:43:02 +0530 Subject: [PATCH 1/2] feat: add tracking opt-in checkbox --- assets/css/style-wizard.css | 13 ++++++++ assets/js/scripts-admin.js | 2 ++ .../classes/wp-maintenance-mode-admin.php | 4 +++ includes/classes/wp-maintenance-mode.php | 32 +++++++++++++++++++ views/wizard.php | 7 ++++ 5 files changed, 58 insertions(+) diff --git a/assets/css/style-wizard.css b/assets/css/style-wizard.css index 133c527..b57b63b 100644 --- a/assets/css/style-wizard.css +++ b/assets/css/style-wizard.css @@ -296,6 +296,19 @@ h2.wpmm-title span img { font-size: 18px; } +.subscribe-step .opt-in-container { + display: flex; + gap: 8px; + margin-top: 20px; +} + +.subscribe-step .opt-in-container svg.components-checkbox-control__checked { + top: 20%; +} + +.subscribe-step .opt-in-container label { + text-align: left; +} #email-input-wrap { position: relative; display: flex; diff --git a/assets/js/scripts-admin.js b/assets/js/scripts-admin.js index cdd5f72..42b7ef8 100644 --- a/assets/js/scripts-admin.js +++ b/assets/js/scripts-admin.js @@ -429,11 +429,13 @@ jQuery( function( $ ) { emailInput.removeClass( 'invalid' ); subscribeButton.addClass( 'is-busy' ); + const optIn = $('#wizard-opt-in').is( ':checked' ); $.post( wpmmVars.ajaxURL, { action: 'wpmm_subscribe', email, _wpnonce: wpmmVars.wizardNonce, + opt_in: optIn ? 1 : 0, }, function( response ) { if ( ! response.success ) { alert( response.data ); diff --git a/includes/classes/wp-maintenance-mode-admin.php b/includes/classes/wp-maintenance-mode-admin.php index 7721e34..656ff22 100644 --- a/includes/classes/wp-maintenance-mode-admin.php +++ b/includes/classes/wp-maintenance-mode-admin.php @@ -806,6 +806,10 @@ public function subscribe_newsletter() { die( esc_html__( 'Empty field: email', 'wp-maintenance-mode' ) ); } + if ( isset( $_POST['opt_in'] ) && $_POST['opt_in'] ) { + update_option( 'wp_maintenance_mode_logger_flag', 'yes' ); + } + $response = wp_remote_post( self::SUBSCRIBE_ROUTE, array( diff --git a/includes/classes/wp-maintenance-mode.php b/includes/classes/wp-maintenance-mode.php index e144f7e..bd74967 100644 --- a/includes/classes/wp-maintenance-mode.php +++ b/includes/classes/wp-maintenance-mode.php @@ -159,6 +159,9 @@ function() { } ); } + + add_action( 'init', array( $this, 'initialize_telemetry' ) ); + } /** @@ -1449,6 +1452,35 @@ public function set_current_page_category( $category ) { public function get_current_page_category() { return $this->current_page_category; } + + /** + * Initialize telemetry. + * + * @return void + */ + public function initialize_telemetry() { + if ( 'yes' === get_option( 'wp_maintenance_mode_logger_flag' ) ) { + add_filter( 'themeisle_sdk_enable_telemetry', '__return_true' ); + add_filter( + 'themeisle_sdk_telemetry_products', + function( $products ) { + $license = get_option( 'visualizer_pro_license_data', 'free' ); + if ( ! empty( $license ) && is_object( $license ) ) { + $license = $license->key; + } + + foreach ( $products as &$product ) { + if ( isset( $product['slug'] ) && 'wp' === $product['slug'] ) { + $product['slug'] = 'wp_maintenance_mode'; + } + } + + return $products; + } + ); + } + + } } } diff --git a/views/wizard.php b/views/wizard.php index 59ef19d..90a30b2 100644 --- a/views/wizard.php +++ b/views/wizard.php @@ -116,6 +116,13 @@ +
+ + + + + +
From d1d5d060e0366530312bcf0b6cb7fbc63909c076 Mon Sep 17 00:00:00 2001 From: girishpanchal30 Date: Thu, 5 Feb 2026 19:19:04 +0530 Subject: [PATCH 2/2] clean up telemetry product filter --- includes/classes/wp-maintenance-mode-admin.php | 2 +- includes/classes/wp-maintenance-mode.php | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/includes/classes/wp-maintenance-mode-admin.php b/includes/classes/wp-maintenance-mode-admin.php index 656ff22..0bc2031 100644 --- a/includes/classes/wp-maintenance-mode-admin.php +++ b/includes/classes/wp-maintenance-mode-admin.php @@ -806,7 +806,7 @@ public function subscribe_newsletter() { die( esc_html__( 'Empty field: email', 'wp-maintenance-mode' ) ); } - if ( isset( $_POST['opt_in'] ) && $_POST['opt_in'] ) { + if ( isset( $_POST['opt_in'] ) && sanitize_text_field( $_POST['opt_in'] ) ) { update_option( 'wp_maintenance_mode_logger_flag', 'yes' ); } diff --git a/includes/classes/wp-maintenance-mode.php b/includes/classes/wp-maintenance-mode.php index bd74967..3090bc7 100644 --- a/includes/classes/wp-maintenance-mode.php +++ b/includes/classes/wp-maintenance-mode.php @@ -1464,11 +1464,6 @@ public function initialize_telemetry() { add_filter( 'themeisle_sdk_telemetry_products', function( $products ) { - $license = get_option( 'visualizer_pro_license_data', 'free' ); - if ( ! empty( $license ) && is_object( $license ) ) { - $license = $license->key; - } - foreach ( $products as &$product ) { if ( isset( $product['slug'] ) && 'wp' === $product['slug'] ) { $product['slug'] = 'wp_maintenance_mode';