2013-09-24 241 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)將在執行結束時放棄。即使優先權和被接受的參數不是必需的,但傳遞這些參數仍然是一個好習慣(並且如果它們不同於缺省值,則定義它們)。