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' })
- })
})