WP Formプラグインでフォームを作る

WordPress
スポンサーリンク

WP Formプラグインでフォームを作る

フォームのプラグインはcontact form7も有名ですが、今回はWP formを使ってフォームを作ってみました。

一番の違いは、完了画面、確認画面などが作れるようになっていることです。

自動返信や、管理者へのメールはcontact form7にもありますが、thanks画面などはwpformにしか付いてません。

フォームタグをつくる

まず下記のプラグインをダウンロードします。

MW WP Formプラグインをダウンロードして、有効化します。

こういうテキストボックスのフォームを作っていきます。

下記はcssでスタイルを追加しています。

フォームを編集から名前をつけます。

メディアを追加して、(テキスト、テキストエリア、メールアドレスなど)を選択します。

右のようなフォーマットが開くので、必要箇所を入力し、フォームタグを追加します。

右では、nameとplaceholderだけ入力しています。必要に応じてclass名なども入れることができます。

[ ]かっこに入ったフォームタグを出力してくれます。

ボタンは、戻るボタン、確認ボタン、送信ボタンのコードを入力します。

私は最初驚いたのですが、それぞれ必要なボタンが自動で切り替わるので、3つ書いておいて問題ありません。

例えば、

・フォーム入力画面では、確認ボタン。

・確認画面では戻るボタンと送信ボタンなど。

ボタンは(button)(input)タグ2種類あります。

例えばこんな感じです。完成例

<div class="c-forms__block">
<div class="c-forms__title">会社名<span class="c-forms__label">必須</span></div>
<div class="c-forms__content">[mwform_text name="会社名" placeholder="〇〇会社"]</div>
</div>

<div class="c-forms__block">
<div class="c-forms__title">メールアドレス<span class="c-forms__label">必須</span></div>
<div class="c-forms__content">[mwform_text name="メールアドレス" placeholder="info@mail.com"]</div>
</div>

<div class="c-forms__block">
<div class="c-forms__title">都道府県<span class="c-forms__label">必須</span></div>
<div class="c-forms__content">[mwform_select name="都道府県" post_raw="true" children=":選択してください,北海道,青森県,岩手県,宮城県,秋田県,山形県,福島県,茨城県,栃木県,群馬県,埼玉県,千葉県,東京都,神奈川県,新潟県,富山県,石川県,福井県,山梨県,長野県,岐阜県,静岡県,愛知県,三重県,滋賀県,京都府,大阪府,兵庫県,奈良県,和歌山県,鳥取県,島根県,岡山県,広島県,山口県,徳島県,香川県,愛媛県,高知県,福岡県,佐賀県,長崎県,熊本県,大分県,宮崎県,鹿児島県,沖縄県" value="都道府県" ]</div>
</div>

<div class="c-forms__submit">
<div class="large-6 is-push-lg-3 small-12">[mwform_bconfirm class="c-button is-lg" value="confirm"]確認画面へ[/mwform_bconfirm]</div>
</div>

<div class="c-forms__submit is-two-columns">
<div class="large-6 small-6">[mwform_bback class="c-button is-lg is-secondary" value="back"]戻る[/mwform_bback]</div>
<div class="large-6 small-6">[mwform_bsubmit class="c-button is-lg" value="send"]送信する[/mwform_bsubmit]</div>
</div>

ショートコードを貼り付ける

下記のようなショートコードが書かれているので、それをフォームを設置したい場所にコピペします。

固定ページなど(html)に書く場合は、そのままコピペします。

phpファイルに書く場合は、下記のように書きます。

<?php echo do_shortcode('[ショートコードの文字列]'); ?>

自動返信メールの設定

下記のように自動返信で送信する内容を書いていきます。

例)自動返信【bouquet】お問い合わせありがとうございます。

{ }の中は、自動入力される箇所になります。

nameでつけた名前を書きます。例)name=”会社名”

{会社名} 様

この度はお申込みいただき、誠にありがとうございます。

ご確認後、担当者より追ってご連絡いたしますので、
今しばらくお待ちくださいませ。

ご入力いただいたお申込み内容は以下の通りです。

‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥

【 セミナーお申込み内容 】

[TEL]
{TEL}

[メールアドレス]
{メールアドレス}

ちょっと間違えやすい箇所で、こちらはメールアドレスのフォームタグで、nameを記入した名前を書きます。なので、問い合わせ相手のメールアドレスになります。

例)name=”メールアドレス

管理者宛てメール設定

管理者宛てメール設定も、自動返信メールと同じように入力していきます。

{ }の中は、自動入力される箇所になります。

nameでつけた名前を書きます。例)name=”会社名”

【ご担当者様へ】WEBサイトからお申し込みがありました。

ご担当者様

御社WEBサイトから、以下の内容でお問い合わせが届きました。
ご対応をお願い申し上げます。

‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥

【 お問い合わせ内容 】

[お名前]
{お名前}

[メールアドレス]
{メールアドレス} 

[電話番号]
{電話番号}

[お問合わせ内容]
{お問合わせ内容}

確認画面と完了画面

確認画面は、デフォルトのものでよければ、自動で作られます。

完了画面は、完了画面メッセージと書かれたところに記入します。

お問合せ内容を送信しました。

3営業日以内に担当者から内容を確認し、ご連絡をさせていただきます。

