WordPress 注册表单添加额外的字段

生命不是要超越别人,而是要超越自己。每天醒来并告诉自己:更少的理由,更大的腹部,更甜的嘴,更小的脾气,更快的动作,更高的效率,一点微笑和脑。一站式

WordPress 默认的注册表单只有“用户名”和“电子邮件”这两个字段,不少朋友希望注册的时候,添加额外的字段,比如“名字”和“姓氏”等:

下面,倡萌就讲解一下添加“名字”和“姓氏”这两个字段的方法,将下面的代码添加到主题的 functions.php 即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
 * WordPress 注册表单添加额外的字段
 * https://www.wpdaxue.com/require-additional-profile-fields-at-registration.html
 */
// 在注册界面添加额外的表单
add_action( 'register_form', 'additional_profile_fields' );
function additional_profile_fields() { ?>
    <p>
        <label><?php _e('名字') ?><br />
        <input type="text" name="first_name" id="first_name" class="input" size="25" tabindex="20" /></label>
    </p>
    <p>
        <label><?php _e('姓氏') ?><br />
        <input type="text" name="last_name" id="last_name" class="input" size="25" tabindex="20" /></label>
    </p>
<?php }
// 检测表单字段是否为空,如果为空显示提示信息
add_action( 'register_post', 'add_register_field_validate_first_name', 10, 3 );
function add_register_field_validate_first_name( $sanitized_user_login, $user_email, $errors) {
    if (!isset($_POST[ 'first_name' ]) || empty($_POST[ 'first_name' ])) {
        return $errors->add( 'firstnameempty', '<strong>ERROR</strong>: 请输入您的名字.' );
    }
}
add_action( 'register_post', 'add_register_field_validate_last_name', 10, 3 );
function add_register_field_validate_last_name( $sanitized_user_login, $user_email, $errors) {
    if (!isset($_POST[ 'last_name' ]) || empty($_POST[ 'last_name' ])) {
        return $errors->add( 'lastnameempty', '<strong>ERROR</strong>: 请输入您的姓氏.' );
    }
}
// 将用户填写的字段内容保存到数据库中
add_action( 'user_register', 'insert_register_fields' );
function insert_register_fields( $user_id ) {

    $first_name = apply_filters('pre_user_first_name', $_POST['first_name']);
    $last_name = apply_filters('pre_user_last_name', $_POST['last_name']);

    // 以下的 'first_name' 和 'last_name' 是“我的个人资料”中已有的字段
    update_user_meta( $user_id, 'first_name', $first_name );
    update_user_meta( $user_id, 'last_name', $last_name );
}

/** * WordPress 注册表单添加额外的字段 * https://www.wpdaxue.com/require-additional-profile-fields-at-registration.html */ // 在注册界面添加额外的表单 add_action( 'register_form', 'additional_profile_fields' ); function additional_profile_fields() { ?> <p> <label><?php _e('名字') ?><br /> <input type="text" name="first_name" id="first_name" class="input" size="25" tabindex="20" /></label> </p> <p> <label><?php _e('姓氏') ?><br /> <input type="text" name="last_name" id="last_name" class="input" size="25" tabindex="20" /></label> </p> <?php } // 检测表单字段是否为空,如果为空显示提示信息 add_action( 'register_post', 'add_register_field_validate_first_name', 10, 3 ); function add_register_field_validate_first_name( $sanitized_user_login, $user_email, $errors) { if (!isset($_POST[ 'first_name' ]) || empty($_POST[ 'first_name' ])) { return $errors->add( 'firstnameempty', '<strong>ERROR</strong>: 请输入您的名字.' ); } } add_action( 'register_post', 'add_register_field_validate_last_name', 10, 3 ); function add_register_field_validate_last_name( $sanitized_user_login, $user_email, $errors) { if (!isset($_POST[ 'last_name' ]) || empty($_POST[ 'last_name' ])) { return $errors->add( 'lastnameempty', '<strong>ERROR</strong>: 请输入您的姓氏.' ); } } // 将用户填写的字段内容保存到数据库中 add_action( 'user_register', 'insert_register_fields' ); function insert_register_fields( $user_id ) { $first_name = apply_filters('pre_user_first_name', $_POST['first_name']); $last_name = apply_filters('pre_user_last_name', $_POST['last_name']); // 以下的 'first_name' 和 'last_name' 是“我的个人资料”中已有的字段 update_user_meta( $user_id, 'first_name', $first_name ); update_user_meta( $user_id, 'last_name', $last_name ); }

代码分 3 部分组成:

1.在注册界面添加额外的表单

2.检测表单字段是否为空,如果为空显示提示信息

3.将用户填写的字段内容保存到数据库中

需要注意的是,表单使用的是 update_user_meta() 函数来保存数据,请确保第 2 个参数是已经存在的。比如下面的 'first_name' 和 'last_name' 是已经存在数据库中的。

1
2
    update_user_meta( $user_id, 'first_name', $first_name );
    update_user_meta( $user_id, 'last_name', $last_name );

update_user_meta( $user_id, 'first_name', $first_name ); update_user_meta( $user_id, 'last_name', $last_name );

默认情况下,WordPress个人资料的可用字段如下:

  • user_login
  • user_pass
  • user_nicename
  • user_email
  • user_url
  • user_registered
  • user_activation_key
  • user_status
  • display_name
  • nickname
  • first_name
  • last_name
  • description
  • jabber
  • aim
  • yim
  • user_level
  • user_firstname
  • user_lastname
  • user_description
  • rich_editing
  • comment_shortcuts
  • admin_color
  • plugins_per_page
  • plugins_last_view
  • ID

如果你想添加额外的字段到个人资料中,请参考:

删除/添加/调用WordPress用户个人资料的联系信息

WordPress 个人资料添加额外的字段

然后就可以根据上文的代码示例添加字段到注册表单。

到此这篇关于WordPress 注册表单添加额外的字段就介绍到这了。生活中,有人给予帮助,那是幸运,没人给予帮助,那是命运。我们要学会在幸运青睐自己的时候学会感恩,在命运磨练自己的时候学会坚韧。更多相关WordPress 注册表单添加额外的字段内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?

WordPress安装在主机空间的什么目录里面?根目录在哪里?