Contact Form by WD – responsive drag & drop contact form builder tool - Version 1.12.38

Version Description

  • Improved: GDPR compliance options.
  • Fixed: Error on form front end when Privacy Policy checkbox is enabled.
  • Fixed: Bug on Actions after submission when Redirect to URL option is empty.
  • Fixed: Notice on form submit.
  • Fixed: Minor issues on Themes.
Download this release

Release Info

Developer webdorado
Plugin Icon 128x128 Contact Form by WD – responsive drag & drop contact form builder tool
Version 1.12.38
Comparing to
See all releases

Code changes from version 1.12.37 to 1.12.38

admin/controllers/Themes_fm.php CHANGED
@@ -1218,9 +1218,8 @@ class FMControllerThemes_fmc extends CFMAdminController {
1218
  'name' => 'SCCPMargin',
1219
  'type' => 'text',
1220
  'class' => '',
1221
- 'placeholder' => __('e.g.', WDFMInstance(self::PLUGIN)->prefix) .' 5px 10px or 5% 10%',
1222
  'value' => isset($param_values->SCCPMargin) ? $param_values->SCCPMargin : '',
1223
- 'after' => '',
1224
  ),
1225
  array(
1226
  'label' => __('Border Radius', WDFMInstance(self::PLUGIN)->prefix),
1218
  'name' => 'SCCPMargin',
1219
  'type' => 'text',
1220
  'class' => '',
 
1221
  'value' => isset($param_values->SCCPMargin) ? $param_values->SCCPMargin : '',
1222
+ 'after' => 'px',
1223
  ),
