diff --git a/assets/js/editor-components/incompatible-extension-notice/index.tsx b/assets/js/editor-components/incompatible-extension-notice/index.tsx
index 3e41b2e5d13..18a0e40f6e4 100644
--- a/assets/js/editor-components/incompatible-extension-notice/index.tsx
+++ b/assets/js/editor-components/incompatible-extension-notice/index.tsx
@@ -66,7 +66,7 @@ export function IncompatibleExtensionsNotice( {
sprintf(
// translators: %s is the name of the parent block.
__(
- 'The following extensions may be incompatible with the block-based %s. Learn more',
+ 'Some extensions do not yet support the new %s and may impact the shopper experience. Learn more',
'woo-gutenberg-products-block'
),
blockLabel
@@ -81,7 +81,7 @@ export function IncompatibleExtensionsNotice( {
sprintf(
// translators: %1$s is the name of the extension, %2$s is the name of the parent block.
__(
- '%1$s may be incompatible with the block-based %2$s. Learn more',
+ '%1$s does not yet support the new %2$s and may impact the shopper experience. Learn more',
'woo-gutenberg-products-block'
),
Object.values( incompatiblePaymentMethods )[ 0 ],
diff --git a/src/Domain/Bootstrap.php b/src/Domain/Bootstrap.php
index 9448126ab1a..301a93a9ea7 100644
--- a/src/Domain/Bootstrap.php
+++ b/src/Domain/Bootstrap.php
@@ -36,6 +36,7 @@
use Automattic\WooCommerce\Blocks\Shipping\ShippingController;
use Automattic\WooCommerce\Blocks\Templates\SingleProductTemplateCompatibility;
use Automattic\WooCommerce\Blocks\Templates\ArchiveProductTemplatesCompatibility;
+use Automattic\WooCommerce\Blocks\Domain\Services\OnboardingTasks\TasksController;
/**
* Takes care of bootstrapping the plugin.
@@ -129,6 +130,7 @@ function() {
$this->container->get( DraftOrders::class )->init();
$this->container->get( CreateAccount::class )->init();
$this->container->get( ShippingController::class )->init();
+ $this->container->get( TasksController::class )->init();
// Load assets in admin and on the frontend.
if ( ! $is_rest ) {
@@ -137,6 +139,7 @@ function() {
$this->container->get( AssetsController::class );
$this->container->get( Installer::class )->init();
$this->container->get( GoogleAnalytics::class )->init();
+
}
// Load assets unless this is a request specifically for the store API.
@@ -431,6 +434,12 @@ function ( $container ) {
return new ShippingController( $asset_api, $asset_data_registry );
}
);
+ $this->container->register(
+ TasksController::class,
+ function() {
+ return new TasksController();
+ }
+ );
}
/**
diff --git a/src/Domain/Services/OnboardingTasks/ReviewCheckoutTask.php b/src/Domain/Services/OnboardingTasks/ReviewCheckoutTask.php
new file mode 100644
index 00000000000..5dbaff95929
--- /dev/null
+++ b/src/Domain/Services/OnboardingTasks/ReviewCheckoutTask.php
@@ -0,0 +1,86 @@
+ 0;
+ }
+
+ /**
+ * Action URL.
+ *
+ * @return string
+ */
+ public function get_action_url() {
+ $checkout_page_id = wc_get_page_id( 'checkout' );
+
+ return admin_url( 'site-editor.php?postType=page&postId=' . $checkout_page_id );
+ }
+}
diff --git a/src/Domain/Services/OnboardingTasks/TasksController.php b/src/Domain/Services/OnboardingTasks/TasksController.php
new file mode 100644
index 00000000000..2e1258b2bcc
--- /dev/null
+++ b/src/Domain/Services/OnboardingTasks/TasksController.php
@@ -0,0 +1,29 @@
+