diff --git src/wp-admin/includes/user.php src/wp-admin/includes/user.php
index 4e9a836..d3d2961 100644
--- src/wp-admin/includes/user.php
+++ src/wp-admin/includes/user.php
@@ -609,13 +609,13 @@ function _wp_privacy_resend_request( $request_id ) {
 }
 
 /**
- * Marks a request as completed by the admin and logs the datetime.
+ * Marks a request as completed by the admin and logs the current timestamp.
  *
  * @since 4.9.6
  * @access private
  *
- * @param int $request_id Request ID.
- * @return int|WP_Error Request ID on succes or WP_Error.
+ * @param  int          $request_id Request ID.
+ * @return int|WP_Error $request    Request ID on success or WP_Error.
  */
 function _wp_privacy_completed_request( $request_id ) {
 	$request_id   = absint( $request_id );
@@ -625,11 +625,11 @@ function _wp_privacy_completed_request( $request_id ) {
 		return new WP_Error( 'privacy_request_error', __( 'Invalid request.' ) );
 	}
 
-	update_post_meta( $request_id, '_wp_user_request_confirmed_timestamp', time() );
+	update_post_meta( $request_id, '_wp_user_request_completed_timestamp', time() );
 
 	$request = wp_update_post( array(
 		'ID'          => $request_id,
-		'post_status' => 'request-confirmed',
+		'post_status' => 'request-completed',
 	) );
 
 	return $request;
@@ -1016,8 +1016,8 @@ abstract class WP_Privacy_Requests_Table extends WP_List_Table {
 		}
 
 		$query = "
-			SELECT post_status, COUNT( * ) AS num_posts 
-			FROM {$wpdb->posts} 
+			SELECT post_status, COUNT( * ) AS num_posts
+			FROM {$wpdb->posts}
 			WHERE post_type = %s
 			AND post_name = %s
 			GROUP BY post_status";
diff --git tests/phpunit/tests/privacy/wpPrivacyCompletedRequest.php tests/phpunit/tests/privacy/wpPrivacyCompletedRequest.php
new file mode 100644
index 0000000..d6d7404
--- /dev/null
+++ tests/phpunit/tests/privacy/wpPrivacyCompletedRequest.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Test the `_wp_privacy_completed_request()` function.
+ *
+ * @package WordPress\UnitTests
+ *
+ * @since 4.9.6
+ */
+
+/**
+ * Tests_PrivacyCompletedRequest class.
+ *
+ * @group privacy
+ * @covers _wp_privacy_completed_request
+ *
+ * @since 4.9.6
+ */
+class Tests_PrivacyCompletedRequest extends WP_UnitTestCase {
+	/**
+	 * Request ID
+	 *
+	 * @since 4.9.6
+	 *
+	 * @var int $request_id
+	 */
+	protected static $request_id;
+
+	/**
+	 * Create fixtures.
+	 *
+	 * @param WP_UnitTest_Factory $factory Factory.
+	 */
+	public static function wpSetUpBeforeClass( $factory ) {
+		self::$request_id = wp_create_user_request( 'requester@example.com', 'export_personal_data' );
+	}
+
+	/**
+	 * The function should return error for invalid request ID.
+	 *
+	 * @ticket 43913
+	 */
+	public function test__wp_privacy_completed_request_should_return_error_for_invalid_request_id() {
+		$actual = _wp_privacy_completed_request( 0 );
+		$this->assertWPError( $actual );
+		$this->assertSame( 'privacy_request_error', $actual->get_error_code() );
+
+		$actual = _wp_privacy_completed_request( PHP_INT_MAX );
+		$this->assertWPError( $actual );
+		$this->assertSame( 'privacy_request_error', $actual->get_error_code() );
+	}
+
+	/**
+	 * The function should mark a request as completed.
+	 *
+	 * @ticket 43913
+	 */
+	public function test__wp_privacy_completed_request_should_mark_request_completed() {
+		$this->assertSame( 'request-pending', get_post_status( self::$request_id ) );
+		$this->assertSame( self::$request_id, _wp_privacy_completed_request( self::$request_id ) );
+		$this->assertSame( 'request-completed', get_post_status( self::$request_id ) );
+	}
+
+	/**
+	 * The function should log the request timestamp.
+	 *
+	 * @ticket 43913
+	 */
+	public function test__wp_privacy_completed_request_should_log_request_timestamp() {
+		$this->assertEmpty( get_post_meta( self::$request_id, '_wp_user_request_completed_timestamp', true ) );
+		$this->assertSame( self::$request_id, _wp_privacy_completed_request( self::$request_id ) );
+		$this->assertNotEmpty( get_post_meta( self::$request_id, '_wp_user_request_completed_timestamp', true ) );
+	}
+}
