web-dev-qa-db-ja.com

WooCommerceプログラムで/機能を介してアカウントを作成する

WordPressユーザーのようにプログラムで顧客を作成する方法はありますか?明らかに、WooCommerceユーザーは同じWordPressユーザーフィールドのいくつかを共有しています、そこにあります請求/住所などの設定が必要な追加コンテンツ。

誰かが以前にこれを達成したことがありますか?彼らのウェブサイトのWooCommerceAPI /関数リストに何も見つかりません。

編集:これを見つけました: http://docs.woothemes.com/wc-apidocs/function-wc_create_new_customer.html

しかし、どうすれば他のフィールドの詳細(アドレスなど)を提供できますか。

13
Stefan Dunn

WooCommerceの顧客は基本的にWordPress追加のメタデータを持つユーザーです。したがって、ユーザーが作成されたら、 update_user_meta 関数。 [ユーザー]-> [すべてのユーザー]に移動し、ユーザーの1人を編集してから、下にスクロールしてフィールドを表示します。

それがどのように機能するかの要点をあなたに与えるために以下に与えられたコードを作りました。

$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
  • 請求先住所1
  • billing_address_2
  • billing_city
  • billing_postcode
  • billing_country
  • billing_state
  • billing_email
  • 課金電話

配送

  • shipping_first_name
  • shipping_last_name
  • 運送会社
  • shipping_address_1
  • shipping_address_2
  • shipping_city
  • shipping_postcode
  • shipping_country
  • shipping_state
29
Anand Shah

新しいユーザーを作成する前に、そのユーザーがすでに存在するかどうかを確認し、見つかった場合は既存のユーザーを更新します。 get_user_by(field、value)関数はユーザーオブジェクトを返すため、ユーザーが存在する場合はIDを使用してメタフィールドを更新するか、そうでない場合は新しいフィールドを作成します。

  $email = '[email protected]';

        $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'] );
3
user1998497