この記事は最終更新日から2年以上経過しています。
MW WP Form のフォームの項目を動的に変更する
公開日:
更新日:
こんにちは。ましじめの田村です。
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 のフォームの項目を動的に変更したい場合に参考にしてみてください。
関連記事
この記事のハッシュタグ #WordPress から関連する記事を表示しています。
WordPress WP_Query 任意のID順に並べて表示する
こんにちは。ましじめの田村です。 WordPressで任意の投稿ID順に並べて表示したい場合あがありました。 関数リファレンス この場合次のコードで実現出来そうです。 $args = [ 'post__in' => [10,20,30,40,50], //投稿ID 'orderby' => 'post__in' //並び順を投稿ID順に ]; $query = new WP_Query( $args ); 以上「WordPress WP_Query 任意のID順に並べて表示する」でした。 任意の投稿ID順に並べたい場合参考にしてみてください。
スタッフブログ
MW WP Form の返信メールに送信日時を表示
こんにちは。タムショーです。 MW WP Formで返信メールに送信日時を表示したいというケースがありました。 この場合次の方法で実現できそうです。 マニュアルはこちら https://plugins.2inc.org/mw-wp-form/filter-hook/mwform_custom_mail_tag/ // 自動返信メール設定 受付日時:{send_datetime} // function.php $form_id = xxx; //返信メールに送信日時を表示 //-------------------------------- function send_date_time( $value, $key, $insert_contact_data_id ) { if ( $key === 'send_datetime' ) { return date_i18n( 'Y年m月d日 H時i分' ); } return $value; } add_filter( 'mwform_custom_mail_tag_mw-wp-form-' . $form_id, 'send_date_time', 10, 3 ); MW WP Form の返信メールに送信日時を表示したい場合に参考にしてみてください。
スタッフブログ