Anpassen des Admin-Benutzerbildschirms basierend auf der Rolle

Ich habe die Rolle “Kunde” hinzugefügt und arbeite daran, den Benutzerbildschirm für diese Rolle anzupassen. Ich möchte Spalten basierend auf dieser bestimmten Rolle anpassen.

Hinweis:

Schauen Sie sich zum Beispiel den Screenshot an. Wie würde ich den Verweis auf die Posts-Spalte nur für die Kundenrolle entfernen?

Solutions Collecting From Web of "Anpassen des Admin-Benutzerbildschirms basierend auf der Rolle"

Spalten verwalten

Es ist ziemlich einfach, den manage_{post-type-name}_columns : Einfach pro $capability wechseln und das, was Sie nicht benötigen, im $post_columns Array $post_columns .

 function wpse19435_manage_columns( $posts_columns ) { // First role: add a column - take a look at the second function if ( current_user_can( $capability_admin ) ) { $posts_columns['some_column_name'] = _x( 'Whatever', 'column name' ); } // second role: remove a column elseif ( current_user_can( $capability_other_role ) ) { unset( $posts_columns['comments'] ); } // default else { // do stuff for all other roles } return $posts_columns; } add_filter( 'manage_{post-type-name}_columns', 'wpse19435_manage_columns' ); 

Fügen Sie eine Spalte hinzu

 function wpse19435_manage_single_column( $column_name, $id ) { switch( $column_name ) { case 'some_column_name' : // do stuff break; default : // do stuff break; } } add_action('manage_{post-type-name}_custom_column', 'wpse19435_manage_single_column', 10, 2); 

Danke an Mike23 für den Tipp. Hier ist der Code, mit dem ich eine Spalte nur der Rolle “customer” hinzufüge:

 if( $_GET['role'] == "customer" ) { add_filter('manage_users_columns', 'add_ecommerce_column'); add_filter('manage_users_custom_column', 'manage_ecommerce_column', 10, 3); function add_ecommerce_column($columns) { $columns['ecommerce'] = 'Ecommerce'; return $columns; } function manage_ecommerce_column($empty='', $column_name, $id) { if( $column_name == 'ecommerce' ) { return $column_name.$id; } } } 

Irgendwelche Ideen oder Verbesserungsvorschläge sind sehr willkommen.

Sehen Sie sich current_user_can an . Damit können Sie Ihren Code nach Rollen filtern und dann alles tun, um die Oberfläche anzupassen.

Schnell und schmutzig, mit CSS. Setzen Sie dies in Ihre functionen.php:

 function add_custom_admin_styles() { /* Customers */ if(current_user_can('customer')){ echo ' '; } } add_action('admin_head', 'add_custom_admin_styles');