AX IOS Форма POST отправляется в WordPress, возвращая 200 с возвращением данных 0 - PullRequest
0 голосов
/ 11 марта 2020

У меня есть контактная форма, в которой я пытаюсь отправить данные через AX IOS, используя formData для отправки электронной почты через WP_mail.

Отправка формы, кажется, работает в смысле:

  1. Страница не обновляет / не добавляет параметры в URL
  2. Использование for (var value of formData.values()) {console.log(value);} для проверки того, какие значения извлекаются с помощью formData, console.log показывает различные входные значения
  3. 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, поэтому, если кто-то может указать мне правильное направление с помощью этого кода или у меня есть лучший способ сделать это, я был бы рад узнать:)

Заранее спасибо.

...