WordPress Eklentisiz İletişim Formu

  • Anasayfa
  • WordPress Eklentisiz İletişim Formu

WordPress’te iletişim formu yapmak için piyasada ücretli ücretsiz birçok eklenti bulabiliyoruz. Ama eklenti kullanmak istemeyen ve sitenizdeki eklenti sayısını düşürmek istiyorsanız aşağıdaki basit kodlar ile iletişim formunuzu oluşturabilirsiniz.

wordpress-eklentisiz-iletisim-formu

Öncelikle temanızın page.php dosyasını kopyalayın ve kopyaladığınız yeni dosyanın adını page-iletisim.php olarak kaydedin. page-iletisim.php dosyasının birinci satırına aşağıdaki kodu ekleyiniz.

<?php
/*
Template Name: İletişim Sayfası
*/
?>

<?php get_header(); ?> kodunun altına aşağıdaki kodu ekleyiniz. İletişim formundan gelen maillerin hangi e-postaya gelmesini istiyorsanız [email protected] yazan yeri kendinize göre düzenleyiniz.

<?php
$nameError = '';
$emailError = '';
$commentError = '';
if( isset( $_POST['submitted'] ) ) {

    //Captcha Kontrol
    if( trim( $_POST['checking'] ) !== '' ) {
        $captchaError = true;
    } else {

        //Ad soyad kontrolu
        if( trim( $_POST['contactName'] ) === '' ) {
            $nameError =  __( 'Lütfen adınızı soyadınızı yazınız.', 'MB' );
            $hasError = true;
        } else {
            $name = trim( $_POST['contactName'] );
        }

        //E-posta mail kontrolu
        if( trim( $_POST['email'] ) === '' )  {
            $emailError = __( 'E-Posta adresinizi giriniz.', 'MB' );
            $hasError = true;
        } else if ( ! eregi( "^[A-Z0-9._%-][email protected][A-Z0-9._%-]+.[A-Z]{2,4}$", trim($_POST['email'] ) ) ) {
            $emailError = __( 'Geçersiz E-Posta Adresi.', 'MB' );
            $hasError = true;
        } else {
            $email = trim( $_POST['email'] );
        }

        //Yorum kontrol kodları
        if( trim( $_POST['comments'] ) === '' ) {
            $commentError = __( 'Mesaj kısmını boş bırakmayınız.', 'MB' );
            $hasError = true;
        } else {
            $comments = stripslashes( trim( $_POST['comments'] ) );
        }

        //E-posta ayarları
        if( ! isset( $hasError ) ) {

            $emailTo = '[email protected]';// Mail adresini buradan değiştiriniz.
            $subject = __('MB','den İletişim Formu Aldınız ' ).$name;
            $sendCopy = trim( $_POST['sendCopy'] );
            $body = __( "Name: $name nnEmail: $email nnComments: $comments", 'MB' );
            $headers = __( 'From: ', 'MB') . "$name <$email>" . "rn" . __( 'Reply-To: ', 'MB' ) . $email;

            wp_mail( $emailTo, $subject, $body, $headers );

        }
    }
}
?>
<script type="text/javascript">
    <!--//--><![CDATA[//><!--
        jQuery(document).ready(function() {
        jQuery( 'form#contactForm').submit(function() {
            jQuery( 'form#contactForm .error').remove();
            var hasError = false;
            jQuery( '.requiredField').each(function() {
                if(jQuery.trim(jQuery(this).val()) == '') {
                    var labelText = jQuery(this).prev( 'label').text();
                    jQuery(this).parent().append( '<span class="error"><?php _e( 'Bu alanı boş bırakamazsınız', 'MB' ); ?> '+labelText+'</span><br>' );
                    jQuery(this).addClass( 'inputError' );
                    hasError = true;
                } else if(jQuery(this).hasClass( 'email')) {
                    var emailReg = /^([w-.][email protected]([w-]+.)+[w-]{2,4})?$/;
                    if(!emailReg.test(jQuery.trim(jQuery(this).val()))) {
                        var labelText = jQuery(this).prev( 'label').text();
                        jQuery(this).parent().append( '<span class="error"><?php _e( 'Geçersiz', 'MB' ); ?> '+labelText+'</span><br>' );
                        jQuery(this).addClass( 'inputError' );
                        hasError = true;
                    }
                }
            });
            if(!hasError) {
                var formInput = jQuery(this).serialize();
                jQuery.post(jQuery(this).attr( 'action'),formInput, function(data){
                    jQuery( 'form#contactForm').slideUp( "fast", function() {
                        jQuery(this).before( '<p class="tick"><?php _e( '<strong>Teşekkürler</strong> Mesajınız tarafımıza ulaşmıştır.', 'MB' ); ?></p>' );
                    });
                });
            }

            return false;

        });
    });
    //-->!]]>
