Skip to content

Commit

Permalink
Multi-year Plans Default Experiment: Ensure only the onboarding flo…
Browse files Browse the repository at this point in the history
…w is eligible (#98563)
  • Loading branch information
jeyip authored and Jess Boctor committed Jan 22, 2025
1 parent 33f35e3 commit 41d9273
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ function UnifiedPlansStep( {
}: UnifiedPlansStepProps ) {
const [ isDesktop, setIsDesktop ] = useState< boolean | undefined >( isDesktopViewport() );
const dispatch = reduxUseDispatch();
const longerPlanTermDefaultExperiment = useLongerPlanTermDefaultExperiment();
const longerPlanTermDefaultExperiment = useLongerPlanTermDefaultExperiment( flowName );
const translate = useTranslate();
const initializedSitesBackUrl = useSelector( ( state ) =>
getCurrentUserSiteCount( state ) ? '/sites/' : null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { ONBOARDING_FLOW } from '@automattic/onboarding';
import { useExperiment } from 'calypso/lib/explat';

const useTermFromExperimentVariant = (
Expand All @@ -23,7 +24,9 @@ const useTermFromExperimentVariant = (
* define the default term in the grid/plans page.
*
*/
const useLongerPlanTermDefaultExperiment = (): {
const useLongerPlanTermDefaultExperiment = (
flowName?: string | null
): {
isLoadingExperiment: boolean;
term?: string | null;
// TODO: Consider removing this and always return concrete term values (where undefined/null would mean no term savings)
Expand All @@ -33,7 +36,10 @@ const useLongerPlanTermDefaultExperiment = (): {
// variation names 'default_to_three_year_plans', 'default_to_two_year_plans'
// and 'emphasize_savings_only'.
const [ isLoadingExperimentAssignment, experimentAssignment ] = useExperiment(
'calypso_plans_page_emphasize_longer_plan_savings'
'calypso_plans_page_emphasize_longer_plan_savings',
{
isEligible: flowName === ONBOARDING_FLOW,
}
);
const term = useTermFromExperimentVariant( experimentAssignment?.variationName );

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { isEnabled } from '@automattic/calypso-config';
import {
getPlanSlugForTermVariant,
PlanSlug,
Expand All @@ -17,6 +16,7 @@ import useLongerPlanTermDefaultExperiment from './experiments/use-longer-plan-te
import useCheckPlanAvailabilityForPurchase from './use-check-plan-availability-for-purchase';

const useEligibilityForTermSavingsPriceDisplay = ( {
flowName,
hiddenPlans,
intent,
isSubdomainNotGenerated,
Expand All @@ -27,6 +27,7 @@ const useEligibilityForTermSavingsPriceDisplay = ( {
siteId,
isInSignup,
}: {
flowName?: string | null;
hiddenPlans?: HiddenPlans;
intent?: PlansIntent;
isSubdomainNotGenerated?: boolean;
Expand All @@ -37,7 +38,7 @@ const useEligibilityForTermSavingsPriceDisplay = ( {
siteId?: number | null;
isInSignup?: boolean;
} ) => {
const longerPlanTermDefaultExperiment = useLongerPlanTermDefaultExperiment();
const longerPlanTermDefaultExperiment = useLongerPlanTermDefaultExperiment( flowName );
const availablePlanSlugs = usePlansFromTypes( {
planTypes: usePlanTypesWithIntent( {
intent,
Expand Down Expand Up @@ -78,11 +79,7 @@ const useEligibilityForTermSavingsPriceDisplay = ( {
return false;
}

return (
( isEnabled( 'plans/term-savings-price-display' ) ||
longerPlanTermDefaultExperiment.isEligibleForTermSavings ) &&
isInSignup
);
return longerPlanTermDefaultExperiment.isEligibleForTermSavings && isInSignup;
};

export default useEligibilityForTermSavingsPriceDisplay;
3 changes: 2 additions & 1 deletion client/my-sites/plans-features-main/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ const PlansFeaturesMain = ( {
const showUpgradeableStorage = config.isEnabled( 'plans/upgradeable-storage' );
const getPlanTypeDestination = usePlanTypeDestinationCallback();

const longerPlanTermDefaultExperiment = useLongerPlanTermDefaultExperiment();
const longerPlanTermDefaultExperiment = useLongerPlanTermDefaultExperiment( flowName );

const resolveModal = useModalResolutionCallback( {
isCustomDomainAllowedOnFreePlan,
Expand Down Expand Up @@ -415,6 +415,7 @@ const PlansFeaturesMain = ( {
};

const enableTermSavingsPriceDisplay = useEligibilityForTermSavingsPriceDisplay( {
flowName: flowName,
selectedPlan,
hiddenPlans,
isSubdomainNotGenerated: ! resolvedSubdomainName.result,
Expand Down

0 comments on commit 41d9273

Please sign in to comment.