send_confirmation_on_profile_email( int $user_id = 0 )
- Since
- 3.0.0, 4.9.0, 7.0.3
- Source
wp-includes/user.php:3848
Sends a confirmation request email when a change of user email address is attempted.
Parameters
$user_idintoptional- The ID of the user whose email is being changed. Defaults to
$_POST['user_id']if set, otherwise 0.Default:0
Hooks fired · 1
One hook fires while send_confirmation_on_profile_email() runs, in this order:
- apply_filters( new_user_email_content )filterline 3943 (+95 into the body)
Filters the text of the email sent when a change of user email address is attempted.
Uses · 16
- absint()Converts a value to non-negative integer.
- wp_get_current_user()Retrieves the current user object.
- is_email()Verifies that an email is valid.
- __()Retrieves the translation of $text.
- email_exists()Determines whether the given email exists.
- delete_user_meta()Removes metadata matching criteria from a user.
- wp_rand()Generates a random non-negative number.
- update_user_meta()Updates user meta field based on user ID.
- wp_specialchars_decode()Converts a number of HTML entities into their special characters.
- get_option()Retrieves an option value based on an option name.
- apply_filters()Calls the callback functions that have been added to a filter hook.
- esc_url()Checks and cleans a URL.
Show all 16
- self_admin_url()Retrieves the URL to the admin area for either the current site or the network depending on context.
- home_url()Retrieves the URL for the current site where the front end is accessible.
- wp_mail()Sends an email, similar to PHP's mail function.
- WP_Error::__construct()Initializes the error.
Source
function send_confirmation_on_profile_email( $user_id = 0 ) { global $errors; // Maintain backward compatibility for those relying on a check based on $_POST['user_id']. if ( ! $user_id && isset( $_POST['user_id'] ) ) { $user_id = absint( $_POST['user_id'] ); } $current_user = wp_get_current_user(); if ( ! is_object( $errors ) ) { $errors = new WP_Error(); } if ( 0 === $current_user->ID || $current_user->ID !== (int) $user_id ) { return false; } if ( $current_user->user_email !== $_POST['email'] ) { if ( ! is_email( $_POST['email'] ) ) { $errors->add( 'user_email', __( '<strong>Error:</strong> The email address is not correct.' ), array( 'form-field' => 'email', ) ); $_POST['email'] = addslashes( $current_user->user_email ); return; } if ( email_exists( $_POST['email'] ) ) { $errors->add( 'user_email', __( '<strong>Error:</strong> The email address is already used.' ), array( 'form-field' => 'email', ) ); delete_user_meta( $current_user->ID, '_new_email' ); $_POST['email'] = addslashes( $current_user->user_email ); return; } $hash = md5( $_POST['email'] . time() . wp_rand() ); $new_user_email = array( 'hash' => $hash, 'newemail' => $_POST['email'], ); update_user_meta( $current_user->ID, '_new_email', $new_user_email ); $sitename = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); /* translators: Do not translate USERNAME, ADMIN_URL, EMAIL, SITENAME, SITEURL: those are placeholders. */ $email_text = __( 'Howdy ###USERNAME###, You recently requested to have the email address on your account changed. If this is correct, please click on the following link to change it:###ADMIN_URL### You can safely ignore and delete this email if you do not want totake this action. This email has been sent to ###EMAIL### Regards,All at ###SITENAME######SITEURL###' ); /** * Filters the text of the email sent when a change of user email address is attempted. * * The following strings have a special meaning and will get replaced dynamically: * * - `###USERNAME###` The current user's username. * - `###ADMIN_URL###` The link to click on to confirm the email change.History
Introduced in 3.0.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
7.0.3
Added the
$user_id parameter, which is sent with the personal_options_update action.from the docblock4.9.0
This function was moved from wp-admin/includes/ms.php so it's no longer Multisite specific.from the docblock
3.0.0
Introduced.from the docblock
About this page
- Parsed data
- Generated from the wordpress-develop 7.0.4 tag, from
src/wp-includes/user.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.