Added code to block everyone except Administrators from the main WordPress admin...
authorChuck Scott <cscott@gaslightmedia.com>
Fri, 9 Sep 2016 19:02:25 +0000 (15:02 -0400)
committerChuck Scott <cscott@gaslightmedia.com>
Fri, 9 Sep 2016 19:02:25 +0000 (15:02 -0400)
Redirects them to the main GLM Associate menu when they do get to the main admin Dashboard.

setup/adminHooks.php

index 2200cb2..0076fe7 100644 (file)
@@ -123,4 +123,32 @@ add_action( 'add_meta_boxes', function() {
 //}
 
 
+// If not administrator, don't show or permit access to the main dashboard
+function glmRemoveDashboard () {
+    global $current_user, $menu, $submenu;
+
+    // If user isn't an administrator
+    if (!in_array('administrator', $current_user->roles)) {
+
+        // Get rid of the main WordPress admin "Dashboard"
+        reset( $menu );
+        $page = key( $menu );
+        while( ( __( 'Dashboard' ) != $menu[$page][0] ) && next( $menu ) ) {
+            $page = key( $menu );
+        }
+        if( __( 'Dashboard' ) == $menu[$page][0] ) {
+            unset( $menu[$page] );
+        }
+        reset($menu);
+
+        // Also redirect user away from main WordPress dashboard should they get there.
+        if ( preg_match( '#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'] ) && ( 'index.php' != $menu[$page][2] ) ) {
+            wp_redirect( get_option( 'siteurl' ) . '/wp-admin/admin.php?page=glm-members-admin-menu-member');
+        }
+
+    }
+}
+add_action('admin_menu', 'glmRemoveDashboard');
+
+
 ?>