WordPress.org

Make WordPress Core

Ticket #44501: 44501.4.diff

File 44501.4.diff, 12.2 KB (added by garrett-eclipse, 10 months ago)

Minor refresh to correct some docblocks

  • src/wp-admin/includes/privacy-tools.php

     
    623623        $content = str_replace( '###SITENAME###', $site_name, $content );
    624624        $content = str_replace( '###SITEURL###', esc_url_raw( $site_url ), $content );
    625625
    626         $mail_success = wp_mail( $request_email, $subject, $content );
     626        $headers = '';
    627627
     628        /**
     629         * Filters the headers of the email sent with a personal data export file.
     630         *
     631         * @since 5.4.0
     632         *
     633         * @param string|array $headers    The email headers.
     634         * @param string       $subject    The email subject.
     635         * @param string       $content    The email content.
     636         * @param int          $request_id The request ID.
     637         * @param array        $email_data {
     638         *     Data relating to the account action email.
     639         *
     640         *     @type WP_User_Request $request           User request object.
     641         *     @type int             $expiration        The time in seconds until the export file expires.
     642         *     @type string          $expiration_date   The localized date and time when the export file expires.
     643         *     @type string          $message_recipient The address that the email will be sent to. Defaults
     644         *                                              to the value of `$request->email`, but can be changed
     645         *                                              by the `wp_privacy_personal_data_email_to` filter.
     646         *     @type string          $export_file_url   The export file URL.
     647         *     @type string          $sitename          The site name sending the mail.
     648         *     @type string          $siteurl           The site URL sending the mail.
     649         * }
     650         */
     651        $headers = apply_filters( 'wp_privacy_personal_data_email_headers', $headers, $subject, $content, $request_id, $email_data );
     652
     653        $mail_success = wp_mail( $request_email, $subject, $content, $headers );
     654
    628655        if ( $switched_locale ) {
    629656                restore_previous_locale();
    630657        }
  • src/wp-includes/user.php

     
    31793179         */
    31803180        $subject = apply_filters( 'user_request_confirmed_email_subject', $subject, $email_data['sitename'], $email_data );
    31813181
    3182         $email_sent = wp_mail( $email_data['admin_email'], $subject, $content );
     3182        $headers = '';
    31833183
     3184        /**
     3185         * Filters the headers of the user request confirmation email.
     3186         *
     3187         * @since 5.4.0
     3188         *
     3189         * @param string|array $headers    The email headers.
     3190         * @param string       $subject    The email subject.
     3191         * @param string       $content    The email content.
     3192         * @param int          $request_id The request ID.
     3193         * @param array        $email_data {
     3194         *     Data relating to the account action email.
     3195         *
     3196         *     @type WP_User_Request $request     User request object.
     3197         *     @type string          $user_email  The email address confirming a request
     3198         *     @type string          $description Description of the action being performed so the user knows what the email is for.
     3199         *     @type string          $manage_url  The link to click manage privacy requests of this type.
     3200         *     @type string          $sitename    The site name sending the mail.
     3201         *     @type string          $siteurl     The site URL sending the mail.
     3202         *     @type string          $admin_email The administrator email receiving the mail.
     3203         * }
     3204         */
     3205        $headers = apply_filters( 'user_request_confirmed_email_headers', $headers, $subject, $content, $request_id, $email_data );
     3206
     3207        $email_sent = wp_mail( $email_data['admin_email'], $subject, $content, $headers );
     3208
    31843209        if ( $email_sent ) {
    31853210                update_post_meta( $request_id, '_wp_admin_notified', true );
    31863211        }
     
    33253350        $content = str_replace( '###PRIVACY_POLICY_URL###', $email_data['privacy_policy_url'], $content );
    33263351        $content = str_replace( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content );
    33273352
    3328         $email_sent = wp_mail( $user_email, $subject, $content );
     3353        $headers = '';
    33293354
     3355        /**
     3356         * Filters the headers of the data erasure fulfillment notification.
     3357         *
     3358         * @since 5.4.0
     3359         *
     3360         * @param string|array $headers    The email headers.
     3361         * @param string       $subject    The email subject.
     3362         * @param string       $content    The email content.
     3363         * @param int          $request_id The request ID.
     3364         * @param array        $email_data {
     3365         *     Data relating to the account action email.
     3366         *
     3367         *     @type WP_User_Request $request            User request object.
     3368         *     @type string          $message_recipient  The address that the email will be sent to. Defaults
     3369         *                                               to the value of `$request->email`, but can be changed
     3370         *                                               by the `user_erasure_fulfillment_email_to` filter.
     3371         *     @type string          $privacy_policy_url Privacy policy URL.
     3372         *     @type string          $sitename           The site name sending the mail.
     3373         *     @type string          $siteurl            The site URL sending the mail.
     3374         * }
     3375         */
     3376        $headers = apply_filters( 'user_erasure_complete_email_headers', $headers, $subject, $content, $request_id, $email_data );
     3377
     3378        $email_sent = wp_mail( $user_email, $subject, $content, $headers );
     3379
    33303380        if ( $switched_locale ) {
    33313381                restore_previous_locale();
    33323382        }
     
    35873637         */
    35883638        $subject = apply_filters( 'user_request_action_email_subject', $subject, $email_data['sitename'], $email_data );
    35893639
    3590         $email_sent = wp_mail( $email_data['email'], $subject, $content );
     3640        $headers = '';
    35913641
     3642        /**
     3643         * Filters the headers of the email sent when an account action is attempted.
     3644         *
     3645         * @since 5.4.0
     3646         *
     3647         * @param string|array $headers    The email headers.
     3648         * @param string       $subject    The email subject.
     3649         * @param string       $content    The email content.
     3650         * @param int          $request_id The request ID.
     3651         * @param array        $email_data {
     3652         *     Data relating to the account action email.
     3653         *
     3654         *     @type WP_User_Request $request     User request object.
     3655         *     @type string          $email       The email address this is being sent to.
     3656         *     @type string          $description Description of the action being performed so the user knows what the email is for.
     3657         *     @type string          $confirm_url The link to click on to confirm the account action.
     3658         *     @type string          $sitename    The site name sending the mail.
     3659         *     @type string          $siteurl     The site URL sending the mail.
     3660         * }
     3661         */
     3662        $headers = apply_filters( 'user_request_action_email_headers', $headers, $subject, $content, $request_id, $email_data );
     3663
     3664        $email_sent = wp_mail( $email_data['email'], $subject, $content, $headers );
     3665
    35923666        if ( $switched_locale ) {
    35933667                restore_previous_locale();
    35943668        }
  • tests/phpunit/tests/privacy/wpPrivacySendErasureFulfillmentNotification.php

     
    257257        }
    258258
    259259        /**
     260         * The email headers of the fulfillment notification should be filterable.
     261         *
     262         * @since 5.4.0
     263         *
     264         * @ticket 44501
     265         */
     266        public function test_email_headers_should_be_filterable() {
     267                add_filter( 'user_erasure_complete_email_headers', array( $this, 'modify_email_headers' ) );
     268                _wp_privacy_send_erasure_fulfillment_notification( self::$request_id );
     269
     270                $mailer = tests_retrieve_phpmailer_instance();
     271
     272                $this->assertContains( 'From: Tester <tester@example.com>', $mailer->get_sent()->header );
     273        }
     274
     275        /**
     276         * Filter callback that modifies the email headers of the data erasure fulfillment notification.
     277         *
     278         * @since 5.4.0
     279         *
     280         * @param string|array $headers The email headers.
     281         * @return array       $headers The new email headers.
     282         */
     283        public function modify_email_headers( $headers ) {
     284                $headers = array(
     285                        'From: Tester <tester@example.com>',
     286                );
     287
     288                return $headers;
     289        }
     290
     291        /**
    260292         * The function should not send an email when the request ID does not exist.
    261293         *
    262294         * @ticket 44234
  • tests/phpunit/tests/privacy/wpPrivacySendPersonalDataExportEmail.php

     
    253253        }
    254254
    255255        /**
     256         * The email headers should be filterable.
     257         *
     258         * @since 5.4.0
     259         *
     260         * @ticket 44501
     261         */
     262        public function test_email_headers_should_be_filterable() {
     263                add_filter( 'wp_privacy_personal_data_email_headers', array( $this, 'modify_email_headers' ) );
     264                wp_privacy_send_personal_data_export_email( self::$request_id );
     265
     266                $mailer = tests_retrieve_phpmailer_instance();
     267
     268                $this->assertContains( 'From: Tester <tester@example.com>', $mailer->get_sent()->header );
     269        }
     270
     271        /**
     272         * Filter callback to modify the headers of the email sent with a personal data export file.
     273         *
     274         * @since 5.4.0
     275         *
     276         * @param string|array $headers The email headers.
     277         * @return array       $headers The new email headers.
     278         */
     279        public function modify_email_headers( $headers ) {
     280                $headers = array(
     281                        'From: Tester <tester@example.com>',
     282                );
     283
     284                return $headers;
     285        }
     286
     287        /**
    256288         * The email content should be filterable using the $email_data
    257289         *
    258290         * @ticket 46303
  • tests/phpunit/tests/privacy/wpPrivacySendRequestConfirmationNotification.php

     
    207207                return $email_text;
    208208        }
    209209
     210        /**
     211         * The email headers should be filterable.
     212         *
     213         * @since 5.4.0
     214         *
     215         * @ticket 44501
     216         */
     217        public function test_email_headers_should_be_filterable() {
     218                $email      = 'export.request.from.unregistered.user@example.com';
     219                $request_id = wp_create_user_request( $email, 'export_personal_data' );
     220
     221                _wp_privacy_account_request_confirmed( $request_id );
     222
     223                add_filter( 'user_request_confirmed_email_headers', array( $this, 'modify_email_headers' ) );
     224                _wp_privacy_send_request_confirmation_notification( $request_id );
     225                remove_filter( 'user_request_confirmed_email_headers', array( $this, 'modify_email_headers' ) );
     226
     227                $mailer = tests_retrieve_phpmailer_instance();
     228
     229                $this->assertContains( 'From: Tester <tester@example.com>', $mailer->get_sent()->header );
     230        }
     231
     232        /**
     233         * Filter callback that modifies the headers of the user request confirmation email.
     234         *
     235         * @since 5.4.0
     236         *
     237         * @param string|array $headers The email headers.
     238         * @return array       $headers The new email headers.
     239         */
     240        public function modify_email_headers( $headers ) {
     241                $headers = array(
     242                        'From: Tester <tester@example.com>',
     243                );
     244
     245                return $headers;
     246        }
     247
    210248}
  • tests/phpunit/tests/user/wpSendUserRequest.php

     
    229229        }
    230230
    231231        /**
     232         * The email headers should be filterable.
     233         *
     234         * @since 5.4.0
     235         *
     236         * @ticket 44501
     237         */
     238        public function test_email_headers_should_be_filterable() {
     239                $request_id = wp_create_user_request( self::$test_user->user_email, 'remove_personal_data' );
     240
     241                add_filter( 'user_request_action_email_headers', array( $this, 'modify_email_headers' ) );
     242                $result = wp_send_user_request( $request_id );
     243
     244                $mailer = tests_retrieve_phpmailer_instance();
     245
     246                $this->assertContains( 'From: Tester <tester@example.com>', $mailer->get_sent()->header );
     247        }
     248
     249        /**
     250         * Filter callback to modify the headers of the email sent when an account action is attempted.
     251         *
     252         * @since 5.4.0
     253         *
     254         * @param string|array $headers The email headers.
     255         * @return array       $headers The new email headers.
     256         */
     257        public function modify_email_headers( $headers ) {
     258                $headers = array(
     259                        'From: Tester <tester@example.com>',
     260                );
     261
     262                return $headers;
     263        }
     264
     265        /**
    232266         * The function should error when the email was not sent.
    233267         *
    234268         * @ticket 43985