diff --git src/wp-includes/comment.php src/wp-includes/comment.php
index 595f825..6c484fa 100644
--- src/wp-includes/comment.php
+++ src/wp-includes/comment.php
@@ -3276,10 +3276,12 @@ function wp_handle_comment_submission( $comment_data ) {
 }
 
 /**
- * Registers the personal data exporter for comments
+ * Registers the personal data exporter for comments.
  *
- * @param array   $exporters   An array of personal data exporters.
- * @return array  An array of personal data exporters.
+ * @since 5.0.0
+ *
+ * @param  array $exporters An array of personal data exporters.
+ * @return array $exporters An array of personal data exporters.
  */
 function wp_register_comment_personal_data_exporter( $exporters ) {
 	$exporters[] = array(
@@ -3293,19 +3295,23 @@ function wp_register_comment_personal_data_exporter( $exporters ) {
 /**
  * Finds and exports personal data associated with an email address from the comments table.
  *
- * @param string  $email_address The comment author email address.
- * @param int     $page          Comment page.
- * @return array  An array of personal data.
+ * @since 5.0.0
+ *
+ * @param string $email_address The comment author email address.
+ * @param int    $page          Comment page.
+ * @return array $return        An array of personal data.
  */
 function wp_comments_personal_data_exporter( $email_address, $page = 1 ) {
 
-	// Technically, strtolower isn't necessary since get_comments will match email insensitive
-	// But it is a good example for plugin developers whose targets might not be as generous
-	$email_address = trim( strtolower( $email_address ) );
+	/**
+	 * Technically, strtolower isn't necessary since get_comments will match email insensitive.
+	 * But it is a good example for plugin developers whose targets might not be as generous.
+	 */
+	$email_address = strtolower( trim( $email_address ) );
 
-	// Limit us to 500 comments at a time to avoid timing out
+	// Limit us to 500 comments at a time to avoid timing out.
 	$number = 500;
-	$page = (int) $page;
+	$page   = (int) $page;
 
 	$data_to_export = array();
 
@@ -3324,7 +3330,7 @@ function wp_comments_personal_data_exporter( $email_address, $page = 1 ) {
 		'comment_author_email' => __( 'Comment Author Email' ),
 		'comment_author_url'   => __( 'Comment Author URL' ),
 		'comment_author_IP'    => __( 'Comment Author IP' ),
-		'comment_agent'        => __( 'Comment Agent' ),
+		'comment_agent'        => __( 'Comment Author User Agent' ),
 		'comment_date'         => __( 'Comment Date' ),
 		'comment_content'      => __( 'Comment Content' ),
 		'comment_link'         => __( 'Comment URL' ),
@@ -3336,7 +3342,7 @@ function wp_comments_personal_data_exporter( $email_address, $page = 1 ) {
 		foreach ( $comment_prop_to_export as $key => $name ) {
 			$value = '';
 
-			switch( $key ) {
+			switch ( $key ) {
 				case 'comment_author':
 				case 'comment_author_email':
 				case 'comment_author_url':
@@ -3356,7 +3362,10 @@ function wp_comments_personal_data_exporter( $email_address, $page = 1 ) {
 			}
 
 			if ( ! empty( $value ) ) {
-				$comment_data_to_export[] = array( 'name' => $name, 'value' => $value );
+				$comment_data_to_export[] = array(
+					'name'  => $name,
+					'value' => $value,
+				);
 			}
 		}
 
diff --git tests/phpunit/tests/comment.php tests/phpunit/tests/comment.php
index 43dacdb..1efb8d9 100644
--- tests/phpunit/tests/comment.php
+++ tests/phpunit/tests/comment.php
@@ -891,4 +891,121 @@ class Tests_Comment extends WP_UnitTestCase {
 
 		$this->assertSame( '1', $comment->comment_approved );
 	}
+
+	/**
+	 * Testing the `wp_comments_personal_data_exporter()` function.
+	 *
+	 * @ticket 43440
+	 */
+	public function test_wp_comments_personal_data_exporter() {
+		$args = array(
+			'comment_post_ID'      => self::$post_id,
+			'comment_author'       => 'Comment Author',
+			'comment_author_email' => 'personal@local.host',
+			'comment_author_url'   => 'https://local.host/',
+			'comment_author_IP'    => '192.168.0.1',
+			'comment_agent'        => 'SOME_AGENT',
+			'comment_date'         => '2018-03-28 20:05:00',
+			'comment_content'      => 'Comment',
+		);
+
+		$c = self::factory()->comment->create( $args );
+
+		$actual   = wp_comments_personal_data_exporter( $args['comment_author_email'] );
+		$expected = $args;
+
+		// Done.
+		$this->assertSame( true, $actual['done'] );
+
+		// Number of exported comments.
+		$this->assertSame( 1, count( $actual['data'] ) );
+
+		// Number of exported comment properties.
+		$this->assertSame( 8, count( $actual['data'][0]['data'] ) );
+
+		// Exported group.
+		$this->assertSame( 'comments', $actual['data'][0]['group_id'] );
+		$this->assertSame( 'Comments', $actual['data'][0]['group_label'] );
+
+		// Exported comment properties.
+		$this->assertSame( $expected['comment_author'], $actual['data'][0]['data'][0]['value'] );
+		$this->assertSame( $expected['comment_author_email'], $actual['data'][0]['data'][1]['value'] );
+		$this->assertSame( $expected['comment_author_url'], $actual['data'][0]['data'][2]['value'] );
+		$this->assertSame( $expected['comment_author_IP'], $actual['data'][0]['data'][3]['value'] );
+		$this->assertSame( $expected['comment_agent'], $actual['data'][0]['data'][4]['value'] );
+		$this->assertSame( $expected['comment_date'], $actual['data'][0]['data'][5]['value'] );
+		$this->assertSame( $expected['comment_content'], $actual['data'][0]['data'][6]['value'] );
+		$this->assertSame( get_comment_link( $c ), $actual['data'][0]['data'][7]['value'] );
+	}
+
+	/**
+	 * Testing the `wp_comments_personal_data_exporter()` function with no comments found.
+	 *
+	 * @ticket 43440
+	 */
+	public function test_wp_comments_personal_data_exporter_with_no_comments_found() {
+
+		$actual = wp_comments_personal_data_exporter( 'nocommentsfound@local.host' );
+
+		$expected = array(
+			'data' => array(),
+			'done' => true,
+		);
+
+		$this->assertSame( $expected, $actual );
+	}
+
+	/**
+	 * Testing the `wp_comments_personal_data_exporter()` function for an empty comment property.
+	 *
+	 * @ticket 43440
+	 */
+	public function test_wp_comments_personal_data_exporter_with_empty_comment_prop() {
+		$args = array(
+			'comment_post_ID'      => self::$post_id,
+			'comment_author'       => 'Comment Author',
+			'comment_author_email' => 'personal@local.host',
+			'comment_author_url'   => 'https://local.host/',
+			'comment_author_IP'    => '192.168.0.1',
+			'comment_date'         => '2018-03-28 20:05:00',
+			'comment_agent'        => '',
+			'comment_content'      => 'Comment',
+		);
+
+		$c = self::factory()->comment->create( $args );
+
+		$actual = wp_comments_personal_data_exporter( $args['comment_author_email'] );
+
+		$this->assertSame( true, $actual['done'] );
+		// Number of exported comments.
+		$this->assertSame( 1, count( $actual['data'] ) );
+		// Number of exported comment properties.
+		$this->assertSame( 7, count( $actual['data'][0]['data'] ) );
+	}
+
+	/**
+	 * Testing the `wp_comments_personal_data_exporter()` function for the second page with less than 500 comments.
+	 *
+	 * @ticket 43440
+	 */
+	public function test_wp_comments_personal_data_exporter_second_page() {
+		$args = array(
+			'comment_post_ID'      => self::$post_id,
+			'comment_author'       => 'Comment Author',
+			'comment_author_email' => 'personal@local.host',
+			'comment_author_url'   => 'https://local.host/',
+			'comment_author_IP'    => '192.168.0.1',
+			'comment_date'         => '2018-03-28 20:05:00',
+			'comment_agent'        => 'SOME_AGENT',
+			'comment_content'      => 'Comment',
+		);
+
+		$c = self::factory()->comment->create( $args );
+
+		$actual = wp_comments_personal_data_exporter( $args['comment_author_email'], 2 );
+
+		$this->assertSame( true, $actual['done'] );
+		// Number of exported comments.
+		$this->assertSame( 0, count( $actual['data'] ) );
+	}
 }
