diff --git a/packages/plans-grid-next/src/components/shared/header-price/index.tsx b/packages/plans-grid-next/src/components/shared/header-price/index.tsx
index f79077957bd51..041c866b20fa7 100644
--- a/packages/plans-grid-next/src/components/shared/header-price/index.tsx
+++ b/packages/plans-grid-next/src/components/shared/header-price/index.tsx
@@ -57,41 +57,34 @@ const HeaderPrice = ( { planSlug, visibleGridPlans }: HeaderPriceProps ) => {
return (
{ ! current && (
-
+
{ translate( 'Limited Time Offer' ) }
) }
- { isLargeCurrency ? (
-
- ) : (
+
);
}
diff --git a/packages/plans-grid-next/src/components/shared/header-price/style.scss b/packages/plans-grid-next/src/components/shared/header-price/style.scss
index 4c79e6daab5c1..f4ae64c4fb888 100644
--- a/packages/plans-grid-next/src/components/shared/header-price/style.scss
+++ b/packages/plans-grid-next/src/components/shared/header-price/style.scss
@@ -93,16 +93,6 @@
white-space: nowrap;
width: fit-content;
- &.is-intro-offer {
- background-color: inherit;
- color: var(--studio-blue-50);
- font-weight: 600;
- letter-spacing: inherit;
- padding: 0;
- text-align: left;
- text-transform: uppercase;
- }
-
&.is-hidden {
visibility: hidden;
}
diff --git a/packages/plans-grid-next/src/hooks/data-store/use-plan-billing-description.tsx b/packages/plans-grid-next/src/hooks/data-store/use-plan-billing-description.tsx
index bceaee161ae65..d33cbaf4a4ca4 100644
--- a/packages/plans-grid-next/src/hooks/data-store/use-plan-billing-description.tsx
+++ b/packages/plans-grid-next/src/hooks/data-store/use-plan-billing-description.tsx
@@ -109,23 +109,23 @@ export default function usePlanBillingDescription( {
*/
if ( introOffer?.intervalCount && introOffer.intervalUnit && ! introOffer.isOfferComplete ) {
if ( originalPriceFullTermText ) {
+ /* Introductory offers for monthly plans */
if ( isMonthlyPlan ) {
- if ( 1 === introOffer.intervalCount ) {
- return translate(
- 'per month, for your first %(introOfferIntervalUnit)s,{{br/}}' +
- 'then %(rawPrice)s billed monthly, excl. taxes',
- {
- args: {
- rawPrice: originalPriceFullTermText,
- introOfferIntervalUnit: introOffer.intervalUnit,
- },
- components: { br:
},
- comment: 'excl. taxes is short for excluding taxes',
- }
- );
- }
-
+ /* If the offer is for X months */
if ( 'month' === introOffer.intervalUnit ) {
+ if ( 1 === introOffer.intervalCount ) {
+ return translate(
+ 'for your first month,{{br/}}' + 'then %(rawPrice)s billed monthly, excl. taxes',
+ {
+ args: {
+ rawPrice: originalPriceFullTermText,
+ },
+ components: { br:
},
+ comment: 'excl. taxes is short for excluding taxes',
+ }
+ );
+ }
+
return translate(
'for your first %(introOfferIntervalCount)s months,{{br/}}' +
'then %(rawPrice)s billed monthly, excl. taxes',
@@ -140,7 +140,21 @@ export default function usePlanBillingDescription( {
);
}
+ /* If the offer is for X years of monthly intervals */
if ( 'year' === introOffer.intervalUnit ) {
+ if ( 1 === introOffer.intervalCount ) {
+ return translate(
+ 'for your first year,{{br/}}' + 'then %(rawPrice)s billed monthly, excl. taxes',
+ {
+ args: {
+ rawPrice: originalPriceFullTermText,
+ },
+ components: { br:
},
+ comment: 'excl. taxes is short for excluding taxes',
+ }
+ );
+ }
+
return translate(
'per month, for your first %(introOfferIntervalCount)s years,{{br/}}' +
'then %(rawPrice)s billed monthly, excl. taxes',
@@ -156,23 +170,24 @@ export default function usePlanBillingDescription( {
}
}
+ /* Introductory offers for yearly plans */
if ( PLAN_ANNUAL_PERIOD === billingPeriod ) {
- if ( 1 === introOffer.intervalCount ) {
- return translate(
- 'per month, for your first %(introOfferIntervalUnit)s,{{br/}}' +
- 'then %(rawPrice)s billed annually, excl. taxes',
- {
- args: {
- rawPrice: originalPriceFullTermText,
- introOfferIntervalUnit: introOffer.intervalUnit,
- },
- components: { br:
},
- comment: 'excl. taxes is short for excluding taxes',
- }
- );
- }
-
+ /* If the offer is for X months of a yearly plan */
if ( 'month' === introOffer.intervalUnit ) {
+ if ( 1 === introOffer.intervalCount ) {
+ return translate(
+ 'for your first month,{{br/}}' + 'then %(rawPrice)s billed annually, excl. taxes',
+ {
+ args: {
+ rawPrice: originalPriceFullTermText,
+ introOfferIntervalUnit: introOffer.intervalUnit,
+ },
+ components: { br:
},
+ comment: 'excl. taxes is short for excluding taxes',
+ }
+ );
+ }
+
return translate(
'for your first %(introOfferIntervalCount)s months,{{br/}}' +
'then %(rawPrice)s billed annually, excl. taxes',
@@ -187,12 +202,29 @@ export default function usePlanBillingDescription( {
);
}
+ /* If the offer is for X years of a yearly plan */
if ( 'year' === introOffer.intervalUnit ) {
+ if ( 1 === introOffer.intervalCount ) {
+ return translate(
+ 'per month, %(introOfferFormattedPrice)s for your first year,{{br/}}' +
+ 'then %(rawPrice)s billed annually, excl. taxes',
+ {
+ args: {
+ introOfferFormattedPrice: introOffer.formattedPrice,
+ rawPrice: originalPriceFullTermText,
+ },
+ components: { br:
},
+ comment: 'excl. taxes is short for excluding taxes',
+ }
+ );
+ }
+
return translate(
- 'per month, for your first %(introOfferIntervalCount)s years,{{br/}}' +
+ 'per month, %(introOfferFormattedPrice)s for your first %(introOfferIntervalCount)s years,{{br/}}' +
'then %(rawPrice)s billed annually, excl. taxes',
{
args: {
+ introOfferFormattedPrice: introOffer.formattedPrice,
rawPrice: originalPriceFullTermText,
introOfferIntervalCount: introOffer.intervalCount,
},