目次
EDD_Paymentクラスを使用すると、Easy Digital Downloadsで支払い情報を簡単に作成、編集、削除できます。以下に例を示します。
新しい支払いを作成する例
$payment = new EDD_Payment(); $payment->add_download( 97 ); $payment->email = '[email protected]'; $payment->status = 'complete'; $payment->save();
既存の支払いにあるメールを更新する例:
$payment = new EDD_Payment( 4023 ); $payment->email = '[email protected]'; $payment->save();
利用可能なプロパティ
オブジェクトで利用可能なプロパティは次のとおりです。
- $ID
- $number
- $mode
- $key
- $total
- $subtotal
- $tax
- $fees
- $discounts
- $date
- $completed_date
- $status
- $old_status
- $status_nicename
- $customer_id
- $user_id
- $first_name
- $last_name
- $address
- $transaction_id
- $downloads
- $ip
- $gateway
- $currency
- $cart_details
- $has_unlimited_downloads
- $pending
- $parent_payment
利用可能なメソッド
add_download( $download_id = 0, $args = array(), $options = array() )
このメソッドは、支払いにダウンロードを追加することを可能にします。3つの引数を受け取ります。
$download_id
これは、添付したいダウンロードのIDです。常に整数です。
$args
これは、これらの組み込みデフォルトをオーバーライドできる配列です。
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'tax' => 0.00,
'fees' => array()
手数料は必要なものであれば何でも構いませんが、
add_fee()の形式に従います。詳細については、EDD_Feesのドキュメントを参照してください。
$options
これは、ダウンロードの任意のオプションを受け入れることができる配列です。例としては、ソフトウェアライセンス拡張機能の
is_renewalまたはis_upgradeなどがあります。
重要:完了した支払いにダウンロードを追加した場合、新しいダウンロードは価格ゼロに設定されます。他のステータスの支払いに対してダウンロードを追加すると、そのダウンロードはデフォルトの金銭的価値を保持し、支払いの合計値が増加します。
このデフォルトの動作は、
item_priceを$argsで送信することによってオーバーライドできます。
remove_download( $download_id, $args = array() )
このメソッドは、支払いからダウンロードを削除することを可能にします。2つの引数を受け取ります。
$download_id
これは、添付したいダウンロードのIDです。常に整数です。
$args
これは、これらの組み込みデフォルトをオーバーライドできる配列です。
'quantity' => 1,
'price_id' => false,
'item_price' => 0.00,
'cart_index' => false,
注意:ダウンロードが可変である場合、適切なアイテムが削除されるようにprice_idが必要です。
注意:デフォルトではremove_download()は1つのアイテムのみを削除します。同じアイテムが複数ある場合は、$argsのquantityオプションを使用する必要があります。
get_meta( $meta_key = ‘_edd_payment_meta’, $single = true )
このメソッドは、支払いに関連付けられたメタデータを取得します。メタキーと、メタデータを単一モードで要求するかどうかを示すブール値を受け取ります。
内部的には、このメソッドはget_post_metaを実行しますが、EDD 1.5との後方互換性を提供するためのロジックを適用します。
次に、
'edd_get_payment_meta_' . $meta_keyにapply_filtersを実行し、さらにedd_get_payment_metaのフィルターを適用した後の出力を返します。
update_meta( $meta_key = ”, $meta_value = ”, $prev_value = ” )
このメソッドは、支払い用の投稿メタを更新することを可能にします。メタキー、メタ値、および比較用の以前のメタ値を受け取ります。
更新する前に、メタキーは
'edd_update_payment_meta_' . $meta_keyというフィルターを通過します。
戻り値は
update_post_metaの出力です。
add_fee( $args = ”, $global = true )
このメソッドは、任意の料金を支払いに添付することを可能にします。EDD_Feesのそれとまったく同じように機能します。そちらのドキュメントをお読みください。
remove_fee( $key )
このメソッドは、指定された手数料を削除できます。EDD_Fees のメソッドと全く同じように機能します。
そちらのドキュメントをお読みください。
remove_fee_by( $key, $value, $global = false )
このメソッドは、手数料配列内の位置を知らなくても手数料を削除できます。例えば、配送というラベルの手数料がある場合、次のようにすることができます。
$payment->remove_fee_by( 'label', 'Shipping' );
上記のコードは、配送というラベルの手数料の最初のインスタンスを削除します。グローバルフラグを true にして次のように追加した場合:
$payment->remove_fee_by( 'label', 'Shipping', true );
配送というラベルの手数料をすべて削除します。
add_note( $note = false )
このメソッドは、支払いに追加のメモを添付できます。結果は次のようになります。

update_status( $status = false )
このメソッドは、指定された支払いのステータスを設定できます。可能なステータスは次のとおりです。
- 保留中
- 完了
- 返金済み
- 失敗
- 放棄済み
- 取り消し済み
array_convert()
このメソッドは、利用可能なすべてのプロパティを配列として取得できます。例:
$payment = new EDD_Payment( 4577 ); $payments_array = $payment->array_convert();
重要: array_convert で配列に移動されたプロパティは、その配列内で更新されません。変更後に更新されたバージョンが必要な場合は、このメソッドを再実行して配列を再入力する必要があります。
save()
このメソッドは、他のメソッドによって行われた変更や更新をデータベースに書き込みます。
注意:save() を使用しないと、変更は実際には行われません。
例
一般的なタスクのコード例をいくつか紹介します。
支払いの作成
$payment = new EDD_Payment(); // Instantiates a payment object $payment->add_download( 12 ); // Adds download id 12 to the payment at it's default price $payment->email = '[email protected]'; // Email is required for a payment $payment->status = 'complete'; // Completes the payment $payment->save(); // Writes to the database any changes that were made
既存の支払いの編集
$payment = new EDD_Payment( 42 ); // Loads the information for Payment ID 42 $payment->email = '[email protected]'; // Changes the email address on the payment $payment->save();
支払いのステータスの変更
$payment = new EDD_Payment( 1337 ); $payment->status = 'revoked'; $payment->save();
変動価格のダウンロードの追加
$payment = new EDD_Payment( 1942 );
$args = array(
'price_id' => 1, // Variable price ID
'item_price' => 0.00, // Makes the item free
);
$payment->add_download( 23, $args ); // Adds Download ID 23, variable price 1 to the payment
$payment->save();
オプション付きのダウンロードの追加
$payment = new EDD_Payment( 2008 );
$args = array(
'item_price' => 4.00,
);
$options = array(
'is_renewal' => true,
);
$payment->add_download( 28, $args, $options );
$payment->save();
ダウンロードの削除
$payment = new EDD_Payment( 2008 ); $payment->remove_download( 23 ); $payment->save();
変動価格のダウンロードの削除
$payment = new EDD_Payment( 2008 );
$args = array(
'price_id' => 1,
);
$payment->remove_download( 28, $args );
$payment->save();
