Using WordPress ‘added_usermeta’ PHP action

The added_usermeta WordPress PHP action is triggered after user meta data is added to the database.

Usage

add_action('added_usermeta', 'your_function_name', 10, 4);
function your_function_name($mid, $user_id, $meta_key, $meta_value) {
  // your custom code here
}

Parameters

  • $mid (int) – The ID of the newly added user meta data.
  • $user_id (int) – The ID of the user associated with the meta data.
  • $meta_key (string) – The key of the added meta data.
  • $meta_value (mixed) – The value of the added meta data.

More information

See WordPress Developer Resources: added_usermeta

Examples

Send a notification when a specific user meta is added

This example sends an email to the admin when the user_membership meta key is added to a user.

add_action('added_usermeta', 'send_notification_on_membership_addition', 10, 4);
function send_notification_on_membership_addition($mid, $user_id, $meta_key, $meta_value) {
  if ($meta_key === 'user_membership') {
    $admin_email = get_option('admin_email');
    $subject = 'New user membership added';
    $message = 'A new user membership has been added for user ID ' . $user_id . '.';
    wp_mail($admin_email, $subject, $message);
  }
}

Log user meta additions

This example logs all added user meta data to a custom log file.

add_action('added_usermeta', 'log_usermeta_addition', 10, 4);
function log_usermeta_addition($mid, $user_id, $meta_key, $meta_value) {
  $log_file = 'usermeta_log.txt';
  $log_message = sprintf(
    'User ID: %d | Meta Key: %s | Meta Value: %s | Meta ID: %d',
    $user_id,
    $meta_key,
    $meta_value,
    $mid
  );
  file_put_contents($log_file, $log_message . PHP_EOL, FILE_APPEND);
}

Update user role based on user meta

This example automatically updates a user’s role to ‘subscriber’ when the user_activation_status meta key is set to ‘active’.

add_action('added_usermeta', 'update_user_role_on_activation', 10, 4);
function update_user_role_on_activation($mid, $user_id, $meta_key, $meta_value) {
  if ($meta_key === 'user_activation_status' && $meta_value === 'active') {
    $user = get_user_by('id', $user_id);
    $user->set_role('subscriber');
  }
}

Create a post for a user when a specific meta is added

This example creates a new post for the user when the user_profile_complete meta key is added.

add_action('added_usermeta', 'create_user_post_on_profile_completion', 10, 4);
function create_user_post_on_profile_completion($mid, $user_id, $meta_key, $meta_value) {
  if ($meta_key === 'user_profile_complete') {
    $user = get_userdata($user_id);
    $post_data = array(
      'post_title' => $user->display_name . '\'s Profile',
      'post_status' => 'publish',
      'post_type' => 'post',
      'post_author' => $user_id,
    );
    wp_insert_post($post_data);
 }
}

Notify followers when a user adds a new skill

This example sends a notification to a user’s followers when the user_skills meta key is updated with a new skill.

add_action('added_usermeta', 'notify_followers_on_new_skill', 10, 4);
function notify_followers_on_new_skill($mid, $user_id, $meta_key, $meta_value) {
  if ($meta_key === 'user_skills') {
    $followers = get_user_meta($user_id, 'followers', true);

    if (!empty($followers)) {
      $user = get_userdata($user_id);
      $subject = $user->display_name . ' has added a new skill!';
      $message = $user->display_name . ' has added a new skill: ' . $meta_value . '.';

      foreach ($followers as $follower_id) {
        $follower_email = get_user_meta($follower_id, 'user_email', true);
        wp_mail($follower_email, $subject, $message);
      }
    }
  }
}