Plugin per abbonamenti Discourse

:discourse: Riepilogo Il plugin Discourse Subscriptions consente ai proprietari del sito di vendere abbonamenti ricorrenti e acquisti una tantum che concedono l’accesso a un gruppo su un’istanza di Discourse.
:open_book: Guida all’installazione Questo plugin è integrato nel nucleo di Discourse. Non è necessario installare il plugin separatamente.

Il plugin Discourse Subscriptions consente di creare abbonamenti una tantum e ricorrenti che gli utenti possono acquistare per accedere a contenuti riservati. Questo può essere un ottimo modo per finanziare i costi di hosting della tua community.

Funzionalità

Il plugin Discourse Subscriptions supporta le seguenti funzionalità:

Il pulsante “Iscriviti” situato nella navigazione in alto ti porterà alla pagina di iscrizione /s dove vengono elencati gli abbonamenti che hai configurato per il tuo sito:

Una volta che un utente fa clic su uno dei pulsanti “Iscriviti” per un piano specifico, si aprirà la pagina di pagamento per quel piano:

Dopo che un utente ha compilato i dettagli di pagamento e l’indirizzo e ha fatto clic su “Iscriviti”, viene visualizzato un messaggio “Grazie!” e viene reindirizzato alla sua pagina di fatturazione:

L’utente viene inoltre aggiunto automaticamente a un gruppo a tua scelta, in modo da poter vedere facilmente quali utenti si sono abbonati e fornire contenuti riservati nelle categorie visibili solo da quel gruppo.

Termini

  • Abbonamento - Gli abbonamenti sono un piano di pagamento ricorrente che consente di controllare l’accesso ai contenuti della tua community. Quando un abbonamento viene creato o eliminato, un utente viene aggiunto o rimosso dal gruppo di utenti associato al tuo piano di abbonamento. Un abbonamento è composto da un prodotto e da piani.
  • Prodotto - Nei termini di Stripe, un prodotto è ciò che stai vendendo. Un prodotto può contenere uno o più piani.
    • Per aggiungere una descrizione al tuo prodotto, aggiungi un campo metadata chiamato “description” e utilizzalo invece. Puoi usare il Markdown.
  • Piano - Un piano contiene un prezzo, un ciclo ricorrente e si associa a un gruppo a cui gli abbonati ottengono l’accesso.

:police_car_light: Fai molta attenzione a mantenere le tue chiavi private di Stripe al sicuro e protette in ogni momento.

:warning: Se dovessi spegnere la tua istanza di Discourse, disinstallare questo plugin o se il tuo sito andasse offline, Stripe continuerà a fatturare i tuoi clienti per il tuo servizio fino a quando l’abbonamento non verrà annullato.

Configurazione

  1. Installa e abilita il plugin
  2. Configura il gateway di pagamento (Stripe)
  3. Configura Webhook ed Eventi in Stripe
  4. Aggiungi le tue chiavi Stripe (pubblica, segreta, segreto webhook) sotto Admin > Plugins > Installed > Subscriptions > Settings /admin/site_settings/category/discourse_subscriptions?filter=plugin%3Adiscourse-subscriptions.
  5. Crea un gruppo per i tuoi abbonati da unirsi tramite acquisto
  6. Crea un prodotto e un piano sotto Admin > Plugins > Subscriptions
  7. Profitto!

Configura il tuo Gateway di Pagamento.

Innanzitutto, avrai bisogno di un account con il gateway di pagamento Stripe. Per iniziare, puoi configurare un account in modalità di test e vedere come funziona tutto senza effettuare transazioni reali o dover configurare un conto bancario. Non c’è un interruttore per la modalità di test nel plugin; invece, assicurati di utilizzare le tue chiavi di sviluppatore (iniziano con pk_test, sk_test)

Configura Webhook ed Eventi nel tuo account Stripe

:bomb: I Webhook sono necessari per far funzionare completamente l’annullamento degli abbonamenti. Assicurati di averli configurati correttamente.

Una volta che hai un account su Stripe, dovrai dire a Stripe l’indirizzo del tuo sito web in modo che possa notificarti su determinate transazioni. Puoi inserirlo nel tuo dashboard di Stripe sotto Endpoints > URL.

Indirizzo Webhook: [tuo indirizzo server]/s/hooks – dove [tuo indirizzo server] è l’URL della tua installazione di Discourse.

Dovrai anche dire a Stripe quali eventi dovrebbe notificarti tramite l’URL del webhook.

Attualmente, Discourse Subscriptions risponde ai seguenti eventi:

  • customer.subscription.deleted
  • customer.subscription.updated
  • checkout.session.completed

Aggiungi le chiavi API e Webhook di Stripe alle impostazioni del tuo plugin

Stripe deve essere autorizzato a comunicare con il tuo sito web. Per farlo, pubblica una coppia di chiavi API private e pubbliche e un segno di firma per i tuoi webhook.

Per autorizzare i webhook, aggiungi le chiavi API e il segreto webhook da Stripe alla tua pagina delle impostazioni (sotto Sviluppatori).

:warning: L’aggiunta di chiavi di produzione renderà i pagamenti effettivi. Se hai intenzione di testare, assicurati di passare alla modalità View test data e di ottenere le chiavi pk_test e sk_test sotto Sviluppatori.

Nelle impostazioni del tuo account Stripe, vedi:

Aggiungi queste chiavi sotto le impostazioni appropriate in Admin > Plugins > Installed > Subscriptions > Settings /admin/site_settings/category/discourse_subscriptions?filter=plugin%3Adiscourse-subscriptions.

Configura i tuoi Gruppi Utente in Discourse

Quando un utente si iscrive con successo alla tua applicazione Discourse, dopo che la transazione con la carta di credito è stata elaborata, viene aggiunto a un Gruppo Utente. Assegnando gli utenti a un Gruppo Utente, puoi gestire a cosa i tuoi utenti hanno accesso sul tuo sito web. I gruppi utente sono una funzionalità fondamentale di Discourse e questo plugin non fa nulla con loro se non aggiungere e rimuovere utenti dal gruppo che hai associato al tuo Piano.

Crea uno o più prodotti con piani.

Sotto Admin > Plugins > Subscriptions, fai clic su aggiungi un nuovo Prodotto. Una volta che hai salvato un prodotto, puoi aggiungere piani ad esso. Tieni presente che i prezzi e gli intervalli di fatturazione dei piani non possono essere modificati una volta creati. Questo è per evitare confusione nella gestione degli abbonamenti.

Se dai un’occhiata al tuo Stripe Dashboard, vedrai che tutti quei prodotti e piani sono elencati. Discourse Subscriptions non li crea localmente. Vengono creati in Stripe.

Test

Testa con questi numeri di carta di credito:

  • 4242 4242 4242 4242
  • 4111 1111 1111 1111 (nessuna autenticazione richiesta)
  • 4000 0027 6000 3184 (autenticazione richiesta)

Per altri numeri di carta di test: Test card numbers | Stripe Documentation

Visita /s e inserisci alcune transazioni di test.

Passaggio alla Produzione

Una volta pronto per andare in produzione, cambia le tue chiavi API e il segreto webhook in chiavi di produzione. Dovrai creare nuovi prodotti e piani in modalità live.

Tieni presente che se non configuri correttamente i webhook di Stripe e i pagamenti ricorrenti non vengono elaborati per qualsiasi motivo (carta di credito scaduta, ecc.), gli utenti avranno comunque accesso al gruppo. Per far sì che Stripe annulli automaticamente gli abbonamenti, assicurati di impostare le tue impostazioni Gestisci pagamenti non riusciti simili all’immagine sottostante e di configurare i webhook come descritto sopra.

Aggiorna le Informazioni di Pagamento

Gli utenti possono aggiornare la carta utilizzata per abbonamenti individuali visitando la pagina di fatturazione e facendo clic sul pulsante di modifica accanto all’abbonamento, il che aprirà questa schermata:

Stripe Checkout con Stripe Pricing Tables

Puoi anche scegliere di sostituire le pagine dei prodotti e del checkout del plugin Subscription e utilizzare invece Stripe Checkout con Stripe Pricing Tables.

Nel tuo Stripe Dashboard:

  1. Dopo aver creato i prodotti su Discourse, vai a Products > Product catalog
  2. Fai clic sul prodotto che desideri includere nella tabella dei prezzi
  3. Fai clic su Edit product
  4. More Options e inserisci quanto segue sotto Metadata:
    • Key: group_name
    • Value: Il nome del gruppo su Discourse (es. trust_level_0)
  5. Fai clic su Update product per salvare

:red_exclamation_mark: Assicurati che il nome del gruppo corrisponda al gruppo selezionato sotto User_Groups su Discourse

Crea la tua tabella dei prezzi Stripe

  1. Vai su Products > Pricing tables
  2. Crea una nuova tabella e aggiungi i prodotti che hai appena creato
  3. Dopo aver pubblicato la tabella, copia l’ID della tabella dei prezzi trovato nel codice di incorporamento (inizia con prctbl_...)
  4. Incolla l’ID della tabella dei prezzi nel tuo discourse_subscriptions_pricing_table_id e abilita l’impostazione della tabella dei prezzi degli abbonamenti.
  5. Fai clic sui segni di spunta verdi per salvare entrambe le impostazioni.

Passo consigliato:

Quando si configura la Pricing Table all’interno di Stripe, si consiglia di collegare l’utente al tuo sito dopo il completamento del checkout, altrimenti rimarranno su una pagina di conferma di Stripe senza un link per tornare al tuo sito.

Il reindirizzamento a https://<your-site>/my/billing/subscriptions è una buona scelta per gli abbonamenti. Per i pagamenti una tantum potresti collegarti direttamente a https://<your-site>/my/billing/payments.

Raccolta Automatica delle Tasse

Per abilitare la Raccolta Automatica delle Tasse, spunta la casella dell’impostazione del sito discourse_subscriptions_enable_automatic_tax.

Se lo abiliti, ma non hai configurato correttamente la tua istanza Stripe per raccogliere le tasse, gli utenti potrebbero vedere questo popup dopo aver completato il processo di checkout:

C’è questa guida per maggiori informazioni, ma non dovrebbe esserci molto da fare poiché il plugin sta ora passando il parametro automatic_tax[enabled]=true appropriato (step 5).

Assicurati di configurare anche le tue registrazioni (step 4):

Ecco un esempio di transazione del plugin Discourse Subscription in Stripe che mostra che le tasse sono state raccolte automaticamente:

Impostazioni

Nome Descrizione
discourse subscriptions enabled Abilita il plugin Discourse Subscriptions.
discourse subscriptions extra nav subscribe Mostra il pulsante di iscrizione nella navigazione principale
discourse subscriptions public key Chiave Pubblicabile Stripe
discourse subscriptions secret key Chiave Segreta Stripe
discourse subscriptions webhook secret Segreto Webhook Stripe
discourse subscriptions currency Codice Valuta Predefinito. Questo può essere sovrascritto quando si crea un piano di abbonamento.
discourse subscriptions campaign enabled Abilita un banner di campagna per promuovere il sostegno finanziario a questa community.
discourse subscriptions campaign goal L’obiettivo numerico per la tua campagna di supporto (abbonati o importo raccolto).
discourse subscriptions campaign type Seleziona il tipo di campagna da eseguire (abbonati o importo mensile raccolto).
discourse subscriptions campaign banner location Seleziona la posizione del banner di campagna (in alto o nella barra laterale).
discourse subscriptions campaign banner bg image Carica un’immagine personalizzata da usare come sfondo sul banner di campagna.
discourse subscriptions campaign banner shadow color Seleziona il colore dell’ombra del banner di campagna.
discourse subscriptions campaign show contributors Mostra le avatar degli acquisti più recenti di prodotti di abbonamento.
discourse subscriptions campaign product L’ID prodotto Stripe da inviare ai sostenitori quando fanno clic sul pulsante nella campagna. Se questa impostazione è vuota, i sostenitori verranno reindirizzati alla pagina principale dei prodotti.
discourse subscriptions campaign grant Concede all’utente un mese gratuito di abbonamenti
discourse subscriptions pricing table id L’ID della tabella dei prezzi Stripe dal codice di incorporamento
discourse subscriptions pricing table enabled Abilita l’uso della tabella dei prezzi Stripe e sostituisce la pagina di iscrizione esistente
discourse_subscriptions_enable_automatic_tax Attiva se le tasse di vendita verranno raccolte. Richiede alcune configurazioni in Stripe.
discourse_subscriptions_enable_verbose_logging Abilita un logging più dettagliato per aiutare nel debug. Per favore non lasciare abilitato permanentemente in produzione.

:discourse2: Hosted by us? Questo plugin è disponibile sui nostri piani di hosting Pro, Business ed Enterprise Subscriptions | Discourse - Civilized Discussion

139 Mi Piace
Steady plugin for community funding
ProCourse Memberships :money_with_wings:
Group membership subscriptions with profit split
Email drip campaign
How to give unpaid users limited access without making Discourse private?
Super simple Discourse-Wordpress-membership integration
Discourse for Membership Association Members?
Please suggest a good Discourse Plugin for Membership that supports Indian Payment Gateway
Allow users to donate to pay hosting fees for a site
Login required after some days of free access
User can't repurchase a subscription product after canceling
User Card Directory
Subscription Access To Discourse
Multiple paywalls with common communication hub
Discourse Subscriptions + btcpayserver
Do I need Wordpress? Or Discourse can be my solution to ALL?
Send an invite to a user but complete their profile programmatically
Discourse subscriptions - changing price during recurring subscription
Any good Memberpress alternatives for wordpress?
Add user to group after purchase
How to move Topics in Category into their own Pinned Topic inside new Categories?
Discourse vs Skool
Subscription Access To Discourse
Tax implication of funding a forum
Discourse Unlock
Tick badge for username?
Subscription update problem
Setting up a subscription group
How would I install a cryptocurrency paywall?
Charging a membership fee
Discourse Subscriptions with Thrive Cart
Admin creating subscription for user
Plugin for charity donations?
Allow subscription of predetermined length
Link Sign Up to Subscriptions Plugin
User monetization with group access?
Discourse Category Lockdown
Allow option to open Stripe payment website
Is it possible to use the subscription plugin to limit creating topics in a category to subscribers?
Best approach to a landing page/payment front end
Managing consumable AI costs
Allow multiple ‘new topic’ drafts
Stripe iframe causes a blank page on my print layout
No 'deleted' event in Stripe?
Tell us how you manage subscriptions on Discourse
Addding a paid group who can reply to topics but not create them
Integration with WP membership Pro
Alternative sign up pathways
Control Category Visibility and Access by User Levels
Tighter integration of account-creation and subscriptions?
Does the Subscriptions plugin work with "one-off" payment pricing tables?
Subscriber group automation (Remove and Add users to specific group with subscription)
"Support Us" Banner Not Updating
Tip or Pay Button - for user post/content, does it exist already?
May I or can I monetize my forum?
May I or can I monetize my forum?
Bundling more popular plugins with Discourse core
Guest Gate Theme Component
Error loading route Caused by plugin 'discourse-subscriptions'
Embed a list of Discourse topics onto an external site
Blank page when resuming discourse app
Why doesn't Discourse hosting include the Subscriptions plugin on the Starter plan?
Hosting questions
Discourse Category Lockdown
Rebuild fails when these plugins are present
Changing excerpt length
Installing discourse for free?
Options to manage payments for paid Discourse communities
Using a plug-in to monetize my Discourse
ProCourse Memberships :money_with_wings:
UX: Add metadata to subscription page to improve SEO and link UI design
A feature request related to this plugin. Pointed questions or rewarded questions
Plugin to use Discourse for classified ads or as a job board?
Subscription Plugin not working (Error)
How to set message limits for user groups?
API POST for New User
ProCourse Memberships :money_with_wings:
Steady plugin for community funding
New customer setup
Making group joins automatic to an external pricing plan
Platform integration - videos
Any way to accept paypal or stripe payment at signup?
Looking for feedback on Discourse Subscriptons
WooCommerce Discourse Website newbie help
Switching to Discourse Subscriptions from WordPress Subscriptions
Integration with Wix.com membership to only let the paid member can access to Discourse
2020: The Year in Review
Managing Subscriptions through Wordpress (Ultimate Member + Paid Memberships Pro)
How does uninstalling the Subscriptions plugin affect Stripe billing?
Memberful opinions?
Is there an E-commerce plugin for Discourse?
Memberful opinions?
Prefill custom html with user's email address?
Can't make the subscription plugin work
How to charge members for my Discourse website?
Pay or Play usage?
Latest topics on homepage with only members to read in detail?
Banner text customization for Subscriptions plugin
Subscriptions: Change User's Plan
Donation Bar for House Ad
Can I use the Subscriptions plugin on my own server?
Limiting Subscription Length
Discourse Subscriptions - use API to find out product, plan and renewal date
Discourse Subscriptions - user not removed from group when subscription cancelled
Discourse Subscriptions - user not removed from group when subscription cancelled

5 post sono stati spostati in un nuovo argomento: Esiste un oggetto simile in modalità di test - Errore

L’impostazione di Sidebar sembra non fare nulla (ultima versione di Discourse aeb3d717dc, ultimo plugin cc43d32a).

1 Mi Piace

Ricevo anche questo messaggio di log:

Avviso di deprecazione: il nome dell'icona "donate" è stato aggiornato a "circle-dollar-to-slot". Si prega di utilizzare il nuovo nome nel codice. I vecchi nomi verranno rimossi nel Q2 2025. [deprecation id: discourse.fontawesome-6-upgrade] [info: https://meta.discourse.org/t/325349]

MODIFICA: Ho creato una PR per questo

3 Mi Piace

2 post sono stati uniti a un argomento esistente: "Support Us" Banner Not Updating

Hmmm… localmente mi appare nella barra laterale quando la cambio.

Se lo hai nella barra laterale, aggiungiamo questa classe CSS, puoi ispezionare la tua pagina e cercare subscription-campain-sidebar

Ti rimane solo in alto?

Capisco. Avevo la pagina Categoria come predefinita. Lì non viene visualizzato, ovviamente. Viene visualizzato nell’elenco Più recenti. Quindi funziona bene. Grazie!

3 Mi Piace

Dovrebbe davvero apparire sulla pagina delle categorie (o altre pagine predefinite), non credi?

1 Mi Piace

A causa delle restrizioni nella Cina continentale, è difficile per Stripe superare la revisione. Potresti considerare l’integrazione delle interfacce di Alipay o WeChat Pay?

2 Mi Piace

Domande simili in passato hanno avuto una risposta come “la cosa da fare sarebbe creare un plugin per Alipay o WeChat Pay”. discourse.org guadagna da coloro che pagano per l’hosting e non credo che abbiano molti clienti Enterprise che desiderano Alipay o WeChat Pay, quindi dovrai chiedere in Marketplace o svilupparlo tu stesso. Forse potresti interessare Alipay o WeChat Pay a finanziare lo sviluppo.

3 Mi Piace

