Forzare un abbonamento Discourse a essere un pagamento unico

Riguardo al plugin Discourse Subscriptions, cosa accadrebbe se modificassi alcune impostazioni direttamente da Stripe? Ad esempio, da Discourse non è possibile configurare un piano per un prodotto come pagamento unico. Deve essere un abbonamento giornaliero, settimanale, mensile o annuale. Tuttavia, se accedo a stripe.com, posso modificare un abbonamento esistente trasformandolo in un pagamento unico. Posso farlo? In che modo questa modifica influirebbe sul funzionamento di quel piano su Discourse? Diventerebbe quindi un pagamento unico?

È assolutamente possibile! Se deselezioni la casella “Ricorrente” nella schermata di creazione del piano, il pagamento sarà unico.

Tuttavia, non è possibile modificare i piani esistenti una volta creati.

2 Mi Piace

Hai ragione! Ho avuto un lapsus. Quello che volevo davvero chiedere è se sia possibile o meno avere un pagamento una tantum che si interrompe e non continua all’infinito. Ad esempio, qualcosa come un “biglietto giornaliero”, dove paghi 5 dollari e vieni inserito in un gruppo speciale, e poi, diciamo, dopo un giorno, l’abbonamento si interrompe e vieni rimosso dal gruppo finché non paghi di nuovo. È possibile?

Purtroppo, non in questo momento.

2 Mi Piace

Io faccio qualcosa di simile in un plugin. Aggiungo (in modo approssimativo) al modello user_group un’azione che, quando un utente viene aggiunto al gruppo di abbonamento, esegue un’azione e poi rimuove l’utente dal gruppo. Nel tuo caso, dovresti configurarlo in modo che, quando l’abbonamento aggiunge l’utente al gruppo one-off-weeklong, esso:

  • aggiunga l’utente al gruppo weeklong che concede l’accesso a determinate categorie;
  • aggiunga un job che rimuoverà l’utente dal gruppo weeklong al termine della settimana;
  • aggiunga un campo personalizzato per l’utente con la data di inizio della settimana, così da poterlo rimuovere in caso di disastro con Redis;
  • rimuova l’utente dal gruppo one-off-weeklong.

Se sei interessato a una soluzione del genere, puoi contattarmi o scrivere nel canale 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.