wp_privacy_process_personal_data_erasure_page

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

WordPress Version: 5.7

/**
 * Mark erasure requests as completed after processing is finished.
 *
 * This intercepts the Ajax responses to personal data eraser page requests, and
 * monitors the status of a request. Once all of the processing has finished, the
 * request is marked as completed.
 *
 * @since 4.9.6
 *
 * @see 'wp_privacy_personal_data_erasure_page'
 *
 * @param array  $response      The response from the personal data eraser for
 *                              the given page.
 * @param int    $eraser_index  The index of the personal data eraser. Begins
 *                              at 1.
 * @param string $email_address The email address of the user whose personal
 *                              data this is.
 * @param int    $page          The page of personal data for this eraser.
 *                              Begins at 1.
 * @param int    $request_id    The request ID for this personal data erasure.
 * @return array The filtered response.
 */
function wp_privacy_process_personal_data_erasure_page($response, $eraser_index, $email_address, $page, $request_id)
{
    /*
     * If the eraser response is malformed, don't attempt to consume it; let it
     * pass through, so that the default Ajax processing will generate a warning
     * to the user.
     */
    if (!is_array($response)) {
        return $response;
    }
    if (!array_key_exists('done', $response)) {
        return $response;
    }
    if (!array_key_exists('items_removed', $response)) {
        return $response;
    }
    if (!array_key_exists('items_retained', $response)) {
        return $response;
    }
    if (!array_key_exists('messages', $response)) {
        return $response;
    }
    // Get the request.
    $request = wp_get_user_request($request_id);
    if (!$request || 'remove_personal_data' !== $request->action_name) {
        wp_send_json_error(__('Invalid request ID when processing personal data to erase.'));
    }
    /** This filter is documented in wp-admin/includes/ajax-actions.php */
    $erasers = apply_filters('wp_privacy_personal_data_erasers', array());
    $is_last_eraser = count($erasers) === $eraser_index;
    $eraser_done = $response['done'];
    if (!$is_last_eraser || !$eraser_done) {
        return $response;
    }
    _wp_privacy_completed_request($request_id);
    /**
     * Fires immediately after a personal data erasure request has been marked completed.
     *
     * @since 4.9.6
     *
     * @param int $request_id The privacy request post ID associated with this request.
     */
    do_action('wp_privacy_personal_data_erased', $request_id);
    return $response;
}

WordPress Version: 5.6

/**
 * Mark erasure requests as completed after processing is finished.
 *
 * This intercepts the Ajax responses to personal data eraser page requests, and
 * monitors the status of a request. Once all of the processing has finished, the
 * request is marked as completed.
 *
 * @since 4.9.6
 *
 * @see 'wp_privacy_personal_data_erasure_page'
 *
 * @param array  $response      The response from the personal data eraser for
 *                              the given page.
 * @param int    $eraser_index  The index of the personal data eraser. Begins
 *                              at 1.
 * @param string $email_address The email address of the user whose personal
 *                              data this is.
 * @param int    $page          The page of personal data for this eraser.
 *                              Begins at 1.
 * @param int    $request_id    The request ID for this personal data erasure.
 * @return array The filtered response.
 */
function wp_privacy_process_personal_data_erasure_page($response, $eraser_index, $email_address, $page, $request_id)
{
    /*
     * If the eraser response is malformed, don't attempt to consume it; let it
     * pass through, so that the default Ajax processing will generate a warning
     * to the user.
     */
    if (!is_array($response)) {
        return $response;
    }
    if (!array_key_exists('done', $response)) {
        return $response;
    }
    if (!array_key_exists('items_removed', $response)) {
        return $response;
    }
    if (!array_key_exists('items_retained', $response)) {
        return $response;
    }
    if (!array_key_exists('messages', $response)) {
        return $response;
    }
    // Get the request.
    $request = wp_get_user_request($request_id);
    if (!$request || 'remove_personal_data' !== $request->action_name) {
        wp_send_json_error(__('Invalid request ID when processing user privacy eraser data.'));
    }
    /** This filter is documented in wp-admin/includes/ajax-actions.php */
    $erasers = apply_filters('wp_privacy_personal_data_erasers', array());
    $is_last_eraser = count($erasers) === $eraser_index;
    $eraser_done = $response['done'];
    if (!$is_last_eraser || !$eraser_done) {
        return $response;
    }
    _wp_privacy_completed_request($request_id);
    /**
     * Fires immediately after a personal data erasure request has been marked completed.
     *
     * @since 4.9.6
     *
     * @param int $request_id The privacy request post ID associated with this request.
     */
    do_action('wp_privacy_personal_data_erased', $request_id);
    return $response;
}

WordPress Version: 5.5

/**
 * Mark erasure requests as completed after processing is finished.
 *
 * This intercepts the Ajax responses to personal data eraser page requests, and
 * monitors the status of a request. Once all of the processing has finished, the
 * request is marked as completed.
 *
 * @since 4.9.6
 *
 * @see 'wp_privacy_personal_data_erasure_page'
 *
 * @param array  $response      The response from the personal data eraser for
 *                              the given page.
 * @param int    $eraser_index  The index of the personal data eraser. Begins
 *                              at 1.
 * @param string $email_address The email address of the user whose personal
 *                              data this is.
 * @param int    $page          The page of personal data for this eraser.
 *                              Begins at 1.
 * @param int    $request_id    The request ID for this personal data erasure.
 * @return array The filtered response.
 */
