wp_comments_personal_data_exporter

The timeline below displays how wordpress function wp_comments_personal_data_exporter has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Finds and exports personal data associated with an email address from the comments table.
 *
 * @since 4.9.6
 *
 * @param string $email_address The comment author email address.
 * @param int    $page          Comment page number.
 * @return array {
 *     An array of personal data.
 *
 *     @type array[] $data An array of personal data arrays.
 *     @type bool    $done Whether the exporter is finished.
 * }
 */
function wp_comments_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 500 comments at a time to avoid timing out.
    $number = 500;
    $page = (int) $page;
    $data_to_export = array();
    $comments = get_comments(array('author_email' => $email_address, 'number' => $number, 'paged' => $page, 'orderby' => 'comment_ID', 'order' => 'ASC', 'update_comment_meta_cache' => false));
    $comment_prop_to_export = array('comment_author' => __('Comment Author'), 'comment_author_email' => __('Comment Author Email'), 'comment_author_url' => __('Comment Author URL'), 'comment_author_IP' => __('Comment Author IP'), 'comment_agent' => __('Comment Author User Agent'), 'comment_date' => __('Comment Date'), 'comment_content' => __('Comment Content'), 'comment_link' => __('Comment URL'));
    foreach ((array) $comments as $comment) {
        $comment_data_to_export = array();
        foreach ($comment_prop_to_export as $key => $name) {
            $value = '';
            switch ($key) {
                case 'comment_author':
                case 'comment_author_email':
                case 'comment_author_url':
                case 'comment_author_IP':
                case 'comment_agent':
                case 'comment_date':
                    $value = $comment->{$key};
                    break;
                case 'comment_content':
                    $value = get_comment_text($comment->comment_ID);
                    break;
                case 'comment_link':
                    $value = get_comment_link($comment->comment_ID);
                    $value = sprintf('<a href="%s" target="_blank" rel="noopener">%s</a>', esc_url($value), esc_html($value));
                    break;
            }
            if (!empty($value)) {
                $comment_data_to_export[] = array('name' => $name, 'value' => $value);
            }
        }
        $data_to_export[] = array('group_id' => 'comments', 'group_label' => __('Comments'), 'group_description' => __('User&#8217;s comment data.'), 'item_id' => "comment-{$comment->comment_ID}", 'data' => $comment_data_to_export);
    }
    $done = count($comments) < $number;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: 6.2

/**
 * Finds and exports personal data associated with an email address from the comments table.
 *
 * @since 4.9.6
 *
 * @param string $email_address The comment author email address.
 * @param int    $page          Comment page.
 * @return array An array of personal data.
 */
function wp_comments_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 500 comments at a time to avoid timing out.
    $number = 500;
    $page = (int) $page;
    $data_to_export = array();
    $comments = get_comments(array('author_email' => $email_address, 'number' => $number, 'paged' => $page, 'orderby' => 'comment_ID', 'order' => 'ASC', 'update_comment_meta_cache' => false));
    $comment_prop_to_export = array('comment_author' => __('Comment Author'), 'comment_author_email' => __('Comment Author Email'), 'comment_author_url' => __('Comment Author URL'), 'comment_author_IP' => __('Comment Author IP'), 'comment_agent' => __('Comment Author User Agent'), 'comment_date' => __('Comment Date'), 'comment_content' => __('Comment Content'), 'comment_link' => __('Comment URL'));
    foreach ((array) $comments as $comment) {
        $comment_data_to_export = array();
        foreach ($comment_prop_to_export as $key => $name) {
            $value = '';
            switch ($key) {
                case 'comment_author':
                case 'comment_author_email':
                case 'comment_author_url':
                case 'comment_author_IP':
                case 'comment_agent':
                case 'comment_date':
                    $value = $comment->{$key};
                    break;
                case 'comment_content':
                    $value = get_comment_text($comment->comment_ID);
                    break;
                case 'comment_link':
                    $value = get_comment_link($comment->comment_ID);
                    $value = sprintf('<a href="%s" target="_blank" rel="noopener">%s</a>', esc_url($value), esc_html($value));
                    break;
            }
            if (!empty($value)) {
                $comment_data_to_export[] = array('name' => $name, 'value' => $value);
            }
        }
        $data_to_export[] = array('group_id' => 'comments', 'group_label' => __('Comments'), 'group_description' => __('User&#8217;s comment data.'), 'item_id' => "comment-{$comment->comment_ID}", 'data' => $comment_data_to_export);
    }
    $done = count($comments) < $number;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: 5.6

