如何向wp_users添加用户注册详细信息?

时间:2014-05-27 03:22:24

标签: wordpress

现在这是我的困境,我现在运行一个Minecraft服务器,因为我社区里的很多人喜欢玩它。我目前设置的方式是,在网站上注册的用户可以访问Minecraft服务器。 Minecraft连接到数据库并检查他们是否已经注册或者他们的名字是否存在。但问题是用户必须使用他们的Minecraft用户名注册,某些用户;不喜欢这样做。现在我想在wp_users中的一个列中显示一个可自定义的文本字段,说明我的Minecraft用户名。 对不起,如果这是重复的话。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用用户元数据,而不是在wp_users表中创建我建议的新列。您可以updateget usermeta。

如果您想自己编写代码,我认为您需要创建自己的注册表单和随附的PHP文件来处理它,因为我认为没有正确的钩子来获取您需要的所有内容,尽管我可以是错的。如果需要,我很高兴为您提供帮助。

否则,你可以尝试一些插件,虽然我没有这样做。也许thisthis - 请注意,我没有尝试过其中任何一项,也不是100%确定他们会做你想做的事。

要在用户个人资料中保存并显示用户元字段,请在functions.php文件中尝试此操作;

<?php
add_action( 'show_user_profile', 'add_user_meta_fields' );
add_action( 'edit_user_profile', 'add_user_meta_fields' );
add_action( 'personal_options_update', 'update_user_meta_fields' );
add_action( 'edit_user_profile_update', 'update_user_meta_fields' );

function update_user_meta_fields( $user_id ) {
    if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }
    update_user_meta( $user_id, 'mincraftUser', $_POST['mincraftUser'] );
}

function add_user_meta_fields( $user ) { ?>
<h3>Extra Custom Meta Fields</h3>

<table class="form-table">
    <tr>
        <th><label for="mincraftUser">Twitter User Name</label></th>
        <td>
            <input type="text" id="mincraftUser" name="mincraftUser" size="20" value="<?php echo esc_attr( get_the_author_meta( 'mincraftUser', $user->ID )); ?>">
            <span class="description">Please enter your Twitter Account User name, eg: oneTarek</span>
        </td>
    </tr>
</table>

<?php }
相关问题