Index: src/wp-admin/includes/privacy-tools.php
===================================================================
--- src/wp-admin/includes/privacy-tools.php	(revision 48999)
+++ src/wp-admin/includes/privacy-tools.php	(working copy)
@@ -628,7 +628,7 @@
 
 	/* translators: Do not translate EXPIRATION, LINK, SITENAME, SITEURL: those are placeholders. */
 	$email_text = __(
-		'Howdy,
+'Howdy,
 
 Your request for an export of personal data has been completed. You may
 download your personal data by clicking on the link below. For privacy
Index: src/wp-includes/user.php
===================================================================
--- src/wp-includes/user.php	(revision 48999)
+++ src/wp-includes/user.php	(working copy)
@@ -3239,9 +3239,37 @@
 		'admin_email' => $admin_email,
 	);
 
+	$subject = sprintf(
+		/* translators: Privacy data request confirmed notification email subject. 1: Site title, 2: Name of the confirmed action. */
+		__( '[%1$s] Action Confirmed: %2$s' ),
+		$email_data['sitename'],
+		$action_description
+	);
+
+	/**
+	 * Filters the subject of the user request confirmation email.
+	 *
+	 * @since 4.9.8
+	 *
+	 * @param string $subject    The email subject.
+	 * @param string $sitename   The name of the site.
+	 * @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.
+	 *     @type string          $admin_email The administrator email receiving the mail.
+	 * }
+	 */
+	$subject = apply_filters( 'user_request_confirmed_email_subject', $subject, $email_data['sitename'], $email_data );
+
 	/* translators: Do not translate SITENAME, USER_EMAIL, DESCRIPTION, MANAGE_URL, SITEURL; those are placeholders. */
