@nono – Your question actually helped me track down an item in need of correction…
In the registration function, when the filter was added to allow filtering the $fields values prior to finalizing registration, there were two elements that were missed – after the values are added with wp_insert_user and the usermeta are added, then the IP and the URL they registered on are added. Those two update_user_meta calls did not use the value from the $fields array, which is why you weren’t getting an updated value.
I have an update that should be coming out tonight or tomorrow. But in the meantime, if you change line 197 in wp-members-register.php from this:
update_user_meta( $fields['ID'], 'wpmem_reg_ip', $_SERVER['REMOTE_ADDR'] );
to this:
update_user_meta( $fields['ID'], 'wpmem_reg_ip', $fields['wpmem_reg_ip'] );
then you should be fine.
You should also change line 200 from:
update_user_meta( $fields['ID'], 'wpmem_reg_url', $_REQUEST['redirect_to'] );
to:
update_user_meta( $fields['ID'], 'wpmem_reg_url', $fields['wpmem_reg_url'] );
This should correct any issues with the email notification as well, as the email process comes after finalizing registration, so the values would already be filtered by that point.