diff --git a/plugins/woocommerce-admin/changelogs/update-7319_enable_wc_pay_experiment b/plugins/woocommerce-admin/changelogs/update-7319_enable_wc_pay_experiment new file mode 100644 index 00000000000..1bc7a847ba8 --- /dev/null +++ b/plugins/woocommerce-admin/changelogs/update-7319_enable_wc_pay_experiment @@ -0,0 +1,4 @@ +Significance: minor +Type: Enhancement + +Add experiment for promoting WooCommerce Payments in payment methods table. #7666 diff --git a/plugins/woocommerce-admin/client/settings-recommendations/recommendations-eligibility-wrapper.tsx b/plugins/woocommerce-admin/client/settings-recommendations/recommendations-eligibility-wrapper.tsx index 74cea6b771c..d9bd2775664 100644 --- a/plugins/woocommerce-admin/client/settings-recommendations/recommendations-eligibility-wrapper.tsx +++ b/plugins/woocommerce-admin/client/settings-recommendations/recommendations-eligibility-wrapper.tsx @@ -19,7 +19,7 @@ const RecommendationsEligibilityWrapper: React.FC = ( { children } ) => { SHOW_MARKETPLACE_SUGGESTION_OPTION, ] ); const canShowMarketplaceSuggestions = - getOption( SHOW_MARKETPLACE_SUGGESTION_OPTION ) === 'yes'; + getOption( SHOW_MARKETPLACE_SUGGESTION_OPTION ) !== 'no'; return hasFinishedResolving && canShowMarketplaceSuggestions; } ); diff --git a/plugins/woocommerce-admin/config/core.json b/plugins/woocommerce-admin/config/core.json index b00cdbd9790..590927ab74d 100644 --- a/plugins/woocommerce-admin/config/core.json +++ b/plugins/woocommerce-admin/config/core.json @@ -18,6 +18,6 @@ "store-alerts": true, "tasks": false, "transient-notices": true, - "wc-pay-promotion": false + "wc-pay-promotion": true } } diff --git a/plugins/woocommerce-admin/config/plugin.json b/plugins/woocommerce-admin/config/plugin.json index afcc7676997..ff4ca9470f8 100644 --- a/plugins/woocommerce-admin/config/plugin.json +++ b/plugins/woocommerce-admin/config/plugin.json @@ -18,6 +18,6 @@ "store-alerts": true, "tasks": false, "transient-notices": true, - "wc-pay-promotion": false + "wc-pay-promotion": true } } diff --git a/plugins/woocommerce-admin/src/Features/PaymentGatewaySuggestions/EvaluateSuggestion.php b/plugins/woocommerce-admin/src/Features/PaymentGatewaySuggestions/EvaluateSuggestion.php index b94c8ecb3bb..122c8ed79fb 100644 --- a/plugins/woocommerce-admin/src/Features/PaymentGatewaySuggestions/EvaluateSuggestion.php +++ b/plugins/woocommerce-admin/src/Features/PaymentGatewaySuggestions/EvaluateSuggestion.php @@ -16,12 +16,12 @@ class EvaluateSuggestion { /** * Evaluates the spec and returns the suggestion. * - * @param array $spec The suggestion to evaluate. - * @return array The evaluated suggestion. + * @param object|array $spec The suggestion to evaluate. + * @return object The evaluated suggestion. */ public static function evaluate( $spec ) { $rule_evaluator = new RuleEvaluator(); - $suggestion = (object) $spec; + $suggestion = is_array( $spec ) ? (object) $spec : clone $spec; if ( isset( $suggestion->is_visible ) ) { $is_visible = $rule_evaluator->evaluate( $suggestion->is_visible ); diff --git a/plugins/woocommerce-admin/src/Features/WcPayPromotion/Init.php b/plugins/woocommerce-admin/src/Features/WcPayPromotion/Init.php index 2481605e71a..b6ef01ccf5d 100644 --- a/plugins/woocommerce-admin/src/Features/WcPayPromotion/Init.php +++ b/plugins/woocommerce-admin/src/Features/WcPayPromotion/Init.php @@ -15,7 +15,8 @@ use Automattic\WooCommerce\Admin\Features\PaymentGatewaySuggestions\EvaluateSugg * WC Pay Promotion engine. */ class Init { - const SPECS_TRANSIENT_NAME = 'woocommerce_admin_payment_method_promotion_specs'; + const SPECS_TRANSIENT_NAME = 'woocommerce_admin_payment_method_promotion_specs'; + const EXPLAT_VARIATION_PREFIX = 'woocommerce_wc_pay_promotion_payment_methods_table_'; /** * Constructor. @@ -113,7 +114,7 @@ class Init { $allow_tracking ); - $variation_name = $abtest->get_variation( 'woocommerce_wc_pay_promotion_payment_methods_table_' . $wc_pay_spec->additional_info->experiment_version ); + $variation_name = $abtest->get_variation( self::EXPLAT_VARIATION_PREFIX . $wc_pay_spec->additional_info->experiment_version ); if ( 'treatment' === $variation_name ) { return true; diff --git a/plugins/woocommerce-admin/tests/features/payment-gateway-suggestions/evaluate-suggestion.php b/plugins/woocommerce-admin/tests/features/payment-gateway-suggestions/evaluate-suggestion.php index 42800164975..23965621fbd 100644 --- a/plugins/woocommerce-admin/tests/features/payment-gateway-suggestions/evaluate-suggestion.php +++ b/plugins/woocommerce-admin/tests/features/payment-gateway-suggestions/evaluate-suggestion.php @@ -31,7 +31,7 @@ class WC_Tests_PaymentGatewaySuggestions_EvaluateSuggestion extends WC_Unit_Test $suggestion = array( 'id' => 'mock-gateway', ); - $evaluated = EvaluateSuggestion::evaluate( $suggestion ); + $evaluated = EvaluateSuggestion::evaluate( (object) $suggestion ); $this->assertEquals( (object) $suggestion, $evaluated ); } @@ -49,7 +49,7 @@ class WC_Tests_PaymentGatewaySuggestions_EvaluateSuggestion extends WC_Unit_Test 'operation' => '=', ), ); - $evaluated = EvaluateSuggestion::evaluate( $suggestion ); + $evaluated = EvaluateSuggestion::evaluate( (object) $suggestion ); $this->assertFalse( $evaluated->is_visible ); } @@ -68,7 +68,7 @@ class WC_Tests_PaymentGatewaySuggestions_EvaluateSuggestion extends WC_Unit_Test ), ); update_option( self::MOCK_OPTION, 'a' ); - $evaluated = EvaluateSuggestion::evaluate( $suggestion ); + $evaluated = EvaluateSuggestion::evaluate( (object) $suggestion ); $this->assertTrue( $evaluated->is_visible ); } }