Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- add_shortcode('rcl-form', 'my_rcl_form');
- function my_rcl_form(){
- $fields = array(
- array(
- 'type' => 'text',
- 'slug' => 'field_one',
- 'title' => __('Текстовое поле'),
- 'placeholder' => __('Заполните это поле'),
- 'required' => 1,
- 'notice' => __('тут какое то примечание к полю')
- ),
- array(
- 'type' => 'select',
- 'slug' => 'field_two',
- 'title' => __('Выпадающий список'),
- 'values' => array(
- __('один'),
- __('два'),
- __('три')
- ),
- 'notice' => __('выберите одно из значений')
- ),
- array(
- 'type' => 'textarea',
- 'slug' => 'field_three',
- 'title' => __('Многострочное поле'),
- 'placeholder' => __('Напишите хоть что то...'),
- 'required' => 1,
- 'notice' => __('еще одно примечание к текстовому полю')
- ),
- array(
- 'type' => 'hidden',
- 'slug' => 'my_form_submit',
- 'value' => 1
- )
- );
- //первая форма
- $form = rcl_get_form(array(
- 'onclick' => 'rcl_send_form_data("my_first_form_process", this);return false;',
- 'submit' => __('Передать'),
- 'fields' => $fields
- ));
- return $form;
- }
- //обработчик первой формы
- rcl_ajax_action('my_first_form_process');
- function my_first_form_process(){
- rcl_verify_ajax_nonce();
- //тут обрабатываем данные с первой формы
- //строим вторую форму и отправляем ее в диалоговом окне
- //вторая форма
- $form = rcl_get_form(array(
- 'onclick' => 'rcl_send_form_data("my_two_form_process", this);return false;',
- 'submit' => __('Передать'),
- 'fields' => array(
- array(
- 'type' => 'runner',
- 'slug' => 'field_one',
- 'title' => __('Выберите число'),
- 'notice' => __('тут какое то примечание к полю')
- ),
- array(
- 'type' => 'checkbox',
- 'slug' => 'field_two',
- 'title' => __('Несколько чекбоксов'),
- 'values' => array(
- __('один'),
- __('два'),
- __('три')
- ),
- 'notice' => __('выберите одно из значений')
- )
- )
- ));
- wp_send_json(array(
- 'dialog' => array( //вывод диалогового окна
- 'title' => __('Вторая форма'),
- 'content' => $form
- )
- ));
- }
- //обработчик второй формы
- rcl_ajax_action('my_two_form_process');
- function my_two_form_process(){
- rcl_verify_ajax_nonce();
- //тут обрабатываем данные со второй формы
- //строим третью форму и отправляем ее в диалоговом окне
- //третья форма
- $form = rcl_get_form(array(
- 'onclick' => 'rcl_send_form_data("my_three_form_process", this);return false;',
- 'submit' => __('Передать'),
- 'fields' => array(
- array(
- 'type' => 'dynamic',
- 'slug' => 'field_one',
- 'title' => __('Еще несколько вариантов'),
- 'notice' => __('тут какое то примечание к полю'),
- 'required' => 1
- ),
- array(
- 'type' => 'radio',
- 'slug' => 'field_two',
- 'title' => __('Несколько радиокнопок'),
- 'values' => array(
- __('один'),
- __('два'),
- __('три')
- ),
- 'notice' => __('выберите одно из значений')
- )
- )
- ));
- wp_send_json(array(
- 'dialog' => array( //вывод диалогового окна
- 'title' => __('Третья форма'),
- 'content' => $form
- )
- ));
- }
- //обработчик третьей формы
- rcl_ajax_action('my_three_form_process');
- function my_three_form_process(){
- rcl_verify_ajax_nonce();
- //тут обрабатываем данные с третьей формы
- //и возвращаем уведомление об успехе
- wp_send_json(array(
- 'success' => __('Данные успешно обработаны!'),
- 'dialog' => array( //закрываем диалоговое окно
- 'close' => true
- )
- ));
- }
Add Comment
Please, Sign In to add comment