Commit 847e016814 for woocommerce

commit 847e0168140b898e0b350b9c60c680e32338c301
Author: Chi-Hsuan Huang <chihsuan.tw@gmail.com>
Date:   Fri Dec 5 12:42:43 2025 +0900

    Add scheduled updates promotion inbox notification (#62226)

    * Add Scheduled Updates Promotion Note

    - Introduced the ScheduledUpdatesPromotion class to provide a note in the merchant's inbox promoting scheduled updates for analytics.
    - Updated Events and FeaturePlugin classes to include the new ScheduledUpdatesPromotion.
    - Added unit tests for the ScheduledUpdatesPromotion class to ensure correct functionality and behavior.

    * Add changelog

    * Add @since tag

    * Update ScheduledUpdatesPromotion note content to specify enabling in Analytics > Settings

    * Fix phan errors

    * Fix lint errors

    * Fix lint errors

    * Fix lint errors

diff --git a/plugins/woocommerce/changelog/add-scheduled-updates-promotion-inbox-note b/plugins/woocommerce/changelog/add-scheduled-updates-promotion-inbox-note
new file mode 100644
index 0000000000..1ee8659b2c
--- /dev/null
+++ b/plugins/woocommerce/changelog/add-scheduled-updates-promotion-inbox-note
@@ -0,0 +1,4 @@
+Significance: minor
+Type: add
+
+Add scheduled updates promotion inbox note
diff --git a/plugins/woocommerce/phpstan-baseline.neon b/plugins/woocommerce/phpstan-baseline.neon
index 2e16da0c04..a689e15296 100644
--- a/plugins/woocommerce/phpstan-baseline.neon
+++ b/plugins/woocommerce/phpstan-baseline.neon
@@ -82695,18 +82695,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/MobileAppBanner.php

-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\CustomizeStoreWithBlocks'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
-
 		-
 			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
 			identifier: offsetAccess.nonOffsetAccessible
@@ -82714,3110 +82702,692 @@ parameters:
 			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php

 		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
+			count: 4
 			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php

 		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
 			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#1 \$var of function count expects array\|Countable, array\|object given\.$#'
+			identifier: argument.type
 			count: 1
 			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
+			message: '#^Cannot access property \$products on array\|object\.$#'
+			identifier: property.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access property \$total on array\|object\.$#'
+			identifier: property.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
-			count: 4
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			count: 3
+			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:is_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
+			count: 2
+			path: src/Internal/Admin/Notes/EUVATNumber.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:possibly_add_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/EUVATNumber.php
+
+		-
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
+			count: 5
+			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:possibly_delete_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:possibly_update_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/EmailImprovements.php

 		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/FirstProduct.php

 		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
+			message: '#^Cannot access property \$total on array\|object\.$#'
+			identifier: property.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/FirstProduct.php

 		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
 			count: 4
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/FirstProduct.php

 		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
+			count: 1
+			path: src/Internal/Admin/Notes/FirstProduct.php

 		-
-			message: '#^Parameter \#1 \$var of function count expects array\|Countable, array\|object given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php

 		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php

 		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
+			message: '#^Call to an undefined method Automattic\\WooCommerce\\Admin\\API\\OnboardingPlugins\:\:activate_plugins\(\)\.$#'
 			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			count: 1
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\CustomizingProductCatalog'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
+			message: '#^Call to an undefined method Automattic\\WooCommerce\\Admin\\API\\OnboardingPlugins\:\:install_plugin\(\)\.$#'
+			identifier: method.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Cannot access property \$products on array\|object\.$#'
-			identifier: property.nonObject
+			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
+			identifier: method.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Cannot access property \$total on array\|object\.$#'
-			identifier: property.nonObject
+			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
+			identifier: method.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
+			message: '#^Cannot call method set_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:action_note\(\) has no return type specified\.$#'
+			identifier: missingType.return
+			count: 1
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:install_and_activate_plugin\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:add_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:install_jp_and_wcs_plugins\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:on_install_error\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			message: '#^Parameter \#3 \$url of method Automattic\\WooCommerce\\Admin\\Notes\\Note\:\:add_action\(\) expects string, false given\.$#'
+			identifier: argument.type
+			count: 1
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
+
+		-
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
-			count: 3
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			count: 1
+			path: src/Internal/Admin/Notes/LaunchChecklist.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:is_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/LaunchChecklist.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#1 \$var of function count expects array\|Countable, mixed given\.$#'
+			identifier: argument.type
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/LaunchChecklist.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access offset ''other_platform'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/MagentoMigration.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/MagentoMigration.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:possibly_update_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/MagentoMigration.php

 		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:possibly_add_note\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/MagentoMigration.php

 		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:save_note\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/MagentoMigration.php

 		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
+			identifier: return.empty
+			count: 3
+			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php

 		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizingProductCatalog\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
+			count: 1
+			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php

 		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\.$#'
+			identifier: foreach.nonIterable
 			count: 1
-			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
+			message: '#^Call to an undefined method Automattic\\WooCommerce\\Admin\\Notes\\Note\|Automattic\\WooCommerce\\Admin\\Notes\\WC_Admin_Note\:\:get_type\(\)\.$#'
 			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			count: 1
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\EUVATNumber'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
+			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
+			identifier: method.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			message: '#^Cannot access offset ''product_id'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
+			count: 2
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
+			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			count: 1
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
 			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot call method set_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
+			identifier: method.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
+			message: '#^Constant WC_ADMIN_IMAGES_FOLDER_URL not found\.$#'
+			identifier: constant.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:get_note\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 2
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EUVATNumber.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\EditProductsOnTheMove'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 5
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\EmailImprovements'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/EmailImprovements.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\FirstProduct'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Cannot access property \$total on array\|object\.$#'
-			identifier: property.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 4
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\FirstProduct\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/FirstProduct.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\GivingFeedbackNotes'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
-
-		-
-			message: '#^Call to an undefined method Automattic\\WooCommerce\\Admin\\API\\OnboardingPlugins\:\:activate_plugins\(\)\.$#'
-			identifier: method.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Call to an undefined method Automattic\\WooCommerce\\Admin\\API\\OnboardingPlugins\:\:install_plugin\(\)\.$#'
-			identifier: method.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 5
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\InstallJPAndWCSPlugins'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Cannot call method set_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:action_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:install_and_activate_plugin\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:install_jp_and_wcs_plugins\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:on_install_error\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\InstallJPAndWCSPlugins\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Parameter \#3 \$url of method Automattic\\WooCommerce\\Admin\\Notes\\Note\:\:add_action\(\) expects string, false given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\LaunchChecklist'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Parameter \#1 \$var of function count expects array\|Countable, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/LaunchChecklist.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MagentoMigration'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Cannot access offset ''other_platform'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:save_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MagentoMigration.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\ManageOrdersOnTheGo'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
-			identifier: return.empty
-			count: 3
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
-
-		-
-			message: '#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\.$#'
-			identifier: foreach.nonIterable
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Call to an undefined method Automattic\\WooCommerce\\Admin\\Notes\\Note\|Automattic\\WooCommerce\\Admin\\Notes\\WC_Admin_Note\:\:get_type\(\)\.$#'
-			identifier: method.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 5
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MarketingJetpack'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Cannot access offset ''product_id'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 2
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Cannot call method set_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Constant WC_ADMIN_IMAGES_FOLDER_URL not found\.$#'
-			identifier: constant.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:get_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Parameter \#2 \$note2 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|Automattic\\WooCommerce\\Admin\\Notes\\WC_Admin_Note given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/MarketingJetpack.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MigrateFromShopify'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Cannot access offset ''other_platform'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Cannot access offset ''selling_venues'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 4
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MigrateFromShopify.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MobileApp'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/MobileApp.php
-
-		-
-			message: '#^Access to an undefined property object\:\:\$new_record_amt\.$#'
-			identifier: property.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Access to an undefined property object\:\:\$new_record_date\.$#'
-			identifier: property.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Access to an undefined property object\:\:\$old_record_amt\.$#'
-			identifier: property.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Access to an undefined property object\:\:\$old_record_date\.$#'
-			identifier: property.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\NewSalesRecord'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Cannot call method get_content_data\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Comparison operation "\>" between Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval and float results in an error\.$#'
-			identifier: greater.invalid
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Comparison operation "\>\=" between 0 and Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval results in an error\.$#'
-			identifier: greaterOrEqual.invalid
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but returns false\.$#'
-			identifier: return.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:sum_sales_for_date\(\) has invalid return type Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval\.$#'
-			identifier: class.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:sum_sales_for_date\(\) should return Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval but returns \(float\|int\)\.$#'
-			identifier: return.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^One or more @param tags has an invalid name or invalid syntax\.$#'
-			identifier: phpDoc.parseError
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^PHPDoc tag @param has invalid value \(boolean default true\)\: Unexpected token "default", expected variable at offset 112 on line 6$#'
-			identifier: phpDoc.parseError
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$format of function date_i18n expects string, mixed given\.$#'
-			identifier: argument.type
-			count: 2
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$price of function wc_price expects float, string given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$record_date of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:get_note_with_record_data\(\) expects string, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#1 \$var of function floatval expects array\|bool\|float\|int\|resource\|string\|null, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Parameter \#4 \$total of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:get_note_with_record_data\(\) expects string, Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/NewSalesRecord.php
-
-		-
-			message: '#^Access to an undefined property WooCommerce\:\:\$payment_gateways\.$#'
-			identifier: property.notFound
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\OnboardingPayments'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 2
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/OnboardingPayments.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\OnlineClothingStore'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Cannot access offset ''industry'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 5
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Parameter \#1 \$industries of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:is_in_fashion_industry\(\) expects array, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/OnlineClothingStore.php
-
-		-
-			message: '#^Cannot call method get_content_data\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:backfill_last_milestone\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:clear_scheduled_event\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:get_last_milestone\(\) should return int but returns mixed\.$#'
-			identifier: return.type
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but returns false\.$#'
-			identifier: return.type
-			count: 2
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:init\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:set_last_milestone\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^One or more @param tags has an invalid name or invalid syntax\.$#'
-			identifier: phpDoc.parseError
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^PHPDoc tag @param has invalid value \(boolean default true\)\: Unexpected token "default", expected variable at offset 105 on line 6$#'
-			identifier: phpDoc.parseError
-			count: 1
-			path: src/Internal/Admin/Notes/OrderMilestones.php
-
-		-
-			message: '#^Binary operation "\-" between int\<1, max\> and mixed results in an error\.$#'
-			identifier: binaryOp.invalid
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PaymentsMoreInfoNeeded'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Cannot call method has_incentive\(\) on Automattic\\WooCommerce\\Internal\\Admin\\WcPayWelcomePage\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
-
-		-
-			message: '#^Binary operation "\-" between int\<1, max\> and mixed results in an error\.$#'
-			identifier: binaryOp.invalid
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PaymentsRemindMeLater'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Cannot call method has_incentive\(\) on Automattic\\WooCommerce\\Internal\\Admin\\WcPayWelcomePage\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PerformanceOnMobile'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 4
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
-
-		-
-			message: '#^Binary operation "\." between ''post\.php\?post\='' and mixed results in an error\.$#'
-			identifier: binaryOp.invalid
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PersonalizeStore'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 2
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:possibly_add_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:possibly_delete_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MarketingJetpack\:\:possibly_add_note\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			path: src/Internal/Admin/Notes/MarketingJetpack.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access offset ''other_platform'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			path: src/Internal/Admin/Notes/MigrateFromShopify.php

 		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Cannot access offset ''selling_venues'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			path: src/Internal/Admin/Notes/MigrateFromShopify.php

 		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
+			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			path: src/Internal/Admin/Notes/MigrateFromShopify.php

 		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
 			count: 4
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			path: src/Internal/Admin/Notes/MigrateFromShopify.php

 		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
+			count: 1
+			path: src/Internal/Admin/Notes/MigrateFromShopify.php

 		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
 			count: 1
-			path: src/Internal/Admin/Notes/PersonalizeStore.php
+			path: src/Internal/Admin/Notes/MobileApp.php

 		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
+			count: 1
+			path: src/Internal/Admin/Notes/MobileApp.php

 		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\RealTimeOrderAlerts'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
+			message: '#^Access to an undefined property object\:\:\$new_record_amt\.$#'
+			identifier: property.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
+			message: '#^Access to an undefined property object\:\:\$new_record_date\.$#'
+			identifier: property.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			message: '#^Access to an undefined property object\:\:\$old_record_amt\.$#'
+			identifier: property.notFound
+			count: 1
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
+			message: '#^Access to an undefined property object\:\:\$old_record_date\.$#'
+			identifier: property.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot call method get_content_data\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
+			identifier: method.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
+			message: '#^Comparison operation "\>" between Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval and float results in an error\.$#'
+			identifier: greater.invalid
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Comparison operation "\>\=" between 0 and Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval results in an error\.$#'
+			identifier: greaterOrEqual.invalid
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
-			identifier: return.empty
-			count: 2
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but returns false\.$#'
+			identifier: return.type
+			count: 1
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:is_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:note_exists\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:possibly_add_note\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:sum_sales_for_date\(\) has invalid return type Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval\.$#'
+			identifier: class.notFound
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:sum_sales_for_date\(\) should return Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval but returns \(float\|int\)\.$#'
+			identifier: return.type
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^One or more @param tags has an invalid name or invalid syntax\.$#'
+			identifier: phpDoc.parseError
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^PHPDoc tag @param has invalid value \(boolean default true\)\: Unexpected token "default", expected variable at offset 112 on line 6$#'
+			identifier: phpDoc.parseError
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php
+
+		-
+			message: '#^Parameter \#1 \$format of function date_i18n expects string, mixed given\.$#'
+			identifier: argument.type
+			count: 2
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
+			message: '#^Parameter \#1 \$price of function wc_price expects float, string given\.$#'
 			identifier: argument.type
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
+			message: '#^Parameter \#1 \$record_date of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:get_note_with_record_data\(\) expects string, mixed given\.$#'
 			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			count: 1
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
+			message: '#^Parameter \#1 \$var of function floatval expects array\|bool\|float\|int\|resource\|string\|null, mixed given\.$#'
 			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			count: 1
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
+			message: '#^Parameter \#4 \$total of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\NewSalesRecord\:\:get_note_with_record_data\(\) expects string, Automattic\\WooCommerce\\Internal\\Admin\\Notes\\floatval given\.$#'
 			identifier: argument.type
 			count: 1
-			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+			path: src/Internal/Admin/Notes/NewSalesRecord.php

 		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			message: '#^Access to an undefined property WooCommerce\:\:\$payment_gateways\.$#'
+			identifier: property.notFound
+			count: 1
+			path: src/Internal/Admin/Notes/OnboardingPayments.php

 		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\SellingOnlineCourses'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
+			count: 2
+			path: src/Internal/Admin/Notes/OnboardingPayments.php
+
+		-
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OnboardingPayments.php

 		-
-			message: '#^Cannot access offset ''industry'' on object\.$#'
+			message: '#^Cannot access offset ''industry'' on mixed\.$#'
 			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OnlineClothingStore.php

 		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
+			message: '#^Cannot access offset ''setup_client'' on mixed\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OnlineClothingStore.php

 		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
+			count: 5
+			path: src/Internal/Admin/Notes/OnlineClothingStore.php

 		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OnlineClothingStore.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#1 \$industries of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:is_in_fashion_industry\(\) expects array, mixed given\.$#'
+			identifier: argument.type
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OnlineClothingStore.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
+			message: '#^Cannot call method get_content_data\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
+			identifier: method.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:check_onboarding_profile\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:backfill_last_milestone\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:clear_scheduled_event\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:is_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:get_last_milestone\(\) should return int but returns mixed\.$#'
+			identifier: return.type
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but returns false\.$#'
+			identifier: return.type
+			count: 2
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:possibly_add_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:init\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:possibly_delete_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:possibly_add_note\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:possibly_update_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OrderMilestones\:\:set_last_milestone\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^One or more @param tags has an invalid name or invalid syntax\.$#'
+			identifier: phpDoc.parseError
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
+			message: '#^PHPDoc tag @param has invalid value \(boolean default true\)\: Unexpected token "default", expected variable at offset 105 on line 6$#'
+			identifier: phpDoc.parseError
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/OrderMilestones.php

 		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Binary operation "\-" between int\<1, max\> and mixed results in an error\.$#'
+			identifier: binaryOp.invalid
 			count: 1
-			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php

 		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			message: '#^Cannot call method has_incentive\(\) on Automattic\\WooCommerce\\Internal\\Admin\\WcPayWelcomePage\|null\.$#'
+			identifier: method.nonObject
+			count: 1
+			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php

 		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\TrackingOptIn'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php

 		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsMoreInfoNeeded\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php

 		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			message: '#^Binary operation "\-" between int\<1, max\> and mixed results in an error\.$#'
+			identifier: binaryOp.invalid
+			count: 1
+			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php

 		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|null\.$#'
+			message: '#^Cannot call method has_incentive\(\) on Automattic\\WooCommerce\\Internal\\Admin\\WcPayWelcomePage\|null\.$#'
 			identifier: method.nonObject
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php

 		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:add_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PaymentsRemindMeLater\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			count: 4
+			path: src/Internal/Admin/Notes/PerformanceOnMobile.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PerformanceOnMobile.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
+			message: '#^Binary operation "\." between ''post\.php\?post\='' and mixed results in an error\.$#'
+			identifier: binaryOp.invalid
+			count: 1
+			path: src/Internal/Admin/Notes/PersonalizeStore.php
+
+		-
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
 			count: 2
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PersonalizeStore.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:is_applicable\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/PersonalizeStore.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
+			identifier: return.empty
+			count: 2
+			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:opt_in_to_tracking\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access offset ''industry'' on object\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/SellingOnlineCourses.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:possibly_delete_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:check_onboarding_profile\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/SellingOnlineCourses.php

 		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:possibly_update_note\(\) has no return type specified\.$#'
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\SellingOnlineCourses\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
+			path: src/Internal/Admin/Notes/SellingOnlineCourses.php

 		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
+			identifier: return.empty
+			count: 2
 			path: src/Internal/Admin/Notes/TrackingOptIn.php

 		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:is_applicable\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
 			path: src/Internal/Admin/Notes/TrackingOptIn.php

 		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/TrackingOptIn.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
+			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:opt_in_to_tracking\(\) has no return type specified\.$#'
+			identifier: missingType.return
 			count: 1
 			path: src/Internal/Admin/Notes/TrackingOptIn.php

@@ -85860,13 +83430,7 @@ parameters:
 		-
 			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
 			identifier: method.notFound
-			count: 6
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\WooCommercePayments'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
+			count: 2
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

 		-
@@ -85875,18 +83439,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
 		-
 			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
@@ -85896,7 +83448,7 @@ parameters:
 		-
 			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
-			count: 2
+			count: 1
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

 		-
@@ -85905,24 +83457,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:install_on_action\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -85941,54 +83475,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:possibly_add_note\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommercePayments\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
 		-
 			message: '#^Parameter \#1 \$request of method Automattic\\WooCommerce\\Admin\\API\\Plugins\:\:activate_plugins\(\) expects WP_REST_Request, array\<string, string\> given\.$#'
 			identifier: argument.type
@@ -86001,72 +83493,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommercePayments.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 4
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\WooCommerceSubscriptions'' and ''get_note'' will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
 		-
 			message: '#^Cannot access offset ''product_types'' on mixed\.$#'
 			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php

-		-
-			message: '#^Cannot call method get_is_deleted\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|bool\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:can_be_added\(\) should return bool but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:delete_if_not_applicable\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
 			identifier: return.empty
@@ -86079,60 +83511,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:note_exists\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:possibly_add_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:possibly_delete_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:possibly_update_note\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Parameter \#1 \$arr1 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Parameter \#1 \$data of method WC_Data_Store\:\:delete\(\) expects WC_Data, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{Automattic\\WooCommerce\\Admin\\Notes\\Note, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 4
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Parameter \#1 \$note1 of static method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:update_note_field_if_changed\(\) expects Automattic\\WooCommerce\\Admin\\Notes\\Note, Automattic\\WooCommerce\\Admin\\Notes\\Note\|true given\.$#'
-			identifier: argument.type
-			count: 7
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
-		-
-			message: '#^Parameter \#2 \$arr2 of function array_udiff expects array\<\(int&TK\)\|\(string&TK\), mixed\>, mixed given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
-
 		-
 			message: '#^Parameter \#2 \$haystack of function in_array expects array, mixed given\.$#'
 			identifier: argument.type
diff --git a/plugins/woocommerce/src/Admin/Notes/NoteTraits.php b/plugins/woocommerce/src/Admin/Notes/NoteTraits.php
index c344571a63..b721351e18 100644
--- a/plugins/woocommerce/src/Admin/Notes/NoteTraits.php
+++ b/plugins/woocommerce/src/Admin/Notes/NoteTraits.php
@@ -39,9 +39,15 @@ trait NoteTraits {
 	/**
 	 * Check if the note has been previously added.
 	 *
+	 * @return bool
 	 * @throws NotesUnavailableException Throws exception when notes are unavailable.
 	 */
-	public static function note_exists() {
+	public static function note_exists(): bool {
+		/**
+		 * Data store instance.
+		 *
+		 * @var DataStore $data_store
+		 */
 		$data_store = Notes::load_data_store();
 		$note_ids   = $data_store->get_notes_with_name( self::NOTE_NAME );
 		return ! empty( $note_ids );
@@ -53,11 +59,11 @@ trait NoteTraits {
 	 * @return bool
 	 * @throws NotesUnavailableException Throws exception when notes are unavailable.
 	 */
-	public static function can_be_added() {
+	public static function can_be_added(): bool {
 		$note = self::get_note();

 		if ( ! $note instanceof Note && ! $note instanceof WC_Admin_Note ) {
-			return;
+			return false;
 		}

 		if ( self::note_exists() ) {
@@ -77,24 +83,28 @@ trait NoteTraits {
 	/**
 	 * Add the note if it passes predefined conditions.
 	 *
+	 * @return void
 	 * @throws NotesUnavailableException Throws exception when notes are unavailable.
 	 */
-	public static function possibly_add_note() {
+	public static function possibly_add_note(): void {
 		$note = self::get_note();

 		if ( ! self::can_be_added() ) {
 			return;
 		}

-		$note->save();
+		if ( $note instanceof Note || $note instanceof WC_Admin_Note ) {
+			$note->save();
+		}
 	}

 	/**
 	 * Alias this method for backwards compatibility.
 	 *
+	 * @return void
 	 * @throws NotesUnavailableException Throws exception when notes are unavailable.
 	 */
-	public static function add_note() {
+	public static function add_note(): void {
 		self::possibly_add_note();
 	}

@@ -107,17 +117,24 @@ trait NoteTraits {

 	/**
 	 * Delete this note if it is not applicable, unless has been soft-deleted or actioned already.
+	 *
+	 * @return void
 	 */
-	public static function delete_if_not_applicable() {
+	public static function delete_if_not_applicable(): void {
 		if ( ! self::is_applicable() ) {
+			/**
+			 * Data store instance.
+			 *
+			 * @var DataStore $data_store
+			 */
 			$data_store = Notes::load_data_store();
 			$note_ids   = $data_store->get_notes_with_name( self::NOTE_NAME );

 			if ( ! empty( $note_ids ) ) {
 				$note = Notes::get_note( $note_ids[0] );

-				if ( ! $note->get_is_deleted() && ( Note::E_WC_ADMIN_NOTE_ACTIONED !== $note->get_status() ) ) {
-					return self::possibly_delete_note();
+				if ( $note instanceof Note && ! $note->get_is_deleted() && ( Note::E_WC_ADMIN_NOTE_ACTIONED !== $note->get_status() ) ) {
+					self::possibly_delete_note();
 				}
 			}
 		}
@@ -128,16 +145,22 @@ trait NoteTraits {
 	 * is a hard delete, for where it doesn't make sense to soft delete or
 	 * action the note.
 	 *
+	 * @return void
 	 * @throws NotesUnavailableException Throws exception when notes are unavailable.
 	 */
-	public static function possibly_delete_note() {
+	public static function possibly_delete_note(): void {
+		/**
+		 * Data store instance.
+		 *
+		 * @var DataStore $data_store
+		 */
 		$data_store = Notes::load_data_store();
 		$note_ids   = $data_store->get_notes_with_name( self::NOTE_NAME );

 		foreach ( $note_ids as $note_id ) {
 			$note = Notes::get_note( $note_id );

-			if ( $note ) {
+			if ( $note instanceof Note ) {
 				$data_store->delete( $note );
 			}
 		}
@@ -147,14 +170,21 @@ trait NoteTraits {
 	/**
 	 * Update the note if it passes predefined conditions.
 	 *
+	 * @return void
 	 * @throws NotesUnavailableException Throws exception when notes are unavailable.
 	 */
-	public static function possibly_update_note() {
+	public static function possibly_update_note(): void {
 		$note_in_db = Notes::get_note_by_name( self::NOTE_NAME );
-		if ( ! $note_in_db ) {
+		if ( ! $note_in_db instanceof Note ) {
 			return;
 		}

+		// Backwards compatibility for checking if the note class has a get_note method.
+		/**
+		 * Backwards compatibility check.
+		 *
+		 * @phpstan-ignore-next-line
+		 */
 		if ( ! method_exists( self::class, 'get_note' ) ) {
 			return;
 		}
@@ -173,7 +203,7 @@ trait NoteTraits {
 				self::update_note_field_if_changed( $note_in_db, $note, 'type' ),
 				self::update_note_field_if_changed( $note_in_db, $note, 'locale' ),
 				self::update_note_field_if_changed( $note_in_db, $note, 'source' ),
-				self::update_note_field_if_changed( $note_in_db, $note, 'actions' )
+				self::update_note_field_if_changed( $note_in_db, $note, 'actions' ),
 			),
 			true
 		);
@@ -190,14 +220,19 @@ trait NoteTraits {
 	 * @return bool
 	 * @throws NotesUnavailableException Throws exception when notes are unavailable.
 	 */
-	public static function has_note_been_actioned() {
+	public static function has_note_been_actioned(): bool {
+		/**
+		 * Data store instance.
+		 *
+		 * @var DataStore $data_store
+		 */
 		$data_store = Notes::load_data_store();
 		$note_ids   = $data_store->get_notes_with_name( self::NOTE_NAME );

 		if ( ! empty( $note_ids ) ) {
 			$note = Notes::get_note( $note_ids[0] );

-			if ( Note::E_WC_ADMIN_NOTE_ACTIONED === $note->get_status() ) {
+			if ( $note instanceof Note && Note::E_WC_ADMIN_NOTE_ACTIONED === $note->get_status() ) {
 				return true;
 			}
 		}
@@ -205,33 +240,65 @@ trait NoteTraits {
 		return false;
 	}

-/**
+	/**
 	 * Update a note field of note1 if it's different from note2 with getter and setter.
 	 *
-	 * @param Note   $note1 Note to update.
-	 * @param Note   $note2 Note to compare against.
-	 * @param string $field_name Field to update.
+	 * @param Note|WC_Admin_Note $note1 Note to update.
+	 * @param Note|WC_Admin_Note $note2 Note to compare against.
+	 * @param string             $field_name Field to update.
 	 * @return bool True if the field was updated.
 	 */
-	private static function update_note_field_if_changed( $note1, $note2, $field_name ) {
+	private static function update_note_field_if_changed( $note1, $note2, string $field_name ): bool {
 		// We need to serialize the stdObject to compare it.
+		/**
+		 * Getter method for note1.
+		 *
+		 * @var callable $getter1
+		 */
+		$getter1 = array( $note1, 'get_' . $field_name );
+		/**
+		 * Getter method for note2.
+		 *
+		 * @var callable $getter2
+		 */
+		$getter2           = array( $note2, 'get_' . $field_name );
 		$note1_field_value = self::possibly_convert_object_to_array(
-			call_user_func( array( $note1, 'get_' . $field_name ) )
+			call_user_func( $getter1 )
 		);
 		$note2_field_value = self::possibly_convert_object_to_array(
-			call_user_func( array( $note2, 'get_' . $field_name ) )
+			call_user_func( $getter2 )
 		);

 		if ( 'actions' === $field_name ) {
 			// We need to individually compare the action fields because action object from db is different from action object of note.
 			// For example, action object from db has "id".
 			$diff        = array_udiff(
-				$note1_field_value,
-				$note2_field_value,
-				function( $action1, $action2 ) {
-					if ( $action1->name === $action2->name &&
+				(array) $note1_field_value,
+				(array) $note2_field_value,
+				function ( $action1, $action2 ): int {
+					/**
+					 * First action object.
+					 *
+					 * @var object{name?: string, label?: string, query?: string} $action1
+					 */
+					/**
+					 * Second action object.
+					 *
+					 * @var object{name?: string, label?: string, query?: string} $action2
+					 */
+					if (
+						isset(
+							$action1->name,
+							$action2->name,
+							$action1->label,
+							$action2->label,
+							$action1->query,
+							$action2->query
+						) &&
+						$action1->name === $action2->name &&
 						$action1->label === $action2->label &&
-						$action1->query === $action2->query ) {
+						$action1->query === $action2->query
+					) {
 						return 0;
 					}
 					return -1;
@@ -243,11 +310,20 @@ trait NoteTraits {
 		}

 		if ( $need_update ) {
-			call_user_func(
-				array( $note1, 'set_' . $field_name ),
-				// Get note2 field again because it may have been changed during the comparison.
-				call_user_func( array( $note2, 'get_' . $field_name ) )
-			);
+			/**
+			 * Getter method for note2 field.
+			 *
+			 * @var callable $getter2_again
+			 */
+			$getter2_again = array( $note2, 'get_' . $field_name );
+			/**
+			 * Setter method for note1 field.
+			 *
+			 * @var callable $setter1
+			 */
+			$setter1 = array( $note1, 'set_' . $field_name );
+			// Get note2 field again because it may have been changed during the comparison.
+			call_user_func( $setter1, call_user_func( $getter2_again ) );
 			return true;
 		}
 		return false;
diff --git a/plugins/woocommerce/src/Internal/Admin/Events.php b/plugins/woocommerce/src/Internal/Admin/Events.php
index c39531ec82..da0923e661 100644
--- a/plugins/woocommerce/src/Internal/Admin/Events.php
+++ b/plugins/woocommerce/src/Internal/Admin/Events.php
@@ -32,6 +32,7 @@ use Automattic\WooCommerce\Internal\Admin\Notes\PaymentsRemindMeLater;
 use Automattic\WooCommerce\Internal\Admin\Notes\PerformanceOnMobile;
 use Automattic\WooCommerce\Internal\Admin\Notes\PersonalizeStore;
 use Automattic\WooCommerce\Internal\Admin\Notes\RealTimeOrderAlerts;
+use Automattic\WooCommerce\Internal\Admin\Notes\ScheduledUpdatesPromotion;
 use Automattic\WooCommerce\Internal\Admin\Notes\SellingOnlineCourses;
 use Automattic\WooCommerce\Internal\Admin\Notes\TrackingOptIn;
 use Automattic\WooCommerce\Internal\Admin\Notes\UnsecuredReportFiles;
@@ -87,6 +88,7 @@ class Events {
 		PerformanceOnMobile::class,
 		PersonalizeStore::class,
 		RealTimeOrderAlerts::class,
+		ScheduledUpdatesPromotion::class,
 		TrackingOptIn::class,
 		WooCommercePayments::class,
 		WooCommerceSubscriptions::class,
diff --git a/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php b/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php
index 3b6b9f242a..7e9d43411b 100644
--- a/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php
+++ b/plugins/woocommerce/src/Internal/Admin/FeaturePlugin.php
@@ -16,6 +16,7 @@ use Automattic\WooCommerce\Internal\Admin\Notes\WooCommercePayments;
 use Automattic\WooCommerce\Internal\Admin\Notes\InstallJPAndWCSPlugins;
 use Automattic\WooCommerce\Internal\Admin\Notes\SellingOnlineCourses;
 use Automattic\WooCommerce\Internal\Admin\Notes\MagentoMigration;
+use Automattic\WooCommerce\Internal\Admin\Notes\ScheduledUpdatesPromotion;
 use Automattic\WooCommerce\Admin\Features\Features;
 use Automattic\WooCommerce\Admin\PluginsHelper;
 use Automattic\WooCommerce\Admin\PluginsInstaller;
@@ -189,6 +190,7 @@ class FeaturePlugin {
 		new InstallJPAndWCSPlugins();
 		new SellingOnlineCourses();
 		new MagentoMigration();
+		new ScheduledUpdatesPromotion();
 	}

 	/**
diff --git a/plugins/woocommerce/src/Internal/Admin/Notes/ScheduledUpdatesPromotion.php b/plugins/woocommerce/src/Internal/Admin/Notes/ScheduledUpdatesPromotion.php
new file mode 100644
index 0000000000..2c0564459d
--- /dev/null
+++ b/plugins/woocommerce/src/Internal/Admin/Notes/ScheduledUpdatesPromotion.php
@@ -0,0 +1,116 @@
+<?php
+/**
+ * WooCommerce Admin Scheduled Updates Promotion Note Provider.
+ *
+ * Adds a note to the merchant's inbox promoting scheduled updates for analytics.
+ */
+
+declare( strict_types=1 );
+
+namespace Automattic\WooCommerce\Internal\Admin\Notes;
+
+defined( 'ABSPATH' ) || exit;
+
+use Automattic\WooCommerce\Admin\Features\Features;
+use Automattic\WooCommerce\Admin\Notes\Note;
+use Automattic\WooCommerce\Admin\Notes\NoteTraits;
+
+/**
+ * ScheduledUpdatesPromotion
+ *
+ * @since 10.5.0
+ */
+class ScheduledUpdatesPromotion {
+	/**
+	 * Note traits.
+	 */
+	use NoteTraits;
+
+	/**
+	 * Name of the note for use in the database.
+	 */
+	const NOTE_NAME = 'wc-admin-scheduled-updates-promotion';
+
+	/**
+	 * Name of the option to check.
+	 */
+	const OPTION_NAME = 'woocommerce_analytics_immediate_import';
+
+	/**
+	 * Constructor - attach action hooks.
+	 */
+	public function __construct() {
+		add_action( 'woocommerce_note_action_scheduled-updates-enable', array( $this, 'enable_scheduled_updates' ) );
+	}
+
+	/**
+	 * Should this note exist?
+	 *
+	 * @return bool
+	 */
+	public static function is_applicable() {
+		if ( ! Features::is_enabled( 'analytics-scheduled-import' ) ) {
+			return false;
+		}
+
+		// Get the current option value.
+		// Note: get_option() returns false when option doesn't exist.
+		$immediate_import = get_option( self::OPTION_NAME, false );
+
+		// Only show to existing sites (false/not set) that haven't migrated yet.
+		// New sites have the option set during onboarding, so they won't see this.
+		if ( false !== $immediate_import ) {
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Get the note.
+	 *
+	 * @return Note|null
+	 */
+	public static function get_note() {
+		if ( ! self::is_applicable() ) {
+			return null;
+		}
+
+		$note = new Note();
+
+		$note->set_title( __( 'Analytics now supports scheduled updates', 'woocommerce' ) );
+		$note->set_content( __( 'This provides improved performance to your store, enable it in Analytics > Settings.', 'woocommerce' ) );
+		$note->set_content_data( (object) array() );
+		$note->set_type( Note::E_WC_ADMIN_NOTE_INFORMATIONAL );
+		$note->set_name( self::NOTE_NAME );
+		$note->set_source( 'woocommerce-admin' );
+
+		// Add "Enable" action with custom handler.
+		$note->add_action(
+			'scheduled-updates-enable',
+			__( 'Enable', 'woocommerce' ),
+			wc_admin_url(),
+			Note::E_WC_ADMIN_NOTE_ACTIONED,
+			true,
+			__( 'Scheduled updates enabled', 'woocommerce' )
+		);
+
+		return $note;
+	}
+
+	/**
+	 * Enable scheduled updates when the action is triggered.
+	 *
+	 * @param Note $note The note being actioned.
+	 * @return void
+	 */
+	public function enable_scheduled_updates( $note ): void {
+		// Verify this is our note.
+		if ( self::NOTE_NAME !== $note->get_name() ) {
+			return;
+		}
+
+		// Update the option to enable scheduled mode.
+		update_option( self::OPTION_NAME, 'no' );
+	}
+}
diff --git a/plugins/woocommerce/tests/php/src/Internal/Admin/Notes/ScheduledUpdatesPromotionTest.php b/plugins/woocommerce/tests/php/src/Internal/Admin/Notes/ScheduledUpdatesPromotionTest.php
new file mode 100644
index 0000000000..bc88f72e75
--- /dev/null
+++ b/plugins/woocommerce/tests/php/src/Internal/Admin/Notes/ScheduledUpdatesPromotionTest.php
@@ -0,0 +1,229 @@
+<?php
+/**
+ * Tests for ScheduledUpdatesPromotion class.
+ */
+
+declare( strict_types=1 );
+
+namespace Automattic\WooCommerce\Tests\Internal\Admin\Notes;
+
+use Automattic\WooCommerce\Internal\Admin\Notes\ScheduledUpdatesPromotion;
+use Automattic\WooCommerce\Admin\Notes\Note;
+use WC_Unit_Test_Case;
+
+/**
+ * Class ScheduledUpdatesPromotionTest
+ */
+class ScheduledUpdatesPromotionTest extends WC_Unit_Test_Case {
+
+	/**
+	 * Enable the analytics-scheduled-import feature.
+	 *
+	 * @param array $features Existing features.
+	 * @return array Modified features.
+	 */
+	public function enable_feature( $features ) {
+		$features[] = 'analytics-scheduled-import';
+		return $features;
+	}
+
+	/**
+	 * Disable the analytics-scheduled-import feature.
+	 *
+	 * @param array $features Existing features.
+	 * @return array Modified features.
+	 */
+	public function disable_feature( $features ) {
+		return array_diff( $features, array( 'analytics-scheduled-import' ) );
+	}
+
+	/**
+	 * Test is_applicable returns false when feature flag is disabled.
+	 */
+	public function test_is_applicable_returns_false_when_feature_disabled() {
+		// Disable the feature (it's enabled by default in feature-config.php).
+		add_filter( 'woocommerce_admin_features', array( $this, 'disable_feature' ) );
+
+		// Delete option to simulate existing installation.
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		$this->assertFalse( ScheduledUpdatesPromotion::is_applicable() );
+
+		remove_filter( 'woocommerce_admin_features', array( $this, 'disable_feature' ) );
+	}
+
+	/**
+	 * Test is_applicable returns true for existing installations.
+	 */
+	public function test_is_applicable_returns_true_for_existing_installations() {
+		// Enable feature flag.
+		add_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+
+		// Delete option to simulate existing installation (doesn't exist).
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		$this->assertTrue( ScheduledUpdatesPromotion::is_applicable() );
+
+		remove_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+	}
+
+	/**
+	 * Test is_applicable returns false for new installations.
+	 */
+	public function test_is_applicable_returns_false_for_new_installations() {
+		// Enable feature flag.
+		add_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+
+		// Set option to 'yes' to simulate new installation.
+		update_option( 'woocommerce_analytics_immediate_import', 'yes' );
+
+		$this->assertFalse( ScheduledUpdatesPromotion::is_applicable() );
+
+		remove_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+	}
+
+	/**
+	 * Test get_note returns note for existing installations.
+	 */
+	public function test_get_note_returns_note_for_existing_installations() {
+		// Enable feature flag.
+		add_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+
+		// Delete option to simulate existing installation (doesn't exist).
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		$note = ScheduledUpdatesPromotion::get_note();
+
+		$this->assertInstanceOf( Note::class, $note );
+		$this->assertEquals( 'Analytics now supports scheduled updates', $note->get_title() );
+		$this->assertEquals( Note::E_WC_ADMIN_NOTE_INFORMATIONAL, $note->get_type() );
+
+		// Verify action (only 1 action now: Enable).
+		$actions = $note->get_actions();
+		$this->assertCount( 1, $actions, 'Note should have 1 action' );
+		$this->assertEquals( 'scheduled-updates-enable', $actions[0]->name );
+
+		remove_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+	}
+
+	/**
+	 * Test get_note returns null when not applicable.
+	 */
+	public function test_get_note_returns_null_when_not_applicable() {
+		// Disable the feature (it's enabled by default in feature-config.php).
+		add_filter( 'woocommerce_admin_features', array( $this, 'disable_feature' ) );
+
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		$note = ScheduledUpdatesPromotion::get_note();
+
+		$this->assertNull( $note );
+
+		remove_filter( 'woocommerce_admin_features', array( $this, 'disable_feature' ) );
+	}
+
+	/**
+	 * Test that note is added via possibly_add_note for existing installations.
+	 */
+	public function test_possibly_add_note_adds_note_for_existing_installations() {
+		// Enable feature flag.
+		add_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+
+		// Delete option to simulate existing installation.
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		ScheduledUpdatesPromotion::possibly_add_note();
+
+		// Verify note was created.
+		$data_store = \WC_Data_Store::load( 'admin-note' );
+		$note_ids   = $data_store->get_notes_with_name( ScheduledUpdatesPromotion::NOTE_NAME );
+
+		$this->assertNotEmpty( $note_ids, 'Note should be created for existing installations' );
+
+		remove_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+	}
+
+	/**
+	 * Test that possibly_add_note prevents duplicates.
+	 */
+	public function test_possibly_add_note_prevents_duplicates() {
+		// Enable feature flag.
+		add_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+
+		// Delete option to simulate existing installation.
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		// Add note first time.
+		ScheduledUpdatesPromotion::possibly_add_note();
+
+		// Try to add again.
+		ScheduledUpdatesPromotion::possibly_add_note();
+
+		// Verify only one note exists.
+		$data_store = \WC_Data_Store::load( 'admin-note' );
+		$note_ids   = $data_store->get_notes_with_name( ScheduledUpdatesPromotion::NOTE_NAME );
+
+		$this->assertCount( 1, $note_ids, 'Only one note should exist' );
+
+		remove_filter( 'woocommerce_admin_features', array( $this, 'enable_feature' ) );
+	}
+
+	/**
+	 * Test enable action handler updates option.
+	 */
+	public function test_enable_action_updates_option() {
+		// Delete option to simulate existing installation.
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		// Get the note.
+		$note = ScheduledUpdatesPromotion::get_note();
+		$note->save();
+
+		// Create instance and trigger action.
+		$promotion = new ScheduledUpdatesPromotion();
+		$promotion->enable_scheduled_updates( $note );
+
+		// Verify option was updated.
+		$this->assertEquals( 'no', get_option( 'woocommerce_analytics_immediate_import' ) );
+	}
+
+	/**
+	 * Test that enable action only responds to correct note.
+	 */
+	public function test_enable_action_ignores_wrong_note() {
+		// Delete option to simulate existing installation.
+		delete_option( 'woocommerce_analytics_immediate_import' );
+
+		// Create a different note.
+		$other_note = new Note();
+		$other_note->set_name( 'some-other-note' );
+
+		// Create instance and trigger action.
+		$promotion = new ScheduledUpdatesPromotion();
+		$promotion->enable_scheduled_updates( $other_note );
+
+		// Verify option was NOT updated (still null/doesn't exist).
+		$this->assertFalse( get_option( 'woocommerce_analytics_immediate_import' ), 'Option should not exist' );
+	}
+
+	/**
+	 * Clean up after each test.
+	 */
+	public function tearDown(): void {
+		parent::tearDown();
+
+		// Delete all test notes.
+		$data_store = \WC_Data_Store::load( 'admin-note' );
+		$note_ids   = $data_store->get_notes_with_name( ScheduledUpdatesPromotion::NOTE_NAME );
+
+		foreach ( $note_ids as $note_id ) {
+			$note = \Automattic\WooCommerce\Admin\Notes\Notes::get_note( $note_id );
+			if ( $note ) {
+				$note->delete();
+			}
+		}
+
+		// Reset options.
+		delete_option( 'woocommerce_analytics_immediate_import' );
+	}
+}