Come impostare programmaticamente il ruolo predefinito per i nuovi utenti?

22 ott 2011, 11:22:15
Visualizzazioni: 34.6K
Voti: 15

Vorrei che i nuovi utenti del blog abbiano un ruolo personalizzato, invece che Sottoscrittore. Come posso impostarlo programmaticamente? So che può essere modificato dal backend.

0
Tutte le risposte alla domanda 4
0
18

Ciò consente ai plugin di sovrascrivere facilmente il ruolo predefinito mentre sono attivi.

// Sovrascrivi l'opzione, il ruolo seguirà!
add_filter('pre_option_default_role', function($default_role){
    // Puoi anche aggiungere condizioni qui e restituire ciò che vuoi
    return 'subscriber'; // Questo valore viene modificato
    return $default_role; // Questo mantiene il valore predefinito
});

Lo utilizzo per assicurarmi che alcuni plugin che necessitano del ruolo di subscriber lo ottengano indipendentemente dai tentativi di modifica dell'Amministratore :)

Cordiali saluti.

22 ott 2011 15:48:39
2

Quando un nuovo utente viene creato tramite la funzione wp_insert_user(), il ruolo viene impostato con il metodo set_role() della classe User e viene assegnato al ruolo predefinito degli utenti.

Il ruolo predefinito degli utenti viene recuperato dal database tramite get_option('default_role') e può essere configurato tramite la Dashboard di Amministrazione andando su Impostazioni > Generali > Ruolo predefinito per nuovi utenti.

Se hai registrato un nuovo ruolo (utilizzando add_role()), dovrebbe essere disponibile in quella sezione per poterlo selezionare.

In alternativa, per un maggiore controllo puoi agganciarti alle azioni user_register o profile_update per poi impostare il ruolo set_role in modo condizionale, o in qualsiasi altro modo preferisci.

22 ott 2011 11:34:52
Commenti

Segnalerò la tua risposta come corretta, anche se la soluzione effettiva si è rivelata essere semplice come update_option('default_role', 'custom_role_name') all'attivazione del plugin.

jayarjo jayarjo
22 ott 2011 12:05:31

Felice di essere stato d'aiuto.

soulseekah soulseekah
22 ott 2011 12:09:53
1

Dopo aver creato l'utente utilizzando

$user_id = wp_create_user( $user_login, $pas1, $user_email );

Crea l'oggetto utente

$user = new WP_User($user_id);

Quindi imposta il ruolo

$user->set_role('editor');

Puoi sostituire il ruolo 'editor' con uno dei seguenti:

  • Amministratore

  • Editore

  • Autore

  • Collaboratore

  • Sottoscrittore

22 ott 2011 11:27:25
Commenti

assicurati che il ruolo sia in minuscolo, autore, editore, amministratore, collaboratore, sottoscrittore

Tamik Soziev Tamik Soziev
20 gen 2021 05:17:35
2

Inseriscilo nel plugin o nel functions.php del tuo tema

//Rendi 'Client' un ruolo predefinito

update_option('default_role','client');
16 set 2015 22:41:48
Commenti

Perché?? Non ha alcun senso inserire il tuo codice da qualche parte senza sapere cosa fa o come funziona

Pieter Goosen Pieter Goosen
16 set 2015 22:58:14

Questa non è una buona soluzione. Eseguirà la query di aggiornamento se non la inserisci in un'azione specifica per ogni richiesta.

Maciej Paprocki Maciej Paprocki
2 apr 2018 22:33:59