Compilare discourse_username quando non si usa DiscourseConnect

hm ok, quindi in pratica

  1. Ci sarebbe un sottoinsieme dei tuoi utenti con email diverse su WordPress e Discourse.
  2. Il tuo nome utente è garantito essere lo stesso poiché è fornito dal tuo identity provider sia per WordPress che per Discourse.

Se dovessimo disaccoppiare il webhook utente WP Discourse dalla funzionalità DiscourseConnect (possibile), la corrispondenza utente avverrebbe in base all’email, non al nome utente. La tua situazione è in qualche modo specifica della tua configurazione di identità.

Penso che questo caso sia gestito meglio tramite codice personalizzato sul tuo WordPress. Quello che vuoi è qualcosa del genere:

function update_discourse_username( $user_login, $user ) {
    update_user_meta( $user->ID, 'discourse_username', $user_login );
}
add_action( 'wp_login', 'update_discourse_username', 10, 2);

In sostanza, assegna semplicemente il campo meta discourse_username come nome utente WP dopo il login, poiché sono garantiti essere gli stessi. Nota che “user_login” è ciò che a volte viene chiamato “username” nel codice di WordPress.