AffiliateWP REST API を使用してアフィリエイトデータを完全に制御したい開発者ですか? REST API Extended アドオンは、作成、読み取り、更新、削除操作を可能にし、外部アプリケーション経由でアフィリエイト、紹介、クリエイティブなどを管理できます。
この記事では、AffiliateWP 用の REST API Extended アドオンのインストールとセットアップ方法を説明します。
REST API Extended アドオンにアクセスするには、Pro ライセンスが必要です。
REST API Extended アドオンのインストール
始める前に、WordPressサイトにAffiliateWPをインストールして有効化してください。
AffiliateWP がインストールされ、ライセンスが検証されたら、REST API Extended アドオンをすばやくインストールして有効化できます。
REST API Extended アドオンの設定
REST API Extended アドオンを有効化した後、設定を構成する必要があります。これを行うには、WordPress ダッシュボードの AffiliateWP » 設定 » REST API に移動します。
ここで、アフィリエイト、紹介、支払い、クリエイティブなどのエンドポイントを有効にするチェックボックスを選択できます。
これで、サイトにはアフィリエイトデータを操作するための完全な CRUD REST API が装備されました。
これらの設定が構成されると、サイトは完全に機能する CRUD 対応 REST API を備え、AffiliateWP のデータの作成、読み取り、更新、削除が可能になります。
基本的な AffiliateWP REST API に慣れていない場合や、認証についてヘルプが必要な場合は、コア ドキュメントの REST API の概要 を参照して、使用方法と認証方法に関する追加のガイダンスを確認してください。
アフィリエイトの管理
REST API Extended は、AffiliateWP コアで既に利用可能な 2 つの読み取り専用エンドポイントに加えて、アフィリエイトの作成、編集、削除用の 3 つのエンドポイントを追加します。
すべて 5 つのエンドポイントは、同じ 2 つのルート パターンを利用します。
- アフィリエイト – GET リクエストを送信すると、アフィリエイトのリストが返され、追加の引数でフィルタリングできます。 POST または PUT リクエストを送信すると、新しいアフィリエイトを作成できます。
- アフィリエイト/[ID] – GET、PATCH、または DELETE リクエストを送信すると、それぞれ 1 つのアフィリエイトを取得、編集、または削除できます。
どちらのルートも汎用的な OPTIONS リクエストを受け入れることができ、利用可能なエンドポイント、受け入れられるリクエスト タイプと引数、およびアイテム スキーマに関する情報を検出するのに非常に役立ちます。
アフィリエイトの読み取り、書き込み、編集、または削除を計画しているかどうかにかかわらず、このアドオンはそれを可能にします。
すべてのリクエストは、API キーを使用して認証する必要があります。これらのキーは、AffiliateWP → ツール → API キー タブで生成および管理されます。詳細については、REST API – 認証の記事を確認してください。
アフィリエイトの作成
アフィリエイトは、アフィリエイト ルートに POST または PUT リクエストを送信することによって作成できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates
createエンドポイントは、次のaffwp_add_affiliate()引数のいずれかを受け入れます。
- user_id – (integer) すべてのアフィリエイトは、既存のWordPressユーザーアカウントと1:1の関係を共有します。適切なユーザーIDが利用できない場合は、create_user引数を渡して、アフィリエイトとユーザーアカウントを同時に作成しようとすることができます。
- username – (string) オプション。新しいユーザーアカウントを作成する際にuser_loginを設定するために使用されます。提供されない場合、payment_emailが生成されたWordPressユーザーのuser_loginを生成するために使用されます。
- create_user – (boolean) user_idの代わりに新しいユーザーアカウントを作成するために使用されます。一意のpayment_email値と組み合わせて提供する必要があります。これは、ユーザーアカウントを登録する際に使用されます。
- rate – (integer) 使用するアフィリエイトレート。指定しない場合、グローバルデフォルトが使用されます。
- rate_type – (string) レートタイプ。デフォルトで受け入れられるタイプは「percentage」または「flat」です。指定しない場合、グローバルデフォルトが使用されます。
- payment_email – (string) アフィリエイトの支払いメール。省略した場合、取得時にユーザーアカウントのメールが使用されます。create_userを使用する場合は必須です。
- status – (string) アフィリエイトステータス。「active」、「inactive」、「pending」、「rejected」を受け入れます。デフォルトは「pending」です。
- notes – (string) アフィリエイトのメモ。
user_idを使用してアフィリエイトを作成する:
Method: PUT/POST
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates/?user_id=5&rate=25&rate_type=percentage
新しいアフィリエイトはuser_id 5と関連付けられ、コミッションレートは25パーセントになります。
応答例:
{
"affiliate_id": 30,
"user_id": 5,
"rate": "25",
"rate_type": "percentage",
"payment_email": "",
"status": "pending",
"earnings": 0,
"unpaid_earnings": 0,
"referrals": 0,
"visits": 0,
"date_registered": "2024-01-26 07:27:52",
"id": 30
}
create_userを使用してアフィリエイトとユーザーを作成する:
Method: PUT/POST
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates/?create_user=1&[email protected]
新しいアフィリエイトは新しいユーザー(ID 10)と関連付けられ、支払いメールは[email protected]になります。
応答例:
{
"affiliate_id": 31,
"user_id": 10,
"rate": "",
"rate_type": "",
"payment_email": "[email protected]",
"status": "pending",
"earnings": 0,
"unpaid_earnings": 0,
"referrals": 0,
"visits": 0,
"date_registered": "2024-01-26 07:27:52",
"id": 31
}
既存のアフィリエイトの編集
個々のアフィリエイトは、affiliates/[id]ルートにPOSTまたはPATCHリクエストを送信して更新できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates/[id]
editエンドポイントは、次のaffwp_update_affiliate()引数のいずれかを受け入れます。
- account_email – (string) 関連付けられたユーザーアカウントの新しいアカウントメール。
- payment_email – (string) 新しい支払いメール。
- rate – (integer) 使用するアフィリエイトレート
- rate_type – (string) レートタイプ。
- status – (string) アフィリエイトステータス。「active」、「inactive」、「pending」、「rejected」を受け入れます。
- notes – (string) アフィリエイトのメモ。
アフィリエイトの更新
この例では、アフィリエイトのステータスをpendingからactiveに更新します。
Method: POST/PATCH
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates/31?status=active
応答:
{
"affiliate_id": 31,
"user_id": 10,
"rate": "",
"rate_type": "",
"payment_email": "[email protected]",
"status": "active",
"earnings": 0,
"unpaid_earnings": 0,
"referrals": 0,
"visits": 0,
"date_registered": "2024-01-26 07:27:52",
"id": 31
}
アフィリエイトの削除
アフィリエイトは、affiliates/[id]ルートにDELETEリクエストを送信して削除できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates/[id]
deleteエンドポイントは追加の引数を受け入れません。アフィリエイトが正常に削除されると、応答にdeleted: trueのキー/値ペアと、古いアフィリエイト応答のコピーが含まれます。
リクエスト例:
Method: DELETE
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates/31
応答:
{
"deleted": true,
"previous": {
"affiliate_id": 31,
"user_id": 10,
"rate": "",
"rate_type": "",
"payment_email": "[email protected]",
"status": "active",
"earnings": 0,
"unpaid_earnings": 0,
"referrals": 0,
"visits": 0,
"date_registered": "2024-01-26 07:27:52",
"id": 31
}
}
クリエイティブの管理
REST API Extended は、AffiliateWPコアで既に利用可能な2つの読み取り専用エンドポイントに加えて、クリエイティブの作成、編集、削除それぞれのエンドポイントを1つずつ追加します。
すべて 5 つのエンドポイントは、同じ 2 つのルート パターンを利用します。
- クリエイティブ – GETリクエストが送信されると、クリエイティブのリストが返され、追加の引数でフィルタリングできます。POSTまたはPUTリクエストが送信されると、新しいクリエイティブを作成できます。
- クリエイティブ/[id] – GET、PATCH、またはDELETEリクエストが送信されると、それぞれ単一のクリエイティブを取得、編集、または削除できます。
どちらのルートも汎用的な OPTIONS リクエストを受け入れることができ、利用可能なエンドポイント、受け入れられるリクエスト タイプと引数、およびアイテム スキーマに関する情報を検出するのに非常に役立ちます。
クリエイティブの読み取り、書き込み、編集、削除のいずれを計画していても、このアドオンで可能になります。
すべてのリクエストは、API キーを使用して認証する必要があります。これらのキーは、AffiliateWP → ツール → API キー タブで生成および管理されます。詳細については、REST API – 認証の記事を確認してください。
クリエイティブの作成
クリエイティブは、creativesルートにPOSTまたはPUTリクエストを送信することで作成できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/creatives
createエンドポイントは、次のaffwp_add_creative()引数のいずれかを受け入れます。
- Name – (整数) クリエイティブの名前ラベル。
- Description – (文字列) クリエイティブの説明。
- Url – (文字列) クリエイティブを指すURL。
- Text – (文字列) クリエイティブと共に表示されるテキスト。
- Image – (文字列) クリエイティブに関連付ける画像URL。
- Status – (文字列) クリエイティブのステータス。「active」または「inactive」を受け入れます。デフォルトは「active」です。
クリエイティブの作成
Method: PUT/POST
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/creatives/?name=New+Creative&text=REST
「New Creative」という名前の新しいクリエイティブには、「REST」というテキストが含まれます。
応答例:
{
"creative_id": 20,
"name": "New Creative",
"description": "",
"url": "",
"text": "REST",
"image": "",
"status": "",
"date": "2024-01-26 09:25:05",
"id": 20
}
既存のクリエイティブの編集
単一のクリエイティブは、creatives/[id]ルートにPOSTまたはPATCHリクエストを送信することで更新できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/creatives/[id]
editエンドポイントは、次のaffwp_update_creative()引数のいずれかを受け入れます。
- Name – (整数) クリエイティブの名前ラベル。
- Description – (文字列) クリエイティブの説明。
- Url – (文字列) クリエイティブを指すURL。
- Text – (文字列) クリエイティブと共に表示されるテキスト。
- Image – (文字列) クリエイティブに関連付ける画像URL。
- Status – (文字列) クリエイティブのステータス。「active」または「inactive」を受け入れます。
クリエイティブの更新
この例では、クリエイティブのステータスをアクティブから非アクティブに更新します。
Method: POST/PATCH
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/creatives/20?status=inactive
応答:
{
"creative_id": 20,
"name": "Creative",
"description": "",
"url": "http://alfsflowersandgifts.com",
"text": "AffiliateWP Plugin Testing",
"image": "",
"status": "inactive",
"date": "2024-01-26 09:25:05",
"id": 20
}
クリエイティブの削除
creatives/[id]ルートにDELETEリクエストを送信することで削除できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/creatives/[id]
deleteエンドポイントは追加の引数を受け入れません。クリエイティブが正常に削除されると、レスポンスにdeleted: trueのキー/値ペアと、古いクリエイティブレスポンスのコピーが含まれます。
リクエスト例:
Method: DELETE
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/creatives/20
応答:
{
"deleted": true,
"previous": {
"creative_id": 20,
"name": "Creative",
"description": "",
"url": "http://alfsflowersandgifts.com",
"text": "AffiliateWP Plugin Testing",
"image": "",
"status": "inactive",
"date": "2024-01-26 09:25:05",
"id": 20
}
}
支払い管理
REST API Extended は、AffiliateWPコアで既に利用可能な2つの読み取り専用エンドポイントに加えて、支払い(payouts)の作成、編集、削除それぞれのエンドポイントを1つずつ追加します。
すべて 5 つのエンドポイントは、同じ 2 つのルート パターンを利用します。
- Payouts – GETリクエストが送信されると、支払いリストが返され、追加の引数でフィルタリングできます。POSTまたはPUTリクエストが送信されると、新しい支払いが作成できます。
- Payouts/[id] – GET、PATCH、またはDELETEリクエストが送信されると、それぞれ単一の支払いが取得、編集、または削除できます。
どちらのルートも、利用可能なエンドポイント、受け入れられるリクエストタイプと引数、およびアイテムスキーマに関する情報の検出に非常に役立つ、汎用的なOPTIONSリクエストを受け入れることができます。
すべてのリクエストは、API キーを使用して認証する必要があります。これらのキーは、AffiliateWP → ツール → API キー タブで生成および管理されます。詳細については、REST API – 認証の記事を確認してください。
支払い作成
支払いを作成するには、payoutsルートにPOSTまたはPUTリクエストを送信します。
https://alfsflowersandgifts.com/wp-json/affwp/v1/payouts
createエンドポイントは、次のaffwp_add_payout()引数のいずれかを受け入れます。
- affiliate_id – (整数) 支払いを関連付けるアフィリエイトのID。このフィールドは必須です。
- referrals – (配列|文字列) 支払いを含める紹介IDの配列またはコンマ区切りのリスト。
- amount – (浮動小数点数) 支払い金額(通常は紹介金額から導出されます)。
- payout_method – (文字列) 支払い方法。
- status – (文字列) 「paid」または「failed」を受け入れます。デフォルトは「paid」です。
リクエスト例:
Method: PUT/POST
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/payouts/?affilite_id=30&referrals=10,15,20
payout_idが15の新しい支払いは、affiliate_id 30の紹介10、15、20をカバーします。
応答:
{
"payout_id": 15,
"affiliate_id": 30,
"referrals": "10,15,20",
"amount": 27.87,
"payout_method": "manual",
"status": "paid",
"date": "2024-01-26 12:55:13",
"owner": 1,
"id": 15
}
既存の支払いの編集
個々の支払いは、payouts/[id]ルートにPOSTまたはPATCHリクエストを送信して更新できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/payouts/[id]
editエンドポイントは、次の引数のいずれかを受け入れます。
- affiliate_id – (整数) 支払いを関連付けるアフィリエイトのID。このフィールドは必須です。
- referrals – (配列|文字列) 支払いを含める紹介IDの配列またはコンマ区切りのリスト。
- amount – (浮動小数点数) 支払い金額(通常は紹介金額から導出されます)。
- payout_method – (文字列) 支払い方法。
- status – (文字列) 「paid」または「failed」を受け入れます。デフォルトは「paid」です。
支払いの更新
この例では、支払いのステータスをfailedからpaidに更新します。
Method: POST/PATCH
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/payouts/15?status=paid
応答:
{
"payout_id": 15,
"affiliate_id": 30,
"referrals": "10,15,20",
"amount": 30,
"payout_method": "manual",
"status": "paid",
"date": "2024-01-26 12:55:13",
"owner": 1,
"id": 15
}
支払いの削除
支払いは、payouts/[id]ルートにDELETEリクエストを送信して削除できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/payouts/[id]
deleteエンドポイントは、追加の引数を受け入れません。支払いが正常に削除されると、削除済み: trueのキー/値ペアがレスポンスに含まれ、古い支払いのレスポンスのコピーも含まれます。
リクエスト例:
Method: DELETE
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/payouts/15
応答:
{
"deleted": true,
"previous": {
"payout_id": 6751,
"affiliate_id": 5454,
"referrals": "35878,35877,35876",
"amount": 30,
"payout_method": "manual",
"status": "paid",
"date": "2024-01-26 12:55:13",
"owner": 1,
"id": 6751
}
}
紹介の管理
REST API Extendedは、AffiliateWPコアで既に利用可能な2つの読み取り専用エンドポイントに加えて、紹介の作成、編集、削除のそれぞれのエンドポイントを1つ追加します。
すべて 5 つのエンドポイントは、同じ 2 つのルート パターンを利用します。
- referrals – GETリクエストを送信すると紹介のリストが返され、追加の引数でフィルタリングできます。POSTまたはPUTリクエストを送信すると、新しい紹介を作成できます。
- referrals/[id] – GET、PATCH、またはDELETEリクエストを送信すると、個々の紹介を取得、編集、または削除できます。
どちらのルートも、利用可能なエンドポイント、受け入れられるリクエストタイプと引数、およびアイテムスキーマに関する情報の検出に非常に役立つ、汎用的なOPTIONSリクエストを受け入れることができます。
すべてのリクエストは、API キーを使用して認証する必要があります。これらのキーは、AffiliateWP → ツール → API キー タブで生成および管理されます。詳細については、REST API – 認証の記事を確認してください。
紹介の作成
紹介は、referralsルートにPOSTまたはPUTリクエストを送信して作成できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/referrals
createエンドポイントは、次のaffwp_add_referral()引数のいずれかを受け入れます。
- affiliate_id – (整数) 紹介を関連付けるアフィリエイトのID。このフィールドは必須です。user_idおよびuser_nameを参照してください。
- user_id – (整数) affiliate_idが送信されない場合に、関連付けられたアフィリエイトIDを取得するために使用されるユーザーID。
- user_name – (文字列) affiliate_idが送信されない場合に、関連付けられたアフィリエイトIDを取得するために使用されるユーザー名。
- amount – (浮動小数点数) 取引または販売金額ではなく、最終的な計算された紹介金額。
- currency – (文字列) 紹介金額の通貨。
- description – (文字列) 紹介の説明。
- 参照 – (文字列) 紹介参照。通常、製品IDなどの製品情報が含まれます。
- コンテキスト – (文字列) 紹介が作成されたコンテキスト。通常、これは統合スラッグです。
- ステータス – (文字列) ‘paid’、‘unpaid’、‘pending’、または‘rejected’を受け入れます。デフォルトは‘pending’です。
紹介の作成
Method: PUT/POST
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/referrals/?affilite_id=30&amount=15
上記は、アフィリエイトID 30に関連付けられた、金額 $15、ステータス ‘pending’ の新しい紹介を作成します。
応答例:
{
"referral_id": 450,
"affiliate_id": 30,
"visit_id": 0,
"description": "",
"status": "pending",
"amount": "15.00",
"currency": "USD",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2024-01-26 22:28:54",
"payout_id": "0",
"id": 450
}
既存の紹介の編集
個々の紹介は、referrals/[id] ルートにPOSTまたはPATCHリクエストを送信することで更新できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/referrals/[id]
edit エンドポイントは、次のaffwp_process_update_referral()引数のいずれかを受け入れます。
- affiliate_id – (整数) 紹介を関連付けるアフィリエイトのID。
- visit_id – (整数) 紹介を関連付ける訪問のID。
- amount – (浮動小数点数) 更新された紹介金額。
- currency – (文字列) 更新された紹介金額の通貨。
- description – (文字列) 更新された紹介の説明。
- 参照 – (文字列) 紹介参照。通常、製品IDなどの製品情報が含まれます。
- コンテキスト – (文字列) 紹介が作成されたコンテキスト。通常、これは統合スラッグです。
- status – (文字列) ‘paid’、‘unpaid’、‘pending’、または‘rejected’を受け入れます。
紹介の更新
この例では、紹介のステータスをpendingからpaidに更新します。
Method: POST/PATCH
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/referrals/450?status=paid
応答:
{
"referral_id": 450,
"affiliate_id": 30,
"visit_id": 0,
"description": "",
"status": "paid",
"amount": "",
"currency": "",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2024-01-26 22:28:54",
"payout_id": "0",
"id": 450
}
紹介の削除
紹介は、referrals/[id] ルートにDELETEリクエストを送信することで削除できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/referrals/[id]
delete エンドポイントは追加の引数を受け入れません。紹介が正常に削除されると、削除済み: true のキー/値ペアがレスポンスに含まれ、古い紹介レスポンスのコピーも含まれます。
リクエスト例:
Method: DELETE
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/referrals/450
応答:
{
"deleted": true,
"previous": {
"referral_id": 35879,
"affiliate_id": 5454,
"visit_id": 0,
"description": "",
"status": "paid",
"amount": "",
"currency": "",
"custom": "",
"context": "",
"campaign": "",
"reference": "",
"products": "",
"date": "2024-01-26 22:28:54",
"payout_id": "0",
"id": 35879
}
}
訪問の管理
REST API Extended は、AffiliateWPコアで既に利用可能な2つの読み取り専用エンドポイントに加えて、訪問の作成、編集、削除のそれぞれのエンドポイントを追加します。
すべて 5 つのエンドポイントは、同じ 2 つのルート パターンを利用します。
- visits – GETリクエストを送信すると、訪問のリストが返され、追加の引数でフィルタリングできます。POSTまたはPUTリクエストを送信すると、新しい紹介を作成できます。
- visits/[id] – GET、PATCH、またはDELETEリクエストを送信すると、それぞれ単一の訪問を取得、編集、または削除できます。
どちらのルートも、利用可能なエンドポイント、受け入れられるリクエストタイプと引数、およびアイテムスキーマに関する情報の検出に非常に役立つ、汎用的なOPTIONSリクエストを受け入れることができます。
すべてのリクエストは、API キーを使用して認証する必要があります。これらのキーは、AffiliateWP → ツール → API キー タブで生成および管理されます。詳細については、REST API – 認証の記事を確認してください。
訪問の作成
訪問は、visits ルートにPOSTまたはPUTリクエストを送信することで作成できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/visits
create エンドポイントは、次の引数のいずれかを受け入れます。
- affiliate_id – (整数) 訪問に関連付けるアフィリエイトのID。このフィールドは必須です。
- referral_id – (整数) 訪問に関連付ける紹介のID。
- url – (文字列) 訪問URL。
- referrer – (文字列) 紹介元URL
- キャンペーン – (文字列) 関連付けられたキャンペーン。
- ip – (文字列) 訪問者のIPアドレス。
リクエスト例:
Method: PUT/POST
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/visits/?affilite_id=30&url=https%3A%2F%2Faffiliatewp.com
上記により、保存されたURLがhttps://affiliatewp.comであるアフィリエイトID 30に関連付けられた新しい訪問が作成されます。
応答:
{
"visit_id": 541,
"affiliate_id": 30,
"referral_id": 0,
"url": "https://affiliatewp.com",
"referrer": "",
"campaign": "",
"ip": "",
"date": "2024-01-26 23:05:21",
"id": 541
}
既存の訪問の編集
個々の訪問は、visits/[id]ルートにPOSTまたはPATCHリクエストを送信して更新できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/visits/[id]
editエンドポイントは、次の引数のいずれかを受け入れます。
- visit_id – (整数) 訪問のID。このフィールドは必須です。
- referral_id – (整数) 訪問に関連付ける紹介のID。
- affiliate_id – (整数) 訪問に関連付けるアフィリエイトのID。
- url – (文字列) 訪問URL。
- referrer – (文字列) 紹介元URL
- キャンペーン – (文字列) 関連付けられたキャンペーン。
- ip – (文字列) 訪問者のIPアドレス。
訪問の更新
この例では、訪問に関連付けられたキャンペーンを更新します。
Method: POST/PATCH
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/visits/541?campaign=spring-sale
応答:
{
"visit_id": 541,
"affiliate_id": 30,
"referral_id": 0,
"url": "https://affiliatewp.com",
"referrer": "",
"campaign": "spring-sale",
"ip": "",
"date": "2024-01-26 23:05:21",
"id": 541
}
訪問の削除
訪問は、visits/[id]ルートにDELETEリクエストを送信して削除できます。
https://alfsflowersandgifts.com/wp-json/affwp/v1/visits/[id]
deleteエンドポイントは追加の引数を受け取りません。訪問が正常に削除されると、削除済み: trueのキー/値ペアがレスポンスに含まれ、古い訪問レスポンスのコピーも含まれます。
リクエスト例:
Method: DELETE
Endpoint: https://alfsflowersandgifts.com/wp-json/affwp/v1/visits/541
応答:
{
"deleted": true,
"previous": {
"visit_id": 541,
"affiliate_id": 30,
"referral_id": 0,
"url": "https://affiliatewp.com",
"referrer": "",
"campaign": "spring-sale",
"ip": "",
"date": "2024-01-26 23:05:21",
"id": 541
}
}
例: 2つのWordPressサイト間のREST API統合
REST API Extendedアドオンの最も一般的なユースケースの1つは、あるWordPressサイトがAffiliateWPを実行している別のサイトと対話できるようにすることです。
たとえば、あるWordPressサイト(サイトA)でアフィリエイトを作成し、APIを使用して別のWordPress搭載サイト(サイトB)でアフィリエイトとして登録することができます。この統合により、2つのサイト間のシームレスな通信が可能になります。
以下の例では、WordPressがリモートリクエストの送信とレスポンスの取得をどのように処理するかについての基本的な知識があることを前提としています。
HTTP APIまたはREST APIに慣れていない場合は、公式プラグイン開発者ハンドブックのHTTP API記事とREST APIハンドブックを確認することをお勧めします。
情報検出
アフィリエイト、クリエイティブ、支払い、紹介、訪問の管理セクションで概説されているように、REST API Extendedアドオンは、外部からAffiliateWPを操作する際に完全なCRUD(作成、読み取り、更新、削除)機能をもたらします。
ほとんどの場合、リモートレスポンスはオブジェクトタイプ間で一貫して構造化されています。ただし、使用するエンドポイントによっては、特定のオブジェクトタイプに固有のフィールドがさまざまな状況で必要になります。
必要なフィールドまたは受け入れられるパラメータを判断する最も簡単な方法は、エンドポイントにOPTIONSリクエストを送信することです。OPTIONSリクエストからのレスポンスで、知っておくべきすべての情報が得られるはずです。
たとえば、以下は、REST API Extendedがアクティブな状態で/v1/creatives/エンドポイントに送信されたOPTIONSリクエストのレスポンスの一部です。
{
"namespace": "affwp/v1",
"methods": [
"GET",
"POST",
"PUT",
"PATCH"
],
"endpoints": [
{
"methods": [
"POST",
"PUT",
"PATCH"
],
"args": {
"name": {
"required": false,
"description": "Name of the creative.",
"type": "string"
},
"description": {
"required": false,
"description": "Description for the creative.",
"type": "string"
},
"url": {
"required": false,
"description": "URL the creative points to.",
"type": "string"
},
"text": {
"required": false,
"description": "Text for the creative.",
"type": "string"
},
"image": {
"required": false,
"description": "ID of the media library image associated with the creative",
"type": "integer"
},
"status": {
"required": false,
"description": "The creative status.",
"type": "string"
},
"date": {
"required": false,
"description": "The date the creative was created.",
"type": "string"
}
}
}
],
このエンドポイントで利用可能なリクエストメソッドが明確にリストされており、各メソッドの利用可能な引数が階層の下に定義およびリストされていることがわかります。OPTIONSリクエストで返されるその他の便利な情報には、スキーマ情報(単一オブジェクトに存在するフィールドを定義する)などが含まれます。
リクエストの構築
必要な知識と、さらに情報を得る方法についての良い基礎ができたので、サンプルリクエストを作成しましょう。
認証
REST API v1 の概要の記事を覚えているなら、送信されるすべてのリクエストには、Basic Auth スキームを使用して構築された Authorization ヘッダーを含める必要があります。AffiliateWP の Basic Auth ヘッダーは、公開キーとトークン値を使用して実現されます。以下は、Basic Auth ヘッダーの例です。
Authorization : Basic N2Q4NTM1OWM4NzlkYWNjOWE2ZmMxZjgxYjQ2ZDYyZDE6YmE3YjUwZGUyMjZkOGI2YzRkNjQyMjA1YjcwNDUwMjY=
「Authorization」がキーで、「Basic N2Q4NTM…」が値です。値は、公開キーとトークン値をコロンで区切り、先頭に「Basic 」を連結してエンコードすることで構築されます。例:
"Basic " . base64_encode( "{$public_key}:{$token}" );
WordPress の HTTP API 関数を使用する場合、Authorization ヘッダーは次のように送信する必要があります。
wp_remote_*( 'request_url', array(<br> 'headers' => array(<br> 'Authorization' => 'Basic hash_value'<br> )<br>) );
AffiliateWP REST API がどのように認証するかについての詳細は、REST API – 認証の記事を確認してください。
リクエスト例:アフィリエイトの作成
アフィリエイトの管理セクションで述べたように、アフィリエイトを作成するには user_id が必要です。または、create_user 引数と payment_email 値を一緒に送信することで、1 つのステップでユーザーとアフィリエイトを作成できます。
有効な user_id が既にある場合に、リモートでアフィリエイトを作成するために必要な WordPress コードは次のとおりです。
$request_url = add_query_arg( array(
'user_id' => 5
),
'https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates' );
$response = wp_remote_post( $request_url, array(
'headers' => array(
'Authorization' => 'Basic hash_value'
)
) );
上記のコードスニペットでは、user_id 値は、POST リクエストでサポートされている「body」引数を介するのではなく、$request_url を介して渡されることに注意してください。これは、他のエンドポイントの例(特に PUT または PATCH メソッドを利用するもので、リクエストボディ経由でのパラメータ送信をサポートしないもの)との一貫性のために行われています。
リクエスト例:支払い情報の作成
アフィリエイトの作成と同様に、新しい支払い情報にも特定のフィールド、特に affiliate_id と referrals の値が必要です。
有効な affiliate_id と紹介 ID のリストが与えられた場合に、新しい支払い情報を作成するために必要なコードは次のとおりです:
$request_url = add_query_arg( array(
'affiliate_id' => 2,
'referrals' => '2,3,4',
'payout_method' => 'REST',
),
'https://alfsflowersandgifts.com/wp-json/affwp/v1/payouts' );
$response = wp_remote_post( $request_url, array(
'headers' => array(
'Authorization' => 'Basic hash_value'
)
) );
payout_method 値は必ずしも必要ではありませんが、REST 経由で支払い情報が生成されたというコンテキストを提供するために役立ちます。
リクエスト例:紹介情報の更新
REST 経由でオブジェクトを更新する場合、ID が実際のエンドポイントの一部であるため、その主キーの値をリクエストと共に送信する必要がないことに注意してください。
以下は、紹介情報のステータスを未払いから支払済みに更新する方法の例です。
$request_url = add_query_arg( array(
'status' => 'paid',
'https://alfsflowersandgifts.com/wp-json/affwp/v1/referrals/3' );
$response = wp_remote_request( $request_url, array(
'method' => 'PATCH',
'headers' => array(
'Authorization' => 'Basic hash_value'
)
) );
以前の wp_remote_post() の代わりに、このリクエストでは「method」=> ‘PATCH’ 引数を渡して wp_remote_request() を使用していることに注意してください。これにより、REST API に PATCH リクエストを送信していることが具体的に伝わります。
また、紹介 ID 3 が URL のようなステータスではなく、エンドポイントの一部として渡されていることにも注意してください。
レスポンスの分析
リクエストの作成に加えて、レスポンスの構造をよく理解し、WordPress の範囲内でリクエストが成功したことを検証する方法に慣れることが重要です。
最初の2つの「リクエストの作成」の例では、新しいアフィリエイトと支払いを作成するためのリクエストの作成方法について説明しました。
レスポンスを確認する際、それが成功したことを確認する最も簡単な方法の1つは、レスポンスコードを確認することです。
$response_code = wp_remote_retrieve_response_code( $response );
if ( 201 === $response_code ) {
// success
}
AffiliateWPの作成および更新エンドポイントの場合、成功したリクエストはステータスコード201のレスポンスを返します。成功した削除リクエストの場合、レスポンスコードはデフォルトの200になります。
成功した削除リクエストに対して返されるレスポンスには、deleted: trueのキーと値のペアと、以前のオブジェクトのコピーが含まれます。
{
"deleted": true,
"previous": {
"affiliate_id": 35,
"user_id": 11,
"rate": "",
"rate_type": "",
"payment_email": "[email protected]",
"status": "active",
"earnings": 0,
"unpaid_earnings": 0,
"referrals": 0,
"visits": 0,
"date_registered": "2024-01-31 07:31:05",
"id": 35
}
}
リクエストの作成方法とレスポンスの分析方法をカバーしたので、アフィリエイトの作成リクエストの作成方法を見て、成功時に取得した情報を分析して処理する方法を説明します。
$request_url = add_query_arg( array(
'user_id' => 5 ),
'https://alfsflowersandgifts.com/wp-json/affwp/v1/affiliates' );
// Send the request, storing the return in $response.
$response = wp_remote_post( $request_url, array(
'headers' => array(
'Authorization' => 'Basic hash_value'
)
) );
// Check for the requisite response code. If 201, retrieve the response body and continue.
if ( 201 === wp_remote_retrieve_response_code( $response ) ) {
$body = wp_remote_retrieve_body( $response );
// do something successful
} else {
// maybe display an error message
}
よくある質問
AffiliateWPのREST API Extendedアドオンとは何ですか?
AffiliateWPのREST API Extendedアドオンは、開発者にAPIリクエストを介してアフィリエイトデータを管理するための完全なCRUD(作成、読み取り、更新、削除)機能を提供します。このアドオンは、外部アプリケーションがアフィリエイト、紹介、支払い、クリエイティブ、訪問を作成、変更、削除できるようにするエンドポイントを追加することで、コアAffiliateWP REST APIを拡張します。
AffiliateWP REST APIを使用してAPIリクエストを認証するにはどうすればよいですか?
APIリクエストを認証するには、WordPressダッシュボードのAffiliateWP » Tools » API KeysからAPIキーを生成する必要があります。認証はBasic認証を使用して処理され、公開キーとトークンはエンコードされてリクエストヘッダーで渡されます。
REST API Extendedアドオンで何ができますか?
このアドオンを使用すると、新しいアフィリエイトの作成、アフィリエイト情報の更新、紹介、支払い、訪問の管理、アフィリエイトデータの削除など、さまざまなアクションを実行できます。APIを介してアフィリエイト管理を完全に制御できます。
API経由でアフィリエイト、紹介、または支払い情報を削除するとどうなりますか?
API経由でアフィリエイト、紹介、または支払い情報を削除すると、deleted: trueの値を持つレスポンスと、削除されたオブジェクトのコピーが返されます。これにより、アクションが正常に完了したことを確認し、削除された項目の詳細を確認できます。
以上です!AffiliateWPのREST API Extendedアドオンは、開発者にアフィリエイト、紹介、支払い、クリエイティブ、訪問をプログラムで管理するための強力なツールを提供します。完全なCRUD操作を有効にすることで、このアドオンはAffiliateWPを外部システムと統合し、プロセスを自動化し、特定ニーズに合わせてアフィリエイト管理をカスタマイズするためのさまざまな可能性を開きます。