0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Simple MembershipのサブスクStirpe決済でプロモーションコードの入力欄を表示する

Posted at

通常はプロモーションコードの入力欄がない。
所詮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,
);
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?