このドキュメントでは、定期支払い拡張機能がStripeとどのように連携するかを説明します。
Stripeの設定
Stripeセットアップドキュメントのすべての手順に従うことが重要です。
重要なセットアップの注意: Webhookが正しく設定されていない場合、サブスクリプションは正常に機能しません!
サブスクリプションのキャンセル
Stripeを使用する場合、キャンセルはEDD内またはStripeダッシュボードのいずれかから開始できます。
顧客としてのキャンセル
顧客は、ストアのアカウントページから自身のサブスクリプションをキャンセルできます。
サイト管理者としてのキャンセル
EDD管理画面からサブスクリプションをキャンセルするには、Downloads → Subscriptionsに移動し、キャンセルしたいアイテムの「表示」をクリックします。
次に、次の画面の下部にある「サブスクリプションをキャンセル」をクリックします。
サブスクリプションのステータスをキャンセル済みに設定すると、すぐにキャンセルされますが、顧客は支払い済みの期間中は購入した資料にアクセスできます。
たとえば、月額$10を支払った場合、月の途中でキャンセルしても、顧客は月の残りの期間資料にアクセスできますが、再請求されることはなく、月末にアクセスは停止します。
Stripeダッシュボードから
Stripeダッシュボードからサブスクリプションをキャンセルするには、Stripeにログインし、ページ上部にある検索バーを見つけます。
次のいずれかで顧客を見つけることができます:
- 請求ID
- サブスクリプションプロファイルID
- EDD顧客ID番号
- 顧客のメールアドレス
Stripeで顧客を見つけて選択すると、サブスクリプションのリストが表示されます。

キャンセル(サブスクリプション名の横にあるXアイコン)をクリックすると、即時、現在の期間終了時、またはカスタム日付の3つのオプションが表示されます。EDDの目的では、即時または現在の期間終了時のいずれを選択しても、顧客は違いを経験しません。カスタム日付を選択した場合、それは現在の期間終了後になります。そのカスタム日付を過ぎるまで請求され続けます。

キャンセル概要
EDDまたはStripeのいずれでサブスクリプションをキャンセルしても、効果はまったく同じであり、顧客は違いに気づきません。
クレジットカード/デビットカード情報の更新
顧客は、ストアのアカウントページから、特定のサブスクリプションのカード情報を更新できます。
明細書記述子
製品がサブスクリプションとして設定されている場合、記述子の動作は非サブスクリプション購入とは若干異なります。サイトでサブスクリプションが初めて購入されると、Stripeに「製品」が作成され、その特定のサブスクリプションのすべての後続の購入に使用されます。現在の製品リストは、Stripeアカウントにログインし、製品に移動することで確認できます。
この商品が作成されると、WordPressダッシュボードの上記の Статус に関係なく、商品名に基づいてステートメントディスクリプタが作成されます。ディスクリプタは小文字になり、単語はハイフンで区切られます。当然ながら、これは銀行の明細書では見栄えが良くありません。この動作を変更するには、デフォルトの動作が気に入らない場合に一緒に使用するのが最適な2つの方法があります。
1. プランの詳細を編集する
Stripeアカウントの商品に移動すると、任意の商品をクリックして詳細を確認できます。詳細ページに移動したら、詳細を編集ボタンをクリックします。その特定の商品に対するステートメントディスクリプタを設定できるモーダルが表示されます。
ここに設定した内容は、サイトでのそのサブスクリプションプランのすべての支払いに使用されます。
2. Stripeプランのステートメントディスクリプタのデフォルトをフィルタリングする
上記の方法では、既存の特定のサブスクリプションのステートメントディスクリプタを制御できます。しかし、サイトで別のサブスクリプションを初めて購入したときに新しいサブスクリプションが作成された場合、デフォルトの動作が適用されます。つまり、新しいサブスクリプションには、デフォルトで商品名に基づいたステートメントディスクリプタが引き続き設定されます。
今後作成されるすべてのサブスクリプションの新しいデフォルトステートメントディスクリプタを作成するには(これは既存のサブスクリプションには影響しません)、次のフィルターを使用します。
function custom_edd_recurring_stripe_plan_statement_descriptor( $args, $subscription ) {
$args['statement_descriptor'] = 'New Statement Desc';
return $args;
}
add_filter( 'edd_recurring_create_stripe_plan_args', 'custom_edd_recurring_stripe_plan_statement_descriptor', 10, 2 );
新しいステートメントディスクリプタを好みのデフォルトステートメントディスクリプタに置き換えます(22文字の制限を覚えておいてください)。
要約すると、最初の方法は既存のサブスクリプションのステートメントディスクリプタを編集するために使用します。2番目の方法は、将来のすべてのサブスクリプションの新しいデフォルトステートメントディスクリプタを設定するために使用します。
Webhookに関連する一般的な問題
顧客が何度も請求される
顧客が購入する前にStripeのWebhookを正しく設定せず、EDD Recurringの「回数」オプションを使用して顧客に一定回数(例:5回)請求する場合、顧客は何度も請求されることになります。
これは、Webhookがないと、StripeはEDDに支払いが正常に完了したことを伝えることができず、EDDはそれを認識できないためです。このため、EDDは、顧客がすでに5回(またはそれ以上)請求されている場合でも、顧客がまだ請求されていないと考えてしまいます。
EDDは、回数が上限に達すると、自動的にStripeに「サブスクリプションをキャンセル」を送信します。しかし、Webhookがないため、EDDは顧客が請求されたかどうかを知ることができず、サブスクリプションをキャンセルしません。その結果、顧客は設定回数に達した後も請求され続けます。そのため、Stripe拡張機能をインストールしたらすぐにWebhookを設定することが重要です。
