はじめに
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 です。
コメントを残す