Hide user fields based off capability

This filter needs to return something. Try this function modify_contact_methods($profile_fields) { if(current_user_can(‘edit_users’)) { // Field addition and removal will be done here // Add new fields $profile_fields[‘company_name’] = ‘Company Name’; $profile_fields[‘company_id’] = ‘Company ID’; } return $profile_fields; } add_filter(‘user_contactmethods’, ‘modify_contact_methods’);

Access to option page by role/capability

You should be able to do this via the option_page_capability_{$option_page} hook – like: function wpse151616_grant_access_to_options_page_for editors() { return ‘edit_posts’; } add_filter( ‘option_page_capability_rooster’, ‘wpse151616_grant_access_to_options_page_for editors’ ); For possible return values take a look at Roles and Capabilities. The variable part – {$option_page} – of the hook name is substituted by the menu slug – $menu_slug – … Read more

Display based on specific user

Have you considered using the get_the_author_meta() function? It would look something like this: if (get_the_author_meta(‘ID’) == ID_YOU_ARE_TESTING_FOR) { // display text } This would need to be used within the Loop.