はじめに
WordCamp Osaka 2018 が終わり一息ついたので、以前から懸案事項であった、アドオン販売のサブスクリプション化に取り組み始めました。まず、テストサーバーで動かしてみたので以下に記します。
プラグイン
販売には、WooCommerce を利用しますが、標準ではサブスクリプション機能は付与していません。純正のものは、年間 $199 です。高いのでいろいろ探しました。最近、公式プラグインディレクトリーに登録された、Subscriptions for WooCommerce を試してみたところ、上手く動作しました。
有償のプレミアム版もあります。プレミアム版は、
- 通常の商品と、サブスクリプション商品を同じカートに入れて決済できます。
- サブスクリプションに無料の試用期間を設定できます。
インストール

追記 2018年8月10日
上記プラグインは、公式プラグインディレクトリ上で、2018年8月2日に停止されました。有料版のものは何事もなく売っているので、有料版に移行したものと思われます。最終バージョンの1.3.7と、翻訳ファイルを同梱したものを以下に置きます。メンテナンスはしません。自己責任でお使いください。
設定
サブスクリプションのリストテーブルが追加されます。

WooCommerce のアカウント設定
- 購入時に、アカウントが登録されるようにしないといけません。
- ”「マイアカウント」ページで、お客様がアカウントを作成できるようにします。” は、bbPress との連携時に、購入しないでユーザー登録してフォーラムに書き込まれる可能性があるので、アンチェックしておきます。

WooCommerce のページ設定
- アカウントのページを指定します。

サブスクリプションのテキストを入力します。

商品を確認

最上部の商品を編集してサブスクリプション商品へ

サブスクリプション商品の確認

商品を購入してみる
商品を購入してみます。PayPal での購入例です。Stripe も試して正常に動作しました。
ショップを表示

カートに入れる

カート

支払い


支払ページ用のフィルターについて
入力フォームを氏名とメールアドレスに抑制しています。通常、国、会社名、郵便番号、住所、電話番号、などのフォームが出ますが、ダウンロード販売ですと必要ありません。以下のフィルターを使用しています。
add_filter( 'woocommerce_checkout_fields', 'disable_checkout_form_woocommerce' );
add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );
function disable_checkout_form_woocommerce( $fields ){
unset($fields['billing']['billing_company']);
unset($fields['billing']['billing_address_1']);
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_postcode']);
unset($fields['billing']['billing_country']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_phone']);
unset($fields['order']['order_comments']);
return $fields;
}
参照
PayPal ログイン画面

PayPal 購入確認画面

購入終了


アカウントページを確認

新規購入者アカウント作成メール

購入者注文完了メール

販売者新規注文受付メール

管理画面で確認
サブスクリプションの確認

追加されたユーザーの確認

その他の特殊な設定
ダウンロード商品を外部のサーバーに設置して、自動アップデートできるようにしているので、ダウンロード先を URL で直接指定しています。WooCommerce の設定は、「リダイレクトのみ」になります。


参考資料 PayPal, Stripe の設定
PayPal



Stripe


参考資料 ステータス
テストサーバーは、プライベートネットワーク内の Raspberry Pi 3 Model B です。








コメントを残す