通常はプロモーションコードの入力欄がない。
所詮WordPressプラグインで尚且つAPIでstripeを呼び出しているわけなので、公式ドキュメントを読む。
stripe公式ドキュメントを見ると、プロモーションコード入力欄の有効化をするにはAPIでcheckout画面を呼び出すときにSessionにオプションを入れてあげる必要があるらしい。
具体的な方法
SimpleMembershipのプラグインファイル内でAPIを呼び出しているわけなので、そこを弄らなければいけない。
本来であればプラグインファイルを直接触るのはよくないのですが(アップグレードなどで消し飛ぶので。。)、今回はとりあえず直接編集する場合の方法で進めます。
気になる方は各々functions.php
などでいい感じにしてください。
該当箇所
SimpleMembershipのプラグインファイル内の
ipn/swpm-stripe-sca-buy-now-ipn.php
$session = \Stripe\Checkout\Session::create( $opts );
ここでCheckoutのSessionをcreateしています。
なので$opt
にプロモーションコード欄の追加するオプションをしてあげれば良いわけですね。
一番わかりやすいのは343行目から始まる下記に追加するのが良いかと思います。
ipn/swpm-stripe-sca-buy-now-ipn.php
$opts = array(
'payment_method_types' => array( 'card' ),
'client_reference_id' => $ref_id,
'billing_address_collection' => $billing_address ? 'required' : 'auto',
'subscription_data' => array(
'items' => array( array( 'plan' => $plan_id ) ),
),
'success_url' => $notify_url,
'cancel_url' => $current_url,
// ↓を追加するとプロモーションコード入力欄が表示される
'allow_promotion_codes' => true,
);