inputのhiddenに動的な値をセットする
<!-- フォームに設置 --> [mwform_hidden name="page_title"]
//function.php
function my_mwform_value($value, $name){
if($name === 'page_title'){
$ID = get_the_ID();
$value = get_the_title( $ID );
}
return $value;
}
add_filter('mwform_value_mw-wp-form-フォームナンバー', 'my_mwform_value', 10, 2);
selectに動的な値をセットする
<!-- フォームに設置 --> [mwform_select name="year" children=""]
// 1930年〜現在の年 + 10までをoptionに設定する
function add_products($children, $atts){
if($atts['name'] == 'year'){
$this_year = wp_date('Y');
for($num = 1930; $num <= $this_year + 10; $num++){
$children[$num] = $num;
}
}
return $children;
}
add_filter('mwform_choices_mw-wp-form-フォームナンバー', 'add_products', 10, 2);
フォームの入力内容をデータベースから取得する
最初に「 問い合わせデータをデータベースに保存」にチェックを入れて、最低でも一件は問い合わせがあることが前提。
入力項目は全てカスタムフィールドとして扱われるので「get_post_custom();」で取得して扱う
$mwid = '投稿ID(管理画面から確認可能)';
$form_id = 'formナンバー';
$args = array(
'post_type' => 'mwf_'.$form_id,
'p' => $mwid,
);
$my_query = new WP_Query( $args );
while ( $my_query->have_posts() ) : $my_query->the_post();
// 処理
$my_cf = get_post_custom();
// 件名
echo $cf['title'][0];
endwhile;
wp_reset_postdata();
フックでデータベース登録後に問い合わせの投稿IDを取得
最初に「 問い合わせデータをデータベースに保存」にチェックを入れて、最低でも一件は問い合わせがあることが前提。
function my_mwform_after_send( $Data ) {
// DB登録・メール送信後の特定のフォームの時の処理
if ( $Data->get_form_key() === 'mw-wp-form-xxx' ) {
$mailid = $Data->get_saved_mail_id();
return $mailid;
}
}
add_action( 'mwform_after_send_mw-wp-form-15', 'my_mwform_after_send' );
画面変遷時のスクロールを有効にするが効かないときのjquery
jQuery(function($) {
if ( $('.error')[0] ) {
$('.mw_wp_form').addClass('mw_wp_form_error');
var errorEl = $('.error').eq(0);
var position = errorEl.parent().offset().top - 100;
$('body,html').delay(0).animate({scrollTop:position}, 300, 'swing');
}
});