1

我有一个 wordpress 网站,我想在用户注册时添加新字段,例如电话号码和街道地址。

我知道如何在注册表单中添加输入字段,但我不明白如何在注册期间将此字段保存在数据库中,就像保存用户名的其他详细信息一样。

怎么做?

更新:

add_action('user_register', 'myplugin_user_register')

在将用户名、电子邮件等主要用户详细信息插入数据库后调用函数 myplugin_user_register(),否则将同时保存所有详细信息。

我还想在 $wpdb->users 中的其他表中保存额外的字段,该怎么做?

4

3 回答 3

3

添加自定义用户字段就像添加自定义字段以发布。

它可以在以下过滤器的帮助下完成:

  1. '注册表格'
  2. '注册后'
  3. '用户注册'

您可以在此处查看完整过程的示例:http: //codex.wordpress.org/Customizing_the_Registration_Form

如果您需要允许用户从其个人资料页面进行修改,请检查过滤器 personal_options_update 和 edit_user_profile_update。

于 2013-05-14T22:05:30.853 回答
1

如果您不想自己研究代码,有一些非常简单的插件可以为您完成这项工作:cimy user extra fieldsUser Registration Aide ..

您可以在同一个地方搜索更多内容(插件存储库

关于您的更新:

您应该使用的是update_user_meta(),和add_user_meta(),所有这些都与 post_meta(自定义字段)完全一样,唯一的区别是它们被分配给用户而不是 post。把它们想象成“用户的自定义字段”delete_user_meta()get_user_meta()

就像 RafH 说的那样,不需要添加表格,实际上在使用 wordpress 时这是一种不好的做法,并且是未来头痛的收据。

于 2013-05-15T00:51:12.200 回答
1

user_register action hook 用于将额外字段数据作为自定义注册表单提交的用户元数据保存到数据库。基本上,当创建新用户时,用户 id 作为参数传递给此 action hook 并用于将额外字段保存在用户元。

add_action( 'user_register', 'my_save_extra_fields', 10, 1 );

function my_save_extra_fields( $user_id ) {

    if ( isset( $_POST['mobile_no'] ) )
        update_user_meta($user_id, 'mobile_no', $_POST['mobile_no']);

}
于 2017-02-08T17:22:19.423 回答