From f3bb6b43a5790adc4d7d98c17a56b0987f453887 Mon Sep 17 00:00:00 2001 From: Fabien O'Carroll Date: Thu, 21 Oct 2021 16:07:14 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Added=20Offers=20feature=20to=20Gho?= =?UTF-8?q?st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refs https://github.com/TryGhost/Team/issues/1115 This allows users to create Offers for Tier/Cadence pairs in order to provide discounted subscriptions to Members! We have support for percentage based discounts & fixed price discounts, either for the first payment, all payments, or a number of monthly payments. Offers also have a code, which can be used as an easy way to share them, as visiting https://site.com/offer-code will automatically open Portal with the Offer prepopulated. --- core/server/web/shared/middlewares/custom-redirects.js | 8 -------- core/shared/labs.js | 8 ++++---- .../frontend/services/theme-engine/middleware.test.js | 3 ++- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/core/server/web/shared/middlewares/custom-redirects.js b/core/server/web/shared/middlewares/custom-redirects.js index 4679a7182f..2d21329bf8 100644 --- a/core/server/web/shared/middlewares/custom-redirects.js +++ b/core/server/web/shared/middlewares/custom-redirects.js @@ -7,7 +7,6 @@ const urlUtils = require('../../../../shared/url-utils'); const errors = require('@tryghost/errors'); const logging = require('@tryghost/logging'); const redirectsService = require('../../../services/redirects'); -const labsService = require('../../../../shared/labs'); const messages = { customRedirectsRegistrationFailure: 'Could not register custom redirects.' @@ -27,13 +26,6 @@ let customRedirectsRouter; _private.registerRoutes = (router, redirects) => { debug('redirects loading'); - if (labsService.isSet('offers')) { - redirects.unshift({ - from: '/zimo50', - to: '/#/portal/offers/abcdefuckoff' - }); - } - redirects.forEach((redirect) => { /** * Detect case insensitive modifier when regex is enclosed by diff --git a/core/shared/labs.js b/core/shared/labs.js index 061807977d..b91e8a6db0 100644 --- a/core/shared/labs.js +++ b/core/shared/labs.js @@ -15,7 +15,8 @@ const messages = { // flags in this list always return `true`, allows quick global enable prior to full flag removal const GA_FEATURES = [ - 'customThemeSettings' + 'customThemeSettings', + 'offers' ]; // NOTE: this allowlist is meant to be used to filter out any unexpected @@ -27,8 +28,7 @@ const BETA_FEATURES = [ const ALPHA_FEATURES = [ 'oauthLogin', - 'membersActivity', - 'offers' + 'membersActivity' ]; module.exports.GA_KEYS = [...GA_FEATURES]; @@ -86,7 +86,7 @@ module.exports.enabledHelper = function enabledHelper(options, callback) { } // Else, the helper is not active and we need to handle this as an error - errDetails.message = tpl(options.errorMessage || messages.errorMessage, {helperName: options.helperName}), + errDetails.message = tpl(options.errorMessage || messages.errorMessage, {helperName: options.helperName}); errDetails.context = tpl(options.errorContext || messages.errorContext, { helperName: options.helperName, flagName: options.flagName diff --git a/test/unit/frontend/services/theme-engine/middleware.test.js b/test/unit/frontend/services/theme-engine/middleware.test.js index 415e298d9b..902388c230 100644 --- a/test/unit/frontend/services/theme-engine/middleware.test.js +++ b/test/unit/frontend/services/theme-engine/middleware.test.js @@ -55,7 +55,8 @@ describe('Themes middleware', function () { // if we want to compare it // we will need some unique content members: true, - customThemeSettings: true + customThemeSettings: true, + offers: true }; fakeCustomThemeSettingsData = {