2026年9月26日
2026年9月26日
WooCommerceに定期購入(サブスクリプション)商品を追加する手順
WooCommerce 本体だけでは定期購入(毎月・毎年の自動請求)の商品は作れず、サブスクリプション用の拡張機能を入れて「サブスクリプション商品」という商品タイプを追加する必要があります。この記事では、公式拡張の WooCommerce Subscriptions を例に、商品の作成、決済の準備、更新処理の確認、公開前のテストまでを順に説明します。読み終えるころには、テスト環境で月額商品を作り、初回決済と更新決済が動くところまで確認できるようになります。
作業の前に決めておくこと
定期購入は「一度売って終わり」の商品と違い、注文の後も毎月の請求・失敗時の再試行・解約が続きます。設定を始める前に、次の3点を決めておくと迷いません。
- 請求の周期と期間: 毎月請求か、年払いか。期限なしで続けるか、12回で終了するか。
- 初回の扱い: 無料お試し期間を付けるか、初回だけ登録料(初期費用)を取るか。
- 更新の支払い方法: カードで自動的に請求するか、顧客が毎回手動で支払うか。
本番サイトでいきなり試すのは避け、ステージング環境(本番の複製)で作業してください。作業前にはファイルとデータベースのバックアップを取っておきます。
拡張機能を選ぶ
WooCommerce で定期購入を扱う代表的な方法は次のとおりです(2026年10月現在)。
- WooCommerce Subscriptions: WooCommerce.com のマーケットプレイスで提供されている公式の有料拡張です。この記事の手順はこれを前提にしています。
- WooPayments の定期購入機能: WooPayments を決済に使う場合、拡張なしで簡易的な定期購入を扱える時期がありました。提供範囲や条件は変わることがあるため、公式ドキュメントで現状を確認してください。
- サードパーティ製プラグイン: YITH WooCommerce Subscription や、WP Swings の Subscriptions for WooCommerce など、無料版から試せるものもあります。対応する決済ゲートウェイや機能の範囲は製品ごとに異なります。
どれを選ぶ場合も、「使いたい決済サービスが自動更新に対応しているか」を最初に確認するのが大切です。ここが合わないと、商品は作れても更新のたびに手動請求になります。
拡張機能を導入して設定を確認する
WooCommerce Subscriptions は WooCommerce.com で入手したZIPファイルを「プラグイン」→「新規追加」→「プラグインのアップロード」から導入し、有効化します。WooCommerce.com のアカウントとサイトを接続しておくと、更新が管理画面から受け取れます。
有効化すると、WooCommerce の設定画面にサブスクリプション用のタブが追加されます。画面上の表記はバージョンによって変わることがありますが、主に次のような項目があります。
- ボタンの文言: 「カートに追加」「申し込む」など、定期購入商品のボタン表記を変えられます。
- 手動更新の受け付け: 自動更新に対応していない決済方法でも、顧客が毎回支払う形で定期購入を受け付けるかどうか。
- プラン変更(切り替え): 顧客が上位・下位プランに移れるようにするか。
- 更新日の同期: 申込日に関係なく、毎月1日など決まった日に更新をそろえる機能。按分(日割り)の扱いも合わせて決めます。
最初は既定値のまま進め、テストで動作を見てから必要なものだけ変えると、原因の切り分けがしやすくなります。
サブスクリプション商品を作る
「商品」→「新規追加」で商品編集画面を開き、商品データの種類を選ぶプルダウンで次のどちらかを選びます。
- シンプルなサブスクリプション: 月額プランが1種類だけの商品向け。
- 可変サブスクリプション: 「月払い」「年払い」や「ライト」「スタンダード」のように、バリエーションごとに価格や周期を変える商品向け。
シンプルなサブスクリプションを選ぶと、価格欄が定期購入用に変わり、次の値を入力できるようになります。
- サブスクリプション価格と請求間隔: 「1か月ごと」「3か月ごと」のように、金額と周期を指定します。
- 期間(終了条件): 解約まで続けるか、指定回数で自動終了するかを選びます。
- 登録料: 初回の注文だけに上乗せされる金額です。
- 無料お試し期間: 最初の請求を何日(何週間など)遅らせるかを指定します。
ここで注意したいのは、「無料お試し」と「登録料」を組み合わせた場合の初回請求額です。お試し期間中でも登録料は初回に請求されるため、商品ページの説明と実際の請求額が食い違わないよう、テスト注文で金額を確かめてください。
在庫管理や配送設定は通常の商品と同じように使えます。物理的な商品を毎月発送する場合は、配送クラスや送料が更新のたびに正しく計算されるかもテストで確認します。
自動更新に対応した決済を準備する
自動更新では、初回の決済時に保存したカード情報などを使って、決済サービス側で次回以降の請求を行います。代表的な選択肢は WooCommerce Stripe Gateway、WooPayments、WooCommerce PayPal Payments などで、それぞれ定期購入への対応状況や必要な設定が異なります。
設定の順番は次のとおりです。
- 決済サービスのアカウントでテストモードを有効にし、テスト用のキーをプラグインに設定します。
- 決済サービスの公式ドキュメントで、定期購入に必要な追加設定(Webhook の登録など)を確認します。
- テスト用カード番号で初回注文を行い、注文と「サブスクリプション」の両方が作られることを確認します。
カード情報そのものはサイトのデータベースには保存されず、決済サービス側のトークンで管理されます。サイト側でカード番号を扱うようなカスタマイズは行わないでください。
更新処理の仕組みと確認方法
WooCommerce Subscriptions は、次回の請求や期限切れの処理を WooCommerce に含まれる Action Scheduler(予約実行の仕組み)に登録して実行します。「WooCommerce」→「ステータス」→「予定されたアクション」を開くと、更新予定の処理が一覧で確認できます。
Action Scheduler は WordPress の WP-Cron から起動されるため、アクセスが少ないサイトでは実行が遅れることがあります。更新が予定日に処理されない場合は、サーバーの cron から WP-Cron を定期的に呼び出す設定を検討してください。
テストでは、サブスクリプションの編集画面にある操作メニューから更新処理を手動で実行できる場合があります。これを使うと、1か月待たずに更新注文の作成と決済の流れを確かめられます。表記はバージョンで変わるため、編集画面の操作メニューを確認してください。
ステージングでの二重請求を防ぐ
本番サイトを複製したステージング環境で、本番と同じ決済キーのまま更新処理が動くと、実際の顧客に請求が発生するおそれがあります。WooCommerce Subscriptions にはサイトのURLが変わったことを検知して自動更新を止める仕組みがありますが、それに頼り切らず、ステージングでは決済キーをテスト用に差し替えてから作業してください。
会員向けの表示をコードで切り替える
「定期購入中の会員にだけメッセージを出したい」といった場合は、拡張が提供する関数を使えます。次の例は、有効なサブスクリプションを持つログインユーザーにだけ案内文を表示するショートコードです。子テーマの functions.php か、mu-plugins に置くプラグインとして追加します。
<?php
// [member_notice] ショートコード: 有効な定期購入があるユーザーにだけ表示する
add_shortcode( 'member_notice', function () {
if ( ! is_user_logged_in() || ! function_exists( 'wcs_user_has_subscription' ) ) {
return '';
}
// 第2引数を空にすると商品を問わず、第3引数でステータスを絞り込む
if ( ! wcs_user_has_subscription( get_current_user_id(), '', 'active' ) ) {
return '';
}
return '<p class="member-notice">' . esc_html__( '定期購入会員向けの特典ページはこちらからご覧いただけます。', 'my-child-theme' ) . '</p>';
} );
function_exists() で拡張の有無を確認しているのは、拡張を無効化したときにサイト全体がエラーで止まるのを防ぐためです。
公開前に確認したい法令表示
日本で定期購入を販売する場合、特定商取引法の表示に注意が必要です。2022年6月施行の改正により、申込みの最終確認画面で、分量、支払時期と金額、契約期間、解約の方法などを分かりやすく表示することが求められています。具体的な表示方法は消費者庁のガイドラインを確認し、必要に応じて専門家に相談してください。
あわせて、解約の手順(マイアカウント画面から解約できるかどうか)、更新日の事前通知メール、プライバシーポリシーでの決済情報の扱いの説明も整えておくと、問い合わせやトラブルを減らせます。
まとめ
- WooCommerce 本体だけでは定期購入は作れないため、WooCommerce Subscriptions などの拡張を導入する。
- 商品データの種類で「シンプルなサブスクリプション」または「可変サブスクリプション」を選び、価格・周期・期間・登録料・お試し期間を設定する。
- 自動更新には対応した決済ゲートウェイが必要。テストモードとテスト用カードで初回と更新の両方を確認する。
- 更新は Action Scheduler で実行されるため、予定されたアクションの一覧で状態を確認できる。
- ステージングでは決済キーをテスト用に差し替え、特定商取引法の最終確認画面の表示も公開前に点検する。