WordPress Backend ohne Dashboard für Abonnenten | Johannes Ulrich Gehrke
WordPress Backend ohne Dashboard für Abonnenten
<?php


function is_user_subscriber(){
	global $current_user;
	$is_subscriber = ( in_array( 'subscriber', $current_user->roles ) ) ? true : false;
	return $is_subscriber;
}

add_action( 'load-index.php','dashboard_redirect' );
function dashboard_redirect(){
	if( is_user_subscriber() ){
    	wp_redirect( admin_url( 'profile.php' ) );
	}
}

add_filter( 'login_redirect', 'dashboard_login_redirect' );
function dashboard_login_redirect( $url ) {
	if( is_user_subscriber() ){
		$url = wp_redirect( admin_url( 'profile.php' ) );
	}
	return $url;
}

add_action( 'admin_menu', 'remove_dashboard', 99 );
function remove_dashboard(){
	if( is_user_subscriber() ){
		remove_menu_page( 'index.php' );
	}
}
Erkennen ob der User Abonnent ist, und entsprechend Dashboard entfernen / ausblenden. ( Quelle )

WordPress Dashboard entfernen für Abonnenten / Subscriber

In einer Website mit User-Registration wird das WordPress oft nur genutzt um dem Abonnenten Zugriff auf Ihr Profil zu geben. Im WordPress-Backend wird jedoch standardmäßig das Dashboard nach dem Login aufgerufen. Das Dashboard hat jedoch keinen Mehrwert für den Subscriber und mach die Bedienung nur unnötig unübersichtlich – die meisten User sind schließlich Backends nicht gewöhnt.

Um das Dashboard für WordPress Abonnenten als zu entfernen brauchen wir folgende Funktionen:

  • Erkennen ob der User ein Abonnent bzw. Subscriber ist
  • Umleiten des User wenn er auf die wp-admin/index.php geht
  • Umleitung Anpassen für den User nach login
  • Dashboard aus dem Admin-Menü entfernen

Die Funktionen im Codeblock machen genau das. Die Erkennung ‚is_user_subscriber‘ habe ich als Vereinfachung eingebaut, dass ich nicht jedesmal den gleichen Code schreiben muss.  Insgesamt ist der Code auch für ähnliche Funktionen anpassbar, um z.b. Editors immer auf die Beitragsseite zu verweisen, wo sie Artikel der Redakteure Freischalten können.

Diese Anpassungen vom WordPress-Backend können auch interessant sein, falls man eigene Rollen für Kunden Nutzer angelegt hat. Wie das geht kann man hier nach lesen: Neue Nutzerrollen für Kunden im WordPress anlegen.