Я пытаюсь отправить форму, а затем отправить письмо с данными. У меня это работает с 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);
}
?>
Но все, что я получаю, - это пустая страница, на которой абсолютно ничего нет. Почта тоже не отправляется.