WordPressのテーマを流用したメールフォームの作成方法
WordPressに含まれる wp-load.php
というライブラリをロードすることで、WordPress関数が使えるようになります。このライブラリをロード後に、get_header()
や get_footer()
などを使えばあとは中身は通常のフォーム設置と同様です。簡単ですね。
<?php require 'formkit/app/fk-input.php' ?> <?php require '../wp-load.php'); ?> <?php get_header(); ?> <link rel="stylesheet" href="formkit/app/fk.css"> <form> </form> <?php \FK\copyright_tag(); ?> <script src="formkit/app/fk.js"></script> <?php get_footer(); ?>
ちなみに、冒頭の require
は、WPより先にFormKitの本体を呼び出すようにして下さい。でないとうまく動かない場合があります。
選択された店舗にメールを送る
よく、「選択された店舗ごとにメールを送信したい」ということがあるかと思います。例えばこんな感じの店舗を選択するプルダウンがあります。
<select name="shop"> <option value="">お近くの店舗を選択してください</option> <option value="shop1">店舗1</option> <option value="shop2">店舗2</option> <option value="shop3">店舗3</option> </select>
ここで、config.php
を以下のようにすると実現できます。
# - 各店舗のメールアドレス $Special['__SHOPS__'] = [ 'shop1' => '店舗1 <shop1@example.jp>', 'shop2' => '店舗2 <shop2@example.jp>', 'shop3' => '店舗3 <shop3@example.jp>', ]; # - 各店舗へ $Config['mails'][] = [ 'template' => 'mail_to_shop.php', 'subject' => 'お問い合せが届いております。', 'from' => '事務局 <office@example.jp>', 'to' => '{$__SHOPS__["$shop"]}', ~
特殊変数用の入れ物 $Special
にデータをセットしておくと、メール設定・CSV設定やテンプレート中で変数の参照が可能になりますのでこれを利用します。上記例では、__SHOPS__
というキーで配列を作っておくことで、メール設定で $__SHOPS__
という変数で値の参照をしています。
尚、'{$__SHOPS__[$shop]}'
だとうまく展開されませんので、'{$__SHOPS__["$shop"]}'
としてください。これは、要素名の $shop
は文字列ではなくオブジェクトなので、文字列として認識させるためにダブルクォーテーションで囲む必要があるためです。