【问题标题】:wp_mail sending multiple emailswp_mail 发送多封电子邮件
【发布时间】:2013-09-24 12:08:44
【问题描述】:

我的主题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 次。上面有什么不合适的地方吗?

【问题讨论】:

  • 您是否尝试过更改操作的优先级?

标签: php wordpress


【解决方案1】:

您可能应该为您的操作设置优先级。现在,您的优先级为 10(如果您未定义,则为默认值)。我认为,如果您将优先级设置为较高的数字(在流程后期出现),可能会解决您的问题。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-08
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多