Contact Form7を埋め込んだページにてそのページのカスタムフィールド値の取得と出力、また返信メール等への文言の埋め込みのカスタマイズのご依頼事例をご紹介いたします。

クライアント様のご依頼内容

ある公益社団法人様のウェブサイトの講習会の予約フォームを埋め込んでいるページのカスタマイズのご相談をいただきました。

初めまして。
*****と申します。
https://*******の
残席数、日程、タイトル、ターム名、ページIDを取得し
コンタクトフォームを埋め込んだ固定ページにて
日程、タイトル、ターム名、残席数を表示させ、
コンタクトフォームからの自動返信メールにタイトルとターム名の情報を表示し、コンタクトフォームの申込人数と残席を減算して減算結果を残席数に更新させる…という機能を追加したいと考えております。
申込人数と残席の減算、申込人数が残席を超えて入力された場合、コンタクトフォームでエラーを出して送信させない(残席数での申込とする)、減算結果を各詳細ページへ更新する機能を追加したいのですがお見積りと納品までにかかる日数などご連絡いただければ幸いです。
宜しくお願いいたします。

Contact Form7のカスタマイズや簡易な予約システムの構築

Contact Form7は、フォームの出力結果や、送信メールの処理に割り込むフックと呼ばれる機能が豊富に提供されていますので、そのフックを利用して、

・埋め込まれたページのカスタムフィールドを取得して出力
・カスタムフィールドの値を変更
・メールの内容にカスタムフィールドの値を盛り込む、あるいは値に応じてメールの内容を変える

等の機能をPHPコーデイングをすることによって実現することが可能です。
例としまして、Contact form7が送信される直前に、そのフォームが埋め込まれたページのIDやフォームのIDを取得するコードは下記のようになります。

function wpcf7_before_send_mail_func( $contact_form, $abort, $submission ) {

    $post_id = $submission->get_meta('container_post_id');//フォームが埋め込まれているページのID
    $form_id = $contact_form->id();//フォームのID

   //処理を行う

    return $contact_form;
    
}
add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_func', 10, 3 );

このクライアント様の事例では、残席数に応じた表示や、残席数が0になった場合にフォームが送信できなくするなどの、簡易的な予約システムとしてもContact Form7をカスタマイズすれば利用可能でございます。

WordPress ワードプレスのコンタクトフォーム連携・カスタマイズのコーディングのご依頼・ご相談はWPドクターまでお気軽にお送りください