Formidable Forms – Form Builder for WordPress - Version 4.09.02

Version Description

  • Show a warning when leaving the settings page with unsaved changes.
  • Make the process for using free templates more clear.
Download this release

Release Info

Developer sswells
Plugin Icon 128x128 Formidable Forms – Form Builder for WordPress
Version 4.09.02
Comparing to
See all releases

Code changes from version 4.09.01 to 4.09.02

Files changed (65) hide show
  1. classes/controllers/FrmAppController.php +1 -1
  2. classes/controllers/FrmFormActionsController.php +0 -0
  3. classes/controllers/FrmHooksController.php +0 -0
  4. classes/controllers/FrmStylesController.php +0 -0
  5. classes/helpers/FrmAppHelper.php +1 -1
  6. classes/helpers/FrmCSVExportHelper.php +50 -2
  7. classes/helpers/FrmEntriesHelper.php +4 -0
  8. classes/helpers/FrmEntriesListHelper.php +0 -0
  9. classes/helpers/FrmFormActionsHelper.php +0 -0
  10. classes/helpers/FrmFormsHelper.php +1 -1
  11. classes/helpers/FrmFormsListHelper.php +0 -0
  12. classes/helpers/FrmStylesHelper.php +0 -0
  13. classes/models/FrmFormAction.php +0 -0
  14. classes/models/FrmFormTemplateApi.php +54 -13
  15. classes/models/FrmStyle.php +0 -0
  16. classes/views/frm-entries/_sidebar-shared-pub.php +0 -0
  17. classes/views/frm-entries/show.php +0 -0
  18. classes/views/frm-entries/sidebar-shared.php +0 -0
  19. classes/views/frm-entries/sidebar-show.php +0 -0
  20. classes/views/frm-fields/show-build.php +0 -0
  21. classes/views/frm-form-actions/_action_inside.php +0 -0
  22. classes/views/frm-form-actions/_email_settings.php +0 -0
  23. classes/views/frm-form-actions/default_actions.php +0 -0
  24. classes/views/frm-form-actions/email_action.php +0 -0
  25. classes/views/frm-form-actions/form_action.php +0 -0
  26. classes/views/frm-forms/_publish_box.php +0 -0
  27. classes/views/frm-forms/shortcode_opts.php +0 -0
  28. classes/views/shared/mb_adv_info.php +0 -0
  29. classes/views/styles/_buttons.php +0 -0
  30. classes/views/styles/_check-box-radio-fields.php +0 -0
  31. classes/views/styles/_field-colors.php +0 -0
  32. classes/views/styles/_field-description.php +0 -0
  33. classes/views/styles/_field-labels.php +0 -0
  34. classes/views/styles/_field-sizes.php +0 -0
  35. classes/views/styles/_form-messages.php +0 -0
  36. classes/views/styles/_general.php +0 -0
  37. classes/views/styles/_sample_form.php +0 -0
  38. classes/views/styles/custom_css.php +0 -0
  39. classes/views/styles/manage.php +0 -0
  40. classes/views/styles/show.php +0 -0
  41. classes/views/xml/posts_xml.php +0 -0
  42. css/_single_theme.css.php +0 -0
  43. css/codemirror.css +0 -0
  44. css/custom_theme.css.php +0 -0
  45. css/font_icons.css +0 -0
  46. formidable.php +1 -1
  47. js/codemirror/codemirror.js +0 -0
  48. js/codemirror/css.js +0 -0
  49. js/formidable_admin.js +27 -6
  50. js/formidable_admin_global.js +0 -0
  51. languages/formidable-az_AZ.mo +0 -0
  52. languages/formidable-az_AZ.po +0 -0
  53. languages/formidable-hu_HU.mo +0 -0
  54. languages/formidable-hu_HU.po +0 -0
  55. languages/formidable-it_IT.po +0 -0
  56. languages/formidable-ja.mo +0 -0
  57. languages/formidable-ja.po +0 -0
  58. languages/formidable-js-strings.php +0 -59
  59. languages/formidable-nb_NO.mo +0 -0
  60. languages/formidable-nb_NO.po +0 -0
  61. languages/formidable-pl_PL.po +0 -0
  62. languages/formidable-ro_RO.mo +0 -0
  63. languages/formidable-ro_RO.po +0 -0
  64. languages/formidable.pot +25 -25
  65. readme.txt +22 -23
classes/controllers/FrmAppController.php CHANGED
@@ -299,7 +299,7 @@ class FrmAppController {
299
  if ( ! FrmAppHelper::pro_is_installed() ) {
300
  // avoid rendering the email and code blocks for users who have upgraded or have a free license already
301
  $api = new FrmFormTemplateApi();
302
- if ( ! $api->get_free_license() ) {
303
  array_push( $blocks_to_render, 'email', 'code' );
304
  }
305
  }
299
  if ( ! FrmAppHelper::pro_is_installed() ) {
300
  // avoid rendering the email and code blocks for users who have upgraded or have a free license already
301
  $api = new FrmFormTemplateApi();
302
+ if ( ! $api->has_free_access() ) {
303
  array_push( $blocks_to_render, 'email', 'code' );
304
  }
305
  }
classes/controllers/FrmFormActionsController.php CHANGED
File without changes
classes/controllers/FrmHooksController.php CHANGED
File without changes
classes/controllers/FrmStylesController.php CHANGED
File without changes
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '4.09.01';
15
 
16
  /**
17
  * @since 1.07.02
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '4.09.02';
15
 
16
  /**
17
  * @since 1.07.02
classes/helpers/FrmCSVExportHelper.php CHANGED
@@ -17,6 +17,7 @@ class FrmCSVExportHelper {
17
  protected static $fields = array();
18
  protected static $entry;
19
  protected static $has_parent_id;
 
20
 
21
  public static function csv_format_options() {
22
  $formats = array( 'UTF-8', 'ISO-8859-1', 'windows-1256', 'windows-1251', 'macintosh' );
@@ -194,7 +195,10 @@ class FrmCSVExportHelper {
194
  $flat[ $key ] = $heading;
195
  }
196
  }
197
- unset( $key, $heading, $max, $repeater_headings, $repeater_id );
 
 
 
198
 
199
  $headings = $flat;
200
  unset( $flat );
@@ -227,7 +231,7 @@ class FrmCSVExportHelper {
227
  * @return bool
228
  */
229
  private static function is_the_child_of_a_repeater( $field ) {
230
- if ( $field->form_id === self::$form_id || ! $field->field_options['in_section'] ) {
231
  return false;
232
  }
233
 
@@ -303,6 +307,8 @@ class FrmCSVExportHelper {
303
  //add the repeated values
304
  $entries[ self::$entry->parent_item_id ]->metas[ $meta_id ][] = $meta_value;
305
  }
 
 
306
  $entries[ self::$entry->parent_item_id ]->metas += self::$entry->metas;
307
  }
308
 
@@ -313,6 +319,48 @@ class FrmCSVExportHelper {
313
  $entries[ self::$entry->parent_item_id ]->embedded_fields[ self::$entry->id ] = self::$entry->form_id;
314
  }
315
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  private static function add_field_values_to_csv( &$row ) {
317
  foreach ( self::$fields as $col ) {
318
  $field_value = isset( self::$entry->metas[ $col->id ] ) ? self::$entry->metas[ $col->id ] : false;
17
  protected static $fields = array();
18
  protected static $entry;
19
  protected static $has_parent_id;
20
+ protected static $fields_by_repeater_id;
21
 
22
  public static function csv_format_options() {
23
  $formats = array( 'UTF-8', 'ISO-8859-1', 'windows-1256', 'windows-1251', 'macintosh' );
195
  $flat[ $key ] = $heading;
196
  }
197
  }
198
+
199
+ self::$fields_by_repeater_id = $fields_by_repeater_id;
200
+
201
+ unset( $key, $heading, $max, $repeater_headings, $repeater_id, $fields_by_repeater_id );
202
 
203
  $headings = $flat;
204
  unset( $flat );
231
  * @return bool
232
  */
233
  private static function is_the_child_of_a_repeater( $field ) {
234
+ if ( $field->form_id === self::$form_id || empty( $field->field_options['in_section'] ) ) {
235
  return false;
236
  }
237
 
307
  //add the repeated values
308
  $entries[ self::$entry->parent_item_id ]->metas[ $meta_id ][] = $meta_value;
309
  }
310
+
311
+ self::$entry->metas = self::fill_missing_repeater_metas( self::$entry->metas, $entries );
312
  $entries[ self::$entry->parent_item_id ]->metas += self::$entry->metas;
313
  }
314
 
319
  $entries[ self::$entry->parent_item_id ]->embedded_fields[ self::$entry->id ] = self::$entry->form_id;
320
  }
