Описание email_change_email
— Filter
Хук email_change_email позволяет изменить адрес электронной почты, который будет использоваться при изменении email пользователя в WordPress. Он срабатывает во время процесса изменения email и дает возможность модифицировать новый адрес перед его сохранением
Примеры использования
Пример изменения нового адреса электронной почты на специализированный домен:
add_filter('email_change_email', function($new_email, $user_id) {
if ($new_email && !preg_match('/@example.com$/', $new_email)) {
return 'user@example.com';
}
return $new_email;
}, 10, 2);
В этом примере мы изменяем email пользователя на ‘user@example.com’, если введённый адрес не оканчивается на ‘@example.com’.
Пример валидации email перед его изменением:
add_filter('email_change_email', function($new_email, $user_id) {
if (!filter_var($new_email, FILTER_VALIDATE_EMAIL)) {
return 'invalid@example.com';
}
return $new_email;
}, 10, 2);
Здесь мы проверяем, является ли новый email корректным, и в случае некорректного адреса устанавливаем его на ‘invalid@example.com’.
Пример добавления суффикса к новому адресу электронной почты:
add_filter('email_change_email', function($new_email, $user_id) {
return str_replace('@', '+changed@$', $new_email);
}, 10, 2);
В этом примере мы добавляем суффикс ‘+changed’ к новому email перед его сохранением.
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить или проверить адрес электронной почты пользователя перед его сохранением
– Производительность
Хук имеет минимальное воздействие на производительность, так как изменение происходит только в момент обработки email
– Предупреждения
Будьте внимательны, чтобы изменения не вызывали путаницы для пользователей, особенно если они зависят от специфических email-адресов
Альтернативы
Тип: filter
Этот хук позволяет обрабатывать ошибки при обновлении профиля пользователя, включая email
Используйте его, если нужно обрабатывать ошибки валидации или отображать сообщения пользователю