From 53c965b20ac2717d103ba02cca46dedf4871f98d Mon Sep 17 00:00:00 2001 From: bogdanungureanu Date: Wed, 22 Jan 2025 16:17:11 +0200 Subject: [PATCH 1/6] RDV: Fix the performance issue on AT sites --- .../changelog/fix-experiment-performance-issue | 5 +++++ .../wpcom-admin-interface/wpcom-admin-interface.php | 11 +++++++++++ 2 files changed, 16 insertions(+) create mode 100644 projects/packages/jetpack-mu-wpcom/changelog/fix-experiment-performance-issue diff --git a/projects/packages/jetpack-mu-wpcom/changelog/fix-experiment-performance-issue b/projects/packages/jetpack-mu-wpcom/changelog/fix-experiment-performance-issue new file mode 100644 index 0000000000000..9cb8a9b757f1e --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/fix-experiment-performance-issue @@ -0,0 +1,5 @@ +Significance: patch +Type: fixed +Comment: Fixed a performance issue on AT that was reproducing only for a12s. + + diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index b1d54f05d3fed..bcdb85d45f309 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -448,6 +448,17 @@ function wpcom_is_duplicate_views_experiment_enabled() { if ( isset( $data['variations'] ) && isset( $data['variations'][ $experiment_name ] ) ) { $variation = $data['variations'][ $experiment_name ]; + /** + * If the variation is null chances are this is an a11n (since ExPlat returns null for a12s). + * + * We want to set the treatment for all a12s. + * + * In our case, the experiment is released to all users, which means everybody should get a variation (except for a12s). + */ + if ( ! in_array( $variation, array( 'treatment', 'control' ), true ) ) { + $variation = 'treatment'; + } + update_user_option( get_current_user_id(), $option_name, $variation, true ); $is_enabled = 'treatment' === $variation; From ae4bf3c40604accb005cc279cbf13c084c7b3af3 Mon Sep 17 00:00:00 2001 From: bogdanungureanu Date: Wed, 22 Jan 2025 19:10:14 +0200 Subject: [PATCH 2/6] Redo condition --- .../wpcom-admin-interface.php | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index bcdb85d45f309..5b6290267f4d9 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -447,26 +447,23 @@ function wpcom_is_duplicate_views_experiment_enabled() { $data = json_decode( wp_remote_retrieve_body( $response ), true ); if ( isset( $data['variations'] ) && isset( $data['variations'][ $experiment_name ] ) ) { - $variation = $data['variations'][ $experiment_name ]; + $variation = $data['variations'][$experiment_name]; + update_user_option(get_current_user_id(), $option_name, $variation, true); + + $is_enabled = 'treatment' === $variation; + } elseif ( isset( $data['variations'] ) && ! isset( $data['variations'][ $experiment_name ] ) ) { /** - * If the variation is null chances are this is an a11n (since ExPlat returns null for a12s). + * If the variations array is set but the variation value is null chances are this is an a11n (since ExPlat returns null for a12s). * * We want to set the treatment for all a12s. - * - * In our case, the experiment is released to all users, which means everybody should get a variation (except for a12s). - */ - if ( ! in_array( $variation, array( 'treatment', 'control' ), true ) ) { - $variation = 'treatment'; - } - - update_user_option( get_current_user_id(), $option_name, $variation, true ); - - $is_enabled = 'treatment' === $variation; - return $is_enabled; + **/ + update_user_option( get_current_user_id(), $option_name, 'treatment', true ); + $is_enabled = true; } else { $is_enabled = false; - return $is_enabled; } + + return $is_enabled; } /** From 68ef8280ac5b68433ddf09bc822035842bc990ee Mon Sep 17 00:00:00 2001 From: bogdanungureanu Date: Wed, 22 Jan 2025 19:20:36 +0200 Subject: [PATCH 3/6] Linting --- .../wpcom-admin-interface/wpcom-admin-interface.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index 5b6290267f4d9..218bc05f7a976 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -447,8 +447,8 @@ function wpcom_is_duplicate_views_experiment_enabled() { $data = json_decode( wp_remote_retrieve_body( $response ), true ); if ( isset( $data['variations'] ) && isset( $data['variations'][ $experiment_name ] ) ) { - $variation = $data['variations'][$experiment_name]; - update_user_option(get_current_user_id(), $option_name, $variation, true); + $variation = $data['variations'][ $experiment_name ]; + update_user_option( get_current_user_id(), $option_name, $variation, true ); $is_enabled = 'treatment' === $variation; } elseif ( isset( $data['variations'] ) && ! isset( $data['variations'][ $experiment_name ] ) ) { @@ -456,7 +456,7 @@ function wpcom_is_duplicate_views_experiment_enabled() { * If the variations array is set but the variation value is null chances are this is an a11n (since ExPlat returns null for a12s). * * We want to set the treatment for all a12s. - **/ + */ update_user_option( get_current_user_id(), $option_name, 'treatment', true ); $is_enabled = true; } else { From 330bebbf9a7028a35cf2603bdb4309d737c21861 Mon Sep 17 00:00:00 2001 From: bogdanungureanu Date: Wed, 22 Jan 2025 20:04:42 +0200 Subject: [PATCH 4/6] Simplify condition --- .../features/wpcom-admin-interface/wpcom-admin-interface.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index 218bc05f7a976..f5d9f81284fde 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -446,12 +446,12 @@ function wpcom_is_duplicate_views_experiment_enabled() { $data = json_decode( wp_remote_retrieve_body( $response ), true ); - if ( isset( $data['variations'] ) && isset( $data['variations'][ $experiment_name ] ) ) { + if ( isset( $data['variations'][ $experiment_name ] ) ) { $variation = $data['variations'][ $experiment_name ]; update_user_option( get_current_user_id(), $option_name, $variation, true ); $is_enabled = 'treatment' === $variation; - } elseif ( isset( $data['variations'] ) && ! isset( $data['variations'][ $experiment_name ] ) ) { + } elseif ( isset( $data['variations'] ) ) { /** * If the variations array is set but the variation value is null chances are this is an a11n (since ExPlat returns null for a12s). * From 71c780fe937d8a3a82f2e280e9c589219c6feec1 Mon Sep 17 00:00:00 2001 From: Richard Ortiz Date: Fri, 24 Jan 2025 14:43:44 +0100 Subject: [PATCH 5/6] Modified comment a bit --- .../features/wpcom-admin-interface/wpcom-admin-interface.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index f5d9f81284fde..da2584bdb6cfe 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -455,7 +455,7 @@ function wpcom_is_duplicate_views_experiment_enabled() { /** * If the variations array is set but the variation value is null chances are this is an a11n (since ExPlat returns null for a12s). * - * We want to set the treatment for all a12s. + * We set treatment for all a12s. */ update_user_option( get_current_user_id(), $option_name, 'treatment', true ); $is_enabled = true; From ccb7aace941de43ea5239aaeb9dfa3fbfc7efa5e Mon Sep 17 00:00:00 2001 From: Richard Ortiz Date: Fri, 24 Jan 2025 15:13:37 +0100 Subject: [PATCH 6/6] We now use the constant instead of the option_name variable --- .../features/wpcom-admin-interface/wpcom-admin-interface.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php index 3310ecc683caf..476f01613ca31 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-admin-interface/wpcom-admin-interface.php @@ -462,7 +462,7 @@ function wpcom_is_duplicate_views_experiment_enabled() { * * We set treatment for all a12s. */ - update_user_option( get_current_user_id(), $option_name, 'treatment', true ); + update_user_option( get_current_user_id(), RDV_EXPERIMENT_FORCE_ASSIGN_OPTION, 'treatment', true ); $is_enabled = true; } else { $is_enabled = false;