Ticket #44266: 44266.5.diff
File 44266.5.diff, 10.6 KB (added by , 4 years ago) |
---|
-
src/wp-admin/css/forms.css
1218 1218 position: static; 1219 1219 } 1220 1220 1221 .privacy_requests .row-actions .remove-personal-data, 1222 .privacy_requests .row-actions .export-personal-data { 1223 display: inline-block; 1224 } 1225 1221 1226 .privacy_requests tbody .has-request-results th { 1222 1227 box-shadow: none; 1223 1228 } -
src/wp-admin/erase-personal-data.php
44 44 ) 45 45 ); 46 46 47 $requests_table->handle_bulk_messages(); 47 48 $requests_table->process_bulk_action(); 48 49 $requests_table->prepare_items(); 49 50 -
src/wp-admin/export-personal-data.php
44 44 ) 45 45 ); 46 46 47 $requests_table->handle_bulk_messages(); 47 48 $requests_table->process_bulk_action(); 48 49 $requests_table->prepare_items(); 49 50 -
src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php
56 56 'data-nonce="' . esc_attr( $nonce ) . 57 57 '">'; 58 58 59 $download_data_markup .= '<span class="export-personal-data-idle"><button type="button" class="button-link export-personal-data-handle">' . __( 'Download PersonalData' ) . '</button></span>' .59 $download_data_markup .= '<span class="export-personal-data-idle"><button type="button" class="button-link export-personal-data-handle">' . __( 'Download Data' ) . '</button></span>' . 60 60 '<span class="export-personal-data-processing hidden">' . __( 'Downloading Data...' ) . ' <span class="export-progress"></span></span>' . 61 61 '<span class="export-personal-data-success hidden"><button type="button" class="button-link export-personal-data-handle">' . __( 'Download Personal Data Again' ) . '</button></span>' . 62 62 '<span class="export-personal-data-failed hidden">' . __( 'Download failed.' ) . ' <button type="button" class="button-link">' . __( 'Retry' ) . '</button></span>'; … … 63 63 64 64 $download_data_markup .= '</div>'; 65 65 66 $resend_confirmation_markup = '<span>'; 67 $resend_confirmation_markup .= sprintf( 68 '<a href="%s" class="resend-confirmation" aria-label="%s">%s</a>', 69 esc_url( 70 wp_nonce_url( 71 add_query_arg( 72 array( 73 'action' => 'resend', 74 'request_id' => array( $request_id ), 75 ), 76 admin_url( 'export-personal-data.php' ) 77 ), 78 'bulk-privacy_requests' 79 ) 80 ), 81 esc_attr( 82 sprintf( 83 /* translators: %s: Request email. */ 84 __( 'Resend export confirmation request to “%s”.' ), 85 $item->email 86 ) 87 ), 88 __( 'Resend Confirmation' ) 89 ); 90 $resend_confirmation_markup .= '</span>'; 91 92 $delete_request_markup = '<span class="trash">'; 93 $delete_request_markup .= sprintf( 94 '<a href="%s" class="delete-request" aria-label="%s">%s</a>', 95 esc_url( 96 wp_nonce_url( 97 add_query_arg( 98 array( 99 'action' => 'delete', 100 'request_id' => array( $request_id ), 101 ), 102 admin_url( 'export-personal-data.php' ) 103 ), 104 'bulk-privacy_requests' 105 ) 106 ), 107 esc_attr( 108 sprintf( 109 /* translators: %s: Request email. */ 110 __( 'Delete export request for “%s”.' ), 111 $item->email 112 ) 113 ), 114 __( 'Delete Request' ) 115 ); 116 $delete_request_markup .= '</span>'; 117 66 118 $row_actions = array( 67 'download-data' => $download_data_markup, 119 'download-data' => $download_data_markup, 120 'resend-confirmation' => $resend_confirmation_markup, 121 'delete-request' => $delete_request_markup, 68 122 ); 69 123 70 124 return sprintf( '<a href="%1$s">%2$s</a> %3$s', esc_url( 'mailto:' . $item->email ), $item->email, $this->row_actions( $row_actions ) ); -
src/wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php
61 61 'data-nonce="' . esc_attr( $nonce ) . 62 62 '">'; 63 63 64 $remove_data_markup .= '<span class="remove-personal-data-idle"><button type="button" class="button-link remove-personal-data-handle">' . __( 'Force Eras e Personal Data' ) . '</button></span>' .64 $remove_data_markup .= '<span class="remove-personal-data-idle"><button type="button" class="button-link remove-personal-data-handle">' . __( 'Force Erasure' ) . '</button></span>' . 65 65 '<span class="remove-personal-data-processing hidden">' . __( 'Erasing Data...' ) . ' <span class="erasure-progress"></span></span>' . 66 66 '<span class="remove-personal-data-success hidden">' . __( 'Erasure completed.' ) . '</span>' . 67 67 '<span class="remove-personal-data-failed hidden">' . __( 'Force Erasure has failed.' ) . ' <button type="button" class="button-link remove-personal-data-handle">' . __( 'Retry' ) . '</button></span>'; … … 68 68 69 69 $remove_data_markup .= '</div>'; 70 70 71 $resend_confirmation_markup = '<span>'; 72 $resend_confirmation_markup .= sprintf( 73 '<a href="%s" class="resend-confirmation" aria-label="%s">%s</a>', 74 esc_url( 75 wp_nonce_url( 76 add_query_arg( 77 array( 78 'action' => 'resend', 79 'request_id' => array( $request_id ), 80 ), 81 admin_url( 'erase-personal-data.php' ) 82 ), 83 'bulk-privacy_requests' 84 ) 85 ), 86 esc_attr( 87 sprintf( 88 /* translators: %s: Request email. */ 89 __( 'Resend erasure confirmation request to “%s”.' ), 90 $item->email 91 ) 92 ), 93 __( 'Resend Confirmation' ) 94 ); 95 $resend_confirmation_markup .= '</span>'; 96 97 $delete_request_markup = '<span class="trash">'; 98 $delete_request_markup .= sprintf( 99 '<a href="%s" class="delete-request" aria-label="%s">%s</a>', 100 esc_url( 101 wp_nonce_url( 102 add_query_arg( 103 array( 104 'action' => 'delete', 105 'request_id' => array( $request_id ), 106 ), 107 admin_url( 'erase-personal-data.php' ) 108 ), 109 'bulk-privacy_requests' 110 ) 111 ), 112 esc_attr( 113 sprintf( 114 /* translators: %s: Request email. */ 115 __( 'Delete erasure request for “%s”.' ), 116 $item->email 117 ) 118 ), 119 __( 'Delete Request' ) 120 ); 121 $delete_request_markup .= '</span>'; 122 71 123 $row_actions = array( 72 'remove-data' => $remove_data_markup, 124 'remove-data' => $remove_data_markup, 125 'resend-confirmation' => $resend_confirmation_markup, 126 'delete-request' => $delete_request_markup, 73 127 ); 74 128 } 75 129 -
src/wp-admin/includes/class-wp-privacy-requests-table.php
216 216 } 217 217 218 218 /** 219 * Process bulk actions.219 * Handle bulk & row action messages. 220 220 * 221 * @since 5.6.0 222 */ 223 public function handle_bulk_messages() { 224 if ( isset( $_REQUEST['resent'] ) || isset( $_REQUEST['deleted'] ) ) { 225 $resent = isset( $_REQUEST['resent'] ) ? (int) $_REQUEST['resent'] : 0; 226 $deleted = isset( $_REQUEST['deleted'] ) ? (int) $_REQUEST['deleted'] : 0; 227 228 if ( $resent > 0 ) { 229 if ( 1 === $resent && isset( $_REQUEST['ids'] ) ) { 230 $email = get_the_title( $_REQUEST['ids'][0] ); 231 /* translators: %1$s: Request email. */ 232 $messages[] = sprintf( __( 'Request confirmation has been re-sent to %1$s.' ), esc_attr( $email ) ); 233 } else { 234 /* translators: %d: Number of requests. */ 235 $messages[] = sprintf( _n( 'Re-sent %d request.', 'Re-sent %d requests.', $resent ), $resent ); 236 } 237 } 238 239 if ( $deleted > 0 ) { 240 /* translators: %d: Number of requests. */ 241 $messages[] = sprintf( _n( 'Deleted %d request.', 'Deleted %d requests.', $deleted ), $deleted ); 242 } 243 } 244 245 if ( ! empty( $messages ) ) { 246 add_settings_error( 247 'bulk_action', 248 'bulk_action', 249 implode( "<br/>\n", $messages ), 250 'success' 251 ); 252 } 253 } 254 255 /** 256 * Process bulk & row actions. 257 * 221 258 * @since 4.9.6 259 * @since 5.6.0 Handle processing of the row actions. 222 260 */ 223 261 public function process_bulk_action() { 224 262 $action = $this->current_action(); … … 230 268 check_admin_referer( 'bulk-privacy_requests' ); 231 269 } 232 270 271 $sendback = wp_get_referer(); 272 $sendback = remove_query_arg( array( 'resent', 'deleted', 'ids' ), $sendback ); 273 233 274 switch ( $action ) { 234 case 'delete': 275 case 'resend': 276 $sent_ids = array(); 235 277 foreach ( $request_ids as $request_id ) { 236 if ( wp_delete_post( $request_id, true ) ) { 237 $count ++; 278 $resend = _wp_privacy_resend_request( $request_id ); 279 280 if ( $resend && ! is_wp_error( $resend ) ) { 281 $count++; 282 $sent_ids[] = $request_id; 238 283 } 239 284 } 240 285 241 add_settings_error( 242 'bulk_action', 243 'bulk_action', 244 /* translators: %d: Number of requests. */ 245 sprintf( _n( 'Deleted %d request.', 'Deleted %d requests.', $count ), $count ), 246 'success' 286 wp_redirect( 287 add_query_arg( 288 array( 289 'resent' => $count, 290 'ids' => $sent_ids, 291 ), 292 $sendback 293 ) 247 294 ); 295 exit; 248 296 break; 249 case ' resend':297 case 'delete': 250 298 foreach ( $request_ids as $request_id ) { 251 $resend = _wp_privacy_resend_request( $request_id ); 252 253 if ( $resend && ! is_wp_error( $resend ) ) { 299 if ( wp_delete_post( $request_id, true ) ) { 254 300 $count++; 255 301 } 256 302 } 257 303 258 add_settings_error( 259 'bulk_action', 260 'bulk_action', 261 /* translators: %d: Number of requests. */ 262 sprintf( _n( 'Re-sent %d request.', 'Re-sent %d requests.', $count ), $count ), 263 'success' 304 wp_redirect( 305 add_query_arg( 306 array( 307 'deleted' => $count 308 ), 309 $sendback 310 ) 264 311 ); 312 exit; 265 313 break; 266 314 } 267 315 }