前提
こんにちは。wordpressのプラグインである「mw-wp-form」を使って、①フォームの作成と②確認画面の作成をしたいです。しかし、思うように値を取り出せないのでご質問させていただきます。
wordpressのmw-wp-formを利用して別ページでpost値の取得は可能でしょうか?フックの利用や変数への格納など、自分で試せる手法を試し切ったため、「mw-wp-formを利用したらpost値がリセットされる」などの機能が備わっているかどうかの質問です。
可能であれば、私のコードは①入力画面内のconfirm.phoまでのパスの指定方法②confirm.php内での出力方法で言ったらどちらがおかしいでしょうか?chrome devではformからの情報は問題なくconfirm.phpに受け渡されていました。しかし、post値で受け取ったconfirm.phpとget値で受け取ったconfirm.phpの二つが表示されており、get値で受け取ったconfirm.phpが表示されているため、pathが間違っているかもしれません。(説明上手くできませんでした)
実現したいこと
-ページA(入力画面)にフォームを埋め込む
-ページB(確認画面)でページAに入力された値を受け取る
ページA,ページBはデザインが異なるページなので、A、Bと名前を当てました。
該当のソースコード
入力画面
mw-wp-formで作成
html
1<div id="mw_wp_form_mw-wp-form-31" class="mw_wp_form mw_wp_form_input "> 2 <form method="post" action="" enctype="multipart/form-data"><p> <main class='main'></p> 3<h2 class='main-title'>入力内容の確認</h2> 4<div class='main-textbox'> 5<div class='main-textbox_content'> 6<p>お名前</p> 7<p> 8<input type="text" name="namae" size="60" value="" /> 9 10 </p></div> 11<div class='main-textbox_content'> 12<p>メールアドレス</p> 13<p> 14<input type="text" name="mail" size="60" value="" /> 15 16 </p></div> 17 18 19<div class='checkbox'> 20<p> 21<input type="submit" name="submitConfirm" value="確認画面へ" /> 22</div> 23</p></div> 24<p> </main></p> 25<input type="hidden" id="mw_wp_form_token" name="mw_wp_form_token" value="c49553de2e" /><input type="hidden" name="_wp_http_referer" value="/wordpress/?page_id=41&preview=true" /><input type="hidden" name="mw-wp-form-form-id" value="31" /><input type="hidden" name="mw-wp-form-form-verify-token" value="80d8eb03cca2cec987c5743c6dbbe72915bea831" /></form> 26 <!-- end .mw_wp_form --></div>
確認画面
html
1<!-- 2Template Name: confirm 3--> 4 5<?php 6get_header(); 7?> 8 9 10 <main class='main'> 11 <h2 class='main-title'>入力内容の確認</h2> 12 <div class='main-textbox'> 13 <div class='main-textbox_content'> 14 <p>お名前</p> 15 <?php 16 $mail = $_POST['mail']; 17 ecbo $_POST; 18 ?> 19 <?php 20 echo $arrForm['mail']; 21 ?> 22 </div> 23 <div class='main-textbox_content'> 24 <p>メールアドレス</p> 25 </div> 26 27 28 <div class='checkbox'> 29 <div class='checkbox-content'> 30 <input id='agree' type="checkbox" class='checkbox-content_btn' name='agree'> 31 <label for='agree' class='checkbox-content_txt'> 32 <span class='checkmark'>プライバシーポリシーに同意する。</span> 33 </label> 34 </div> 35 </div> 36 <a href="<?php echo get_template_directory_uri(); ?>/page-thanks.php" class='comfirm-button'> 37 <button type="button"> 38 <img src="<?php echo get_template_directory_uri(); ?>/assets/img/common/sp/submit_btn.png" alt="" class='comfirm-button_img'> 39 </button> 40 </a> 41 </div> 42 </main> 43 44 45 46<?php 47get_footer(); 48?> 49
試したこと
formタグ内のaction属性が空白ということに気づきfunctions.phpに
php
1function my_do_shortcode_tag( $output, $tag, $attr ) { 2 if ( 'mwform_formkey' == $tag 3 // && isset( $attr["31"] ) && '1234' == $attr["31"] 4 ) { 5 $permalink = get_permalink(19); 6 // $permalink = get_template_directory_uri()."/function.php"; 7 $post = '"post"'; 8 $enctype = '"multipart/form-data"'; 9 $siq_id = '"autopick_xxxx"'; 10 $output = str_replace( 11 '<form method="post" action="" enctype="multipart/form-data">', 12 "<form method={$post} action={$permalink} enctype={$enctype} siq_id={$siq_id}>", 13 $output 14 ); 15 } 16 return $output; 17} 18add_filter( 'do_shortcode_tag', 'my_do_shortcode_tag' ,10, 3 );
を記入しました。action属性は追加でき、「mw-wp-form」の設定画面下の確認画面URLを設定せずともconfirmに飛ぶことはできましたが、POST値は取り出せなかったため、現在はコメントアウトしております。(なので、入力画面のコードにはaction属性追加されておりません)
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/11/02 06:42