diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json
index f36203ad7a..6d1c814ed2 100644
--- a/services/web/frontend/extracted-translations.json
+++ b/services/web/frontend/extracted-translations.json
@@ -1981,7 +1981,6 @@
"student_disclaimer": "",
"subject": "",
"subject_area": "",
- "subject_to_additional_vat": "",
"submit_title": "",
"subscribe": "",
"subscribe_now": "",
@@ -2038,6 +2037,7 @@
"take_survey": "",
"tax_id_number": "",
"tax_id_type": "",
+ "taxes_may_be_added": "",
"tell_the_project_owner_and_ask_them_to_upgrade": "",
"template": "",
"template_description": "",
diff --git a/services/web/frontend/js/features/subscription/components/shared/price-exceptions.tsx b/services/web/frontend/js/features/subscription/components/shared/price-exceptions.tsx
index 586eec7370..75e7ae9ab8 100644
--- a/services/web/frontend/js/features/subscription/components/shared/price-exceptions.tsx
+++ b/services/web/frontend/js/features/subscription/components/shared/price-exceptions.tsx
@@ -7,13 +7,15 @@ type PriceExceptionsProps = {
export function PriceExceptions({ subscription }: PriceExceptionsProps) {
const { t } = useTranslation()
- const { activeCoupons } = subscription.payment
+ const { activeCoupons, taxRate } = subscription.payment
return (
<>
-
- * {t('subject_to_additional_vat')}
-
+ {!(taxRate > 0) && (
+
+ * {t('taxes_may_be_added')}
+
+ )}
{activeCoupons.length > 0 && (
<>
* {t('coupons_not_included')}:
diff --git a/services/web/frontend/js/features/subscription/components/successful-subscription/successful-subscription.tsx b/services/web/frontend/js/features/subscription/components/successful-subscription/successful-subscription.tsx
index 68dac21626..ab2d3492c4 100644
--- a/services/web/frontend/js/features/subscription/components/successful-subscription/successful-subscription.tsx
+++ b/services/web/frontend/js/features/subscription/components/successful-subscription/successful-subscription.tsx
@@ -178,9 +178,7 @@ function UpgradeSuccess({
components={[, ]} // eslint-disable-line react/jsx-key
/>
-
- * {t('subject_to_additional_vat')}
-
+
{benefitsText && {benefitsText}
}
Tell the project owner0> and ask them to upgrade their Overleaf plan if you need more compile time.",
"template": "Template",
"template_approved_by_publisher": "This template has been approved by the publisher",
diff --git a/services/web/locales/fr.json b/services/web/locales/fr.json
index c3512d7290..8e8d7c13c1 100644
--- a/services/web/locales/fr.json
+++ b/services/web/locales/fr.json
@@ -1008,7 +1008,6 @@
"student": "Étudiant·e",
"student_disclaimer": "Cette réduction pour l’éducation s’applique à tous les étudiant·e·s des établissements du secondaire ou du supérieur (lycées et universités). Nous pouvons être amenés à vous contacter pour confirmer votre éligibilité à cette réduction.",
"subject": "Objet",
- "subject_to_additional_vat": "Selon votre pays, les prix peuvent en plus être sujets à la TVA.",
"submit": "envoyer",
"submit_title": "Publier",
"subscribe": "S’abonner",
@@ -1035,6 +1034,7 @@
"tag_name_is_already_used": "L’étiquette \"__tagName__\" existe déjà",
"tags": "Étiquettes",
"take_me_home": "Retour à la maison !",
+ "taxes_may_be_added": "Selon votre pays, les prix peuvent en plus être sujets à la TVA.",
"template_description": "Description des modèles",
"template_gallery": "Galerie de modèles",
"template_not_found_description": "Cette méthode de création de projets à partir de modèles n’est plus disponible. Merci de vous rendre sur notre galerie des modèles pour trouver d’autres modèles.",
diff --git a/services/web/locales/sv.json b/services/web/locales/sv.json
index dff1ceed88..1dc4baad0d 100644
--- a/services/web/locales/sv.json
+++ b/services/web/locales/sv.json
@@ -761,7 +761,6 @@
"student": "Student",
"student_disclaimer": "Studentrabatten gäller för alla studenter på gymnasienivå eller högre. Vi kan komma att kontakta dig för att bekräfta din behörighet för rabatten.",
"subject": "Ämne",
- "subject_to_additional_vat": "Moms kan tillkomma till priser beroende på ditt land.",
"submit": "Skicka",
"submit_title": "Skicka in",
"subscribe": "Prenumerera",
@@ -786,6 +785,7 @@
"syntax_validation": "Kodkontroll",
"tag_name_cannot_exceed_characters": "Taggnamnet får inte överstiga __maxLength__ tecken.",
"take_me_home": "Ta mig härifrån!",
+ "taxes_may_be_added": "Moms kan tillkomma till priser beroende på ditt land.",
"template_approved_by_publisher": "Denna mall har godkänts av utgivaren",
"template_description": "Mallbeskrivning",
"template_gallery": "Mallgalleri",
diff --git a/services/web/locales/zh-CN.json b/services/web/locales/zh-CN.json
index a64ba1d04c..e77193b897 100644
--- a/services/web/locales/zh-CN.json
+++ b/services/web/locales/zh-CN.json
@@ -1979,7 +1979,6 @@
"students": "学生",
"subject": "主题",
"subject_area": "主题区",
- "subject_to_additional_vat": "价格可能会受到额外的增值税,取决于您的国家。",
"submit": "提交",
"submit_title": "提交",
"subscribe": "订阅",
@@ -2030,6 +2029,7 @@
"tags": "标签",
"take_me_home": "我要返回!",
"take_survey": "参加调查",
+ "taxes_may_be_added": "价格可能会受到额外的增值税,取决于您的国家。",
"tell_the_project_owner_and_ask_them_to_upgrade": "如果您需要更多编译时间,<0>告诉项目所有者0>并要求他们升级其 Overleaf 计划。",
"template": "模版",
"template_approved_by_publisher": "该模板已获得发布者批准",
diff --git a/services/web/test/frontend/features/subscription/components/dashboard/states/active/active.test.tsx b/services/web/test/frontend/features/subscription/components/dashboard/states/active/active.test.tsx
index b7daf6b80d..62153e8a99 100644
--- a/services/web/test/frontend/features/subscription/components/dashboard/states/active/active.test.tsx
+++ b/services/web/test/frontend/features/subscription/components/dashboard/states/active/active.test.tsx
@@ -82,9 +82,17 @@ describe('', function () {
screen.getByRole('heading', { name: subscription.plan.name, level: 3 })
- screen.getByText(
- '* Prices may be subject to additional VAT, depending on your country.'
- )
+ if (subscription.payment.taxRate > 0) {
+ expect(
+ screen.queryByText(
+ '* Taxes may be added, depending on your billing address.'
+ )
+ ).to.be.null
+ } else {
+ screen.getByText(
+ '* Taxes may be added, depending on your billing address.'
+ )
+ }
screen.getByRole('link', { name: 'View invoices' })
diff --git a/services/web/test/frontend/features/subscription/components/successful-subscription/successful-subscription.test.tsx b/services/web/test/frontend/features/subscription/components/successful-subscription/successful-subscription.test.tsx
index b7cb4445b4..ed6fef8aba 100644
--- a/services/web/test/frontend/features/subscription/components/successful-subscription/successful-subscription.test.tsx
+++ b/services/web/test/frontend/features/subscription/components/successful-subscription/successful-subscription.test.tsx
@@ -4,6 +4,7 @@ import SuccessfulSubscription from '../../../../../../frontend/js/features/subsc
import { renderWithSubscriptionDashContext } from '../../helpers/render-with-subscription-dash-context'
import {
annualActiveSubscription,
+ annualActiveSubscriptionEuro,
annualActiveSubscriptionPro,
} from '../../fixtures/subscriptions'
import { ExposedSettings } from '../../../../../../types/exposed-settings'
@@ -123,7 +124,7 @@ describe('successful subscription page', function () {
).to.equal(
`The next payment of ${annualActiveSubscriptionPro.payment.displayPrice} will be collected on ${annualActiveSubscriptionPro.payment.nextPaymentDueAt}.`
)
- screen.getByText(/prices may be subject to additional vat/i)
+ screen.getByText(/taxes may be added, depending on your billing address/i)
screen.getByText(/full access to every AI tool/i, { exact: false })
@@ -162,5 +163,27 @@ describe('successful subscription page', function () {
screen.getByRole('heading', { name: /thanks for subscribing/i })
})
+
+ it('hides tax disclaimer when tax is already included in the price', function () {
+ renderWithSubscriptionDashContext(
+
+
+ ,
+ {
+ metaTags: [
+ {
+ name: 'ol-ExposedSettings',
+ value: {
+ adminEmail: 'foo@example.com',
+ } as ExposedSettings,
+ },
+ { name: 'ol-subscription', value: annualActiveSubscriptionEuro },
+ { name: 'ol-isUpgrade', value: true },
+ ],
+ }
+ )
+
+ expect(screen.queryByText(/taxes may be added/i)).to.be.null
+ })
})
})