sanitize_email

sanitize_email

Appears in: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Hook Type: filter

See hook in core

Displaying hooks found in version: wordpress-6.7.2

apply_filters('sanitize_email') is found 8 times:

  • /wp-includes/formatting.php line 3758
    3754
    3755
    3756
    3757
    3758
    3759
    3760
    3761
    3762
    3763
    3764
         * @param string $sanitized_email The sanitized email address.
         * @param string $email           The email address, as provided to sanitize_email().
         * @param string|null $message    A message to pass to the user. null if email is sanitized.
         */
        return apply_filters( 'sanitize_email', '', $email, 'email_too_short' );
    }
     
    // Test for an @ character after the first position.
    if ( strpos( $email, '@', 1 ) === false ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', '', $email, 'email_no_at' );
  • /wp-includes/formatting.php line 3764
    3761
    3762
    3763
    3764
    3765
    3766
    3767
    3768
    3769
    3770
    // Test for an @ character after the first position.
    if ( strpos( $email, '@', 1 ) === false ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', '', $email, 'email_no_at' );
    }
     
    // Split out the local and domain parts.
    list( $local, $domain ) = explode( '@', $email, 2 );
     
    /*
  • /wp-includes/formatting.php line 3777
    3773
    3774
    3775
    3776
    3777
    3778
    3779
    3780
    3781
    3782
    3783
    */
    $local = preg_replace( '/[^a-zA-Z0-9!#$%&\'*+\/=?^_`{|}~\.-]/', '', $local );
    if ( '' === $local ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', '', $email, 'local_invalid_chars' );
    }
     
    /*
     * DOMAIN PART
     * Test for sequences of periods.
     */
  • /wp-includes/formatting.php line 3787
    3783
    3784
    3785
    3786
    3787
    3788
    3789
    3790
    3791
    3792
    3793
    */
    $domain = preg_replace( '/\.{2,}/', '', $domain );
    if ( '' === $domain ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', '', $email, 'domain_period_sequence' );
    }
     
    // Test for leading and trailing periods and whitespace.
    $domain = trim( $domain, " \t\n\r\0\x0B." );
    if ( '' === $domain ) {
        /** This filter is documented in wp-includes/formatting.php */
  • /wp-includes/formatting.php line 3794
    3790
    3791
    3792
    3793
    3794
    3795
    3796
    3797
    3798
    3799
    3800
    // Test for leading and trailing periods and whitespace.
    $domain = trim( $domain, " \t\n\r\0\x0B." );
    if ( '' === $domain ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', '', $email, 'domain_period_limits' );
    }
     
    // Split the domain into subs.
    $subs = explode( '.', $domain );
     
    // Assume the domain will have at least two subs.
  • /wp-includes/formatting.php line 3803
    3800
    3801
    3802
    3803
    3804
    3805
    3806
    3807
    3808
    3809
    // Assume the domain will have at least two subs.
    if ( 2 > count( $subs ) ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', '', $email, 'domain_no_periods' );
    }
     
    // Create an array that will contain valid subs.
    $new_subs = array();
     
    // Loop through each sub.
  • /wp-includes/formatting.php line 3826
    3823
    3824
    3825
    3826
    3827
    3828
    3829
    3830
    3831
    3832
    // If there aren't 2 or more valid subs.
    if ( 2 > count( $new_subs ) ) {
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', '', $email, 'domain_no_valid_subs' );
    }
     
    // Join valid subs into the new domain.
    $domain = implode( '.', $new_subs );
     
    // Put the email back together.
  • /wp-includes/formatting.php line 3837
    3833
    3834
    3835
    3836
    3837
    3838
    3839
    3840
    3841
    3842
    3843
        $sanitized_email = $local . '@' . $domain;
     
        // Congratulations, your email made it!
        /** This filter is documented in wp-includes/formatting.php */
        return apply_filters( 'sanitize_email', $sanitized_email, $email, null );
    }
     
    /**
     * Determines the difference between two timestamps.
     *
     * The difference is returned in a human-readable format such as "1 hour",