update_usermeta

The timeline below displays how wordpress function update_usermeta has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Update metadata of user.
 *
 * There is no need to serialize values, they will be serialized if it is
 * needed. The metadata key can only be a string with underscores. All else will
 * be removed.
 *
 * Will remove the metadata, if the meta value is empty.
 *
 * @since 2.0.0
 * @deprecated 3.0.0 Use update_user_meta()
 * @see update_user_meta()
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int $user_id User ID
 * @param string $meta_key Metadata key.
 * @param mixed $meta_value Metadata value.
 * @return bool True on successful update, false on failure.
 */
function update_usermeta($user_id, $meta_key, $meta_value)
{
    _deprecated_function(__FUNCTION__, '3.0.0', 'update_user_meta()');
    global $wpdb;
    if (!is_numeric($user_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    /** @todo Might need fix because usermeta data is assumed to be already escaped */
    if (is_string($meta_value)) {
        $meta_value = stripslashes($meta_value);
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return delete_usermeta($user_id, $meta_key);
    }
    $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key));
    if ($cur) {
        do_action('update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    if (!$cur) {
        $wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value'));
    } elseif ($cur->meta_value != $meta_value) {
        $wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key'));
    } else {
        return false;
    }
    clean_user_cache($user_id);
    wp_cache_delete($user_id, 'user_meta');
    if (!$cur) {
        do_action('added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value);
    } else {
        do_action('updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    return true;
}

WordPress Version: 4.6

/**
 * Update metadata of user.
 *
 * There is no need to serialize values, they will be serialized if it is
 * needed. The metadata key can only be a string with underscores. All else will
 * be removed.
 *
 * Will remove the metadata, if the meta value is empty.
 *
 * @since 2.0.0
 * @deprecated 3.0.0 Use update_user_meta()
 * @see update_user_meta()
 *
 * @param int $user_id User ID
 * @param string $meta_key Metadata key.
 * @param mixed $meta_value Metadata value.
 * @return bool True on successful update, false on failure.
 */
function update_usermeta($user_id, $meta_key, $meta_value)
{
    _deprecated_function(__FUNCTION__, '3.0.0', 'update_user_meta()');
    global $wpdb;
    if (!is_numeric($user_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    /** @todo Might need fix because usermeta data is assumed to be already escaped */
    if (is_string($meta_value)) {
        $meta_value = stripslashes($meta_value);
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return delete_usermeta($user_id, $meta_key);
    }
    $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key));
    if ($cur) {
        do_action('update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    if (!$cur) {
        $wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value'));
    } elseif ($cur->meta_value != $meta_value) {
        $wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key'));
    } else {
        return false;
    }
    clean_user_cache($user_id);
    wp_cache_delete($user_id, 'user_meta');
    if (!$cur) {
        do_action('added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value);
    } else {
        do_action('updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    return true;
}

WordPress Version: 4.4

/**
 * Update metadata of user.
 *
 * There is no need to serialize values, they will be serialized if it is
 * needed. The metadata key can only be a string with underscores. All else will
 * be removed.
 *
 * Will remove the metadata, if the meta value is empty.
 *
 * @since 2.0.0
 * @deprecated 3.0.0 Use update_user_meta()
 * @see update_user_meta()
 *
 * @param int $user_id User ID
 * @param string $meta_key Metadata key.
 * @param mixed $meta_value Metadata value.
 * @return bool True on successful update, false on failure.
 */
function update_usermeta($user_id, $meta_key, $meta_value)
{
    _deprecated_function(__FUNCTION__, '3.0', 'update_user_meta()');
    global $wpdb;
    if (!is_numeric($user_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    /** @todo Might need fix because usermeta data is assumed to be already escaped */
    if (is_string($meta_value)) {
        $meta_value = stripslashes($meta_value);
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return delete_usermeta($user_id, $meta_key);
    }
    $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key));
    if ($cur) {
        do_action('update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    if (!$cur) {
        $wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value'));
    } elseif ($cur->meta_value != $meta_value) {
        $wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key'));
    } else {
        return false;
    }
    clean_user_cache($user_id);
    wp_cache_delete($user_id, 'user_meta');
    if (!$cur) {
        do_action('added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value);
    } else {
        do_action('updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    return true;
}

WordPress Version: 4.2

/**
 * Update metadata of user.
 *
 * There is no need to serialize values, they will be serialized if it is
 * needed. The metadata key can only be a string with underscores. All else will
 * be removed.
 *
 * Will remove the metadata, if the meta value is empty.
 *
 * @since 2.0.0
 * @deprecated 3.0.0
 * @deprecated Use update_user_meta()
 * @see update_user_meta()
 *
 * @param int $user_id User ID
 * @param string $meta_key Metadata key.
 * @param mixed $meta_value Metadata value.
 * @return bool True on successful update, false on failure.
 */
function update_usermeta($user_id, $meta_key, $meta_value)
{
    _deprecated_function(__FUNCTION__, '3.0', 'update_user_meta()');
    global $wpdb;
    if (!is_numeric($user_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    /** @todo Might need fix because usermeta data is assumed to be already escaped */
    if (is_string($meta_value)) {
        $meta_value = stripslashes($meta_value);
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return delete_usermeta($user_id, $meta_key);
    }
    $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key));
    if ($cur) {
        do_action('update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    if (!$cur) {
        $wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value'));
    } elseif ($cur->meta_value != $meta_value) {
        $wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key'));
    } else {
        return false;
    }
    clean_user_cache($user_id);
    wp_cache_delete($user_id, 'user_meta');
    if (!$cur) {
        do_action('added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value);
    } else {
        do_action('updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    return true;
}

WordPress Version: 3.7

/**
 * Update metadata of user.
 *
 * There is no need to serialize values, they will be serialized if it is
 * needed. The metadata key can only be a string with underscores. All else will
 * be removed.
 *
 * Will remove the metadata, if the meta value is empty.
 *
 * @since 2.0.0
 * @deprecated 3.0.0
 * @deprecated Use update_user_meta()
 * @see update_user_meta()
 *
 * @param int $user_id User ID
 * @param string $meta_key Metadata key.
 * @param mixed $meta_value Metadata value.
 * @return bool True on successful update, false on failure.
 */
function update_usermeta($user_id, $meta_key, $meta_value)
{
    _deprecated_function(__FUNCTION__, '3.0', 'update_user_meta()');
    global $wpdb;
    if (!is_numeric($user_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    /** @todo Might need fix because usermeta data is assumed to be already escaped */
    if (is_string($meta_value)) {
        $meta_value = stripslashes($meta_value);
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return delete_usermeta($user_id, $meta_key);
    }
    $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key));
    if ($cur) {
        do_action('update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    if (!$cur) {
        $wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value'));
    } else if ($cur->meta_value != $meta_value) {
        $wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key'));
    } else {
        return false;
    }
    clean_user_cache($user_id);
    wp_cache_delete($user_id, 'user_meta');
    if (!$cur) {
        do_action('added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value);
    } else {
        do_action('updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value);
    }
    return true;
}