制作部 カワサキです。
滅多にないと思いますが、
ContactForm7でFormのActionを書き換える必要があった時に、ちょいハマりしたので書いておきます。
Actionを書き換えても、ContactFormの制御が強くて、思い通りに動いてくれません。
ContactFormのJSとCSSの読み込みを停止すれば、Actionに設定したURLに遷移してくれます。
そこで、以下をfunction.phpに追記します。
//***************************************************************************
//ContactForm7 Actionを変更する
//***************************************************************************
//Contact Form 7のjavascriptを無効にする
add_action( ‘wp_print_scripts’, ‘my_deregister_javascript’, 100 );
function my_deregister_javascript() {
if ( is_page(‘slug’) ) {
wp_deregister_script( ‘contact-form-7’ );
}
}
//Contact Form 7のCSSを無効にする
add_action( ‘wp_print_styles’, ‘my_deregister_styles’, 100 );
function my_deregister_styles() {
if ( is_page(‘【slug】’) ) {
wp_deregister_style( ‘contact-form-7’ );
}
}
//Contact Form 7のActionを変更する
add_filter( ‘wpcf7_form_action_url’, ‘wpcf7_custom_form_action_url’ );
function wpcf7_custom_form_action_url($url){
global $post;
switch ( $post->post_name ){
case ‘【slug】’:
return ‘変更するActionURL’;
break;
default:
return $url;
break;
}
}
これで、思った通りの動作してくれるんですが、
当然、Validationチェックが効きません。
Submit時にValidationチェックを忘れずに・・・・