1224
  array(
1225
  'label' => __('Border Radius', WDFMInstance(self::PLUGIN)->prefix),
admin/controllers/Uninstall_fm.php CHANGED
@@ -50,10 +50,37 @@ class FMControllerUninstall_fmc extends CFMAdminController {
50
  public function display() {
51
  $params = array();
52
  $params['addons'] = $this->addons;
 
 
 
53
  $this->view->display($params);
54
  }
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  public function uninstall() {
 
57
  $this->model->delete_db_tables();
58
  global $wpdb;
59
  $params = array();
@@ -61,6 +88,9 @@ class FMControllerUninstall_fmc extends CFMAdminController {
61
  $params['addons'] = $this->addons;
62
  // Deactivate all addons
63
  WDW_FM_Library(self::PLUGIN)->deactivate_all_addons();
64
- $this->view->uninstall($params);
 
 
 
65
  }
66
  }
50
  public function display() {
51
  $params = array();
52
  $params['addons'] = $this->addons;
53
+ $params['page_title'] = sprintf(__('Uninstall %s', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename);
54
+ $params['tables'] = $this->get_tables();
55
+
56
  $this->view->display($params);
57
  }
58
 
59
+ /**
60
+ * Return DB tables names.
61
+ *
62
+ * @return array
63
+ */
64
+ private function get_tables() {
65
+ global $wpdb;
66
+ $tables = array(
67
+ $wpdb->prefix . 'formmaker',
68
+ $wpdb->prefix . 'formmaker_backup',
69
+ $wpdb->prefix . 'formmaker_blocked',
70
+ $wpdb->prefix . 'formmaker_groups',
71
+ $wpdb->prefix . 'formmaker_submits',
72
+ $wpdb->prefix . 'formmaker_views',
73
+ $wpdb->prefix . 'formmaker_themes',
74
+ $wpdb->prefix . 'formmaker_sessions',
75
+ $wpdb->prefix . 'formmaker_query',
76
+ $wpdb->prefix . 'formmaker_display_options',
77
+ );
78
+
79
+ return $tables;
80
+ }
81
+
82
  public function uninstall() {
83
+ $params['tables'] = $this->get_tables();
84
  $this->model->delete_db_tables();
85
  global $wpdb;
86
  $params = array();
88
  $params['addons'] = $this->addons;
89
  // Deactivate all addons
90
  WDW_FM_Library(self::PLUGIN)->deactivate_all_addons();
91
+ $params['page_title'] = sprintf(__('Uninstall %s', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename);
92
+ $params['deactivate'] = TRUE;
93
+
94
+ $this->view->display($params);
95
  }
96
  }
admin/models/Manage_fm.php CHANGED
@@ -3164,6 +3164,20 @@ class FMModelManage_fmc extends CFMAdminModel {
3164
  'w_class',
3165
  );
3166
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3167
  foreach ( $params_names as $params_name ) {
3168
  $temp = explode('*:*' . $params_name . '*:*', $temp);
3169
  $param[$params_name] = $temp[0];
@@ -3178,9 +3192,10 @@ class FMModelManage_fmc extends CFMAdminModel {
3178
  }
3179
  $param['w_field_label_pos'] = ($param['w_field_label_pos'] == "left" ? "table-cell" : "block");
3180
  $param['w_hide_label'] = (isset($param['w_hide_label']) ? $param['w_hide_label'] : "no");
 
3181
  $display_label = $param['w_hide_label'] == "no" ? $param['w_field_label_pos'] : "none";
3182
  $required_sym = ($param['w_required'] == "yes" ? " *" : "");
3183
- $rep = '<div id="wdform_field' . $id . '" type="type_slider" class="wdform_field" style="display: table-cell;">' . $arrows . '<div align="left" id="' . $id . '_label_sectionform_id_temp" class="' . $param['w_class'] . '" style="display: ' . $display_label . '; vertical-align: top; width: ' . $param['w_field_label_size'] . 'px;"><span id="' . $id . '_element_labelform_id_temp" class="label">' . $label . '</span><span id="' . $id . '_required_elementform_id_temp" class="required">' . $required_sym . '</span></div><div align="left" id="' . $id . '_element_sectionform_id_temp" class="' . $param['w_class'] . '" style="display: ' . $param['w_field_label_pos'] . ';"><input type="hidden" value="type_slider" name="' . $id . '_typeform_id_temp" id="' . $id . '_typeform_id_temp"><input type="hidden" value="' . $param['w_required'] . '" name="' . $id . '_requiredform_id_temp" id="' . $id . '_requiredform_id_temp"><input type="hidden" value="' . $param['w_hide_label'] . '" name="' . $id . '_hide_labelform_id_temp" id="' . $id . '_hide_labelform_id_temp"/><input type="hidden" value="' . $param['w_field_width'] . '" name="' . $id . '_slider_widthform_id_temp" id="' . $id . '_slider_widthform_id_temp"><input type="hidden" value="' . $param['w_field_min_value'] . '" id="' . $id . '_slider_min_valueform_id_temp" name="' . $id . '_slider_min_valueform_id_temp"><input type="hidden" value="' . $param['w_field_max_value'] . '" id="' . $id . '_slider_max_valueform_id_temp" name="' . $id . '_slider_max_valueform_id_temp"><input type="hidden" value="' . $param['w_field_value'] . '" id="' . $id . '_slider_valueform_id_temp" name="' . $id . '_slider_valueform_id_temp"><div id="' . $id . '_slider_tableform_id_temp"><div><div id="' . $id . '_slider_td1form_id_temp"><div name="' . $id . '_elementform_id_temp" id="' . $id . '_elementform_id_temp" style="width: ' . $param['w_field_width'] . 'px;" ' . $param['attributes'] . '"></div></div></div><div><div align="left" id="' . $id . '_slider_td2form_id_temp" style="display: inline-table; width: 33.3%; text-align: left;"><span id="' . $id . '_element_minform_id_temp" class="label">' . $param['w_field_min_value'] . '</span></div><div align="right" id="' . $id . '_slider_td3form_id_temp" style="display: inline-table; width: 33.3%; text-align: center;"><span id="' . $id . '_element_valueform_id_temp" class="label">' . $param['w_field_value'] . '</span></div><div align="right" id="' . $id . '_slider_td4form_id_temp" style="display: inline-table; width: 33.3%; text-align: right;"><span id="' . $id . '_element_maxform_id_temp" class="label">' . $param['w_field_max_value'] . '</span></div></div></div></div></div>';
3184
  break;
3185
  }
3186
  case 'type_range': {
3164
  'w_class',
3165
  );
3166
  }
3167
+ if ( strpos($temp, 'w_field_step') > -1 ) {
3168
+ $params_names = array(
3169
+ 'w_field_label_size',
3170
+ 'w_field_label_pos',
3171
+ 'w_hide_label',
3172
+ 'w_field_width',
3173
+ 'w_field_min_value',
3174
+ 'w_field_max_value',
3175
+ 'w_field_step',
3176
+ 'w_field_value',
3177
+ 'w_required',
3178
+ 'w_class',
3179
+ );
3180
+ }
3181
  foreach ( $params_names as $params_name ) {
3182
  $temp = explode('*:*' . $params_name . '*:*', $temp);
3183
  $param[$params_name] = $temp[0];
3192
  }
3193
  $param['w_field_label_pos'] = ($param['w_field_label_pos'] == "left" ? "table-cell" : "block");
3194
  $param['w_hide_label'] = (isset($param['w_hide_label']) ? $param['w_hide_label'] : "no");
3195
+ $param['w_field_step'] = (isset($param['w_field_step']) ? $param['w_field_step'] : 1);
3196
  $display_label = $param['w_hide_label'] == "no" ? $param['w_field_label_pos'] : "none";
3197
  $required_sym = ($param['w_required'] == "yes" ? " *" : "");
3198
+ $rep = '<div id="wdform_field' . $id . '" type="type_slider" class="wdform_field" style="display: table-cell;">' . $arrows . '<div align="left" id="' . $id . '_label_sectionform_id_temp" class="' . $param['w_class'] . '" style="display: ' . $display_label . '; vertical-align: top; width: ' . $param['w_field_label_size'] . 'px;"><span id="' . $id . '_element_labelform_id_temp" class="label">' . $label . '</span><span id="' . $id . '_required_elementform_id_temp" class="required">' . $required_sym . '</span></div><div align="left" id="' . $id . '_element_sectionform_id_temp" class="' . $param['w_class'] . '" style="display: ' . $param['w_field_label_pos'] . ';"><input type="hidden" value="type_slider" name="' . $id . '_typeform_id_temp" id="' . $id . '_typeform_id_temp"><input type="hidden" value="' . $param['w_required'] . '" name="' . $id . '_requiredform_id_temp" id="' . $id . '_requiredform_id_temp"><input type="hidden" value="' . $param['w_hide_label'] . '" name="' . $id . '_hide_labelform_id_temp" id="' . $id . '_hide_labelform_id_temp"/><input type="hidden" value="' . $param['w_field_width'] . '" name="' . $id . '_slider_widthform_id_temp" id="' . $id . '_slider_widthform_id_temp"><input type="hidden" value="' . $param['w_field_min_value'] . '" id="' . $id . '_slider_min_valueform_id_temp" name="' . $id . '_slider_min_valueform_id_temp"><input type="hidden" value="' . $param['w_field_max_value'] . '" id="' . $id . '_slider_max_valueform_id_temp" name="' . $id . '_slider_max_valueform_id_temp"><input type="hidden" value="' . $param['w_field_step'] . '" id="' . $id . '_slider_stepform_id_temp" name="' . $id . '_slider_stepform_id_temp" /><input type="hidden" value="' . $param['w_field_value'] . '" id="' . $id . '_slider_valueform_id_temp" name="' . $id . '_slider_valueform_id_temp"><div id="' . $id . '_slider_tableform_id_temp"><div><div id="' . $id . '_slider_td1form_id_temp"><div name="' . $id . '_elementform_id_temp" id="' . $id . '_elementform_id_temp" style="width: ' . $param['w_field_width'] . 'px;" ' . $param['attributes'] . '"></div></div></div><div><div align="left" id="' . $id . '_slider_td2form_id_temp" style="display: inline-table; width: 33.3%; text-align: left;"><span id="' . $id . '_element_minform_id_temp" class="label">' . $param['w_field_min_value'] . '</span></div><div align="right" id="' . $id . '_slider_td3form_id_temp" style="display: inline-table; width: 33.3%; text-align: center;"><span id="' . $id . '_element_valueform_id_temp" class="label">' . $param['w_field_value'] . '</span></div><div align="right" id="' . $id . '_slider_td4form_id_temp" style="display: inline-table; width: 33.3%; text-align: right;"><span id="' . $id . '_element_maxform_id_temp" class="label">' . $param['w_field_max_value'] . '</span></div></div></div></div></div>';
3199
  break;
3200
  }
3201
  case 'type_range': {
admin/views/Manage_fm.php CHANGED
@@ -1871,6 +1871,7 @@ class FMViewManage_fmc extends FMAdminView_fmc {
1871
  <label class="wd-label" for="fm_go-gdpr_checkbox_text"><?php _e('GDPR compliance text.', WDFMInstance(self::PLUGIN)->prefix); ?></label>
1872
  <input type="text" id="fm_go-gdpr_checkbox_text" name="gdpr_checkbox_text" value="<?php echo $row->gdpr_checkbox_text; ?>">
1873
  <p class="description"><?php _e('This text will be used for GDPR compliance checkbox. Place {{privacy_policy}} placeholder to place "Privacy Policy page" link.', WDFMInstance(self::PLUGIN)->prefix); ?></p>
 
1874
  </div>
1875
  <div class="wd-group">
1876
  <label class="wd-label"><?php _e('Save User IP Address to Database', WDFMInstance(self::PLUGIN)->prefix); ?></label>
1871
  <label class="wd-label" for="fm_go-gdpr_checkbox_text"><?php _e('GDPR compliance text.', WDFMInstance(self::PLUGIN)->prefix); ?></label>
1872
  <input type="text" id="fm_go-gdpr_checkbox_text" name="gdpr_checkbox_text" value="<?php echo $row->gdpr_checkbox_text; ?>">
1873
  <p class="description"><?php _e('This text will be used for GDPR compliance checkbox. Place {{privacy_policy}} placeholder to place "Privacy Policy page" link.', WDFMInstance(self::PLUGIN)->prefix); ?></p>
1874
+ <p class="description"><?php echo sprintf(__('You can manage your privacy settings %s.', WDFMInstance(self::PLUGIN)->prefix), '<a href="' . admin_url('privacy.php') . '" target="_blank">' . __('here', WDFMInstance(self::PLUGIN)->prefix)) . '</a>'; ?></p>
1875
  </div>
1876
  <div class="wd-group">
1877
  <label class="wd-label"><?php _e('Save User IP Address to Database', WDFMInstance(self::PLUGIN)->prefix); ?></label>
admin/views/Uninstall_fm.php CHANGED
@@ -16,143 +16,114 @@ class FMViewUninstall_fmc extends FMAdminView_fmc {
16
  /**
17
  * Display page.
18
  *
19
- * @param array $params
20
  */
21
- public function display( $params = array() ) {
22
- global $wpdb;
23
- $prefix = $wpdb->prefix;
24
- $addons = $params['addons'];
25
- ?>
26
- <form method="post" action="admin.php?page=uninstall<?php echo WDFMInstance(self::PLUGIN)->menu_postfix; ?>" style="width:95%;" class="fm-uninstall-form">
27
- <?php wp_nonce_field(WDFMInstance(self::PLUGIN)->nonce, WDFMInstance(self::PLUGIN)->nonce); ?>
28
- <div class="wrap">
29
- <div class="uninstall-banner">
30
- <div class="uninstall_icon">
31
- </div>
32
- <div class="fm-logo-title"><?php _e('Uninstall', WDFMInstance(self::PLUGIN)->prefix); ?> <?php echo WDFMInstance(self::PLUGIN)->nicename; ?></div>
33
- </div>
34
- <br />
35
- <div class="goodbye-text">
36
- <?php echo sprintf( __('Before uninstalling %s, please contact %s. We\'ll do our best to assist you with any issue. We value every user and what\'s right for our users in everything we do.', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename, '<a href="https://web-dorado.com/support/contact-us.html" target="_blank">' . __('Web-Dorado Customer Care', WDFMInstance(self::PLUGIN)->prefix) . '</a>'); ?>
37
- <br>
38
- <?php echo sprintf( __('However, if you have made a decision to uninstall %s in any case, please take a minute to contact %s and let us know what you\'d like to see improved in the plugin. Thank you!', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename, '<a href="https://web-dorado.com/support/contact-us.html" target="_blank">' . __('our team', WDFMInstance(self::PLUGIN)->prefix) . '</a>'); ?>
39
- </div>
40
- <div class="goodbye-text" style="color: red;">
41
- <?php echo sprintf( __('Note, that uninstalling %s will remove all forms, submissions and other data on the plugin.', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename); ?>
42
- <br>
43
- <?php _e('Please make sure you don\'t have any important information before you proceed.', WDFMInstance(self::PLUGIN)->prefix); ?>
44
- </div>
45
- <p><?php echo sprintf( __('Deactivating %s plugin does not remove any data that may have been created, such as the Forms and the Submissions. To completely remove this plugin, you can uninstall it here.', WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename); ?></p>
46
- <p style="color: red;">
47
- <strong><?php _e('WARNING:', WDFMInstance(self::PLUGIN)->prefix); ?></strong>
48
- <?php _e('Once uninstalled, this cannot be undone. You should use a Database Backup plugin of WordPress to back up all the data first.', WDFMInstance(self::PLUGIN)->prefix); ?>
49
- </p>
50
- <p style="color: red">
51
- <strong><?php _e('The following WordPress Options/Tables will be DELETED:', WDFMInstance(self::PLUGIN)->prefix); ?></strong>
52
- </p>
53
- <table class="widefat">
54
- <thead>
55
- <tr>
56
- <th><?php _e('Database Tables', WDFMInstance(self::PLUGIN)->prefix); ?></th>
57
- </tr>
58
- </thead>
59
- <tr>
60
- <td valign="top">
61
- <ol>
62
- <li><?php echo $prefix; ?>formmaker</li>
63
- <li><?php echo $prefix; ?>formmaker_backup</li>
64
- <li><?php echo $prefix; ?>formmaker_blocked</li>
65
- <li><?php echo $prefix; ?>formmaker_groups</li>
66
- <li><?php echo $prefix; ?>formmaker_submits</li>
67
- <li><?php echo $prefix; ?>formmaker_views</li>
68
- <li><?php echo $prefix; ?>formmaker_themes</li>
69
- <li><?php echo $prefix; ?>formmaker_sessions</li>
70
- <li><?php echo $prefix; ?>formmaker_query</li>
71
- <li><?php echo $prefix; ?>formmaker_display_options</li>
72
- <?php
73
- foreach ( $addons as $addon => $addon_name ) {
74
- if ( defined($addon) && is_plugin_active(constant($addon)) ) {
75
- if ( is_array($addon_name) ) {
76
- foreach ( $addon_name as $ad_name ) {
77
- echo '<li>' . $prefix . 'formmaker_' . $ad_name . '</li>';
78
- }
79
- }
80
- else {
81
- echo '<li>' . $prefix . 'formmaker_' . $addon_name . '</li>';
82
- }
83
- }
84
- }
85
- ?>
86
- </ol>
87
- </td>
88
- </tr>
89
- </table>
90
- <p style="text-align: center;">
91
- Do you really want to uninstall <?php echo WDFMInstance(self::PLUGIN)->nicename; ?>?
92
- </p>
93
- <p style="text-align: center;">
94
- <input type="checkbox" name="Form Maker" id="check_yes" value="yes" />&nbsp;<label for="check_yes">Yes</label>
95
- </p>
96
- <p style="text-align: center;">
97
- <input type="submit" value="UNINSTALL" class="button-primary fm-uninstall-btn" onclick="if (check_yes.checked) { if (confirm('Are you sure you wish to uninstall <?php echo WDFMInstance(self::PLUGIN)->nicename; ?> from your website?\nAll forms, submissions and other data in the plugin will be removed.')) { fm_set_input_value('task', 'uninstall'); } else { return false; } } else { return false; }" />
98
- </p>
99
- </div>
100
- <input id="task" name="task" type="hidden" value="" />
101
- </form>
102
- <?php
103
  }
104
 
105
  /**
106
- * Uninstall.
107
  *
108
- * @param array $params
109
  */
110
- public function uninstall( $params = array() ) {
111
- $prefix = $params['prefix'];
112
- $addons = $params['addons']; //array
113
  $deactivate_url = add_query_arg(array(
114
  'action' => 'deactivate',
115
  'plugin' => WDFMInstance(self::PLUGIN)->main_file,
116
  ), admin_url('plugins.php'));
117
  $deactivate_url = wp_nonce_url($deactivate_url, 'deactivate-plugin_' . WDFMInstance(self::PLUGIN)->main_file);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  ?>
119
- <div id="message" class="updated fade">
120
- <p>The following Database Tables successfully deleted:</p>
121
- <p><?php echo $prefix; ?>formmaker,</p>
122
- <p><?php echo $prefix; ?>formmaker_backup,</p>
123
- <p><?php echo $prefix; ?>formmaker_blocked,</p>
124
- <p><?php echo $prefix; ?>formmaker_sessions,</p>
125
- <p><?php echo $prefix; ?>formmaker_groups,</p>
126
- <p><?php echo $prefix; ?>formmaker_submits,</p>
127
- <p><?php echo $prefix; ?>formmaker_themes,</p>
128
- <p><?php echo $prefix; ?>formmaker_views,</p>
129
- <p><?php echo $prefix; ?>formmaker_query,</p>
130
- <p><?php echo $prefix; ?>formmaker_display_options.</p>
131
  <?php
132
- foreach ( $addons as $addon => $addon_name ) {
133
- if ( defined($addon) && is_plugin_active(constant($addon)) ) {
134
- if ( is_array($addon_name) ) {
135
- foreach ( $addon_name as $ad_name ) {
136
- echo '<p>' . $prefix . 'formmaker_' . $ad_name . '</p>';
137
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  }
139
- else {
140
- echo '<p>' . $prefix . 'formmaker_' . $addon_name . '</p>';
 
 
 
 
 
 
 
 
 
141
  }
142
- }
143
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  ?>
145
- </div>
146
- <div class="wrap">
147
- <h2><?php _e('Uninstall', WDFMInstance(self::PLUGIN)->prefix); ?> <?php echo WDFMInstance(self::PLUGIN)->nicename; ?></h2>
148
- <p>
149
- <strong>
150
- <a href="<?php echo $deactivate_url; ?>" class="fm_deactivate_link" data-uninstall="1"><?php _e('Click Here', WDFMInstance(self::PLUGIN)->prefix); ?></a>
151
- <?php _e('To Finish the Uninstallation and Form Maker will be Deactivated Automatically.', WDFMInstance(self::PLUGIN)->prefix); ?></a>
152
- </strong>
153
- </p>
154
- <input id="task" name="task" type="hidden" value="" />
155
- </div>
156
  <?php
157
  }
158
  }
16
  /**
17
  * Display page.
18
  *
19
+ * @param $params
20
  */
21
+ public function display($params = array()) {
22
+ ob_start();
23
+ echo $this->body($params);
24
+ // Pass the content to form.
25
+ $form_attr = array(
26
+ 'id' => WDFMInstance(self::PLUGIN)->prefix . '_uninstall',
27
+ 'name' => WDFMInstance(self::PLUGIN)->prefix . '_uninstall',
28
+ 'class' => WDFMInstance(self::PLUGIN)->prefix . '_uninstall wd-form',
29
+ 'action' => add_query_arg(array( 'page' => 'uninstall' . WDFMInstance(self::PLUGIN)->menu_postfix ), 'admin.php'),
30
+ );
31
+ echo $this->form(ob_get_clean(), $form_attr);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
 
34
  /**
35
+ * Generate page body.
36
  *
37
+ * @param $params
38
  */
39
+ public function body( $params = array() ) {
 
 
40
  $deactivate_url = add_query_arg(array(
41
  'action' => 'deactivate',
42
  'plugin' => WDFMInstance(self::PLUGIN)->main_file,
43
  ), admin_url('plugins.php'));
44
  $deactivate_url = wp_nonce_url($deactivate_url, 'deactivate-plugin_' . WDFMInstance(self::PLUGIN)->main_file);
45
+ echo $this->title(array(
46
+ 'title' => $params['page_title'],
47
+ 'title_class' => 'wd-header',
48
+ 'add_new_button' => FALSE,
49
+ ));
50
+
51
+ if ( isset($params['deactivate']) && $params['deactivate'] == TRUE ) {
52
+ ?>
53
+ <p><strong><?php echo sprintf(__("%s to Finish the Uninstallation and %s will be Deactivated Automatically.", WDFMInstance(self::PLUGIN)->prefix), '<a href="' . $deactivate_url . '" class="bwg_deactivate_link" data-uninstall="1">' . __("Click Here", WDFMInstance(self::PLUGIN)->prefix) . '</a>', WDFMInstance(self::PLUGIN)->nicename); ?></strong></p>
54
+ <?php
55
+
56
+ return;
57
+ }
58
+
59
  ?>
60
+ <div class="goodbye-text">
 
 
 
 
 
 
 
 
 
 
 
61
  <?php
62
+ $support_team = '<a href="https://web-dorado.com/support/contact-us.html" target="_blank">' . __('support team', WDFMInstance(self::PLUGIN)->prefix) . '</a>';
63
+ $contact_us = '<a href="https://web-dorado.com/support/contact-us.html" target="_blank">' . __('Contact us', WDFMInstance(self::PLUGIN)->prefix) . '</a>';
64
+ echo sprintf(__("Before uninstalling the plugin, please Contact our %s. We'll do our best to help you out with your issue. We value each and every user and value what's right for our users in everything we do.<br />
65
+ However, if anyway you have made a decision to uninstall the plugin, please take a minute to %s and tell what you didn't like for our plugins further improvement and development. Thank you !!!", WDFMInstance(self::PLUGIN)->prefix), $support_team, $contact_us); ?>
66
+ </div>
67
+ <p>
68
+ <?php echo sprintf(__("Deactivating %s plugin does not remove any data that may have been created. To completely remove this plugin, you can uninstall it here.", WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename); ?>
69
+ </p>
70
+ <p class="wd-red">
71
+ <strong><?php _e("WARNING:", WDFMInstance(self::PLUGIN)->prefix); ?></strong>
72
+ <?php _e("Once uninstalled, this can't be undone. You should use a Database Backup plugin of WordPress to back up all the data first.", WDFMInstance(self::PLUGIN)->prefix); ?>
73
+ </p>
74
+ <p class="wd-red">
75
+ <strong><?php _e("The following Database Tables will be deleted:", WDFMInstance(self::PLUGIN)->prefix); ?></strong>
76
+ </p>
77
+ <table class="widefat">
78
+ <thead>
79
+ <tr>
80
+ <th><?php _e("Database Tables", WDFMInstance(self::PLUGIN)->prefix); ?></th>
81
+ </tr>
82
+ </thead>
83
+ <tr>
84
+ <td>
85
+ <?php
86
+ foreach ( $params['tables'] as $table ) {
87
+ ?>
88
+ <p><?php echo $table; ?></p>
89
+ <?php
90
  }
91
+ foreach ( $params['addons'] as $addon => $addon_name ) {
92
+ if ( defined($addon) && is_plugin_active(constant($addon)) ) {
93
+ if ( is_array($addon_name) ) {
94
+ foreach ( $addon_name as $ad_name ) {
95
+ echo '<p>' . WDFMInstance(self::PLUGIN)->prefix . 'formmaker_' . $ad_name . '</p>';
96
+ }
97
+ }
98
+ else {
99
+ echo '<p>' . WDFMInstance(self::PLUGIN)->prefix . 'formmaker_' . $addon_name . '</p>';
100
+ }
101
+ }
102
  }
103
+ ?>
104
+ </td>
105
+ </tr>
106
+ </table>
107
+ <p class="wd-text-center">
108
+ <?php echo sprintf(__("Do you really want to uninstall %s?", WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename); ?>
109
+ </p>
110
+ <p class="wd-text-center">
111
+ <input type="checkbox" name="Form Maker" id="check_yes" value="yes" />
112
+ <label for="check_yes"><?php _e("Yes", WDFMInstance(self::PLUGIN)->prefix); ?></label>
113
+ </p>
114
+ <p class="wd-text-center">
115
+ <?php
116
+ $buttons = array(
117
+ 'save' => array(
118
+ 'title' => __('UNINSTALL', WDFMInstance(self::PLUGIN)->prefix),
119
+ 'value' => 'uninstall',
120
+ 'onclick' => 'if (check_yes.checked && confirm(\'' . addslashes(sprintf(__("You are About to Uninstall %s from WordPress. This Action Is Not Reversible.", WDFMInstance(self::PLUGIN)->prefix), WDFMInstance(self::PLUGIN)->nicename)) . '\')) { fm_set_input_value(\'task\', \'uninstall\'); } else {return false;}',
121
+ 'class' => 'button-primary',
122
+ ),
123
+ );
124
+ echo $this->buttons($buttons, TRUE);
125
  ?>
126
+ </p>
 
 
 
 
 
 
 
 
 
 
127
  <?php
128
  }
129
  }
contact-form-maker.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Contact Form Maker
4
  * Plugin URI: https://web-dorado.com/products/form-maker-wordpress.html
5
  * Description: WordPress Contact Form Maker is a simple contact form builder, which allows the user with almost no knowledge of programming to create and edit different type of contact forms.
6
- * Version: 1.12.37
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 WDCFM {
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.37';
99
- $this->db_version = '2.12.37';
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: Contact Form Maker
4
  * Plugin URI: https://web-dorado.com/products/form-maker-wordpress.html
5
  * Description: WordPress Contact Form Maker is a simple contact form builder, which allows the user with almost no knowledge of programming to create and edit different type of contact forms.
6
+ * Version: 1.12.38
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.38';
99
+ $this->db_version = '2.12.38';
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;
css/form_maker_frontend.css CHANGED
@@ -1037,4 +1037,5 @@ div[type="type_slider"] .label {
1037
  }
1038
  .fm-form-container .fm-form .fm-gdpr-checkbox {
1039
  display: initial !important;
 
1040
  }
1037
  }
1038
  .fm-form-container .fm-form .fm-gdpr-checkbox {
1039
  display: initial !important;
1040
+ margin-right: 5px;
1041
  }
css/form_maker_tables.css CHANGED
@@ -4337,4 +4337,36 @@ li.pp_selected > span {
4337
  .tooltip-arrow.top:after {
4338
  bottom: -20px;
4339
  top: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4340
  }
4337
  .tooltip-arrow.top:after {
4338
  bottom: -20px;
4339
  top: auto;
4340
+ }
4341
+
4342
+ .wd-red {
4343
+ color: red;
4344
+ }
4345
+
4346
+ .wd-yellow {
4347
+ color: #FCCD47;
4348
+ }
4349
+
4350
+ .wd-grey {
4351
+ color: #9B9B9B;
4352
+ }
4353
+
4354
+ .goodbye-text {
4355
+ font-size: 16px;
4356
+ font-weight: bold;
4357
+ background: #fff;
4358
+ padding: 15px;
4359
+ line-height: 22px;
4360
+ }
4361
+
4362
+ .goodbye-text a {
4363
+ font-size: 15px;
4364
+ }
4365
+
4366
+ .wd-vertical-middle {
4367
+ vertical-align: middle !important;
4368
+ }
4369
+
4370
+ .wd-text-center {
4371
+ text-align: center;
4372
  }
framework/WDW_FM_Library.php CHANGED
@@ -3688,6 +3688,20 @@ class WDW_FMC_Library {
3688
  'w_class',
3689
  );
3690
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3691
  foreach ( $params_names as $params_name ) {
3692
  $temp = explode('*:*' . $params_name . '*:*', $temp);
3693
  $param[$params_name] = $temp[0];
@@ -3697,6 +3711,7 @@ class WDW_FMC_Library {
3697
  $onload_js .= '
3698
  jQuery("#wdform_' . $id1 . '_element' . $form_id . '")[0].slide = null;
3699
  jQuery("#wdform_' . $id1 . '_element' . $form_id . '").slider({
 
3700
  range: "min",
3701
  value: eval(' . $param['w_field_value'] . '),
3702
  min: eval(' . $param['w_field_min_value'] . '),
@@ -5255,14 +5270,16 @@ class WDW_FMC_Library {
5255
  */
5256
  public static function get_privacy_policy_url() {
5257
  $permalink = '';
 
5258
  $post_id = get_option( 'wp_page_for_privacy_policy' );
5259
  if ( $post_id ) {
5260
  $post = get_post( $post_id, OBJECT );
5261
  if ( $post->post_status == 'publish' ) {
5262
  $permalink = get_permalink( $post_id );
 
5263
  }
5264
  }
5265
- return $permalink;
5266
  }
5267
 
5268
  public static function unique_number() {
3688
  'w_class',
3689
  );
3690
  }
3691
+ if ( strpos($temp, 'w_field_step') > -1 ) {
3692
+ $params_names = array(
3693
+ 'w_field_label_size',
3694
+ 'w_field_label_pos',
3695
+ 'w_hide_label',
3696
+ 'w_field_width',
3697
+ 'w_field_min_value',
3698
+ 'w_field_max_value',
3699
+ 'w_field_step',
3700
+ 'w_field_value',
3701
+ 'w_required',
3702
+ 'w_class',
3703
+ );
3704
+ }
3705
  foreach ( $params_names as $params_name ) {
3706
  $temp = explode('*:*' . $params_name . '*:*', $temp);
3707
  $param[$params_name] = $temp[0];
3711
  $onload_js .= '
3712
  jQuery("#wdform_' . $id1 . '_element' . $form_id . '")[0].slide = null;
3713
  jQuery("#wdform_' . $id1 . '_element' . $form_id . '").slider({
3714
+ step: parseInt(' . $param['w_field_step'] . '),
3715
  range: "min",
3716
  value: eval(' . $param['w_field_value'] . '),
3717
  min: eval(' . $param['w_field_min_value'] . '),
5270
  */
5271
  public static function get_privacy_policy_url() {
5272
  $permalink = '';
5273
+ $title = __('Privacy Policy', WDFMInstance(self::PLUGIN)->prefix);
5274
  $post_id = get_option( 'wp_page_for_privacy_policy' );
5275
  if ( $post_id ) {
5276
  $post = get_post( $post_id, OBJECT );
5277
  if ( $post->post_status == 'publish' ) {
5278
  $permalink = get_permalink( $post_id );
5279
+ $title = $post->post_title;
5280
  }
5281
  }
5282
+ return array('url' => $permalink, 'title' => $title);
5283
  }
5284
 
5285
  public static function unique_number() {
frontend/models/form_maker.php CHANGED
@@ -351,14 +351,13 @@ class FMModelForm_maker_fmc {
351
  (!empty( $form_theme[ 'GPFontSize' ] ) ? 'font-size:' . $form_theme[ 'GPFontSize' ] . 'px;' : '') .
352
  (!empty( $form_theme[ 'GPColor' ] ) ? 'color:' . $form_theme[ 'GPColor' ] . ';' : '') .
353
  '}';
354
- if ( !empty( $form_theme[ 'GPAlign' ] ) && $form_theme[ 'GPAlign' ] == 'center' ) {
355
- $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .wdform-page-and-images {' .
356
- 'margin:0 auto;' .
357
- '}';
358
- } else {
359
- $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .wdform-page-and-images {' .
360
- (!empty( $form_theme[ 'GPAlign' ] ) ? 'float:' . $form_theme[ 'GPAlign' ] . ';' : '') .
361
- '}';
362
  }
363
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .wdform_section {' .
364
  (!empty( $form_theme[ 'SEPMargin' ] ) ? 'margin:' . $form_theme[ 'SEPMargin' ] . ';' : '') .
@@ -603,9 +602,9 @@ class FMModelForm_maker_fmc {
603
  (!empty( $form_theme[ 'GPBGColor' ] ) ? 'background:' . $form_theme[ 'GPBGColor' ] . ';' : '') .
604
  (!empty( $form_theme[ 'GPFontFamily' ] ) ? 'font-family:' . $form_theme[ 'GPFontFamily' ] . ';' : '') .
605
  '}';
606
- $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .wdform_section {' .
607
- ((!empty( $form_theme[ 'GPBGColor' ] ) && !empty( $form_theme[ 'SEPBGColor' ] ) && $form_theme[ 'GPBGColor' ] != $form_theme[ 'SEPBGColor' ]) ? 'background:' . $form_theme[ 'SEPBGColor' ] . ';' : '') .
608
- '}';
609
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form input[type="text"],
610
  .fm-form-container.fm-theme' . $theme_id . ' .fm-form .ui-corner-all,
611
  .fm-form-container.fm-theme' . $theme_id . ' .fm-form input[type="number"],
@@ -799,9 +798,12 @@ class FMModelForm_maker_fmc {
799
  (!empty( $form_theme[ 'SPBoxShadow' ] ) ? 'box-shadow:' . $form_theme[ 'SPBoxShadow' ] . ' !important;' : '') .
800
  ((isset( $form_theme[ 'SPBorderRadius' ] ) && $form_theme[ 'SPBorderRadius' ] !== '') ? 'border-radius:' . $form_theme[ 'SPBorderRadius' ] . 'px !important;' : '') .
801
  '}';
 
 
 
802
  if ( !empty( $borders[ 'SP' ] ) ) {
803
  foreach ( $borders[ 'SP' ] as $border ) {
804
- if ( !empty( $form_theme[ 'SPBorderType' ] ) && ($form_theme[ 'SPBorderType' ] == 'inherit' || $form_theme[ 'SPBorderType' ] == 'initial') ) {
805
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-submit {' .
806
  'border-' . $border . '-style:' . $form_theme[ 'SPBorderType' ] . ' !important;' .
807
  '}';
@@ -849,17 +851,22 @@ class FMModelForm_maker_fmc {
849
  ((isset( $form_theme[ 'BPBorderRadius' ] ) && $form_theme[ 'BPBorderRadius' ] !== '') ? 'border-radius:' . $form_theme[ 'BPBorderRadius' ] . 'px;' : '') .
850
  (!empty( $form_theme[ 'BPBoxShadow' ] ) ? 'box-shadow:' . $form_theme[ 'BPBoxShadow' ] . ' !important;' : '') .
851
  '}';
 
 
 
 
 
852
  if ( !empty( $borders[ 'BP' ] ) ) {
853
  foreach ( $borders[ 'BP' ] as $border ) {
854
- if ( !empty( $form_theme[ 'BPBorderType' ] ) && ($form_theme[ 'BPBorderType' ] == 'inherit' || $form_theme[ 'BPBorderType' ] == 'initial') ) {
855
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-reset,
856
- .fm-form-container.fm-theme' . $theme_id . ' .fm-form button {' .
857
  'border-' . $border . '-style:' . $form_theme[ 'BPBorderType' ] . ' !important;' .
858
  '}';
859
  break;
860
  } else {
861
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-reset,
862
- .fm-form-container.fm-theme' . $theme_id . ' .fm-form button {' .
863
  ((isset( $form_theme[ 'BPBorderWidth' ] ) && $form_theme[ 'BPBorderWidth' ] !== '') ? 'border-' . $border . ':' . $form_theme[ 'BPBorderWidth' ] . 'px !important;' : '') .
864
  (!empty( $form_theme[ 'BPBorderType' ] ) ? 'border-' . $border . '-style:' . $form_theme[ 'BPBorderType' ] . ' !important;' : '') .
865
  (!empty( $form_theme[ 'BPBorderColor' ] ) ? 'border-' . $border . '-color:' . $form_theme[ 'BPBorderColor' ] . ' !important;' : '') .
@@ -996,11 +1003,13 @@ class FMModelForm_maker_fmc {
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 ) {
1005
  $form_theme_css .= '
1006
  .checkbox-div label span {
@@ -3220,47 +3229,47 @@ class FMModelForm_maker_fmc {
3220
  array_push( $attachment_user, $pdf_data['pdf_url'] );
3221
  }
3222
 
3223
- if ( $row->sendemail ) {
3224
- if ( $row->send_to ) {
3225
- $body = $new_script;
3226
- $send_tos = explode( '**', $row->send_to );
3227
- $send_copy = isset( $_POST[ "wdform_send_copy_" . $id ] ) ? $_POST[ "wdform_send_copy_" . $id ] : NULL;
3228
- if ( isset( $send_copy ) ) {
3229
- $send = TRUE;
3230
- }
3231
- else {
3232
- $mail_verification_post_id = (int)$wpdb->get_var( $wpdb->prepare( 'SELECT mail_verification_post_id FROM ' . $wpdb->prefix . 'formmaker WHERE id="%d"', $id ) );
3233
- $verification_link = get_post( $mail_verification_post_id );
3234
-
3235
- // Replace pdf link in email body.
3236
- $body = str_replace( '{PDF(link)}', site_url($pdf_data['pdf_url']), $body );
3237
-
3238
- foreach ( $send_tos as $index => $send_to ) {
3239
- $send_to = str_replace( '*', '', $send_to );
3240
- if ( $row->mail_verify && $verification_link !== NULL
3241
- && (strpos( $new_script, "{verificationlink}" ) > -1 || strpos( $new_script, "%Verification link%" ) > -1) ) {
3242
- $ver_link = $row->mail_mode_user ? "<a href =" . add_query_arg( array(
3243
- 'gid' => $_SESSION[ 'gid' ],
3244
- 'h' => $_SESSION[ 'hash' ][ $index ] . '@' . $send_to,
3245
- ), get_post_permalink( $mail_verification_post_id ) ) . ">" . add_query_arg( array(
3246
- 'gid' => $_SESSION[ 'gid' ],
3247
- 'h' => $_SESSION[ 'hash' ][ $index ] . '@' . $send_to,
3248
- ), get_post_permalink( $mail_verification_post_id ) ) . "</a><br/>" : add_query_arg( array(
3249
  'gid' => $_SESSION[ 'gid' ],
3250
  'h' => $_SESSION[ 'hash' ][ $index ] . '@' . $send_to,
3251
- ), get_post_permalink( $mail_verification_post_id ) );
3252
- $body = str_replace( array( '%Verification link%', '{verificationlink}' ), $ver_link, $new_script );
 
 
 
 
 
 
 
 
 
3253
  }
3254
-
3255
- $recipient = isset( $_POST[ 'wdform_' . str_replace( '*', '', $send_to ) . "_element" . $id ] ) ? $_POST[ 'wdform_' . $send_to . "_element" . $id ] : NULL;
3256
- if ( $recipient ) {
3257
- if ( $row->mail_attachment_user ) {
3258
- $remove_parrent_array_user = new RecursiveIteratorIterator( new RecursiveArrayIterator( $attachment_user ) );
3259
- $attachment_user = iterator_to_array( $remove_parrent_array_user, FALSE );
3260
- } else {
3261
- $attachment_user = array();
3262
- }
3263
- WDW_FM_Library(self::PLUGIN)->mail( $recipient, $subject, $body, $header_arr, $attachment_user );
3264
  }
3265
  }
3266
  }
@@ -3268,7 +3277,7 @@ class FMModelForm_maker_fmc {
3268
  }
3269
 
3270
  // Admin part.
3271
- if ( $row->sendemail ) {
3272
  $recipient = $row->mail ? $row->mail : '';
3273
  $subject = !empty( $row->mail_subject ) ? $row->mail_subject : $row->title;
3274
 
@@ -3371,7 +3380,9 @@ class FMModelForm_maker_fmc {
3371
  // Replace pdf link in email body.
3372
  $admin_body = str_replace( '{PDF(link)}', site_url($pdf_data['pdf_url']), $admin_body );
3373
 
3374
- $send = WDW_FM_Library(self::PLUGIN)->mail( $recipient, $subject, $admin_body, $header_arr, $attachment );
 
 
3375
  }
3376
  $_SESSION[ 'error_or_no' . $id ] = 0;
3377
  $msg = addslashes( __( 'Your form was successfully submitted.', WDFMInstance(self::PLUGIN)->prefix ) );
@@ -3381,38 +3392,37 @@ class FMModelForm_maker_fmc {
3381
  if ( $send !== TRUE ) {
3382
  $_SESSION[ 'error_or_no' . $id ] = 1;
3383
  $msg = addslashes( __( 'Error, email was not sent.', WDFMInstance(self::PLUGIN)->prefix ) );
3384
- } else {
 
3385
  $_SESSION[ 'error_or_no' . $id ] = 0;
3386
- $msg = addslashes( __( 'Your form was successfully submitted.', WDFMInstance(self::PLUGIN)->prefix ) );
3387
  }
3388
  }
3389
  }
3390
  }
3391
 
3392
- // Add-on conditional email
3393
- if ( WDFMInstance(self::PLUGIN)->is_free != 2 ) {
3394
- $fm_email_params = $row->sendemail ? array(
3395
- 'admin_body' => $admin_body,
3396
- 'body' => $body,
3397
- 'subject' => $subject,
3398
- 'headers' => $header_arr,
3399
- 'attachment' => $attachment,
3400
- 'attachment_user' => $attachment_user,
3401
- ) : array();
3402
- /*
3403
- * TODO. Need 'custom_fields_value' key. They work with it old conditional-emails.
3404
- */
3405
- $custom_fields_value = array( $this->custom_fields['ip'], $this->custom_fields['useremail'], $this->custom_fields['username'], $this->custom_fields['subid'], $this->custom_fields['all'] );
3406
- $params = array(
3407
- 'form_id' => $id,
3408
- 'fm_email_params' => $fm_email_params,
3409
- 'form_currency' => $form_currency,
3410
- 'custom_fields' => $this->custom_fields,
3411
- 'custom_fields_value' => $custom_fields_value
3412
- );
3413
- do_action( 'fm_set_params_frontend_init', $params );
3414
- }
3415
- // delete files from uploads (save_upload = 0)
3416
  if ( $row->save_uploads == 0 ) {
3417
  foreach ( $all_files as &$all_file ) {
3418
  if ( file_exists( $all_file[ 'tmp_name' ] ) ) {
@@ -3425,7 +3435,7 @@ class FMModelForm_maker_fmc {
3425
 
3426
  $https = ((isset( $_SERVER[ 'HTTPS' ] ) && $_SERVER[ 'HTTPS' ] == 'on') ? 'https://' : 'http://');
3427
  $redirect_url = $https . $_SERVER[ "HTTP_HOST" ] . $_SERVER[ "REQUEST_URI" ];
3428
- if ( $row->submit_text_type == 4 ) {
3429
  // Action after submission: URL.
3430
  $redirect_url = $row->url;
3431
  }
@@ -3434,7 +3444,7 @@ class FMModelForm_maker_fmc {
3434
  $redirect_url = $row->article_id;
3435
  }
3436
 
3437
- if ( $row->submit_text_type != 4 ) {
3438
  // This ensures that no message is enqueued by an add-on.
3439
  if ( !$_SESSION[ 'massage_after_submit' . $id ] ) {
3440
  $_SESSION[ 'massage_after_submit' . $id ] = $msg;
351
  (!empty( $form_theme[ 'GPFontSize' ] ) ? 'font-size:' . $form_theme[ 'GPFontSize' ] . 'px;' : '') .
352
  (!empty( $form_theme[ 'GPColor' ] ) ? 'color:' . $form_theme[ 'GPColor' ] . ';' : '') .
353
  '}';
354
+ if ( !empty( $form_theme[ 'GPAlign' ] ) ) {
355
+ if ( $form_theme[ 'GPAlign' ] == 'center' ) {
356
+ $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' { margin: 0 auto; }';
357
+ }
358
+ else {
359
+ $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' { float: ' . $form_theme['GPAlign'] . '; }';
360
+ }
 
361
  }
362
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .wdform_section {' .
363
  (!empty( $form_theme[ 'SEPMargin' ] ) ? 'margin:' . $form_theme[ 'SEPMargin' ] . ';' : '') .
602
  (!empty( $form_theme[ 'GPBGColor' ] ) ? 'background:' . $form_theme[ 'GPBGColor' ] . ';' : '') .
603
  (!empty( $form_theme[ 'GPFontFamily' ] ) ? 'font-family:' . $form_theme[ 'GPFontFamily' ] . ';' : '') .
604
  '}';
605
+ if ( !empty( $form_theme[ 'SEPBGColor' ] ) ) {
606
+ $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .wdform_section { background:' . $form_theme['SEPBGColor'] . '; }';
607
+ }
608
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form input[type="text"],
609
  .fm-form-container.fm-theme' . $theme_id . ' .fm-form .ui-corner-all,
610
  .fm-form-container.fm-theme' . $theme_id . ' .fm-form input[type="number"],
798
  (!empty( $form_theme[ 'SPBoxShadow' ] ) ? 'box-shadow:' . $form_theme[ 'SPBoxShadow' ] . ' !important;' : '') .
799
  ((isset( $form_theme[ 'SPBorderRadius' ] ) && $form_theme[ 'SPBorderRadius' ] !== '') ? 'border-radius:' . $form_theme[ 'SPBorderRadius' ] . 'px !important;' : '') .
800
  '}';
801
+ if ( !empty( $form_theme[ 'SPBorderType' ] ) && ($form_theme[ 'SPBorderType' ] == 'none' || $form_theme[ 'SPBorderType' ] == 'inherit' || $form_theme[ 'SPBorderType' ] == 'initial') ) {
802
+ $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-submit {' . 'border: ' . $form_theme['SPBorderType'] . '}';
803
+ }
804
  if ( !empty( $borders[ 'SP' ] ) ) {
805
  foreach ( $borders[ 'SP' ] as $border ) {
806
+ if ( !empty( $form_theme[ 'SPBorderType' ] ) && ($form_theme[ 'SPBorderType' ] == 'none' || $form_theme[ 'SPBorderType' ] == 'inherit' || $form_theme[ 'SPBorderType' ] == 'initial') ) {
807
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-submit {' .
808
  'border-' . $border . '-style:' . $form_theme[ 'SPBorderType' ] . ' !important;' .
809
  '}';
851
  ((isset( $form_theme[ 'BPBorderRadius' ] ) && $form_theme[ 'BPBorderRadius' ] !== '') ? 'border-radius:' . $form_theme[ 'BPBorderRadius' ] . 'px;' : '') .
852
  (!empty( $form_theme[ 'BPBoxShadow' ] ) ? 'box-shadow:' . $form_theme[ 'BPBoxShadow' ] . ' !important;' : '') .
853
  '}';
854
+ if ( !empty( $form_theme[ 'BPBorderType' ] ) && ($form_theme[ 'BPBorderType' ] == 'none' || $form_theme[ 'BPBorderType' ] == 'inherit' || $form_theme[ 'BPBorderType' ] == 'initial') ) {
855
+ $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-reset,
856
+ .fm-form-container.fm-theme' . $theme_id . ' .fm-form button:not(.button-submit) {' .
857
+ 'border: ' . $form_theme[ 'BPBorderType' ] . '; }';
858
+ }
859
  if ( !empty( $borders[ 'BP' ] ) ) {
860
  foreach ( $borders[ 'BP' ] as $border ) {
861
+ if ( !empty( $form_theme[ 'BPBorderType' ] ) && ($form_theme[ 'BPBorderType' ] == 'none' || $form_theme[ 'BPBorderType' ] == 'inherit' || $form_theme[ 'BPBorderType' ] == 'initial') ) {
862
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-reset,
863
+ .fm-form-container.fm-theme' . $theme_id . ' .fm-form button:not(.button-submit) {' .
864
  'border-' . $border . '-style:' . $form_theme[ 'BPBorderType' ] . ' !important;' .
865
  '}';
866
  break;
867
  } else {
868
  $css_content .= '.fm-form-container.fm-theme' . $theme_id . ' .fm-form .button-reset,
869
+ .fm-form-container.fm-theme' . $theme_id . ' .fm-form butto:not(.button-submit)n {' .
870
  ((isset( $form_theme[ 'BPBorderWidth' ] ) && $form_theme[ 'BPBorderWidth' ] !== '') ? 'border-' . $border . ':' . $form_theme[ 'BPBorderWidth' ] . 'px !important;' : '') .
871
  (!empty( $form_theme[ 'BPBorderType' ] ) ? 'border-' . $border . '-style:' . $form_theme[ 'BPBorderType' ] . ' !important;' : '') .
872
  (!empty( $form_theme[ 'BPBorderColor' ] ) ? 'border-' . $border . '-color:' . $form_theme[ 'BPBorderColor' ] . ' !important;' : '') .
1003
  .fm-form-container.fm-theme' . $theme_id . ' .fm-form input[type="checkbox"] {' .
1004
  (!empty( $form_theme[ 'MCCPBackground' ] ) || !empty( $form_theme[ 'MCCPBGColor' ] ) ? 'display: none;' : '') .
1005
  '}';
1006
+ if ( !empty( $form_theme[ 'CUPCSS' ] ) ) {
1007
+ $css_content .= $form_theme['CUPCSS'];
1008
+ }
1009
  }
1010
+ if ( !empty( $form_theme[ 'CUPCSS' ] ) ) {
 
1011
  $form_theme_css = $form_theme[ 'CUPCSS' ];
1012
+ $pattern = '/\/\/(.+)(\r\n|\r|\n)/';
1013
  if ( strpos( $form_theme_css, ':checked + label' ) !== FALSE ) {
1014
  $form_theme_css .= '
1015
  .checkbox-div label span {
3229
  array_push( $attachment_user, $pdf_data['pdf_url'] );
3230
  }
3231
 
3232
+ if ( $row->sendemail && $row->send_to || (has_action('fm_set_params_frontend_init') && WDFMInstance(self::PLUGIN)->is_free != 2) ) {
3233
+ $body = $new_script;
3234
+ $send_tos = explode( '**', $row->send_to );
3235
+ $send_copy = isset( $_POST[ "wdform_send_copy_" . $id ] ) ? $_POST[ "wdform_send_copy_" . $id ] : NULL;
3236
+ if ( isset( $send_copy ) ) {
3237
+ $send = TRUE;
3238
+ }
3239
+ else {
3240
+ $mail_verification_post_id = (int)$wpdb->get_var( $wpdb->prepare( 'SELECT mail_verification_post_id FROM ' . $wpdb->prefix . 'formmaker WHERE id="%d"', $id ) );
3241
+ $verification_link = get_post( $mail_verification_post_id );
3242
+
3243
+ // Replace pdf link in email body.
3244
+ $body = str_replace( '{PDF(link)}', site_url($pdf_data['pdf_url']), $body );
3245
+
3246
+ foreach ( $send_tos as $index => $send_to ) {
3247
+ $send_to = str_replace( '*', '', $send_to );
3248
+ if ( $row->mail_verify && $verification_link !== NULL
3249
+ && (strpos( $new_script, "{verificationlink}" ) > -1 || strpos( $new_script, "%Verification link%" ) > -1) ) {
3250
+ $ver_link = $row->mail_mode_user ? "<a href =" . add_query_arg( array(
3251
+ 'gid' => $_SESSION[ 'gid' ],
3252
+ 'h' => $_SESSION[ 'hash' ][ $index ] . '@' . $send_to,
3253
+ ), get_post_permalink( $mail_verification_post_id ) ) . ">" . add_query_arg( array(
 
 
 
 
3254
  'gid' => $_SESSION[ 'gid' ],
3255
  'h' => $_SESSION[ 'hash' ][ $index ] . '@' . $send_to,
3256
+ ), get_post_permalink( $mail_verification_post_id ) ) . "</a><br/>" : add_query_arg( array(
3257
+ 'gid' => $_SESSION[ 'gid' ],
3258
+ 'h' => $_SESSION[ 'hash' ][ $index ] . '@' . $send_to,
3259
+ ), get_post_permalink( $mail_verification_post_id ) );
3260
+ $body = str_replace( array( '%Verification link%', '{verificationlink}' ), $ver_link, $new_script );
3261
+ }
3262
+ $recipient = isset( $_POST[ 'wdform_' . str_replace( '*', '', $send_to ) . "_element" . $id ] ) ? $_POST[ 'wdform_' . $send_to . "_element" . $id ] : NULL;
3263
+ if ( $recipient ) {
3264
+ if ( $row->mail_attachment_user ) {
3265
+ $remove_parrent_array_user = new RecursiveIteratorIterator( new RecursiveArrayIterator( $attachment_user ) );
3266
+ $attachment_user = iterator_to_array( $remove_parrent_array_user, FALSE );
3267
  }
3268
+ else {
3269
+ $attachment_user = array();
3270
+ }
3271
+ if ( $row->sendemail && $row->send_to ) {
3272
+ WDW_FM_Library(self::PLUGIN)->mail($recipient, $subject, $body, $header_arr, $attachment_user);
 
 
 
 
 
3273
  }
3274
  }
3275
  }
3277
  }
3278
 
3279
  // Admin part.
3280
+ if ( $row->sendemail || (has_action('fm_set_params_frontend_init') && WDFMInstance(self::PLUGIN)->is_free != 2) ) {
3281
  $recipient = $row->mail ? $row->mail : '';
3282
  $subject = !empty( $row->mail_subject ) ? $row->mail_subject : $row->title;
3283
 
3380
  // Replace pdf link in email body.
3381
  $admin_body = str_replace( '{PDF(link)}', site_url($pdf_data['pdf_url']), $admin_body );
3382
 
3383
+ if ( $row->sendemail ) {
3384
+ $send = WDW_FM_Library(self::PLUGIN)->mail($recipient, $subject, $admin_body, $header_arr, $attachment);
3385
+ }
3386
  }
3387
  $_SESSION[ 'error_or_no' . $id ] = 0;
3388
  $msg = addslashes( __( 'Your form was successfully submitted.', WDFMInstance(self::PLUGIN)->prefix ) );
3392
  if ( $send !== TRUE ) {
3393
  $_SESSION[ 'error_or_no' . $id ] = 1;
3394
  $msg = addslashes( __( 'Error, email was not sent.', WDFMInstance(self::PLUGIN)->prefix ) );
3395
+ }
3396
+ else {
3397
  $_SESSION[ 'error_or_no' . $id ] = 0;
 
3398
  }
3399
  }
3400
  }
3401
  }
3402
 
3403
+ // Add-on conditional email.
3404
+ if ( has_action('fm_set_params_frontend_init') && WDFMInstance(self::PLUGIN)->is_free != 2 ) {
3405
+ $fm_email_params = $row->sendemail ? array(
3406
+ 'admin_body' => $admin_body,
3407
+ 'body' => $body,
3408
+ 'subject' => $subject,
3409
+ 'headers' => $header_arr,
3410
+ 'attachment' => $attachment,
3411
+ 'attachment_user' => $attachment_user,
3412
+ ) : array();
3413
+ /* TODO. Need 'custom_fields_value' key. They work with it old conditional-emails.*/
3414
+ $custom_fields_value = array( $this->custom_fields['ip'], $this->custom_fields['useremail'], $this->custom_fields['username'], $this->custom_fields['subid'], $this->custom_fields['all'] );
3415
+ $params = array(
3416
+ 'form_id' => $id,
3417
+ 'fm_email_params' => $fm_email_params,
3418
+ 'form_currency' => $form_currency,
3419
+ 'custom_fields' => $this->custom_fields,
3420
+ 'custom_fields_value' => $custom_fields_value
3421
+ );
3422
+ do_action( 'fm_set_params_frontend_init', $params );
3423
+ }
3424
+
3425
+ // Delete files from uploads (save_upload = 0).
 
3426
  if ( $row->save_uploads == 0 ) {
3427
  foreach ( $all_files as &$all_file ) {
3428
  if ( file_exists( $all_file[ 'tmp_name' ] ) ) {
3435
 
3436
  $https = ((isset( $_SERVER[ 'HTTPS' ] ) && $_SERVER[ 'HTTPS' ] == 'on') ? 'https://' : 'http://');
3437
  $redirect_url = $https . $_SERVER[ "HTTP_HOST" ] . $_SERVER[ "REQUEST_URI" ];
3438
+ if ( $row->submit_text_type == 4 && $row->url ) {
3439
  // Action after submission: URL.
3440
  $redirect_url = $row->url;
3441
  }
3444
  $redirect_url = $row->article_id;
3445
  }
3446
 
3447
+ if ( $row->submit_text_type != 4 || $row->url == '' ) {
3448
  // This ensures that no message is enqueued by an add-on.
3449
  if ( !$_SESSION[ 'massage_after_submit' . $id ] ) {
3450
  $_SESSION[ 'massage_after_submit' . $id ] = $msg;
frontend/views/form_maker.php CHANGED
@@ -1535,7 +1535,8 @@ class FMViewForm_maker_fmc {
1535
 
1536
  $rep = '';
1537
  if ($row->gdpr_checkbox && $row->gdpr_checkbox_text) {
1538
- $privacy_policy_link = ' <a href="' . WDW_FM_Library(self::PLUGIN)->get_privacy_policy_url() . '" target="_blank">' . __('Privacy Policy', BWG()->prefix) . '</a>';
 
1539
  $row->gdpr_checkbox_text = str_replace('{{privacy_policy}}', $privacy_policy_link, $row->gdpr_checkbox_text);
1540
  $gdpr_checkbox_html = '<label for="fm_privacy_policy' . $form_id . '" class="wdform-label">
1541
  <input id="fm_privacy_policy' . $form_id . '" name="fm_privacy_policy' . $form_id . '" class="wd-flex-row fm-gdpr-checkbox" onclick="' . ($disabled_submit ? '' : 'fm_privacy_policy_check(this)') . '" type="checkbox" value="1">'
1535
 
1536
  $rep = '';
1537
  if ($row->gdpr_checkbox && $row->gdpr_checkbox_text) {
1538
+ $privacy_policy_page = WDW_FM_Library(self::PLUGIN)->get_privacy_policy_url();
1539
+ $privacy_policy_link = ' <a href="' . $privacy_policy_page['url'] . '" target="_blank">' . $privacy_policy_page['title'] . '</a>';
1540
  $row->gdpr_checkbox_text = str_replace('{{privacy_policy}}', $privacy_policy_link, $row->gdpr_checkbox_text);
1541
  $gdpr_checkbox_html = '<label for="fm_privacy_policy' . $form_id . '" class="wdform-label">
1542
  <input id="fm_privacy_policy' . $form_id . '" name="fm_privacy_policy' . $form_id . '" class="wd-flex-row fm-gdpr-checkbox" onclick="' . ($disabled_submit ? '' : 'fm_privacy_policy_check(this)') . '" type="checkbox" value="1">'
js/add_field.js CHANGED
@@ -928,12 +928,13 @@ function edit(id) {
928
  w_hide_label = document.getElementById(id + "_hide_labelform_id_temp").value;
929
  w_field_min_value = document.getElementById(id + "_slider_min_valueform_id_temp").value;
930
  w_field_max_value = document.getElementById(id + "_slider_max_valueform_id_temp").value;
 
931
  w_field_width = document.getElementById(id + "_slider_widthform_id_temp").value;
932
  w_field_value = document.getElementById(id + "_slider_valueform_id_temp").value;
933
  atrs = return_attributes(id + '_elementform_id_temp');
934
  w_attr_name = atrs[0];
935
  w_attr_value = atrs[1];
936
- type_slider(id, w_field_label, w_field_label_size, w_field_label_pos, w_hide_label, w_field_width, w_field_min_value, w_field_max_value, w_field_value, w_required, w_class, w_attr_name, w_attr_value);
937
  break;
938
  }
939
  case 'type_range': {
@@ -2202,7 +2203,6 @@ function close_window() {
2202
  popup_ready();
2203
  /* In Firfox and Safari click action is working during the drag and drop also */
2204
  jQuery(".add-new-button").attr("onclick","popup_ready(); Enable(); return false;");
2205
-
2206
  }
2207
  need_enable = true;
2208
  document.getElementById('edit_table').innerHTML = "";
@@ -12099,6 +12099,18 @@ function change_slider_max_value(a, id, form_id) {
12099
  }
12100
  }
12101
 
 
 
 
 
 
 
 
 
 
 
 
 
12102
  function create_slider_width(i, w_field_width) {
12103
  var label = jQuery('<label class="fm-field-label" for="edit_for_slider_width">Width(px)</label>');
12104
  var input = jQuery('<input class="fm-width-100" type="text" id="edit_for_slider_width" onKeyPress="return check_isnum(event)" onKeyUp="change_slider_width(this.value,' + i + ',\'form_id_temp\')" value="' + w_field_width + '" /><p class="description">' + form_maker.leave_empty + '</p>');
@@ -12114,10 +12126,10 @@ function change_slider_width(a, id, form_id) {
12114
  function go_to_type_slider(new_id) {
12115
  w_attr_name = [];
12116
  w_attr_value = [];
12117
- type_slider(new_id, 'Slider', '', 'top', 'no', '', '0', '100', '0', 'no', '', w_attr_name, w_attr_value);
12118
  }
12119
 
12120
- function type_slider(i, w_field_label, w_field_label_size, w_field_label_pos, w_hide_label, w_field_width, w_field_min_value, w_field_max_value, w_field_value, w_required, w_class, w_attr_name, w_attr_value) {
12121
  jQuery("#element_type").val("type_slider");
12122
  delete_last_child();
12123
 
@@ -12133,6 +12145,7 @@ function type_slider(i, w_field_label, w_field_label_size, w_field_label_pos, w_
12133
  edit_main_table.append(create_required(i, w_required));
12134
  edit_main_table.append(create_slider_minvalue(i, w_field_min_value));
12135
  edit_main_table.append(create_slider_maxvalue(i, w_field_max_value));
 
12136
  edit_main_table.append(create_slider_width(i, w_field_width));
12137
 
12138
  var advanced_options_container = jQuery('<div class="inside"></div>');
@@ -12171,6 +12184,12 @@ function type_slider(i, w_field_label, w_field_label_size, w_field_label_pos, w_
12171
  adding_slider_max_value.setAttribute("id", i + "_slider_max_valueform_id_temp");
12172
  adding_slider_max_value.setAttribute("name", i + "_slider_max_valueform_id_temp");
12173
 
 
 
 
 
 
 
12174
  var adding_slider_value = document.createElement("input");
12175
  adding_slider_value.setAttribute("type", "hidden");
12176
  adding_slider_value.setAttribute("value", w_field_value);
@@ -12254,6 +12273,7 @@ function type_slider(i, w_field_label, w_field_label_size, w_field_label_pos, w_
12254
  div_element.appendChild(adding_slider_width);
12255
  div_element.appendChild(adding_slider_min_value);
12256
  div_element.appendChild(adding_slider_max_value);
 
12257
  div_element.appendChild(adding_slider_value);
12258
 
12259
  var slider_min = document.createElement('span');
@@ -12304,6 +12324,7 @@ function type_slider(i, w_field_label, w_field_label_size, w_field_label_pos, w_
12304
 
12305
  jQuery(function () {
12306
  jQuery("#" + i + "_elementform_id_temp").slider({
 
12307
  range: "min",
12308
  value: eval(w_field_value),
12309
  min: eval(w_field_min_value),
@@ -15730,6 +15751,7 @@ function gen_form_fields() {
15730
  w_hide_label = document.getElementById(id + "_hide_labelform_id_temp").value;
15731
  w_field_min_value = document.getElementById(id + "_slider_min_valueform_id_temp").value;
15732
  w_field_max_value = document.getElementById(id + "_slider_max_valueform_id_temp").value;
 
15733
  w_field_width = document.getElementById(id + "_slider_widthform_id_temp").value;
15734
  w_field_value = document.getElementById(id + "_slider_valueform_id_temp").value;
15735
 
@@ -15744,6 +15766,7 @@ function gen_form_fields() {
15744
  form_fields += w_field_width + "*:*w_field_width*:*";
15745
  form_fields += w_field_min_value + "*:*w_field_min_value*:*";
15746
  form_fields += w_field_max_value + "*:*w_field_max_value*:*";
 
15747
  form_fields += w_field_value + "*:*w_field_value*:*";
15748
  form_fields += w_required + "*:*w_required*:*";
15749
  form_fields += w_class + "*:*w_class*:*";
928
  w_hide_label = document.getElementById(id + "_hide_labelform_id_temp").value;
929
  w_field_min_value = document.getElementById(id + "_slider_min_valueform_id_temp").value;
930
  w_field_max_value = document.getElementById(id + "_slider_max_valueform_id_temp").value;
931
+ w_field_step = document.getElementById(id + "_slider_stepform_id_temp") && document.getElementById(id + "_slider_stepform_id_temp").value ? document.getElementById(id + "_slider_stepform_id_temp").value : 1;
932
  w_field_width = document.getElementById(id + "_slider_widthform_id_temp").value;
933
  w_field_value = document.getElementById(id + "_slider_valueform_id_temp").value;
934
  atrs = return_attributes(id + '_elementform_id_temp');
935
  w_attr_name = atrs[0];
936
  w_attr_value = atrs[1];
937
+ type_slider(id, w_field_label, w_field_label_size, w_field_label_pos, w_hide_label, w_field_width, w_field_min_value, w_field_max_value, w_field_step, w_field_value, w_required, w_class, w_attr_name, w_attr_value);
938
  break;
939
  }
940
  case 'type_range': {
2203
  popup_ready();
2204
  /* In Firfox and Safari click action is working during the drag and drop also */
2205
  jQuery(".add-new-button").attr("onclick","popup_ready(); Enable(); return false;");
 
2206
  }
2207
  need_enable = true;
2208
  document.getElementById('edit_table').innerHTML = "";
12099
  }
12100
  }
12101
 
12102
+ function create_slider_step(i, w_field_slider_step) {
12103
+ var label = jQuery('<label class="fm-field-label" for="edit_for_slider_step">Step</label>');
12104
+ var input = jQuery('<input class="fm-width-100" type="text" id="edit_for_slider_step" onKeyPress="return check_isnum(event)" onChange="change_slider_step(this.value, ' + i + ', \'form_id_temp\')" value="' + w_field_slider_step + '" />');
12105
+
12106
+ return create_option_container(label, input);
12107
+ }
12108
+
12109
+ function change_slider_step(a, id, form_id) {
12110
+ jQuery("#" + id + "_elementform_id_temp").slider({step: eval(a)});
12111
+ document.getElementById(id + "_slider_stepform_id_temp").value = a;
12112
+ }
12113
+
12114
  function create_slider_width(i, w_field_width) {
12115
  var label = jQuery('<label class="fm-field-label" for="edit_for_slider_width">Width(px)</label>');
12116
  var input = jQuery('<input class="fm-width-100" type="text" id="edit_for_slider_width" onKeyPress="return check_isnum(event)" onKeyUp="change_slider_width(this.value,' + i + ',\'form_id_temp\')" value="' + w_field_width + '" /><p class="description">' + form_maker.leave_empty + '</p>');
12126
  function go_to_type_slider(new_id) {
12127
  w_attr_name = [];
12128
  w_attr_value = [];
12129
+ type_slider(new_id, 'Slider', '', 'top', 'no', '', '0', '100', '1', '0', 'no', '', w_attr_name, w_attr_value);
12130
  }
12131
 
12132
+ function type_slider(i, w_field_label, w_field_label_size, w_field_label_pos, w_hide_label, w_field_width, w_field_min_value, w_field_max_value, w_field_step, w_field_value, w_required, w_class, w_attr_name, w_attr_value) {
12133
  jQuery("#element_type").val("type_slider");
12134
  delete_last_child();
12135
 
12145
  edit_main_table.append(create_required(i, w_required));
12146
  edit_main_table.append(create_slider_minvalue(i, w_field_min_value));
12147
  edit_main_table.append(create_slider_maxvalue(i, w_field_max_value));
12148
+ edit_main_table.append(create_slider_step(i, w_field_step));
12149
  edit_main_table.append(create_slider_width(i, w_field_width));
12150
 
12151
  var advanced_options_container = jQuery('<div class="inside"></div>');
12184
  adding_slider_max_value.setAttribute("id", i + "_slider_max_valueform_id_temp");
12185
  adding_slider_max_value.setAttribute("name", i + "_slider_max_valueform_id_temp");
12186
 
12187
+ var adding_slider_step = document.createElement("input");
12188
+ adding_slider_step.setAttribute("type", "hidden");
12189
+ adding_slider_step.setAttribute("value", w_field_step);
12190
+ adding_slider_step.setAttribute("id", i + "_slider_stepform_id_temp");
12191
+ adding_slider_step.setAttribute("name", i + "_slider_stepform_id_temp");
12192
+
12193
  var adding_slider_value = document.createElement("input");
12194
  adding_slider_value.setAttribute("type", "hidden");
12195
  adding_slider_value.setAttribute("value", w_field_value);
12273
  div_element.appendChild(adding_slider_width);
12274
  div_element.appendChild(adding_slider_min_value);
12275
  div_element.appendChild(adding_slider_max_value);
12276
+ div_element.appendChild(adding_slider_step);
12277
  div_element.appendChild(adding_slider_value);
12278
 
12279
  var slider_min = document.createElement('span');
12324
 
12325
  jQuery(function () {
12326
  jQuery("#" + i + "_elementform_id_temp").slider({
12327
+ step: eval(w_field_step),
12328
  range: "min",
12329
  value: eval(w_field_value),
12330
  min: eval(w_field_min_value),
15751
  w_hide_label = document.getElementById(id + "_hide_labelform_id_temp").value;
15752
  w_field_min_value = document.getElementById(id + "_slider_min_valueform_id_temp").value;
15753
  w_field_max_value = document.getElementById(id + "_slider_max_valueform_id_temp").value;
15754
+ w_field_step = document.getElementById(id + "_slider_stepform_id_temp") && document.getElementById(id + "_slider_stepform_id_temp").value ? document.getElementById(id + "_slider_stepform_id_temp").value : 1;
15755
  w_field_width = document.getElementById(id + "_slider_widthform_id_temp").value;
15756
  w_field_value = document.getElementById(id + "_slider_valueform_id_temp").value;
15757
 
15766
  form_fields += w_field_width + "*:*w_field_width*:*";
15767
  form_fields += w_field_min_value + "*:*w_field_min_value*:*";
15768
  form_fields += w_field_max_value + "*:*w_field_max_value*:*";
15769
+ form_fields += w_field_step + "*:*w_field_step*:*";
15770
  form_fields += w_field_value + "*:*w_field_value*:*";
15771
  form_fields += w_required + "*:*w_required*:*";
15772
  form_fields += w_class + "*:*w_class*:*";
js/formmaker_div.js CHANGED
@@ -4178,13 +4178,14 @@ function duplicate(id) {
4178
  w_hide_label=document.getElementById(id+"_hide_labelform_id_temp").value;
4179
  w_field_min_value = document.getElementById(id+"_slider_min_valueform_id_temp").value;
4180
  w_field_max_value = document.getElementById(id+"_slider_max_valueform_id_temp").value;
 
4181
  w_field_width = document.getElementById(id+"_slider_widthform_id_temp").value;
4182
  w_field_value = document.getElementById(id+"_slider_valueform_id_temp").value;
4183
 
4184
  atrs=return_attributes(id+'_elementform_id_temp');
4185
  w_attr_name=atrs[0];
4186
  w_attr_value=atrs[1];
4187
- type_slider(gen, w_field_label, w_field_label_size, w_field_label_pos, w_hide_label, w_field_width, w_field_min_value, w_field_max_value, w_field_value, w_required, w_class, w_attr_name, w_attr_value); break;
4188
  }
4189
 
4190
  case 'type_range':
4178
  w_hide_label=document.getElementById(id+"_hide_labelform_id_temp").value;
4179
  w_field_min_value = document.getElementById(id+"_slider_min_valueform_id_temp").value;
4180
  w_field_max_value = document.getElementById(id+"_slider_max_valueform_id_temp").value;
4181
+ w_field_step = document.getElementById(id + "_slider_stepform_id_temp") && document.getElementById(id + "_slider_stepform_id_temp").value ? document.getElementById(id + "_slider_stepform_id_temp").value : 1;
4182
  w_field_width = document.getElementById(id+"_slider_widthform_id_temp").value;
4183
  w_field_value = document.getElementById(id+"_slider_valueform_id_temp").value;
4184
 
4185
  atrs=return_attributes(id+'_elementform_id_temp');
4186
  w_attr_name=atrs[0];
4187
  w_attr_value=atrs[1];
4188
+ type_slider(gen, w_field_label, w_field_label_size, w_field_label_pos, w_hide_label, w_field_width, w_field_min_value, w_field_max_value, w_field_step, w_field_value, w_required, w_class, w_attr_name, w_attr_value); break;
4189
  }
4190
 
4191
  case 'type_range':
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: webdorado,10web
3
  Tags: contact, contact form, email, forms, contact forms, custom form, feedback, form builder, form manager, form maker, forms builder, form builder wordpress
4
  Requires at least: 4.6
5
  Tested up to: 4.9
6
- Stable tag: 1.12.37
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -79,6 +79,13 @@ After downloading the ZIP file,
79
 
80
  == Changelog ==
81
 
 
 
 
 
 
 
 
82
  = 1.12.37 =
83
  * Fixed: Compatibility with PHP version 5.3.
84
 
3
  Tags: contact, contact form, email, forms, contact forms, custom form, feedback, form builder, form manager, form maker, forms builder, form builder wordpress
4
  Requires at least: 4.6
5
  Tested up to: 4.9
6
+ Stable tag: 1.12.38
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
79
 
80
  == Changelog ==
81
 
82
+ = 1.12.38 =
83
+ * Improved: GDPR compliance options.
84
+ * Fixed: Error on form front end when Privacy Policy checkbox is enabled.
85
+ * Fixed: Bug on Actions after submission when Redirect to URL option is empty.
86
+ * Fixed: Notice on form submit.
87
+ * Fixed: Minor issues on Themes.
88
+
89
  = 1.12.37 =
90
  * Fixed: Compatibility with PHP version 5.3.
91