Захват значений из строки запроса для заполнения скрытых полей в формах ниндзя

Я добавил шаблон пользовательской страницы, где я вытаскиваю список доступных заданий из базы данных.

Страница, отображающая задания, называется jobs .

Я использую плагин Ninja forms чтобы добавить форму на странице с именем apply.php , в которой есть поля для приложения для работы.

Теперь для каждого заголовка задания, предлагаемого на странице заданий, я хочу, чтобы это была ссылка, которую пользователь может щелкнуть, чтобы применить, и перенаправляться на apply.php , где я могу захватить идентификатор задания и сохранить в скрытом поле в apply.php .

Это так, что, когда я сохраняю подачу заявки, я могу ее сохранить вместе с заданием, к которому они обратились.

Я добавил ссылку в порядке – следующим образом:

 ?page_id=18&jid=2 

где 18 – это идентификатор страницы приложения, страница, на которой я получил форму ниндзя.

Но как я могу взять jid из строки запроса и использовать его в полях формы ниндзя?

Solutions Collecting From Web of "Захват значений из строки запроса для заполнения скрытых полей в формах ниндзя"

Похоже, вы можете использовать действие ninja_forms_display_init для заполнения поля.

Чтобы получить идентификатор задания из указанного выше URL-адреса, вы можете использовать массив $_GET .

Адаптируя код на этой странице документации, что-то вроде этого должно достичь того, что вы ищете:

 function wpse_158000_populate_field($form_id) { global $ninja_forms_loading; $job_id_field = 3; //put the id for your hidden field here //Change the value that a field is pre-populated with. $ninja_forms_loading->update_field_value($job_id_field, $_GET['jid']); } add_action('ninja_forms_display_init', 'wpse_158000_populate_field'); 

В их документации перечислены другие действия, которые вы можете связать.

Если вы используете более чистые URL-адреса, вы можете подключиться к действию rewrite_rules_array и тогда у вас может быть URL-адрес, похожий на http://www.example.com/apply/2, где 2 – это идентификатор задания, которое они применяют for и apply – это пуля вашей страницы приложения.

Вы также можете нажать это дальше и использовать slug для этого задания вместо ID для более удобного URL-адреса, а затем получить идентификатор для этого задания через slug и добавить этот идентификатор в значение вашего скрытого поля.

Ответ @ Эрика Аллена работал отлично.

Тем не менее, я тоже связался с людьми Ninjaforms, и их ответ тоже сработал, поэтому я также размещаю его здесь.

Они сослались на это: http://docs.ninjaforms.com/customer/en/portal/articles/1981032-filters-ninja_forms_field?b_id=9172

Поэтому, адаптировав его к моей проблеме, было принято следующее решение:

 function filter_fetch_jid( $data, $field_id ){ if( $field_id == 27 ){ $job_id = $job_id = $_REQUEST['jid']; $data['default_value'] = $job_id ; } return $data; } add_filter( 'ninja_forms_field', 'filter_fetch_jid', 10, 27);