Form Maker by WD – user-friendly drag & drop Form Builder plugin - Version 1.12.35

Version Description

  • Fixed: PDF should be generated even if sending emails is off.
  • Fixed: Field validation issues on multi-page forms.
  • Fixed: Issue with Exporting/Importing a form with special characters in header.
Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 Form Maker by WD – user-friendly drag & drop Form Builder plugin
Version 1.12.35
Comparing to
See all releases

Code changes from version 1.12.34 to 1.12.35

css/form_maker_frontend.css CHANGED
@@ -777,8 +777,9 @@ input[type=number].wd-type-number {
777
  appearance: none;
778
  }
779
 
780
- .fm-form .button-submit {
781
- margin-right: 15px;
 
782
  }
783
 
784
  .fm-form .ui-spinner input[type="number"] {
777
  appearance: none;
778
  }
779
 
780
+ .fm-form .button-submit,
781
+ .fm-form .button-reset:not(:last-child) {
782
+ margin-right: 15px;
783
  }
784
 
785
  .fm-form .ui-spinner input[type="number"] {
css/form_maker_tables.css CHANGED
@@ -2434,7 +2434,8 @@ button:focus {
2434
  padding: 0 10px 10px 10px;
2435
  }
2436
 
2437
- .button.button-submit {
 
2438
  margin-right: 10px;
2439
  }
2440
 
2434
  padding: 0 10px 10px 10px;
2435
  }
2436
 
2437
+ .button.button-submit,
2438
+ .button.button-reset:not(:last-child) {
2439
  margin-right: 10px;
2440
  }
2441
 
form-maker.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Form Maker
4
  * Plugin URI: https://web-dorado.com/products/form-maker-wordpress.html
5
  * Description: This plugin is a modern and advanced tool for easy and fast creating of a WordPress Form. The backend interface is intuitive and user friendly which allows users far from scripting and programming to create WordPress Forms.
6
- * Version: 1.12.34
7
  * Author: WebDorado Form Builder Team
8
  * Author URI: https://web-dorado.com/wordpress-plugins-bundle.html
