| | 309 | /** |
| | 310 | * Privacy export & erasure requests. |
| | 311 | */ |
| | 312 | |
| | 313 | // Only show this to users with "manage_privacy_options" |
| | 314 | if ( current_user_can( 'manage_privacy_options' ) ) { |
| | 315 | |
| | 316 | // We only want to count pending, confirmed & failed requests |
| | 317 | // no need to take under account the "request-completed" status. |
| | 318 | foreach ( array( 'export_personal_data', 'remove_personal_data' ) as $request_type ) { |
| | 319 | $data_requests = new WP_Query( |
| | 320 | array( |
| | 321 | 'post_type' => 'user_request', |
| | 322 | 'post_name__in' => array( $request_type ), // Request type stored in post_name column. |
| | 323 | 'post_status' => array( |
| | 324 | 'request-pending', |
| | 325 | 'request-confirmed', |
| | 326 | 'request-failed', |
| | 327 | ), |
| | 328 | 'fields' => 'ids', |
| | 329 | ) |
| | 330 | ); |
| | 331 | |
| | 332 | if ( 'export_personal_data' === $request_type ) { |
| | 333 | /* translators: %s: Number of posts. */ |
| | 334 | $text = _n( '%s Data Export Request', '%s Data Export Requests', $data_requests->found_posts ); |
| | 335 | |
| | 336 | $text = sprintf( $text, number_format_i18n( $data_requests->found_posts ) ); |
| | 337 | |
| | 338 | printf( '<li class="%1$s-count"><a href="' . esc_url( admin_url( 'export-personal-data.php' ) ) . '">%2$s</a></li>', $request_type, $text ); |
| | 339 | } else { |
| | 340 | /* translators: %s: Number of pages. */ |
| | 341 | $text = _n( '%s Data Erasure Request', '%s Data Erasure Requests', $data_requests->found_posts ); |
| | 342 | |
| | 343 | $text = sprintf( $text, number_format_i18n( $data_requests->found_posts ) ); |
| | 344 | |
| | 345 | printf( '<li class="%1$s-count"><a href="' . esc_url( admin_url( 'erase-personal-data.php' ) ) . '">%2$s</a></li>', $request_type, $text ); |
| | 346 | } |
| | 347 | } |
| | 348 | } |
| | 349 | |