Make WordPress Core

Ticket #44266: 44266.5.diff

File 44266.5.diff, 10.6 KB (added by garrett-eclipse, 4 years ago)

Refresh to improve verbiage and address the URI issue by using sendback passthrough.

  • src/wp-admin/css/forms.css

     
    12181218        position: static;
    12191219}
    12201220
     1221.privacy_requests .row-actions .remove-personal-data,
     1222.privacy_requests .row-actions .export-personal-data {
     1223        display: inline-block;
     1224}
     1225
    12211226.privacy_requests tbody .has-request-results th {
    12221227        box-shadow: none;
    12231228}
  • src/wp-admin/erase-personal-data.php

     
    4444        )
    4545);
    4646
     47$requests_table->handle_bulk_messages();
    4748$requests_table->process_bulk_action();
    4849$requests_table->prepare_items();
    4950
  • src/wp-admin/export-personal-data.php

     
    4444        )
    4545);
    4646
     47$requests_table->handle_bulk_messages();
    4748$requests_table->process_bulk_action();
    4849$requests_table->prepare_items();
    4950
  • src/wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php

     
    5656                        'data-nonce="' . esc_attr( $nonce ) .
    5757                        '">';
    5858
    59                 $download_data_markup .= '<span class="export-personal-data-idle"><button type="button" class="button-link export-personal-data-handle">' . __( 'Download Personal Data' ) . '</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>' .
    6060                        '<span class="export-personal-data-processing hidden">' . __( 'Downloading Data...' ) . ' <span class="export-progress"></span></span>' .
    6161                        '<span class="export-personal-data-success hidden"><button type="button" class="button-link export-personal-data-handle">' . __( 'Download Personal Data Again' ) . '</button></span>' .
    6262                        '<span class="export-personal-data-failed hidden">' . __( 'Download failed.' ) . ' <button type="button" class="button-link">' . __( 'Retry' ) . '</button></span>';
     
    6363
    6464                $download_data_markup .= '</div>';
    6565
     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 &#8220;%s&#8221;.' ),
     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 &#8220;%s&#8221;.' ),
     111                                        $item->email
     112                                )
     113                        ),
     114                        __( 'Delete Request' )
     115                );
     116                $delete_request_markup .= '</span>';
     117
    66118                $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,
    68122                );
    69123
    70124                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

     
    6161                                'data-nonce="' . esc_attr( $nonce ) .
    6262                                '">';
    6363
    64                         $remove_data_markup .= '<span class="remove-personal-data-idle"><button type="button" class="button-link remove-personal-data-handle">' . __( 'Force Erase 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>' .
    6565                                '<span class="remove-personal-data-processing hidden">' . __( 'Erasing Data...' ) . ' <span class="erasure-progress"></span></span>' .
    6666                                '<span class="remove-personal-data-success hidden">' . __( 'Erasure completed.' ) . '</span>' .
    6767                                '<span class="remove-personal-data-failed hidden">' . __( 'Force Erasure has failed.' ) . ' <button type="button" class="button-link remove-personal-data-handle">' . __( 'Retry' ) . '</button></span>';
     
    6868
    6969                        $remove_data_markup .= '</div>';
    7070
     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 &#8220;%s&#8221;.' ),
     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 &#8220;%s&#8221;.' ),
     116                                                $item->email
     117                                        )
     118                                ),
     119                                __( 'Delete Request' )
     120                        );
     121                        $delete_request_markup .= '</span>';
     122
    71123                        $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,
    73127                        );
    74128                }
    75129
  • src/wp-admin/includes/class-wp-privacy-requests-table.php

     
    216216        }
    217217
    218218        /**
    219          * Process bulk actions.
     219         * Handle bulk & row action messages.
    220220         *
     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         *
    221258         * @since 4.9.6
     259         * @since 5.6.0 Handle processing of the row actions.
    222260         */
    223261        public function process_bulk_action() {
    224262                $action      = $this->current_action();
     
    230268                        check_admin_referer( 'bulk-privacy_requests' );
    231269                }
    232270
     271                $sendback = wp_get_referer();
     272                $sendback = remove_query_arg( array( 'resent', 'deleted', 'ids' ), $sendback );
     273
    233274                switch ( $action ) {
    234                         case 'delete':
     275                        case 'resend':
     276                                $sent_ids = array();
    235277                                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;
    238283                                        }
    239284                                }
    240285
    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                                        )
    247294                                );
     295                                exit;
    248296                                break;
    249                         case 'resend':
     297                        case 'delete':
    250298                                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 ) ) {
    254300                                                $count++;
    255301                                        }
    256302                                }
    257303
    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                                        )
    264311                                );
     312                                exit;
    265313                                break;
    266314                }
    267315        }