我的Wordpress网站上有一个注册页面。 我在数据库中有额外的字段,我想在创建用户时填写这些字段 - 它们是预定的:
showbusiness = 1
showemail = 1
showaddress = 1
showphone = 1
showwebsite = 1
showemailcontent =1
我如何添加这些内容,因为我现在有以下内容,但我知道wp_create_user
不允许这样做:
$status = wp_create_user( $username, $password, $email );
答案 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');
希望有所帮助。