Bantuan » Komunitas WordPress Indonesia » Komunitas Pengembang & Desainer » Membuat contact form tanpa plugin

  • mau nanya, saya mau buat form kontak tapi tidak pakai plugin. alasannya karna supaya sama tampilannya dengan form kontak di theme html-nya.

    saya cukup kesulitan dalam hal pengelompokan variable untuk error-nya.

    ini kode saya,

    <?php
    /*
    	Template Name: Contact
    */
    ?>
    
    <?php
    if(isset($_POST['submitted'])) {
    
            if(trim($_POST['contactName']) === '') {
                    $nameError = 'Please enter your name.';
                    $hasError = true;
            } else {
                    $name = trim($_POST['contactName']);
            }
    
            if(trim($_POST['contactEmail']) === '') {
                    $emailError = 'Please check your email.';
                    $hasError = true;
            } else if (!eregi("/^<a href="http://codex.wordpress.org/:alnum:">:alnum:</a>[a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i", trim($_POST['contactEmail']))) {
                    $emailError = 'Please check your email.';
                    $hasError = true;
            } else {
                    $email = trim($_POST['contactEmail']);
            }
    
            if(trim($_POST['contactMessage']) === '') {
                    $messageError = 'Please check your message.';
                    $hasError = true;
            } else {
                    if(function_exists('stripslashes')) {
                            $message = stripslashes(trim($_POST['contactMessage']));
                    } else {
                            $message = trim($_POST['contactMessage']);
                    }
            }
    
        if(!isset($hasError)) {
            $emailTo = get_option('tz_email');
            if (!isset($emailTo) || ($emailTo == '') ) {
                    $emailTo = get_option('admin_email');
            }
    
            $subject = '[PHP Snippets] From '.$name;
            $body = "Name: $name \n\nEmail: $email \n\nMessage: $message";
            $headers = 'From: '.$name.' <'.$emailTo.'>' . "\r\n" . 'Reply_To: ' .$email;
    
            wp_mail($emailTo, $subject, $body, $headers);
            $emailSent = true;
    
         }
    
    } ?>
    
    <?php get_header(); ?>
    <div id="subheader">
        		<div class="container">
        	  	<div class="row">
              		<div class="span12">
                		<h1><?php print the_title(); ?></h1>
                    	<span><?php print the_excerpt(); ?></span>
               	 	</div>
             	</div>
        		</div>
    	</div>
    
    <?php get_sidebar('contact'); ?>
    
    <div id="content">
        	<div class="container">
        	<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
            	<div class="row">
                	<div class="span8">
    
                  		<?php the_content(); ?>
                   <div class="contact_form_holder">
                  	<form id="contact" class="row" name="form1" method="post" action="<?php the_permalink(); ?>">
    
           			<div class="span4">
                   		<label>Name</label>
               		<input type="text" class="full" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName']; ?>"/>
               		<?php if($nameError != '') { ?>
               		      <span class="error"><?=$nameError; ?></span>
               		<?php } ?>
               		</div>
    
                    	<div class="span4">
                    	<label>Email <span class="req">*</span></label>
               		<input type="text" class="full" name="contactEmail" id="contactEmail" value="<?php if(isset($_POST['contactEmail'])) echo $_POST['contactEmail']; ?>"/>
               		<?php if($emailError != '') { ?>
                    	<div id="error_email" class="error"><?=$emailError;?></div>
                    <?php } ?>
    			</div>
    
                  <div class="span8">
                    <label>Message <span class="req">*</span></label>
                    <textarea cols="10" rows="10" name="contactMessage" id="contactMessage" class="full"><?php if(isset($_POST['contactMessage'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['contactMessage']); } else { echo $_POST['contactMessage']; } } ?></textarea>
                    <?php if($messageError != '') { ?>
                    <div id="error_message" class="error"><?=$messageError; ?></div>
                    <?php } ?>
    
                    <?php if(isset($emailSent) && $emailSent == true) { ?>
                	    <div id="mail_success" class="success"> Thank you. Your message has been sent.</div>
                	<?php } else { ?>
    
                  	<?php if(isset($hasError) || isset($captchaError)) { ?>
                  		<div id="mail_failed" class="error">Error, email not sent</div>
                  	<?php } ?>
    
    		      <p id="btnsubmit">
    		      <input type="hidden" name="submitted" id="submitted" value="true" />
    		      <input type="submit" id="send" value="Send Now" class="btn btn-large"/>
    		      </p>     
    
                  </div>
    
                        <?php } ?>
                  </form>
    
                </div>
    
                  	</div>
              <?php endwhile; endif; ?>   
    
                    <?php get_sidebar('contactpage'); ?>
    
                 </div>
             </div>
        </div>
    
     <?php get_footer(); ?>

    saat saya setting TRUE wp_debug di file wp-config.php , ada ” Notice: Undefined variable: nameError in /var/www/grazie/wp-content/themes/canohost/template-contact.php on line 85 “

    ” Notice: Undefined variable: emailError in /var/www/grazie/wp-content/themes/canohost/template-contact.php on line 93 “

    ” Notice: Undefined variable: messageError in /var/www/grazie/wp-content/themes/canohost/template-contact.php on line 101 “

    mohon bantuannya, atau ada yang punya link dalam pembuatan form kontak di wordpress. terima kasih sebelumnya 🙂

Melihat 2 balasan - 1 sampai 2 (dari total 2)
  • definisikan dulu variabelnya di paling atas

    $nameError = '';
    $emailError = '';
    $messageError = '';

    Pencetus Utas afrila gunadi

    (@afrila-gunadi)

    oke, hilang mas error-nya.

    tapi masalah baru datang, notif error tidak muncul sebagai mana mestinya.

Melihat 2 balasan - 1 sampai 2 (dari total 2)
  • Topik ‘Membuat contact form tanpa plugin’ tertutup untuk balasan baru.