EDD_Customerクラスは、顧客データの取得、新規顧客エントリの作成、既存顧客エントリの編集に使用されます。このクラスで管理できる値は次のとおりです。
- user_id
- name
- payment_ids
- purchase_value
- purchase_count
- notes
顧客の取得
顧客データを取得する理由は、単に情報を表示するため、統計やログ記録に使用するため、その他さまざまな目的が考えられます。顧客情報を取得して表示する手順は次のとおりです。
ステップ1、データの取得
Customerオブジェクトを作成するには、クラスをインスタンス化する際に何らかの識別子を渡す必要があります。これはメールアドレス、顧客ID、またはWordPressユーザーIDのいずれかです。
例:
Email
$customer = new EDD_Customer( '[email protected]' );
顧客ID
$customer = new EDD_Customer( 33 );
WordPressユーザーID
$customer = new EDD_Customer( 96, true );
注意:WordPressユーザーIDの場合、2番目のパラメータとしてtrueを渡す必要があります。これにより、EDDではなくWordPressを参照するように認識されます。
ステップ2、データの使用
これで、次のように顧客オブジェクトのプロパティにアクセスできます。
- $customer->name;
- $customer->email;
- $customer->date_created;
- $customer->purchase_count;
- $customer->purchase_value;
- $customer->id; // 顧客ID
- $customer->user_id; // WordPressユーザーID
- $customer->payment_ids;
それらをエコーしたり、解析したり、好きなようにできます。
顧客の支払いデータの取得
EDD_Customerクラスには
get_payments()というメソッドがあります。このメソッドはEDD_Paymentオブジェクトの配列を返します。例:
$customer = new EDD_Customer( 33 ); $payments = $customer->get_payments();
これで、$payments にはEDD_Paymentオブジェクトの配列が格納されます。その配列がどのようなものになるかについての詳細は、
EDD_Paymentクラスのドキュメントを参照してください。
顧客の作成
まずオブジェクトをインスタンス化します:
$customer = new EDD_Customer;
例1:
$args = array( 'user_id' => 12 'name' => 'Jose Canseco', 'email' => '[email protected]', 'payment_ids' => '', 'purchase_value' => '', 'purchase_count' => '', 'notes' => 'Whatever note you'd like', );
注意:上記のuser_idはWordPressのユーザーID番号です。WordPressユーザーと顧客を関連付けたい場合にのみ必要です。そうでない場合は、配列から削除してください。
$customer->create( $args );
必須のオプションはメールアドレスなので、次のような方法でも機能します:
$args = array( 'email' => '[email protected]', );
$customer->create( $args );
これにより、提供されたメールアドレスのみを持つ顧客が作成されます。これは問題なく機能します。
顧客の更新
ステップ1:データの取得。
上記の「顧客の取得」の例コードを使用してください。
ステップ2:データの更新
EDD_Customerで顧客データを更新するには2つの方法があります。1つは
update()メソッドを使用して、一度に複数のフィールドを更新する方法です。
例:
$customer = new EDD_Customer( 33 ); $update_args = array( 'email' => '[email protected]', 'name' => 'Jose Canseco', );
これで、顧客33のメールアドレスが更新され、新しいメモが追加されました。
注意:このメソッドでメモフィールドを更新すると、既存のメモはすべて消去されます。新しいメモを追加するには、以下で説明するadd_note()メソッドを使用してください。
特定のフィールドの更新
上記でリストされている一般的なupdate()メソッドを使用する代わりに、通常は以下に提供されているヘルパーメソッドのいずれかを使用するようにしてください。これらは、エラーを減らすのに役立つ特定の限定的な機能を提供します。
以下の各メソッドでは、まず上記のように顧客クラスをインスタンス化します:
$customer = new EDD_Customer( 33 );
attach_payment() と remove_payment()
これらは、支払いを購入者に関連付けたり、購入者から削除したりするために使用されます。どちらも最初の変数としてpayment_idを、2番目の変数としてブールオプションを取ります。2番目がtrueに設定されている場合、統計が更新されます。
例:
$customer->attach_payment( 33, true );
$customer->remove_payment( 33, true );
increase_purchase_count() と decrease_purchase_count()
これらは、単一の顧客が行った購入数を増減するために使用されます。
購入数。どちらも整数を受け取り、格納されている値をその量だけ変更します。
例:
$customer->increase_purchase_count( 1 );
$customer->decrease_purchase_count( 1 );
increase_value() と decrease_value()
これらは、単一の顧客が費やした金額を増減するために使用されます。どちらも小数点数を2桁まで受け取り、格納されている値をその量だけ変更します。
例:
$customer->increase_value( 14.98 );
$customer->decrease_value( 3.00 );
get_notes()
このメソッドは、顧客のアカウントに残されたメモを返します。2つの変数を受け取ります。最初の変数はメモの数、2番目の変数はオフセットです。
例:
$customer->get_notes( 5 ); // 最初の5件のメモを取得$customer->decrease_value( 5, 6 ); // 6番目の位置から始まる5件のメモを取得するため、6〜10番目のメモget_notes_count()
このメソッドは、顧客のアカウントにあるメモの数を返します。入力は受け取りません。
例:
$customer->get_notes_count();
add_note()
このメソッドは文字列を入力として受け取り、顧客のアカウントに新しいメモとして保存します。ハードリターンは保持しますが、HTMLは許可しません。
例:
$customer->add_note( 'これはメモです。すごいと思いませんか?' );
顧客メタ
任意の顧客メタデータは、EDD_Customerクラスに組み込まれているメタ関数を使用して管理できます。
get_meta( $meta_key = ”, $single = true )
get_metaはメタキーを受け取り、その値を返します。singleがfalseに設定されている場合、常に配列を返します。
add_meta( $meta_key = ”, $meta_value, $unique = false )
add_metaはメタキーとその値を受け取りますが、一意のブール値も受け取ります。3番目の入力がtrueの場合、add_metaはメタキーが以前に存在しない場合にのみ成功します。失敗した場合はfalse、成功した場合はtrueを返します。
update_meta( $meta_key = ”, $meta_value, $prev_value = ” )
update_metaはメタキーとそれに設定したい新しい値を受け取ります。同じ名前のキーが複数ある場合、すべて新しい値で更新されます。3番目の入力は、前の値と比較するための値を受け取ります。したがって、fooという値を持つメタキーが複数あるが、barという値を持つものが1つしかない場合、barを3番目の入力にすると、その1つのみが更新されます。失敗した場合はfalse、成功した場合はtrueを返します。
delete_meta( $meta_key = ”, $meta_value = ” )
delete_metaは一致するキーを持つすべてのメタデータを削除します。値も渡された場合、両方が一致する必要があります。失敗した場合はfalse、成功した場合はtrueを返します。
顧客のメールアドレス
各顧客は複数のメールアドレスを持つことができ、これにより複数のアドレスから購入したり、1つのアドレスから購入して別の Сアドレスからサポートを受けたりすることができます。各顧客はプライマリメールアドレスも持ち、これは顧客のデフォルトとして使用されます。顧客管理タブでは、UIは次のようになります:
EDD_Customerクラスを使用すると、開発者は顧客から住所を削除したり、顧客に住所を追加したり、特定の住所をプライマリにしたりできます。
add_email( $email = ”, $primary = false )
この関数は、顧客に追加するメールアドレスを受け取ります。2番目の入力がtrueの場合、新しいメールアドレスが顧客のプライマリメールアドレスとして設定されます。失敗した場合はfalseを返します。成功した場合はtrueを返します。
set_primary_email( $new_primary_email = ” )
この関数はメールアドレスを受け取り、そのメールアドレスが既にこの顧客に関連付けられている場合、その顧客のプライマリメールアドレスにします。失敗した場合はfalseを返します。成功した場合はtrueを返します。
remove_email( $email = ” )
この関数はメールアドレスを受け取り、そのメールアドレスが既にこの顧客に関連付けられている場合、その顧客から削除します。失敗した場合はfalseを返します。成功した場合はtrueを返します。
