2013-09-24 2 views
0

У меня есть следующие функции в моих темах function.php:wp_mail отправки нескольких сообщений

function user_profile_update($user_id) { 
     $site_url = get_bloginfo('wpurl'); 
     $user_info = get_userdata($user_id); 
     $to = $user_info->user_email; 
     $subject = "Profile Updated: ".$site_url.""; 
     $message = "Hello " .$user_info->display_name . "\nYour profile has been updated!\n\nThank you for visiting\n ".$site_url.""; 
     wp_mail($to, $subject, $message); 
} 
add_action('profile_update', 'user_profile_update'); 

В основном это посылает по электронной почте Каждый раз, когда пользователь обновляет там профиль.

Письмо приходит через штраф, но я получаю его 3-4 раза. Что-то не в порядке с вышеуказанным?

+0

Вы экспериментировали с изменением приоритета действия? – nselikoff

ответ

1

Возможно, вы должны установить приоритет для своего действия. Прямо сейчас вы получаете приоритет 10 (по умолчанию, если вы его не определяете). Я бы подумал, что если вы установите приоритет с большим числом (чтобы опоздать в этом процессе), то может решить вашу проблему.

add_action('profile_update', 'user_profile_update', 99, 2); 

Приоритет является третий аргумент, переданный add_action с меньшими номерами выполняется первым. Большое число (например, 99) поместит его в конце выполнения. Несмотря на то, что приоритетные и принятые аргументы не требуются, по-прежнему хорошая привычка передавать их (и определять их, если они отличаются от значения по умолчанию).

Смежные вопросы