Don't know if this is enough for you, but in WP does exists the possibility to add and manage custom profile fields, that are in the Users pages, in a very simple way.
Here is the code I use in one of my sites:
/************** User Info */
function GSN_add_custom_user_profile_fields( $user ) {
?>
<h3><?php _e('Altre Informazioni', 'GSN_textdomain'); ?></h3>
<table class="form-table">
<tr>
<th>
<label for="tessera"><?php _e('Tessera FIDAL', 'GSN_textdomain'); ?>
</label></th>
<td>
<input type="text" name="tessera" id="tessera" value="<?php echo esc_attr( get_the_author_meta( 'tessera', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e('Inserire il proprio numero tessera FIDAL: FE0.....', 'GSN_textdomain'); ?></span>
</td>
</tr>
<tr>
<th>
<label for="annonascita"><?php _e('Anno di nascita', 'GSN_textdomain'); ?>
</label></th>
<td>
<input type="text" name="annonascita" id="annonascita" value="<?php echo esc_attr( get_the_author_meta( 'annonascita', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e('Inserire il proprio anno di nascita', 'GSN_textdomain'); ?></span>
</td>
</tr>
</table>
<?php }
function GSN_save_custom_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) )
return FALSE;
update_usermeta( $user_id, 'tessera', $_POST['tessera'] );
update_usermeta( $user_id, 'annonascita', $_POST['annonascita'] );
}
add_action( 'show_user_profile', 'GSN_add_custom_user_profile_fields' );
add_action( 'edit_user_profile', 'GSN_add_custom_user_profile_fields' );
add_action( 'personal_options_update', 'GSN_save_custom_user_profile_fields' );
add_action( 'edit_user_profile_update', 'GSN_save_custom_user_profile_fields' );
/*^^^^^^^^^^^^^*/