Children Mission
子どもを支えるための地域研修を行うウクライナのNGOのためのWordPressサイト。単発・毎月の寄付、パートナーシップの申し込み、開発者なしでチームが編集できるコンテンツ。

課題
子どもを支えるための地域研修を行うウクライナのNGOには、自分たちの活動を伝え、寄付やパートナーシップの申し込みができ、しかも開発者なしでチームが編集できるサイトが必要でした。
解決策
- コンテンツ:クライアントのデザインに合わせてGutenbergのネイティブブロックで再構築したテーマ。ミッション、5つのコースページとウェビナーを含む研修、活動の成果、利用者の声、チーム、寄付、お問い合わせ、プライバシー、年次報告の各ページ。チーム、利用者の声、コースは構造化コンテンツとして管理。アクセシブルな見出しと、区別しやすい「詳しく見る」リンク。
- 寄付:WayForPayによる単発・毎月の寄付。署名はサーバー側で生成するため、シークレットがブラウザーに渡ることはありません。コールバックの検証、正しい毎月の日付、金額のプリセットとバリデーション、管理者専用の寄付ログ、コピーボタン付きのUAH・EUR・USDの振込先情報。
- フォームとメール:再現可能なスクリプトでデプロイするお問い合わせフォーム、自動返信、SMTPサービス経由のメール送信、送信内容の保存、2段階のスパム対策。
- SEOと速度:メタタグ、Open Graph、組織のスキーマ、サイトマップ。キャッシュ。サイト全体の混在コンテンツを解消。バナーを圧縮し、ストーリー動画を122 MBから11.5 MBに再エンコード。
- セキュリティ:Webアプリケーションファイアウォール、2段階認証ログイン、Cloudflare配下での実際の訪問者IPの取得、外部に公開しないデータベース、サーバー上だけに置くシークレット。
- インフラ:Cloudflare配下の専用サーバーでDockerを運用し、証明書は自動更新。ロールバック手順付きのデプロイガイド、隔離環境でテストしたPHP 8.3へのアップグレード。
- WordPressのバグを発見して修正:カスタムコンテンツタイプを追加すると、管理者がサイト全体の権限を失ってしまう問題でした。
成果
サイトは公開中で、毎月の保守を行っています。アップデート、テスト済みのバックアップ復元、寄付とフォームのE2Eチェック、英語とウクライナ語のレポート。あるチェックで、お問い合わせフォームがすべてのメッセージを黙ってスパムに振り分けていたことが判明し、修正しました。PHP 8.3へのアップグレード後には、全25ページと16の管理画面を確認し、エラーはありませんでした。