FormKit(フォームキット):応用サンプル

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