Извлечение данных поля из формы Ninja

#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 для извлечения значений.