Yes, this is possible. You would need to hook show_user_profile
– from /wp-admin/user-edit.php
:
if ( IS_PROFILE_PAGE ) {
/**
* Fires after the 'About Yourself' settings table on the 'Your Profile' editing screen.
*
* The action only fires if the current user is editing their own profile.
*
* @since 2.0.0
*
* @param WP_User $profileuser The current WP_User object.
*/
do_action( 'show_user_profile', $profileuser );
} else {
// Snip...
This will allow you to display your upload form. Then, you need to hook into personal_options_update
to update the user’s profile with the data:
if ( IS_PROFILE_PAGE ) {
/**
* Fires before the page loads on the 'Your Profile' editing screen.
*
* The action only fires if the current user is editing their own profile.
*
* @since 2.0.0
*
* @param int $user_id The user ID.
*/
do_action( 'personal_options_update', $user_id );
} else {
// Snip...
Finally, once you have that all working, you can display the information on your users’ profile pages.
There may also be plugins to do the same thing, but I don’t think it would be too much to roll your own.