3

So I understand that I can user current_user_can to check the role of the current logged in user. But what I would like to do is show these different fields to the site Admin.

So for example the contributor role may have different custom fields than the subscriber. Each role would see their relative fields but the Admin would see a whole list of all fields in a contributor profile page and subscriber profile page.

Is there a way to allow the admin to only see certain fields of a user profile page?

I hope this makes sense to you out there!

Thanks in advance.

1 Answer 1

5

I'll post whole code which have to be in functions.php it's legit WP valid code, how it should be done :) This should work, of course you have to put your role name in switch.

UPDATED FOR PERFORMANCE:

add_action( 'show_user_profile', 'user_fields_for_admin', 10);

add_action( 'edit_user_profile', 'user_fields_for_admin', 10);

function user_fields_for_admin( $user ){

 switch ($user->roles[0]) {
  case 'SOME ROLE':
    echo '<b>This is the role specific fields</b>';
    echo 'fields....';
    break;
  case 'SOME ANOTHER ROLE':
    echo '<b>This is the role specific fields</b>';
    echo 'fields....';
    break;

 }

 } 
5
  • I have custom roles and it does not seem to work. Any suggestions?
    – Fraggy
    May 18, 2012 at 9:23
  • Sorry, yes this does work but you must put the roles in lowercase. Thanks!
    – Fraggy
    May 18, 2012 at 9:30
  • 1
    you're welcome :) And yes roles have to be the same as they are registered. You can lower the case of get_user_role return value, so you will always know that when you will use get_user_role you'll get lower case string, so you can always use lower case in comparing :)
    – Tommixoft
    May 18, 2012 at 9:38
  • PS> I edited the code to be more speedy and shorter, without using any other function to get user role, this will improve performance a bit :)
    – Tommixoft
    May 18, 2012 at 9:43
  • I have a problem with changing roles now. If I have fields 1, 2, 3 in admin role and 1, 2 in contrib, when I save I lose the data in field 3 if I then again change back to admin.
    – Fraggy
    May 19, 2012 at 16:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.