diff -r 34716fd837a4 -r be944660c56a wp/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php --- a/wp/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php Tue Dec 15 15:52:01 2020 +0100 +++ b/wp/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php Wed Sep 21 18:19:35 2022 +0200 @@ -47,30 +47,61 @@ $row_actions = array(); // Allow the administrator to "force remove" the personal data even if confirmation has not yet been received. - $status = $item->status; + $status = $item->status; + $request_id = $item->ID; + $row_actions = array(); if ( 'request-confirmed' !== $status ) { /** This filter is documented in wp-admin/includes/ajax-actions.php */ $erasers = apply_filters( 'wp_privacy_personal_data_erasers', array() ); $erasers_count = count( $erasers ); - $request_id = $item->ID; $nonce = wp_create_nonce( 'wp-privacy-erase-personal-data-' . $request_id ); - $remove_data_markup = '
'; - $remove_data_markup .= '' . - '' . + $remove_data_markup .= '' . + '' . '' . - ''; + ''; + + $remove_data_markup .= ''; + + $row_actions['remove-data'] = $remove_data_markup; + } - $remove_data_markup .= '
'; + if ( 'request-completed' !== $status ) { + $complete_request_markup = ''; + $complete_request_markup .= sprintf( + '%s', + esc_url( + wp_nonce_url( + add_query_arg( + array( + 'action' => 'complete', + 'request_id' => array( $request_id ), + ), + admin_url( 'erase-personal-data.php' ) + ), + 'bulk-privacy_requests' + ) + ), + esc_attr( + sprintf( + /* translators: %s: Request email. */ + __( 'Mark export request for “%s” as completed.' ), + $item->email + ) + ), + __( 'Complete request' ) + ); + $complete_request_markup .= ''; + } - $row_actions = array( - 'remove-data' => $remove_data_markup, - ); + if ( ! empty( $complete_request_markup ) ) { + $row_actions['complete-request'] = $complete_request_markup; } return sprintf( '%2$s %3$s', esc_url( 'mailto:' . $item->email ), $item->email, $this->row_actions( $row_actions ) ); @@ -105,10 +136,10 @@ '">'; ?> - - + + - + ';