Snow Monkey Formsにはチェックボックス、ラジオボタン、プルダウン(セレクトボックス)と選択する機能があります。
この記事では、PHPフィルターで初期値を指定する方法を紹介します。利用中のバージョンのブロック設定で目的の初期値を設定できる場合は、そちらを先に使ってください。


本記事ではそのやり方を紹介します。
Snow Monkey Forms の設定・カスタマイズ方法はこちらにまとめています。
初期値が利用者の変更を上書きしないか確認する
| 段階 | 検証した内容 |
|---|---|
| 初回表示 | カバン・携帯、晴れ、東京都が選択済み。 |
| 変更 | カバンと携帯を両方解除し、曇り・沖縄県へ変更。 |
| 確認→戻る | 解除したチェックと変更後の選択が維持され、初期値へ戻らない。 |
| 対象外 | 異なるNAMEのフォームには初期値が入らない。 |
確認画面へ進む前に、初期値とは違う値へ変更します。チェックボックスは1項目だけ残す場合に加え、すべて解除した場合も試してください。ラジオボタンとセレクトは別の選択肢へ変更してから確認画面へ進み、戻った後の値を見ます。
下の「まとめた場合」のコードで上記の一連の操作を、1280px・375pxの実フォームで確認しました。初期値の指定は送信データの検証やメール配送を保証するものではありません。

Snow Monkey Formsで初期選択状態を指定する方法
やり方は簡単ですが、指定方法はコードになります。
フォームの作成
事前にチェックボックス・ラジオボタン・プルダウン(セレクトボックス)を作成します。

もちろん選択肢(オプション)も作成しておきましょう。
初期選択状態を指定する
あとはコードを作成するだけです。
チェックボックス・ラジオボタン・プルダウンのNAME属性と選択肢を入力する必要があります。
| チェックボックス | checkboxes-1inoornng |
|---|---|
| ラジオボタン | radio-buttons-1inoot987 |
| プルダウン(セレクトボックス) | select-1inopi47j |
下の個別例から必要なものを選ぶか、「まとめた場合」だけを使います。両方を同時に登録しないでください。NAME属性は実際のフィールド名、初期値は実際の選択肢の値に置き換えます。表示ラベルと送信値が異なる場合は送信値を指定してください。
チェックボックス:カバン・携帯を初期選択にする
add_filter(
'snow_monkey_forms/control/attributes',
function( $attributes, $setting ) {
if ( isset( $attributes['name'] ) && 'checkboxes-1inoornng' === $attributes['name'] ) {
$attributes['values'] = [ 'カバン', '携帯' ]; // 初期でチェックする項目
}
return $attributes;
},
10,
2
);
ラジオボタン:晴れを初期選択にする
add_filter(
'snow_monkey_forms/control/attributes',
function( $attributes, $setting ) {
if ( isset( $attributes['name'] ) && 'radio-buttons-1inoot987' === $attributes['name'] ) {
$attributes['value'] = '晴れ'; // 初期で選択する項目
}
return $attributes;
},
10,
2
);
セレクトボックス:東京都を初期選択にする
add_filter(
'snow_monkey_forms/control/attributes',
function( $attributes, $setting ) {
if ( isset( $attributes['name'] ) && 'select-1inopi47j' === $attributes['name'] ) {
$attributes['value'] = '東京都'; // 初期で選ぶ選択肢
}
return $attributes;
},
10,
2
);
まとめた場合
add_filter(
'snow_monkey_forms/control/attributes',
function( $attributes, $setting ) {
if ( isset( $attributes['name'] ) ) {
switch ( $attributes['name'] ) {
// チェックボックス(複数選択)
case 'checkboxes-1inoornng':
$attributes['values'] = [ 'カバン', '携帯' ]; // 初期でチェックを入れる項目
break;
// ラジオボタン(1つのみ選択)
case 'radio-buttons-1inoot987':
$attributes['value'] = '晴れ'; // 初期で選ぶ項目
break;
// セレクトボックス(プルダウン)
case 'select-1inopi47j':
$attributes['value'] = '東京都'; // 初期で選ぶ都道府県
break;
}
}
return $attributes;
},
10,
2
);
公開フォームで初期表示を確認した後、別の選択肢に変更して確認画面・入力画面への戻りを試します。利用者の変更が初期値へ戻されないこと、未選択に戻したチェックボックスが再選択されないことも確認してください。実際の送信テストはテスト用宛先で行います。実メールの送信は検証していません。

フィルターはNAME属性で判定するため、別フォームで同じNAMEを使うとそちらにも適用されます。対象フィールド名を他フォームと重複させないでください。元に戻すには追加PHPを停止・削除し、フォームとキャッシュを読み直します。プライバシーポリシーへの同意など、利用者本人の判断が必要な項目は初期選択にしないでください。



