WordPress.org

Make WordPress Core

Ticket #46619: 46619.diff

File 46619.diff, 6.2 KB (added by garrett-eclipse, 5 months ago)

Initial patch

  • 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/includes/class-wp-privacy-data-export-requests-list-table.php

     
    6363
    6464                $download_data_markup .= '</div>';
    6565
     66                $complete_request_markup  = '<span>';
     67                $complete_request_markup .= sprintf(
     68                        '<a href="%s" class="complete-request" aria-label="%s">%s</a>',
     69                        esc_url(
     70                                wp_nonce_url(
     71                                        add_query_arg(
     72                                                array(
     73                                                        'action'     => 'complete',
     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                                        __( 'Mark export request for &#8220;%s&#8221; as completed.' ),
     85                                        $item->email
     86                                )
     87                        ),
     88                        __( 'Complete Request' )
     89                );
     90                $complete_request_markup .= '</span>';
     91
    6692                $row_actions = array(
    67                         'download-data' => $download_data_markup,
     93                        'download-data'    => $download_data_markup,
     94                        'complete-request' => $complete_request_markup,
    6895                );
    6996
    7097                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

     
    4747                $row_actions = array();
    4848
    4949                // Allow the administrator to "force remove" the personal data even if confirmation has not yet been received.
    50                 $status = $item->status;
     50                $status      = $item->status;
     51                $row_actions = array();
    5152                if ( 'request-confirmed' !== $status ) {
    5253                        /** This filter is documented in wp-admin/includes/ajax-actions.php */
    5354                        $erasers       = apply_filters( 'wp_privacy_personal_data_erasers', array() );
     
    6869
    6970                        $remove_data_markup .= '</div>';
    7071
    71                         $row_actions = array(
    72                                 'remove-data' => $remove_data_markup,
    73                         );
     72                        $row_actions['remove-data'] = $remove_data_markup;
    7473                }
    7574
     75                $complete_request_markup  = '<span>';
     76                $complete_request_markup .= sprintf(
     77                        '<a href="%s" class="complete-request" aria-label="%s">%s</a>',
     78                        esc_url(
     79                                wp_nonce_url(
     80                                        add_query_arg(
     81                                                array(
     82                                                        'action'     => 'complete',
     83                                                        'request_id' => array( $request_id ),
     84                                                ),
     85                                                admin_url( 'erase-personal-data.php' )
     86                                        ),
     87                                        'bulk-privacy_requests'
     88                                )
     89                        ),
     90                        esc_attr(
     91                                sprintf(
     92                                        /* translators: %s: Request email. */
     93                                        __( 'Mark export request for &#8220;%s&#8221; as completed.' ),
     94                                        $item->email
     95                                )
     96                        ),
     97                        __( 'Complete Request' )
     98                );
     99                $complete_request_markup .= '</span>';
     100
     101                $row_actions['complete-request'] = $complete_request_markup;
     102
    76103                return sprintf( '<a href="%1$s">%2$s</a> %3$s', esc_url( 'mailto:' . $item->email ), $item->email, $this->row_actions( $row_actions ) );
    77104        }
    78105
  • src/wp-admin/includes/class-wp-privacy-requests-table.php

     
    210210         */
    211211        protected function get_bulk_actions() {
    212212                return array(
    213                         'delete' => __( 'Delete Requests' ),
    214                         'resend' => __( 'Resend Confirmation Requests' ),
     213                        'resend'   => __( 'Resend Confirmation Requests' ),
     214                        'complete' => __( 'Mark Requests as Completed' ),
     215                        'delete'   => __( 'Delete Requests' ),
    215216                );
    216217        }
    217218
     
    219220         * Process bulk actions.
    220221         *
    221222         * @since 4.9.6
     223         * @since 5.6.0 Added support for the `complete` action.
    222224         */
    223225        public function process_bulk_action() {
    224226                $action      = $this->current_action();
     
    231233                }
    232234
    233235                switch ( $action ) {
    234                         case 'delete':
     236                        case 'resend':
    235237                                foreach ( $request_ids as $request_id ) {
    236                                         if ( wp_delete_post( $request_id, true ) ) {
    237                                                 $count ++;
     238                                        $resend = _wp_privacy_resend_request( $request_id );
     239
     240                                        if ( $resend && ! is_wp_error( $resend ) ) {
     241                                                $count++;
    238242                                        }
    239243                                }
    240244
     
    242246                                        'bulk_action',
    243247                                        'bulk_action',
    244248                                        /* translators: %d: Number of requests. */
    245                                         sprintf( _n( 'Deleted %d request.', 'Deleted %d requests.', $count ), $count ),
     249                                        sprintf( _n( 'Re-sent %d request.', 'Re-sent %d requests.', $count ), $count ),
    246250                                        'success'
    247251                                );
    248252                                break;
    249                         case 'resend':
     253                        case 'complete':
    250254                                foreach ( $request_ids as $request_id ) {
    251                                         $resend = _wp_privacy_resend_request( $request_id );
     255                                        $result = _wp_privacy_completed_request( $request_id );
    252256
    253                                         if ( $resend && ! is_wp_error( $resend ) ) {
     257                                        if ( $result && ! is_wp_error( $result ) ) {
    254258                                                $count++;
    255259                                        }
    256260                                }
     
    259263                                        'bulk_action',
    260264                                        'bulk_action',
    261265                                        /* translators: %d: Number of requests. */
    262                                         sprintf( _n( 'Re-sent %d request.', 'Re-sent %d requests.', $count ), $count ),
     266                                        sprintf( _n( '%d request marked as complete.', '%d requests marked as complete.', $count ), $count ),
    263267                                        'success'
    264268                                );
    265269                                break;
     270                        case 'delete':
     271                                foreach ( $request_ids as $request_id ) {
     272                                        if ( wp_delete_post( $request_id, true ) ) {
     273                                                $count ++;
     274                                        }
     275                                }
     276
     277                                add_settings_error(
     278                                        'bulk_action',
     279                                        'bulk_action',
     280                                        /* translators: %d: Number of requests. */
     281                                        sprintf( _n( 'Deleted %d request.', 'Deleted %d requests.', $count ), $count ),
     282                                        'success'
     283                                );
     284                                break;
    266285                }
    267286        }
    268287