Answers.Body: <blockquote>
    <p>When I use my email field to attempt an email address change, I get a verification email generated by Craft sent to the new email address, but the email change is not reflected in either the CP or on the front-end when I refresh the form.</p>
  </blockquote>
  
  <p>The user's email address won't actually update until you click the link in the verification email the user receives.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-05T19:44:27.040Z
Answers.Text: Ah. Ok. I'll be more patient with my process and see if that solves it for me ;-)
Answers.UserDisplayName: Adam Snetman
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-05T19:20:15.467Z
Answers.LastActivityDate: 2015-05-05T19:20:15.467Z
Answers.UserDisplayName: Brad Bell
Body: <p>I've got a front-end user profile form working on a client site I'm developing, but the one thing that I'm having trouble with is allowing users to change the email address associated with their account via this form.</p>
  
  <p>When I use my email field to attempt an email address change, I get a verification email generated by Craft sent to the new email address, but the email change is not reflected in either the CP or on the front-end when I refresh the form.</p>
  
  <p>I've pasted an abbreviated version of my form below with some irrelevant fields omitted.</p>
  
  <p>What am I missing?</p>
  
  <pre class="lang-html prettyprint-override"><code> &lt;form method="post" accept-charset="UTF-8" enctype="multipart/form-data"&gt;
  
      {{ getCsrfInput() }}
      &lt;input type="hidden" name="action" value="users/saveUser"&gt;
      &lt;input type="hidden" name="redirect" value="account/my-account?m=updated"&gt;
      &lt;input type="hidden" name="userId" value="{{ currentUser.id }}"&gt;
  
      {% macro errorList(errors) %}
          {% if errors %}
              {% for error in errors %}
                  &lt;p class="error-block"&gt;{{ error }}&lt;/p&gt;
              {% endfor %}
          {% endif %}
      {% endmacro %}
  
      {% from _self import errorList %}
  
      &lt;fieldset&gt;
  
          &lt;label for="firstName"&gt;Username&lt;/label&gt;
          &lt;input id="username" type="text" name="username" value="{{ currentUser.username}}"&gt;
          {% if account is defined %}
              {{ errorList(account.getErrors('username')) }}
          {% endif %}
  
          &lt;label for="firstName"&gt;First name&lt;/label&gt;
          &lt;input id="firstName" type="text" name="firstName" value="{{ currentUser.firstName}}"&gt;
  
          &lt;label for="lastName"&gt;Last name&lt;/label&gt;
          &lt;input id="lastName" type="text" name="lastName" value="{{ currentUser.lastName }}"&gt;
  
      &lt;/fieldset&gt;
  
      &lt;fieldset&gt;
          &lt;p&gt;Fill in both fields below to change the email address associated with your account&lt;/p&gt;
  
          &lt;label for="email"&gt;Email&lt;/label&gt;
          &lt;input id="email" type="text" name="email" value="{{ currentUser.email }}"&gt;
          {% if account is defined %}
              {{ errorList(account.getErrors('email')) }}
          {% endif %}
  
          &lt;label for="password"&gt;Current Password&lt;/label&gt;
          &lt;input type="text" id="currentPassword" name="password" /&gt;
          {% if account is defined %}
              {{ errorList(account.getErrors('currentPassword')) }}
          {% endif %}
      &lt;/fieldset&gt;      
  
      &lt;input class="btn btn-primary btn-large" type="submit" value="Save changes" /&gt;
  
  &lt;/form&gt;
  </code></pre>
  
Tags: <user-profile><frontend>
Title: Allow users to change email address on front-end form
ThreadText: # Allow users to change email address on front-end form
  
  (Asked by: username_0 on 2015-05-04)
  
  I've got a front-end user profile form working on a client site I'm developing, but the one thing that I'm having trouble with is allowing users to change the email address associated with their account via this form.
  
  When I use my email field to attempt an email address change, I get a verification email generated by Craft sent to the new email address, but the email change is not reflected in either the CP or on the front-end when I refresh the form.
  
  I've pasted an abbreviated version of my form below with some irrelevant fields omitted.
  
  What am I missing?
  
  ```html
   <form method="post" accept-charset="UTF-8" enctype="multipart/form-data">
  
      {{ getCsrfInput() }}
      <input type="hidden" name="action" value="users/saveUser">
      <input type="hidden" name="redirect" value="account/my-account?m=updated">
      <input type="hidden" name="userId" value="{{ currentUser.id }}">
  
      {% macro errorList(errors) %}
          {% if errors %}
              {% for error in errors %}
                  <p class="error-block">{{ error }}</p>
              {% endfor %}
          {% endif %}
      {% endmacro %}
  
      {% from _self import errorList %}
  
      <fieldset>
  
          <label for="firstName">Username</label>
          <input id="username" type="text" name="username" value="{{ currentUser.username}}">
          {% if account is defined %}
              {{ errorList(account.getErrors('username')) }}
          {% endif %}
  
          <label for="firstName">First name</label>
          <input id="firstName" type="text" name="firstName" value="{{ currentUser.firstName}}">
  
          <label for="lastName">Last name</label>
          <input id="lastName" type="text" name="lastName" value="{{ currentUser.lastName }}">
  
      </fieldset>
  
      <fieldset>
          <p>Fill in both fields below to change the email address associated with your account</p>
  
          <label for="email">Email</label>
          <input id="email" type="text" name="email" value="{{ currentUser.email }}">
          {% if account is defined %}
              {{ errorList(account.getErrors('email')) }}
          {% endif %}
  
          <label for="password">Current Password</label>
          <input type="text" id="currentPassword" name="password" />
          {% if account is defined %}
              {{ errorList(account.getErrors('currentPassword')) }}
          {% endif %}
      </fieldset>      
  
      <input class="btn btn-primary btn-large" type="submit" value="Save changes" />
  
  </form>
  
  ```
  
  **Tags:** user-profile, frontend
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2015-05-05. Score: 4 | Accepted answer
  
  > When I use my email field to attempt an email address change, I get a verification email generated by Craft sent to the new email address, but the email change is not reflected in either the CP or on the front-end when I refresh the form.
  
  The user's email address won't actually update until you click the link in the verification email the user receives.
  
  > **Comments:**
  > **username_0**: Ah. Ok. I'll be more patient with my process and see if that solves it for me ;-)  
  
  ---
  
  