Commit 07d8ca45ef3 for woocommerce

commit 07d8ca45ef351ed72cfd3b51f0df2bdb4cfc1c70
Author: Michael Pretty <prettyboymp@users.noreply.github.com>
Date:   Mon Jun 8 10:40:28 2026 -0400

    Make abandoned cart recovery experimental and opt-in (not default-on for new installs) (#65521)

    * fix: make abandoned cart recovery experimental and opt-in

    The Abandoned cart recovery email feature (added in #65136) was
    auto-enabled on fresh installs via a woocommerce_newly_installed hook and
    registered as a non-experimental feature. A brand-new store therefore
    turned the feature on by default and surfaced the "Abandoned cart
    recovery is enabled" admin notice without any merchant opt-in.

    Remove the fresh-install auto-enable and mark the feature experimental so
    it is off by default everywhere and only activates when a merchant
    explicitly opts in, matching the sibling customer_review_request feature.
    The enable notice now only fires on a deliberate manual enable.

    Reported during 10.9 release testing. Bug introduced in PR #65136.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    * fix: surface plugin incompatibility warnings for abandoned cart recovery

    Set `skip_compatibility_checks` to false for the abandoned_cart_recovery
    feature so a plugin that explicitly declares itself incompatible still
    produces a warning. `default_plugin_compatibility` stays COMPATIBLE, so
    plugins that make no declaration are treated as compatible and produce no
    noise.

    Addresses review feedback on #65521.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    ---------

    Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

diff --git a/plugins/woocommerce/changelog/abandoned-cart-recovery-experimental-optin b/plugins/woocommerce/changelog/abandoned-cart-recovery-experimental-optin
new file mode 100644
index 00000000000..00a068932a4
--- /dev/null
+++ b/plugins/woocommerce/changelog/abandoned-cart-recovery-experimental-optin
@@ -0,0 +1,4 @@
+Significance: patch
+Type: tweak
+
+Make the Abandoned cart recovery feature experimental and opt-in only; it is no longer enabled automatically on new installs.
diff --git a/plugins/woocommerce/includes/class-wc-install.php b/plugins/woocommerce/includes/class-wc-install.php
index 0233d5a07e6..2a659c6b102 100644
--- a/plugins/woocommerce/includes/class-wc-install.php
+++ b/plugins/woocommerce/includes/class-wc-install.php
@@ -373,7 +373,6 @@ class WC_Install {
 		add_action( 'woocommerce_newly_installed', array( __CLASS__, 'maybe_enable_hpos' ), 20 );
 		add_action( 'woocommerce_newly_installed', array( __CLASS__, 'add_coming_soon_option' ), 20 );
 		add_action( 'woocommerce_newly_installed', array( __CLASS__, 'enable_email_improvements_for_newly_installed' ), 20 );
-		add_action( 'woocommerce_newly_installed', array( __CLASS__, 'enable_abandoned_cart_recovery_for_newly_installed' ), 20 );
 		add_action( 'woocommerce_newly_installed', array( __CLASS__, 'enable_customer_stock_notifications_signups' ), 20 );
 		add_action( 'woocommerce_newly_installed', array( __CLASS__, 'enable_analytics_scheduled_import' ), 20 );
 		add_action( 'woocommerce_newly_installed', array( __CLASS__, 'enable_product_instance_caching_for_newly_installed' ), 20 );
@@ -1285,20 +1284,6 @@ class WC_Install {
 		update_option( 'woocommerce_email_improvements_enabled_count', 1 );
 	}

-	/**
-	 * Enable the abandoned cart recovery feature by default for new shops.
-	 *
-	 * Existing stores receiving this as a plugin update remain default-off and
-	 * must opt in via WooCommerce → Settings → Advanced → Features.
-	 *
-	 * @since 10.9.0
-	 *
-	 * @return void
-	 */
-	public static function enable_abandoned_cart_recovery_for_newly_installed() {
-		wc_get_container()->get( FeaturesController::class )->change_feature_enable( 'abandoned_cart_recovery', true );
-	}
-
 	/**
 	 * Enable customer stock notifications signups by default for new shops.
 	 *
diff --git a/plugins/woocommerce/src/Internal/Features/FeaturesController.php b/plugins/woocommerce/src/Internal/Features/FeaturesController.php
index 780f841c66c..0354a8558e4 100644
--- a/plugins/woocommerce/src/Internal/Features/FeaturesController.php
+++ b/plugins/woocommerce/src/Internal/Features/FeaturesController.php
@@ -451,11 +451,10 @@ class FeaturesController {
 					'Send a reminder email to shoppers who didn\'t finish checking out.',
 					'woocommerce'
 				),
-				// Skip compatibility checks like the other opt-in transactional-email features.
-				'skip_compatibility_checks'    => true,
+				'skip_compatibility_checks'    => false,
 				'default_plugin_compatibility' => FeaturePluginCompatibility::COMPATIBLE,
 				'enabled_by_default'           => false,
-				'is_experimental'              => false,
+				'is_experimental'              => true,
 			),
 			'email_improvements'                 => array(
 				'name'                         => __( 'Email improvements', 'woocommerce' ),