Для конвертации заполненных данных формы в формат CSV и отправки ее на почту с помощью WordPress, необходимо выполнить несколько шагов.
Шаг 1: Создание формы в WordPress
Создайте форму на своей странице WordPress, используя HTML-элементы формы. Убедитесь, что каждое поле формы имеет уникальное имя, которое будет использоваться для получения данных в JavaScript.
Шаг 2: Подключение скрипта JavaScript
Создайте скрипт JavaScript, который будет обрабатывать отправку формы и конвертировать данные в формат CSV. Добавьте следующий код в файлы вашей темы или в плагин:
(function($) { $(document).ready(function () { $('form').submit(function (event) { event.preventDefault(); // Отменить отправку формы // Получение данных из формы var formData = new FormData(this); var csvData = ""; // Проход по каждому полю формы for (var pair of formData.entries()) { csvData += pair[0] + "," + pair[1] + "n"; // Добавление данных в CSV формат } // Отправка данных на сервер $.ajax({ type: 'POST', url: '/wp-admin/admin-ajax.php', data: { action: "send_csv_email", csv_data: csvData }, success: function (response) { console.log(response); // Результат отправки данных на сервер } }); }); }); })(jQuery);
Этот скрипт JavaScript отменяет стандартное действие отправки формы, загружает данные формы в виде объекта FormData, конвертирует его в формат CSV и отправляет данные на сервер при помощи AJAX-запроса на URL wp-admin/admin-ajax.php
.
Шаг 3: Создание серверного обработчика
Теперь необходимо создать серверный обработчик для обработки AJAX-запроса и отправки CSV-данных по электронной почте. Добавьте следующий код в файл functions.php вашей темы или в плагин:
function send_csv_email() { $csvData = $_POST['csv_data']; // Создание временного файла CSV $tmpFile = tempnam(sys_get_temp_dir(), 'csv'); file_put_contents($tmpFile, $csvData); // Определяем email-адрес, на который отправлять $to = '[email protected]'; // Определяем тему письма и заголовки $subject = 'CSV Data from Form'; $headers = array( 'From: WordPress Site <[email protected]>', 'Content-Type: text/csv; charset=UTF-8' ); // Прикрепляем файл CSV к письму $attachments = array($tmpFile); // Отправка письма wp_mail($to, $subject, '', $headers, $attachments); // Удаляем временный файл CSV unlink($tmpFile); wp_die(); // Завершение обработчика AJAX-запроса } add_action('wp_ajax_send_csv_email', 'send_csv_email'); add_action('wp_ajax_nopriv_send_csv_email', 'send_csv_email');
Функция send_csv_email
обрабатывает AJAX-запрос и отправляет электронное письмо с прикрепленным файлом CSV, содержащим данные из формы. Укажите свой действительный адрес электронной почты в переменной $to
и настройте тему и заголовки в соответствии с вашими потребностями.
Шаг 4: Добавление действий WordPress
Добавьте следующий код в файл functions.php вашей темы или в плагин, чтобы зарегистрировать действия WordPress, необходимые для обработки AJAX-запросов:
function enqueue_scripts() { wp_enqueue_script('custom-form-script', get_template_directory_uri() . '/path/to/your/js/script.js', array('jquery'), '1.0', true); } add_action('wp_enqueue_scripts', 'enqueue_scripts');
В качестве параметра функции wp_enqueue_script
укажите путь к вашему файлу JavaScript, содержащему код, описанный в шаге 2.
Теперь при отправке формы данные будут конвертироваться в формат CSV и отправляться по электронной почте, указанной в обработчике AJAX. Персонализируйте код в соответствии с вашими требованиями и настройками WordPress.