Make WordPress Core


Ignore:
Timestamp:
04/27/2018 07:53:37 PM (6 years ago)
Author:
azaozz
Message:

Privacy: add means to export personal data by username or email address. Generate a zipped export file containing all data. First run.

Props allendav.
See #43546.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/user.php

    r43011 r43012  
    661661                'privacy_action_email_retry',
    662662                __( 'Confirmation request re-resent successfully.' ),
    663                 'updated'
    664             );
    665         }
    666 
    667     } elseif ( isset( $_POST['export_personal_data_email_send'] ) ) { // WPCS: input var ok.
    668         check_admin_referer( 'bulk-privacy_requests' );
    669 
    670         $request_id = absint( current( array_keys( (array) wp_unslash( $_POST['export_personal_data_email_send'] ) ) ) ); // WPCS: input var ok, sanitization ok.
    671         $result     = false;
    672 
    673         /**
    674          * TODO: Email the data to the user here.
    675          */
    676 
    677         if ( is_wp_error( $result ) ) {
    678             add_settings_error(
    679                 'export_personal_data_email_send',
    680                 'export_personal_data_email_send',
    681                 $result->get_error_message(),
    682                 'error'
    683             );
    684         } else {
    685             _wp_privacy_completed_request( $request_id );
    686             add_settings_error(
    687                 'export_personal_data_email_send',
    688                 'export_personal_data_email_send',
    689                 __( 'Personal data was sent to the user successfully.' ),
    690663                'updated'
    691664            );
     
    820793    _wp_personal_data_cleanup_requests();
    821794
     795    // "Borrow" xfn.js for now so we don't have to create new files.
     796    wp_enqueue_script( 'xfn' );
     797
    822798    $requests_table = new WP_Privacy_Data_Export_Requests_Table( array(
    823799        'plural'   => 'privacy_requests',
     
    13621338        $nonce           = wp_create_nonce( 'wp-privacy-export-personal-data-' . $request_id );
    13631339
    1364         $download_data_markup = '<div class="download_personal_data" ' .
     1340        $download_data_markup = '<div class="export_personal_data" ' .
    13651341            'data-exporters-count="' . esc_attr( $exporters_count ) . '" ' .
    13661342            'data-request-id="' . esc_attr( $request_id ) . '" ' .
     
    13681344            '">';
    13691345
    1370         $download_data_markup .= '<span class="download_personal_data_idle"><a href="#" >' . __( 'Download Personal Data' ) . '</a></span>' .
    1371             '<span style="display:none" class="download_personal_data_processing" >' . __( 'Downloading Data...' ) . '</span>' .
    1372             '<span style="display:none" class="download_personal_data_failed">' . __( 'Download Failed!' ) . ' <a href="#" >' . __( 'Retry' ) . '</a></span>';
     1346        $download_data_markup .= '<span class="export_personal_data_idle"><a href="#" >' . __( 'Download Personal Data' ) . '</a></span>' .
     1347            '<span style="display:none" class="export_personal_data_processing" >' . __( 'Downloading Data...' ) . '</span>' .
     1348            '<span style="display:none" class="export_personal_data_success"><a href="#" >' . __( 'Download Personal Data Again' ) . '</a></span>' .
     1349            '<span style="display:none" class="export_personal_data_failed">' . __( 'Download Failed!' ) . ' <a href="#" >' . __( 'Retry' ) . '</a></span>';
     1350
     1351        $download_data_markup .= '</div>';
    13731352
    13741353        $row_actions = array(
     
    13941373                break;
    13951374            case 'request-confirmed':
    1396                 // TODO Complete in follow on patch.
     1375                $exporters       = apply_filters( 'wp_privacy_personal_data_exporters', array() );
     1376                $exporters_count = count( $exporters );
     1377                $request_id      = $item->ID;
     1378                $nonce           = wp_create_nonce( 'wp-privacy-export-personal-data-' . $request_id );
     1379
     1380                echo '<div class="export_personal_data" ' .
     1381                    'data-send-as-email="1" ' .
     1382                    'data-exporters-count="' . esc_attr( $exporters_count ) . '" ' .
     1383                    'data-request-id="' . esc_attr( $request_id ) . '" ' .
     1384                    'data-nonce="' . esc_attr( $nonce ) .
     1385                    '">';
     1386
     1387                ?>
     1388                <span class="export_personal_data_idle"><a class="button" href="#" ><?php _e( 'Email Data' ); ?></a></span>
     1389                <span style="display:none" class="export_personal_data_processing button updating-message" ><?php _e( 'Sending Email...' ); ?></span>
     1390                <span style="display:none" class="export_personal_data_success success-message" ><?php _e( 'Email Sent!' ); ?></span>
     1391                <span style="display:none" class="export_personal_data_failed"><?php _e( 'Email Failed!' ); ?> <a class="button" href="#" ><?php _e( 'Retry' ); ?></a></span>
     1392                <?php
     1393
     1394                echo '</div>';
    13971395                break;
    13981396            case 'request-failed':
     
    14621460                '<span style="display:none" class="remove_personal_data_failed">' . __( 'Force Remove Failed!' ) . ' <a href="#" >' . __( 'Retry' ) . '</a></span>';
    14631461
     1462            $remove_data_markup .= '</div>';
     1463
    14641464            $row_actions = array(
    14651465                'remove_data' => $remove_data_markup,
     
    15021502                <span style="display:none" class="remove_personal_data_failed"><?php _e( 'Removing Data Failed!' ); ?> <a class="button" href="#" ><?php _e( 'Retry' ); ?></a></span>
    15031503                <?php
     1504
     1505                echo '</div>';
    15041506
    15051507                break;
Note: See TracChangeset for help on using the changeset viewer.