Created
May 11, 2014 11:41
-
-
Save iamkingsleyf/142f18526128f51e69b2 to your computer and use it in GitHub Desktop.
Contact on wordpress without plugin
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
Template Name: Contact Us | |
*/ | |
//response generation function | |
$response = ""; | |
//function to generate response | |
function my_contact_form_generate_response($type, $message){ | |
global $response; | |
if($type == "success") $response = "<div class='success'>{$message}</div>"; | |
else $response = "<div class='error'>{$message}</div>"; | |
} | |
//response messages | |
$not_human = "Human verification incorrect."; | |
$missing_content = "Please supply all information."; | |
$email_invalid = "Email Address Invalid."; | |
$message_unsent = "Message was not sent. Try Again."; | |
$message_sent = "Thanks! 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 = "Someone sent a message from ".get_bloginfo('name'); | |
$headers = 'From: '. $email . "rn" . | |
'Reply-To: ' . $email . "rn"; | |
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); | |
?> | |
<?php get_header(); ?> | |
<div id="primary" class="site-content"> | |
<div id="content" role="main"> | |
<?php while ( have_posts() ) : the_post(); ?> | |
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> | |
<header class="entry-header"> | |
<h1 class="entry-title"><?php the_title(); ?></h1> | |
</header> | |
<div class="entry-content"> | |
<?php the_content(); ?> | |
<style type="text/css"> | |
.error{ | |
padding: 5px 9px; | |
border: 1px solid red; | |
color: red; | |
border-radius: 3px; | |
} | |
.success{ | |
padding: 5px 9px; | |
border: 1px solid green; | |
color: green; | |
border-radius: 3px; | |
} | |
form span{ | |
color: red; | |
} | |
</style> | |
<div id="respond"> | |
<?php echo $response; ?> | |
<form action="<?php the_permalink(); ?>" method="post"> | |
<p><label for="name">Name: <span>*</span> <br><input type="text" name="message_name" value="<?php echo esc_attr($_POST['message_name']); ?>"></label></p> | |
<p><label for="message_email">Email: <span>*</span> <br><input type="text" name="message_email" value="<?php echo esc_attr($_POST['message_email']); ?>"></label></p> | |
<p><label for="message_text">Message: <span>*</span> <br><textarea type="text" name="message_text"><?php echo esc_textarea($_POST['message_text']); ?></textarea></label></p> | |
<p><label for="message_human">Human Verification: <span>*</span> <br><input type="text" style="width: 60px;" name="message_human"> + 3 = 5</label></p> | |
<input type="hidden" name="submitted" value="1"> | |
<p><input type="submit"></p> | |
</form> | |
</div> | |
</div><!-- .entry-content --> | |
</article><!-- #post --> | |
<?php endwhile; // end of the loop. ?> | |
</div><!-- #content --> | |
</div><!-- #primary --> | |
<?php get_sidebar(); ?> | |
<?php get_footer(); ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment