ساخت بدون افزونه صفحه تماس با ما وردپرس

اغلب سایت های وردپرس از افزونه های تماس با ما برای سایت هایشان استفاده میکنند . اما امروز قصد داریم بصورت اختصاصی و بدون افزونه صفحه تماس ایجاد نماییم.
برای ساخت تماس با ما وردپرس ابتدا در پوشه قالب خود یک فایل php با نام دلخواه خود ایجاد نماییم . ما فایلی با نام contact-page.php ایجاد میکنیم. سپس کد زیر را درونش جایگذاری نمایید
<?php /* Template Name: نام قالب شما */ ?>
سپس کد زیر که قالب بندی صفحه شماست را درون فایل بالا جایگذاری میکنیم
<?php get_header(); ?>
<div id="container">
<div id="content">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h1><?php the_title(); ?></h1>
<div>
<?php if(isset($emailSent) && $emailSent == true) { ?>
<div>
<p>با تشکر، ایمیل شما با موفقیت ارسال شد</p>
</div>
<?php } else { ?>
<?php the_content(); ?>
<?php if(isset($hasError) || isset($captchaError)) { ?>
<p>متاسفم، خطایی رخ داده است لطفا مجددا سعی نمایید<p>
<?php } ?>
<form action="<?php the_permalink(); ?>" id="contactForm" method="post">
<ul>
<li>
<label for="contactName">نام شما:</label>
<input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" />
<?php if($nameError != '') { ?>
<span><?=$nameError;?></span>
<?php } ?>
</li>
<li>
<label for="email">ایمیل شما:</label>
<input type="text" name="email" id="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" />
<?php if($emailError != '') { ?>
<span><?=$emailError;?></span>
<?php } ?>
</li>
<li><label for="commentsText">پیغام:</label>
<textarea name="comments" id="commentsText" rows="20" cols="30"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
<?php if($commentError != '') { ?>
<span><?=$commentError;?></span>
<?php } ?>
</li>
<li>
<input type="submit" value="ارسال ایمیل"></input>
</li>
</ul>
<input type="hidden" name="submitted" id="submitted" value="ارسال ایمیل" />
</form>
<?php } ?>
</div><!-- .entry-content -->
</div><!-- .post -->
<?php endwhile; endif; ?>
</div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
اکنون باید کد دکمه”ارسال” یا submit را جایگذاری نماییم. برای اینکار کافیست کد زیر را قبل از get_header قرار دهید
<?php
/*فرم تماس با ما
*/
?>
<?php
if(isset($_POST['submitted'])) {
if(trim($_POST['contactName']) === '') {
$nameError = 'لطفا نام خود را وارد نمایید';
$hasError = true;
} else {
$name = trim($_POST['contactName']);
}
if(trim($_POST['email']) === '') {
$emailError = 'لطفا آدرس ایمیل خود را وارد نمایید.';
$hasError = true;
} else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['email']))) {
$emailError = 'آدرس ایمیل وارد شده صحیح نمی باشد';
$hasError = true;
} else {
$email = trim($_POST['email']);
}
if(trim($_POST['comments']) === '') {
$commentError = 'لطفا پیغام خود را وارد نمایید';
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['comments']));
} else {
$comments = trim($_POST['comments']);
}
}
if(!isset($hasError)) {
$emailTo = get_option('tz_email');
if (!isset($emailTo) || ($emailTo == '') ){
$emailTo = get_option('admin_email');
}
$subject = 'یک پیغام از طرف '.$name;
$body = "نام فرستنده: $name \n\nایمیل نویسنده: $email \n\nپیغام: $comments";
$headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
wp_mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}
} ?>












