Форма отправки возвращает белую страницу без содержимого - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь отправить форму, а затем отправить письмо с данными. У меня это работает с AJAX, но я хочу и обработчик PHP, когда не включен javascript. Пока это исполняемый код. (Отключил прослушиватель событий ajax для проверки). Но все, что я получаю, это абсолютно белый экран, абсолютно ничего. Когда я помещаю код form-handler-no js. php непосредственно в шаблон формы. php, все это выполняется без проблем. Я не понимаю, почему это не сработает при использовании атрибута действия ...

форма. php:

<div class="form-container">
        <form method="post" action="<?php echo get_template_directory_uri()?>/forms/form-handler-nojs.php">
          <input type="hidden" name="post_id" value="<?php echo get_the_ID(); ?>">
          <input type="hidden" name="nojs" value="nojs">

          <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response">

          <label class="custom-input">
            <input type="text" name="company_name" value="" aria-invalid="" autocomplete="off">
            <span class="label-text">Company name*</span>
          </label>

          <label class="custom-input">
            <input type="email" name="email" value="" aria-invalid="" autocomplete="off">
            <span class="label-text">E-mail address*</span>
          </label>

          <button class="btn animated light" type="submit" name="submit-order-form">
            <span class='bar top'></span>
            <span class='bar right'></span>
            <span class='bar bottom'></span>
            <span class='bar left'></span>

            <span class='inner-text'>
              Order now!
            </span>
          </button>
        </form>

        <span id="message-order-form" class="form-message"></span>
      </div>

На данный момент мой обработчик форм-нет js. php содержит:

<?php
  if ( isset($_POST["submit-order-form"]) ) {
    //Name and email from form
    $name = filter_var(
      ucfirst($_POST['company_name']),
      FILTER_SANITIZE_STRING
    );

    $email = filter_var(
      strtolower($_POST['email']),
      FILTER_SANITIZE_EMAIL
    );

    //Set default e-mail
    $to = filter_var(
      strtolower(get_field("general", $product_id)['default_email']),
      FILTER_SANITIZE_EMAIL
    );

    //Set mail parameters
    $from = "mike@stackoverflow.com";

    $replyto = $email;

    $subject = "help me stackoverflow.com";

    $email_body = "
      test
    ";

    $header = array(
      'Content-Type: text/plain; charset=UTF-8',
      "From: {$from}",
      "Reply-To: {$replyto}"
    );

    //Send mail
    $sent = wp_mail($to, $subject, $email_body, $header);
  }

?>

Но все, что я получаю, - это пустая страница, на которой абсолютно ничего нет. Почта тоже не отправляется.

1 Ответ

0 голосов
/ 25 февраля 2020

Используйте входные данные кнопки, оставьте комментарий, если он работает или нет.

<input class="btn animated light" type="submit" name="submit-order-form">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...