321
 
322
+ /**
323
+ * When an empty field is saved, it isn't saved as a meta value
324
+ * The export needs all of the meta to be filled in, so we put blank strings for every missing repeater child
325
+ *
326
+ * @param array $metas
327
+ * @param array $entries
328
+ * @return array
329
+ */
330
+ private static function fill_missing_repeater_metas( $metas, &$entries ) {
331
+ $field_ids = array_keys( $metas );
332
+ $field_id = end( $field_ids );
333
+ $field = self::get_field( $field_id );
334
+
335
+ if ( ! $field || empty( $field->field_options['in_section'] ) ) {
336
+ return $metas;
337
+ }
338
+
339
+ $repeater_id = $field->field_options['in_section'];
340
+ if ( ! isset( self::$fields_by_repeater_id[ $repeater_id ] ) ) {
341
+ return $metas;
342
+ }
343
+
344
+ foreach ( self::$fields_by_repeater_id[ $repeater_id ] as $repeater_child ) {
345
+ if ( ! isset( $metas[ $repeater_child->id ] ) ) {
346
+ $metas[ $repeater_child->id ] = '';
347
+ $entries[ self::$entry->parent_item_id ]->metas[ $repeater_child->id ][] = '';
348
+ }
349
+ }
350
+
351
+ return $metas;
352
+ }
353
+
354
+ private static function get_field( $field_id ) {
355
+ $field_id = (int) $field_id;
356
+ foreach ( self::$fields as $field ) {
357
+ if ( $field_id === (int) $field->id ) {
358
+ return $field;
359
+ }
360
+ }
361
+ return false;
362
+ }
363
+
364
  private static function add_field_values_to_csv( &$row ) {
365
  foreach ( self::$fields as $col ) {
366
  $field_value = isset( self::$entry->metas[ $col->id ] ) ? self::$entry->metas[ $col->id ] : false;
classes/helpers/FrmEntriesHelper.php CHANGED
@@ -6,6 +6,8 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  class FrmEntriesHelper {
7
 
8
  public static function setup_new_vars( $fields, $form = '', $reset = false, $args = array() ) {
 
 
9
  $values = array(
10
  'name' => '',
11
  'description' => '',
@@ -129,6 +131,8 @@ class FrmEntriesHelper {
129
  }
130
 
131
  public static function setup_edit_vars( $values, $record ) {
 
 
132
  $values['item_key'] = FrmAppHelper::get_post_param( 'item_key', $record->item_key, 'sanitize_title' );
133
  $values['form_id'] = $record->form_id;
134
  $values['is_draft'] = $record->is_draft;
6
  class FrmEntriesHelper {
7
 
8
  public static function setup_new_vars( $fields, $form = '', $reset = false, $args = array() ) {
9
+ remove_action( 'media_buttons', 'FrmFormsController::insert_form_button' );
10
+
11
  $values = array(
12
  'name' => '',
13
  'description' => '',
131
  }
132
 
133
  public static function setup_edit_vars( $values, $record ) {
134
+ remove_action( 'media_buttons', 'FrmFormsController::insert_form_button' );
135
+
136
  $values['item_key'] = FrmAppHelper::get_post_param( 'item_key', $record->item_key, 'sanitize_title' );
137
  $values['form_id'] = $record->form_id;
138
  $values['is_draft'] = $record->is_draft;
classes/helpers/FrmEntriesListHelper.php CHANGED
File without changes
classes/helpers/FrmFormActionsHelper.php CHANGED
File without changes
classes/helpers/FrmFormsHelper.php CHANGED
@@ -1406,7 +1406,7 @@ BEFORE_HTML;
1406
 
1407
  if ( $category === 'Personal' ) {
1408
  // Show the current package name.
1409
- $category = 'Basic';
1410
  }
1411
 
1412
  return $category;
1406
 
1407
  if ( $category === 'Personal' ) {
1408
  // Show the current package name.
1409
+ $category = 'Plus';
1410
  }
1411
 
1412
  return $category;
classes/helpers/FrmFormsListHelper.php CHANGED
File without changes
classes/helpers/FrmStylesHelper.php CHANGED
File without changes
classes/models/FrmFormAction.php CHANGED
File without changes
classes/models/FrmFormTemplateApi.php CHANGED
@@ -9,13 +9,22 @@ class FrmFormTemplateApi extends FrmFormApi {
9
 
10
  private static $base_api_url = 'https://formidableforms.com/wp-json/form-templates/v1/';
11
 
12
- protected $free_license;
13
 
14
  /**
15
  * @since 3.06
16
  */
17
  protected function set_cache_key() {
18
- $this->cache_key = 'frm_form_templates_l' . ( empty( $this->license ) ? '' : md5( $this->license ) );
 
 
 
 
 
 
 
 
 
19
  }
20
 
21
  /**
@@ -47,11 +56,27 @@ class FrmFormTemplateApi extends FrmFormApi {
47
  * @return string
48
  */
49
  public function get_free_license() {
50
- if ( ! isset( $this->free_license ) ) {
51
- $this->free_license = get_option( self::$code_option_name );
52
  }
53
 
54
- return $this->free_license;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
56
 
57
  /**
@@ -59,7 +84,7 @@ class FrmFormTemplateApi extends FrmFormApi {
59
  */
60
  private static function verify_code( $code ) {
61
  $base64_code = base64_encode( $code );
62
- $api_url = self::$base_api_url . 'code?l=' . $base64_code;
63
  $response = wp_remote_get( $api_url );
64
 
65
  self::handle_verify_response_errors_if_any( $response );
@@ -68,12 +93,16 @@ class FrmFormTemplateApi extends FrmFormApi {
68
  $successful = ! empty( $decoded->response );
69
 
70
  if ( $successful ) {
71
- self::on_api_verify_code_success( $base64_code );
72
  } else {
73
  wp_send_json_error( new WP_Error( $decoded->code, $decoded->message ) );
74
  }
75
  }
76
 
 
 
 
 
77
  /**
78
  * @param array $response
79
  */
@@ -91,21 +120,33 @@ class FrmFormTemplateApi extends FrmFormApi {
91
  * @param string $code the base64 encoded code
92
  */
93
  private static function on_api_verify_code_success( $code ) {
94
- update_option( self::$code_option_name, $code );
 
95
 
96
  $data = array();
97
  $key = FrmAppHelper::get_param( 'key', '', 'post', 'sanitize_key' );
98
 
99
  if ( $key ) {
100
- $api = new self();
101
- $templates = $api->get_api_info();
 
 
 
102
 
103
  foreach ( $templates as $template ) {
104
- if ( $key === $template['key'] ) {
105
- $data['url'] = $template['url'];
106
- break;
107
  }
 
 
 
 
 
 
 
108
  }
 
 
109
  }
110
 
111
  wp_send_json_success( $data );
9
 
10
  private static $base_api_url = 'https://formidableforms.com/wp-json/form-templates/v1/';
11
 
12
+ protected static $free_license;
13
 
14
  /**
15
  * @since 3.06
16
  */
17
  protected function set_cache_key() {
18
+ $this->cache_key = 'frm_form_templates_l';
19
+
20
+ if ( ! empty( $this->license ) ) {
21
+ $this->cache_key .= md5( $this->license );
22
+ } else {
23
+ $free_license = $this->get_free_license();
24
+ if ( $free_license ) {
25
+ $this->cache_key .= md5( $free_license );
26
+ }
27
+ }
28
  }
29
 
30
  /**
56
  * @return string
57
  */
58
  public function get_free_license() {
59
+ if ( ! isset( self::$free_license ) ) {
60
+ self::$free_license = get_option( self::$code_option_name );
61
  }
62
 
63
+ return self::$free_license;
64
+ }
65
+
66
+ /**
67
+ * Check to make sure the free code is being used.
68
+ *
69
+ * @since 4.09.02
70
+ */
71
+ public function has_free_access() {
72
+ $free_access = $this->get_free_license();
73
+ if ( ! $free_access ) {
74
+ return false;
75
+ }
76
+
77
+ $templates = $this->get_api_info();
78
+ $contact_form = 20872734;
79
+ return isset( $templates[ $contact_form ] ) && ! empty( $templates[ $contact_form ]['url'] );
80
  }
81
 
82
  /**
84
  */
85
  private static function verify_code( $code ) {
86
  $base64_code = base64_encode( $code );
87
+ $api_url = self::$base_api_url . 'code?l=' . urlencode( $base64_code );
88
  $response = wp_remote_get( $api_url );
89
 
90
  self::handle_verify_response_errors_if_any( $response );
93
  $successful = ! empty( $decoded->response );
94
 
95
  if ( $successful ) {
96
+ self::on_api_verify_code_success( $code );
97
  } else {
98
  wp_send_json_error( new WP_Error( $decoded->code, $decoded->message ) );
99
  }
100
  }
101
 
102
+ private static function clear_template_cache_before_getting_free_templates() {
103
+ delete_option( 'frm_form_templates_l' );
104
+ }
105
+
106
  /**
107
  * @param array $response
108
  */
120
  * @param string $code the base64 encoded code
121
  */
122
  private static function on_api_verify_code_success( $code ) {
123
+ self::$free_license = $code;
124
+ update_option( self::$code_option_name, $code, 'no' );
125
 
126
  $data = array();
127
  $key = FrmAppHelper::get_param( 'key', '', 'post', 'sanitize_key' );
128
 
129
  if ( $key ) {
130
+ self::clear_template_cache_before_getting_free_templates();
131
+
132
+ $data['urlByKey'] = array();
133
+ $api = new self();
134
+ $templates = $api->get_api_info();
135
 
136
  foreach ( $templates as $template ) {
137
+ if ( ! isset( $template['url'] ) || ! in_array( 'free', $template['categories'], true ) ) {
138
+ continue;
 
139
  }
140
+
141
+ $data['urlByKey'][ $template['key'] ] = $template['url'];
142
+ }
143
+
144
+ if ( ! isset( $data['urlByKey'][ $key ] ) ) {
145
+ $error = new WP_Error( 400, 'We were unable to retrieve the template' );
146
+ wp_send_json_error( $error );
147
  }
148
+
149
+ $data['url'] = $data['urlByKey'][ $key ];
150
  }
151
 
152
  wp_send_json_success( $data );
classes/models/FrmStyle.php CHANGED
File without changes
classes/views/frm-entries/_sidebar-shared-pub.php CHANGED
File without changes
classes/views/frm-entries/show.php CHANGED
File without changes
classes/views/frm-entries/sidebar-shared.php CHANGED
File without changes
classes/views/frm-entries/sidebar-show.php CHANGED
File without changes
classes/views/frm-fields/show-build.php CHANGED
File without changes
classes/views/frm-form-actions/_action_inside.php CHANGED
File without changes
classes/views/frm-form-actions/_email_settings.php CHANGED
File without changes
classes/views/frm-form-actions/default_actions.php CHANGED
File without changes
classes/views/frm-form-actions/email_action.php CHANGED
File without changes
classes/views/frm-form-actions/form_action.php CHANGED
File without changes
classes/views/frm-forms/_publish_box.php CHANGED
File without changes
classes/views/frm-forms/shortcode_opts.php CHANGED
File without changes
classes/views/shared/mb_adv_info.php CHANGED
File without changes
classes/views/styles/_buttons.php CHANGED
File without changes
classes/views/styles/_check-box-radio-fields.php CHANGED
File without changes
classes/views/styles/_field-colors.php CHANGED
File without changes
classes/views/styles/_field-description.php CHANGED
File without changes
classes/views/styles/_field-labels.php CHANGED
File without changes
classes/views/styles/_field-sizes.php CHANGED
File without changes
classes/views/styles/_form-messages.php CHANGED
File without changes
classes/views/styles/_general.php CHANGED
File without changes
classes/views/styles/_sample_form.php CHANGED
File without changes
classes/views/styles/custom_css.php CHANGED
File without changes
classes/views/styles/manage.php CHANGED
File without changes
classes/views/styles/show.php CHANGED
File without changes
classes/views/xml/posts_xml.php CHANGED
File without changes
css/_single_theme.css.php CHANGED
File without changes
css/codemirror.css CHANGED
File without changes
css/custom_theme.css.php CHANGED
File without changes
css/font_icons.css CHANGED
File without changes
formidable.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
- Version: 4.09.01
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 4.09.02
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
js/codemirror/codemirror.js CHANGED
File without changes
js/codemirror/css.js CHANGED
File without changes
js/formidable_admin.js CHANGED
@@ -4838,6 +4838,11 @@ function frmAdminBuildJS() {
4838
  fieldsUpdated = 0;
4839
  }
4840
 
 
 
 
 
 
4841
  function confirmExit( event ) {
4842
  if ( fieldsUpdated ) {
4843
  event.preventDefault();
@@ -5571,7 +5576,6 @@ function frmAdminBuildJS() {
5571
  function initNewFormModal() {
5572
  var installFormTrigger,
5573
  activeHoverIcons,
5574
- activeTemplateKey,
5575
  $modal,
5576
  handleError,
5577
  handleEmailAddressError,
@@ -5713,7 +5717,7 @@ function frmAdminBuildJS() {
5713
  });
5714
 
5715
  activePage = 'email';
5716
- activeTemplateKey = $li.attr( 'data-key' );
5717
  $li.append( installFormTrigger );
5718
  } else if ( $modal.hasClass( 'frm-expired' ) ) {
5719
  activePage = 'renew';
@@ -5817,7 +5821,7 @@ function frmAdminBuildJS() {
5817
  action: 'template_api_signup',
5818
  nonce: frmGlobal.nonce,
5819
  code: code,
5820
- key: activeTemplateKey
5821
  },
5822
  success: function( response ) {
5823
  if ( response.success ) {
@@ -5826,6 +5830,10 @@ function frmAdminBuildJS() {
5826
  installFormTrigger.click();
5827
  $modal.attr( 'frm-page', 'details' );
5828
  document.getElementById( 'frm_action_type' ).value = 'frm_install_template';
 
 
 
 
5829
  }
5830
  } else {
5831
  if ( Array.isArray( response.data ) && response.data.length ) {
@@ -5899,6 +5907,18 @@ function frmAdminBuildJS() {
5899
  }
5900
  }
5901
 
 
 
 
 
 
 
 
 
 
 
 
 
5902
  function transitionToAddDetails( $modal, name, link, action ) {
5903
  var nameLabel = document.getElementById( 'frm_new_name' ),
5904
  descLabel = document.getElementById( 'frm_new_desc' ),
@@ -6478,8 +6498,6 @@ function frmAdminBuildJS() {
6478
  });
6479
  clickTab( jQuery( '.starttab a' ), 'auto' );
6480
 
6481
- jQuery( '.post-type-frm_display #screen-options-wrap:hidden input[type="checkbox"]' ).attr( 'disabled', true );
6482
-
6483
  // submit the search form with dropdown
6484
  jQuery( '#frm-fid-search-menu a' ).click( function() {
6485
  var val = this.id.replace( 'fid-', '' );
@@ -6624,7 +6642,7 @@ function frmAdminBuildJS() {
6624
  $builderForm.on( 'change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg );
6625
 
6626
  jQuery( document ).on( 'submit', '#frm_js_build_form', buildSubmittedNoAjax );
6627
- jQuery( document ).on( 'change', '#frm_builder_page input:not(.frm-search-input), #frm_builder_page select', fieldUpdated );
6628
 
6629
  popAllProductFields();
6630
 
@@ -6786,6 +6804,9 @@ function frmAdminBuildJS() {
6786
 
6787
  jQuery( document ).on( 'frm-multiselect-changed', '#protect_files_role', adjustVisibilityValuesForEveryoneValues );
6788
 
 
 
 
6789
  // Page Selection Autocomplete
6790
  initSelectionAutocomplete();
6791
  },
4838
  fieldsUpdated = 0;
4839
  }
4840
 
4841
+ function settingsSubmitted() {
4842
+ // set fieldsUpdated to 0 to avoid the unsaved changes pop up
4843
+ fieldsUpdated = 0;
4844
+ }
4845
+
4846
  function confirmExit( event ) {
4847
  if ( fieldsUpdated ) {
4848
  event.preventDefault();
5576
  function initNewFormModal() {
5577
  var installFormTrigger,
5578
  activeHoverIcons,
 
5579
  $modal,
5580
  handleError,
5581
  handleEmailAddressError,
5717
  });
5718
 
5719
  activePage = 'email';
5720
+ $modal.attr( 'frm-this-form', $li.attr( 'data-key' ) );
5721
  $li.append( installFormTrigger );
5722
  } else if ( $modal.hasClass( 'frm-expired' ) ) {
5723
  activePage = 'renew';
5821
  action: 'template_api_signup',
5822
  nonce: frmGlobal.nonce,
5823
  code: code,
5824
+ key: $modal.attr( 'frm-this-form' )
5825
  },
5826
  success: function( response ) {
5827
  if ( response.success ) {
5830
  installFormTrigger.click();
5831
  $modal.attr( 'frm-page', 'details' );
5832
  document.getElementById( 'frm_action_type' ).value = 'frm_install_template';
5833
+
5834
+ if ( typeof response.data.urlByKey !== 'undefined' ) {
5835
+ updateTemplateModalFreeUrls( response.data.urlByKey );
5836
+ }
5837
  }
5838
  } else {
5839
  if ( Array.isArray( response.data ) && response.data.length ) {
5907
  }
5908
  }
5909
 
5910
+ function updateTemplateModalFreeUrls( urlByKey ) {
5911
+ jQuery( '#frm_new_form_modal' ).find( '.frm-selectable[data-key]' ).each( function() {
5912
+ var $template = jQuery( this ),
5913
+ key = $template.attr( 'data-key' );
5914
+ if ( 'undefined' !== typeof urlByKey[ key ]) {
5915
+ $template.removeClass( 'frm-locked-template' );
5916
+ $template.find( 'h3 svg' ).remove(); // remove the lock from the title
5917
+ $template.attr( 'data-rel', urlByKey[ key ]);
5918
+ }
5919
+ });
5920
+ }
5921
+
5922
  function transitionToAddDetails( $modal, name, link, action ) {
5923
  var nameLabel = document.getElementById( 'frm_new_name' ),
5924
  descLabel = document.getElementById( 'frm_new_desc' ),
6498
  });
6499
  clickTab( jQuery( '.starttab a' ), 'auto' );
6500
 
 
 
6501
  // submit the search form with dropdown
6502
  jQuery( '#frm-fid-search-menu a' ).click( function() {
6503
  var val = this.id.replace( 'fid-', '' );
6642
  $builderForm.on( 'change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg );
6643
 
6644
  jQuery( document ).on( 'submit', '#frm_js_build_form', buildSubmittedNoAjax );
6645
+ jQuery( document ).on( 'change', '#frm_builder_page input:not(.frm-search-input), #frm_builder_page select, #frm_builder_page textarea', fieldUpdated );
6646
 
6647
  popAllProductFields();
6648
 
6804
 
6805
  jQuery( document ).on( 'frm-multiselect-changed', '#protect_files_role', adjustVisibilityValuesForEveryoneValues );
6806
 
6807
+ jQuery( document ).on( 'submit', '.frm_form_settings', settingsSubmitted );
6808
+ jQuery( document ).on( 'change', '#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea', fieldUpdated );
6809
+
6810
  // Page Selection Autocomplete
6811
  initSelectionAutocomplete();
6812
  },
js/formidable_admin_global.js CHANGED
File without changes
languages/formidable-az_AZ.mo CHANGED
File without changes
languages/formidable-az_AZ.po CHANGED
File without changes
languages/formidable-hu_HU.mo CHANGED
File without changes
languages/formidable-hu_HU.po CHANGED
File without changes
languages/formidable-it_IT.po CHANGED
File without changes
languages/formidable-ja.mo CHANGED
File without changes
languages/formidable-ja.po CHANGED
File without changes
languages/formidable-js-strings.php DELETED
@@ -1,59 +0,0 @@
1
- <?php
2
- /* THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. */
3
- $generated_i18n_strings = array(
4
- // Reference: js/src/common/components/itemselect.js:26
5
- __( 'Select a %s', 'formidable' ),
6
-
7
- // Reference: js/src/common/components/itemselect.js:47
8
- __( 'Currently, there are no %s', 'formidable' ),
9
-
10
- // Reference: js/src/form/block.js:19
11
- __( 'Display a Form', 'formidable' ),
12
-
13
- // Reference: js/src/form/block.js:23
14
- __( 'contact forms', 'formidable' ),
15
-
16
- // Reference: js/src/form/block.js:35
17
- // Reference: js/src/form/calculator.js:43
18
- __( 'This site does not have any forms.', 'formidable' ),
19
-
20
- // Reference: js/src/form/calculator.js:27
21
- __( 'Display a Calculator Form', 'formidable' ),
22
-
23
- // Reference: js/src/form/calculator.js:55
24
- __( 'This site does not have any calculator forms.', 'formidable' ),
25
-
26
- // Reference: js/src/form/calculator.js:58
27
- __( 'Upgrade Formidable Forms.', 'formidable' ),
28
-
29
- // Reference: js/src/form/calculator.js:61
30
- __( 'Calculator Form', 'formidable' ),
31
-
32
- // Reference: js/src/form/formselect.js:23
33
- __( 'form', 'formidable' ),
34
-
35
- // Reference: js/src/form/formselect.js:24
36
- __( 'forms', 'formidable' ),
37
-
38
- // Reference: js/src/form/inspector.js:43
39
- __( 'Select Form', 'formidable' ),
40
-
41
- // Reference: js/src/form/inspector.js:57
42
- __( 'Go to form', 'formidable' ),
43
-
44
- // Reference: js/src/form/inspector.js:62
45
- __( 'Options', 'formidable' ),
46
-
47
- // Reference: js/src/form/inspector.js:66
48
- __( 'Show Form Title', 'formidable' ),
49
-
50
- // Reference: js/src/form/inspector.js:73
51
- __( 'Show Form Description', 'formidable' ),
52
-
53
- // Reference: js/src/form/inspector.js:80
54
- __( 'Minimize HTML', 'formidable' ),
55
-
56
- // Reference: js/src/form/inspector.js:88
57
- __( 'Shortcode', 'formidable' )
58
- );
59
- /* THIS IS THE END OF THE GENERATED FILE */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/formidable-nb_NO.mo CHANGED
File without changes
languages/formidable-nb_NO.po CHANGED
File without changes
languages/formidable-pl_PL.po CHANGED
File without changes
languages/formidable-ro_RO.mo CHANGED
File without changes
languages/formidable-ro_RO.po CHANGED
File without changes
languages/formidable.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Formidable Forms 4.09.01\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2020-11-11T19:16:15+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.1.0\n"
15
  "X-Domain: formidable\n"
@@ -1268,7 +1268,7 @@ msgstr ""
1268
  #: classes/controllers/FrmFormsController.php:732
1269
  #: classes/controllers/FrmFormsController.php:736
1270
  #: classes/views/shared/mb_adv_info.php:98
1271
- #: classes/helpers/FrmCSVExportHelper.php:219
1272
  msgid "Key"
1273
  msgstr ""
1274
 
@@ -1510,7 +1510,7 @@ msgid "Entry Name"
1510
  msgstr ""
1511
 
1512
  #: classes/controllers/FrmEntriesController.php:86
1513
- #: classes/helpers/FrmCSVExportHelper.php:214
1514
  msgid "Created By"
1515
  msgstr ""
1516
 
@@ -2434,7 +2434,7 @@ msgid "Keys"
2434
  msgstr ""
2435
 
2436
  #: classes/views/shared/mb_adv_info.php:95
2437
- #: classes/helpers/FrmCSVExportHelper.php:218
2438
  #: classes/helpers/FrmAppHelper.php:2395
2439
  msgid "ID"
2440
  msgstr ""
@@ -3421,7 +3421,7 @@ msgid "Updated: %1$s"
3421
  msgstr ""
3422
 
3423
  #: classes/views/frm-entries/show.php:12
3424
- #: classes/helpers/FrmEntriesHelper.php:649
3425
  msgid "View Entry"
3426
  msgstr ""
3427
 
@@ -3825,7 +3825,7 @@ msgstr ""
3825
 
3826
  #: classes/helpers/FrmFormsListHelper.php:342
3827
  #: classes/helpers/FrmFormsHelper.php:1227
3828
- #: classes/helpers/FrmCSVExportHelper.php:216
3829
  msgid "Draft"
3830
  msgstr ""
3831
 
@@ -5127,33 +5127,33 @@ msgstr ""
5127
  msgid "Install %s Importer"
5128
  msgstr ""
5129
 
5130
- #: classes/helpers/FrmEntriesHelper.php:539
5131
- #: classes/helpers/FrmEntriesHelper.php:540
5132
  msgid "Unknown"
5133
  msgstr ""
5134
 
5135
- #: classes/helpers/FrmEntriesHelper.php:657
5136
  msgid "Delete Entry"
5137
  msgstr ""
5138
 
5139
- #: classes/helpers/FrmEntriesHelper.php:660
5140
  msgid "Delete this form entry?"
5141
  msgstr ""
5142
 
5143
- #: classes/helpers/FrmEntriesHelper.php:668
5144
  msgid "Print Entry"
5145
  msgstr ""
5146
 
5147
- #: classes/helpers/FrmEntriesHelper.php:678
5148
- #: classes/helpers/FrmEntriesHelper.php:681
5149
  msgid "Resend Emails"
5150
  msgstr ""
5151
 
5152
- #: classes/helpers/FrmEntriesHelper.php:690
5153
  msgid "Edit Entry"
5154
  msgstr ""
5155
 
5156
- #: classes/helpers/FrmEntriesHelper.php:693
5157
  msgid "Entry edits"
5158
  msgstr ""
5159
 
@@ -5340,39 +5340,39 @@ msgstr ""
5340
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
5341
  msgstr ""
5342
 
5343
- #: classes/helpers/FrmCSVExportHelper.php:126
5344
  msgid "(label)"
5345
  msgstr ""
5346
 
5347
- #: classes/helpers/FrmCSVExportHelper.php:205
5348
  msgid "Comment"
5349
  msgstr ""
5350
 
5351
- #: classes/helpers/FrmCSVExportHelper.php:206
5352
  msgid "Comment User"
5353
  msgstr ""
5354
 
5355
- #: classes/helpers/FrmCSVExportHelper.php:207
5356
  msgid "Comment Date"
5357
  msgstr ""
5358
 
5359
- #: classes/helpers/FrmCSVExportHelper.php:212
5360
  msgid "Timestamp"
5361
  msgstr ""
5362
 
5363
- #: classes/helpers/FrmCSVExportHelper.php:213
5364
  msgid "Last Updated"
5365
  msgstr ""
5366
 
5367
- #: classes/helpers/FrmCSVExportHelper.php:215
5368
  msgid "Updated By"
5369
  msgstr ""
5370
 
5371
- #: classes/helpers/FrmCSVExportHelper.php:217
5372
  msgid "IP"
5373
  msgstr ""
5374
 
5375
- #: classes/helpers/FrmCSVExportHelper.php:221
5376
  msgid "Parent ID"
5377
  msgstr ""
5378
 
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Formidable Forms 4.09.02\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2020-12-07T16:32:24+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.1.0\n"
15
  "X-Domain: formidable\n"
1268
  #: classes/controllers/FrmFormsController.php:732
1269
  #: classes/controllers/FrmFormsController.php:736
1270
  #: classes/views/shared/mb_adv_info.php:98
1271
+ #: classes/helpers/FrmCSVExportHelper.php:223
1272
  msgid "Key"
1273
  msgstr ""
1274
 
1510
  msgstr ""
1511
 
1512
  #: classes/controllers/FrmEntriesController.php:86
1513
+ #: classes/helpers/FrmCSVExportHelper.php:218
1514
  msgid "Created By"
1515
  msgstr ""
1516
 
2434
  msgstr ""
2435
 
2436
  #: classes/views/shared/mb_adv_info.php:95
2437
+ #: classes/helpers/FrmCSVExportHelper.php:222
2438
  #: classes/helpers/FrmAppHelper.php:2395
2439
  msgid "ID"
2440
  msgstr ""
3421
  msgstr ""
3422
 
3423
  #: classes/views/frm-entries/show.php:12
3424
+ #: classes/helpers/FrmEntriesHelper.php:653
3425
  msgid "View Entry"
3426
  msgstr ""
3427
 
3825
 
3826
  #: classes/helpers/FrmFormsListHelper.php:342
3827
  #: classes/helpers/FrmFormsHelper.php:1227
3828
+ #: classes/helpers/FrmCSVExportHelper.php:220
3829
  msgid "Draft"
3830
  msgstr ""
3831
 
5127
  msgid "Install %s Importer"
5128
  msgstr ""
5129
 
5130
+ #: classes/helpers/FrmEntriesHelper.php:543
5131
+ #: classes/helpers/FrmEntriesHelper.php:544
5132
  msgid "Unknown"
5133
  msgstr ""
5134
 
5135
+ #: classes/helpers/FrmEntriesHelper.php:661
5136
  msgid "Delete Entry"
5137
  msgstr ""
5138
 
5139
+ #: classes/helpers/FrmEntriesHelper.php:664
5140
  msgid "Delete this form entry?"
5141
  msgstr ""
5142
 
5143
+ #: classes/helpers/FrmEntriesHelper.php:672
5144
  msgid "Print Entry"
5145
  msgstr ""
5146
 
5147
+ #: classes/helpers/FrmEntriesHelper.php:682
5148
+ #: classes/helpers/FrmEntriesHelper.php:685
5149
  msgid "Resend Emails"
5150
  msgstr ""
5151
 
5152
+ #: classes/helpers/FrmEntriesHelper.php:694
5153
  msgid "Edit Entry"
5154
  msgstr ""
5155
 
5156
+ #: classes/helpers/FrmEntriesHelper.php:697
5157
  msgid "Entry edits"
5158
  msgstr ""
5159
 
5340
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
5341
  msgstr ""
5342
 
5343
+ #: classes/helpers/FrmCSVExportHelper.php:127
5344
  msgid "(label)"
5345
  msgstr ""
5346
 
5347
+ #: classes/helpers/FrmCSVExportHelper.php:209
5348
  msgid "Comment"
5349
  msgstr ""
5350
 
5351
+ #: classes/helpers/FrmCSVExportHelper.php:210
5352
  msgid "Comment User"
5353
  msgstr ""
5354
 
5355
+ #: classes/helpers/FrmCSVExportHelper.php:211
5356
  msgid "Comment Date"
5357
  msgstr ""
5358
 
5359
+ #: classes/helpers/FrmCSVExportHelper.php:216
5360
  msgid "Timestamp"
5361
  msgstr ""
5362
 
5363
+ #: classes/helpers/FrmCSVExportHelper.php:217
5364
  msgid "Last Updated"
5365
  msgstr ""
5366
 
5367
+ #: classes/helpers/FrmCSVExportHelper.php:219
5368
  msgid "Updated By"
5369
  msgstr ""
5370
 
5371
+ #: classes/helpers/FrmCSVExportHelper.php:221
5372
  msgid "IP"
5373
  msgstr ""
5374
 
5375
+ #: classes/helpers/FrmCSVExportHelper.php:225
5376
  msgid "Parent ID"
5377
  msgstr ""
5378
 
readme.txt CHANGED
@@ -3,9 +3,9 @@ Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Forms Plugin for Wor
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator form, calculator, price calculator, quote form, contact button, form manager, forms creator, Akismet, web form, payment form, survey form, donation form, email submit form, message form, email subscription, contact form widget, user registration form, registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form, custom form
5
  Requires at least: 4.7
6
- Tested up to: 5.5.1
7
  Requires PHP: 5.6
8
- Stable tag: 4.09.01
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
@@ -14,7 +14,7 @@ The most advanced WordPress forms plugin. Go beyond contact forms with our drag
14
  == The Most Powerful WordPress form builder plugin on the market ==
15
  We built <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms</a> to offer the "first-ever" solutions-focused WordPress form plugin on the market. You can use our drag & drop WordPress form builder plugin to create a contact form, survey, quiz, registration form, payment form, purchase, email marketing, or calculator form. Build just about anything you can imagine.
16
 
17
- At Formidable, creating the most extendable online form builder plugin is our #1 priority. Unlike other WordPress form maker plugins that focus just on building a contact form, we believe in pushing the limits. We want to give you the tools to save time and create complex forms quickly!
18
 
19
  Before we explore the features of the powerful Formidable form builder plugin, you should know that Formidable is 100% mobile responsive. Your WordPress forms will always look great on all devices (desktop, laptop, tablets, and smartphones).
20
 
@@ -103,7 +103,7 @@ More on quizzes later, but here are some example online calculators that you can
103
  * <a href="https://formidableforms.com/form-templates/advanced-mortgage-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Advanced Mortgage Calculator</a>
104
  * <a href="https://formidableforms.com/form-templates/simple-mortgage-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Basic Mortgage Calculator</a>
105
  * <a href="https://formidableforms.com/form-templates/automobile-payment-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Car Payment Calculator</a>
106
- * <a href="https://formidableforms.com/form-templates/nps-survey-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Net Promoter Score (NPS) Survey Calculator</a>
107
  * <a href="https://formidableforms.com/form-templates/bmi-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">BMI Calculator</a> and more Health and Fitness Calculators
108
  * <a href="https://formidableforms.com/form-templates/age-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">User Age Calculator</a>
109
  * Online Quote Calculator
@@ -111,7 +111,7 @@ More on quizzes later, but here are some example online calculators that you can
111
  * Booking Cost Calculator
112
  * Price Calculator
113
 
114
- ... and our powerful calculated fields allow you to build just about any other type of calculator.
115
 
116
  You can also create a poll, or survey on your WordPress site and display the results. This is great for membership sites, LMS, or just for viral quizzes to grow your email list.
117
 
@@ -121,7 +121,7 @@ Now you can go beyond a simple contact form plugin and create custom form-based
121
 
122
  If you run a WordPress membership site, then you need a form maker that allows you to customize your WordPress user registration form and collect data with a user profile.
123
 
124
- With our front-end editing, you can build a custom profile form for users to keep their profile up to date. You can even progressively add to the profile from a set of forms. Everything from the first lead form to the last payment form can extend the user profile. Once logged in, all new submissions in a quiz, calculator, or support form can be linked to that user account.
125
 
126
  You will not find any other WordPress form plugin offering a front-end editing solution with the same level of extendability.
127
 
@@ -145,11 +145,11 @@ On top of that, our hooks and filters allow you to extend Formidable to meet you
145
 
146
  Since Formidable is not your average WordPress form plugin, this feature list is going to be very long. Read through it, or just install the most powerful WordPress form maker. Your choice :)
147
 
148
- * <a href="https://formidableforms.com/features/drag-drop-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Online drag and drop form builder</a>. Build everything from an email form to a price calculator or complex online form. Make awesome quiz forms, calculators, and online forms the easy way with a simple WordPress drag and drop form maker. You don't have to be a code ninja.
149
  * <a href="https://formidableforms.com/features/display-form-data-views/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Display form data with Views</a>. Other WordPress form builder plugins only let you collect data. Formidable lets you format, filter, and display form submissions in Formidable Views to turn forms into solutions. Think job boards, event calendars, business directories, ratings systems, management solutions, and pretty much anything else you can come up with.
150
- * <a href="https://formidableforms.com/features/dynamically-add-form-fields/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Repeating field groups (repeaters)</a>. Allow visitors to add sets of fields on the fly. This is great for a registration form, application, calculator, or email form.
151
  * <a href="https://formidableforms.com/features/wordpress-multiple-file-upload-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Drag and drop multiple file upload forms</a>. Easily upload documents, files, photos, and music, with any number of files. This is great for a job application form (resumes), WordPress User Profile Form (avatars), or get a quote form.
152
- * <a href="https://formidableforms.com/features/wordpress-multi-step-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Multi-step forms with progress bars</a>. Want to increase conversion rates and collect more leads with a smart contact form? Create beautiful paged forms with rootline and progress indicators. Add conditional logic to page breaks for a smart branching form.
153
  * <a href="https://formidableforms.com/features/cascading-dropdown-lookup-field/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Cascading lookup fields</a>. Autofill values in other form fields or drill down through options to reveal a final value. Designed for year/make/model fields in auto forms and country/state/city fields. You can even use lookup fields to get a price from a separate product form.
154
  * Datepicker fields with advanced <a href="https://formidableforms.com/features/datepicker-options-for-dates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">datepicker options</a> including blackout dates, dynamic minimum and maximum dates, and inline calendars. Our datepickers are great for email forms, basic online booking, and event registration.
155
  * Dynamic field relationships. Populate form fields from other forms and link data between two forms without duplication. These relationships are helpful in a huge number of cases. For example, you can link employment applications to a job, quizzes to a class, an event registration to an event, or a sports registration to a team.
@@ -160,7 +160,7 @@ Since Formidable is not your average WordPress form plugin, this feature list is
160
  * <a href="https://formidableforms.com/features/email-autoresponders-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Send email notifications & autoresponders</a>. Automatically let clients know you received their message. Then create customized email notifications for multiple recipients and get info from an email form to those who need it.
161
  * Email routing. Conditionally send multiple autoresponder emails and notifications based on values in email forms, user registration forms, and payment forms.
162
  * Pricing fields for easy eCommerce forms with automatic price calculations. Drop in a product field, quantity, and total and you're good to go.
163
- * <a href="https://formidableforms.com/wordpress-calculator-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Calculator forms</a>. Create basic and complex calculations, and even combine text from multiple fields. This is great for a mortgage calculator, auto loan calculator, and many other calculators. Your visitors can benefit from price calculations for easy quotes and price estimates. We recommend adding range sliders for calculator forms your clients will love.
164
  * <a href="https://formidableforms.com/features/wordpress-visual-form-styler/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Visual style creator</a>. Having trouble styling your WordPress forms? Our form creator allows you to brand calculator forms, email forms, quiz forms, and other WP forms to match your site. Change colors, borders, font sizes, and more without any code.
165
  * <a href="https://formidableforms.com/features/flexible-layouts-responsive-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Flexible form layout design</a>. Build mobile responsive forms and advanced layouts with multiple fields in a row by using our CSS layout classes.
166
  * <a href="https://formidableforms.com/features/wordpress-mobile-friendly-responsive-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Mobile-friendly, responsive forms</a>. All of our forms are sized automatically for every screen size. Ensure that everyone can see and submit your surveys, calculator forms, Stripe forms, and web forms from any device.
@@ -176,20 +176,20 @@ Since Formidable is not your average WordPress form plugin, this feature list is
176
  * We believe that forms should be extendable to meet your needs. So we give you access to <a href="https://formidableforms.com/features/customize-form-html-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">customize the form HTML</a> (like Contact Form 7). But you keep the ease and speed of a drag & drop form builder plugin. Our team labors for simplicity without sacrificing flexibility.
177
  * <a href="https://formidableforms.com/features/importing-exporting-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Import and export forms, form submissions, styles, and views</a>. Quickly move forms, entries, views and styles to another site. Need to export leads to another service? Check.
178
  * <a href="https://formidableforms.com/features/wordpress-form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form templates for instant form building</a>. Get started quickly with the most advanced form creator that includes form templates, style templates, and Formidable View templates. Our WordPress form generator makes it FAST to build job application forms, calculator forms, and other types of online forms.
179
- * Import our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">pre-built form/view templates</a> as a shortcut to a final product. Our growing form template library includes payment forms, calculators, a WooCommerce product creator, and more.
180
- * <a href="https://formidableforms.com/features/wcag-accessible-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WCAG accessible forms with A11Y and ADA compliance</a>. Don't alienate your audience. Ensure your survey, calculator, lead capture form, quizzes, and other online forms are compliant and available to everyone. Allow those using screenreaders to successfully use your WordPress forms.
181
  * <a href="https://formidableforms.com/features/invisible-spam-protection/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Invisible SPAM protection</a>. Don't waste time sorting through SPAM. Get instant and powerful anti-spam features from honeypot, invisible Google reCAPTCHA, Akismet, and the WordPress comment blacklist.
182
  * <a href="https://formidableforms.com/features/fill-out-forms-automatically/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Fill out forms automatically</a> with values from the user profile or posts (i.e. custom fields). When a user is logged in, prefill known values like first name, last name, and email address.
183
- * <a href="https://formidableforms.com/features/white-label-form-builder-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">White label forms</a>. Replace the Formidable branding with your own in the admin area. Plus, we never show "powered by" links in your free contact form or other online form.
184
  * <a href="https://formidableforms.com/features/wordpress-user-registration/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WordPress user registration forms</a>. Register WordPress users, edit profiles, reset passwords, and add a login form. You can even allow logged in and logged out users to create new subdomains with WordPress multisite forms.
185
  * <a href="https://formidableforms.com/features/digital-form-signatures/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Digital signature forms</a>. Eliminate paper forms with a digital signature field in contracts, application forms and more.
186
  * <a href="https://formidableforms.com/features/form-action-automation-scheduling/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form action automation</a>. Schedule email notifications, SMS messages, and webhooks to trigger at a later time. You can automatically delete guest posts after 30 days, send weekly digests, or trigger happy birthday text messages from a lead form.
187
  * <a href="https://formidableforms.com/features/wordpress-form-api/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms API</a>. Send submissions to other REST APIs and add a set of form webhooks. This includes the option to send submissions from one Formidable site to another.
188
  * <a href="https://formidableforms.com/features/quiz-maker-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Quiz maker forms</a>. Write your quiz form questions, submit an entry as the quiz key, and publish the quiz on a page. Then all the quiz grading is automatically done for you with our quiz plugin.
189
- * <a href="https://formidableforms.com/knowledgebase/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">World class support</a>. Have questions on how to use our contact form maker or set up your web application? We are happy to help. Our passion is to help you <strong>defy the limits</strong> to take on bigger projects, earn more clients, and grow your business.
190
 
191
  == Payment Forms, Form APIs, and Marketing Integrations ==
192
- In addition to all the features listed above, power up your email forms, calculators, surveys, and quizzes with these integrations.
193
 
194
  * <a href="https://formidableforms.com/features/paypal-wordpress-payments/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">PayPal Payment Forms</a>. Automate your business by collecting instant payments and recurring payments from clients. Collect information and calculate a total in a PayPal form or donation form.
195
  * <a href="https://formidableforms.com/features/stripe-payments-for-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Stripe Payment Forms</a>. Keep users on your site while collecting Stripe payments from a credit card form. Select from one time and recurring charges in order forms and donation forms. Stripe processes payments with simple PCI compliance.
@@ -249,7 +249,7 @@ Next, edit or create a WordPress contact page. Click the "Formidable" button to
249
 
250
  Learn more about <a href="https://formidableforms.com/wordpress-contact-form-template-to-unique/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">using the contact form template</a>.
251
 
252
- = Why isn't my WordPress contact form sending emails? =
253
  When you do not receive emails, try the following steps:
254
 
255
  1. Double check the email address in your Email action on the settings page. The [admin_email] shortcode uses the email address from your WordPress Settings -> General page.
@@ -325,7 +325,7 @@ The Formidable drag & drop form builder combined with our add-ons is the most po
325
  To see more, visit our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin">Form Template Gallery</a> which has almost 100 pre-made templates.
326
 
327
  = How can I get access to all advanced features? =
328
- To get access to more features, integrations, and support, <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">upgrade to Formidable Forms Pro</a>. A Pro license gives you access to the full version of Formidable Forms for more advanced options, Formidable Views, graphs and stats, priority support, and Formidable Add-ons!
329
 
330
  = Can I create a Payment Form with Formidable? =
331
 
@@ -391,7 +391,7 @@ Formidable also allows you to import from other WordPress contact form plugins s
391
 
392
  = Can I integrate Formidable with my CRM or email marketing service? =
393
 
394
- Yes! We know that marketing is the key to grow your business. That's why Formidable allows you to connect your WP form, payment form, or calculator, with the marketing platform of your choice. You can easily send data from your WordPress forms to your favorite CRM, email newsletter, and other marketing platforms.
395
 
396
  Here is a list of our popular marketing integrations:
397
 
@@ -435,6 +435,10 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
435
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
436
 
437
  == Changelog ==
 
 
 
 
438
  = 4.09.01 =
439
  * Don't include a link in the entries list to the form page when the user doesn't have permission to see anything there.
440
 
@@ -455,9 +459,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
455
  * Fix: Make any multiselect dropdowns in admin settings accessible.
456
  * Fix: aria-invalid attribute was missing on elements for accessibility.
457
 
458
- = 4.07 =
459
- * New: Use frm_inline_success for the form class in the customized HTML to move the success message next to the submit button. "frm_inline_success frm_alignright_success" will right-align the message.
460
- * Tweak: Improve the form listing page and entry listings page when nothing has been created.
461
- * Fix: Update the recaptcha for better reliability to catch more spam.
462
-
463
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator form, calculator, price calculator, quote form, contact button, form manager, forms creator, Akismet, web form, payment form, survey form, donation form, email submit form, message form, email subscription, contact form widget, user registration form, registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form, custom form
5
  Requires at least: 4.7
6
+ Tested up to: 5.6
7
  Requires PHP: 5.6
8
+ Stable tag: 4.09.02
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
14
  == The Most Powerful WordPress form builder plugin on the market ==
15
  We built <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms</a> to offer the "first-ever" solutions-focused WordPress form plugin on the market. You can use our drag & drop WordPress form builder plugin to create a contact form, survey, quiz, registration form, payment form, purchase, email marketing, or calculator form. Build just about anything you can imagine.
16
 
17
+ At Formidable, creating the most extendable online form builder plugin is our #1 priority. Unlike other WordPress form maker plugins, we believe in pushing the limits. We want to give you the tools to save time and create complex forms quickly!
18
 
19
  Before we explore the features of the powerful Formidable form builder plugin, you should know that Formidable is 100% mobile responsive. Your WordPress forms will always look great on all devices (desktop, laptop, tablets, and smartphones).
20
 
103
  * <a href="https://formidableforms.com/form-templates/advanced-mortgage-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Advanced Mortgage Calculator</a>
104
  * <a href="https://formidableforms.com/form-templates/simple-mortgage-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Basic Mortgage Calculator</a>
105
  * <a href="https://formidableforms.com/form-templates/automobile-payment-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Car Payment Calculator</a>
106
+ * <a href="https://formidableforms.com/form-templates/nps-survey-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Net Promoter Score (NPS) Survey</a>
107
  * <a href="https://formidableforms.com/form-templates/bmi-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">BMI Calculator</a> and more Health and Fitness Calculators
108
  * <a href="https://formidableforms.com/form-templates/age-calculator-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">User Age Calculator</a>
109
  * Online Quote Calculator
111
  * Booking Cost Calculator
112
  * Price Calculator
113
 
114
+ ... and our powerful calculated fields allow you to build just about anything.
115
 
116
  You can also create a poll, or survey on your WordPress site and display the results. This is great for membership sites, LMS, or just for viral quizzes to grow your email list.
117
 
121
 
122
  If you run a WordPress membership site, then you need a form maker that allows you to customize your WordPress user registration form and collect data with a user profile.
123
 
124
+ With our front-end editing, you can build a custom profile form for users to keep their profile up to date. You can even progressively add to the profile from a set of forms. Everything from the first lead form to the last payment form can extend the user profile. Once logged in, all new submissions in a quiz, or support form can be linked to that user account.
125
 
126
  You will not find any other WordPress form plugin offering a front-end editing solution with the same level of extendability.
127
 
145
 
146
  Since Formidable is not your average WordPress form plugin, this feature list is going to be very long. Read through it, or just install the most powerful WordPress form maker. Your choice :)
147
 
148
+ * <a href="https://formidableforms.com/features/drag-drop-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Online drag and drop form builder</a>. Build everything from an email form to a price calculator or complex online form. Make awesome quiz forms, and online forms the easy way with a simple WordPress drag and drop form maker. You don't have to be a code ninja.
149
  * <a href="https://formidableforms.com/features/display-form-data-views/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Display form data with Views</a>. Other WordPress form builder plugins only let you collect data. Formidable lets you format, filter, and display form submissions in Formidable Views to turn forms into solutions. Think job boards, event calendars, business directories, ratings systems, management solutions, and pretty much anything else you can come up with.
150
+ * <a href="https://formidableforms.com/features/dynamically-add-form-fields/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Repeating field groups (repeaters)</a>. Allow visitors to add sets of fields on the fly. This is great for a registration form, application, or email form.
151
  * <a href="https://formidableforms.com/features/wordpress-multiple-file-upload-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Drag and drop multiple file upload forms</a>. Easily upload documents, files, photos, and music, with any number of files. This is great for a job application form (resumes), WordPress User Profile Form (avatars), or get a quote form.
152
+ * <a href="https://formidableforms.com/features/wordpress-multi-step-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Multi-step forms with progress bars</a>. Want to increase conversion rates and collect more leads? Create beautiful paged forms with rootline and progress indicators. Add conditional logic to page breaks for a smart branching form.
153
  * <a href="https://formidableforms.com/features/cascading-dropdown-lookup-field/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Cascading lookup fields</a>. Autofill values in other form fields or drill down through options to reveal a final value. Designed for year/make/model fields in auto forms and country/state/city fields. You can even use lookup fields to get a price from a separate product form.
154
  * Datepicker fields with advanced <a href="https://formidableforms.com/features/datepicker-options-for-dates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">datepicker options</a> including blackout dates, dynamic minimum and maximum dates, and inline calendars. Our datepickers are great for email forms, basic online booking, and event registration.
155
  * Dynamic field relationships. Populate form fields from other forms and link data between two forms without duplication. These relationships are helpful in a huge number of cases. For example, you can link employment applications to a job, quizzes to a class, an event registration to an event, or a sports registration to a team.
160
  * <a href="https://formidableforms.com/features/email-autoresponders-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Send email notifications & autoresponders</a>. Automatically let clients know you received their message. Then create customized email notifications for multiple recipients and get info from an email form to those who need it.
161
  * Email routing. Conditionally send multiple autoresponder emails and notifications based on values in email forms, user registration forms, and payment forms.
162
  * Pricing fields for easy eCommerce forms with automatic price calculations. Drop in a product field, quantity, and total and you're good to go.
163
+ * <a href="https://formidableforms.com/wordpress-calculator-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Calculator forms</a>. Create basic and complex calculations, and even combine text from multiple fields. This is great for a mortgage calculator, auto loan calculator, and many more. Your visitors can benefit from price calculations for easy quotes and price estimates. We recommend adding range sliders for calculator forms your clients will love.
164
  * <a href="https://formidableforms.com/features/wordpress-visual-form-styler/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Visual style creator</a>. Having trouble styling your WordPress forms? Our form creator allows you to brand calculator forms, email forms, quiz forms, and other WP forms to match your site. Change colors, borders, font sizes, and more without any code.
165
  * <a href="https://formidableforms.com/features/flexible-layouts-responsive-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Flexible form layout design</a>. Build mobile responsive forms and advanced layouts with multiple fields in a row by using our CSS layout classes.
166
  * <a href="https://formidableforms.com/features/wordpress-mobile-friendly-responsive-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Mobile-friendly, responsive forms</a>. All of our forms are sized automatically for every screen size. Ensure that everyone can see and submit your surveys, calculator forms, Stripe forms, and web forms from any device.
176
  * We believe that forms should be extendable to meet your needs. So we give you access to <a href="https://formidableforms.com/features/customize-form-html-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">customize the form HTML</a> (like Contact Form 7). But you keep the ease and speed of a drag & drop form builder plugin. Our team labors for simplicity without sacrificing flexibility.
177
  * <a href="https://formidableforms.com/features/importing-exporting-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Import and export forms, form submissions, styles, and views</a>. Quickly move forms, entries, views and styles to another site. Need to export leads to another service? Check.
178
  * <a href="https://formidableforms.com/features/wordpress-form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form templates for instant form building</a>. Get started quickly with the most advanced form creator that includes form templates, style templates, and Formidable View templates. Our WordPress form generator makes it FAST to build job application forms, calculator forms, and other types of online forms.
179
+ * Import our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">pre-built form/view templates</a> as a shortcut to a final product. Our growing form template library includes payment forms, a WooCommerce product creator, and more.
180
+ * <a href="https://formidableforms.com/features/wcag-accessible-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WCAG accessible forms with A11Y and ADA compliance</a>. Don't alienate your audience. Ensure your survey, lead capture form, quizzes, and other online forms are compliant and available to everyone. Allow those using screenreaders to successfully use your WordPress forms.
181
  * <a href="https://formidableforms.com/features/invisible-spam-protection/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Invisible SPAM protection</a>. Don't waste time sorting through SPAM. Get instant and powerful anti-spam features from honeypot, invisible Google reCAPTCHA, Akismet, and the WordPress comment blacklist.
182
  * <a href="https://formidableforms.com/features/fill-out-forms-automatically/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Fill out forms automatically</a> with values from the user profile or posts (i.e. custom fields). When a user is logged in, prefill known values like first name, last name, and email address.
183
+ * <a href="https://formidableforms.com/features/white-label-form-builder-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">White label forms</a>. Replace the Formidable branding with your own in the admin area. Plus, we never show "powered by" links in your free online form.
184
  * <a href="https://formidableforms.com/features/wordpress-user-registration/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WordPress user registration forms</a>. Register WordPress users, edit profiles, reset passwords, and add a login form. You can even allow logged in and logged out users to create new subdomains with WordPress multisite forms.
185
  * <a href="https://formidableforms.com/features/digital-form-signatures/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Digital signature forms</a>. Eliminate paper forms with a digital signature field in contracts, application forms and more.
186
  * <a href="https://formidableforms.com/features/form-action-automation-scheduling/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form action automation</a>. Schedule email notifications, SMS messages, and webhooks to trigger at a later time. You can automatically delete guest posts after 30 days, send weekly digests, or trigger happy birthday text messages from a lead form.
187
  * <a href="https://formidableforms.com/features/wordpress-form-api/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms API</a>. Send submissions to other REST APIs and add a set of form webhooks. This includes the option to send submissions from one Formidable site to another.
188
  * <a href="https://formidableforms.com/features/quiz-maker-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Quiz maker forms</a>. Write your quiz form questions, submit an entry as the quiz key, and publish the quiz on a page. Then all the quiz grading is automatically done for you with our quiz plugin.
189
+ * <a href="https://formidableforms.com/knowledgebase/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">World class support</a>. Have questions on how to use our form maker or set up your web application? We are happy to help. Our passion is to help you <strong>defy the limits</strong> to take on bigger projects, earn more clients, and grow your business.
190
 
191
  == Payment Forms, Form APIs, and Marketing Integrations ==
192
+ In addition to all the features listed above, power up your email forms, surveys, and quizzes with these integrations.
193
 
194
  * <a href="https://formidableforms.com/features/paypal-wordpress-payments/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">PayPal Payment Forms</a>. Automate your business by collecting instant payments and recurring payments from clients. Collect information and calculate a total in a PayPal form or donation form.
195
  * <a href="https://formidableforms.com/features/stripe-payments-for-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Stripe Payment Forms</a>. Keep users on your site while collecting Stripe payments from a credit card form. Select from one time and recurring charges in order forms and donation forms. Stripe processes payments with simple PCI compliance.
249
 
250
  Learn more about <a href="https://formidableforms.com/wordpress-contact-form-template-to-unique/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">using the contact form template</a>.
251
 
252
+ = Why isn't WordPress sending emails? =
253
  When you do not receive emails, try the following steps:
254
 
255
  1. Double check the email address in your Email action on the settings page. The [admin_email] shortcode uses the email address from your WordPress Settings -> General page.
325
  To see more, visit our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin">Form Template Gallery</a> which has almost 100 pre-made templates.
326
 
327
  = How can I get access to all advanced features? =
328
+ To get access to more features, integrations, and support, <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">upgrade to Formidable Pro</a>. A Pro license gives you access to the full version of Formidable for more advanced options, Formidable Views, graphs and stats, priority support, and Formidable Add-ons!
329
 
330
  = Can I create a Payment Form with Formidable? =
331
 
391
 
392
  = Can I integrate Formidable with my CRM or email marketing service? =
393
 
394
+ Yes! We know that marketing is the key to grow your business. That's why Formidable allows you to connect your WP form, or payment form, with the marketing platform of your choice. You can easily send data from your WordPress forms to your favorite CRM, email newsletter, and other marketing platforms.
395
 
396
  Here is a list of our popular marketing integrations:
397
 
435
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
436
 
437
  == Changelog ==
438
+ = 4.09.02 =
439
+ * Show a warning when leaving the settings page with unsaved changes.
440
+ * Make the process for using free templates more clear.
441
+
442
  = 4.09.01 =
443
  * Don't include a link in the entries list to the form page when the user doesn't have permission to see anything there.
444
 
459
  * Fix: Make any multiselect dropdowns in admin settings accessible.
460
  * Fix: aria-invalid attribute was missing on elements for accessibility.
461
 
 
 
 
 
 
462
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>