Eklentisiz WordPress siteler için iletişim formu

Pek çok premium temalarda görüyordum bu tekniği. Biraz araştırdım ve yapılışının gayet basit olduğunu farkettim. Siteleriniz için eklenti kullanmadan iletişim formu hazırlayabilirsiniz. Biliyorsunuz ki ne kadar çok eklenti o kadar çok işlemciyi zorlayan bir web sitesi demek. Özellikle bu WordPress veya Joomla gibi gelişmiş içerik yönetim sistemlerinde ise.

İletişim formunu yapmak gayet basit. Aşağıdaki php kodlarını contact.php şeklinde kaydedin.

<?php
/*
Template Name: Contact
*/
$cp_question = "5+1 = ?";
$cp_answer = "6";
?>
<?php get_header(); ?>
<div id="content">

     <?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

    <?php
     //validate email adress
     function is_valid_email($email)
     {
        return (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$", $email));
     }
     function is_valid_user($answer)
     {
      global $cp_answer;
      if ($answer == $cp_answer) { return true; } else { return false;}
     }
     //clean up text
     function clean($text)
     {
      return stripslashes($text);
     }
     //encode special chars (in name and subject)
     function encodeMailHeader ($string, $charset = 'UTF-8')
     {
         return sprintf ('=?%s?B?%s?=', strtoupper ($charset),base64_encode ($string));
     }
     $cp_name    = (!empty($_POST['cp_name']))    ? $_POST['cp_name']    : "";
     $cp_email   = (!empty($_POST['cp_email']))   ? $_POST['cp_email']   : "";
     $cp_url     = (!empty($_POST['cp_url']))     ? $_POST['cp_url']     : "";
     $cp_ans     = (!empty($_POST['cp_ans']))     ? $_POST['cp_ans']     : "";
     $cp_message = (!empty($_POST['cp_message'])) ? $_POST['cp_message'] : "";
     $cp_message = clean($cp_message);
     $error_msg = "";
     $send = 0;
     if (!empty($_POST['submit'])) {
      $send = 1;
      if (empty($cp_name) || empty($cp_email) || empty($cp_message) || empty($cp_ans)) {
       $error_msg.= "<p style='color:#a00'><strong>Gerekli tüm alanları doldurun.</strong></p>\n";
       $send = 0;
      }
      if (!is_valid_email($cp_email)) {
       $error_msg.= "<p style='color:#a00'><strong>Yanlış Bir Mail Adresi Girdiniz.</strong></p>\n";
       $send = 0;
      }
      if (!is_valid_user($cp_ans)) {
       $error_msg.= "<p style='color:#a00'><strong>Yanlış Cevap.</strong></p>\n";
       $send = 0;
      }
     }
     if (!$send) { ?>

<p>İletişim için alttaki formu kullanın
* İşaretli alanları doldurmak zorunludur.</p><br />

<?php echo $error_msg;?>

<form method="post" action="<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>" id="contactform">

                       <strong>İsim</strong>*<br/>
         <input type="text" class="textbox" id="cp_name" name="cp_name" value="<?php echo $cp_name ;?>" /><br/><br/>
         <strong>Mail</strong>*<br/>
         <input type="text" class="textbox" id="cp_email" name="cp_email" value="<?php echo $cp_email ;?>" /><br/><br/>
         <strong>Websiteniz</strong> (Yoksa boş bırakın)<br/>
         <input type="text" class="textbox" id="cp_url" name="cp_url" value="<?php echo $cp_url ;?>" /><br/><br/>
         <strong><?php echo $cp_question; ?> </strong>*<br/>
         <input type="text" class="textbox" id="cp_ans" name="cp_ans" value="<?php echo $cp_ans ;?>" /><br/><br />
         <strong>Mesajınız</strong>*<br/>
         <textarea id="cp_message" name="cp_message" cols="100%" rows="10"><?php echo $cp_message ;?></textarea><br/>
         <input type="submit" id="submit" name="submit" value="Gönder" />

       </form>

     <?php
     } else {
      $displayName_array = explode(" ",$cp_name);
      $displayName = htmlentities(utf8_decode($displayName_array[0]));

      $header  = "MIME-Version: 1.0\n";
      $header .= "Content-Type: text/plain; charset=\"utf-8\"\n";
      $header .= "From:" . encodeMailHeader($cp_name) . "<" . $cp_email . ">\n";
      $email_subject = "[" . get_settings('blogname') . "] " . encodeMailHeader($cp_name);
      $email_text  = "From......: " . $cp_name . "\n" .
         "Email.....: " . $cp_email . "\n" .
         "Url.......: " . $cp_url . "\n\n" .
         $cp_message;
      if (@mail(get_settings('admin_email'), $email_subject, $email_text, $header)) {
       echo "<h2>Hey " . $displayName . ",</h2><p>Mesajınız Gönderildi.</p>";
      }
     }
     ?>
    <?php endwhile; ?>

  <?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Daha sonra FTP’ye bağlanarak temanızın dosyalarının bulunduğu klasöre atın bu dosyayı.

Dosyayıda gönderdikten sonra WordPress admin panelinize girerek yeni bir sayfa oluşturun. Sayfa oluştururken aşağıdaki resimde yer alan bölüme dikkat edin. Bu bölümden FTP’ye attığımız contact.php’yi seçiyoruz ve yayınla diyoruz.

iletisim

Unutmayın sayfayı oluştururken sadece başlık yazıyoruz. Kesinlikle içerik yazmıyoruz.

2006 yılından bu yana SEO üzerine araştırmalar ve çalışmalar yürütmektedir. Pek çok yerli ve yabancı projede SEO Manager ünvanı ile görev almıştır. Türkiye'deki birçok farklı sektördeki lider markaya SEO Danışmanlığı yapmaktadır. Türkiye çapında tanınan Color Ventures markası altında yer alan içerik odaklı projeleri bulunmaktadır. Kurduğu Vevona İnteraktif Ajansı ile şirketlere SEO, SEM, sosyal medya, mobil uygulama ve web tasarım hizmetleri vermektedir.

Son Yazılar
Yorum ( 3 )
  1. dejaay
    02 Mart 2011 at 16:31

    Merhaba,

    Sitemde bunu uyguladım ancak Türkçe karakter problemi yaşıyorum. Bunun nedeni nedir acaba?

  2. Emrah Öztürk
    03 Mart 2011 at 13:24

    utf-8 formatı ile kaydetmeyi deneyin.

  3. hale
    21 Temmuz 2011 at 13:26

    çok işime yaradı teşekkürler