Make WordPress Core

Ticket #43960: 43960.2.diff

File 43960.2.diff, 3.2 KB (added by birgire, 6 years ago)
  • src/wp-admin/includes/user.php

    diff --git src/wp-admin/includes/user.php src/wp-admin/includes/user.php
    index 5feb0b8..e31ca53 100644
    function _wp_personal_data_export_page() { 
    799799        $requests_table = new WP_Privacy_Data_Export_Requests_Table( array(
    800800                'plural'   => 'privacy_requests',
    801801                'singular' => 'privacy_request',
     802                'screen'   => 'export_personal_data',
    802803        ) );
    803804        $requests_table->process_bulk_action();
    804805        $requests_table->prepare_items();
    function _wp_personal_data_removal_page() { 
    870871        $requests_table = new WP_Privacy_Data_Removal_Requests_Table( array(
    871872                'plural'   => 'privacy_requests',
    872873                'singular' => 'privacy_request',
     874                'screen'   => 'remove_personal_data',
    873875        ) );
    874876
    875877        $requests_table->process_bulk_action();
    abstract class WP_Privacy_Requests_Table extends WP_List_Table { 
    984986         * @return array
    985987         */
    986988        protected function get_sortable_columns() {
    987                 return array();
     989                return array(
     990                        'email'             => 'requester',
     991                        'created_timestamp' => 'requested',
     992                );
    988993        }
    989994
    990995        /**
    abstract class WP_Privacy_Requests_Table extends WP_List_Table { 
    11311136        public function prepare_items() {
    11321137                global $wpdb;
    11331138
    1134                 $primary               = $this->get_primary_column_name();
    1135                 $this->_column_headers = array(
    1136                         $this->get_columns(),
    1137                         array(),
    1138                         $this->get_sortable_columns(),
    1139                         $primary,
    1140                 );
    1141 
    11421139                $this->items    = array();
    11431140                $posts_per_page = 20;
    11441141                $args           = array(
    11451142                        'post_type'      => $this->post_type,
    11461143                        'post_name__in'  => array( $this->request_type ),
    11471144                        'posts_per_page' => $posts_per_page,
    1148                         'offset'         => isset( $_REQUEST['paged'] ) ? max( 0, absint( $_REQUEST['paged'] ) - 1 ) * $posts_per_page: 0,
    11491145                        'post_status'    => 'any',
    1150                         's'              => isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ) : '',
    11511146                );
    11521147
     1148                if ( isset( $_REQUEST['paged'] ) && (int) $_REQUEST['paged'] > 0 ) {
     1149                        $args['paged'] = (int) $_REQUEST['paged'];
     1150                }
     1151
     1152                $is_search = false;
     1153                if ( isset( $_REQUEST['s'] ) && '' !== $_REQUEST['s'] ) {
     1154                        $args['s'] = sanitize_text_field( $_REQUEST['s'] );
     1155                        $is_search = true;
     1156                }
     1157
     1158                $orderby_mapping = array(
     1159                        'requester' => 'title',
     1160                        'requested' => 'post_date_gmt',
     1161                );
     1162
     1163                $orderby = '';
     1164                if ( isset( $_REQUEST['orderby'] ) && isset( $orderby_mapping[ $_REQUEST['orderby'] ] ) ) {
     1165                        $orderby = $orderby_mapping[ $_REQUEST['orderby'] ];
     1166                } elseif ( ! $is_search ) { // Don't override default search order by fields.
     1167                        $orderby = 'post_date_gmt';
     1168                }
     1169
     1170                if ( $orderby ) {
     1171                        $args['orderby'] = $orderby;
     1172                }
     1173
     1174                $order = '';
     1175                if ( isset( $_REQUEST['order'] ) && in_array( strtoupper( $_REQUEST['order'] ), array( 'ASC', 'DESC' ), true ) ) {
     1176                        $order = strtoupper( $_REQUEST['order'] );
     1177                } elseif ( ! $is_search ) { // Don't override the default search order.
     1178                        if ( 'post_date_gmt' === $orderby ) { // Descending default date order.
     1179                                $order = 'DESC';
     1180                        } else {
     1181                                $order = 'ASC';
     1182                        }
     1183                }
     1184
     1185                if ( $order ) {
     1186                        $args['order'] = $order;
     1187                }
     1188
    11531189                if ( ! empty( $_REQUEST['filter-status'] ) ) {
    11541190                        $filter_status       = isset( $_REQUEST['filter-status'] ) ? sanitize_text_field( $_REQUEST['filter-status'] ) : '';
    11551191                        $args['post_status'] = $filter_status;