联系表单wordpress无法正常工作

时间:2015-09-13 22:46:46

标签: php wordpress

我试图为WP制作的网站制作一个联系表格,我在主题中添加了以下代码,如果我以正确的方式做到这一点,我无法弄明白。所以我使用以下代码:

<?php
                $action=$_REQUEST['action'];
                if ($action=="")    /* display the contact form */
                    {
                    ?>
                        <form method="post" action="#">
                        <input type="hidden" name="action" value="submit">
                            <div class="row 50%">
                                <div class="6u 12u(mobile)"><input type="text" name="name" placeholder="Nume" /></div>
                                <div class="6u 12u(mobile)"><input type="email" name="email" placeholder="Email" /></div>
                            </div>
                            <div class="row 50%">
                                <div class="12u"><textarea name="message" placeholder="Mesajul tau catre noi..." rows="6"></textarea></div>
                            </div>
                            <div class="row">
                                <div class="12u">
                                    <ul class="actions">
                                        <li><input type="submit" value="Trimite Mesajul" /></li>
                                    </ul>
                                </div>
                            </div>
                        </form>

                          <?php
                    } 
                else                /* send the submitted data */
                    {
                    $name=$_REQUEST['name'];
                    $email=$_REQUEST['email'];
                    $message=$_REQUEST['message'];
                    if (($name=="")||($email=="")||($message==""))
                        {
                        echo "All fields are required, please fill <a href=\"\">the form</a> again.";
                        }
                    else{        
                        $from="From: $name<$email>\r\nReturn-path: $email";
                        $subject="Message sent using your contact form";
                        mail("myemail@gmail.com", $subject, $message, $from);
                        echo "Email sent!";
                        }
                    }  
                ?> 

你能说我失败了吗?为什么?

2 个答案:

答案 0 :(得分:1)

<?php
/*
Plugin Name: Simple Contact Form
Plugin URI: 
Description: This is a simple contact form
Author: Gabriel Alfaro
Version: 1.0
Author URI: 
License: GPLv2
*/

function custom_form_setup(){
  $nonce = wp_create_nonce( 'form-submit' );
  ?>

  <form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="custom_name" placeholder="Name">
    <input type="email" name="custom_email" placeholder="Email">
    <textarea name="custom_message" placeholder="Mesajul tau cartr noi...."></textarea>
    <input type="submit" value="Trimite Mesajui">
    <input type="hidden" name="custom_nounce" value="<?php echo $nonce; ?>">
    <input type="hidden" name="custom_form" value="true">
  </form>

  <?php
  if($_POST['custom_form']){
    if( ! wp_create_nonce( $nonce, 'form-submit' ) ){
      // This nounce is not valid
      die ( 'Security check' );
    }else{
      $name    = sanitize_text_field($_POST['custom_name']);
      $email   = sanitize_text_field($_POST['custom_email']);
      $message = sanitize_text_field($_POST['custom_message']);

      $to = "myemail@gmali.com";
      $subject = "Message sent using your contact form";
      $message = $message;
      $headers = "From: $name<$email>\r\nReturn-path: $email";
      mail($to, $subject, $message, $headers);

      echo "<br/ >Your message was successfully sent";
    }
  }

}
add_shortcode('custom-form', 'custom_form_setup');
?>

答案 1 :(得分:0)

如果您在消息中使用html,还应该使用以下值添加标头变量:

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
相关问题