/**
 * Finds and exports personal data associated with an email address from the comments table.
 *
 * @since 4.9.6
 *
 * @param string $email_address The comment author email address.
 * @param int    $page          Comment page.
 * @return array An array of personal data.
 */
function wp_comments_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 500 comments at a time to avoid timing out.
    $number = 500;
    $page = (int) $page;
    $data_to_export = array();
    $comments = get_comments(array('author_email' => $email_address, 'number' => $number, 'paged' => $page, 'order_by' => 'comment_ID', 'order' => 'ASC', 'update_comment_meta_cache' => false));
    $comment_prop_to_export = array('comment_author' => __('Comment Author'), 'comment_author_email' => __('Comment Author Email'), 'comment_author_url' => __('Comment Author URL'), 'comment_author_IP' => __('Comment Author IP'), 'comment_agent' => __('Comment Author User Agent'), 'comment_date' => __('Comment Date'), 'comment_content' => __('Comment Content'), 'comment_link' => __('Comment URL'));
    foreach ((array) $comments as $comment) {
        $comment_data_to_export = array();
        foreach ($comment_prop_to_export as $key => $name) {
            $value = '';
            switch ($key) {
                case 'comment_author':
                case 'comment_author_email':
                case 'comment_author_url':
                case 'comment_author_IP':
                case 'comment_agent':
                case 'comment_date':
                    $value = $comment->{$key};
                    break;
                case 'comment_content':
                    $value = get_comment_text($comment->comment_ID);
                    break;
                case 'comment_link':
                    $value = get_comment_link($comment->comment_ID);
                    $value = sprintf('<a href="%s" target="_blank" rel="noopener">%s</a>', esc_url($value), esc_html($value));
                    break;
            }
            if (!empty($value)) {
                $comment_data_to_export[] = array('name' => $name, 'value' => $value);
            }
        }
        $data_to_export[] = array('group_id' => 'comments', 'group_label' => __('Comments'), 'group_description' => __('User&#8217;s comment data.'), 'item_id' => "comment-{$comment->comment_ID}", 'data' => $comment_data_to_export);
    }
    $done = count($comments) < $number;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: 5.4

/**
 * Finds and exports personal data associated with an email address from the comments table.
 *
 * @since 4.9.6
 *
 * @param string $email_address The comment author email address.
 * @param int    $page          Comment page.
 * @return array An array of personal data.
 */
