import { isEnabled } from '@automattic/calypso-config'; import { formatNumber } from '@automattic/number-formatters'; import i18n, { translate } from 'i18n-calypso'; import { FEATURE_13GB_STORAGE, FEATURE_100GB_STORAGE, FEATURE_200GB_STORAGE, FEATURE_3GB_STORAGE, FEATURE_1GB_STORAGE, FEATURE_50GB_STORAGE, FEATURE_6GB_STORAGE, FEATURE_ACCEPT_PAYMENTS, FEATURE_ACTIVITY_LOG, FEATURE_ACTIVITY_LOG_1_YEAR_V2, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, FEATURE_ADVANCED_SEO, FEATURE_ADVANCED_SEO_EXPANDED_ABBR, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_ALL_BUSINESS_FEATURES, FEATURE_ALL_FREE_FEATURES, FEATURE_ALL_FREE_FEATURES_JETPACK, FEATURE_ALL_PERSONAL_FEATURES, FEATURE_ALL_PREMIUM_FEATURES, FEATURE_ALL_PREMIUM_FEATURES_JETPACK, FEATURE_ANTISPAM_V2, FEATURE_WAF, FEATURE_AUDIO_UPLOADS, FEATURE_AUTOMATED_RESTORES, FEATURE_AUTOMATIC_SECURITY_FIXES, FEATURE_BACKUP_ARCHIVE_30, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_BACKUP_DAILY_V2, FEATURE_BACKUP_REALTIME_V2, FEATURE_BACKUP_STORAGE_SPACE_UNLIMITED, FEATURE_BLANK, FEATURE_BLOG_DOMAIN, FEATURE_COLLECT_PAYMENTS_V2, FEATURE_COMMUNITY_SUPPORT, FEATURE_CRM_V2, FEATURE_CUSTOM_DOMAIN, FEATURE_EARN_AD, FEATURE_EASY_SITE_MIGRATION, FEATURE_ECOMMERCE_MARKETING, FEATURE_EMAIL_FORWARDING_EXTENDED_LIMIT, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_FREE_BLOG_DOMAIN, FEATURE_FREE_DOMAIN, FEATURE_FREE_THEMES, FEATURE_FREE_THEMES_SIGNUP, FEATURE_FREE_WORDPRESS_THEMES, FEATURE_GOOGLE_ANALYTICS, FEATURE_GOOGLE_MY_BUSINESS, FEATURE_HOSTING, FEATURE_INSTALL_PLUGINS, WPCOM_FEATURES_INSTALL_PURCHASED_PLUGINS, FEATURE_JETPACK_1TB_BACKUP_STORAGE, FEATURE_JETPACK_ADVANCED, FEATURE_JETPACK_ALL_BACKUP_SECURITY_FEATURES, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_JETPACK_BACKUP_REALTIME, FEATURE_JETPACK_BACKUP_REALTIME_MONTHLY, FEATURE_JETPACK_BACKUP_T0_MONTHLY, FEATURE_JETPACK_BACKUP_T0_YEARLY, FEATURE_JETPACK_BACKUP_T1_MONTHLY, FEATURE_JETPACK_BACKUP_T1_YEARLY, FEATURE_JETPACK_BACKUP_T1_BI_YEARLY, FEATURE_JETPACK_BACKUP_T2_MONTHLY, FEATURE_JETPACK_BACKUP_T2_YEARLY, FEATURE_JETPACK_CRM, FEATURE_JETPACK_CRM_MONTHLY, FEATURE_JETPACK_ESSENTIAL, FEATURE_JETPACK_PRODUCT_BACKUP, FEATURE_JETPACK_PRODUCT_VIDEOPRESS, FEATURE_JETPACK_REAL_TIME_MALWARE_SCANNING, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_SEARCH_BI_YEARLY, FEATURE_JETPACK_SEARCH, FEATURE_JETPACK_SEARCH_MONTHLY, FEATURE_JETPACK_VIDEOPRESS_BI_YEARLY, FEATURE_JETPACK_VIDEOPRESS, FEATURE_JETPACK_VIDEOPRESS_MONTHLY, FEATURE_MALWARE_SCANNING_DAILY, FEATURE_MALWARE_SCANNING_DAILY_AND_ON_DEMAND, FEATURE_MANAGE, FEATURE_MEMBERSHIPS, FEATURE_MONETISE, FEATURE_NO_ADS, FEATURE_NO_BRANDING, FEATURE_OFFSITE_BACKUP_VAULTPRESS_DAILY, FEATURE_OFFSITE_BACKUP_VAULTPRESS_REALTIME, FEATURE_ONE_CLICK_THREAT_RESOLUTION, FEATURE_P2_13GB_STORAGE, FEATURE_P2_3GB_STORAGE, FEATURE_P2_ACTIVITY_OVERVIEW, FEATURE_P2_ADVANCED_SEARCH, FEATURE_P2_CUSTOMIZATION_OPTIONS, FEATURE_P2_MORE_FILE_TYPES, FEATURE_P2_PRIORITY_CHAT_EMAIL_SUPPORT, FEATURE_P2_SIMPLE_SEARCH, FEATURE_P2_UNLIMITED_POSTS_PAGES, FEATURE_P2_UNLIMITED_USERS, FEATURE_P2_VIDEO_SHARING, FEATURE_PLAN_SECURITY_DAILY, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_PREMIUM_CUSTOMIZABE_THEMES, FEATURE_PREMIUM_SUPPORT, FEATURE_PRODUCT_BACKUP_DAILY_V2, FEATURE_PRODUCT_BACKUP_REALTIME_V2, FEATURE_PRODUCT_SCAN_DAILY_V2, FEATURE_PRODUCT_SCAN_REALTIME_V2, FEATURE_PRODUCT_SEARCH_V2, FEATURE_REPUBLICIZE, FEATURE_SCAN_V2, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SECURITY_SETTINGS, FEATURE_SFTP, FEATURE_SSH, FEATURE_SITE_STAGING_SITES, FEATURE_SFTP_DATABASE, FEATURE_SHIPPING_CARRIERS, FEATURE_SIMPLE_PAYMENTS, FEATURE_SITE_BACKUPS_AND_RESTORE, FEATURE_SITE_STATS, FEATURE_SOCIAL_MEDIA_TOOLS, FEATURE_SPAM_AKISMET_PLUS, FEATURE_STANDARD_SECURITY_TOOLS, FEATURE_TITAN_EMAIL, FEATURE_TRAFFIC_TOOLS, FEATURE_UNLIMITED_PRODUCTS_SERVICES, FEATURE_UPLOAD_PLUGINS, FEATURE_UPLOAD_THEMES, FEATURE_UPLOAD_THEMES_PLUGINS, FEATURE_VIDEO_UPLOADS, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_WORDADS_INSTANT, FEATURE_WP_SUBDOMAIN, FEATURE_WP_SUBDOMAIN_SIGNUP, FEATURE_UNLIMITED_ADMINS, FEATURE_UNLIMITED_TRAFFIC, FEATURE_PAYMENT_BLOCKS, FEATURE_WOOCOMMERCE, GROUP_JETPACK, GROUP_WPCOM, GROUP_A4A, PLAN_BLOGGER, PLAN_BLOGGER_2_YEARS, PLAN_BUSINESS, PLAN_BUSINESS_2_YEARS, PLAN_BUSINESS_3_YEARS, PLAN_A4A_BUSINESS, PLAN_A4A_BUSINESS_MONTHLY, PLAN_100_YEARS, PLAN_BUSINESS_MONTHLY, PLAN_ECOMMERCE, PLAN_ECOMMERCE_2_YEARS, PLAN_ECOMMERCE_3_YEARS, PLAN_ECOMMERCE_MONTHLY, PLAN_ECOMMERCE_TRIAL_MONTHLY, PLAN_ENTERPRISE_GRID_WPCOM, PLAN_FREE, PLAN_JETPACK_BUSINESS, PLAN_JETPACK_BUSINESS_MONTHLY, PLAN_JETPACK_COMPLETE_BI_YEARLY, PLAN_JETPACK_COMPLETE, PLAN_JETPACK_COMPLETE_MONTHLY, PLAN_JETPACK_FREE, PLAN_JETPACK_GOLDEN_TOKEN, PLAN_JETPACK_GROWTH_MONTHLY, PLAN_JETPACK_GROWTH_YEARLY, PLAN_JETPACK_GROWTH_BI_YEARLY, PLAN_JETPACK_PERSONAL, PLAN_JETPACK_PERSONAL_MONTHLY, PLAN_JETPACK_PREMIUM, PLAN_JETPACK_PREMIUM_MONTHLY, PLAN_JETPACK_SECURITY_DAILY, PLAN_JETPACK_SECURITY_DAILY_MONTHLY, PLAN_JETPACK_SECURITY_REALTIME, PLAN_JETPACK_SECURITY_REALTIME_MONTHLY, PLAN_JETPACK_SECURITY_T0_MONTHLY, PLAN_JETPACK_SECURITY_T0_YEARLY, PLAN_JETPACK_SECURITY_T1_MONTHLY, PLAN_JETPACK_SECURITY_T1_YEARLY, PLAN_JETPACK_SECURITY_T1_BI_YEARLY, PLAN_JETPACK_SECURITY_T2_MONTHLY, PLAN_JETPACK_SECURITY_T2_YEARLY, PLAN_JETPACK_STARTER_MONTHLY, PLAN_JETPACK_STARTER_YEARLY, PLAN_P2_FREE, PLAN_P2_PLUS, PLAN_PERSONAL, PLAN_PERSONAL_2_YEARS, PLAN_PERSONAL_3_YEARS, PLAN_PERSONAL_MONTHLY, PLAN_PERSONAL_TRIAL_MONTHLY, PLAN_PREMIUM, PLAN_PREMIUM_2_YEARS, PLAN_PREMIUM_3_YEARS, PLAN_PREMIUM_MONTHLY, PLAN_STUDENT, PLAN_WPCOM_FLEXIBLE, PLAN_WPCOM_STARTER, PLAN_WPCOM_PRO, PLAN_WPCOM_PRO_MONTHLY, PLAN_WPCOM_PRO_2_YEARS, PREMIUM_DESIGN_FOR_STORES, TERM_ANNUALLY, TERM_BIENNIALLY, TERM_TRIENNIALLY, TERM_MONTHLY, TYPE_ALL, TYPE_BLOGGER, TYPE_BUSINESS, TYPE_ECOMMERCE, TYPE_ENTERPRISE_GRID_WPCOM, TYPE_FREE, TYPE_P2_PLUS, TYPE_PERSONAL, TYPE_PREMIUM, TYPE_SECURITY_DAILY, TYPE_SECURITY_REALTIME, TYPE_SECURITY_T0, TYPE_SECURITY_T1, TYPE_SECURITY_T2, TYPE_JETPACK_GROWTH, TYPE_JETPACK_STARTER, TYPE_FLEXIBLE, TYPE_100_YEAR, TYPE_PRO, TYPE_STARTER, TYPE_STUDENT, TYPE_GOLDEN_TOKEN, WPCOM_FEATURES_ATOMIC, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, WPCOM_FEATURES_FULL_ACTIVITY_LOG, FEATURE_MANAGED_HOSTING, FEATURE_UNLIMITED_EMAILS, FEATURE_UNLIMITED_SUBSCRIBERS, FEATURE_AD_FREE_EXPERIENCE, FEATURE_REAL_TIME_ANALYTICS, JETPACK_TAG_FOR_WOOCOMMERCE_STORES, JETPACK_TAG_FOR_NEWS_ORGANISATIONS, JETPACK_TAG_FOR_MEMBERSHIP_SITES, JETPACK_TAG_FOR_SMALL_SITES, JETPACK_TAG_FOR_BLOGS, PRODUCT_JETPACK_BACKUP_T0_MONTHLY, PRODUCT_JETPACK_BACKUP_T1_MONTHLY, PRODUCT_JETPACK_SCAN_MONTHLY, PRODUCT_JETPACK_ANTI_SPAM_MONTHLY, PRODUCT_JETPACK_BACKUP_T0_YEARLY, PRODUCT_JETPACK_BACKUP_T1_YEARLY, PRODUCT_JETPACK_SCAN, PRODUCT_JETPACK_ANTI_SPAM, PRODUCT_JETPACK_BACKUP_T2_YEARLY, PRODUCT_JETPACK_BACKUP_T2_MONTHLY, PRODUCT_JETPACK_VIDEOPRESS, PRODUCT_JETPACK_BOOST, PRODUCT_JETPACK_SOCIAL_ADVANCED, PRODUCT_JETPACK_SEARCH, PRODUCT_JETPACK_CRM, PRODUCT_JETPACK_CRM_MONTHLY, PRODUCT_JETPACK_SEARCH_MONTHLY, PRODUCT_JETPACK_SOCIAL_ADVANCED_MONTHLY, PRODUCT_JETPACK_SOCIAL_V1_MONTHLY, PRODUCT_JETPACK_SOCIAL_V1_YEARLY, PRODUCT_JETPACK_SOCIAL_V1_BI_YEARLY, PRODUCT_JETPACK_BOOST_MONTHLY, PRODUCT_JETPACK_VIDEOPRESS_MONTHLY, FEATURE_BEAUTIFUL_THEMES, FEATURE_PAGES, FEATURE_USERS, FEATURE_NEWSLETTERS_RSS, FEATURE_POST_EDITS_HISTORY, FEATURE_SECURITY_BRUTE_FORCE, FEATURE_SMART_REDIRECTS, FEATURE_ALWAYS_ONLINE, FEATURE_99_999_UPTIME, FEATURE_FAST_DNS, FEATURE_STYLE_CUSTOMIZATION, FEATURE_STYLE_CUSTOMIZATION_FONTS_COLORS, FEATURE_WORDADS, FEATURE_PLUGINS_THEMES, FEATURE_BANDWIDTH, FEATURE_BURST, FEATURE_WAF_V2, FEATURE_CDN, FEATURE_CPUS, FEATURE_DATACENTRE_FAILOVER, FEATURE_ISOLATED_INFRA, FEATURE_SECURITY_MALWARE, FEATURE_SECURITY_DDOS, FEATURE_DEV_TOOLS, FEATURE_DEV_TOOLS_SSH, FEATURE_DEV_TOOLS_GIT, FEATURE_WP_UPDATES, FEATURE_MULTI_SITE, FEATURE_SELL_SHIP, FEATURE_CUSTOM_STORE, FEATURE_INVENTORY, FEATURE_CHECKOUT, FEATURE_ACCEPT_PAYMENTS_V2, FEATURE_SALES_REPORTS, FEATURE_EXTENSIONS, FEATURE_STATS_JP, FEATURE_SPAM_JP, FEATURE_LTD_SOCIAL_MEDIA_JP, FEATURE_SHARES_SOCIAL_MEDIA_JP, FEATURE_CONTACT_FORM_JP, FEATURE_PAID_SUBSCRIBERS_JP, FEATURE_VIDEOPRESS_JP, FEATURE_UNLTD_SOCIAL_MEDIA_JP, FEATURE_SEO_JP, FEATURE_REALTIME_BACKUPS_JP, FEATURE_UPTIME_MONITOR_JP, FEATURE_ES_SEARCH_JP, FEATURE_PLUGIN_AUTOUPDATE_JP, FEATURE_PREMIUM_CONTENT_JP, FEATURE_ONE_CLICK_RESTORE_V2, FEATURE_SITE_ACTIVITY_LOG_JP, FEATURE_DONATIONS_AND_TIPS_JP, FEATURE_CLOUD_CRITICAL_CSS, FEATURE_GLOBAL_EDGE_CACHING, PLAN_WOOEXPRESS_MEDIUM_MONTHLY, PLAN_WOOEXPRESS_MEDIUM, PLAN_WOOEXPRESS_SMALL_MONTHLY, PLAN_WOOEXPRESS_SMALL, PLAN_WOO_HOSTED_FREE, PLAN_WOO_HOSTED_FREE_TRIAL_MONTHLY, PLAN_WOO_HOSTED_BASIC_MONTHLY, PLAN_WOO_HOSTED_BASIC, PLAN_WOO_HOSTED_PRO_MONTHLY, PLAN_WOO_HOSTED_PRO, FEATURE_JETPACK_SOCIAL_ADVANCED, FEATURE_JETPACK_SOCIAL_ADVANCED_MONTHLY, FEATURE_JETPACK_BOOST_BI_YEARLY, FEATURE_JETPACK_BOOST, FEATURE_JETPACK_BOOST_MONTHLY, FEATURE_JETPACK_SOCIAL_BASIC_BI_YEARLY, FEATURE_JETPACK_SOCIAL_BASIC, FEATURE_JETPACK_SOCIAL_BASIC_MONTHLY, FEATURE_SELL_INTERNATIONALLY, FEATURE_AUTOMATIC_SALES_TAX, FEATURE_AUTOMATED_BACKUPS_SECURITY_SCAN, FEATURE_SELL_EGIFTS_AND_VOUCHERS, FEATURE_EMAIL_MARKETING, FEATURE_WORDPRESS_STUDIO_SYNC, FEATURE_MARKETPLACE_SYNC_SOCIAL_MEDIA_INTEGRATION, FEATURE_INTEGRATED_SHIPMENT_TRACKING, FEATURE_BACK_IN_STOCK_NOTIFICATIONS, FEATURE_MARKETING_AUTOMATION, FEATURE_AUTOMATED_EMAIL_TRIGGERS, FEATURE_CART_ABANDONMENT_EMAILS, FEATURE_OFFER_BULK_DISCOUNTS, FEATURE_RECOMMEND_ADD_ONS, FEATURE_MIN_MAX_ORDER_QUANTITY, FEATURE_WOOCOMMERCE_STORE, FEATURE_WOOCOMMERCE_MOBILE_APP, FEATURE_WORDPRESS_CMS, FEATURE_WORDPRESS_MOBILE_APP, FEATURE_FREE_SSL_CERTIFICATE, FEATURE_GOOGLE_ANALYTICS_V3, FEATURE_LIST_UNLIMITED_PRODUCTS, FEATURE_GIFT_CARDS, FEATURE_PRODUCT_BUNDLES, FEATURE_LIST_PRODUCTS_BY_BRAND, FEATURE_PRODUCT_RECOMMENDATIONS, FEATURE_INTEGRATED_PAYMENTS, FEATURE_INTERNATIONAL_PAYMENTS, FEATURE_AUTOMATED_SALES_TAXES, FEATURE_ACCEPT_LOCAL_PAYMENTS, FEATURE_RECURRING_PAYMENTS, FEATURE_PROMOTE_ON_TIKTOK, FEATURE_SYNC_WITH_PINTEREST, FEATURE_CONNECT_WITH_FACEBOOK, FEATURE_ABANDONED_CART_RECOVERY, FEATURE_ADVERTISE_ON_GOOGLE, FEATURE_CUSTOM_ORDER_EMAILS, FEATURE_LIVE_SHIPPING_RATES, FEATURE_DISCOUNTED_SHIPPING, FEATURE_PRINT_SHIPPING_LABELS, PLAN_WOOEXPRESS_PLUS, TYPE_WOO_EXPRESS_PLUS, FEATURE_NEWSLETTER_IMPORT_SUBSCRIBERS_FREE, FEATURE_PAYMENT_TRANSACTION_FEES_10, FEATURE_PAYMENT_TRANSACTION_FEES_8, FEATURE_PAYMENT_TRANSACTION_FEES_4, FEATURE_PAYMENT_TRANSACTION_FEES_2, FEATURE_PAYMENT_TRANSACTION_FEES_0, TYPE_WOOEXPRESS_SMALL, TYPE_WOOEXPRESS_MEDIUM, TYPE_WOO_HOSTED_BASIC, TYPE_WOO_HOSTED_PRO, TYPE_WOO_HOSTED_FREE_TRIAL, FEATURE_PREMIUM_STORE_THEMES, FEATURE_STORE_DESIGN, FEATURE_UNLIMITED_PRODUCTS, FEATURE_DISPLAY_PRODUCTS_BRAND, FEATURE_PRODUCT_ADD_ONS, FEATURE_ASSEMBLED_KITS, FEATURE_STOCK_NOTIFS, FEATURE_DYNAMIC_UPSELLS, FEATURE_CUSTOM_MARKETING_AUTOMATION, FEATURE_BULK_DISCOUNTS, FEATURE_INVENTORY_MGMT, FEATURE_STREAMLINED_CHECKOUT, FEATURE_SELL_60_COUNTRIES, FEATURE_SHIPPING_INTEGRATIONS, FEATURE_THE_READER, PLAN_MIGRATION_TRIAL_MONTHLY, PLAN_HOSTING_TRIAL_MONTHLY, FEATURE_PAYMENT_BUTTONS_JP, FEATURE_PAYPAL_JP, FEATURE_PAYMENT_TRANSACTION_FEES_0_ALL, FEATURE_PAYMENT_TRANSACTION_FEES_2_REGULAR, FEATURE_PAYMENT_TRANSACTION_FEES_0_WOO, PRODUCT_JETPACK_STATS_MONTHLY, PRODUCT_JETPACK_STATS_YEARLY, TERM_CENTENNIALLY, FEATURE_STATS_PAID, FEATURE_STATS_COMMERCIAL, PRODUCT_JETPACK_SCAN_BI_YEARLY, PRODUCT_JETPACK_ANTI_SPAM_BI_YEARLY, PRODUCT_JETPACK_VIDEOPRESS_BI_YEARLY, PRODUCT_JETPACK_BOOST_BI_YEARLY, PRODUCT_JETPACK_SOCIAL_ADVANCED_BI_YEARLY, PRODUCT_JETPACK_SEARCH_BI_YEARLY, PRODUCT_JETPACK_STATS_BI_YEARLY, PRODUCT_JETPACK_BACKUP_T1_BI_YEARLY, PRODUCT_JETPACK_AI_BI_YEARLY, PRODUCT_JETPACK_AI_YEARLY, PRODUCT_JETPACK_AI_MONTHLY, FEATURE_JETPACK_SOCIAL_ADVANCED_BI_YEARLY, FEATURE_AI_ASSISTED_PRODUCT_DESCRIPTION, GROUP_P2, FEATURE_JETPACK_30_DAY_ARCHIVE_ACTIVITY_LOG, FEATURE_JETPACK_1_YEAR_ARCHIVE_ACTIVITY_LOG, FEATURE_COMMISSION_FEE_WOO_FEATURES, FEATURE_COMMISSION_FEE_STANDARD_FEATURES, FEATURE_SENSEI_SUPPORT, FEATURE_SENSEI_UNLIMITED, FEATURE_SENSEI_INTERACTIVE, FEATURE_SENSEI_QUIZZES, FEATURE_SENSEI_SELL_COURSES, FEATURE_SENSEI_STORAGE, FEATURE_SENSEI_HOSTING, FEATURE_SENSEI_JETPACK, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_PREMIUM_THEMES, WPCOM_FEATURES_PREMIUM_THEMES_LIMITED, WPCOM_FEATURES_BACKUPS_RESTORE, FEATURE_REAL_TIME_SECURITY_SCANS, FEATURE_TIERED_STORAGE_PLANS_AVAILABLE, FEATURE_SEAMLESS_STAGING_PRODUCTION_SYNCING, FEATURE_SECURITY_VULNERABILITY_NOTIFICATIONS, FEATURE_WOOCOMMERCE_HOSTING, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_THEMES_PREMIUM_AND_STORE, FEATURE_UNLIMITED_ENTITIES, JETPACK_TAG_FOR_BLOGGERS, FEATURE_CONNECT_ANALYTICS, FEATURE_JETPACK_SOCIAL_V1_MONTHLY, FEATURE_BIG_SKY_WEBSITE_BUILDER, FEATURE_BIG_SKY_WEBSITE_BUILDER_CHECKOUT, FEATURE_GUIDED_WEBSITE_BUILDER, FEATURE_GUIDED_WEBSITE_BUILDER_LIMITED, FEATURE_AI_WRITER_DESIGNER_LIMITED, FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR, FEATURE_BLAZE_AD_CREDITS, FEATURE_UPLOAD_VIDEO, FEATURE_STATS_BASIC_20250206, FEATURE_STATS_ADVANCED_20250206, FEATURE_SUPPORT, FEATURE_SUPPORT_FROM_EXPERTS, FEATURE_FREE_FAST_SUPPORT, FEATURE_AI_ASSISTANT, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_ADVANCED_FORM_FEATURES_JP, FEATURE_WOO_AUTOMATE, FEATURE_WOO_SHIPPING_TRACKING, FEATURE_GOOGLE_LISTING_ADS, WPCOM_FEATURES_GITHUB_DEPLOYMENTS, WPCOM_FEATURES_LOGS, WPCOM_FEATURES_MONITORING, WPCOM_FEATURES_PERFORMANCE, WPCOM_FEATURES_BIG_SKY, FEATURE_WOO_HOSTED_PACKAGE, FEATURE_WOO_HOSTED_AI_BUILDER, FEATURE_WOO_HOSTED_PAYPAL_INTEGRATON, FEATURE_WOO_HOSTED_MARKETING_TOOLS, FEATURE_WOO_HOSTED_BASIC_MAILPOET, FEATURE_WOO_HOSTED_PRO_MAILPOET, FEATURE_WOO_HOSTED_BASIC_ADMIN_USERS, FEATURE_WOO_HOSTED_PRO_ADMIN_USERS, FEATURE_WOO_HOSTED_POWERFUL_COMMERCE_TOOLS, FEATURE_WOO_HOSTED_FREE_DOMAIN_1_YEAR, FEATURE_WOO_HOSTED_SEAMLESS_CHECKOUT, FEATURE_WOO_HOSTED_ACCEPT_CARD_PAYMENTS, FEATURE_WOO_HOSTED_POS_PAYMENTS, FEATURE_WOO_HOSTED_POS_NO_MONTHLY_FEES, FEATURE_WOO_HOSTED_LIST_PRODUCTS, FEATURE_WOO_HOSTED_BOOKINGS, FEATURE_WOO_HOSTED_TEAM_BOOKINGS, FEATURE_WOO_HOSTED_UPSELLS_CROSS_SELLS, FEATURE_WOO_HOSTED_GIFT_CARDS, FEATURE_WOO_HOSTED_MOBILE_APP, FEATURE_WOO_HOSTED_SHIPMENT_TRACKING, FEATURE_WOO_HOSTED_USPS_UPS, FEATURE_WOO_HOSTED_ANALYTICS_REPORTS, FEATURE_WOO_HOSTED_BASIC_STORAGE, FEATURE_WOO_HOSTED_PRO_STORAGE, FEATURE_WOO_HOSTED_SECURITY, FEATURE_WOO_HOSTED_AUTOMATED_EMAIL_FLOWS, FEATURE_WOO_HOSTED_ABANDONED_CART_EMAILS, FEATURE_WOO_HOSTED_POST_PURCHASE_EMAILS, FEATURE_WOO_HOSTED_EMAIL_TEMPLATES, FEATURE_WOO_HOSTED_SEO_TOOLS, FEATURE_WOO_HOSTED_COUPONS, FEATURE_WOO_HOSTED_POS_SYSTEM, FEATURE_WOO_HOSTED_STAFF_ACCOUNTS, FEATURE_WOO_HOSTED_STORAGE_SPACE, FEATURE_WOO_HOSTED_EMAIL_CAMPAIGNS, FEATURE_WOO_HOSTED_EMAIL_SUBSCRIBER_MGMT, FEATURE_WOO_HOSTED_SALES_TAX, FEATURE_WOO_HOSTED_SHIPPING_LABELS, FEATURE_WOO_HOSTED_PRIORITY_SUPPORT, WPCOM_FEATURES_SCAN_SELF_SERVE, WPCOM_FEATURES_BACKUPS_SELF_SERVE, } from './constants'; import { isBigSkyOnboarding } from './is-big-sky-onboarding'; import { getPlanBusinessTitle, getPlanEcommerceTitle, getPlanPersonalTitle, getPlanPremiumTitle, getPlanBusinessTrialTitle, getPlanCommerceTrialTitle, getPlanBusinessTrialTagline, } from './plans'; import type { BillingTerm, Plan, JetpackPlan, WPComPlan, IncompleteWPcomPlan, IncompleteJetpackPlan, Feature, } from './types'; import type { TranslateResult } from 'i18n-calypso'; function isValueTruthy< T >( value: T ): value is Exclude< T, null | undefined | false | 0 | '' > { return !! value; } function compact( elements: ( string | false | undefined | null )[] ): string[] { return elements.filter( isValueTruthy ); } const WPComGetBillingTimeframe = (): TranslateResult => i18n.translate( 'per month, billed annually' ); const WPComGetBiennialBillingTimeframe = (): TranslateResult => i18n.translate( '/month, billed every two years' ); const WPComGetTriennialBillingTimeframe = (): TranslateResult => i18n.translate( '/month, billed every three years' ); const getBiAnnualTimeframe = (): BillingTerm => ( { term: TERM_BIENNIALLY, getBillingTimeFrame: () => translate( 'per 2 years' ), } ); const getAnnualTimeframe = (): BillingTerm => ( { term: TERM_ANNUALLY, getBillingTimeFrame: () => translate( 'per year' ), } ); const getMonthlyTimeframe = (): BillingTerm => ( { term: TERM_MONTHLY, getBillingTimeFrame: () => translate( 'per month, billed monthly' ), } ); const getJetpackCommonPlanDetails = () => ( { getRecommendedFor: () => [ { tag: JETPACK_TAG_FOR_WOOCOMMERCE_STORES, label: translate( 'WooCommerce stores' ) }, { tag: JETPACK_TAG_FOR_NEWS_ORGANISATIONS, label: translate( 'News organizations' ) }, { tag: JETPACK_TAG_FOR_MEMBERSHIP_SITES, label: translate( 'Membership sites' ) }, ], } ); const getDotcomPlanDetails = () => ( { // Features only available for annual plans getAnnualPlansOnlyFeatures: () => [ FEATURE_FREE_DOMAIN, FEATURE_CUSTOM_DOMAIN, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_WOO_HOSTED_FREE_DOMAIN_1_YEAR, ], } ); /* eslint-disable wpcalypso/jsx-classname-namespace */ const plansDescriptionHeadingComponent = { components: { strong: , }, }; /* eslint-enable */ const isStatsFeatureTranslated = () => { const isEnglishLocale = i18n.getLocaleSlug()?.startsWith( 'en' ); const hasStatsTranslation = i18n.hasTranslation( 'Full history, filters & peak times' ) || i18n.hasTranslation( 'Last 7 days of basic stats' ) || i18n.hasTranslation( 'Advanced insights, including UTM & device analytics' ); return isEnglishLocale || hasStatsTranslation; }; const getPlanFreeDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_FREE, getTitle: () => i18n.translate( 'Free' ), getPlanTagline: () => i18n.translate( 'Get started with all the basics.' ), getNewsletterTagLine: () => i18n.translate( 'Start fresh or make the switch, bringing your first 100 readers with you.' ), getBlogOnboardingTagLine: () => i18n.translate( 'Not a trial – blog free for as long as you like.' ), getDescription: () => i18n.translate( 'Get a free website and be on your way to publishing your ' + 'first post in less than five minutes.' ), getPlanCompareFeatures: () => [ // pay attention to ordering, shared features should align on /plan page FEATURE_WP_SUBDOMAIN, FEATURE_JETPACK_ESSENTIAL, FEATURE_COMMUNITY_SUPPORT, FEATURE_FREE_THEMES, FEATURE_3GB_STORAGE, ], getSignupFeatures: () => [ FEATURE_COMMUNITY_SUPPORT, FEATURE_WP_SUBDOMAIN_SIGNUP, FEATURE_FREE_THEMES_SIGNUP, ], getBlogSignupFeatures: () => [ FEATURE_COMMUNITY_SUPPORT, FEATURE_WP_SUBDOMAIN_SIGNUP, FEATURE_FREE_THEMES_SIGNUP, ], getPortfolioSignupFeatures: () => [ FEATURE_COMMUNITY_SUPPORT, FEATURE_WP_SUBDOMAIN_SIGNUP, FEATURE_FREE_THEMES_SIGNUP, ], get2023PricingGridSignupWpcomFeatures: () => { return [ FEATURE_UNLIMITED_ENTITIES ]; }, getVar42NoAiSignupWpcomFeatures: () => [ FEATURE_UNLIMITED_ENTITIES ], get2023PlanComparisonFeatureOverride: () => { return [ FEATURE_AI_ASSISTANT, FEATURE_BEAUTIFUL_THEMES, FEATURE_PAGES, FEATURE_USERS, FEATURE_POST_EDITS_HISTORY, FEATURE_NEWSLETTERS_RSS, FEATURE_SECURITY_BRUTE_FORCE, FEATURE_SMART_REDIRECTS, FEATURE_ALWAYS_ONLINE, FEATURE_PAYMENT_TRANSACTION_FEES_10, FEATURE_GLOBAL_EDGE_CACHING, FEATURE_BURST, FEATURE_WAF_V2, FEATURE_CPUS, FEATURE_CDN, FEATURE_ES_SEARCH_JP, FEATURE_MULTI_SITE, FEATURE_WP_UPDATES, FEATURE_SECURITY_DDOS, FEATURE_SECURITY_MALWARE, FEATURE_DATACENTRE_FAILOVER, FEATURE_BANDWIDTH, FEATURE_FAST_DNS, ]; }, // Comparison grid when plans pricing differentiators experiment is active (non-control). get2023PlanComparisonFeatureOverrideForExperiment: () => { return [ FEATURE_AI_ASSISTANT, FEATURE_BEAUTIFUL_THEMES, FEATURE_PAGES, FEATURE_USERS, FEATURE_POST_EDITS_HISTORY, FEATURE_NEWSLETTERS_RSS, FEATURE_SECURITY_BRUTE_FORCE, FEATURE_SMART_REDIRECTS, FEATURE_ALWAYS_ONLINE, FEATURE_PAYMENT_TRANSACTION_FEES_10, FEATURE_GLOBAL_EDGE_CACHING, FEATURE_BURST, FEATURE_WAF_V2, FEATURE_CPUS, FEATURE_CDN, FEATURE_ES_SEARCH_JP, FEATURE_MULTI_SITE, FEATURE_WP_UPDATES, FEATURE_SECURITY_DDOS, FEATURE_SECURITY_MALWARE, FEATURE_DATACENTRE_FAILOVER, FEATURE_BANDWIDTH, FEATURE_FAST_DNS, ]; }, get2023PricingGridSignupJetpackFeatures: () => { return []; }, get2023PlanComparisonJetpackFeatureOverride: () => { return [ FEATURE_PAID_SUBSCRIBERS_JP, FEATURE_DONATIONS_AND_TIPS_JP, FEATURE_PREMIUM_CONTENT_JP, FEATURE_PAYMENT_BUTTONS_JP, FEATURE_STATS_JP, FEATURE_SPAM_JP, FEATURE_CONTACT_FORM_JP, FEATURE_SITE_ACTIVITY_LOG_JP, FEATURE_UNLTD_SOCIAL_MEDIA_JP, FEATURE_ES_SEARCH_JP, ]; }, // Experimental: Exclude payment features for Free plan in experiment variants get2023PlanComparisonJetpackFeatureOverrideForExperiment: () => { return [ FEATURE_PAID_SUBSCRIBERS_JP, FEATURE_PREMIUM_CONTENT_JP, FEATURE_STATS_JP, FEATURE_SPAM_JP, FEATURE_CONTACT_FORM_JP, FEATURE_SITE_ACTIVITY_LOG_JP, FEATURE_UNLTD_SOCIAL_MEDIA_JP, FEATURE_ES_SEARCH_JP, ]; }, getStorageFeature: () => FEATURE_1GB_STORAGE, getPlanComparisonFeatureLabels: () => { const baseFeatures = { [ FEATURE_SHARES_SOCIAL_MEDIA_JP ]: i18n.translate( '%d shares per month', { args: [ 30 ] } ), [ FEATURE_COMMISSION_FEE_STANDARD_FEATURES ]: formatNumber( 0.1, { numberFormatOptions: { style: 'percent' }, } ), [ FEATURE_AI_ASSISTANT ]: i18n.translate( 'Limited to 20 requests' ), }; return isStatsFeatureTranslated() ? { ...baseFeatures, [ FEATURE_STATS_JP ]: i18n.translate( 'Last 7 days of basic stats' ) } : baseFeatures; }, getNewsletterSignupFeatures: () => [ FEATURE_NEWSLETTER_IMPORT_SUBSCRIBERS_FREE, FEATURE_PREMIUM_CONTENT_JP, FEATURE_NEWSLETTERS_RSS, FEATURE_UNLIMITED_EMAILS, FEATURE_STATS_JP, FEATURE_BANDWIDTH, FEATURE_LTD_SOCIAL_MEDIA_JP, FEATURE_PAYMENT_TRANSACTION_FEES_10, ], getBlogOnboardingSignupFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_BEAUTIFUL_THEMES, FEATURE_PAGES, FEATURE_USERS, FEATURE_POST_EDITS_HISTORY, FEATURE_SECURITY_BRUTE_FORCE, FEATURE_ALWAYS_ONLINE, FEATURE_THE_READER, ], getBlogOnboardingSignupJetpackFeatures: () => [ FEATURE_NEWSLETTER_IMPORT_SUBSCRIBERS_FREE, FEATURE_UNLIMITED_EMAILS, FEATURE_NEWSLETTERS_RSS, FEATURE_STATS_JP, FEATURE_LTD_SOCIAL_MEDIA_JP, FEATURE_SPAM_JP, ], getIncludedFeatures: () => [], getInferiorFeatures: () => [], } ); const getPlanBloggerDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_BLOGGER, getTitle: () => i18n.translate( 'Blogger' ), getDescription: () => i18n.translate( '{{strong}}Best for bloggers:{{/strong}} Brand your blog with a custom .blog domain name, and remove all WordPress.com advertising. Receive additional storage space and customer support via email.', plansDescriptionHeadingComponent ), getPlanCompareFeatures: () => [ // pay attention to ordering, shared features should align on /plan page FEATURE_BLOG_DOMAIN, FEATURE_JETPACK_ESSENTIAL, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_FREE_THEMES, FEATURE_6GB_STORAGE, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, FEATURE_PREMIUM_CONTENT_BLOCK, ], getSignupFeatures: () => [ FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_BLOG_DOMAIN, FEATURE_ALL_FREE_FEATURES, ], getBlogSignupFeatures: () => [ FEATURE_FREE_BLOG_DOMAIN, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_ALL_FREE_FEATURES, ], getPortfolioSignupFeatures: () => [ FEATURE_FREE_BLOG_DOMAIN, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_ALL_FREE_FEATURES, ], // Features not displayed but used for checking plan abilities getIncludedFeatures: () => [ FEATURE_AUDIO_UPLOADS ], getInferiorFeatures: () => [], getCancellationFeatures: () => [ FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_AUDIO_UPLOADS, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, ], } ); const getPlanPersonalDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_PERSONAL, getTitle: getPlanPersonalTitle, getPlanTagline: () => i18n.translate( 'Make your mark with a custom domain.' ), getNewsletterTagLine: () => i18n.translate( 'Monetize your writing, go ad-free, and expand your media content.' ), getBlogOnboardingTagLine: () => i18n.translate( 'Take the next step with gated content, paid subscribers, and an ad-free site.' ), getDescription: () => i18n.translate( '{{strong}}Best for personal projects:{{/strong}} Show credibility with your own domain name and an ad-free experience.', plansDescriptionHeadingComponent ), getPlanCompareFeatures: () => compact( [ // pay attention to ordering, shared features should align on /plan page FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_JETPACK_ESSENTIAL, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_FREE_THEMES, FEATURE_STYLE_CUSTOMIZATION, FEATURE_6GB_STORAGE, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_PAYMENT_TRANSACTION_FEES_8, ].filter( ( feature ) => feature !== null ) ), getSignupFeatures: () => [ FEATURE_FREE_DOMAIN, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_FREE_THEMES, FEATURE_STYLE_CUSTOMIZATION, ], getBlogSignupFeatures: () => [ FEATURE_FREE_DOMAIN, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_ALL_FREE_FEATURES, ], getPortfolioSignupFeatures: () => [ FEATURE_FREE_DOMAIN, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_ALL_FREE_FEATURES, ], getSignupCompareAvailableFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_NO_ADS, FEATURE_COLLECT_PAYMENTS_V2, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_STYLE_CUSTOMIZATION, ], get2023PricingGridSignupWpcomFeatures: () => [ ...( isBigSkyOnboarding() ? [ FEATURE_BIG_SKY_WEBSITE_BUILDER ] : [] ), FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, WPCOM_FEATURES_PREMIUM_THEMES_LIMITED, FEATURE_SUPPORT_FROM_EXPERTS, FEATURE_STATS_BASIC_20250206, FEATURE_UPLOAD_PLUGINS, FEATURE_STYLE_CUSTOMIZATION, ], get2023PricingGridSignupJetpackFeatures: () => { return []; }, getVar42NoAiSignupWpcomFeatures: () => [ FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_GUIDED_WEBSITE_BUILDER_LIMITED, WPCOM_FEATURES_PREMIUM_THEMES_LIMITED, FEATURE_SUPPORT_FROM_EXPERTS, FEATURE_UPLOAD_PLUGINS, ], get2023PlanComparisonFeatureOverride: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_FAST_DNS, FEATURE_PAYMENT_TRANSACTION_FEES_8, FEATURE_PREMIUM_THEMES, FEATURE_SUPPORT, FEATURE_ISOLATED_INFRA, FEATURE_STYLE_CUSTOMIZATION, FEATURE_PLUGINS_THEMES, ], // Comparison grid when plans pricing differentiators experiment is active (non-control). get2023PlanComparisonFeatureOverrideForExperiment: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_FAST_DNS, FEATURE_PAYMENT_TRANSACTION_FEES_8, FEATURE_PREMIUM_THEMES, FEATURE_SUPPORT_FROM_EXPERTS, // Shows "Free support" in experiment variant FEATURE_ISOLATED_INFRA, FEATURE_STYLE_CUSTOMIZATION_FONTS_COLORS, FEATURE_STYLE_CUSTOMIZATION, FEATURE_GUIDED_WEBSITE_BUILDER_LIMITED, FEATURE_AI_ASSISTANT, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_WORDPRESS_STUDIO_SYNC, FEATURE_PLUGINS_THEMES, ], get2023PlanComparisonJetpackFeatureOverride: () => { return [ FEATURE_ADVANCED_FORM_FEATURES_JP ]; }, // Experimental: Comparison grid Jetpack features for experiment variants. // Advanced Jetpack Forms is excluded for Personal plan in experiment variants. get2023PlanComparisonJetpackFeatureOverrideForExperiment: () => { return []; }, getStorageFeature: () => FEATURE_6GB_STORAGE, getPlanComparisonFeatureLabels: ( { isExperimentVariant } = {} ) => { const baseFeatures = { [ FEATURE_PREMIUM_THEMES ]: i18n.translate( 'Dozens of premium themes' ), [ FEATURE_SHARES_SOCIAL_MEDIA_JP ]: i18n.translate( '%d shares per month', { args: [ 30 ] } ), [ FEATURE_COMMISSION_FEE_STANDARD_FEATURES ]: formatNumber( 0.08, { numberFormatOptions: { style: 'percent' }, } ), [ FEATURE_SUPPORT ]: isExperimentVariant ? i18n.translate( 'Free support' ) : i18n.translate( 'Support from our expert\u00A0team' ), ...( isExperimentVariant && { [ FEATURE_AI_ASSISTANT ]: i18n.translate( 'Usage limits apply' ), [ FEATURE_GUIDED_WEBSITE_BUILDER_LIMITED ]: i18n.translate( 'Usage limits apply' ), [ FEATURE_BUILT_IN_SITE_ASSISTANT ]: i18n.translate( 'Usage limits apply' ), } ), }; return isStatsFeatureTranslated() ? { ...baseFeatures, [ FEATURE_STATS_JP ]: i18n.translate( 'Full history, filters & peak times' ), } : baseFeatures; }, getNewsletterSignupFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_UNLIMITED_SUBSCRIBERS, FEATURE_AD_FREE_EXPERIENCE, FEATURE_PAYMENT_TRANSACTION_FEES_8, ], getNewsletterHighlightedFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_UNLIMITED_EMAILS, FEATURE_AD_FREE_EXPERIENCE, ], getBlogOnboardingSignupFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_FAST_DNS, FEATURE_PAYMENT_TRANSACTION_FEES_8, ], getBlogOnboardingHighlightedFeatures: () => [ FEATURE_CUSTOM_DOMAIN ], getBlogOnboardingSignupJetpackFeatures: () => [ FEATURE_UNLIMITED_SUBSCRIBERS, FEATURE_PREMIUM_CONTENT_JP, FEATURE_PAID_SUBSCRIBERS_JP, ], getCheckoutFeatures: () => { const baseFeatures = [ ...( isBigSkyOnboarding() ? [ FEATURE_BIG_SKY_WEBSITE_BUILDER_CHECKOUT ] : [] ), FEATURE_CUSTOM_DOMAIN, FEATURE_PLUGINS_THEMES, FEATURE_AD_FREE_EXPERIENCE, FEATURE_FAST_DNS, FEATURE_PAID_SUBSCRIBERS_JP, ]; return isEnabled( 'stats/paid-wpcom-v3' ) ? [ ...baseFeatures, FEATURE_STATS_PAID ] : baseFeatures; }, // Features not displayed but used for checking plan abilities getIncludedFeatures: () => [ FEATURE_AUDIO_UPLOADS, WPCOM_FEATURES_FULL_ACTIVITY_LOG, WPCOM_FEATURES_BIG_SKY, ], getInferiorFeatures: () => [], getCancellationFeatures: () => [ FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_AD_FREE_EXPERIENCE, FEATURE_AUDIO_UPLOADS, ], } ); const getPlanEcommerceDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_ECOMMERCE, getTitle: getPlanEcommerceTitle, getPlanTagline: () => i18n.translate( 'Grow your online store with commerce-optimized extensions.' ), getDescription: () => { return i18n.translate( '{{strong}}Best for online stores:{{/strong}} Sell confidently with zero transaction fees and full flexibility.', plansDescriptionHeadingComponent ); }, getTagline: function () { return i18n.translate( 'Learn more about everything included with %(planName)s and take advantage of its powerful marketplace features.', { args: { planName: this.getTitle() } } ); }, getPlanCompareFeatures: ( _, { isLoggedInMonthlyPricing } = {} ) => compact( [ // pay attention to ordering, shared features should align on /plan page FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_JETPACK_ADVANCED, isLoggedInMonthlyPricing && FEATURE_FAST_SUPPORT_FROM_EXPERTS, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_50GB_STORAGE, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, isLoggedInMonthlyPricing && FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_SIMPLE_PAYMENTS, FEATURE_GOOGLE_ANALYTICS, FEATURE_REPUBLICIZE, FEATURE_WORDADS_INSTANT, FEATURE_VIDEO_UPLOADS, FEATURE_ADVANCED_SEO, FEATURE_UPLOAD_PLUGINS, FEATURE_UPLOAD_THEMES, FEATURE_SFTP_DATABASE, FEATURE_NO_BRANDING, FEATURE_ACCEPT_PAYMENTS, FEATURE_SHIPPING_CARRIERS, FEATURE_UNLIMITED_PRODUCTS_SERVICES, FEATURE_ECOMMERCE_MARKETING, FEATURE_PREMIUM_CUSTOMIZABE_THEMES, FEATURE_PAYMENT_TRANSACTION_FEES_0, ] ), getPromotedFeatures: () => [ FEATURE_200GB_STORAGE, FEATURE_CUSTOM_DOMAIN, FEATURE_NO_ADS, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, ], getSignupFeatures: () => [ FEATURE_ACCEPT_PAYMENTS, FEATURE_SHIPPING_CARRIERS, FEATURE_ALL_BUSINESS_FEATURES, ], getBlogSignupFeatures: () => [ FEATURE_ACCEPT_PAYMENTS, FEATURE_SHIPPING_CARRIERS, FEATURE_ALL_BUSINESS_FEATURES, ], getPortfolioSignupFeatures: () => [ FEATURE_ACCEPT_PAYMENTS, FEATURE_SHIPPING_CARRIERS, FEATURE_ALL_BUSINESS_FEATURES, ], getSignupCompareAvailableFeatures: () => compact( [ FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_NO_ADS, FEATURE_COLLECT_PAYMENTS_V2, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_EARN_AD, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_GOOGLE_ANALYTICS, FEATURE_INSTALL_PLUGINS, FEATURE_ADVANCED_SEO_EXPANDED_ABBR, FEATURE_SITE_BACKUPS_AND_RESTORE, FEATURE_SFTP_DATABASE, FEATURE_ACCEPT_PAYMENTS, FEATURE_SHIPPING_CARRIERS, PREMIUM_DESIGN_FOR_STORES, ] ), get2023PricingGridSignupWpcomFeatures: () => [ FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_THEMES_PREMIUM_AND_STORE, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_STYLE_CUSTOMIZATION, FEATURE_CONNECT_ANALYTICS, FEATURE_UPLOAD_VIDEO, FEATURE_STATS_ADVANCED_20250206, FEATURE_UPLOAD_PLUGINS, FEATURE_DEV_TOOLS, FEATURE_WOOCOMMERCE_HOSTING, ], getVar42NoAiSignupWpcomFeatures: () => [ FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_GUIDED_WEBSITE_BUILDER, FEATURE_PREMIUM_STORE_THEMES, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_UPLOAD_PLUGINS, FEATURE_STATS_ADVANCED_20250206, FEATURE_SIMPLE_PAYMENTS, FEATURE_VIDEO_UPLOADS, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR, FEATURE_EMAIL_MARKETING, FEATURE_BLAZE_AD_CREDITS, FEATURE_REALTIME_BACKUPS_JP, FEATURE_DEV_TOOLS, FEATURE_WOOCOMMERCE_HOSTING, FEATURE_SELL_60_COUNTRIES, ], get2023PlanComparisonFeatureOverride: () => { return [ FEATURE_CUSTOM_DOMAIN, FEATURE_WOOCOMMERCE_HOSTING, FEATURE_PREMIUM_STORE_THEMES, FEATURE_STORE_DESIGN, FEATURE_UNLIMITED_PRODUCTS, FEATURE_DISPLAY_PRODUCTS_BRAND, FEATURE_PRODUCT_ADD_ONS, FEATURE_ASSEMBLED_KITS, FEATURE_MIN_MAX_ORDER_QUANTITY, FEATURE_STOCK_NOTIFS, FEATURE_DYNAMIC_UPSELLS, FEATURE_CUSTOM_MARKETING_AUTOMATION, FEATURE_BULK_DISCOUNTS, FEATURE_INVENTORY_MGMT, FEATURE_STREAMLINED_CHECKOUT, FEATURE_SELL_60_COUNTRIES, FEATURE_SHIPPING_INTEGRATIONS, FEATURE_PAYMENT_TRANSACTION_FEES_0_ALL, FEATURE_SUPPORT, FEATURE_STYLE_CUSTOMIZATION, ]; }, // Comparison grid when plans pricing differentiators experiment is active (non-control). get2023PlanComparisonFeatureOverrideForExperiment: () => { return [ FEATURE_CUSTOM_DOMAIN, FEATURE_WOOCOMMERCE_HOSTING, FEATURE_PREMIUM_STORE_THEMES, FEATURE_STORE_DESIGN, FEATURE_UNLIMITED_PRODUCTS, FEATURE_DISPLAY_PRODUCTS_BRAND, FEATURE_PRODUCT_ADD_ONS, FEATURE_ASSEMBLED_KITS, FEATURE_MIN_MAX_ORDER_QUANTITY, FEATURE_STOCK_NOTIFS, FEATURE_DYNAMIC_UPSELLS, FEATURE_CUSTOM_MARKETING_AUTOMATION, FEATURE_BULK_DISCOUNTS, FEATURE_INVENTORY_MGMT, FEATURE_STREAMLINED_CHECKOUT, FEATURE_SELL_60_COUNTRIES, FEATURE_SHIPPING_INTEGRATIONS, FEATURE_PAYMENT_TRANSACTION_FEES_0_ALL, FEATURE_SUPPORT, FEATURE_STYLE_CUSTOMIZATION_FONTS_COLORS, FEATURE_STYLE_CUSTOMIZATION, FEATURE_GUIDED_WEBSITE_BUILDER, FEATURE_VIDEO_UPLOADS, FEATURE_AI_ASSISTANT, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR, FEATURE_BLAZE_AD_CREDITS, FEATURE_EMAIL_MARKETING, ]; }, getCheckoutFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_PLUGINS_THEMES, FEATURE_ACCEPT_PAYMENTS, FEATURE_SHIPPING_CARRIERS, FEATURE_UNLIMITED_PRODUCTS_SERVICES, FEATURE_INVENTORY, FEATURE_CUSTOM_MARKETING_AUTOMATION, ], get2023PricingGridSignupJetpackFeatures: () => [], // Experimental: Comparison grid Jetpack features for experiment variants. get2023PlanComparisonJetpackFeatureOverrideForExperiment: () => [ FEATURE_DONATIONS_AND_TIPS_JP, FEATURE_PAYMENT_BUTTONS_JP, FEATURE_PAYPAL_JP, ], getStorageFeature: ( showLegacyStorageFeature ) => { if ( showLegacyStorageFeature ) { return FEATURE_200GB_STORAGE; } return isEnabled( 'plans/updated-storage-labels' ) ? FEATURE_50GB_STORAGE : FEATURE_200GB_STORAGE; }, getPlanComparisonFeatureLabels: ( { isExperimentVariant } = {} ) => { const baseFeatures = { [ FEATURE_PREMIUM_THEMES ]: isExperimentVariant ? i18n.translate( 'All premium and store themes' ) : i18n.translate( 'All premium themes' ), [ FEATURE_SHARES_SOCIAL_MEDIA_JP ]: i18n.translate( 'Unlimited shares' ), [ FEATURE_COMMISSION_FEE_STANDARD_FEATURES ]: formatNumber( 0, { numberFormatOptions: { style: 'percent' }, } ), [ FEATURE_COMMISSION_FEE_WOO_FEATURES ]: formatNumber( 0, { numberFormatOptions: { style: 'percent' }, } ), [ FEATURE_SUPPORT ]: isExperimentVariant ? i18n.translate( 'Free 24/7 expert support with priority response times' ) : i18n.translate( 'Priority 24/7 support from our expert\u00A0team' ), ...( isExperimentVariant && { [ FEATURE_AI_ASSISTANT ]: i18n.translate( 'Enhanced' ), } ), }; return isStatsFeatureTranslated() ? { ...baseFeatures, [ FEATURE_STATS_JP ]: i18n.translate( 'Advanced insights, including UTM & device analytics' ), } : baseFeatures; }, getHostingSignupFeatures: ( term ) => () => compact( [ term !== TERM_MONTHLY && FEATURE_CUSTOM_DOMAIN, FEATURE_SELL_SHIP, FEATURE_CUSTOM_STORE, FEATURE_INVENTORY, FEATURE_CHECKOUT, FEATURE_ACCEPT_PAYMENTS_V2, FEATURE_SALES_REPORTS, FEATURE_SHIPPING_CARRIERS, FEATURE_EXTENSIONS, FEATURE_BANDWIDTH, FEATURE_GLOBAL_EDGE_CACHING, FEATURE_BURST, FEATURE_WAF_V2, FEATURE_CDN, FEATURE_CPUS, FEATURE_DATACENTRE_FAILOVER, FEATURE_SECURITY_MALWARE, FEATURE_SECURITY_DDOS, ] ), // Features not displayed but used for checking plan abilities getIncludedFeatures: () => [ FEATURE_AUDIO_UPLOADS, FEATURE_GOOGLE_MY_BUSINESS, WPCOM_FEATURES_INSTALL_PURCHASED_PLUGINS, FEATURE_UPLOAD_THEMES_PLUGINS, FEATURE_EMAIL_FORWARDING_EXTENDED_LIMIT, FEATURE_SEO_PREVIEW_TOOLS, WPCOM_FEATURES_ATOMIC, WPCOM_FEATURES_SCAN_SELF_SERVE, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS_SELF_SERVE, WPCOM_FEATURES_FULL_ACTIVITY_LOG, FEATURE_SFTP, FEATURE_SSH, FEATURE_SITE_STAGING_SITES, FEATURE_SECURITY_SETTINGS, WPCOM_FEATURES_GITHUB_DEPLOYMENTS, WPCOM_FEATURES_LOGS, WPCOM_FEATURES_MONITORING, WPCOM_FEATURES_PERFORMANCE, WPCOM_FEATURES_BIG_SKY, ], getInferiorFeatures: () => [], getCancellationFeatures: () => [ FEATURE_ACCEPT_PAYMENTS_V2, FEATURE_SHIPPING_CARRIERS, FEATURE_ECOMMERCE_MARKETING, FEATURE_SELL_SHIP, FEATURE_PLUGINS_THEMES, FEATURE_ADVANCED_SEO_TOOLS, ], getVisualSplitCommerceFeatures: () => [ // All Business hosting features FEATURE_UNLIMITED_TRAFFIC, FEATURE_CUSTOM_DOMAIN, FEATURE_CDN, WPCOM_FEATURES_BACKUPS_RESTORE, FEATURE_EASY_SITE_MIGRATION, FEATURE_WAF_V2, FEATURE_SECURITY_DDOS, FEATURE_REAL_TIME_SECURITY_SCANS, FEATURE_99_999_UPTIME, FEATURE_SITE_STAGING_SITES, FEATURE_DEV_TOOLS_GIT, FEATURE_DEV_TOOLS_SSH, FEATURE_PRIORITY_24_7_SUPPORT, // Additional Commerce features FEATURE_ACCEPT_PAYMENTS, FEATURE_WOO_AUTOMATE, FEATURE_PRODUCT_ADD_ONS, FEATURE_WOO_SHIPPING_TRACKING, FEATURE_GOOGLE_LISTING_ADS, ], } ); const getWooExpressMediumPlanCompareFeatures = (): string[] => [ FEATURE_WOOCOMMERCE_STORE, FEATURE_WOOCOMMERCE_MOBILE_APP, FEATURE_WORDPRESS_CMS, FEATURE_WORDPRESS_MOBILE_APP, FEATURE_CUSTOM_DOMAIN, FEATURE_FREE_SSL_CERTIFICATE, FEATURE_AUTOMATED_BACKUPS_SECURITY_SCAN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_UNLIMITED_ADMINS, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_FAST_SUPPORT_FROM_EXPERTS, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_SALES_REPORTS, FEATURE_GOOGLE_ANALYTICS_V3, FEATURE_LIST_UNLIMITED_PRODUCTS, FEATURE_GIFT_CARDS, FEATURE_MIN_MAX_ORDER_QUANTITY, FEATURE_PRODUCT_BUNDLES, FEATURE_LIST_PRODUCTS_BY_BRAND, FEATURE_PRODUCT_RECOMMENDATIONS, FEATURE_INTEGRATED_PAYMENTS, FEATURE_INTERNATIONAL_PAYMENTS, FEATURE_AUTOMATED_SALES_TAXES, FEATURE_ACCEPT_LOCAL_PAYMENTS, FEATURE_RECURRING_PAYMENTS, FEATURE_MIN_MAX_ORDER_QUANTITY, FEATURE_PROMOTE_ON_TIKTOK, FEATURE_SYNC_WITH_PINTEREST, FEATURE_CONNECT_WITH_FACEBOOK, FEATURE_BACK_IN_STOCK_NOTIFICATIONS, FEATURE_MARKETING_AUTOMATION, FEATURE_ABANDONED_CART_RECOVERY, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_ADVERTISE_ON_GOOGLE, FEATURE_CUSTOM_ORDER_EMAILS, FEATURE_INTEGRATED_SHIPMENT_TRACKING, FEATURE_LIVE_SHIPPING_RATES, FEATURE_DISCOUNTED_SHIPPING, FEATURE_PRINT_SHIPPING_LABELS, FEATURE_AI_ASSISTED_PRODUCT_DESCRIPTION, ]; const getWooExpressSmallPlanCompareFeatures = (): string[] => [ FEATURE_WOOCOMMERCE_STORE, FEATURE_WOOCOMMERCE_MOBILE_APP, FEATURE_WORDPRESS_CMS, FEATURE_WORDPRESS_MOBILE_APP, FEATURE_CUSTOM_DOMAIN, FEATURE_FREE_SSL_CERTIFICATE, FEATURE_AUTOMATED_BACKUPS_SECURITY_SCAN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_UNLIMITED_ADMINS, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_FAST_SUPPORT_FROM_EXPERTS, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_SALES_REPORTS, FEATURE_GOOGLE_ANALYTICS_V3, FEATURE_LIST_UNLIMITED_PRODUCTS, FEATURE_GIFT_CARDS, FEATURE_LIST_PRODUCTS_BY_BRAND, FEATURE_INTEGRATED_PAYMENTS, FEATURE_INTERNATIONAL_PAYMENTS, FEATURE_AUTOMATED_SALES_TAXES, FEATURE_ACCEPT_LOCAL_PAYMENTS, FEATURE_RECURRING_PAYMENTS, FEATURE_PROMOTE_ON_TIKTOK, FEATURE_SYNC_WITH_PINTEREST, FEATURE_CONNECT_WITH_FACEBOOK, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_ADVERTISE_ON_GOOGLE, FEATURE_CUSTOM_ORDER_EMAILS, FEATURE_INTEGRATED_SHIPMENT_TRACKING, FEATURE_LIVE_SHIPPING_RATES, FEATURE_PRINT_SHIPPING_LABELS, FEATURE_AI_ASSISTED_PRODUCT_DESCRIPTION, ]; const getWooExpressPlanCompareFeatures = (): string[] => [ ...getWooExpressSmallPlanCompareFeatures(), ...getWooExpressMediumPlanCompareFeatures(), ]; const getPlanWooExpressMediumDetails = (): IncompleteWPcomPlan => ( { ...getPlanEcommerceDetails(), getTitle: () => i18n.translate( 'Performance' ), getPlanTagline: () => i18n.translate( 'Accelerate your growth with advanced features.' ), get2023PricingGridSignupWpcomFeatures: () => [ FEATURE_200GB_STORAGE, FEATURE_BACK_IN_STOCK_NOTIFICATIONS, FEATURE_MARKETING_AUTOMATION, FEATURE_AUTOMATED_EMAIL_TRIGGERS, FEATURE_CART_ABANDONMENT_EMAILS, FEATURE_OFFER_BULK_DISCOUNTS, FEATURE_RECOMMEND_ADD_ONS, FEATURE_MIN_MAX_ORDER_QUANTITY, ], getPlanCompareFeatures: () => getWooExpressPlanCompareFeatures(), get2023PlanComparisonFeatureOverride: () => getWooExpressMediumPlanCompareFeatures(), getStorageFeature: () => FEATURE_200GB_STORAGE, getTagline: () => i18n.translate( 'Learn more about everything included with Woo Express Performance and take advantage of its powerful marketplace features.' ), } ); const getPlanWooExpressSmallDetails = (): IncompleteWPcomPlan => ( { ...getPlanEcommerceDetails(), get2023PricingGridSignupWpcomFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_UNLIMITED_ADMINS, FEATURE_50GB_STORAGE, FEATURE_UNLIMITED_PRODUCTS_SERVICES, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_SELL_INTERNATIONALLY, FEATURE_AUTOMATIC_SALES_TAX, FEATURE_AUTOMATED_BACKUPS_SECURITY_SCAN, FEATURE_INTEGRATED_SHIPMENT_TRACKING, FEATURE_REAL_TIME_ANALYTICS, FEATURE_SELL_EGIFTS_AND_VOUCHERS, FEATURE_EMAIL_MARKETING, FEATURE_MARKETPLACE_SYNC_SOCIAL_MEDIA_INTEGRATION, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_AI_ASSISTED_PRODUCT_DESCRIPTION, ], getPlanCompareFeatures: () => getWooExpressPlanCompareFeatures(), get2023PlanComparisonFeatureOverride: () => getWooExpressSmallPlanCompareFeatures(), getStorageFeature: () => FEATURE_50GB_STORAGE, getTitle: () => i18n.translate( 'Essential' ), getPlanTagline: () => i18n.translate( 'Everything you need to set up your store and start selling your products.' ), getTagline: () => i18n.translate( 'Learn more about everything included with Woo Express Essential and take advantage of its powerful marketplace features.' ), } ); const getWooHostedPlanCompareFeatures = (): string[] => [ // Create your own online store FEATURE_WOO_HOSTED_POWERFUL_COMMERCE_TOOLS, FEATURE_WOO_HOSTED_AI_BUILDER, FEATURE_WOO_HOSTED_FREE_DOMAIN_1_YEAR, // Accept payments FEATURE_WOO_HOSTED_SEAMLESS_CHECKOUT, FEATURE_WOO_HOSTED_ACCEPT_CARD_PAYMENTS, // Sell products and bookable services FEATURE_WOO_HOSTED_LIST_PRODUCTS, FEATURE_WOO_HOSTED_BOOKINGS, FEATURE_WOO_HOSTED_TEAM_BOOKINGS, FEATURE_WOO_HOSTED_UPSELLS_CROSS_SELLS, FEATURE_WOO_HOSTED_GIFT_CARDS, // Manage your store FEATURE_WOO_HOSTED_MOBILE_APP, FEATURE_WOO_HOSTED_STAFF_ACCOUNTS, FEATURE_WOO_HOSTED_SALES_TAX, FEATURE_WOO_HOSTED_SHIPPING_LABELS, FEATURE_WOO_HOSTED_SHIPMENT_TRACKING, FEATURE_WOO_HOSTED_USPS_UPS, FEATURE_WOO_HOSTED_ANALYTICS_REPORTS, FEATURE_WOO_HOSTED_STORAGE_SPACE, FEATURE_WOO_HOSTED_SECURITY, FEATURE_WOO_HOSTED_PRIORITY_SUPPORT, // Grow your business FEATURE_WOO_HOSTED_EMAIL_CAMPAIGNS, FEATURE_WOO_HOSTED_EMAIL_SUBSCRIBER_MGMT, FEATURE_WOO_HOSTED_AUTOMATED_EMAIL_FLOWS, FEATURE_WOO_HOSTED_ABANDONED_CART_EMAILS, FEATURE_WOO_HOSTED_POST_PURCHASE_EMAILS, FEATURE_WOO_HOSTED_EMAIL_TEMPLATES, FEATURE_WOO_HOSTED_SEO_TOOLS, FEATURE_WOO_HOSTED_COUPONS, ]; const getPlanWooHostedBasicDetails = (): IncompleteWPcomPlan => ( { ...getPlanEcommerceDetails(), get2023PricingGridSignupWpcomFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_WOO_HOSTED_PACKAGE, FEATURE_WOO_HOSTED_AI_BUILDER, FEATURE_WOO_HOSTED_PAYPAL_INTEGRATON, FEATURE_WOO_HOSTED_MARKETING_TOOLS, FEATURE_WOO_HOSTED_BASIC_MAILPOET, FEATURE_WOO_HOSTED_BASIC_ADMIN_USERS, FEATURE_WOO_HOSTED_BASIC_STORAGE, ], getPlanCompareFeatures: () => [ ...getWooHostedPlanCompareFeatures() ], get2023PlanComparisonFeatureOverride: () => [ ...getWooHostedPlanCompareFeatures() ], getPlanComparisonFeatureLabels: () => ( { [ FEATURE_WOO_HOSTED_ACCEPT_CARD_PAYMENTS ]: i18n.translate( 'Online card rates start at 2.9% + $0.30/transaction' ), [ FEATURE_WOO_HOSTED_STAFF_ACCOUNTS ]: i18n.translate( '1 staff account' ), [ FEATURE_WOO_HOSTED_STORAGE_SPACE ]: i18n.translate( '50 GB storage' ), [ FEATURE_WOO_HOSTED_EMAIL_CAMPAIGNS ]: i18n.translate( 'Send up to 5,000 emails/month' ), [ FEATURE_WOO_HOSTED_EMAIL_SUBSCRIBER_MGMT ]: i18n.translate( 'Up to 500 email subscribers' ), } ), getStorageFeature: () => FEATURE_50GB_STORAGE, getTitle: () => i18n.translate( 'Basic' ), getPlanTagline: () => i18n.translate( 'Everything you need to build and run your online store.' ), getTagline: () => i18n.translate( 'Learn more about everything included with Woo Basic and take advantage of its powerful marketplace features.' ), } ); const getPlanWooHostedProDetails = (): IncompleteWPcomPlan => ( { ...getPlanEcommerceDetails(), get2023PricingGridSignupWpcomFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_WOO_HOSTED_PACKAGE, FEATURE_WOO_HOSTED_AI_BUILDER, FEATURE_WOO_HOSTED_PAYPAL_INTEGRATON, FEATURE_WOO_HOSTED_MARKETING_TOOLS, FEATURE_WOO_HOSTED_PRO_MAILPOET, FEATURE_WOO_HOSTED_PRO_ADMIN_USERS, FEATURE_WOO_HOSTED_PRO_STORAGE, ], getPlanCompareFeatures: () => [ ...getWooHostedPlanCompareFeatures(), FEATURE_WOO_HOSTED_POS_PAYMENTS, FEATURE_WOO_HOSTED_POS_SYSTEM, FEATURE_WOO_HOSTED_POS_NO_MONTHLY_FEES, ], get2023PlanComparisonFeatureOverride: () => [ ...getWooHostedPlanCompareFeatures(), FEATURE_WOO_HOSTED_POS_PAYMENTS, FEATURE_WOO_HOSTED_POS_SYSTEM, FEATURE_WOO_HOSTED_POS_NO_MONTHLY_FEES, ], getPlanComparisonFeatureLabels: () => ( { [ FEATURE_WOO_HOSTED_ACCEPT_CARD_PAYMENTS ]: i18n.translate( 'Online card rates start at 2.9% + $0.30/transaction' ), [ FEATURE_WOO_HOSTED_POS_PAYMENTS ]: i18n.translate( 'In-person card rates start at 2.7% + $0.10/transaction' ), [ FEATURE_WOO_HOSTED_STAFF_ACCOUNTS ]: i18n.translate( 'Unlimited staff accounts' ), [ FEATURE_WOO_HOSTED_STORAGE_SPACE ]: i18n.translate( '100 GB storage' ), [ FEATURE_WOO_HOSTED_EMAIL_CAMPAIGNS ]: i18n.translate( 'Send up to 250,000 emails/month' ), [ FEATURE_WOO_HOSTED_EMAIL_SUBSCRIBER_MGMT ]: i18n.translate( 'Unlimited email subscribers' ), } ), getStorageFeature: () => FEATURE_100GB_STORAGE, getTitle: () => i18n.translate( 'Pro' ), getPlanTagline: () => i18n.translate( 'For businesses selling anywhere, reaching more customers, and growing fast.' ), getTagline: () => i18n.translate( 'Learn more about everything included with Woo Pro and take advantage of its powerful marketplace features.' ), } ); const getPlanPremiumDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_PREMIUM, getTitle: getPlanPremiumTitle, getPlanTagline: () => i18n.translate( 'Step up site customization with premium design features.' ), getNewsletterTagLine: () => i18n.translate( 'Make it even more memorable with premium designs and style customization.' ), getBlogOnboardingTagLine: () => i18n.translate( 'Make it even more memorable with premium designs, 4K video, and style customization.' ), getDescription: () => i18n.translate( '{{strong}}Best for professionals and creators:{{/strong}} Grow your online presence and generate income with a professional-looking website — no developer required.', plansDescriptionHeadingComponent ), getPlanCompareFeatures: ( _, { isLoggedInMonthlyPricing } = {} ) => compact( [ // pay attention to ordering, shared features should align on /plan page FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_JETPACK_ESSENTIAL, isLoggedInMonthlyPricing && FEATURE_FAST_SUPPORT_FROM_EXPERTS, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_13GB_STORAGE, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, isLoggedInMonthlyPricing && FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_SIMPLE_PAYMENTS, FEATURE_GOOGLE_ANALYTICS, FEATURE_REPUBLICIZE, FEATURE_WORDADS_INSTANT, FEATURE_VIDEO_UPLOADS, FEATURE_PAYMENT_TRANSACTION_FEES_4, ] ), getPromotedFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_NO_ADS, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, FEATURE_13GB_STORAGE, ], getSignupFeatures: () => [ FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, FEATURE_ALL_PERSONAL_FEATURES, ], getTagline: function () { return i18n.translate( 'Take your Newsletter further, faster. Get everything included in %(planName)s, plus premium design themes, baked-in video uploads, ad monetization, deep visitor insights from Google Analytics, and 24/7 expert support.', { args: { planName: this.getTitle() } } ); }, getNewsletterSignupFeatures: () => [ FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_STYLE_CUSTOMIZATION, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_UNLTD_SOCIAL_MEDIA_JP, FEATURE_UPLOAD_VIDEO, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, FEATURE_PAYMENT_TRANSACTION_FEES_4, ], getNewsletterHighlightedFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_UNLIMITED_EMAILS, FEATURE_AD_FREE_EXPERIENCE, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_REAL_TIME_ANALYTICS, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, ], getBlogOnboardingSignupFeatures: () => [ FEATURE_CUSTOM_DOMAIN, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_STYLE_CUSTOMIZATION, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_WORDADS, FEATURE_PAYMENT_TRANSACTION_FEES_4, ], getBlogOnboardingHighlightedFeatures: () => [ FEATURE_CUSTOM_DOMAIN ], getBlogOnboardingSignupJetpackFeatures: () => [ FEATURE_VIDEOPRESS_JP, FEATURE_UNLTD_SOCIAL_MEDIA_JP, FEATURE_SITE_ACTIVITY_LOG_JP, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, ], getBlogSignupFeatures: () => [ FEATURE_MONETISE, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_ALL_PERSONAL_FEATURES, ].filter( isValueTruthy ), getPortfolioSignupFeatures: () => [ FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_ALL_PERSONAL_FEATURES, ].filter( isValueTruthy ), getSignupCompareAvailableFeatures: () => compact( [ FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_NO_ADS, FEATURE_COLLECT_PAYMENTS_V2, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_EARN_AD, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_GOOGLE_ANALYTICS, ] ), get2023PricingGridSignupWpcomFeatures: () => [ ...( isBigSkyOnboarding() ? [ FEATURE_BIG_SKY_WEBSITE_BUILDER ] : [] ), FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_STYLE_CUSTOMIZATION, FEATURE_CONNECT_ANALYTICS, FEATURE_UPLOAD_VIDEO, FEATURE_STATS_ADVANCED_20250206, FEATURE_UPLOAD_PLUGINS, ], getVar42NoAiSignupWpcomFeatures: () => [ FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_GUIDED_WEBSITE_BUILDER, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_SUPPORT_FROM_EXPERTS, FEATURE_UPLOAD_PLUGINS, FEATURE_STATS_ADVANCED_20250206, FEATURE_SIMPLE_PAYMENTS, FEATURE_UPLOAD_VIDEO, ], get2023PlanComparisonFeatureOverride: () => { const baseFeatures = [ FEATURE_CUSTOM_DOMAIN, FEATURE_FAST_SUPPORT_FROM_EXPERTS, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_WORDADS, FEATURE_CONNECT_ANALYTICS, FEATURE_STYLE_CUSTOMIZATION, FEATURE_PAYMENT_TRANSACTION_FEES_4, FEATURE_SUPPORT, FEATURE_ISOLATED_INFRA, FEATURE_PLUGINS_THEMES, ]; return baseFeatures; }, // Comparison grid when plans pricing differentiators experiment is active (non-control). get2023PlanComparisonFeatureOverrideForExperiment: () => { const baseFeatures = [ FEATURE_CUSTOM_DOMAIN, FEATURE_FREE_FAST_SUPPORT, // Shows "Free support with faster response times" WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_WORDADS, FEATURE_CONNECT_ANALYTICS, FEATURE_SEO_JP, FEATURE_STYLE_CUSTOMIZATION_FONTS_COLORS, FEATURE_STYLE_CUSTOMIZATION, FEATURE_GUIDED_WEBSITE_BUILDER, FEATURE_PAYMENT_TRANSACTION_FEES_4, FEATURE_ISOLATED_INFRA, FEATURE_AI_ASSISTANT, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_WORDPRESS_STUDIO_SYNC, FEATURE_PLUGINS_THEMES, ]; return baseFeatures; }, getCheckoutFeatures: () => [ ...( isBigSkyOnboarding() ? [ FEATURE_BIG_SKY_WEBSITE_BUILDER_CHECKOUT ] : [] ), FEATURE_CUSTOM_DOMAIN, FEATURE_PLUGINS_THEMES, FEATURE_FAST_SUPPORT_FROM_EXPERTS, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_WORDADS, FEATURE_STYLE_CUSTOMIZATION, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, FEATURE_UPLOAD_VIDEO, FEATURE_UNLTD_SOCIAL_MEDIA_JP, FEATURE_SITE_ACTIVITY_LOG_JP, ], get2023PricingGridSignupJetpackFeatures: () => { return []; }, getStorageFeature: () => FEATURE_13GB_STORAGE, getPlanComparisonFeatureLabels: ( { isExperimentVariant } = {} ) => { const baseFeatures = { [ FEATURE_PREMIUM_THEMES ]: i18n.translate( 'All premium themes' ), [ FEATURE_SHARES_SOCIAL_MEDIA_JP ]: i18n.translate( 'Unlimited shares' ), [ FEATURE_COMMISSION_FEE_STANDARD_FEATURES ]: formatNumber( 0.04, { numberFormatOptions: { style: 'percent' }, } ), [ FEATURE_SUPPORT ]: isExperimentVariant ? i18n.translate( 'Free support with faster response times' ) : i18n.translate( 'Fast support from our expert\u00A0team' ), // AI features show "(limited)" text for Premium plan [ FEATURE_AI_WRITER_DESIGNER_LIMITED ]: i18n.translate( 'Limited' ), ...( isExperimentVariant && { [ FEATURE_AI_ASSISTANT ]: i18n.translate( 'Usage limits apply' ), [ FEATURE_BUILT_IN_SITE_ASSISTANT ]: i18n.translate( 'Usage limits apply' ), } ), }; return isStatsFeatureTranslated() ? { ...baseFeatures, [ FEATURE_STATS_JP ]: i18n.translate( 'Advanced insights, including UTM & device analytics' ), } : baseFeatures; }, get2023PlanComparisonJetpackFeatureOverride: () => { return [ FEATURE_PAYPAL_JP, FEATURE_UPLOAD_VIDEO, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, FEATURE_ADVANCED_FORM_FEATURES_JP, ]; }, // Experimental: Comparison grid Jetpack features for experiment variants. // Advanced Jetpack Forms is excluded for Premium plan in experiment variants. get2023PlanComparisonJetpackFeatureOverrideForExperiment: () => { return [ FEATURE_PAYPAL_JP, FEATURE_UPLOAD_VIDEO, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, FEATURE_DONATIONS_AND_TIPS_JP, FEATURE_PAYMENT_BUTTONS_JP, ]; }, // Features not displayed but used for checking plan abilities getIncludedFeatures: () => [ FEATURE_AUDIO_UPLOADS, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_FULL_ACTIVITY_LOG, WPCOM_FEATURES_BIG_SKY, ], getInferiorFeatures: () => [], getCancellationFeatures: () => [ FEATURE_FAST_SUPPORT_FROM_EXPERTS, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_STYLE_CUSTOMIZATION, FEATURE_WORDADS_INSTANT, FEATURE_AD_FREE_EXPERIENCE, ], } ); const getPlanA4ABusinessDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_A4A, type: TYPE_BUSINESS, getTitle: getPlanBusinessTitle, getDescription: () => i18n.translate( 'Power your business website with custom plugins and themes, storage, and the ability to remove WordPress.com branding.' ), } ); const getPlanBusinessDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_BUSINESS, getTitle: getPlanBusinessTitle, getPlanTagline: () => { if ( i18n.getLocaleSlug()?.startsWith( 'en' ) || i18n.hasTranslation( 'Unlock business tools, priority support, developer power with predictable costs.' ) ) { return i18n.translate( 'Unlock business tools, priority support, developer power with predictable costs.' ); } return i18n.translate( 'Unlock next-level WordPress with all custom plugins and themes.' ); }, getBlogOnboardingTagLine: () => i18n.translate( 'Expand your blog with plugins and powerful tools to help you scale.' ), getDescription: () => i18n.translate( '{{strong}}Best for developers and business owners:{{/strong}} Use powerful developer and business tools, without the overhead.', plansDescriptionHeadingComponent ), getTagline: function () { return i18n.translate( 'Learn more about everything included with %(planName)s and take advantage of its powerful marketplace features.', { args: { planName: this.getTitle() } } ); }, getPlanCompareFeatures: ( _, { isLoggedInMonthlyPricing } = {} ) => compact( [ // pay attention to ordering, shared features should align on /plan page FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_JETPACK_ADVANCED, isLoggedInMonthlyPricing && FEATURE_FAST_SUPPORT_FROM_EXPERTS, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_50GB_STORAGE, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, isLoggedInMonthlyPricing && FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_SIMPLE_PAYMENTS, FEATURE_GOOGLE_ANALYTICS, FEATURE_REPUBLICIZE, FEATURE_WORDADS_INSTANT, FEATURE_VIDEO_UPLOADS, FEATURE_ADVANCED_SEO, FEATURE_UPLOAD_PLUGINS, FEATURE_UPLOAD_THEMES, FEATURE_SFTP_DATABASE, FEATURE_NO_BRANDING, FEATURE_PAYMENT_TRANSACTION_FEES_2, ] ), getPromotedFeatures: () => [ FEATURE_200GB_STORAGE, FEATURE_CUSTOM_DOMAIN, FEATURE_NO_ADS, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, FEATURE_VIDEO_UPLOADS, ], getSignupFeatures: () => [ FEATURE_UPLOAD_THEMES_PLUGINS, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_ALL_PREMIUM_FEATURES, ], getBlogSignupFeatures: () => [ FEATURE_UPLOAD_THEMES_PLUGINS, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_ALL_PREMIUM_FEATURES, ], getPortfolioSignupFeatures: () => [ FEATURE_UPLOAD_THEMES_PLUGINS, FEATURE_200GB_STORAGE, FEATURE_ALL_PREMIUM_FEATURES, ], getSignupCompareAvailableFeatures: () => compact( [ FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_NO_ADS, FEATURE_COLLECT_PAYMENTS_V2, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_EARN_AD, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_GOOGLE_ANALYTICS, FEATURE_INSTALL_PLUGINS, FEATURE_ADVANCED_SEO_EXPANDED_ABBR, FEATURE_SITE_BACKUPS_AND_RESTORE, FEATURE_SFTP_DATABASE, ] ), get2023PricingGridSignupWpcomFeatures: () => [ ...( isBigSkyOnboarding() ? [ FEATURE_BIG_SKY_WEBSITE_BUILDER ] : [] ), FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_STYLE_CUSTOMIZATION, FEATURE_CONNECT_ANALYTICS, FEATURE_UPLOAD_VIDEO, FEATURE_STATS_ADVANCED_20250206, FEATURE_UPLOAD_PLUGINS, FEATURE_DEV_TOOLS, ], getVar42NoAiSignupWpcomFeatures: () => [ FEATURE_UNLIMITED_ENTITIES, FEATURE_CUSTOM_DOMAIN, FEATURE_AD_FREE_EXPERIENCE, FEATURE_GUIDED_WEBSITE_BUILDER, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_UPLOAD_PLUGINS, FEATURE_STATS_ADVANCED_20250206, FEATURE_SIMPLE_PAYMENTS, FEATURE_VIDEO_UPLOADS, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR, FEATURE_EMAIL_MARKETING, FEATURE_BLAZE_AD_CREDITS, FEATURE_REALTIME_BACKUPS_JP, FEATURE_DEV_TOOLS, ], get2023PlanComparisonFeatureOverride: () => { return [ FEATURE_CUSTOM_DOMAIN, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_PLUGINS_THEMES, FEATURE_BANDWIDTH, FEATURE_UNLIMITED_TRAFFIC, FEATURE_GLOBAL_EDGE_CACHING, FEATURE_CDN, FEATURE_DATACENTRE_FAILOVER, FEATURE_ISOLATED_INFRA, FEATURE_SECURITY_MALWARE, FEATURE_TIERED_STORAGE_PLANS_AVAILABLE, FEATURE_REAL_TIME_SECURITY_SCANS, FEATURE_SPAM_JP, FEATURE_SECURITY_DDOS, FEATURE_DEV_TOOLS_GIT, FEATURE_DEV_TOOLS_SSH, FEATURE_SITE_STAGING_SITES, FEATURE_SEAMLESS_STAGING_PRODUCTION_SYNCING, FEATURE_WP_UPDATES, FEATURE_MULTI_SITE, FEATURE_SECURITY_VULNERABILITY_NOTIFICATIONS, FEATURE_PAYMENT_TRANSACTION_FEES_0_WOO, FEATURE_PAYMENT_TRANSACTION_FEES_2_REGULAR, FEATURE_COMMISSION_FEE_WOO_FEATURES, FEATURE_COMMISSION_FEE_STANDARD_FEATURES, FEATURE_STYLE_CUSTOMIZATION, ]; }, // Comparison grid when plans pricing differentiators experiment is active (non-control). get2023PlanComparisonFeatureOverrideForExperiment: () => { return [ FEATURE_CUSTOM_DOMAIN, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_PLUGINS_THEMES, FEATURE_BANDWIDTH, FEATURE_UNLIMITED_TRAFFIC, FEATURE_GLOBAL_EDGE_CACHING, FEATURE_CDN, FEATURE_DATACENTRE_FAILOVER, FEATURE_ISOLATED_INFRA, FEATURE_SECURITY_MALWARE, FEATURE_TIERED_STORAGE_PLANS_AVAILABLE, FEATURE_REAL_TIME_SECURITY_SCANS, FEATURE_SPAM_JP, FEATURE_SECURITY_DDOS, FEATURE_DEV_TOOLS_GIT, FEATURE_DEV_TOOLS_SSH, FEATURE_SITE_STAGING_SITES, FEATURE_SEAMLESS_STAGING_PRODUCTION_SYNCING, FEATURE_WP_UPDATES, FEATURE_MULTI_SITE, FEATURE_WORDPRESS_STUDIO_SYNC, FEATURE_SECURITY_VULNERABILITY_NOTIFICATIONS, FEATURE_PAYMENT_TRANSACTION_FEES_0_WOO, FEATURE_PAYMENT_TRANSACTION_FEES_2_REGULAR, FEATURE_COMMISSION_FEE_WOO_FEATURES, FEATURE_COMMISSION_FEE_STANDARD_FEATURES, FEATURE_STYLE_CUSTOMIZATION_FONTS_COLORS, FEATURE_STYLE_CUSTOMIZATION, FEATURE_GUIDED_WEBSITE_BUILDER, FEATURE_VIDEO_UPLOADS, FEATURE_AI_ASSISTANT, FEATURE_BUILT_IN_SITE_ASSISTANT, FEATURE_PROFESSIONAL_EMAIL_FREE_YEAR, FEATURE_BLAZE_AD_CREDITS, FEATURE_EMAIL_MARKETING, ]; }, getCheckoutFeatures: () => [ ...( isBigSkyOnboarding() ? [ FEATURE_BIG_SKY_WEBSITE_BUILDER_CHECKOUT ] : [] ), FEATURE_CUSTOM_DOMAIN, FEATURE_PLUGINS_THEMES, FEATURE_BANDWIDTH, FEATURE_CDN, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_DEV_TOOLS, FEATURE_REALTIME_BACKUPS_JP, FEATURE_SITE_ACTIVITY_LOG_JP, FEATURE_SECURITY_DDOS, FEATURE_SITE_STAGING_SITES, ], get2023PricingGridSignupJetpackFeatures: () => { return []; }, get2023PlanComparisonJetpackFeatureOverride: () => { return [ FEATURE_REALTIME_BACKUPS_JP, FEATURE_ONE_CLICK_RESTORE_V2, FEATURE_UPTIME_MONITOR_JP, FEATURE_PLUGIN_AUTOUPDATE_JP, FEATURE_SEO_JP, FEATURE_ADVANCED_FORM_FEATURES_JP, ]; }, // Experimental: Comparison grid Jetpack features for experiment variants. get2023PlanComparisonJetpackFeatureOverrideForExperiment: () => { return [ FEATURE_REALTIME_BACKUPS_JP, FEATURE_ONE_CLICK_RESTORE_V2, FEATURE_UPTIME_MONITOR_JP, FEATURE_PLUGIN_AUTOUPDATE_JP, FEATURE_SEO_JP, FEATURE_ADVANCED_FORM_FEATURES_JP, FEATURE_DONATIONS_AND_TIPS_JP, FEATURE_PAYMENT_BUTTONS_JP, FEATURE_PAYPAL_JP, ]; }, getPlanComparisonFeatureLabels: ( { isExperimentVariant } = {} ) => { const featureLabels: Record< Feature, TranslateResult > = { [ FEATURE_PREMIUM_THEMES ]: i18n.translate( 'All premium themes' ), [ FEATURE_PREMIUM_STORE_THEMES ]: i18n.translate( 'Available with plugins' ), [ FEATURE_UNLIMITED_PRODUCTS ]: i18n.translate( 'Available with plugins' ), [ FEATURE_DISPLAY_PRODUCTS_BRAND ]: i18n.translate( 'Available with plugins' ), [ FEATURE_PRODUCT_ADD_ONS ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_ASSEMBLED_KITS ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_MIN_MAX_ORDER_QUANTITY ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_STOCK_NOTIFS ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_DYNAMIC_UPSELLS ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_CUSTOM_MARKETING_AUTOMATION ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_BULK_DISCOUNTS ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_INVENTORY_MGMT ]: i18n.translate( 'Available with plugins' ), [ FEATURE_STREAMLINED_CHECKOUT ]: i18n.translate( 'Available with plugins' ), [ FEATURE_SELL_60_COUNTRIES ]: i18n.translate( 'Available with plugins' ), [ FEATURE_SHIPPING_INTEGRATIONS ]: i18n.translate( 'Available with paid plugins' ), [ FEATURE_SHARES_SOCIAL_MEDIA_JP ]: i18n.translate( 'Unlimited shares' ), [ FEATURE_STORE_DESIGN ]: i18n.translate( 'Available with plugins' ), [ FEATURE_COMMISSION_FEE_STANDARD_FEATURES ]: formatNumber( 0.02, { numberFormatOptions: { style: 'percent' }, } ), [ FEATURE_COMMISSION_FEE_WOO_FEATURES ]: formatNumber( 0, { numberFormatOptions: { style: 'percent' }, } ), [ FEATURE_SUPPORT ]: isExperimentVariant ? i18n.translate( 'Free 24/7 expert support with priority response times' ) : i18n.translate( 'Priority 24/7 support from our expert team' ), ...( isExperimentVariant && { [ FEATURE_AI_ASSISTANT ]: i18n.translate( 'Enhanced' ), } ), }; return isStatsFeatureTranslated() ? { ...featureLabels, [ FEATURE_STATS_JP ]: i18n.translate( 'Advanced insights, including UTM & device analytics' ), } : featureLabels; }, getStorageFeature: ( showLegacyStorageFeature ) => { if ( showLegacyStorageFeature ) { return FEATURE_200GB_STORAGE; } return isEnabled( 'plans/updated-storage-labels' ) ? FEATURE_50GB_STORAGE : FEATURE_200GB_STORAGE; }, getHostingSignupFeatures: ( term ) => () => compact( [ term !== TERM_MONTHLY && FEATURE_CUSTOM_DOMAIN, FEATURE_PLUGINS_THEMES, FEATURE_BANDWIDTH, FEATURE_GLOBAL_EDGE_CACHING, FEATURE_BURST, FEATURE_WAF_V2, FEATURE_CDN, FEATURE_CPUS, FEATURE_DATACENTRE_FAILOVER, FEATURE_ISOLATED_INFRA, FEATURE_SECURITY_MALWARE, FEATURE_SECURITY_DDOS, FEATURE_DEV_TOOLS, FEATURE_SITE_STAGING_SITES, FEATURE_WP_UPDATES, FEATURE_MULTI_SITE, ] ), getBlogOnboardingSignupFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_PLUGINS_THEMES, FEATURE_SECURITY_MALWARE, FEATURE_WP_UPDATES, FEATURE_PAYMENT_TRANSACTION_FEES_2, ], getBlogOnboardingSignupJetpackFeatures: () => [ FEATURE_SEO_JP, FEATURE_PLUGIN_AUTOUPDATE_JP, FEATURE_REALTIME_BACKUPS_JP, FEATURE_ONE_CLICK_RESTORE_V2, FEATURE_ES_SEARCH_JP, ], // Features not displayed but used for checking plan abilities getIncludedFeatures: () => [ FEATURE_AUDIO_UPLOADS, FEATURE_GOOGLE_MY_BUSINESS, WPCOM_FEATURES_INSTALL_PURCHASED_PLUGINS, FEATURE_EMAIL_FORWARDING_EXTENDED_LIMIT, FEATURE_SEO_PREVIEW_TOOLS, WPCOM_FEATURES_ATOMIC, WPCOM_FEATURES_SCAN_SELF_SERVE, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS_SELF_SERVE, WPCOM_FEATURES_FULL_ACTIVITY_LOG, FEATURE_SFTP, FEATURE_SSH, FEATURE_SITE_STAGING_SITES, FEATURE_SECURITY_SETTINGS, WPCOM_FEATURES_GITHUB_DEPLOYMENTS, WPCOM_FEATURES_LOGS, WPCOM_FEATURES_MONITORING, WPCOM_FEATURES_PERFORMANCE, WPCOM_FEATURES_BIG_SKY, ], getInferiorFeatures: () => [], getSenseiFeatures: ( term ) => () => compact( [ term !== TERM_MONTHLY && FEATURE_CUSTOM_DOMAIN, term !== TERM_MONTHLY && FEATURE_SENSEI_SUPPORT, FEATURE_SENSEI_UNLIMITED, FEATURE_SENSEI_INTERACTIVE, FEATURE_SENSEI_QUIZZES, FEATURE_SENSEI_SELL_COURSES, FEATURE_SENSEI_STORAGE, FEATURE_SENSEI_HOSTING, FEATURE_SENSEI_JETPACK, ] ), getSenseiHighlightedFeatures: () => [ FEATURE_CUSTOM_DOMAIN, FEATURE_SENSEI_SUPPORT ], getCancellationFeatures: () => [ FEATURE_PLUGINS_THEMES, FEATURE_ADVANCED_SEO_TOOLS, FEATURE_DEV_TOOLS, FEATURE_SEAMLESS_STAGING_PRODUCTION_SYNCING, FEATURE_SITE_BACKUPS_AND_RESTORE, FEATURE_AD_FREE_EXPERIENCE, FEATURE_FAST_SUPPORT_FROM_EXPERTS, ], getVisualSplitBusinessFeatures: () => [ FEATURE_UNLIMITED_TRAFFIC, FEATURE_CUSTOM_DOMAIN, FEATURE_CDN, WPCOM_FEATURES_BACKUPS_RESTORE, FEATURE_EASY_SITE_MIGRATION, FEATURE_WAF_V2, FEATURE_SECURITY_DDOS, FEATURE_REAL_TIME_SECURITY_SCANS, FEATURE_99_999_UPTIME, FEATURE_SITE_STAGING_SITES, FEATURE_DEV_TOOLS_GIT, FEATURE_DEV_TOOLS_SSH, FEATURE_PRIORITY_24_7_SUPPORT, ], } ); const getPlanStudentDetails = (): IncompleteWPcomPlan => ( { ...getPlanBusinessDetails(), type: TYPE_STUDENT, getTitle: () => i18n.translate( 'Student' ), getPlanTagline: () => i18n.translate( 'Build your site with student-friendly tools.' ), getNewsletterTagLine: () => i18n.translate( 'Create, share, and grow your work with a custom domain.' ), getBlogOnboardingTagLine: () => i18n.translate( 'Take the next step with an ad-free site and room to grow.' ), getDescription: () => i18n.translate( '{{strong}}Best for students:{{/strong}} Build your online presence with a custom domain and an ad-free experience.', plansDescriptionHeadingComponent ), getTagline: () => i18n.translate( 'Learn more about everything included with the Student plan.' ), getPlanCompareFeatures: ( _, { isLoggedInMonthlyPricing } = {} ) => compact( [ FEATURE_CUSTOM_DOMAIN, FEATURE_HOSTING, FEATURE_JETPACK_ADVANCED, isLoggedInMonthlyPricing && FEATURE_FAST_SUPPORT_FROM_EXPERTS, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_6GB_STORAGE, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, isLoggedInMonthlyPricing && FEATURE_PRIORITY_24_7_SUPPORT, FEATURE_SIMPLE_PAYMENTS, FEATURE_GOOGLE_ANALYTICS, FEATURE_REPUBLICIZE, FEATURE_WORDADS_INSTANT, FEATURE_VIDEO_UPLOADS, FEATURE_ADVANCED_SEO, FEATURE_UPLOAD_PLUGINS, FEATURE_UPLOAD_THEMES, FEATURE_SFTP_DATABASE, FEATURE_NO_BRANDING, FEATURE_PAYMENT_TRANSACTION_FEES_2, ] ), getPromotedFeatures: () => [ FEATURE_6GB_STORAGE, FEATURE_CUSTOM_DOMAIN, FEATURE_NO_ADS, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, FEATURE_VIDEO_UPLOADS, ], getPortfolioSignupFeatures: () => [ FEATURE_UPLOAD_THEMES_PLUGINS, FEATURE_6GB_STORAGE, FEATURE_ALL_PREMIUM_FEATURES, ], getStorageFeature: () => FEATURE_6GB_STORAGE, } ); const getPlanProDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_PRO, getTitle: () => i18n.translate( 'WordPress Pro' ), getTagline: () => i18n.translate( 'This plan gives you access to our most powerful features at an affordable price for an unmatched value you won’t get anywhere else. No longer available to new users.' ), getDescription: () => i18n.translate( 'You’ve got our best deal on hosting! ' + 'Your Pro plan includes access to all the most popular features WordPress.com has to offer, including premium themes and access to over 50,000 plugins. ' + 'As an existing customer, you can keep your site on this plan as long as your subscription remains active.' ), getPlanCompareFeatures: () => [ FEATURE_UNLIMITED_TRAFFIC, FEATURE_MANAGED_HOSTING, FEATURE_FREE_THEMES, FEATURE_CUSTOM_DOMAIN, WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED, FEATURE_INSTALL_PLUGINS, WPCOM_FEATURES_INSTALL_PURCHASED_PLUGINS, FEATURE_PREMIUM_SUPPORT, FEATURE_WOOCOMMERCE, FEATURE_50GB_STORAGE, FEATURE_NO_ADS, FEATURE_ADVANCED_SEO, FEATURE_UNLIMITED_ADMINS, FEATURE_VIDEO_UPLOADS, FEATURE_PAYMENT_BLOCKS, FEATURE_SOCIAL_MEDIA_TOOLS, FEATURE_TITAN_EMAIL, FEATURE_MONETISE, FEATURE_SFTP_DATABASE, FEATURE_SITE_BACKUPS_AND_RESTORE, FEATURE_JETPACK_ESSENTIAL, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, ], getIncludedFeatures: () => [ FEATURE_ADVANCED_SEO_EXPANDED_ABBR, FEATURE_AUDIO_UPLOADS, FEATURE_COLLECT_PAYMENTS_V2, FEATURE_EARN_AD, FEATURE_EMAIL_FORWARDING_EXTENDED_LIMIT, FEATURE_GOOGLE_ANALYTICS, FEATURE_GOOGLE_MY_BUSINESS, FEATURE_HOSTING, FEATURE_ADVANCED_DESIGN_CUSTOMIZATION, FEATURE_MEMBERSHIPS, FEATURE_NO_BRANDING, FEATURE_REPUBLICIZE, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SFTP_DATABASE, FEATURE_SITE_BACKUPS_AND_RESTORE, FEATURE_UPLOAD_PLUGINS, FEATURE_UPLOAD_THEMES, FEATURE_UPLOAD_THEMES_PLUGINS, WPCOM_FEATURES_ATOMIC, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], getPlanCancellationDescription: () => i18n.translate( 'Heads up — you are currently on a legacy plan that is no longer available for new subscribers. ' + 'Your Pro plan includes access to all the most popular features WordPress.com has to offer, ' + 'including premium themes and access to over 50,000 plugins. As an existing Pro plan subscriber, ' + 'you can keep your site on this legacy plan as long as your subscription remains active. ' + 'If canceled, the WordPress.com Pro plan can no longer be added to your account.' ), } ); // The following is not a real plan, we are adding it here so that // Woo Express Plus gets its own column in the plans grid. const getPlanWooExpressPlusDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_WOO_EXPRESS_PLUS, getTitle: () => i18n.translate( 'Plus' ), getPlanTagline: () => i18n.translate( 'For fast-growing businesses that need access to the most powerful tools.' ), getDescription: () => '', get2023PricingGridSignupWpcomFeatures: () => [], get2023PricingGridSignupJetpackFeatures: () => [], } ); // The following is not a real plan, we are adding it here so that // VIP (a.k.a Enterprise) gets its own column in the plans grid. // Check pdgrnI-1Qp-p2 for more details. const get2023EnterprisGrideDetails = (): IncompleteWPcomPlan => ( { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_ENTERPRISE_GRID_WPCOM, getTitle: () => i18n.translate( 'Enterprise' ), getPlanTagline: () => i18n.translate( 'Level up to bespoke Enterprise-grade performance and security.' ), getDescription: () => '', get2023PricingGridSignupWpcomFeatures: () => [], get2023PricingGridSignupJetpackFeatures: () => [], } ); const getJetpackPersonalDetails = (): IncompleteJetpackPlan => ( { group: GROUP_JETPACK, type: TYPE_PERSONAL, getTitle: () => i18n.translate( 'Personal' ), getDescription: () => i18n.translate( '{{strong}}Best for personal use:{{/strong}} Security essentials for your WordPress site, including ' + 'automated backups and priority support.', plansDescriptionHeadingComponent ), getTagline: () => i18n.translate( 'Your data is being securely backed up and you have access to priority support.' ), getPlanCardFeatures: () => [ FEATURE_BACKUP_DAILY_V2, FEATURE_ANTISPAM_V2 ], getBillingTimeFrame: () => i18n.translate( 'per year' ), getIncludedFeatures: () => [ FEATURE_OFFSITE_BACKUP_VAULTPRESS_DAILY, FEATURE_BACKUP_ARCHIVE_30, FEATURE_BACKUP_STORAGE_SPACE_UNLIMITED, FEATURE_AUTOMATED_RESTORES, FEATURE_SPAM_AKISMET_PLUS, FEATURE_EASY_SITE_MIGRATION, FEATURE_PREMIUM_SUPPORT, FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_ADVANCED_SEO, FEATURE_OFFSITE_BACKUP_VAULTPRESS_DAILY, FEATURE_SPAM_AKISMET_PLUS, FEATURE_ACTIVITY_LOG, FEATURE_PREMIUM_SUPPORT, FEATURE_ALL_FREE_FEATURES_JETPACK, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], } ); const getJetpackPremiumDetails = (): IncompleteJetpackPlan => ( { group: GROUP_JETPACK, type: TYPE_PREMIUM, getTitle: () => i18n.translate( 'Premium' ), getDescription: () => i18n.translate( '{{strong}}Best for small businesses:{{/strong}} Comprehensive, automated scanning for security vulnerabilities, ' + 'fast video hosting, and marketing automation.', plansDescriptionHeadingComponent ), getTagline: () => i18n.translate( 'Your site is being secured and you have access to marketing tools and priority support.' ), getPlanCardFeatures: () => [ FEATURE_BACKUP_DAILY_V2, FEATURE_SCAN_V2, FEATURE_ANTISPAM_V2 ], getIncludedFeatures: () => compact( [ // pay attention to ordering, shared features should align on /plan page FEATURE_OFFSITE_BACKUP_VAULTPRESS_DAILY, FEATURE_BACKUP_ARCHIVE_30, FEATURE_BACKUP_STORAGE_SPACE_UNLIMITED, FEATURE_AUTOMATED_RESTORES, FEATURE_SPAM_AKISMET_PLUS, FEATURE_EASY_SITE_MIGRATION, FEATURE_PREMIUM_SUPPORT, FEATURE_REPUBLICIZE, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_MALWARE_SCANNING_DAILY, FEATURE_ADVANCED_SEO, FEATURE_GOOGLE_ANALYTICS, FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_JETPACK_VIDEOPRESS_BI_YEARLY, FEATURE_JETPACK_VIDEOPRESS, FEATURE_JETPACK_VIDEOPRESS_MONTHLY, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_OFFSITE_BACKUP_VAULTPRESS_DAILY, FEATURE_SPAM_AKISMET_PLUS, FEATURE_MALWARE_SCANNING_DAILY, FEATURE_AUTOMATIC_SECURITY_FIXES, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_WORDADS_INSTANT, FEATURE_ADVANCED_SEO, FEATURE_ALL_FREE_FEATURES_JETPACK, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ] ), } ); const getJetpackBusinessDetails = (): IncompleteJetpackPlan => ( { group: GROUP_JETPACK, type: TYPE_BUSINESS, getTitle: () => i18n.translate( 'Professional' ), getDescription: () => isEnabled( 'themes/premium' ) ? i18n.translate( '{{strong}}Best for organizations:{{/strong}} The most powerful WordPress sites.', plansDescriptionHeadingComponent ) : i18n.translate( '{{strong}}Best for organizations:{{/strong}} The most powerful WordPress sites: real-time backups ' + 'and premium themes.', plansDescriptionHeadingComponent ), getTagline: () => i18n.translate( 'You have the full suite of security and performance tools.' ), getPlanCardFeatures: () => [ FEATURE_BACKUP_REALTIME_V2, FEATURE_PRODUCT_SCAN_REALTIME_V2, FEATURE_ANTISPAM_V2, ], getIncludedFeatures: () => compact( [ // pay attention to ordering, shared features should align on /plan page FEATURE_OFFSITE_BACKUP_VAULTPRESS_REALTIME, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_BACKUP_STORAGE_SPACE_UNLIMITED, FEATURE_AUTOMATED_RESTORES, FEATURE_SPAM_AKISMET_PLUS, FEATURE_EASY_SITE_MIGRATION, FEATURE_PREMIUM_SUPPORT, FEATURE_REPUBLICIZE, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_MALWARE_SCANNING_DAILY_AND_ON_DEMAND, FEATURE_ONE_CLICK_THREAT_RESOLUTION, FEATURE_ADVANCED_SEO, FEATURE_GOOGLE_ANALYTICS, FEATURE_JETPACK_BACKUP_REALTIME, FEATURE_JETPACK_BACKUP_REALTIME_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_JETPACK_VIDEOPRESS_BI_YEARLY, FEATURE_JETPACK_VIDEOPRESS, FEATURE_JETPACK_VIDEOPRESS_MONTHLY, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_OFFSITE_BACKUP_VAULTPRESS_REALTIME, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_ALL_PREMIUM_FEATURES_JETPACK, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, ] ), getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY ], } ); const getPlanJetpackSecurityDailyDetails = (): IncompleteJetpackPlan => ( { group: GROUP_JETPACK, type: TYPE_SECURITY_DAILY, getTitle: () => translate( 'Security {{em}}Daily{{/em}}', { components: { em: } } ), getDescription: () => translate( 'All of the essential Jetpack Security features in one package including VaultPress Backup, Scan, Akismet Anti-spam and more.' ), getTagline: () => translate( 'Best for sites with occasional updates' ), getPlanCardFeatures: () => [ FEATURE_PRODUCT_BACKUP_DAILY_V2, FEATURE_PRODUCT_SCAN_DAILY_V2, FEATURE_ANTISPAM_V2, FEATURE_WAF, ], getIncludedFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_BACKUP_ARCHIVE_30, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], } ); const getPlanJetpackSecurityRealtimeDetails = (): IncompleteJetpackPlan => ( { group: GROUP_JETPACK, type: TYPE_SECURITY_REALTIME, getTitle: () => translate( 'Security {{em}}Real-time{{/em}}', { components: { em: }, } ), getDescription: () => translate( 'Get next-level protection with real-time backups, real-time scan and all essential security tools.' ), getTagline: () => translate( 'Best for sites with frequent updates' ), getPlanCardFeatures: () => [ FEATURE_PLAN_SECURITY_DAILY, FEATURE_PRODUCT_BACKUP_REALTIME_V2, FEATURE_PRODUCT_SCAN_REALTIME_V2, FEATURE_ACTIVITY_LOG_1_YEAR_V2, ], getIncludedFeatures: () => [ FEATURE_JETPACK_BACKUP_REALTIME, FEATURE_JETPACK_BACKUP_REALTIME_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_BACKUP_ARCHIVE_30, ], } ); const getPlanJetpackStarterDetails = (): IncompleteJetpackPlan => ( { ...getJetpackCommonPlanDetails(), group: GROUP_JETPACK, type: TYPE_JETPACK_STARTER, getTitle: () => translate( 'Starter', { context: 'Jetpack product name' } ), getTagline: () => translate( 'Essential security tools: real-time backups and comment spam protection.' ), getDescription: () => translate( 'Essential security tools: real-time backups and comment spam protection.' ), getFeaturedDescription: () => translate( 'This bundle includes:{{ul}}{{li}}VaultPress Backup (1GB){{/li}}{{li}}Akismet Anti-spam (1k API calls/mo){{/li}}{{/ul}}', { components: { ul:
    , li:
  • , }, comment: '{{ul}}{{ul/}} represents an unordered list, and {{li}}{/li} represents a list item', } ), getRecommendedFor: () => [ { tag: JETPACK_TAG_FOR_SMALL_SITES, label: translate( 'Small sites' ) }, { tag: JETPACK_TAG_FOR_BLOGS, label: translate( 'Blogs' ) }, ], getLightboxDescription: () => translate( 'Essential security tools: real-time backups and comment spam protection.' ), getPlanCardFeatures: () => [ FEATURE_JETPACK_PRODUCT_BACKUP, FEATURE_ANTISPAM_V2 ], getIncludedFeatures: () => [ FEATURE_JETPACK_BACKUP_T0_YEARLY, FEATURE_JETPACK_BACKUP_T0_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], getBenefits: () => [ translate( 'Protect your revenue stream and content' ), translate( 'Restore your site in one click from desktop or mobile' ), translate( 'Fix your site without a developer' ), translate( 'Protect Woo order and customer data' ), translate( 'Save time manually reviewing spam' ), translate( 'Best-in-class support from WordPress experts' ), ], getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY ], } ); const getPlanJetpackSecurityT0Details = (): IncompleteJetpackPlan => ( { ...getJetpackCommonPlanDetails(), group: GROUP_JETPACK, type: TYPE_SECURITY_T0, getTitle: () => translate( 'Security Lite', { context: 'Jetpack product name' } ), getDescription: () => translate( 'Easy-to-use, comprehensive WordPress site security including backups, malware scanning, and spam protection.' ), getFeaturedDescription: () => translate( 'Comprehensive site security made simple.{{br}}{{/br}}{{br}}{{/br}}This bundle includes:{{ul}}{{li}}VaultPress Backup (1GB){{/li}}{{li}}Scan{{/li}}{{li}}Akismet Anti-spam (250 API calls/mo){{/li}}{{/ul}}', { components: { br:
    , ul:
      , li:
    • , }, comment: '{{ul}}{{ul/}} represents an unordered list, and {{li}}{/li} represents a list item', } ), getLightboxDescription: () => translate( 'Easy-to-use, comprehensive WordPress site security including backups, malware scanning, and spam protection.{{br/}}Includes VaultPress Backup, Jetpack Scan, and Akismet Anti-spam.', { components: { br:
      , }, comment: '{{br/}} represents a line break', } ), getPlanCardFeatures: () => [ FEATURE_JETPACK_PRODUCT_BACKUP, FEATURE_JETPACK_REAL_TIME_MALWARE_SCANNING, FEATURE_ANTISPAM_V2, FEATURE_WAF, FEATURE_JETPACK_30_DAY_ARCHIVE_ACTIVITY_LOG, ], getIncludedFeatures: () => [ FEATURE_JETPACK_BACKUP_T0_YEARLY, FEATURE_JETPACK_BACKUP_T0_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], getBenefits: () => [ translate( 'Protect your revenue stream and content' ), translate( 'Learn about issues before your customers are impacted' ), translate( 'Restore your site in one click from desktop or mobile' ), translate( 'Fix your site without a developer' ), translate( 'Protect Woo order and customer data' ), translate( 'Save time manually reviewing spam' ), translate( 'Best-in-class support from WordPress experts' ), ], getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY ], } ); const getPlanJetpackSecurityT1Details = (): IncompleteJetpackPlan => ( { ...getJetpackCommonPlanDetails(), group: GROUP_JETPACK, type: TYPE_SECURITY_T1, getTitle: () => translate( 'Security', { context: 'Jetpack product name' } ), getDescription: () => translate( 'Easy-to-use, comprehensive WordPress site security including backups, malware scanning, and spam protection.' ), getFeaturedDescription: () => translate( 'Comprehensive site security made simple.{{br}}{{/br}}{{br}}{{/br}}This bundle includes:{{ul}}{{li}}VaultPress Backup (10GB){{/li}}{{li}}Scan{{/li}}{{li}}Akismet Anti-spam (10k API calls/mo){{/li}}{{/ul}}', { components: { br:
      , ul:
        , li:
      • , }, comment: '{{ul}}{{ul/}} represents an unordered list, and {{li}}{/li} represents a list item', } ), getLightboxDescription: () => translate( 'Easy-to-use, comprehensive WordPress site security including backups, malware scanning, and spam protection.{{br/}}Includes VaultPress Backup, Jetpack Scan, and Akismet Anti-spam.', { components: { br:
        , }, comment: '{{br/}} represents a line break', } ), getPlanCardFeatures: () => [ FEATURE_JETPACK_PRODUCT_BACKUP, FEATURE_JETPACK_REAL_TIME_MALWARE_SCANNING, FEATURE_ANTISPAM_V2, FEATURE_WAF, FEATURE_JETPACK_30_DAY_ARCHIVE_ACTIVITY_LOG, ], getIncludedFeatures: () => [ FEATURE_JETPACK_BACKUP_T1_BI_YEARLY, FEATURE_JETPACK_BACKUP_T1_YEARLY, FEATURE_JETPACK_BACKUP_T1_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], getBenefits: () => [ translate( 'Protect your revenue stream and content' ), translate( 'Learn about issues before your customers are impacted' ), translate( 'Restore your site in one click from desktop or mobile' ), translate( 'Fix your site without a developer' ), translate( 'Protect Woo order and customer data' ), translate( 'Save time manually reviewing spam' ), translate( 'Best-in-class support from WordPress experts' ), ], getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY ], } ); const getPlanJetpackSecurityT2Details = (): IncompleteJetpackPlan => ( { ...getPlanJetpackSecurityT1Details(), type: TYPE_SECURITY_T2, getPlanCardFeatures: () => [ FEATURE_PLAN_SECURITY_DAILY, FEATURE_PRODUCT_BACKUP_REALTIME_V2, FEATURE_PRODUCT_SCAN_REALTIME_V2, FEATURE_WAF, FEATURE_JETPACK_1_YEAR_ARCHIVE_ACTIVITY_LOG, ], getIncludedFeatures: () => [ FEATURE_JETPACK_BACKUP_T2_YEARLY, FEATURE_JETPACK_BACKUP_T2_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, ], getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_BACKUP_ARCHIVE_30, ], } ); const getPlanJetpackCompleteDetails = (): IncompleteJetpackPlan => ( { ...getJetpackCommonPlanDetails(), group: GROUP_JETPACK, type: TYPE_ALL, getTitle: () => translate( 'Complete', { context: 'Jetpack plan name', } ), getDescription: () => translate( 'Get the full power of Jetpack with all Security, Performance, Growth, and Design tools.' ), getFeaturedDescription: () => translate( 'Get the full Jetpack suite with real-time security tools, improved site performance, and tools to grow your business.' ), getLightboxDescription: () => translate( 'Full Jetpack suite with real-time security, instant site search, ad-free video, all CRM extensions, and extra storage for backups and video.' ), getTagline: () => translate( 'For best-in-class WordPress sites' ), getPlanCardFeatures: () => [ FEATURE_JETPACK_ALL_BACKUP_SECURITY_FEATURES, FEATURE_JETPACK_1TB_BACKUP_STORAGE, FEATURE_JETPACK_PRODUCT_VIDEOPRESS, FEATURE_PRODUCT_SEARCH_V2, FEATURE_CRM_V2, FEATURE_JETPACK_1_YEAR_ARCHIVE_ACTIVITY_LOG, ], getIncludedFeatures: () => compact( [ FEATURE_JETPACK_BACKUP_T2_YEARLY, FEATURE_JETPACK_BACKUP_T2_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_JETPACK_ANTI_SPAM_BI_YEARLY, FEATURE_JETPACK_ANTI_SPAM, FEATURE_JETPACK_ANTI_SPAM_MONTHLY, FEATURE_JETPACK_SEARCH_BI_YEARLY, FEATURE_JETPACK_SEARCH, FEATURE_JETPACK_SEARCH_MONTHLY, FEATURE_JETPACK_CRM, FEATURE_JETPACK_CRM_MONTHLY, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_JETPACK_BOOST_BI_YEARLY, FEATURE_JETPACK_BOOST, FEATURE_JETPACK_BOOST_MONTHLY, FEATURE_JETPACK_SOCIAL_ADVANCED_BI_YEARLY, FEATURE_JETPACK_SOCIAL_ADVANCED, FEATURE_JETPACK_SOCIAL_ADVANCED_MONTHLY, FEATURE_JETPACK_VIDEOPRESS_BI_YEARLY, FEATURE_JETPACK_VIDEOPRESS, FEATURE_JETPACK_VIDEOPRESS_MONTHLY, FEATURE_CLOUD_CRITICAL_CSS, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, isEnabled( 'themes/premium' ) ? WPCOM_FEATURES_PREMIUM_THEMES_UNLIMITED : null, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_ANTISPAM, WPCOM_FEATURES_BACKUPS, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, ] ), getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_BACKUP_ARCHIVE_30, FEATURE_JETPACK_SOCIAL_BASIC_BI_YEARLY, FEATURE_JETPACK_SOCIAL_BASIC, FEATURE_JETPACK_SOCIAL_BASIC_MONTHLY, ], getBenefits: () => [ translate( 'Protect your revenue stream and content' ), translate( 'Learn about issues before your customers are impacted' ), translate( 'Restore your site in one click from desktop or mobile' ), translate( 'Fix your site without a developer' ), translate( 'Protect Woo order and customer data' ), translate( 'Save time manually reviewing spam' ), translate( 'Grow your business with video, social, and CRM tools' ), translate( 'Best-in-class support from WordPress experts' ), ], } ); const getPlanJetpackGrowthDetails = (): IncompleteJetpackPlan => ( { ...getJetpackCommonPlanDetails(), group: GROUP_JETPACK, type: TYPE_JETPACK_GROWTH, getTitle: () => translate( 'Growth', { context: 'Jetpack product name' } ), getDescription: () => translate( 'Grow your audience effortlessly.' ), getRecommendedFor: () => [ { tag: JETPACK_TAG_FOR_WOOCOMMERCE_STORES, label: translate( 'WooCommerce Stores' ) }, { tag: JETPACK_TAG_FOR_MEMBERSHIP_SITES, label: translate( 'Membership sites' ) }, { tag: JETPACK_TAG_FOR_BLOGGERS, label: translate( 'Bloggers' ) }, ], getFeaturedDescription: () => translate( 'Grow your audience effortlessly.{{br}}{{/br}}{{br}}{{/br}}This bundle includes:{{ul}}{{li}}Stats (10k site views - upgradeable){{/li}}{{li}}Social{{/li}}{{li}}Newsletter and monetization tools{{/li}}{{/ul}}', { components: { br:
        , ul:
          , li:
        • , }, comment: '{{ul}}{{ul/}} represents an unordered list, and {{li}}{/li} represents a list item', } ), getTagline: () => translate( 'Essential tools to help you grow your audience, track visitor engagement, and turn leads into loyal customers and advocates.' ), getLightboxDescription: () => translate( 'Essential tools to help you grow your audience, track visitor engagement, and turn leads into loyal customers and advocates.' ), getPlanCardFeatures: () => [ FEATURE_JETPACK_SOCIAL_V1_MONTHLY, isEnabled( 'stats/paid-wpcom-v3' ) ? FEATURE_STATS_COMMERCIAL : FEATURE_STATS_PAID, ], getIncludedFeatures: () => [ FEATURE_EARN_AD, FEATURE_UNLIMITED_SUBSCRIBERS, FEATURE_SIMPLE_PAYMENTS, ], getWhatIsIncluded: () => [ translate( '40+ Jetpack blocks' ), translate( 'Display ads with WordAds' ), translate( 'PayPal Payment Buttons' ), translate( 'Paid content gating' ), translate( 'Paywall access' ), translate( 'Newsletter' ), translate( 'Priority support' ), ], getBenefits: () => [ translate( 'Quickly create content that stands out' ), translate( 'Grow your subscribers with simple subscribe forms' ), translate( 'Create content for paid subscribers' ), translate( 'Sell access to premium content' ), translate( 'Easily accept tips and donations' ), ], } ); const getPlanJetpackGoldenTokenDetails = (): IncompleteJetpackPlan => ( { group: GROUP_JETPACK, type: TYPE_GOLDEN_TOKEN, getTitle: () => translate( 'Golden Token', { context: 'The name of a Jetpack plan awarded to amazing WordPress sites', } ), getDescription: () => translate( 'The Golden Token provides a lifetime license for Backup and Scan.' ), getTagline: () => translate( 'A lifetime of Jetpack powers for your website' ), getPlanCardFeatures: () => [ FEATURE_PRODUCT_BACKUP_REALTIME_V2, FEATURE_PRODUCT_SCAN_REALTIME_V2, FEATURE_ACTIVITY_LOG_1_YEAR_V2, ], getIncludedFeatures: () => [ FEATURE_JETPACK_BACKUP_REALTIME, FEATURE_JETPACK_BACKUP_REALTIME_MONTHLY, FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY, FEATURE_BACKUP_ARCHIVE_UNLIMITED, FEATURE_VIDEO_UPLOADS_JETPACK_PRO, FEATURE_REPUBLICIZE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_SIMPLE_PAYMENTS, FEATURE_WORDADS_INSTANT, FEATURE_GOOGLE_ANALYTICS, FEATURE_PREMIUM_SUPPORT, WPCOM_FEATURES_SCAN, WPCOM_FEATURES_BACKUPS, ], getInferiorFeatures: () => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_BACKUP_ARCHIVE_30, ], } ); // DO NOT import. Use `getPlan` instead. export const PLANS_LIST: Record< string, Plan | JetpackPlan | WPComPlan > = { [ PLAN_FREE ]: { ...getPlanFreeDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: () => i18n.translate( 'No expiration date' ), getProductId: () => 1, getStoreSlug: () => PLAN_FREE, }, [ PLAN_BLOGGER ]: { ...getPlanBloggerDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1010, getStoreSlug: () => PLAN_BLOGGER, }, [ PLAN_BLOGGER_2_YEARS ]: { ...getPlanBloggerDetails(), term: TERM_BIENNIALLY, getBillingTimeFrame: WPComGetBiennialBillingTimeframe, getProductId: () => 1030, getStoreSlug: () => PLAN_BLOGGER_2_YEARS, }, [ PLAN_PERSONAL_MONTHLY ]: { ...getPlanPersonalDetails(), ...getMonthlyTimeframe(), getProductId: () => 1019, getStoreSlug: () => PLAN_PERSONAL_MONTHLY, }, [ PLAN_PERSONAL ]: { ...getPlanPersonalDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1009, getStoreSlug: () => PLAN_PERSONAL, }, [ PLAN_PERSONAL_2_YEARS ]: { ...getPlanPersonalDetails(), term: TERM_BIENNIALLY, getBillingTimeFrame: WPComGetBiennialBillingTimeframe, getProductId: () => 1029, getStoreSlug: () => PLAN_PERSONAL_2_YEARS, }, [ PLAN_PERSONAL_3_YEARS ]: { ...getPlanPersonalDetails(), term: TERM_TRIENNIALLY, getBillingTimeFrame: WPComGetTriennialBillingTimeframe, getProductId: () => 1049, getStoreSlug: () => PLAN_PERSONAL_3_YEARS, }, [ PLAN_STUDENT ]: { ...getPlanStudentDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1090, getStoreSlug: () => PLAN_STUDENT, }, [ PLAN_PREMIUM_MONTHLY ]: { ...getPlanPremiumDetails(), ...getMonthlyTimeframe(), getProductId: () => 1013, getStoreSlug: () => PLAN_PREMIUM_MONTHLY, }, [ PLAN_PREMIUM ]: { ...getPlanPremiumDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1003, getStoreSlug: () => PLAN_PREMIUM, }, [ PLAN_PREMIUM_2_YEARS ]: { ...getPlanPremiumDetails(), term: TERM_BIENNIALLY, getBillingTimeFrame: WPComGetBiennialBillingTimeframe, getProductId: () => 1023, getStoreSlug: () => PLAN_PREMIUM_2_YEARS, }, [ PLAN_PREMIUM_3_YEARS ]: { ...getPlanPremiumDetails(), term: TERM_TRIENNIALLY, getBillingTimeFrame: WPComGetTriennialBillingTimeframe, getProductId: () => 1043, getStoreSlug: () => PLAN_PREMIUM_3_YEARS, }, [ PLAN_BUSINESS_MONTHLY ]: { ...getPlanBusinessDetails(), ...getMonthlyTimeframe(), getProductId: () => 1018, getStoreSlug: () => PLAN_BUSINESS_MONTHLY, }, [ PLAN_BUSINESS ]: { ...getPlanBusinessDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1008, getStoreSlug: () => PLAN_BUSINESS, }, [ PLAN_BUSINESS_2_YEARS ]: { ...getPlanBusinessDetails(), term: TERM_BIENNIALLY, getBillingTimeFrame: WPComGetBiennialBillingTimeframe, getProductId: () => 1028, getStoreSlug: () => PLAN_BUSINESS_2_YEARS, }, [ PLAN_BUSINESS_3_YEARS ]: { ...getPlanBusinessDetails(), term: TERM_TRIENNIALLY, getBillingTimeFrame: WPComGetTriennialBillingTimeframe, getProductId: () => 1048, getStoreSlug: () => PLAN_BUSINESS_3_YEARS, }, [ PLAN_A4A_BUSINESS ]: { ...getPlanA4ABusinessDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 3300, getStoreSlug: () => PLAN_A4A_BUSINESS, }, [ PLAN_A4A_BUSINESS_MONTHLY ]: { ...getPlanA4ABusinessDetails(), ...getMonthlyTimeframe(), getProductId: () => 3301, getStoreSlug: () => PLAN_A4A_BUSINESS_MONTHLY, }, [ PLAN_100_YEARS ]: { ...getPlanBusinessDetails(), term: TERM_CENTENNIALLY, group: GROUP_WPCOM, type: TYPE_100_YEAR, // Todo: ¯\_(ツ)_/¯ on the copy. getTitle: () => i18n.translate( '100-Year Plan' ), getPlanTagline: () => i18n.translate( 'A plan to leave a lasting mark on the web.' ), getDescription: () => i18n.translate( 'A plan to leave a lasting mark on the web.' ), getTagline: () => i18n.translate( 'A plan to leave a lasting mark on the web.' ), getBlogOnboardingTagLine: () => i18n.translate( 'A plan to leave a lasting mark on the web.' ), getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1061, getStoreSlug: () => PLAN_100_YEARS, }, [ PLAN_ECOMMERCE_MONTHLY ]: { ...getPlanEcommerceDetails(), ...getMonthlyTimeframe(), getProductId: () => 1021, getStoreSlug: () => PLAN_ECOMMERCE_MONTHLY, }, [ PLAN_ECOMMERCE ]: { ...getPlanEcommerceDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1011, getStoreSlug: () => PLAN_ECOMMERCE, }, [ PLAN_ECOMMERCE_2_YEARS ]: { ...getPlanEcommerceDetails(), term: TERM_BIENNIALLY, getBillingTimeFrame: WPComGetBiennialBillingTimeframe, getProductId: () => 1031, getStoreSlug: () => PLAN_ECOMMERCE_2_YEARS, }, [ PLAN_WOOEXPRESS_MEDIUM_MONTHLY ]: { ...getPlanWooExpressMediumDetails(), ...getMonthlyTimeframe(), type: TYPE_WOOEXPRESS_MEDIUM, getBillingTimeFrame: () => translate( 'per month' ), getProductId: () => 1053, getStoreSlug: () => PLAN_WOOEXPRESS_MEDIUM_MONTHLY, }, [ PLAN_WOOEXPRESS_MEDIUM ]: { ...getPlanWooExpressMediumDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, type: TYPE_WOOEXPRESS_MEDIUM, getProductId: () => 1055, getStoreSlug: () => PLAN_WOOEXPRESS_MEDIUM, }, [ PLAN_WOOEXPRESS_SMALL_MONTHLY ]: { ...getPlanWooExpressSmallDetails(), ...getMonthlyTimeframe(), type: TYPE_WOOEXPRESS_SMALL, getBillingTimeFrame: () => translate( 'per month' ), getProductId: () => 1054, getStoreSlug: () => PLAN_WOOEXPRESS_SMALL_MONTHLY, }, [ PLAN_WOOEXPRESS_SMALL ]: { ...getPlanWooExpressSmallDetails(), type: TYPE_WOOEXPRESS_SMALL, term: TERM_ANNUALLY, getBillingTimeFrame: WPComGetBillingTimeframe, getProductId: () => 1056, getStoreSlug: () => PLAN_WOOEXPRESS_SMALL, }, // Not a real plan. This is used to show the Plus offering in the Woo Express plans grid [ PLAN_WOOEXPRESS_PLUS ]: { ...getPlanWooExpressPlusDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: () => '', getProductId: () => 0, getStoreSlug: () => PLAN_WOOEXPRESS_PLUS, }, // CIAB Plans. Features and translation strings are a placeholder. [ PLAN_WOO_HOSTED_FREE ]: { ...getPlanFreeDetails(), ...getAnnualTimeframe(), type: isEnabled( 'ciab/allow-domain-features' ) ? TYPE_WOO_HOSTED_FREE_TRIAL : TYPE_FREE, getTitle: () => i18n.translate( 'Free subscription' ), getTagline: () => 'Learn more about everything included with Woo Free Trial.', getProductId: () => 4005, getStoreSlug: () => PLAN_WOO_HOSTED_FREE, }, [ PLAN_WOO_HOSTED_FREE_TRIAL_MONTHLY ]: { ...getPlanFreeDetails(), ...getMonthlyTimeframe(), type: isEnabled( 'ciab/allow-domain-features' ) ? TYPE_WOO_HOSTED_FREE_TRIAL : TYPE_FREE, getTitle: () => 'Free Trial', getPlanTagline: () => "Get a taste of the world's most popular eCommerce software.", getDescription: () => i18n.translate( 'Try Woo Hosted for free and explore all the features before committing to a plan.' ), getTagline: () => 'Learn more about everything included with Woo Free Trial.', getProductId: () => 4006, getStoreSlug: () => PLAN_WOO_HOSTED_FREE_TRIAL_MONTHLY, }, [ PLAN_WOO_HOSTED_BASIC_MONTHLY ]: { ...getPlanWooHostedBasicDetails(), ...getMonthlyTimeframe(), type: TYPE_WOO_HOSTED_BASIC, getProductId: () => 4001, getStoreSlug: () => PLAN_WOO_HOSTED_BASIC_MONTHLY, }, [ PLAN_WOO_HOSTED_BASIC ]: { ...getPlanWooHostedBasicDetails(), ...getAnnualTimeframe(), type: TYPE_WOO_HOSTED_BASIC, getProductId: () => 4002, getStoreSlug: () => PLAN_WOO_HOSTED_BASIC, }, [ PLAN_WOO_HOSTED_PRO_MONTHLY ]: { ...getPlanWooHostedProDetails(), ...getMonthlyTimeframe(), type: TYPE_WOO_HOSTED_PRO, getProductId: () => 4003, getStoreSlug: () => PLAN_WOO_HOSTED_PRO_MONTHLY, }, [ PLAN_WOO_HOSTED_PRO ]: { ...getPlanWooHostedProDetails(), ...getAnnualTimeframe(), type: TYPE_WOO_HOSTED_PRO, getProductId: () => 4004, getStoreSlug: () => PLAN_WOO_HOSTED_PRO, }, // Not a real plan. This is used to show the Enterprise (VIP) offering in // the main plans grid as part of pdgrnI-1Qp-p2. [ PLAN_ENTERPRISE_GRID_WPCOM ]: { ...get2023EnterprisGrideDetails(), term: TERM_ANNUALLY, getBillingTimeFrame: () => '', getProductId: () => 0, getStoreSlug: () => PLAN_ENTERPRISE_GRID_WPCOM, }, [ PLAN_ECOMMERCE_3_YEARS ]: { ...getPlanEcommerceDetails(), term: TERM_TRIENNIALLY, getBillingTimeFrame: WPComGetTriennialBillingTimeframe, getProductId: () => 1051, getStoreSlug: () => PLAN_ECOMMERCE_3_YEARS, }, [ PLAN_JETPACK_FREE ]: { term: TERM_ANNUALLY, group: GROUP_JETPACK, type: TYPE_FREE, getTitle: () => i18n.translate( 'Free' ), getProductId: () => 2002, getStoreSlug: () => PLAN_JETPACK_FREE, getTagline: ( siteFeatures = [] ) => { const hasSiteJetpackBackup = siteFeatures.some( ( feature ) => [ FEATURE_JETPACK_BACKUP_DAILY, FEATURE_JETPACK_BACKUP_DAILY_MONTHLY, FEATURE_JETPACK_BACKUP_REALTIME, FEATURE_JETPACK_BACKUP_REALTIME_MONTHLY, FEATURE_JETPACK_BACKUP_T1_BI_YEARLY, FEATURE_JETPACK_BACKUP_T1_YEARLY, FEATURE_JETPACK_BACKUP_T1_MONTHLY, FEATURE_JETPACK_BACKUP_T2_YEARLY, FEATURE_JETPACK_BACKUP_T2_MONTHLY, ].includes( feature ) ); const hasSiteJetpackScan = siteFeatures.some( ( feature ) => [ FEATURE_JETPACK_SCAN_DAILY, FEATURE_JETPACK_SCAN_DAILY_MONTHLY ].includes( feature ) ); if ( hasSiteJetpackBackup && hasSiteJetpackScan ) { return i18n.translate( 'Upgrade your site to access additional features, including spam protection and priority support.' ); } else if ( hasSiteJetpackBackup ) { return i18n.translate( 'Upgrade your site to access additional features, including spam protection, security scanning, and priority support.' ); } else if ( hasSiteJetpackScan ) { return i18n.translate( 'Upgrade your site to access additional features, including spam protection, backups, and priority support.' ); } return i18n.translate( 'Upgrade your site for additional features, including spam protection, backups, security scanning, and priority support.' ); }, getDescription: () => i18n.translate( 'The features most needed by WordPress sites' + ' — perfectly packaged and optimized for everyone.' ), getBillingTimeFrame: () => i18n.translate( 'for life' ), getIncludedFeatures: () => [ FEATURE_STANDARD_SECURITY_TOOLS, FEATURE_SITE_STATS, FEATURE_TRAFFIC_TOOLS, FEATURE_MANAGE, FEATURE_ADVANCED_SEO, FEATURE_SEO_PREVIEW_TOOLS, FEATURE_FREE_WORDPRESS_THEMES, FEATURE_SITE_STATS, FEATURE_STANDARD_SECURITY_TOOLS, FEATURE_TRAFFIC_TOOLS, FEATURE_BLANK, ], }, [ PLAN_JETPACK_PREMIUM ]: { ...getJetpackPremiumDetails(), ...getAnnualTimeframe(), getProductId: () => 2000, getStoreSlug: () => PLAN_JETPACK_PREMIUM, }, [ PLAN_JETPACK_PREMIUM_MONTHLY ]: { ...getJetpackPremiumDetails(), ...getMonthlyTimeframe(), getProductId: () => 2003, getStoreSlug: () => PLAN_JETPACK_PREMIUM_MONTHLY, }, [ PLAN_JETPACK_PERSONAL ]: { ...getJetpackPersonalDetails(), ...getAnnualTimeframe(), getProductId: () => 2005, getStoreSlug: () => PLAN_JETPACK_PERSONAL, }, [ PLAN_JETPACK_PERSONAL_MONTHLY ]: { ...getJetpackPersonalDetails(), ...getMonthlyTimeframe(), getProductId: () => 2006, getStoreSlug: () => PLAN_JETPACK_PERSONAL_MONTHLY, }, [ PLAN_JETPACK_BUSINESS ]: { ...getJetpackBusinessDetails(), ...getAnnualTimeframe(), getProductId: () => 2001, getStoreSlug: () => PLAN_JETPACK_BUSINESS, }, [ PLAN_JETPACK_BUSINESS_MONTHLY ]: { ...getJetpackBusinessDetails(), ...getMonthlyTimeframe(), getProductId: () => 2004, getStoreSlug: () => PLAN_JETPACK_BUSINESS_MONTHLY, }, [ PLAN_JETPACK_SECURITY_DAILY ]: { ...getPlanJetpackSecurityDailyDetails(), ...getAnnualTimeframe(), getMonthlySlug: () => PLAN_JETPACK_SECURITY_DAILY_MONTHLY, getStoreSlug: () => PLAN_JETPACK_SECURITY_DAILY, getProductId: () => 2010, }, [ PLAN_JETPACK_SECURITY_DAILY_MONTHLY ]: { ...getPlanJetpackSecurityDailyDetails(), ...getMonthlyTimeframe(), getAnnualSlug: () => PLAN_JETPACK_SECURITY_DAILY, getStoreSlug: () => PLAN_JETPACK_SECURITY_DAILY_MONTHLY, getProductId: () => 2011, }, [ PLAN_JETPACK_SECURITY_REALTIME ]: { ...getPlanJetpackSecurityRealtimeDetails(), ...getAnnualTimeframe(), getMonthlySlug: () => PLAN_JETPACK_SECURITY_REALTIME_MONTHLY, getStoreSlug: () => PLAN_JETPACK_SECURITY_REALTIME, getProductId: () => 2012, }, [ PLAN_JETPACK_SECURITY_REALTIME_MONTHLY ]: { ...getPlanJetpackSecurityRealtimeDetails(), ...getMonthlyTimeframe(), getAnnualSlug: () => PLAN_JETPACK_SECURITY_REALTIME, getStoreSlug: () => PLAN_JETPACK_SECURITY_REALTIME_MONTHLY, getProductId: () => 2013, }, [ PLAN_JETPACK_COMPLETE_BI_YEARLY ]: { ...getPlanJetpackCompleteDetails(), ...getBiAnnualTimeframe(), getStoreSlug: () => PLAN_JETPACK_COMPLETE_BI_YEARLY, getProductId: () => 2035, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T2_YEARLY, PRODUCT_JETPACK_SCAN_BI_YEARLY, PRODUCT_JETPACK_ANTI_SPAM_BI_YEARLY, PRODUCT_JETPACK_VIDEOPRESS_BI_YEARLY, PRODUCT_JETPACK_BOOST_BI_YEARLY, PRODUCT_JETPACK_SOCIAL_ADVANCED_BI_YEARLY, PRODUCT_JETPACK_SEARCH_BI_YEARLY, PRODUCT_JETPACK_STATS_BI_YEARLY, PRODUCT_JETPACK_AI_BI_YEARLY, PRODUCT_JETPACK_CRM, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '1TB (1,000GB) of cloud storage' ), translate( '1-year activity log archive' ), translate( 'Unlimited one-click restores from the last 1 year' ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (60k API calls/mo)' ), translate( 'VideoPress: 1TB of ad-free video hosting' ), translate( 'Boost: Automatic CSS generation' ), translate( 'Site Search: Up to 100k records and 100k requests/mo.' ), translate( 'Social: Get unlimited shares and share as a post by attaching images or videos.' ), translate( 'CRM: Entrepreneur with 30 extensions' ), ], }, [ PLAN_JETPACK_COMPLETE ]: { ...getPlanJetpackCompleteDetails(), ...getAnnualTimeframe(), getStoreSlug: () => PLAN_JETPACK_COMPLETE, getProductId: () => 2014, getMonthlySlug: () => PLAN_JETPACK_COMPLETE_MONTHLY, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T2_YEARLY, PRODUCT_JETPACK_SCAN, PRODUCT_JETPACK_ANTI_SPAM, PRODUCT_JETPACK_VIDEOPRESS, PRODUCT_JETPACK_BOOST, PRODUCT_JETPACK_SOCIAL_ADVANCED, PRODUCT_JETPACK_SEARCH, PRODUCT_JETPACK_STATS_YEARLY, PRODUCT_JETPACK_AI_YEARLY, PRODUCT_JETPACK_CRM, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '1TB (1,000GB) of cloud storage' ), translate( '1-year activity log archive' ), translate( 'Unlimited one-click restores from the last 1 year' ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (60k API calls/mo)' ), translate( 'VideoPress: 1TB of ad-free video hosting' ), translate( 'Boost: Automatic CSS generation' ), translate( 'Site Search: Up to 100k records and 100k requests/mo.' ), translate( 'Social: Get unlimited shares and share as a post by attaching images or videos.' ), translate( 'CRM: Entrepreneur with 30 extensions' ), ], }, [ PLAN_JETPACK_COMPLETE_MONTHLY ]: { ...getPlanJetpackCompleteDetails(), ...getMonthlyTimeframe(), getStoreSlug: () => PLAN_JETPACK_COMPLETE_MONTHLY, getProductId: () => 2015, getAnnualSlug: () => PLAN_JETPACK_COMPLETE, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T2_MONTHLY, PRODUCT_JETPACK_SCAN_MONTHLY, PRODUCT_JETPACK_ANTI_SPAM_MONTHLY, PRODUCT_JETPACK_VIDEOPRESS_MONTHLY, PRODUCT_JETPACK_BOOST_MONTHLY, PRODUCT_JETPACK_SOCIAL_ADVANCED_MONTHLY, PRODUCT_JETPACK_SEARCH_MONTHLY, PRODUCT_JETPACK_STATS_MONTHLY, PRODUCT_JETPACK_AI_MONTHLY, PRODUCT_JETPACK_CRM_MONTHLY, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '1TB (1,000GB) of cloud storage' ), translate( '1-year activity log archive' ), translate( 'Unlimited one-click restores from the last 1-year' ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (60k API calls/mo)' ), translate( 'VideoPress: 1TB of ad-free video hosting' ), translate( 'Boost: Automatic CSS generation' ), translate( 'Site Search: Up to 100k records and 100k requests/mo.' ), translate( 'Social: Get unlimited shares and share as a post by attaching images or videos.' ), translate( 'CRM: Entrepreneur with 30 extensions' ), ], }, [ PLAN_JETPACK_SECURITY_T0_YEARLY ]: { ...getPlanJetpackSecurityT0Details(), ...getAnnualTimeframe(), getStoreSlug: () => PLAN_JETPACK_SECURITY_T0_YEARLY, getMonthlySlug: () => PLAN_JETPACK_SECURITY_T0_MONTHLY, getProductId: () => 10237, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T0_YEARLY, PRODUCT_JETPACK_SCAN, PRODUCT_JETPACK_ANTI_SPAM, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '1GB of cloud storage' ), translate( '30-day activity log archive' ), translate( 'Unlimited one-click restores from the last 30 days' ), translate( 'Akismet: Comment and form spam protection (250 API calls/mo)' ), ], }, [ PLAN_JETPACK_SECURITY_T0_MONTHLY ]: { ...getPlanJetpackSecurityT0Details(), ...getMonthlyTimeframe(), getStoreSlug: () => PLAN_JETPACK_SECURITY_T0_MONTHLY, getAnnualSlug: () => PLAN_JETPACK_SECURITY_T0_YEARLY, getProductId: () => 10238, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T0_MONTHLY, PRODUCT_JETPACK_SCAN, PRODUCT_JETPACK_ANTI_SPAM, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '1GB of cloud storage' ), translate( '30-day activity log archive' ), translate( 'Unlimited one-click restores from the last 30 days' ), translate( 'Akismet: Comment and form spam protection (250 API calls/mo)' ), ], }, [ PLAN_JETPACK_SECURITY_T1_BI_YEARLY ]: { ...getPlanJetpackSecurityT1Details(), ...getBiAnnualTimeframe(), getStoreSlug: () => PLAN_JETPACK_SECURITY_T1_BI_YEARLY, getProductId: () => 2034, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T1_BI_YEARLY, PRODUCT_JETPACK_SCAN_BI_YEARLY, PRODUCT_JETPACK_ANTI_SPAM_BI_YEARLY, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '10GB of cloud storage' ), translate( '30-day activity log archive' ), translate( 'Unlimited one-click restores from the last 30 days' ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (10k API calls/mo)' ), ], }, [ PLAN_JETPACK_SECURITY_T1_YEARLY ]: { ...getPlanJetpackSecurityT1Details(), ...getAnnualTimeframe(), getStoreSlug: () => PLAN_JETPACK_SECURITY_T1_YEARLY, getProductId: () => 2016, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T1_YEARLY, PRODUCT_JETPACK_SCAN, PRODUCT_JETPACK_ANTI_SPAM, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '10GB of cloud storage' ), translate( '30-day activity log archive' ), translate( 'Unlimited one-click restores from the last 30 days' ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (10k API calls/mo)' ), ], }, [ PLAN_JETPACK_SECURITY_T1_MONTHLY ]: { ...getPlanJetpackSecurityT1Details(), ...getMonthlyTimeframe(), getStoreSlug: () => PLAN_JETPACK_SECURITY_T1_MONTHLY, getProductId: () => 2017, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T1_MONTHLY, PRODUCT_JETPACK_SCAN_MONTHLY, PRODUCT_JETPACK_ANTI_SPAM_MONTHLY, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '10GB of cloud storage' ), translate( '30-day activity log archive' ), translate( 'Unlimited one-click restores from the last 30 days' ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (10k API calls/mo)' ), ], }, [ PLAN_JETPACK_SECURITY_T2_YEARLY ]: { ...getPlanJetpackSecurityT2Details(), ...getAnnualTimeframe(), getStoreSlug: () => PLAN_JETPACK_SECURITY_T2_YEARLY, getProductId: () => 2019, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T2_YEARLY, PRODUCT_JETPACK_SCAN, PRODUCT_JETPACK_ANTI_SPAM, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '{{strong}}1TB (1,000GB){{/strong}} of cloud storage', { components: { strong: , }, } ), translate( '{{strong}}1-year{{/strong}} activity log archive', { components: { strong: , }, } ), translate( 'Unlimited one-click restores from the last {{strong}}1 year{{/strong}}', { components: { strong: , }, } ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (10k API calls/mo)' ), ], }, [ PLAN_JETPACK_SECURITY_T2_MONTHLY ]: { ...getPlanJetpackSecurityT2Details(), ...getMonthlyTimeframe(), getStoreSlug: () => PLAN_JETPACK_SECURITY_T2_MONTHLY, getProductId: () => 2020, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T2_MONTHLY, PRODUCT_JETPACK_SCAN_MONTHLY, PRODUCT_JETPACK_ANTI_SPAM_MONTHLY, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '{{strong}}1TB (1,000GB){{/strong}} of cloud storage', { components: { strong: , }, } ), translate( '{{strong}}1-year{{/strong}} activity log archive', { components: { strong: , }, } ), translate( 'Unlimited one-click restores from the last {{strong}}1 year{{/strong}}', { components: { strong: , }, } ), translate( 'Scan: Real-time malware scanning and one-click fixes' ), translate( 'Akismet: Comment and form spam protection (10k API calls/mo)' ), ], }, [ PLAN_JETPACK_STARTER_YEARLY ]: { ...getPlanJetpackStarterDetails(), ...getAnnualTimeframe(), getStoreSlug: () => PLAN_JETPACK_STARTER_YEARLY, getProductId: () => 2030, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T0_YEARLY, PRODUCT_JETPACK_ANTI_SPAM ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '1GB of cloud storage' ), translate( '30-day activity log archive' ), translate( 'Unlimited one-click restores from the last 30 days' ), translate( 'Akismet: Comment and form spam protection (1k API calls/mo)' ), ], }, [ PLAN_JETPACK_STARTER_MONTHLY ]: { ...getPlanJetpackStarterDetails(), ...getMonthlyTimeframe(), getStoreSlug: () => PLAN_JETPACK_STARTER_MONTHLY, getProductId: () => 2031, getProductsIncluded: () => [ PRODUCT_JETPACK_BACKUP_T0_MONTHLY, PRODUCT_JETPACK_ANTI_SPAM_MONTHLY, ], getWhatIsIncluded: () => [ translate( 'VaultPress Backup: Real-time backups as you edit' ), translate( '1GB of cloud storage' ), translate( '30-day activity log archive' ), translate( 'Unlimited one-click restores from the last 30 days' ), translate( 'Akismet: Comment and form spam protection (1k API calls/mo)' ), ], }, [ PLAN_JETPACK_GROWTH_MONTHLY ]: { ...getPlanJetpackGrowthDetails(), ...getMonthlyTimeframe(), getProductId: () => 2021, getStoreSlug: () => PLAN_JETPACK_GROWTH_MONTHLY, getProductsIncluded: () => [ PRODUCT_JETPACK_STATS_MONTHLY, PRODUCT_JETPACK_SOCIAL_V1_MONTHLY ], }, [ PLAN_JETPACK_GROWTH_YEARLY ]: { ...getPlanJetpackGrowthDetails(), ...getAnnualTimeframe(), getProductId: () => 2022, getStoreSlug: () => PLAN_JETPACK_GROWTH_YEARLY, getMonthlySlug: () => PLAN_JETPACK_GROWTH_MONTHLY, getProductsIncluded: () => [ PRODUCT_JETPACK_STATS_YEARLY, PRODUCT_JETPACK_SOCIAL_V1_YEARLY ], }, [ PLAN_JETPACK_GROWTH_BI_YEARLY ]: { ...getPlanJetpackGrowthDetails(), ...getBiAnnualTimeframe(), getProductId: () => 2023, getStoreSlug: () => PLAN_JETPACK_GROWTH_BI_YEARLY, getProductsIncluded: () => [ PRODUCT_JETPACK_STATS_BI_YEARLY, PRODUCT_JETPACK_SOCIAL_V1_BI_YEARLY, ], }, [ PLAN_JETPACK_GOLDEN_TOKEN ]: { ...getPlanJetpackGoldenTokenDetails(), ...getAnnualTimeframe(), getMonthlySlug: () => PLAN_JETPACK_GOLDEN_TOKEN, getStoreSlug: () => PLAN_JETPACK_GOLDEN_TOKEN, getProductId: () => 2900, }, [ PLAN_P2_PLUS ]: { ...getDotcomPlanDetails(), group: GROUP_P2, type: TYPE_P2_PLUS, getTitle: () => i18n.translate( 'P2+' ), getDescription: () => '', getPlanTagline: () => i18n.translate( '{{strong}}Best for professionals:{{/strong}} Enhance your P2 with more space for audio and video, advanced search, an activity overview panel, and priority customer support.', plansDescriptionHeadingComponent ), get2023PricingGridSignupWpcomFeatures: () => [ FEATURE_P2_13GB_STORAGE, FEATURE_P2_ADVANCED_SEARCH, FEATURE_P2_VIDEO_SHARING, FEATURE_P2_MORE_FILE_TYPES, FEATURE_P2_PRIORITY_CHAT_EMAIL_SUPPORT, FEATURE_P2_ACTIVITY_OVERVIEW, ], getStorageFeature: () => FEATURE_P2_13GB_STORAGE, getPlanCompareFeatures: () => [ // pay attention to ordering, shared features should align on /plan page FEATURE_P2_13GB_STORAGE, FEATURE_P2_ADVANCED_SEARCH, FEATURE_P2_VIDEO_SHARING, FEATURE_P2_MORE_FILE_TYPES, FEATURE_P2_PRIORITY_CHAT_EMAIL_SUPPORT, FEATURE_P2_ACTIVITY_OVERVIEW, ], // TODO: update this once we put P2+ in the signup. getSignupFeatures: () => [ FEATURE_FAST_SUPPORT_FROM_EXPERTS ], // TODO: no idea about this, copied from the WP.com Premium plan. // Features not displayed but used for checking plan abilities getIncludedFeatures: () => [ FEATURE_AUDIO_UPLOADS, FEATURE_JETPACK_SEARCH_BI_YEARLY, FEATURE_JETPACK_SEARCH, FEATURE_JETPACK_SEARCH_MONTHLY, ], getInferiorFeatures: () => [], ...getMonthlyTimeframe(), getProductId: () => 1040, getStoreSlug: () => PLAN_P2_PLUS, getBillingTimeFrame: () => translate( 'per user per month' ), }, }; PLANS_LIST[ PLAN_P2_FREE ] = { ...PLANS_LIST[ PLAN_FREE ], group: GROUP_P2, getPlanTagline: () => i18n.translate( '{{strong}}Best for small groups:{{/strong}} All the features needed to share, discuss, review, and collaborate with your team in one spot, without interruptions.', plansDescriptionHeadingComponent ), getTitle: () => i18n.translate( 'P2 Free' ), get2023PricingGridSignupWpcomFeatures: () => [ FEATURE_P2_3GB_STORAGE, FEATURE_P2_UNLIMITED_USERS, FEATURE_P2_UNLIMITED_POSTS_PAGES, FEATURE_P2_SIMPLE_SEARCH, FEATURE_P2_CUSTOMIZATION_OPTIONS, ], getStorageFeature: () => FEATURE_P2_3GB_STORAGE, getPlanCompareFeatures: () => [ // pay attention to ordering, shared features should align on /plan page FEATURE_P2_3GB_STORAGE, FEATURE_P2_UNLIMITED_USERS, FEATURE_P2_UNLIMITED_POSTS_PAGES, FEATURE_P2_SIMPLE_SEARCH, FEATURE_P2_CUSTOMIZATION_OPTIONS, ], }; // Brand new WPCOM plans PLANS_LIST[ PLAN_WPCOM_STARTER ] = { ...getDotcomPlanDetails(), group: GROUP_WPCOM, type: TYPE_STARTER, term: TERM_ANNUALLY, getTitle: () => i18n.translate( 'WordPress Starter' ), getProductId: () => 1033, getStoreSlug: () => PLAN_WPCOM_STARTER, getDescription: () => i18n.translate( 'Start with a custom domain name, simple payments, and extra storage.' ), getBillingTimeFrame: () => i18n.translate( 'per month, billed yearly' ), getPlanCompareFeatures: () => [ FEATURE_UNLIMITED_TRAFFIC, FEATURE_MANAGED_HOSTING, FEATURE_FREE_THEMES, FEATURE_CUSTOM_DOMAIN, FEATURE_UNLIMITED_ADMINS, FEATURE_6GB_STORAGE, FEATURE_GOOGLE_ANALYTICS, FEATURE_PAYMENT_BLOCKS, FEATURE_TITAN_EMAIL, ], getIncludedFeatures: () => [ WPCOM_FEATURES_INSTALL_PURCHASED_PLUGINS ], }; PLANS_LIST[ PLAN_WPCOM_FLEXIBLE ] = { // Inherits the free plan ...PLANS_LIST[ PLAN_FREE ], group: GROUP_WPCOM, type: TYPE_FLEXIBLE, getTitle: () => i18n.translate( 'WordPress Free' ), getBillingTimeFrame: () => i18n.translate( 'upgrade when you need' ), getDescription: () => i18n.translate( 'Start your free WordPress.com website. Limited functionality and storage.' ), getPlanCompareFeatures: () => [ FEATURE_1GB_STORAGE ], }; PLANS_LIST[ PLAN_WPCOM_PRO ] = { ...getPlanProDetails(), term: TERM_ANNUALLY, getProductId: () => 1032, getStoreSlug: () => PLAN_WPCOM_PRO, getBillingTimeFrame: () => i18n.translate( 'per month, billed yearly' ), }; PLANS_LIST[ PLAN_WPCOM_PRO_MONTHLY ] = { ...getPlanProDetails(), ...getMonthlyTimeframe(), getProductId: () => 1034, getStoreSlug: () => PLAN_WPCOM_PRO_MONTHLY, }; PLANS_LIST[ PLAN_WPCOM_PRO_2_YEARS ] = { ...getPlanProDetails(), term: TERM_BIENNIALLY, getProductId: () => 1035, getStoreSlug: () => PLAN_WPCOM_PRO_2_YEARS, getBillingTimeFrame: WPComGetBiennialBillingTimeframe, }; PLANS_LIST[ PLAN_ECOMMERCE_TRIAL_MONTHLY ] = { ...getDotcomPlanDetails(), type: TYPE_ECOMMERCE, group: GROUP_WPCOM, getProductId: () => 1052, term: TERM_MONTHLY, getBillingTimeFrame: () => i18n.translate( 'free trial' ), getStoreSlug: () => PLAN_ECOMMERCE_TRIAL_MONTHLY, getTitle: getPlanCommerceTrialTitle, getDescription: getPlanCommerceTrialTitle, getTagline: () => i18n.translate( 'Get a taste of the world’s most popular eCommerce software.' ), }; if ( isEnabled( 'plans/migration-trial' ) ) { PLANS_LIST[ PLAN_MIGRATION_TRIAL_MONTHLY ] = { ...getPlanBusinessDetails(), type: TYPE_BUSINESS, group: GROUP_WPCOM, getProductId: () => 1057, term: TERM_MONTHLY, getBillingTimeFrame: () => i18n.translate( 'free trial' ), getStoreSlug: () => PLAN_MIGRATION_TRIAL_MONTHLY, getTitle: getPlanBusinessTrialTitle, }; } PLANS_LIST[ PLAN_HOSTING_TRIAL_MONTHLY ] = { ...getPlanBusinessDetails(), getPlanTagline: getPlanBusinessTrialTagline, type: TYPE_BUSINESS, group: GROUP_WPCOM, getProductId: () => 1058, term: TERM_MONTHLY, getBillingTimeFrame: () => i18n.translate( 'Try it for 3 days' ), getStoreSlug: () => PLAN_HOSTING_TRIAL_MONTHLY, getTitle: getPlanBusinessTrialTitle, getDescription: () => i18n.translate( 'Hosting free trial' ), getTagline: () => i18n.translate( 'Get a taste of unlimited performance and unbeatable uptime' ), }; PLANS_LIST[ PLAN_PERSONAL_TRIAL_MONTHLY ] = { ...getPlanPersonalDetails(), ...getMonthlyTimeframe(), getProductId: () => 1059, getStoreSlug: () => PLAN_PERSONAL_TRIAL_MONTHLY, getPlanCompareFeatures: () => compact( [ FEATURE_HOSTING, FEATURE_JETPACK_ESSENTIAL, FEATURE_FAST_SUPPORT_FROM_EXPERTS, FEATURE_FREE_THEMES, FEATURE_STYLE_CUSTOMIZATION, FEATURE_6GB_STORAGE, FEATURE_NO_ADS, FEATURE_MEMBERSHIPS, FEATURE_PREMIUM_CONTENT_BLOCK, FEATURE_PAYMENT_TRANSACTION_FEES_8, ].filter( ( feature ) => feature !== null ) ), };