Introduction
ID
user_login
user_pass
user_nicename
user_email
user_url
user_registered
user_activation_key
user_status
display_name
Manipulating User Metadata
-
A form field in the user’s profile screen. -
Programmatically, via a function call.
via a Form Field
show_user_profile
hook
edit_user_profile
hook
Example Form Field
/** * The field on the editing screens. * * @param $user WP_User user object */ function wporg_usermeta_form_field_birthday( $user ) { ?> <h3>It's Your Birthday</h3> <table class="form-table"> <tr> <th> <label for="birthday">Birthday</label> </th> <td> <input type="date" class="regular-text ltr" id="birthday" name="birthday" value="<?= esc_attr( get_user_meta( $user->ID, 'birthday', true ) ) ?>" title="Please use YYYY-MM-DD as the date format. " pattern="(19[0-9][0-9]|20[0-9][0-9])-(1[0-2]|0[1-9])-(3[01]|[21][0-9]|0[1-9])" required> <p class="description"> Please enter your birthday date. </p> </td> </tr> </table> <? php } /** * The save action. * * @param $user_id int the ID of the current user. * * @return bool Meta ID if the key didn't exist, true on successful update, false on failure. */ function wporg_usermeta_form_field_birthday_update( $user_id ) { // check that the current user have the capability to edit the $user_id if ( ! current_user_can( 'edit_user', $user_id ) ) { return false; } // create/update user meta for the $user_id return update_user_meta( $user_id, 'birthday', $_POST['birthday'] ); } // Add the field to user's own profile editing screen. add_action( 'show_user_profile', 'wporg_usermeta_form_field_birthday' ); // Add the field to user profile editing screen. add_action( 'edit_user_profile', 'wporg_usermeta_form_field_birthday' ); // Add the save action to user's own profile editing screen update. add_action( 'personal_options_update', 'wporg_usermeta_form_field_birthday_update' ); // Add the save action to user profile editing screen update. add_action( 'edit_user_profile_update', 'wporg_usermeta_form_field_birthday_update' );
Programmatically
Add
add_user_meta( int $user_id, string $meta_key, mixed $meta_value, bool $unique = false );
Update
update_user_meta( int $user_id, string $meta_key, mixed $meta_value, mixed $prev_value = '' );
Delete
delete_user_meta( int $user_id, string $meta_key, mixed $meta_value = '' );
Get
get_user_meta( int $user_id, string $key = '', bool $single = false );