You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让WordPress后台使用Ultimate Member模板发送重置密码邮件?

解决WordPress后台发送重置密码邮件调用Ultimate Members模板的问题

要让WordPress后台用户页面发送重置密码邮件时使用Ultimate Members(UM)的模板并修复404链接问题,可以通过以下PHP代码实现:

实现步骤

1. 禁用WordPress默认重置密码邮件

首先拦截WordPress原生的重置密码邮件发送逻辑:

add_filter( 'wp_password_change_notification', '__return_false' );

2. 替换为UM模板发送并修正链接

添加自定义函数,调用UM的邮件模板生成逻辑,同时生成正确的重置链接:

add_action( 'send_password_reset_email', 'um_custom_admin_reset_password_email', 10, 4 );
function um_custom_admin_reset_password_email( $user, $reset_key, $user_login, $user_email ) {
    // 检查UM插件是否激活
    if ( ! class_exists( 'UM' ) ) {
        return;
    }

    // 生成UM密码重置页面的正确链接(需确保UM已配置该页面)
    $reset_link = um_get_page_link( 'password-reset', 'slug' ) . '?reset_key=' . $reset_key . '&user_id=' . $user->ID;

    // 获取UM预设的密码重置邮件模板
    $mail_template = UM()->mail()->get_template( 'password_reset' );

    // 替换模板中的变量
    $mail_subject = str_replace( '{username}', $user_login, $mail_template['subject'] );
    $mail_message = str_replace( 
        [ '{username}', '{reset_link}' ], 
        [ $user_login, $reset_link ], 
        $mail_template['message'] 
    );

    // 使用UM的发件人配置设置邮件头
    $headers = array(
        'Content-Type: text/html; charset=UTF-8',
        'From: ' . UM()->options()->get( 'email_from' ) . ' <' . UM()->options()->get( 'email_from_address' ) . '>'
    );

    // 发送邮件
    wp_mail( $user_email, $mail_subject, $mail_message, $headers );
}

注意事项

  • 将代码添加到当前主题的functions.php文件,或创建独立的自定义插件(推荐后者,避免主题更新丢失代码)
  • 确保已在UM插件设置的「页面」选项中正确配置了「密码重置」页面
  • 测试邮件发送,确认重置链接可正常访问且模板样式与UM前台发送的一致

内容的提问来源于stack exchange,提问作者XanderMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:26:02