こんにちは。ましじめの田村です。
MW WP Formのラジオボタンを管理者が入力したデータによって動的に変更したいというケースがありました。
MW WP Formは様々なすばらしいフィルターフックが用意されておりマニュアルを確認すると次のコードで実現可能なようです。
マニュアルはこちら
https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_choices/
「ラジオボタン、チェックボックス、セレクトボックス」の選択項目を変更可能とのことです。
// 管理画面入力側
[mwform_radio name="my_radio" children="指定なし"]
// function.php
$form_id = xxx;
//フォームの値を動的に変更する
//--------------------------------
function contact_form_my_radio($children, $atts)
{
if ($atts['name'] === 'my_radio') {
$children = [];
$args = [
'post_type' => 'my_post'
];
$customPosts = get_posts($args);
foreach ($customPosts as $post) {
$children[$post->ID] = $post->post_title;
}
}
return $children;
}
add_filter('mwform_choices_mw-wp-form-' . $form_id, 'contact_form_my_radio', 10, 2);
さらにURLの引数を見て初期値を設定したい場合は次のコードを参考にすると実現できました。
マニュアルはこちら
https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_value/
// url引数`radio_id`の値によって初期選択を変える
function contact_form_my_radio_value( $value, $name ) {
if ( $name === 'my_radio' && !empty( $_GET['radio_id'] ) && !is_array( $_GET['radio_id'] ) ) {
return $_GET['radio_id'];
}
return $value;
}
add_filter( 'mwform_value_mw-wp-form-' . $form_id, 'contact_form_my_radio_value', 10, 2 );
MW WP Form のフォームの項目を動的に変更したい場合に参考にしてみてください。
関連するタグ
全 1 件中 1 〜 1 件目を表示
この記事を書いた人
たむら しょうご
HTML&CSSコーダー
ウェブアクセシビリティ対応、フロントエンド開発、CMSを利用したウェブサイト制作を担当しています。
趣味はガーデニングです。