-	$email_text = __(
-		'Howdy,
+	$content = __(
+'Howdy,
 
 A user data privacy request has been confirmed on ###SITENAME###:
 
@@ -3260,7 +3288,10 @@
 	/**
 	 * Filters the body of the user request confirmation email.
 	 *
+     * Use the {@see 'user_request_confirmed_email_content'} filter instead.
+     *
 	 * The email is sent to an administrator when an user request is confirmed.
+	 *
 	 * The following strings have a special meaning and will get replaced dynamically:
 	 *
 	 * ###SITENAME###    The name of the site.
@@ -3269,9 +3300,14 @@
 	 * ###MANAGE_URL###  The URL to manage requests.
 	 * ###SITEURL###     The URL to the site.
 	 *
+	 * For fulfillment email content use the {@see 'user_erasure_fulfillment_email_content'} filter instead.
+	 *
 	 * @since 4.9.6
 	 *
-	 * @param string $email_text Text in the email.
+	 * @deprecated 5.6.0 Use {@see 'user_request_confirmed_email_content'} filter instead.
+	 * @ignore This duplicate is deprecated and ignored to avoid documentation issues.
+	 *
+	 * @param string $content    The email content.
 	 * @param array  $email_data {
 	 *     Data relating to the account action email.
 	 *
@@ -3284,28 +3320,25 @@
 	 *     @type string          $admin_email The administrator email receiving the mail.
 	 * }
 	 */
-	$content = apply_filters( 'user_confirmed_action_email_content', $email_text, $email_data );
+	$content = apply_filters_deprecated( 'user_confirmed_action_email_content', array( $content, $email_data ), '5.6.0', 'user_request_confirmed_email_content' );
 
-	$content = str_replace( '###SITENAME###', $email_data['sitename'], $content );
-	$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( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content );
-
-	$subject = sprintf(
-		/* translators: Privacy data request confirmed notification email subject. 1: Site title, 2: Name of the confirmed action. */
-		__( '[%1$s] Action Confirmed: %2$s' ),
-		$email_data['sitename'],
-		$action_description
-	);
-
 	/**
-	 * Filters the subject of the user request confirmation email.
+	 * Filters the body of the user request confirmation email.
 	 *
-	 * @since 4.9.8
+	 * The email is sent to an administrator when an user request is confirmed.
+	 * The following strings have a special meaning and will get replaced dynamically:
 	 *
-	 * @param string $subject    The email subject.
-	 * @param string $sitename   The name of the site.
+	 * ###SITENAME###    The name of the site.
+	 * ###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.
+	 * ###SITEURL###     The URL to the site.
+	 *
+	 * For fulfillment email content use the {@see 'user_erasure_fulfillment_email_content'} filter instead.
+	 *
+	 * @since 5.6.0
+	 *
+	 * @param string $content    The email content.
 	 * @param array  $email_data {
 	 *     Data relating to the account action email.
 	 *
@@ -3318,8 +3351,14 @@
 	 *     @type string          $admin_email The administrator email receiving the mail.
 	 * }
 	 */
-	$subject = apply_filters( 'user_request_confirmed_email_subject', $subject, $email_data['sitename'], $email_data );
+	$content = apply_filters( 'user_request_confirmed_email_content', $content, $email_data );
 
+	$content = str_replace( '###SITENAME###', $email_data['sitename'], $content );
+	$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( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content );
+
 	$headers = '';
 
 	/**
@@ -3410,8 +3449,13 @@
 	/**
 	 * Filters the subject of the email sent when an erasure request is completed.
 	 *
+	 * Use the {@see 'user_erasure_fulfillment_email_subject'} filter instead.
+	 *
 	 * @since 4.9.8
 	 *
+     * @deprecated 5.6.0 Use {@see 'user_erasure_fulfillment_email_subject'} filter instead.
+     * @ignore This duplicate is deprecated and ignored to avoid documentation issues.
+	 *
 	 * @param string $subject    The email subject.
 	 * @param string $sitename   The name of the site.
 	 * @param array  $email_data {
@@ -3426,13 +3470,33 @@
 	 *     @type string          $siteurl            The site URL sending the mail.
 	 * }
 	 */
-	$subject = apply_filters( 'user_erasure_complete_email_subject', $subject, $email_data['sitename'], $email_data );
+	$subject = apply_filters_deprecated( 'user_erasure_complete_email_subject', array( $subject, $email_data['sitename'], $email_data ), '5.6.0', 'user_erasure_fulfillment_email_subject' );
 
-	if ( empty( $email_data['privacy_policy_url'] ) ) {
-		/* translators: Do not translate SITENAME, SITEURL; those are placeholders. */
-		$email_text = __(
-			'Howdy,
+	/**
+	 * Filters the subject of the email sent when an erasure request is completed.
+	 *
+	 * @since 5.6.0
+	 *
+	 * @param string $subject    The email subject.
+	 * @param string $sitename   The name of the site.
+	 * @param array  $email_data {
+	 *     Data relating to the account action email.
+	 *
+	 *     @type WP_User_Request $request            User request object.
+	 *     @type string          $message_recipient  The address that the email will be sent to. Defaults
+	 *                                               to the value of `$request->email`, but can be changed
+	 *                                               by the `user_erasure_fulfillment_email_to` filter.
+	 *     @type string          $privacy_policy_url Privacy policy URL.
+	 *     @type string          $sitename           The site name sending the mail.
+	 *     @type string          $siteurl            The site URL sending the mail.
+	 * }
+	 */
+	$subject = apply_filters( 'user_erasure_fulfillment_email_subject', $subject, $email_data['sitename'], $email_data );
 
+	/* translators: Do not translate SITENAME, SITEURL; those are placeholders. */
+	$content = __(
+'Howdy,
+
 Your request to erase your personal data on ###SITENAME### has been completed.
 
 If you have any follow-up questions or concerns, please contact the site administrator.
@@ -3440,11 +3504,12 @@
 Regards,
 All at ###SITENAME###
 ###SITEURL###'
-		);
-	} else {
+	);
+
+	if ( ! empty( $email_data['privacy_policy_url'] ) ) {
 		/* translators: Do not translate SITENAME, SITEURL, PRIVACY_POLICY_URL; those are placeholders. */
-		$email_text = __(
-			'Howdy,
+		$content = __(
+'Howdy,
 
 Your request to erase your personal data on ###SITENAME### has been completed.
 
@@ -3461,6 +3526,8 @@
 	/**
 	 * Filters the body of the data erasure fulfillment notification.
 	 *
+	 * Use the {@see 'user_erasure_fulfillment_email_content'} filter instead.
+	 *
 	 * The email is sent to a user when a their data erasure request is fulfilled
 	 * by an administrator.
 	 *
@@ -3472,7 +3539,10 @@
 	 *
 	 * @since 4.9.6
 	 *
-	 * @param string $email_text Text in the email.
+	 * @deprecated 5.6.0 Use {@see 'user_erasure_fulfillment_email_content'} filter instead.
+	 * @ignore This duplicate is deprecated and ignored to avoid documentation issues.
+	 *
+	 * @param string $content The email content.
 	 * @param array  $email_data {
 	 *     Data relating to the account action email.
 	 *
@@ -3485,8 +3555,37 @@
 	 *     @type string          $siteurl            The site URL sending the mail.
 	 * }
 	 */
-	$content = apply_filters( 'user_confirmed_action_email_content', $email_text, $email_data );
+	$content = apply_filters_deprecated( 'user_confirmed_action_email_content', array( $content, $email_data ), '5.6.0', 'user_erasure_fulfillment_email_content' );
 
+	/**
+	 * Filters the body of the data erasure fulfillment notification.
+	 *
+	 * The email is sent to a user when a their data erasure request is fulfilled
+	 * by an administrator.
+	 *
+	 * The following strings have a special meaning and will get replaced dynamically:
+	 *
+	 * ###SITENAME###           The name of the site.
+	 * ###PRIVACY_POLICY_URL### Privacy policy page URL.
+	 * ###SITEURL###            The URL to the site.
+	 *
+	 * @since 5.6.0
+	 *
+	 * @param string $content The email content.
+	 * @param array  $email_data {
+	 *     Data relating to the account action email.
+	 *
+	 *     @type WP_User_Request $request            User request object.
+	 *     @type string          $message_recipient  The address that the email will be sent to. Defaults
+	 *                                               to the value of `$request->email`, but can be changed
+	 *                                               by the `user_erasure_fulfillment_email_to` filter.
+	 *     @type string          $privacy_policy_url Privacy policy URL.
+	 *     @type string          $sitename           The site name sending the mail.
+	 *     @type string          $siteurl            The site URL sending the mail.
+	 * }
+	 */
+	$content = apply_filters( 'user_erasure_fulfillment_email_content', $content, $email_data );
+
 	$content = str_replace( '###SITENAME###', $email_data['sitename'], $content );
 	$content = str_replace( '###PRIVACY_POLICY_URL###', $email_data['privacy_policy_url'], $content );
 	$content = str_replace( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content );
@@ -3496,8 +3595,13 @@
 	/**
 	 * Filters the headers of the data erasure fulfillment notification.
 	 *
+	 * Use the {@see 'user_erasure_fulfillment_email_headers'} filter instead.
+	 *
 	 * @since 5.4.0
 	 *
+	 * @deprecated 5.6.0 Use {@see 'user_erasure_fulfillment_email_headers'} filter instead.
+	 * @ignore This duplicate is deprecated and ignored to avoid documentation issues.
+	 *
 	 * @param string|array $headers    The email headers.
 	 * @param string       $subject    The email subject.
 	 * @param string       $content    The email content.
@@ -3514,8 +3618,31 @@
 	 *     @type string          $siteurl            The site URL sending the mail.
 	 * }
 	 */
-	$headers = apply_filters( 'user_erasure_complete_email_headers', $headers, $subject, $content, $request_id, $email_data );
+	$headers = apply_filters_deprecated( 'user_erasure_complete_email_headers', array( $headers, $subject, $content, $request_id, $email_data ), '5.6.0', 'user_erasure_fulfillment_email_headers' );
 
+	/**
+	 * Filters the headers of the data erasure fulfillment notification.
+	 *
+	 * @since 5.6.0
+	 *
+	 * @param string|array $headers    The email headers.
+	 * @param string       $subject    The email subject.
+	 * @param string       $content    The email content.
+	 * @param int          $request_id The request ID.
+	 * @param array        $email_data {
+	 *     Data relating to the account action email.
+	 *
+	 *     @type WP_User_Request $request            User request object.
+	 *     @type string          $message_recipient  The address that the email will be sent to. Defaults
+	 *                                               to the value of `$request->email`, but can be changed
+	 *                                               by the `user_erasure_fulfillment_email_to` filter.
+	 *     @type string          $privacy_policy_url Privacy policy URL.
+	 *     @type string          $sitename           The site name sending the mail.
+	 *     @type string          $siteurl            The site URL sending the mail.
+	 * }
+	 */
+	$headers = apply_filters( 'user_erasure_fulfillment_email_headers', $headers, $subject, $content, $request_id, $email_data );
+
 	$email_sent = wp_mail( $user_email, $subject, $content, $headers );
 
 	if ( $switched_locale ) {
@@ -3704,9 +3831,32 @@
 		'siteurl'     => home_url(),
 	);
 
+	/* translators: Confirm privacy data request notification email subject. 1: Site title, 2: Name of the action. */
+	$subject = sprintf( __( '[%1$s] Confirm Action: %2$s' ), $email_data['sitename'], $email_data['description'] );
+
+	/**
+	 * Filters the subject of the email sent when an account action is attempted.
+	 *
+	 * @since 4.9.6
+	 *
+	 * @param string $subject    The email subject.
+	 * @param string $sitename   The name of the site.
+	 * @param array  $email_data {
+	 *     Data relating to the account action email.
+	 *
+	 *     @type WP_User_Request $request     User request object.
+	 *     @type string          $email       The email address this is being sent to.
+	 *     @type string          $description Description of the action being performed so the user knows what the email is for.
+	 *     @type string          $confirm_url The link to click on to confirm the account action.
+	 *     @type string          $sitename    The site name sending the mail.
+	 *     @type string          $siteurl     The site URL sending the mail.
+	 * }
+	 */
+	$subject = apply_filters( 'user_request_action_email_subject', $subject, $email_data['sitename'], $email_data );
+
 	/* translators: Do not translate DESCRIPTION, CONFIRM_URL, SITENAME, SITEURL: those are placeholders. */
-	$email_text = __(
-		'Howdy,
+	$content = __(
+'Howdy,
 
 A request has been made to perform the following action on your account:
 
@@ -3735,7 +3885,7 @@
 	 *
 	 * @since 4.9.6
 	 *
-	 * @param string $email_text Text in the email.
+	 * @param string $content Text in the email.
 	 * @param array  $email_data {
 	 *     Data relating to the account action email.
 	 *
@@ -3747,7 +3897,7 @@
 	 *     @type string          $siteurl     The site URL sending the mail.
 	 * }
 	 */
-	$content = apply_filters( 'user_request_action_email_content', $email_text, $email_data );
+	$content = apply_filters( 'user_request_action_email_content', $content, $email_data );
 
 	$content = str_replace( '###DESCRIPTION###', $email_data['description'], $content );
 	$content = str_replace( '###CONFIRM_URL###', esc_url_raw( $email_data['confirm_url'] ), $content );
@@ -3755,29 +3905,6 @@
 	$content = str_replace( '###SITENAME###', $email_data['sitename'], $content );
 	$content = str_replace( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content );
 
-	/* translators: Confirm privacy data request notification email subject. 1: Site title, 2: Name of the action. */
-	$subject = sprintf( __( '[%1$s] Confirm Action: %2$s' ), $email_data['sitename'], $email_data['description'] );
-
-	/**
-	 * Filters the subject of the email sent when an account action is attempted.
-	 *
-	 * @since 4.9.6
-	 *
-	 * @param string $subject    The email subject.
-	 * @param string $sitename   The name of the site.
-	 * @param array  $email_data {
-	 *     Data relating to the account action email.
-	 *
-	 *     @type WP_User_Request $request     User request object.
-	 *     @type string          $email       The email address this is being sent to.
-	 *     @type string          $description Description of the action being performed so the user knows what the email is for.
-	 *     @type string          $confirm_url The link to click on to confirm the account action.
-	 *     @type string          $sitename    The site name sending the mail.
-	 *     @type string          $siteurl     The site URL sending the mail.
-	 * }
-	 */
-	$subject = apply_filters( 'user_request_action_email_subject', $subject, $email_data['sitename'], $email_data );
-
 	$headers = '';
 
 	/**
Index: tests/phpunit/tests/privacy/wpPrivacySendErasureFulfillmentNotification.php
===================================================================
--- tests/phpunit/tests/privacy/wpPrivacySendErasureFulfillmentNotification.php	(revision 48999)
+++ tests/phpunit/tests/privacy/wpPrivacySendErasureFulfillmentNotification.php	(working copy)
@@ -210,7 +210,7 @@
 	 * @ticket 44234
 	 */
 	public function test_email_subject_should_be_filterable() {
-		add_filter( 'user_erasure_complete_email_subject', array( $this, 'filter_email_subject' ) );
+		add_filter( 'user_erasure_fulfillment_email_subject', array( $this, 'filter_email_subject' ) );
 		_wp_privacy_send_erasure_fulfillment_notification( self::$request_id );
 
 		$mailer = tests_retrieve_phpmailer_instance();
@@ -236,7 +236,7 @@
 	 * @ticket 44234
 	 */
 	public function test_email_body_text_should_be_filterable() {
-		add_filter( 'user_confirmed_action_email_content', array( $this, 'filter_email_body_text' ) );
+		add_filter( 'user_erasure_fulfillment_email_content', array( $this, 'filter_email_body_text' ) );
 		_wp_privacy_send_erasure_fulfillment_notification( self::$request_id );
 
 		$mailer = tests_retrieve_phpmailer_instance();
@@ -264,7 +264,7 @@
 	 * @ticket 44501
 	 */
 	public function test_email_headers_should_be_filterable() {
-		add_filter( 'user_erasure_complete_email_headers', array( $this, 'modify_email_headers' ) );
+		add_filter( 'user_erasure_fulfillment_email_headers', array( $this, 'modify_email_headers' ) );
 		_wp_privacy_send_erasure_fulfillment_notification( self::$request_id );
 
 		$mailer = tests_retrieve_phpmailer_instance();
Index: tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php
===================================================================
--- tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php	(revision 48999)
+++ tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php	(working copy)
@@ -176,9 +176,9 @@
 
 		_wp_privacy_account_request_confirmed( $request_id );
 
-		add_filter( 'user_confirmed_action_email_content', array( $this, 'modify_email_content' ), 10, 2 );
+		add_filter( 'user_request_confirmed_email_content', array( $this, 'modify_email_content' ), 10, 2 );
 		_wp_privacy_send_request_confirmation_notification( $request_id );
-		remove_filter( 'user_confirmed_action_email_content', array( $this, 'modify_email_content' ), 10 );
+		remove_filter( 'user_request_confirmed_email_content', array( $this, 'modify_email_content' ), 10 );
 
 		$mailer = tests_retrieve_phpmailer_instance();
 		$this->assertContains( 'Custom content containing email address:' . $email, $mailer->get_sent()->body );
Index: tests/qunit/fixtures/wp-api-generated.js
===================================================================
--- tests/qunit/fixtures/wp-api-generated.js	(revision 48999)
+++ tests/qunit/fixtures/wp-api-generated.js	(working copy)
@@ -4469,7 +4469,7 @@
                         "attributes": {
                             "required": false,
                             "default": [],
-                            "description": "Attributes for the block",
+                            "description": "Attributes for the block.",
                             "type": "object"
                         },
                         "post_id": {
@@ -4563,12 +4563,12 @@
                     "args": {
                         "name": {
                             "required": false,
-                            "description": "Block name",
+                            "description": "Block name.",
                             "type": "string"
                         },
                         "namespace": {
                             "required": false,
-                            "description": "Block namespace",
+                            "description": "Block namespace.",
                             "type": "string"
                         },
                         "context": {
