From 99c4a454ad13e9b6cf9bce7866113015cf3453b2 Mon Sep 17 00:00:00 2001 From: Fabien O'Carroll Date: Wed, 17 Apr 2019 11:25:43 +0200 Subject: [PATCH] Added support for signup buttons w/ coupons no-issue This will allows themes to have an element like: To open the signup page, and optionally apply a coupon --- ghost/sdk/theme-dropin/src/index.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/ghost/sdk/theme-dropin/src/index.js b/ghost/sdk/theme-dropin/src/index.js index bd56fce272..ad1b079f0f 100644 --- a/ghost/sdk/theme-dropin/src/index.js +++ b/ghost/sdk/theme-dropin/src/index.js @@ -28,6 +28,7 @@ function setupMembersListeners() { } const signinEls = document.querySelectorAll('[data-members-signin]'); + const signupEls = document.querySelectorAll('[data-members-signup]'); const upgradeEls = document.querySelectorAll('[data-members-upgrade]'); const signoutEls = document.querySelectorAll('[data-members-signout]'); @@ -79,6 +80,18 @@ function setupMembersListeners() { .then(reload); } + function signup({coupon = ''}) { + members.signup({coupon}) + .then(() => { + return members.getSSRToken({ + fresh: true + }).then(function (token) { + return setCookie(token); + }); + }) + .then(reload); + } + function upgrade() { members.upgrade() .then(() => { @@ -98,6 +111,14 @@ function setupMembersListeners() { }); } + for (let el of signupEls) { + el.addEventListener('click', (event) => { + event.preventDefault(); + const coupon = el.dataset.membersCoupon; + signup({coupon}); + }); + } + for (let el of upgradeEls) { el.addEventListener('click', (event) => { event.preventDefault();