function wp_comments_personal_data_exporter($email_address, $page = 1)
{
    // Limit us to 500 comments at a time to avoid timing out.
    $number = 500;
    $page = (int) $page;
    $data_to_export = array();
    $comments = get_comments(array('author_email' => $email_address, 'number' => $number, 'paged' => $page, 'order_by' => 'comment_ID', 'order' => 'ASC', 'update_comment_meta_cache' => false));
    $comment_prop_to_export = array('comment_author' => __('Comment Author'), 'comment_author_email' => __('Comment Author Email'), 'comment_author_url' => __('Comment Author URL'), 'comment_author_IP' => __('Comment Author IP'), 'comment_agent' => __('Comment Author User Agent'), 'comment_date' => __('Comment Date'), 'comment_content' => __('Comment Content'), 'comment_link' => __('Comment URL'));
    foreach ((array) $comments as $comment) {
        $comment_data_to_export = array();
        foreach ($comment_prop_to_export as $key => $name) {
            $value = '';
            switch ($key) {
                case 'comment_author':
                case 'comment_author_email':
                case 'comment_author_url':
                case 'comment_author_IP':
                case 'comment_agent':
                case 'comment_date':
                    $value = $comment->{$key};
                    break;
                case 'comment_content':
                    $value = get_comment_text($comment->comment_ID);
                    break;
                case 'comment_link':
                    $value = get_comment_link($comment->comment_ID);
                    $value = sprintf('<a href="%s" target="_blank" rel="noreferrer noopener">%s</a>', esc_url($value), esc_html($value));
                    break;
            }
            if (!empty($value)) {
                $comment_data_to_export[] = array('name' => $name, 'value' => $value);
            }
        }
        $data_to_export[] = array('group_id' => 'comments', 'group_label' => __('Comments'), 'group_description' => __('User&#8217;s comment data.'), 'item_id' => "comment-{$comment->comment_ID}", 'data' => $comment_data_to_export);
    }
    $done = count($comments) < $number;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: 5.3

/**
 * Finds and exports personal data associated with an email address from the comments table.
 *
 * @since 4.9.6
 *
 * @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)
{
    // Limit us to 500 comments at a time to avoid timing out.
    $number = 500;
    $page = (int) $page;
    $data_to_export = array();
    $comments = get_comments(array('author_email' => $email_address, 'number' => $number, 'paged' => $page, 'order_by' => 'comment_ID', 'order' => 'ASC', 'update_comment_meta_cache' => false));
    $comment_prop_to_export = array('comment_author' => __('Comment Author'), 'comment_author_email' => __('Comment Author Email'), 'comment_author_url' => __('Comment Author URL'), 'comment_author_IP' => __('Comment Author IP'), 'comment_agent' => __('Comment Author User Agent'), 'comment_date' => __('Comment Date'), 'comment_content' => __('Comment Content'), 'comment_link' => __('Comment URL'));
    foreach ((array) $comments as $comment) {
        $comment_data_to_export = array();
        foreach ($comment_prop_to_export as $key => $name) {
            $value = '';
            switch ($key) {
                case 'comment_author':
                case 'comment_author_email':
                case 'comment_author_url':
                case 'comment_author_IP':
                case 'comment_agent':
                case 'comment_date':
                    $value = $comment->{$key};
                    break;
                case 'comment_content':
                    $value = get_comment_text($comment->comment_ID);
                    break;
                case 'comment_link':
                    $value = get_comment_link($comment->comment_ID);
                    $value = sprintf('<a href="%s" target="_blank" rel="noreferrer noopener">%s</a>', esc_url($value), esc_html($value));
                    break;
            }
            if (!empty($value)) {
                $comment_data_to_export[] = array('name' => $name, 'value' => $value);
            }
        }
        $data_to_export[] = array('group_id' => 'comments', 'group_label' => __('Comments'), 'group_description' => __('User&#8217;s comment data.'), 'item_id' => "comment-{$comment->comment_ID}", 'data' => $comment_data_to_export);
    }
    $done = count($comments) < $number;
    return array('data' => $data_to_export, 'done' => $done);
}

WordPress Version: .10

/**
 * Finds and exports personal data associated with an email address from the comments table.
 *
 * @since 4.9.6
 *
 * @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)
{
    // Limit us to 500 comments at a time to avoid timing out.
    $number = 500;
    $page = (int) $page;
    $data_to_export = array();
    $comments = get_comments(array('author_email' => $email_address, 'number' => $number, 'paged' => $page, 'order_by' => 'comment_ID', 'order' => 'ASC', 'update_comment_meta_cache' => false));
    $comment_prop_to_export = array('comment_author' => __('Comment Author'), 'comment_author_email' => __('Comment Author Email'), 'comment_author_url' => __('Comment Author URL'), 'comment_author_IP' => __('Comment Author IP'), 'comment_agent' => __('Comment Author User Agent'), 'comment_date' => __('Comment Date'), 'comment_content' => __('Comment Content'), 'comment_link' => __('Comment URL'));
    foreach ((array) $comments as $comment) {
        $comment_data_to_export = array();
        foreach ($comment_prop_to_export as $key => $name) {
            $value = '';
            switch ($key) {
                case 'comment_author':
                case 'comment_author_email':
                case 'comment_author_url':
                case 'comment_author_IP':
                case 'comment_agent':
                case 'comment_date':
                    $value = $comment->{$key};
                    break;
                case 'comment_content':
                    $value = get_comment_text($comment->comment_ID);
                    break;
                case 'comment_link':
                    $value = get_comment_link($comment->comment_ID);
                    $value = sprintf('<a href="%s" target="_blank" rel="noreferrer noopener">%s</a>', esc_url($value), esc_html($value));
                    break;
            }
            if (!empty($value)) {
                $comment_data_to_export[] = array('name' => $name, 'value' => $value);
            }
        }
        $data_to_export[] = array('group_id' => 'comments', 'group_label' => __('Comments'), 'item_id' => "comment-{$comment->comment_ID}", 'data' => $comment_data_to_export);
    }
    $done = count($comments) < $number;
    return array('data' => $data_to_export, 'done' => $done);
}