admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('uacf7-multistep') )); } function step_start_tag_handler($tag){ ob_start(); $form_current = \WPCF7_ContactForm::get_current(); ?>

id(), 'uacf7_multistep_steps_title', true ); ?>
id(), 'uacf7_multistep_steps_names', true ); $uacf7_multistep_use_step_labels = !empty(get_post_meta( $form_current->id(), 'uacf7_multistep_use_step_labels', true )) ? get_post_meta( $form_current->id(), 'uacf7_multistep_use_step_labels', true ) : ''; foreach ($all_steps as $step) { $content = $step; ?>

documentation' ); ?>
__( 'UACF7 Multistep Form', 'ultimate-addons-cf7' ), 'callback' => array( $this, 'uacf7_create_multistep_panel_fields' ), ); return $panels; } public function uacf7_create_multistep_panel_fields( $post ) { $form_current = \WPCF7_ContactForm::get_current(); $all_steps = $form_current->scan_form_tags( array('type'=>'uacf7_step_start') ); ?>
id(), 'uacf7_multistep_is_multistep', true ); $uacf7_enable_multistep_progressbar = get_post_meta( $post->id(), 'uacf7_enable_multistep_progressbar', true ); $uacf7_enable_multistep_scroll = get_post_meta( $post->id(), 'uacf7_enable_multistep_scroll', true ); ?>

documentation' ); ?>

(Pro)

id(), 'uacf7_progressbar_style', true ); ?>

See live demo examples here:', 'Live demo.', 'documentation.' ); ?>

id(), 'uacf7_multistep_use_step_labels', true )) ? get_post_meta( $post->id(), 'uacf7_multistep_use_step_labels', true ) : ''; ?>

id(), 'uacf7_multistep_circle_width', true ); $uacf7_multistep_circle_height = get_post_meta( $post->id(), 'uacf7_multistep_circle_height', true ); $uacf7_multistep_circle_bg_color = get_post_meta( $post->id(), 'uacf7_multistep_circle_bg_color', true ); $uacf7_multistep_circle_font_color = get_post_meta( $post->id(), 'uacf7_multistep_circle_font_color', true ); $uacf7_multistep_circle_border_radious = get_post_meta( $post->id(), 'uacf7_multistep_circle_border_radious', true ); $uacf7_multistep_font_size = get_post_meta( $post->id(), 'uacf7_multistep_font_size', true ); $uacf7_multistep_progress_bg_color = get_post_meta( $post->id(), 'uacf7_multistep_progress_bg_color', true ); $uacf7_multistep_progress_line_color = get_post_meta( $post->id(), 'uacf7_multistep_progress_line_color', true ); $uacf7_multistep_step_description_color = get_post_meta( $post->id(), 'uacf7_multistep_step_description_color', true ); $uacf7_multistep_step_title_color = get_post_meta( $post->id(), 'uacf7_multistep_step_title_color', true ); $uacf7_multistep_circle_active_color = get_post_meta( $post->id(), 'uacf7_multistep_circle_active_color', true ); $uacf7_multistep_progressbar_title_color = get_post_meta( $post->id(), 'uacf7_multistep_progressbar_title_color', true ); $uacf7_multistep_step_height = get_post_meta( $post->id(), 'uacf7_multistep_step_height', true ); ?>

id(), 'uacf7_multistep_button_padding_tb', true ); $uacf7_multistep_button_padding_lr = get_post_meta( $post->id(), 'uacf7_multistep_button_padding_lr', true ); ?>

