Make WordPress Core

Changeset 57283


Ignore:
Timestamp:
01/14/2024 10:59:48 AM (6 weeks ago)
Author:
audrasjb
Message:

Administration: Introduce new_admin_email_subject filter.

This changeset introduces the new_admin_email_subject hook which allow developers to filter the subject of the email sent when a change of site admin email address is attempted.

Props MadtownLems, johnbillion, alexanderkoledov, shooper, Marc_J, nikmeyer, xlthlx, devmuhib, nuhel, audrasjb.
Fixes #59250.

Location:
trunk
Files:
2 edited

Legend:

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

    r56654 r57283  
    15321532    }
    15331533
    1534     wp_mail(
    1535         $value,
    1536         sprintf(
    1537             /* translators: New admin email address notification email subject. %s: Site title. */
    1538             __( '[%s] New Admin Email Address' ),
    1539             $site_title
    1540         ),
    1541         $content
     1534    $subject = sprintf(
     1535        /* translators: New admin email address notification email subject. %s: Site title. */
     1536        __( '[%s] New Admin Email Address' ),
     1537        $site_title
    15421538    );
     1539
     1540    /**
     1541     * Filters the subject of the email sent when a change of site admin email address is attempted.
     1542     *
     1543     * @since 6.5.0
     1544     *
     1545     * @param string $subject Subject of the email.
     1546     */
     1547    $subject = apply_filters( 'new_admin_email_subject', $subject );
     1548
     1549    wp_mail( $value, $subject, $content );
    15431550
    15441551    if ( $switched_locale ) {
  • trunk/tests/phpunit/tests/admin/includesMisc.php

    r51994 r57283  
    2828        }
    2929    }
     30
     31    /**
     32     * @ticket 59520
     33     */
     34    public function test_new_admin_email_subject_filter() {
     35        // Default value
     36        $mailer = tests_retrieve_phpmailer_instance();
     37        update_option_new_admin_email( 'old@example.com', 'new@example.com' );
     38        $this->assertEquals( '[Test Blog] New Admin Email Address', $mailer->get_sent()->subject );
     39
     40        // Filtered value
     41        add_filter(
     42            'new_admin_email_subject',
     43            function () {
     44                return 'Filtered Admin Email Address';
     45            },
     46            10,
     47            1
     48        );
     49
     50        $mailer->mock_sent = array();
     51
     52        $mailer = tests_retrieve_phpmailer_instance();
     53        update_option_new_admin_email( 'old@example.com', 'new@example.com' );
     54        $this->assertEquals( 'Filtered Admin Email Address', $mailer->get_sent()->subject );
     55    }
    3056}
Note: See TracChangeset for help on using the changeset viewer.