</script>

Aşağıdaki kodu da  page-iletisim.php <?php endwhile; // end of the loop. ?> kodunun altına ekleyiniz.

<form action="<?php the_permalink(); ?>" id="contactForm" method="post">

                            <label for="contactName"><?php _e( 'Ad Soyad', 'MB' ); ?></label>

                            <input type="text" name="contactName" id="contactName"  style="width:100% " value="<?php if( isset( $_POST['contactName'] ) ) { echo esc_attr( $_POST['contactName'] ); } ?>" class="txt requiredField" />
                            <?php if($nameError != '') { ?>
                            <span class="error"><?php echo $nameError;?></span>
                            <?php } ?><br><br>

                            <label for="email"><?php _e( 'E-Posta', 'MB' ); ?></label>

                            <input type="text" name="email" id="email" style="width:100% " value="<?php if( isset( $_POST['email'] ) ) { echo esc_attr( $_POST['email'] ); } ?>" class="txt requiredField email" />
                            <?php if($emailError != '') { ?>
                            <span class="error"><?php echo $emailError;?></span>
                            <?php } ?><br><br>

                            <label for="comments"><?php _e( 'Mesaj', 'MB' ); ?></label>

                            <textarea name="comments" id="commentsText" style="width: 100%; height: 234px;" class="requiredField"><?php if( isset( $_POST['comments'] ) ) { echo esc_textarea( $_POST['comments'] ); } ?></textarea>
                            <?php if( $commentError != '' ) { ?>
                            <span class="error"><?php echo $commentError; ?></span>
                            <?php } ?>

                            <br><br>


                            <li class="screenReader" style="display:none"><label for="checking" class="screenReader">If you want to submit this form, do not enter anything in this field</label><input type="text" name="checking" id="checking" class="screenReader" value="<?php if( isset( $_POST['checking'] ) ) { echo esc_attr( $_POST['checking'] ); } ?>" /></li>
                            <input type="hidden" name="submitted" id="submitted" value="true" />
                            <div class="block block-button"><input class="button" type="submit" value="Gönder" /></div>

                        </form>

page-iletismi.php dosyası hazır şimdi sayfalardan yeni sayfa ekle deyip sayfa adını iletişim yapınız sağ taraftan da sayfa şablonu kısmından da İletişim Sayfası seçip sayfanızı oluşturunuz. Form gönderimlerin de sorun yaşamamak için burada anlattığım smtp ayarlarını yaparsanız daha sağlıklı çalışacaktır.

 

Şimdi Teklif Alın
Şimdi Teklif Alın

Projeniz ile ilgili veya web sitenizde takıldığınız alanlar ile ilgili şimdi teklif alın

WordPress ve WooCommerce Eklentilerim
Eklentilerim

WordPress ve WooCommerce İçin Hazırlamış olduğum Eklentiler

Şimdi Teklif Alın

Web tasarım, yazılım, mobil uygulama veya masa üstü program ihtiyaçlarınız için bana proje detaylarınızı gönderin. 24 saat içerisinde size detaylı teklif göndereyim.