Skip to content

Instantly share code, notes, and snippets.

@topmask
Forked from tmblog/page-contact-form.php
Created October 19, 2021 08:03
Show Gist options
  • Save topmask/665e41bfc37ff46b761a699eed4392ac to your computer and use it in GitHub Desktop.
Save topmask/665e41bfc37ff46b761a699eed4392ac to your computer and use it in GitHub Desktop.
Simple WordPress Contact Form without Plugin - Bootstrap ready.
<?php /* Template Name: Contact Page */
$response = "";
//function to generate response
function my_contact_form_generate_response($type, $message){
global $response;
if($type == "success") $response = "<div class='alert alert-success'>{$message}</div>";
else $response = "<div class='alert alert-danger'>{$message}</div>";
}
//response messages
$not_human = "Please work out the math";
$missing_content = "Please supply all required fields.";
$email_invalid = "Email Address is invalid.";
$message_unsent = "Message was not sent. Try Again.";
$message_sent = "Thank you! Your message has been sent.";
//user posted variables
$name = $_POST['message_name'];
$email = $_POST['message_email'];
$message = $_POST['message_text'];
$human = $_POST['message_human'];
//php mailer variables
$to = get_option('admin_email');
$subject = "Message from website.com";
$headers = 'From: '. $email . "\r\n" .
'Reply-To: ' . $email . "\r\n";
if(!$human == 0){
if($human != 2) my_contact_form_generate_response("error", $not_human); //not human!
else {
//validate email
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
my_contact_form_generate_response("error", $email_invalid);
else //email is valid
{
//validate presence of name and message
if(empty($name) || empty($message)){
my_contact_form_generate_response("error", $missing_content);
}
else //ready to go!
{
$sent = wp_mail($to, $subject, strip_tags($message), $headers);
if($sent) my_contact_form_generate_response("success", $message_sent); //message sent!
else my_contact_form_generate_response("error", $message_unsent); //message wasn't sent
}
}
}
}
else if ($_POST['submitted']) my_contact_form_generate_response("error", $missing_content);
get_header(); ?>
<div class="breadcrumbs">
<div class="container">
<h1 class="pull-left"><a href="<?php echo get_page_link(); ?>"><?php the_title(); ?></a></h1>
</div>
</div>
<section class="content">
<div class="container">
<div class="row">
<div class="col-xs-12 col-md-9">
<div class="col-sm-12 col-md-12 col-xs-12">
<?php echo $response; ?>
<form action="<?php the_permalink(); ?>" method="post">
<div class="row">
<div class="form-group col-sm-12 col-md-6 col-xs-12">
<input class="form-control" type="text" name="message_name" value="<?php echo esc_attr($_POST['message_name']); ?>" placeholder="Name*">
</div>
</div>
<div class="row">
<div class="form-group col-sm-12 col-md-6 col-xs-12">
<input class="form-control" name="message_email" value="<?php echo esc_attr($_POST['message_email']); ?>" placeholder="Email*" type="email">
</div>
</div>
<div class="row">
<div class="form-group col-sm-12 col-md-8 col-xs-12">
<textarea class="form-control" placeholder="Message*" rows="6" name="message_text"><?php echo esc_textarea($_POST['message_text']); ?></textarea>
</div>
</div>
<div class="row">
<div class="form-group col-sm-12 col-md-2 col-xs-12">
<input class="form-control" name="message_human" type="text" placeholder="5-3=?">
</div>
</div>
<input type="hidden" name="submitted" value="1">
<div class="row">
<div class="form-group col-sm-12 col-md-6 col-xs-12">
<button type="submit" class="btn btn-lg rounded pi-btn-red">Send</button>
</div>
</div>
</form>
</div><!-- end col-sm-12 -->
</div><!-- end col-sm-9 -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment