Make WordPress Core


Ignore:
Timestamp:
05/02/2018 02:15:05 AM (6 years ago)
Author:
SergeyBiryukov
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.
Merges [43012] and [43089] to the 4.9 branch.
See #43546.

Location:
branches/4.9
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.9

  • branches/4.9/src/wp-admin/includes/user.php

    r43086 r43092  
    620620                'privacy_action_email_retry',
    621621                __( 'Confirmation request re-resent successfully.' ),
    622                 'updated'
    623             );
    624         }
    625 
    626     } elseif ( isset( $_POST['export_personal_data_email_send'] ) ) { // WPCS: input var ok.
    627         check_admin_referer( 'bulk-privacy_requests' );
    628 
    629         $request_id = absint( current( array_keys( (array) wp_unslash( $_POST['export_personal_data_email_send'] ) ) ) ); // WPCS: input var ok, sanitization ok.
    630         $result     = false;
    631 
    632         /**
    633          * TODO: Email the data to the user here.
    634          */
    635 
    636         if ( is_wp_error( $result ) ) {
    637             add_settings_error(
    638                 'export_personal_data_email_send',
    639                 'export_personal_data_email_send',
    640                 $result->get_error_message(),
    641                 'error'
    642             );
    643         } else {
    644             _wp_privacy_completed_request( $request_id );
    645             add_settings_error(
    646                 'export_personal_data_email_send',
    647                 'export_personal_data_email_send',
    648                 __( 'Personal data was sent to the user successfully.' ),
    649622                'updated'
    650623            );
     
    779752    _wp_personal_data_cleanup_requests();
    780753
     754    // "Borrow" xfn.js for now so we don't have to create new files.
     755    wp_enqueue_script( 'xfn' );
     756
    781757    $requests_table = new WP_Privacy_Data_Export_Requests_Table( array(
    782758        'plural'   => 'privacy_requests',
     
    13211297        $nonce           = wp_create_nonce( 'wp-privacy-export-personal-data-' . $request_id );
    13221298
    1323         $download_data_markup = '<div class="download_personal_data" ' .
     1299        $download_data_markup = '<div class="export_personal_data" ' .
    13241300            'data-exporters-count="' . esc_attr( $exporters_count ) . '" ' .
    13251301            'data-request-id="' . esc_attr( $request_id ) . '" ' .
     
    13271303            '">';
    13281304
    1329         $download_data_markup .= '<span class="download_personal_data_idle"><a href="#" >' . __( 'Download Personal Data' ) . '</a></span>' .
    1330             '<span style="display:none" class="download_personal_data_processing" >' . __( 'Downloading Data...' ) . '</span>' .
    1331             '<span style="display:none" class="download_personal_data_failed">' . __( 'Download Failed!' ) . ' <a href="#" >' . __( 'Retry' ) . '</a></span>';
     1305        $download_data_markup .= '<span class="export_personal_data_idle"><a href="#" >' . __( 'Download Personal Data' ) . '</a></span>' .
     1306            '<span style="display:none" class="export_personal_data_processing" >' . __( 'Downloading Data...' ) . '</span>' .
     1307            '<span style="display:none" class="export_personal_data_success"><a href="#" >' . __( 'Download Personal Data Again' ) . '</a></span>' .
     1308            '<span style="display:none" class="export_personal_data_failed">' . __( 'Download Failed!' ) . ' <a href="#" >' . __( 'Retry' ) . '</a></span>';
     1309
     1310        $download_data_markup .= '</div>';
    13321311
    13331312        $row_actions = array(
     
    13531332                break;
    13541333            case 'request-confirmed':
    1355                 // TODO Complete in follow on patch.
     1334                $exporters       = apply_filters( 'wp_privacy_personal_data_exporters', array() );
     1335                $exporters_count = count( $exporters );
     1336                $request_id      = $item->ID;
     1337                $nonce           = wp_create_nonce( 'wp-privacy-export-personal-data-' . $request_id );
     1338
     1339                echo '<div class="export_personal_data" ' .
     1340                    'data-send-as-email="1" ' .
     1341                    'data-exporters-count="' . esc_attr( $exporters_count ) . '" ' .
     1342                    'data-request-id="' . esc_attr( $request_id ) . '" ' .
     1343                    'data-nonce="' . esc_attr( $nonce ) .
     1344                    '">';
     1345
     1346                ?>
     1347                <span class="export_personal_data_idle"><a class="button" href="#" ><?php _e( 'Email Data' ); ?></a></span>
     1348                <span style="display:none" class="export_personal_data_processing button updating-message" ><?php _e( 'Sending Email...' ); ?></span>
     1349                <span style="display:none" class="export_personal_data_success success-message" ><?php _e( 'Email Sent!' ); ?></span>
     1350                <span style="display:none" class="export_personal_data_failed"><?php _e( 'Email Failed!' ); ?> <a class="button" href="#" ><?php _e( 'Retry' ); ?></a></span>
     1351                <?php
     1352
     1353                echo '</div>';
    13561354                break;
    13571355            case 'request-failed':
     
    14211419                '<span style="display:none" class="remove_personal_data_failed">' . __( 'Force Remove Failed!' ) . ' <a href="#" >' . __( 'Retry' ) . '</a></span>';
    14221420
     1421            $remove_data_markup .= '</div>';
     1422
    14231423            $row_actions = array(
    14241424                'remove_data' => $remove_data_markup,
     
    14611461                <span style="display:none" class="remove_personal_data_failed"><?php _e( 'Removing Data Failed!' ); ?> <a class="button" href="#" ><?php _e( 'Retry' ); ?></a></span>
    14621462                <?php
     1463
     1464                echo '</div>';
    14631465
    14641466                break;
Note: See TracChangeset for help on using the changeset viewer.