MW WP FORM のフックが効かない。

MW WP FORM のフックが効かない。

MW WP FORM は、各種フックがあってカスタマイズが便利~とか言われているプラグインですが。。。

マニュアルにはあるのにフックが効かないフックがかなりある。

以前のバージョンでは動いていたフックもあり、サイトを検索して見つけても新しいバージョンではフックされないよってな状況。

MW WP FORM って、バージョンアップやめたのかな?

もしくは、バージョンアップした時点でテストしないとか?

とにかく効かないフックが結構ある。

その中で、もっとも困るのが、フィールドに値を入れるフック関数。

4.1.1では、フックが効かない。


MW WP FORM のフックが効かない対策


答えは、JAVASCRIPTで投げ込んじゃえ。

前の記事でも書きましたけど、MW WP FORM が出してくるフィールドって IDがセットされないものが結構あります。

ので、とりあえず MW WP FORM のソースをいじって ID を追加します

場所は、4.1.1 で、templates/form-fields/ です。

その中に各フィールドの書式が入っているので、IDを追加してあげてください。

例えば、hidden.php の場合

0001<input type="hidden" name="<?php echo esc_attr( $name ); ?[" value="<?php echo esc_attr( $value ); ?>" />


これを
0001<input type="hidden" name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $name ); ?>" value="<?php echo esc_attr( $value ); ?>" />
にしてあげればOK.

フックを使わずにデータに初期値を与える

もともと MW WP FORM の初期値変更のフックは、デフォルトでしか設定できませんので、どちらにしても別対応が必要でした。

どうも設計が中途半端なプラグインです。

一つのフォームを使いまわしたいとかありますでしょう?

ページタイトルとか postで拾えるデータならまだしも・・・

で、どうするかといえば、投稿内に javascript を書いてあげます

ターゲットのフィールド ID が resv_title の場合
0001
0002<script>
0003 document.getElementById(′resv_title′).value = ′abc′;
0004</script>


この abc をページごとに書き換えればOKなわけ。

こういうことをするためにもフィールドには name , id は必須なわけですが・・・



あなたが、これで逃げられたら幸いです。

ご検討ください。




関連記事

TOP