Требуется вывод введенных данных с contact form 7

181
21 мая 2021, 00:00

Появилась задача валидации веденных данных клиентом. То есть клиент вводит свои данные в контактной форме ( Contact form 7 ) , его перенаправляет на страницу спасибо, где должны быть указаны его введенные данные , чтобы он убедился в их правильности. Как это можно реализовать?

Answer 1

Для того чтобы реализовать данный функционал, Вам нужно предотвратить отправку данных плагином contact form 7 и извлечь данные. Для этого необходимо воспользоваться услугами js.

  1. Вешаем на форму событие submit
  2. Предотвращаем отправку формы
  3. Формируем массив для отправки на страницу "Спасибо"
  4. Создаём фиктивную форму с action на нашу страницу
  5. Добавляем в неё данные и отправляем её.
  6. На страницы спасибо, считываем POST запрос и выводим данные в новую форму contactform7 которая уже будет отправлять данные на почту
  7. Завариваем кружечку кофе ;)

Пример кода на JQuery:

function validateCF7() {
   $("#myBestFrom").submit(function(e) {  // 1
       e.preventDefault(); // 2
       var requestData = [];
       $(this).find("input").each(function() { // можно добавлять textarea, select и 
           //т.д
           requestData.push($(this).val());  // 3
       });
       var url = 'http://example.com/thanks';
       var form = $('<form action="' + url + '" method="post">' +
           '<input type="text" name="cf7_data" value="' + JSON.stringify(requestData) + '" />' +
           '</form>');
       $('body').append(form);
       form.submit();  // 4, 5
   });
}

На странице "Спасибо":

$inputDataJson = $_POST["cf7_data"] ?? false; // если 7+ php!
// иначе проверяйте на isset() и is_null()
if (!$inputDataJson) {
    //redirect или еще что-то
    wp_die(); // или exit()
}
$inputData = json_decode($inputDataJson)
//Вывод через цикл данных в форму! 
READ ALSO
Как правильно перебрать данный массив

Как правильно перебрать данный массив

С сервера приходит вот такой массив:

109
Для чего используются методы, которые мы не вызываем?

Для чего используются методы, которые мы не вызываем?

Я пишу на Bukkit'e и посмотрев как пишется код в других плагинах, часто замечаю как часто пишут вот такой код (код прикрепил), ведь мы эти методы...

162
@Query MongoDb с динамическими параметрами Spring

@Query MongoDb с динамическими параметрами Spring

Необходимо выбрать записи из MongoDB, где dataEdit >= параметра, передаваемого пользователем в запросеДелаю следующим образом:

117