万が一、数日経っても連絡がない場合は、大変お手数ですが再度お申込みいただくか、
下記お問合せ先までご連絡をお願いいたします。

※スムーズなご連絡のため、自動返信メールが届いていない際は迷惑メールに振り分けられていないかなどの確認と
.comからのメール受信設定をしていただきますようお願いいたします。

【お問合せ先】
メール:

別のページで確認画面と完了画面を作る場合

下記のように、別のurlで開く確認画面なども作成できます。

別画面で作る必要性については、フォームをページの下の方につける時などです。戻るボタンで、フォーム設置したページのトップに戻ってしまい、わかりにくいです。別画面で確認画面を開いた方がわかりやすかったりします。

注意点としては、3つセットで入力が必要な点です。省くと戻るボタンでエラーが出たりなど、画面遷移がうまくいかなかったです。

・入力画面 フォームを設置した最初の画面のurl

・確認画面 フォームの内容の確認画面

・完了画面 送信後のthanks画面

・エラー画面  必須項目が入力されてなかったときなどの、エラー画面

確認画面、エラー画面

確認画面とエラー画面は大体同じなので、コピペして作ります。エラー画面は少し文章を変えたら、OKです。

(※すみません、エラーが出たため下記コード、画像にしました↓)

完了画面

<div class="container">

<h3>お問合せ内容を送信しました。</h3>

<p>3営業日以内に担当者から内容を確認し、ご連絡をさせていただきます。<br>

何らかのエラーで、完了画面にリンクできないこともあるようです。

そんな場合は、functions.phpに直接書き込んで設定することもできるようです。


// 送信完了後に完了ページへ遷移

function my_mwform_after_send( $Data )
{
    $form_key = $Data->get_form_key();
    if ( $form_key === 'mw-wp-form-○○' ) {
        //thanks画面のパーマリンク
        wp_redirect('/complete');
        exit;
    }
}
add_action( 'mwform_after_send_mw-wp-form-○○', 'my_mwform_after_send' );

参考サイト https://analyzegear.co.jp/blog/739

アクションフック https://plugins.2inc.org/mw-wp-form/manual/action-hook/

バリデーションチェック

必須項目などバリデーションチェックを作ります。nameに付けた名前を書き、必須項目にチェックをつけます。

例)name=”会社名”

セレクトボックスの必須項目

都道府県の選択など、セレクトボックスで作ることもあると思います。必須項目に設定していても、

:選択してくださいなどの文字があると、バリデーションチェックにひっかかりません。

なので下記のようにするのが、ポイントです。

選択肢を:で送信値と〜の箇所をチェックすると、post_raw=”true”というタグができます。

必須項目などに、:選択してくださいを含めずバリデーションチェックでエラーチェックができます。

※逆にこれがないと、バリデーションチェックでエラーになりません。

コードは下記のようになります。

[mwform_select name="内容" class="t-corce arrow-style" children=":--- ,北海道,
青森,秋田" post_raw="true" value=""]

バリデーションは、必須項目にします。
チェックボックスの方では、うまくバリデーションがでませんでした。)

参考サイト https://kouichirou.aomori.jp/2021/02/25/mw-wp-form_selectbox/

ラジオボタンなど、条件分岐での必須項目設定

例えば、その他を選んだときだけ、その他のテキストボックスを必須項目にしたい場合。

このようなコードでフォームのラジオボタンを作っています。

<div class="c-forms__block">
<div class="c-forms__title">きっかけ<span class="c-forms__label">必須</span></div>
<div class="c-forms__content">何で本セミナーを知りましたか? 
[mwform_radio name="きっかけ" children="メールでのご案内,ダイレクトメール,SNS広告,
PR times,その他" vertically="true"][mwform_text name="その他詳細" 
placeholder="その他の場合はこちらをご記入ください"]</div>

必要なのが以下の3つの名前です。

・mwform_radio name=”きっかけ

・children=”その他,

・mwform_text name=”その他詳細

下記をfunctions.phpに書きます。

//MW WP Form バリテーション
function my_validation_rule( $Validation, $data ) {
    if ( $data['きっかけ'] === 'その他' ) {
    $Validation->set_rule( 'その他詳細', 'noEmpty', array(
    'message' => '「その他」を選択した場合はご入力ください。'
    ) );
    
    }
    
    return $Validation;
    }
    add_filter( 'mwform_validation_mw-wp-form-○○', 'my_validation_rule', 10, 3 );

ひとつ私が間違ったのが、バリデーションチェックの設定箇所で、その他詳細の必須項目にチェックしたことでした。

functions.phpにコード書いたので、こちらではその他詳細は何も設定しなくて大丈夫です。というかチェックしたらエラーになりました。きっかけだけチェックしておきます。

参考サイト https://design-webnote.com/wp/mwform-required/

まとめ

MW WP Formとcontact form7の違いは、確認画面や完了画面がついている点です。

・フォーム設置したい場所に、ショートコードを貼り付けるだけで設置できます。

・確認画面や完了画面を別のurlで作る場合は、3つセットで作らないと画面遷移がうまくいかない。

イレギュラーな場合は、functions.phpで直接リダイレクトさせる方法もある。

・バリデーションチェックは、セレクトボックスやラジオボタンでエラーが起こりやすいので注意が必要です。

タイトルとURLをコピーしました