Il mio sito utilizza DiscourseConnect Provider, quindi WordPress gestisce gli accessi a Discourse.
Quando un utente si registra in WordPress, vorrei che venisse creato immediatamente un utente Discourse per lui e che gli venisse inviata l’email di attivazione di Discourse. Ma non sembra succedere.
Ho controllato l’opzione “Sync user data” nelle impostazioni di WordPress.
Sembra che la descrizione dica che creerà un utente Discourse quando accederanno a WordPress. Ma non vedo che succeda. L’utente Discourse non viene creato finché non visitano il sito Discourse.
La mia integrazione non funziona correttamente? O sto fraintendendo questa descrizione?
Ora ho capito. Sta creando un nuovo utente Discourse quando effettuano il “login” su WordPress. Non sta creando un nuovo utente quando si “registrano” su WordPress. I nostri utenti possono registrarsi da soli e al momento della registrazione vengono immediatamente considerati loggati. Quindi, a quel punto, sono loggati ma non hanno un utente Discourse.
Se escono da WP ed effettuano nuovamente il login su WP, viene creato un utente Discourse. L’ho appena verificato.
Non richiediamo la verifica delle email in WordPress perché è un sito WooCommerce e li registra automaticamente se effettuano un acquisto mentre non sono loggati. La prima volta che visitano Discourse dopo essere stati registrati, ricevono l’email di verifica dell’indirizzo da Discourse.
Il problema riguarda gli utenti che entrambe le cose:
Si registrano su WP ma non escono e rientrano
Non visitano mai Discourse (che è il nostro sito di supporto per il sito e-commerce)
WordPress/WooCommerce tratta l’autostrada come un login: vengono considerati loggati immediatamente dopo la registrazione. C’è un modo per fare in modo che un utente Discourse venga creato quando si autostrano e non solo quando escono e rientrano?
Ehi Ryan, hai ragione, il plugin crea un utente dopo l’accesso. Nello specifico, il plugin utilizza l’hook wp_login. Esiste anche un hook user_register in WordPress, tuttavia il motivo per cui il plugin non lo utilizza è che questo si attiva immediatamente dopo che un record viene inserito nel database di WordPress, indipendentemente dal fatto che i loro dettagli (in particolare la loro email) siano verificati.
Per essere un po’ sfacciato, penso che la domanda qui potrebbe essere perché WooCommerce non attiva l’hook wp_login se è così Ma, più utilmente, c’è probabilmente qualche altro hook o filtro che WooCommerce attiva immediatamente dopo la registrazione e l’accesso, se è effettivamente quello che sta facendo.
Il motivo per cui non abbiamo ancora integrato questo nel plugin è che, come potresti vedere dal tuo caso, ci sono molti modi diversi in cui gli utenti possono essere creati/registrati/effettuare l’accesso in WordPress.
Ma vediamo se riusciamo a far funzionare il tuo caso specifico. Innanzitutto, dobbiamo trovare un hook che si attivi immediatamente dopo che la tua registrazione/accesso automatico sta avvenendo. Puoi confermare esattamente come hai impostato quello? Cioè, esattamente quale flusso stai utilizzando. Più specifico è, meglio è, ad esempio, qualsiasi documentazione che hai utilizzato.
Sospetto che WooCommerce sia la causa della confusione. Sembra che l’accesso automatico dopo la registrazione sia una funzionalità di WooCommerce, non di WordPress. E intenzionalmente non attivano le azioni di accesso.
Posso cercare un hook WooCommerce appropriato da usare per questo. Esiste una funzione di WP Discourse che posso chiamare o un hook che posso attivare per creare l’utente Discourse se trovo l’hook WooCommerce giusto?