function wp_privacy_process_personal_data_erasure_page($response, $eraser_index, $email_address, $page, $request_id)
{
    /*
     * If the eraser response is malformed, don't attempt to consume it; let it
     * pass through, so that the default Ajax processing will generate a warning
     * to the user.
     */
    if (!is_array($response)) {
        return $response;
    }
    if (!array_key_exists('done', $response)) {
        return $response;
    }
    if (!array_key_exists('items_removed', $response)) {
        return $response;
    }
    if (!array_key_exists('items_retained', $response)) {
        return $response;
    }
    if (!array_key_exists('messages', $response)) {
        return $response;
    }
    // Get the request.
    $request = wp_get_user_request($request_id);
    if (!$request || 'remove_personal_data' !== $request->action_name) {
        wp_send_json_error(__('Invalid request ID when processing eraser data.'));
    }
    /** This filter is documented in wp-admin/includes/ajax-actions.php */
    $erasers = apply_filters('wp_privacy_personal_data_erasers', array());
    $is_last_eraser = count($erasers) === $eraser_index;
    $eraser_done = $response['done'];
    if (!$is_last_eraser || !$eraser_done) {
        return $response;
    }
    _wp_privacy_completed_request($request_id);
    /**
     * Fires immediately after a personal data erasure request has been marked completed.
     *
     * @since 4.9.6
     *
     * @param int $request_id The privacy request post ID associated with this request.
     */
    do_action('wp_privacy_personal_data_erased', $request_id);
    return $response;
}

WordPress Version: 5.4

/**
 * Mark erasure requests as completed after processing is finished.
 *
 * This intercepts the Ajax responses to personal data eraser page requests, and
 * monitors the status of a request. Once all of the processing has finished, the
 * request is marked as completed.
 *
 * @since 4.9.6
 *
 * @see wp_privacy_personal_data_erasure_page
 *
 * @param array  $response      The response from the personal data eraser for
 *                              the given page.
 * @param int    $eraser_index  The index of the personal data eraser. Begins
 *                              at 1.
 * @param string $email_address The email address of the user whose personal
 *                              data this is.
 * @param int    $page          The page of personal data for this eraser.
 *                              Begins at 1.
 * @param int    $request_id    The request ID for this personal data erasure.
 * @return array The filtered response.
 */
function wp_privacy_process_personal_data_erasure_page($response, $eraser_index, $email_address, $page, $request_id)
{
    /*
     * If the eraser response is malformed, don't attempt to consume it; let it
     * pass through, so that the default Ajax processing will generate a warning
     * to the user.
     */
    if (!is_array($response)) {
        return $response;
    }
    if (!array_key_exists('done', $response)) {
        return $response;
    }
    if (!array_key_exists('items_removed', $response)) {
        return $response;
    }
    if (!array_key_exists('items_retained', $response)) {
        return $response;
    }
    if (!array_key_exists('messages', $response)) {
        return $response;
    }
    // Get the request.
    $request = wp_get_user_request($request_id);
    if (!$request || 'remove_personal_data' !== $request->action_name) {
        wp_send_json_error(__('Invalid request ID when processing eraser data.'));
    }
    /** This filter is documented in wp-admin/includes/ajax-actions.php */
    $erasers = apply_filters('wp_privacy_personal_data_erasers', array());
    $is_last_eraser = count($erasers) === $eraser_index;
    $eraser_done = $response['done'];
    if (!$is_last_eraser || !$eraser_done) {
        return $response;
    }
    _wp_privacy_completed_request($request_id);
    /**
     * Fires immediately after a personal data erasure request has been marked completed.
     *
     * @since 4.9.6
     *
     * @param int $request_id The privacy request post ID associated with this request.
     */
    do_action('wp_privacy_personal_data_erased', $request_id);
    return $response;
}

WordPress Version: .10

/**
 * Mark erasure requests as completed after processing is finished.
 *
 * This intercepts the Ajax responses to personal data eraser page requests, and
 * monitors the status of a request. Once all of the processing has finished, the
 * request is marked as completed.
 *
 * @since 4.9.6
 *
 * @see wp_privacy_personal_data_erasure_page
 *
 * @param array  $response      The response from the personal data eraser for
 *                              the given page.
 * @param int    $eraser_index  The index of the personal data eraser. Begins
 *                              at 1.
 * @param string $email_address The email address of the user whose personal
 *                              data this is.
 * @param int    $page          The page of personal data for this eraser.
 *                              Begins at 1.
 * @param int    $request_id    The request ID for this personal data erasure.
 * @return array The filtered response.
 */
function wp_privacy_process_personal_data_erasure_page($response, $eraser_index, $email_address, $page, $request_id)
{
    /*
     * If the eraser response is malformed, don't attempt to consume it; let it
     * pass through, so that the default Ajax processing will generate a warning
     * to the user.
     */
    if (!is_array($response)) {
        return $response;
    }
    if (!array_key_exists('done', $response)) {
        return $response;
    }
    if (!array_key_exists('items_removed', $response)) {
        return $response;
    }
    if (!array_key_exists('items_retained', $response)) {
        return $response;
    }
    if (!array_key_exists('messages', $response)) {
        return $response;
    }
    $request = wp_get_user_request_data($request_id);
    if (!$request || 'remove_personal_data' !== $request->action_name) {
        wp_send_json_error(__('Invalid request ID when processing eraser data.'));
    }
    /** This filter is documented in wp-admin/includes/ajax-actions.php */
    $erasers = apply_filters('wp_privacy_personal_data_erasers', array());
    $is_last_eraser = count($erasers) === $eraser_index;
    $eraser_done = $response['done'];
    if (!$is_last_eraser || !$eraser_done) {
        return $response;
    }
    _wp_privacy_completed_request($request_id);
    /**
     * Fires immediately after a personal data erasure request has been marked completed.
     *
     * @since 4.9.6
     *
     * @param int $request_id The privacy request post ID associated with this request.
     */
    do_action('wp_privacy_personal_data_erased', $request_id);
    return $response;
}