Функция is_email()
в WordPress предназначена для проверки того, является ли переданная строка допустимым email-адресом. Она возвращает сам адрес, если он валиден, или false
в случае ошибки.
is_email( string $email, bool $deprecated = false ): string|false
is_email()
принимает строку с предполагаемым адресом электронной почты и выполняет базовую проверку формата email. Если адрес соответствует правилам, функция вернет его обратно, а при нарушении стандартных требований к email-адресам (например, отсутствующий домен или недопустимые символы) функция возвращает false
.
Параметры:
- $email (string) (обязательно) — Строка с email-адресом, который нужно проверить.
- $deprecated (bool) (необязательно) — Устаревший параметр. Не используется в текущих версиях WordPress. По умолчанию
false
.
Возвращаемое значение:
- string — возвращает сам email, если он корректен.
- false — если email недействителен.
Примечания к использованию
Функция is_email()
не полностью совместима с международными доменами и не соответствует всем требованиям стандарта RFC для email-адресов. Например, она не всегда правильно обрабатывает email-адреса с символами в доменной части, такие как 123.dot@домен.com
.
Простой пример проверки email-адреса
Проверим, является ли адрес электронной почты допустимым:
$email = '[email protected]';
if ( is_email( $email ) ) {
echo 'Адрес email корректен.';
} else {
echo 'Адрес email недействителен.';
}
Пример: Проверка email перед регистрацией пользователя
Допустим, у нас есть форма регистрации, где пользователи вводят свой email-адрес. Чтобы удостовериться, что пользователь вводит правильный формат email, можно использовать is_email()
:
function validate_user_email( $email ) {
if ( is_email( $email ) ) {
echo 'Email-адрес подходит для регистрации.';
} else {
echo 'Пожалуйста, введите корректный email-адрес.';
}
}
// Пример вызова функции
validate_user_email( 'user@invalid_domain' );
Пример: Использование is_email()
при отправке формы обратной связи
В этом примере, перед отправкой данных формы обратной связи, проверим email отправителя с помощью is_email()
:
$email = $_POST['email'];
if ( is_email( $email ) ) {
wp_mail( '[email protected]', 'Новый запрос', 'Запрос от ' . $email );
echo 'Ваше сообщение отправлено!';
} else {
echo 'Указан неверный email. Проверьте адрес и попробуйте снова.';
}
Пример: Сохранение email-адреса в пользовательском профиле
Используем is_email()
при сохранении пользовательского email в настройках профиля, чтобы убедиться, что email имеет корректный формат:
$email = '[email protected]';
if ( is_email( $email ) ) {
update_user_meta( get_current_user_id(), 'user_email', $email );
echo 'Email сохранен успешно!';
} else {
echo 'Email недействителен. Попробуйте другой.';
}
Использование is_email()
в кастомных валидациях
Если вы хотите настроить функцию для обработки email-адресов с более сложной валидацией, вы можете добавить фильтр к is_email
:
add_filter( 'is_email', 'custom_email_validator', 10, 3 );
function custom_email_validator( $is_email, $email, $context ) {
if ( strpos( $email, '.info' ) !== false ) {
return false; // Отклоняем email-адреса с доменом .info
}
return $is_email;
}
// Пример проверки
$email = '[email protected]';
if ( is_email( $email ) ) {
echo 'Email допустим.';
} else {
echo 'Использование домена .info недопустимо.';
}
Заключение
is_email()
— полезная и простая функция для проверки email-адресов. Она особенно полезна в формах, профилях пользователей и других сценариях, где требуется базовая валидация email. Однако для более сложных проверок, включая поддержку международных доменов, может потребоваться дополнительная логика или внешние библиотеки.