WooCommerce 以编程方式/通过功能创建帐户
WooCommerce Create account programmatically / through function
是否可以像使用 WordPress 用户一样以编程方式创建客户。显然,WooCommerce 用户共享一些相同的 WordPress 用户字段,还有其他内容需要设置,例如帐单/邮政地址。
有没有人实现过这个?我在 WooCommerce API/他们网站上的功能列表中找不到任何内容。
编辑:刚刚发现:http://docs.woothemes.com/wc-apidocs/function-wc_create_new_customer.html
但是我怎样才能提供其他字段详细信息(如地址)。
WooCommerce 客户本质上是具有额外元数据的 WordPress 用户。因此,一旦创建了用户,您就可以使用 update_user_meta
函数向其添加元数据。导航到用户 -> 所有用户,编辑其中一个用户,然后向下滚动以查看字段。
编造下面给出的代码,让您了解其工作原理。
$user_id = wc_create_new_customer( $email, $username, $password );
update_user_meta( $user_id, "billing_first_name", 'God' );
update_user_meta( $user_id, "billing_last_name", 'Almighty' );
.... more fields
这是账单和送货字段的完整列表
计费
- billing_first_name
- billing_last_name
- billing_company
- billing_address_1
- billing_address_2
- billing_city
- billing_postcode
- billing_country
- billing_state
- billing_email
- billing_phone
运费
- shipping_first_name
- shipping_last_name
- shipping_company
- shipping_address_1
- shipping_address_2
- shipping_city
- shipping_postcode
- shipping_country
- shipping_state
在尝试创建新用户之前,我先查看该用户是否已存在,如果找到则更新现有用户。 get_user_by(field,value) 函数 returns 用户对象所以如果用户存在使用他们的 id 更新元字段或者如果不创建一个新的。
$email = 'test@test.test';
$address = array(
'first_name' => 'Tester',
'last_name' => 'Test',
'company' => 'Testing, LLC',
'email' => $email,
'phone' => '777-777-777-777',
'address_1' => '310 S. Main Street',
'address_2' => '',
'city' => 'Las Vegas',
'state' => 'NV',
'postcode' => '89000',
'country' => 'US'
);
$default_password = wp_generate_password();
$user = get_user_by('login', $email);
if (!$user = $user->ID) $user = wp_create_user( $email, $default_password, $email );
update_user_meta( $user, "billing_first_name", $address['first_name'] );
update_user_meta( $user, "billing_last_name", $address['last_name']);
update_user_meta( $user, "billing_company", $address['company'] );
update_user_meta( $user, "billing_email", $address['email'] );
update_user_meta( $user, "billing_address_1", $address['address_1']);
update_user_meta( $user, "billing_address_2", $address['address_2'] );
update_user_meta( $user, "billing_city", $address['city']);
update_user_meta( $user, "billing_postcode", $address['postcode'] );
update_user_meta( $user, "billing_country", 'US');
update_user_meta( $user, "billing_state", $address['state'] );
update_user_meta( $user, "billing_phone", $address['phone'] );
update_user_meta( $user, "shipping_first_name", $address['first_name'] );
update_user_meta( $user, "shipping_last_name", $address['last_name']);
update_user_meta( $user, "shipping_company", $address['company'] );
update_user_meta( $user, "shipping_address_1", $address['address_1']);
update_user_meta( $user, "shipping_address_2", $address['address_2'] );
update_user_meta( $user, "shipping_city", $address['city']);
update_user_meta( $user, "shipping_postcode", $address['postcode'] );
update_user_meta( $user, "shipping_country", 'US');
update_user_meta( $user, "shipping_state", $address['state'] );
是否可以像使用 WordPress 用户一样以编程方式创建客户。显然,WooCommerce 用户共享一些相同的 WordPress 用户字段,还有其他内容需要设置,例如帐单/邮政地址。
有没有人实现过这个?我在 WooCommerce API/他们网站上的功能列表中找不到任何内容。
编辑:刚刚发现:http://docs.woothemes.com/wc-apidocs/function-wc_create_new_customer.html
但是我怎样才能提供其他字段详细信息(如地址)。
WooCommerce 客户本质上是具有额外元数据的 WordPress 用户。因此,一旦创建了用户,您就可以使用 update_user_meta
函数向其添加元数据。导航到用户 -> 所有用户,编辑其中一个用户,然后向下滚动以查看字段。
编造下面给出的代码,让您了解其工作原理。
$user_id = wc_create_new_customer( $email, $username, $password );
update_user_meta( $user_id, "billing_first_name", 'God' );
update_user_meta( $user_id, "billing_last_name", 'Almighty' );
.... more fields
这是账单和送货字段的完整列表
计费
- billing_first_name
- billing_last_name
- billing_company
- billing_address_1
- billing_address_2
- billing_city
- billing_postcode
- billing_country
- billing_state
- billing_email
- billing_phone
运费
- shipping_first_name
- shipping_last_name
- shipping_company
- shipping_address_1
- shipping_address_2
- shipping_city
- shipping_postcode
- shipping_country
- shipping_state
在尝试创建新用户之前,我先查看该用户是否已存在,如果找到则更新现有用户。 get_user_by(field,value) 函数 returns 用户对象所以如果用户存在使用他们的 id 更新元字段或者如果不创建一个新的。
$email = 'test@test.test';
$address = array(
'first_name' => 'Tester',
'last_name' => 'Test',
'company' => 'Testing, LLC',
'email' => $email,
'phone' => '777-777-777-777',
'address_1' => '310 S. Main Street',
'address_2' => '',
'city' => 'Las Vegas',
'state' => 'NV',
'postcode' => '89000',
'country' => 'US'
);
$default_password = wp_generate_password();
$user = get_user_by('login', $email);
if (!$user = $user->ID) $user = wp_create_user( $email, $default_password, $email );
update_user_meta( $user, "billing_first_name", $address['first_name'] );
update_user_meta( $user, "billing_last_name", $address['last_name']);
update_user_meta( $user, "billing_company", $address['company'] );
update_user_meta( $user, "billing_email", $address['email'] );
update_user_meta( $user, "billing_address_1", $address['address_1']);
update_user_meta( $user, "billing_address_2", $address['address_2'] );
update_user_meta( $user, "billing_city", $address['city']);
update_user_meta( $user, "billing_postcode", $address['postcode'] );
update_user_meta( $user, "billing_country", 'US');
update_user_meta( $user, "billing_state", $address['state'] );
update_user_meta( $user, "billing_phone", $address['phone'] );
update_user_meta( $user, "shipping_first_name", $address['first_name'] );
update_user_meta( $user, "shipping_last_name", $address['last_name']);
update_user_meta( $user, "shipping_company", $address['company'] );
update_user_meta( $user, "shipping_address_1", $address['address_1']);
update_user_meta( $user, "shipping_address_2", $address['address_2'] );
update_user_meta( $user, "shipping_city", $address['city']);
update_user_meta( $user, "shipping_postcode", $address['postcode'] );
update_user_meta( $user, "shipping_country", 'US');
update_user_meta( $user, "shipping_state", $address['state'] );