あんまり使わないけれど、特定のケースでは必須のカスタマイズ例。
完了ページだけ共用する
フォーム自体はシングルなり固定ページに置いておき、完了ページだけ別ページにしたい時。
function my_mwform_after_send( $Data ){
if( $Data->get_form_key() === 'mw-wp-form-XXX' ){
wp_redirect( '/contact-result' );
exit;
}
}
add_action( 'mwform_after_send_mw-wp-form-XXX', 'my_mwform_after_send' );
MW WP Formを使っているサイトのメンテを引き継いだのですが、
「このページには直接アクセスできません。」のエラー。
調べてみると、URL設定で、「完了画面URL」だけ指定してあり、あとは空欄にしてありました。
通常は全部埋めるか、全部空欄にしないとこうなりますので、上記の処理が必要。
完了ページには、フォーム設置のショートコードは必要ないので、適当に「お問い合わせありがとうございます。」かなにかを書いておきます。
フォーム設置のショートコードがある状態で直接完了ページを開くと変な感じになります。
ページ遷移しないで投稿タイトルを引き継ぐ
こちらも、フォーム自体はシングルなり固定ページに置いておく場合。
遷移元の投稿タイトルを引き継ぐ例はたくさん例がありますが、遷移なしで引き継ぐ例はあまり見ませんね。
function my_mwform_value( $value, $name ){
if( $name === 'item_id' ){
$name_value = get_the_title();
return $name_value;
}
return $value;
}
add_filter( 'mwform_value_mw-wp-form-XXX', 'my_mwform_value', 10, 2 );
「mwform_text name=”item_id”」の項目に、投稿タイトルを使うよ、という内容です。
「URL引数を有効にする」にチェックが入っていても動作しますが、
「mwform_text name=”item_id” value=”{post_title}”」のように、遷移用の処理が残っていると空欄になりますので注意。