9
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
@@ -95,8 +95,8 @@ final class WDFM {
95
  $this->plugin_url = plugins_url(plugin_basename(dirname(__FILE__)));
96
  $this->front_urls = $this->get_front_urls();
97
  $this->main_file = plugin_basename(__FILE__);
98
- $this->plugin_version = '1.12.34';
99
- $this->db_version = '2.12.34';
100
  $this->menu_postfix = ($this->is_free == 2 ? '_fmc' : '_fm');
101
  $this->plugin_postfix = ($this->is_free == 2 ? '_fmc' : '');
102
  $this->menu_slug = 'manage' . $this->menu_postfix;
3
  * Plugin Name: Form Maker
4
  * Plugin URI: https://web-dorado.com/products/form-maker-wordpress.html
5
  * Description: This plugin is a modern and advanced tool for easy and fast creating of a WordPress Form. The backend interface is intuitive and user friendly which allows users far from scripting and programming to create WordPress Forms.
6
+ * Version: 1.12.35
7
  * Author: WebDorado Form Builder Team
8
  * Author URI: https://web-dorado.com/wordpress-plugins-bundle.html
9
  * License: GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
95
  $this->plugin_url = plugins_url(plugin_basename(dirname(__FILE__)));
96
  $this->front_urls = $this->get_front_urls();
97
  $this->main_file = plugin_basename(__FILE__);
98
+ $this->plugin_version = '1.12.35';
99
+ $this->db_version = '2.12.35';
100
  $this->menu_postfix = ($this->is_free == 2 ? '_fmc' : '_fm');
101
  $this->plugin_postfix = ($this->is_free == 2 ? '_fmc' : '');
102
  $this->menu_slug = 'manage' . $this->menu_postfix;
framework/WDW_FM_Library.php CHANGED
@@ -974,6 +974,7 @@ class WDW_FM_Library {
974
  $check_js = '';
975
  $onload_js = '';
976
  $onsubmit_js = '';
 
977
  if ( $row->payment_currency ) {
978
  $form_currency = $row->payment_currency;
979
  }
974
  $check_js = '';
975
  $onload_js = '';
976
  $onsubmit_js = '';
977
+ $form_currency = '$';
978
  if ( $row->payment_currency ) {
979
  $form_currency = $row->payment_currency;
980
  }
frontend/models/form_maker.php CHANGED
@@ -996,8 +996,9 @@ class FMModelForm_maker {
996
  .fm-form-container.fm-theme' . $theme_id . ' .fm-form input[type="checkbox"] {' .
997
  (!empty( $form_theme[ 'MCCPBackground' ] ) || !empty( $form_theme[ 'MCCPBGColor' ] ) ? 'display: none;' : '') .
998
  '}';
 
999
  }
1000
- if ( !empty( $form_theme[ 'CUPCSS' ] ) ) {
1001
  $pattern = '/\/\/(.+)(\r\n|\r|\n)/';
1002
  $form_theme_css = $form_theme[ 'CUPCSS' ];
1003
  if ( strpos( $form_theme_css, ':checked + label' ) !== FALSE ) {
@@ -1353,6 +1354,7 @@ class FMModelForm_maker {
1353
  if ( !$form->form_front ) {
1354
  $id = '';
1355
  }
 
1356
  if ( $form->payment_currency ) {
1357
  $form_currency = $form->payment_currency;
1358
  }
@@ -3117,102 +3119,103 @@ class FMModelForm_maker {
3117
  $list = $list . '</table>';
3118
 
3119
  // User part.
3120
- if ( $row->sendemail ) {
3121
- $fromname = $row->mail_from_name_user;
3122
- $from_email = $row->mail_from_user;
3123
- $subject = !empty( $row->mail_subject_user ) ? $row->mail_subject_user : $row->title;
3124
- $attachment_user = array();
3125
- if ( !WDFMInstance(self::PLUGIN)->is_demo ) {
3126
- for ( $k = 0; $k < count( $all_files ); $k++ ) {
3127
- if ( isset( $all_files[ $k ][ 'tmp_name' ] ) ) {
3128
- if ( !isset( $attachment_user[ $all_files[ $k ][ 'field_key' ] ] ) ) {
3129
- $attachment_user[ $all_files[ $k ][ 'field_key' ] ] = array();
3130
- }
3131
- $file_name = $all_files[$k]['tmp_name'];
3132
- if ( $row->save_uploads == 1 ) {
3133
- $basedir = str_replace( site_url() .'/', '', $upload_dir['baseurl'] );
3134
- $file = $basedir . $file_name;
3135
- } else {
3136
- $file = $file_name;
3137
- }
3138
- array_push($attachment_user[$all_files[$k]['field_key']], $file);
3139
  }
 
3140
  }
3141
  }
 
3142
 
3143
- if ( $row->mail_mode_user ) {
3144
- $content_type = "text/html";
3145
- $list_user = wordwrap( $list, 100, "\n", TRUE );
3146
- $new_script = wpautop( $row->script_mail_user );
3147
- } else {
3148
- $content_type = "text/plain";
3149
- $list_user = wordwrap( $list_text_mode, 1000, "\n", TRUE );
3150
- $new_script = str_replace( array( '<p>', '</p>' ), '', $row->script_mail_user );
3151
- }
3152
- foreach ( $label_order_original as $key => $label_each ) {
3153
- $type = $label_type[ $key ];
3154
- $key1 = $type == 'type_hidden' ? $label_each : $key;
3155
- $label_each_decoded = htmlspecialchars_decode( $label_each );
3156
- $new_value = $this->custom_fields_mail( $type, $key1, $id, $attachment_user, $form_currency );
3157
- $key_replace = array( '%' . $label_each_decoded . '%', '{' . $key . '}' );
3158
 
3159
- $new_script = str_replace( $key_replace, $new_value, $new_script );
3160
 
3161
- if ( $type == "type_file_upload" ) {
3162
- $new_value = $this->custom_fields_mail( $type, $key, $id, $attachment_user, $form_currency, 1 );
3163
- $new_script = str_replace( array( '%' . $label_each_decoded . '(link)%', '{' . $key . '(link)}' ), $new_value, $new_script );
3164
- }
3165
- // Set from name value.
3166
- if ( strpos( $fromname, '{' . $key . '}' ) > -1 || strpos( $fromname, '%' . $label_each . '%' ) > -1 ) {
3167
- $new_value = str_replace( '<br>', ', ', $this->custom_fields_mail( $type, $key, $id, '', '' ) );
3168
- if ( substr( $new_value, -2 ) == ', ' ) {
3169
- $new_value = substr( $new_value, 0, -2 );
3170
- }
3171
- $fromname = str_replace( array( '%' . $label_each . '%', '{' . $key . '}' ), $new_value, $fromname );
3172
- }
3173
- // Set subject value.
3174
- if ( (strpos( $subject, "{" . $key . "}" ) > -1) || (strpos( $subject, "%" . $label_each . "%" ) > -1) ) {
3175
- $new_value = str_replace( '<br>', ', ', $this->custom_fields_mail( $type, $key1, $id, '', $form_currency ) );
3176
- if ( substr( $new_value, -2 ) == ', ' ) {
3177
- $new_value = substr( $new_value, 0, -2 );
3178
- }
3179
-
3180
- $subject = str_replace( array( '%' . $label_each . '%', '{' . $key . '}' ), $new_value, $subject );
3181
  }
 
3182
  }
3183
- $this->custom_fields['all'] = $list_user;
 
 
 
 
 
3184
 
3185
- foreach ( $this->custom_fields as $key => $custom_field ) {
3186
- $new_script = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $new_script );
3187
- $fromname = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $fromname );
3188
- $from_email = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $from_email );
3189
- $subject = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $subject );
3190
- }
3191
- if ( $fromname === '' ) {
3192
- $fromname = get_bloginfo('name');
3193
  }
 
 
3194
 
3195
- $header_arr = array();
3196
- if ( $row->mail_from_user != '' ) {
3197
- $header_arr[ 'from' ] = $from_email;
3198
- }
3199
- $header_arr['from_name'] = $fromname;
3200
- $header_arr['content_type'] = $content_type;
3201
- $header_arr['charset'] = 'UTF-8';
3202
- $header_arr['reply_to'] = $row->reply_to_user;
3203
- $header_arr['cc'] = $row->mail_cc_user;
3204
- $header_arr['bcc'] = $row->mail_bcc_user;
3205
 
3206
- $body = $new_script;
3207
- $pdf_data = array('attach_to_admin' => 0, 'attach_to_user' => 0, 'pdf_url' => '');
3208
- if ( WDFMInstance(self::PLUGIN)->is_free != 2 ) {
3209
- $pdf_data = apply_filters( 'fm_pdf_data_frontend', $pdf_data, array( 'custom_fields' => $this->custom_fields, 'form_id' => $id ) );
3210
- }
3211
- if ( $pdf_data['attach_to_user'] ) {
3212
- array_push( $attachment_user, $pdf_data['pdf_url'] );
3213
- }
 
 
 
 
 
 
 
 
 
 
 
3214
 
 
3215
  if ( $row->send_to ) {
 
3216
  $send_tos = explode( '**', $row->send_to );
3217
  $send_copy = isset( $_POST[ "wdform_send_copy_" . $id ] ) ? $_POST[ "wdform_send_copy_" . $id ] : NULL;
3218
  if ( isset( $send_copy ) ) {
996
  .fm-form-container.fm-theme' . $theme_id . ' .fm-form input[type="checkbox"] {' .
997
  (!empty( $form_theme[ 'MCCPBackground' ] ) || !empty( $form_theme[ 'MCCPBGColor' ] ) ? 'display: none;' : '') .
998
  '}';
999
+ $css_content .= $form_theme[ 'CUPCSS' ];
1000
  }
1001
+ if ( !empty( $form_theme[ 'CUPCSS' ] ) && empty( $form_theme[ 'HPAlign' ] ) ) {
1002
  $pattern = '/\/\/(.+)(\r\n|\r|\n)/';
1003
  $form_theme_css = $form_theme[ 'CUPCSS' ];
1004
  if ( strpos( $form_theme_css, ':checked + label' ) !== FALSE ) {
1354
  if ( !$form->form_front ) {
1355
  $id = '';
1356
  }
1357
+ $form_currency = '$';
1358
  if ( $form->payment_currency ) {
1359
  $form_currency = $form->payment_currency;
1360
  }
3119
  $list = $list . '</table>';
3120
 
3121
  // User part.
3122
+ $fromname = $row->mail_from_name_user;
3123
+ $from_email = $row->mail_from_user;
3124
+ $subject = !empty( $row->mail_subject_user ) ? $row->mail_subject_user : $row->title;
3125
+ $attachment_user = array();
3126
+ if ( !WDFMInstance(self::PLUGIN)->is_demo ) {
3127
+ for ( $k = 0; $k < count( $all_files ); $k++ ) {
3128
+ if ( isset( $all_files[ $k ][ 'tmp_name' ] ) ) {
3129
+ if ( !isset( $attachment_user[ $all_files[ $k ][ 'field_key' ] ] ) ) {
3130
+ $attachment_user[ $all_files[ $k ][ 'field_key' ] ] = array();
3131
+ }
3132
+ $file_name = $all_files[$k]['tmp_name'];
3133
+ if ( $row->save_uploads == 1 ) {
3134
+ $basedir = str_replace( site_url() .'/', '', $upload_dir['baseurl'] );
3135
+ $file = $basedir . $file_name;
3136
+ } else {
3137
+ $file = $file_name;
 
 
 
3138
  }
3139
+ array_push($attachment_user[$all_files[$k]['field_key']], $file);
3140
  }
3141
  }
3142
+ }
3143
 
3144
+ if ( $row->mail_mode_user ) {
3145
+ $content_type = "text/html";
3146
+ $list_user = wordwrap( $list, 100, "\n", TRUE );
3147
+ $new_script = wpautop( $row->script_mail_user );
3148
+ } else {
3149
+ $content_type = "text/plain";
3150
+ $list_user = wordwrap( $list_text_mode, 1000, "\n", TRUE );
3151
+ $new_script = str_replace( array( '<p>', '</p>' ), '', $row->script_mail_user );
3152
+ }
3153
+ foreach ( $label_order_original as $key => $label_each ) {
3154
+ $type = $label_type[ $key ];
3155
+ $key1 = $type == 'type_hidden' ? $label_each : $key;
3156
+ $label_each_decoded = htmlspecialchars_decode( $label_each );
3157
+ $new_value = $this->custom_fields_mail( $type, $key1, $id, $attachment_user, $form_currency );
3158
+ $key_replace = array( '%' . $label_each_decoded . '%', '{' . $key . '}' );
3159
 
3160
+ $new_script = str_replace( $key_replace, $new_value, $new_script );
3161
 
3162
+ if ( $type == "type_file_upload" ) {
3163
+ $new_value = $this->custom_fields_mail( $type, $key, $id, $attachment_user, $form_currency, 1 );
3164
+ $new_script = str_replace( array( '%' . $label_each_decoded . '(link)%', '{' . $key . '(link)}' ), $new_value, $new_script );
3165
+ }
3166
+ // Set from name value.
3167
+ if ( strpos( $fromname, '{' . $key . '}' ) > -1 || strpos( $fromname, '%' . $label_each . '%' ) > -1 ) {
3168
+ $new_value = str_replace( '<br>', ', ', $this->custom_fields_mail( $type, $key, $id, '', '' ) );
3169
+ if ( substr( $new_value, -2 ) == ', ' ) {
3170
+ $new_value = substr( $new_value, 0, -2 );
 
 
 
 
 
 
 
 
 
 
 
3171
  }
3172
+ $fromname = str_replace( array( '%' . $label_each . '%', '{' . $key . '}' ), $new_value, $fromname );
3173
  }
3174
+ // Set subject value.
3175
+ if ( (strpos( $subject, "{" . $key . "}" ) > -1) || (strpos( $subject, "%" . $label_each . "%" ) > -1) ) {
3176
+ $new_value = str_replace( '<br>', ', ', $this->custom_fields_mail( $type, $key1, $id, '', $form_currency ) );
3177
+ if ( substr( $new_value, -2 ) == ', ' ) {
3178
+ $new_value = substr( $new_value, 0, -2 );
3179
+ }
3180
 
3181
+ $subject = str_replace( array( '%' . $label_each . '%', '{' . $key . '}' ), $new_value, $subject );
 
 
 
 
 
 
 
3182
  }
3183
+ }
3184
+ $this->custom_fields['all'] = $list_user;
3185
 
3186
+ foreach ( $this->custom_fields as $key => $custom_field ) {
3187
+ $new_script = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $new_script );
3188
+ $fromname = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $fromname );
3189
+ $from_email = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $from_email );
3190
+ $subject = str_replace( array( '%' . $key . '%', '{' . $key . '}' ), $custom_field, $subject );
3191
+ }
3192
+ if ( $fromname === '' ) {
3193
+ $fromname = get_bloginfo('name');
3194
+ }
 
3195
 
3196
+ $header_arr = array();
3197
+ if ( $row->mail_from_user != '' ) {
3198
+ $header_arr[ 'from' ] = $from_email;
3199
+ }
3200
+ $header_arr['from_name'] = $fromname;
3201
+ $header_arr['content_type'] = $content_type;
3202
+ $header_arr['charset'] = 'UTF-8';
3203
+ $header_arr['reply_to'] = $row->reply_to_user;
3204
+ $header_arr['cc'] = $row->mail_cc_user;
3205
+ $header_arr['bcc'] = $row->mail_bcc_user;
3206
+
3207
+ // PDF output for add-on.
3208
+ $pdf_data = array('attach_to_admin' => 0, 'attach_to_user' => 0, 'pdf_url' => '');
3209
+ if ( WDFMInstance(self::PLUGIN)->is_free != 2 ) {
3210
+ $pdf_data = apply_filters( 'fm_pdf_data_frontend', $pdf_data, array( 'custom_fields' => $this->custom_fields, 'form_id' => $id ) );
3211
+ }
3212
+ if ( $pdf_data['attach_to_user'] ) {
3213
+ array_push( $attachment_user, $pdf_data['pdf_url'] );
3214
+ }
3215
 
3216
+ if ( $row->sendemail ) {
3217
  if ( $row->send_to ) {
3218
+ $body = $new_script;
3219
  $send_tos = explode( '**', $row->send_to );
3220
  $send_copy = isset( $_POST[ "wdform_send_copy_" . $id ] ) ? $_POST[ "wdform_send_copy_" . $id ] : NULL;
3221
  if ( isset( $send_copy ) ) {
images/themes/checkboxes/5.png ADDED
Binary file
js/main_div_front_end.js CHANGED
@@ -419,7 +419,7 @@ function generate_page_nav(id, form_id, form_view_count, form_view_max) {
419
  td.style.display="table-cell";
420
  td.style.width="40%";
421
  page_nav.appendChild(td);
422
- if(form_view_elemet.parentNode.previousSibling && form_view_elemet.parentNode.previousSibling.previousSibling) {
423
  if(form_view_elemet.parentNode.previousSibling.tagName=="DIV") {
424
  table=form_view_elemet.parentNode.previousSibling;
425
  }
@@ -620,7 +620,7 @@ function make_page_steps_front(form_view, form_id, form_view_count, form_view_ma
620
  page_number.setAttribute('id','page_'+j);
621
  if(j<form_view) {
622
  if(previous_checkable) {
623
- page_number.setAttribute('onClick','if(fm_check('+form_view+', '+form_id+')) generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
624
  }
625
  else {
626
  page_number.setAttribute('onClick','generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
@@ -628,7 +628,7 @@ function make_page_steps_front(form_view, form_id, form_view_count, form_view_ma
628
  }
629
  if(j>form_view) {
630
  if(next_checkable) {
631
- page_number.setAttribute('onClick','if(fm_check('+form_view+', '+form_id+')) generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
632
  }
633
  else {
634
  page_number.setAttribute('onClick','generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
@@ -711,7 +711,7 @@ function make_pagebreak_button(next_or_previous,title,type, class_, checkable, i
711
  element.setAttribute('id', "page_"+next_or_previous+"_"+id);
712
  element.setAttribute('class', class_);
713
  if(checkable=="true") {
714
- element.setAttribute('onClick', "if(fm_check("+id+", "+form_id+")) page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
715
  }
716
  else {
717
  element.setAttribute('onClick', "page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
@@ -724,7 +724,7 @@ function make_pagebreak_button(next_or_previous,title,type, class_, checkable, i
724
  element.setAttribute('id', "page_"+next_or_previous+"_"+id);
725
  element.setAttribute('class', class_);
726
  if(checkable=="true") {
727
- element.setAttribute('onClick', "if(fm_check("+id+", "+form_id+")) page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
728
  }
729
  else {
730
  element.setAttribute('onClick', "page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
@@ -795,6 +795,22 @@ function page_next(id, form_id, form_view_count, form_view_max) {
795
  }
796
  }
797
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
798
  function getfileextension(filename, exten) {
799
  if( typeof filename == 'undefined' || filename.length == 0) {
800
  return true;
@@ -1054,6 +1070,16 @@ function scroll_on_element(form_id) {
1054
  return true;
1055
  }
1056
  var parent_div = jQuery("#form" + form_id + " .fm-not-filled").closest(".wdform_row");
 
 
 
 
 
 
 
 
 
 
1057
  var body_hight = document.body.clientHeight;
1058
  var element_offset = jQuery("#form" + form_id + " .fm-not-filled").offset().top;
1059
 
@@ -1107,17 +1133,20 @@ function wd_file_upload_check(form_id, upload_check_field){
1107
  return false;
1108
  }
1109
 
1110
- function wd_is_filled(form_id, field_id) {
 
 
 
1111
  var x = jQuery("#form" + form_id);
1112
  var req_fields = field_id ? field_id.split() : window['required_fields'+form_id];
1113
  var not_filled = {};
1114
  jQuery(req_fields).each(function(index, wdid) {
1115
- if ( x.find(jQuery("div[wdid='"+wdid+"']")).is(":visible") === false ) {
1116
  x.find(jQuery("div[wdid='"+wdid+"']")).find('.fm-not-filled').remove();
1117
  x.find(jQuery("div[wdid='"+wdid+"']")).css("background-color", "");
1118
  x.find(jQuery("div[wdid='"+wdid+"'] label")).removeClass("error_label");
1119
  }
1120
- if ( x.find(jQuery("div[wdid='"+wdid+"']")).length != 0 && x.find(jQuery("div[wdid='"+wdid+"']")).is(":visible") === true ) {
1121
  switch(window['labels_and_ids'+form_id][wdid]) {
1122
  case 'type_text':
1123
  case 'type_textarea':
@@ -1127,7 +1156,7 @@ function wd_is_filled(form_id, field_id) {
1127
  case 'type_phone_new':
1128
  case 'type_submitter_mail': {
1129
  var element = "#wdform_" + wdid + "_element" + form_id;
1130
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1131
  if(jQuery(element).val() == jQuery(element).attr('title') || jQuery(element).val() == ""){
1132
  not_filled[wdid] = element;
1133
  }
@@ -1146,7 +1175,7 @@ function wd_is_filled(form_id, field_id) {
1146
  case 'type_country':
1147
  case 'type_paypal_select': {
1148
  var element = "#wdform_" + wdid + "_element" + form_id;
1149
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1150
  if(jQuery(element).val() == "") {
1151
  not_filled[wdid] = element;
1152
  }
@@ -1167,7 +1196,7 @@ function wd_is_filled(form_id, field_id) {
1167
  case 'type_phone': {
1168
  var element = ["#wdform_" + wdid + "_element_first" + form_id, "#wdform_" + wdid + "_element_last" + form_id];
1169
  jQuery.each(element, function(i, elem){
1170
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1171
  if(jQuery(elem).val() == "" || jQuery(elem).val() == jQuery(elem).attr('title')){
1172
  not_filled[wdid] = elem;
1173
  }
@@ -1186,7 +1215,7 @@ function wd_is_filled(form_id, field_id) {
1186
  case 'type_name': {
1187
  var element = ["#wdform_" + wdid + "_element_title" + form_id, "#wdform_" + wdid + "_element_first" + form_id, "#wdform_" + wdid + "_element_last" + form_id, "#wdform_" + wdid + "_element_middle" + form_id];
1188
  jQuery.each(element, function(i, elem){
1189
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1190
  if((jQuery(elem).val() == "" || jQuery(elem).val() == jQuery(elem).attr('title')) && typeof jQuery(elem).val() != "undefined"){
1191
  not_filled[wdid] = elem;
1192
  }
@@ -1205,7 +1234,7 @@ function wd_is_filled(form_id, field_id) {
1205
  case 'type_address': {
1206
  var element = ["#wdform_" + wdid + "_street1" + form_id, "#wdform_" + wdid + "_street2" + form_id, "#wdform_" + wdid + "_city" + form_id, "#wdform_" + wdid + "_state" + form_id, "#wdform_" + wdid + "_postal" + form_id, "#wdform_" + wdid + "_country" + form_id];
1207
  jQuery.each(element, function(i, elem){
1208
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1209
  if(jQuery(elem).val() == "" && typeof jQuery(elem).val() != "undefined"){
1210
  not_filled[wdid] = elem;
1211
  }
@@ -1227,7 +1256,7 @@ function wd_is_filled(form_id, field_id) {
1227
  case 'type_paypal_checkbox':
1228
  case 'type_paypal_radio':
1229
  case 'type_paypal_shipping': {
1230
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none"){
1231
  if(x.find(jQuery("div[wdid='"+ wdid +"'] input:checked")).length == 0 || jQuery("#wdform_"+ wdid +"_other_input" + form_id).val() == ""){
1232
  not_filled[wdid] = true;
1233
  }
@@ -1249,7 +1278,7 @@ function wd_is_filled(form_id, field_id) {
1249
  }
1250
  case 'type_star_rating': {
1251
  var element = "#wdform_" + wdid + "_selected_star_amount" + form_id;
1252
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1253
  if(jQuery(element).val() == ""){
1254
  not_filled[wdid] = true;
1255
  }
@@ -1267,7 +1296,7 @@ function wd_is_filled(form_id, field_id) {
1267
  case 'type_range': {
1268
  var element = ["#wdform_" + wdid + "_element" + form_id + "0", "#wdform_" + wdid + "_element" + form_id + "1"];
1269
  jQuery.each(element, function(i, elem){
1270
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1271
  if(jQuery(elem).val() == ""){
1272
  not_filled[wdid] = elem;
1273
  }
@@ -1284,7 +1313,7 @@ function wd_is_filled(form_id, field_id) {
1284
  break;
1285
  }
1286
  case 'type_grading': {
1287
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1288
  var count_grading = 0;
1289
  jQuery.each(jQuery("#wdform_" + wdid + "_element" + form_id + " input"), function( i, val ){
1290
  if(jQuery(this).val() != "")
@@ -1310,7 +1339,7 @@ function wd_is_filled(form_id, field_id) {
1310
  var slider_element = "#wdform_" + wdid + "_element" + form_id;
1311
  var element = "#wdform_" + wdid + "_slider_value" + form_id;
1312
  var min_value = "#wdform_" + wdid + "_element_min" + form_id;
1313
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1314
  if(jQuery(element).val() == jQuery(min_value).html()){
1315
  not_filled[wdid] = true;
1316
  }
@@ -1329,7 +1358,7 @@ function wd_is_filled(form_id, field_id) {
1329
  case 'type_date':
1330
  case 'type_date_new': {
1331
  var element = "#wdform_" + wdid + "_element" + form_id;
1332
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1333
  if(jQuery(element).val() == ""){
1334
  not_filled[wdid] = element;
1335
  }
@@ -1347,7 +1376,7 @@ function wd_is_filled(form_id, field_id) {
1347
  case 'type_date_range': {
1348
  var element = ["#wdform_" + wdid + "_element" + form_id + "0", "#wdform_" + wdid + "_element" + form_id + "1"];
1349
  jQuery.each(element, function(i, elem){
1350
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1351
  if(jQuery(elem).val() == ""){
1352
  not_filled[wdid] = elem;
1353
  }
@@ -1366,7 +1395,7 @@ function wd_is_filled(form_id, field_id) {
1366
  case 'type_date_fields': {
1367
  var element = ["#wdform_" + wdid + "_day" + form_id, "#wdform_" + wdid + "_month" + form_id, "#wdform_" + wdid + "_year" + form_id];
1368
  jQuery.each(element, function(i, elem) {
1369
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1370
  if(jQuery(elem).val() == ""){
1371
  not_filled[wdid] = elem;
1372
  }
@@ -1387,7 +1416,7 @@ function wd_is_filled(form_id, field_id) {
1387
  case 'type_time': {
1388
  var element = ["#wdform_" + wdid + "_hh" + form_id, "#wdform_" + wdid + "_mm" + form_id, "#wdform_" + wdid + "_ss" + form_id];
1389
  jQuery.each(element, function(i, elem){
1390
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1391
  if(jQuery(elem).val() == "" && typeof jQuery(elem).val() != "undefined"){
1392
  not_filled[wdid] = elem;
1393
  }
@@ -1405,7 +1434,7 @@ function wd_is_filled(form_id, field_id) {
1405
  }
1406
  case 'type_password': {
1407
  var element = "#wdform_" + wdid + "_element" + form_id;
1408
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1409
  if(jQuery(element).val() == ""){
1410
  not_filled[wdid] = element;
1411
  }
@@ -1422,7 +1451,7 @@ function wd_is_filled(form_id, field_id) {
1422
  }
1423
  case 'type_file_upload': {
1424
  var element = "#wdform_" + wdid + "_element" + form_id;
1425
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1426
  if(jQuery(element).val() == jQuery(element).attr('title') || jQuery(element).val() == ""){
1427
  not_filled[wdid] = element;
1428
  }
@@ -1441,7 +1470,7 @@ function wd_is_filled(form_id, field_id) {
1441
  }
1442
  case 'type_matrix': {
1443
  if(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input").attr('type') =="radio" || jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input").attr('type') =="checkbox"){
1444
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1445
  if(x.find(jQuery("div[wdid='"+ wdid +"'] input:checked")).length == 0){
1446
  not_filled[wdid] = true;
1447
  }
@@ -1461,7 +1490,7 @@ function wd_is_filled(form_id, field_id) {
1461
  }
1462
  }
1463
  else if(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input").attr('type') =="text") {
1464
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1465
  var count_input_matrix = 0;
1466
  jQuery.each(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input"), function( i, val ){
1467
  if(jQuery(this).val() != "")
@@ -1484,7 +1513,7 @@ function wd_is_filled(form_id, field_id) {
1484
  }
1485
  }
1486
  else {
1487
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1488
  var count_select_matrix = 0;
1489
  jQuery.each(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] select"), function( i, val ){
1490
  if(jQuery(this).val() != "")
@@ -1511,7 +1540,7 @@ function wd_is_filled(form_id, field_id) {
1511
  break;
1512
  }
1513
  case 'type_send_copy': {
1514
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1515
  if(jQuery("div[wdid='"+ wdid +"'] input:checked").length == 0){
1516
  not_filled[wdid] = true;
1517
  }
@@ -1538,7 +1567,7 @@ function wd_is_filled(form_id, field_id) {
1538
  else {
1539
  element = '#wd_arithmetic_captcha_input' + form_id;
1540
  }
1541
- if(x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') !="none") {
1542
  if(jQuery(element).val() == ""){
1543
  jQuery(".message_captcha").html("");
1544
  not_filled[wdid] = element;
@@ -1663,8 +1692,8 @@ function fm_submit_form(form_id) {
1663
 
1664
  if (window['checkStripe' + form_id] == 1) {
1665
  var jq_mainForm = jQuery("form[id='form"+form_id+"']");
1666
- if (jq_mainForm.find(".wdfm_stripe_elem").first().parent().parents(".wdform_row").is(":visible")) {
1667
- wdfm_call_stripe();
1668
  }
1669
  else {
1670
  if (jQuery("#form"+form_id).find('.g-recaptcha[data-size=invisible]').length > 0) {
@@ -2024,10 +2053,21 @@ function fm_document_ready(form_id) {
2024
  window["condition_js" + form_id]();
2025
  }
2026
 
2027
- function fm_check(id, form_id) {
2028
- if(!wd_is_filled(form_id)) {
2029
  return false;
2030
  }
 
 
 
 
 
 
 
 
 
 
 
2031
  if(!wd_check_regExp(form_id)) {
2032
  return false;
2033
  }
419
  td.style.display="table-cell";
420
  td.style.width="40%";
421
  page_nav.appendChild(td);
422
+ if(form_view_elemet.parentNode.previousSibling && 'wdform-page-and-images' == form_view_elemet.parentNode.previousSibling.className && form_view_elemet.parentNode.previousSibling.previousSibling) {
423
  if(form_view_elemet.parentNode.previousSibling.tagName=="DIV") {
424
  table=form_view_elemet.parentNode.previousSibling;
425
  }
620
  page_number.setAttribute('id','page_'+j);
621
  if(j<form_view) {
622
  if(previous_checkable) {
623
+ page_number.setAttribute('onClick','if(fm_check('+form_view+', '+form_id+', false)) generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
624
  }
625
  else {
626
  page_number.setAttribute('onClick','generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
628
  }
629
  if(j>form_view) {
630
  if(next_checkable) {
631
+ page_number.setAttribute('onClick','if(fm_check('+form_view+', '+form_id+', false)) generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
632
  }
633
  else {
634
  page_number.setAttribute('onClick','generate_page_nav("'+j+'", "'+form_id+'", "'+form_view_count+'", "'+form_view_max+'")');
711
  element.setAttribute('id', "page_"+next_or_previous+"_"+id);
712
  element.setAttribute('class', class_);
713
  if(checkable=="true") {
714
+ element.setAttribute('onClick', "if(fm_check("+id+", "+form_id+", false)) page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
715
  }
716
  else {
717
  element.setAttribute('onClick', "page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
724
  element.setAttribute('id', "page_"+next_or_previous+"_"+id);
725
  element.setAttribute('class', class_);
726
  if(checkable=="true") {
727
+ element.setAttribute('onClick', "if(fm_check("+id+", "+form_id+", false)) page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
728
  }
729
  else {
730
  element.setAttribute('onClick', "page_"+next_or_previous+"("+id+","+form_id+","+form_view_count+","+form_view_max+")");
795
  }
796
  }
797
 
798
+ function fm_go_to_page(id, form_id, form_view_count, form_view_max) {
799
+ form_view_elemet = document.getElementById(form_id + 'form_view' + id);
800
+ table = form_view_elemet.parentNode;
801
+
802
+ if (!table.firstChild.tagName) {
803
+ table.removeChild(table.firstChild);
804
+ }
805
+ generate_page_nav(table.firstChild.id.replace(form_id + 'form_view', ""), form_id, form_view_count, form_view_max);
806
+ form = jQuery("#form" + form_id);
807
+ if (!form.parent().hasClass('fm-scrollbox-form')) {
808
+ jQuery('html').animate({
809
+ scrollTop: form.offset().top - 150
810
+ }, 500);
811
+ }
812
+ }
813
+
814
  function getfileextension(filename, exten) {
815
  if( typeof filename == 'undefined' || filename.length == 0) {
816
  return true;
1070
  return true;
1071
  }
1072
  var parent_div = jQuery("#form" + form_id + " .fm-not-filled").closest(".wdform_row");
1073
+ var parent_div_page = parent_div.closest('.wdform_page');
1074
+ if ('none' == parent_div_page.parent().css('display')) {
1075
+ var pagebreak_count = jQuery("#form"+form_id+" .wdform-page-and-images").length;
1076
+ var maxid = jQuery("#form"+form_id+" .wdform_page").last().attr("id");
1077
+ maxid = maxid.split("form_view");
1078
+
1079
+ var page_with_error = parent_div_page.attr('id');
1080
+ page_with_error = page_with_error.split('form_view')[1];
1081
+ fm_go_to_page(page_with_error, form_id, pagebreak_count, maxid[1]);
1082
+ }
1083
  var body_hight = document.body.clientHeight;
1084
  var element_offset = jQuery("#form" + form_id + " .fm-not-filled").offset().top;
1085
 
1133
  return false;
1134
  }
1135
 
1136
+ function wd_is_filled(form_id, field_id, all_pages) {
1137
+ if (undefined == all_pages) {
1138
+ all_pages = true;
1139
+ }
1140
  var x = jQuery("#form" + form_id);
1141
  var req_fields = field_id ? field_id.split() : window['required_fields'+form_id];
1142
  var not_filled = {};
1143
  jQuery(req_fields).each(function(index, wdid) {
1144
+ if ( x.find(jQuery("div[wdid='"+wdid+"']")).css('display') === 'none' ) {
1145
  x.find(jQuery("div[wdid='"+wdid+"']")).find('.fm-not-filled').remove();
1146
  x.find(jQuery("div[wdid='"+wdid+"']")).css("background-color", "");
1147
  x.find(jQuery("div[wdid='"+wdid+"'] label")).removeClass("error_label");
1148
  }
1149
+ if ( x.find(jQuery("div[wdid='"+wdid+"']")).length != 0 && x.find(jQuery("div[wdid='"+wdid+"']")).css('display') !== 'none' ) {
1150
  switch(window['labels_and_ids'+form_id][wdid]) {
1151
  case 'type_text':
1152
  case 'type_textarea':
1156
  case 'type_phone_new':
1157
  case 'type_submitter_mail': {
1158
  var element = "#wdform_" + wdid + "_element" + form_id;
1159
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1160
  if(jQuery(element).val() == jQuery(element).attr('title') || jQuery(element).val() == ""){
1161
  not_filled[wdid] = element;
1162
  }
1175
  case 'type_country':
1176
  case 'type_paypal_select': {
1177
  var element = "#wdform_" + wdid + "_element" + form_id;
1178
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1179
  if(jQuery(element).val() == "") {
1180
  not_filled[wdid] = element;
1181
  }
1196
  case 'type_phone': {
1197
  var element = ["#wdform_" + wdid + "_element_first" + form_id, "#wdform_" + wdid + "_element_last" + form_id];
1198
  jQuery.each(element, function(i, elem){
1199
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1200
  if(jQuery(elem).val() == "" || jQuery(elem).val() == jQuery(elem).attr('title')){
1201
  not_filled[wdid] = elem;
1202
  }
1215
  case 'type_name': {
1216
  var element = ["#wdform_" + wdid + "_element_title" + form_id, "#wdform_" + wdid + "_element_first" + form_id, "#wdform_" + wdid + "_element_last" + form_id, "#wdform_" + wdid + "_element_middle" + form_id];
1217
  jQuery.each(element, function(i, elem){
1218
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1219
  if((jQuery(elem).val() == "" || jQuery(elem).val() == jQuery(elem).attr('title')) && typeof jQuery(elem).val() != "undefined"){
1220
  not_filled[wdid] = elem;
1221
  }
1234
  case 'type_address': {
1235
  var element = ["#wdform_" + wdid + "_street1" + form_id, "#wdform_" + wdid + "_street2" + form_id, "#wdform_" + wdid + "_city" + form_id, "#wdform_" + wdid + "_state" + form_id, "#wdform_" + wdid + "_postal" + form_id, "#wdform_" + wdid + "_country" + form_id];
1236
  jQuery.each(element, function(i, elem){
1237
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1238
  if(jQuery(elem).val() == "" && typeof jQuery(elem).val() != "undefined"){
1239
  not_filled[wdid] = elem;
1240
  }
1256
  case 'type_paypal_checkbox':
1257
  case 'type_paypal_radio':
1258
  case 'type_paypal_shipping': {
1259
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none"){
1260
  if(x.find(jQuery("div[wdid='"+ wdid +"'] input:checked")).length == 0 || jQuery("#wdform_"+ wdid +"_other_input" + form_id).val() == ""){
1261
  not_filled[wdid] = true;
1262
  }
1278
  }
1279
  case 'type_star_rating': {
1280
  var element = "#wdform_" + wdid + "_selected_star_amount" + form_id;
1281
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1282
  if(jQuery(element).val() == ""){
1283
  not_filled[wdid] = true;
1284
  }
1296
  case 'type_range': {
1297
  var element = ["#wdform_" + wdid + "_element" + form_id + "0", "#wdform_" + wdid + "_element" + form_id + "1"];
1298
  jQuery.each(element, function(i, elem){
1299
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1300
  if(jQuery(elem).val() == ""){
1301
  not_filled[wdid] = elem;
1302
  }
1313
  break;
1314
  }
1315
  case 'type_grading': {
1316
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1317
  var count_grading = 0;
1318
  jQuery.each(jQuery("#wdform_" + wdid + "_element" + form_id + " input"), function( i, val ){
1319
  if(jQuery(this).val() != "")
1339
  var slider_element = "#wdform_" + wdid + "_element" + form_id;
1340
  var element = "#wdform_" + wdid + "_slider_value" + form_id;
1341
  var min_value = "#wdform_" + wdid + "_element_min" + form_id;
1342
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1343
  if(jQuery(element).val() == jQuery(min_value).html()){
1344
  not_filled[wdid] = true;
1345
  }
1358
  case 'type_date':
1359
  case 'type_date_new': {
1360
  var element = "#wdform_" + wdid + "_element" + form_id;
1361
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1362
  if(jQuery(element).val() == ""){
1363
  not_filled[wdid] = element;
1364
  }
1376
  case 'type_date_range': {
1377
  var element = ["#wdform_" + wdid + "_element" + form_id + "0", "#wdform_" + wdid + "_element" + form_id + "1"];
1378
  jQuery.each(element, function(i, elem){
1379
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1380
  if(jQuery(elem).val() == ""){
1381
  not_filled[wdid] = elem;
1382
  }
1395
  case 'type_date_fields': {
1396
  var element = ["#wdform_" + wdid + "_day" + form_id, "#wdform_" + wdid + "_month" + form_id, "#wdform_" + wdid + "_year" + form_id];
1397
  jQuery.each(element, function(i, elem) {
1398
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1399
  if(jQuery(elem).val() == ""){
1400
  not_filled[wdid] = elem;
1401
  }
1416
  case 'type_time': {
1417
  var element = ["#wdform_" + wdid + "_hh" + form_id, "#wdform_" + wdid + "_mm" + form_id, "#wdform_" + wdid + "_ss" + form_id];
1418
  jQuery.each(element, function(i, elem){
1419
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1420
  if(jQuery(elem).val() == "" && typeof jQuery(elem).val() != "undefined"){
1421
  not_filled[wdid] = elem;
1422
  }
1434
  }
1435
  case 'type_password': {
1436
  var element = "#wdform_" + wdid + "_element" + form_id;
1437
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1438
  if(jQuery(element).val() == ""){
1439
  not_filled[wdid] = element;
1440
  }
1451
  }
1452
  case 'type_file_upload': {
1453
  var element = "#wdform_" + wdid + "_element" + form_id;
1454
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1455
  if(jQuery(element).val() == jQuery(element).attr('title') || jQuery(element).val() == ""){
1456
  not_filled[wdid] = element;
1457
  }
1470
  }
1471
  case 'type_matrix': {
1472
  if(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input").attr('type') =="radio" || jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input").attr('type') =="checkbox"){
1473
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1474
  if(x.find(jQuery("div[wdid='"+ wdid +"'] input:checked")).length == 0){
1475
  not_filled[wdid] = true;
1476
  }
1490
  }
1491
  }
1492
  else if(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input").attr('type') =="text") {
1493
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1494
  var count_input_matrix = 0;
1495
  jQuery.each(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] input"), function( i, val ){
1496
  if(jQuery(this).val() != "")
1513
  }
1514
  }
1515
  else {
1516
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1517
  var count_select_matrix = 0;
1518
  jQuery.each(jQuery("#form" + form_id + " div[wdid='"+ wdid +"'] select"), function( i, val ){
1519
  if(jQuery(this).val() != "")
1540
  break;
1541
  }
1542
  case 'type_send_copy': {
1543
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1544
  if(jQuery("div[wdid='"+ wdid +"'] input:checked").length == 0){
1545
  not_filled[wdid] = true;
1546
  }
1567
  else {
1568
  element = '#wd_arithmetic_captcha_input' + form_id;
1569
  }
1570
+ if(all_pages || x.find(jQuery("div[wdid='"+wdid+"']")).closest(".wdform-page-and-images").css('display') != "none") {
1571
  if(jQuery(element).val() == ""){
1572
  jQuery(".message_captcha").html("");
1573
  not_filled[wdid] = element;
1692
 
1693
  if (window['checkStripe' + form_id] == 1) {
1694
  var jq_mainForm = jQuery("form[id='form"+form_id+"']");
1695
+ if (jq_mainForm.find(".wdfm_stripe_elem").first().parent().parents(".wdform_row").css('display') != 'none') {
1696
+ wdfm_call_stripe(true);
1697
  }
1698
  else {
1699
  if (jQuery("#form"+form_id).find('.g-recaptcha[data-size=invisible]').length > 0) {
2053
  window["condition_js" + form_id]();
2054
  }
2055
 
2056
+ function fm_check(id, form_id, all_pages) {
2057
+ if(!wd_is_filled(form_id, undefined, all_pages)) {
2058
  return false;
2059
  }
2060
+ /* Check Stripe fields when changing page. */
2061
+ if (window['checkStripe' + form_id] == 1) {
2062
+ var jq_mainForm = jQuery("form[id='form" + form_id + "']");
2063
+ if ('none' != jq_mainForm.find(".wdfm_stripe_elem").first().closest('.wdform-page-and-images').css('display')) {
2064
+ if (jq_mainForm.find(".wdfm_stripe_elem").first().parent().parents(".wdform_row").css('display') != 'none') {
2065
+ if (wdfm_call_stripe(false) == false) {
2066
+ return false;
2067
+ }
2068
+ }
2069
+ }
2070
+ }
2071
  if(!wd_check_regExp(form_id)) {
2072
  return false;
2073
  }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: webdorado,10web,wdsupport,formmakersupport
3
  Tags: form, form builder, contact form, custom form, feedback, contact, web contact form, captcha, email, form manager, forms, survey
4
  Requires at least: 4.6
5
  Tested up to: 4.9
6
- Stable tag: 1.12.34
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -74,15 +74,15 @@ Form Maker supports 12 premium add-ons to power up your forms even further. Whet
74
  * [Export/Import](https://web-dorado.com/products/wordpress-form/add-ons/export-import.html)
75
  * [PDF Integration](https://web-dorado.com/products/wordpress-form/add-ons/pdf.html)
76
  * [Save Progress](https://web-dorado.com/products/wordpress-form/add-ons/save-progress.html)
77
- * [Calculator](https://web-dorado.com/products/wordpress-form/add-ons/calculator.html)
78
  * [Stripe Integration](https://web-dorado.com/products/wordpress-form/add-ons/stripe.html)
79
- * [Post Generation](https://web-dorado.com/products/wordpress-form/add-ons/post-generation.html)
80
- * [Google Drive Integration](https://web-dorado.com/products/wordpress-form/add-ons/google-drive.html)
81
- * [Dropbox Integration](https://web-dorado.com/products/wordpress-form/add-ons/dropbox.html)
82
  * [Conditional Emails](https://web-dorado.com/products/wordpress-form/add-ons/conditional-emails.html)
83
  * [WordPress Registration](https://web-dorado.com/products/wordpress-form/add-ons/registration.html)
 
84
  * [Mailchimp Integration](https://web-dorado.com/products/wordpress-form/add-ons/mailchimp.html)
 
 
85
  * [Pushover Integration](https://web-dorado.com/products/wordpress-form/add-ons/pushover.html)
 
86
 
87
  **SETTINGS/CUSTOMIZATION**
88
  _\*Some customizations described here are available in Premium version. Please refer to feature summary for additional info._
@@ -452,7 +452,12 @@ Where **{{field_id}}** is the ID of the field you wish to prefill. Also, **{{par
452
 
453
  == Changelog ==
454
 
455
- = 2.12.34 =
 
 
 
 
 
456
  * Added: Additional security check to block form submissions from bots.
457
  * Improved: Submissions CSV/XML export for bigger forms.
458
  * Improved: Rendering of forms in Elementor front-end builder preview.
@@ -1278,22 +1283,22 @@ New themes
1278
  * Customizable Email message for Administrator and Users
1279
  = 1.3.0 =
1280
  * Actions after form Submission:
1281
- - Stay on form:
1282
- - To go to Post,Page after the form submission:
1283
- - Custom text after the form submission:
1284
- - URL: The user is redirected to the provided URL after the form submission.
1285
  * Edit javascript of the form:
1286
  * Save as the copy of the form:
1287
  * Themes: There are 43 standard themes included in Form Maker
1288
  * New form fields:
1289
- - Address field
1290
- - Address mark on map form field
1291
- - Number form field
1292
- - Phone form field
1293
- - Date 3 different form field
1294
- - Time form field
1295
- - Country list form field
1296
- - Recapthca form field
1297
  * Pagebreak of the [Wordpress Form](http://wordpress.org/plugins/form-maker/) Maker: This can be used to break the form into distinct pages.
1298
  * Section Break of the Form Maker: This option allows adding a section break to the form page.
1299
  * For each form certain types of statistical data are available in the form builder tool:
3
  Tags: form, form builder, contact form, custom form, feedback, contact, web contact form, captcha, email, form manager, forms, survey
4
  Requires at least: 4.6
5
  Tested up to: 4.9
6
+ Stable tag: 1.12.35
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
74
  * [Export/Import](https://web-dorado.com/products/wordpress-form/add-ons/export-import.html)
75
  * [PDF Integration](https://web-dorado.com/products/wordpress-form/add-ons/pdf.html)
76
  * [Save Progress](https://web-dorado.com/products/wordpress-form/add-ons/save-progress.html)
 
77
  * [Stripe Integration](https://web-dorado.com/products/wordpress-form/add-ons/stripe.html)
 
 
 
78
  * [Conditional Emails](https://web-dorado.com/products/wordpress-form/add-ons/conditional-emails.html)
79
  * [WordPress Registration](https://web-dorado.com/products/wordpress-form/add-ons/registration.html)
80
+ * [Post Generation](https://web-dorado.com/products/wordpress-form/add-ons/post-generation.html)
81
  * [Mailchimp Integration](https://web-dorado.com/products/wordpress-form/add-ons/mailchimp.html)
82
+ * [Dropbox Integration](https://web-dorado.com/products/wordpress-form/add-ons/dropbox.html)
83
+ * [Google Drive Integration](https://web-dorado.com/products/wordpress-form/add-ons/google-drive.html)
84
  * [Pushover Integration](https://web-dorado.com/products/wordpress-form/add-ons/pushover.html)
85
+ * [Calculator](https://web-dorado.com/products/wordpress-form/add-ons/calculator.html)
86
 
87
  **SETTINGS/CUSTOMIZATION**
88
  _\*Some customizations described here are available in Premium version. Please refer to feature summary for additional info._
452
 
453
  == Changelog ==
454
 
455
+ = 1.12.35 =
456
+ * Fixed: PDF should be generated even if sending emails is off.
457
+ * Fixed: Field validation issues on multi-page forms.
458
+ * Fixed: Issue with Exporting/Importing a form with special characters in header.
459
+
460
+ = 1.12.34 =
461
  * Added: Additional security check to block form submissions from bots.
462
  * Improved: Submissions CSV/XML export for bigger forms.
463
  * Improved: Rendering of forms in Elementor front-end builder preview.
1283
  * Customizable Email message for Administrator and Users
1284
  = 1.3.0 =
1285
  * Actions after form Submission:
1286
+ - Stay on form:
1287
+ - To go to Post,Page after the form submission:
1288
+ - Custom text after the form submission:
1289
+ - URL: The user is redirected to the provided URL after the form submission.
1290
  * Edit javascript of the form:
1291
  * Save as the copy of the form:
1292
  * Themes: There are 43 standard themes included in Form Maker
1293
  * New form fields:
1294
+ - Address field
1295
+ - Address mark on map form field
1296
+ - Number form field
1297
+ - Phone form field
1298
+ - Date 3 different form field
1299
+ - Time form field
1300
+ - Country list form field
1301
+ - Recapthca form field
1302
  * Pagebreak of the [Wordpress Form](http://wordpress.org/plugins/form-maker/) Maker: This can be used to break the form into distinct pages.
1303
  * Section Break of the Form Maker: This option allows adding a section break to the form page.
1304
  * For each form certain types of statistical data are available in the form builder tool: