Come modificare il ruolo di un utente?
9 risposta
- voti
-
- 2010-12-01
Consulta la classe WP_User ,puoi utilizzarlaper aggiungeree rimuovere ruoliperun utente.
MODIFICA: Inizialmente avrei dovutofornirepiùinformazioni con questa risposta,quindi aggiungo ulterioriinformazioni di seguito.
Più specificamente,il ruolo di un utentepuòessereimpostato creando un'istanza della classe WP_usere chiamandoi metodi
add_role()
oremove_role()
.Esempio
Modifica un ruolo diiscrittiin editor
// NOTE: Of course change 3 to the appropriate user ID $u = new WP_User( 3 ); // Remove role $u->remove_role( 'subscriber' ); // Add role $u->add_role( 'editor' );
Si spera che siapiù utile dellamia rispostainiziale,chenoneranecessariamente altrettanto utile.
See the WP_User class, you can use this to add and remove roles for a user.
EDIT: I really should have provided more information with this answer initially, so i'm adding more information below.
More specifically, a user's role can be set by creating an instance of the WP_user class, and calling the
add_role()
orremove_role()
methods.Example
Change a subscribers role to editor
// NOTE: Of course change 3 to the appropriate user ID $u = new WP_User( 3 ); // Remove role $u->remove_role( 'subscriber' ); // Add role $u->add_role( 'editor' );
Hopefully that's more helpful than my initial response, which wasn't necessarily as helpful.
-
`remove_role ()`e `add_rule ()` salvanoi datinel database?`remove_role()` and `add_rule()` save data to the database?
- 0
- 2019-10-29
- b_dubb
-
Sì @b_dubb,entrambii metodi vengono salvatiin dbtramiteilmetodo `update_user_meta ()` [qui] (https://developer.wordpress.org/reference/functions/update_user_meta/).Vedere `add_role ()` [qui] (https://developer.wordpress.org/reference/classes/wp_user/add_role/)e `remove_role ()` [qui] (https://developer.wordpress.org/reference/classes/wp_user/remove_role/)Yes @b_dubb, both methods save to db through the `update_user_meta()` method [here](https://developer.wordpress.org/reference/functions/update_user_meta/). See `add_role()` [here](https://developer.wordpress.org/reference/classes/wp_user/add_role/) and `remove_role()` [here](https://developer.wordpress.org/reference/classes/wp_user/remove_role/)
- 1
- 2020-01-07
- Gonçalo Figueiredo
-
È abbastanza utile.Grazie.That's pretty handy. Thanks.
- 0
- 2020-01-07
- b_dubb
-
`set_role ()` rimuoveràtuttii ruolie aggiungeràil ruolo specificatoin un comando`set_role()` will remove all roles and add the specified role in one command
- 0
- 2020-04-18
- G-J
-
- 2015-06-14
Tienipresente cheesiste unmodopiù sempliceper cambiareil ruolo utente che èparticolarmente utile quandonon conosciil ruolo attuale dell'utente:
->set_role()
Esempio:
// Fetch the WP_User object of our user. $u = new WP_User( 3 ); // Replace the current role with 'editor' role $u->set_role( 'editor' );
Just note that there is a simpler way to change the user role which is especially helpful when you do not know the current role of the user:
->set_role()
Example:
// Fetch the WP_User object of our user. $u = new WP_User( 3 ); // Replace the current role with 'editor' role $u->set_role( 'editor' );
-
Ricorda che set_role rimuoverài ruoliprecedenti dell'utentee assegneràilnuovo ruolo.Remember that set_role will remove the previous roles of the user and assign the new role.
- 0
- 2016-05-03
- shasi kanth
-
Questo èperfettoperi moduli di registrazionepersonalizzati.Prima registragli utenti senza ruolie successivamente aggiungiil ruolo quando confermano l'e-mail.This is perfect for custom registration forms. First register users with no roles and after that add role when they confirm email.
- 1
- 2017-09-15
- Ivijan Stefan Stipić
-
- 2012-10-29
Perestrapolare la risposta dit31ospuoi schiaffeggiare qualcosa delgenereneltuofile difunzioni se vuoifarloprogrammaticamentein base a una condizione
$blogusers = get_users($blogID.'&role=student'); foreach ($blogusers as $user) { $thisYear = date('Y-7'); $gradYear = date(get_the_author_meta( 'graduation_year', $user->ID ).'-7'); if($gradYear < $thisYear) { $u = new WP_User( $user->ID ); // Remove role $u->remove_role( 'student' ); // Add role $u->add_role( 'adult' ); } }
To extrapolate on t31os's answer you can slap something like this in your functions file if you want to do this programmatically based on a condition
$blogusers = get_users($blogID.'&role=student'); foreach ($blogusers as $user) { $thisYear = date('Y-7'); $gradYear = date(get_the_author_meta( 'graduation_year', $user->ID ).'-7'); if($gradYear < $thisYear) { $u = new WP_User( $user->ID ); // Remove role $u->remove_role( 'student' ); // Add role $u->add_role( 'adult' ); } }
-
Penso cheiltuo utilizzo di "$blogID" sia sbagliato.[`get_users ()`] (http://codex.wordpress.org/Function_Reference/get_users) utilizzerà comunque l'IDblog correnteperimpostazionepredefinita.I think your usage of `$blogID` is wrong. [`get_users()`](http://codex.wordpress.org/Function_Reference/get_users) will use the current blog ID per default anyway.
- 0
- 2012-10-29
- fuxia
-
sì,nelmio caso lapastaproveniva solo da unesempiomultisito.Non l'ho definitoneanche qui,quindi ovviamente avrebbegenerato unerrore.yep, in my case the paste was just from a multisite example. I didn't define it here either so obviously it would throw an error.
- 0
- 2012-11-26
- Adam Munns
-
- 2015-04-16
Puoi cambiareil ruolo di qualsiasi utentemodificandoilprofilo degli utenti.Non ènecessario aggiungere altro codice quando questa opzione ègiàincorporatain WordPress.
Oppure
Èpossibile utilizzareil codicepermodificaretuttigli utenti correnti conil ruolo di abbonatoin editor:
$current_user = wp_get_current_user(); // Remove role $current_user->remove_role( 'subscriber' ); // Add role $current_user->add_role( 'editor' );
You can change the role of any user by editing the users profile. No need to add any more code when this option is already built into WordPress.
Or
You could use code to change all current users with the subscriber role to editor:
$current_user = wp_get_current_user(); // Remove role $current_user->remove_role( 'subscriber' ); // Add role $current_user->add_role( 'editor' );
-
- 2010-12-01
C'è unafunzione di WordPressper questo!
Penso che siameglio utilizzare lefunzioni di WordPress,see quando sono disponibili.
Puoi utilizzare lafunzione wp_insert_user () ,dove uno degli argomenti di cui avraibisognodafornire è $ userdata ['role'].In questo argomento èpossibile specificareil ruoloin cui si desideramodificare l'utente.
There's a WordPress function for that!
I think it is best to use WordPress functions, if and when they are available.
You can use the wp_insert_user() function, where one of the arguments that you will need to provide is the $userdata['role']. In this argument you can specify the role that you want to change the user into.
-
wpnon riconosce quellafunzione.Ho ricevuto unerrore di "funzionenon definita".wp doesn't recognize that function. I got an "undefined function" error.
- 0
- 2010-12-01
- Joann
-
A quantopare,wp_insert_user () sembrafareesattamente lo stesso.Quandofornisci un ID,tale ID viene aggiornato.Nessun ID aggiunge unnuovo utente.Non so ancora quale sia la differenzatra wp_update_user ()e wp_insert_user (),ancora.By the looks of it, wp_insert_user() seems to do the exact same. When you provide an ID, that ID gets updated. No ID is adding new user. Don't really know what the difference between wp_update_user() and wp_insert_user() is, yet.
- 0
- 2010-12-01
- Coen Jacobs
-
-
- 2016-11-09
Puoi utilizzare wp_update_user .Iltuo codice dovrebbeessere così:
<?php $user_id = 3; $new_role = 'editor'; $result = wp_update_user(array('ID'=>$user_id, 'role'=>$new_role)); if ( is_wp_error( $result ) ) { // There was an error, probably that user doesn't exist. } else { // Success! } ?>
You can use wp_update_user. Your code shoud be like this:
<?php $user_id = 3; $new_role = 'editor'; $result = wp_update_user(array('ID'=>$user_id, 'role'=>$new_role)); if ( is_wp_error( $result ) ) { // There was an error, probably that user doesn't exist. } else { // Success! } ?>
-
- 2017-08-07
<?php $wuser_ID = get_current_user_id(); if ($wuser_ID) { // NOTE: Of course change 3 to the appropriate user ID $u = new WP_User( $wuser_ID ); // Remove role $u->remove_role( 'subscriber' ); // Add role $u->add_role( 'contributor' ); } ?>
<?php $wuser_ID = get_current_user_id(); if ($wuser_ID) { // NOTE: Of course change 3 to the appropriate user ID $u = new WP_User( $wuser_ID ); // Remove role $u->remove_role( 'subscriber' ); // Add role $u->add_role( 'contributor' ); } ?>
-
- 2019-03-27
So che è unpostmolto vecchio,ma ho scoperto chei ruolipergli utenti sonomemorizzatinellatabella
wp_usermeta
con la chiavewp_capabilities
inmeta_key
colonna.Se vuoi cambiareil ruolo utentepuoifarlo con questa semplicefunzione.
funzione change_role ($id,$new_role) { GLOBAL $table_prefix; if (is_array ($new_role)) { $new_role_array=$new_role; }altro{ $new_role_array=array ($new_role=>true); } restituire update_user_meta ($id,$table_prefix.'capabilities ',$new_role_array); }
Esistono duemodiper utilizzare questafunzione.
Se desiderimodificareil ruoloper un singolo ruolo.
change_role (2,'editor');//editor èilnuovo ruolo
Oppure,se desideri aggiungerepiù ruoli all'utente,utilizzai ruoli come arraynel secondoparametro.
$ roles_array=array ('editor'=>true,'administrator'=>true);//array di ruoli change_role (2,$ roles_array);
Buonafortuna.
I know its a very old Post, but i have found that the roles for users are stored in
wp_usermeta
table with keywp_capabilities
inmeta_key
column.If you want to change the user role you can do it by this simple function.
function change_role($id, $new_role){ GLOBAL $table_prefix; if(is_array($new_role)){ $new_role_array = $new_role; }else{ $new_role_array = array( $new_role => true ); } return update_user_meta($id, $table_prefix.'capabilities', $new_role_array); }
There is two way to use this function.
If you want to change the role for a single role.
change_role(2, 'editor'); // editor is the new role
Or if you want to add multi roles to the user, use the roles as array in the second parameter.
$roles_array = array('editor' => true, 'administrator' => true); // roles array change_role(2, $roles_array);
Good luck.
Ho ruolipersonalizzatinellamia configurazionee voglioesserein grado di cambiare automaticamenteil ruolo di un utentetramite unafunzione.Supponiamo che l'utente A abbia un ruolo SUBSCRIBER,comeposso cambiarloin EDITOR?Quando si aggiunge un ruolo,ci limitiamo a:
Chene dici di cambiare un ruolo?C'è qualcosa come:
AGGIORNAMENTO: Penso che questofarà: