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 は文字列ではなくオブジェクトなので、文字列として認識させるためにダブルクォーテーションで囲む必要があるためです。