商品の予約開始直後、予想を遥かに超える注文が殺到し、対応がパンク……。そんな経験はありませんか?
私自身、クライアント様から「予約フォームを開放していると注文が集中しすぎて対応が追いつかない。予約フォームが表示される時間を限定して予約を受け付けたい」というご相談を受けました。
今回は、Contact Form 7を使った予約フォームを「特定の期間・時間帯」だけ自動的に公開・非公開する仕組みを、AIを活用して実装した事例をご紹介します。
突然の悲鳴「注文が捌ききれない!」
商品の予約受付開始と同時に注文が殺到すると、事務作業や在庫管理が追いつかず、ミスが発生するリスクが高まります。本来であれば「予約が入ることは嬉しいこと」ですが、現場のキャパシティを超えてしまっては本末転倒です。
クライアント様との相談の結果、「予約フォームを時間限定で開放する」ことで、予約をコントロールし、事務作業等を軽減する運用に切り替えることになりました。
プラグイン検討の壁
最初は「Content Control」などのプラグインを使って、ブロック単位で表示制限をかける方法を検討しました。プラグインを使えばコードを書かずに済みます。
しかし、検証を進める中で、いくつかの課題に直面しました。
- 設定項目が思ったより複雑になること
- サイト全体のキャッシュ設定と干渉し、時間になってもフォームが切り替わらないトラブルが懸念されること
サイトの動作を軽く保ちつつ、確実に動作させるにはどうすべきか……。
悩んだ末、「WordPressの核心である functions.php に制御コードを書き込む」という手段をとることにしました。
AIとの協業で「自動受付システム」を構築
今回は、Googleの生成AI「Gemini」に技術パートナーとして協力してもらいました。
私がGeminiに対して行った指示(プロンプト)は、非常に具体的です。
- 「以下のショートコード [contact-form-7 id=”abc12345″ title=”期間限定予約フォーム”]を10時~11時59分だけ解放」
- 「特定の期間(6月1日~6月10日)だけ表示させたい」
- 「それ以外の時間は『予約受付時間外です』と表示させたい」
AIは即座に、DateTime クラスを用いた正確な判定コードを生成してくれました。
プラグインをインストールする必要がなく、CSSの知識が無くてもテーマファイルに追記するだけで動作するため、非常に軽量で確実な解決策です。
実装コード(functions.php)
実際に使用したコードがこちらです。日付と時間の両方を判定し、期間ごとに柔軟に制御しています。
function limited_booking_form_shortcode() {
$form_shortcode = '[contact-form-7 id="abc12345" title="期間限定予約フォーム"]';
// 現在の日時を取得(日本時間)
$now = new DateTime('now', new DateTimeZone('Asia/Tokyo'));
$today_date = $now->format('Y-m-d');
$current_hour = (int)$now->format('H');
// 2026年6月1日~6月10日の制御(10:00~11:59)
if ($today_date >= '2026-06-01' && $today_date <= '2026-06-10') {
if ($current_hour >= 10 && $current_hour < 12) {
return do_shortcode($form_shortcode);
} else {
return '<div class="booking-closed-message">本日の予約受付時間は 10:00~11:59 です。</div>';
}
}
// それ以外の期間
return '<div class="booking-closed-message">現在は予約受付期間外です。</div>';
}
add_shortcode('booking_form', 'limited_booking_form_shortcode');
記事内でこれまでのショートコード [contact-form-7 id=”abc12345″ title=”期間限定予約フォーム”]の部分に [booking_form] と記述するだけで、自動的に時間が管理されるようになります。
運用してみて:結果とまとめ
実装後、クライアント様からは「予約受付後の作業が減って楽になった」「時間になると自動的に切り替わるので、手動でフォームをオフにする手間がなくなった」と大変喜ばれました。
成功のポイント
AI活用のプロセス: 技術的な要件を整理し、AIにコードを書かせることで、短時間で高品質なカスタマイズが実現しました。
キャッシュへの注意:
最後に注意点ですが、もしコードを反映しても切り替わらない場合は、サイトのキャッシュを削除してください。これが唯一の「ハマりどころ」です。
生成AIに伝えたのは「今の状況」「それをどうしたいか」だけです。何か問題を抱えていて、それを解決したい。でもCSS等の詳しい知識は持ち合わせていないという方でも、生成AIを活用すれば即座に問題が解決できる一例としてお伝えさせていただきました。


