0

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

4

1 回答 1

1

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

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

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

于 2014-02-09T21:28:41.350 回答