no issue
depends on https://github.com/TryGhost/Ghost/pull/12540
FirstPromoter allows sites to build their own referral programs.
Portal reads FirstPromoter settings from site data and uses them to setup FirstPromoter script to track member referrals
no refs
Using `location.hash` to remove hash params on Portal still keeps the `#` on browser. Instead, we take advantage of history API to remove Portal hash params from screen
no issue
Previously, we only returned active subscription for a member in their list of subscriptions, and Portal picked the first subscription in list for a paid member assuming it as active. This doesn't hold true since we now return list of all subscriptions for a member.
This patch updates to use first "active" subscription for a member in the subscription list instead.
no issue
Custom class is appended to trigger buttons based on popup state to allow UI changes based on different popup state. The class name is updated from using members terminology to new Portal terminology now.
closes https://github.com/TryGhost/Ghost/issues/12367
- Support and powered by links were not opened through `href` inside iframe
- Adds support to open these links via `window.open` to bypass iframe restriction
refs https://github.com/TryGhost/Ghost/issues/12403
This gives members the ability to share their cancellation reason with site owners.
The reason is included in the cancellation request and stored both in Ghost & Stripe.
Co-authored-by: Peter Zimon <zimo@ghost.org>
refs https://github.com/TryGhost/Ghost/issues/12365
Stripe back button previously redirected user to site home instead of keeping existing link where the checkout was triggered from. This updates the link to go back to old site URL in case the previous URL was still on the Ghost site.
no refs
- Updates stripe actions via portal to use custom parameter values to show notifications
- Updated parameter don't interfere with existing theme notifications
refs https://github.com/TryGhost/Ghost/issues/12365
- Added direct portal link handling for - `/signup/free` - to open Portal with Free plan only when available
- In case free plan is not available, Portal will show default signup screen
refs https://github.com/TryGhost/Ghost/issues/12365
- Browser back button from Stripe checkout takes users to infinite navigation loop as we were not clearing the direct checkout link
- Clears direct checkout link on load so user can continue navigation as normal
no issue
- Notification was fetching member's first name which caused error in case the member was not logged in
- Adds check for member to exist before fetching first name
There is a bug in these version where Portal does not load correctly after a successful
Stripe Checkout. We are reverting until we can determine the cause of the bug and fix it
* Revert "v0.11.1"
This reverts commit 828c4d59e2.
* Revert "Fixed incorrect link/path handling"
This reverts commit 9d853be979.
* Revert "v0.11.0"
This reverts commit 16c2224b9b.
* Revert "Updated portal direct checkout links to use path"
This reverts commit d26fad1ef2.
* Revert "Added direct links for monthly/yearly checkout"
This reverts commit bbea4f7ec5.
* Revert "Added user select style to plan container"
This reverts commit a665ca5923.
* Revert "Refined copy"
This reverts commit 32d4949e1d.
* Revert "Account home page refinements"
This reverts commit 6587eca37d.
* Revert "Notification refinements"
This reverts commit 23c75e3acc.
* Revert "Added name to welcome notification"
This reverts commit 7220049830.
* Revert "Refined notification"
This reverts commit d1c091584f.
refs https://github.com/TryGhost/Ghost/issues/12365
Last commit added Portal checkout links using query param on signup link - `signup?plan=monthly/yearly`, this updates the checkout links to use path instead of params on links and data attributes instead.
Portal link for monthly plan checkout - `#/portal/signup/monthly`
Portal data attribute for monthly plan checkout - `data-portal=signup/monthly`
Portal link for yearly plan checkout - `#/portal/signup/yearly`
Portal data attribute for monthly plan checkout - `data-portal=signup/yearly`
refs https://github.com/TryGhost/Ghost/issues/12365
Currently, while its possible to open Stripe checkout directly on a monthly/yearly plan, Portal links don't allow similar feature. This change allows opening a site on a specific Portal link that can directly open Stripe checkout for monthly/yearly plan, if the plan is allowed.
- Adds handling for new portal signup link for monthly plan - `/#/portal/signup?plan=monthly`
- Adds handling for new portal signup link for yearly plan - `/#/portal/signup?plan=yearly`
no issue
Ghost sends email on successful signup to a paid plan via Stripe checkout, but couldn't differentiate between a Stripe checkout as new member or as an upgrade previously. This led to an extra second email with magic link on upgrading to paid plan while logged in.
Passing `checkoutType` metadata to Stripe checkout allows webhook to ignore second email in case of an upgrade scenario.
refs https://github.com/TryGhost/Ghost/issues/12253
- Handles custom action param for requests from Portal by listening on `portal-action` instead of `action` and `portal-stripe` instead of `stripe` in query params for magic link and stripe checkout changes
- Allows theme to continue using the old params so in future Portal doesn't interfere with theme notifications
no issue
- If the site owner has no active plan enabled for signup in settings, it implies an invite-only site usecase which needs to be highlighted to he user
- Shows the invite only message along with option to login when SIgnup screen is opened in such scenario
no issue
- Default site fixtures for tests often break them as tests expect all 3 plans to be present at the moment, change here updates the tests to use custom site fixture with all 3 plans to avoid breaking with any changes for dev testing
no issue
- Currently, the newsletter switch works on the value update from the API which can have slight delay causing sluggish feeling on using the switch
- Adds logic to locally update the switch state before resetting to whatever value comes from the update so the behavior feels instant
no issue
- On closing portal popup, the hash link was not getting reset which then prevented the popup to be opened again
- Clears portal hash link on popup close
no issue
- We had previously removed the Back button for account profile/plan pages when opened directly via Portal link
- This updates the behavior to show the back button which takes back to Account Home as the previous behavior seemed incomplete to users
no issue
- Hash handler was not updating Portal state if it pointed to a Portal link, which caused the need for a full refresh to reflect new link triggers
- Updates hash handler to use handle both preview and link states
no issue
- When account plan/profile pages are opened via Portal Link, the back button is non-functional as we don't have a last page to go to, fix hides the back button in such cases
refs #12249
refs ce14d8113a
This was incorrectly assuming the presence of the data-members-name
element in the document. By guarding against it and defaulting to
undefined, we fallback to the existing behaviour when the element is not
present.
no issue
- Added yearly back to fixtures as tests rely on them
- Long term fix is to directly override fixtures with expected value for tests to not rely on value in file
- Updated notification style for a less opinionated design so that it works better with any accent color
- Changed full width notificaiton style to smaller to avoid covering navigation
no issue
Current logic ignored empty accent color value coming from the preview url which did not unset the accent color when removed from preview. The fix allows for empty accent color in preview so that it can be reset to default.
no issue
- We recently updated Ghost to allow theme developers to pass member's name via `data-members-name` attribute
- The script covers the usecase for any themes using the attribute to fill member's name during the signup process
refs https://github.com/TryGhost/Team/issues/393
- Updates behavior of popup notification for account update
- Updates popup notification clear without animation for manual close and retry click
- Adds redirect to home page correctly for popup notification on success
no issue
- Adds success and error notification messages for different actions
- Cleans up notification flows and messages
- Adds new helpers for members and site
- Updates actions for email/name update
no refs.
- added different disabled cookie warning messages depending on the context
- disabled input fields, checkboxes and buttons globally if cookies are disabled
- refined copy and visuals
no issue
- Adds new helpers to create portal links on existing site url paths
- Updates retry links for signin and signup to use new helpers
- Helps preventing any unwanted bugs with Portal links by providing consistent link creation
no refs.
- added CloseButton component to be able to use it in multiple pages
- moved close button inside content container so that it scrolls with the page on smaller screen sizes
no issue
- Updates the new plan's start date based on billing interval change
- If current and new billing interval is same, plan starts at period end, immediately otherwise
no issue
- Refactors the plan upgrade flow for a free member
- Removes confirmation for free member and brings back checkboxes
- Takes straight to stripe checkout on plan confirmation
no issue
- Updates various flows to update/change plan for a member
- Adds a confirmation step for different change plan actions
- Adds new helpers for plans and members
- Updates Account plan page to use more streamlined components
- Fixed lint
no refs.
Prepared the container system to responsive sizes.
- added inner scrollable container for all content
- made footer sticky
- set max height for each screen
no refs.
For when a signle plan is enabled in Portal settings:
- removed selected style from the plan on the signup page
- updated the width of the popup
no refs.
- hides free plan if that's the only enabled plan
- refined copy for sign up button when no plans are available (e.g. Stripe is not set up or free is the only plan)
no issue
- Cleans up the code structure used to render different sections for paid members on account home
- Adds new member helper method to check if the member is complimentary or not
no refs.
- removed the ability to change plan and billing info section from account home for members with complimentary plan
- refined copy for plan section
no issue
- To correctly inject the members.js script to any theme, it needs to know the correct site URL to access Ghost APIs.
- `data-ghost` attribute is needed on the script to define the correct Site url
no issue
- We don't want to keep any old "last page" state for the popup once its closed, which is used to determine which page to to go back to with "Cancel"
- If no "last page" is found, going back closes the popup instead which is expected behavior
no issue
- Previously, a timeout after 5s for previous action was resetting the action state, but didn't take into account any consecutive action and reset state incorrectly
- Timeout is reset on every action so only the last action outside timelimit causes action state to reset
no issue
- By default, Cancel button on Account plan/profile pages goes back to last open page like accountHome
- In case the page is opened directly via custom trigger button, there is no last open page so the popup didn't close
- Closes popup for back actions in case no last page is found
no issue
- Stripe JS is enabled as part of members in ghost_head based on stripe connection
- Portal should expect Stripe to be already added to page via Ghost_Head, so removes explicit check and load here
refs https://github.com/TryGhost/members.js/issues/77
When changing plan from the account page, there should always be a default selected plan:
- for free members the first plan,
- for paid members the current plan
refs https://github.com/TryGhost/members.js/issues/77
- Updated discount value for yearly plan to be only applied if monthly plan is visible
- Doesn't make sense to show discount if no monthly plan is visible
refs https://github.com/TryGhost/members.js/issues/77
- Portal button should always show the Subscribe/Account Home screen based on logged-in status
- Resets state to expected page on every open toggle
refs https://github.com/TryGhost/members.js/issues/78
- Fixed error object post validation to not include keys for fields without error
- Fixed tests for Signup/Signin to use correct member context
no refs.
- applied custom style for popup container and background for Admin preview to make the UX more focused
- fixed dummy paid member as the preview content of the account home page
refs https://github.com/TryGhost/members.js/issues/78
- Adds error handling framework for input fields in forms - Signup/Signin/Account Profile
- Shows required and invalid email errors for input fields
no issue
- Hardcoded label was being used on account home for newsletter subscriptions status
- Updated to use label based on subscribed status, same as profile page