Forzare un abbonamento Discourse a essere un pagamento unico

Regarding the Discourse Subscriptions plugin, what would happen if I changed some settings from Stripe itself? For example, from Discourse it’s not possible to make a plan for a product a one-off payment. It has to be a day, week, month, or year-long subscription. But if I go into stripe.com I can change an existing subscription to a one-off payment. Can I do this? How would this change how that plan functions in Discourse? Would it then be a one-off payment?

It most definitely is possible! If you uncheck the recurring checkbox in the plan creation screen, it will be a one time payment.

However, you cannot change existing plans once they’re created.

2 Mi Piace

You’re right! I had a brain fart. What I actually meant to ask is whether it’s possible or not to have a one-off payment that terminates, and doesn’t go on indefinitely. For example, something like a “day-pass,” where you pay $5 and are put into a special group, and then after, say, a day, the subscription terminates and you’re then eliminated from the group until you pay again. Is this possible?

It is not at this time, unfortunately.

2 Mi Piace

I do something like that in a plugin. I (loosely) add to the user_group model an action that when a user is added to the subscription group, does an action, and then removes the user from the group. In your case, you’d make it so when the subscription added the user to the one-off-weeklong group it would

  • add the user to the weeklong group that gives permission to whatever categories
  • add a job that will delete them from the weeklong group when the week is up
  • add a user custom field with the date the week started so you could delete them if you have some redis disaster
  • remove them from the one-off-weeklong group.

If you’re interested in such, you can contact me or post in marketplace .

3 Mi Piace

Ma è sciocco. Invece, aggiungi semplicemente un callback per la sottoscrizione (se è una sottoscrizione) o per il cliente (se è un pagamento una tantum). Cliente è una sorta di nome improprio. Ha l’ID cliente di Stripe e l’ID prodotto di Stripe. Quindi fai qualcosa come

add_model_callback(DiscourseSubscriptions::Subscription, :after_save) do
      Rails.logger.warn("Ora ho una sottoscrizione #{self.external_id} per #{self.customer_id}")
      # fai qualcosa
end

  add_model_callback(DiscourseSubscriptions::Customer, :after_save) do
    Rails.logger.warn("Cliente #{self.product_id} per #{self.user_id}")
    # fai altro
end
1 Mi Piace

Ciao, hai risolto questo problema?

Puoi fornire ulteriori indicazioni? Ad esempio, come implementare questa funzionalità. Non ho familiarità con Rails… grazie!

Penso che questa sia la mia migliore risposta gratuita.

3 Mi Piace

L’ho risolto modificando il plugin di sottoscrizione di discourse. Grazie.

Tuttavia, ho scoperto che non riesco a eliminare i prodotti nemmeno utilizzando il plugin di sottoscrizione di discourse originale. Hai qualche idea?

Non devi eliminarli. Non fanno male a nessuno. Sono necessari come registro delle cose che hai venduto. Dovresti essere in grado di eliminarli dalla console di Stripe.

2 Mi Piace

Stripe non consente nemmeno l’eliminazione dei prodotti, ma questi possono essere disattivati/archiviati.

Dicono:

2 Mi Piace

Non so se è ancora qualcosa che vuoi ottenere, o se hai trovato un modo per farlo? Sembra che non sia qualcosa che è integrato per essere automatizzato con Discourse, ma potrebbe esserci qualche altro modo per farlo. Sembra un po’ come un accordo da caffetteria dove devi comprare una nuova bevanda ogni giorno per poter sederti a uno dei loro tavoli.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.