カスタム管理画面ページ(admin.php?page=lms-members-edit)として実装。WordPressの投稿タイプではなくカスタムDBテーブル(lms_accounts)を直接操作する。フォームは admin_post_lms_save_account アクションフックで保存処理を受け取る。アカウント種別(法人/事業所管理者/事業所共有/個人)によって表示メタボックスを動的に切り替える(PHPで $account_type を判定して出力制御)。登録事業所一覧テーブルは読み取り専用で lms_sites テーブルを JOIN して表示。
アクセス権限: manage_lms_members カスタム権限(事務局ロールに付与)。アカウント削除は manage_options(管理者)のみ。法人/事業所管理者アカウント切替時は current_user_can('manage_lms_members') を再検証。パスワードリセットメール送信は manage_lms_members で可能。ログインIDの変更は管理者のみ(manage_options)。登録事業所一覧への「編集」リンクは事業所の編集画面(B-MBR-002 相当)に遷移。
メインテーブル: lms_accounts(account_id, account_type[corp_admin/office_admin/office/personal], status, login_id, corp_type, corp_name, corp_number, hq_address, hq_tel, hq_fax, hq_url, rep_title, rep_name, rep_kana, contact_dept, contact_name, contact_kana, contact_email, contact_tel, created_at, updated_at)。登録事業所は lms_sites.corp_account_id FK で参照。アカウント種別ごとの表示項目は下記参照。
本画面(編集画面)では個別の行アクションは不要。一覧画面(B-MBR-001 一覧側)では「ステータス変更」「削除」の一括操作を定義済み。本編集画面の「削除」ボタンは確認ダイアログを表示後に admin-post.php 経由で処理(ソフトデリート: status='deleted')。完全削除は管理者専用の別操作。アカウント種別によって本画面に表示されるメタボックス・フィールドの差分は以下: 法人=本画面の全フィールド、事業所管理者=事業所情報のみ(法人情報なし)、事業所共有=最小限(事業所名・連絡先)、個人=個人番号・所属・氏名・メールのみ。
カスタム管理ページのため WordPress 標準 Screen Options は非利用。ただし、メタボックスの折りたたみ状態はユーザーメタ(_lms_mbr_edit_closed_boxes)に保存し、次回アクセス時に復元する。登録事業所一覧テーブルの行数は固定表示(ページネーション不要: 通常 1 法人あたり 10 事業所以内)。アカウント種別ごとのフィールド切替はサーバーサイドで制御し、URLパラメータ account_type でタブ状態を保持(例: ?page=lms-members-edit&id=42&account_type=corp_admin)。
全フォーム送信時に wp_nonce_field('lms_save_account', 'lms_account_nonce') でNonce検証必須。保存処理で check_admin_referer('lms_save_account', 'lms_account_nonce') を実行。入力値は全て sanitize_text_field() / sanitize_email() / esc_url_raw() でサニタイズ。DB更新は $wpdb->update() にプリペアドステートメントを使用(SQLインジェクション対策)。法人番号は13桁数値のみ許可(preg_match('/^\d{13}$/'))。パスワードリセット送信は SendGrid API 経由(レートリミット: 同一アカウントへ1時間に1回まで)。アカウント削除時は関連テーブル(lms_sites, lms_account_notes, lms_watch_history等)の参照整合性をトランザクション内で処理。大量法人一覧は lms_accounts に status + account_type の複合インデックスを設けてフィルタリングを高速化。