diff --git a/src/wp-admin/css/forms.css b/src/wp-admin/css/forms.css
index f790875a48..59bbd42571 100644
--- a/src/wp-admin/css/forms.css
+++ b/src/wp-admin/css/forms.css
@@ -1210,6 +1210,9 @@ table.form-table td .updated p {
 	line-height: 1.5;
 	margin: 0;
 }
+.wp-privacy-request-form select {
+	margin-top: -4px;
+}
 
 .email-personal-data::before {
 	display: inline-block;
diff --git a/src/wp-admin/erase-personal-data.php b/src/wp-admin/erase-personal-data.php
index dc80022eef..67fb577668 100644
--- a/src/wp-admin/erase-personal-data.php
+++ b/src/wp-admin/erase-personal-data.php
@@ -63,6 +63,10 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 		<div class="wp-privacy-request-form-field">
 			<label for="username_or_email_for_privacy_request"><?php esc_html_e( 'Username or email address' ); ?></label>
 			<input type="text" required class="regular-text" id="username_or_email_for_privacy_request" name="username_or_email_for_privacy_request" />
+			<select name="request_confirmation" id="confirmation_for_privacy_request">
+				<option value="yes"><?php _e( 'With Confirmation' ); ?></option>
+				<option value="no"><?php _e( 'Without Confirmation' ); ?></option>
+			</select>
 			<?php submit_button( __( 'Send Request' ), 'secondary', 'submit', false ); ?>
 		</div>
 		<?php wp_nonce_field( 'personal-data-request' ); ?>
diff --git a/src/wp-admin/export-personal-data.php b/src/wp-admin/export-personal-data.php
index a4eef779c2..99ae12f9b0 100644
--- a/src/wp-admin/export-personal-data.php
+++ b/src/wp-admin/export-personal-data.php
@@ -63,6 +63,10 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 		<div class="wp-privacy-request-form-field">
 			<label for="username_or_email_for_privacy_request"><?php esc_html_e( 'Username or email address' ); ?></label>
 			<input type="text" required class="regular-text" id="username_or_email_for_privacy_request" name="username_or_email_for_privacy_request" />
+			<select name="request_confirmation" id="confirmation_for_privacy_request">
+				<option value="yes"><?php _e( 'With Confirmation' ); ?></option>
+				<option value="no"><?php _e( 'Without Confirmation' ); ?></option>
+			</select>
 			<?php submit_button( __( 'Send Request' ), 'secondary', 'submit', false ); ?>
 		</div>
 		<?php wp_nonce_field( 'personal-data-request' ); ?>
diff --git a/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php b/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php
index 683ea69697..1a3045b6a9 100644
--- a/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php
+++ b/src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php
@@ -111,6 +111,7 @@ class WP_Privacy_Data_Export_Requests_List_Table extends WP_Privacy_Requests_Tab
 				submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item->ID . ']', false );
 				break;
 			case 'request-completed':
