Gestiamo un’iscrizione tramite il nostro sistema Wordpress/Woocommerce. Utilizziamo Discourse su un sottodominio con SSO da un paio d’anni e ha funzionato benissimo. Ho del codice nel mio file functions che aggiunge/rimuove l’accesso ai Gruppi quando una persona si iscrive/cancella rispettivamente.
Abbiamo aggiunto una funzionalità alla nostra iscrizione in cui le persone possono unirsi a un piccolo gruppo di 6-8 persone per chiamate Zoom settimanali.
Per gestire questo, abbiamo creato un Tipo di Post di WordPress chiamato “Cohorts” che contiene le informazioni sulle chiamate settimanali e quindi abbiamo assegnato tali Cohorts a un Utente utilizzando campi utente personalizzati.
Ecco cosa vorrei fare:
Creare un Gruppo per ciascuna delle Cohorts
Creare una Sottocategoria per ciascuna delle Cohorts a cui solo il Gruppo del punto n. 1 ha accesso.
Inserire ciascuno dei Membri nel rispettivo Gruppo, il che darà loro accesso alla loro sottocategoria per la loro Cohort.
So come fare il punto 3, ma c’è un modo per aggiungere programmaticamente Gruppi e Sottocategorie (con le impostazioni di sicurezza)?
Non riesco a trovare questa funzionalità nelle utility di WP-Discourse. Inoltre, guardando l’API, vedo dove aggiungere categorie, ma non le funzioni di sicurezza.
Sì, è possibile. Puoi effettuare qualsiasi richiesta API a Discourse da WordPress utilizzando il metodo di utilità discourse_request, ad esempio:
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$args = array(
"body" => "",
"type" => "post"
);
$response = DiscourseUtilities::discourse_request( $path, $args );
Questo formatterà correttamente la richiesta e utilizzerà la chiave API e l’utente che hai fornito nelle impostazioni di WP Discourse. Avrai bisogno di una chiave globale per le azioni a cui ti riferisci (se stai usando la stessa chiave anche per la normale funzionalità di wp discourse).
Nota che le “impostazioni di sicurezza” sono gestite tramite il parametro permissions. Devi solo fornirgli un oggetto con i nomi dei gruppi come chiavi e interi dei livelli di permesso come valori, ad esempio:
Mi dispiace Tim, sono stato via negli ultimi giorni. Sembra che il metodo discourse_request debba essere modificato per supportare questo. Farò una PR la prossima settimana e probabilmente ci vorrà un’altra settimana per l’unione.
Se lo vuoi prima, puoi usare i metodi WP sottostanti in questo modo:
Ciao @timgrahl, saresti in grado di condividere una funzione funzionante per WordPress con WooCommerce per aggiungere/rimuovere utenti ai gruppi?
Sto usando WooCommerce con gli abbonamenti e sto cercando di far funzionare questo… se l’utente WordPress ha un abbonamento WooCommerce attivo, allora l’utente verrà aggiunto al gruppo X… quando l’abbonamento viene annullato o scade, l’utente viene rimosso dal gruppo X