Создаете свое поле и вешаете его на хуки, например, функцией my_mega_field
add_action( 'show_user_profile', 'my_mega_field' );
add_action( 'edit_user_profile', 'my_mega_field' );
function my_mega_field( $user )
{
?>
<table class="form-table">
<tr>
<th><label for="mego_pole">Mego Pole</label></th>
<td><input type="text" name="mego_pole" value="<?php echo esc_attr(get_the_author_meta( 'mego_pole', $user->ID )); ?>" class="regular-text" /></td>
</tr>
</table>
<?php
}
После этого создаете таблицу в БД, где будете хранить историю, а в функции сохранения значения своих полей добавляете запись в эту таблицу предыдущего значения (save_pole) и опять вешаете хуки, но уже на сохранение профиля:
add_action( 'personal_options_update', 'my_mega_save_function_with_history' );
add_action( 'edit_user_profile_update', 'my_mega_save_function_with_history' );
function my_mega_save_function_with_history( $user_id )
{
save_old_pole( get_the_author_meta( 'mego_pole', $user->ID ) );
update_user_meta( $user_id,'mego_pole', sanitize_text_field( $_POST['mego_pole'] ) );
}