From f513b1aa5228a5886ffb6318c76ef7d5a3b51f7c Mon Sep 17 00:00:00 2001 From: Olzhas Askar Date: Fri, 7 Aug 2026 15:12:26 +0200 Subject: [PATCH] Merge pull request #36302 from overleaf/oa-teardown-trial-ineligible-cta [web] Teardown trial ineligible cta GitOrigin-RevId: 4d114943bc2839b29b6eae3a133d6c235f98ffcc --- .../app/src/Features/Project/ProjectController.mjs | 11 +---------- services/web/frontend/extracted-translations.json | 1 - .../components/change-list/owner-paywall-prompt.tsx | 10 ++-------- .../compile-time-warning-upgrade-prompt-inner.tsx | 4 +--- .../components/upgrade-track-changes-modal.tsx | 4 +--- services/web/locales/cs.json | 1 - services/web/locales/da.json | 1 - services/web/locales/de.json | 1 - services/web/locales/en.json | 1 - services/web/locales/es.json | 1 - services/web/locales/fi.json | 1 - services/web/locales/fr.json | 1 - services/web/locales/it.json | 1 - services/web/locales/ja.json | 1 - services/web/locales/ko.json | 1 - services/web/locales/nl.json | 1 - services/web/locales/no.json | 1 - services/web/locales/pl.json | 1 - services/web/locales/pt.json | 1 - services/web/locales/ru.json | 1 - services/web/locales/sv.json | 1 - services/web/locales/tr.json | 1 - services/web/locales/zh-CN.json | 1 - .../change-list/owner-paywall-prompt.test.tsx | 9 --------- ...compile-time-warning-upgrade-prompt-inner.test.tsx | 8 -------- 25 files changed, 5 insertions(+), 60 deletions(-) diff --git a/services/web/app/src/Features/Project/ProjectController.mjs b/services/web/app/src/Features/Project/ProjectController.mjs index ee533c61ce..11ee8bd13c 100644 --- a/services/web/app/src/Features/Project/ProjectController.mjs +++ b/services/web/app/src/Features/Project/ProjectController.mjs @@ -528,7 +528,7 @@ const _ProjectController = { user: (async () => { const user = await User.findById( userId, - 'email first_name last_name referal_id signUpDate featureSwitches features featuresEpoch refProviders alphaProgram betaProgram isAdmin ace labsProgram labsExperiments completedTutorials writefull aiFeatures lastTrial' + 'email first_name last_name referal_id signUpDate featureSwitches features featuresEpoch refProviders alphaProgram betaProgram isAdmin ace labsProgram labsExperiments completedTutorials writefull aiFeatures' ).exec() // Handle case of deleted user if (!user) { @@ -642,15 +642,6 @@ const _ProjectController = { subscription == null || isStandaloneAiAddOnPlanCode(subscription.planCode) - // The test's audience: free users who've spent their trial and can't start - // another, yet still see a misleading "free trial" CTA. - const trialIneligible = - !anonymous && allowedFreeTrial && Boolean(user?.lastTrial) - - if (trialIneligible) { - splitTests.push('paywall-cta-trial-ineligible') - } - const splitTestAssignments = Object.fromEntries( await Promise.all( splitTests.map(async splitTest => [ diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index 20cc6f3480..4c1ef76182 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -1662,7 +1662,6 @@ "refresh": "", "refresh_page_after_linking_dropbox": "", "refresh_page_after_starting_free_trial": "", - "refresh_page_after_subscribing": "", "refreshing": "", "refund_with_description": "", "regards": "", diff --git a/services/web/frontend/js/features/history/components/change-list/owner-paywall-prompt.tsx b/services/web/frontend/js/features/history/components/change-list/owner-paywall-prompt.tsx index c26018aafd..0a8d0e6a75 100644 --- a/services/web/frontend/js/features/history/components/change-list/owner-paywall-prompt.tsx +++ b/services/web/frontend/js/features/history/components/change-list/owner-paywall-prompt.tsx @@ -3,12 +3,10 @@ import { useCallback, useEffect, useState } from 'react' import * as eventTracking from '../../../../infrastructure/event-tracking' import StartFreeTrialButton from '../../../../shared/components/start-free-trial-button' import UpgradeBenefits from '@/shared/components/upgrade-benefits' -import { useFeatureFlag } from '@/shared/context/split-test-context' export function OwnerPaywallPrompt() { const { t } = useTranslation() const [clickedFreeTrialButton, setClickedFreeTrialButton] = useState(false) - const showSubscribeNow = useFeatureFlag('paywall-cta-trial-ineligible') useEffect(() => { eventTracking.send('subscription-funnel', 'editor-click-feature', 'history') @@ -36,15 +34,11 @@ export function OwnerPaywallPrompt() { buttonProps={{ variant: 'premium' }} handleClick={handleFreeTrialClick} > - {showSubscribeNow ? t('subscribe_now') : t('start_free_trial')} + {t('start_free_trial')}

