让代码更简单

WordPress 注册/重置密码/更改密码钩子

重要:本文最后更新于2023-09-08 14:12:32,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

wordpress在提供邮件提醒的地方都留了hook,方便让开发者自定义。最新在添加第三方登录时遇到虚拟邮箱发信问题,为了防止给指定邮件地址后缀发信,可以利用如下wordpress提供的钩子来实现。

复制
//https://www.daimadog.org/9873.html 
//禁止用户注册时发送电子邮件给管理员
add_filter( 'wp_new_user_notification_email_admin', '__return_false' );

// 禁止用户重置修改密码时发送电子邮件给管理员
add_filter( 'wp_password_change_notification_email', '__return_false' );

// 禁止用户注册时发送电子邮件给注册者
add_filter( 'wp_new_user_notification_email', '__return_false' );

// 禁止邮箱地址改变时发送邮件给注册者
add_filter( 'send_email_change_email', '__return_false' );

// 禁止更改密码时发送电子邮件给注册者
add_filter( 'send_password_change_email', '__return_false' );

注册时过滤

复制
//https://www.daimadog.org/9873.html
// 注册时过滤有@oauth.com邮箱地址发送注册邮件提醒
function filter_email_recipient( $recipient, $user ) {
    $email = $user->user_email;
    $allowed_domains = array( 'test.com' );
    $email_parts = explode( '@', $email );
    $domain = end( $email_parts );

    if (!in_array( $domain, $allowed_domains ) ) {
        return $recipient;
    }
    return '';
}
add_filter( 'wp_new_user_notification_email', 'filter_email_recipient', 10, 2 );

评论时过滤

复制
//https://www.daimadog.org/9873.html
//过滤评论发送邮件地址
function custom_comment_email_filter( $emails, $comment_id ) {
    $blacklisted_domains = array( 'test.com' ); 

    $comment = get_comment( $comment_id );
    $comment_author_email = $comment->comment_author_email;
    $email_parts = explode( '@', $comment_author_email );
    $domain = end( $email_parts );

    if ( in_array( $domain, $blacklisted_domains ) ) {
        $key = array_search( $comment_author_email, $emails );
        if ( false !== $key ) {
            unset( $emails[ $key ] );
        }
    }

    return $emails;
}
add_filter( 'comment_notification_recipients', 'custom_comment_email_filter', 10, 2 );

将代码中的test.com换成你需要过滤的邮件地址后缀即可。

修改邮箱时过滤

复制
//https://www.daimadog.org/9873.html
// 禁止修改邮箱地址时发送确认邮件
add_filter( 'send_email_change_email', '__return_false' );

我这里直接禁止,如果想过滤,可以参考上面的过滤代码

修改密码时过滤

复制
//https://www.daimadog.org/9873.html
// 禁止修改密码时发送密码重置邮件
add_filter( 'send_password_change_email', '__return_false' );

我这里直接禁止,如果想过滤,可以参考上面的过滤代码

感觉很棒!可以赞赏支持我哟~

1 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