細かい不具合がありそうですが・・・おおよそこんな感じでしょうか?
function my_mwform_value( $value, $name ) {
if ( $name === 'contactid' ) {
if ( ! empty( $_GET['contactid'] ) && ! is_array( $_GET['contactid'] ) ) {
$value = $_GET['contactid'];
} else {
$value = uniqid( rand() );
}
}
return $value;
}
add_filter( 'mwform_value_mw-wp-form-1', 'my_mwform_value', 10, 2 );
add_filter( 'mwform_value_mw-wp-form-2', 'my_mwform_value', 10, 2 );
add_filter( 'mwform_value_mw-wp-form-3', 'my_mwform_value', 10, 2 );
add_filter( 'mwform_value_mw-wp-form-4', 'my_mwform_value', 10, 2 );
function my_mwform_redirect_url( $url, $Data ) {
if ( $url && $Data->get_view_flg() == 'complete' && $_POST['contactid'] ) {
$url = add_query_arg( array( 'contactid' => $_POST['contactid'] ), $url );
}
return $url;
}
add_action( 'mwform_redirect_url_mw-wp-form-2', 'my_mwform_redirect_url', 10, 2 );
add_action( 'mwform_redirect_url_mw-wp-form-3', 'my_mwform_redirect_url', 10, 2 );
add_action( 'mwform_redirect_url_mw-wp-form-4', 'my_mwform_redirect_url', 10, 2 );
ご回答ありがとうございます。
完了画面まではURLパラメータを引き継ぐんですが、
完了画面から次のフォーム(2ページ目)に変移するとパラメータが消えてしまいます…。
まず最初にuniqidでタイムスタンプを取得して、それを文字列として全ページのhiddenフィールドのバリューに入力(置換)することはやはり難しいのでしょうか?
hiddenフィールドのバリューに入力(置換)することはやはり難しいのでしょうか?
ちょっと分かりません。
完了画面から次のフォーム(2ページ目)に変移するとパラメータが消えてしまいます…。
コードが間違えていました・・・
最初のフォームの mwform_redirect_url フィルターフックをフックしてください。
add_action( 'mwform_redirect_url_mw-wp-form-2', 'my_mwform_redirect_url', 10, 2 );
add_action( 'mwform_redirect_url_mw-wp-form-3', 'my_mwform_redirect_url', 10, 2 );
add_action( 'mwform_redirect_url_mw-wp-form-4', 'my_mwform_redirect_url', 10, 2 );
↓
add_filter( 'mwform_redirect_url_mw-wp-form-1', 'my_mwform_redirect_url', 10, 2 );
add_filter( 'mwform_redirect_url_mw-wp-form-2', 'my_mwform_redirect_url', 10, 2 );
add_filter( 'mwform_redirect_url_mw-wp-form-3', 'my_mwform_redirect_url', 10, 2 );
コードが間違えていました・・・
最初のフォームの mwform_redirect_url フィルターフックをフックしてください。
こちらは気づいたので修正したのちにテストしたのですが、やはり完了画面から変移するとパラメータが消えてしまいます。
お手数おかけしました。ちょっと頑張ってみます。