ساخت بدون افزونه صفحه تماس با ما وردپرس
اغلب سایت های وردپرس از افزونه های تماس با ما برای سایت هایشان استفاده میکنند . اما امروز قصد داریم بصورت اختصاصی و بدون افزونه صفحه تماس ایجاد نماییم.
برای ساخت تماس با ما وردپرس ابتدا در پوشه قالب خود یک فایل 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; } } ?>