bp_core_validate_email_address( string $user_email )

Check that an email address is valid for use.

Description

Performs the following checks:

  • Is the email address well-formed?
  • Is the email address already used?
  • If there’s an email domain blacklist, is the current domain on it?
  • If there’s an email domain whitelest, is the current domain on it?

Parameters

$user_email

(Required) The email being checked.

Return

(bool|array) True if the address passes all checks; otherwise an array of error codes.

Source

File: bp-members/bp-members-functions.php

1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
function bp_core_validate_email_address( $user_email ) {
    $errors = array();
 
    $user_email = sanitize_email( $user_email );
 
    // Is the email well-formed?
    if ( ! is_email( $user_email ) ) {
        $errors['invalid'] = 1;
    }
 
    // Is the email on the Banned Email Domains list?
    // Note: This check only works on Multisite.
    if ( function_exists( 'is_email_address_unsafe' ) && is_email_address_unsafe( $user_email ) ) {
        $errors['domain_banned'] = 1;
    }
 
    // Is the email on the Limited Email Domains list?
    // Note: This check only works on Multisite.
    $limited_email_domains = get_site_option( 'limited_email_domains' );
    if ( is_array( $limited_email_domains ) && empty( $limited_email_domains ) == false ) {
        $emaildomain = substr( $user_email, 1 + strpos( $user_email, '@' ) );
        if ( ! in_array( $emaildomain, $limited_email_domains ) ) {
            $errors['domain_not_allowed'] = 1;
        }
    }
 
    // Is the email alreday in use?
    if ( email_exists( $user_email ) ) {
        $errors['in_use'] = 1;
    }
 
    $retval = ! empty( $errors ) ? $errors : true;
 
    return $retval;
}

Changelog

Changelog
Version Description
BuddyPress 1.6.2 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.