WordPressプラグイン「Snow Monkey Forms」でセレクトボックスを使う際、自動返信メールに表示されるのは「値(value)」のみで、「ラベル(表示テキスト)」は反映されません。
しかし、次のようなケースではラベル(日本語)をメールに表示させたいことがあります。
- JavaScriptやACFと連携するため、valueに半角英数字(例:
shop01
)を使用 - ユーザーにはラベルとして日本語(例:
東京店
)を表示したい - 自動返信メールには、日本語のラベルを表示させたい
本記事では、そのようなケースに対応するセレクトボックスのラベルをメールに反映させる方法を丁寧に解説します。
✅ セレクトボックスの「値」と「ラベル」とは?
セレクトボックスは以下のように、value
属性に「値」を、<option>
の中に「ラベル」を記述します。

"":"選択してください"
"shop01" : "東京店"
"shop02" : "大阪店"
⸻
🛠 解決策:ラベルを隠しテキストボックスに代入する
ステップ1:隠しテキストボックスを追加する
Snow Monkey Formsのフォームに空のテキストフィールド(例:shop-label-text)を追加します。
この項目は後述のJavaScriptで、選択されたセレクトボックスのラベルを代入するために使います。
ステップ2:テキストフィールドをCSSで非表示にする
フォーム内でラベル表示用のテキストボックスが見えないようにします。
確認画面でも見えないようにするために、項目に「高度な設定」>「追加CSSクラス」に「hidden-field」を追加します。
※注意:このクラス名を入れると、Snow Monkey Formsの画面からこの項目が消えてしまいますが、実際には存在します。
心配な場合はhiddenを使わないクラス名に変更してください。

そして、CSSには次を追加してください。
.hidden-field {
display: none;
}
ステップ3:JavaScriptでラベルを代入する
以下のJavaScriptを設置してください。
これにより、初期状態と変更時、バリデーションエラー時でラベルを代入できます。
// Snow Monkey Forms の空フォームにセレクトボックスの値を設定する==================
document.addEventListener("DOMContentLoaded", function () {
const setupShopSelectSync = () => {
const select = document.querySelector('[name="select-shop-name"]');
const labelInput = document.querySelector('[name="shop-label-text"]');
if (!select || !labelInput) return;
// セレクト→テキストフィールドの反映関数
const updateLabel = () => {
const selectedOption = select.options[select.selectedIndex];
labelInput.value = selectedOption?.text || "";
};
// 初期反映
updateLabel();
// 古いイベントを削除してから追加(多重登録防止)
select.removeEventListener("change", updateLabel);
select.addEventListener("change", updateLabel);
};
// 初回実行
setupShopSelectSync();
// フォーム全体を監視して、再描画されたら再設定
const form = document.querySelector("form.snow-monkey-form");
if (form) {
const observer = new MutationObserver((mutationsList) => {
for (const mutation of mutationsList) {
if (
mutation.type === "attributes" &&
mutation.attributeName === "data-screen"
) {
if (form.getAttribute("data-screen") === "invalid") {
// バリデーションエラーによってフォームが更新されたと判断
setupShopSelectSync();
}
}
}
});
observer.observe(form, { attributes: true });
}
});
ステップ4:自動返信メールにラベルの値を挿入
Snow Monkey Formsの管理画面で、自動返信メールの本文に [shop-label-text] を挿入すれば、
ユーザーが選択したラベル(日本語)が表示されるようになります。
選択された店舗: {shop-label-text}
⸻
🎯 まとめ
項目 | 内容 |
---|---|
課題 | 自動返信メールにセレクトボックスのラベルが表示されない |
原因 | Snow Monkey Formsは「値(value)」のみメールに反映 |
解決方法 | 隠しテキストフィールドにJavaScriptでラベルを代入し、メールに出力 |
この方法を使えば、ユーザーにわかりやすい情報を自動返信メールで提供でき、
ユーザー体験の向上や問い合わせ対応の正確性にもつながります。
コメント
コメント一覧 (1件)
[…] あわせて読みたい 【Snow Monkey Forms】セレクトボックスのラベルを自動返信メールに表示する方法 WordPressプラグイン「Snow Monkey Forms」でセレクトボックスを使う際、自動返信メールに […]