#php #ninja-forms
#php #ninja-формы
Вопрос:
У меня есть веб-сайт WordPress с формой ninja. На странице подтверждения я хотел бы иметь возможность использовать значения, представленные в форме ninja моими пользователями, в качестве переменных PHP.
Есть мысли о том, как я должен это сделать?
Допустим, я использую radiobuttons, чтобы спросить кого-то, мужчина это или женщина. Как мне повторить заданное значение на странице подтверждения?
Ответ №1:
В идеале вы должны:
1) Создайте новый пользовательский плагин (таким образом, вы сможете обновить свой плагин Ninja Forms, тему и сохранить изменения в неизменном виде, которые можно легко перенести на другой сайт WordPress).
2) Зарегистрируйте действие Ninja Forms:
public function register_actions( $actions ) {
$actions['newsuccessmsg'] = new NF_XXX_Actions_NewSuccessMsg();
return $actions;
}
add_filter( 'ninja_forms_register_actions', 'register_actions' );
3) Добавьте класс action:
final class NF_XXX_Actions_NewSuccessMsg extends NF_Abstracts_Action
{
protected $_name = 'newsuccessmsg';
protected $_tags = array();
protected $_timing = 'late';
protected $_priority = 10;
public function __construct()
{
parent::__construct();
}
public function save( $action_settings )
{
}
public function process( $action_settings, $form_id, $data )
{
return $data;
}
}
4) Метод process будет включать настройки действия, идентификатор формы и данные отправки. Я лично просто сбрасываю все детали в файл, чтобы увидеть формат данных, подобный этому:
$f = fopen( ABSPATH . 'log.txt', 'a ' );
fwrite( $f, print_r( $data, true ) . "n");
fclose($f);
Приведенный выше фрагмент кода создаст файл log.txt в вашем корневом каталоге WordPress.
PS: я бы рекомендовал обратиться к ninja-forms/includes/Actions/SuccessMessage.php и используйте это в качестве примера.
Комментарии:
1. вау. очень впечатлен! большое спасибо. Обязательно попробую это сделать.
Ответ №2:
Вы можете «ОПУБЛИКОВАТЬ» данные формы и получить к ним доступ, используя их значение атрибута name
index.php
<form method = "post" action = "postValues.php">
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="female">Female
<input type="submit" value="Submit"
</form>
postValues.php
<?php
/* Using the name attribute value to access the selected radio button
This should assign either male or female to the variable. */
$selectedGender = $_POST["gender"];
echo "$selectedGender";
?>
Примечание: Значение атрибута name для обоих переключателей должно быть одинаковым (это похоже на группировку вместе)
Комментарии:
1. Привет! Большое спасибо за ответ. Это то, что я обычно делаю. Дело в том, что Ninja Forms явно говорит, что я не должен использовать метод POST для извлечения значений.