/** * Blocks email domains for users. * * @see https://wpcodebook.com/woocommerce-block-email-domains-user-registration/ * @see https://github.com/woocommerce/woocommerce/blob/8.0.2/plugins/woocommerce/includes/wc-user-functions.php#L90 */ add_filter( 'woocommerce_registration_errors', function ( $errors, $username, $email ) { /** * Set your whitelisted and/or blacklisted domains here. * Variable is ignored if empty. */ $whitelisted_domains = array( 'gmail.com', 'icloud.com' ); $blacklisted_domains = array( 'example.com' ); $domain = explode( '@', $email ); $domain = $domain[1]; if ( ( ! empty( $whitelisted_domains ) && ! in_array( $domain, $whitelisted_domains ) ) || ( ! empty( $blacklisted_domains ) && in_array( $domain, $blacklisted_domains ) ) ) { $errors->add( 'wpcodebook_email_domain_validation', sprintf( __( "'%s' email domain is not allowed." ), $domain ) ); } return $errors; }, 10, 3 );