php - 如何让当前用户全名显示在表单验证消息中
问题描述
我正在使用一个名为 Ultimate Membership Pro 的 Wordpress 插件,它使用 Ajax 调用来验证注册表单中的用户名。但是,当已注册的用户名尝试再次注册时,我想检索用户的全名。
示例 - 我希望验证消息显示:此用户名已被 John Doe 使用
我试图在插件目录中操作一个名为 Indeed-membership-pro.php 的文件。
//I added this code under the function
//I called a global method
global $current_user;
$uid = get_user_by('login', $value);
case 'user_login':
if (!validate_username($value)){
$return = $register_msg['ihc_register_error_username_msg'];
}
if (username_exists($value)) {
//I concatenate the error message with the input username to get the user ID. But i need the user FirstName and Lastname
$return = $register_msg['ihc_register_username_taken_msg'] . $uid->ID;
}
break;
function ihc_check_value_field($type='', $value='', $val2='', $register_msg=array()){
//I called a global method
global $current_user;
$uid = get_user_by('login', $value);
if (isset($value) && $value!=''){
switch ($type){
case 'user_login':
if (!validate_username($value)){
$return = $register_msg['ihc_register_error_username_msg'];
}
if (username_exists($value)) {
//I am able to get the user ID But i need First Name and last Name
$return = $register_msg['ihc_register_username_taken_msg']. $uid->ID;
}
break;
case 'user_email':
if (!is_email($value)) {
$return = $register_msg['ihc_register_invalid_email_msg'];
}
if (email_exists($value)){
$return = $register_msg['ihc_register_email_is_taken_msg'];
}
$blacklist = get_option('ihc_email_blacklist');
if(isset($blacklist)){
$blacklist = explode(',',preg_replace('/\s+/', '', $blacklist));
if( count($blacklist) > 0 && in_array($value,$blacklist)){
$return = $register_msg['ihc_register_email_is_taken_msg'];
}
}
break;
case 'confirm_email':
if ($value==$val2){
$return = 1;
} else {
$return = $register_msg['ihc_register_emails_not_match_msg'];
}
break;
case 'pass1':
$register_metas = ihc_return_meta_arr('register');
if ($register_metas['ihc_register_pass_options']==2){
//characters and digits
if (!preg_match('/[a-z]/', $value)){
$return = $register_msg['ihc_register_pass_letter_digits_msg'];
}
if (!preg_match('/[0-9]/', $value)){
$return = $register_msg['ihc_register_pass_letter_digits_msg'];
}
} else if ($register_metas['ihc_register_pass_options']==3){
//characters, digits and one Uppercase letter
if (!preg_match('/[a-z]/', $value)){
$return = $register_msg['ihc_register_pass_let_dig_up_let_msg'];
}
if (!preg_match('/[0-9]/', $value)){
$return = $register_msg['ihc_register_pass_let_dig_up_let_msg'];
}
if (!preg_match('/[A-Z]/', $value)){
$return = $register_msg['ihc_register_pass_let_dig_up_let_msg'];
}
}
//check the length of password
if($register_metas['ihc_register_pass_min_length']!=0){
if (strlen($value)<$register_metas['ihc_register_pass_min_length']){
$return = str_replace( '{X}', $register_metas['ihc_register_pass_min_length'], $register_msg['ihc_register_pass_min_char_msg'] );
}
}
break;
case 'pass2':
if ($value==$val2){
$return = 1;
} else {
$return = $register_msg['ihc_register_pass_not_match_msg'];
}
break;
case 'tos':
if ($value==1){
$return = 1;
} else {
$return = $register_msg['ihc_register_err_tos'];
}
break;
default:
//required conditional field
$check = ihc_required_conditional_field_test($type, $value);
if ($check){
$return = $check;
} else {
$return = 1;
}
break;
}
if (empty($return)){
$return = 1;
}
return $return;
} else {
$check = ihc_required_conditional_field_test($type, $value);//Check for required conditional field
if ($check){
return $check;
} else {
return $register_msg['ihc_register_err_req_fields'];
}
}
}
add_action("wp_ajax_nopriv_ihc_ap_reset_custom_banner", "ihc_ap_reset_custom_banner");
add_action('wp_ajax_ihc_ap_reset_custom_banner', 'ihc_ap_reset_custom_banner');
解决方案
$user_object->display_name
就是你要找的。
鉴于此,在错误消息中显示用户数据(例如名字和姓氏)可能不是一个好主意。
推荐阅读
- java - 如何将数据字段插入数据库中的表?
- c# - 有没有办法使用连接工厂设置实体框架核心 DbContext?
- python - 使用子类模型时 TQDM 激增
- json-ld - 使用 heracles.ts 提取 hydra:class 或 hydra:collection 的属性
- javascript - Firebase 实时数据库 JS 错误:Reference.set 失败
- omnet++ - 为什么 omnet++ 没有为 .msg 文件中定义的类成员生成 get 方法?
- javascript - JavaScript 将对象数组转换为仅针对特定键的数组
- javascript - 如何检查输入值(React)
- moodle - 在 Moodle 的活动完成报告中添加自定义字段
- php - 如何未经授权的用户无法从 Laravel 访问图像 URL