こんにちは、Ryohei(@ityryohei)です!

本記事では、GETパラメータの値をフォームに埋め込み表示する方法をご紹介しています。

MW WP Form」では、フォームで使用することができる多くのフィールドが用意されています。その中に「hiddenフィールド」というものがあります。「hiddenフィールド」は、設定によって値を設定するだけでなく、出力することができます。それを利用して、GETパラメータを持っていた場合に「hiddenフィールド」にGETの値を設定すると同時にフォームに出力する方法をご紹介していきたいと思います。

では、解説していきます。

値をフィールドに設定するフィルターフック

WP WP Formには、値を特定のフィールドに設定することができる「フィルターフック」が用意されています。「mwform_value_mw-wp-form-xxx」という名称になります。詳細は「mwform_value_mw-wp-form-xxx」をご参照ください。

下記は、公式サイトに掲載されている「mwform_value_mw-wp-form-xxx」のサンプルコードになります。

function my_mwform_value($value, $name){
    if($name === 'hoge' && !empty($_GET['hoge']) && !is_array($_GET['hoge'])){
        return $_GET['hoge'];
    }
    return $value;
}
add_filter('mwform_value_mw-wp-form-xxx', 'my_mwform_value', 10, 2);

上記であれば、フィルターフックに登録するだけでGETパラメータを取得することができそうです。拡張性の高いプラグインを開発してくれた開発者様に感謝ですね!

では、実際にGETパラメータを取得してフォームに表示して埋め込むまでの処理を記述してみましょう。

GETパラメータがあればフォームに値を埋め込み表示する

今回は下記のようなパラメータがついたアクセスがあった場合を想定して処理を記述していきます。

https://into-the-program.com/?id=123456

まずはフォームに「hiddenの値を表示する」にチェックを入れた状態でhiddenフィールドを追加します。追加すると下記のようなショートコードが表示されるかと思います。下記のサンプルでは「name」に「id」という名前を指定していますが、ご自身の環境に合わせて適宜変更してご使用ください。

 [mwform_hidden name="id" echo="true"]

続いて「functions.php」にフィルターフックを登録します。下記を追記してファイルを更新します。

function my_mwform_value($value, $name){
    if($name === 'id' && !empty($_GET['id']) && !is_array($_GET['id'])){
        return $_GET['id'];
    }
    return $value;
}
add_filter('mwform_value_mw-wp-form-xxx', 'my_mwform_value', 10, 2);

ファイルは更新できましたでしょうか。更新できたらフォームのURLに下記のパラメータを付加してアクセスしてみましょう!

?id=123456

id」の値と「hiddenフィールド」が埋め込まれているかと思います。

最後に

いかがでしたでしょうか。

MW WP Form」は、カスタマイズ性の高いプラグインです。追加したい機能があれば大体のケースで実現することができる拡張性を持っています。人気のプラグインなので、ネット上にもサンプルがたくさん掲載されているのも良いですよね!これからも多くのサイトで使わせていただこうと思います。

以上、MW WP FormでGETパラメータの値をフォームに埋め込み表示する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。