Formidable Forms – Form Builder for WordPress - Version 5.5

Version Description

  • New: Email actions and success messages now support [form_name] shortcodes.
  • Fix: Prevent a fatal error when running a weekly cron job because of an expected WordPress function was unavailable.
  • Fix: Prevent a warning when viewing an entry that was created from a post with missing information about browser and referer.
  • Fix: Arrows in dropdown fields were appearing at the top of the select field instead of being centered in Astra.
  • Fix: Fixed a couple admin side RTL styling issues.
  • Fix: Selecting multiple fields with the shift key was not properly selecting the fields in-between when the first selected item was not a group.
  • Autocomplete attributes in custom HTML will now be ignored if the field also has an autocomplete attribute set to avoid multiple attributes with the same key.
Download this release

Release Info

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

Code changes from version 5.4.5 to 5.5

classes/controllers/FrmAddonsController.php CHANGED
@@ -321,10 +321,7 @@ class FrmAddonsController {
321
 
322
  $transient->last_checked = time();
323
 
324
- if ( ! function_exists( 'get_plugins' ) ) {
325
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
326
- }
327
- $wp_plugins = get_plugins();
328
 
329
  foreach ( $version_info as $id => $plugin ) {
330
  $plugin = (object) $plugin;
@@ -369,12 +366,7 @@ class FrmAddonsController {
369
  * @return bool - True if installed
370
  */
371
  protected static function is_installed( $plugin ) {
372
- if ( ! function_exists( 'get_plugins' ) ) {
373
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
374
- }
375
-
376
- $all_plugins = get_plugins();
377
-
378
  return isset( $all_plugins[ $plugin ] );
379
  }
380
 
321
 
322
  $transient->last_checked = time();
323
 
324
+ $wp_plugins = FrmAppHelper::get_plugins();
 
 
 
325
 
326
  foreach ( $version_info as $id => $plugin ) {
327
  $plugin = (object) $plugin;
366
  * @return bool - True if installed
367
  */
368
  protected static function is_installed( $plugin ) {
369
+ $all_plugins = FrmAppHelper::get_plugins();
 
 
 
 
 
370
  return isset( $all_plugins[ $plugin ] );
371
  }
372
 
classes/controllers/FrmFieldsController.php CHANGED
@@ -768,6 +768,10 @@ class FrmFieldsController {
768
  return;
769
  }
770
 
 
 
 
 
771
  foreach ( $field['shortcodes'] as $k => $v ) {
772
  if ( 'opt' === $k ) {
773
  continue;
768
  return;
769
  }
770
 
771
+ if ( ! empty( $field['autocomplete'] ) ) {
772
+ unset( $field['shortcodes']['autocomplete'] );
773
+ }
774
+
775
  foreach ( $field['shortcodes'] as $k => $v ) {
776
  if ( 'opt' === $k ) {
777
  continue;
classes/controllers/FrmFormsController.php CHANGED
@@ -1442,6 +1442,7 @@ class FrmFormsController {
1442
  $entry_shortcodes['default-message'] = __( 'Default Msg', 'formidable' );
1443
  $entry_shortcodes['default-html'] = __( 'Default HTML', 'formidable' );
1444
  $entry_shortcodes['default-plain'] = __( 'Default Plain', 'formidable' );
 
1445
  }
1446
 
1447
  /**
@@ -1496,7 +1497,15 @@ class FrmFormsController {
1496
  wp_die();
1497
  }
1498
 
 
 
 
 
 
 
1499
  public static function filter_content( $content, $form, $entry = false ) {
 
 
1500
  self::get_entry_by_param( $entry );
1501
  if ( ! $entry ) {
1502
  return $content;
@@ -1512,6 +1521,32 @@ class FrmFormsController {
1512
  return $content;
1513
  }
1514
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1515
  private static function get_entry_by_param( &$entry ) {
1516
  if ( ! $entry || ! is_object( $entry ) ) {
1517
  if ( ! $entry || ! is_numeric( $entry ) ) {
1442
  $entry_shortcodes['default-message'] = __( 'Default Msg', 'formidable' );
1443
  $entry_shortcodes['default-html'] = __( 'Default HTML', 'formidable' );
1444
  $entry_shortcodes['default-plain'] = __( 'Default Plain', 'formidable' );
1445
+ $entry_shortcodes['form_name'] = __( 'Form Name', 'formidable' );
1446
  }
1447
 
1448
  /**
1497
  wp_die();
1498
  }
1499
 
1500
+ /**
1501
+ * @param string $content
1502
+ * @param stdClass|string|int $form
1503
+ * @param stdClass|string|int|false $entry
1504
+ * @return string
1505
+ */
1506
  public static function filter_content( $content, $form, $entry = false ) {
1507
+ $content = self::replace_form_name_shortcodes( $content, $form );
1508
+
1509
  self::get_entry_by_param( $entry );
1510
  if ( ! $entry ) {
1511
  return $content;
1521
  return $content;
1522
  }
1523
 
1524
+ /**
1525
+ * Replace any [form_name] shortcodes in a string.
1526
+ *
1527
+ * @since 5.5
1528
+ *
1529
+ * @param string $string
1530
+ * @param stdClass|string|int $form
1531
+ * @return string
1532
+ */
1533
+ public static function replace_form_name_shortcodes( $string, $form ) {
1534
+ if ( false === strpos( $string, '[form_name]' ) ) {
1535
+ return $string;
1536
+ }
1537
+
1538
+ if ( ! is_object( $form ) ) {
1539
+ $form = FrmForm::getOne( $form );
1540
+ }
1541
+
1542
+ $form_name = is_object( $form ) ? $form->name : '';
1543
+ return str_replace( '[form_name]', $form_name, $string );
1544
+ }
1545
+
1546
+ /**
1547
+ * @param stdClass|string|int|false $entry
1548
+ * @return void
1549
+ */
1550
  private static function get_entry_by_param( &$entry ) {
1551
  if ( ! $entry || ! is_object( $entry ) ) {
1552
  if ( ! $entry || ! is_numeric( $entry ) ) {
classes/helpers/FrmAppHelper.php CHANGED
@@ -16,7 +16,7 @@ class FrmAppHelper {
16
  /**
17
  * @since 2.0
18
  */
19
- public static $plug_version = '5.4.5';
20
 
21
  /**
22
  * @since 1.07.02
@@ -3089,7 +3089,7 @@ class FrmAppHelper {
3089
  /**
3090
  * Filter available locale options.
3091
  *
3092
- * @since x.x Added $args parameter with type.
3093
  *
3094
  * @param array<string,string> $locales
3095
  * @param array $args {
@@ -3581,6 +3581,20 @@ class FrmAppHelper {
3581
  return array( 'list', 'trash', 'untrash', 'destroy' );
3582
  }
3583
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3584
  /**
3585
  * @since 4.08
3586
  * @deprecated 4.09.01
16
  /**
17
  * @since 2.0
18
  */
19
+ public static $plug_version = '5.5';
20
 
21
  /**
22
  * @since 1.07.02
3089
  /**
3090
  * Filter available locale options.
3091
  *
3092
+ * @since 5.4.5 Added $args parameter with type.
3093
  *
3094
  * @param array<string,string> $locales
3095
  * @param array $args {
3581
  return array( 'list', 'trash', 'untrash', 'destroy' );
3582
  }
3583
 
3584
+ /**
3585
+ * Safely call get_plugins, importing the required files if they are not yet loaded.
3586
+ *
3587
+ * @since 5.5
3588
+ *
3589
+ * @return array
3590
+ */
3591
+ public static function get_plugins() {
3592
+ if ( ! function_exists( 'get_plugins' ) ) {
3593
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
3594
+ }
3595
+ return get_plugins();
3596
+ }
3597
+
3598
  /**
3599
  * @since 4.08
3600
  * @deprecated 4.09.01
classes/helpers/FrmFormsHelper.php CHANGED
@@ -250,11 +250,19 @@ class FrmFormsHelper {
250
  return apply_filters( 'frm_invalid_error_message', $invalid_msg, $args );
251
  }
252
 
 
 
 
 
 
 
 
 
 
253
  public static function get_success_message( $atts ) {
254
  $message = apply_filters( 'frm_content', $atts['message'], $atts['form'], $atts['entry_id'] );
255
  $message = do_shortcode( FrmAppHelper::use_wpautop( $message ) );
256
  $message = '<div class="' . esc_attr( $atts['class'] ) . '" role="status">' . $message . '</div>';
257
-
258
  return $message;
259
  }
260
 
250
  return apply_filters( 'frm_invalid_error_message', $invalid_msg, $args );
251
  }
252
 
253
+ /**
254
+ * @param array $atts {
255
+ * @type string $message
256
+ * @type stdClass $form
257
+ * @type int $entry_id
258
+ * @type string $class
259
+ * }
260
+ * @return string
261
+ */
262
  public static function get_success_message( $atts ) {
263
  $message = apply_filters( 'frm_content', $atts['message'], $atts['form'], $atts['entry_id'] );
264
  $message = do_shortcode( FrmAppHelper::use_wpautop( $message ) );
265
  $message = '<div class="' . esc_attr( $atts['class'] ) . '" role="status">' . $message . '</div>';
 
266
  return $message;
267
  }
268
 
classes/models/FrmEmail.php CHANGED
@@ -229,6 +229,7 @@ class FrmEmail {
229
  * @since 2.03.04
230
  *
231
  * @param array $user_id_args
 
232
  */
233
  private function set_from( $user_id_args ) {
234
  if ( empty( $this->settings['from'] ) ) {
@@ -331,6 +332,8 @@ class FrmEmail {
331
  * Set the subject
332
  *
333
  * @since 2.03.04
 
 
334
  */
335
  private function set_subject() {
336
  if ( empty( $this->settings['email_subject'] ) ) {
@@ -340,6 +343,7 @@ class FrmEmail {
340
  $this->subject = $this->settings['email_subject'];
341
  }
342
 
 
343
  $this->subject = FrmFieldsHelper::basic_replace_shortcodes( $this->subject, $this->form, $this->entry );
344
 
345
  $args = array(
@@ -348,7 +352,6 @@ class FrmEmail {
348
  'email_key' => $this->email_key,
349
  );
350
  $this->subject = apply_filters( 'frm_email_subject', $this->subject, $args );
351
-
352
  $this->subject = wp_specialchars_decode( strip_tags( stripslashes( $this->subject ) ), ENT_QUOTES );
353
  }
354
 
229
  * @since 2.03.04
230
  *
231
  * @param array $user_id_args
232
+ * @return void
233
  */
234
  private function set_from( $user_id_args ) {
235
  if ( empty( $this->settings['from'] ) ) {
332
  * Set the subject
333
  *
334
  * @since 2.03.04
335
+ *
336
+ * @return void
337
  */
338
  private function set_subject() {
339
  if ( empty( $this->settings['email_subject'] ) ) {
343
  $this->subject = $this->settings['email_subject'];
344
  }
345
 
346
+ // This also replaces [sitename] shortcode in default.
347
  $this->subject = FrmFieldsHelper::basic_replace_shortcodes( $this->subject, $this->form, $this->entry );
348
 
349
  $args = array(
352
  'email_key' => $this->email_key,
353
  );
354
  $this->subject = apply_filters( 'frm_email_subject', $this->subject, $args );
 
355
  $this->subject = wp_specialchars_decode( strip_tags( stripslashes( $this->subject ) ), ENT_QUOTES );
356
  }
357
 
classes/models/FrmEntryMeta.php CHANGED
@@ -170,7 +170,7 @@ class FrmEntryMeta {
170
  /**
171
  * Allows changing entry duplicate values before save.
172
  *
173
- * @since x.x
174
  *
175
  * @param array $metas The list of entry meta values.
176
  */
170
  /**
171
  * Allows changing entry duplicate values before save.
172
  *
173
+ * @since 5.4.4
174
  *
175
  * @param array $metas The list of entry meta values.
176
  */
classes/models/FrmEntryValues.php CHANGED
@@ -252,19 +252,17 @@ class FrmEntryValues {
252
  );
253
  }
254
 
255
- $ip = array(
256
  'label' => __( 'IP Address', 'formidable' ),
257
  'value' => $this->entry->ip,
258
  );
259
-
260
  $browser = array(
261
  'label' => __( 'User-Agent (Browser/OS)', 'formidable' ),
262
- 'value' => FrmEntriesHelper::get_browser( $entry_description['browser'] ),
263
  );
264
-
265
  $referrer = array(
266
  'label' => __( 'Referrer', 'formidable' ),
267
- 'value' => $entry_description['referrer'],
268
  );
269
 
270
  $this->user_info = array(
252
  );
253
  }
254
 
255
+ $ip = array(
256
  'label' => __( 'IP Address', 'formidable' ),
257
  'value' => $this->entry->ip,
258
  );
 
259
  $browser = array(
260
  'label' => __( 'User-Agent (Browser/OS)', 'formidable' ),
261
+ 'value' => isset( $entry_description['browser'] ) ? FrmEntriesHelper::get_browser( $entry_description['browser'] ) : '',
262
  );
 
263
  $referrer = array(
264
  'label' => __( 'Referrer', 'formidable' ),
265
+ 'value' => isset( $entry_description['referrer'] ) ? $entry_description['referrer'] : '',
266
  );
267
 
268
  $this->user_info = array(
classes/models/FrmPluginSearch.php CHANGED
@@ -333,13 +333,12 @@ class FrmPluginSearch {
333
  return $links;
334
  }
335
 
 
 
 
 
336
  protected function is_installed( $plugin ) {
337
- if ( ! function_exists( 'get_plugins' ) ) {
338
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
339
- }
340
-
341
- $all_plugins = get_plugins();
342
-
343
  return isset( $all_plugins[ $plugin ] );
344
  }
345
 
333
  return $links;
334
  }
335
 
336
+ /**
337
+ * @param string $plugin
338
+ * @return bool
339
+ */
340
  protected function is_installed( $plugin ) {
341
+ $all_plugins = FrmAppHelper::get_plugins();
 
 
 
 
 
342
  return isset( $all_plugins[ $plugin ] );
343
  }
344
 
classes/models/FrmUsage.php CHANGED
@@ -94,7 +94,7 @@ class FrmUsage {
94
  * @return array
95
  */
96
  private function plugins() {
97
- $plugin_list = get_plugins();
98
 
99
  $plugins = array();
100
  foreach ( $plugin_list as $slug => $info ) {
94
  * @return array
95
  */
96
  private function plugins() {
97
+ $plugin_list = FrmAppHelper::get_plugins();
98
 
99
  $plugins = array();
100
  foreach ( $plugin_list as $slug => $info ) {
css/_single_theme.css.php CHANGED
@@ -83,7 +83,8 @@ $arrow_icons = FrmStylesHelper::arrow_icons();
83
  .<?php echo esc_html( $style_class ); ?> div.description,
84
  .<?php echo esc_html( $style_class ); ?> div.frm_description,
85
  .<?php echo esc_html( $style_class ); ?> .frm-show-form > div.frm_description,
86
- .<?php echo esc_html( $style_class ); ?> .frm_error{
 
87
  <?php if ( ! empty( $description_margin ) ) { ?>
88
  margin:<?php echo esc_html( $description_margin . $important ); ?>;
89
  <?php } ?>
@@ -405,12 +406,14 @@ if ( '' === $field_height || 'auto' === $field_height ) {
405
  border-color:<?php echo esc_html( $border_color_error ); ?> !important;
406
  }
407
 
408
- .<?php echo esc_html( $style_class ); ?> .frm_error{
 
409
  font-weight:<?php echo esc_html( $weight . $important ); ?>;
410
  }
411
 
412
  .<?php echo esc_html( $style_class ); ?> .frm_blank_field label,
413
- .<?php echo esc_html( $style_class ); ?> .frm_error{
 
414
  color:<?php echo esc_html( $border_color_error . $important ); ?>;
415
  }
416
 
83
  .<?php echo esc_html( $style_class ); ?> div.description,
84
  .<?php echo esc_html( $style_class ); ?> div.frm_description,
85
  .<?php echo esc_html( $style_class ); ?> .frm-show-form > div.frm_description,
86
+ .<?php echo esc_html( $style_class ); ?> .frm_error,
87
+ .<?php echo esc_html( $style_class ); ?> .frm_pro_max_limit_desc{
88
  <?php if ( ! empty( $description_margin ) ) { ?>
89
  margin:<?php echo esc_html( $description_margin . $important ); ?>;
90
  <?php } ?>
406
  border-color:<?php echo esc_html( $border_color_error ); ?> !important;
407
  }
408
 
409
+ .<?php echo esc_html( $style_class ); ?> .frm_error,
410
+ .<?php echo esc_html( $style_class ); ?> .frm_limit_error{
411
  font-weight:<?php echo esc_html( $weight . $important ); ?>;
412
  }
413
 
414
  .<?php echo esc_html( $style_class ); ?> .frm_blank_field label,
415
+ .<?php echo esc_html( $style_class ); ?> .frm_error,
416
+ .<?php echo esc_html( $style_class ); ?> .frm_limit_error{
417
  color:<?php echo esc_html( $border_color_error . $important ); ?>;
418
  }
419
 
css/custom_theme.css.php CHANGED
@@ -339,6 +339,7 @@ legend.frm_hidden{
339
  width:<?php echo esc_html( $defaults['auto_width'] ); ?>;
340
  width:var(--auto-width)<?php echo esc_html( $important ); ?>;
341
  max-width:100%;
 
342
  }
343
 
344
  .with_frm_style input[disabled],
@@ -527,7 +528,8 @@ legend.frm_hidden{
527
  transition: opacity 0.3s ease-in;
528
  }
529
 
530
- .with_frm_style .frm_description{
 
531
  clear:both;
532
  }
533
 
@@ -1222,7 +1224,10 @@ select.frm_loading_lookup{
1222
 
1223
  .frm_grid .frm_error,
1224
  .frm_grid_first .frm_error,
1225
- .frm_grid_odd .frm_error{
 
 
 
1226
  display:none;
1227
  }
1228
 
339
  width:<?php echo esc_html( $defaults['auto_width'] ); ?>;
340
  width:var(--auto-width)<?php echo esc_html( $important ); ?>;
341
  max-width:100%;
342
+ background-position-y: center;
343
  }
344
 
345
  .with_frm_style input[disabled],
528
  transition: opacity 0.3s ease-in;
529
  }
530
 
531
+ .with_frm_style .frm_description,
532
+ .with_frm_style .frm_pro_max_limit_desc{
533
  clear:both;
534
  }
535
 
1224
 
1225
  .frm_grid .frm_error,
1226
  .frm_grid_first .frm_error,
1227
+ .frm_grid_odd .frm_error,
1228
+ .frm_grid .frm_limit_error,
1229
+ .frm_grid_first .frm_limit_error,
1230
+ .frm_grid_odd .frm_limit_error{
1231
  display:none;
1232
  }
1233
 
css/frm_admin.css CHANGED
@@ -7911,6 +7911,25 @@ button.frm_choose_image_box,
7911
  float: left;
7912
  }
7913
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7914
  /* ---------------------------------------------------------------
7915
  Clearfix
7916
  --------------------------------------------------------------- */
7911
  float: left;
7912
  }
7913
 
7914
+ .rtl .frm-default-switcher {
7915
+ float: left;
7916
+ position: relative;
7917
+ }
7918
+
7919
+ .rtl .frm-with-right-icon .frmsvg {
7920
+ right: auto;
7921
+ left: 0;
7922
+ }
7923
+
7924
+ .rtl .frm-inline-modal > a.dismiss {
7925
+ left: 13px;
7926
+ right: auto;
7927
+ }
7928
+
7929
+ .rtl.wp-admin .frm_wrap select {
7930
+ padding: 0 12px 0 24px !important;
7931
+ }
7932
+
7933
  /* ---------------------------------------------------------------
7934
  Clearfix
7935
  --------------------------------------------------------------- */
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.4.5
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11 Form Builder Team
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 5.5
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11 Form Builder Team
js/formidable_admin.js CHANGED
@@ -3831,28 +3831,27 @@ function frmAdminBuildJS() {
3831
  }
3832
 
3833
  function fieldGroupClick( e ) {
3834
- var hoverTarget, ctrlOrCmdKeyIsDown, shiftKeyIsDown, groupIsActive, $selectedFieldGroups, numberOfSelectedGroups, selectedField, $firstGroup, $range;
3835
-
3836
  if ( 'ul' !== e.originalEvent.target.nodeName.toLowerCase() ) {
3837
  // only continue if the group itself was clicked / ignore when a field is clicked.
3838
  return;
3839
  }
3840
 
3841
- hoverTarget = document.querySelector( '.frm-field-group-hover-target' );
3842
- if ( hoverTarget === null ) {
3843
  return;
3844
  }
3845
 
3846
- ctrlOrCmdKeyIsDown = e.ctrlKey || e.metaKey;
3847
- shiftKeyIsDown = e.shiftKey;
3848
- groupIsActive = hoverTarget.classList.contains( 'frm-selected-field-group' );
3849
- $selectedFieldGroups = jQuery( '.frm-selected-field-group' );
3850
- numberOfSelectedGroups = $selectedFieldGroups.length;
 
3851
 
3852
  if ( ctrlOrCmdKeyIsDown || shiftKeyIsDown ) {
3853
  // multi-selecting
3854
 
3855
- selectedField = document.querySelector( 'li.form-field.selected' );
3856
  if ( null !== selectedField && ! jQuery( selectedField ).siblings( 'li.form-field' ).length ) {
3857
  // count a selected field on its own as a selected field group when multiselecting.
3858
  selectedField.parentNode.classList.add( 'frm-selected-field-group' );
@@ -3871,8 +3870,9 @@ function frmAdminBuildJS() {
3871
  }
3872
  } else if ( shiftKeyIsDown && ! groupIsActive ) {
3873
  ++numberOfSelectedGroups; // include the one we're selecting right now.
3874
- $firstGroup = $selectedFieldGroups.first();
3875
 
 
3876
  if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) {
3877
  $range = $firstGroup.parent().nextUntil( hoverTarget.parentNode );
3878
  } else {
@@ -3905,6 +3905,29 @@ function frmAdminBuildJS() {
3905
  jQuery( document ).on( 'click', unselectFieldGroups );
3906
  }
3907
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3908
  function syncAfterMultiSelect( numberOfSelectedGroups ) {
3909
  clearSettingsBox( true ); // unselect any fields if one is selected.
3910
  if ( numberOfSelectedGroups >= 2 || ( 1 === numberOfSelectedGroups && selectedGroupHasMultipleFields() ) ) {
3831
  }
3832
 
3833
  function fieldGroupClick( e ) {
 
 
3834
  if ( 'ul' !== e.originalEvent.target.nodeName.toLowerCase() ) {
3835
  // only continue if the group itself was clicked / ignore when a field is clicked.
3836
  return;
3837
  }
3838
 
3839
+ const hoverTarget = document.querySelector( '.frm-field-group-hover-target' );
3840
+ if ( ! hoverTarget ) {
3841
  return;
3842
  }
3843
 
3844
+ const ctrlOrCmdKeyIsDown = e.ctrlKey || e.metaKey;
3845
+ const shiftKeyIsDown = e.shiftKey;
3846
+ const groupIsActive = hoverTarget.classList.contains( 'frm-selected-field-group' );
3847
+ const $selectedFieldGroups = getSelectedFieldGroups();
3848
+
3849
+ let numberOfSelectedGroups = $selectedFieldGroups.length;
3850
 
3851
  if ( ctrlOrCmdKeyIsDown || shiftKeyIsDown ) {
3852
  // multi-selecting
3853
 
3854
+ const selectedField = getSelectedField();
3855
  if ( null !== selectedField && ! jQuery( selectedField ).siblings( 'li.form-field' ).length ) {
3856
  // count a selected field on its own as a selected field group when multiselecting.
3857
  selectedField.parentNode.classList.add( 'frm-selected-field-group' );
3870
  }
3871
  } else if ( shiftKeyIsDown && ! groupIsActive ) {
3872
  ++numberOfSelectedGroups; // include the one we're selecting right now.
3873
+ const $firstGroup = $selectedFieldGroups.first();
3874
 
3875
+ let $range;
3876
  if ( $firstGroup.parent().index() < jQuery( hoverTarget.parentNode ).index() ) {
3877
  $range = $firstGroup.parent().nextUntil( hoverTarget.parentNode );
3878
  } else {
3905
  jQuery( document ).on( 'click', unselectFieldGroups );
3906
  }
3907
 
3908
+ function getSelectedField() {
3909
+ return document.getElementById( 'frm-show-fields' ).querySelector( 'li.form-field.selected' );
3910
+ }
3911
+
3912
+ function getSelectedFieldGroups() {
3913
+ const $fieldGroups = jQuery( '.frm-selected-field-group' );
3914
+ if ( $fieldGroups.length ) {
3915
+ return $fieldGroups;
3916
+ }
3917
+
3918
+ const selectedField = getSelectedField();
3919
+ if ( selectedField ) {
3920
+ // If there is only one field in a group and the field is selected, consider the field's group as selected for multi-select.
3921
+ const selectedFieldGroup = selectedField.closest( 'ul' );
3922
+ if ( selectedFieldGroup && 1 === getFieldsInRow( jQuery( selectedFieldGroup ) ).length ) {
3923
+ selectedFieldGroup.classList.add( 'frm-selected-field-group' );
3924
+ return jQuery( selectedFieldGroup );
3925
+ }
3926
+ }
3927
+
3928
+ return jQuery();
3929
+ }
3930
+
3931
  function syncAfterMultiSelect( numberOfSelectedGroups ) {
3932
  clearSettingsBox( true ); // unselect any fields if one is selected.
3933
  if ( numberOfSelectedGroups >= 2 || ( 1 === numberOfSelectedGroups && selectedGroupHasMultipleFields() ) ) {
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.4.5\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: 2022-08-31T14:03:22+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: formidable\n"
@@ -138,7 +138,7 @@ msgstr ""
138
 
139
  #: classes/controllers/FrmAddonsController.php:29
140
  #: classes/controllers/FrmAddonsController.php:30
141
- #: classes/helpers/FrmFormsHelper.php:1366
142
  #: classes/views/frm-fields/back-end/smart-values.php:16
143
  #: classes/views/shared/admin-header.php:25
144
  msgid "Upgrade"
@@ -148,33 +148,33 @@ msgstr ""
148
  msgid "There are no plugins on your site that require a license"
149
  msgstr ""
150
 
151
- #: classes/controllers/FrmAddonsController.php:633
152
  msgid "Installed"
153
  msgstr ""
154
 
155
- #: classes/controllers/FrmAddonsController.php:638
156
  #: classes/helpers/FrmAppHelper.php:2856
157
  msgid "Active"
158
  msgstr ""
159
 
160
- #: classes/controllers/FrmAddonsController.php:643
161
  msgid "Not Installed"
162
  msgstr ""
163
 
164
- #: classes/controllers/FrmAddonsController.php:940
165
  msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
166
  msgstr ""
167
 
168
- #: classes/controllers/FrmAddonsController.php:1004
169
  msgid "Your plugin has been activated. Would you like to save and reload the page now?"
170
  msgstr ""
171
 
172
- #: classes/controllers/FrmAddonsController.php:1123
173
  msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
174
  msgstr ""
175
 
176
- #: classes/controllers/FrmAddonsController.php:1208
177
- #: classes/controllers/FrmAddonsController.php:1209
178
  #: classes/controllers/FrmWelcomeController.php:141
179
  #: classes/views/frm-forms/new-form-overlay.php:105
180
  #: classes/views/shared/reports-info.php:23
@@ -454,7 +454,7 @@ msgid "Date"
454
  msgstr ""
455
 
456
  #: classes/controllers/FrmFormsController.php:963
457
- #: classes/helpers/FrmFormsHelper.php:1309
458
  msgid "My Templates"
459
  msgstr ""
460
 
@@ -630,23 +630,30 @@ msgstr ""
630
  msgid "Default Plain"
631
  msgstr ""
632
 
633
- #: classes/controllers/FrmFormsController.php:1547
 
 
 
 
 
 
 
634
  msgid "No forms were specified"
635
  msgstr ""
636
 
637
- #: classes/controllers/FrmFormsController.php:1656
638
  msgid "There was a problem duplicating the form"
639
  msgstr ""
640
 
641
- #: classes/controllers/FrmFormsController.php:1667
642
  msgid "Abnormal HTML characters prevented your form from saving correctly"
643
  msgstr ""
644
 
645
- #: classes/controllers/FrmFormsController.php:1782
646
  #: classes/helpers/FrmFormsHelper.php:57
647
  #: classes/helpers/FrmFormsHelper.php:112
648
  #: classes/helpers/FrmFormsHelper.php:166
649
- #: classes/helpers/FrmFormsHelper.php:1080
650
  #: classes/helpers/FrmFormsListHelper.php:319
651
  #: classes/views/frm-forms/create-template-from-an-existing-form.php:25
652
  #: classes/views/styles/manage.php:59
@@ -655,21 +662,21 @@ msgstr ""
655
  msgid "(no title)"
656
  msgstr ""
657
 
658
- #: classes/controllers/FrmFormsController.php:1848
659
- #: classes/controllers/FrmFormsController.php:1870
660
  msgid "Please select a valid form"
661
  msgstr ""
662
 
663
- #: classes/controllers/FrmFormsController.php:2104
664
  msgid "Please wait while you are redirected."
665
  msgstr ""
666
 
667
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
668
- #: classes/controllers/FrmFormsController.php:2139
669
  msgid "%1$sClick here%2$s if you are not automatically redirected."
670
  msgstr ""
671
 
672
- #: classes/controllers/FrmFormsController.php:2499
673
  #: classes/helpers/FrmAppHelper.php:1395
674
  #: classes/views/frm-forms/settings-advanced.php:93
675
  msgid "Select a Page"
@@ -886,7 +893,7 @@ msgstr ""
886
  #: classes/controllers/FrmSMTPController.php:322
887
  #: classes/models/FrmPluginSearch.php:306
888
  #: classes/views/addons/settings.php:31
889
- #: js/formidable_admin.js:5901
890
  msgid "Activate"
891
  msgstr ""
892
 
@@ -938,7 +945,7 @@ msgid "Your form styles have been saved."
938
  msgstr ""
939
 
940
  #: classes/controllers/FrmStylesController.php:402
941
- #: classes/helpers/FrmFormsHelper.php:535
942
  #: classes/views/frm-forms/settings-advanced.php:27
943
  msgid "Form Description"
944
  msgstr ""
@@ -948,7 +955,7 @@ msgid "Field Labels"
948
  msgstr ""
949
 
950
  #: classes/controllers/FrmStylesController.php:404
951
- #: classes/helpers/FrmFormsHelper.php:495
952
  #: classes/views/frm-fields/back-end/field-description.php:8
953
  msgid "Field Description"
954
  msgstr ""
@@ -1261,7 +1268,7 @@ msgstr ""
1261
 
1262
  #: classes/helpers/FrmAppHelper.php:2822
1263
  #: classes/helpers/FrmListHelper.php:412
1264
- #: js/formidable_admin.js:4060
1265
  msgid "Heads up"
1266
  msgstr ""
1267
 
@@ -1362,7 +1369,7 @@ msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems wh
1362
  msgstr ""
1363
 
1364
  #: classes/helpers/FrmAppHelper.php:2852
1365
- #: classes/helpers/FrmFormsHelper.php:1543
1366
  msgid "See the list of reserved words in WordPress."
1367
  msgstr ""
1368
 
@@ -1788,7 +1795,7 @@ msgid "Updated By"
1788
  msgstr ""
1789
 
1790
  #: classes/helpers/FrmCSVExportHelper.php:346
1791
- #: classes/helpers/FrmFormsHelper.php:1266
1792
  #: classes/helpers/FrmFormsListHelper.php:346
1793
  msgid "Draft"
1794
  msgstr ""
@@ -1879,7 +1886,7 @@ msgid "Permanently delete this entry?"
1879
  msgstr ""
1880
 
1881
  #: classes/helpers/FrmEntriesListHelper.php:319
1882
- #: classes/helpers/FrmFormsHelper.php:1188
1883
  #: classes/helpers/FrmFormsListHelper.php:133
1884
  #: classes/views/frm-form-actions/form_action.php:25
1885
  #: js/formidable_admin.js:2033
@@ -3147,221 +3154,215 @@ msgstr ""
3147
  msgid "(ID %d)"
3148
  msgstr ""
3149
 
3150
- #: classes/helpers/FrmFormsHelper.php:483
3151
  msgid "Field ID"
3152
  msgstr ""
3153
 
3154
- #: classes/helpers/FrmFormsHelper.php:487
3155
  #: classes/views/frm-fields/back-end/settings.php:304
3156
  msgid "Field Key"
3157
  msgstr ""
3158
 
3159
- #: classes/helpers/FrmFormsHelper.php:491
3160
  msgid "Field Name"
3161
  msgstr ""
3162
 
3163
- #: classes/helpers/FrmFormsHelper.php:499
3164
  #: classes/views/frm-fields/back-end/settings.php:277
3165
  msgid "Label Position"
3166
  msgstr ""
3167
 
3168
- #: classes/helpers/FrmFormsHelper.php:503
3169
  msgid "Required Label"
3170
  msgstr ""
3171
 
3172
- #: classes/helpers/FrmFormsHelper.php:507
3173
  msgid "Input Field"
3174
  msgstr ""
3175
 
3176
- #: classes/helpers/FrmFormsHelper.php:511
3177
  msgid "Single Option"
3178
  msgstr ""
3179
 
3180
- #: classes/helpers/FrmFormsHelper.php:512
3181
  msgid "Show a single radio or checkbox option by replacing 1 with the order of the option"
3182
  msgstr ""
3183
 
3184
- #: classes/helpers/FrmFormsHelper.php:516
3185
  msgid "Hide Option Label"
3186
  msgstr ""
3187
 
3188
- #: classes/helpers/FrmFormsHelper.php:520
3189
  msgid "Required Class"
3190
  msgstr ""
3191
 
3192
- #: classes/helpers/FrmFormsHelper.php:521
3193
  msgid "Add class name if field is required"
3194
  msgstr ""
3195
 
3196
- #: classes/helpers/FrmFormsHelper.php:525
3197
  msgid "Error Class"
3198
  msgstr ""
3199
 
3200
- #: classes/helpers/FrmFormsHelper.php:526
3201
  msgid "Add class name if field has an error on form submit"
3202
  msgstr ""
3203
 
3204
- #: classes/helpers/FrmFormsHelper.php:531
3205
- #: classes/views/frm-forms/new-form-overlay.php:46
3206
- #: classes/views/frm-forms/new-form-overlay.php:47
3207
- msgid "Form Name"
3208
- msgstr ""
3209
-
3210
- #: classes/helpers/FrmFormsHelper.php:539
3211
  #: classes/views/frm-forms/settings-advanced.php:20
3212
  msgid "Form Key"
3213
  msgstr ""
3214
 
3215
- #: classes/helpers/FrmFormsHelper.php:543
3216
  msgid "Delete Entry Link"
3217
  msgstr ""
3218
 
3219
- #: classes/helpers/FrmFormsHelper.php:548
3220
  msgid "Button Label"
3221
  msgstr ""
3222
 
3223
- #: classes/helpers/FrmFormsHelper.php:552
3224
  msgid "Button Hook"
3225
  msgstr ""
3226
 
3227
- #: classes/helpers/FrmFormsHelper.php:1048
3228
  msgid "Create Form from Template"
3229
  msgstr ""
3230
 
3231
- #: classes/helpers/FrmFormsHelper.php:1054
3232
  msgid "Duplicate Form"
3233
  msgstr ""
3234
 
3235
- #: classes/helpers/FrmFormsHelper.php:1175
3236
  msgid "Restore from Trash"
3237
  msgstr ""
3238
 
3239
- #: classes/helpers/FrmFormsHelper.php:1176
3240
  #: classes/helpers/FrmFormsListHelper.php:124
3241
  msgid "Restore"
3242
  msgstr ""
3243
 
3244
- #: classes/helpers/FrmFormsHelper.php:1180
3245
  msgid "Move Form to Trash"
3246
  msgstr ""
3247
 
3248
- #: classes/helpers/FrmFormsHelper.php:1181
3249
- #: classes/helpers/FrmFormsHelper.php:1267
3250
  #: classes/helpers/FrmFormsListHelper.php:158
3251
  msgid "Trash"
3252
  msgstr ""
3253
 
3254
- #: classes/helpers/FrmFormsHelper.php:1184
3255
  msgid "Do you want to move this form to the trash?"
3256
  msgstr ""
3257
 
3258
- #: classes/helpers/FrmFormsHelper.php:1187
3259
  #: classes/helpers/FrmFormsListHelper.php:128
3260
  msgid "Delete Permanently"
3261
  msgstr ""
3262
 
3263
- #: classes/helpers/FrmFormsHelper.php:1190
3264
  msgid "Are you sure you want to delete this form and all its entries?"
3265
  msgstr ""
3266
 
3267
- #: classes/helpers/FrmFormsHelper.php:1192
3268
  msgid "This will permanently delete the form and all its entries. This is irreversible. Are you sure you want to continue?"
3269
  msgstr ""
3270
 
3271
- #: classes/helpers/FrmFormsHelper.php:1203
3272
  #: classes/models/FrmField.php:199
3273
  msgid "Total"
3274
  msgstr ""
3275
 
3276
- #: classes/helpers/FrmFormsHelper.php:1204
3277
  msgid "Add this to a read-only field to display the text in bold without a border or background."
3278
  msgstr ""
3279
 
3280
- #: classes/helpers/FrmFormsHelper.php:1207
3281
  msgid "Big Total"
3282
  msgstr ""
3283
 
3284
- #: classes/helpers/FrmFormsHelper.php:1208
3285
  msgid "Add this to a read-only field to display the text in large, bold text without a border or background."
3286
  msgstr ""
3287
 
3288
- #: classes/helpers/FrmFormsHelper.php:1211
3289
  msgid "Scroll Box"
3290
  msgstr ""
3291
 
3292
- #: classes/helpers/FrmFormsHelper.php:1212
3293
  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."
3294
  msgstr ""
3295
 
3296
- #: classes/helpers/FrmFormsHelper.php:1215
3297
  #: classes/models/fields/FrmFieldName.php:36
3298
  msgid "First"
3299
  msgstr ""
3300
 
3301
- #: classes/helpers/FrmFormsHelper.php:1216
3302
  msgid "Add this to the first field in each row along with a width. ie frm_first frm4"
3303
  msgstr ""
3304
 
3305
- #: classes/helpers/FrmFormsHelper.php:1218
3306
  #: classes/helpers/FrmStylesHelper.php:113
3307
  msgid "Right"
3308
  msgstr ""
3309
 
3310
- #: classes/helpers/FrmFormsHelper.php:1219
3311
  msgid "First Grid Row"
3312
  msgstr ""
3313
 
3314
- #: classes/helpers/FrmFormsHelper.php:1220
3315
  msgid "Even Grid Row"
3316
  msgstr ""
3317
 
3318
- #: classes/helpers/FrmFormsHelper.php:1221
3319
  msgid "Odd Grid Row"
3320
  msgstr ""
3321
 
3322
- #: classes/helpers/FrmFormsHelper.php:1223
3323
  msgid "Color Block"
3324
  msgstr ""
3325
 
3326
- #: classes/helpers/FrmFormsHelper.php:1224
3327
  msgid "Add a background color to the field or section."
3328
  msgstr ""
3329
 
3330
- #: classes/helpers/FrmFormsHelper.php:1227
3331
  msgid "Capitalize"
3332
  msgstr ""
3333
 
3334
- #: classes/helpers/FrmFormsHelper.php:1228
3335
  msgid "Automatically capitalize the first letter in each word."
3336
  msgstr ""
3337
 
3338
- #: classes/helpers/FrmFormsHelper.php:1268
3339
  msgid "Published"
3340
  msgstr ""
3341
 
3342
- #: classes/helpers/FrmFormsHelper.php:1353
3343
  msgid "Create Form"
3344
  msgstr ""
3345
 
3346
- #: classes/helpers/FrmFormsHelper.php:1361
3347
  msgid "Renew"
3348
  msgstr ""
3349
 
3350
- #: classes/helpers/FrmFormsHelper.php:1425
3351
  msgid "License plan required:"
3352
  msgstr ""
3353
 
3354
- #: classes/helpers/FrmFormsHelper.php:1542
3355
  msgid "Is this intentional?"
3356
  msgstr ""
3357
 
3358
  #. translators: %s: the name of a single parameter in the redirect URL
3359
- #: classes/helpers/FrmFormsHelper.php:1552
3360
  msgid "The redirect URL is using the parameter \"%s\", which is reserved by WordPress. "
3361
  msgstr ""
3362
 
3363
  #. translators: %s: the names of two or more parameters in the redirect URL, separated by commas
3364
- #: classes/helpers/FrmFormsHelper.php:1558
3365
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
3366
  msgstr ""
3367
 
@@ -4010,26 +4011,26 @@ msgid "Use the query in an array format so it can be properly prepared."
4010
  msgstr ""
4011
 
4012
  #. translators: %1$s: Form name, %2$s: Site name
4013
- #: classes/models/FrmEmail.php:338
4014
  msgid "%1$s Form submitted on %2$s"
4015
  msgstr ""
4016
 
4017
- #: classes/models/FrmEmail.php:378
4018
  #: classes/views/frm-entries/sidebar-shared.php:74
4019
  msgid "User Information"
4020
  msgstr ""
4021
 
4022
- #: classes/models/FrmEmail.php:380
4023
- #: classes/models/FrmEntryValues.php:261
4024
  msgid "User-Agent (Browser/OS)"
4025
  msgstr ""
4026
 
4027
- #: classes/models/FrmEmail.php:381
4028
- #: classes/models/FrmEntryValues.php:266
4029
  msgid "Referrer"
4030
  msgstr ""
4031
 
4032
- #: classes/models/FrmEmail.php:397
4033
  #: classes/models/FrmEntryValues.php:256
4034
  msgid "IP Address"
4035
  msgstr ""
@@ -4287,7 +4288,7 @@ msgstr ""
4287
  msgid "Hide this suggestion"
4288
  msgstr ""
4289
 
4290
- #: classes/models/FrmPluginSearch.php:355
4291
  msgid "This suggestion was made by Formidable Forms, the form builder and application plugin already installed on your site."
4292
  msgstr ""
4293
 
@@ -4623,7 +4624,7 @@ msgstr ""
4623
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4624
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4625
  #: classes/views/shared/admin-header.php:11
4626
- #: js/formidable_admin.js:8020
4627
  msgid "Close"
4628
  msgstr ""
4629
 
@@ -6628,27 +6629,27 @@ msgstr ""
6628
  msgid "Save"
6629
  msgstr ""
6630
 
6631
- #: js/formidable_admin.js:3974
6632
  msgid "Merge into row"
6633
  msgstr ""
6634
 
6635
  #. translators: %1$s: Number of fields that are selected to be deleted.
6636
- #: js/formidable_admin.js:4062
6637
  msgid "Are you sure you want to delete these %1$s selected fields?"
6638
  msgstr ""
6639
 
6640
- #: js/formidable_admin.js:5186
6641
  msgid "Duplicate option value \"%s\" detected"
6642
  msgstr ""
6643
 
6644
- #: js/formidable_admin.js:7287
6645
  msgid "Ready Made Solution"
6646
  msgstr ""
6647
 
6648
- #: js/formidable_admin.js:7290
6649
  msgid "Check all applications"
6650
  msgstr ""
6651
 
6652
- #: js/formidable_admin.js:8005
6653
  msgid "Save and Reload"
6654
  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.5\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: 2022-09-14T16:21:38+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: formidable\n"
138
 
139
  #: classes/controllers/FrmAddonsController.php:29
140
  #: classes/controllers/FrmAddonsController.php:30
141
+ #: classes/helpers/FrmFormsHelper.php:1374
142
  #: classes/views/frm-fields/back-end/smart-values.php:16
143
  #: classes/views/shared/admin-header.php:25
144
  msgid "Upgrade"
148
  msgid "There are no plugins on your site that require a license"
149
  msgstr ""
150
 
151
+ #: classes/controllers/FrmAddonsController.php:625
152
  msgid "Installed"
153
  msgstr ""
154
 
155
+ #: classes/controllers/FrmAddonsController.php:630
156
  #: classes/helpers/FrmAppHelper.php:2856
157
  msgid "Active"
158
  msgstr ""
159
 
160
+ #: classes/controllers/FrmAddonsController.php:635
161
  msgid "Not Installed"
162
  msgstr ""
163
 
164
+ #: classes/controllers/FrmAddonsController.php:932
165
  msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
166
  msgstr ""
167
 
168
+ #: classes/controllers/FrmAddonsController.php:996
169
  msgid "Your plugin has been activated. Would you like to save and reload the page now?"
170
  msgstr ""
171
 
172
+ #: classes/controllers/FrmAddonsController.php:1115
173
  msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
174
  msgstr ""
175
 
176
+ #: classes/controllers/FrmAddonsController.php:1200
177
+ #: classes/controllers/FrmAddonsController.php:1201
178
  #: classes/controllers/FrmWelcomeController.php:141
179
  #: classes/views/frm-forms/new-form-overlay.php:105
180
  #: classes/views/shared/reports-info.php:23
454
  msgstr ""
455
 
456
  #: classes/controllers/FrmFormsController.php:963
457
+ #: classes/helpers/FrmFormsHelper.php:1317
458
  msgid "My Templates"
459
  msgstr ""
460
 
630
  msgid "Default Plain"
631
  msgstr ""
632
 
633
+ #: classes/controllers/FrmFormsController.php:1445
634
+ #: classes/helpers/FrmFormsHelper.php:539
635
+ #: classes/views/frm-forms/new-form-overlay.php:46
636
+ #: classes/views/frm-forms/new-form-overlay.php:47
637
+ msgid "Form Name"
638
+ msgstr ""
639
+
640
+ #: classes/controllers/FrmFormsController.php:1582
641
  msgid "No forms were specified"
642
  msgstr ""
643
 
644
+ #: classes/controllers/FrmFormsController.php:1691
645
  msgid "There was a problem duplicating the form"
646
  msgstr ""
647
 
648
+ #: classes/controllers/FrmFormsController.php:1702
649
  msgid "Abnormal HTML characters prevented your form from saving correctly"
650
  msgstr ""
651
 
652
+ #: classes/controllers/FrmFormsController.php:1817
653
  #: classes/helpers/FrmFormsHelper.php:57
654
  #: classes/helpers/FrmFormsHelper.php:112
655
  #: classes/helpers/FrmFormsHelper.php:166
656
+ #: classes/helpers/FrmFormsHelper.php:1088
657
  #: classes/helpers/FrmFormsListHelper.php:319
658
  #: classes/views/frm-forms/create-template-from-an-existing-form.php:25
659
  #: classes/views/styles/manage.php:59
662
  msgid "(no title)"
663
  msgstr ""
664
 
665
+ #: classes/controllers/FrmFormsController.php:1883
666
+ #: classes/controllers/FrmFormsController.php:1905
667
  msgid "Please select a valid form"
668
  msgstr ""
669
 
670
+ #: classes/controllers/FrmFormsController.php:2139
671
  msgid "Please wait while you are redirected."
672
  msgstr ""
673
 
674
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
675
+ #: classes/controllers/FrmFormsController.php:2174
676
  msgid "%1$sClick here%2$s if you are not automatically redirected."
677
  msgstr ""
678
 
679
+ #: classes/controllers/FrmFormsController.php:2534
680
  #: classes/helpers/FrmAppHelper.php:1395
681
  #: classes/views/frm-forms/settings-advanced.php:93
682
  msgid "Select a Page"
893
  #: classes/controllers/FrmSMTPController.php:322
894
  #: classes/models/FrmPluginSearch.php:306
895
  #: classes/views/addons/settings.php:31
896
+ #: js/formidable_admin.js:5924
897
  msgid "Activate"
898
  msgstr ""
899
 
945
  msgstr ""
946
 
947
  #: classes/controllers/FrmStylesController.php:402
948
+ #: classes/helpers/FrmFormsHelper.php:543
949
  #: classes/views/frm-forms/settings-advanced.php:27
950
  msgid "Form Description"
951
  msgstr ""
955
  msgstr ""
956
 
957
  #: classes/controllers/FrmStylesController.php:404
958
+ #: classes/helpers/FrmFormsHelper.php:503
959
  #: classes/views/frm-fields/back-end/field-description.php:8
960
  msgid "Field Description"
961
  msgstr ""
1268
 
1269
  #: classes/helpers/FrmAppHelper.php:2822
1270
  #: classes/helpers/FrmListHelper.php:412
1271
+ #: js/formidable_admin.js:4083
1272
  msgid "Heads up"
1273
  msgstr ""
1274
 
1369
  msgstr ""
1370
 
1371
  #: classes/helpers/FrmAppHelper.php:2852
1372
+ #: classes/helpers/FrmFormsHelper.php:1551
1373
  msgid "See the list of reserved words in WordPress."
1374
  msgstr ""
1375
 
1795
  msgstr ""
1796
 
1797
  #: classes/helpers/FrmCSVExportHelper.php:346
1798
+ #: classes/helpers/FrmFormsHelper.php:1274
1799
  #: classes/helpers/FrmFormsListHelper.php:346
1800
  msgid "Draft"
1801
  msgstr ""
1886
  msgstr ""
1887
 
1888
  #: classes/helpers/FrmEntriesListHelper.php:319
1889
+ #: classes/helpers/FrmFormsHelper.php:1196
1890
  #: classes/helpers/FrmFormsListHelper.php:133
1891
  #: classes/views/frm-form-actions/form_action.php:25
1892
  #: js/formidable_admin.js:2033
3154
  msgid "(ID %d)"
3155
  msgstr ""
3156
 
3157
+ #: classes/helpers/FrmFormsHelper.php:491
3158
  msgid "Field ID"
3159
  msgstr ""
3160
 
3161
+ #: classes/helpers/FrmFormsHelper.php:495
3162
  #: classes/views/frm-fields/back-end/settings.php:304
3163
  msgid "Field Key"
3164
  msgstr ""
3165
 
3166
+ #: classes/helpers/FrmFormsHelper.php:499
3167
  msgid "Field Name"
3168
  msgstr ""
3169
 
3170
+ #: classes/helpers/FrmFormsHelper.php:507
3171
  #: classes/views/frm-fields/back-end/settings.php:277
3172
  msgid "Label Position"
3173
  msgstr ""
3174
 
3175
+ #: classes/helpers/FrmFormsHelper.php:511
3176
  msgid "Required Label"
3177
  msgstr ""
3178
 
3179
+ #: classes/helpers/FrmFormsHelper.php:515
3180
  msgid "Input Field"
3181
  msgstr ""
3182
 
3183
+ #: classes/helpers/FrmFormsHelper.php:519
3184
  msgid "Single Option"
3185
  msgstr ""
3186
 
3187
+ #: classes/helpers/FrmFormsHelper.php:520
3188
  msgid "Show a single radio or checkbox option by replacing 1 with the order of the option"
3189
  msgstr ""
3190
 
3191
+ #: classes/helpers/FrmFormsHelper.php:524
3192
  msgid "Hide Option Label"
3193
  msgstr ""
3194
 
3195
+ #: classes/helpers/FrmFormsHelper.php:528
3196
  msgid "Required Class"
3197
  msgstr ""
3198
 
3199
+ #: classes/helpers/FrmFormsHelper.php:529
3200
  msgid "Add class name if field is required"
3201
  msgstr ""
3202
 
3203
+ #: classes/helpers/FrmFormsHelper.php:533
3204
  msgid "Error Class"
3205
  msgstr ""
3206
 
3207
+ #: classes/helpers/FrmFormsHelper.php:534
3208
  msgid "Add class name if field has an error on form submit"
3209
  msgstr ""
3210
 
3211
+ #: classes/helpers/FrmFormsHelper.php:547
 
 
 
 
 
 
3212
  #: classes/views/frm-forms/settings-advanced.php:20
3213
  msgid "Form Key"
3214
  msgstr ""
3215
 
3216
+ #: classes/helpers/FrmFormsHelper.php:551
3217
  msgid "Delete Entry Link"
3218
  msgstr ""
3219
 
3220
+ #: classes/helpers/FrmFormsHelper.php:556
3221
  msgid "Button Label"
3222
  msgstr ""
3223
 
3224
+ #: classes/helpers/FrmFormsHelper.php:560
3225
  msgid "Button Hook"
3226
  msgstr ""
3227
 
3228
+ #: classes/helpers/FrmFormsHelper.php:1056
3229
  msgid "Create Form from Template"
3230
  msgstr ""
3231
 
3232
+ #: classes/helpers/FrmFormsHelper.php:1062
3233
  msgid "Duplicate Form"
3234
  msgstr ""
3235
 
3236
+ #: classes/helpers/FrmFormsHelper.php:1183
3237
  msgid "Restore from Trash"
3238
  msgstr ""
3239
 
3240
+ #: classes/helpers/FrmFormsHelper.php:1184
3241
  #: classes/helpers/FrmFormsListHelper.php:124
3242
  msgid "Restore"
3243
  msgstr ""
3244
 
3245
+ #: classes/helpers/FrmFormsHelper.php:1188
3246
  msgid "Move Form to Trash"
3247
  msgstr ""
3248
 
3249
+ #: classes/helpers/FrmFormsHelper.php:1189
3250
+ #: classes/helpers/FrmFormsHelper.php:1275
3251
  #: classes/helpers/FrmFormsListHelper.php:158
3252
  msgid "Trash"
3253
  msgstr ""
3254
 
3255
+ #: classes/helpers/FrmFormsHelper.php:1192
3256
  msgid "Do you want to move this form to the trash?"
3257
  msgstr ""
3258
 
3259
+ #: classes/helpers/FrmFormsHelper.php:1195
3260
  #: classes/helpers/FrmFormsListHelper.php:128
3261
  msgid "Delete Permanently"
3262
  msgstr ""
3263
 
3264
+ #: classes/helpers/FrmFormsHelper.php:1198
3265
  msgid "Are you sure you want to delete this form and all its entries?"
3266
  msgstr ""
3267
 
3268
+ #: classes/helpers/FrmFormsHelper.php:1200
3269
  msgid "This will permanently delete the form and all its entries. This is irreversible. Are you sure you want to continue?"
3270
  msgstr ""
3271
 
3272
+ #: classes/helpers/FrmFormsHelper.php:1211
3273
  #: classes/models/FrmField.php:199
3274
  msgid "Total"
3275
  msgstr ""
3276
 
3277
+ #: classes/helpers/FrmFormsHelper.php:1212
3278
  msgid "Add this to a read-only field to display the text in bold without a border or background."
3279
  msgstr ""
3280
 
3281
+ #: classes/helpers/FrmFormsHelper.php:1215
3282
  msgid "Big Total"
3283
  msgstr ""
3284
 
3285
+ #: classes/helpers/FrmFormsHelper.php:1216
3286
  msgid "Add this to a read-only field to display the text in large, bold text without a border or background."
3287
  msgstr ""
3288
 
3289
+ #: classes/helpers/FrmFormsHelper.php:1219
3290
  msgid "Scroll Box"
3291
  msgstr ""
3292
 
3293
+ #: classes/helpers/FrmFormsHelper.php:1220
3294
  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."
3295
  msgstr ""
3296
 
3297
+ #: classes/helpers/FrmFormsHelper.php:1223
3298
  #: classes/models/fields/FrmFieldName.php:36
3299
  msgid "First"
3300
  msgstr ""
3301
 
3302
+ #: classes/helpers/FrmFormsHelper.php:1224
3303
  msgid "Add this to the first field in each row along with a width. ie frm_first frm4"
3304
  msgstr ""
3305
 
3306
+ #: classes/helpers/FrmFormsHelper.php:1226
3307
  #: classes/helpers/FrmStylesHelper.php:113
3308
  msgid "Right"
3309
  msgstr ""
3310
 
3311
+ #: classes/helpers/FrmFormsHelper.php:1227
3312
  msgid "First Grid Row"
3313
  msgstr ""
3314
 
3315
+ #: classes/helpers/FrmFormsHelper.php:1228
3316
  msgid "Even Grid Row"
3317
  msgstr ""
3318
 
3319
+ #: classes/helpers/FrmFormsHelper.php:1229
3320
  msgid "Odd Grid Row"
3321
  msgstr ""
3322
 
3323
+ #: classes/helpers/FrmFormsHelper.php:1231
3324
  msgid "Color Block"
3325
  msgstr ""
3326
 
3327
+ #: classes/helpers/FrmFormsHelper.php:1232
3328
  msgid "Add a background color to the field or section."
3329
  msgstr ""
3330
 
3331
+ #: classes/helpers/FrmFormsHelper.php:1235
3332
  msgid "Capitalize"
3333
  msgstr ""
3334
 
3335
+ #: classes/helpers/FrmFormsHelper.php:1236
3336
  msgid "Automatically capitalize the first letter in each word."
3337
  msgstr ""
3338
 
3339
+ #: classes/helpers/FrmFormsHelper.php:1276
3340
  msgid "Published"
3341
  msgstr ""
3342
 
3343
+ #: classes/helpers/FrmFormsHelper.php:1361
3344
  msgid "Create Form"
3345
  msgstr ""
3346
 
3347
+ #: classes/helpers/FrmFormsHelper.php:1369
3348
  msgid "Renew"
3349
  msgstr ""
3350
 
3351
+ #: classes/helpers/FrmFormsHelper.php:1433
3352
  msgid "License plan required:"
3353
  msgstr ""
3354
 
3355
+ #: classes/helpers/FrmFormsHelper.php:1550
3356
  msgid "Is this intentional?"
3357
  msgstr ""
3358
 
3359
  #. translators: %s: the name of a single parameter in the redirect URL
3360
+ #: classes/helpers/FrmFormsHelper.php:1560
3361
  msgid "The redirect URL is using the parameter \"%s\", which is reserved by WordPress. "
3362
  msgstr ""
3363
 
3364
  #. translators: %s: the names of two or more parameters in the redirect URL, separated by commas
3365
+ #: classes/helpers/FrmFormsHelper.php:1566
3366
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
3367
  msgstr ""
3368
 
4011
  msgstr ""
4012
 
4013
  #. translators: %1$s: Form name, %2$s: Site name
4014
+ #: classes/models/FrmEmail.php:341
4015
  msgid "%1$s Form submitted on %2$s"
4016
  msgstr ""
4017
 
4018
+ #: classes/models/FrmEmail.php:381
4019
  #: classes/views/frm-entries/sidebar-shared.php:74
4020
  msgid "User Information"
4021
  msgstr ""
4022
 
4023
+ #: classes/models/FrmEmail.php:383
4024
+ #: classes/models/FrmEntryValues.php:260
4025
  msgid "User-Agent (Browser/OS)"
4026
  msgstr ""
4027
 
4028
+ #: classes/models/FrmEmail.php:384
4029
+ #: classes/models/FrmEntryValues.php:264
4030
  msgid "Referrer"
4031
  msgstr ""
4032
 
4033
+ #: classes/models/FrmEmail.php:400
4034
  #: classes/models/FrmEntryValues.php:256
4035
  msgid "IP Address"
4036
  msgstr ""
4288
  msgid "Hide this suggestion"
4289
  msgstr ""
4290
 
4291
+ #: classes/models/FrmPluginSearch.php:354
4292
  msgid "This suggestion was made by Formidable Forms, the form builder and application plugin already installed on your site."
4293
  msgstr ""
4294
 
4624
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4625
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4626
  #: classes/views/shared/admin-header.php:11
4627
+ #: js/formidable_admin.js:8043
4628
  msgid "Close"
4629
  msgstr ""
4630
 
6629
  msgid "Save"
6630
  msgstr ""
6631
 
6632
+ #: js/formidable_admin.js:3997
6633
  msgid "Merge into row"
6634
  msgstr ""
6635
 
6636
  #. translators: %1$s: Number of fields that are selected to be deleted.
6637
+ #: js/formidable_admin.js:4085
6638
  msgid "Are you sure you want to delete these %1$s selected fields?"
6639
  msgstr ""
6640
 
6641
+ #: js/formidable_admin.js:5209
6642
  msgid "Duplicate option value \"%s\" detected"
6643
  msgstr ""
6644
 
6645
+ #: js/formidable_admin.js:7310
6646
  msgid "Ready Made Solution"
6647
  msgstr ""
6648
 
6649
+ #: js/formidable_admin.js:7313
6650
  msgid "Check all applications"
6651
  msgstr ""
6652
 
6653
+ #: js/formidable_admin.js:8028
6654
  msgid "Save and Reload"
6655
  msgstr ""
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === Formidable Forms - Contact Form, Survey, Quiz, Calculator & Custom Form Builder ===
2
  Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Form Builder for WordPress
3
- Contributors: formidableforms, sswells, srwells
4
  Tags: forms, form builder, survey, free, custom form, contact form, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, drag and drop, mailchimp form
5
  Requires at least: 5.2
6
  Tested up to: 6.0.2
7
  Requires PHP: 5.6
8
- Stable tag: 5.4.5
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag and drop form builder for surveys, quizzes, and more.
11
 
@@ -440,6 +440,15 @@ Using our Zapier integration, you can easily connect your website with over 1000
440
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
441
 
442
  == Changelog ==
 
 
 
 
 
 
 
 
 
443
  = 5.4.5 =
444
  * New: Added support for several new language options for datepicker localization and for reCAPTCHA.
445
  * New: Updated deprecated code in Elementor widget for better compatibility with new versions of Elementor.
1
  === Formidable Forms - Contact Form, Survey, Quiz, Calculator & Custom Form Builder ===
2
  Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Form Builder for WordPress
3
+ Contributors: formidableforms, sswells, srwells, smub
4
  Tags: forms, form builder, survey, free, custom form, contact form, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, drag and drop, mailchimp form
5
  Requires at least: 5.2
6
  Tested up to: 6.0.2
7
  Requires PHP: 5.6
8
+ Stable tag: 5.5
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag and drop form builder for surveys, quizzes, and more.
11
 
440
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
441
 
442
  == Changelog ==
443
+ = 5.5 =
444
+ * New: Email actions and success messages now support [form_name] shortcodes.
445
+ * Fix: Prevent a fatal error when running a weekly cron job because of an expected WordPress function was unavailable.
446
+ * Fix: Prevent a warning when viewing an entry that was created from a post with missing information about browser and referer.
447
+ * Fix: Arrows in dropdown fields were appearing at the top of the select field instead of being centered in Astra.
448
+ * Fix: Fixed a couple admin side RTL styling issues.
449
+ * Fix: Selecting multiple fields with the shift key was not properly selecting the fields in-between when the first selected item was not a group.
450
+ * Autocomplete attributes in custom HTML will now be ignored if the field also has an autocomplete attribute set to avoid multiple attributes with the same key.
451
+
452
  = 5.4.5 =
453
  * New: Added support for several new language options for datepicker localization and for reCAPTCHA.
454
  * New: Updated deprecated code in Elementor widget for better compatibility with new versions of Elementor.