id() ); } ?>
scan_form_tags( array('type'=>'uacf7_step_start') ); apply_filters( 'uacf7_multistep_save_pro_feature', '', $form, $all_steps ); update_post_meta( $form->id(), 'uacf7_enable_multistep_progressbar', sanitize_text_field($_POST['uacf7_enable_multistep_progressbar']) ); if( $_POST['uacf7_progressbar_style'] == 'default' || $_POST['uacf7_progressbar_style'] == 'style-1' ) { update_post_meta( $form->id(), 'uacf7_progressbar_style', sanitize_text_field($_POST['uacf7_progressbar_style']) ); } if(isset($_POST['uacf7_multistep_step_height'])) { update_post_meta( $form->id(), 'uacf7_multistep_is_multistep', sanitize_text_field($_POST['uacf7_multistep_is_multistep']) ); } $step_titles = array(); foreach ($all_steps as $step) { $step_titles[] = (is_array($step->values) && !empty($step->values)) ? $step->values[0] : ''; } if(!empty($step_titles)) { update_post_meta( $form->id(), 'uacf7_multistep_steps_title', $step_titles ); } update_post_meta( $form->id(), 'uacf7_multistep_use_step_labels', sanitize_text_field($_POST['uacf7_multistep_use_step_labels']) ); if(isset($_POST['uacf7_multistep_circle_width'])){ update_post_meta( $form->id(), 'uacf7_multistep_circle_width', sanitize_text_field($_POST['uacf7_multistep_circle_width']) ); } if(isset($_POST['uacf7_multistep_circle_height'])){ update_post_meta( $form->id(), 'uacf7_multistep_circle_height', sanitize_text_field($_POST['uacf7_multistep_circle_height']) ); } if(isset($_POST['uacf7_multistep_circle_bg_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_circle_bg_color', sanitize_text_field($_POST['uacf7_multistep_circle_bg_color']) ); } if(isset($_POST['uacf7_multistep_circle_font_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_circle_font_color', sanitize_text_field($_POST['uacf7_multistep_circle_font_color']) ); } if(isset($_POST['uacf7_multistep_circle_border_radious'])){ update_post_meta( $form->id(), 'uacf7_multistep_circle_border_radious', sanitize_text_field($_POST['uacf7_multistep_circle_border_radious']) ); } if(isset($_POST['uacf7_multistep_circle_border_radious'])){ update_post_meta( $form->id(), 'uacf7_multistep_circle_border_radious', sanitize_text_field($_POST['uacf7_multistep_circle_border_radious']) ); } if(isset($_POST['uacf7_multistep_font_size'])){ update_post_meta( $form->id(), 'uacf7_multistep_font_size', sanitize_text_field($_POST['uacf7_multistep_font_size']) ); } if(isset($_POST['uacf7_multistep_font_size'])){ update_post_meta( $form->id(), 'uacf7_multistep_font_size', sanitize_text_field($_POST['uacf7_multistep_font_size']) ); } if(isset($_POST['uacf7_multistep_progress_bg_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_progress_bg_color', sanitize_text_field($_POST['uacf7_multistep_progress_bg_color']) ); } if(isset($_POST['uacf7_multistep_progress_line_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_progress_line_color', sanitize_text_field($_POST['uacf7_multistep_progress_line_color']) ); } if(isset($_POST['uacf7_multistep_step_title_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_step_title_color', sanitize_text_field($_POST['uacf7_multistep_step_title_color']) ); } if(isset($_POST['uacf7_multistep_step_description_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_step_description_color', sanitize_text_field($_POST['uacf7_multistep_step_description_color']) ); } if(isset($_POST['uacf7_multistep_circle_active_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_circle_active_color', sanitize_text_field($_POST['uacf7_multistep_circle_active_color']) ); } if(isset($_POST['uacf7_multistep_progressbar_title_color'])){ update_post_meta( $form->id(), 'uacf7_multistep_progressbar_title_color', sanitize_text_field($_POST['uacf7_multistep_progressbar_title_color']) ); } if(isset($_POST['uacf7_multistep_step_height'])){ update_post_meta( $form->id(), 'uacf7_multistep_step_height', sanitize_text_field($_POST['uacf7_multistep_step_height']) ); } // Next Previous Button if(isset($_POST['uacf7_multistep_button_padding_tb'])){ update_post_meta( $form->id(), 'uacf7_multistep_button_padding_tb', sanitize_text_field($_POST['uacf7_multistep_button_padding_tb']) ); } if(isset($_POST['uacf7_multistep_button_padding_lr'])){ update_post_meta( $form->id(), 'uacf7_multistep_button_padding_lr', sanitize_text_field($_POST['uacf7_multistep_button_padding_lr']) ); } } /* * Change form properties for multistep */ public function uacf7_properties($properties, $cfform) { if (!is_admin() || (defined('DOING_AJAX') && DOING_AJAX)) { $form = $properties['form']; $uacf7_multistep_is_multistep = get_post_meta( $cfform->id(), 'uacf7_multistep_is_multistep', true ); $uacf7_enable_multistep_progressbar = get_post_meta( $cfform->id(), 'uacf7_enable_multistep_progressbar', true ); if( $uacf7_multistep_is_multistep == 'on' ) { ob_start(); $all_steps = get_post_meta( $cfform->id(), 'uacf7_multistep_steps_title', true ); $uacf7_multistep_use_step_labels = !empty(get_post_meta( $cfform->id(), 'uacf7_multistep_use_step_labels', true )) ? get_post_meta( $cfform->id(), 'uacf7_multistep_use_step_labels', true ) : ''; $uacf7_multistep_button_padding_tb = get_post_meta( $cfform->id(), 'uacf7_multistep_button_padding_tb', true ); $uacf7_multistep_button_padding_lr = get_post_meta( $cfform->id(), 'uacf7_multistep_button_padding_lr', true ); if($uacf7_multistep_button_padding_tb !='' || $uacf7_multistep_button_padding_tb != 0){ $padding_top = 'padding-top:'.$uacf7_multistep_button_padding_tb.'px !important;'; $padding_bottom = 'padding-bottom:'.$uacf7_multistep_button_padding_tb.'px !important;'; }else{ $padding_top = ''; $padding_bottom = ''; } if($uacf7_multistep_button_padding_lr !='' || $uacf7_multistep_button_padding_lr != 0){ $padding_left = 'padding-left:'.$uacf7_multistep_button_padding_lr.'px !important;'; $padding_right = ' padding-right:'.$uacf7_multistep_button_padding_lr.'px !important;'; }else{ $padding_left = ''; $padding_right = ''; } $next_prev_style = ''; echo $next_prev_style; ?> id(), 'uacf7_progressbar_style', true ); do_action( 'uacf7_multistep_before_form', $cfform->id() ); ?> id(), 'uacf7_multistep_progressbar_title_color', true ); if($uacf7_progressbar_style == 'default' && !empty($uacf7_multistep_progressbar_title_color)): ?>
id(), 'uacf7_multistep_steps_names', true ); foreach ($all_steps as $step) { $content = $step; ?>
'.$content.'

'; } ?>
id() ); ob_start(); ?>
scan_form_tags(); $invalid_fields = false; require_once WPCF7_PLUGIN_DIR . '/includes/validation.php'; $result = new \WPCF7_Validation(); $tags = array_filter( $all_form_tags, function($v, $k) use ($tag_name) { return in_array($v->name, $tag_name); }, ARRAY_FILTER_USE_BOTH ); $form->validate_schema( array( 'text' => true, 'file' => false, 'field' => $tag_name, ), $result ); foreach ( $tags as $tag ) { $type = $tag->type; if ( 'file' != $type && 'file*' != $type ) { $result = apply_filters("wpcf7_validate_{$type}", $result, $tag); }elseif( 'file*' === $type || 'file' === $type ){ $fdir = $_REQUEST[$tag->name]; if ( $fdir ) { $_FILES[ $tag->name ] = array( 'name' => wp_basename( $fdir ), 'tmp_name' => $fdir, ); } $file = $_FILES[$tag->name]; //$file = $_REQUEST[$tag->name]; $args = array( 'tag' => $tag, 'name' => $tag->name, 'required' => $tag->is_required(), 'filetypes' => $tag->get_option( 'filetypes' ), 'limit' => $tag->get_limit_option(), ); $args['schema'] = $form->get_schema(); $new_files = wpcf7_unship_uploaded_file( $file, $args ); if ( is_wp_error( $new_files ) ) { $result->invalidate( $tag, $new_files ); } $result = apply_filters("wpcf7_validate_{$type}", $result, $tag, array( 'uploaded_files' => $new_files, ) ); if(isset($_REQUEST[$tag->name.'_size'])){ $file_size = $_REQUEST[$tag->name.'_size']; // echo $file_size; if ($file_size > $tag->get_limit_option()) { $file_error = array( 'into' => 'span.wpcf7-form-control-wrap[data-name = '.$tag->name.']', 'message' => 'The uploaded file is too large.', 'idref' => null, ); } } } } // $result = apply_filters('wpcf7_validate', $result, $tags); $is_valid = $result->is_valid(); if (!$is_valid) { $invalid_fields = $this->prepare_invalid_form_fields($result, $tag_validation); } if(!empty($file_error)) { $invalid_fields [] = $file_error; } if(!empty($invalid_fields)){ $is_valid = false; } echo(json_encode( array( 'is_valid' => $is_valid, 'invalid_fields' => $invalid_fields, ) ) ); wp_die(); } private function prepare_invalid_form_fields ($result, $tag_validation){ $invalid_fields = array(); // Validation with Repeater $count = 1; $invalid_data = []; foreach ((array)$result->get_invalid_fields() as $name => $field) { $invalid_data[$name] = array( 'name' => $name, 'message' => $field['reason'], 'idref' => $field['idref'], ); } foreach ($tag_validation as $key => $value){ $name = explode("__",$value); $name = $name[0]; if(!empty($invalid_data[$name])){ $field = $invalid_data[$name]; $invalid_fields[] = array( 'into' => 'span.wpcf7-form-control-wrap[data-name = '.$value.']', 'message' => $field['message'], 'idref' => $field['idref'], ); } } return $invalid_fields; } } new UACF7_MULTISTEP();