У меня есть форма Ninja Forms, которая запрашивает адрес электронной почты и флажок optin. После отправки пользователем открывается всплывающее окно с последующей формой (с помощью плагина Popup Maker), где пользователю предлагается ввести дополнительные (необязательные) сведения. Поскольку у последующей формы есть собственная таблица представлений, я хотел бы передать адрес электронной почты первой формы всплывающей последующей форме, чтобы пользователю не приходилось вводить ее снова.
В идеале, он сохраняет всю эту информацию в одной таблице представления, но я думаю, что формы ниндзя не созданы таким образом (?).
Использование обработчиков подачи заявок (http://developer.ninjaforms.com/codex/submission-processing-hooks/), Я добавил следующий код к теме functions.php
:
add_action( 'ninja_forms_after_submission', 'ninja_forms_save_email_to_cookie' );
function ninja_forms_save_email_to_cookie( $form_data ){
$cookie_name = "nl_email";
$cookie_value = $form_data;
setcookie($cookie_name, $cookie_value); // Session cookie.
}
Но печенье не сохраняется.
Для последующей формы у меня есть это в теме functions.php
который должен заполнить скрытое поле формы (ключ поля email_1519816442526
) со значением куки-файла перед любой другой обработкой последующей формы:
add_filter( 'ninja_forms_submit_data', 'ninja_forms_submit_followup' );
function ninja_forms_submit_followup( $form_data ) {
$cookie_name = "nl_email";
if(!isset($_COOKIE[$cookie_name]) && $form_data['id'] == 2) {
$form_data['fields']['email_1519816442526']['value'] = $_COOKIE[$cookie_name]; // Update the submitted field value.
}
return $form_data;
}
Являются ли приемные крючки подходящей точкой для интеграции этой функции? Или это лучше сделать через Custom Action? Определены ли пользовательские действия в functions.php
или где-то еще? Я не смог найти информацию об этом в документах Ninja Forms.
Задача ещё не решена.
Других решений пока нет …