Appearance
決済・アクセス制御方式の選定
| 項目 | 内容 |
|---|---|
| 最終更新 | 2026-08-04 |
現状(2026-08): サイト内 Stripe Checkout / Webhook は削除。販売は 自サイト HTML + codoc ペイウォール(note 販売は採用しない)。購入記録テーブルと
PaidArticleAccessServiceは維持するが、codoc 購入との自動同期は当面しない(Commerce モジュール 参照)。
1. 目的
有料記事(月 1 回更新)の 決済方法・購入管理・アクセス制御 の方式を選定し、実装 sub-issue に渡せる要件を文書化する。
当面の決済 UI は codoc プラグインのペイウォールに委譲する。号ごとの販売価格は WordPress 管理画面(基本情報)の paid_article_codoc_price meta が正本。訪問者経路では intro + 安定な data-id="codoc-tag" 境界のみを出し有料セクション HTML はレスポンスに載せない。保存時に Gutenberg 互換ペイロードを post_content へ書き、プラグインの save_post 同期で販売記事(entry)と codoc_entry_code を得る。管理画面で entry code を手入力しない。
2. 販売形態の確定
| 項目 | 決定 |
|---|---|
| 販売形態 | 単号購入のみ |
| 月額サブスク | 対象外(継続課金・解約・失効の運用コストが大きいため) |
| バックナンバー | 各号を個別商品として販売 |
| 購入後のアクセス | 永久アクセス(購入した号は継続して閲覧可能) |
単号購入を採用した理由
- 月 1 配信のコンテンツ特性に合う(号ごとに完結した価値提供)
- サブスクに比べ決済・失効・解約フローが単純で、バグリスクが低い
- 初号〜数号は販売実績が未知数のため、購入ハードルを下げやすい
方式比較・未採用案・履歴は 決済-アクセス制御-検討.md に分離する。
3. 採用方式(現状)
| 項目 | 方針 |
|---|---|
| 決済 UI | codoc ペイウォール(安定 data-id="codoc-tag" + プラグイン同期) |
| 管理画面 | 基本情報で 販売価格(円・非負整数) を号ごとに保存。既定値 1000 |
| 価格の正 | WP 基本情報の販売価格 meta。entry code は手入力せずプラグイン同期に委ねる |
| 無料/有料境界 | 無料=当面 intro のみ。訪問者レスポンスに有料セクション HTML は載せない。同期用 post_content には有料 HTML を含める |
| 出力経路 | 表示は intro + 安定境界(codoc_the_content / the_content)。保存時は Gutenberg 互換ペイロードで sync_entry |
| 購入記録 | db_paid_article_purchase は維持。codoc 購入との自動同期は当面しない |
| 閲覧判定(WP) | PaidArticleAccessService は維持(編集者・将来の自前決済用)。当面の一般訪問者ゲートは codoc |
| note | 採用しない(旧リード CTA / NOTE_URL 販売導線は廃止済み) |
3.1 管理画面要件
| 項目 | 要件 |
|---|---|
| 入力 | 有料記事「基本情報」に販売価格(円) |
| 保存 | post meta(CODOC_PRICE = paid_article_codoc_price) |
| サニタイズ | 非負整数。空欄保存時は既定値 1000 を保存。未設定 meta の号を編集画面で開いたときも既定値を永続化 |
| 再表示 | 編集画面で保存値が再表示できること |
| 旧 NOTE_URL | 販売導線としては使わない。コード上の読取・管理 UI は削除済み。既存 meta は残っていても挙動に影響しない |
3.2 価格未設定時
meta が空のレガシー号のみ、販売未開始として ペイウォール境界を挿入しない(編集者は全文を確認できる)。新規号・編集画面オープン・空欄保存では既定値 1000 が入るため、通常運用では未設定になりにくい。未設定時に外部 note へ誘導しない。価格クリア時は WP の同期用 post_content を空にするが、codoc 側の既存 entry の非公開・削除は行わない(手動または後続タスクで扱う)。
3.3 編集者・プレビュー
- 編集者の通常閲覧: 境界なし全文(編集確認用)
- visitor preview: 価格あり時はテンプレ+境界経路
3.4 日別記事の codoc との分離
日別記事末尾の投げゼニ(CodocSupportWidgetService)は 本方式の対象外。有料記事ペイウォールとは entry/用途を分離する。
4. 未購入者への表示ルール
| ルール | 内容 | 採用 |
|---|---|---|
| intro 無料+以降ペイウォール | 無料部分(当面 intro)のみ見える。以降は codoc が購入 UI/解錠を担う | 採用 |
| 全文非表示 | タイトルと購入ボタンのみ | 不採用(訴求が弱い) |
| リード専用 HTML で exit | 旧 note 導線向け。テンプレに進まない | 廃止 |
採用: 無料=intro、有料=残り visible。テンプレ表示まで進め、訪問者経路では intro + 安定な data-id="codoc-tag" 境界のみを出し有料 HTML はレスポンスに載せない。販売記事の作成・更新は保存時の Gutenberg 互換 post_content → プラグイン sync_entry。価格の正本は paid_article_codoc_price meta。
5. 過去号アクセスポリシー
| 項目 | 方針 |
|---|---|
| 購入済み号 | 永久アクセス(サブスク失効の概念なし)。当面は codoc 側の購入状態が正 |
| 未購入の過去号 | intro +ペイウォール。バックナンバーは 号ごとに単品購入 |
| 購入記録の保持 | WP テーブルを使う場合は返金・問い合わせのため 最低 7 年 を目安(会計・税法は別途専門家確認) |
購入記録の管理方式
db_paid_article_purchase は将来の自前決済および既存 AccessService 用に維持する。ゲスト購入をサイト内決済で扱う場合は wp_users.ID と paid_article 投稿 ID を紐づける。codoc 購入レコードの自動 INSERT は当面しない。
6. 決済プロバイダ・手数料
当面の販売は codoc 上で行う。サイト内決済(旧 Stripe Checkout)は削除済み。国内決済代行の第一候補は KOMOJU(比較候補: GMOイプシロン / Univa Pay 等)。手数料・入金サイクルは公開情報を目安とし、契約時に再確認する。
7. 個人情報・領収書・返金ポリシー
| 項目 | 方針 |
|---|---|
| 個人情報 | 自サイトプライバシーポリシー + 外部決済(codoc 等)のデータ処理 |
| 領収書 | 外部決済側(codoc)のレシート/取引履歴を基本とする |
| 返金 | 返金ポリシーをサイトに明記し、販売プラットフォーム側で返金操作 |
| 特商法表記 | 自サイトに記載 |
方針: 返金ポリシー(デジタルコンテンツの扱い・期限)は 初号公開前 に運用チェックリストに明文化する。
自サイト販売では、利用規約(terms)・特定商取引法表記(tokushoho)・プライバシーポリシーを固定ページで表示し、フッター導線と有料記事 CTA 付近から参照できること。本文の正本は db_legal_document_version(管理画面「法務文書」)。Tokusho Generator / [tokusho] ショートコードには依存しない。会員再同意は利用規約の現行版(document_type=terms)のみ。詳細: 法務文書版管理.md。
8. 実装への引き渡し要件(サマリ)
| 要件 | 方針 |
|---|---|
| 未購入者表示 | intro 無料 + codoc 安定境界(有料 HTML 非出力) |
| 管理画面 | 販売価格 meta。既定値 1000。境界挿入の正本は meta |
| 販売記事同期 | 保存時 post_content → プラグイン sync_entry |
| 購入済み表示 | 当面は codoc 解錠。WP テーブル連携は将来 |
| ゲスト購入 | codoc 側の仕様に従う。自前決済再導入時は WP ログイン必須を再検討 |
| 購入記録の正(WP) | カスタムテーブルは維持するが、codoc との自動同期は非対象 |
| 品質 | Unit・シナリオ・受け入れ |
9. 非対象
- KOMOJU Adapter 実装
- 日別記事の投げゼニ(既存 codoc サポート)の改修
db_paid_article_purchaseと codoc 購入の自動同期- note 販売の継続(note エクスポート機能と画像スナップショット機能は削除済み)
10. サイト内 Stripe Checkout(削除済み)
実装していた Stripe Checkout Session 作成・Webhook 受信は 削除済み。詳細設計書(Stripe決済-技術選定理由.md 等)も同変更で削除済み。将来の国内代行導入時に REST / Webhook を再定義する。
11. 旧 note 導線(廃止・履歴)
2026-08 以前はリード CTA → note 記事 URL(NOTE_URL)を販売導線としていた。スマホ可読性の問題から note 販売およびエクスポート改善は撤回し、本方式へ移行した。リード CTA / NOTE_URL コードは撤去済み。
12. 関連ドキュメント
- Commerce モジュール — 販売導線と維持するデータ基盤
- 有料記事 codoc ペイウォール シナリオ・受け入れ手順
- docs/design/README.md