I like the core ability for users to update their default "Email" field.
For example username1 can edit their own profile and change their "Email" field from firstname.lastname@example.org to email@example.com and click save.
After update, I like that an email that is sent by wordpress core to firstname.lastname@example.org notifying that the change happened in the database. This email is a courtesy of core's "send_email_change_email" function, and i have not tampered with it.
However, I wish that the database update from email@example.com to firstname.lastname@example.org would not happen until a link is clicked in the email that is sent to email@example.com (e.g. the send_email_change_email). In other words, I don't like that username1 has the potential to mistype their desired new email address. I want the additional security layer of requiring firstname.lastname@example.org to accept the change before it happens. This is a standard in some enterprise applications. The confirmation link should expire after use, and after some time.
What are some options for solving this? Thank you community!