Странно, но в админке WordPress нет встроенной настройки для отключения уведомлений о регистрации. И когда у меня появилась такая задача, то стандартные фильтры у меня не сработали. В таком случае пришлось удалить стандартное действие с помощью remove_action и прописать свое. Это сработало, полный код ниже:
add_action('init', 'phpavel_remove_default_user_notifications');
function phpavel_remove_default_user_notifications()
{
// Удаляем стандартные действия отправки уведомлений
remove_action('register_new_user', 'wp_send_new_user_notifications');
remove_action('edit_user_created_user', 'wp_send_new_user_notifications', 10);
// Добавляем свою функцию, которая отправляет только пользователю
add_action('register_new_user', 'phpavel_send_new_user_notifications'], 10, 1);
add_action('edit_user_created_user', 'phpavel_send_new_user_notifications'], 10, 2);
}
function phpavel_send_new_user_notifications($user_id, $notify = 'user')
{
// Если уведомление только администратору - не отправляем ничего
if ($notify === 'admin') {
return;
}
// Если уведомление обоим - отправляем только пользователю
if ($notify === 'both') {
$notify = 'user';
}
// Отправляем уведомление только пользователю
wp_send_new_user_notifications($user_id, $notify);
}