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

ejk8hzay  于 2023-04-19  发布在  PHP
关注(0)|答案(2)|浏览(136)

如果wordpress wp_insert_user中还没有usermeta字段名匹配,表单提交数据会去哪里?
具体来说,我在表单提交中包含了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表中看到这些字段,但我没有。

9ceoxa92

9ceoxa921#

在本例中,您在注册表单中添加了两个新字段“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 );
2ic8powd

2ic8powd2#

请参考此文档以了解更多详细信息。您无法添加wp_insert_user()选项指定之外的项目,但您可以使用update_user_meta()函数指定其他用户 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);
        }

相关问题