How to redirect to a thankyou page after contact form submission - Wordpress premium theme contact us php template

10,897

What would you like to achieve exactly? After the confirmation email is sent you want to redirect the user to a complete different page? You can do that in PHP and it will be as simple as replacing the line:

$emailSent = true;

with something like this:

header('Location: http://www.mysite.com/thankyoupage.htm');
exit();

Or you could use javascript/jquery to redirect the user after a couple of seconds after showing the "email was successfully sent" message.

Share:
10,897

Related videos on Youtube

user2104659
Author by

user2104659

Updated on September 20, 2022

Comments

  • user2104659
    user2104659 over 1 year

    I am working on a Wordpress Theme and I am trying to get the custom contact form that came with the theme to redirect to a thank you page after successful completion so I can use adwords conversion tracking.

    Although I've looked through Stackflows previous questions/answers on this topic, I'm struggling to find the right code / solution to my problem (To be frank I have very little knowledge of code). I would be very greatful for any help with this! Here's the code...

    <?php
    /*
    Template Name: Contact Form
    */
    ?>
    
    <?php 
    global $woo_options;
    $nameError = '';
    $emailError = '';
    $commentError = '';
    
    //If the form is submitted
    if(isset($_POST['submitted'])) {
    
    //Check to see if the honeypot captcha field was filled in
    if(trim($_POST['checking']) !== '') {
        $captchaError = true;
    } else {
    
        //Check to make sure that the name field is not empty
        if(trim($_POST['contactName']) === '') {
            $nameError =  __( 'You forgot to enter your name.', 'woothemes' ); 
            $hasError = true;
        } else {
            $name = trim($_POST['contactName']);
        }
    
        //Check to make sure sure that a valid email address is submitted
        if(trim($_POST['email']) === '')  {
            $emailError = __( 'You forgot to enter your email address.', 'woothemes' );
            $hasError = true;
        } else if (!eregi( "^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
            $emailError = __( 'You entered an invalid email address.', 'woothemes' );
            $hasError = true;
        } else {
            $email = trim($_POST['email']);
        }
    
        //Check to make sure comments were entered  
        if(trim($_POST['comments']) === '') {
            $commentError = __( 'You forgot to enter your comments.', 'woothemes' );
            $hasError = true;
        } else {
            if(function_exists( 'stripslashes')) {
                $comments = stripslashes(trim($_POST['comments']));
            } else {
                $comments = trim($_POST['comments']);
            }
        }
    
        //If there is no error, send the email
        if(!isset($hasError)) {
    
            $emailTo = get_option( 'woo_contactform_email' ); 
            $subject = __( 'Contact Form Submission from ', 'woothemes' ).$name;
            $sendCopy = trim($_POST['sendCopy']);
            $body = __( "Name: $name \n\nEmail: $email \n\nComments: $comments", 'woothemes' );
            $headers = __( 'From: ', 'woothemes') . "$name <$email>" . "\r\n" . __( 'Reply-To: ', 'woothemes' ) . $email;
    
            //Modified 2010-04-29 (fox)
            wp_mail($emailTo, $subject, $body, $headers);
    
            if($sendCopy == true) {
                $subject = __( 'You emailed ', 'woothemes' ).get_bloginfo( 'title' );
                $headers = __( 'From: ', 'woothemes' ) . "$name <$emailTo>";
                wp_mail($email, $subject, $body, $headers);
            }
    
            $emailSent = true;
    
        }
    }
    } ?>
    
    
    <?php get_header(); ?>
    
    <script type="text/javascript">
    <!--//--><![CDATA[//><!--
    jQuery(document).ready(function() {
    jQuery( 'form#contactForm').submit(function() {
        jQuery( 'form#contactForm .error').remove();
        var hasError = false;
        jQuery( '.requiredField').each(function() {
            if(jQuery.trim(jQuery(this).val()) == '') {
                var labelText = jQuery(this).prev( 'label').text();
                jQuery(this).parent().append( '<span class="error"><?php _e( 'You forgot to enter your', 'woothemes' ); ?> '+labelText+'.</span>' );
                jQuery(this).addClass( 'inputError' );
                hasError = true;
            } else if(jQuery(this).hasClass( 'email')) {
                var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                if(!emailReg.test(jQuery.trim(jQuery(this).val()))) {
                    var labelText = jQuery(this).prev( 'label').text();
                    jQuery(this).parent().append( '<span class="error"><?php _e( 'You entered an invalid', 'woothemes' ); ?> '+labelText+'.</span>' );
                    jQuery(this).addClass( 'inputError' );
                    hasError = true;
                }
            }
        });
        if(!hasError) {
            var formInput = jQuery(this).serialize();
            jQuery.post(jQuery(this).attr( 'action'),formInput, function(data){
                jQuery( 'form#contactForm').slideUp( "fast", function() {                  
                    jQuery(this).before( '<p class="tick"><?php _e( '<strong>Thanks!</strong> Your email was successfully sent.', 'woothemes' ); ?></p>' );
                });
            });
        }
    
        return false;
    
    });
    });
    //-->!]]>
    </script>
    
    <div id="content" class="col-full">
        <div id="main" class="col-left">
    
        <?php if ( isset($woo_options[ 'woo_breadcrumbs_show' ]) && $woo_options[ 'woo_breadcrumbs_show' ] == 'true' ) { ?>
            <div id="breadcrumbs">
                <?php woo_breadcrumbs(); ?>
            </div><!--/#breadcrumbs -->
        <?php } ?>  
    
            <div id="contact-page" class="post">
    
            <?php if(isset($emailSent) && $emailSent == true) { ?>
    
                <p class="info"><?php _e( 'Your email was successfully sent.', 'woothemes' ); ?></p>
    
            <?php } else { ?>
    
                <?php if (have_posts()) : ?>
    
                <?php while (have_posts()) : the_post(); ?>
    
                        <h1 class="title"><?php the_title(); ?></h1>
    
                        <div class="entry">
                            <?php the_content(); ?>
                        </div>
    
                    <?php $geocoords = $woo_options['woo_contactform_map_coords']; ?>
                    <?php if ($geocoords != '') { ?>
                    <?php woo_maps_contact_output("geocoords=$geocoords"); ?>
                    <?php echo do_shortcode( '[hr]' ); ?>
                    <?php } ?>
    
                    <?php if(isset($hasError) || isset($captchaError) ) { ?>
                        <p class="alert"><?php _e( 'There was an error submitting the form.', 'woothemes' ); ?></p>
                    <?php } ?>
    
                    <?php if ( get_option( 'woo_contactform_email') == '' ) { ?>
                        <?php echo do_shortcode( '[box type="alert"]'.__( 'E-mail has not been setup properly. Please add your contact e-mail!', 'woothemes' ).'[/box]' );  ?>
                    <?php } ?>
    
    
                    <form action="<?php the_permalink(); ?>" id="contactForm" method="post">
    
                        <ol class="forms">
                            <li><label for="contactName"><?php _e( 'Name', 'woothemes' ); ?></label>
                                <input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" class="txt requiredField" />
                                <?php if($nameError != '') { ?>
                                    <span class="error"><?php echo $nameError;?></span> 
                                <?php } ?>
                            </li>
    
                            <li><label for="email"><?php _e( 'Email', 'woothemes' ); ?></label>
                                <input type="text" name="email" id="email" value="<?php if(isset($_POST['email']))  echo $_POST['email'];?>" class="txt requiredField email" />
                                <?php if($emailError != '') { ?>
                                    <span class="error"><?php echo $emailError;?></span>
                                <?php } ?>
                            </li>
    
                            <li class="textarea"><label for="commentsText"><?php _e( 'Message', 'woothemes' ); ?></label>
                                <textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"><?php if(isset($_POST['comments'])) { if(function_exists( 'stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
                                <?php if($commentError != '') { ?>
                                    <span class="error"><?php echo $commentError;?></span> 
                                <?php } ?>
                            </li>
                            <li class="inline"><input type="checkbox" name="sendCopy" id="sendCopy" value="true"<?php if(isset($_POST['sendCopy']) && $_POST['sendCopy'] == true) echo ' checked="checked"'; ?> /><label for="sendCopy"><?php _e( 'Send a copy of this email to yourself', 'woothemes' ); ?></label></li>
                            <li class="screenReader"><label for="checking" class="screenReader"><?php _e( 'If you want to submit this form, do not enter anything in this field', 'woothemes' ) ?></label><input type="text" name="checking" id="checking" class="screenReader" value="<?php if(isset($_POST['checking']))  echo $_POST['checking'];?>" /></li>
                            <li class="buttons"><input type="hidden" name="submitted" id="submitted" value="true" /><input class="submit button" type="submit" value="<?php esc_attr_e( 'Submit', 'woothemes' ); ?>" /></li>
                        </ol>
                    </form>
                    <?php endwhile; ?>
                <?php endif; ?>
            <?php } ?>
    
            </div><!-- /#contact-page -->                
        </div><!-- /#main -->
    
        <?php get_sidebar(); ?>
    
    </div><!-- /#content -->
    
    <?php get_footer(); ?>
    

    Apologies for posting all the code (related to not having a clue) but I'm not sure which bits are relevant/requiring changing. Many thanks in advance for any help!

  • user2104659
    user2104659 about 11 years
    I'm trying to redirect a customer from contact us page (once completed) to a thank-you page in order to set-up conversion tracking in google adwords. Swapping out the code above as you suggested didnt seem to work.
  • Eggplant
    Eggplant about 11 years
    Could you elaborate "didn't seem to work", please? Have you created a thankyou.htm page and insert the adwords conversion tracking snippet in there? Does the user get redirected to the thankyou.htm page at all?
  • user2104659
    user2104659 about 11 years
    Sorry if it's not clear!, I am a total noob at this! Yes I have created a thankyou page and inserted the tracking snippet. Currently, user does not get redirected to that page once their contact details have been sent (this is what I'm trying to achieve). Currently, a customer will get a Thankyou outputted on the contact page once details have been sent.