Index: src/wp-includes/user.php
===================================================================
--- src/wp-includes/user.php	(revision 43182)
+++ src/wp-includes/user.php	(working copy)
@@ -2925,7 +2925,7 @@
 }
 
 /**
- * Update log when privacy request is confirmed.
+ * Update log when privacy request is confirmed and notify the site admin.
  *
  * @since 4.9.6
  * @access private
@@ -2948,6 +2948,76 @@
 		'ID'          => $request_id,
 		'post_status' => 'request-confirmed',
 	) );
+
+	$manage_url = add_query_arg( 'page', $request_data->action_name, admin_url( 'tools.php' ) );
+
+	$email_data = array(
+		'request'     => $request_data,
+		'user_email'  => $request_data->email,
+		'description' => wp_user_request_action_description( $request_data->action_name ),
+		'manage_url'  => $manage_url,
+		'sitename'    => is_multisite() ? get_site_option( 'site_name' ) : get_option( 'blogname' ),
+		'siteurl'     => network_home_url(),
+		'admin_email' => get_option( 'admin_email' ),
+	);
+
+	/* translators: Do not translate USERNAME, DESCRIPTION, MANAGE_URL, EMAIL, SITENAME, SITEURL: those are placeholders. */
+	$email_text = __(
+		'Howdy,
+
+A user data privacy request has been confirmed on ###SITENAME###:
+
+User: ###USER_EMAIL###
+Request: ###DESCRIPTION###
+
+You can view and manage these data privacy requests here:
+
+###MANAGE_URL###
+
+This email has been sent to ###EMAIL###.
+
+Regards,
+All at ###SITENAME###
+###SITEURL###'
+		);
+
+	/**
+	 * Filters the text of the email sent to an administrator when an account action is confirmed.
+	 *
+	 * The following strings have a special meaning and will get replaced dynamically:
+	 *
+	 * ###USER_EMAIL###   The user email for the request.
+	 * ###DESCRIPTION###  Description of the action being performed so the user knows what the email is for.
+	 * ###MANAGE_URL###   The URL to manage requests.
+	 * ###EMAIL###        Administrator email that the email is being sent to.
+	 * ###SITENAME###     The name of the site.
+	 * ###SITEURL###      The URL to the site.
+	 *
+	 * @since 4.9.6
+	 *
+	 * @param string $email_text Text in the email.
+	 * @param array  $email_data {
+	 *     Data relating to the account action email.
+	 *
+	 *     @type WP_User_Request $request     User request object.
+	 *     @type string          $user_email  The email address confirming a request
+	 *     @type string          $description Description of the action being performed so the user knows what the email is for.
+	 *     @type string          $manage_url  The link to click manage privacy requests of this type.
+	 *     @type string          $sitename    The site name sending the mail.
+	 *     @type string          $siteurl     The site URL sending the mail.
+	 * }
+	 */
+	$content = apply_filters( 'user_confirmed_action_email_content', $email_text, $email_data );
+
+	$content = str_replace( '###USER_EMAIL###', $email_data['user_email'], $content );
+	$content = str_replace( '###DESCRIPTION###', $email_data['description'], $content );
+	$content = str_replace( '###MANAGE_URL###', esc_url_raw( $email_data['manage_url'] ), $content );
+	$content = str_replace( '###EMAIL###', $email_data['admin_email'], $content );
+	$content = str_replace( '###SITENAME###', wp_specialchars_decode( $email_data['sitename'], ENT_QUOTES ), $content );
+	$content = str_replace( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content );
+
+	/* translators: %s Site name. */
+	wp_mail( $email_data['admin_email'], sprintf( __( '[%s] Action Confirmed' ), wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) ), $content );
 }
 
 /**
