wp_mail发送多封电子邮件

时间:2013-09-24 12:08:44

标签: php wordpress

我的主题function.php中有以下功能:

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次。有什么看起来不合适吗?

1 个答案:

答案 0 :(得分:1)

您应该为您的行动设置优先级。现在,您的优先级为10(默认情况下,如果您不定义它)。我认为如果你设置一个高数字的优先级(在这个过程中来得很晚),可能会解决你的问题。

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

优先级是传递给add_action的第三个参数,首先执行较低的数字。高数字(例如99)将在执行结束时放置。即使不需要优先级和接受的参数,传递这些参数仍然是一个好习惯(如果它们与默认值不同,则定义它们)。