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

如何在Ultimate Membership Pro注册验证中显示已占用用户名的用户全名

解决Ultimate Membership Pro用户名验证提示显示用户全名的问题

你已经通过get_user_by('login', $value)拿到了对应的WP_User对象,但之前只调用了用户ID,其实WordPress的用户对象自带first_name和last_name属性,我们可以直接用这些属性组合成全名,同时处理用户未填写名/姓的情况,避免提示出现空白。

修改后的核心代码片段

替换你当前case 'user_login'区块内的相关代码即可:

case 'user_login':
if (!validate_username($value)){
    $return = $register_msg['ihc_register_error_username_msg'];
}
if (username_exists($value)) {
    // 获取目标用户的完整对象
    $target_user = get_user_by('login', $value);
    // 组合全名:优先使用名+姓,若为空则用用户名兜底
    $full_name = trim($target_user->first_name . ' ' . $target_user->last_name);
    if (empty($full_name)) {
        $full_name = $target_user->user_login;
    }
    // 生成自定义提示信息
    $return = sprintf('此用户名已被%s占用', $full_name);
    // 如果你想保留插件原有提示模板,也可以这样做(先把原提示改成带占位符的格式,比如"此用户名已被{FULL_NAME}占用"):
    // $return = str_replace('{FULL_NAME}', $full_name, $register_msg['ihc_register_username_taken_msg']);
}
break;

关键细节说明

  • $target_user->first_name和$target_user->last_name:这两个是WordPress默认用户资料里的名、姓字段,直接从用户对象读取即可。
  • 空值兜底逻辑:有些用户可能没填写名或姓,这时候用用户名替代,保证提示信息始终完整。
  • 模板化提示(可选):如果不想硬编码提示文案,可以修改插件的默认提示为带占位符的格式,再用str_replace替换,这样后续修改文案更方便。

重要提醒

直接修改插件核心文件(比如indeed-membership-pro.php)不是长久之计,插件更新时你的修改会被覆盖。如果想长期保留这个功能,建议:

  • 查看插件是否提供了验证提示的过滤钩子,用钩子修改输出;
  • 或者在主题的functions.php里重写这个验证函数(如果插件允许的话);
  • 最稳妥的方式是创建一个简单的自定义插件来实现这个逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:39:05