title: How to make a contact form in wordpress call another php file
body: <p>I am trying to add a small contact form in the sidebar of my WordPress site.  I transferred my code from it's original html file into the appropriate WordPress php files.  The only thing that isn't working is the contact form.  </p>
  
  <p>When I click on the send button it goes to the mailer.php file in the URL bar instead of sending the message. </p>
  
  <p>This is the form:</p>
  
  <pre><code>&lt;div class="w3-container w3-padding w3-white"&gt;
  &lt;h4 class="w3-left"&gt;Contact&lt;/h4&gt;
  &lt;br&gt; &lt;br&gt;
  &lt;div id="form-messages"&gt;&amp;nbsp;&lt;/div&gt;
  &lt;form id="ajax-contact" class="w3-container w3-margin" action="mailer.php" method="post"&gt;
  &lt;div class="w3-row w3-section field"&gt;&lt;label for="name"&gt;Name:&lt;/label&gt; &lt;input id="name" class="w3-input w3-border" name="name" required="" type="text"&gt;&lt;/div&gt;
  &lt;div class="w3-row w3-section field"&gt;&lt;label for="email"&gt;Email:&lt;/label&gt; &lt;input id="email" class="w3-input w3-border" name="email" required="" type="email"&gt;&lt;/div&gt;
  &lt;div class="w3-row w3-section field"&gt;&lt;label for="message"&gt;Message:&lt;/label&gt; &lt;textarea id="message" class="w3-input w3-border" name="message" required=""&gt;&lt;/textarea&gt;&lt;/div&gt;
  &lt;div class="field"&gt;&lt;button class="w3-button w3-blue w3-ripple w3-section" type="submit"&gt;Send&lt;/button&gt;&lt;/div&gt;
  &lt;/form&gt;&lt;/div&gt; 
  </code></pre>
  
  <p>This is the mailer.php file:</p>
  
  <pre><code>&lt;?php
      // My modifications to mailer script from:
      // http://blog.teamtreehouse.com/create-ajax-contact-form
      // Added input sanitizing to prevent injection
  
      // Only process POST reqeusts.
      if ($_SERVER["REQUEST_METHOD"] == "POST") {
          // Get the form fields and remove whitespace.
          $name = strip_tags(trim($_POST["name"]));
                  $name = str_replace(array("\r","\n"),array(" "," "),$name);
          $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
          $message = trim($_POST["message"]);
  
          // Check that data was sent to the mailer.
          if ( empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) {
              // Set a 400 (bad request) response code and exit.
              http_response_code(400);
              echo "Oops! There was a problem with your submission. Please complete the form and try again.";
              exit;
          }
  
          // Set the recipient email address.
          // FIXME: Update this to your desired email address.
          $recipient = "jerry@jerrylcrews.com";
  
          // Set the email subject.
          $subject = "New contact from $name";
  
          // Build the email content.
          $email_content = "Name: $name\n";
          $email_content .= "Email: $email\n\n";
          $email_content .= "Message:\n$message\n";
  
          // Build the email headers.
          $email_headers = "From: $name &lt;$email&gt;";
  
          // Send the email.
          if (mail($recipient, $subject, $email_content, $email_headers)) {
              // Set a 200 (okay) response code.
              http_response_code(200);
              echo "Thank You! Your message has been sent.";
          } else {
              // Set a 500 (internal server error) response code.
              http_response_code(500);
              echo "Oops! Something went wrong and we couldn't send your message.";
          }
  
      } else {
          // Not a POST request, set a 403 (forbidden) response code.
          http_response_code(403);
          echo "There was a problem with your submission, please try again.";
      }
  </code></pre>