Redirect Contact Form 7 Based on an Answer
Sends visitors to a different page after submitting depending on what they chose in a drop-down or radio field, such as a sales or support thank-you page.
Opens WPIDE on
Code
$wpide_cf7_choice_field = 'menu-department'; // Name of the select or radio field.
// Option value => URL.
$wpide_cf7_choice_urls = array(
'Sales' => '/thank-you-sales/',
'Support' => '/thank-you-support/',
);
add_action( 'wp_footer', function () use ( $wpide_cf7_choice_field, $wpide_cf7_choice_urls ) {
if ( ! wp_script_is( 'contact-form-7', 'enqueued' ) ) {
return;
}
$urls = array_map( 'esc_url_raw', $wpide_cf7_choice_urls );
?>
<script>
document.addEventListener( 'wpcf7mailsent', function ( event ) {
var field = <?php echo wp_json_encode( $wpide_cf7_choice_field ); ?>;
var urls = <?php echo wp_json_encode( $urls ); ?>;
( event.detail.inputs || [] ).forEach( function ( input ) {
var name = input.name.replace( /\[\]$/, '' );
if ( name === field && urls[ input.value ] ) { window.location.href = urls[ input.value ]; }
} );
}, false );
</script>
<?php
} );
Notes
Set the field name and map each option value to a URL; options you do not list keep the normal on-page message.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.