+			case 'request-skipped':
 				echo '<a href="' . esc_url(
 					wp_nonce_url(
 						add_query_arg(
diff --git a/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php b/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php
index 53488dd6df..b41285f5b0 100644
--- a/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php
+++ b/src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php
@@ -116,6 +116,7 @@ class WP_Privacy_Data_Removal_Requests_List_Table extends WP_Privacy_Requests_Ta
 				submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item->ID . ']', false );
 				break;
 			case 'request-completed':
+			case 'request-skipped':
 				echo '<a href="' . esc_url(
 					wp_nonce_url(
 						add_query_arg(
diff --git a/src/wp-admin/includes/class-wp-privacy-requests-table.php b/src/wp-admin/includes/class-wp-privacy-requests-table.php
index fe5a516431..d859c9dcd2 100644
--- a/src/wp-admin/includes/class-wp-privacy-requests-table.php
+++ b/src/wp-admin/includes/class-wp-privacy-requests-table.php
@@ -350,6 +350,7 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table {
 				$timestamp = $item->confirmed_timestamp;
 				break;
 			case 'request-completed':
+			case 'request-skipped':
 				$timestamp = $item->completed_timestamp;
 				break;
 		}
diff --git a/src/wp-admin/includes/privacy-tools.php b/src/wp-admin/includes/privacy-tools.php
index 7e2badcb4e..f99b295ff9 100644
--- a/src/wp-admin/includes/privacy-tools.php
+++ b/src/wp-admin/includes/privacy-tools.php
@@ -53,6 +53,10 @@ function _wp_privacy_completed_request( $request_id ) {
 
 	update_post_meta( $request_id, '_wp_user_request_completed_timestamp', time() );
 
+	if ( get_post_status( $request_id ) === 'request-skipped' ) {
+		return;
+	}
+
 	$result = wp_update_post(
 		array(
 			'ID'          => $request_id,
@@ -110,6 +114,7 @@ function _wp_personal_data_handle_actions() {
 				$action_type               = sanitize_text_field( wp_unslash( $_POST['type_of_action'] ) );
 				$username_or_email_address = sanitize_text_field( wp_unslash( $_POST['username_or_email_for_privacy_request'] ) );
 				$email_address             = '';
+				$request_confirmation      = sanitize_text_field( $_POST['request_confirmation'] );
 
 				if ( ! in_array( $action_type, _wp_privacy_action_request_types(), true ) ) {
 					add_settings_error(
@@ -140,7 +145,7 @@ function _wp_personal_data_handle_actions() {
 					break;
 				}
 
-				$request_id = wp_create_user_request( $email_address, $action_type );
+				$request_id = wp_create_user_request( $email_address, $action_type, $request_confirmation );
 
 				if ( is_wp_error( $request_id ) ) {
 					add_settings_error(
@@ -160,7 +165,9 @@ function _wp_personal_data_handle_actions() {
 					break;
 				}
 
-				wp_send_user_request( $request_id );
+				if ( 'yes' === $request_confirmation ) {
+					wp_send_user_request( $request_id );
+				}
 
 				add_settings_error(
 					'username_or_email_for_privacy_request',
diff --git a/src/wp-includes/post.php b/src/wp-includes/post.php
index 5856af56ca..fbdcd47382 100644
--- a/src/wp-includes/post.php
+++ b/src/wp-includes/post.php
@@ -429,6 +429,16 @@ function create_initial_post_types() {
 			'exclude_from_search' => false,
 		)
 	);
+
+	register_post_status(
+		'request-skipped',
+		array(
+			'label'               => _x( 'Confirmation Skipped', 'request status' ),
+			'internal'            => true,
+			'_builtin'            => true, /* internal use only. */
+			'exclude_from_search' => false,
+		)
+	);
 }
 
 /**
diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php
index c3b911f0dd..e3afaed9c4 100644
--- a/src/wp-includes/user.php
+++ b/src/wp-includes/user.php
@@ -3316,14 +3316,16 @@ function _wp_privacy_account_request_confirmed_message( $request_id ) {
  *
  * @since 4.9.6
  *
- * @param string $email_address User email address. This can be the address of a registered or non-registered user.
- * @param string $action_name   Name of the action that is being confirmed. Required.
- * @param array  $request_data  Misc data you want to send with the verification request and pass to the actions once the request is confirmed.
- * @return int|WP_Error Returns the request ID if successful, or a WP_Error object on failure.
+ * @param string $email_address        User email address. This can be the address of a registered or non-registered user.
+ * @param string $action_name          Name of the action that is being confirmed. Required.
+ * @param string $request_confirmation Option (yes/no) if a confirmation e-mail will be sent to the user.
+ * @param array  $request_data         Misc data you want to send with the verification request and pass to the actions once the request is confirmed.
+ * @return int|WP_Error                Returns the request ID if successful, or a WP_Error object on failure.
  */
-function wp_create_user_request( $email_address = '', $action_name = '', $request_data = array() ) {
-	$email_address = sanitize_email( $email_address );
-	$action_name   = sanitize_key( $action_name );
+function wp_create_user_request( $email_address = '', $action_name = '', $request_confirmation = '', $request_data = array() ) {
+	$email_address        = sanitize_email( $email_address );
+	$action_name          = sanitize_key( $action_name );
+	$request_confirmation = sanitize_text_field( $request_confirmation );
 
 	if ( ! is_email( $email_address ) ) {
 		return new WP_Error( 'invalid_email', __( 'Invalid email address.' ) );
@@ -3354,13 +3356,19 @@ function wp_create_user_request( $email_address = '', $action_name = '', $reques
 		return new WP_Error( 'duplicate_request', __( 'An incomplete request for this email address already exists.' ) );
 	}
 
+	if ( 'yes' === $request_confirmation ) {
+		$status = 'request-pending';
+	} else {
+		$status = 'request-skipped';
+	}
+
 	$request_id = wp_insert_post(
 		array(
 			'post_author'   => $user_id,
 			'post_name'     => $action_name,
 			'post_title'    => $email_address,
 			'post_content'  => wp_json_encode( $request_data ),
-			'post_status'   => 'request-pending',
+			'post_status'   => $status,
 			'post_type'     => 'user_request',
 			'post_date'     => current_time( 'mysql', false ),
 			'post_date_gmt' => current_time( 'mysql', true ),
