Changeset 43011 for trunk/src/wp-admin/includes/user.php
- Timestamp:
- 04/27/2018 05:30:28 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/user.php
r43008 r43011 627 627 628 628 update_post_meta( $request_id, '_wp_user_request_confirmed_timestamp', time() ); 629 629 630 $request = wp_update_post( array( 630 'ID' => $request_ data['request_id'],631 'ID' => $request_id, 631 632 'post_status' => 'request-confirmed', 632 633 ) ); 634 633 635 return $request; 634 636 } … … 773 775 774 776 /** 777 * Cleans up failed and expired requests before displaying the list table. 778 * 779 * @since 4.9.6 780 * @access private 781 */ 782 function _wp_personal_data_cleanup_requests() { 783 $expires = (int) apply_filters( 'user_request_key_expiration', DAY_IN_SECONDS ); 784 $requests_query = new WP_Query( array( 785 'post_type' => 'user_request', 786 'posts_per_page' => -1, 787 'post_status' => 'request-pending', 788 'fields' => 'ids', 789 'date_query' => array( 790 array( 791 'column' => 'post_modified_gmt', 792 'before' => $expires . ' seconds ago', 793 ), 794 ), 795 ) ); 796 797 $request_ids = $requests_query->posts; 798 799 foreach ( $request_ids as $request_id ) { 800 wp_update_post( array( 801 'ID' => $request_id, 802 'post_status' => 'request-failed', 803 'post_password' => '', 804 ) ); 805 } 806 } 807 808 /** 775 809 * Personal data export. 776 810 * … … 784 818 785 819 _wp_personal_data_handle_actions(); 820 _wp_personal_data_cleanup_requests(); 786 821 787 822 $requests_table = new WP_Privacy_Data_Export_Requests_Table( array( … … 845 880 846 881 _wp_personal_data_handle_actions(); 882 _wp_personal_data_cleanup_requests(); 847 883 848 884 // "Borrow" xfn.js for now so we don't have to create new files. … … 883 919 <form class="search-form wp-clearfix"> 884 920 <?php $requests_table->search_box( __( 'Search Requests' ), 'requests' ); ?> 885 <input type="hidden" name="page" value=" export_personal_data" />921 <input type="hidden" name="page" value="remove_personal_data" /> 886 922 <input type="hidden" name="filter-status" value="<?php echo isset( $_REQUEST['filter-status'] ) ? esc_attr( sanitize_text_field( $_REQUEST['filter-status'] ) ) : ''; ?>" /> 887 923 <input type="hidden" name="orderby" value="<?php echo isset( $_REQUEST['orderby'] ) ? esc_attr( sanitize_text_field( $_REQUEST['orderby'] ) ) : ''; ?>" /> … … 949 985 public function get_columns() { 950 986 $columns = array( 951 'cb' 952 'email' 953 'status' 954 ' requested_timestamp' => __( 'Requested' ),955 'next_steps' 987 'cb' => '<input type="checkbox" />', 988 'email' => __( 'Requester' ), 989 'status' => __( 'Status' ), 990 'created_timestamp' => __( 'Requested' ), 991 'next_steps' => __( 'Next Steps' ), 956 992 ); 957 993 return $columns; … … 1001 1037 FROM {$wpdb->posts} 1002 1038 WHERE post_type = %s 1003 AND post_ title = %s1039 AND post_name = %s 1004 1040 GROUP BY post_status"; 1005 1041 … … 1089 1125 foreach ( $request_ids as $request_id ) { 1090 1126 $resend = _wp_privacy_resend_request( $request_id ); 1091 1127 1092 1128 if ( $resend && ! is_wp_error( $resend ) ) { 1093 1129 $count++; … … 1125 1161 $args = array( 1126 1162 'post_type' => $this->post_type, 1127 ' title' => $this->request_type,1163 'post_name__in' => array( $this->request_type ), 1128 1164 'posts_per_page' => $posts_per_page, 1129 1165 'offset' => isset( $_REQUEST['paged'] ) ? max( 0, absint( $_REQUEST['paged'] ) - 1 ) * $posts_per_page: 0, 1130 1166 'post_status' => 'any', 1167 's' => isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ) : '', 1131 1168 ); 1132 1169 … … 1136 1173 } 1137 1174 1138 if ( ! empty( $_REQUEST['s'] ) ) {1139 $args['meta_query'] = array(1140 $name_query,1141 'relation' => 'AND',1142 array(1143 'key' => '_wp_user_request_user_email',1144 'value' => isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ): '',1145 'compare' => 'LIKE',1146 ),1147 );1148 }1149 1150 1175 $requests_query = new WP_Query( $args ); 1151 1176 $requests = $requests_query->posts; … … 1154 1179 $this->items[] = wp_get_user_request_data( $request->ID ); 1155 1180 } 1181 1182 $this->items = array_filter( $this->items ); 1156 1183 1157 1184 $this->set_pagination_args( … … 1168 1195 * @since 4.9.6 1169 1196 * 1170 * @param array$item Item being shown.1197 * @param WP_User_Request $item Item being shown. 1171 1198 * @return string 1172 1199 */ 1173 1200 public function column_cb( $item ) { 1174 return sprintf( '<input type="checkbox" name="request_id[]" value="%1$s" /><span class="spinner"></span>', esc_attr( $item ['request_id']) );1201 return sprintf( '<input type="checkbox" name="request_id[]" value="%1$s" /><span class="spinner"></span>', esc_attr( $item->ID ) ); 1175 1202 } 1176 1203 … … 1180 1207 * @since 4.9.6 1181 1208 * 1182 * @param array$item Item being shown.1209 * @param WP_User_Request $item Item being shown. 1183 1210 * @return string 1184 1211 */ 1185 1212 public function column_status( $item ) { 1186 $status = get_post_status( $item ['request_id']);1213 $status = get_post_status( $item->ID ); 1187 1214 $status_object = get_post_status_object( $status ); 1188 1215 … … 1195 1222 switch ( $status ) { 1196 1223 case 'request-confirmed': 1197 $timestamp = $item ['confirmed_timestamp'];1224 $timestamp = $item->confirmed_timestamp; 1198 1225 break; 1199 1226 case 'request-completed': 1200 $timestamp = $item ['completed_timestamp'];1227 $timestamp = $item->completed_timestamp; 1201 1228 break; 1202 1229 } … … 1239 1266 * @since 4.9.6 1240 1267 * 1241 * @param array$item Item being shown.1242 * @param string $column_name Name of column being shown.1268 * @param WP_User_Request $item Item being shown. 1269 * @param string $column_name Name of column being shown. 1243 1270 * @return string 1244 1271 */ 1245 1272 public function column_default( $item, $column_name ) { 1246 $cell_value = $item [ $column_name ];1247 1248 if ( in_array( $column_name, array( ' requested_timestamp' ), true ) ) {1273 $cell_value = $item->$column_name; 1274 1275 if ( in_array( $column_name, array( 'created_timestamp' ), true ) ) { 1249 1276 return $this->get_timestamp_as_date( $cell_value ); 1250 1277 } … … 1258 1285 * @since 4.9.6 1259 1286 * 1260 * @param array$item Item being shown.1287 * @param WP_User_Request $item Item being shown. 1261 1288 * @return string 1262 1289 */ 1263 1290 public function column_email( $item ) { 1264 return sprintf( '%1$s %2$s', $item ['email'], $this->row_actions( array() ) );1291 return sprintf( '%1$s %2$s', $item->email, $this->row_actions( array() ) ); 1265 1292 } 1266 1293 … … 1270 1297 * @since 4.9.6 1271 1298 * 1272 * @param array$item Item being shown.1299 * @param WP_User_Request $item Item being shown. 1273 1300 */ 1274 1301 public function column_next_steps( $item ) {} … … 1279 1306 * @since 4.9.6 1280 1307 * 1281 * @param object $item The current item1308 * @param WP_User_Request $item The current item 1282 1309 */ 1283 1310 public function single_row( $item ) { 1284 $status = get_post_status( $item['request_id'] );1311 $status = $item->status; 1285 1312 1286 1313 echo '<tr class="status-' . esc_attr( $status ) . '">'; … … 1326 1353 * @since 4.9.6 1327 1354 * 1328 * @param array$item Item being shown.1355 * @param WP_User_Request $item Item being shown. 1329 1356 * @return string 1330 1357 */ … … 1332 1359 $exporters = apply_filters( 'wp_privacy_personal_data_exporters', array() ); 1333 1360 $exporters_count = count( $exporters ); 1334 $request_id = $item ['request_id'];1361 $request_id = $item->ID; 1335 1362 $nonce = wp_create_nonce( 'wp-privacy-export-personal-data-' . $request_id ); 1336 1363 … … 1349 1376 ); 1350 1377 1351 return sprintf( '%1$s %2$s', $item ['email'], $this->row_actions( $row_actions ) );1378 return sprintf( '%1$s %2$s', $item->email, $this->row_actions( $row_actions ) ); 1352 1379 } 1353 1380 … … 1357 1384 * @since 4.9.6 1358 1385 * 1359 * @param array$item Item being shown.1386 * @param WP_User_Request $item Item being shown. 1360 1387 */ 1361 1388 public function column_next_steps( $item ) { 1362 $status = get_post_status( $item['request_id'] );1389 $status = $item->status; 1363 1390 1364 1391 switch ( $status ) { … … 1370 1397 break; 1371 1398 case 'request-failed': 1372 submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item ['request_id']. ']', false );1399 submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item->ID . ']', false ); 1373 1400 break; 1374 1401 case 'request-completed': 1375 1402 echo '<a href="' . esc_url( wp_nonce_url( add_query_arg( array( 1376 1403 'action' => 'delete', 1377 'request_id' => array( $item ['request_id'])1404 'request_id' => array( $item->ID ) 1378 1405 ), admin_url( 'tools.php?page=export_personal_data' ) ), 'bulk-privacy_requests' ) ) . '">' . esc_html__( 'Remove request' ) . '</a>'; 1379 1406 break; … … 1411 1438 * @since 4.9.6 1412 1439 * 1413 * @param array$item Item being shown.1440 * @param WP_User_Request $item Item being shown. 1414 1441 * @return string 1415 1442 */ … … 1417 1444 $row_actions = array(); 1418 1445 1419 // Allow the administrator to "force remove" the personal data even if confirmation has not yet been received 1420 $status = get_post_status( $item['request_id'] );1446 // Allow the administrator to "force remove" the personal data even if confirmation has not yet been received. 1447 $status = $item->status; 1421 1448 if ( 'request-confirmed' !== $status ) { 1422 1449 $erasers = apply_filters( 'wp_privacy_personal_data_erasers', array() ); 1423 1450 $erasers_count = count( $erasers ); 1424 $request_id = $item ['request_id'];1451 $request_id = $item->ID; 1425 1452 $nonce = wp_create_nonce( 'wp-privacy-erase-personal-data-' . $request_id ); 1426 1453 … … 1440 1467 } 1441 1468 1442 return sprintf( '%1$s %2$s', $item ['email'], $this->row_actions( $row_actions ) );1469 return sprintf( '%1$s %2$s', $item->email, $this->row_actions( $row_actions ) ); 1443 1470 } 1444 1471 … … 1448 1475 * @since 4.9.6 1449 1476 * 1450 * @param array$item Item being shown.1477 * @param WP_User_Request $item Item being shown. 1451 1478 */ 1452 1479 public function column_next_steps( $item ) { 1453 $status = get_post_status( $item['request_id'] );1480 $status = $item->status; 1454 1481 1455 1482 switch ( $status ) { … … 1460 1487 $erasers = apply_filters( 'wp_privacy_personal_data_erasers', array() ); 1461 1488 $erasers_count = count( $erasers ); 1462 $request_id = $item ['request_id'];1489 $request_id = $item->ID; 1463 1490 $nonce = wp_create_nonce( 'wp-privacy-erase-personal-data-' . $request_id ); 1464 1491 … … 1478 1505 break; 1479 1506 case 'request-failed': 1480 submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item ['request_id']. ']', false );1507 submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item->ID . ']', false ); 1481 1508 break; 1482 1509 case 'request-completed': 1483 1510 echo '<a href="' . esc_url( wp_nonce_url( add_query_arg( array( 1484 1511 'action' => 'delete', 1485 'request_id' => array( $item ['request_id']),1512 'request_id' => array( $item->ID ), 1486 1513 ), admin_url( 'tools.php?page=remove_personal_data' ) ), 'bulk-privacy_requests' ) ) . '">' . esc_html__( 'Remove request' ) . '</a>'; 1487 1514 break;
Note: See TracChangeset
for help on using the changeset viewer.