podust
@podust

Как получить данные из формы, вставленной в одну из страниц (Page) WordPress?

Передо мной стоит такая задача — написать небольшой плагин для WordPress'а, который считывал бы данные из формы, вставленной в одну из страниц сайта (раздел Pages).

Скажем, простейшая форма такого типа:

<form name="SendForm" method="post" action="" id="sfrm">
      <input type="text" name="very_important_data" value="Feel free to fill" />
      <input type="image" id="go" name="Button1" src="/submit.png">
</form>


Как данные из нее при Submit'е отправить именно на мой плагин, чтобы обработать их в нем и вывести какой-то ответ на ту же страницу с формой, либо на другую страницу (не столь принципиально).
  • Вопрос задан
  • 6399 просмотров
Решения вопроса 1
Alexufo
@Alexufo
противоречивый, сложный, весь компьютерный.
Через get сделать можно так
Регистрируете переменую в гет запросе
function add_query_vars_filter( $vars ){
  $vars[] = "my_var";
  return $vars;
}

И можете работать с параметрами в коде шаблона страницы
codex.wordpress.org/Function_Reference/get_query_var

или POST
codex.wordpress.org/HTTP_API

или как сделать форму
premium.wpmudev.org/blog/how-to-build-your-own-wor...

А из шаблона где получите параметры уже дергаете функции вашего плагина
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
eucalipt
@eucalipt
Самоделкин.
Тебе просто получить?
Можно создать страницу-обработчик, например. Делаете файлик, скажем, handler.php. В него пишете следующее:
$data = $_POST["very_important_data"];

// теперь можете обрабатывать данные, как душе угодно. Чтобы обратиться к ним, просто используйте переменную $data.


А форму нужно направить на этот файлик:
<form method="POST" action="handler.php">

В моем примере эти файлы должны располагаться в одной директории.
Ответ написан
Valonix
@Valonix
Back end / Front end developer
Лучше такое перехватывать в function.php . Вдруг вы потом захотите эти данные куда-то добавить. А в отдельном файле вам придется инклудить кучу файлов Вордпресса.
Ответ написан
Комментировать
Вряд-ли вам еще актуально, но я искал ответ на подобный вопрос и наткнулся на эту тему.
Вдруг еще кому-то понадобится подобная инфа, короч, оставлю тут
Это один вариант:
add_action('wp', 'my_function_name');
function my_function_name(){
	
	if(isset($_POST['send']) == '1') {
		 
		//тут пишем код
		
	}
}

А вот другой:
Ссылка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы