L’ho fatto, ma quel metodo non sospende l’utente in Discourse, il che significa che continuerà a ricevere post via email e potrà interagire con il forum in questo modo.
Oh, capisco. Non vedo che il plugin abbia una funzione per sospendere l’utente (ma potrebbe essere che non sappia dove cercare). Nel peggiore dei casi, puoi aggiungere una chiamata API all’hook che viene attivato quando l’abbonamento fallisce e far sì che sospenda l’utente. Puoi trovarlo utilizzando Reverse engineer the Discourse API
Sospendere e riattivare gli utenti sarà la parte più semplice. Il trucco sta nel capire a quali azioni di WooCommerce agganciarsi.
Sembra che l’azione woocommerce_subscription_status_updated possa funzionare. Questo hook passa tre parametri: $subscription, $new_status, $old_status. I parametri relativi allo stato sono stringhe, quindi il loro valore dovrebbe essere abbastanza chiaro. Il parametro $subscription è un oggetto WC_Subscription. Presumo che contenga dettagli che permettono di trovare l’ID utente associato all’abbonamento. Dovrei però darci un’occhiata per confermarlo.
Parametri:$subscription Un oggetto WC_Subscription che rappresenta l’abbonamento il cui stato è appena cambiato.
Descrizione: Questa azione viene attivata dopo che l’abbonamento specificato con $subscription ha cambiato stato in attivo. Lo stato dell’abbonamento potrebbe essere passato da in attesa ad attivo, da in sospeso ad attivo o da un altro stato personalizzato ad attivo.
Parametri:$subscription Un oggetto WC_Subscription che rappresenta l’abbonamento il cui stato è appena cambiato.
Descrizione: Questa azione viene attivata dopo che l’abbonamento specificato con $subscription ha cambiato stato.
Lo stato dell’abbonamento potrebbe essere passato da in attesa a cancellato, da in sospeso a cancellato, da in attesa di cancellazione a cancellato o da un altro stato personalizzato a cancellato.
Azione:'woocommerce_subscription_status_expired'
Parametri:$subscription Un oggetto WC_Subscription che rappresenta l’abbonamento il cui stato è appena cambiato.
Descrizione: Viene attivata quando un abbonamento raggiunge la fine del suo periodo, se è stata impostata una durata sul prodotto abbonamento al momento dell’acquisto o se è stata impostata una data di fine sull’abbonamento in altro modo.