非原生Wordpress字段的Wordpress表单提交数据存储



如果没有匹配的用户元字段名,表单提交数据从wordpress wp_insert_user到哪里?

具体来说,我将Company Name和Phone作为表单提交中的字段,但是当我从wp_users和wp_usermeta表中提取数据时,我没有看到这些新字段。

处理wp_insert_user函数的代码:

if(empty($errors)){
$new_user_id = wp_insert_user(array(
'user_login'       => $user_login,
'user_pass'        => $user_pass,
'user_email'       => $user_email,
'first_name'       => $user_first,
'last_name'        => $user_last,
'company'          => $user_company,
'user_registered'  => date('Y-m-d H:i:s'),
'role'             => 'subscriber',
));

我尝试了上面的代码,并期望在user或usermeta表中看到这些字段,尽管我没有。

在本例中,您添加了两个新字段&;Company name &;和";Phone"对于注册表单,如果您试图将其值保存为用户元数据,那么您需要按照以下代码将这些值作为键值对传递到$userdata数组中:

$userData = array(
'user_login' => $user_login,
'user_pass' => $user_pass,
'user_email' => $user_email,
'first_name' => $user_first,
'last_name' => $user_last,
'company' => $company,
'phone' =>   $phone,
'user_registered'  => date('Y-m-d H:i:s'),
'role'             => 'subscriber'
);
$userId = wp_insert_user( $userData );

用户创建完成后,可以通过WP中的get_user_meta函数从wp_usermeta表中获取这些字段。试试下面的代码:

$company = get_user_meta( $userId, 'company', true );
$phone = get_user_meta( $userId, 'phone', true );

请参考本文档了解更多详细信息。您不能在wp_insert_user()选项之外添加项,但是您可以通过使用update_user_meta()函数指定额外的用户元数据,如下所示。

我需要进行初始的wp_insert_user(array)调用,然后使用来自该调用的相同的$user_id,我可以通过调用update_user_meta()插入用户meta。

文档链接:https://developer.wordpress.org/plugins/users/working-with-user-metadata/#programmatically

代码:

if(empty($errors)){
$new_user_id = wp_insert_user(array(
'user_login'       => $user_login,
'user_pass'        => $user_pass,
'user_email'       => $user_email,
'first_name'       => $user_first,
'last_name'        => $user_last,
'user_registered'  => date('Y-m-d H:i:s'),
'role'             => 'subscriber',
));
if($new_user_id){
update_user_meta( $new_user_id, "user_company", $user_company);
update_user_meta($new_user_id, "user_phone", $user_phone);
}

相关内容

  • 没有找到相关文章

最新更新