Commit Graph

220 Commits

Author SHA1 Message Date
Blake Erickson 45754baa00
FEATURE: Add new stripe based pricing table (#202)
This commit adds an optional new stripe based pricing table.
If the user is logged in, the email field will be prepopulated with the users email.

The pricing table can be configured in the stripe dashboard.

Once the discourse_subscriptions_pricing_table setting is filled with the pricing table embed code from the stripe dashboard,
the pricing table will be displayed on /s/subscriptions

For more details see https://stripe.com/docs/payments/checkout/pricing-table
---------

Co-authored-by: spirobel <spirobel@protonmail.com>
2024-04-29 12:47:58 -06:00
Blake Erickson dcde03d7c4
DEV: Bump stripe gem (#200)
Upgrading to the latest stripe gem and api version.
2024-04-16 11:28:07 -06:00
David Taylor 7361721ec0
DEV: Update for strict-dynamic CSP (#194) 2024-03-06 16:45:55 +00:00
Loïc Guitaut 87659e237b DEV: Fix new Rubocop offenses 2024-03-06 15:23:55 +01:00
Jarek Radosz d33cf2921e
DEV: Update linting (#189) 2024-01-16 17:51:44 +01:00
Martin Brennan 3aec1a9336
DEV: Metadata update for plugin.rb (#181)
* Update plugin.rb metadata

* Update plugin.rb

---------

Co-authored-by: AlexDev <104522507+alexdevlaeminck@users.noreply.github.com>
2023-11-07 17:29:37 -08:00
David Taylor 4e1a17c40c
DEV: Introduce syntax_tree for ruby formatting (#144) 2022-12-29 13:35:06 +01:00
Faizaan Gagan 945af4f140
FIX: Allow user to update card details for recurring subscriptions (#123)
* add new route for card update

* create backend route

* update label

* basic functionality working

* ran rubocop

* added rspec tests for functionality

* make payment_method param compulsory

* fixed js linting

* improve client side error handling

* improve server side error handling

* improved update card page UI

* improve button UI for user subscriptions page

* give feedback to user about save status

* remove heading from last column

* fix padding on edit/delete buttons for update table

Co-authored-by: Blake Erickson <o.blakeerickson@gmail.com>
2022-07-05 19:53:27 -06:00
Jarek Radosz d6eaba632d
DEV: Lose the es6 suffix (#112) 2022-03-07 00:20:03 +01:00
Justin DiRose 6414a1f6e5
FEATURE: Show/hide campaign banner with goal status (#85) 2021-07-15 15:05:27 -05:00
Justin DiRose f596a0f78a
FEATURE: Campaigns (#67)
Co-authored-by: Jordan Vidrine <jordan@jordanvidrine.com>

See https://github.com/discourse/discourse-subscriptions/pull/67 for the full description.
2021-06-02 13:15:03 -05:00
Justin DiRose 400313cded
FEATURE: Allow creation of coupons in admin panel (#43)
Adds full support to create coupon/promo codes in the Admin > Plugins > Subscriptions section of the plugin. The Create Coupon button opens a form on the same page, and the active checkboxes toggle the active status of the coupon code.
2021-01-13 11:47:22 -06:00
Justin DiRose b6de4a7b67
DEV: Bump Stripe API gem to 5.29.0 (#38)
Bumping the API gem to 5.29.0 and to the latest API version. This takes into account changes in the API over the last few months and also lays the groundwork for some other improvements to the plugin (namely promo codes).
2021-01-06 13:36:50 -06: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
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
Justin DiRose fb4f50478d
REFACTOR: Use engine to load files, add constraint (#14) 2020-07-06 11:11:04 -05:00
Justin DiRose 9c46794e80
DEV: Remove deprecations & improve error handling (#12)
- Replace deprecated methods on client
- Fix broken dropdowns due to select kit 2 upgrade
- Graceful error handling when Stripe keys are not configured but plugin enabled
2020-05-28 10:32:57 -05:00
Justin DiRose fb4fac197b
REFACTOR: Use models to store data (#11)
* REFACTOR: Use api to add subscribe link

* FIX: I18n subscribe link

* REFACTOR: Use models to store some data

This enables the plugin to show only subscription information which was
generated on Discourse. Subscription data storage is limited to the
external identifiers Stripe generates so we can interact with the API.

* DEV: Test/linting fixes/rake task
2020-05-22 11:20:05 -05:00
Rishabh 3d9fe5fdce
Update README.md & plugin.rb after moving to /discourse 2020-04-29 16:27:17 +05:30
Rimian Perkins 69af94b31f upgrade stripe gem 2020-04-27 19:22:23 +10:00
Rimian Perkins 39564ea779 bump 2020-03-21 20:35:05 +11:00
Rimian Perkins 4ed5d163dd upgrade stripe gem 2020-03-20 10:30:32 +11:00
Rimian Perkins 1e62f698ee bump 2020-01-28 09:11:15 +11:00
Rimian Perkins 3ec1907c1c upgrade stripe gem 2020-01-15 10:33:33 +11:00
Rimian Perkins 431279a4f7 Add empty webhook url and upgrade stripe gem 2020-01-10 10:24:09 +11:00
Rimian Perkins 7f4fb2a503 upgrade stripe gem 2020-01-10 09:59:42 +11:00
Rimian Perkins 330e6f6a2d bump with ux changes 2019-12-18 09:10:14 +11:00
Rimian Perkins 52db93ecd8 user payments page 2019-12-17 16:31:58 +11:00
Rimian Perkins f21891453b rm removed file reference 2019-12-16 11:09:43 +11:00
Rimian Perkins 55f4592033 subscription and billing templates 2019-12-16 10:42:55 +11:00
Rimian Perkins 57fb508514 buttons for selecting price and one time payment 2019-12-13 10:41:14 +11:00
Rimian Perkins a14d26f186 bump with ux change on payment page 2019-12-12 10:09:16 +11:00
Rimian Perkins 2ce314fc8d initial payment buttons component 2019-12-06 13:52:03 +11:00
Rimian Perkins 2c1eb9b22b bumpus 2019-12-05 17:20:43 +11:00
Rimian Perkins 42b79fdaaa bump and upgrade api 2019-12-05 10:29:26 +11:00
Rimian Perkins 80b721ddd8 rename some settings 2019-12-04 11:53:05 +11:00
Rimian Perkins b397ba5a68 name space module 2019-12-04 11:23:45 +11:00
Rimian Perkins 0b908e4da8 rename engine file 2019-12-04 09:44:20 +11:00
Rimian Perkins 21b8340f4f rename the translations 2019-12-04 09:29:13 +11:00
Rimian Perkins d8a3ae5554 fix broken unauthenticated page 2019-12-03 14:31:15 +11:00
Rimian Perkins e10af61f10 bump. table rename 2019-12-03 13:39:28 +11:00
Rimian Perkins 6d71d26574 rename assets 2019-12-03 11:51:18 +11:00
Rimian Perkins 08cbff0c1c change engine mount point and base path in jsapp 2019-12-03 10:29:44 +11:00
Rimian Perkins 382fd4ac41 name space the js admin 2019-12-02 18:58:14 +11:00
Rimian Perkins b1db6e7a4c set currency 2019-11-30 17:44:16 +11:00
Rimian Perkins 57a18f5a4e whoops did not set currency 2019-11-30 17:24:49 +11:00
Rimian Perkins 325ca5d7b3 bumpus with currency select in plan 2019-11-30 17:07:52 +11:00
Rimian Perkins 66051b35fc bump. done for card css 2019-11-29 15:54:41 +11:00
Rimian Perkins 947ec4338e css the card 2019-11-29 15:08:51 +11:00