{“content”:“[quote="Discourse, post:1, topic:140818"]\n### Configurazione\n\n1. Installa e abilita il plugin\n2. Configura il Gateway di Pagamento (Stripe)\n3. Configura Webhook & Event in Stripe\n4. Aggiungi le tue chiavi Stripe (pubblica, segreta, webhook secret) sotto Admin > Plugins > Installed > Subscriptions > Settings /admin/site_settings/category/discourse_subscriptions?filter=plugin%3Adiscourse-subscriptions\n5. Crea un gruppo per i tuoi abbonati a cui possono unirsi tramite acquisto\n6. Crea un prodotto e un piano sotto Admin > Plugins > Subscriptions\n7. Guadagna!\n[/quote]\nSono arrivato a completare 1 - 5, ma credo di essere stupido o cieco. Non riesco a trovare l’interfaccia per configurare prodotti e piani sul mio server.\n\nUgh, lasciamo perdere… l’ho trovata. L’ultimo pezzo del puzzle è che non capisco questa parte:\n\n28 * Per aggiungere una descrizione al tuo prodotto, aggiungi un campo metadata chiamato “description” e usalo al suo posto. Puoi usare Markdown.”}

Credo di aver impostato tutto correttamente. Se controllo l’impostazione per:\n~~Il pulsante di iscrizione mostrerà la tabella dei prezzi incorporata e verrà utilizzato Stripe Checkout.\nAllora gli acquisti funzionano correttamente, tuttavia, se deseleziono questa opzione e utilizzo l’interfaccia integrata, ottengo caselle di errore come:\n\n\u003eEra previsto un metodo di pagamento di tipo card, ma questo PaymentIntent non ha un metodo di pagamento e nessuno è stato fornito. Riprova fornendo i parametri payment_method o payment_method_data.\n\no~~\n\n\u003eQuesto cliente non ha una fonte di pagamento o un metodo di pagamento predefinito associato. Si prega di considerare l’aggiunta di un metodo di pagamento predefinito. Per ulteriori informazioni, visitare https://stripe.com/docs/billing/subscriptions/payment-methods-setting#payment-method-priority.\n\nL’errore principale è su un piano non ricorrente, quello in basso è un piano ricorrente.\nQualche indizio su come risolverlo? Preferisco l’interfaccia integrata.\n\nHo risolto questo problema, sembra che mentre stavo giocando con gli utenti nell’ambiente di test, a Stripe non sia piaciuto che io abbia utilizzato lo stesso utente Discourse con diversi "utenti di abbonamento".\n\nInoltre, l’OP dovrebbe chiarire che \n\n\u003ePer aggiungere una descrizione al tuo prodotto, aggiungi un campo di metadati chiamato “description” e usalo invece. Puoi usare Markdown.\n\nVai alla dashboard di Stripe, fai clic su Catalogo prodotti, fai clic su un prodotto, quindi fai clic su un prezzo. È qui che troverai i campi di metadati a cui puoi aggiungere una descrizione.\n\nTuttavia, non mi è sembrato funzionare. Ho aggiunto una descrizione di test e non è cambiato nulla sia utilizzando la tabella Stripe che il layout integrato.

6 messaggi sono stati uniti in un argomento esistente: Aggiungi diversi metodi di pagamento all’abbonamento Discourse

Un post è stato unito a un argomento esistente: Aggiungere diversi metodi di pagamento all’abbonamento Discourse

Quando provo a creare un prodotto, ricevo un errore “500”. Sto configurando questo su un setup di test. Cosa posso controllare per scoprire perché si verifica l’errore del server?

Cosa simile sui coupon

È stata creata una voce nello stesso momento in {YOURFORUM}/logs ?

2 Mi Piace

Oh wow.. non sapevo che esistesse una pagina del genere. Mostra una chiave API non valida. Ho inserito della spazzatura per la chiave segreta per andare avanti e configurare i pacchetti di abbonamento per ora e tornare alle chiavi più tardi quando sarò pronto per testare.

1 Mi Piace

Sono stato in grado di configurare il plugin senza problemi, ma poi mi sono reso conto che questo plugin consente solo abbonamenti ricorrenti. Non abbonamenti una tantum che scadono dopo il periodo definito.

Ad esempio, addebita X importo per 30 giorni. Dopo 30 giorni l’utente viene rimosso dal gruppo premium. Possono acquistarlo di nuovo se vogliono. Di solito offro abbonamenti di 1 mese, 3 mesi, 12 mesi.

Stripe richiede che mi registri come un’azienda per poter supportare i pagamenti ricorrenti. Sto accettando pagamenti una tantum su XenForo e la funzionalità nativa di XenForo gestisce la scadenza dell’abbonamento e la rimozione dall’appartenenza al gruppo.

Questo distrugge completamente il mio piano di passare a Discourse entro un mese. :cry:

Ho una soluzione. Posso aiutarti a creare un’azione di GitHub che estrarrà dati da Data Explorer, includendo il nome utente e l’ID del gruppo da cui rimuoverli, e poi cambierà il loro gruppo di conseguenza.

Lo sto facendo per un cliente che si sta spostando su Discourse e ha un campo personalizzato con date al suo interno. Quindi dobbiamo spostare gli utenti in un gruppo “in scadenza” per dare loro un banner e poi in un altro per rimuoverli dal gruppo a pagamento quando il tempo scade.

Se hai un budget, puoi contattarmi o chiedere su Marketplace. Sto pianificando un post sul blog a riguardo con un esempio di uso generale, se mai avrò una pausa.

6 Mi Piace

Ciao, le sottoscrizioni hanno funzionato bene fino al momento in cui è arrivato il callback da Stripe. Sto usando la tabella dei prezzi di Stripe.

Posso vedere che l’abbonamento è stato registrato correttamente nella pagina admin/plugins/discourse-subscriptions/subscriptions.

Tuttavia, l’utente non è stato spostato nel gruppo utente richiesto.

Ho configurato il prodotto con lo stesso nome esatto del prodotto su Stripe e ho anche creato un piano tariffario con il gruppo selezionato. Il prezzo che ho impostato a zero nel piano tariffario poiché presumo che per la configurazione della tabella dei prezzi di Stripe sia irrilevante.

Cosa mi sto perdendo?