title: WordPress update_user_meta not saving
body: <p>I have multiple additional usermeta fields created and working via the backend with WordPress. </p>
  
  <p>However, I'm trying to create a simple form that allows people to click a button that saves a field to their profile. I've been all through StackOverflow, wordpress.stackexchange.com, and the wordpress.org forums. People seem to have this working, but I can't do the same.</p>
  
  <p>Any help anyone can throw my way is much appreciated.</p>
  
  <p>Here's my code, in functions.php:</p>
  
  <pre><code>function my_function() {
  if (is_user_logged_in()) {
      global $post;
      if (has_badge()) {
          $current_user = wp_get_current_user();
          $badge_ID = get_post_meta($post-&gt;ID, 'badge_id', true);
          $badge_check = $current_user-&gt;$badge_ID;            
          $badge_id_1289 = get_user_meta( $current_user-&gt;ID, 'badge_id_1289', true);
  
          return '&lt;form name="update_badges" action="#" method="POST"&gt;
  
      &lt;fieldset&gt;
      &lt;label for="'.$badge_ID.'"&gt;Badge Name&lt;/label&gt;
      &lt;input type="text" id="'.$badge_ID.'" name="'.$badge_ID.'" value="'.$badge_ID.'" /&gt;
      &lt;/fieldset&gt;
  
      &lt;button type="submit"&gt;Claim Badge&lt;/button&gt;
  &lt;/form&gt;';
      update_user_meta( $current_user-&gt;ID, 'badge_id_1289', $_POST['badge_id_1289'] );
  
  } 
  add_shortcode('subscribe','my_function');
  </code></pre>
  
  <p>$badge_ID is taken from a custom field in the post this shortcode is added to, and I have confirmed it's working correctly (it shows as the value in the input field, the "for" in the label, etc.)</p>
  
  <p>I get nothing. The form submits, the page reloads, but nothing gets saved to the database and therefor nothing shows up in the user's profile.</p>
  
  <p>Any idea what I might need to do additionally with update_user_meta, or if this is a shortcode problem?</p>