The edit_user_profile_update WordPress PHP action fires before the page loads on the ‘Edit User’ screen.
Usage
add_action('edit_user_profile_update', 'my_custom_function');
function my_custom_function($user_id) {
// your custom code here
}
Parameters
$user_id(int) – The user ID.
More information
See WordPress Developer Resources: edit_user_profile_update
Examples
Save a custom field to the user profile
This example saves a custom field called ‘phone_number’ to the user profile when the ‘Edit User’ screen is updated.
// Add custom field to the 'Edit User' screen
add_action('edit_user_profile', 'add_phone_number_field');
function add_phone_number_field($user) {
$phone_number = get_the_author_meta('phone_number', $user->ID);
echo '<h3>Extra profile information</h3>';
echo '<table class="form-table">';
echo '<tr>';
echo '<th><label for="phone_number">Phone number</label></th>';
echo '<td>';
echo '<input type="text" name="phone_number_data" id="phone_number" value="' . esc_attr($phone_number) . '" class="regular-text" />';
echo '</td>';
echo '</tr>';
echo '</table>';
}
// Save the custom field when the profile is updated
add_action('edit_user_profile_update', 'save_phone_number_field');
function save_phone_number_field($user_id) {
if (current_user_can('edit_user', $user_id)) {
update_user_meta($user_id, 'phone_number', $_POST['phone_number_data']);
}
}
Validate custom field input before saving
This example adds a custom field ‘zipcode’ and validates the input before saving it to the user profile.
// Add custom field to the 'Edit User' screen
add_action('edit_user_profile', 'add_zipcode_field');
function add_zipcode_field($user) {
$zipcode = get_the_author_meta('zipcode', $user->ID);
echo '<h3>Extra profile information</h3>';
echo '<table class="form-table">';
echo '<tr>';
echo '<th><label for="zipcode">Zipcode</label></th>';
echo '<td>';
echo '<input type="text" name="zipcode_data" id="zipcode" value="' . esc_attr($zipcode) . '" class="regular-text" />';
echo '</td>';
echo '</tr>';
echo '</table>';
}
// Validate and save the custom field when the profile is updated
add_action('edit_user_profile_update', 'save_zipcode_field');
function save_zipcode_field($user_id) {
if (current_user_can('edit_user', $user_id)) {
if (is_numeric($_POST['zipcode_data'])) {
update_user_meta($user_id, 'zipcode', $_POST['zipcode_data']);
} else {
wp_die('Error: Zipcode must be a number.');
}
}
}