| 受信日時 ▼ | 氏名 | 所属(法人/事業所) | カテゴリ | 件名 ▲ | ステータス | |
|---|---|---|---|---|---|---|
| 2026-10-18 09:12 | 山田 花子 | 社会福祉法人ひまわり会 ひまわりデイサービス |
受講・講座について | 認知症ケア講座の修了条件を教えてください | 未対応 | |
| 2026-10-17 14:35 | 鈴木 一郎 | 医療法人やまびこ やまびこ訪問介護 |
アカウント・ログイン | 個人アカウントのパスワードをリセットしたい | 未対応 | |
| 2026-10-15 10:04 | 田中 美咲 | 社会福祉法人さくら福祉会 さくらグループホーム |
修了証・受講証明書 | 受講証明書が発行されませんでした | 未対応 | |
| 2026-10-14 16:21 | 高橋 健太 | 医療法人あおぞら病院 あおぞら訪問看護 |
契約・料金 | 法人プランのアカウント数を増やしたい | 未対応 | |
| 2026-10-10 11:50 | 伊藤 直子 | 社会福祉法人おおぞら会 おおぞらデイサービス中央 |
受講・講座について | LIVEゼミの参加方法と事前準備について | 対応済 | |
| 2026-10-08 09:33 | 渡辺 拓也 | 社会福祉法人みどり福祉会 みどりショートステイ |
アカウント・ログイン | 事業所共有アカウントで複数端末から同時ログインできますか | 対応済 | |
| 2026-10-07 15:08 | 佐々木 順子 | 医療法人誠和会 誠和在宅介護センター |
その他 | 研修計画テンプレートの追加を要望したい | 未対応 | |
| 2026-10-05 13:47 | 中村 晴美 | 社会福祉法人かがやき会 かがやきグループホーム南 |
修了証・受講証明書 | 修了証PDFのダウンロード方法がわかりません | 対応済 | |
| 受信日時 | 氏名 | 所属(法人/事業所) | カテゴリ | 件名 | ステータス |
カスタムDBテーブル lms_inquiries を新規作成し、WP_List_Table を継承した LMS_Inquiry_List_Table クラスで一覧画面を構築する。管理メニューは既存「コンテンツ管理」親メニューのサブメニューとして add_submenu_page() で登録(メニュースラッグ: lms-inquiries)。カスタムカラム(受信日時・氏名・所属・カテゴリ・件名・ステータス)は get_columns() で定義。ステータス変更フォームは admin-post.php 経由で処理し、リダイレクト後に admin notice を表示するパターンを採用。会員サイト F-CMN-002 から送信された問合せを REST API 経由で受信・保存する連携処理が前提。
capability は共通設計の正準capability manage_lms_content を使用する(専用 capability は新設しない)。一覧閲覧・ステータス変更・内容確認はすべてこの capability を要求。一般の editor / author ロールからはアクセス不可。メニュー登録条件: current_user_can('manage_lms_content')。問合せ内容には個人情報(氏名・所属・問合せ本文)が含まれるため、権限チェックをすべての表示・操作エンドポイントに適用すること。
カスタムテーブル lms_inquiries の主要カラム: id(BIGINT, PK)、received_at(DATETIME, 受信日時)、sender_user_id(BIGINT, 送信者WPユーザーID・NULL許容)、sender_name(VARCHAR 100, 氏名)、sender_corp_name(VARCHAR 200, 法人名)、sender_site_name(VARCHAR 200, 事業所名・NULL許容)、category(VARCHAR 50, カテゴリ)、subject(VARCHAR 255, 件名)、body(TEXT, 問合せ本文)、status(ENUM 'open'/'resolved', ステータス)、memo(TEXT, 対応メモ・NULL許容)、created_at / updated_at(DATETIME)。インデックス: status, received_at, sender_user_id に個別インデックスを設定。
一括操作(Bulk Actions): 「対応済みにする」のみ(PATCH /admin/inquiries/bulk-status・1リクエスト最大100件)。get_bulk_actions() でオプション定義、process_bulk_action() で $wpdb->update() によるステータス一括更新を実行。行アクション(Row Actions): 「表示」→問合せ詳細画面(B-CNT-006詳細)へ遷移して内容と対応メモを確認、「ゴミ箱」→論理削除(status='trash' フラグ)。詳細画面では対応メモの追記・ステータス変更(open/resolved)を提供する。
表示列の選択: 受信日時 / 氏名 / 所属 / カテゴリ / 件名 / ステータス。デフォルトはすべて表示。ページあたり表示件数: デフォルト20件(set-screen-option フィルタで lms_inquiries_per_page キーとして保存)。一覧は受信日時の降順をデフォルトソートとし、件名カラムのみ昇順ソートに対応。カテゴリ絞り込みは WHERE category = %s、ステータス絞り込みは WHERE status = %s で実装。「未対応」件数はサイドバーのメニューラベルにバッジ(件数)として表示することを推奨(add_menu_page() の title 引数で件数を付与)。
個人情報を含むテーブルのため、すべての参照・更新処理で $wpdb->prepare() を使用しSQLインジェクションを防止すること。一覧取得クエリは LIMIT / OFFSET によるページネーションを必ず適用(全件取得禁止)。ステータス変更・一括操作・削除はすべて check_admin_referer() でNonce検証必須(Nonce名: lms_inquiry_action)。問合せ本文の表示には esc_html() / wp_kses_post() でサニタイズ処理を適用し、XSS を防止。問合せデータのエクスポート機能を将来追加する場合は、ダウンロードトークン方式(署名付き一時URL)での認可を検討。データ保持ポリシーとして「対応済から1年後に自動アーカイブ」を運用ルールとして定義することを推奨。受信件数が将来的に増加する場合は received_at + status の複合インデックスを追加すること。