Wordpress,如何创建用户并填写其他字段

时间:2016-01-05 19:44:59

标签: php wordpress

我的Wordpress网站上有一个注册页面。 我在数据库中有额外的字段,我想在创建用户时填写这些字段 - 它们是预定的:

showbusiness = 1 
showemail = 1 
showaddress = 1 
showphone = 1 
showwebsite = 1 
showemailcontent =1

我如何添加这些内容,因为我现在有以下内容,但我知道wp_create_user不允许这样做:

$status = wp_create_user( $username, $password, $email );

2 个答案:

答案 0 :(得分:0)

假设其中一个表已存在必要的列:

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

function registration_extra_fields( $user_id ) {

    global $wpdb;
    $table_name = $wpdb->prefix . 'users'; // or any other table

    $wpdb->get_results("
        UPDATE $table_name
        SET column = val
        WHERE ID = $user_id
    ");
}

答案 1 :(得分:0)

您要使用的WordPress包装函数是update_user_meta()。您也可以使用add_user_meta(),但如果它不存在,则会在那里添加。

add_action( 'user_register', 'registration_extra_fields', 10, 1 );
function registration_extra_fields( $user_id ) {
    update_user_meta( $user_id, 'showbusiness', 1);
    /* repeat for each data value */
}

注意触发操作' user_register'我和Faisal使用你需要使用wp_insert_user()函数。这与wp_create_user()函数类似,但允许更大范围的输入。

另请注意,您可以将整个数组发送到usermeta表,而不仅仅是单个值。这有助于加快运营速度。

所以这样的东西可以在钩子函数中使用:

$data = array(
    'showbusiness' => 1, 
    'showemail' => 1,
    'showaddress' => 1,
    'showphone' => 1,
    'showwebsite' => 1,
    'showemailcontent' => 1
)
update_user_meta( $user_id, 'showflags', $data );

然后,您需要使用的数据是get_user_meta( $user_id, 'showflags');

希望有所帮助。