Необходимо записывать в текстовый файл данные введенные в форме
Необходимо записывать в текстовый файл данные введенные в форме на сайте. Форма отправляется по AJAX обработчику и далее уходит письмо на почту. С письмом все отлично, оно доходит, но в файл ничего не записывается. Вот код:
<?php
function ajax_form(){
$name = $_REQUEST['name'];
$contact = $_REQUEST['contact'];
$message = $_REQUEST['message'];
$response = '';
$thm = 'Сообщение с сайта';
$thm = "=?utf-8?b?". base64_encode($thm) ."?=";
$msg = "Имя: ".$name."<br />
Контакты: ".$contact ."<br />
Сообщение: ".$message ."<br />";
$mail_to = 'mail@mail.ru';
$headers = "Content-Type: text/html; charset=utf-8\n";
$headers .= 'From: site.name' . "\r\n";
// Отправляем почтовое сообщение
if(mail($mail_to, $thm, $msg, $headers)){
$response = 'Сообщение отправлено';
}else
$response = 'Ошибка при отправке';
// Сообщение о результате отправки почты
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ){
echo $response;
wp_die();
}
// Логирование
$file = "logs.txt";
$Saved_File = fopen($file, 'a+');
fwrite($Saved_File, $msg);
fclose($Saved_File);
}
add_action('wp_ajax_nopriv_ajax_order', 'ajax_form' );
add_action('wp_ajax_ajax_order', 'ajax_form' );
?>Перефразирую комментатора выше кодом:
<?php
function ajax_form(){
$name = $_REQUEST['name'];
$contact = $_REQUEST['contact'];
$message = $_REQUEST['message'];
$response = '';
$thm = 'Сообщение с сайта';
$thm = "=?utf-8?b?". base64_encode($thm) ."?=";
$msg = "Имя: ".$name."<br />
Контакты: ".$contact ."<br />
Сообщение: ".$message ."<br />";
$mail_to = 'mail@mail.ru';
$headers = "Content-Type: text/html; charset=utf-8\n";
$headers .= 'From: site.name' . "\r\n";
// Отправляем почтовое сообщение
if(mail($mail_to, $thm, $msg, $headers)){
$response = 'Сообщение отправлено';
} else {
$response = 'Ошибка при отправке';
}
// Сообщение о результате отправки почты
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ){
echo $response;
// Логирование
// Можно было в одну строу file_put_contents();
$file = "logs.txt";
$Saved_File = fopen($file, 'a+');
fwrite($Saved_File, $msg);
fclose($Saved_File);
wp_die();
}
}
add_action('wp_ajax_nopriv_ajax_order', 'ajax_form' );
add_action('wp_ajax_ajax_order', 'ajax_form' );
?>
Как же он будет сохранять, если ты wp_die() делаешь раньше, чем отрабатывает функционал логирования?