MW WP FormでURL引数をもとに動的にvalue値を設定する方法

MW WP Formに用意されている各フォーム項目のショートコードにおいて、value値が設定可能ものに関してはフィルターフック「mwform_value_xxx」が使用できます。

フィルターフック「mwform_value_xxx」を使うことで、URL引数で渡された値をもとに動的にvalueを設定することができるので、テキストフィールドやラジオボタンの初期値を設定する、のようなことが可能です。

フォーム項目のショートコードを記述するときにvalue値が設定されているとフックが実行されないので注意してください。

フォーム

...
[mwform_text name="hoge"]
...

functions.php

/**
 * @param  String  $value  valueの初期値
 * @param  String  $name  name属性値
 */
function my_mwform_value( $value, $name ) {
    // $_GET['hoge']があったら、name属性がhogeの項目の初期値に設定
    if ( $name === 'hoge' && !empty( $_GET['hoge'] ) && !is_array( $_GET['hoge'] ) ) {
        return $_GET['hoge'];
    }
    return $value;
}

// 管理画面で作成したフォームの場合、フック名の後のフォーム識別子は「mw-wp-form-xxx」
add_filter( 'mwform_value_mw-wp-form-xxx', 'my_mwform_value', 10, 2 );
  • ブックマーク
  • Feedly

この記事を書いた人

キタジマタカシ

長崎在住、フリーランスのWordPress テーマ / プラグインデベロッパー。 多数のプロダクトをオープンソースで開発・公開しています。現在は WordPress 有料テーマ Snow Monkey を開発・販売しています。