MW Form 完了ページの識別


MW Form を利用して入力ページと完了ページのURLを変えたい場合はそれぞれ設定することができるが、商品やエントリーの各ページにフォームを付けたい場合、入力URLを空欄で設定すると戻るボタンが正しく動作しない。また、確認・エラー・完了ページに投稿の内容を表示しておきたい場合、それなりに工数が増えることになる。
送信後に別ページにリダイレクトする方法はあるが、それならフォームからIDを送信して、同じURLにパラメータを付けたURLにリダイレクトしてはどうだろう?

function my_mwform_after_send( $Data ) {
  if ( $Data->get_form_key() === 'mw-wp-form-xx' ) {
	  $id = $Data->get( 'id' ); $url = get_permalink($id);
		wp_redirect($url.'?message=thanks');
	  exit;
  }
}
add_action( 'mwform_after_send_mw-wp-form-xx', 'my_mwform_after_send' );

これで一応完了ページのURLは変わるし、フォームで設定した完了メッセージは表示されるし、テーマ上ではパラメータの有無で何らかの表示・非表示が可能になる。
*コンバージョンに関しては私は自分で設定したことがないので、この方法が有効かどうかは未確認です。