{clickedFreeTrialButton ? ( -

- {showSubscribeNow - ? t('refresh_page_after_subscribing') - : t('refresh_page_after_starting_free_trial')} -

+

{t('refresh_page_after_starting_free_trial')}

) : null} ) diff --git a/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.tsx b/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.tsx index 7561e74cee..ff49e7cd4e 100644 --- a/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.tsx @@ -3,14 +3,12 @@ import StartFreeTrialButton from '@/shared/components/start-free-trial-button' import * as eventTracking from '../../../infrastructure/event-tracking' import { useTranslation } from 'react-i18next' import { FC } from 'react' -import { useFeatureFlag } from '@/shared/context/split-test-context' export const CompileTimeWarningUpgradePromptInner: FC<{ handleDismissWarning: () => void segmentation: eventTracking.Segmentation }> = ({ handleDismissWarning, segmentation }) => { const { t } = useTranslation() - const showSubscribeNow = useFeatureFlag('paywall-cta-trial-ineligible') return ( - {showSubscribeNow ? t('subscribe_now') : t('start_free_trial')} + {t('start_free_trial')} } ariaLive="polite" diff --git a/services/web/frontend/js/features/review-panel/components/upgrade-track-changes-modal.tsx b/services/web/frontend/js/features/review-panel/components/upgrade-track-changes-modal.tsx index f9a3a1c9f8..3d64635ce9 100644 --- a/services/web/frontend/js/features/review-panel/components/upgrade-track-changes-modal.tsx +++ b/services/web/frontend/js/features/review-panel/components/upgrade-track-changes-modal.tsx @@ -18,13 +18,11 @@ import OLRow from '@/shared/components/ol/ol-row' import OLCol from '@/shared/components/ol/ol-col' import MaterialIcon from '@/shared/components/material-icon' import { useEditorContext } from '@/shared/context/editor-context' -import { useFeatureFlag } from '@/shared/context/split-test-context' function UpgradeTrackChangesModal() { const { t } = useTranslation() const { project } = useProjectContext() const user = useUserContext() - const showSubscribeNow = useFeatureFlag('paywall-cta-trial-ineligible') const { upgradeTrackChangesModal: { show, location = 'unknown' }, setUpgradeTrackChangesModal, @@ -96,7 +94,7 @@ function UpgradeTrackChangesModal() { }) } > - {showSubscribeNow ? t('subscribe_now') : t('try_for_free')} + {t('try_for_free')} ) : ( ', function () { fireEvent.click(screen.getByRole('button', { name: 'Start free trial' })) screen.getByText('Please refresh this page after starting your free trial.') }) - - it('shows the "Subscribe now" CTA and subscribe refresh message when paywall-cta-trial-ineligible is enabled', function () { - window.metaAttributesCache.set('ol-splitTestVariants', { - 'paywall-cta-trial-ineligible': 'enabled', - }) - renderPrompt() - fireEvent.click(screen.getByRole('button', { name: 'Subscribe now' })) - screen.getByText('Please refresh this page after subscribing.') - }) }) diff --git a/services/web/test/frontend/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.test.tsx b/services/web/test/frontend/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.test.tsx index 232a240e92..ae735b89ab 100644 --- a/services/web/test/frontend/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.test.tsx +++ b/services/web/test/frontend/features/pdf-preview/components/compile-time-warning-upgrade-prompt-inner.test.tsx @@ -23,12 +23,4 @@ describe('', function () { renderPrompt() screen.getByRole('button', { name: 'Start free trial' }) }) - - it('shows the "Subscribe now" CTA when paywall-cta-trial-ineligible is enabled', function () { - window.metaAttributesCache.set('ol-splitTestVariants', { - 'paywall-cta-trial-ineligible': 'enabled', - }) - renderPrompt() - screen.getByRole('button', { name: 'Subscribe now' }) - }) })