Commit Graph
847 Commits
Author SHA1 Message Date
Justin DiRose 7e753d45bd DEV: Update to new prettier standards 2020-09-16 09:53:50 -05:00
Justin DiRose d60c5b6d54 UX: fix incorrect text on cancel button 2020-09-16 09:49:45 -05:00
Justin DiRose bdcaaf9897 UX: i18ninize string 2020-09-16 09:44:44 -05:00
Discourse Translator Bot 8022b3c15a Update translations 2020-09-16 10:20:57 +00:00
Discourse Translator Bot aef967192d Update translations 2020-09-15 13:07:07 +00:00
Justin DiRose 9f914c7793 DEV: run prettier 2020-09-01 20:35:53 -05:00
Justin DiRose bd5d9fc289 DEV: Fix gemfile 2020-09-01 20:33:29 -05:00
Justin DiRose 064000b7bc DEV: Set up dependencies for workflows 2020-09-01 20:31:38 -05:00
Justin DiRose c3a0eb6fe5 DEV: Add GitHub Actions for linting/testing 2020-09-01 20:25:44 -05:00
Discourse Translator Bot 772de6ff10 Update translations 2020-08-25 13:03:24 +00:00
Justin DiRose 6ce6e85ef4 Make rubocop happy 2020-08-19 15:11:16 -05:00
Justin DiRose 4457713901 FEATURE: Show renewal date on uncanceled subscriptions 2020-08-19 15:08:38 -05:00
Justin DiRose a868e6b838 FEATURE: Cancel payments at end of subscription vs immediately
Previously, when a user canceled a subscription, the access would revoke
immediately on Discourse vs. at the end of the billing period. This
commit changes the behavior to remove membership at the end of the
billing period using Stripe's `cancel_at_period_end` attribute on the
Subscription object.

This commit now requires the setup of webhooks for subscription
processing to occur correctly.
2020-08-19 14:37:47 -05:00
Discourse Translator Bot 91824dcdae Update translations 2020-08-18 13:04:16 +00:00
Discourse Translator Bot 484fc1eb2f Update translations 2020-08-11 13:06:23 +00:00
Discourse Translator Bot cc1e11850d Update translations 2020-08-05 13:30:17 +00:00
Justin DiRose 739296bc72 FIX: Single subscription was not correctly selected 2020-08-03 10:31:21 -05:00
Justin DiRose a1a7ca98a3 DEV: Fix tests 2020-07-28 15:40:16 -05:00
Justin DiRose 83002fab3c FEATURE: New styling of product page 2020-07-28 12:46:59 -05:00
Justin DiRose 954beeb094 FIX: Properly show information on saved plans 2020-07-28 11:56:58 -05:00
Justin DiRose 0a244111bc FIX: Buttons out of alignment on some browsers 2020-07-28 11:49:15 -05:00
Justin DiRose 11d9b2e011 FIX: If only one plan, automatically select it 2020-07-28 11:08:21 -05:00
Justin DiRose 9e66588038 FIX: Missing translation for daily subscriptions 2020-07-27 10:37:41 -05:00
Justin DiRose 9491f558ea FEATURE: Add support for 3D Secure payments (#19)
Adds an additional checkout flow to support authentication of payment methods.
2020-07-24 15:07:18 -05:00
Justin DiRose 587661fafb FEATURE: Allow one-time purchases on products (#18)
Building off the foundation of using the Prices API, this PR adds the ability to create a one-time purchase plan for any product, which then can add a user to the specified plan group.

Some things to be aware of:

    One-time purchases cannot have trials.
    One-time purchases use the Invoice API instead of Subscriptions. Invoices are created then charged immediately.
    Users should receive emails for these invoices directly from Stripe just like subscriptions.
2020-07-22 11:06:34 -05:00
Discourse Translator Bot fcc90e4fcc DEV: Switch from Transifex to Crowdin 2020-07-16 14:01:25 +02:00
Justin DiRose c9ff55b46a REFACTOR: Use the Prices API in place of Plans (#17)
Stripe has a newer API called Prices where you can create a price for any product and it can either be recurring or one-time. The easy part is existing Plans work with the Prices API by passing a Plan ID, but objects are returned in the slightly-different Prices API object format.

This commit is a refactor to the new API to handle the data in its new form, and lays the foundation for a one time payment plan to be added to any subscriptions product.
2020-07-15 08:44:40 -05:00
Mark VanLandingham 8bcb7aa93c DEV: Import getURL to fix deprecation warnings (#16) 2020-07-07 13:50:16 -05:00
Justin DiRose 3e6d8734de FIX: Properly namespace payment serializer (#15) 2020-07-06 15:19:45 -05:00
Justin DiRose fb4f50478d REFACTOR: Use engine to load files, add constraint (#14) 2020-07-06 11:11:04 -05:00