closes https://github.com/TryGhost/Team/issues/689
For invite only sites, the default page should be signin as it makes more sense and is actionable than a static signup page
refs https://github.com/TryGhost/Team/issues/643
With custom products and prices, the old data attributes for members functionality - `data-members-plan` - was still using the plan name for checkout session which won't work as it now expects a price ID. This change reworks how we setup to listen to `data-members-*` attributes and moves them inside App.js so they can work with API data fetched from site settings and use the price ID for the `monthly` and `yearly` names as fallback.
refs https://github.com/TryGhost/Team/issues/671
When turning on custom products, existing sites should have default price description that retains current behaviour. This change adds custom description with discount value for Yearly Plans to keep the existing behavior for sites that mimic the old setup.
refs https://github.com/TryGhost/Team/issues/637
Since we allow setting custom name and description for free price now, this wires up the values for free membership price settings to API
refs https://github.com/TryGhost/Team/issues/643
Previously, we always expected `Monthly` or `Yearly` prices to be available for attribtues/links as those were the only prices allowed in Portal. With custom prices, as prices can have dynamic names, we still support Monthly/Yearly prices for backwards compatibility.
The way Monthly/Yearly prices are determined with custom prices is first trying to find the first price by the name same as `Monthly` / `Yearly`, followed by finding a plan having interval `month`/`year`. This gives us the best possible window to continue supporting Monthly/Yearly till all themes have time to adapt to custom prices
refs https://github.com/TryGhost/Team/issues/643
Previously, Portal only worked with hardcoded `Monthly` and `Yearly` plans as those were the only possible prices available to members. With custom prices and products, Portal is now expanded to work with any number of custom prices as well as allow links/attributes for them to work via IDs.
Also, to continue backwards compatibility with Monthly/Yearly, Portal will support their data attributes/links, finding the first relevant Monthly/Yearly plan by nickname, falling back on interval if needed.
refs https://github.com/TryGhost/Team/issues/644
In Preview mode during launch wizard in Admin, we show owners dummy Monthly/Yearly plan since the prices are not yet created but will be created if everything looks good in the next step. This change handles the dummy Monthly/yearly prices without actually having the values in DB or settings.
refs https://github.com/TryGhost/Team/issues/579
We added a new setting to explicitly set `invite-only` mode which was not handled in the signup button and header icon for signup page
refs https://github.com/TryGhost/Team/issues/579
Admin preview screen now sends `allowSelfSignup` as a query param that allows customising the Portal preview UI based on the changes selected by the Admin. This change handles the new query param in Portal
refs https://github.com/TryGhost/Team/issues/579
A new setting `members_signup_access` can be set to `invite` by the site owner which explicitly makes Portal to behave invite only, this change updates Portal to handle the setting