创建用户时以编程方式更新WooCommerce用户 然后添加WooCommerce用户数据有两种方法:

问题描述

我正在尝试通过编程方式通过表单创建新用户,但是我在使电话号码和国家/地区设置为wp_create_user时遇到问题-为什么不采用这些值?名字和姓氏可以正常工作。

相关代码:

$user_id = wp_create_user( $username,$random_password,$user_email ); 
    wp_update_user([
    'ID' => $user_id,'first_name' => rgar( $entry,'20.3' ),'last_name'  => rgar( $entry,'20.6' ),'phone'      => rgar( $entry,'16' ),'country'  => rgar( $entry,'24.6' )
    ]);

解决方法

在WooCommerce中,电话和国家/地区是计费字段,因此正确的用户元密钥为:

  • billing_country (请记住,您需要设置有效的国家/地区代码)
  • billing_phone

您还需要设置billing_emailbilling_first_namebilling_last_name

因此,您的代码将改为,同时将wp_create_user()函数替换为:

    $username = rgar( $entry,'20.3' );
    $email    = rgar( $entry,'10' );
    $password = wp_generate_password( 12,false );

    $user_data = array(
        'user_login' => $username,'user_pass'  => $password,'user_email' => $email,'role'       => 'customer','first_name' => rgar( $entry,'20.3' ),'last_name'  => rgar( $entry,'20.6' ),);

    $user_id  = wp_insert_user( $user_data ); // Create user with specific user data

然后添加WooCommerce用户数据有两种方法:

1)。使用WC_Customer对象和方法:

    $customer = new WC_Customer( $user_id ); // Get an instance of the WC_Customer Object from user Id

    $customer->set_billing_first_name( rgar( $entry,'20.3' ) );
    $customer->set_billing_last_name( rgar( $entry,'20.6' ) );
    $customer->set_billing_country( rgar( $entry,'24.6') );
    $customer->set_billing_phone( rgar( $entry,'16' ) );
    $customer->set_billing_email( $email );

    $customer->save(); // Save data to database (add the user meta data)

2)或使用WordPress update_user_meta()功能 (旧方法)

update_user_meta( $user_id,'billing_first_name',rgar( $entry,'20.3') );
update_user_meta( $user_id,'billing_last_name','20.6') );
update_user_meta( $user_id,'billing_country','24.6') );
update_user_meta( $user_id,'billing_phone','16') );
update_user_meta( $user_id,'billing_email',$email );
,

您可以将countryphone添加为用户元并将其保存在用户元表中:

add_user_meta( $user_id,'country','24.6'));
add_user_meta( $user_id,'phone','16'));

WordPress Codex:Click Here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...