Store extra user values permanently

update_user_meta will store the value permanently, as you are expecting. How ever in your case, there are multiple scenerio where you can loose those data. Thats the reason you are seeing empty result.

First check when are you running the update_user_meta. Is it on every page request. If so then $_POST['the new value'] shouldn’t be empty. If it is empty then the empty value will be updated.

so please check your time of update_user_meta execution and at that time whether $_POST['the new value'] available or not.

Additional Note: If the field is user updateable then while pringting the meta box echo the correct value. If it not printing the value then there will be empty value posting to your save funtion.

If none of the above gives you any clue. Penter code herelease post your full code.