WordPress – Permettere ad un Amministratore di modificare gli utenti in modalità Network

Se disponiamo di un sito web (WordPress) in modalità Network …e vogliamo che un amministratore di un “singolo” sito web sia in  grado di modificare/gestire (edit) i propri utenti, è necessario apportare delle modifiche “fisiche” a Wordpress.

File da modificare : wp-includes/capabilities.php
E’ necessario aggiungere una funzione a questo files, abbastanza corposa. Può essere aggiunta subito in “testa” a partire dalla riga1.
La funzione è la seguente:

function mc_admin_users_caps( $caps, $cap, $user_id, $args ){

foreach( $caps as $key => $capability ){

if( $capability != ‘do_not_allow’ )
continue;

switch( $cap ) {
case ‘edit_user’:
case ‘edit_users’:
$caps[$key] = ‘edit_users’;
break;
case ‘delete_user’:
case ‘delete_users’:
$caps[$key] = ‘delete_users’;
break;
case ‘create_users’:
$caps[$key] = $cap;
break;
}
}

return $caps;
}
add_filter( ‘map_meta_cap’, ‘mc_admin_users_caps’, 1, 4 );
remove_all_filters( ‘enable_edit_any_user_configuration’ );
add_filter( ‘enable_edit_any_user_configuration’, ‘__return_true’);

/**
* Checks that both the editing user and the user being edited are
* members of the blog and prevents the super admin being edited.
*/
function mc_edit_permission_check() {
global $current_user, $profileuser;

$screen = get_current_screen();

get_currentuserinfo();

if( ! is_super_admin( $current_user->ID ) && in_array( $screen->base, array( ‘user-edit’, ‘user-edit-network’ ) ) ) { // editing a user profile
if ( is_super_admin( $profileuser->ID ) ) { // trying to edit a superadmin while less than a superadmin
wp_die( __( ‘You do not have permission to edit this user.’ ) );
} elseif ( ! ( is_user_member_of_blog( $profileuser->ID, get_current_blog_id() ) && is_user_member_of_blog( $current_user->ID, get_current_blog_id() ) )) { // editing user and edited user aren’t members of the same blog
wp_die( __( ‘You do not have permission to edit this user.’ ) );
}
}

}
add_filter( ‘admin_head’, ‘mc_edit_permission_check’, 1, 4 );

File da modificare : wp-config.php
Aggiungere la seguente direttiva : define(‘EDIT_ANY_USER’, true );

Seguici su :

Twitter Google+ Facebook LinkedIn

Potrebbero interessarti anche:

    Per maggiori informazioni, per suggerimenti e consulenza contatta la nostra Web Agency.
    Il nostro staff di professionisti sarà lieto di fornire tutte le informazioni ed i costi riguardanti il servizio.

    WebMaster Firenze

    Oppure, se preferisci, CONTATTACI attravero il modulo presente in questa pagina:

    Il tuo nome (richiesto)

    La tua email (richiesto)

    Telefono

    Il tuo messaggio

    Dichiaro di avere inserito nel modulo di richiesta dati reali e dichiaro pertanto che tali dati corrispondono ai propri reali dati personali. Sono consapevole che è facoltà di assistenzadelPc.it perseguire nelle opportune sedi ogni violazione ed abuso.


    Acconsento al trattamento dei dati personali, ai sensi dell'art. 13 del D.lgs. n. 196/2003 [Privacy Policy]

    Fonti : WordPress Network Administrator Edit user, Allow Wordpress Network Administrator Edit user, permettere ad un amministratore di modificare utenti WordPress Network, amministratore editare utenti WordPress Network, abilitare amministratore modificare utenti WordPress modalità Network, consentire ad un amministratore di modificare utenti WordPress Network