Make WordPress Core

Ticket #43931: 43931.2.diff

File 43931.2.diff, 7.5 KB (added by allendav, 7 years ago)

Filters changed to also include the key(slug) of the eraser/exporter

  • src/wp-admin/includes/admin-filters.php

     
    133133add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 );
    134134
    135135// Privacy hooks
    136 add_filter( 'wp_privacy_personal_data_export_page', 'wp_privacy_process_personal_data_export_page', 10, 6 );
     136add_filter( 'wp_privacy_personal_data_export_page', 'wp_privacy_process_personal_data_export_page', 10, 7 );
    137137add_action( 'wp_privacy_personal_data_export_file', 'wp_privacy_generate_personal_data_export_file', 10 );
    138138
    139139// Privacy policy text changes check.
  • src/wp-admin/includes/ajax-actions.php

     
    44094409                        wp_send_json_error( __( 'Exporter index out of range.' ) );
    44104410                }
    44114411
    4412                 $index = $exporter_index - 1;
    4413 
    44144412                if ( $page < 1 ) {
    44154413                        wp_send_json_error( __( 'Page index cannot be less than one.' ) );
    44164414                }
    44174415
    4418                 $exporter = $exporters[ $index ];
     4416                $exporter_keys = array_keys( $exporters );
     4417                $exporter_key = $exporter_keys[ $exporter_index - 1 ];
     4418                $exporter = $exporters[ $exporter_key ];
    44194419
    44204420                if ( ! is_array( $exporter ) ) {
    44214421                        wp_send_json_error(
     
    44424442                        );
    44434443                }
    44444444
    4445                 $callback = $exporters[ $index ]['callback'];
    4446                 $exporter_friendly_name = $exporters[ $index ]['exporter_friendly_name'];
     4445                $callback = $exporter['callback'];
     4446                $exporter_friendly_name = $exporter['exporter_friendly_name'];
    44474447
    44484448                $response = call_user_func( $callback, $email_address, $page );
    44494449                if ( is_wp_error( $response ) ) {
     
    44954495         * @param int    $page            The page for this response.
    44964496         * @param int    $request_id      The privacy request post ID associated with this request.
    44974497         * @param bool   $send_as_email   Whether the final results of the export should be emailed to the user.
     4498         * @param int    $exporter_key    The key (slug) of the exporter that provided this data.
    44984499         */
    4499         $response = apply_filters( 'wp_privacy_personal_data_export_page', $response, $exporter_index, $email_address, $page, $request_id, $send_as_email );
     4500        $response = apply_filters( 'wp_privacy_personal_data_export_page', $response, $exporter_index, $email_address, $page, $request_id, $send_as_email, $exporter_key );
    45004501
    45014502        if ( is_wp_error( $response ) ) {
    45024503                wp_send_json_error( $response );
     
    45914592                        wp_send_json_error( __( 'Page index cannot be less than one.' ) );
    45924593                }
    45934594
    4594                 $index  = $eraser_index - 1; // Convert to zero based for eraser index.
    4595                 $eraser = $erasers[ $index ];
     4595                $eraser_keys = array_keys( $erasers );
     4596                $eraser_key = $eraser_keys[ $eraser_index - 1 ];
     4597                $eraser = $erasers[ $eraser_key ];
    45964598
    45974599                if ( ! is_array( $eraser ) ) {
    45984600                        /* translators: %d: array index */
     
    46144616                        wp_send_json_error( sprintf( __( 'Eraser array at index %d does not include a friendly name.' ), $eraser_index ) );
    46154617                }
    46164618
    4617                 $callback             = $erasers[ $index ]['callback'];
    4618                 $eraser_friendly_name = $erasers[ $index ]['eraser_friendly_name'];
     4619                $callback             = $eraser['callback'];
     4620                $eraser_friendly_name = $eraser['eraser_friendly_name'];
    46194621
    46204622                $response = call_user_func( $callback, $email_address, $page );
    46214623
     
    47064708         * @since 4.9.6
    47074709         *
    47084710         * @param array  $response        The personal data for the given exporter and page.
    4709          * @param int    $exporter_index  The index of the exporter that provided this data.
     4711         * @param int    $eraser_index    The index of the eraser that provided this data.
    47104712         * @param string $email_address   The email address associated with this personal data.
    47114713         * @param int    $page            The page for this response.
    47124714         * @param int    $request_id      The privacy request post ID associated with this request.
     4715         * @param int    $eraser_key      The key (slug) of the eraser that provided this data.
    47134716         */
    4714         $response = apply_filters( 'wp_privacy_personal_data_erasure_page', $response, $eraser_index, $email_address, $page, $request_id );
     4717        $response = apply_filters( 'wp_privacy_personal_data_erasure_page', $response, $eraser_index, $email_address, $page, $request_id, $eraser_key );
    47154718
    47164719        if ( is_wp_error( $response ) ) {
    47174720                wp_send_json_error( $response );
  • src/wp-admin/includes/file.php

     
    22622262 * @param int    $page            The page of personal data for this exporter. Begins at 1.
    22632263 * @param int    $request_id      The request ID for this personal data export.
    22642264 * @param bool   $send_as_email   Whether the final results of the export should be emailed to the user.
     2265 * @param string $exporter_key    The slug (key) of the exporter.
    22652266 * @return array The filtered response.
    22662267 */
    2267 function wp_privacy_process_personal_data_export_page( $response, $exporter_index, $email_address, $page, $request_id, $send_as_email ) {
     2268function wp_privacy_process_personal_data_export_page( $response, $exporter_index, $email_address, $page, $request_id, $send_as_email, $exporter_key ) {
    22682269        /* Do some simple checks on the shape of the response from the exporter.
    22692270         * If the exporter response is malformed, don't attempt to consume it - let it
    22702271         * pass through to generate a warning to the user by default ajax processing.
  • src/wp-includes/comment.php

     
    32853285 * @return array $exporters An array of personal data exporters.
    32863286 */
    32873287function wp_register_comment_personal_data_exporter( $exporters ) {
    3288         $exporters[] = array(
     3288        $exporters['wordpress-comments'] = array(
    32893289                'exporter_friendly_name' => __( 'WordPress Comments' ),
    32903290                'callback'               => 'wp_comments_personal_data_exporter',
    32913291        );
     
    33903390 * @return array $erasers An array of personal data erasers.
    33913391 */
    33923392function wp_register_comment_personal_data_eraser( $erasers ) {
    3393         $erasers[] = array(
     3393        $erasers['wordpress-comments'] = array(
    33943394                'eraser_friendly_name' => __( 'WordPress Comments' ),
    33953395                'callback'             => 'wp_comments_personal_data_eraser',
    33963396        );
     
    34983498                'done'           => $done,
    34993499        );
    35003500}
    3501 
  • src/wp-includes/media.php

     
    41024102 * @return array  An array of personal data exporters.
    41034103 */
    41044104function wp_register_media_personal_data_exporter( $exporters ) {
    4105         $exporters[] = array(
     4105        $exporters['wordpress-media'] = array(
    41064106                'exporter_friendly_name' => __( 'WordPress Media' ),
    41074107                'callback'               => 'wp_media_personal_data_exporter',
    41084108        );
  • src/wp-includes/user.php

     
    28342834 * @return array An array of personal data exporters.
    28352835 */
    28362836function wp_register_user_personal_data_exporter( $exporters ) {
    2837         $exporters[] = array(
     2837        $exporters['wordpress-user'] = array(
    28382838                'exporter_friendly_name' => __( 'WordPress User' ),
    28392839                'callback'               => 'wp_user_personal_data_exporter',
    28402840        );