Formidable Forms – Form Builder for WordPress - Version 5.0.12

Version Description

  • New: When the frm_inline_submit class is added to custom Submit Button HTML if frm_inline_form is missing from the form it will now be automatically added to allow for the submit button to become inline.
  • Fix: Many Formidable addons were not properly displaying update details from the plugins page.
  • Fix: Fewer API requests will be sent to Formidable when inbox notice cached results expire and when a request results in an error.
  • Fix: Added additional validation to CSV export so it fails more gracefully when the form does not exist.
  • Fix: The style setting for Margin under Field Settings as been renamed to Bottom Margin to avoid confusion as it only updates one margin value.
Download this release

Release Info

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

Code changes from version 5.0.11 to 5.0.12

classes/controllers/FrmXMLController.php CHANGED
@@ -566,9 +566,14 @@ class FrmXMLController {
566
 
567
  global $wpdb;
568
 
569
- $form = FrmForm::getOne( $form_id );
570
- $form_id = $form->id;
571
 
 
 
 
 
 
 
572
  $form_cols = self::get_fields_for_csv_export( $form_id, $form );
573
 
574
  $item_id = FrmAppHelper::get_param( 'item_id', 0, 'get', 'sanitize_text_field' );
566
 
567
  global $wpdb;
568
 
569
+ $form = FrmForm::getOne( $form_id );
 
570
 
571
+ if ( ! $form ) {
572
+ esc_html_e( 'Form not found.', 'formidable' );
573
+ wp_die();
574
+ }
575
+
576
+ $form_id = $form->id;
577
  $form_cols = self::get_fields_for_csv_export( $form_id, $form );
578
 
579
  $item_id = FrmAppHelper::get_param( 'item_id', 0, 'get', 'sanitize_text_field' );
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '5.0.11';
15
 
16
  /**
17
  * @since 1.07.02
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '5.0.12';
15
 
16
  /**
17
  * @since 1.07.02
classes/helpers/FrmFormsHelper.php CHANGED
@@ -795,7 +795,13 @@ BEFORE_HTML;
795
  $form = $form->options;
796
  }
797
 
798
- $submit_align = isset( $form['submit_align'] ) ? $form['submit_align'] : '';
 
 
 
 
 
 
799
 
800
  if ( 'inline' === $submit_align ) {
801
  $class .= ' frm_inline_form';
@@ -809,6 +815,22 @@ BEFORE_HTML;
809
  return $class;
810
  }
811
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
812
  /**
813
  * Returns appropriate class if form has top labels
814
  *
795
  $form = $form->options;
796
  }
797
 
798
+ if ( ! empty( $form['submit_align'] ) ) {
799
+ $submit_align = $form['submit_align'];
800
+ } elseif ( self::form_should_be_inline_and_missing_class( $form ) ) {
801
+ $submit_align = 'inline';
802
+ } else {
803
+ $submit_align = '';
804
+ }
805
 
806
  if ( 'inline' === $submit_align ) {
807
  $class .= ' frm_inline_form';
815
  return $class;
816
  }
817
 
818
+ /**
819
+ * In order for frm_inline_submit to inline the submit button the form must also have the frm_inline_form that adds the grid-column style rules required for it to work.
820
+ *
821
+ * @since 5.0.12
822
+ *
823
+ * @param array $form
824
+ * @return bool
825
+ */
826
+ private static function form_should_be_inline_and_missing_class( $form ) {
827
+ if ( isset( $form['form_class'] ) && false !== strpos( ' ' . $form['form_class'] . ' ', ' frm_inline_form ' ) ) {
828
+ // not missing class, avoid adding it twice.
829
+ return false;
830
+ }
831
+ return ! empty( $form['submit_html'] ) && false !== strpos( $form['submit_html'], 'frm_inline_submit' );
832
+ }
833
+
834
  /**
835
  * Returns appropriate class if form has top labels
836
  *
classes/models/FrmAddon.php CHANGED
@@ -90,8 +90,9 @@ class FrmAddon {
90
  return $_data;
91
  }
92
 
93
- $slug = basename( $this->plugin_file, '.php' );
94
- if ( ! isset( $_args->slug ) || $_args->slug != $slug ) {
 
95
  return $_data;
96
  }
97
 
90
  return $_data;
91
  }
92
 
93
+ $slug = basename( $this->plugin_file, '.php' );
94
+ $slug2 = str_replace( '/' . $slug . '.php', '', $this->plugin_folder );
95
+ if ( empty( $_args->slug ) || ( $_args->slug != $slug && $_args->slug !== $slug2 ) ) {
96
  return $_data;
97
  }
98
 
classes/models/FrmFormApi.php CHANGED
@@ -81,29 +81,26 @@ class FrmFormApi {
81
  'user-agent' => $agent . '; ' . get_bloginfo( 'url' ),
82
  )
83
  );
 
84
  if ( is_array( $response ) && ! is_wp_error( $response ) ) {
85
  $addons = $response['body'] ? json_decode( $response['body'], true ) : array();
 
86
 
87
- if ( ! is_array( $addons ) ) {
88
- $addons = array();
89
- }
90
 
91
- foreach ( $addons as $k => $addon ) {
92
- if ( ! isset( $addon['categories'] ) ) {
93
- continue;
94
- }
95
- $cats = array_intersect( $this->skip_categories(), $addon['categories'] );
96
- if ( ! empty( $cats ) ) {
97
- unset( $addons[ $k ] );
98
- }
99
  }
100
-
101
- $this->set_cached( $addons );
102
  }
103
 
104
- if ( empty( $addons ) ) {
105
- return array();
106
- }
107
 
108
  return $addons;
109
  }
81
  'user-agent' => $agent . '; ' . get_bloginfo( 'url' ),
82
  )
83
  );
84
+
85
  if ( is_array( $response ) && ! is_wp_error( $response ) ) {
86
  $addons = $response['body'] ? json_decode( $response['body'], true ) : array();
87
+ }
88
 
89
+ if ( ! is_array( $addons ) ) {
90
+ $addons = array();
91
+ }
92
 
93
+ foreach ( $addons as $k => $addon ) {
94
+ if ( ! isset( $addon['categories'] ) ) {
95
+ continue;
96
+ }
97
+ $cats = array_intersect( $this->skip_categories(), $addon['categories'] );
98
+ if ( ! empty( $cats ) ) {
99
+ unset( $addons[ $k ] );
 
100
  }
 
 
101
  }
102
 
103
+ $this->set_cached( $addons );
 
 
104
 
105
  return $addons;
106
  }
classes/models/FrmInbox.php CHANGED
@@ -12,7 +12,7 @@ class FrmInbox extends FrmFormApi {
12
 
13
  private $option = 'frm_inbox';
14
 
15
- private $messages = false;
16
 
17
  /**
18
  * @param array
@@ -21,7 +21,10 @@ class FrmInbox extends FrmFormApi {
21
 
22
  public function __construct( $for_parent = null ) {
23
  $this->set_cache_key();
24
- $this->set_messages();
 
 
 
25
  }
26
 
27
  /**
@@ -42,7 +45,7 @@ class FrmInbox extends FrmFormApi {
42
  * @since 4.05
43
  */
44
  public function get_messages( $filter = false ) {
45
- $messages = $this->messages;
46
  if ( $filter === 'filter' ) {
47
  $this->filter_messages( $messages );
48
  }
@@ -53,9 +56,9 @@ class FrmInbox extends FrmFormApi {
53
  * @since 4.05
54
  */
55
  public function set_messages() {
56
- $this->messages = get_option( $this->option );
57
- if ( empty( $this->messages ) ) {
58
- $this->messages = array();
59
  }
60
 
61
  $this->add_api_messages();
@@ -63,7 +66,7 @@ class FrmInbox extends FrmFormApi {
63
  /**
64
  * Messages are in an array.
65
  */
66
- $this->messages = apply_filters( 'frm_inbox', $this->messages );
67
  }
68
 
69
  /**
@@ -90,7 +93,7 @@ class FrmInbox extends FrmFormApi {
90
  return;
91
  }
92
 
93
- if ( isset( $this->messages[ $message['key'] ] ) && ! isset( $message['force'] ) ) {
94
  // Don't replace messages unless required.
95
  return;
96
  }
@@ -99,13 +102,13 @@ class FrmInbox extends FrmFormApi {
99
  return;
100
  }
101
 
102
- if ( isset( $this->messages[ $message['key'] ] ) ) {
103
  // Move up and mark as new.
104
- unset( $this->messages[ $message['key'] ] );
105
  }
106
 
107
  $this->fill_message( $message );
108
- $this->messages[ $message['key'] ] = $message;
109
 
110
  $this->update_list();
111
 
@@ -131,13 +134,13 @@ class FrmInbox extends FrmFormApi {
131
  }
132
 
133
  private function clean_messages() {
134
- $removed = false;
135
- foreach ( $this->messages as $t => $message ) {
136
- $read = isset( $message['read'] ) && ! empty( $message['read'] ) && isset( $message['read'][ get_current_user_id() ] ) && $message['read'][ get_current_user_id() ] < strtotime( '-1 month' );
137
  $dismissed = isset( $message['dismissed'] ) && ! empty( $message['dismissed'] ) && isset( $message['dismissed'][ get_current_user_id() ] ) && $message['dismissed'][ get_current_user_id() ] < strtotime( '-1 week' );
138
- $expired = $this->is_expired( $message );
139
  if ( $read || $expired || $dismissed ) {
140
- unset( $this->messages[ $t ] );
141
  $removed = true;
142
  }
143
  }
@@ -193,14 +196,14 @@ class FrmInbox extends FrmFormApi {
193
  * @param string $key
194
  */
195
  public function mark_read( $key ) {
196
- if ( ! $key || ! isset( $this->messages[ $key ] ) ) {
197
  return;
198
  }
199
 
200
- if ( ! isset( $this->messages[ $key ]['read'] ) ) {
201
- $this->messages[ $key ]['read'] = array();
202
  }
203
- $this->messages[ $key ]['read'][ get_current_user_id() ] = time();
204
 
205
  $this->update_list();
206
  }
@@ -211,9 +214,9 @@ class FrmInbox extends FrmFormApi {
211
  * @since 4.05.02
212
  */
213
  public function mark_unread( $key ) {
214
- $is_read = isset( $this->messages[ $key ] ) && isset( $this->messages[ $key ]['read'] ) && isset( $this->messages[ $key ]['read'][ get_current_user_id() ] );
215
  if ( $is_read ) {
216
- unset( $this->messages[ $key ]['read'][ get_current_user_id() ] );
217
  $this->update_list();
218
  }
219
  }
@@ -227,14 +230,14 @@ class FrmInbox extends FrmFormApi {
227
  return;
228
  }
229
 
230
- if ( ! isset( $this->messages[ $key ] ) ) {
231
  return;
232
  }
233
 
234
- if ( ! isset( $this->messages[ $key ]['dismissed'] ) ) {
235
- $this->messages[ $key ]['dismissed'] = array();
236
  }
237
- $this->messages[ $key ]['dismissed'][ get_current_user_id() ] = time();
238
 
239
  $this->update_list();
240
  }
@@ -244,13 +247,13 @@ class FrmInbox extends FrmFormApi {
244
  */
245
  private function dismiss_all() {
246
  $user_id = get_current_user_id();
247
- foreach ( $this->messages as $key => $message ) {
248
  if ( ! isset( $message['dismissed'] ) ) {
249
- $this->messages[ $key ]['dismissed'] = array();
250
  }
251
 
252
  if ( ! isset( $message['dismissed'][ $user_id ] ) ) {
253
- $this->messages[ $key ]['dismissed'][ $user_id ] = time();
254
  }
255
  }
256
  $this->update_list();
@@ -285,14 +288,14 @@ class FrmInbox extends FrmFormApi {
285
  * @since 4.05.02
286
  */
287
  public function remove( $key ) {
288
- if ( isset( $this->messages[ $key ] ) ) {
289
- unset( $this->messages[ $key ] );
290
  $this->update_list();
291
  }
292
  }
293
 
294
  private function update_list() {
295
- update_option( $this->option, $this->messages, 'no' );
296
  }
297
 
298
  public static function maybe_show_banner() {
12
 
13
  private $option = 'frm_inbox';
14
 
15
+ private static $messages = false;
16
 
17
  /**
18
  * @param array
21
 
22
  public function __construct( $for_parent = null ) {
23
  $this->set_cache_key();
24
+
25
+ if ( false === self::$messages ) {
26
+ $this->set_messages();
27
+ }
28
  }
29
 
30
  /**
45
  * @since 4.05
46
  */
47
  public function get_messages( $filter = false ) {
48
+ $messages = self::$messages;
49
  if ( $filter === 'filter' ) {
50
  $this->filter_messages( $messages );
51
  }
56
  * @since 4.05
57
  */
58
  public function set_messages() {
59
+ self::$messages = get_option( $this->option );
60
+ if ( ! is_array( self::$messages ) ) {
61
+ self::$messages = array();
62
  }
63
 
64
  $this->add_api_messages();
66
  /**
67
  * Messages are in an array.
68
  */
69
+ self::$messages = apply_filters( 'frm_inbox', self::$messages );
70
  }
71
 
72
  /**
93
  return;
94
  }
95
 
96
+ if ( isset( self::$messages[ $message['key'] ] ) && ! isset( $message['force'] ) ) {
97
  // Don't replace messages unless required.
98
  return;
99
  }
102
  return;
103
  }
104
 
105
+ if ( isset( self::$messages[ $message['key'] ] ) ) {
106
  // Move up and mark as new.
107
+ unset( self::$messages[ $message['key'] ] );
108
  }
109
 
110
  $this->fill_message( $message );
111
+ self::$messages[ $message['key'] ] = $message;
112
 
113
  $this->update_list();
114
 
134
  }
135
 
136
  private function clean_messages() {
137
+ $removed = false;
138
+ foreach ( self::$messages as $t => $message ) {
139
+ $read = isset( $message['read'] ) && ! empty( $message['read'] ) && isset( $message['read'][ get_current_user_id() ] ) && $message['read'][ get_current_user_id() ] < strtotime( '-1 month' );
140
  $dismissed = isset( $message['dismissed'] ) && ! empty( $message['dismissed'] ) && isset( $message['dismissed'][ get_current_user_id() ] ) && $message['dismissed'][ get_current_user_id() ] < strtotime( '-1 week' );
141
+ $expired = $this->is_expired( $message );
142
  if ( $read || $expired || $dismissed ) {
143
+ unset( self::$messages[ $t ] );
144
  $removed = true;
145
  }
146
  }
196
  * @param string $key
197
  */
198
  public function mark_read( $key ) {
199
+ if ( ! $key || ! isset( self::$messages[ $key ] ) ) {
200
  return;
201
  }
202
 
203
+ if ( ! isset( self::$messages[ $key ]['read'] ) ) {
204
+ self::$messages[ $key ]['read'] = array();
205
  }
206
+ self::$messages[ $key ]['read'][ get_current_user_id() ] = time();
207
 
208
  $this->update_list();
209
  }
214
  * @since 4.05.02
215
  */
216
  public function mark_unread( $key ) {
217
+ $is_read = isset( self::$messages[ $key ] ) && isset( self::$messages[ $key ]['read'] ) && isset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
218
  if ( $is_read ) {
219
+ unset( self::$messages[ $key ]['read'][ get_current_user_id() ] );
220
  $this->update_list();
221
  }
222
  }
230
  return;
231
  }
232
 
233
+ if ( ! isset( self::$messages[ $key ] ) ) {
234
  return;
235
  }
236
 
237
+ if ( ! isset( self::$messages[ $key ]['dismissed'] ) ) {
238
+ self::$messages[ $key ]['dismissed'] = array();
239
  }
240
+ self::$messages[ $key ]['dismissed'][ get_current_user_id() ] = time();
241
 
242
  $this->update_list();
243
  }
247
  */
248
  private function dismiss_all() {
249
  $user_id = get_current_user_id();
250
+ foreach ( self::$messages as $key => $message ) {
251
  if ( ! isset( $message['dismissed'] ) ) {
252
+ self::$messages[ $key ]['dismissed'] = array();
253
  }
254
 
255
  if ( ! isset( $message['dismissed'][ $user_id ] ) ) {
256
+ self::$messages[ $key ]['dismissed'][ $user_id ] = time();
257
  }
258
  }
259
  $this->update_list();
288
  * @since 4.05.02
289
  */
290
  public function remove( $key ) {
291
+ if ( isset( self::$messages[ $key ] ) ) {
292
+ unset( self::$messages[ $key ] );
293
  $this->update_list();
294
  }
295
  }
296
 
297
  private function update_list() {
298
+ update_option( $this->option, self::$messages, 'no' );
299
  }
300
 
301
  public static function maybe_show_banner() {
classes/views/styles/_field-sizes.php CHANGED
@@ -29,7 +29,7 @@ if ( ! defined( 'ABSPATH' ) ) {
29
  </p>
30
 
31
  <p class="frm4 frm_form_field">
32
- <label><?php esc_html_e( 'Margin', 'formidable' ); ?></label>
33
  <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'field_margin' ) ); ?>" id="frm_field_margin" value="<?php echo esc_attr( $style->post_content['field_margin'] ); ?>" />
34
  </p>
35
 
29
  </p>
30
 
31
  <p class="frm4 frm_form_field">
32
+ <label><?php esc_html_e( 'Bottom Margin', 'formidable' ); ?></label>
33
  <input type="text" name="<?php echo esc_attr( $frm_style->get_field_name( 'field_margin' ) ); ?>" id="frm_field_margin" value="<?php echo esc_attr( $style->post_content['field_margin'] ); ?>" />
34
  </p>
35
 
classes/views/welcome/show.php CHANGED
@@ -25,7 +25,7 @@ if ( ! defined( 'ABSPATH' ) ) {
25
  </div>
26
  <div class="frm6">
27
  <div class="frm-player">
28
- <iframe width="480" height="240" src="https://www.youtube.com/embed/-eGuL_OWHw4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
29
  </div>
30
  </div>
31
  </div>
25
  </div>
26
  <div class="frm6">
27
  <div class="frm-player">
28
+ <iframe width="480" height="240" src="https://www.youtube.com/embed/7X2BqhRsXcg" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
29
  </div>
30
  </div>
31
  </div>
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: 5.0.11
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: 5.0.12
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
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 5.0.11\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: 2021-10-28T16:38:23+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
@@ -137,7 +137,7 @@ msgstr ""
137
 
138
  #: classes/controllers/FrmAddonsController.php:26
139
  #: classes/controllers/FrmAddonsController.php:27
140
- #: classes/helpers/FrmFormsHelper.php:1315
141
  #: classes/views/frm-fields/back-end/smart-values.php:16
142
  #: classes/views/shared/admin-header.php:33
143
  msgid "Upgrade"
@@ -466,7 +466,7 @@ msgid "Date"
466
  msgstr ""
467
 
468
  #: classes/controllers/FrmFormsController.php:888
469
- #: classes/helpers/FrmFormsHelper.php:1258
470
  msgid "My Templates"
471
  msgstr ""
472
 
@@ -637,7 +637,7 @@ msgstr ""
637
  #: classes/helpers/FrmFormsHelper.php:57
638
  #: classes/helpers/FrmFormsHelper.php:112
639
  #: classes/helpers/FrmFormsHelper.php:166
640
- #: classes/helpers/FrmFormsHelper.php:1030
641
  #: classes/helpers/FrmFormsListHelper.php:315
642
  #: classes/views/frm-forms/create-template-from-an-existing-form.php:25
643
  #: classes/views/styles/manage.php:59
@@ -997,7 +997,11 @@ msgstr ""
997
  msgid "Please select a form"
998
  msgstr ""
999
 
1000
- #: classes/controllers/FrmXMLController.php:599
 
 
 
 
1001
  msgid "There are no entries for that form."
1002
  msgstr ""
1003
 
@@ -1349,7 +1353,7 @@ msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems wh
1349
  msgstr ""
1350
 
1351
  #: classes/helpers/FrmAppHelper.php:2579
1352
- #: classes/helpers/FrmFormsHelper.php:1489
1353
  msgid "See the list of reserved words in WordPress."
1354
  msgstr ""
1355
 
@@ -1667,7 +1671,7 @@ msgid "Updated By"
1667
  msgstr ""
1668
 
1669
  #: classes/helpers/FrmCSVExportHelper.php:227
1670
- #: classes/helpers/FrmFormsHelper.php:1216
1671
  #: classes/helpers/FrmFormsListHelper.php:342
1672
  msgid "Draft"
1673
  msgstr ""
@@ -1753,7 +1757,7 @@ msgid "Permanently delete this entry?"
1753
  msgstr ""
1754
 
1755
  #: classes/helpers/FrmEntriesListHelper.php:309
1756
- #: classes/helpers/FrmFormsHelper.php:1138
1757
  #: classes/helpers/FrmFormsListHelper.php:133
1758
  #: classes/views/frm-form-actions/form_action.php:25
1759
  #: js/formidable_admin.js:2055
@@ -3096,144 +3100,144 @@ msgstr ""
3096
  msgid "Button Hook"
3097
  msgstr ""
3098
 
3099
- #: classes/helpers/FrmFormsHelper.php:998
3100
  msgid "Create Form from Template"
3101
  msgstr ""
3102
 
3103
- #: classes/helpers/FrmFormsHelper.php:1004
3104
  msgid "Duplicate Form"
3105
  msgstr ""
3106
 
3107
- #: classes/helpers/FrmFormsHelper.php:1125
3108
  msgid "Restore from Trash"
3109
  msgstr ""
3110
 
3111
- #: classes/helpers/FrmFormsHelper.php:1126
3112
  #: classes/helpers/FrmFormsListHelper.php:124
3113
  msgid "Restore"
3114
  msgstr ""
3115
 
3116
- #: classes/helpers/FrmFormsHelper.php:1130
3117
  msgid "Move Form to Trash"
3118
  msgstr ""
3119
 
3120
- #: classes/helpers/FrmFormsHelper.php:1131
3121
- #: classes/helpers/FrmFormsHelper.php:1217
3122
  #: classes/helpers/FrmFormsListHelper.php:158
3123
  msgid "Trash"
3124
  msgstr ""
3125
 
3126
- #: classes/helpers/FrmFormsHelper.php:1134
3127
  msgid "Do you want to move this form to the trash?"
3128
  msgstr ""
3129
 
3130
- #: classes/helpers/FrmFormsHelper.php:1137
3131
  #: classes/helpers/FrmFormsListHelper.php:128
3132
  msgid "Delete Permanently"
3133
  msgstr ""
3134
 
3135
- #: classes/helpers/FrmFormsHelper.php:1140
3136
  msgid "Are you sure you want to delete this form and all its entries?"
3137
  msgstr ""
3138
 
3139
- #: classes/helpers/FrmFormsHelper.php:1142
3140
  msgid "This will permanently delete the form and all its entries. This is irreversible. Are you sure you want to continue?"
3141
  msgstr ""
3142
 
3143
- #: classes/helpers/FrmFormsHelper.php:1153
3144
  #: classes/models/FrmField.php:204
3145
  msgid "Total"
3146
  msgstr ""
3147
 
3148
- #: classes/helpers/FrmFormsHelper.php:1154
3149
  msgid "Add this to a read-only field to display the text in bold without a border or background."
3150
  msgstr ""
3151
 
3152
- #: classes/helpers/FrmFormsHelper.php:1157
3153
  msgid "Big Total"
3154
  msgstr ""
3155
 
3156
- #: classes/helpers/FrmFormsHelper.php:1158
3157
  msgid "Add this to a read-only field to display the text in large, bold text without a border or background."
3158
  msgstr ""
3159
 
3160
- #: classes/helpers/FrmFormsHelper.php:1161
3161
  msgid "Scroll Box"
3162
  msgstr ""
3163
 
3164
- #: classes/helpers/FrmFormsHelper.php:1162
3165
  msgid "If you have many checkbox or radio button options, you may add this class to allow your user to easily scroll through the options. Or add a scrolling area around content in an HTML field."
3166
  msgstr ""
3167
 
3168
- #: classes/helpers/FrmFormsHelper.php:1165
3169
  #: classes/models/fields/FrmFieldName.php:36
3170
  msgid "First"
3171
  msgstr ""
3172
 
3173
- #: classes/helpers/FrmFormsHelper.php:1166
3174
  msgid "Add this to the first field in each row along with a width. ie frm_first frm4"
3175
  msgstr ""
3176
 
3177
- #: classes/helpers/FrmFormsHelper.php:1168
3178
  #: classes/helpers/FrmStylesHelper.php:113
3179
  msgid "Right"
3180
  msgstr ""
3181
 
3182
- #: classes/helpers/FrmFormsHelper.php:1169
3183
  msgid "First Grid Row"
3184
  msgstr ""
3185
 
3186
- #: classes/helpers/FrmFormsHelper.php:1170
3187
  msgid "Even Grid Row"
3188
  msgstr ""
3189
 
3190
- #: classes/helpers/FrmFormsHelper.php:1171
3191
  msgid "Odd Grid Row"
3192
  msgstr ""
3193
 
3194
- #: classes/helpers/FrmFormsHelper.php:1173
3195
  msgid "Color Block"
3196
  msgstr ""
3197
 
3198
- #: classes/helpers/FrmFormsHelper.php:1174
3199
  msgid "Add a background color to the field or section."
3200
  msgstr ""
3201
 
3202
- #: classes/helpers/FrmFormsHelper.php:1177
3203
  msgid "Capitalize"
3204
  msgstr ""
3205
 
3206
- #: classes/helpers/FrmFormsHelper.php:1178
3207
  msgid "Automatically capitalize the first letter in each word."
3208
  msgstr ""
3209
 
3210
- #: classes/helpers/FrmFormsHelper.php:1218
3211
  msgid "Published"
3212
  msgstr ""
3213
 
3214
- #: classes/helpers/FrmFormsHelper.php:1302
3215
  msgid "Create Form"
3216
  msgstr ""
3217
 
3218
- #: classes/helpers/FrmFormsHelper.php:1310
3219
  msgid "Renew"
3220
  msgstr ""
3221
 
3222
- #: classes/helpers/FrmFormsHelper.php:1374
3223
  msgid "License plan required:"
3224
  msgstr ""
3225
 
3226
- #: classes/helpers/FrmFormsHelper.php:1488
3227
  msgid "Is this intentional?"
3228
  msgstr ""
3229
 
3230
  #. translators: %s: the name of a single parameter in the redirect URL
3231
- #: classes/helpers/FrmFormsHelper.php:1498
3232
  msgid "The redirect URL is using the parameter \"%s\", which is reserved by WordPress. "
3233
  msgstr ""
3234
 
3235
  #. translators: %s: the names of two or more parameters in the redirect URL, separated by commas
3236
- #: classes/helpers/FrmFormsHelper.php:1504
3237
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
3238
  msgstr ""
3239
 
@@ -3794,66 +3798,66 @@ msgid "Website"
3794
  msgstr ""
3795
 
3796
  #. translators: %1$s: Plugin name, %2$s: Start link HTML, %3$s: end link HTML
3797
- #: classes/models/FrmAddon.php:305
3798
  msgid "Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s."
3799
  msgstr ""
3800
 
3801
- #: classes/models/FrmAddon.php:500
3802
  msgid "Oops! You forgot to enter your license number."
3803
  msgstr ""
3804
 
3805
- #: classes/models/FrmAddon.php:583
3806
  msgid "Your license has been activated. Enjoy!"
3807
  msgstr ""
3808
 
3809
- #: classes/models/FrmAddon.php:584
3810
- #: classes/models/FrmAddon.php:589
3811
  msgid "That license key is invalid"
3812
  msgstr ""
3813
 
3814
- #: classes/models/FrmAddon.php:585
3815
  msgid "That license is expired"
3816
  msgstr ""
3817
 
3818
- #: classes/models/FrmAddon.php:586
3819
  msgid "That license has been refunded"
3820
  msgstr ""
3821
 
3822
- #: classes/models/FrmAddon.php:587
3823
  msgid "That license has been used on too many sites"
3824
  msgstr ""
3825
 
3826
- #: classes/models/FrmAddon.php:588
3827
  msgid "Oops! That is the wrong license key for this plugin."
3828
  msgstr ""
3829
 
3830
- #: classes/models/FrmAddon.php:605
3831
  msgid "Cache cleared"
3832
  msgstr ""
3833
 
3834
- #: classes/models/FrmAddon.php:627
3835
  msgid "That license was removed successfully"
3836
  msgstr ""
3837
 
3838
- #: classes/models/FrmAddon.php:629
3839
  msgid "There was an error deactivating your license."
3840
  msgstr ""
3841
 
3842
- #: classes/models/FrmAddon.php:673
3843
  msgid "Your License Key was invalid"
3844
  msgstr ""
3845
 
3846
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
3847
- #: classes/models/FrmAddon.php:677
3848
  msgid "You had an error communicating with the Formidable API. %1$sClick here%2$s for more information."
3849
  msgstr ""
3850
 
3851
- #: classes/models/FrmAddon.php:680
3852
  msgid "You had an HTTP error connecting to the Formidable API"
3853
  msgstr ""
3854
 
3855
  #. translators: %1$s: Error code, %2$s: Error message
3856
- #: classes/models/FrmAddon.php:691
3857
  msgid "There was a %1$s error: %2$s"
3858
  msgstr ""
3859
 
@@ -5883,7 +5887,6 @@ msgstr ""
5883
 
5884
  #: classes/views/styles/_buttons.php:74
5885
  #: classes/views/styles/_field-description.php:46
5886
- #: classes/views/styles/_field-sizes.php:32
5887
  msgid "Margin"
5888
  msgstr ""
5889
 
@@ -5989,6 +5992,10 @@ msgstr ""
5989
  msgid "Automatic width for drop-down fields"
5990
  msgstr ""
5991
 
 
 
 
 
5992
  #: classes/views/styles/_field-sizes.php:37
5993
  msgid "Formidable uses CSS3 border-radius for corner rounding, which is not currently supported by Internet Explorer."
5994
  msgstr ""
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Formidable Forms 5.0.12\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: 2021-11-05T15:27:58+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
137
 
138
  #: classes/controllers/FrmAddonsController.php:26
139
  #: classes/controllers/FrmAddonsController.php:27
140
+ #: classes/helpers/FrmFormsHelper.php:1337
141
  #: classes/views/frm-fields/back-end/smart-values.php:16
142
  #: classes/views/shared/admin-header.php:33
143
  msgid "Upgrade"
466
  msgstr ""
467
 
468
  #: classes/controllers/FrmFormsController.php:888
469
+ #: classes/helpers/FrmFormsHelper.php:1280
470
  msgid "My Templates"
471
  msgstr ""
472
 
637
  #: classes/helpers/FrmFormsHelper.php:57
638
  #: classes/helpers/FrmFormsHelper.php:112
639
  #: classes/helpers/FrmFormsHelper.php:166
640
+ #: classes/helpers/FrmFormsHelper.php:1052
641
  #: classes/helpers/FrmFormsListHelper.php:315
642
  #: classes/views/frm-forms/create-template-from-an-existing-form.php:25
643
  #: classes/views/styles/manage.php:59
997
  msgid "Please select a form"
998
  msgstr ""
999
 
1000
+ #: classes/controllers/FrmXMLController.php:572
1001
+ msgid "Form not found."
1002
+ msgstr ""
1003
+
1004
+ #: classes/controllers/FrmXMLController.php:604
1005
  msgid "There are no entries for that form."
1006
  msgstr ""
1007
 
1353
  msgstr ""
1354
 
1355
  #: classes/helpers/FrmAppHelper.php:2579
1356
+ #: classes/helpers/FrmFormsHelper.php:1511
1357
  msgid "See the list of reserved words in WordPress."
1358
  msgstr ""
1359
 
1671
  msgstr ""
1672
 
1673
  #: classes/helpers/FrmCSVExportHelper.php:227
1674
+ #: classes/helpers/FrmFormsHelper.php:1238
1675
  #: classes/helpers/FrmFormsListHelper.php:342
1676
  msgid "Draft"
1677
  msgstr ""
1757
  msgstr ""
1758
 
1759
  #: classes/helpers/FrmEntriesListHelper.php:309
1760
+ #: classes/helpers/FrmFormsHelper.php:1160
1761
  #: classes/helpers/FrmFormsListHelper.php:133
1762
  #: classes/views/frm-form-actions/form_action.php:25
1763
  #: js/formidable_admin.js:2055
3100
  msgid "Button Hook"
3101
  msgstr ""
3102
 
3103
+ #: classes/helpers/FrmFormsHelper.php:1020
3104
  msgid "Create Form from Template"
3105
  msgstr ""
3106
 
3107
+ #: classes/helpers/FrmFormsHelper.php:1026
3108
  msgid "Duplicate Form"
3109
  msgstr ""
3110
 
3111
+ #: classes/helpers/FrmFormsHelper.php:1147
3112
  msgid "Restore from Trash"
3113
  msgstr ""
3114
 
3115
+ #: classes/helpers/FrmFormsHelper.php:1148
3116
  #: classes/helpers/FrmFormsListHelper.php:124
3117
  msgid "Restore"
3118
  msgstr ""
3119
 
3120
+ #: classes/helpers/FrmFormsHelper.php:1152
3121
  msgid "Move Form to Trash"
3122
  msgstr ""
3123
 
3124
+ #: classes/helpers/FrmFormsHelper.php:1153
3125
+ #: classes/helpers/FrmFormsHelper.php:1239
3126
  #: classes/helpers/FrmFormsListHelper.php:158
3127
  msgid "Trash"
3128
  msgstr ""
3129
 
3130
+ #: classes/helpers/FrmFormsHelper.php:1156
3131
  msgid "Do you want to move this form to the trash?"
3132
  msgstr ""
3133
 
3134
+ #: classes/helpers/FrmFormsHelper.php:1159
3135
  #: classes/helpers/FrmFormsListHelper.php:128
3136
  msgid "Delete Permanently"
3137
  msgstr ""
3138
 
3139
+ #: classes/helpers/FrmFormsHelper.php:1162
3140
  msgid "Are you sure you want to delete this form and all its entries?"
3141
  msgstr ""
3142
 
3143
+ #: classes/helpers/FrmFormsHelper.php:1164
3144
  msgid "This will permanently delete the form and all its entries. This is irreversible. Are you sure you want to continue?"
3145
  msgstr ""
3146
 
3147
+ #: classes/helpers/FrmFormsHelper.php:1175
3148
  #: classes/models/FrmField.php:204
3149
  msgid "Total"
3150
  msgstr ""
3151
 
3152
+ #: classes/helpers/FrmFormsHelper.php:1176
3153
  msgid "Add this to a read-only field to display the text in bold without a border or background."
3154
  msgstr ""
3155
 
3156
+ #: classes/helpers/FrmFormsHelper.php:1179
3157
  msgid "Big Total"
3158
  msgstr ""
3159
 
3160
+ #: classes/helpers/FrmFormsHelper.php:1180
3161
  msgid "Add this to a read-only field to display the text in large, bold text without a border or background."
3162
  msgstr ""
3163
 
3164
+ #: classes/helpers/FrmFormsHelper.php:1183
3165
  msgid "Scroll Box"
3166
  msgstr ""
3167
 
3168
+ #: classes/helpers/FrmFormsHelper.php:1184
3169
  msgid "If you have many checkbox or radio button options, you may add this class to allow your user to easily scroll through the options. Or add a scrolling area around content in an HTML field."
3170
  msgstr ""
3171
 
3172
+ #: classes/helpers/FrmFormsHelper.php:1187
3173
  #: classes/models/fields/FrmFieldName.php:36
3174
  msgid "First"
3175
  msgstr ""
3176
 
3177
+ #: classes/helpers/FrmFormsHelper.php:1188
3178
  msgid "Add this to the first field in each row along with a width. ie frm_first frm4"
3179
  msgstr ""
3180
 
3181
+ #: classes/helpers/FrmFormsHelper.php:1190
3182
  #: classes/helpers/FrmStylesHelper.php:113
3183
  msgid "Right"
3184
  msgstr ""
3185
 
3186
+ #: classes/helpers/FrmFormsHelper.php:1191
3187
  msgid "First Grid Row"
3188
  msgstr ""
3189
 
3190
+ #: classes/helpers/FrmFormsHelper.php:1192
3191
  msgid "Even Grid Row"
3192
  msgstr ""
3193
 
3194
+ #: classes/helpers/FrmFormsHelper.php:1193
3195
  msgid "Odd Grid Row"
3196
  msgstr ""
3197
 
3198
+ #: classes/helpers/FrmFormsHelper.php:1195
3199
  msgid "Color Block"
3200
  msgstr ""
3201
 
3202
+ #: classes/helpers/FrmFormsHelper.php:1196
3203
  msgid "Add a background color to the field or section."
3204
  msgstr ""
3205
 
3206
+ #: classes/helpers/FrmFormsHelper.php:1199
3207
  msgid "Capitalize"
3208
  msgstr ""
3209
 
3210
+ #: classes/helpers/FrmFormsHelper.php:1200
3211
  msgid "Automatically capitalize the first letter in each word."
3212
  msgstr ""
3213
 
3214
+ #: classes/helpers/FrmFormsHelper.php:1240
3215
  msgid "Published"
3216
  msgstr ""
3217
 
3218
+ #: classes/helpers/FrmFormsHelper.php:1324
3219
  msgid "Create Form"
3220
  msgstr ""
3221
 
3222
+ #: classes/helpers/FrmFormsHelper.php:1332
3223
  msgid "Renew"
3224
  msgstr ""
3225
 
3226
+ #: classes/helpers/FrmFormsHelper.php:1396
3227
  msgid "License plan required:"
3228
  msgstr ""
3229
 
3230
+ #: classes/helpers/FrmFormsHelper.php:1510
3231
  msgid "Is this intentional?"
3232
  msgstr ""
3233
 
3234
  #. translators: %s: the name of a single parameter in the redirect URL
3235
+ #: classes/helpers/FrmFormsHelper.php:1520
3236
  msgid "The redirect URL is using the parameter \"%s\", which is reserved by WordPress. "
3237
  msgstr ""
3238
 
3239
  #. translators: %s: the names of two or more parameters in the redirect URL, separated by commas
3240
+ #: classes/helpers/FrmFormsHelper.php:1526
3241
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
3242
  msgstr ""
3243
 
3798
  msgstr ""
3799
 
3800
  #. translators: %1$s: Plugin name, %2$s: Start link HTML, %3$s: end link HTML
3801
+ #: classes/models/FrmAddon.php:306
3802
  msgid "Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s."
3803
  msgstr ""
3804
 
3805
+ #: classes/models/FrmAddon.php:501
3806
  msgid "Oops! You forgot to enter your license number."
3807
  msgstr ""
3808
 
3809
+ #: classes/models/FrmAddon.php:584
3810
  msgid "Your license has been activated. Enjoy!"
3811
  msgstr ""
3812
 
3813
+ #: classes/models/FrmAddon.php:585
3814
+ #: classes/models/FrmAddon.php:590
3815
  msgid "That license key is invalid"
3816
  msgstr ""
3817
 
3818
+ #: classes/models/FrmAddon.php:586
3819
  msgid "That license is expired"
3820
  msgstr ""
3821
 
3822
+ #: classes/models/FrmAddon.php:587
3823
  msgid "That license has been refunded"
3824
  msgstr ""
3825
 
3826
+ #: classes/models/FrmAddon.php:588
3827
  msgid "That license has been used on too many sites"
3828
  msgstr ""
3829
 
3830
+ #: classes/models/FrmAddon.php:589
3831
  msgid "Oops! That is the wrong license key for this plugin."
3832
  msgstr ""
3833
 
3834
+ #: classes/models/FrmAddon.php:606
3835
  msgid "Cache cleared"
3836
  msgstr ""
3837
 
3838
+ #: classes/models/FrmAddon.php:628
3839
  msgid "That license was removed successfully"
3840
  msgstr ""
3841
 
3842
+ #: classes/models/FrmAddon.php:630
3843
  msgid "There was an error deactivating your license."
3844
  msgstr ""
3845
 
3846
+ #: classes/models/FrmAddon.php:674
3847
  msgid "Your License Key was invalid"
3848
  msgstr ""
3849
 
3850
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
3851
+ #: classes/models/FrmAddon.php:678
3852
  msgid "You had an error communicating with the Formidable API. %1$sClick here%2$s for more information."
3853
  msgstr ""
3854
 
3855
+ #: classes/models/FrmAddon.php:681
3856
  msgid "You had an HTTP error connecting to the Formidable API"
3857
  msgstr ""
3858
 
3859
  #. translators: %1$s: Error code, %2$s: Error message
3860
+ #: classes/models/FrmAddon.php:692
3861
  msgid "There was a %1$s error: %2$s"
3862
  msgstr ""
3863
 
5887
 
5888
  #: classes/views/styles/_buttons.php:74
5889
  #: classes/views/styles/_field-description.php:46
 
5890
  msgid "Margin"
5891
  msgstr ""
5892
 
5992
  msgid "Automatic width for drop-down fields"
5993
  msgstr ""
5994
 
5995
+ #: classes/views/styles/_field-sizes.php:32
5996
+ msgid "Bottom Margin"
5997
+ msgstr ""
5998
+
5999
  #: classes/views/styles/_field-sizes.php:37
6000
  msgid "Formidable uses CSS3 border-radius for corner rounding, which is not currently supported by Internet Explorer."
6001
  msgstr ""
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: forms, contact form, form builder, survey, free, form maker, form creator,
5
  Requires at least: 5.0
6
  Tested up to: 5.8.1
7
  Requires PHP: 5.6
8
- Stable tag: 5.0.11
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
@@ -438,6 +438,13 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
438
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
439
 
440
  == Changelog ==
 
 
 
 
 
 
 
441
  = 5.0.11 =
442
  - Fix: Required credit cards were causing an issue with JavaScript validation.
443
  - Fix: Empty required appointment fields were not properly validating with JavaScript.
@@ -456,10 +463,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
456
  - Fix: Author email, url, or name are no longer included in comment info when sending data to Akismet so that duplicate information is not sent.
457
  - Fix: Field groups could not be moved because of a missing class on the drag handle.
458
 
459
- = 5.0.08 =
460
- - Deprecated: Calls to FrmFormsController::preview will no longer try to load WordPress if it is not already initialized. This could cause issues for users that still use old preview links (see https://formidableforms.com/knowledgebase/php-examples/#kb-use-the-old-preview-links for an example).
461
- - Security: Unsafe HTML will now be stripped from global message defaults, whitelabel settings, and when importing with XML if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
462
- - Updated Bootstrap used in back end to version 3.4.1.
463
- - A few images that were being loaded from S3 and CDN urls are now included in the plugin instead.
464
-
465
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
5
  Requires at least: 5.0
6
  Tested up to: 5.8.1
7
  Requires PHP: 5.6
8
+ Stable tag: 5.0.12
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
438
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
439
 
440
  == Changelog ==
441
+ = 5.0.12 =
442
+ - New: When the frm_inline_submit class is added to custom Submit Button HTML if frm_inline_form is missing from the form it will now be automatically added to allow for the submit button to become inline.
443
+ - Fix: Many Formidable addons were not properly displaying update details from the plugins page.
444
+ - Fix: Fewer API requests will be sent to Formidable when inbox notice cached results expire and when a request results in an error.
445
+ - Fix: Added additional validation to CSV export so it fails more gracefully when the form does not exist.
446
+ - Fix: The style setting for Margin under Field Settings as been renamed to Bottom Margin to avoid confusion as it only updates one margin value.
447
+
448
  = 5.0.11 =
449
  - Fix: Required credit cards were causing an issue with JavaScript validation.
450
  - Fix: Empty required appointment fields were not properly validating with JavaScript.
463
  - Fix: Author email, url, or name are no longer included in comment info when sending data to Akismet so that duplicate information is not sent.
464
  - Fix: Field groups could not be moved because of a missing class on the drag handle.
465
 
 
 
 
 
 
 
466
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>