Dezactivează panoul wp-admin pentru abonați
29 mar. 2013, 13:08:24
Vizualizări: 14.5K
Voturi: 6
Nu doresc ca utilizatorii (cu rolul de abonat) să se poată autentifica prin wp-admin.
Cum ați sugera să implementez acest lucru?

Prakash Raman
609
Toate răspunsurile la întrebare
1
3
Puteți elimina capabilitatea Read
. Acest lucru va preveni orice acces la wp-admin.
function remove_read_wpse_93843(){
$role = get_role( 'subscriber' );
$role->remove_cap( 'read' );
}
add_action( 'admin_init', 'remove_read_wpse_93843' );
Consultați nota din Codex despre necesitatea de a rula acest cod o singură dată.
Apoi trebuie să ascundeți bara de administrare.
function hide_admin_wpse_93843() {
if (current_user_can('subscriber')) {
add_filter('show_admin_bar','__return_false');
}
}
add_action('wp_head','hide_admin_wpse_93843');
Și probabil veți dori să redirecționați abonații la logare:
function redirect_sub_to_home_wpse_93843( $redirect_to, $request, $user ) {
if ( isset($user->roles) && is_array( $user->roles ) ) {
if ( in_array( 'subscriber', $user->roles ) ) {
return home_url( );
}
}
return $redirect_to;
}
add_filter( 'login_redirect', 'redirect_sub_to_home_wpse_93843', 10, 3 );
Orice altă încercare de accesare a wp-admin
va rezulta în ecranul aproape alb cu mesajul "Nu aveți permisiuni suficiente...".
Aceasta este o soluție minimalistă, dar vă va ajuta să atingeți scopul dorit.

s_ha_dum
65.5K
29 mar. 2013 16:11:12
Comentarii
remove_cap()
funcționează diferit în zilele noastre. Refactorizează codul tău după unul dintre exemplele de pe această pagină.

22 mar. 2018 10:44:12
Întrebări similare
4
răspunsuri
1
răspunsuri