diff --git a/modules/ppcp-settings/resources/js/Components/Screens/Onboarding/StepProducts.js b/modules/ppcp-settings/resources/js/Components/Screens/Onboarding/StepProducts.js
index cbd642327..ee99f4acf 100644
--- a/modules/ppcp-settings/resources/js/Components/Screens/Onboarding/StepProducts.js
+++ b/modules/ppcp-settings/resources/js/Components/Screens/Onboarding/StepProducts.js
@@ -9,6 +9,7 @@ const PRODUCTS_CHECKBOX_GROUP_NAME = 'products';
const StepProducts = () => {
const { products, setProducts } = OnboardingHooks.useProducts();
+ const { canUseSubscriptions } = OnboardingHooks.useFlags();
return (
diff --git a/modules/ppcp-settings/resources/js/data/onboarding/hooks.js b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
index 5da85634f..b0f41d450 100644
--- a/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
+++ b/modules/ppcp-settings/resources/js/data/onboarding/hooks.js
@@ -123,3 +123,8 @@ export const useNavigationState = () => {
business,
};
};
+
+export const useFlags = () => {
+ const { flags } = useHooks();
+ return flags;
+};
diff --git a/modules/ppcp-settings/resources/js/data/onboarding/reducer.js b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js
index 5b59b75e6..4ceb53f20 100644
--- a/modules/ppcp-settings/resources/js/data/onboarding/reducer.js
+++ b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js
@@ -20,6 +20,7 @@ const defaultTransient = {
canUseCasualSelling: false,
canUseVaulting: false,
canUseCardPayments: false,
+ canUseSubscriptions: false,
},
};
diff --git a/modules/ppcp-settings/services.php b/modules/ppcp-settings/services.php
index 2c646f054..31880dca0 100644
--- a/modules/ppcp-settings/services.php
+++ b/modules/ppcp-settings/services.php
@@ -37,6 +37,7 @@ return array(
$can_use_casual_selling = $container->get( 'settings.casual-selling.eligible' );
$can_use_vaulting = $container->has( 'save-payment-methods.eligible' ) && $container->get( 'save-payment-methods.eligible' );
$can_use_card_payments = $container->has( 'card-fields.eligible' ) && $container->get( 'card-fields.eligible' );
+ $can_use_subscriptions = $container->has( 'wc-subscriptions.helper' ) && $container->get( 'wc-subscriptions.helper' )->plugin_is_active();
// Card payments are disabled for this plugin when WooPayments is active.
// TODO: Move this condition to the card-fields.eligible service?
@@ -47,7 +48,8 @@ return array(
return new OnboardingProfile(
$can_use_casual_selling,
$can_use_vaulting,
- $can_use_card_payments
+ $can_use_card_payments,
+ $can_use_subscriptions
);
},
'settings.data.general' => static function ( ContainerInterface $container ) : GeneralSettings {
diff --git a/modules/ppcp-settings/src/Data/OnboardingProfile.php b/modules/ppcp-settings/src/Data/OnboardingProfile.php
index 9381b58ee..633f13269 100644
--- a/modules/ppcp-settings/src/Data/OnboardingProfile.php
+++ b/modules/ppcp-settings/src/Data/OnboardingProfile.php
@@ -48,13 +48,15 @@ class OnboardingProfile extends AbstractDataModel {
public function __construct(
bool $can_use_casual_selling = false,
bool $can_use_vaulting = false,
- bool $can_use_card_payments = false
+ bool $can_use_card_payments = false,
+ bool $can_use_subscriptions = false
) {
parent::__construct();
$this->flags['can_use_casual_selling'] = $can_use_casual_selling;
$this->flags['can_use_vaulting'] = $can_use_vaulting;
$this->flags['can_use_card_payments'] = $can_use_card_payments;
+ $this->flags['can_use_subscriptions'] = $can_use_subscriptions;
}
/**
diff --git a/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php b/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php
index 02e7c80cd..d4273228f 100644
--- a/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php
+++ b/modules/ppcp-settings/src/Endpoint/OnboardingRestEndpoint.php
@@ -77,6 +77,9 @@ class OnboardingRestEndpoint extends RestEndpoint {
'can_use_card_payments' => array(
'js_name' => 'canUseCardPayments',
),
+ 'can_use_subscriptions' => array(
+ 'js_name' => 'canUseSubscriptions',
+ ),
);
/**