FEATURE: Give option to repurchase products multiple times (#46)

Feature requested here: https://meta.discourse.org/t/subscriptions-allow-users-to-purchase-one-time-products-multiple-times/173732/

There may be cases where a site admin wants to allow the repurchasing of a product. This implements the functionality by adding a repurchaseable toggle in the admin screen when creating a product. This saves an attribute to the Stripe product metadata.

When a user has already purchased an item with this toggle enabled, they will be able to purchase it again when browsing to `/s`.
This commit is contained in:
Justin DiRose
2021-01-31 14:17:44 -06:00
committed by GitHub
parent 3f8fca3246
commit 072b558d40
11 changed files with 80 additions and 33 deletions
@@ -93,7 +93,10 @@ module DiscourseSubscriptions
name: params[:name],
active: params[:active],
statement_descriptor: params[:statement_descriptor],
metadata: { description: params.dig(:metadata, :description) }
metadata: {
description: params.dig(:metadata, :description),
repurchaseable: params.dig(:metadata, :repurchaseable)
}
}
end
end
@@ -136,7 +136,8 @@ module DiscourseSubscriptions
id: product[:id],
name: product[:name],
description: PrettyText.cook(product[:metadata][:description]),
subscribed: current_user_products.include?(product[:id])
subscribed: current_user_products.include?(product[:id]),
repurchaseable: product[:metadata][:repurchaseable]
}
end