У меня есть контактная форма, в которой я пытаюсь отправить данные через AX IOS, используя formData для отправки электронной почты через WP_mail.
Отправка формы, кажется, работает в смысле:
- Страница не обновляет / не добавляет параметры в URL
- Использование
for (var value of formData.values()) {console.log(value);}
для проверки того, какие значения извлекаются с помощью formData, console.log
показывает различные входные значения response.status
показывает 200
Проблемы начинаются с того, что response.data
возвращает 0, а не данные из отправляемой формы.
Это моя форма
<form class="js-process dark-form">
<fieldset>
<label for="name">First name*</label>
<input type="text" name="name" placeholder="Enter your first name" />
<label for="last-name">Last name*</label>
<input type="text" name="last-name" placeholder="Enter your last name" />
<label for="email-address">Email address*</label>
<input type="email" name="email-address" placeholder="Enter your email address" />
<label for="telephone">Telephone*</label>
<input type="tel" name="telephone" placeholder="Enter your phone number" />
</fieldset>
<fieldset>
<label for="enquiry-form">Nature of enquiry*</label>
<!-- TEMP -->
<select id="enquiry-form" name="enquiry-form" data-label-value="test">
<option disabled value="">test</option>
<option value="test">test</option>
<option value="test">test</option>
<option value="test">test</option>
</select>
<label for="your-message">Your message*</label>
<textarea name="your-message" placeholder="Please tell us your message"></textarea>
</fieldset>
<input type="submit" value="Submit">
</form>
Это мои JS для отправки данных формы
import axios from 'axios';
const processForm = (e) => {
const form = e.target;
e.preventDefault();
// let formData = new FormData(form);
const formData = new FormData();
// Console.log all formData values for testing
for (var value of formData.values()) { console.log(value); }
formData.append('action', 'contact_form');
formData.append('first_name', 'my first name');
axios({
method: 'POST',
url: WP.ajax,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
data: formData,
})
.then(function (response) {
console.log(response);
console.log(response.data);
console.log(response.status);
console.log(response.statusText);
console.log(response.headers);
console.log(response.config);
},
(error) => {
console.log(error);
});
return false;
};
const initProcessForm = () => {
const forms = document.querySelectorAll('.js-process');
forms.forEach(form => {
form.addEventListener('submit', processForm);
});
};
export default initProcessForm;
Я не уверен, что мне не хватает здесь, чтобы получить данные из формы для POST правильно. Я знаю, что даже не дошел до стороны WP_mail вещей! Я новичок в использовании AX IOS, поэтому, если кто-то может указать мне правильное направление с помощью этого кода или у меня есть лучший способ сделать это, я был бы рад узнать:)
Заранее спасибо.