Formidable Forms – Form Builder for WordPress - Version 5.0.13

Version Description

  • FrmAppHelper::jquery_ui_base_url and an unused dropdown view file have been deprecated.
  • Security: Back end form settings will now always filter on render when the DISALLOW_UNFILTERED_HTML constant is on.
  • Security: Added additional sanitizing when saving a custom style, added additional filtering to icons, and improved how some content is escaped.
  • New: Added a new frm_disallow_unfiltered_html filter that will always filter back form settings without having to set the DISALLOW_UNFILTERED_HTML constant.
  • New: A name field will always be used when sending comment author information to Akismet if one is set to avoid false positives that could cause another field value to possibly get sent instead.
  • Fix: When importing a grid or table view, [/if x] and [/foreach x] shortcodes were not properly being replaced.
  • Fix: Too much was being stripped from custom submit button HTML for underpriveleged users or when disallowing unfiltered html.
  • Fix: Too many calls were being made to Akismet for forms with multiple pages.
  • Fix: A conflict with WooCommerce was sometimes triggering an error when checking for addon updates.
  • Fix: The comment author information sent to Akismet was not getting set if the author information was set in a name field.
Download this release

Release Info

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

Code changes from version 5.0.12 to 5.0.13

Files changed (80) hide show
  1. classes/controllers/FrmEntriesController.php +7 -7
  2. classes/controllers/FrmFieldsController.php +1 -1
  3. classes/controllers/FrmFormsController.php +20 -21
  4. classes/controllers/FrmSMTPController.php +4 -4
  5. classes/controllers/FrmStylesController.php +1 -0
  6. classes/controllers/FrmWelcomeController.php +1 -1
  7. classes/helpers/FrmAppHelper.php +258 -55
  8. classes/helpers/FrmCSVExportHelper.php +2 -2
  9. classes/helpers/FrmEntriesHelper.php +17 -24
  10. classes/helpers/FrmEntriesListHelper.php +2 -2
  11. classes/helpers/FrmFieldsHelper.php +19 -15
  12. classes/helpers/FrmFormsHelper.php +13 -11
  13. classes/helpers/FrmListHelper.php +13 -13
  14. classes/helpers/FrmStylesHelper.php +9 -29
  15. classes/helpers/FrmXMLHelper.php +1 -1
  16. classes/models/FrmAddon.php +9 -3
  17. classes/models/FrmDb.php +3 -3
  18. classes/models/FrmEntry.php +3 -3
  19. classes/models/FrmEntryMeta.php +4 -4
  20. classes/models/FrmEntryValidate.php +175 -37
  21. classes/models/FrmField.php +1 -1
  22. classes/models/FrmFieldFormHtml.php +2 -2
  23. classes/models/FrmForm.php +8 -5
  24. classes/models/FrmFormAction.php +2 -1
  25. classes/models/FrmMigrate.php +7 -7
  26. classes/models/FrmNotification.php +1 -1
  27. classes/models/FrmSolution.php +1 -1
  28. classes/models/FrmStyle.php +40 -6
  29. classes/models/fields/FrmFieldCaptcha.php +2 -1
  30. classes/models/fields/FrmFieldCombo.php +2 -5
  31. classes/models/fields/FrmFieldDefault.php +2 -2
  32. classes/models/fields/FrmFieldTextarea.php +3 -3
  33. classes/models/fields/FrmFieldType.php +3 -3
  34. classes/models/fields/FrmFieldUserID.php +1 -1
  35. classes/views/frm-entries/direct.php +1 -1
  36. classes/views/frm-entries/errors.php +1 -1
  37. classes/views/frm-entries/form.php +4 -4
  38. classes/views/frm-entries/new.php +2 -2
  39. classes/views/frm-entries/show.php +1 -1
  40. classes/views/frm-entries/sidebar-shared.php +4 -4
  41. classes/views/frm-fields/back-end/ajax-field-placeholder.php +1 -1
  42. classes/views/frm-fields/back-end/dropdown-field.php +11 -32
  43. classes/views/frm-fields/back-end/field-choices.php +1 -1
  44. classes/views/frm-fields/back-end/field-description.php +1 -1
  45. classes/views/frm-fields/back-end/html-content.php +1 -1
  46. classes/views/frm-fields/back-end/radio-field.php +2 -2
  47. classes/views/frm-fields/back-end/settings.php +2 -2
  48. classes/views/frm-fields/front-end/checkbox-field.php +2 -2
  49. classes/views/frm-fields/front-end/combo-field/combo-field.php +10 -15
  50. classes/views/frm-fields/front-end/dropdown-field.php +1 -1
  51. classes/views/frm-fields/front-end/radio-field.php +2 -2
  52. classes/views/frm-fields/input.php +1 -1
  53. classes/views/frm-form-actions/_action_icon.php +2 -4
  54. classes/views/frm-form-actions/_email_settings.php +1 -1
  55. classes/views/frm-form-actions/settings.php +1 -3
  56. classes/views/frm-forms/add_field.php +3 -3
  57. classes/views/frm-forms/add_field_links.php +1 -1
  58. classes/views/frm-forms/settings-advanced.php +2 -2
  59. classes/views/frm-forms/settings-html.php +4 -4
  60. classes/views/frm-settings/form.php +1 -1
  61. classes/views/frm-settings/tabs.php +1 -1
  62. classes/views/inbox/list.php +2 -2
  63. classes/views/shared/admin-header.php +1 -1
  64. classes/views/shared/errors.php +5 -5
  65. classes/views/shared/form-nav.php +1 -1
  66. classes/views/shared/upgrade_overlay.php +1 -1
  67. classes/views/solutions/_import.php +2 -2
  68. classes/views/styles/custom_css.php +1 -1
  69. classes/views/styles/show.php +1 -1
  70. classes/views/xml/forms_xml.php +12 -12
  71. classes/views/xml/posts_xml.php +9 -9
  72. classes/widgets/FrmShowForm.php +4 -4
  73. css/_single_theme.css.php +5 -5
  74. css/custom_theme.css.php +9 -9
  75. deprecated/FrmDeprecated.php +5 -19
  76. deprecated/FrmEDD_SL_Plugin_Updater.php +5 -5
  77. formidable.php +1 -1
  78. js/formidable_admin.js +0 -37
  79. languages/formidable.pot +568 -568
  80. readme.txt +14 -9
classes/controllers/FrmEntriesController.php CHANGED
@@ -406,7 +406,7 @@ class FrmEntriesController {
406
  if ( $pagenum > $total_pages && $total_pages > 0 ) {
407
  $url = add_query_arg( 'paged', $total_pages );
408
  if ( headers_sent() ) {
409
- echo FrmAppHelper::js_redirect( $url ); // WPCS: XSS ok.
410
  } else {
411
  wp_redirect( esc_url_raw( $url ) );
412
  }
@@ -417,7 +417,7 @@ class FrmEntriesController {
417
  $message = __( 'Your import is complete', 'formidable' );
418
  }
419
 
420
- require( FrmAppHelper::plugin_path() . '/classes/views/frm-entries/list.php' );
421
  }
422
 
423
  private static function get_delete_form_time( $form, &$errors ) {
@@ -491,7 +491,7 @@ class FrmEntriesController {
491
 
492
  public static function process_entry( $errors = '', $ajax = false ) {
493
  $form_id = FrmAppHelper::get_post_param( 'form_id', '', 'absint' );
494
- if ( FrmAppHelper::is_admin() || empty( $_POST ) || empty( $form_id ) || ! isset( $_POST['item_key'] ) ) {
495
  return;
496
  }
497
 
@@ -514,7 +514,7 @@ class FrmEntriesController {
514
  }
515
 
516
  if ( $errors == '' && ! $ajax ) {
517
- $errors = FrmEntryValidate::validate( wp_unslash( $_POST ) );
518
  }
519
 
520
  /**
@@ -530,9 +530,9 @@ class FrmEntriesController {
530
  if ( empty( $errors ) ) {
531
  $_POST['frm_skip_cookie'] = 1;
532
  $do_success = false;
533
- if ( $params['action'] == 'create' ) {
534
  if ( apply_filters( 'frm_continue_to_create', true, $form_id ) && ! isset( $frm_vars['created_entries'][ $form_id ]['entry_id'] ) ) {
535
- $frm_vars['created_entries'][ $form_id ]['entry_id'] = FrmEntry::create( $_POST );
536
 
537
  $params['id'] = $frm_vars['created_entries'][ $form_id ]['entry_id'];
538
  $do_success = true;
@@ -543,7 +543,7 @@ class FrmEntriesController {
543
  if ( $do_success ) {
544
  FrmFormsController::maybe_trigger_redirect( $form, $params, array( 'ajax' => $ajax ) );
545
  }
546
- unset( $_POST['frm_skip_cookie'] );
547
  }
548
  }
549
 
406
  if ( $pagenum > $total_pages && $total_pages > 0 ) {
407
  $url = add_query_arg( 'paged', $total_pages );
408
  if ( headers_sent() ) {
409
+ FrmAppHelper::js_redirect( $url, true );
410
  } else {
411
  wp_redirect( esc_url_raw( $url ) );
412
  }
417
  $message = __( 'Your import is complete', 'formidable' );
418
  }
419
 
420
+ require FrmAppHelper::plugin_path() . '/classes/views/frm-entries/list.php';
421
  }
422
 
423
  private static function get_delete_form_time( $form, &$errors ) {
491
 
492
  public static function process_entry( $errors = '', $ajax = false ) {
493
  $form_id = FrmAppHelper::get_post_param( 'form_id', '', 'absint' );
494
+ if ( FrmAppHelper::is_admin() || empty( $_POST ) || empty( $form_id ) || ! isset( $_POST['item_key'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
495
  return;
496
  }
497
 
514
  }
515
 
516
  if ( $errors == '' && ! $ajax ) {
517
+ $errors = FrmEntryValidate::validate( wp_unslash( $_POST ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
518
  }
519
 
520
  /**
530
  if ( empty( $errors ) ) {
531
  $_POST['frm_skip_cookie'] = 1;
532
  $do_success = false;
533
+ if ( $params['action'] === 'create' ) {
534
  if ( apply_filters( 'frm_continue_to_create', true, $form_id ) && ! isset( $frm_vars['created_entries'][ $form_id ]['entry_id'] ) ) {
535
+ $frm_vars['created_entries'][ $form_id ]['entry_id'] = FrmEntry::create( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
536
 
537
  $params['id'] = $frm_vars['created_entries'][ $form_id ]['entry_id'];
538
  $do_success = true;
543
  if ( $do_success ) {
544
  FrmFormsController::maybe_trigger_redirect( $form, $params, array( 'ajax' => $ajax ) );
545
  }
546
+ unset( $_POST['frm_skip_cookie'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
547
  }
548
  }
549
 
classes/controllers/FrmFieldsController.php CHANGED
@@ -444,7 +444,7 @@ class FrmFieldsController {
444
  $add_html = ' ' . implode( ' ', $add_html ) . ' ';
445
 
446
  if ( $echo ) {
447
- echo $add_html; // WPCS: XSS ok.
448
  }
449
 
450
  return $add_html;
444
  $add_html = ' ' . implode( ' ', $add_html ) . ' ';
445
 
446
  if ( $echo ) {
447
+ echo $add_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
448
  }
449
 
450
  return $add_html;
classes/controllers/FrmFormsController.php CHANGED
@@ -130,8 +130,8 @@ class FrmFormsController {
130
 
131
  $id = FrmAppHelper::get_param( 'id', '', 'get', 'absint' );
132
 
133
- $errors = FrmForm::validate( $_POST );
134
- $warnings = FrmFormsHelper::check_for_warnings( $_POST );
135
 
136
  if ( count( $errors ) > 0 ) {
137
  return self::get_settings_vars( $id, $errors, compact( 'warnings' ) );
@@ -141,9 +141,9 @@ class FrmFormsController {
141
 
142
  $antispam_was_on = self::antispam_was_on( $id );
143
 
144
- FrmForm::update( $id, $_POST );
145
 
146
- $antispam_is_on = ! empty( $_POST['options']['antispam'] );
147
  if ( $antispam_is_on !== $antispam_was_on ) {
148
  FrmAntiSpam::clear_caches();
149
  }
@@ -164,7 +164,7 @@ class FrmFormsController {
164
 
165
  public static function update( $values = array() ) {
166
  if ( empty( $values ) ) {
167
- $values = $_POST;
168
  }
169
 
170
  // Set radio button and checkbox meta equal to "other" value.
@@ -196,7 +196,7 @@ class FrmFormsController {
196
  }
197
 
198
  if ( defined( 'DOING_AJAX' ) ) {
199
- wp_die( FrmAppHelper::kses( $message, array( 'a' ) ) ); // WPCS: XSS ok.
200
  }
201
 
202
  return self::get_edit_vars( $id, array(), $message );
@@ -267,7 +267,7 @@ class FrmFormsController {
267
  * @since 3.0
268
  */
269
  public static function show_page_preview() {
270
- echo self::page_preview(); // WPCS: XSS ok.
271
  }
272
 
273
  public static function preview() {
@@ -646,8 +646,8 @@ class FrmFormsController {
646
  $menu_name = FrmAppHelper::get_menu_name();
647
  $icon = apply_filters( 'frm_media_icon', FrmAppHelper::svg_logo() );
648
  echo '<a href="#TB_inline?width=50&height=50&inlineId=frm_insert_form" class="thickbox button add_media frm_insert_form" title="' . esc_attr__( 'Add forms and content', 'formidable' ) . '">' .
649
- FrmAppHelper::kses( $icon, 'all' ) .
650
- ' ' . esc_html( $menu_name ) . '</a>'; // WPCS: XSS ok.
651
  }
652
  }
653
 
@@ -1368,7 +1368,7 @@ class FrmFormsController {
1368
  FrmAppHelper::permission_check( 'frm_view_forms' );
1369
  check_ajax_referer( 'frm_ajax', 'nonce' );
1370
 
1371
- echo FrmEntriesController::show_entry_shortcode( // WPCS: XSS ok.
1372
  array(
1373
  'form_id' => FrmAppHelper::get_post_param( 'form_id', '', 'absint' ),
1374
  'default_email' => true,
@@ -1465,11 +1465,11 @@ class FrmFormsController {
1465
  $vars = array();
1466
  FrmAppHelper::include_svg();
1467
 
1468
- if ( isset( $_POST['frm_compact_fields'] ) ) {
1469
  FrmAppHelper::permission_check( 'frm_edit_forms' );
1470
 
1471
  // Javascript needs to be allowed in some field settings.
1472
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
1473
  $json_vars = htmlspecialchars_decode( nl2br( str_replace( '&quot;', '"', wp_unslash( $_POST['frm_compact_fields'] ) ) ) );
1474
  $json_vars = json_decode( $json_vars, true );
1475
  if ( empty( $json_vars ) ) {
@@ -1483,9 +1483,9 @@ class FrmFormsController {
1483
  } else {
1484
  $vars = FrmAppHelper::json_to_array( $json_vars );
1485
  $action = $vars[ $action ];
1486
- unset( $_REQUEST['frm_compact_fields'], $_POST['frm_compact_fields'] );
1487
- $_REQUEST = array_merge( $_REQUEST, $vars );
1488
- $_POST = array_merge( $_POST, $_REQUEST );
1489
  }
1490
  } else {
1491
  $action = FrmAppHelper::get_param( $action, '', 'get', 'sanitize_title' );
@@ -1746,7 +1746,7 @@ class FrmFormsController {
1746
  }
1747
 
1748
  private static function is_viewable_draft_form( $form ) {
1749
- return $form->status == 'draft' && current_user_can( 'frm_edit_forms' ) && ! FrmAppHelper::is_preview_page();
1750
  }
1751
 
1752
  public static function get_form( $form, $title, $description, $atts = array() ) {
@@ -1776,7 +1776,7 @@ class FrmFormsController {
1776
  $reset = false;
1777
  $pass_args = compact( 'form', 'fields', 'errors', 'title', 'description', 'reset' );
1778
 
1779
- $handle_process_here = $params['action'] == 'create' && $params['posted_form_id'] == $form->id && $_POST;
1780
 
1781
  if ( ! $handle_process_here ) {
1782
  do_action( 'frm_display_form_action', $params, $fields, $form, $title, $description );
@@ -1817,7 +1817,7 @@ class FrmFormsController {
1817
  private static function get_saved_errors( $form, $params ) {
1818
  global $frm_vars;
1819
 
1820
- if ( $params['posted_form_id'] == $form->id && $_POST && isset( $frm_vars['created_entries'][ $form->id ] ) ) {
1821
  $errors = $frm_vars['created_entries'][ $form->id ]['errors'];
1822
  } else {
1823
  $errors = array();
@@ -1917,7 +1917,7 @@ class FrmFormsController {
1917
  $old_post = $post;
1918
  $post = $page;
1919
  $content = apply_filters( 'frm_content', $page->post_content, $args['form'], $args['entry_id'] );
1920
- echo apply_filters( 'the_content', $content ); // WPCS: XSS ok.
1921
  $post = $old_post;
1922
  }
1923
  }
@@ -1955,8 +1955,7 @@ class FrmFormsController {
1955
  die(); // do not use wp_die or redirect fails
1956
  } else {
1957
  add_filter( 'frm_use_wpautop', '__return_true' );
1958
-
1959
- echo $redirect_msg; // WPCS: XSS ok.
1960
  echo "<script type='text/javascript'>window.onload = function(){setTimeout(window.location='" . esc_url_raw( $success_url ) . "', 8000);}</script>";
1961
  }
1962
  }
130
 
131
  $id = FrmAppHelper::get_param( 'id', '', 'get', 'absint' );
132
 
133
+ $errors = FrmForm::validate( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
134
+ $warnings = FrmFormsHelper::check_for_warnings( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
135
 
136
  if ( count( $errors ) > 0 ) {
137
  return self::get_settings_vars( $id, $errors, compact( 'warnings' ) );
141
 
142
  $antispam_was_on = self::antispam_was_on( $id );
143
 
144
+ FrmForm::update( $id, $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
145
 
146
+ $antispam_is_on = ! empty( $_POST['options']['antispam'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
147
  if ( $antispam_is_on !== $antispam_was_on ) {
148
  FrmAntiSpam::clear_caches();
149
  }
164
 
165
  public static function update( $values = array() ) {
166
  if ( empty( $values ) ) {
167
+ $values = $_POST; // phpcs:ignore WordPress.Security.NonceVerification.Missing
168
  }
169
 
170
  // Set radio button and checkbox meta equal to "other" value.
196
  }
197
 
198
  if ( defined( 'DOING_AJAX' ) ) {
199
+ wp_die( FrmAppHelper::kses( $message, array( 'a' ) ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
200
  }
201
 
202
  return self::get_edit_vars( $id, array(), $message );
267
  * @since 3.0
268
  */
269
  public static function show_page_preview() {
270
+ echo self::page_preview(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
271
  }
272
 
273
  public static function preview() {
646
  $menu_name = FrmAppHelper::get_menu_name();
647
  $icon = apply_filters( 'frm_media_icon', FrmAppHelper::svg_logo() );
648
  echo '<a href="#TB_inline?width=50&height=50&inlineId=frm_insert_form" class="thickbox button add_media frm_insert_form" title="' . esc_attr__( 'Add forms and content', 'formidable' ) . '">' .
649
+ FrmAppHelper::kses( $icon, 'all' ) . // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
650
+ ' ' . esc_html( $menu_name ) . '</a>';
651
  }
652
  }
653
 
1368
  FrmAppHelper::permission_check( 'frm_view_forms' );
1369
  check_ajax_referer( 'frm_ajax', 'nonce' );
1370
 
1371
+ echo FrmEntriesController::show_entry_shortcode( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1372
  array(
1373
  'form_id' => FrmAppHelper::get_post_param( 'form_id', '', 'absint' ),
1374
  'default_email' => true,
1465
  $vars = array();
1466
  FrmAppHelper::include_svg();
1467
 
1468
+ if ( isset( $_POST['frm_compact_fields'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
1469
  FrmAppHelper::permission_check( 'frm_edit_forms' );
1470
 
1471
  // Javascript needs to be allowed in some field settings.
1472
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
1473
  $json_vars = htmlspecialchars_decode( nl2br( str_replace( '&quot;', '"', wp_unslash( $_POST['frm_compact_fields'] ) ) ) );
1474
  $json_vars = json_decode( $json_vars, true );
1475
  if ( empty( $json_vars ) ) {
1483
  } else {
1484
  $vars = FrmAppHelper::json_to_array( $json_vars );
1485
  $action = $vars[ $action ];
1486
+ unset( $_REQUEST['frm_compact_fields'], $_POST['frm_compact_fields'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
1487
+ $_REQUEST = array_merge( $_REQUEST, $vars ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
1488
+ $_POST = array_merge( $_POST, $_REQUEST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
1489
  }
1490
  } else {
1491
  $action = FrmAppHelper::get_param( $action, '', 'get', 'sanitize_title' );
1746
  }
1747
 
1748
  private static function is_viewable_draft_form( $form ) {
1749
+ return $form->status === 'draft' && current_user_can( 'frm_edit_forms' ) && ! FrmAppHelper::is_preview_page();
1750
  }
1751
 
1752
  public static function get_form( $form, $title, $description, $atts = array() ) {
1776
  $reset = false;
1777
  $pass_args = compact( 'form', 'fields', 'errors', 'title', 'description', 'reset' );
1778
 
1779
+ $handle_process_here = $params['action'] === 'create' && $params['posted_form_id'] == $form->id && $_POST; // phpcs:ignore WordPress.Security.NonceVerification.Missing
1780
 
1781
  if ( ! $handle_process_here ) {
1782
  do_action( 'frm_display_form_action', $params, $fields, $form, $title, $description );
1817
  private static function get_saved_errors( $form, $params ) {
1818
  global $frm_vars;
1819
 
1820
+ if ( $params['posted_form_id'] == $form->id && $_POST && isset( $frm_vars['created_entries'][ $form->id ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
1821
  $errors = $frm_vars['created_entries'][ $form->id ]['errors'];
1822
  } else {
1823
  $errors = array();
1917
  $old_post = $post;
1918
  $post = $page;
1919
  $content = apply_filters( 'frm_content', $page->post_content, $args['form'], $args['entry_id'] );
1920
+ echo apply_filters( 'the_content', $content ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1921
  $post = $old_post;
1922
  }
1923
  }
1955
  die(); // do not use wp_die or redirect fails
1956
  } else {
1957
  add_filter( 'frm_use_wpautop', '__return_true' );
1958
+ echo FrmAppHelper::maybe_kses( $redirect_msg ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
1959
  echo "<script type='text/javascript'>window.onload = function(){setTimeout(window.location='" . esc_url_raw( $success_url ) . "', 8000);}</script>";
1960
  }
1961
  }
classes/controllers/FrmSMTPController.php CHANGED
@@ -221,14 +221,14 @@ class FrmSMTPController {
221
  <span><a rel="%4$s" class="button button-primary frm-button-primary %5$s" aria-label="%6$s">%7$s</a></span>
222
  </div>
223
  </section>',
224
- FrmAppHelper::kses( $icon, array( 'a', 'i', 'span', 'use', 'svg' ) ), // WPCS: XSS ok.
225
  esc_html( $label ),
226
  esc_html__( 'Install WP Mail SMTP from the WordPress.org plugin repository.', 'formidable' ),
227
  esc_attr( $step['plugin'] ),
228
  esc_attr( $step['button_class'] ),
229
  esc_attr( $step['button_action'] ),
230
  esc_html( $step['button_text'] )
231
- ); // WPCS: XSS ok.
232
  }
233
 
234
  /**
@@ -266,13 +266,13 @@ class FrmSMTPController {
266
  </div>
267
  </section>',
268
  esc_attr( $step['section_class'] ),
269
- FrmAppHelper::kses( $icon, array( 'a', 'i', 'span', 'use', 'svg' ) ), // WPCS: XSS ok.
270
  esc_html__( 'Set Up WP Mail SMTP', 'formidable' ),
271
  esc_html__( 'Select and configure your mailer.', 'formidable' ),
272
  esc_url( admin_url( $this->config['smtp_settings'] ) ),
273
  esc_attr( $step['button_class'] ),
274
  esc_html( $step['button_text'] )
275
- ); // WPCS: XSS ok.
276
  }
277
 
278
  /**
221
  <span><a rel="%4$s" class="button button-primary frm-button-primary %5$s" aria-label="%6$s">%7$s</a></span>
222
  </div>
223
  </section>',
224
+ FrmAppHelper::kses( $icon, array( 'a', 'i', 'span', 'use', 'svg' ) ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
225
  esc_html( $label ),
226
  esc_html__( 'Install WP Mail SMTP from the WordPress.org plugin repository.', 'formidable' ),
227
  esc_attr( $step['plugin'] ),
228
  esc_attr( $step['button_class'] ),
229
  esc_attr( $step['button_action'] ),
230
  esc_html( $step['button_text'] )
231
+ );
232
  }
233
 
234
  /**
266
  </div>
267
  </section>',
268
  esc_attr( $step['section_class'] ),
269
+ FrmAppHelper::kses( $icon, array( 'a', 'i', 'span', 'use', 'svg' ) ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
270
  esc_html__( 'Set Up WP Mail SMTP', 'formidable' ),
271
  esc_html__( 'Select and configure your mailer.', 'formidable' ),
272
  esc_url( admin_url( $this->config['smtp_settings'] ) ),
273
  esc_attr( $step['button_class'] ),
274
  esc_html( $step['button_text'] )
275
+ );
276
  }
277
 
278
  /**
classes/controllers/FrmStylesController.php CHANGED
@@ -267,6 +267,7 @@ class FrmStylesController {
267
 
268
  private static function manage_styles() {
269
  $style_nonce = FrmAppHelper::get_post_param( 'frm_manage_style', '', 'sanitize_text_field' );
 
270
  if ( ! $_POST || ! isset( $_POST['style'] ) || ! wp_verify_nonce( $style_nonce, 'frm_manage_style_nonce' ) ) {
271
  return self::manage();
272
  }
267
 
268
  private static function manage_styles() {
269
  $style_nonce = FrmAppHelper::get_post_param( 'frm_manage_style', '', 'sanitize_text_field' );
270
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
271
  if ( ! $_POST || ! isset( $_POST['style'] ) || ! wp_verify_nonce( $style_nonce, 'frm_manage_style_nonce' ) ) {
272
  return self::manage();
273
  }
classes/controllers/FrmWelcomeController.php CHANGED
@@ -42,7 +42,7 @@ class FrmWelcomeController {
42
  }
43
 
44
  // Only do this for single site installs.
45
- if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // WPCS: CSRF ok.
46
  return;
47
  }
48
 
42
  }
43
 
44
  // Only do this for single site installs.
45
+ if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
46
  return;
47
  }
48
 
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '5.0.12';
15
 
16
  /**
17
  * @since 1.07.02
@@ -169,7 +169,7 @@ class FrmAppHelper {
169
  * @since 4.0
170
  */
171
  public static function show_logo( $atts = array() ) {
172
- echo self::kses( self::svg_logo( $atts ), 'all' ); // WPCS: XSS ok.
173
  }
174
 
175
  /**
@@ -192,7 +192,7 @@ class FrmAppHelper {
192
  $icon = '<div style="height:39px"></div>';
193
  }
194
  }
195
- echo self::kses( $icon, 'all' ); // WPCS: XSS ok.
196
  }
197
 
198
  /**
@@ -410,10 +410,9 @@ class FrmAppHelper {
410
  $param = $params[0];
411
  }
412
 
413
- if ( $src == 'get' ) {
414
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
415
- $value = isset( $_POST[ $param ] ) ? wp_unslash( $_POST[ $param ] ) : ( isset( $_GET[ $param ] ) ? wp_unslash( $_GET[ $param ] ) : $default );
416
- if ( ! isset( $_POST[ $param ] ) && isset( $_GET[ $param ] ) && ! is_array( $value ) ) {
417
  // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
418
  $value = htmlspecialchars_decode( wp_unslash( $_GET[ $param ] ) );
419
  }
@@ -497,19 +496,19 @@ class FrmAppHelper {
497
  $value = $args['default'];
498
  if ( $args['type'] == 'get' ) {
499
  if ( $_GET && isset( $_GET[ $args['param'] ] ) ) {
500
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
501
  $value = wp_unslash( $_GET[ $args['param'] ] );
502
  }
503
  } elseif ( $args['type'] == 'post' ) {
504
- if ( isset( $_POST[ $args['param'] ] ) ) {
505
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
506
  $value = wp_unslash( $_POST[ $args['param'] ] );
507
  if ( $args['serialized'] === true && is_serialized_string( $value ) && is_serialized( $value ) ) {
508
  self::unserialize_or_decode( $value );
509
  }
510
  }
511
  } else {
512
- if ( isset( $_REQUEST[ $args['param'] ] ) ) {
513
  // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
514
  $value = wp_unslash( $_REQUEST[ $args['param'] ] );
515
  }
@@ -645,6 +644,72 @@ class FrmAppHelper {
645
  return wp_kses( $value, $allowed_html );
646
  }
647
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
648
  /**
649
  * @since 2.05.03
650
  */
@@ -672,13 +737,14 @@ class FrmAppHelper {
672
  );
673
 
674
  return array(
675
- 'a' => array(
676
- 'class' => true,
677
- 'href' => true,
678
- 'id' => true,
679
- 'rel' => true,
680
- 'target' => true,
681
- 'title' => true,
 
682
  ),
683
  'abbr' => array(
684
  'title' => true,
@@ -704,6 +770,7 @@ class FrmAppHelper {
704
  'id' => true,
705
  'title' => true,
706
  'style' => true,
 
707
  ),
708
  'dl' => array(),
709
  'dt' => array(),
@@ -768,17 +835,19 @@ class FrmAppHelper {
768
  'viewbox' => true,
769
  ),
770
  'svg' => array(
771
- 'class' => true,
772
- 'id' => true,
773
- 'xmlns' => true,
774
- 'viewbox' => true,
775
- 'width' => true,
776
- 'height' => true,
777
- 'style' => true,
778
- 'fill' => true,
 
 
779
  ),
780
  'use' => array(
781
- 'href' => true,
782
  'xlink:href' => true,
783
  ),
784
  'ul' => $allow_class,
@@ -861,18 +930,78 @@ class FrmAppHelper {
861
  $icon = explode( ' ', $icon );
862
  $icon = reset( $icon );
863
  }
864
- $icon = '<svg class="frmsvg' . esc_attr( $class ) . '"' . $html_atts . '>
865
  <use xlink:href="#' . esc_attr( $icon ) . '" />
866
  </svg>';
867
  }
868
 
869
  if ( $echo ) {
870
- echo $icon; // WPCS: XSS ok.
871
  } else {
872
  return $icon;
873
  }
874
  }
875
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
876
  /**
877
  * Include svg images.
878
  *
@@ -886,17 +1015,44 @@ class FrmAppHelper {
886
  * Convert an associative array to HTML values.
887
  *
888
  * @since 4.0.02
 
 
889
  * @param array $atts
890
- * @return string
891
- */
892
- public static function array_to_html_params( $atts ) {
893
- $html = '';
894
- if ( ! empty( $atts ) ) {
895
- foreach ( $atts as $key => $value ) {
896
- $html .= ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
 
 
897
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
898
  }
899
- return $html;
900
  }
901
 
902
  /**
@@ -1541,17 +1697,6 @@ class FrmAppHelper {
1541
  return $val;
1542
  }
1543
 
1544
- /**
1545
- * @since 2.0
1546
- * @return string The base Google APIS url for the current version of jQuery UI
1547
- */
1548
- public static function jquery_ui_base_url() {
1549
- $url = 'http' . ( is_ssl() ? 's' : '' ) . '://ajax.googleapis.com/ajax/libs/jqueryui/' . self::script_version( 'jquery-ui-core', '1.11.4' );
1550
- $url = apply_filters( 'frm_jquery_ui_base_url', $url );
1551
-
1552
- return $url;
1553
- }
1554
-
1555
  /**
1556
  * @param string $handle
1557
  */
@@ -1574,8 +1719,18 @@ class FrmAppHelper {
1574
  return $ver;
1575
  }
1576
 
1577
- public static function js_redirect( $url ) {
1578
- return '<script type="text/javascript">window.location="' . esc_url_raw( $url ) . '"</script>';
 
 
 
 
 
 
 
 
 
 
1579
  }
1580
 
1581
  public static function get_user_id_param( $user_id ) {
@@ -1733,7 +1888,7 @@ class FrmAppHelper {
1733
  }
1734
 
1735
  if ( empty( $post_values ) ) {
1736
- $post_values = wp_unslash( $_POST );
1737
  }
1738
 
1739
  $values = array(
@@ -1753,9 +1908,9 @@ class FrmAppHelper {
1753
 
1754
  self::prepare_field_arrays( $fields, $record, $values, array_merge( $args, compact( 'default', 'post_values' ) ) );
1755
 
1756
- if ( $table == 'entries' ) {
1757
  $values = FrmEntriesHelper::setup_edit_vars( $values, $record );
1758
- } elseif ( $table == 'forms' ) {
1759
  $values = FrmFormsHelper::setup_edit_vars( $values, $record, $post_values );
1760
  }
1761
 
@@ -2564,7 +2719,7 @@ class FrmAppHelper {
2564
  'updating' => __( 'Please wait while your site updates.', 'formidable' ),
2565
  'no_save_warning' => __( 'Warning: There is no way to retrieve unsaved entries.', 'formidable' ),
2566
  'private_label' => __( 'Private', 'formidable' ),
2567
- 'jquery_ui_url' => self::jquery_ui_base_url(),
2568
  'pro_url' => is_callable( 'FrmProAppHelper::plugin_url' ) ? FrmProAppHelper::plugin_url() : '',
2569
  'no_licenses' => __( 'No new licenses were found', 'formidable' ),
2570
  'unmatched_parens' => __( 'This calculation has at least one unmatched ( ) { } [ ].', 'formidable' ),
@@ -2983,12 +3138,32 @@ class FrmAppHelper {
2983
  * @return bool true if the current user is allowed to save unfiltered HTML.
2984
  */
2985
  public static function allow_unfiltered_html() {
2986
- if ( defined( 'DISALLOW_UNFILTERED_HTML' ) && DISALLOW_UNFILTERED_HTML ) {
2987
  return false;
2988
  }
2989
  return current_user_can( 'unfiltered_html' );
2990
  }
2991
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2992
  /**
2993
  * @since 5.0.07
2994
  *
@@ -3012,6 +3187,23 @@ class FrmAppHelper {
3012
  return $values;
3013
  }
3014
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3015
  /**
3016
  * @since 4.07
3017
  * @deprecated 4.09.01
@@ -3238,4 +3430,15 @@ class FrmAppHelper {
3238
  public static function prepend_and_or_where( $starts_with = ' WHERE ', $where = '' ) {
3239
  return FrmDeprecated::prepend_and_or_where( $starts_with, $where );
3240
  }
 
 
 
 
 
 
 
 
 
 
 
3241
  }
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '5.0.13';
15
 
16
  /**
17
  * @since 1.07.02
169
  * @since 4.0
170
  */
171
  public static function show_logo( $atts = array() ) {
172
+ echo self::kses( self::svg_logo( $atts ), 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
173
  }
174
 
175
  /**
192
  $icon = '<div style="height:39px"></div>';
193
  }
194
  }
195
+ echo self::kses( $icon, 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
196
  }
197
 
198
  /**
410
  $param = $params[0];
411
  }
412
 
413
+ if ( $src === 'get' ) {
414
+ $value = isset( $_POST[ $param ] ) ? wp_unslash( $_POST[ $param ] ) : ( isset( $_GET[ $param ] ) ? wp_unslash( $_GET[ $param ] ) : $default ); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
415
+ if ( ! isset( $_POST[ $param ] ) && isset( $_GET[ $param ] ) && ! is_array( $value ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
 
416
  // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
417
  $value = htmlspecialchars_decode( wp_unslash( $_GET[ $param ] ) );
418
  }
496
  $value = $args['default'];
497
  if ( $args['type'] == 'get' ) {
498
  if ( $_GET && isset( $_GET[ $args['param'] ] ) ) {
499
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
500
  $value = wp_unslash( $_GET[ $args['param'] ] );
501
  }
502
  } elseif ( $args['type'] == 'post' ) {
503
+ if ( isset( $_POST[ $args['param'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
504
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
505
  $value = wp_unslash( $_POST[ $args['param'] ] );
506
  if ( $args['serialized'] === true && is_serialized_string( $value ) && is_serialized( $value ) ) {
507
  self::unserialize_or_decode( $value );
508
  }
509
  }
510
  } else {
511
+ if ( isset( $_REQUEST[ $args['param'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
512
  // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
513
  $value = wp_unslash( $_REQUEST[ $args['param'] ] );
514
  }
644
  return wp_kses( $value, $allowed_html );
645
  }
646
 
647
+ /**
648
+ * The regular kses function strips [button_action] from submit button HTML.
649
+ *
650
+ * @since 5.0.13
651
+ *
652
+ * @param string $html
653
+ * @return string
654
+ */
655
+ public static function kses_submit_button( $html ) {
656
+ $included_button_action = false !== strpos( $html, '[button_action]' );
657
+ $included_back_hook = false !== strpos( $html, '[back_hook]' );
658
+ $included_draft_hook = false !== strpos( $html, '[draft_hook]' );
659
+ add_filter( 'safe_style_css', 'FrmAppHelper::allow_visibility_style' );
660
+ add_filter( 'frm_striphtml_allowed_tags', 'FrmAppHelper::add_allowed_submit_button_tags' );
661
+ $html = self::kses( $html, 'all' );
662
+ remove_filter( 'safe_style_css', 'FrmAppHelper::allow_visibility_style' );
663
+ remove_filter( 'frm_striphtml_allowed_tags', 'FrmAppHelper::add_allowed_submit_button_tags' );
664
+ if ( $included_button_action ) {
665
+ if ( false !== strpos( $html, '<input type="submit"' ) ) {
666
+ $pattern = '/(<input type="submit")([^>]*)(\/>)/';
667
+ $html = preg_replace( $pattern, '$1$2[button_action] $3', $html, 1 );
668
+ } else {
669
+ $pattern = '/(<button)(.*)(class=")(.*)(frm_button_submit)(.*)(")(.*)([^>]+)(>)/';
670
+ $html = preg_replace( $pattern, '$1$2$3$4$5$6$7 [button_action]$8$9$10', $html, 1 );
671
+ }
672
+ }
673
+ if ( $included_back_hook ) {
674
+ $html = str_replace( 'class="frm_prev_page"', 'class="frm_prev_page" [back_hook]', $html );
675
+ }
676
+ if ( $included_draft_hook ) {
677
+ $html = str_replace( 'class="frm_save_draft"', 'class="frm_save_draft" [draft_hook]', $html );
678
+ }
679
+ return $html;
680
+ }
681
+
682
+ /**
683
+ * @since 5.0.13
684
+ *
685
+ * @param array $allowed_attr
686
+ * @return array
687
+ */
688
+ public static function allow_visibility_style( $allowed_attr ) {
689
+ $allowed_attr[] = 'visibility';
690
+ return $allowed_attr;
691
+ }
692
+
693
+ /**
694
+ * @since 5.0.13
695
+ *
696
+ * @param array $allowed_html
697
+ * @return array
698
+ */
699
+ public static function add_allowed_submit_button_tags( $allowed_html ) {
700
+ $allowed_html['input'] = array(
701
+ 'type' => true,
702
+ 'value' => true,
703
+ 'formnovalidate' => true,
704
+ 'name' => true,
705
+ 'class' => true,
706
+ );
707
+ $allowed_html['button']['formnovalidate'] = true;
708
+ $allowed_html['button']['name'] = true;
709
+ $allowed_html['img']['style'] = true;
710
+ return $allowed_html;
711
+ }
712
+
713
  /**
714
  * @since 2.05.03
715
  */
737
  );
738
 
739
  return array(
740
+ 'a' => array(
741
+ 'class' => true,
742
+ 'href' => true,
743
+ 'id' => true,
744
+ 'rel' => true,
745
+ 'target' => true,
746
+ 'title' => true,
747
+ 'tabindex' => true,
748
  ),
749
  'abbr' => array(
750
  'title' => true,
770
  'id' => true,
771
  'title' => true,
772
  'style' => true,
773
+ 'role' => true,
774
  ),
775
  'dl' => array(),
776
  'dt' => array(),
835
  'viewbox' => true,
836
  ),
837
  'svg' => array(
838
+ 'class' => true,
839
+ 'id' => true,
840
+ 'xmlns' => true,
841
+ 'viewbox' => true,
842
+ 'width' => true,
843
+ 'height' => true,
844
+ 'style' => true,
845
+ 'fill' => true,
846
+ 'aria-label' => true,
847
+ 'aria-hidden' => true,
848
  ),
849
  'use' => array(
850
+ 'href' => true,
851
  'xlink:href' => true,
852
  ),
853
  'ul' => $allow_class,
930
  $icon = explode( ' ', $icon );
931
  $icon = reset( $icon );
932
  }
933
+ $icon = '<svg class="frmsvg' . esc_attr( $class ) . '"' . $html_atts . '>
934
  <use xlink:href="#' . esc_attr( $icon ) . '" />
935
  </svg>';
936
  }
937
 
938
  if ( $echo ) {
939
+ echo self::kses_icon( $icon ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
940
  } else {
941
  return $icon;
942
  }
943
  }
944
 
945
+ /**
946
+ * Run kses for icons. It needs to add a few filters first in order to preserve some custom style values.
947
+ *
948
+ * @since 5.0.13
949
+ *
950
+ * @param string $icon
951
+ * @return string
952
+ */
953
+ public static function kses_icon( $icon ) {
954
+ add_filter( 'safe_style_css', 'FrmAppHelper::allow_vars_in_styles' );
955
+ add_filter( 'safecss_filter_attr_allow_css', 'FrmAppHelper::allow_style', 10, 2 );
956
+ $icon = self::kses( $icon, 'all' );
957
+ remove_filter( 'safe_style_css', 'FrmAppHelper::allow_vars_in_styles' );
958
+ remove_filter( 'safecss_filter_attr_allow_css', 'FrmAppHelper::allow_style' );
959
+ return $icon;
960
+ }
961
+
962
+ /**
963
+ * @since 5.0.13
964
+ *
965
+ * @param array $allowed_attr
966
+ * @return array
967
+ */
968
+ public static function allow_vars_in_styles( $allowed_attr ) {
969
+ $allowed_attr[] = '--primary-hover';
970
+ return $allowed_attr;
971
+ }
972
+
973
+ /**
974
+ * @since 5.0.13
975
+ *
976
+ * @param bool $allow_css
977
+ * @param string $css_string
978
+ */
979
+ public static function allow_style( $allow_css, $css_string ) {
980
+ if ( ! $allow_css && 0 === strpos( $css_string, '--primary-hover:' ) ) {
981
+ $split = explode( ':', $css_string, 2 );
982
+ $allow_css = 2 === count( $split ) && self::is_a_valid_color( $split[1] );
983
+ }
984
+ return $allow_css;
985
+ }
986
+
987
+ /**
988
+ * @since 5.0.13
989
+ *
990
+ * @param string $value
991
+ * @return bool
992
+ */
993
+ private static function is_a_valid_color( $value ) {
994
+ $match = 0;
995
+ if ( 0 === strpos( $value, 'rgba(' ) ) {
996
+ $match = preg_match( '/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(?:\.\d+)?)\)$/', $value );
997
+ } elseif ( 0 === strpos( $value, 'rgb(' ) ) {
998
+ $match = preg_match( '/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/', $value );
999
+ } elseif ( 0 === strpos( $value, '#' ) ) {
1000
+ $match = preg_match( '/^#([a-f0-9]{6}|[a-f0-9]{3})\b$/', $value );
1001
+ }
1002
+ return (bool) $match;
1003
+ }
1004
+
1005
  /**
1006
  * Include svg images.
1007
  *
1015
  * Convert an associative array to HTML values.
1016
  *
1017
  * @since 4.0.02
1018
+ * @since 5.0.13 added $echo parameter.
1019
+ *
1020
  * @param array $atts
1021
+ * @param bool $echo
1022
+ * @return string|void
1023
+ */
1024
+ public static function array_to_html_params( $atts, $echo = false ) {
1025
+ $callback = function() use ( $atts ) {
1026
+ if ( $atts ) {
1027
+ foreach ( $atts as $key => $value ) {
1028
+ echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
1029
+ }
1030
  }
1031
+ };
1032
+ return self::clip( $callback, $echo );
1033
+ }
1034
+
1035
+ /**
1036
+ * Call an echo function and either echo it or return the result as a string.
1037
+ *
1038
+ * @since 5.0.13
1039
+ *
1040
+ * @param Closure $echo_function
1041
+ * @param bool $echo
1042
+ * @return string|void
1043
+ */
1044
+ public static function clip( $echo_function, $echo = false ) {
1045
+ if ( ! $echo ) {
1046
+ ob_start();
1047
+ }
1048
+
1049
+ $echo_function();
1050
+
1051
+ if ( ! $echo ) {
1052
+ $return = ob_get_contents();
1053
+ ob_end_clean();
1054
+ return $return;
1055
  }
 
1056
  }
1057
 
1058
  /**
1697
  return $val;
1698
  }
1699
 
 
 
 
 
 
 
 
 
 
 
 
1700
  /**
1701
  * @param string $handle
1702
  */
1719
  return $ver;
1720
  }
1721
 
1722
+ /**
1723
+ * @since 5.0.13 added $echo param.
1724
+ *
1725
+ * @param string $url
1726
+ * @param bool $echo
1727
+ * @return string|void
1728
+ */
1729
+ public static function js_redirect( $url, $echo = false ) {
1730
+ $callback = function() use ( $url ) {
1731
+ echo '<script type="text/javascript">window.location="' . esc_url_raw( $url ) . '"</script>';
1732
+ };
1733
+ return self::clip( $callback, $echo );
1734
  }
1735
 
1736
  public static function get_user_id_param( $user_id ) {
1888
  }
1889
 
1890
  if ( empty( $post_values ) ) {
1891
+ $post_values = wp_unslash( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
1892
  }
1893
 
1894
  $values = array(
1908
 
1909
  self::prepare_field_arrays( $fields, $record, $values, array_merge( $args, compact( 'default', 'post_values' ) ) );
1910
 
1911
+ if ( $table === 'entries' ) {
1912
  $values = FrmEntriesHelper::setup_edit_vars( $values, $record );
1913
+ } elseif ( $table === 'forms' ) {
1914
  $values = FrmFormsHelper::setup_edit_vars( $values, $record, $post_values );
1915
  }
1916
 
2719
  'updating' => __( 'Please wait while your site updates.', 'formidable' ),
2720
  'no_save_warning' => __( 'Warning: There is no way to retrieve unsaved entries.', 'formidable' ),
2721
  'private_label' => __( 'Private', 'formidable' ),
2722
+ 'jquery_ui_url' => '',
2723
  'pro_url' => is_callable( 'FrmProAppHelper::plugin_url' ) ? FrmProAppHelper::plugin_url() : '',
2724
  'no_licenses' => __( 'No new licenses were found', 'formidable' ),
2725
  'unmatched_parens' => __( 'This calculation has at least one unmatched ( ) { } [ ].', 'formidable' ),
3138
  * @return bool true if the current user is allowed to save unfiltered HTML.
3139
  */
3140
  public static function allow_unfiltered_html() {
3141
+ if ( self::should_never_allow_unfiltered_html() ) {
3142
  return false;
3143
  }
3144
  return current_user_can( 'unfiltered_html' );
3145
  }
3146
 
3147
+ /**
3148
+ * @since 5.0.13
3149
+ *
3150
+ * @return bool
3151
+ */
3152
+ public static function should_never_allow_unfiltered_html() {
3153
+ if ( defined( 'DISALLOW_UNFILTERED_HTML' ) && DISALLOW_UNFILTERED_HTML ) {
3154
+ return true;
3155
+ }
3156
+
3157
+ /**
3158
+ * Formidable will check DISALLOW_UNFILTERED_HTML to determine if some form HTML should be filtered or not.
3159
+ * In many cases, scripts are added intentionally to forms and will not be stripped if DISALLOW_UNFILTERED_HTML is not set.
3160
+ * It is also possible to filter Formidable without defining DISALLOW_UNFILTERED_HTML, with add_filter( 'frm_disallow_unfiltered_html', '__return_true' );
3161
+ *
3162
+ * @since 5.0.13
3163
+ */
3164
+ return apply_filters( 'frm_disallow_unfiltered_html', false );
3165
+ }
3166
+
3167
  /**
3168
  * @since 5.0.07
3169
  *
3187
  return $values;
3188
  }
3189
 
3190
+ /**
3191
+ * Some back end fields allow privleged users to add scripts.
3192
+ * A site that uses the DISALLOW_UNFILTERED_HTML always remove scripts on echo.
3193
+ *
3194
+ * @since 5.0.13
3195
+ *
3196
+ * @param string $value
3197
+ * @param array|string $allowed 'all' for everything included as defaults
3198
+ * @return string
3199
+ */
3200
+ public static function maybe_kses( $value, $allowed = 'all' ) {
3201
+ if ( self::should_never_allow_unfiltered_html() ) {
3202
+ $value = self::kses( $value, $allowed );
3203
+ }
3204
+ return $value;
3205
+ }
3206
+
3207
  /**
3208
  * @since 4.07
3209
  * @deprecated 4.09.01
3430
  public static function prepend_and_or_where( $starts_with = ' WHERE ', $where = '' ) {
3431
  return FrmDeprecated::prepend_and_or_where( $starts_with, $where );
3432
  }
3433
+
3434
+ /**
3435
+ * @since 2.0
3436
+ * @deprecated 5.0.13
3437
+ *
3438
+ * @return string The base Google APIS url for the current version of jQuery UI
3439
+ */
3440
+ public static function jquery_ui_base_url() {
3441
+ _deprecated_function( __FUNCTION__, '5.0.13', 'FrmProAppHelper::jquery_ui_base_url' );
3442
+ return is_callable( 'FrmProAppHelper::jquery_ui_base_url' ) ? FrmProAppHelper::jquery_ui_base_url() : '';
3443
+ }
3444
  }
classes/helpers/FrmCSVExportHelper.php CHANGED
@@ -71,7 +71,7 @@ class FrmCSVExportHelper {
71
  self::get_csv_format();
72
  self::$charset = get_option( 'blog_charset' );
73
 
74
- $col_sep = ( isset( $_POST['csv_col_sep'] ) && ! empty( $_POST['csv_col_sep'] ) ) ? sanitize_text_field( wp_unslash( $_POST['csv_col_sep'] ) ) : self::$column_separator;
75
 
76
  self::$column_separator = apply_filters( 'frm_csv_column_sep', $col_sep );
77
  }
@@ -505,7 +505,7 @@ class FrmCSVExportHelper {
505
  $val = str_replace( array( "\r\n", "\r", "\n" ), self::$line_break, $val );
506
  }
507
 
508
- echo $sep . '"' . $val . '"'; // WPCS: XSS ok.
509
  $sep = self::$column_separator;
510
 
511
  unset( $k, $row );
71
  self::get_csv_format();
72
  self::$charset = get_option( 'blog_charset' );
73
 
74
+ $col_sep = ( isset( $_POST['csv_col_sep'] ) && ! empty( $_POST['csv_col_sep'] ) ) ? sanitize_text_field( wp_unslash( $_POST['csv_col_sep'] ) ) : self::$column_separator; // phpcs:ignore WordPress.Security.NonceVerification.Missing
75
 
76
  self::$column_separator = apply_filters( 'frm_csv_column_sep', $col_sep );
77
  }
505
  $val = str_replace( array( "\r\n", "\r", "\n" ), self::$line_break, $val );
506
  }
507
 
508
+ echo $sep . '"' . $val . '"'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
509
  $sep = self::$column_separator;
510
 
511
  unset( $k, $row );
classes/helpers/FrmEntriesHelper.php CHANGED
@@ -114,13 +114,13 @@ class FrmEntriesHelper {
114
  */
115
  public static function value_is_posted( $field, $args ) {
116
  $value_is_posted = false;
117
- if ( $_POST ) {
118
  $repeating = isset( $args['repeating'] ) && $args['repeating'];
119
  if ( $repeating ) {
120
- if ( isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field->id ] ) ) {
121
  $value_is_posted = true;
122
  }
123
- } elseif ( isset( $_POST['item_meta'][ $field->id ] ) ) {
124
  $value_is_posted = true;
125
  }
126
  }
@@ -322,30 +322,27 @@ class FrmEntriesHelper {
322
  * @since 4.01
323
  */
324
  private static function set_parent_field_posted_value( $field, $value, $args ) {
325
- if ( isset( $_POST['item_meta'][ $args['parent_field_id'] ] ) &&
326
- is_array( $_POST['item_meta'][ $args['parent_field_id'] ] ) ) {
327
-
328
- if ( ! isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] ) ||
329
- ! is_array( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] ) ) {
330
- $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] = array();
331
  }
332
  } else {
333
  // All of the section was probably removed.
334
- $_POST['item_meta'][ $args['parent_field_id'] ] = array();
335
- $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] = array();
336
  }
337
 
338
- $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field->id ] = $value;
339
  }
340
 
341
  public static function get_posted_value( $field, &$value, $args ) {
342
  if ( is_array( $field ) ) {
343
  $field_id = $field['id'];
344
  $field_obj = FrmFieldFactory::get_field_object( $field['id'] );
345
- } else if ( is_object( $field ) ) {
346
  $field_id = $field->id;
347
  $field_obj = FrmFieldFactory::get_field_object( $field );
348
- } else if ( is_numeric( $field ) ) {
349
  $field_id = $field;
350
  $field_obj = FrmFieldFactory::get_field_object( $field );
351
  } else {
@@ -365,11 +362,9 @@ class FrmEntriesHelper {
365
  private static function get_posted_meta( $field_id, $args ) {
366
  if ( empty( $args['parent_field_id'] ) ) {
367
  // Sanitizing is done next.
368
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
369
- $value = isset( $_POST['item_meta'][ $field_id ] ) ? wp_unslash( $_POST['item_meta'][ $field_id ] ) : '';
370
  } else {
371
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
372
- $value = isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field_id ] ) ? wp_unslash( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field_id ] ) : '';
373
  }
374
  return $value;
375
  }
@@ -400,15 +395,14 @@ class FrmEntriesHelper {
400
  self::set_other_repeating_vals( $field, $value, $args );
401
 
402
  // Check if there are any posted "Other" values.
403
- if ( FrmField::is_option_true( $field, 'other' ) && isset( $_POST['item_meta']['other'][ $field->id ] ) ) {
404
 
405
  // Save original value.
406
  $args['temp_value'] = $value;
407
  $args['other'] = true;
408
 
409
  // Sanitizing is done next.
410
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
411
- $other_vals = wp_unslash( $_POST['item_meta']['other'][ $field->id ] );
412
  FrmAppHelper::sanitize_value( 'sanitize_text_field', $other_vals );
413
 
414
  // Set the validation value now
@@ -431,13 +425,12 @@ class FrmEntriesHelper {
431
  }
432
 
433
  // Check if there are any other posted "other" values for this field.
434
- if ( FrmField::is_option_true( $field, 'other' ) && isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ]['other'][ $field->id ] ) ) {
435
  // Save original value
436
  $args['temp_value'] = $value;
437
  $args['other'] = true;
438
 
439
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
440
- $other_vals = wp_unslash( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ]['other'][ $field->id ] );
441
  FrmAppHelper::sanitize_value( 'sanitize_text_field', $other_vals );
442
 
443
  // Set the validation value now.
114
  */
115
  public static function value_is_posted( $field, $args ) {
116
  $value_is_posted = false;
117
+ if ( $_POST ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
118
  $repeating = isset( $args['repeating'] ) && $args['repeating'];
119
  if ( $repeating ) {
120
+ if ( isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field->id ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
121
  $value_is_posted = true;
122
  }
123
+ } elseif ( isset( $_POST['item_meta'][ $field->id ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
124
  $value_is_posted = true;
125
  }
126
  }
322
  * @since 4.01
323
  */
324
  private static function set_parent_field_posted_value( $field, $value, $args ) {
325
+ if ( isset( $_POST['item_meta'][ $args['parent_field_id'] ] ) && is_array( $_POST['item_meta'][ $args['parent_field_id'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
326
+ if ( ! isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] ) || ! is_array( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
327
+ $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] = array(); // phpcs:ignore WordPress.Security.NonceVerification.Missing
 
 
 
328
  }
329
  } else {
330
  // All of the section was probably removed.
331
+ $_POST['item_meta'][ $args['parent_field_id'] ] = array(); // phpcs:ignore WordPress.Security.NonceVerification.Missing
332
+ $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ] = array(); // phpcs:ignore WordPress.Security.NonceVerification.Missing
333
  }
334
 
335
+ $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field->id ] = $value; // phpcs:ignore WordPress.Security.NonceVerification.Missing
336
  }
337
 
338
  public static function get_posted_value( $field, &$value, $args ) {
339
  if ( is_array( $field ) ) {
340
  $field_id = $field['id'];
341
  $field_obj = FrmFieldFactory::get_field_object( $field['id'] );
342
+ } elseif ( is_object( $field ) ) {
343
  $field_id = $field->id;
344
  $field_obj = FrmFieldFactory::get_field_object( $field );
345
+ } elseif ( is_numeric( $field ) ) {
346
  $field_id = $field;
347
  $field_obj = FrmFieldFactory::get_field_object( $field );
348
  } else {
362
  private static function get_posted_meta( $field_id, $args ) {
363
  if ( empty( $args['parent_field_id'] ) ) {
364
  // Sanitizing is done next.
365
+ $value = isset( $_POST['item_meta'][ $field_id ] ) ? wp_unslash( $_POST['item_meta'][ $field_id ] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
366
  } else {
367
+ $value = isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field_id ] ) ? wp_unslash( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ][ $field_id ] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
368
  }
369
  return $value;
370
  }
395
  self::set_other_repeating_vals( $field, $value, $args );
396
 
397
  // Check if there are any posted "Other" values.
398
+ if ( FrmField::is_option_true( $field, 'other' ) && isset( $_POST['item_meta']['other'][ $field->id ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
399
 
400
  // Save original value.
401
  $args['temp_value'] = $value;
402
  $args['other'] = true;
403
 
404
  // Sanitizing is done next.
405
+ $other_vals = wp_unslash( $_POST['item_meta']['other'][ $field->id ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
406
  FrmAppHelper::sanitize_value( 'sanitize_text_field', $other_vals );
407
 
408
  // Set the validation value now
425
  }
426
 
427
  // Check if there are any other posted "other" values for this field.
428
+ if ( FrmField::is_option_true( $field, 'other' ) && isset( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ]['other'][ $field->id ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
429
  // Save original value
430
  $args['temp_value'] = $value;
431
  $args['other'] = true;
432
 
433
+ $other_vals = wp_unslash( $_POST['item_meta'][ $args['parent_field_id'] ][ $args['key_pointer'] ]['other'][ $field->id ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
434
  FrmAppHelper::sanitize_value( 'sanitize_text_field', $other_vals );
435
 
436
  // Set the validation value now.
classes/helpers/FrmEntriesListHelper.php CHANGED
@@ -140,13 +140,13 @@ class FrmEntriesListHelper extends FrmListHelper {
140
 
141
  protected function extra_tablenav( $which ) {
142
  $form_id = FrmAppHelper::simple_get( 'form', 'absint' );
143
- if ( $which == 'top' && empty( $form_id ) ) {
144
  echo '<div class="alignleft actions">';
145
 
146
  // Override the referrer to prevent it from being used for the screen options.
147
  echo '<input type="hidden" name="_wp_http_referer" value="" />';
148
 
149
- echo FrmFormsHelper::forms_dropdown( 'form', $form_id, array( 'blank' => __( 'View all forms', 'formidable' ) ) ); // WPCS: XSS ok.
150
  submit_button( __( 'Filter', 'formidable' ), 'filter_action action', '', false, array( 'id' => 'post-query-submit' ) );
151
  echo '</div>';
152
  }
140
 
141
  protected function extra_tablenav( $which ) {
142
  $form_id = FrmAppHelper::simple_get( 'form', 'absint' );
143
+ if ( $which === 'top' && ! $form_id ) {
144
  echo '<div class="alignleft actions">';
145
 
146
  // Override the referrer to prevent it from being used for the screen options.
147
  echo '<input type="hidden" name="_wp_http_referer" value="" />';
148
 
149
+ FrmFormsHelper::forms_dropdown( 'form', $form_id, array( 'blank' => __( 'View all forms', 'formidable' ) ) );
150
  submit_button( __( 'Filter', 'formidable' ), 'filter_action action', '', false, array( 'id' => 'post-query-submit' ) );
151
  echo '</div>';
152
  }
classes/helpers/FrmFieldsHelper.php CHANGED
@@ -124,7 +124,7 @@ class FrmFieldsHelper {
124
  * @param array $values
125
  */
126
  private static function fill_default_field_opts( $field, array &$values ) {
127
- $check_post = FrmAppHelper::is_admin_page() && $_POST && isset( $_POST['field_options'] );
128
 
129
  $defaults = self::get_default_field_options_from_field( $field, $values );
130
  if ( ! $check_post ) {
@@ -180,20 +180,18 @@ class FrmFieldsHelper {
180
  * @param mixed $value
181
  */
182
  private static function get_posted_field_setting( $setting, &$value ) {
183
- if ( ! isset( $_POST['field_options'][ $setting ] ) ) {
184
  return;
185
  }
186
 
187
  if ( strpos( $setting, 'html' ) !== false ) {
188
  // Strip slashes from HTML but not regex or script tags.
189
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
190
- $value = wp_unslash( $_POST['field_options'][ $setting ] );
191
  } elseif ( strpos( $setting, 'format_' ) === 0 ) {
192
  // TODO: Remove stripslashes on output, and use on input only.
193
- $value = sanitize_text_field( $_POST['field_options'][ $setting ] ); // WPCS: sanitization ok.
194
  } else {
195
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
196
- $value = wp_unslash( $_POST['field_options'][ $setting ] );
197
  FrmAppHelper::sanitize_value( 'wp_kses_post', $value );
198
  }
199
  }
@@ -842,9 +840,9 @@ class FrmFieldsHelper {
842
  return null;
843
  }
844
 
845
- if ( isset( $atts['show'] ) && $atts['show'] == 'field_label' ) {
846
  $replace_with = $field->name;
847
- } elseif ( isset( $atts['show'] ) && $atts['show'] == 'description' ) {
848
  $replace_with = $field->description;
849
  } else {
850
  $replace_with = FrmEntryMeta::get_meta_value( $atts['entry'], $field->id );
@@ -1086,29 +1084,31 @@ class FrmFieldsHelper {
1086
 
1087
  // Check posted vals before checking saved values
1088
  // For fields inside repeating sections - note, don't check if $pointer is true because it will often be zero
1089
- if ( $parent && isset( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ] ) ) {
1090
  if ( FrmField::is_field_with_multiple_values( $field ) ) {
 
1091
  $other_val = isset( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ][ $opt_key ] ) ? sanitize_text_field( wp_unslash( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ][ $opt_key ] ) ) : '';
1092
  } else {
1093
- $other_val = sanitize_text_field( wp_unslash( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ] ) );
1094
  }
1095
 
1096
  return $other_val;
1097
 
1098
- } elseif ( isset( $field['id'] ) && isset( $_POST['item_meta']['other'][ $field['id'] ] ) ) {
1099
  // For normal fields
1100
 
1101
  if ( FrmField::is_field_with_multiple_values( $field ) ) {
 
1102
  $other_val = isset( $_POST['item_meta']['other'][ $field['id'] ][ $opt_key ] ) ? sanitize_text_field( wp_unslash( $_POST['item_meta']['other'][ $field['id'] ][ $opt_key ] ) ) : '';
1103
  } else {
1104
- $other_val = sanitize_text_field( wp_unslash( $_POST['item_meta']['other'][ $field['id'] ] ) );
1105
  }
1106
 
1107
  return $other_val;
1108
  }
1109
 
1110
  // For checkboxes
1111
- if ( $field['type'] == 'checkbox' && is_array( $field['value'] ) ) {
1112
  // Check if there is an "other" val in saved value and make sure the
1113
  // "other" val is not equal to the Other checkbox option
1114
  if ( isset( $field['value'][ $opt_key ] ) && $field['options'][ $opt_key ] != $field['value'][ $opt_key ] ) {
@@ -1304,10 +1304,14 @@ class FrmFieldsHelper {
1304
  $replace_with[] = '[if ' . $new . ' ';
1305
  $replace[] = '[/if ' . $old . ']';
1306
  $replace_with[] = '[/if ' . $new . ']';
 
 
1307
  $replace[] = '[foreach ' . $old . ']';
1308
  $replace_with[] = '[foreach ' . $new . ']';
1309
  $replace[] = '[/foreach ' . $old . ']';
1310
  $replace_with[] = '[/foreach ' . $new . ']';
 
 
1311
  $replace[] = '[' . $old . ']';
1312
  $replace_with[] = '[' . $new . ']';
1313
  $replace[] = '[' . $old . ' ';
@@ -1854,7 +1858,7 @@ class FrmFieldsHelper {
1854
  if ( $run_filter ) {
1855
  $field_label = apply_filters( 'frmpro_field_links', $field_label, $args['id'], $field_key );
1856
  }
1857
- echo FrmAppHelper::kses( $field_label, array( 'a', 'i', 'span', 'use', 'svg' ) ); // WPCS: XSS ok.
1858
  ?>
1859
  </li>
1860
  <?php
124
  * @param array $values
125
  */
126
  private static function fill_default_field_opts( $field, array &$values ) {
127
+ $check_post = FrmAppHelper::is_admin_page() && $_POST && isset( $_POST['field_options'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
128
 
129
  $defaults = self::get_default_field_options_from_field( $field, $values );
130
  if ( ! $check_post ) {
180
  * @param mixed $value
181
  */
182
  private static function get_posted_field_setting( $setting, &$value ) {
183
+ if ( ! isset( $_POST['field_options'][ $setting ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
184
  return;
185
  }
186
 
187
  if ( strpos( $setting, 'html' ) !== false ) {
188
  // Strip slashes from HTML but not regex or script tags.
189
+ $value = wp_unslash( $_POST['field_options'][ $setting ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
190
  } elseif ( strpos( $setting, 'format_' ) === 0 ) {
191
  // TODO: Remove stripslashes on output, and use on input only.
192
+ $value = sanitize_text_field( $_POST['field_options'][ $setting ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.NonceVerification.Missing
193
  } else {
194
+ $value = wp_unslash( $_POST['field_options'][ $setting ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
195
  FrmAppHelper::sanitize_value( 'wp_kses_post', $value );
196
  }
197
  }
840
  return null;
841
  }
842
 
843
+ if ( isset( $atts['show'] ) && $atts['show'] === 'field_label' ) {
844
  $replace_with = $field->name;
845
+ } elseif ( isset( $atts['show'] ) && $atts['show'] === 'description' ) {
846
  $replace_with = $field->description;
847
  } else {
848
  $replace_with = FrmEntryMeta::get_meta_value( $atts['entry'], $field->id );
1084
 
1085
  // Check posted vals before checking saved values
1086
  // For fields inside repeating sections - note, don't check if $pointer is true because it will often be zero
1087
+ if ( $parent && isset( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
1088
  if ( FrmField::is_field_with_multiple_values( $field ) ) {
1089
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
1090
  $other_val = isset( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ][ $opt_key ] ) ? sanitize_text_field( wp_unslash( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ][ $opt_key ] ) ) : '';
1091
  } else {
1092
+ $other_val = sanitize_text_field( wp_unslash( $_POST['item_meta'][ $parent ][ $pointer ]['other'][ $field['id'] ] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
1093
  }
1094
 
1095
  return $other_val;
1096
 
1097
+ } elseif ( isset( $field['id'] ) && isset( $_POST['item_meta']['other'][ $field['id'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
1098
  // For normal fields
1099
 
1100
  if ( FrmField::is_field_with_multiple_values( $field ) ) {
1101
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
1102
  $other_val = isset( $_POST['item_meta']['other'][ $field['id'] ][ $opt_key ] ) ? sanitize_text_field( wp_unslash( $_POST['item_meta']['other'][ $field['id'] ][ $opt_key ] ) ) : '';
1103
  } else {
1104
+ $other_val = sanitize_text_field( wp_unslash( $_POST['item_meta']['other'][ $field['id'] ] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
1105
  }
1106
 
1107
  return $other_val;
1108
  }
1109
 
1110
  // For checkboxes
1111
+ if ( $field['type'] === 'checkbox' && is_array( $field['value'] ) ) {
1112
  // Check if there is an "other" val in saved value and make sure the
1113
  // "other" val is not equal to the Other checkbox option
1114
  if ( isset( $field['value'][ $opt_key ] ) && $field['options'][ $opt_key ] != $field['value'][ $opt_key ] ) {
1304
  $replace_with[] = '[if ' . $new . ' ';
1305
  $replace[] = '[/if ' . $old . ']';
1306
  $replace_with[] = '[/if ' . $new . ']';
1307
+ $replace[] = '[\/if ' . $old . ']';
1308
+ $replace_with[] = '[\/if ' . $new . ']';
1309
  $replace[] = '[foreach ' . $old . ']';
1310
  $replace_with[] = '[foreach ' . $new . ']';
1311
  $replace[] = '[/foreach ' . $old . ']';
1312
  $replace_with[] = '[/foreach ' . $new . ']';
1313
+ $replace[] = '[\/foreach ' . $old . ']';
1314
+ $replace_with[] = '[\/foreach ' . $new . ']';
1315
  $replace[] = '[' . $old . ']';
1316
  $replace_with[] = '[' . $new . ']';
1317
  $replace[] = '[' . $old . ' ';
1858
  if ( $run_filter ) {
1859
  $field_label = apply_filters( 'frmpro_field_links', $field_label, $args['id'], $field_key );
1860
  }
1861
+ echo FrmAppHelper::kses( $field_label, array( 'a', 'i', 'span', 'use', 'svg' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1862
  ?>
1863
  </li>
1864
  <?php
classes/helpers/FrmFormsHelper.php CHANGED
@@ -48,7 +48,7 @@ class FrmFormsHelper {
48
  ?>
49
  <select name="<?php echo esc_attr( $field_name ); ?>"
50
  id="<?php echo esc_attr( $args['field_id'] ); ?>"
51
- <?php echo wp_strip_all_tags( implode( ' ', $add_html ) ); // WPCS: XSS ok. ?>>
52
  <?php if ( $args['blank'] ) { ?>
53
  <option value=""><?php echo ( $args['blank'] == 1 ) ? ' ' : '- ' . esc_attr( $args['blank'] ) . ' -'; ?></option>
54
  <?php } ?>
@@ -268,7 +268,7 @@ class FrmFormsHelper {
268
  $post_values = $values;
269
  } else {
270
  $values = array();
271
- $post_values = isset( $_POST ) ? $_POST : array();
272
  }
273
 
274
  $defaults = array(
@@ -313,7 +313,7 @@ class FrmFormsHelper {
313
  */
314
  public static function setup_edit_vars( $values, $record, $post_values = array() ) {
315
  if ( empty( $post_values ) ) {
316
- $post_values = wp_unslash( $_POST );
317
  }
318
 
319
  $values['form_key'] = isset( $post_values['form_key'] ) ? $post_values['form_key'] : $record->form_key;
@@ -427,15 +427,17 @@ BEFORE_HTML;
427
  public static function get_custom_submit( $html, $form, $submit, $form_action, $values ) {
428
  $button = self::replace_shortcodes( $html, $form, $submit, $form_action, $values );
429
  if ( ! strpos( $button, '[button_action]' ) ) {
430
- echo $button; // WPCS: XSS ok.
431
-
432
  return;
433
  }
434
 
435
  /**
436
  * @since 5.0.06
437
  */
438
- $button = apply_filters( 'frm_submit_button_html', $button, compact( 'form' ) );
 
 
 
439
  $button_parts = explode( '[button_action]', $button );
440
 
441
  $classes = apply_filters( 'frm_submit_button_class', array(), $form );
@@ -449,9 +451,9 @@ BEFORE_HTML;
449
  }
450
  }
451
 
452
- echo $button_parts[0]; // WPCS: XSS ok.
453
  do_action( 'frm_submit_button_action', $form, $form_action );
454
- echo $button_parts[1]; // WPCS: XSS ok.
455
  }
456
 
457
  /**
@@ -711,11 +713,11 @@ BEFORE_HTML;
711
  'entry_key' => true,
712
  );
713
  foreach ( $codes as $code => $show ) {
714
- if ( $code == 'form_name' ) {
715
  $replace_with = $form->name;
716
- } elseif ( $code == 'form_description' ) {
717
  $replace_with = FrmAppHelper::use_wpautop( $form->description );
718
- } elseif ( $code == 'entry_key' && isset( $_GET ) && isset( $_GET['entry'] ) ) {
719
  $replace_with = FrmAppHelper::simple_get( 'entry' );
720
  } else {
721
  $replace_with = '';
48
  ?>
49
  <select name="<?php echo esc_attr( $field_name ); ?>"
50
  id="<?php echo esc_attr( $args['field_id'] ); ?>"
51
+ <?php echo wp_strip_all_tags( implode( ' ', $add_html ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
52
  <?php if ( $args['blank'] ) { ?>
53
  <option value=""><?php echo ( $args['blank'] == 1 ) ? ' ' : '- ' . esc_attr( $args['blank'] ) . ' -'; ?></option>
54
  <?php } ?>
268
  $post_values = $values;
269
  } else {
270
  $values = array();
271
+ $post_values = isset( $_POST ) ? $_POST : array(); // phpcs:ignore WordPress.Security.NonceVerification.Missing
272
  }
273
 
274
  $defaults = array(
313
  */
314
  public static function setup_edit_vars( $values, $record, $post_values = array() ) {
315
  if ( empty( $post_values ) ) {
316
+ $post_values = wp_unslash( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
317
  }
318
 
319
  $values['form_key'] = isset( $post_values['form_key'] ) ? $post_values['form_key'] : $record->form_key;
427
  public static function get_custom_submit( $html, $form, $submit, $form_action, $values ) {
428
  $button = self::replace_shortcodes( $html, $form, $submit, $form_action, $values );
429
  if ( ! strpos( $button, '[button_action]' ) ) {
430
+ echo FrmAppHelper::maybe_kses( $button ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
 
431
  return;
432
  }
433
 
434
  /**
435
  * @since 5.0.06
436
  */
437
+ $button = apply_filters( 'frm_submit_button_html', $button, compact( 'form' ) );
438
+ if ( FrmAppHelper::should_never_allow_unfiltered_html() ) {
439
+ $button = FrmAppHelper::kses_submit_button( $button );
440
+ }
441
  $button_parts = explode( '[button_action]', $button );
442
 
443
  $classes = apply_filters( 'frm_submit_button_class', array(), $form );
451
  }
452
  }
453
 
454
+ echo $button_parts[0]; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
455
  do_action( 'frm_submit_button_action', $form, $form_action );
456
+ echo $button_parts[1]; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
457
  }
458
 
459
  /**
713
  'entry_key' => true,
714
  );
715
  foreach ( $codes as $code => $show ) {
716
+ if ( $code === 'form_name' ) {
717
  $replace_with = $form->name;
718
+ } elseif ( $code === 'form_description' ) {
719
  $replace_with = FrmAppHelper::use_wpautop( $form->description );
720
+ } elseif ( $code === 'entry_key' && isset( $_GET ) && isset( $_GET['entry'] ) ) {
721
  $replace_with = FrmAppHelper::simple_get( 'entry' );
722
  } else {
723
  $replace_with = '';
classes/helpers/FrmListHelper.php CHANGED
@@ -156,7 +156,7 @@ class FrmListHelper {
156
 
157
  public function display_rows() {
158
  foreach ( $this->items as $item ) {
159
- echo "\n\t", $this->single_row( $item ); // WPCS: XSS ok.
160
  }
161
  }
162
 
@@ -331,7 +331,7 @@ class FrmListHelper {
331
  foreach ( $views as $class => $view ) {
332
  $views[ $class ] = "\t" . '<li class="' . esc_attr( $class ) . '">' . $view;
333
  }
334
- echo implode( " |</li>\n", $views ) . "</li>\n"; // WPCS: XSS ok.
335
  echo '</ul>';
336
  }
337
 
@@ -393,7 +393,7 @@ class FrmListHelper {
393
  foreach ( $this->_actions as $name => $title ) {
394
  $class = 'edit' == $name ? ' class="hide-if-no-js"' : '';
395
 
396
- echo "\t<option value='" . esc_attr( $name ) . "'$class>" . esc_html( $title ) . "</option>\n"; // WPCS: XSS ok.
397
  }
398
 
399
  echo "</select>\n";
@@ -665,7 +665,7 @@ class FrmListHelper {
665
  }
666
  $this->_pagination = "<div class='tablenav-pages" . esc_attr( $page_class ) . "'>$output</div>";
667
 
668
- echo $this->_pagination; // WPCS: XSS ok.
669
  }
670
 
671
  private function disabled_pages( $total_pages ) {
@@ -969,7 +969,7 @@ class FrmListHelper {
969
  // Hide the labels but show the border.
970
  $column_display_name = '';
971
  }
972
- echo "<$tag $scope $id $class>$column_display_name</$tag>"; // WPCS: XSS ok.
973
  }
974
  }
975
 
@@ -993,7 +993,7 @@ class FrmListHelper {
993
  </thead>
994
  <?php } ?>
995
 
996
- <tbody id="the-list"<?php echo( $singular ? " data-wp-lists='list:" . esc_attr( $singular ) . "'" : '' ); // WPCS: XSS ok. ?>>
997
  <?php $this->display_rows_or_placeholder(); ?>
998
  </tbody>
999
 
@@ -1030,7 +1030,7 @@ class FrmListHelper {
1030
  * @param string $which
1031
  */
1032
  protected function display_tablenav( $which ) {
1033
- if ( 'top' == $which ) {
1034
  wp_nonce_field( 'bulk-' . $this->_args['plural'], '_wpnonce', false );
1035
  if ( ! $this->has_min_items( 1 ) ) {
1036
  // Don't show bulk actions if no items.
@@ -1137,7 +1137,7 @@ class FrmListHelper {
1137
  if ( 'cb' == $column_name ) {
1138
  echo '<th scope="row" class="check-column"></th>';
1139
  } elseif ( method_exists( $this, '_column_' . $column_name ) ) {
1140
- echo call_user_func( // WPCS: XSS ok.
1141
  array( $this, '_column_' . $column_name ),
1142
  $item,
1143
  $classes,
@@ -1145,13 +1145,13 @@ class FrmListHelper {
1145
  $primary
1146
  );
1147
  } elseif ( method_exists( $this, 'column_' . $column_name ) ) {
1148
- echo "<td $attributes>"; // WPCS: XSS ok.
1149
- echo call_user_func( array( $this, 'column_' . $column_name ), $item ); // WPCS: XSS ok.
1150
- echo $this->handle_row_actions( $item, $column_name, $primary ); // WPCS: XSS ok.
1151
  echo '</td>';
1152
  } else {
1153
- echo "<td $attributes>"; // WPCS: XSS ok.
1154
- echo $this->handle_row_actions( $item, $column_name, $primary ); // WPCS: XSS ok.
1155
  echo '</td>';
1156
  }
1157
  }
156
 
157
  public function display_rows() {
158
  foreach ( $this->items as $item ) {
159
+ echo "\n\t", $this->single_row( $item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
160
  }
161
  }
162
 
331
  foreach ( $views as $class => $view ) {
332
  $views[ $class ] = "\t" . '<li class="' . esc_attr( $class ) . '">' . $view;
333
  }
334
+ echo implode( " |</li>\n", $views ) . "</li>\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
335
  echo '</ul>';
336
  }
337
 
393
  foreach ( $this->_actions as $name => $title ) {
394
  $class = 'edit' == $name ? ' class="hide-if-no-js"' : '';
395
 
396
+ echo "\t<option value='" . esc_attr( $name ) . "'$class>" . esc_html( $title ) . "</option>\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
397
  }
398
 
399
  echo "</select>\n";
665
  }
666
  $this->_pagination = "<div class='tablenav-pages" . esc_attr( $page_class ) . "'>$output</div>";
667
 
668
+ echo $this->_pagination; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
669
  }
670
 
671
  private function disabled_pages( $total_pages ) {
969
  // Hide the labels but show the border.
970
  $column_display_name = '';
971
  }
972
+ echo "<$tag $scope $id $class>$column_display_name</$tag>"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
973
  }
974
  }
975
 
993
  </thead>
994
  <?php } ?>
995
 
996
+ <tbody id="the-list"<?php echo( $singular ? " data-wp-lists='list:" . esc_attr( $singular ) . "'" : '' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
997
  <?php $this->display_rows_or_placeholder(); ?>
998
  </tbody>
999
 
1030
  * @param string $which
1031
  */
1032
  protected function display_tablenav( $which ) {
1033
+ if ( 'top' === $which ) {
1034
  wp_nonce_field( 'bulk-' . $this->_args['plural'], '_wpnonce', false );
1035
  if ( ! $this->has_min_items( 1 ) ) {
1036
  // Don't show bulk actions if no items.
1137
  if ( 'cb' == $column_name ) {
1138
  echo '<th scope="row" class="check-column"></th>';
1139
  } elseif ( method_exists( $this, '_column_' . $column_name ) ) {
1140
+ echo call_user_func( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1141
  array( $this, '_column_' . $column_name ),
1142
  $item,
1143
  $classes,
1145
  $primary
1146
  );
1147
  } elseif ( method_exists( $this, 'column_' . $column_name ) ) {
1148
+ echo "<td $attributes>"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1149
+ echo call_user_func( array( $this, 'column_' . $column_name ), $item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1150
+ echo $this->handle_row_actions( $item, $column_name, $primary ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1151
  echo '</td>';
1152
  } else {
1153
+ echo "<td $attributes>"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1154
+ echo $this->handle_row_actions( $item, $column_name, $primary ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1155
  echo '</td>';
1156
  }
1157
  }
classes/helpers/FrmStylesHelper.php CHANGED
@@ -321,7 +321,7 @@ class FrmStylesHelper {
321
  }
322
  $show = empty( $defaults ) || ( $settings[ $var ] !== '' && $settings[ $var ] !== $defaults[ $var ] );
323
  if ( $show ) {
324
- echo '--' . esc_html( str_replace( '_', '-', $var ) ) . ':' . ( $var === 'font' ? FrmAppHelper::kses( $settings[ $var ] ) : esc_html( $settings[ $var ] ) ) . ';'; // WPCS: XSS ok.
325
  }
326
  }
327
  }
@@ -335,21 +335,22 @@ class FrmStylesHelper {
335
  public static function get_settings_for_output( $style ) {
336
  if ( self::previewing_style() ) {
337
 
338
- if ( isset( $_POST['frm_style_setting'] ) ) {
 
 
339
  // Sanitizing is done later.
340
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
341
- $posted = wp_unslash( $_POST['frm_style_setting'] );
342
  if ( ! is_array( $posted ) ) {
343
  $posted = json_decode( $posted, true );
344
  FrmAppHelper::format_form_data( $posted );
345
- $settings = self::sanitize_settings( $posted['frm_style_setting']['post_content'] );
346
  $style_name = sanitize_title( $posted['style_name'] );
347
  } else {
348
- $settings = self::sanitize_settings( $posted['post_content'] );
349
  $style_name = FrmAppHelper::get_post_param( 'style_name', '', 'sanitize_title' );
350
  }
351
  } else {
352
- $settings = self::sanitize_settings( wp_unslash( $_GET ) );
353
  $style_name = FrmAppHelper::get_param( 'style_name', '', 'get', 'sanitize_title' );
354
  }
355
 
@@ -389,27 +390,6 @@ class FrmStylesHelper {
389
  return $settings;
390
  }
391
 
392
- /**
393
- * @since 5.0.10
394
- *
395
- * @param array $settings
396
- * @return array
397
- */
398
- private static function sanitize_settings( $settings ) {
399
- $style = new FrmStyle();
400
- $defaults = $style->get_defaults();
401
- $valid_keys = array_keys( $defaults );
402
- $sanitized_settings = array();
403
- foreach ( $valid_keys as $key ) {
404
- if ( isset( $settings[ $key ] ) ) {
405
- $sanitized_settings[ $key ] = sanitize_text_field( $settings[ $key ] );
406
- } else {
407
- $sanitized_settings[ $key ] = $defaults[ $key ];
408
- }
409
- }
410
- return $sanitized_settings;
411
- }
412
-
413
  /**
414
  * @since 2.3
415
  */
@@ -488,7 +468,7 @@ class FrmStylesHelper {
488
  * @since 2.3
489
  */
490
  public static function previewing_style() {
491
- $ajax_change = isset( $_POST['action'] ) && $_POST['action'] === 'frm_change_styling' && isset( $_POST['frm_style_setting'] );
492
 
493
  return $ajax_change || isset( $_GET['flat'] );
494
  }
321
  }
322
  $show = empty( $defaults ) || ( $settings[ $var ] !== '' && $settings[ $var ] !== $defaults[ $var ] );
323
  if ( $show ) {
324
+ echo '--' . esc_html( str_replace( '_', '-', $var ) ) . ':' . ( $var === 'font' ? FrmAppHelper::kses( $settings[ $var ] ) : esc_html( $settings[ $var ] ) ) . ';'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
325
  }
326
  }
327
  }
335
  public static function get_settings_for_output( $style ) {
336
  if ( self::previewing_style() ) {
337
 
338
+ if ( isset( $_POST['frm_style_setting'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
339
+ $style = new FrmStyle();
340
+
341
  // Sanitizing is done later.
342
+ $posted = wp_unslash( $_POST['frm_style_setting'] ); //phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
343
  if ( ! is_array( $posted ) ) {
344
  $posted = json_decode( $posted, true );
345
  FrmAppHelper::format_form_data( $posted );
346
+ $settings = $style->sanitize_post_content( $posted['frm_style_setting']['post_content'] );
347
  $style_name = sanitize_title( $posted['style_name'] );
348
  } else {
349
+ $settings = $style->sanitize_post_content( $posted['post_content'] );
350
  $style_name = FrmAppHelper::get_post_param( 'style_name', '', 'sanitize_title' );
351
  }
352
  } else {
353
+ $settings = $style->sanitize_post_content( wp_unslash( $_GET ) );
354
  $style_name = FrmAppHelper::get_param( 'style_name', '', 'get', 'sanitize_title' );
355
  }
356
 
390
  return $settings;
391
  }
392
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
393
  /**
394
  * @since 2.3
395
  */
468
  * @since 2.3
469
  */
470
  public static function previewing_style() {
471
+ $ajax_change = isset( $_POST['action'] ) && $_POST['action'] === 'frm_change_styling' && isset( $_POST['frm_style_setting'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
472
 
473
  return $ajax_change || isset( $_GET['flat'] );
474
  }
classes/helpers/FrmXMLHelper.php CHANGED
@@ -23,7 +23,7 @@ class FrmXMLHelper {
23
  echo '</' . esc_html( $tag ) . '>';
24
  }
25
  } else {
26
- echo self::cdata( $opt ); // WPCS: XSS ok.
27
  }
28
  }
29
 
23
  echo '</' . esc_html( $tag ) . '>';
24
  }
25
  } else {
26
+ echo self::cdata( $opt ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
27
  }
28
  }
29
 
classes/models/FrmAddon.php CHANGED
@@ -320,7 +320,7 @@ class FrmAddon {
320
  $id = sanitize_title( $plugin['Name'] ) . '-next';
321
 
322
  echo '<tr class="plugin-update-tr active" id="' . esc_attr( $id ) . '"><td colspan="' . esc_attr( $wp_list_table->get_column_count() ) . '" class="plugin-update colspanchange"><div class="update-message notice error inline notice-error notice-alt"><p>';
323
- echo FrmAppHelper::kses( $message, 'a' ); // WPCS: XSS ok.
324
  echo '<script type="text/javascript">var d = document.getElementById("' . esc_attr( $id ) . '").previousSibling;if ( d !== null ){ d.className = d.className + " update"; }</script>';
325
  echo '</p></div></td></tr>';
326
  }
@@ -455,7 +455,7 @@ class FrmAddon {
455
  }
456
 
457
  private function is_license_revoked() {
458
- if ( empty( $this->license ) || empty( $this->plugin_slug ) || isset( $_POST['license'] ) ) { // WPCS: CSRF ok.
459
  return;
460
  }
461
 
@@ -697,6 +697,12 @@ class FrmAddon {
697
  }
698
 
699
  public function manually_queue_update() {
700
- set_site_transient( 'update_plugins', null );
 
 
 
 
 
 
701
  }
702
  }
320
  $id = sanitize_title( $plugin['Name'] ) . '-next';
321
 
322
  echo '<tr class="plugin-update-tr active" id="' . esc_attr( $id ) . '"><td colspan="' . esc_attr( $wp_list_table->get_column_count() ) . '" class="plugin-update colspanchange"><div class="update-message notice error inline notice-error notice-alt"><p>';
323
+ echo FrmAppHelper::kses( $message, 'a' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
324
  echo '<script type="text/javascript">var d = document.getElementById("' . esc_attr( $id ) . '").previousSibling;if ( d !== null ){ d.className = d.className + " update"; }</script>';
325
  echo '</p></div></td></tr>';
326
  }
455
  }
456
 
457
  private function is_license_revoked() {
458
+ if ( empty( $this->license ) || empty( $this->plugin_slug ) || isset( $_POST['license'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
459
  return;
460
  }
461
 
697
  }
698
 
699
  public function manually_queue_update() {
700
+ $updates = new stdClass();
701
+ $updates->last_checked = 0;
702
+ $updates->response = array();
703
+ $updates->translations = array();
704
+ $updates->no_update = array();
705
+ $updates->checked = array();
706
+ set_site_transient( 'update_plugins', $updates );
707
  }
708
  }
classes/models/FrmDb.php CHANGED
@@ -438,7 +438,7 @@ class FrmDb {
438
  if ( is_array( $where ) || empty( $where ) ) {
439
  self::get_where_clause_and_values( $where );
440
  global $wpdb;
441
- $query = $wpdb->prepare( $query . $where['where'] . ' ' . implode( ' ', $args ), $where['values'] ); // WPCS: unprepared SQL ok.
442
  } else {
443
  /**
444
  * Allow the $where to be prepared before we recieve it here.
@@ -577,7 +577,7 @@ class FrmDb {
577
  if ( is_array( $where ) ) {
578
  global $wpdb;
579
  self::get_where_clause_and_values( $where, $starts_with );
580
- $where = $wpdb->prepare( $where['where'], $where['values'] ); // WPCS: unprepared SQL ok.
581
  } else {
582
  $where = $starts_with . $where;
583
  }
@@ -657,7 +657,7 @@ class FrmDb {
657
  $results = get_posts( $query );
658
  } elseif ( 'get_associative_results' == $type ) {
659
  global $wpdb;
660
- $results = $wpdb->get_results( $query, OBJECT_K ); // WPCS: unprepared SQL ok.
661
  } else {
662
  global $wpdb;
663
  $results = $wpdb->{$type}( $query );
438
  if ( is_array( $where ) || empty( $where ) ) {
439
  self::get_where_clause_and_values( $where );
440
  global $wpdb;
441
+ $query = $wpdb->prepare( $query . $where['where'] . ' ' . implode( ' ', $args ), $where['values'] ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
442
  } else {
443
  /**
444
  * Allow the $where to be prepared before we recieve it here.
577
  if ( is_array( $where ) ) {
578
  global $wpdb;
579
  self::get_where_clause_and_values( $where, $starts_with );
580
+ $where = $wpdb->prepare( $where['where'], $where['values'] ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
581
  } else {
582
  $where = $starts_with . $where;
583
  }
657
  $results = get_posts( $query );
658
  } elseif ( 'get_associative_results' == $type ) {
659
  global $wpdb;
660
+ $results = $wpdb->get_results( $query, OBJECT_K ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
661
  } else {
662
  global $wpdb;
663
  $results = $wpdb->{$type}( $query );
classes/models/FrmEntry.php CHANGED
@@ -334,7 +334,7 @@ class FrmEntry {
334
 
335
  $query .= is_numeric( $id ) ? 'it.id=%d' : 'it.item_key=%s';
336
  $query_args = array( $id );
337
- $query = $wpdb->prepare( $query, $query_args ); // WPCS: unprepared SQL ok.
338
 
339
  if ( ! $meta ) {
340
  $entry = FrmDb::check_cache( $id . '_nometa', 'frm_entry', $query, 'get_row' );
@@ -348,7 +348,7 @@ class FrmEntry {
348
  return $entry;
349
  }
350
 
351
- $entry = $wpdb->get_row( $query ); // WPCS: unprepared SQL ok.
352
  $entry = self::get_meta( $entry );
353
  self::prepare_entry( $entry );
354
 
@@ -473,7 +473,7 @@ class FrmEntry {
473
  // prepare the query
474
  $query = 'SELECT ' . $fields . ' FROM ' . $table . FrmDb::prepend_and_or_where( ' WHERE ', $where ) . $order_by . $limit;
475
 
476
- $entries = $wpdb->get_results( $query, OBJECT_K ); // WPCS: unprepared SQL ok.
477
  unset( $query );
478
 
479
  FrmDb::set_cache( $cache_key, $entries, 'frm_entry' );
334
 
335
  $query .= is_numeric( $id ) ? 'it.id=%d' : 'it.item_key=%s';
336
  $query_args = array( $id );
337
+ $query = $wpdb->prepare( $query, $query_args ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
338
 
339
  if ( ! $meta ) {
340
  $entry = FrmDb::check_cache( $id . '_nometa', 'frm_entry', $query, 'get_row' );
348
  return $entry;
349
  }
350
 
351
+ $entry = $wpdb->get_row( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
352
  $entry = self::get_meta( $entry );
353
  self::prepare_entry( $entry );
354
 
473
  // prepare the query
474
  $query = 'SELECT ' . $fields . ' FROM ' . $table . FrmDb::prepend_and_or_where( ' WHERE ', $where ) . $order_by . $limit;
475
 
476
+ $entries = $wpdb->get_results( $query, OBJECT_K ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
477
  unset( $query );
478
 
479
  FrmDb::set_cache( $cache_key, $entries, 'frm_entry' );
classes/models/FrmEntryMeta.php CHANGED
@@ -160,7 +160,7 @@ class FrmEntryMeta {
160
  FrmDb::get_where_clause_and_values( $where );
161
 
162
  // Delete any leftovers
163
- $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'frm_item_metas ' . $where['where'], $where['values'] ) ); // WPCS: unprepared SQL ok.
164
  self::clear_cache();
165
  }
166
 
@@ -451,7 +451,7 @@ class FrmEntryMeta {
451
  case 'day':
452
  $value = '%' . $value . '%';
453
  }
454
- $where .= $wpdb->prepare( ' meta_value ' . $operator . ' %s and', $value ); // WPCS: unprepared SQL ok.
455
  }
456
  $where .= $wpdb->prepare( ' field_id=%d', $field_id );
457
  $query = 'SELECT DISTINCT item_id FROM ' . $wpdb->prefix . 'frm_item_metas' . FrmDb::prepend_and_or_where( ' WHERE ', $where );
@@ -459,10 +459,10 @@ class FrmEntryMeta {
459
  if ( $operator == 'LIKE' ) {
460
  $search = '%' . $search . '%';
461
  }
462
- $query = $wpdb->prepare( "SELECT DISTINCT item_id FROM {$wpdb->prefix}frm_item_metas WHERE meta_value {$operator} %s and field_id = %d", $search, $field_id ); // WPCS: unprepared SQL ok.
463
  }
464
 
465
- $results = $wpdb->get_col( $query, 0 ); // WPCS: unprepared SQL ok.
466
  FrmDb::set_cache( $cache_key, $results, 'frm_entry' );
467
 
468
  return $results;
160
  FrmDb::get_where_clause_and_values( $where );
161
 
162
  // Delete any leftovers
163
+ $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'frm_item_metas ' . $where['where'], $where['values'] ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
164
  self::clear_cache();
165
  }
166
 
451
  case 'day':
452
  $value = '%' . $value . '%';
453
  }
454
+ $where .= $wpdb->prepare( ' meta_value ' . $operator . ' %s and', $value ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
455
  }
456
  $where .= $wpdb->prepare( ' field_id=%d', $field_id );
457
  $query = 'SELECT DISTINCT item_id FROM ' . $wpdb->prefix . 'frm_item_metas' . FrmDb::prepend_and_or_where( ' WHERE ', $where );
459
  if ( $operator == 'LIKE' ) {
460
  $search = '%' . $search . '%';
461
  }
462
+ $query = $wpdb->prepare( "SELECT DISTINCT item_id FROM {$wpdb->prefix}frm_item_metas WHERE meta_value {$operator} %s and field_id = %d", $search, $field_id ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.PreparedSQL.InterpolatedNotPrepared
463
  }
464
 
465
+ $results = $wpdb->get_col( $query, 0 ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
466
  FrmDb::set_cache( $cache_key, $results, 'frm_entry' );
467
 
468
  return $results;
classes/models/FrmEntryValidate.php CHANGED
@@ -112,7 +112,7 @@ class FrmEntryValidate {
112
 
113
  if ( $posted_field->required == '1' && FrmAppHelper::is_empty_value( $value ) ) {
114
  $errors[ 'field' . $args['id'] ] = FrmFieldsHelper::get_error_msg( $posted_field, 'blank' );
115
- } elseif ( $posted_field->type == 'text' && ! isset( $_POST['item_name'] ) ) { // WPCS: CSRF ok.
116
  $_POST['item_name'] = $value;
117
  }
118
 
@@ -255,11 +255,31 @@ class FrmEntryValidate {
255
  $errors['spam'] = __( 'Your entry appears to be spam!', 'formidable' );
256
  } elseif ( self::blacklist_check( $values ) ) {
257
  $errors['spam'] = __( 'Your entry appears to be blocked spam!', 'formidable' );
258
- } elseif ( self::is_akismet_enabled_for_user( $values['form_id'] ) && self::is_akismet_spam( $values ) ) {
 
 
 
 
 
 
259
  $errors['spam'] = __( 'Your entry appears to be spam!', 'formidable' );
260
  }
261
  }
262
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
263
  /**
264
  * @param int $form_id
265
  * @return boolean
@@ -322,6 +342,7 @@ class FrmEntryValidate {
322
  return false;
323
  }
324
 
 
325
  $ip = FrmAppHelper::get_ip_address();
326
  $user_agent = FrmAppHelper::get_server_value( 'HTTP_USER_AGENT' );
327
  $user_info = self::get_spam_check_user_info( $values );
@@ -391,8 +412,11 @@ class FrmEntryValidate {
391
  */
392
  private static function parse_akismet_array( &$datas, $values ) {
393
  self::add_site_info_to_akismet( $datas );
394
- self::add_user_info_to_akismet( $datas, $values );
395
  self::add_server_values_to_akismet( $datas );
 
 
 
 
396
  self::add_comment_content_to_akismet( $datas, $values );
397
  }
398
 
@@ -418,46 +442,125 @@ class FrmEntryValidate {
418
  }
419
  }
420
 
 
 
 
 
 
 
 
 
421
  private static function get_spam_check_user_info( $values ) {
422
- $datas = array();
 
 
423
 
424
- if ( is_user_logged_in() ) {
425
- $user = wp_get_current_user();
426
 
427
- $datas['user_ID'] = $user->ID;
428
- $datas['user_id'] = $user->ID;
429
- $datas['comment_author'] = $user->display_name;
430
- $datas['comment_author_email'] = $user->user_email;
431
- $datas['comment_author_url'] = $user->user_url;
432
- } else {
433
- $datas['comment_author'] = '';
434
- $datas['comment_author_email'] = '';
435
- $datas['comment_author_url'] = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
436
 
437
- if ( isset( $values['item_meta'] ) ) {
438
- $values = $values['item_meta'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439
  }
440
 
441
- $values = array_filter( $values );
442
-
443
- $datas['frm_duplicated'] = array();
444
- foreach ( $values as $index => $value ) {
445
- if ( ! is_array( $value ) ) {
446
- if ( $datas['comment_author_email'] == '' && strpos( $value, '@' ) && is_email( $value ) ) {
447
- $datas['comment_author_email'] = $value;
448
- $datas['frm_duplicated'][] = $index;
449
- } elseif ( $datas['comment_author_url'] == '' && strpos( $value, 'http' ) === 0 ) {
450
- $datas['comment_author_url'] = $value;
451
- $datas['frm_duplicated'][] = $index;
452
- } elseif ( $datas['comment_author'] == '' && ! is_numeric( $value ) && strlen( $value ) < 200 ) {
453
- $datas['comment_author'] = $value;
454
- $datas['frm_duplicated'][] = $index;
455
- }
456
  }
457
  }
458
  }
 
459
 
460
- return $datas;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
  }
462
 
463
  private static function add_server_values_to_akismet( &$datas ) {
@@ -517,18 +620,22 @@ class FrmEntryValidate {
517
  * Gets field IDs that are skipped from sending to Akismet spam check.
518
  *
519
  * @since 5.0.09
 
520
  *
521
- * @param array $values Entry values.
522
  * @return array
523
  */
524
  private static function get_akismet_skipped_field_ids( $values ) {
525
- $form_ids = self::get_all_form_ids_and_flatten_meta( $values );
 
 
 
526
  $skipped_types = array( 'divider', 'form', 'hidden', 'user_id', 'file', 'date', 'time', 'scale', 'star', 'range', 'toggle', 'data', 'lookup', 'likert', 'nps' );
527
  $has_other_types = array( 'radio', 'checkbox', 'select' );
528
 
529
  $where = array(
530
  array(
531
- 'form_id' => $form_ids,
532
  array(
533
  array(
534
  'field_options not like' => ';s:5:"other";s:1:"1"',
@@ -543,22 +650,45 @@ class FrmEntryValidate {
543
  return FrmDb::get_col( 'frm_fields', $where );
544
  }
545
 
 
 
 
 
 
 
 
 
 
 
 
 
546
  /**
547
  * Gets all form IDs (include child form IDs) and flatten item_meta array. Used for skipping values sent to Akismet.
548
  * This also removes some unused data from the item_meta.
549
  *
550
  * @since 5.0.09
 
551
  *
552
  * @param array $values Entry values.
553
  * @return array Form IDs.
554
  */
555
  private static function get_all_form_ids_and_flatten_meta( &$values ) {
556
- $form_ids = array( absint( $values['form_id'] ) );
 
 
 
557
  foreach ( $values['item_meta'] as $field_id => $value ) {
558
  if ( ! is_numeric( $field_id ) ) { // Maybe `other`.
559
  continue;
560
  }
561
 
 
 
 
 
 
 
 
562
  if ( ! is_array( $value ) || empty( $value['form'] ) ) {
563
  continue;
564
  }
@@ -578,6 +708,14 @@ class FrmEntryValidate {
578
  if ( ! isset( $values['item_meta'][ $subsubindex ] ) ) {
579
  $values['item_meta'][ $subsubindex ] = array();
580
  }
 
 
 
 
 
 
 
 
581
  $values['item_meta'][ $subsubindex ][] = $subsubvalue;
582
  }
583
  }
112
 
113
  if ( $posted_field->required == '1' && FrmAppHelper::is_empty_value( $value ) ) {
114
  $errors[ 'field' . $args['id'] ] = FrmFieldsHelper::get_error_msg( $posted_field, 'blank' );
115
+ } elseif ( $posted_field->type === 'text' && ! isset( $_POST['item_name'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
116
  $_POST['item_name'] = $value;
117
  }
118
 
255
  $errors['spam'] = __( 'Your entry appears to be spam!', 'formidable' );
256
  } elseif ( self::blacklist_check( $values ) ) {
257
  $errors['spam'] = __( 'Your entry appears to be blocked spam!', 'formidable' );
258
+ }
259
+
260
+ if ( isset( $errors['spam'] ) || self::form_is_in_progress( $values ) ) {
261
+ return;
262
+ }
263
+
264
+ if ( self::is_akismet_enabled_for_user( $values['form_id'] ) && self::is_akismet_spam( $values ) ) {
265
  $errors['spam'] = __( 'Your entry appears to be spam!', 'formidable' );
266
  }
267
  }
268
 
269
+ /**
270
+ * Checks if form is in progress.
271
+ *
272
+ * @since 5.0.13
273
+ *
274
+ * @param array $values The values.
275
+ * @return bool
276
+ */
277
+ private static function form_is_in_progress( $values ) {
278
+ return FrmAppHelper::pro_is_installed() &&
279
+ ( isset( $values[ 'frm_page_order_' . $values['form_id'] ] ) || FrmAppHelper::get_post_param( 'frm_next_page' ) ) &&
280
+ FrmField::get_all_types_in_form( $values['form_id'], 'break' );
281
+ }
282
+
283
  /**
284
  * @param int $form_id
285
  * @return boolean
342
  return false;
343
  }
344
 
345
+ self::prepare_values_for_spam_check( $values );
346
  $ip = FrmAppHelper::get_ip_address();
347
  $user_agent = FrmAppHelper::get_server_value( 'HTTP_USER_AGENT' );
348
  $user_info = self::get_spam_check_user_info( $values );
412
  */
413
  private static function parse_akismet_array( &$datas, $values ) {
414
  self::add_site_info_to_akismet( $datas );
 
415
  self::add_server_values_to_akismet( $datas );
416
+
417
+ self::prepare_values_for_spam_check( $values );
418
+
419
+ self::add_user_info_to_akismet( $datas, $values );
420
  self::add_comment_content_to_akismet( $datas, $values );
421
  }
422
 
442
  }
443
  }
444
 
445
+ /**
446
+ * Gets user info for Akismet spam check.
447
+ *
448
+ * @since 5.0.13 Separate code for guest. Handle value of embedded|repeater.
449
+ *
450
+ * @param array $values Entry values after running through {@see FrmEntryValidate::prepare_values_for_spam_check()}.
451
+ * @return array
452
+ */
453
  private static function get_spam_check_user_info( $values ) {
454
+ if ( ! is_user_logged_in() ) {
455
+ return self::get_spam_check_user_info_for_guest( $values );
456
+ }
457
 
458
+ $user = wp_get_current_user();
 
459
 
460
+ return array(
461
+ 'user_ID' => $user->ID,
462
+ 'user_id' => $user->ID,
463
+ 'comment_author' => $user->display_name,
464
+ 'comment_author_email' => $user->user_email,
465
+ 'comment_author_url' => $user->user_url,
466
+ );
467
+ }
468
+
469
+ /**
470
+ * Gets user info for Akismet spam check for guest.
471
+ *
472
+ * @since 5.0.13
473
+ *
474
+ * @param array $values Entry values after flattened.
475
+ * @return array
476
+ */
477
+ private static function get_spam_check_user_info_for_guest( $values ) {
478
+ $datas = array(
479
+ 'comment_author' => '',
480
+ 'comment_author_email' => '',
481
+ 'comment_author_url' => '',
482
+ 'name_field_ids' => $values['name_field_ids'],
483
+ 'missing_keys' => array( 'comment_author_email', 'comment_author_url', 'comment_author' ),
484
+ 'frm_duplicated' => array(),
485
+ );
486
+
487
+ if ( isset( $values['item_meta'] ) ) {
488
+ $values = $values['item_meta'];
489
+ }
490
+
491
+ $values = array_filter( $values );
492
 
493
+ self::recursive_add_akismet_guest_info( $datas, $values );
494
+ unset( $datas['name_field_ids'] );
495
+ unset( $datas['missing_keys'] );
496
+
497
+ return $datas;
498
+ }
499
+
500
+ /**
501
+ * Recursive adds akismet guest info.
502
+ *
503
+ * @since 5.0.13
504
+ *
505
+ * @param array $datas Guest data.
506
+ * @param array $values The values.
507
+ * @param int|null $custom_index Custom index (or field ID).
508
+ */
509
+ private static function recursive_add_akismet_guest_info( &$datas, $values, $custom_index = null ) {
510
+ foreach ( $values as $index => $value ) {
511
+ if ( ! $datas['missing_keys'] ) {
512
+ return; // Found all info.
513
  }
514
 
515
+ if ( is_array( $value ) ) {
516
+ self::recursive_add_akismet_guest_info( $datas, $value, $index );
517
+ continue;
518
+ }
519
+
520
+ $field_id = ! is_null( $custom_index ) ? $custom_index : $index;
521
+ foreach ( $datas['missing_keys'] as $key_index => $key ) {
522
+ $found = self::is_akismet_guest_info_value( $key, $value, $field_id, $datas['name_field_ids'] );
523
+ if ( $found ) {
524
+ $datas[ $key ] = $value;
525
+ $datas['frm_duplicated'][] = $field_id;
526
+ unset( $datas['missing_keys'][ $key_index ] );
 
 
 
527
  }
528
  }
529
  }
530
+ }
531
 
532
+ /**
533
+ * Checks if given value is an akismet guest info.
534
+ *
535
+ * @since 5.0.13
536
+ *
537
+ * @param string $key Guest info key.
538
+ * @param string $value Value to check.
539
+ * @param int $field_id Field ID.
540
+ * @param array $name_field_ids Name field IDs.
541
+ * @return bool
542
+ */
543
+ private static function is_akismet_guest_info_value( $key, $value, $field_id, $name_field_ids ) {
544
+ if ( ! $value || is_numeric( $value ) ) {
545
+ return false;
546
+ }
547
+
548
+ switch ( $key ) {
549
+ case 'comment_author_email':
550
+ return strpos( $value, '@' ) && is_email( $value );
551
+
552
+ case 'comment_author_url':
553
+ return 0 === strpos( $value, 'http' );
554
+
555
+ case 'comment_author':
556
+ if ( $name_field_ids ) {
557
+ // If there is name field in the form, we should always use it as author name.
558
+ return in_array( $field_id, $name_field_ids, true );
559
+ }
560
+ return strlen( $value ) < 200;
561
+ }
562
+
563
+ return false;
564
  }
565
 
566
  private static function add_server_values_to_akismet( &$datas ) {
620
  * Gets field IDs that are skipped from sending to Akismet spam check.
621
  *
622
  * @since 5.0.09
623
+ * @since 5.0.13 Move out get_all_form_ids_and_flatten_meta() call and get `form_ids` from `$values`.
624
  *
625
+ * @param array $values Entry values after running through {@see FrmEntryValidate::prepare_values_for_spam_check()}.
626
  * @return array
627
  */
628
  private static function get_akismet_skipped_field_ids( $values ) {
629
+ if ( empty( $values['form_ids'] ) ) {
630
+ return array();
631
+ }
632
+
633
  $skipped_types = array( 'divider', 'form', 'hidden', 'user_id', 'file', 'date', 'time', 'scale', 'star', 'range', 'toggle', 'data', 'lookup', 'likert', 'nps' );
634
  $has_other_types = array( 'radio', 'checkbox', 'select' );
635
 
636
  $where = array(
637
  array(
638
+ 'form_id' => $values['form_ids'],
639
  array(
640
  array(
641
  'field_options not like' => ';s:5:"other";s:1:"1"',
650
  return FrmDb::get_col( 'frm_fields', $where );
651
  }
652
 
653
+ /**
654
+ * Prepares values array for spam check.
655
+ *
656
+ * @since 5.0.13
657
+ *
658
+ * @param array $values Entry values.
659
+ */
660
+ private static function prepare_values_for_spam_check( &$values ) {
661
+ $form_ids = self::get_all_form_ids_and_flatten_meta( $values );
662
+ $values['form_ids'] = $form_ids;
663
+ }
664
+
665
  /**
666
  * Gets all form IDs (include child form IDs) and flatten item_meta array. Used for skipping values sent to Akismet.
667
  * This also removes some unused data from the item_meta.
668
  *
669
  * @since 5.0.09
670
+ * @since 5.0.13 Convert name field value to string.
671
  *
672
  * @param array $values Entry values.
673
  * @return array Form IDs.
674
  */
675
  private static function get_all_form_ids_and_flatten_meta( &$values ) {
676
+ $values['name_field_ids'] = array();
677
+
678
+ // Blacklist check for File field in the old version doesn't contain `form_id`.
679
+ $form_ids = isset( $values['form_id'] ) ? array( absint( $values['form_id'] ) ) : array();
680
  foreach ( $values['item_meta'] as $field_id => $value ) {
681
  if ( ! is_numeric( $field_id ) ) { // Maybe `other`.
682
  continue;
683
  }
684
 
685
+ // Convert name array to string.
686
+ if ( isset( $value['first'] ) && isset( $value['last'] ) ) {
687
+ $values['item_meta'][ $field_id ] = trim( implode( ' ', $value ) );
688
+ $values['name_field_ids'][] = $field_id;
689
+ continue;
690
+ }
691
+
692
  if ( ! is_array( $value ) || empty( $value['form'] ) ) {
693
  continue;
694
  }
708
  if ( ! isset( $values['item_meta'][ $subsubindex ] ) ) {
709
  $values['item_meta'][ $subsubindex ] = array();
710
  }
711
+
712
+ // Convert name array to string.
713
+ if ( isset( $subsubvalue['first'] ) && isset( $subsubvalue['last'] ) ) {
714
+ $subsubvalue = trim( implode( ' ', $subsubvalue ) );
715
+
716
+ $values['name_field_ids'][] = $subsubindex;
717
+ }
718
+
719
  $values['item_meta'][ $subsubindex ][] = $subsubvalue;
720
  }
721
  }
classes/models/FrmField.php CHANGED
@@ -522,7 +522,7 @@ class FrmField {
522
  global $wpdb;
523
 
524
  $where = is_numeric( $id ) ? 'id=%d' : 'field_key=%s';
525
- $query = $wpdb->prepare( 'SELECT * FROM ' . $wpdb->prefix . 'frm_fields WHERE ' . $where, $id ); // WPCS: unprepared SQL ok.
526
 
527
  $results = FrmDb::check_cache( $id, 'frm_field', $query, 'get_row', 0 );
528
 
522
  global $wpdb;
523
 
524
  $where = is_numeric( $id ) ? 'id=%d' : 'field_key=%s';
525
+ $query = $wpdb->prepare( 'SELECT * FROM ' . $wpdb->prefix . 'frm_fields WHERE ' . $where, $id ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
526
 
527
  $results = FrmDb::check_cache( $id, 'frm_field', $query, 'get_row', 0 );
528
 
classes/models/FrmFieldFormHtml.php CHANGED
@@ -153,7 +153,7 @@ class FrmFieldFormHtml {
153
  $this->html = str_replace( '[key]', $this->field_obj->get_field_column( 'field_key' ), $this->html );
154
 
155
  //replace [field_name]
156
- $this->html = str_replace( '[field_name]', $this->field_obj->get_field_column( 'name' ), $this->html );
157
  }
158
 
159
  /**
@@ -183,7 +183,7 @@ class FrmFieldFormHtml {
183
  */
184
  private function replace_description_shortcode() {
185
  $this->maybe_add_description_id();
186
- $description = $this->field_obj->get_field_column( 'description' );
187
  FrmShortcodeHelper::remove_inline_conditions( ( $description && $description != '' ), 'description', $description, $this->html );
188
  }
189
 
153
  $this->html = str_replace( '[key]', $this->field_obj->get_field_column( 'field_key' ), $this->html );
154
 
155
  //replace [field_name]
156
+ $this->html = str_replace( '[field_name]', FrmAppHelper::maybe_kses( $this->field_obj->get_field_column( 'name' ) ), $this->html );
157
  }
158
 
159
  /**
183
  */
184
  private function replace_description_shortcode() {
185
  $this->maybe_add_description_id();
186
+ $description = FrmAppHelper::maybe_kses( $this->field_obj->get_field_column( 'description' ) );
187
  FrmShortcodeHelper::remove_inline_conditions( ( $description && $description != '' ), 'description', $description, $this->html );
188
  }
189
 
classes/models/FrmForm.php CHANGED
@@ -54,7 +54,10 @@ class FrmForm {
54
  * @return array
55
  */
56
  private static function maybe_filter_form_options( $options ) {
57
- return FrmAppHelper::maybe_filter_array( $options, array( 'submit_value', 'success_msg', 'before_html', 'after_html', 'submit_html' ) );
 
 
 
58
  }
59
 
60
  /**
@@ -410,7 +413,7 @@ class FrmForm {
410
  FrmDb::get_where_clause_and_values( $where );
411
  array_unshift( $where['values'], $status );
412
 
413
- $query_results = $wpdb->query( $wpdb->prepare( 'UPDATE ' . $wpdb->prefix . 'frm_forms SET status = %s ' . $where['where'], $where['values'] ) ); // WPCS: unprepared SQL ok.
414
  } else {
415
  $query_results = $wpdb->update( $wpdb->prefix . 'frm_forms', array( 'status' => $status ), array( 'id' => $id ) );
416
  $wpdb->update( $wpdb->prefix . 'frm_forms', array( 'status' => $status ), array( 'parent_form_id' => $id ) );
@@ -655,7 +658,7 @@ class FrmForm {
655
 
656
  // the query has already been prepared if this is not an array
657
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'frm_forms' . FrmDb::prepend_and_or_where( ' WHERE ', $where ) . FrmDb::esc_order( $order_by ) . FrmDb::esc_limit( $limit );
658
- $results = $wpdb->get_results( $query ); // WPCS: unprepared SQL ok.
659
  }
660
 
661
  if ( $results ) {
@@ -774,7 +777,7 @@ class FrmForm {
774
  return $frm_vars['form_params'][ $form->id ];
775
  }
776
 
777
- $action_var = isset( $_REQUEST['frm_action'] ) ? 'frm_action' : 'action'; // WPCS: CSRF ok.
778
  $action = apply_filters( 'frm_show_new_entry_page', FrmAppHelper::get_param( $action_var, 'new', 'get', 'sanitize_title' ), $form );
779
 
780
  $default_values = array(
@@ -814,7 +817,7 @@ class FrmForm {
814
  }
815
 
816
  if ( in_array( $values['action'], array( 'create', 'update' ) ) &&
817
- ( ! $_POST || ( ! isset( $_POST['action'] ) && ! isset( $_POST['frm_action'] ) ) ) // WPCS: CSRF ok.
818
  ) {
819
  $values['action'] = 'new';
820
  }
54
  * @return array
55
  */
56
  private static function maybe_filter_form_options( $options ) {
57
+ if ( ! FrmAppHelper::allow_unfiltered_html() && ! empty( $options['submit_html'] ) ) {
58
+ $options['submit_html'] = FrmAppHelper::kses_submit_button( $options['submit_html'] );
59
+ }
60
+ return FrmAppHelper::maybe_filter_array( $options, array( 'submit_value', 'success_msg', 'before_html', 'after_html' ) );
61
  }
62
 
63
  /**
413
  FrmDb::get_where_clause_and_values( $where );
414
  array_unshift( $where['values'], $status );
415
 
416
+ $query_results = $wpdb->query( $wpdb->prepare( 'UPDATE ' . $wpdb->prefix . 'frm_forms SET status = %s ' . $where['where'], $where['values'] ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
417
  } else {
418
  $query_results = $wpdb->update( $wpdb->prefix . 'frm_forms', array( 'status' => $status ), array( 'id' => $id ) );
419
  $wpdb->update( $wpdb->prefix . 'frm_forms', array( 'status' => $status ), array( 'parent_form_id' => $id ) );
658
 
659
  // the query has already been prepared if this is not an array
660
  $query = 'SELECT * FROM ' . $wpdb->prefix . 'frm_forms' . FrmDb::prepend_and_or_where( ' WHERE ', $where ) . FrmDb::esc_order( $order_by ) . FrmDb::esc_limit( $limit );
661
+ $results = $wpdb->get_results( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
662
  }
663
 
664
  if ( $results ) {
777
  return $frm_vars['form_params'][ $form->id ];
778
  }
779
 
780
+ $action_var = isset( $_REQUEST['frm_action'] ) ? 'frm_action' : 'action'; // phpcs:ignore WordPress.Security.NonceVerification.Missing
781
  $action = apply_filters( 'frm_show_new_entry_page', FrmAppHelper::get_param( $action_var, 'new', 'get', 'sanitize_title' ), $form );
782
 
783
  $default_values = array(
817
  }
818
 
819
  if ( in_array( $values['action'], array( 'create', 'update' ) ) &&
820
+ ( ! $_POST || ( ! isset( $_POST['action'] ) && ! isset( $_POST['frm_action'] ) ) ) // phpcs:ignore WordPress.Security.NonceVerification.Missing
821
  ) {
822
  $values['action'] = 'new';
823
  }
classes/models/FrmFormAction.php CHANGED
@@ -352,9 +352,10 @@ class FrmFormAction {
352
  return;
353
  }
354
 
 
355
  if ( isset( $_POST[ $this->option_name ] ) && is_array( $_POST[ $this->option_name ] ) ) {
356
  // Sanitizing removes scripts and <email> type of values.
357
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
358
  $settings = wp_unslash( $_POST[ $this->option_name ] );
359
  } else {
360
  return;
352
  return;
353
  }
354
 
355
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
356
  if ( isset( $_POST[ $this->option_name ] ) && is_array( $_POST[ $this->option_name ] ) ) {
357
  // Sanitizing removes scripts and <email> type of values.
358
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
359
  $settings = wp_unslash( $_POST[ $this->option_name ] );
360
  } else {
361
  return;
classes/models/FrmMigrate.php CHANGED
@@ -154,7 +154,7 @@ class FrmMigrate {
154
  dbDelta( $q . $charset_collate . ';' );
155
  } else {
156
  global $wpdb;
157
- $wpdb->query( $q . $charset_collate ); // WPCS: unprepared SQL ok.
158
  }
159
  unset( $q );
160
  }
@@ -222,10 +222,10 @@ class FrmMigrate {
222
 
223
  global $wpdb, $wp_roles;
224
 
225
- $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->fields ); // WPCS: unprepared SQL ok.
226
- $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->forms ); // WPCS: unprepared SQL ok.
227
- $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entries ); // WPCS: unprepared SQL ok.
228
- $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entry_metas ); // WPCS: unprepared SQL ok.
229
 
230
  delete_option( 'frm_options' );
231
  delete_option( 'frm_db_version' );
@@ -462,9 +462,9 @@ class FrmMigrate {
462
  */
463
  private function migrate_to_23() {
464
  global $wpdb;
465
- $exists = $wpdb->get_row( 'SHOW COLUMNS FROM ' . $this->forms . ' LIKE "parent_form_id"' ); // WPCS: unprepared SQL ok.
466
  if ( empty( $exists ) ) {
467
- $wpdb->query( 'ALTER TABLE ' . $this->forms . ' ADD parent_form_id int(11) default 0' ); // WPCS: unprepared SQL ok.
468
  }
469
  }
470
 
154
  dbDelta( $q . $charset_collate . ';' );
155
  } else {
156
  global $wpdb;
157
+ $wpdb->query( $q . $charset_collate ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
158
  }
159
  unset( $q );
160
  }
222
 
223
  global $wpdb, $wp_roles;
224
 
225
+ $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->fields ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
226
+ $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->forms ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
227
+ $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entries ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
228
+ $wpdb->query( 'DROP TABLE IF EXISTS ' . $this->entry_metas ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
229
 
230
  delete_option( 'frm_options' );
231
  delete_option( 'frm_db_version' );
462
  */
463
  private function migrate_to_23() {
464
  global $wpdb;
465
+ $exists = $wpdb->get_row( 'SHOW COLUMNS FROM ' . $this->forms . ' LIKE "parent_form_id"' ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
466
  if ( empty( $exists ) ) {
467
+ $wpdb->query( 'ALTER TABLE ' . $this->forms . ' ADD parent_form_id int(11) default 0' ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
468
  }
469
  }
470
 
classes/models/FrmNotification.php CHANGED
@@ -61,7 +61,7 @@ class FrmNotification {
61
  $sent_to = array_filter( $sent_to );
62
 
63
  $temp = str_replace( '<', '&lt;', $sent_to );
64
- echo ' ' . FrmAppHelper::kses( implode( ', ', (array) $temp ) ); // WPCS: XSS ok.
65
  }
66
  }
67
 
61
  $sent_to = array_filter( $sent_to );
62
 
63
  $temp = str_replace( '<', '&lt;', $sent_to );
64
+ echo ' ' . FrmAppHelper::kses( implode( ', ', (array) $temp ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
65
  }
66
  }
67
 
classes/models/FrmSolution.php CHANGED
@@ -134,7 +134,7 @@ class FrmSolution {
134
  }
135
 
136
  // Only do this for single site installs.
137
- if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // WPCS: CSRF ok.
138
  return;
139
  }
140
 
134
  }
135
 
136
  // Only do this for single site installs.
137
+ if ( isset( $_GET['activate-multi'] ) || is_network_admin() ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
138
  return;
139
  }
140
 
classes/models/FrmStyle.php CHANGED
@@ -55,9 +55,11 @@ class FrmStyle {
55
  foreach ( $all_instances as $number => $new_instance ) {
56
  $new_instance = (array) $new_instance;
57
  $this->id = $new_instance['ID'];
 
58
  if ( $id != $this->id || ! $_POST || ! isset( $_POST['frm_style_setting'] ) ) {
59
  $all_instances[ $number ] = $new_instance;
60
 
 
61
  if ( $new_instance['menu_order'] && $_POST && empty( $_POST['prev_menu_order'] ) && isset( $_POST['frm_style_setting']['menu_order'] ) ) {
62
  // this style was set to default, so remove default setting on previous default style
63
  $new_instance['menu_order'] = 0;
@@ -68,14 +70,11 @@ class FrmStyle {
68
  continue;
69
  }
70
 
71
- $new_instance['post_title'] = isset( $_POST['frm_style_setting']['post_title'] ) ? sanitize_text_field( wp_unslash( $_POST['frm_style_setting']['post_title'] ) ) : '';
72
-
73
- // Don't wp_unslash yet since it removes backslashes.
74
- $new_instance['post_content'] = isset( $_POST['frm_style_setting']['post_content'] ) ? $_POST['frm_style_setting']['post_content'] : ''; // WPCS: sanitization ok.
75
- FrmAppHelper::sanitize_value( 'sanitize_textarea_field', $new_instance['post_content'] );
76
  $new_instance['post_type'] = FrmStylesController::$post_type;
77
  $new_instance['post_status'] = 'publish';
78
- $new_instance['menu_order'] = isset( $_POST['frm_style_setting']['menu_order'] ) ? absint( $_POST['frm_style_setting']['menu_order'] ) : 0;
79
 
80
  if ( empty( $id ) ) {
81
  $new_instance['post_name'] = $new_instance['post_title'];
@@ -110,6 +109,41 @@ class FrmStyle {
110
  return $action_ids;
111
  }
112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  /**
114
  * @since 3.01.01
115
  */
55
  foreach ( $all_instances as $number => $new_instance ) {
56
  $new_instance = (array) $new_instance;
57
  $this->id = $new_instance['ID'];
58
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
59
  if ( $id != $this->id || ! $_POST || ! isset( $_POST['frm_style_setting'] ) ) {
60
  $all_instances[ $number ] = $new_instance;
61
 
62
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
63
  if ( $new_instance['menu_order'] && $_POST && empty( $_POST['prev_menu_order'] ) && isset( $_POST['frm_style_setting']['menu_order'] ) ) {
64
  // this style was set to default, so remove default setting on previous default style
65
  $new_instance['menu_order'] = 0;
70
  continue;
71
  }
72
 
73
+ $new_instance['post_title'] = isset( $_POST['frm_style_setting']['post_title'] ) ? sanitize_text_field( wp_unslash( $_POST['frm_style_setting']['post_title'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing
74
+ $new_instance['post_content'] = isset( $_POST['frm_style_setting']['post_content'] ) ? $this->sanitize_post_content( $this->unslash_post_content( $_POST['frm_style_setting']['post_content'] ) ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Missing
 
 
 
75
  $new_instance['post_type'] = FrmStylesController::$post_type;
76
  $new_instance['post_status'] = 'publish';
77
+ $new_instance['menu_order'] = isset( $_POST['frm_style_setting']['menu_order'] ) ? absint( $_POST['frm_style_setting']['menu_order'] ) : 0; // phpcs:ignore WordPress.Security.NonceVerification.Missing
78
 
79
  if ( empty( $id ) ) {
80
  $new_instance['post_name'] = $new_instance['post_title'];
109
  return $action_ids;
110
  }
111
 
112
+ /**
113
+ * Unslash everything in post_content but custom_css
114
+ *
115
+ * @since 5.0.13
116
+ *
117
+ * @param array $settings
118
+ * @return array
119
+ */
120
+ private function unslash_post_content( $settings ) {
121
+ $custom_css = isset( $settings['custom_css'] ) ? $settings['custom_css'] : '';
122
+ $settings = wp_unslash( $settings );
123
+ $settings['custom_css'] = $custom_css;
124
+ return $settings;
125
+ }
126
+
127
+ /**
128
+ * @since 5.0.13
129
+ *
130
+ * @param array $settings
131
+ * @return array
132
+ */
133
+ public function sanitize_post_content( $settings ) {
134
+ $defaults = $this->get_defaults();
135
+ $valid_keys = array_keys( $defaults );
136
+ $sanitized_settings = array();
137
+ foreach ( $valid_keys as $key ) {
138
+ if ( isset( $settings[ $key ] ) ) {
139
+ $sanitized_settings[ $key ] = sanitize_textarea_field( $settings[ $key ] );
140
+ } else {
141
+ $sanitized_settings[ $key ] = $defaults[ $key ];
142
+ }
143
+ }
144
+ return $sanitized_settings;
145
+ }
146
+
147
  /**
148
  * @since 3.01.01
149
  */
classes/models/fields/FrmFieldCaptcha.php CHANGED
@@ -167,6 +167,7 @@ class FrmFieldCaptcha extends FrmFieldType {
167
  return array();
168
  }
169
 
 
170
  if ( ! isset( $_POST['g-recaptcha-response'] ) ) {
171
  // There was no captcha submitted.
172
  return array( 'field' . $args['id'] => __( 'The captcha is missing from this form', 'formidable' ) );
@@ -185,7 +186,7 @@ class FrmFieldCaptcha extends FrmFieldType {
185
  }
186
 
187
  protected function should_validate() {
188
- $is_hidden_field = apply_filters( 'frm_is_field_hidden', false, $this->field, wp_unslash( $_POST ) ); // WPCS: CSRF ok.
189
  if ( FrmAppHelper::is_admin() || $is_hidden_field ) {
190
  return false;
191
  }
167
  return array();
168
  }
169
 
170
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
171
  if ( ! isset( $_POST['g-recaptcha-response'] ) ) {
172
  // There was no captcha submitted.
173
  return array( 'field' . $args['id'] => __( 'The captcha is missing from this form', 'formidable' ) );
186
  }
187
 
188
  protected function should_validate() {
189
+ $is_hidden_field = apply_filters( 'frm_is_field_hidden', false, $this->field, wp_unslash( $_POST ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
190
  if ( FrmAppHelper::is_admin() || $is_hidden_field ) {
191
  return false;
192
  }
classes/models/fields/FrmFieldCombo.php CHANGED
@@ -339,13 +339,12 @@ class FrmFieldCombo extends FrmFieldType {
339
  protected function print_input_atts( $args ) {
340
  $field = $args['field'];
341
  $sub_field = $args['sub_field'];
342
- $atts = array();
343
 
344
  // Placeholder.
345
  if ( in_array( 'placeholder', $sub_field['options'], true ) ) {
346
  $placeholders = FrmField::get_option( $field, 'placeholder' );
347
  if ( ! empty( $placeholders[ $sub_field['name'] ] ) ) {
348
- $atts[] = 'placeholder="' . esc_attr( $placeholders[ $sub_field['name'] ] ) . '"';
349
  }
350
  }
351
 
@@ -370,11 +369,9 @@ class FrmFieldCombo extends FrmFieldType {
370
  // Print custom attributes.
371
  if ( ! empty( $sub_field['atts'] ) && is_array( $sub_field['atts'] ) ) {
372
  foreach ( $sub_field['atts'] as $att_name => $att_value ) {
373
- $atts[] = esc_attr( trim( $att_name ) ) . '="' . esc_attr( trim( $att_value ) ) . '"';
374
  }
375
  }
376
-
377
- echo implode( ' ', $atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
378
  }
379
 
380
  /**
339
  protected function print_input_atts( $args ) {
340
  $field = $args['field'];
341
  $sub_field = $args['sub_field'];
 
342
 
343
  // Placeholder.
344
  if ( in_array( 'placeholder', $sub_field['options'], true ) ) {
345
  $placeholders = FrmField::get_option( $field, 'placeholder' );
346
  if ( ! empty( $placeholders[ $sub_field['name'] ] ) ) {
347
+ $field['placeholder'] = $placeholders[ $sub_field['name'] ];
348
  }
349
  }
350
 
369
  // Print custom attributes.
370
  if ( ! empty( $sub_field['atts'] ) && is_array( $sub_field['atts'] ) ) {
371
  foreach ( $sub_field['atts'] as $att_name => $att_value ) {
372
+ echo esc_attr( trim( $att_name ) ) . '="' . esc_attr( trim( $att_value ) ) . '" ';
373
  }
374
  }
 
 
375
  }
376
 
377
  /**
classes/models/fields/FrmFieldDefault.php CHANGED
@@ -34,9 +34,9 @@ class FrmFieldDefault extends FrmFieldType {
34
  ob_end_clean();
35
 
36
  if ( empty( $input_html ) ) {
37
- echo $this->builder_text_field( $name ); // WPCS: XSS ok.
38
  } else {
39
- echo $input_html; // WPCS: XSS ok.
40
  }
41
  }
42
 
34
  ob_end_clean();
35
 
36
  if ( empty( $input_html ) ) {
37
+ echo $this->builder_text_field( $name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
38
  } else {
39
+ echo $input_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
40
  }
41
  }
42
 
classes/models/fields/FrmFieldTextarea.php CHANGED
@@ -37,11 +37,11 @@ class FrmFieldTextarea extends FrmFieldType {
37
  $max = FrmField::get_option( $this->field, 'max' );
38
  $default_value = FrmAppHelper::esc_textarea( force_balance_tags( $this->get_field_column( 'default_value' ) ) );
39
 
40
- echo '<textarea name="' . esc_attr( $this->html_name( $name ) ) . '" ' . // WPCS: XSS ok.
41
- $size_html // WPCS: XSS ok.
42
  . ' rows="' . esc_attr( $max ) . '" ' .
43
  'id="' . esc_attr( $this->html_id() ) . '" class="dyn_default_value">' .
44
- $default_value // WPCS: XSS ok.
45
  . '</textarea>';
46
  }
47
 
37
  $max = FrmField::get_option( $this->field, 'max' );
38
  $default_value = FrmAppHelper::esc_textarea( force_balance_tags( $this->get_field_column( 'default_value' ) ) );
39
 
40
+ echo '<textarea name="' . esc_attr( $this->html_name( $name ) ) . '" ' . // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
41
+ $size_html // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
42
  . ' rows="' . esc_attr( $max ) . '" ' .
43
  'id="' . esc_attr( $this->html_id() ) . '" class="dyn_default_value">' .
44
+ $default_value // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
45
  . '</textarea>';
46
  }
47
 
classes/models/fields/FrmFieldType.php CHANGED
@@ -218,7 +218,7 @@ DEFAULT_HTML;
218
  if ( ! empty( $include_file ) ) {
219
  $this->include_on_form_builder( $name, $field );
220
  } elseif ( $this->has_input ) {
221
- echo $this->builder_text_field( $name ); // WPCS: XSS ok.
222
  }
223
  }
224
 
@@ -681,7 +681,7 @@ DEFAULT_HTML;
681
  */
682
  public function show_field( $args ) {
683
  if ( apply_filters( 'frm_show_normal_field_type', $this->normal_field, $this->type ) ) {
684
- echo $this->prepare_field_html( $args ); // WPCS: XSS ok.
685
  } else {
686
  do_action( 'frm_show_other_field_type', $this->field, $args['form'], array( 'action' => $args['form_action'] ) );
687
  }
@@ -701,7 +701,7 @@ DEFAULT_HTML;
701
  public function prepare_field_html( $args ) {
702
  $args = $this->fill_display_field_values( $args );
703
  if ( $this->has_html ) {
704
- $args['html'] = $this->before_replace_html_shortcodes( $args, FrmField::get_option( $this->field, 'custom_html' ) );
705
  $args['errors'] = is_array( $args['errors'] ) ? $args['errors'] : array();
706
  $args['field_obj'] = $this;
707
 
218
  if ( ! empty( $include_file ) ) {
219
  $this->include_on_form_builder( $name, $field );
220
  } elseif ( $this->has_input ) {
221
+ echo $this->builder_text_field( $name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
222
  }
223
  }
224
 
681
  */
682
  public function show_field( $args ) {
683
  if ( apply_filters( 'frm_show_normal_field_type', $this->normal_field, $this->type ) ) {
684
+ echo $this->prepare_field_html( $args ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
685
  } else {
686
  do_action( 'frm_show_other_field_type', $this->field, $args['form'], array( 'action' => $args['form_action'] ) );
687
  }
701
  public function prepare_field_html( $args ) {
702
  $args = $this->fill_display_field_values( $args );
703
  if ( $this->has_html ) {
704
+ $args['html'] = $this->before_replace_html_shortcodes( $args, FrmAppHelper::maybe_kses( FrmField::get_option( $this->field, 'custom_html' ) ) );
705
  $args['errors'] = is_array( $args['errors'] ) ? $args['errors'] : array();
706
  $args['field_obj'] = $this;
707
 
classes/models/fields/FrmFieldUserID.php CHANGED
@@ -52,7 +52,7 @@ class FrmFieldUserID extends FrmFieldType {
52
  protected function get_field_value( $args ) {
53
  $user_ID = get_current_user_id();
54
  $user_ID = ( $user_ID ? $user_ID : '' );
55
- $posted_value = ( FrmAppHelper::is_admin() && $_POST && isset( $_POST['item_meta'][ $this->field['id'] ] ) ); // WPCS: CSRF ok.
56
  $action = ( isset( $args['action'] ) ? $args['action'] : ( isset( $args['form_action'] ) ? $args['form_action'] : '' ) );
57
  $updating = $action == 'update';
58
  return ( is_numeric( $this->field['value'] ) || $posted_value || $updating ) ? $this->field['value'] : $user_ID;
52
  protected function get_field_value( $args ) {
53
  $user_ID = get_current_user_id();
54
  $user_ID = ( $user_ID ? $user_ID : '' );
55
+ $posted_value = ( FrmAppHelper::is_admin() && $_POST && isset( $_POST['item_meta'][ $this->field['id'] ] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
56
  $action = ( isset( $args['action'] ) ? $args['action'] : ( isset( $args['form_action'] ) ? $args['form_action'] : '' ) );
57
  $updating = $action == 'update';
58
  return ( is_numeric( $this->field['value'] ) || $posted_value || $updating ) ? $this->field['value'] : $user_ID;
classes/views/frm-entries/direct.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  <?php FrmFormsController::maybe_load_css( $form, 1, false ); ?>
14
  </head>
15
  <body class="frm_preview_page">
16
- <?php echo FrmFormsController::show_form( $form->id, '', true, true ); // WPCS: XSS ok. ?>
17
  <?php wp_footer(); ?>
18
  </body>
19
  </html>
13
  <?php FrmFormsController::maybe_load_css( $form, 1, false ); ?>
14
  </head>
15
  <body class="frm_preview_page">
16
+ <?php echo FrmFormsController::show_form( $form->id, '', true, true ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
17
  <?php wp_footer(); ?>
18
  </body>
19
  </html>
classes/views/frm-entries/errors.php CHANGED
@@ -16,7 +16,7 @@ if ( isset( $message ) && $message != '' ) {
16
  FrmFormsHelper::maybe_get_scroll_js( $form->id );
17
 
18
  // we need to allow scripts here for javascript in the success message
19
- echo $message; // WPCS: XSS ok.
20
  }
21
  }
22
 
16
  FrmFormsHelper::maybe_get_scroll_js( $form->id );
17
 
18
  // we need to allow scripts here for javascript in the success message
19
+ echo FrmAppHelper::maybe_kses( $message ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
20
  }
21
  }
22
 
classes/views/frm-entries/form.php CHANGED
@@ -30,8 +30,8 @@ $frm_hide_fields = FrmAppHelper::get_post_param( 'frm_hide_fields_' . $form->id,
30
  ?>
31
  <div class="frm_form_fields <?php echo esc_attr( apply_filters( 'frm_form_fields_class', '', $values ) ); ?>">
32
  <fieldset>
33
- <?php echo FrmFormsHelper::replace_shortcodes( $values['before_html'], $form, $title, $description ); // WPCS: XSS ok. ?>
34
- <div <?php echo wp_strip_all_tags( apply_filters( 'frm_fields_container_class', 'class="frm_fields_container"' ) ); // WPCS: XSS ok. ?>>
35
  <?php do_action( 'frm_after_title', compact( 'form' ) ); ?>
36
  <input type="hidden" name="frm_action" value="<?php echo esc_attr( $form_action ); ?>" />
37
  <input type="hidden" name="form_id" value="<?php echo esc_attr( $form->id ); ?>" />
@@ -86,7 +86,7 @@ if ( isset( $frm_vars['collapse_div'] ) && $frm_vars['collapse_div'] ) {
86
  unset( $frm_vars['collapse_div'] );
87
  }
88
 
89
- echo FrmFormsHelper::replace_shortcodes( $values['after_html'], $form ); // WPCS: XSS ok.
90
 
91
  if ( FrmForm::show_submit( $form ) ) {
92
  $copy_values = $values;
@@ -103,7 +103,7 @@ if ( FrmForm::show_submit( $form ) ) {
103
  include FrmAppHelper::plugin_path() . '/classes/views/frm-entries/errors.php';
104
  $message = ob_get_clean();
105
 
106
- echo preg_replace( '~\<\/div\>(?!.*\<\/div\>)~', $message . '</div>', $clip ); // WPCS: XSS ok.
107
  } else {
108
  FrmFormsHelper::get_custom_submit( $copy_values['submit_html'], $form, $submit, $form_action, $copy_values );
109
  }
30
  ?>
31
  <div class="frm_form_fields <?php echo esc_attr( apply_filters( 'frm_form_fields_class', '', $values ) ); ?>">
32
  <fieldset>
33
+ <?php echo FrmAppHelper::maybe_kses( FrmFormsHelper::replace_shortcodes( $values['before_html'], $form, $title, $description ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
34
+ <div <?php echo wp_strip_all_tags( apply_filters( 'frm_fields_container_class', 'class="frm_fields_container"' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
35
  <?php do_action( 'frm_after_title', compact( 'form' ) ); ?>
36
  <input type="hidden" name="frm_action" value="<?php echo esc_attr( $form_action ); ?>" />
37
  <input type="hidden" name="form_id" value="<?php echo esc_attr( $form->id ); ?>" />
86
  unset( $frm_vars['collapse_div'] );
87
  }
88
 
89
+ echo FrmAppHelper::maybe_kses( FrmFormsHelper::replace_shortcodes( $values['after_html'], $form ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
90
 
91
  if ( FrmForm::show_submit( $form ) ) {
92
  $copy_values = $values;
103
  include FrmAppHelper::plugin_path() . '/classes/views/frm-entries/errors.php';
104
  $message = ob_get_clean();
105
 
106
+ echo preg_replace( '~\<\/div\>(?!.*\<\/div\>)~', $message . '</div>', $clip ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
107
  } else {
108
  FrmFormsHelper::get_custom_submit( $copy_values['submit_html'], $form, $submit, $form_action, $copy_values );
109
  }
classes/views/frm-entries/new.php CHANGED
@@ -5,9 +5,9 @@ if ( ! defined( 'ABSPATH' ) ) {
5
 
6
  FrmAntiSpam::maybe_init( $form->id );
7
  ?>
8
- <div class="frm_forms <?php echo esc_attr( FrmFormsHelper::get_form_style_class( $values ) ); ?>" id="frm_form_<?php echo esc_attr( $form->id ); ?>_container" <?php echo wp_strip_all_tags( apply_filters( 'frm_form_div_attributes', '', $form ) ); // WPCS: XSS ok. ?>>
9
  <?php if ( ! isset( $include_form_tag ) || $include_form_tag ) { ?>
10
- <form enctype="<?php echo esc_attr( apply_filters( 'frm_form_enctype', 'multipart/form-data', $form ) ); ?>" method="post" class="frm-show-form <?php do_action( 'frm_form_classes', $form ); ?>" id="form_<?php echo esc_attr( $form->form_key ); ?>" <?php echo $frm_settings->use_html ? '' : 'action=""'; ?> <?php echo wp_strip_all_tags( apply_filters( 'frm_form_attributes', '', $form ) ); // WPCS: XSS ok. ?>>
11
  <?php } else { ?>
12
  <div id="form_<?php echo esc_attr( $form->form_key ); ?>" class="frm-show-form <?php do_action( 'frm_form_classes', $form ); ?>" >
13
  <?php
5
 
6
  FrmAntiSpam::maybe_init( $form->id );
7
  ?>
8
+ <div class="frm_forms <?php echo esc_attr( FrmFormsHelper::get_form_style_class( $values ) ); ?>" id="frm_form_<?php echo esc_attr( $form->id ); ?>_container" <?php echo wp_strip_all_tags( apply_filters( 'frm_form_div_attributes', '', $form ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
9
  <?php if ( ! isset( $include_form_tag ) || $include_form_tag ) { ?>
10
+ <form enctype="<?php echo esc_attr( apply_filters( 'frm_form_enctype', 'multipart/form-data', $form ) ); ?>" method="post" class="frm-show-form <?php do_action( 'frm_form_classes', $form ); ?>" id="form_<?php echo esc_attr( $form->form_key ); ?>" <?php echo $frm_settings->use_html ? '' : 'action=""'; ?> <?php echo wp_strip_all_tags( apply_filters( 'frm_form_attributes', '', $form ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
11
  <?php } else { ?>
12
  <div id="form_<?php echo esc_attr( $form->form_key ); ?>" class="frm-show-form <?php do_action( 'frm_form_classes', $form ); ?>" >
13
  <?php
classes/views/frm-entries/show.php CHANGED
@@ -38,7 +38,7 @@ if ( ! defined( 'ABSPATH' ) ) {
38
  </span>
39
  </h3>
40
  <?php
41
- echo FrmEntriesController::show_entry_shortcode( // WPCS: XSS ok.
42
  array(
43
  'id' => $entry->id,
44
  'entry' => $entry,
38
  </span>
39
  </h3>
40
  <?php
41
+ echo FrmEntriesController::show_entry_shortcode( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
42
  array(
43
  'id' => $entry->id,
44
  'entry' => $entry,
classes/views/frm-entries/sidebar-shared.php CHANGED
@@ -79,8 +79,8 @@ if ( ! defined( 'ABSPATH' ) ) {
79
  printf(
80
  /* translators: %1$s: User display name. */
81
  esc_html__( 'Created by: %1$s', 'formidable' ),
82
- FrmAppHelper::kses( FrmFieldsHelper::get_user_display_name( $entry->user_id, 'display_name', array( 'link' => true ) ), array( 'a' ) )
83
- ); // WPCS: XSS ok.
84
  ?>
85
  </div>
86
  <?php } ?>
@@ -93,8 +93,8 @@ if ( ! defined( 'ABSPATH' ) ) {
93
  printf(
94
  /* translators: %1$s: User display name. */
95
  esc_html__( 'Updated by: %1$s', 'formidable' ),
96
- FrmAppHelper::kses( FrmFieldsHelper::get_user_display_name( $entry->updated_by, 'display_name', array( 'link' => true ) ), array( 'a' ) )
97
- ); // WPCS: XSS ok.
98
  ?>
99
  </div>
100
  <?php } ?>
79
  printf(
80
  /* translators: %1$s: User display name. */
81
  esc_html__( 'Created by: %1$s', 'formidable' ),
82
+ FrmAppHelper::kses( FrmFieldsHelper::get_user_display_name( $entry->user_id, 'display_name', array( 'link' => true ) ), array( 'a' ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
83
+ );
84
  ?>
85
  </div>
86
  <?php } ?>
93
  printf(
94
  /* translators: %1$s: User display name. */
95
  esc_html__( 'Updated by: %1$s', 'formidable' ),
96
+ FrmAppHelper::kses( FrmFieldsHelper::get_user_display_name( $entry->updated_by, 'display_name', array( 'link' => true ) ), array( 'a' ) ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
97
+ );
98
  ?>
99
  </div>
100
  <?php } ?>
classes/views/frm-fields/back-end/ajax-field-placeholder.php CHANGED
@@ -5,5 +5,5 @@ if ( ! defined( 'ABSPATH' ) ) {
5
  ?>
6
  <li id="frm_field_id_<?php echo esc_attr( $field_object->id ); ?>" class="<?php echo esc_attr( $li_classes ); ?> frm_field_loading" data-fid="<?php echo esc_attr( $field_object->id ); ?>" data-formid="<?php echo esc_attr( 'divider' == $field_object->type ? FrmField::get_option( $field_object, 'form_select' ) : $field_object->form_id ); ?>" data-ftype="<?php echo esc_attr( $display['type'] ); ?>">
7
  <span class="frm-wait frm_visible_spinner"></span>
8
- <span class="frm_hidden_fdata frm_hidden"><?php echo htmlspecialchars( json_encode( $field_object ) ); // WPCS: XSS ok. ?></span>
9
  </li>
5
  ?>
6
  <li id="frm_field_id_<?php echo esc_attr( $field_object->id ); ?>" class="<?php echo esc_attr( $li_classes ); ?> frm_field_loading" data-fid="<?php echo esc_attr( $field_object->id ); ?>" data-formid="<?php echo esc_attr( 'divider' == $field_object->type ? FrmField::get_option( $field_object, 'form_select' ) : $field_object->form_id ); ?>" data-ftype="<?php echo esc_attr( $display['type'] ); ?>">
7
  <span class="frm-wait frm_visible_spinner"></span>
8
+ <span class="frm_hidden_fdata frm_hidden"><?php echo htmlspecialchars( json_encode( $field_object ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></span>
9
  </li>
classes/views/frm-fields/back-end/dropdown-field.php CHANGED
@@ -3,36 +3,15 @@ if ( ! defined( 'ABSPATH' ) ) {
3
  die( 'You are not allowed to call this page directly.' );
4
  }
5
 
6
- if ( isset( $field['post_field'] ) && 'post_category' === $field['post_field'] && FrmAppHelper::pro_is_installed() ) {
7
- echo FrmProPost::get_category_dropdown( // WPCS: XSS ok.
8
- $field,
9
- array(
10
- 'name' => $field_name,
11
- 'id' => 'placeholder_id',
12
- 'location' => 'form_builder',
13
- )
14
- );
15
- } else {
16
- ?>
17
- <select id="frm_dropdown_<?php echo esc_attr( $field['id'] ); ?>"
18
- name="<?php echo esc_attr( $field_name ) . ( FrmField::is_option_true( $field, 'multiple' ) ? '[]' : '' ); ?>" <?php echo FrmField::is_option_true( $field, 'size' ) ? 'class="auto_width"' : ''; ?> <?php echo FrmField::is_option_true( $field, 'multiple' ) ? 'multiple="multiple"' : ''; ?>>
19
- <?php
20
- foreach ( $field['options'] as $opt_key => $opt ) {
21
- $field_val = apply_filters( 'frm_field_value_saved', $opt, $opt_key, $field );
22
- $opt = FrmFieldsHelper::get_label_from_array( $opt, $opt_key, $field );
23
- $selected = ( $field['default_value'] === $field_val || FrmFieldsHelper::get_other_val( array( 'opt_key', 'field' ) ) ) ? ' selected="selected"' : '';
24
- ?>
25
- <option value="<?php echo esc_attr( $field_val ); ?>"<?php echo $selected; // WPCS: XSS ok. ?>><?php echo esc_html( $opt ); ?> </option>
26
- <?php } ?>
27
- </select>
28
- <?php } ?>
29
 
30
- <div class="clear"></div>
31
- <div class="frm-show-click frm_small_top_margin">
32
- <?php if ( ! isset( $field['post_field'] ) || 'post_category' !== $field['post_field'] ) { ?>
33
- <?php do_action( 'frm_add_multiple_opts_labels', $field ); ?>
34
- <ul id="frm_field_<?php echo esc_attr( $field['id'] ); ?>_opts" class="frm_sortable_field_opts<?php echo ( count( $field['options'] ) > 10 ) ? ' frm_field_opts_list' : ''; ?>">
35
- <?php FrmFieldsHelper::show_single_option( $field ); ?>
36
- </ul>
37
- <?php } ?>
38
- </div>
3
  die( 'You are not allowed to call this page directly.' );
4
  }
5
 
6
+ $replacement = FrmAppHelper::plugin_path() . '/classes/views/frm-fields/front-end/dropdown-field.php';
7
+ _deprecated_file( esc_html( basename( __FILE__ ) ), '5.0.13', esc_html( $replacement ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
 
9
+ if ( ! isset( $read_only ) ) {
10
+ $read_only = FrmField::get_option( $field, 'read_only' );
11
+ }
12
+
13
+ if ( ! isset( $html_id ) ) {
14
+ $html_id = isset( $field['html_id'] ) ? $field['html_id'] : FrmFieldsHelper::get_html_id( $field );
15
+ }
16
+
17
+ require $replacement;
classes/views/frm-fields/back-end/field-choices.php CHANGED
@@ -6,7 +6,7 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  if ( isset( $args['field']['post_field'] ) && $args['field']['post_field'] == 'post_category' ) {
7
  ?>
8
  <div class="frm-inline-message" id="frm_has_hidden_options_<?php echo esc_attr( $args['field']['id'] ); ?>">
9
- <?php echo FrmFieldsHelper::get_term_link( $args['field']['taxonomy'] ); // WPCS: XSS ok. ?>
10
  </div>
11
  <?php
12
  } else {
6
  if ( isset( $args['field']['post_field'] ) && $args['field']['post_field'] == 'post_category' ) {
7
  ?>
8
  <div class="frm-inline-message" id="frm_has_hidden_options_<?php echo esc_attr( $args['field']['id'] ); ?>">
9
+ <?php echo FrmAppHelper::kses( FrmFieldsHelper::get_term_link( $args['field']['taxonomy'] ), array( 'a' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
10
  </div>
11
  <?php
12
  } else {
classes/views/frm-fields/back-end/field-description.php CHANGED
@@ -8,6 +8,6 @@ if ( ! defined( 'ABSPATH' ) ) {
8
  <?php esc_html_e( 'Field Description', 'formidable' ); ?>
9
  </label>
10
  <textarea name="field_options[description_<?php echo esc_attr( $field['id'] ); ?>]" class="frm_long_input" data-changeme="field_description_<?php echo esc_attr( $field['id'] ); ?>"><?php
11
- echo FrmAppHelper::esc_textarea( $field['description'] ); // WPCS: XSS ok.
12
  ?></textarea>
13
  </p>
8
  <?php esc_html_e( 'Field Description', 'formidable' ); ?>
9
  </label>
10
  <textarea name="field_options[description_<?php echo esc_attr( $field['id'] ); ?>]" class="frm_long_input" data-changeme="field_description_<?php echo esc_attr( $field['id'] ); ?>"><?php
11
+ echo FrmAppHelper::esc_textarea( $field['description'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
12
  ?></textarea>
13
  </p>
classes/views/frm-fields/back-end/html-content.php CHANGED
@@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) {
18
  );
19
  ?>
20
  <textarea name="field_options[description_<?php echo absint( $field['id'] ); ?>]" id="frm_description_<?php echo esc_attr( $field['id'] ); ?>" rows="8"><?php
21
- echo FrmAppHelper::esc_textarea( $field['description'] ); // WPCS: XSS ok.
22
  ?></textarea>
23
  </span>
24
  </p>
18
  );
19
  ?>
20
  <textarea name="field_options[description_<?php echo absint( $field['id'] ); ?>]" id="frm_description_<?php echo esc_attr( $field['id'] ); ?>" rows="8"><?php
21
+ echo FrmAppHelper::esc_textarea( $field['description'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
22
  ?></textarea>
23
  </span>
24
  </p>
classes/views/frm-fields/back-end/radio-field.php CHANGED
@@ -23,10 +23,10 @@ if ( isset( $field['post_field'] ) && $field['post_field'] === 'post_category' )
23
  $other_args = FrmFieldsHelper::prepare_other_input( compact( 'field_name', 'opt_key', 'field' ), $other_opt, $checked );
24
  ?>
25
  <input type="radio" name="<?php echo esc_attr( $field_name ); ?>" id="<?php echo esc_attr( $html_id . '-' . $opt_key ); ?>" value="<?php echo esc_attr( $field_val ); ?>" <?php
26
- echo $checked; // WPCS: XSS ok.
27
  do_action( 'frm_field_input_html', $field );
28
  ?>/>
29
- <?php echo ' ' . FrmAppHelper::kses( $opt, 'all' ); // WPCS: XSS ok. ?>
30
  </label>
31
  <?php
32
  FrmFieldsHelper::include_other_input(
23
  $other_args = FrmFieldsHelper::prepare_other_input( compact( 'field_name', 'opt_key', 'field' ), $other_opt, $checked );
24
  ?>
25
  <input type="radio" name="<?php echo esc_attr( $field_name ); ?>" id="<?php echo esc_attr( $html_id . '-' . $opt_key ); ?>" value="<?php echo esc_attr( $field_val ); ?>" <?php
26
+ echo $checked; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
27
  do_action( 'frm_field_input_html', $field );
28
  ?>/>
29
+ <?php echo ' ' . FrmAppHelper::kses( $opt, 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
30
  </label>
31
  <?php
32
  FrmFieldsHelper::include_other_input(
classes/views/frm-fields/back-end/settings.php CHANGED
@@ -167,7 +167,7 @@ do_action( 'frm_before_field_options', $field, compact( 'field_obj', 'display',
167
  if ( $display['type'] === 'textarea' || $display['type'] === 'rte' ) {
168
  ?>
169
  <textarea name="<?php echo esc_attr( $default_name ); ?>" class="default-value-field" id="frm_default_value_<?php echo esc_attr( $field['id'] ); ?>" rows="3" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>"><?php
170
- echo FrmAppHelper::esc_textarea( $default_value ); // WPCS: XSS ok.
171
  ?></textarea>
172
  <?php
173
  } else {
@@ -193,7 +193,7 @@ do_action( 'frm_before_field_options', $field, compact( 'field_obj', 'display',
193
  if ( $display['type'] === 'textarea' || $display['type'] === 'rte' ) {
194
  ?>
195
  <textarea name="field_options[placeholder_<?php echo esc_attr( $field['id'] ); ?>]" id="frm_placeholder_<?php echo esc_attr( $field['id'] ); ?>" rows="3" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>" data-changeatt="placeholder"><?php
196
- echo FrmAppHelper::esc_textarea( $field['placeholder'] ); // WPCS: XSS ok.
197
  ?></textarea>
198
  <?php
199
  } else {
167
  if ( $display['type'] === 'textarea' || $display['type'] === 'rte' ) {
168
  ?>
169
  <textarea name="<?php echo esc_attr( $default_name ); ?>" class="default-value-field" id="frm_default_value_<?php echo esc_attr( $field['id'] ); ?>" rows="3" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>"><?php
170
+ echo FrmAppHelper::esc_textarea( $default_value ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
171
  ?></textarea>
172
  <?php
173
  } else {
193
  if ( $display['type'] === 'textarea' || $display['type'] === 'rte' ) {
194
  ?>
195
  <textarea name="field_options[placeholder_<?php echo esc_attr( $field['id'] ); ?>]" id="frm_placeholder_<?php echo esc_attr( $field['id'] ); ?>" rows="3" data-changeme="field_<?php echo esc_attr( $field['field_key'] ); ?>" data-changeatt="placeholder"><?php
196
+ echo FrmAppHelper::esc_textarea( $field['placeholder'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
197
  ?></textarea>
198
  <?php
199
  } else {
classes/views/frm-fields/front-end/checkbox-field.php CHANGED
@@ -53,12 +53,12 @@ if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' )
53
  }
54
 
55
  ?><input type="checkbox" name="<?php echo esc_attr( $field_name ); ?>[<?php echo esc_attr( $other_opt ? $opt_key : '' ); ?>]" id="<?php echo esc_attr( $html_id ); ?>-<?php echo esc_attr( $opt_key ); ?>" value="<?php echo esc_attr( $field_val ); ?>"<?php
56
- echo $checked . ' '; // WPCS: XSS ok.
57
  do_action( 'frm_field_input_html', $field );
58
  ?> /><?php
59
 
60
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
61
- echo ' ' . FrmAppHelper::kses( $label, 'all' ) . '</label>'; // WPCS: XSS ok.
62
  }
63
 
64
  $other_args = array(
53
  }
54
 
55
  ?><input type="checkbox" name="<?php echo esc_attr( $field_name ); ?>[<?php echo esc_attr( $other_opt ? $opt_key : '' ); ?>]" id="<?php echo esc_attr( $html_id ); ?>-<?php echo esc_attr( $opt_key ); ?>" value="<?php echo esc_attr( $field_val ); ?>"<?php
56
+ echo $checked . ' '; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
57
  do_action( 'frm_field_input_html', $field );
58
  ?> /><?php
59
 
60
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
61
+ echo ' ' . FrmAppHelper::kses( $label, 'all' ) . '</label>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
62
  }
63
 
64
  $other_args = array(
classes/views/frm-fields/front-end/combo-field/combo-field.php CHANGED
@@ -19,27 +19,22 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  die( 'You are not allowed to call this page directly.' );
20
  }
21
 
22
- $field = $args['field'];
23
- $field_id = $field['id'];
24
- $field_label = $field['name'];
25
- $field_value = $field['value'];
26
- $sub_fields = $args['sub_fields'];
27
- $html_id = $args['html_id'];
28
- $field_name = $args['field_name'];
29
- $errors = $args['errors'];
30
-
31
- $inputs_attrs = $this->get_inputs_container_attrs();
32
- $inputs_attrs_str = '';
33
- foreach ( $inputs_attrs as $key => $inputs_attr ) {
34
- $inputs_attrs_str .= sprintf( ' %s="%s"', esc_attr( $key ), esc_attr( $inputs_attr ) );
35
- }
36
  ?>
37
  <fieldset aria-labelledby="<?php echo esc_attr( $html_id ); ?>_label">
38
  <legend class="frm_screen_reader frm_hidden">
39
  <?php echo esc_html( $field_label ); ?>
40
  </legend>
41
 
42
- <div<?php echo $inputs_attrs_str; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
43
  <?php
44
  foreach ( $sub_fields as $name => $sub_field ) {
45
  $sub_field['name'] = $name;
19
  die( 'You are not allowed to call this page directly.' );
20
  }
21
 
22
+ $field = $args['field'];
23
+ $field_id = $field['id'];
24
+ $field_label = $field['name'];
25
+ $field_value = $field['value'];
26
+ $sub_fields = $args['sub_fields'];
27
+ $html_id = $args['html_id'];
28
+ $field_name = $args['field_name'];
29
+ $errors = $args['errors'];
30
+ $inputs_attrs = $this->get_inputs_container_attrs();
 
 
 
 
 
31
  ?>
32
  <fieldset aria-labelledby="<?php echo esc_attr( $html_id ); ?>_label">
33
  <legend class="frm_screen_reader frm_hidden">
34
  <?php echo esc_html( $field_label ); ?>
35
  </legend>
36
 
37
+ <div <?php FrmAppHelper::array_to_html_params( $inputs_attrs, true ); ?>>
38
  <?php
39
  foreach ( $sub_fields as $name => $sub_field ) {
40
  $sub_field['name'] = $name;
classes/views/frm-fields/front-end/dropdown-field.php CHANGED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
4
  }
5
 
6
  if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' && FrmAppHelper::pro_is_installed() ) {
7
- echo FrmProPost::get_category_dropdown( // WPCS: XSS ok.
8
  $field,
9
  array(
10
  'location' => 'front',
4
  }
5
 
6
  if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' && FrmAppHelper::pro_is_installed() ) {
7
+ echo FrmProPost::get_category_dropdown( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
8
  $field,
9
  array(
10
  'location' => 'front',
classes/views/frm-fields/front-end/radio-field.php CHANGED
@@ -45,12 +45,12 @@ if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' )
45
  ?>
46
  <input type="radio" name="<?php echo esc_attr( $field_name ); ?>" id="<?php echo esc_attr( $html_id . '-' . $opt_key ); ?>" value="<?php echo esc_attr( $field_val ); ?>"
47
  <?php
48
- echo $checked . ' '; // WPCS: XSS ok.
49
  do_action( 'frm_field_input_html', $field );
50
  ?>/><?php
51
 
52
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
53
- echo ' ' . FrmAppHelper::kses( $label, 'all' ) . '</label>'; // WPCS: XSS ok.
54
  }
55
 
56
  $other_args = array(
45
  ?>
46
  <input type="radio" name="<?php echo esc_attr( $field_name ); ?>" id="<?php echo esc_attr( $html_id . '-' . $opt_key ); ?>" value="<?php echo esc_attr( $field_val ); ?>"
47
  <?php
48
+ echo $checked . ' '; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
49
  do_action( 'frm_field_input_html', $field );
50
  ?>/><?php
51
 
52
  if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
53
+ echo ' ' . FrmAppHelper::kses( $label, 'all' ) . '</label>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
54
  }
55
 
56
  $other_args = array(
classes/views/frm-fields/input.php CHANGED
@@ -6,4 +6,4 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  _deprecated_file( esc_html( basename( __FILE__ ) ), '3.0', null, 'FrmFieldType::field_input' );
7
 
8
  $field_obj = FrmFieldFactory::get_field_type( $field['type'], $field );
9
- echo $field_obj->include_front_field_input( compact( 'errors', 'form', 'html_id', 'field_name' ), $atts ); // WPCS: XSS ok.
6
  _deprecated_file( esc_html( basename( __FILE__ ) ), '3.0', null, 'FrmFieldType::field_input' );
7
 
8
  $field_obj = FrmFieldFactory::get_field_type( $field['type'], $field );
9
+ echo $field_obj->include_front_field_input( compact( 'errors', 'form', 'html_id', 'field_name' ), $atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
classes/views/frm-form-actions/_action_icon.php CHANGED
@@ -7,13 +7,11 @@ if ( ! defined( 'ABSPATH' ) ) {
7
  <a href="javascript:void(0)" class="<?php echo esc_attr( $classes ); ?>"
8
  data-limit="<?php echo esc_attr( $action_control->action_options['limit'] ); ?>"
9
  data-actiontype="<?php echo esc_attr( $action_control->id_base ); ?>"
10
- <?php
11
- echo FrmAppHelper::array_to_html_params( $data ); // WPCS: XSS ok.
12
- ?>
13
  >
14
  <span class="frm-outer-circle">
15
  <span class="frm-inner-circle<?php echo esc_attr( strpos( $action_control->action_options['classes'], 'frm-inverse' ) === false ? '' : ' frm-inverse' ); ?>" <?php
16
- echo FrmAppHelper::array_to_html_params( $icon_atts ); // WPCS: XSS ok.
17
  ?>>
18
  <?php FrmAppHelper::icon_by_class( $action_control->action_options['classes'], $icon_atts ); ?>
19
  </span>
7
  <a href="javascript:void(0)" class="<?php echo esc_attr( $classes ); ?>"
8
  data-limit="<?php echo esc_attr( $action_control->action_options['limit'] ); ?>"
9
  data-actiontype="<?php echo esc_attr( $action_control->id_base ); ?>"
10
+ <?php FrmAppHelper::array_to_html_params( $data, true ); ?>
 
 
11
  >
12
  <span class="frm-outer-circle">
13
  <span class="frm-inner-circle<?php echo esc_attr( strpos( $action_control->action_options['classes'], 'frm-inverse' ) === false ? '' : ' frm-inverse' ); ?>" <?php
14
+ FrmAppHelper::array_to_html_params( $icon_atts, true );
15
  ?>>
16
  <?php FrmAppHelper::icon_by_class( $action_control->action_options['classes'], $icon_atts ); ?>
17
  </span>
classes/views/frm-form-actions/_email_settings.php CHANGED
@@ -76,7 +76,7 @@ if ( ! defined( 'ABSPATH' ) ) {
76
  <label for="<?php echo esc_attr( $this->get_field_id( 'email_message' ) ); ?>">
77
  <?php esc_html_e( 'Message', 'formidable' ); ?>
78
  </label>
79
- <textarea name="<?php echo esc_attr( $this->get_field_name( 'email_message' ) ); ?>" class="frm_not_email_message frm_long_input" id="<?php echo esc_attr( $this->get_field_id( 'email_message' ) ); ?>" cols="50" rows="5"><?php echo FrmAppHelper::esc_textarea( $form_action->post_content['email_message'] ); // WPCS: XSS ok. ?></textarea>
80
  </p>
81
 
82
  <label for="<?php echo esc_attr( $this->get_field_id( 'inc_user_info' ) ); ?>">
76
  <label for="<?php echo esc_attr( $this->get_field_id( 'email_message' ) ); ?>">
77
  <?php esc_html_e( 'Message', 'formidable' ); ?>
78
  </label>
79
+ <textarea name="<?php echo esc_attr( $this->get_field_name( 'email_message' ) ); ?>" class="frm_not_email_message frm_long_input" id="<?php echo esc_attr( $this->get_field_id( 'email_message' ) ); ?>" cols="50" rows="5"><?php echo FrmAppHelper::esc_textarea( $form_action->post_content['email_message'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
80
  </p>
81
 
82
  <label for="<?php echo esc_attr( $this->get_field_id( 'inc_user_info' ) ); ?>">
classes/views/frm-form-actions/settings.php CHANGED
@@ -56,9 +56,7 @@ if ( ! defined( 'ABSPATH' ) ) {
56
  <li class="frm-action frm-not-installed">
57
  <a href="javascript:void(0)" class="frm-single-action frm_show_upgrade">
58
  <span class="frm-outer-circle">
59
- <span class="frm-inner-circle" <?php
60
- echo FrmAppHelper::array_to_html_params( $icon_atts ); // WPCS: XSS ok.
61
- ?>>
62
  <?php
63
  $icon_atts = array();
64
  if ( isset( $group['color'] ) ) {
56
  <li class="frm-action frm-not-installed">
57
  <a href="javascript:void(0)" class="frm-single-action frm_show_upgrade">
58
  <span class="frm-outer-circle">
59
+ <span class="frm-inner-circle" <?php FrmAppHelper::array_to_html_params( $icon_atts, true ); ?>>
 
 
60
  <?php
61
  $icon_atts = array();
62
  if ( isset( $group['color'] ) ) {
classes/views/frm-forms/add_field.php CHANGED
@@ -35,7 +35,7 @@ if ( ! defined( 'ABSPATH' ) ) {
35
  </div>
36
 
37
  <label class="frm_primary_label" id="field_label_<?php echo esc_attr( $field['id'] ); ?>">
38
- <?php echo FrmAppHelper::kses( force_balance_tags( $field['name'] ), 'all' ); // WPCS: XSS ok. ?>
39
  <span class="frm_required <?php echo esc_attr( FrmField::is_required( $field ) ? '' : 'frm_hidden' ); ?>">
40
  <?php echo esc_html( $field['required_indicator'] ); ?>
41
  </span>
@@ -50,7 +50,7 @@ if ( ! defined( 'ABSPATH' ) ) {
50
  </div>
51
  <?php if ( $display['description'] || in_array( $field['type'], array( 'address', 'credit_card' ), true ) ) { ?>
52
  <div class="frm_description" id="field_description_<?php echo esc_attr( $field['id'] ); ?>">
53
- <?php echo FrmAppHelper::kses( force_balance_tags( $field['description'] ), 'all' ); // WPCS: XSS ok. ?>
54
  </div>
55
  <?php } ?>
56
  </div>
@@ -62,7 +62,7 @@ if ( ! defined( 'ABSPATH' ) ) {
62
  <input type="text" id="conf_field_<?php echo esc_attr( $field['field_key'] ); ?>" name="field_options[conf_input_<?php echo esc_attr( $field['id'] ); ?>]" placeholder="<?php echo esc_attr( $field['conf_input'] ); ?>" class="dyn_default_value" />
63
  </div>
64
  <div id="conf_field_description_<?php echo esc_attr( $field['id'] ); ?>" class="frm_description"><?php
65
- echo FrmAppHelper::kses( force_balance_tags( $field['conf_desc'] ), 'all' ); // WPCS: XSS ok.
66
  ?></div>
67
  </div>
68
  </div>
35
  </div>
36
 
37
  <label class="frm_primary_label" id="field_label_<?php echo esc_attr( $field['id'] ); ?>">
38
+ <?php echo FrmAppHelper::kses( force_balance_tags( $field['name'] ), 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
39
  <span class="frm_required <?php echo esc_attr( FrmField::is_required( $field ) ? '' : 'frm_hidden' ); ?>">
40
  <?php echo esc_html( $field['required_indicator'] ); ?>
41
  </span>
50
  </div>
51
  <?php if ( $display['description'] || in_array( $field['type'], array( 'address', 'credit_card' ), true ) ) { ?>
52
  <div class="frm_description" id="field_description_<?php echo esc_attr( $field['id'] ); ?>">
53
+ <?php echo FrmAppHelper::kses( force_balance_tags( $field['description'] ), 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
54
  </div>
55
  <?php } ?>
56
  </div>
62
  <input type="text" id="conf_field_<?php echo esc_attr( $field['field_key'] ); ?>" name="field_options[conf_input_<?php echo esc_attr( $field['id'] ); ?>]" placeholder="<?php echo esc_attr( $field['conf_input'] ); ?>" class="dyn_default_value" />
63
  </div>
64
  <div id="conf_field_description_<?php echo esc_attr( $field['id'] ); ?>" class="frm_description"><?php
65
+ echo FrmAppHelper::kses( force_balance_tags( $field['conf_desc'] ), 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
66
  ?></div>
67
  </div>
68
  </div>
classes/views/frm-forms/add_field_links.php CHANGED
@@ -88,7 +88,7 @@ foreach ( $pro_fields as $field_key => $field_type ) {
88
  <ul class="frm-dropdown-menu" role="menu" aria-labelledby="frm-<?php echo esc_attr( $field_key ); ?>Drop">
89
  <?php foreach ( $field_type['types'] as $k => $type ) { ?>
90
  <li class="frm_t<?php echo esc_attr( $field_key ); ?>" id="<?php echo esc_attr( $field_key ); ?>|<?php echo esc_attr( $k ); ?>">
91
- <?php echo FrmAppHelper::kses( apply_filters( 'frmpro_field_links', $type, $id, $field_key . '|' . $k ), array( 'a', 'i', 'span' ) ); // WPCS: XSS ok. ?>
92
  </li>
93
  <?php
94
  unset( $k, $type );
88
  <ul class="frm-dropdown-menu" role="menu" aria-labelledby="frm-<?php echo esc_attr( $field_key ); ?>Drop">
89
  <?php foreach ( $field_type['types'] as $k => $type ) { ?>
90
  <li class="frm_t<?php echo esc_attr( $field_key ); ?>" id="<?php echo esc_attr( $field_key ); ?>|<?php echo esc_attr( $k ); ?>">
91
+ <?php echo FrmAppHelper::kses( apply_filters( 'frmpro_field_links', $type, $id, $field_key . '|' . $k ), array( 'a', 'i', 'span' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
92
  </li>
93
  <?php
94
  unset( $k, $type );
classes/views/frm-forms/settings-advanced.php CHANGED
@@ -26,7 +26,7 @@ if ( ! defined( 'ABSPATH' ) ) {
26
  <label for="frm_form_description">
27
  <?php esc_html_e( 'Form Description', 'formidable' ); ?>
28
  </label>
29
- <textarea id="frm_form_description" name="description" cols="50" rows="4"><?php echo FrmAppHelper::esc_textarea( $values['description'] ); // WPCS: XSS ok. ?></textarea>
30
  </p>
31
 
32
 
@@ -172,7 +172,7 @@ if ( ! defined( 'ABSPATH' ) ) {
172
  <tr class="success_action_message_box success_action_box<?php echo esc_attr( $values['success_action'] === 'message' ? '' : ' frm_hidden' ); ?>">
173
  <td class="frm_has_shortcodes frm_has_textarea">
174
  <label for="success_msg"><?php esc_html_e( 'On Submit', 'formidable' ); ?></label>
175
- <textarea id="success_msg" name="options[success_msg]" cols="50" rows="2" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['success_msg'] ); // WPCS: XSS ok. ?></textarea>
176
  </td>
177
  </tr>
178
  <?php do_action( 'frm_add_form_msg_options', $values ); ?>
26
  <label for="frm_form_description">
27
  <?php esc_html_e( 'Form Description', 'formidable' ); ?>
28
  </label>
29
+ <textarea id="frm_form_description" name="description" cols="50" rows="4"><?php echo FrmAppHelper::esc_textarea( $values['description'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
30
  </p>
31
 
32
 
172
  <tr class="success_action_message_box success_action_box<?php echo esc_attr( $values['success_action'] === 'message' ? '' : ' frm_hidden' ); ?>">
173
  <td class="frm_has_shortcodes frm_has_textarea">
174
  <label for="success_msg"><?php esc_html_e( 'On Submit', 'formidable' ); ?></label>
175
+ <textarea id="success_msg" name="options[success_msg]" cols="50" rows="2" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['success_msg'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
176
  </td>
177
  </tr>
178
  <?php do_action( 'frm_add_form_msg_options', $values ); ?>
classes/views/frm-forms/settings-html.php CHANGED
@@ -12,7 +12,7 @@ if ( ! defined( 'ABSPATH' ) ) {
12
 
13
  <p class="frm_has_shortcodes">
14
  <label><?php esc_html_e( 'Before Fields', 'formidable' ); ?></label>
15
- <textarea name="options[before_html]" rows="4" id="before_html" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['before_html'] ); // WPCS: XSS ok. ?></textarea>
16
  </p>
17
 
18
  <div id="add_html_fields">
@@ -23,7 +23,7 @@ if ( ! defined( 'ABSPATH' ) ) {
23
  ?>
24
  <p class="frm_has_shortcodes">
25
  <label><?php echo esc_html( $field['name'] ); ?></label>
26
- <textarea name="field_options[custom_html_<?php echo esc_attr( $field['id'] ); ?>]" rows="7" id="custom_html_<?php echo esc_attr( $field['id'] ); ?>" class="field_custom_html frm_long_input"><?php echo FrmAppHelper::esc_textarea( $field['custom_html'] ); // WPCS: XSS ok. ?></textarea>
27
  </p>
28
  <?php
29
  }
@@ -35,11 +35,11 @@ if ( ! defined( 'ABSPATH' ) ) {
35
 
36
  <p class="frm_has_shortcodes">
37
  <label><?php esc_html_e( 'After Fields', 'formidable' ); ?></label>
38
- <textarea name="options[after_html]" rows="3" id="after_html" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['after_html'] ); // WPCS: XSS ok. ?></textarea>
39
  </p>
40
 
41
  <p class="frm_has_shortcodes">
42
  <label><?php esc_html_e( 'Submit Button', 'formidable' ); ?></label>
43
- <textarea name="options[submit_html]" rows="3" id="submit_html" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['submit_html'] ); // WPCS: XSS ok. ?></textarea>
44
  </p>
45
  </div>
12
 
13
  <p class="frm_has_shortcodes">
14
  <label><?php esc_html_e( 'Before Fields', 'formidable' ); ?></label>
15
+ <textarea name="options[before_html]" rows="4" id="before_html" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['before_html'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
16
  </p>
17
 
18
  <div id="add_html_fields">
23
  ?>
24
  <p class="frm_has_shortcodes">
25
  <label><?php echo esc_html( $field['name'] ); ?></label>
26
+ <textarea name="field_options[custom_html_<?php echo esc_attr( $field['id'] ); ?>]" rows="7" id="custom_html_<?php echo esc_attr( $field['id'] ); ?>" class="field_custom_html frm_long_input"><?php echo FrmAppHelper::esc_textarea( $field['custom_html'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
27
  </p>
28
  <?php
29
  }
35
 
36
  <p class="frm_has_shortcodes">
37
  <label><?php esc_html_e( 'After Fields', 'formidable' ); ?></label>
38
+ <textarea name="options[after_html]" rows="3" id="after_html" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['after_html'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
39
  </p>
40
 
41
  <p class="frm_has_shortcodes">
42
  <label><?php esc_html_e( 'Submit Button', 'formidable' ); ?></label>
43
+ <textarea name="options[submit_html]" rows="3" id="submit_html" class="frm_long_input"><?php echo FrmAppHelper::esc_textarea( $values['submit_html'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
44
  </p>
45
  </div>
classes/views/frm-settings/form.php CHANGED
@@ -40,7 +40,7 @@ if ( ! defined( 'ABSPATH' ) ) {
40
  <div id="<?php echo esc_attr( $section['anchor'] ); ?>"
41
  class="<?php echo esc_attr( $section['anchor'] ); ?> tabs-panel <?php echo esc_attr( $current === $section['anchor'] ? 'frm_block' : 'frm_hidden' ); ?>">
42
  <h2 class="frm-h2">
43
- <?php echo FrmAppHelper::kses( $section['name'], array( 'span' ) ); // WPCS: XSS ok. ?>
44
  </h2>
45
  <?php if ( isset( $section['ajax'] ) ) { ?>
46
  <div class="frm_ajax_settings_tab frm_<?php echo esc_attr( $section['anchor'] ); ?>_ajax">
40
  <div id="<?php echo esc_attr( $section['anchor'] ); ?>"
41
  class="<?php echo esc_attr( $section['anchor'] ); ?> tabs-panel <?php echo esc_attr( $current === $section['anchor'] ? 'frm_block' : 'frm_hidden' ); ?>">
42
  <h2 class="frm-h2">
43
+ <?php echo FrmAppHelper::kses( $section['name'], array( 'span' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
44
  </h2>
45
  <?php if ( isset( $section['ajax'] ) ) { ?>
46
  <div class="frm_ajax_settings_tab frm_<?php echo esc_attr( $section['anchor'] ); ?>_ajax">
classes/views/frm-settings/tabs.php CHANGED
@@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) {
18
  ?>
19
  >
20
  <?php FrmAppHelper::icon_by_class( $section['icon'], array( 'aria-hidden' => 'true' ) ); ?>
21
- <?php echo FrmAppHelper::kses( $section['name'], array( 'span' ) ); // WPCS: XSS ok. ?>
22
  </a>
23
  </li>
24
  <?php } ?>
18
  ?>
19
  >
20
  <?php FrmAppHelper::icon_by_class( $section['icon'], array( 'aria-hidden' => 'true' ) ); ?>
21
+ <?php echo FrmAppHelper::kses( $section['name'], array( 'span' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
22
  </a>
23
  </li>
24
  <?php } ?>
classes/views/inbox/list.php CHANGED
@@ -50,10 +50,10 @@ foreach ( $messages as $key => $message ) {
50
  </span>
51
  </header>
52
  <div class="frm_inbox_body">
53
- <p><?php echo FrmAppHelper::kses( $message['message'], array( 'a', 'p', 'div', 'span', 'br' ) ); // WPCS: XSS ok. ?></p>
54
  </div>
55
  <footer>
56
- <?php echo FrmAppHelper::kses( $message['cta'], array( 'a' ) ); // WPCS: XSS ok. ?>
57
  </footer>
58
  </section>
59
  <?php
50
  </span>
51
  </header>
52
  <div class="frm_inbox_body">
53
+ <p><?php echo FrmAppHelper::kses( $message['message'], array( 'a', 'p', 'div', 'span', 'br' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>
54
  </div>
55
  <footer>
56
+ <?php echo FrmAppHelper::kses( $message['cta'], array( 'a' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
57
  </footer>
58
  </section>
59
  <?php
classes/views/shared/admin-header.php CHANGED
@@ -70,7 +70,7 @@ FrmInbox::maybe_show_banner();
70
  }
71
 
72
  if ( isset( $atts['nav'] ) ) {
73
- echo FrmAppHelper::kses( $atts['nav'], 'all' ); // WPCS: XSS ok.
74
  }
75
  ?>
76
  <div style="clear:right;"></div>
70
  }
71
 
72
  if ( isset( $atts['nav'] ) ) {
73
+ echo FrmAppHelper::kses( $atts['nav'], 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
74
  }
75
  ?>
76
  <div style="clear:right;"></div>
classes/views/shared/errors.php CHANGED
@@ -6,10 +6,10 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  if ( isset( $message ) && '' !== $message ) {
7
  if ( FrmAppHelper::is_admin() ) {
8
  echo '<div class="frm_updated_message">';
9
- echo FrmAppHelper::kses( $message, 'all' ); // WPCS: XSS ok.
10
  echo '</div>';
11
  } else {
12
- echo $message; // WPCS: XSS ok.
13
  }
14
  }
15
 
@@ -23,7 +23,7 @@ if ( is_array( $show_messages ) && count( $show_messages ) > 0 ) {
23
  <ul id="frm_messages">
24
  <?php
25
  foreach ( $show_messages as $m ) {
26
- echo '<li>' . FrmAppHelper::kses( $m, array( 'a', 'br', 'span', 'p' ) ) . '</li>'; // WPCS: XSS ok.
27
  }
28
  ?>
29
  </ul>
@@ -38,7 +38,7 @@ if ( isset( $warnings ) && is_array( $warnings ) && count( $warnings ) > 0 ) {
38
  <ul id="frm_warnings">
39
  <?php
40
  foreach ( $warnings as $warning ) {
41
- echo '<li>' . FrmAppHelper::kses( $warning, array( 'a', 'br' ) ) . '</li>'; // WPCS: XSS ok.
42
  }
43
  ?>
44
  </ul>
@@ -52,7 +52,7 @@ if ( isset( $errors ) && is_array( $errors ) && count( $errors ) > 0 ) {
52
  <ul id="frm_errors">
53
  <?php
54
  foreach ( $errors as $error ) {
55
- echo '<li>' . FrmAppHelper::kses( $error, array( 'a', 'br' ) ) . '</li>'; // WPCS: XSS ok.
56
  }
57
  ?>
58
  </ul>
6
  if ( isset( $message ) && '' !== $message ) {
7
  if ( FrmAppHelper::is_admin() ) {
8
  echo '<div class="frm_updated_message">';
9
+ echo FrmAppHelper::kses( $message, 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
10
  echo '</div>';
11
  } else {
12
+ echo FrmAppHelper::maybe_kses( $message ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
13
  }
14
  }
15
 
23
  <ul id="frm_messages">
24
  <?php
25
  foreach ( $show_messages as $m ) {
26
+ echo '<li>' . FrmAppHelper::kses( $m, array( 'a', 'br', 'span', 'p' ) ) . '</li>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
27
  }
28
  ?>
29
  </ul>
38
  <ul id="frm_warnings">
39
  <?php
40
  foreach ( $warnings as $warning ) {
41
+ echo '<li>' . FrmAppHelper::kses( $warning, array( 'a', 'br' ) ) . '</li>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
42
  }
43
  ?>
44
  </ul>
52
  <ul id="frm_errors">
53
  <?php
54
  foreach ( $errors as $error ) {
55
+ echo '<li>' . FrmAppHelper::kses( $error, array( 'a', 'br' ) ) . '</li>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
56
  }
57
  ?>
58
  </ul>
classes/views/shared/form-nav.php CHANGED
@@ -17,7 +17,7 @@ foreach ( $nav_items as $nav_item ) {
17
  <?php FrmAppHelper::select_current_page( $nav_item['page'], $current_page, $nav_item['current'] ); ?>
18
  <?php
19
  if ( isset( $nav_item['atts'] ) ) {
20
- echo FrmAppHelper::array_to_html_params( $nav_item['atts'] ); // WPCS: XSS ok.
21
  }
22
  ?>>
23
  <?php echo esc_html( $nav_item['label'] ); ?>
17
  <?php FrmAppHelper::select_current_page( $nav_item['page'], $current_page, $nav_item['current'] ); ?>
18
  <?php
19
  if ( isset( $nav_item['atts'] ) ) {
20
+ FrmAppHelper::array_to_html_params( $nav_item['atts'], true );
21
  }
22
  ?>>
23
  <?php echo esc_html( $nav_item['label'] ); ?>
classes/views/shared/upgrade_overlay.php CHANGED
@@ -43,7 +43,7 @@ if ( ! defined( 'ABSPATH' ) ) {
43
  $message = sprintf( esc_html( $message ), '<span class="frm_feature_label"></span>' );
44
  ?>
45
  <p id="frm-upgrade-message" data-default="<?php echo esc_attr( $message ); ?>">
46
- <?php echo FrmAppHelper::kses( $message, array( 'span' ) ); // WPCS: XSS ok. ?>
47
  </p>
48
  <?php if ( $is_pro ) { ?>
49
  <a href="<?php echo esc_url( $default_link ); ?>" class="button button-primary frm-button-primary" id="frm-upgrade-modal-link" data-default="<?php echo esc_url( $default_link ); ?>">
43
  $message = sprintf( esc_html( $message ), '<span class="frm_feature_label"></span>' );
44
  ?>
45
  <p id="frm-upgrade-message" data-default="<?php echo esc_attr( $message ); ?>">
46
+ <?php echo FrmAppHelper::kses( $message, array( 'span' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
47
  </p>
48
  <?php if ( $is_pro ) { ?>
49
  <a href="<?php echo esc_url( $default_link ); ?>" class="button button-primary frm-button-primary" id="frm-upgrade-modal-link" data-default="<?php echo esc_url( $default_link ); ?>">
classes/views/solutions/_import.php CHANGED
@@ -41,7 +41,7 @@ if ( ! defined( 'ABSPATH' ) ) {
41
  <?php } ?>
42
  />
43
  <div class="frm_image_option_container frm_label_with_image">
44
- <?php echo FrmAppHelper::kses( $info['img'], array( 'svg', 'rect', 'path' ) ); // WPCS: XSS ok. ?>
45
  <span class="frm_text_label_for_image">
46
  <?php
47
  if ( ! empty( $disabled ) ) {
@@ -54,7 +54,7 @@ if ( ! defined( 'ABSPATH' ) ) {
54
  }
55
 
56
  if ( $importing === 'form' && $disabled ) {
57
- echo FrmFormsHelper::edit_form_link( $imported[ $info['form'] ] ); // WPCS: XSS ok.
58
  } else {
59
  echo esc_html( $info['name'] );
60
  }
41
  <?php } ?>
42
  />
43
  <div class="frm_image_option_container frm_label_with_image">
44
+ <?php echo FrmAppHelper::kses( $info['img'], array( 'svg', 'rect', 'path' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
45
  <span class="frm_text_label_for_image">
46
  <?php
47
  if ( ! empty( $disabled ) ) {
54
  }
55
 
56
  if ( $importing === 'form' && $disabled ) {
57
+ echo FrmAppHelper::kses( FrmFormsHelper::edit_form_link( $imported[ $info['form'] ] ), array( 'a' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
58
  } else {
59
  echo esc_html( $info['name'] );
60
  }
classes/views/styles/custom_css.php CHANGED
@@ -37,7 +37,7 @@ if ( ! defined( 'ABSPATH' ) ) {
37
  <input type="hidden" name="frm_action" value="save_css" />
38
  <?php wp_nonce_field( 'frm_custom_css_nonce', 'frm_custom_css' ); ?>
39
 
40
- <textarea name="<?php echo esc_attr( $frm_style->get_field_name( 'custom_css' ) ); ?>" id="<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( 'false' === wp_get_current_user()->syntax_highlighting ? '' : 'hide-if-js' ); ?>"><?php echo FrmAppHelper::esc_textarea( $style->post_content['custom_css'] ); // WPCS: XSS ok. ?></textarea>
41
 
42
  <?php
43
  if ( ! empty( $settings ) && $id == 'frm_codemirror_box' ) {
37
  <input type="hidden" name="frm_action" value="save_css" />
38
  <?php wp_nonce_field( 'frm_custom_css_nonce', 'frm_custom_css' ); ?>
39
 
40
+ <textarea name="<?php echo esc_attr( $frm_style->get_field_name( 'custom_css' ) ); ?>" id="<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( 'false' === wp_get_current_user()->syntax_highlighting ? '' : 'hide-if-js' ); ?>"><?php echo FrmAppHelper::esc_textarea( $style->post_content['custom_css'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
41
 
42
  <?php
43
  if ( ! empty( $settings ) && $id == 'frm_codemirror_box' ) {
classes/views/styles/show.php CHANGED
@@ -57,7 +57,7 @@ if ( ! defined( 'ABSPATH' ) ) {
57
 
58
  <input type="hidden" name="ID" value="<?php echo esc_attr( $style->ID ); ?>" />
59
  <input type="hidden" name="frm_action" value="save" />
60
- <textarea name="<?php echo esc_attr( $frm_style->get_field_name( 'custom_css' ) ); ?>" class="frm_hidden"><?php echo FrmAppHelper::esc_textarea( $style->post_content['custom_css'] ); // WPCS: XSS ok. ?></textarea>
61
  <?php wp_nonce_field( 'frm_style_nonce', 'frm_style' ); ?>
62
  <?php FrmTipsHelper::pro_tip( 'get_styling_tip', 'p' ); ?>
63
 
57
 
58
  <input type="hidden" name="ID" value="<?php echo esc_attr( $style->ID ); ?>" />
59
  <input type="hidden" name="frm_action" value="save" />
60
+ <textarea name="<?php echo esc_attr( $frm_style->get_field_name( 'custom_css' ) ); ?>" class="frm_hidden"><?php echo FrmAppHelper::esc_textarea( $style->post_content['custom_css'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></textarea>
61
  <?php wp_nonce_field( 'frm_style_nonce', 'frm_style' ); ?>
62
  <?php FrmTipsHelper::pro_tip( 'get_styling_tip', 'p' ); ?>
63
 
classes/views/xml/forms_xml.php CHANGED
@@ -22,15 +22,15 @@ while ( $next_set = array_splice( $item_ids, 0, 20 ) ) {
22
  ?>
23
  <form>
24
  <id><?php echo absint( $form->id ); ?></id>
25
- <form_key><?php echo FrmXMLHelper::cdata( $form->form_key ); // WPCS: XSS ok. ?></form_key>
26
- <name><?php echo FrmXMLHelper::cdata( $form->name ); // WPCS: XSS ok. ?></name>
27
- <description><?php echo FrmXMLHelper::cdata( $form->description ); // WPCS: XSS ok. ?></description>
28
  <created_at><?php echo esc_html( $form->created_at ); ?></created_at>
29
  <logged_in><?php echo esc_html( $form->logged_in ); ?></logged_in>
30
  <is_template><?php echo esc_html( $form->is_template ); ?></is_template>
31
  <editable><?php echo esc_html( $form->editable ); ?></editable>
32
- <options><?php echo FrmXMLHelper::prepare_form_options_for_export( $form->options ); // WPCS: XSS ok. ?></options>
33
- <status><?php echo FrmXMLHelper::cdata( $form->status ); // WPCS: XSS ok. ?></status>
34
  <parent_form_id><?php echo esc_html( $form->parent_form_id ); ?></parent_form_id>
35
  <?php
36
 
@@ -41,16 +41,16 @@ while ( $next_set = array_splice( $item_ids, 0, 20 ) ) {
41
  ?>
42
  <field>
43
  <id><?php echo absint( $field->id ); ?></id>
44
- <field_key><?php echo FrmXMLHelper::cdata( $field->field_key ); // WPCS: XSS ok. ?></field_key>
45
- <name><?php echo FrmXMLHelper::cdata( $field->name ); // WPCS: XSS ok. ?></name>
46
- <description><?php echo FrmXMLHelper::cdata( $field->description ); // WPCS: XSS ok. ?></description>
47
- <type><?php echo FrmXMLHelper::cdata( $field->type ); // WPCS: XSS ok. ?></type>
48
- <default_value><?php echo FrmXMLHelper::cdata( $field->default_value ); // WPCS: XSS ok. ?></default_value>
49
  <field_order><?php echo absint( $field->field_order ); ?></field_order>
50
  <form_id><?php echo absint( $field->form_id ); ?></form_id>
51
  <required><?php echo absint( $field->required ); ?></required>
52
- <options><?php echo FrmXMLHelper::cdata( $field->options ); // WPCS: XSS ok. ?></options>
53
- <field_options><?php echo FrmXMLHelper::cdata( $field->field_options ); // WPCS: XSS ok. ?></field_options>
54
  </field>
55
  <?php } ?>
56
  </form>
22
  ?>
23
  <form>
24
  <id><?php echo absint( $form->id ); ?></id>
25
+ <form_key><?php echo FrmXMLHelper::cdata( $form->form_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></form_key>
26
+ <name><?php echo FrmXMLHelper::cdata( $form->name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></name>
27
+ <description><?php echo FrmXMLHelper::cdata( $form->description ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></description>
28
  <created_at><?php echo esc_html( $form->created_at ); ?></created_at>
29
  <logged_in><?php echo esc_html( $form->logged_in ); ?></logged_in>
30
  <is_template><?php echo esc_html( $form->is_template ); ?></is_template>
31
  <editable><?php echo esc_html( $form->editable ); ?></editable>
32
+ <options><?php echo FrmXMLHelper::prepare_form_options_for_export( $form->options ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></options>
33
+ <status><?php echo FrmXMLHelper::cdata( $form->status ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></status>
34
  <parent_form_id><?php echo esc_html( $form->parent_form_id ); ?></parent_form_id>
35
  <?php
36
 
41
  ?>
42
  <field>
43
  <id><?php echo absint( $field->id ); ?></id>
44
+ <field_key><?php echo FrmXMLHelper::cdata( $field->field_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></field_key>
45
+ <name><?php echo FrmXMLHelper::cdata( $field->name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></name>
46
+ <description><?php echo FrmXMLHelper::cdata( $field->description ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></description>
47
+ <type><?php echo FrmXMLHelper::cdata( $field->type ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></type>
48
+ <default_value><?php echo FrmXMLHelper::cdata( $field->default_value ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></default_value>
49
  <field_order><?php echo absint( $field->field_order ); ?></field_order>
50
  <form_id><?php echo absint( $field->form_id ); ?></form_id>
51
  <required><?php echo absint( $field->required ); ?></required>
52
+ <options><?php echo FrmXMLHelper::cdata( $field->options ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></options>
53
+ <field_options><?php echo FrmXMLHelper::cdata( $field->field_options ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></field_options>
54
  </field>
55
  <?php } ?>
56
  </form>
classes/views/xml/posts_xml.php CHANGED
@@ -28,10 +28,10 @@ while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
28
  <view>
29
  <title><?php echo esc_html( apply_filters( 'the_title_rss', $post->post_title ) ); ?></title>
30
  <link><?php the_permalink_rss(); ?></link>
31
- <post_author><?php echo FrmXMLHelper::cdata( get_the_author_meta( 'login' ) ); // WPCS: XSS ok. ?></post_author>
32
  <description></description>
33
- <content><?php echo FrmXMLHelper::cdata( apply_filters( 'the_content_export', $post->post_content ) ); // WPCS: XSS ok. ?></content>
34
- <excerpt><?php echo FrmXMLHelper::cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) ); // WPCS: XSS ok. ?></excerpt>
35
  <post_id><?php echo esc_html( $post->ID ); ?></post_id>
36
  <post_date><?php echo esc_html( $post->post_date ); ?></post_date>
37
  <post_date_gmt><?php echo esc_html( $post->post_date_gmt ); ?></post_date_gmt>
@@ -42,7 +42,7 @@ while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
42
  <post_parent><?php echo esc_html( $post->post_parent ); ?></post_parent>
43
  <menu_order><?php echo esc_html( $post->menu_order ); ?></menu_order>
44
  <post_type><?php echo esc_html( $post->post_type ); ?></post_type>
45
- <post_password><?php echo FrmXMLHelper::cdata( $post->post_password ); // WPCS: XSS ok. ?></post_password>
46
  <is_sticky><?php echo esc_html( $is_sticky ); ?></is_sticky>
47
  <?php if ( 'attachment' === $post->post_type ) : ?>
48
  <attachment_url><?php echo esc_url( wp_get_attachment_url( $post->ID ) ); ?></attachment_url>
@@ -57,7 +57,7 @@ while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
57
  ?>
58
  <postmeta>
59
  <meta_key><?php echo esc_html( $meta->meta_key ); ?></meta_key>
60
- <meta_value><?php echo FrmXMLHelper::cdata( $meta->meta_value ); // WPCS: XSS ok. ?></meta_value>
61
  </postmeta>
62
  <?php
63
  endforeach;
@@ -68,7 +68,7 @@ while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
68
 
69
  foreach ( (array) $terms as $term ) {
70
  ?>
71
- <category domain="<?php echo esc_attr( $term->taxonomy ); ?>" nicename="<?php echo esc_attr( $term->slug ); ?>"><?php echo FrmXMLHelper::cdata( $term->name ); // WPCS: XSS ok. ?></category>
72
  <?php
73
  }
74
  }
@@ -79,7 +79,7 @@ while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
79
  ?>
80
  <layout>
81
  <type><?php echo esc_html( $layout->type ); ?></type>
82
- <data><?php echo FrmXMLHelper::cdata( $layout->data ); // WPCS: XSS ok. ?></data>
83
  </layout>
84
  <?php
85
  }
@@ -109,10 +109,10 @@ foreach ( (array) $terms as $term ) {
109
  ?>
110
  <term><term_id><?php echo esc_html( $term->term_id ); ?></term_id><term_taxonomy><?php echo esc_html( $term->taxonomy ); ?></term_taxonomy><?php
111
  if ( ! empty( $term->name ) ) {
112
- echo '<term_name>' . FrmXMLHelper::cdata( $term->name ) . '</term_name>'; // WPCS: XSS ok.
113
  }
114
  if ( ! empty( $term->description ) ) {
115
- echo '<term_description>' . FrmXMLHelper::cdata( $term->description ) . '</term_description>'; // WPCS: XSS ok.
116
  }
117
  echo '<term_slug>' . esc_html( $term->slug ) . '</term_slug>';
118
  echo '</term>';
28
  <view>
29
  <title><?php echo esc_html( apply_filters( 'the_title_rss', $post->post_title ) ); ?></title>
30
  <link><?php the_permalink_rss(); ?></link>
31
+ <post_author><?php echo FrmXMLHelper::cdata( get_the_author_meta( 'login' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></post_author>
32
  <description></description>
33
+ <content><?php echo FrmXMLHelper::cdata( apply_filters( 'the_content_export', $post->post_content ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></content>
34
+ <excerpt><?php echo FrmXMLHelper::cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></excerpt>
35
  <post_id><?php echo esc_html( $post->ID ); ?></post_id>
36
  <post_date><?php echo esc_html( $post->post_date ); ?></post_date>
37
  <post_date_gmt><?php echo esc_html( $post->post_date_gmt ); ?></post_date_gmt>
42
  <post_parent><?php echo esc_html( $post->post_parent ); ?></post_parent>
43
  <menu_order><?php echo esc_html( $post->menu_order ); ?></menu_order>
44
  <post_type><?php echo esc_html( $post->post_type ); ?></post_type>
45
+ <post_password><?php echo FrmXMLHelper::cdata( $post->post_password ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></post_password>
46
  <is_sticky><?php echo esc_html( $is_sticky ); ?></is_sticky>
47
  <?php if ( 'attachment' === $post->post_type ) : ?>
48
  <attachment_url><?php echo esc_url( wp_get_attachment_url( $post->ID ) ); ?></attachment_url>
57
  ?>
58
  <postmeta>
59
  <meta_key><?php echo esc_html( $meta->meta_key ); ?></meta_key>
60
+ <meta_value><?php echo FrmXMLHelper::cdata( $meta->meta_value ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></meta_value>
61
  </postmeta>
62
  <?php
63
  endforeach;
68
 
69
  foreach ( (array) $terms as $term ) {
70
  ?>
71
+ <category domain="<?php echo esc_attr( $term->taxonomy ); ?>" nicename="<?php echo esc_attr( $term->slug ); ?>"><?php echo FrmXMLHelper::cdata( $term->name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></category>
72
  <?php
73
  }
74
  }
79
  ?>
80
  <layout>
81
  <type><?php echo esc_html( $layout->type ); ?></type>
82
+ <data><?php echo FrmXMLHelper::cdata( $layout->data ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></data>
83
  </layout>
84
  <?php
85
  }
109
  ?>
110
  <term><term_id><?php echo esc_html( $term->term_id ); ?></term_id><term_taxonomy><?php echo esc_html( $term->taxonomy ); ?></term_taxonomy><?php
111
  if ( ! empty( $term->name ) ) {
112
+ echo '<term_name>' . FrmXMLHelper::cdata( $term->name ) . '</term_name>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
113
  }
114
  if ( ! empty( $term->description ) ) {
115
+ echo '<term_description>' . FrmXMLHelper::cdata( $term->description ) . '</term_description>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
116
  }
117
  echo '<term_slug>' . esc_html( $term->slug ) . '</term_slug>';
118
  echo '</term>';
classes/widgets/FrmShowForm.php CHANGED
@@ -13,11 +13,11 @@ class FrmShowForm extends WP_Widget {
13
  public function widget( $args, $instance ) {
14
  $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
15
 
16
- echo FrmAppHelper::kses( $args['before_widget'], 'all' ); // WPCS: XSS ok.
17
 
18
  echo '<div class="frm_form_widget">';
19
  if ( $title ) {
20
- echo FrmAppHelper::kses( $args['before_title'] . stripslashes( $title ) . $args['after_title'], 'all' ); // WPCS: XSS ok.
21
  }
22
 
23
  $form_atts = array(
@@ -26,10 +26,10 @@ class FrmShowForm extends WP_Widget {
26
  'description' => isset( $instance['description'] ) ? $instance['description'] : false,
27
  );
28
 
29
- echo FrmFormsController::get_form_shortcode( $form_atts ); // WPCS: XSS ok.
30
 
31
  echo '</div>';
32
- echo FrmAppHelper::kses( $args['after_widget'], 'all' ); // WPCS: XSS ok.
33
  }
34
 
35
  public function update( $new_instance, $old_instance ) {
13
  public function widget( $args, $instance ) {
14
  $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
15
 
16
+ echo FrmAppHelper::kses( $args['before_widget'], 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
17
 
18
  echo '<div class="frm_form_widget">';
19
  if ( $title ) {
20
+ echo FrmAppHelper::kses( $args['before_title'] . stripslashes( $title ) . $args['after_title'], 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
21
  }
22
 
23
  $form_atts = array(
26
  'description' => isset( $instance['description'] ) ? $instance['description'] : false,
27
  );
28
 
29
+ echo FrmFormsController::get_form_shortcode( $form_atts ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
30
 
31
  echo '</div>';
32
+ echo FrmAppHelper::kses( $args['after_widget'], 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
33
  }
34
 
35
  public function update( $new_instance, $old_instance ) {
css/_single_theme.css.php CHANGED
@@ -89,7 +89,7 @@ $arrow_icons = FrmStylesHelper::arrow_icons();
89
  <?php } ?>
90
  padding:0;
91
  <?php if ( ! empty( $font ) ) { ?>
92
- font-family:<?php echo FrmAppHelper::kses( $font . $important ); // WPCS: XSS ok. ?>;
93
  <?php } ?>
94
  <?php if ( ! empty( $description_font_size ) ) { ?>
95
  font-size:<?php echo esc_html( $description_font_size . $important ); ?>;
@@ -164,7 +164,7 @@ if ( '' === $field_height || 'auto' === $field_height ) {
164
  font-weight:<?php echo esc_html( $check_weight . $important ); ?>;
165
  <?php } ?>
166
  <?php if ( ! empty( $font ) ) { ?>
167
- font-family:<?php echo FrmAppHelper::kses( $font . $important ); // WPCS: XSS ok. ?>;
168
  <?php } ?>
169
  <?php if ( ! empty( $check_font_size ) ) { ?>
170
  font-size:<?php echo esc_html( $check_font_size . $important ); ?>;
@@ -238,7 +238,7 @@ if ( '' === $field_height || 'auto' === $field_height ) {
238
  .<?php echo esc_html( $style_class ); ?> .frm-edit-page-btn {
239
  width:<?php echo esc_html( ( $submit_width == '' ? 'auto' : $submit_width ) . $important ); ?>;
240
  <?php if ( ! empty( $font ) ) { ?>
241
- font-family:<?php echo FrmAppHelper::kses( $font ); // WPCS: XSS ok. ?>;
242
  <?php } ?>
243
  font-size:<?php echo esc_html( $submit_font_size . $important ); ?>;
244
  height:<?php echo esc_html( $submit_height . $important ); ?>;
@@ -345,7 +345,7 @@ if ( '' === $field_height || 'auto' === $field_height ) {
345
  .<?php echo esc_html( $style_class ); ?> .frm_submit.frm_inline_submit::before {
346
  content:"before";
347
  <?php if ( ! empty( $font ) ) { ?>
348
- font-family:<?php echo FrmAppHelper::kses( $font ); // WPCS: XSS ok. ?>;
349
  <?php } ?>
350
  font-size:<?php echo esc_html( $font_size . $important ); ?>;
351
  color:<?php echo esc_html( $label_color . $important ); ?>;
@@ -366,7 +366,7 @@ if ( '' === $field_height || 'auto' === $field_height ) {
366
 
367
  .<?php echo esc_html( $style_class ); ?> #frm_field_cptch_number_container{
368
  <?php if ( ! empty( $font ) ) { ?>
369
- font-family:<?php echo FrmAppHelper::kses( $font ); // WPCS: XSS ok. ?>;
370
  <?php } ?>
371
  font-size:<?php echo esc_html( $font_size . $important ); ?>;
372
  color:<?php echo esc_html( $label_color . $important ); ?>;
89
  <?php } ?>
90
  padding:0;
91
  <?php if ( ! empty( $font ) ) { ?>
92
+ font-family:<?php echo FrmAppHelper::kses( $font . $important ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
93
  <?php } ?>
94
  <?php if ( ! empty( $description_font_size ) ) { ?>
95
  font-size:<?php echo esc_html( $description_font_size . $important ); ?>;
164
  font-weight:<?php echo esc_html( $check_weight . $important ); ?>;
165
  <?php } ?>
166
  <?php if ( ! empty( $font ) ) { ?>
167
+ font-family:<?php echo FrmAppHelper::kses( $font . $important ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
168
  <?php } ?>
169
  <?php if ( ! empty( $check_font_size ) ) { ?>
170
  font-size:<?php echo esc_html( $check_font_size . $important ); ?>;
238
  .<?php echo esc_html( $style_class ); ?> .frm-edit-page-btn {
239
  width:<?php echo esc_html( ( $submit_width == '' ? 'auto' : $submit_width ) . $important ); ?>;
240
  <?php if ( ! empty( $font ) ) { ?>
241
+ font-family:<?php echo FrmAppHelper::kses( $font ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
242
  <?php } ?>
243
  font-size:<?php echo esc_html( $submit_font_size . $important ); ?>;
244
  height:<?php echo esc_html( $submit_height . $important ); ?>;
345
  .<?php echo esc_html( $style_class ); ?> .frm_submit.frm_inline_submit::before {
346
  content:"before";
347
  <?php if ( ! empty( $font ) ) { ?>
348
+ font-family:<?php echo FrmAppHelper::kses( $font ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
349
  <?php } ?>
350
  font-size:<?php echo esc_html( $font_size . $important ); ?>;
351
  color:<?php echo esc_html( $label_color . $important ); ?>;
366
 
367
  .<?php echo esc_html( $style_class ); ?> #frm_field_cptch_number_container{
368
  <?php if ( ! empty( $font ) ) { ?>
369
+ font-family:<?php echo FrmAppHelper::kses( $font ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
370
  <?php } ?>
371
  font-size:<?php echo esc_html( $font_size . $important ); ?>;
372
  color:<?php echo esc_html( $label_color . $important ); ?>;
css/custom_theme.css.php CHANGED
@@ -6,8 +6,8 @@ if ( ! defined( 'ABSPATH' ) ) {
6
  if ( ! isset( $saving ) ) {
7
  header( 'Content-type: text/css' );
8
 
9
- if ( isset( $css ) && $css ) {
10
- echo strip_tags( $css, 'all' ); // WPCS: XSS ok.
11
  die();
12
  }
13
  }
@@ -135,7 +135,7 @@ legend.frm_hidden{
135
  color:var(--title-color)<?php echo esc_html( $important ); ?>;
136
  <?php } ?>
137
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
138
- font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // WPCS: XSS ok. ?>;
139
  font-family:var(--font);
140
  <?php } ?>
141
  <?php if ( ! empty( $defaults['title_margin_top'] ) ) { ?>
@@ -151,7 +151,7 @@ legend.frm_hidden{
151
  .with_frm_style .frm_form_field.frm_html_container,
152
  .with_frm_style .frm_form_field .frm_show_it{
153
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
154
- font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // WPCS: XSS ok. ?>;
155
  font-family:var(--font);
156
  <?php } ?>
157
  <?php if ( ! empty( $defaults['form_desc_color'] ) ) { ?>
@@ -359,7 +359,7 @@ legend.frm_hidden{
359
  .with_frm_style .frm_primary_label{
360
  max-width:100%;
361
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
362
- font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // WPCS: XSS ok. ?>;
363
  font-family:var(--font);
364
  <?php } ?>
365
  <?php if ( ! empty( $defaults['font_size'] ) ) { ?>
@@ -503,7 +503,7 @@ legend.frm_hidden{
503
  font-size:var(--submit-font-size)<?php echo esc_html( $important ); ?>;
504
  <?php } ?>
505
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
506
- font-family:<?php echo FrmAppHelper::kses( $defaults['font'] . $important ); // WPCS: XSS ok. ?>;
507
  font-family:var(--font)<?php echo esc_html( $important ); ?>;
508
  <?php } ?>
509
  <?php if ( ! empty( $defaults['submit_weight'] ) ) { ?>
@@ -674,7 +674,7 @@ a.frm_save_draft{
674
 
675
  .with_frm_style a.frm_save_draft{
676
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
677
- font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // WPCS: XSS ok. ?>;
678
  font-family:var(--font);
679
  <?php } ?>
680
  font-size:<?php echo esc_html( $defaults['submit_font_size'] ); ?>;
@@ -743,7 +743,7 @@ a.frm_save_draft{
743
  .with_frm_style .frm_radio label,
744
  .with_frm_style .frm_checkbox label{
745
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
746
- font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // WPCS: XSS ok. ?>;
747
  font-family:var(--font);
748
  <?php } ?>
749
  font-size:<?php echo esc_html( $defaults['check_font_size'] . $important ); ?>;
@@ -1496,4 +1496,4 @@ select.frm_loading_lookup{
1496
  }
1497
  <?php
1498
 
1499
- echo strip_tags( $defaults['custom_css'] ); // WPCS: XSS ok.
6
  if ( ! isset( $saving ) ) {
7
  header( 'Content-type: text/css' );
8
 
9
+ if ( ! empty( $css ) ) {
10
+ echo strip_tags( $css, 'all' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
11
  die();
12
  }
13
  }
135
  color:var(--title-color)<?php echo esc_html( $important ); ?>;
136
  <?php } ?>
137
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
138
+ font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
139
  font-family:var(--font);
140
  <?php } ?>
141
  <?php if ( ! empty( $defaults['title_margin_top'] ) ) { ?>
151
  .with_frm_style .frm_form_field.frm_html_container,
152
  .with_frm_style .frm_form_field .frm_show_it{
153
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
154
+ font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
155
  font-family:var(--font);
156
  <?php } ?>
157
  <?php if ( ! empty( $defaults['form_desc_color'] ) ) { ?>
359
  .with_frm_style .frm_primary_label{
360
  max-width:100%;
361
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
362
+ font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
363
  font-family:var(--font);
364
  <?php } ?>
365
  <?php if ( ! empty( $defaults['font_size'] ) ) { ?>
503
  font-size:var(--submit-font-size)<?php echo esc_html( $important ); ?>;
504
  <?php } ?>
505
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
506
+ font-family:<?php echo FrmAppHelper::kses( $defaults['font'] . $important ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
507
  font-family:var(--font)<?php echo esc_html( $important ); ?>;
508
  <?php } ?>
509
  <?php if ( ! empty( $defaults['submit_weight'] ) ) { ?>
674
 
675
  .with_frm_style a.frm_save_draft{
676
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
677
+ font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
678
  font-family:var(--font);
679
  <?php } ?>
680
  font-size:<?php echo esc_html( $defaults['submit_font_size'] ); ?>;
743
  .with_frm_style .frm_radio label,
744
  .with_frm_style .frm_checkbox label{
745
  <?php if ( ! empty( $defaults['font'] ) ) { ?>
746
+ font-family:<?php echo FrmAppHelper::kses( $defaults['font'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
747
  font-family:var(--font);
748
  <?php } ?>
749
  font-size:<?php echo esc_html( $defaults['check_font_size'] . $important ); ?>;
1496
  }
1497
  <?php
1498
 
1499
+ echo strip_tags( $defaults['custom_css'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
deprecated/FrmDeprecated.php CHANGED
@@ -376,7 +376,7 @@ class FrmDeprecated {
376
 
377
  do_action( 'frm_after_update_field_' . $field, compact( 'id', 'value' ) );
378
 
379
- echo stripslashes( wp_kses_post( $value ) ); // WPCS: XSS ok.
380
  wp_die();
381
  }
382
 
@@ -816,25 +816,11 @@ class FrmDeprecated {
816
  public static function jquery_css_url( $theme_css ) {
817
  _deprecated_function( __FUNCTION__, '3.02.03', 'FrmProStylesController::jquery_css_url' );
818
 
819
- if ( $theme_css == -1 ) {
820
- return;
821
- }
822
-
823
- if ( ! $theme_css || $theme_css == '' || $theme_css == 'ui-lightness' ) {
824
- $css_file = FrmAppHelper::plugin_url() . '/css/ui-lightness/jquery-ui.css';
825
- } elseif ( preg_match( '/^http.?:\/\/.*\..*$/', $theme_css ) ) {
826
- $css_file = $theme_css;
827
- } else {
828
- $uploads = FrmStylesHelper::get_upload_base();
829
- $file_path = '/formidable/css/' . $theme_css . '/jquery-ui.css';
830
- if ( file_exists( $uploads['basedir'] . $file_path ) ) {
831
- $css_file = $uploads['baseurl'] . $file_path;
832
- } else {
833
- $css_file = FrmAppHelper::jquery_ui_base_url() . '/themes/' . $theme_css . '/jquery-ui.min.css';
834
- }
835
- }
836
 
837
- return $css_file;
838
  }
839
 
840
  /**
376
 
377
  do_action( 'frm_after_update_field_' . $field, compact( 'id', 'value' ) );
378
 
379
+ echo stripslashes( wp_kses_post( $value ) );
380
  wp_die();
381
  }
382
 
816
  public static function jquery_css_url( $theme_css ) {
817
  _deprecated_function( __FUNCTION__, '3.02.03', 'FrmProStylesController::jquery_css_url' );
818
 
819
+ if ( ! is_callable( 'FrmProStylesController::jquery_css_url' ) ) {
820
+ return;
821
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
822
 
823
+ return FrmProStylesController::jquery_css_url( $theme_css );
824
  }
825
 
826
  /**
deprecated/FrmEDD_SL_Plugin_Updater.php CHANGED
@@ -303,11 +303,11 @@ class FrmEDD_SL_Plugin_Updater {
303
 
304
  global $frm_edd_plugin_data;
305
 
306
- if ( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' !== $_REQUEST['edd_sl_action'] ) { // WPCS: CSRF ok.
307
  return;
308
  }
309
 
310
- if ( empty( $_REQUEST['plugin'] ) || empty( $_REQUEST['slug'] ) ) { // WPCS: CSRF ok.
311
  return;
312
  }
313
 
@@ -315,10 +315,10 @@ class FrmEDD_SL_Plugin_Updater {
315
  wp_die( esc_html__( 'You do not have permission to install plugin updates', 'formidable' ), esc_html__( 'Error', 'formidable' ), array( 'response' => 403 ) );
316
  }
317
 
318
- $slug = sanitize_text_field( $_REQUEST['slug'] ); // WPCS: CSRF ok.
319
  $data = $frm_edd_plugin_data[ $slug ];
320
  $beta = ! empty( $data['beta'] ) ? true : false;
321
- $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' ); // WPCS: CSRF ok.
322
  $version_info = $this->get_cached_version_info( $cache_key );
323
 
324
  if ( false === $version_info ) {
@@ -364,7 +364,7 @@ class FrmEDD_SL_Plugin_Updater {
364
  }
365
 
366
  if ( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) {
367
- echo '<div style="background:#fff;padding:10px;">' . FrmAppHelper::kses( $version_info->sections['changelog'], 'all' ) . '</div>'; // WPCS: XSS ok.
368
  }
369
 
370
  exit;
303
 
304
  global $frm_edd_plugin_data;
305
 
306
+ if ( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' !== $_REQUEST['edd_sl_action'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
307
  return;
308
  }
309
 
310
+ if ( empty( $_REQUEST['plugin'] ) || empty( $_REQUEST['slug'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
311
  return;
312
  }
313
 
315
  wp_die( esc_html__( 'You do not have permission to install plugin updates', 'formidable' ), esc_html__( 'Error', 'formidable' ), array( 'response' => 403 ) );
316
  }
317
 
318
+ $slug = sanitize_text_field( $_REQUEST['slug'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
319
  $data = $frm_edd_plugin_data[ $slug ];
320
  $beta = ! empty( $data['beta'] ) ? true : false;
321
+ $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
322
  $version_info = $this->get_cached_version_info( $cache_key );
323
 
324
  if ( false === $version_info ) {
364
  }
365
 
366
  if ( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) {
367
+ echo '<div style="background:#fff;padding:10px;">' . FrmAppHelper::kses( $version_info->sections['changelog'], 'all' ) . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
368
  }
369
 
370
  exit;
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.12
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.13
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
js/formidable_admin.js CHANGED
@@ -7113,25 +7113,6 @@ function frmAdminBuildJS() {
7113
  }
7114
 
7115
  /* Styling */
7116
-
7117
- //function to append a new theme stylesheet with the new style changes
7118
- function updateUICSS( locStr ) {
7119
- var $cssLink, $link;
7120
-
7121
- if ( locStr == -1 ) {
7122
- jQuery( 'link.ui-theme' ).remove();
7123
- return false;
7124
- }
7125
-
7126
- $cssLink = jQuery( '<link href="' + locStr + '" type="text/css" rel="Stylesheet" class="ui-theme" />' );
7127
- jQuery( 'head' ).append( $cssLink );
7128
-
7129
- $link = jQuery( 'link.ui-theme' );
7130
- if ( $link.length > 1 ) {
7131
- $link.first().remove();
7132
- }
7133
- }
7134
-
7135
  function setPosClass() {
7136
  /*jshint validthis:true */
7137
  var value = this.value;
@@ -9398,24 +9379,6 @@ function frmAdminBuildJS() {
9398
 
9399
  jQuery( document.getElementById( 'frm_position' ) ).on( 'change', setPosClass );
9400
 
9401
- jQuery( 'select[name$="[theme_selector]"]' ).on( 'change', function() {
9402
- var themeVal = jQuery( this ).val();
9403
- var css = themeVal;
9404
- if ( themeVal !== -1 ) {
9405
- if ( themeVal === 'ui-lightness' && frm_admin_js.pro_url !== '' ) {
9406
- css = frm_admin_js.pro_url + '/css/ui-lightness/jquery-ui.css';
9407
- jQuery( '.frm_date_color' ).show();
9408
- } else {
9409
- css = frm_admin_js.jquery_ui_url + '/themes/' + themeVal + '/jquery-ui.css';
9410
- jQuery( '.frm_date_color' ).hide();
9411
- }
9412
- }
9413
-
9414
- updateUICSS( css );
9415
- document.getElementById( 'frm_theme_css' ).value = themeVal;
9416
- return false;
9417
- }).trigger( 'change' );
9418
-
9419
  jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_choose_image_box', addImageToOption );
9420
  jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_remove_image_option', removeImageFromOption );
9421
  },
7113
  }
7114
 
7115
  /* Styling */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7116
  function setPosClass() {
7117
  /*jshint validthis:true */
7118
  var value = this.value;
9379
 
9380
  jQuery( document.getElementById( 'frm_position' ) ).on( 'change', setPosClass );
9381
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9382
  jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_choose_image_box', addImageToOption );
9383
  jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_remove_image_option', removeImageFromOption );
9384
  },
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.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,7 +137,7 @@ msgstr ""
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"
@@ -152,7 +152,7 @@ msgid "Installed"
152
  msgstr ""
153
 
154
  #: classes/controllers/FrmAddonsController.php:625
155
- #: classes/helpers/FrmAppHelper.php:2583
156
  msgid "Active"
157
  msgstr ""
158
 
@@ -448,7 +448,7 @@ msgid "Key"
448
  msgstr ""
449
 
450
  #: classes/controllers/FrmFormsController.php:762
451
- #: classes/controllers/FrmStylesController.php:394
452
  #: classes/views/frm-forms/settings-advanced.php:13
453
  #: classes/views/styles/manage.php:39
454
  #: classes/views/styles/_sample_form.php:19
@@ -466,7 +466,7 @@ msgid "Date"
466
  msgstr ""
467
 
468
  #: classes/controllers/FrmFormsController.php:888
469
- #: classes/helpers/FrmFormsHelper.php:1280
470
  msgid "My Templates"
471
  msgstr ""
472
 
@@ -484,7 +484,7 @@ msgid "Template was successfully updated."
484
  msgstr ""
485
 
486
  #: classes/controllers/FrmFormsController.php:1058
487
- #: classes/controllers/FrmStylesController.php:393
488
  msgid "General"
489
  msgstr ""
490
 
@@ -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: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
@@ -656,7 +656,7 @@ msgid "Please wait while you are redirected."
656
  msgstr ""
657
 
658
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
659
- #: classes/controllers/FrmFormsController.php:1974
660
  msgid "%1$sClick here%2$s if you are not automatically redirected."
661
  msgstr ""
662
 
@@ -853,7 +853,7 @@ msgid "Install WP Mail SMTP"
853
  msgstr ""
854
 
855
  #: classes/controllers/FrmSMTPController.php:305
856
- #: classes/helpers/FrmAppHelper.php:2582
857
  #: classes/helpers/FrmFormMigratorsHelper.php:131
858
  #: classes/views/shared/upgrade_overlay.php:32
859
  msgid "Install"
@@ -912,51 +912,51 @@ msgid "Edit Style"
912
  msgstr ""
913
 
914
  #: classes/controllers/FrmStylesController.php:229
915
- #: classes/controllers/FrmStylesController.php:333
916
  msgid "Your styling settings have been saved."
917
  msgstr ""
918
 
919
- #: classes/controllers/FrmStylesController.php:290
920
  msgid "Your form styles have been saved."
921
  msgstr ""
922
 
923
- #: classes/controllers/FrmStylesController.php:395
924
- #: classes/helpers/FrmFormsHelper.php:515
925
  #: classes/views/frm-forms/new-form-overlay.php:53
926
  #: classes/views/frm-forms/new-form-overlay.php:54
927
  #: classes/views/frm-forms/settings-advanced.php:27
928
  msgid "Form Description"
929
  msgstr ""
930
 
931
- #: classes/controllers/FrmStylesController.php:396
932
  msgid "Field Labels"
933
  msgstr ""
934
 
935
- #: classes/controllers/FrmStylesController.php:397
936
- #: classes/helpers/FrmFormsHelper.php:475
937
  #: classes/views/frm-fields/back-end/field-description.php:8
938
  msgid "Field Description"
939
  msgstr ""
940
 
941
- #: classes/controllers/FrmStylesController.php:398
942
  msgid "Field Colors"
943
  msgstr ""
944
 
945
- #: classes/controllers/FrmStylesController.php:399
946
  msgid "Field Settings"
947
  msgstr ""
948
 
949
- #: classes/controllers/FrmStylesController.php:400
950
  msgid "Check Box & Radio Fields"
951
  msgstr ""
952
 
953
- #: classes/controllers/FrmStylesController.php:401
954
- #: classes/helpers/FrmFieldsHelper.php:1885
955
  #: classes/views/frm-forms/settings-buttons.php:46
956
  msgid "Buttons"
957
  msgstr ""
958
 
959
- #: classes/controllers/FrmStylesController.php:402
960
  msgid "Form Messages"
961
  msgstr ""
962
 
@@ -1005,12 +1005,12 @@ msgstr ""
1005
  msgid "There are no entries for that form."
1006
  msgstr ""
1007
 
1008
- #: classes/helpers/FrmAppHelper.php:926
1009
- #: classes/helpers/FrmAppHelper.php:934
1010
  msgid "Add New"
1011
  msgstr ""
1012
 
1013
- #: classes/helpers/FrmAppHelper.php:950
1014
  #: classes/views/frm-entries/list.php:47
1015
  #: classes/views/frm-forms/list.php:27
1016
  #: classes/views/shared/mb_adv_info.php:40
@@ -1018,205 +1018,205 @@ msgstr ""
1018
  msgid "Search"
1019
  msgstr ""
1020
 
1021
- #: classes/helpers/FrmAppHelper.php:1171
1022
  #: classes/views/frm-forms/settings-advanced.php:98
1023
  msgid "Select a Page"
1024
  msgstr ""
1025
 
1026
- #: classes/helpers/FrmAppHelper.php:1272
1027
  msgid "View Forms"
1028
  msgstr ""
1029
 
1030
- #: classes/helpers/FrmAppHelper.php:1273
1031
  msgid "Add and Edit Forms"
1032
  msgstr ""
1033
 
1034
- #: classes/helpers/FrmAppHelper.php:1274
1035
  msgid "Delete Forms"
1036
  msgstr ""
1037
 
1038
- #: classes/helpers/FrmAppHelper.php:1275
1039
  msgid "Access this Settings Page"
1040
  msgstr ""
1041
 
1042
- #: classes/helpers/FrmAppHelper.php:1276
1043
  msgid "View Entries from Admin Area"
1044
  msgstr ""
1045
 
1046
- #: classes/helpers/FrmAppHelper.php:1277
1047
  msgid "Delete Entries from Admin Area"
1048
  msgstr ""
1049
 
1050
- #: classes/helpers/FrmAppHelper.php:1285
1051
  msgid "Add Entries from Admin Area"
1052
  msgstr ""
1053
 
1054
- #: classes/helpers/FrmAppHelper.php:1286
1055
  msgid "Edit Entries from Admin Area"
1056
  msgstr ""
1057
 
1058
- #: classes/helpers/FrmAppHelper.php:1287
1059
  msgid "View Reports"
1060
  msgstr ""
1061
 
1062
- #: classes/helpers/FrmAppHelper.php:1288
1063
  msgid "Add/Edit Views"
1064
  msgstr ""
1065
 
1066
- #: classes/helpers/FrmAppHelper.php:2013
1067
  msgid "at"
1068
  msgstr ""
1069
 
1070
- #: classes/helpers/FrmAppHelper.php:2157
1071
  msgid "year"
1072
  msgstr ""
1073
 
1074
- #: classes/helpers/FrmAppHelper.php:2158
1075
  msgid "years"
1076
  msgstr ""
1077
 
1078
- #: classes/helpers/FrmAppHelper.php:2162
1079
  msgid "month"
1080
  msgstr ""
1081
 
1082
- #: classes/helpers/FrmAppHelper.php:2163
1083
  msgid "months"
1084
  msgstr ""
1085
 
1086
- #: classes/helpers/FrmAppHelper.php:2167
1087
  msgid "week"
1088
  msgstr ""
1089
 
1090
- #: classes/helpers/FrmAppHelper.php:2168
1091
  msgid "weeks"
1092
  msgstr ""
1093
 
1094
- #: classes/helpers/FrmAppHelper.php:2172
1095
  msgid "day"
1096
  msgstr ""
1097
 
1098
- #: classes/helpers/FrmAppHelper.php:2173
1099
  msgid "days"
1100
  msgstr ""
1101
 
1102
- #: classes/helpers/FrmAppHelper.php:2177
1103
  msgid "hour"
1104
  msgstr ""
1105
 
1106
- #: classes/helpers/FrmAppHelper.php:2178
1107
  msgid "hours"
1108
  msgstr ""
1109
 
1110
- #: classes/helpers/FrmAppHelper.php:2182
1111
  msgid "minute"
1112
  msgstr ""
1113
 
1114
- #: classes/helpers/FrmAppHelper.php:2183
1115
  msgid "minutes"
1116
  msgstr ""
1117
 
1118
- #: classes/helpers/FrmAppHelper.php:2187
1119
  msgid "second"
1120
  msgstr ""
1121
 
1122
- #: classes/helpers/FrmAppHelper.php:2188
1123
  msgid "seconds"
1124
  msgstr ""
1125
 
1126
- #: classes/helpers/FrmAppHelper.php:2282
1127
  msgid "Give this action a label for easy reference."
1128
  msgstr ""
1129
 
1130
- #: classes/helpers/FrmAppHelper.php:2283
1131
  msgid "Add one or more recipient addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com. [admin_email] is the address set in WP General Settings."
1132
  msgstr ""
1133
 
1134
- #: classes/helpers/FrmAppHelper.php:2284
1135
  msgid "Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
1136
  msgstr ""
1137
 
1138
- #: classes/helpers/FrmAppHelper.php:2285
1139
  msgid "Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
1140
  msgstr ""
1141
 
1142
- #: classes/helpers/FrmAppHelper.php:2286
1143
  msgid "If you would like a different reply to address than the \"from\" address, add a single address here. FORMAT: Name <name@email.com> or name@email.com."
1144
  msgstr ""
1145
 
1146
- #: classes/helpers/FrmAppHelper.php:2287
1147
  msgid "Enter the name and/or email address of the sender. FORMAT: John Bates <john@example.com> or john@example.com."
1148
  msgstr ""
1149
 
1150
  #. translators: %1$s: Form name, %2$s: Date
1151
- #: classes/helpers/FrmAppHelper.php:2289
1152
  msgid "If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s"
1153
  msgstr ""
1154
 
1155
- #: classes/helpers/FrmAppHelper.php:2485
1156
- #: classes/helpers/FrmAppHelper.php:2564
1157
  msgid "Please wait while your site updates."
1158
  msgstr ""
1159
 
1160
- #: classes/helpers/FrmAppHelper.php:2486
1161
  msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
1162
  msgstr ""
1163
 
1164
- #: classes/helpers/FrmAppHelper.php:2489
1165
- #: classes/helpers/FrmAppHelper.php:2518
1166
  msgid "Loading&hellip;"
1167
  msgstr ""
1168
 
1169
- #: classes/helpers/FrmAppHelper.php:2519
1170
  msgid "Remove"
1171
  msgstr ""
1172
 
1173
- #: classes/helpers/FrmAppHelper.php:2522
1174
  #: classes/helpers/FrmCSVExportHelper.php:229
1175
  #: classes/views/shared/mb_adv_info.php:95
1176
  msgid "ID"
1177
  msgstr ""
1178
 
1179
- #: classes/helpers/FrmAppHelper.php:2523
1180
  msgid "No results match"
1181
  msgstr ""
1182
 
1183
- #: classes/helpers/FrmAppHelper.php:2524
1184
  msgid "That file looks like Spam."
1185
  msgstr ""
1186
 
1187
- #: classes/helpers/FrmAppHelper.php:2525
1188
  msgid "There is an error in the calculation in the field with key"
1189
  msgstr ""
1190
 
1191
- #: classes/helpers/FrmAppHelper.php:2526
1192
  msgid "Please complete the preceding required fields before uploading a file."
1193
  msgstr ""
1194
 
1195
- #: classes/helpers/FrmAppHelper.php:2537
1196
  msgid "(Click to add description)"
1197
  msgstr ""
1198
 
1199
- #: classes/helpers/FrmAppHelper.php:2538
1200
  msgid "(Blank)"
1201
  msgstr ""
1202
 
1203
- #: classes/helpers/FrmAppHelper.php:2539
1204
  msgid "(no label)"
1205
  msgstr ""
1206
 
1207
- #: classes/helpers/FrmAppHelper.php:2540
1208
  msgid "Saving"
1209
  msgstr ""
1210
 
1211
- #: classes/helpers/FrmAppHelper.php:2541
1212
  msgid "Saved"
1213
  msgstr ""
1214
 
1215
- #: classes/helpers/FrmAppHelper.php:2542
1216
  msgid "OK"
1217
  msgstr ""
1218
 
1219
- #: classes/helpers/FrmAppHelper.php:2543
1220
  #: classes/views/frm-forms/new-form-overlay.php:33
1221
  #: classes/views/frm-forms/new-form-overlay.php:100
1222
  #: classes/views/frm-forms/new-form-overlay.php:109
@@ -1229,416 +1229,416 @@ msgstr ""
1229
  msgid "Cancel"
1230
  msgstr ""
1231
 
1232
- #: classes/helpers/FrmAppHelper.php:2544
1233
  #: classes/views/frm-fields/back-end/settings.php:280
1234
  msgid "Default"
1235
  msgstr ""
1236
 
1237
- #: classes/helpers/FrmAppHelper.php:2545
1238
  msgid "Clear default value when typing"
1239
  msgstr ""
1240
 
1241
- #: classes/helpers/FrmAppHelper.php:2546
1242
  msgid "Do not clear default value when typing"
1243
  msgstr ""
1244
 
1245
- #: classes/helpers/FrmAppHelper.php:2547
1246
  msgid "Default value will pass form validation"
1247
  msgstr ""
1248
 
1249
- #: classes/helpers/FrmAppHelper.php:2548
1250
  msgid "Default value will NOT pass form validation"
1251
  msgstr ""
1252
 
1253
- #: classes/helpers/FrmAppHelper.php:2549
1254
  #: classes/helpers/FrmListHelper.php:405
1255
  #: js/formidable_admin.js:4069
1256
  msgid "Heads up"
1257
  msgstr ""
1258
 
1259
- #: classes/helpers/FrmAppHelper.php:2550
1260
  #: classes/views/shared/confirm-overlay.php:15
1261
  #: classes/views/shared/info-overlay.php:15
1262
  msgid "Are you sure?"
1263
  msgstr ""
1264
 
1265
- #: classes/helpers/FrmAppHelper.php:2551
1266
  msgid "Are you sure you want to delete this field and all data associated with it?"
1267
  msgstr ""
1268
 
1269
- #: classes/helpers/FrmAppHelper.php:2552
1270
  msgid "All fields inside this Section will be deleted along with their data. Are you sure you want to delete this group of fields?"
1271
  msgstr ""
1272
 
1273
- #: classes/helpers/FrmAppHelper.php:2553
1274
  msgid "Warning: If you have entries with multiple rows, all but the first row will be lost."
1275
  msgstr ""
1276
 
1277
- #: classes/helpers/FrmAppHelper.php:2555
1278
- #: classes/helpers/FrmFieldsHelper.php:286
1279
  msgid "The entered values do not match"
1280
  msgstr ""
1281
 
1282
- #: classes/helpers/FrmAppHelper.php:2556
1283
  msgid "Enter Email"
1284
  msgstr ""
1285
 
1286
- #: classes/helpers/FrmAppHelper.php:2557
1287
  msgid "Confirm Email"
1288
  msgstr ""
1289
 
1290
- #: classes/helpers/FrmAppHelper.php:2558
1291
  #: classes/views/shared/mb_adv_info.php:166
1292
  msgid "Conditional content here"
1293
  msgstr ""
1294
 
1295
- #: classes/helpers/FrmAppHelper.php:2559
1296
- #: classes/helpers/FrmFieldsHelper.php:458
1297
- #: classes/helpers/FrmFieldsHelper.php:459
1298
  msgid "New Option"
1299
  msgstr ""
1300
 
1301
- #: classes/helpers/FrmAppHelper.php:2560
1302
  msgid "In certain browsers (e.g. Firefox) text will not display correctly if the field height is too small relative to the field padding and text size. Please increase your field height or decrease your field padding."
1303
  msgstr ""
1304
 
1305
- #: classes/helpers/FrmAppHelper.php:2561
1306
  msgid "Enter Password"
1307
  msgstr ""
1308
 
1309
- #: classes/helpers/FrmAppHelper.php:2562
1310
  msgid "Confirm Password"
1311
  msgstr ""
1312
 
1313
- #: classes/helpers/FrmAppHelper.php:2563
1314
  msgid "Import Complete"
1315
  msgstr ""
1316
 
1317
- #: classes/helpers/FrmAppHelper.php:2565
1318
  msgid "Warning: There is no way to retrieve unsaved entries."
1319
  msgstr ""
1320
 
1321
- #: classes/helpers/FrmAppHelper.php:2566
1322
  msgid "Private"
1323
  msgstr ""
1324
 
1325
- #: classes/helpers/FrmAppHelper.php:2569
1326
  msgid "No new licenses were found"
1327
  msgstr ""
1328
 
1329
- #: classes/helpers/FrmAppHelper.php:2570
1330
  msgid "This calculation has at least one unmatched ( ) { } [ ]."
1331
  msgstr ""
1332
 
1333
- #: classes/helpers/FrmAppHelper.php:2571
1334
  msgid "This calculation may have shortcodes that work in Views but not forms."
1335
  msgstr ""
1336
 
1337
- #: classes/helpers/FrmAppHelper.php:2572
1338
  msgid "This calculation may have shortcodes that work in text calculations but not numeric calculations."
1339
  msgstr ""
1340
 
1341
- #: classes/helpers/FrmAppHelper.php:2573
1342
  msgid "This form action is limited to one per form. Please edit the existing form action."
1343
  msgstr ""
1344
 
1345
  #. Translators: %s is the name of a Detail Page Slug that is a reserved word.
1346
- #: classes/helpers/FrmAppHelper.php:2576
1347
  msgid "The Detail Page Slug \"%s\" is reserved by WordPress. This may cause problems. Is this intentional?"
1348
  msgstr ""
1349
 
1350
  #. Translators: %s is the name of a parameter that is a reserved word. More than one word could be listed here, though that would not be common.
1351
- #: classes/helpers/FrmAppHelper.php:2578
1352
  msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems when included in the URL. Is this intentional? "
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
 
1360
- #: classes/helpers/FrmAppHelper.php:2580
1361
  msgid "Please enter a Repeat Limit that is greater than 1."
1362
  msgstr ""
1363
 
1364
- #: classes/helpers/FrmAppHelper.php:2581
1365
  msgid "Please select a limit between 0 and 200."
1366
  msgstr ""
1367
 
1368
- #: classes/helpers/FrmAppHelper.php:2584
1369
  #: classes/views/shared/mb_adv_info.php:113
1370
  #: classes/views/shared/mb_adv_info.php:127
1371
  msgid "Select a Field"
1372
  msgstr ""
1373
 
1374
- #: classes/helpers/FrmAppHelper.php:2585
1375
  #: classes/helpers/FrmListHelper.php:262
1376
  msgid "No items found."
1377
  msgstr ""
1378
 
1379
- #: classes/helpers/FrmAppHelper.php:2613
1380
  msgid "You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable."
1381
  msgstr ""
1382
 
1383
- #: classes/helpers/FrmAppHelper.php:2640
1384
  msgid "You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro."
1385
  msgstr ""
1386
 
1387
- #: classes/helpers/FrmAppHelper.php:2668
1388
  msgid "The version of PHP on your server is too low. If this is not corrected, you may see issues with Formidable Forms. Please contact your web host and ask to be updated to PHP 7.0+."
1389
  msgstr ""
1390
 
1391
- #: classes/helpers/FrmAppHelper.php:2674
1392
  msgid "You are using an outdated browser that is not compatible with Formidable Forms. Please update to a more current browser (we recommend Chrome)."
1393
  msgstr ""
1394
 
1395
- #: classes/helpers/FrmAppHelper.php:2688
1396
  msgid "English"
1397
  msgstr ""
1398
 
1399
- #: classes/helpers/FrmAppHelper.php:2689
1400
  msgid "Afrikaans"
1401
  msgstr ""
1402
 
1403
- #: classes/helpers/FrmAppHelper.php:2690
1404
  msgid "Albanian"
1405
  msgstr ""
1406
 
1407
- #: classes/helpers/FrmAppHelper.php:2691
1408
  msgid "Arabic"
1409
  msgstr ""
1410
 
1411
- #: classes/helpers/FrmAppHelper.php:2692
1412
  msgid "Armenian"
1413
  msgstr ""
1414
 
1415
- #: classes/helpers/FrmAppHelper.php:2693
1416
  msgid "Azerbaijani"
1417
  msgstr ""
1418
 
1419
- #: classes/helpers/FrmAppHelper.php:2694
1420
  msgid "Basque"
1421
  msgstr ""
1422
 
1423
- #: classes/helpers/FrmAppHelper.php:2695
1424
  msgid "Bosnian"
1425
  msgstr ""
1426
 
1427
- #: classes/helpers/FrmAppHelper.php:2696
1428
  msgid "Bulgarian"
1429
  msgstr ""
1430
 
1431
- #: classes/helpers/FrmAppHelper.php:2697
1432
  msgid "Catalan"
1433
  msgstr ""
1434
 
1435
- #: classes/helpers/FrmAppHelper.php:2698
1436
  msgid "Chinese Hong Kong"
1437
  msgstr ""
1438
 
1439
- #: classes/helpers/FrmAppHelper.php:2699
1440
  msgid "Chinese Simplified"
1441
  msgstr ""
1442
 
1443
- #: classes/helpers/FrmAppHelper.php:2700
1444
  msgid "Chinese Traditional"
1445
  msgstr ""
1446
 
1447
- #: classes/helpers/FrmAppHelper.php:2701
1448
  msgid "Croatian"
1449
  msgstr ""
1450
 
1451
- #: classes/helpers/FrmAppHelper.php:2702
1452
  msgid "Czech"
1453
  msgstr ""
1454
 
1455
- #: classes/helpers/FrmAppHelper.php:2703
1456
  msgid "Danish"
1457
  msgstr ""
1458
 
1459
- #: classes/helpers/FrmAppHelper.php:2704
1460
  msgid "Dutch"
1461
  msgstr ""
1462
 
1463
- #: classes/helpers/FrmAppHelper.php:2705
1464
  msgid "English/UK"
1465
  msgstr ""
1466
 
1467
- #: classes/helpers/FrmAppHelper.php:2706
1468
  msgid "Esperanto"
1469
  msgstr ""
1470
 
1471
- #: classes/helpers/FrmAppHelper.php:2707
1472
  msgid "Estonian"
1473
  msgstr ""
1474
 
1475
- #: classes/helpers/FrmAppHelper.php:2708
1476
  msgid "Faroese"
1477
  msgstr ""
1478
 
1479
- #: classes/helpers/FrmAppHelper.php:2709
1480
  msgid "Farsi/Persian"
1481
  msgstr ""
1482
 
1483
- #: classes/helpers/FrmAppHelper.php:2710
1484
  msgid "Filipino"
1485
  msgstr ""
1486
 
1487
- #: classes/helpers/FrmAppHelper.php:2711
1488
  msgid "Finnish"
1489
  msgstr ""
1490
 
1491
- #: classes/helpers/FrmAppHelper.php:2712
1492
  msgid "French"
1493
  msgstr ""
1494
 
1495
- #: classes/helpers/FrmAppHelper.php:2713
1496
  msgid "French/Canadian"
1497
  msgstr ""
1498
 
1499
- #: classes/helpers/FrmAppHelper.php:2714
1500
  msgid "French/Swiss"
1501
  msgstr ""
1502
 
1503
- #: classes/helpers/FrmAppHelper.php:2715
1504
  msgid "German"
1505
  msgstr ""
1506
 
1507
- #: classes/helpers/FrmAppHelper.php:2716
1508
  msgid "German/Austria"
1509
  msgstr ""
1510
 
1511
- #: classes/helpers/FrmAppHelper.php:2717
1512
  msgid "German/Switzerland"
1513
  msgstr ""
1514
 
1515
- #: classes/helpers/FrmAppHelper.php:2718
1516
  msgid "Greek"
1517
  msgstr ""
1518
 
1519
- #: classes/helpers/FrmAppHelper.php:2719
1520
- #: classes/helpers/FrmAppHelper.php:2720
1521
  msgid "Hebrew"
1522
  msgstr ""
1523
 
1524
- #: classes/helpers/FrmAppHelper.php:2721
1525
  msgid "Hindi"
1526
  msgstr ""
1527
 
1528
- #: classes/helpers/FrmAppHelper.php:2722
1529
  msgid "Hungarian"
1530
  msgstr ""
1531
 
1532
- #: classes/helpers/FrmAppHelper.php:2723
1533
  msgid "Icelandic"
1534
  msgstr ""
1535
 
1536
- #: classes/helpers/FrmAppHelper.php:2724
1537
  msgid "Indonesian"
1538
  msgstr ""
1539
 
1540
- #: classes/helpers/FrmAppHelper.php:2725
1541
  msgid "Italian"
1542
  msgstr ""
1543
 
1544
- #: classes/helpers/FrmAppHelper.php:2726
1545
  msgid "Japanese"
1546
  msgstr ""
1547
 
1548
- #: classes/helpers/FrmAppHelper.php:2727
1549
  msgid "Korean"
1550
  msgstr ""
1551
 
1552
- #: classes/helpers/FrmAppHelper.php:2728
1553
  msgid "Latvian"
1554
  msgstr ""
1555
 
1556
- #: classes/helpers/FrmAppHelper.php:2729
1557
  msgid "Lithuanian"
1558
  msgstr ""
1559
 
1560
- #: classes/helpers/FrmAppHelper.php:2730
1561
  msgid "Malaysian"
1562
  msgstr ""
1563
 
1564
- #: classes/helpers/FrmAppHelper.php:2731
1565
  msgid "Norwegian"
1566
  msgstr ""
1567
 
1568
- #: classes/helpers/FrmAppHelper.php:2732
1569
  msgid "Polish"
1570
  msgstr ""
1571
 
1572
- #: classes/helpers/FrmAppHelper.php:2733
1573
  msgid "Portuguese"
1574
  msgstr ""
1575
 
1576
- #: classes/helpers/FrmAppHelper.php:2734
1577
  msgid "Portuguese/Brazilian"
1578
  msgstr ""
1579
 
1580
- #: classes/helpers/FrmAppHelper.php:2735
1581
  msgid "Portuguese/Portugal"
1582
  msgstr ""
1583
 
1584
- #: classes/helpers/FrmAppHelper.php:2736
1585
  msgid "Romanian"
1586
  msgstr ""
1587
 
1588
- #: classes/helpers/FrmAppHelper.php:2737
1589
  msgid "Russian"
1590
  msgstr ""
1591
 
1592
- #: classes/helpers/FrmAppHelper.php:2738
1593
- #: classes/helpers/FrmAppHelper.php:2739
1594
  msgid "Serbian"
1595
  msgstr ""
1596
 
1597
- #: classes/helpers/FrmAppHelper.php:2740
1598
  msgid "Slovak"
1599
  msgstr ""
1600
 
1601
- #: classes/helpers/FrmAppHelper.php:2741
1602
  msgid "Slovenian"
1603
  msgstr ""
1604
 
1605
- #: classes/helpers/FrmAppHelper.php:2742
1606
  msgid "Spanish"
1607
  msgstr ""
1608
 
1609
- #: classes/helpers/FrmAppHelper.php:2743
1610
  msgid "Spanish/Latin America"
1611
  msgstr ""
1612
 
1613
- #: classes/helpers/FrmAppHelper.php:2744
1614
  msgid "Swedish"
1615
  msgstr ""
1616
 
1617
- #: classes/helpers/FrmAppHelper.php:2745
1618
  msgid "Tamil"
1619
  msgstr ""
1620
 
1621
- #: classes/helpers/FrmAppHelper.php:2746
1622
  msgid "Thai"
1623
  msgstr ""
1624
 
1625
- #: classes/helpers/FrmAppHelper.php:2747
1626
  msgid "Turkish"
1627
  msgstr ""
1628
 
1629
- #: classes/helpers/FrmAppHelper.php:2748
1630
  msgid "Ukrainian"
1631
  msgstr ""
1632
 
1633
- #: classes/helpers/FrmAppHelper.php:2749
1634
  msgid "Vietnamese"
1635
  msgstr ""
1636
 
1637
- #: classes/helpers/FrmAppHelper.php:3033
1638
  msgid "Your account has expired"
1639
  msgstr ""
1640
 
1641
- #: classes/helpers/FrmAppHelper.php:3036
1642
  msgid "Renew Now"
1643
  msgstr ""
1644
 
@@ -1671,7 +1671,7 @@ msgid "Updated By"
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 ""
@@ -1684,38 +1684,38 @@ msgstr ""
1684
  msgid "Parent ID"
1685
  msgstr ""
1686
 
1687
- #: classes/helpers/FrmEntriesHelper.php:541
1688
- #: classes/helpers/FrmEntriesHelper.php:542
1689
  msgid "Unknown"
1690
  msgstr ""
1691
 
1692
- #: classes/helpers/FrmEntriesHelper.php:651
1693
  #: classes/views/frm-entries/show.php:12
1694
  msgid "View Entry"
1695
  msgstr ""
1696
 
1697
- #: classes/helpers/FrmEntriesHelper.php:659
1698
  msgid "Delete Entry"
1699
  msgstr ""
1700
 
1701
- #: classes/helpers/FrmEntriesHelper.php:662
1702
  msgid "Delete this form entry?"
1703
  msgstr ""
1704
 
1705
- #: classes/helpers/FrmEntriesHelper.php:670
1706
  msgid "Print Entry"
1707
  msgstr ""
1708
 
1709
- #: classes/helpers/FrmEntriesHelper.php:680
1710
- #: classes/helpers/FrmEntriesHelper.php:683
1711
  msgid "Resend Emails"
1712
  msgstr ""
1713
 
1714
- #: classes/helpers/FrmEntriesHelper.php:692
1715
  msgid "Edit Entry"
1716
  msgstr ""
1717
 
1718
- #: classes/helpers/FrmEntriesHelper.php:695
1719
  msgid "Entry edits"
1720
  msgstr ""
1721
 
@@ -1757,7 +1757,7 @@ msgid "Permanently delete this entry?"
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
@@ -1771,1209 +1771,1209 @@ msgstr ""
1771
  #. translators: %s: Field name
1772
  #. translators: %s: The field name.
1773
  #: classes/helpers/FrmFieldsHelper.php:167
1774
- #: classes/helpers/FrmFieldsHelper.php:296
1775
  #: classes/helpers/FrmXMLHelper.php:1242
1776
  #: classes/models/fields/FrmFieldType.php:583
1777
  msgid "%s is invalid"
1778
  msgstr ""
1779
 
1780
  #. translators: %s: Field name
1781
- #: classes/helpers/FrmFieldsHelper.php:291
1782
  msgid "%s must be unique"
1783
  msgstr ""
1784
 
1785
- #: classes/helpers/FrmFieldsHelper.php:294
1786
  #: classes/models/fields/FrmFieldType.php:580
1787
  msgid "This field is invalid"
1788
  msgstr ""
1789
 
1790
  #. translators: %1$s: Start HTML link, %2$s: Content type label, %3$s: Content type, %4$s: End HTML link
1791
- #: classes/helpers/FrmFieldsHelper.php:554
1792
  msgid "Options are dynamically created from your %1$s%2$s: %3$s%4$s"
1793
  msgstr ""
1794
 
1795
- #: classes/helpers/FrmFieldsHelper.php:556
1796
  msgid "taxonomy"
1797
  msgstr ""
1798
 
1799
- #: classes/helpers/FrmFieldsHelper.php:557
1800
  msgid "Categories"
1801
  msgstr ""
1802
 
1803
- #: classes/helpers/FrmFieldsHelper.php:1401
1804
  msgid "Afghanistan"
1805
  msgstr ""
1806
 
1807
- #: classes/helpers/FrmFieldsHelper.php:1402
1808
  msgid "Aland Islands"
1809
  msgstr ""
1810
 
1811
- #: classes/helpers/FrmFieldsHelper.php:1403
1812
  msgid "Albania"
1813
  msgstr ""
1814
 
1815
- #: classes/helpers/FrmFieldsHelper.php:1404
1816
  msgid "Algeria"
1817
  msgstr ""
1818
 
1819
- #: classes/helpers/FrmFieldsHelper.php:1405
1820
  msgid "American Samoa"
1821
  msgstr ""
1822
 
1823
- #: classes/helpers/FrmFieldsHelper.php:1406
1824
  msgid "Andorra"
1825
  msgstr ""
1826
 
1827
- #: classes/helpers/FrmFieldsHelper.php:1407
1828
  msgid "Angola"
1829
  msgstr ""
1830
 
1831
- #: classes/helpers/FrmFieldsHelper.php:1408
1832
  msgid "Anguilla"
1833
  msgstr ""
1834
 
1835
- #: classes/helpers/FrmFieldsHelper.php:1409
1836
  msgid "Antarctica"
1837
  msgstr ""
1838
 
1839
- #: classes/helpers/FrmFieldsHelper.php:1410
1840
  msgid "Antigua and Barbuda"
1841
  msgstr ""
1842
 
1843
- #: classes/helpers/FrmFieldsHelper.php:1411
1844
  msgid "Argentina"
1845
  msgstr ""
1846
 
1847
- #: classes/helpers/FrmFieldsHelper.php:1412
1848
  msgid "Armenia"
1849
  msgstr ""
1850
 
1851
- #: classes/helpers/FrmFieldsHelper.php:1413
1852
  msgid "Aruba"
1853
  msgstr ""
1854
 
1855
- #: classes/helpers/FrmFieldsHelper.php:1414
1856
  msgid "Australia"
1857
  msgstr ""
1858
 
1859
- #: classes/helpers/FrmFieldsHelper.php:1415
1860
  msgid "Austria"
1861
  msgstr ""
1862
 
1863
- #: classes/helpers/FrmFieldsHelper.php:1416
1864
  msgid "Azerbaijan"
1865
  msgstr ""
1866
 
1867
- #: classes/helpers/FrmFieldsHelper.php:1417
1868
  msgid "Bahamas"
1869
  msgstr ""
1870
 
1871
- #: classes/helpers/FrmFieldsHelper.php:1418
1872
  msgid "Bahrain"
1873
  msgstr ""
1874
 
1875
- #: classes/helpers/FrmFieldsHelper.php:1419
1876
  msgid "Bangladesh"
1877
  msgstr ""
1878
 
1879
- #: classes/helpers/FrmFieldsHelper.php:1420
1880
  msgid "Barbados"
1881
  msgstr ""
1882
 
1883
- #: classes/helpers/FrmFieldsHelper.php:1421
1884
  msgid "Belarus"
1885
  msgstr ""
1886
 
1887
- #: classes/helpers/FrmFieldsHelper.php:1422
1888
  msgid "Belgium"
1889
  msgstr ""
1890
 
1891
- #: classes/helpers/FrmFieldsHelper.php:1423
1892
  msgid "Belize"
1893
  msgstr ""
1894
 
1895
- #: classes/helpers/FrmFieldsHelper.php:1424
1896
  msgid "Benin"
1897
  msgstr ""
1898
 
1899
- #: classes/helpers/FrmFieldsHelper.php:1425
1900
  msgid "Bermuda"
1901
  msgstr ""
1902
 
1903
- #: classes/helpers/FrmFieldsHelper.php:1426
1904
  msgid "Bhutan"
1905
  msgstr ""
1906
 
1907
- #: classes/helpers/FrmFieldsHelper.php:1427
1908
  msgid "Bolivia"
1909
  msgstr ""
1910
 
1911
- #: classes/helpers/FrmFieldsHelper.php:1428
1912
  msgid "Bonaire, Sint Eustatius and Saba"
1913
  msgstr ""
1914
 
1915
- #: classes/helpers/FrmFieldsHelper.php:1429
1916
  msgid "Bosnia and Herzegovina"
1917
  msgstr ""
1918
 
1919
- #: classes/helpers/FrmFieldsHelper.php:1430
1920
  msgid "Botswana"
1921
  msgstr ""
1922
 
1923
- #: classes/helpers/FrmFieldsHelper.php:1431
1924
  msgid "Bouvet Island"
1925
  msgstr ""
1926
 
1927
- #: classes/helpers/FrmFieldsHelper.php:1432
1928
  msgid "Brazil"
1929
  msgstr ""
1930
 
1931
- #: classes/helpers/FrmFieldsHelper.php:1433
1932
  msgid "British Indian Ocean Territory"
1933
  msgstr ""
1934
 
1935
- #: classes/helpers/FrmFieldsHelper.php:1434
1936
  msgid "Brunei"
1937
  msgstr ""
1938
 
1939
- #: classes/helpers/FrmFieldsHelper.php:1435
1940
  msgid "Bulgaria"
1941
  msgstr ""
1942
 
1943
- #: classes/helpers/FrmFieldsHelper.php:1436
1944
  msgid "Burkina Faso"
1945
  msgstr ""
1946
 
1947
- #: classes/helpers/FrmFieldsHelper.php:1437
1948
  msgid "Burundi"
1949
  msgstr ""
1950
 
1951
- #: classes/helpers/FrmFieldsHelper.php:1438
1952
  msgid "Cambodia"
1953
  msgstr ""
1954
 
1955
- #: classes/helpers/FrmFieldsHelper.php:1439
1956
  msgid "Cameroon"
1957
  msgstr ""
1958
 
1959
- #: classes/helpers/FrmFieldsHelper.php:1440
1960
  msgid "Canada"
1961
  msgstr ""
1962
 
1963
- #: classes/helpers/FrmFieldsHelper.php:1441
1964
  msgid "Cape Verde"
1965
  msgstr ""
1966
 
1967
- #: classes/helpers/FrmFieldsHelper.php:1442
1968
  msgid "Cayman Islands"
1969
  msgstr ""
1970
 
1971
- #: classes/helpers/FrmFieldsHelper.php:1443
1972
  msgid "Central African Republic"
1973
  msgstr ""
1974
 
1975
- #: classes/helpers/FrmFieldsHelper.php:1444
1976
  msgid "Chad"
1977
  msgstr ""
1978
 
1979
- #: classes/helpers/FrmFieldsHelper.php:1445
1980
  msgid "Chile"
1981
  msgstr ""
1982
 
1983
- #: classes/helpers/FrmFieldsHelper.php:1446
1984
  msgid "China"
1985
  msgstr ""
1986
 
1987
- #: classes/helpers/FrmFieldsHelper.php:1447
1988
  msgid "Christmas Island"
1989
  msgstr ""
1990
 
1991
- #: classes/helpers/FrmFieldsHelper.php:1448
1992
  msgid "Cocos (Keeling) Islands"
1993
  msgstr ""
1994
 
1995
- #: classes/helpers/FrmFieldsHelper.php:1449
1996
  msgid "Colombia"
1997
  msgstr ""
1998
 
1999
- #: classes/helpers/FrmFieldsHelper.php:1450
2000
  msgid "Comoros"
2001
  msgstr ""
2002
 
2003
- #: classes/helpers/FrmFieldsHelper.php:1451
2004
  msgid "Congo"
2005
  msgstr ""
2006
 
2007
- #: classes/helpers/FrmFieldsHelper.php:1452
2008
  msgid "Cook Islands"
2009
  msgstr ""
2010
 
2011
- #: classes/helpers/FrmFieldsHelper.php:1453
2012
  msgid "Costa Rica"
2013
  msgstr ""
2014
 
2015
- #: classes/helpers/FrmFieldsHelper.php:1454
2016
  msgid "C&ocirc;te d'Ivoire"
2017
  msgstr ""
2018
 
2019
- #: classes/helpers/FrmFieldsHelper.php:1455
2020
  msgid "Croatia"
2021
  msgstr ""
2022
 
2023
- #: classes/helpers/FrmFieldsHelper.php:1456
2024
  msgid "Cuba"
2025
  msgstr ""
2026
 
2027
- #: classes/helpers/FrmFieldsHelper.php:1457
2028
  msgid "Curacao"
2029
  msgstr ""
2030
 
2031
- #: classes/helpers/FrmFieldsHelper.php:1458
2032
  msgid "Cyprus"
2033
  msgstr ""
2034
 
2035
- #: classes/helpers/FrmFieldsHelper.php:1459
2036
  msgid "Czech Republic"
2037
  msgstr ""
2038
 
2039
- #: classes/helpers/FrmFieldsHelper.php:1460
2040
  msgid "Denmark"
2041
  msgstr ""
2042
 
2043
- #: classes/helpers/FrmFieldsHelper.php:1461
2044
  msgid "Djibouti"
2045
  msgstr ""
2046
 
2047
- #: classes/helpers/FrmFieldsHelper.php:1462
2048
  msgid "Dominica"
2049
  msgstr ""
2050
 
2051
- #: classes/helpers/FrmFieldsHelper.php:1463
2052
  msgid "Dominican Republic"
2053
  msgstr ""
2054
 
2055
- #: classes/helpers/FrmFieldsHelper.php:1464
2056
  msgid "East Timor"
2057
  msgstr ""
2058
 
2059
- #: classes/helpers/FrmFieldsHelper.php:1465
2060
  msgid "Ecuador"
2061
  msgstr ""
2062
 
2063
- #: classes/helpers/FrmFieldsHelper.php:1466
2064
  msgid "Egypt"
2065
  msgstr ""
2066
 
2067
- #: classes/helpers/FrmFieldsHelper.php:1467
2068
  msgid "El Salvador"
2069
  msgstr ""
2070
 
2071
- #: classes/helpers/FrmFieldsHelper.php:1468
2072
  msgid "Equatorial Guinea"
2073
  msgstr ""
2074
 
2075
- #: classes/helpers/FrmFieldsHelper.php:1469
2076
  msgid "Eritrea"
2077
  msgstr ""
2078
 
2079
- #: classes/helpers/FrmFieldsHelper.php:1470
2080
  msgid "Estonia"
2081
  msgstr ""
2082
 
2083
- #: classes/helpers/FrmFieldsHelper.php:1471
2084
  msgid "Ethiopia"
2085
  msgstr ""
2086
 
2087
- #: classes/helpers/FrmFieldsHelper.php:1472
2088
  msgid "Falkland Islands (Malvinas)"
2089
  msgstr ""
2090
 
2091
- #: classes/helpers/FrmFieldsHelper.php:1473
2092
  msgid "Faroe Islands"
2093
  msgstr ""
2094
 
2095
- #: classes/helpers/FrmFieldsHelper.php:1474
2096
  msgid "Fiji"
2097
  msgstr ""
2098
 
2099
- #: classes/helpers/FrmFieldsHelper.php:1475
2100
  msgid "Finland"
2101
  msgstr ""
2102
 
2103
- #: classes/helpers/FrmFieldsHelper.php:1476
2104
  msgid "France"
2105
  msgstr ""
2106
 
2107
- #: classes/helpers/FrmFieldsHelper.php:1477
2108
  msgid "French Guiana"
2109
  msgstr ""
2110
 
2111
- #: classes/helpers/FrmFieldsHelper.php:1478
2112
  msgid "French Polynesia"
2113
  msgstr ""
2114
 
2115
- #: classes/helpers/FrmFieldsHelper.php:1479
2116
  msgid "French Southern Territories"
2117
  msgstr ""
2118
 
2119
- #: classes/helpers/FrmFieldsHelper.php:1480
2120
  msgid "Gabon"
2121
  msgstr ""
2122
 
2123
- #: classes/helpers/FrmFieldsHelper.php:1481
2124
  msgid "Gambia"
2125
  msgstr ""
2126
 
2127
- #: classes/helpers/FrmFieldsHelper.php:1482
2128
  msgid "Georgia"
2129
  msgstr ""
2130
 
2131
- #: classes/helpers/FrmFieldsHelper.php:1483
2132
  msgid "Germany"
2133
  msgstr ""
2134
 
2135
- #: classes/helpers/FrmFieldsHelper.php:1484
2136
  msgid "Ghana"
2137
  msgstr ""
2138
 
2139
- #: classes/helpers/FrmFieldsHelper.php:1485
2140
  msgid "Gibraltar"
2141
  msgstr ""
2142
 
2143
- #: classes/helpers/FrmFieldsHelper.php:1486
2144
  msgid "Greece"
2145
  msgstr ""
2146
 
2147
- #: classes/helpers/FrmFieldsHelper.php:1487
2148
  msgid "Greenland"
2149
  msgstr ""
2150
 
2151
- #: classes/helpers/FrmFieldsHelper.php:1488
2152
  msgid "Grenada"
2153
  msgstr ""
2154
 
2155
- #: classes/helpers/FrmFieldsHelper.php:1489
2156
  msgid "Guadeloupe"
2157
  msgstr ""
2158
 
2159
- #: classes/helpers/FrmFieldsHelper.php:1490
2160
  msgid "Guam"
2161
  msgstr ""
2162
 
2163
- #: classes/helpers/FrmFieldsHelper.php:1491
2164
  msgid "Guatemala"
2165
  msgstr ""
2166
 
2167
- #: classes/helpers/FrmFieldsHelper.php:1492
2168
  msgid "Guernsey"
2169
  msgstr ""
2170
 
2171
- #: classes/helpers/FrmFieldsHelper.php:1493
2172
  msgid "Guinea"
2173
  msgstr ""
2174
 
2175
- #: classes/helpers/FrmFieldsHelper.php:1494
2176
  msgid "Guinea-Bissau"
2177
  msgstr ""
2178
 
2179
- #: classes/helpers/FrmFieldsHelper.php:1495
2180
  msgid "Guyana"
2181
  msgstr ""
2182
 
2183
- #: classes/helpers/FrmFieldsHelper.php:1496
2184
  msgid "Haiti"
2185
  msgstr ""
2186
 
2187
- #: classes/helpers/FrmFieldsHelper.php:1497
2188
  msgid "Heard Island and McDonald Islands"
2189
  msgstr ""
2190
 
2191
- #: classes/helpers/FrmFieldsHelper.php:1498
2192
  msgid "Holy See"
2193
  msgstr ""
2194
 
2195
- #: classes/helpers/FrmFieldsHelper.php:1499
2196
  msgid "Honduras"
2197
  msgstr ""
2198
 
2199
- #: classes/helpers/FrmFieldsHelper.php:1500
2200
  msgid "Hong Kong"
2201
  msgstr ""
2202
 
2203
- #: classes/helpers/FrmFieldsHelper.php:1501
2204
  msgid "Hungary"
2205
  msgstr ""
2206
 
2207
- #: classes/helpers/FrmFieldsHelper.php:1502
2208
  msgid "Iceland"
2209
  msgstr ""
2210
 
2211
- #: classes/helpers/FrmFieldsHelper.php:1503
2212
  msgid "India"
2213
  msgstr ""
2214
 
2215
- #: classes/helpers/FrmFieldsHelper.php:1504
2216
  msgid "Indonesia"
2217
  msgstr ""
2218
 
2219
- #: classes/helpers/FrmFieldsHelper.php:1505
2220
  msgid "Iran"
2221
  msgstr ""
2222
 
2223
- #: classes/helpers/FrmFieldsHelper.php:1506
2224
  msgid "Iraq"
2225
  msgstr ""
2226
 
2227
- #: classes/helpers/FrmFieldsHelper.php:1507
2228
  msgid "Ireland"
2229
  msgstr ""
2230
 
2231
- #: classes/helpers/FrmFieldsHelper.php:1508
2232
  msgid "Israel"
2233
  msgstr ""
2234
 
2235
- #: classes/helpers/FrmFieldsHelper.php:1509
2236
  msgid "Isle of Man"
2237
  msgstr ""
2238
 
2239
- #: classes/helpers/FrmFieldsHelper.php:1510
2240
  msgid "Italy"
2241
  msgstr ""
2242
 
2243
- #: classes/helpers/FrmFieldsHelper.php:1511
2244
  msgid "Jamaica"
2245
  msgstr ""
2246
 
2247
- #: classes/helpers/FrmFieldsHelper.php:1512
2248
  msgid "Japan"
2249
  msgstr ""
2250
 
2251
- #: classes/helpers/FrmFieldsHelper.php:1513
2252
  msgid "Jersey"
2253
  msgstr ""
2254
 
2255
- #: classes/helpers/FrmFieldsHelper.php:1514
2256
  msgid "Jordan"
2257
  msgstr ""
2258
 
2259
- #: classes/helpers/FrmFieldsHelper.php:1515
2260
  msgid "Kazakhstan"
2261
  msgstr ""
2262
 
2263
- #: classes/helpers/FrmFieldsHelper.php:1516
2264
  msgid "Kenya"
2265
  msgstr ""
2266
 
2267
- #: classes/helpers/FrmFieldsHelper.php:1517
2268
  msgid "Kiribati"
2269
  msgstr ""
2270
 
2271
- #: classes/helpers/FrmFieldsHelper.php:1518
2272
  msgid "North Korea"
2273
  msgstr ""
2274
 
2275
- #: classes/helpers/FrmFieldsHelper.php:1519
2276
  msgid "South Korea"
2277
  msgstr ""
2278
 
2279
- #: classes/helpers/FrmFieldsHelper.php:1520
2280
  msgid "Kosovo"
2281
  msgstr ""
2282
 
2283
- #: classes/helpers/FrmFieldsHelper.php:1521
2284
  msgid "Kuwait"
2285
  msgstr ""
2286
 
2287
- #: classes/helpers/FrmFieldsHelper.php:1522
2288
  msgid "Kyrgyzstan"
2289
  msgstr ""
2290
 
2291
- #: classes/helpers/FrmFieldsHelper.php:1523
2292
  msgid "Laos"
2293
  msgstr ""
2294
 
2295
- #: classes/helpers/FrmFieldsHelper.php:1524
2296
  msgid "Latvia"
2297
  msgstr ""
2298
 
2299
- #: classes/helpers/FrmFieldsHelper.php:1525
2300
  msgid "Lebanon"
2301
  msgstr ""
2302
 
2303
- #: classes/helpers/FrmFieldsHelper.php:1526
2304
  msgid "Lesotho"
2305
  msgstr ""
2306
 
2307
- #: classes/helpers/FrmFieldsHelper.php:1527
2308
  msgid "Liberia"
2309
  msgstr ""
2310
 
2311
- #: classes/helpers/FrmFieldsHelper.php:1528
2312
  msgid "Libya"
2313
  msgstr ""
2314
 
2315
- #: classes/helpers/FrmFieldsHelper.php:1529
2316
  msgid "Liechtenstein"
2317
  msgstr ""
2318
 
2319
- #: classes/helpers/FrmFieldsHelper.php:1530
2320
  msgid "Lithuania"
2321
  msgstr ""
2322
 
2323
- #: classes/helpers/FrmFieldsHelper.php:1531
2324
  msgid "Luxembourg"
2325
  msgstr ""
2326
 
2327
- #: classes/helpers/FrmFieldsHelper.php:1532
2328
  msgid "Macao"
2329
  msgstr ""
2330
 
2331
- #: classes/helpers/FrmFieldsHelper.php:1533
2332
  msgid "Macedonia"
2333
  msgstr ""
2334
 
2335
- #: classes/helpers/FrmFieldsHelper.php:1534
2336
  msgid "Madagascar"
2337
  msgstr ""
2338
 
2339
- #: classes/helpers/FrmFieldsHelper.php:1535
2340
  msgid "Malawi"
2341
  msgstr ""
2342
 
2343
- #: classes/helpers/FrmFieldsHelper.php:1536
2344
  msgid "Malaysia"
2345
  msgstr ""
2346
 
2347
- #: classes/helpers/FrmFieldsHelper.php:1537
2348
  msgid "Maldives"
2349
  msgstr ""
2350
 
2351
- #: classes/helpers/FrmFieldsHelper.php:1538
2352
  msgid "Mali"
2353
  msgstr ""
2354
 
2355
- #: classes/helpers/FrmFieldsHelper.php:1539
2356
  msgid "Malta"
2357
  msgstr ""
2358
 
2359
- #: classes/helpers/FrmFieldsHelper.php:1540
2360
  msgid "Marshall Islands"
2361
  msgstr ""
2362
 
2363
- #: classes/helpers/FrmFieldsHelper.php:1541
2364
  msgid "Martinique"
2365
  msgstr ""
2366
 
2367
- #: classes/helpers/FrmFieldsHelper.php:1542
2368
  msgid "Mauritania"
2369
  msgstr ""
2370
 
2371
- #: classes/helpers/FrmFieldsHelper.php:1543
2372
  msgid "Mauritius"
2373
  msgstr ""
2374
 
2375
- #: classes/helpers/FrmFieldsHelper.php:1544
2376
  msgid "Mayotte"
2377
  msgstr ""
2378
 
2379
- #: classes/helpers/FrmFieldsHelper.php:1545
2380
  msgid "Mexico"
2381
  msgstr ""
2382
 
2383
- #: classes/helpers/FrmFieldsHelper.php:1546
2384
  msgid "Micronesia"
2385
  msgstr ""
2386
 
2387
- #: classes/helpers/FrmFieldsHelper.php:1547
2388
  msgid "Moldova"
2389
  msgstr ""
2390
 
2391
- #: classes/helpers/FrmFieldsHelper.php:1548
2392
  msgid "Monaco"
2393
  msgstr ""
2394
 
2395
- #: classes/helpers/FrmFieldsHelper.php:1549
2396
  msgid "Mongolia"
2397
  msgstr ""
2398
 
2399
- #: classes/helpers/FrmFieldsHelper.php:1550
2400
  msgid "Montenegro"
2401
  msgstr ""
2402
 
2403
- #: classes/helpers/FrmFieldsHelper.php:1551
2404
  msgid "Montserrat"
2405
  msgstr ""
2406
 
2407
- #: classes/helpers/FrmFieldsHelper.php:1552
2408
  msgid "Morocco"
2409
  msgstr ""
2410
 
2411
- #: classes/helpers/FrmFieldsHelper.php:1553
2412
  msgid "Mozambique"
2413
  msgstr ""
2414
 
2415
- #: classes/helpers/FrmFieldsHelper.php:1554
2416
  msgid "Myanmar"
2417
  msgstr ""
2418
 
2419
- #: classes/helpers/FrmFieldsHelper.php:1555
2420
  msgid "Namibia"
2421
  msgstr ""
2422
 
2423
- #: classes/helpers/FrmFieldsHelper.php:1556
2424
  msgid "Nauru"
2425
  msgstr ""
2426
 
2427
- #: classes/helpers/FrmFieldsHelper.php:1557
2428
  msgid "Nepal"
2429
  msgstr ""
2430
 
2431
- #: classes/helpers/FrmFieldsHelper.php:1558
2432
  msgid "Netherlands"
2433
  msgstr ""
2434
 
2435
- #: classes/helpers/FrmFieldsHelper.php:1559
2436
  msgid "New Caledonia"
2437
  msgstr ""
2438
 
2439
- #: classes/helpers/FrmFieldsHelper.php:1560
2440
  msgid "New Zealand"
2441
  msgstr ""
2442
 
2443
- #: classes/helpers/FrmFieldsHelper.php:1561
2444
  msgid "Nicaragua"
2445
  msgstr ""
2446
 
2447
- #: classes/helpers/FrmFieldsHelper.php:1562
2448
  msgid "Niger"
2449
  msgstr ""
2450
 
2451
- #: classes/helpers/FrmFieldsHelper.php:1563
2452
  msgid "Nigeria"
2453
  msgstr ""
2454
 
2455
- #: classes/helpers/FrmFieldsHelper.php:1564
2456
  msgid "Niue"
2457
  msgstr ""
2458
 
2459
- #: classes/helpers/FrmFieldsHelper.php:1565
2460
  msgid "Norfolk Island"
2461
  msgstr ""
2462
 
2463
- #: classes/helpers/FrmFieldsHelper.php:1566
2464
  msgid "Northern Mariana Islands"
2465
  msgstr ""
2466
 
2467
- #: classes/helpers/FrmFieldsHelper.php:1567
2468
  msgid "Norway"
2469
  msgstr ""
2470
 
2471
- #: classes/helpers/FrmFieldsHelper.php:1568
2472
  msgid "Oman"
2473
  msgstr ""
2474
 
2475
- #: classes/helpers/FrmFieldsHelper.php:1569
2476
  msgid "Pakistan"
2477
  msgstr ""
2478
 
2479
- #: classes/helpers/FrmFieldsHelper.php:1570
2480
  msgid "Palau"
2481
  msgstr ""
2482
 
2483
- #: classes/helpers/FrmFieldsHelper.php:1571
2484
  msgid "Palestine"
2485
  msgstr ""
2486
 
2487
- #: classes/helpers/FrmFieldsHelper.php:1572
2488
  msgid "Panama"
2489
  msgstr ""
2490
 
2491
- #: classes/helpers/FrmFieldsHelper.php:1573
2492
  msgid "Papua New Guinea"
2493
  msgstr ""
2494
 
2495
- #: classes/helpers/FrmFieldsHelper.php:1574
2496
  msgid "Paraguay"
2497
  msgstr ""
2498
 
2499
- #: classes/helpers/FrmFieldsHelper.php:1575
2500
  msgid "Peru"
2501
  msgstr ""
2502
 
2503
- #: classes/helpers/FrmFieldsHelper.php:1576
2504
  msgid "Philippines"
2505
  msgstr ""
2506
 
2507
- #: classes/helpers/FrmFieldsHelper.php:1577
2508
  msgid "Pitcairn"
2509
  msgstr ""
2510
 
2511
- #: classes/helpers/FrmFieldsHelper.php:1578
2512
  msgid "Poland"
2513
  msgstr ""
2514
 
2515
- #: classes/helpers/FrmFieldsHelper.php:1579
2516
  msgid "Portugal"
2517
  msgstr ""
2518
 
2519
- #: classes/helpers/FrmFieldsHelper.php:1580
2520
  msgid "Puerto Rico"
2521
  msgstr ""
2522
 
2523
- #: classes/helpers/FrmFieldsHelper.php:1581
2524
  msgid "Qatar"
2525
  msgstr ""
2526
 
2527
- #: classes/helpers/FrmFieldsHelper.php:1582
2528
  msgid "Reunion"
2529
  msgstr ""
2530
 
2531
- #: classes/helpers/FrmFieldsHelper.php:1583
2532
  msgid "Romania"
2533
  msgstr ""
2534
 
2535
- #: classes/helpers/FrmFieldsHelper.php:1584
2536
  msgid "Russia"
2537
  msgstr ""
2538
 
2539
- #: classes/helpers/FrmFieldsHelper.php:1585
2540
  msgid "Rwanda"
2541
  msgstr ""
2542
 
2543
- #: classes/helpers/FrmFieldsHelper.php:1586
2544
  msgid "Saint Barthelemy"
2545
  msgstr ""
2546
 
2547
- #: classes/helpers/FrmFieldsHelper.php:1587
2548
  msgid "Saint Helena, Ascension and Tristan da Cunha"
2549
  msgstr ""
2550
 
2551
- #: classes/helpers/FrmFieldsHelper.php:1588
2552
  msgid "Saint Kitts and Nevis"
2553
  msgstr ""
2554
 
2555
- #: classes/helpers/FrmFieldsHelper.php:1589
2556
  msgid "Saint Lucia"
2557
  msgstr ""
2558
 
2559
- #: classes/helpers/FrmFieldsHelper.php:1590
2560
  msgid "Saint Martin (French part)"
2561
  msgstr ""
2562
 
2563
- #: classes/helpers/FrmFieldsHelper.php:1591
2564
  msgid "Saint Pierre and Miquelon"
2565
  msgstr ""
2566
 
2567
- #: classes/helpers/FrmFieldsHelper.php:1592
2568
  msgid "Saint Vincent and the Grenadines"
2569
  msgstr ""
2570
 
2571
- #: classes/helpers/FrmFieldsHelper.php:1593
2572
  msgid "Samoa"
2573
  msgstr ""
2574
 
2575
- #: classes/helpers/FrmFieldsHelper.php:1594
2576
  msgid "San Marino"
2577
  msgstr ""
2578
 
2579
- #: classes/helpers/FrmFieldsHelper.php:1595
2580
  msgid "Sao Tome and Principe"
2581
  msgstr ""
2582
 
2583
- #: classes/helpers/FrmFieldsHelper.php:1596
2584
  msgid "Saudi Arabia"
2585
  msgstr ""
2586
 
2587
- #: classes/helpers/FrmFieldsHelper.php:1597
2588
  msgid "Senegal"
2589
  msgstr ""
2590
 
2591
- #: classes/helpers/FrmFieldsHelper.php:1598
2592
  msgid "Serbia"
2593
  msgstr ""
2594
 
2595
- #: classes/helpers/FrmFieldsHelper.php:1599
2596
  msgid "Seychelles"
2597
  msgstr ""
2598
 
2599
- #: classes/helpers/FrmFieldsHelper.php:1600
2600
  msgid "Sierra Leone"
2601
  msgstr ""
2602
 
2603
- #: classes/helpers/FrmFieldsHelper.php:1601
2604
  msgid "Singapore"
2605
  msgstr ""
2606
 
2607
- #: classes/helpers/FrmFieldsHelper.php:1602
2608
  msgid "Sint Maarten (Dutch part)"
2609
  msgstr ""
2610
 
2611
- #: classes/helpers/FrmFieldsHelper.php:1603
2612
  msgid "Slovakia"
2613
  msgstr ""
2614
 
2615
- #: classes/helpers/FrmFieldsHelper.php:1604
2616
  msgid "Slovenia"
2617
  msgstr ""
2618
 
2619
- #: classes/helpers/FrmFieldsHelper.php:1605
2620
  msgid "Solomon Islands"
2621
  msgstr ""
2622
 
2623
- #: classes/helpers/FrmFieldsHelper.php:1606
2624
  msgid "Somalia"
2625
  msgstr ""
2626
 
2627
- #: classes/helpers/FrmFieldsHelper.php:1607
2628
  msgid "South Africa"
2629
  msgstr ""
2630
 
2631
- #: classes/helpers/FrmFieldsHelper.php:1608
2632
  msgid "South Georgia and the South Sandwich Islands"
2633
  msgstr ""
2634
 
2635
- #: classes/helpers/FrmFieldsHelper.php:1609
2636
  msgid "South Sudan"
2637
  msgstr ""
2638
 
2639
- #: classes/helpers/FrmFieldsHelper.php:1610
2640
  msgid "Spain"
2641
  msgstr ""
2642
 
2643
- #: classes/helpers/FrmFieldsHelper.php:1611
2644
  msgid "Sri Lanka"
2645
  msgstr ""
2646
 
2647
- #: classes/helpers/FrmFieldsHelper.php:1612
2648
  msgid "Sudan"
2649
  msgstr ""
2650
 
2651
- #: classes/helpers/FrmFieldsHelper.php:1613
2652
  msgid "Suriname"
2653
  msgstr ""
2654
 
2655
- #: classes/helpers/FrmFieldsHelper.php:1614
2656
  msgid "Svalbard and Jan Mayen"
2657
  msgstr ""
2658
 
2659
- #: classes/helpers/FrmFieldsHelper.php:1615
2660
  msgid "Swaziland"
2661
  msgstr ""
2662
 
2663
- #: classes/helpers/FrmFieldsHelper.php:1616
2664
  msgid "Sweden"
2665
  msgstr ""
2666
 
2667
- #: classes/helpers/FrmFieldsHelper.php:1617
2668
  msgid "Switzerland"
2669
  msgstr ""
2670
 
2671
- #: classes/helpers/FrmFieldsHelper.php:1618
2672
  msgid "Syria"
2673
  msgstr ""
2674
 
2675
- #: classes/helpers/FrmFieldsHelper.php:1619
2676
  msgid "Taiwan"
2677
  msgstr ""
2678
 
2679
- #: classes/helpers/FrmFieldsHelper.php:1620
2680
  msgid "Tajikistan"
2681
  msgstr ""
2682
 
2683
- #: classes/helpers/FrmFieldsHelper.php:1621
2684
  msgid "Tanzania"
2685
  msgstr ""
2686
 
2687
- #: classes/helpers/FrmFieldsHelper.php:1622
2688
  msgid "Thailand"
2689
  msgstr ""
2690
 
2691
- #: classes/helpers/FrmFieldsHelper.php:1623
2692
  msgid "Timor-Leste"
2693
  msgstr ""
2694
 
2695
- #: classes/helpers/FrmFieldsHelper.php:1624
2696
  msgid "Togo"
2697
  msgstr ""
2698
 
2699
- #: classes/helpers/FrmFieldsHelper.php:1625
2700
  msgid "Tokelau"
2701
  msgstr ""
2702
 
2703
- #: classes/helpers/FrmFieldsHelper.php:1626
2704
  msgid "Tonga"
2705
  msgstr ""
2706
 
2707
- #: classes/helpers/FrmFieldsHelper.php:1627
2708
  msgid "Trinidad and Tobago"
2709
  msgstr ""
2710
 
2711
- #: classes/helpers/FrmFieldsHelper.php:1628
2712
  msgid "Tunisia"
2713
  msgstr ""
2714
 
2715
- #: classes/helpers/FrmFieldsHelper.php:1629
2716
  msgid "Turkey"
2717
  msgstr ""
2718
 
2719
- #: classes/helpers/FrmFieldsHelper.php:1630
2720
  msgid "Turkmenistan"
2721
  msgstr ""
2722
 
2723
- #: classes/helpers/FrmFieldsHelper.php:1631
2724
  msgid "Turks and Caicos Islands"
2725
  msgstr ""
2726
 
2727
- #: classes/helpers/FrmFieldsHelper.php:1632
2728
  msgid "Tuvalu"
2729
  msgstr ""
2730
 
2731
- #: classes/helpers/FrmFieldsHelper.php:1633
2732
  msgid "Uganda"
2733
  msgstr ""
2734
 
2735
- #: classes/helpers/FrmFieldsHelper.php:1634
2736
  msgid "Ukraine"
2737
  msgstr ""
2738
 
2739
- #: classes/helpers/FrmFieldsHelper.php:1635
2740
  msgid "United Arab Emirates"
2741
  msgstr ""
2742
 
2743
- #: classes/helpers/FrmFieldsHelper.php:1636
2744
  msgid "United Kingdom"
2745
  msgstr ""
2746
 
2747
- #: classes/helpers/FrmFieldsHelper.php:1637
2748
  msgid "United States"
2749
  msgstr ""
2750
 
2751
- #: classes/helpers/FrmFieldsHelper.php:1638
2752
  msgid "United States Minor Outlying Islands"
2753
  msgstr ""
2754
 
2755
- #: classes/helpers/FrmFieldsHelper.php:1639
2756
  msgid "Uruguay"
2757
  msgstr ""
2758
 
2759
- #: classes/helpers/FrmFieldsHelper.php:1640
2760
  msgid "Uzbekistan"
2761
  msgstr ""
2762
 
2763
- #: classes/helpers/FrmFieldsHelper.php:1641
2764
  msgid "Vanuatu"
2765
  msgstr ""
2766
 
2767
- #: classes/helpers/FrmFieldsHelper.php:1642
2768
  msgid "Vatican City"
2769
  msgstr ""
2770
 
2771
- #: classes/helpers/FrmFieldsHelper.php:1643
2772
  msgid "Venezuela"
2773
  msgstr ""
2774
 
2775
- #: classes/helpers/FrmFieldsHelper.php:1644
2776
  msgid "Vietnam"
2777
  msgstr ""
2778
 
2779
- #: classes/helpers/FrmFieldsHelper.php:1645
2780
  msgid "Virgin Islands, British"
2781
  msgstr ""
2782
 
2783
- #: classes/helpers/FrmFieldsHelper.php:1646
2784
  msgid "Virgin Islands, U.S."
2785
  msgstr ""
2786
 
2787
- #: classes/helpers/FrmFieldsHelper.php:1647
2788
  msgid "Wallis and Futuna"
2789
  msgstr ""
2790
 
2791
- #: classes/helpers/FrmFieldsHelper.php:1648
2792
  msgid "Western Sahara"
2793
  msgstr ""
2794
 
2795
- #: classes/helpers/FrmFieldsHelper.php:1649
2796
  msgid "Yemen"
2797
  msgstr ""
2798
 
2799
- #: classes/helpers/FrmFieldsHelper.php:1650
2800
  msgid "Zambia"
2801
  msgstr ""
2802
 
2803
- #: classes/helpers/FrmFieldsHelper.php:1651
2804
  msgid "Zimbabwe"
2805
  msgstr ""
2806
 
2807
- #: classes/helpers/FrmFieldsHelper.php:1673
2808
  msgid "Countries"
2809
  msgstr ""
2810
 
2811
- #: classes/helpers/FrmFieldsHelper.php:1683
2812
  msgid "U.S. State Abbreviations"
2813
  msgstr ""
2814
 
2815
- #: classes/helpers/FrmFieldsHelper.php:1692
2816
  msgid "U.S. States"
2817
  msgstr ""
2818
 
2819
- #: classes/helpers/FrmFieldsHelper.php:1697
2820
  msgid "Under 18"
2821
  msgstr ""
2822
 
2823
- #: classes/helpers/FrmFieldsHelper.php:1698
2824
  msgid "18-24"
2825
  msgstr ""
2826
 
2827
- #: classes/helpers/FrmFieldsHelper.php:1699
2828
  msgid "25-34"
2829
  msgstr ""
2830
 
2831
- #: classes/helpers/FrmFieldsHelper.php:1700
2832
  msgid "35-44"
2833
  msgstr ""
2834
 
2835
- #: classes/helpers/FrmFieldsHelper.php:1701
2836
  msgid "45-54"
2837
  msgstr ""
2838
 
2839
- #: classes/helpers/FrmFieldsHelper.php:1702
2840
  msgid "55-64"
2841
  msgstr ""
2842
 
2843
- #: classes/helpers/FrmFieldsHelper.php:1703
2844
  msgid "65 or Above"
2845
  msgstr ""
2846
 
2847
- #: classes/helpers/FrmFieldsHelper.php:1704
2848
  msgid "Prefer Not to Answer"
2849
  msgstr ""
2850
 
2851
- #: classes/helpers/FrmFieldsHelper.php:1710
2852
  msgid "Age"
2853
  msgstr ""
2854
 
2855
- #: classes/helpers/FrmFieldsHelper.php:1714
2856
  msgid "Very Unsatisfied"
2857
  msgstr ""
2858
 
2859
- #: classes/helpers/FrmFieldsHelper.php:1715
2860
  msgid "Unsatisfied"
2861
  msgstr ""
2862
 
2863
- #: classes/helpers/FrmFieldsHelper.php:1716
2864
- #: classes/helpers/FrmFieldsHelper.php:1731
2865
- #: classes/helpers/FrmFieldsHelper.php:1746
2866
- #: classes/helpers/FrmFieldsHelper.php:1761
2867
  msgid "Neutral"
2868
  msgstr ""
2869
 
2870
- #: classes/helpers/FrmFieldsHelper.php:1717
2871
  msgid "Satisfied"
2872
  msgstr ""
2873
 
2874
- #: classes/helpers/FrmFieldsHelper.php:1718
2875
  msgid "Very Satisfied"
2876
  msgstr ""
2877
 
2878
- #: classes/helpers/FrmFieldsHelper.php:1719
2879
- #: classes/helpers/FrmFieldsHelper.php:1734
2880
- #: classes/helpers/FrmFieldsHelper.php:1749
2881
- #: classes/helpers/FrmFieldsHelper.php:1764
2882
  msgid "N/A"
2883
  msgstr ""
2884
 
2885
- #: classes/helpers/FrmFieldsHelper.php:1725
2886
  msgid "Satisfaction"
2887
  msgstr ""
2888
 
2889
- #: classes/helpers/FrmFieldsHelper.php:1729
2890
  msgid "Not at all Important"
2891
  msgstr ""
2892
 
2893
- #: classes/helpers/FrmFieldsHelper.php:1730
2894
  msgid "Somewhat Important"
2895
  msgstr ""
2896
 
2897
- #: classes/helpers/FrmFieldsHelper.php:1732
2898
  msgid "Important"
2899
  msgstr ""
2900
 
2901
- #: classes/helpers/FrmFieldsHelper.php:1733
2902
  msgid "Very Important"
2903
  msgstr ""
2904
 
2905
- #: classes/helpers/FrmFieldsHelper.php:1740
2906
  msgid "Importance"
2907
  msgstr ""
2908
 
2909
- #: classes/helpers/FrmFieldsHelper.php:1744
2910
  msgid "Strongly Disagree"
2911
  msgstr ""
2912
 
2913
- #: classes/helpers/FrmFieldsHelper.php:1745
2914
  msgid "Disagree"
2915
  msgstr ""
2916
 
2917
- #: classes/helpers/FrmFieldsHelper.php:1747
2918
  msgid "Agree"
2919
  msgstr ""
2920
 
2921
- #: classes/helpers/FrmFieldsHelper.php:1748
2922
  msgid "Strongly Agree"
2923
  msgstr ""
2924
 
2925
- #: classes/helpers/FrmFieldsHelper.php:1755
2926
  msgid "Agreement"
2927
  msgstr ""
2928
 
2929
- #: classes/helpers/FrmFieldsHelper.php:1759
2930
  msgid "Extremely Unlikely"
2931
  msgstr ""
2932
 
2933
- #: classes/helpers/FrmFieldsHelper.php:1760
2934
  msgid "Unlikely"
2935
  msgstr ""
2936
 
2937
- #: classes/helpers/FrmFieldsHelper.php:1762
2938
- #: classes/helpers/FrmFieldsHelper.php:1770
2939
  msgid "Likely"
2940
  msgstr ""
2941
 
2942
- #: classes/helpers/FrmFieldsHelper.php:1763
2943
  msgid "Extremely Likely"
2944
  msgstr ""
2945
 
2946
  #. translators: %s: Field name
2947
- #: classes/helpers/FrmFieldsHelper.php:1844
2948
  msgid "%s fields"
2949
  msgstr ""
2950
 
2951
- #: classes/helpers/FrmFieldsHelper.php:1873
2952
  msgid "Simple"
2953
  msgstr ""
2954
 
2955
- #: classes/helpers/FrmFieldsHelper.php:1877
2956
  msgid "Images"
2957
  msgstr ""
2958
 
2959
- #: classes/helpers/FrmFieldsHelper.php:1880
2960
  msgid "Image Options"
2961
  msgstr ""
2962
 
2963
- #: classes/helpers/FrmFieldsHelper.php:1881
2964
  msgid "Show images instead of radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more."
2965
  msgstr ""
2966
 
2967
- #: classes/helpers/FrmFieldsHelper.php:1888
2968
  msgid "Button Options"
2969
  msgstr ""
2970
 
2971
- #: classes/helpers/FrmFieldsHelper.php:1889
2972
  msgid "Show buttons for radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more."
2973
  msgstr ""
2974
 
2975
  #. translators: Add-on name.
2976
- #: classes/helpers/FrmFieldsHelper.php:1971
2977
  msgid "Formidable %s"
2978
  msgstr ""
2979
 
@@ -3023,221 +3023,221 @@ msgstr ""
3023
  msgid "(ID %d)"
3024
  msgstr ""
3025
 
3026
- #: classes/helpers/FrmFormsHelper.php:463
3027
  msgid "Field ID"
3028
  msgstr ""
3029
 
3030
- #: classes/helpers/FrmFormsHelper.php:467
3031
  #: classes/views/frm-fields/back-end/settings.php:304
3032
  msgid "Field Key"
3033
  msgstr ""
3034
 
3035
- #: classes/helpers/FrmFormsHelper.php:471
3036
  msgid "Field Name"
3037
  msgstr ""
3038
 
3039
- #: classes/helpers/FrmFormsHelper.php:479
3040
  #: classes/views/frm-fields/back-end/settings.php:277
3041
  msgid "Label Position"
3042
  msgstr ""
3043
 
3044
- #: classes/helpers/FrmFormsHelper.php:483
3045
  msgid "Required Label"
3046
  msgstr ""
3047
 
3048
- #: classes/helpers/FrmFormsHelper.php:487
3049
  msgid "Input Field"
3050
  msgstr ""
3051
 
3052
- #: classes/helpers/FrmFormsHelper.php:491
3053
  msgid "Single Option"
3054
  msgstr ""
3055
 
3056
- #: classes/helpers/FrmFormsHelper.php:492
3057
  msgid "Show a single radio or checkbox option by replacing 1 with the order of the option"
3058
  msgstr ""
3059
 
3060
- #: classes/helpers/FrmFormsHelper.php:496
3061
  msgid "Hide Option Label"
3062
  msgstr ""
3063
 
3064
- #: classes/helpers/FrmFormsHelper.php:500
3065
  msgid "Required Class"
3066
  msgstr ""
3067
 
3068
- #: classes/helpers/FrmFormsHelper.php:501
3069
  msgid "Add class name if field is required"
3070
  msgstr ""
3071
 
3072
- #: classes/helpers/FrmFormsHelper.php:505
3073
  msgid "Error Class"
3074
  msgstr ""
3075
 
3076
- #: classes/helpers/FrmFormsHelper.php:506
3077
  msgid "Add class name if field has an error on form submit"
3078
  msgstr ""
3079
 
3080
- #: classes/helpers/FrmFormsHelper.php:511
3081
  #: classes/views/frm-forms/new-form-overlay.php:46
3082
  #: classes/views/frm-forms/new-form-overlay.php:47
3083
  msgid "Form Name"
3084
  msgstr ""
3085
 
3086
- #: classes/helpers/FrmFormsHelper.php:519
3087
  #: classes/views/frm-forms/settings-advanced.php:20
3088
  msgid "Form Key"
3089
  msgstr ""
3090
 
3091
- #: classes/helpers/FrmFormsHelper.php:523
3092
  msgid "Delete Entry Link"
3093
  msgstr ""
3094
 
3095
- #: classes/helpers/FrmFormsHelper.php:528
3096
  msgid "Button Label"
3097
  msgstr ""
3098
 
3099
- #: classes/helpers/FrmFormsHelper.php:532
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
 
@@ -3723,7 +3723,7 @@ msgstr ""
3723
  msgid "There was a problem verifying your recaptcha"
3724
  msgstr ""
3725
 
3726
- #: classes/models/fields/FrmFieldCaptcha.php:172
3727
  msgid "The captcha is missing from this form"
3728
  msgstr ""
3729
 
@@ -3908,7 +3908,7 @@ msgid "There was a problem with your submission. Please try again."
3908
  msgstr ""
3909
 
3910
  #: classes/models/FrmEntryValidate.php:255
3911
- #: classes/models/FrmEntryValidate.php:259
3912
  msgid "Your entry appears to be spam!"
3913
  msgstr ""
3914
 
@@ -4086,31 +4086,31 @@ msgstr ""
4086
  msgid "There are no options for this action."
4087
  msgstr ""
4088
 
4089
- #: classes/models/FrmFormAction.php:846
4090
  msgid "Draft is saved"
4091
  msgstr ""
4092
 
4093
- #: classes/models/FrmFormAction.php:847
4094
  msgid "Entry is created"
4095
  msgstr ""
4096
 
4097
- #: classes/models/FrmFormAction.php:848
4098
  msgid "Entry is updated"
4099
  msgstr ""
4100
 
4101
- #: classes/models/FrmFormAction.php:849
4102
  msgid "Entry is deleted"
4103
  msgstr ""
4104
 
4105
- #: classes/models/FrmFormAction.php:850
4106
  msgid "Entry is imported"
4107
  msgstr ""
4108
 
4109
- #: classes/models/FrmFormAction.php:860
4110
  msgid "Use Conditional Logic"
4111
  msgstr ""
4112
 
4113
- #: classes/models/FrmFormAction.php:867
4114
  msgid "Conditional form actions"
4115
  msgstr ""
4116
 
@@ -4316,20 +4316,20 @@ msgstr ""
4316
  msgid "New Style"
4317
  msgstr ""
4318
 
4319
- #: classes/models/FrmStyle.php:160
4320
  msgid "WARNING: Any changes made to this file will be lost when your Formidable settings are updated"
4321
  msgstr ""
4322
 
4323
- #: classes/models/FrmStyle.php:240
4324
  msgid "Formidable Style"
4325
  msgstr ""
4326
 
4327
- #: classes/models/FrmStyle.php:479
4328
  #: classes/views/styles/_field-description.php:22
4329
  msgid "normal"
4330
  msgstr ""
4331
 
4332
- #: classes/models/FrmStyle.php:482
4333
  msgid "bold"
4334
  msgstr ""
4335
 
@@ -4499,7 +4499,7 @@ msgstr ""
4499
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4500
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4501
  #: classes/views/shared/admin-header.php:19
4502
- #: js/formidable_admin.js:7642
4503
  msgid "Close"
4504
  msgstr ""
4505
 
@@ -4807,11 +4807,11 @@ msgstr ""
4807
  msgid "(click an action to add it to your form)"
4808
  msgstr ""
4809
 
4810
- #: classes/views/frm-form-actions/settings.php:85
4811
  msgid "Show all form actions"
4812
  msgstr ""
4813
 
4814
- #: classes/views/frm-form-actions/settings.php:88
4815
  msgid "Hide extra form actions"
4816
  msgstr ""
4817
 
@@ -6347,6 +6347,6 @@ msgstr ""
6347
  msgid "Are you sure you want to delete these %1$s selected fields?"
6348
  msgstr ""
6349
 
6350
- #: js/formidable_admin.js:7634
6351
  msgid "Save and Reload"
6352
  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.13\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-17T17:54:41+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:1339
141
  #: classes/views/frm-fields/back-end/smart-values.php:16
142
  #: classes/views/shared/admin-header.php:33
143
  msgid "Upgrade"
152
  msgstr ""
153
 
154
  #: classes/controllers/FrmAddonsController.php:625
155
+ #: classes/helpers/FrmAppHelper.php:2738
156
  msgid "Active"
157
  msgstr ""
158
 
448
  msgstr ""
449
 
450
  #: classes/controllers/FrmFormsController.php:762
451
+ #: classes/controllers/FrmStylesController.php:395
452
  #: classes/views/frm-forms/settings-advanced.php:13
453
  #: classes/views/styles/manage.php:39
454
  #: classes/views/styles/_sample_form.php:19
466
  msgstr ""
467
 
468
  #: classes/controllers/FrmFormsController.php:888
469
+ #: classes/helpers/FrmFormsHelper.php:1282
470
  msgid "My Templates"
471
  msgstr ""
472
 
484
  msgstr ""
485
 
486
  #: classes/controllers/FrmFormsController.php:1058
487
+ #: classes/controllers/FrmStylesController.php:394
488
  msgid "General"
489
  msgstr ""
490
 
637
  #: classes/helpers/FrmFormsHelper.php:57
638
  #: classes/helpers/FrmFormsHelper.php:112
639
  #: classes/helpers/FrmFormsHelper.php:166
640
+ #: classes/helpers/FrmFormsHelper.php:1054
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
656
  msgstr ""
657
 
658
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
659
+ #: classes/controllers/FrmFormsController.php:1973
660
  msgid "%1$sClick here%2$s if you are not automatically redirected."
661
  msgstr ""
662
 
853
  msgstr ""
854
 
855
  #: classes/controllers/FrmSMTPController.php:305
856
+ #: classes/helpers/FrmAppHelper.php:2737
857
  #: classes/helpers/FrmFormMigratorsHelper.php:131
858
  #: classes/views/shared/upgrade_overlay.php:32
859
  msgid "Install"
912
  msgstr ""
913
 
914
  #: classes/controllers/FrmStylesController.php:229
915
+ #: classes/controllers/FrmStylesController.php:334
916
  msgid "Your styling settings have been saved."
917
  msgstr ""
918
 
919
+ #: classes/controllers/FrmStylesController.php:291
920
  msgid "Your form styles have been saved."
921
  msgstr ""
922
 
923
+ #: classes/controllers/FrmStylesController.php:396
924
+ #: classes/helpers/FrmFormsHelper.php:517
925
  #: classes/views/frm-forms/new-form-overlay.php:53
926
  #: classes/views/frm-forms/new-form-overlay.php:54
927
  #: classes/views/frm-forms/settings-advanced.php:27
928
  msgid "Form Description"
929
  msgstr ""
930
 
931
+ #: classes/controllers/FrmStylesController.php:397
932
  msgid "Field Labels"
933
  msgstr ""
934
 
935
+ #: classes/controllers/FrmStylesController.php:398
936
+ #: classes/helpers/FrmFormsHelper.php:477
937
  #: classes/views/frm-fields/back-end/field-description.php:8
938
  msgid "Field Description"
939
  msgstr ""
940
 
941
+ #: classes/controllers/FrmStylesController.php:399
942
  msgid "Field Colors"
943
  msgstr ""
944
 
945
+ #: classes/controllers/FrmStylesController.php:400
946
  msgid "Field Settings"
947
  msgstr ""
948
 
949
+ #: classes/controllers/FrmStylesController.php:401
950
  msgid "Check Box & Radio Fields"
951
  msgstr ""
952
 
953
+ #: classes/controllers/FrmStylesController.php:402
954
+ #: classes/helpers/FrmFieldsHelper.php:1889
955
  #: classes/views/frm-forms/settings-buttons.php:46
956
  msgid "Buttons"
957
  msgstr ""
958
 
959
+ #: classes/controllers/FrmStylesController.php:403
960
  msgid "Form Messages"
961
  msgstr ""
962
 
1005
  msgid "There are no entries for that form."
1006
  msgstr ""
1007
 
1008
+ #: classes/helpers/FrmAppHelper.php:1082
1009
+ #: classes/helpers/FrmAppHelper.php:1090
1010
  msgid "Add New"
1011
  msgstr ""
1012
 
1013
+ #: classes/helpers/FrmAppHelper.php:1106
1014
  #: classes/views/frm-entries/list.php:47
1015
  #: classes/views/frm-forms/list.php:27
1016
  #: classes/views/shared/mb_adv_info.php:40
1018
  msgid "Search"
1019
  msgstr ""
1020
 
1021
+ #: classes/helpers/FrmAppHelper.php:1327
1022
  #: classes/views/frm-forms/settings-advanced.php:98
1023
  msgid "Select a Page"
1024
  msgstr ""
1025
 
1026
+ #: classes/helpers/FrmAppHelper.php:1428
1027
  msgid "View Forms"
1028
  msgstr ""
1029
 
1030
+ #: classes/helpers/FrmAppHelper.php:1429
1031
  msgid "Add and Edit Forms"
1032
  msgstr ""
1033
 
1034
+ #: classes/helpers/FrmAppHelper.php:1430
1035
  msgid "Delete Forms"
1036
  msgstr ""
1037
 
1038
+ #: classes/helpers/FrmAppHelper.php:1431
1039
  msgid "Access this Settings Page"
1040
  msgstr ""
1041
 
1042
+ #: classes/helpers/FrmAppHelper.php:1432
1043
  msgid "View Entries from Admin Area"
1044
  msgstr ""
1045
 
1046
+ #: classes/helpers/FrmAppHelper.php:1433
1047
  msgid "Delete Entries from Admin Area"
1048
  msgstr ""
1049
 
1050
+ #: classes/helpers/FrmAppHelper.php:1441
1051
  msgid "Add Entries from Admin Area"
1052
  msgstr ""
1053
 
1054
+ #: classes/helpers/FrmAppHelper.php:1442
1055
  msgid "Edit Entries from Admin Area"
1056
  msgstr ""
1057
 
1058
+ #: classes/helpers/FrmAppHelper.php:1443
1059
  msgid "View Reports"
1060
  msgstr ""
1061
 
1062
+ #: classes/helpers/FrmAppHelper.php:1444
1063
  msgid "Add/Edit Views"
1064
  msgstr ""
1065
 
1066
+ #: classes/helpers/FrmAppHelper.php:2168
1067
  msgid "at"
1068
  msgstr ""
1069
 
1070
+ #: classes/helpers/FrmAppHelper.php:2312
1071
  msgid "year"
1072
  msgstr ""
1073
 
1074
+ #: classes/helpers/FrmAppHelper.php:2313
1075
  msgid "years"
1076
  msgstr ""
1077
 
1078
+ #: classes/helpers/FrmAppHelper.php:2317
1079
  msgid "month"
1080
  msgstr ""
1081
 
1082
+ #: classes/helpers/FrmAppHelper.php:2318
1083
  msgid "months"
1084
  msgstr ""
1085
 
1086
+ #: classes/helpers/FrmAppHelper.php:2322
1087
  msgid "week"
1088
  msgstr ""
1089
 
1090
+ #: classes/helpers/FrmAppHelper.php:2323
1091
  msgid "weeks"
1092
  msgstr ""
1093
 
1094
+ #: classes/helpers/FrmAppHelper.php:2327
1095
  msgid "day"
1096
  msgstr ""
1097
 
1098
+ #: classes/helpers/FrmAppHelper.php:2328
1099
  msgid "days"
1100
  msgstr ""
1101
 
1102
+ #: classes/helpers/FrmAppHelper.php:2332
1103
  msgid "hour"
1104
  msgstr ""
1105
 
1106
+ #: classes/helpers/FrmAppHelper.php:2333
1107
  msgid "hours"
1108
  msgstr ""
1109
 
1110
+ #: classes/helpers/FrmAppHelper.php:2337
1111
  msgid "minute"
1112
  msgstr ""
1113
 
1114
+ #: classes/helpers/FrmAppHelper.php:2338
1115
  msgid "minutes"
1116
  msgstr ""
1117
 
1118
+ #: classes/helpers/FrmAppHelper.php:2342
1119
  msgid "second"
1120
  msgstr ""
1121
 
1122
+ #: classes/helpers/FrmAppHelper.php:2343
1123
  msgid "seconds"
1124
  msgstr ""
1125
 
1126
+ #: classes/helpers/FrmAppHelper.php:2437
1127
  msgid "Give this action a label for easy reference."
1128
  msgstr ""
1129
 
1130
+ #: classes/helpers/FrmAppHelper.php:2438
1131
  msgid "Add one or more recipient addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com. [admin_email] is the address set in WP General Settings."
1132
  msgstr ""
1133
 
1134
+ #: classes/helpers/FrmAppHelper.php:2439
1135
  msgid "Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
1136
  msgstr ""
1137
 
1138
+ #: classes/helpers/FrmAppHelper.php:2440
1139
  msgid "Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
1140
  msgstr ""
1141
 
1142
+ #: classes/helpers/FrmAppHelper.php:2441
1143
  msgid "If you would like a different reply to address than the \"from\" address, add a single address here. FORMAT: Name <name@email.com> or name@email.com."
1144
  msgstr ""
1145
 
1146
+ #: classes/helpers/FrmAppHelper.php:2442
1147
  msgid "Enter the name and/or email address of the sender. FORMAT: John Bates <john@example.com> or john@example.com."
1148
  msgstr ""
1149
 
1150
  #. translators: %1$s: Form name, %2$s: Date
1151
+ #: classes/helpers/FrmAppHelper.php:2444
1152
  msgid "If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s"
1153
  msgstr ""
1154
 
1155
+ #: classes/helpers/FrmAppHelper.php:2640
1156
+ #: classes/helpers/FrmAppHelper.php:2719
1157
  msgid "Please wait while your site updates."
1158
  msgstr ""
1159
 
1160
+ #: classes/helpers/FrmAppHelper.php:2641
1161
  msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
1162
  msgstr ""
1163
 
1164
+ #: classes/helpers/FrmAppHelper.php:2644
1165
+ #: classes/helpers/FrmAppHelper.php:2673
1166
  msgid "Loading&hellip;"
1167
  msgstr ""
1168
 
1169
+ #: classes/helpers/FrmAppHelper.php:2674
1170
  msgid "Remove"
1171
  msgstr ""
1172
 
1173
+ #: classes/helpers/FrmAppHelper.php:2677
1174
  #: classes/helpers/FrmCSVExportHelper.php:229
1175
  #: classes/views/shared/mb_adv_info.php:95
1176
  msgid "ID"
1177
  msgstr ""
1178
 
1179
+ #: classes/helpers/FrmAppHelper.php:2678
1180
  msgid "No results match"
1181
  msgstr ""
1182
 
1183
+ #: classes/helpers/FrmAppHelper.php:2679
1184
  msgid "That file looks like Spam."
1185
  msgstr ""
1186
 
1187
+ #: classes/helpers/FrmAppHelper.php:2680
1188
  msgid "There is an error in the calculation in the field with key"
1189
  msgstr ""
1190
 
1191
+ #: classes/helpers/FrmAppHelper.php:2681
1192
  msgid "Please complete the preceding required fields before uploading a file."
1193
  msgstr ""
1194
 
1195
+ #: classes/helpers/FrmAppHelper.php:2692
1196
  msgid "(Click to add description)"
1197
  msgstr ""
1198
 
1199
+ #: classes/helpers/FrmAppHelper.php:2693
1200
  msgid "(Blank)"
1201
  msgstr ""
1202
 
1203
+ #: classes/helpers/FrmAppHelper.php:2694
1204
  msgid "(no label)"
1205
  msgstr ""
1206
 
1207
+ #: classes/helpers/FrmAppHelper.php:2695
1208
  msgid "Saving"
1209
  msgstr ""
1210
 
1211
+ #: classes/helpers/FrmAppHelper.php:2696
1212
  msgid "Saved"
1213
  msgstr ""
1214
 
1215
+ #: classes/helpers/FrmAppHelper.php:2697
1216
  msgid "OK"
1217
  msgstr ""
1218
 
1219
+ #: classes/helpers/FrmAppHelper.php:2698
1220
  #: classes/views/frm-forms/new-form-overlay.php:33
1221
  #: classes/views/frm-forms/new-form-overlay.php:100
1222
  #: classes/views/frm-forms/new-form-overlay.php:109
1229
  msgid "Cancel"
1230
  msgstr ""
1231
 
1232
+ #: classes/helpers/FrmAppHelper.php:2699
1233
  #: classes/views/frm-fields/back-end/settings.php:280
1234
  msgid "Default"
1235
  msgstr ""
1236
 
1237
+ #: classes/helpers/FrmAppHelper.php:2700
1238
  msgid "Clear default value when typing"
1239
  msgstr ""
1240
 
1241
+ #: classes/helpers/FrmAppHelper.php:2701
1242
  msgid "Do not clear default value when typing"
1243
  msgstr ""
1244
 
1245
+ #: classes/helpers/FrmAppHelper.php:2702
1246
  msgid "Default value will pass form validation"
1247
  msgstr ""
1248
 
1249
+ #: classes/helpers/FrmAppHelper.php:2703
1250
  msgid "Default value will NOT pass form validation"
1251
  msgstr ""
1252
 
1253
+ #: classes/helpers/FrmAppHelper.php:2704
1254
  #: classes/helpers/FrmListHelper.php:405
1255
  #: js/formidable_admin.js:4069
1256
  msgid "Heads up"
1257
  msgstr ""
1258
 
1259
+ #: classes/helpers/FrmAppHelper.php:2705
1260
  #: classes/views/shared/confirm-overlay.php:15
1261
  #: classes/views/shared/info-overlay.php:15
1262
  msgid "Are you sure?"
1263
  msgstr ""
1264
 
1265
+ #: classes/helpers/FrmAppHelper.php:2706
1266
  msgid "Are you sure you want to delete this field and all data associated with it?"
1267
  msgstr ""
1268
 
1269
+ #: classes/helpers/FrmAppHelper.php:2707
1270
  msgid "All fields inside this Section will be deleted along with their data. Are you sure you want to delete this group of fields?"
1271
  msgstr ""
1272
 
1273
+ #: classes/helpers/FrmAppHelper.php:2708
1274
  msgid "Warning: If you have entries with multiple rows, all but the first row will be lost."
1275
  msgstr ""
1276
 
1277
+ #: classes/helpers/FrmAppHelper.php:2710
1278
+ #: classes/helpers/FrmFieldsHelper.php:284
1279
  msgid "The entered values do not match"
1280
  msgstr ""
1281
 
1282
+ #: classes/helpers/FrmAppHelper.php:2711
1283
  msgid "Enter Email"
1284
  msgstr ""
1285
 
1286
+ #: classes/helpers/FrmAppHelper.php:2712
1287
  msgid "Confirm Email"
1288
  msgstr ""
1289
 
1290
+ #: classes/helpers/FrmAppHelper.php:2713
1291
  #: classes/views/shared/mb_adv_info.php:166
1292
  msgid "Conditional content here"
1293
  msgstr ""
1294
 
1295
+ #: classes/helpers/FrmAppHelper.php:2714
1296
+ #: classes/helpers/FrmFieldsHelper.php:456
1297
+ #: classes/helpers/FrmFieldsHelper.php:457
1298
  msgid "New Option"
1299
  msgstr ""
1300
 
1301
+ #: classes/helpers/FrmAppHelper.php:2715
1302
  msgid "In certain browsers (e.g. Firefox) text will not display correctly if the field height is too small relative to the field padding and text size. Please increase your field height or decrease your field padding."
1303
  msgstr ""
1304
 
1305
+ #: classes/helpers/FrmAppHelper.php:2716
1306
  msgid "Enter Password"
1307
  msgstr ""
1308
 
1309
+ #: classes/helpers/FrmAppHelper.php:2717
1310
  msgid "Confirm Password"
1311
  msgstr ""
1312
 
1313
+ #: classes/helpers/FrmAppHelper.php:2718
1314
  msgid "Import Complete"
1315
  msgstr ""
1316
 
1317
+ #: classes/helpers/FrmAppHelper.php:2720
1318
  msgid "Warning: There is no way to retrieve unsaved entries."
1319
  msgstr ""
1320
 
1321
+ #: classes/helpers/FrmAppHelper.php:2721
1322
  msgid "Private"
1323
  msgstr ""
1324
 
1325
+ #: classes/helpers/FrmAppHelper.php:2724
1326
  msgid "No new licenses were found"
1327
  msgstr ""
1328
 
1329
+ #: classes/helpers/FrmAppHelper.php:2725
1330
  msgid "This calculation has at least one unmatched ( ) { } [ ]."
1331
  msgstr ""
1332
 
1333
+ #: classes/helpers/FrmAppHelper.php:2726
1334
  msgid "This calculation may have shortcodes that work in Views but not forms."
1335
  msgstr ""
1336
 
1337
+ #: classes/helpers/FrmAppHelper.php:2727
1338
  msgid "This calculation may have shortcodes that work in text calculations but not numeric calculations."
1339
  msgstr ""
1340
 
1341
+ #: classes/helpers/FrmAppHelper.php:2728
1342
  msgid "This form action is limited to one per form. Please edit the existing form action."
1343
  msgstr ""
1344
 
1345
  #. Translators: %s is the name of a Detail Page Slug that is a reserved word.
1346
+ #: classes/helpers/FrmAppHelper.php:2731
1347
  msgid "The Detail Page Slug \"%s\" is reserved by WordPress. This may cause problems. Is this intentional?"
1348
  msgstr ""
1349
 
1350
  #. Translators: %s is the name of a parameter that is a reserved word. More than one word could be listed here, though that would not be common.
1351
+ #: classes/helpers/FrmAppHelper.php:2733
1352
  msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems when included in the URL. Is this intentional? "
1353
  msgstr ""
1354
 
1355
+ #: classes/helpers/FrmAppHelper.php:2734
1356
+ #: classes/helpers/FrmFormsHelper.php:1513
1357
  msgid "See the list of reserved words in WordPress."
1358
  msgstr ""
1359
 
1360
+ #: classes/helpers/FrmAppHelper.php:2735
1361
  msgid "Please enter a Repeat Limit that is greater than 1."
1362
  msgstr ""
1363
 
1364
+ #: classes/helpers/FrmAppHelper.php:2736
1365
  msgid "Please select a limit between 0 and 200."
1366
  msgstr ""
1367
 
1368
+ #: classes/helpers/FrmAppHelper.php:2739
1369
  #: classes/views/shared/mb_adv_info.php:113
1370
  #: classes/views/shared/mb_adv_info.php:127
1371
  msgid "Select a Field"
1372
  msgstr ""
1373
 
1374
+ #: classes/helpers/FrmAppHelper.php:2740
1375
  #: classes/helpers/FrmListHelper.php:262
1376
  msgid "No items found."
1377
  msgstr ""
1378
 
1379
+ #: classes/helpers/FrmAppHelper.php:2768
1380
  msgid "You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable."
1381
  msgstr ""
1382
 
1383
+ #: classes/helpers/FrmAppHelper.php:2795
1384
  msgid "You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro."
1385
  msgstr ""
1386
 
1387
+ #: classes/helpers/FrmAppHelper.php:2823
1388
  msgid "The version of PHP on your server is too low. If this is not corrected, you may see issues with Formidable Forms. Please contact your web host and ask to be updated to PHP 7.0+."
1389
  msgstr ""
1390
 
1391
+ #: classes/helpers/FrmAppHelper.php:2829
1392
  msgid "You are using an outdated browser that is not compatible with Formidable Forms. Please update to a more current browser (we recommend Chrome)."
1393
  msgstr ""
1394
 
1395
+ #: classes/helpers/FrmAppHelper.php:2843
1396
  msgid "English"
1397
  msgstr ""
1398
 
1399
+ #: classes/helpers/FrmAppHelper.php:2844
1400
  msgid "Afrikaans"
1401
  msgstr ""
1402
 
1403
+ #: classes/helpers/FrmAppHelper.php:2845
1404
  msgid "Albanian"
1405
  msgstr ""
1406
 
1407
+ #: classes/helpers/FrmAppHelper.php:2846
1408
  msgid "Arabic"
1409
  msgstr ""
1410
 
1411
+ #: classes/helpers/FrmAppHelper.php:2847
1412
  msgid "Armenian"
1413
  msgstr ""
1414
 
1415
+ #: classes/helpers/FrmAppHelper.php:2848
1416
  msgid "Azerbaijani"
1417
  msgstr ""
1418
 
1419
+ #: classes/helpers/FrmAppHelper.php:2849
1420
  msgid "Basque"
1421
  msgstr ""
1422
 
1423
+ #: classes/helpers/FrmAppHelper.php:2850
1424
  msgid "Bosnian"
1425
  msgstr ""
1426
 
1427
+ #: classes/helpers/FrmAppHelper.php:2851
1428
  msgid "Bulgarian"
1429
  msgstr ""
1430
 
1431
+ #: classes/helpers/FrmAppHelper.php:2852
1432
  msgid "Catalan"
1433
  msgstr ""
1434
 
1435
+ #: classes/helpers/FrmAppHelper.php:2853
1436
  msgid "Chinese Hong Kong"
1437
  msgstr ""
1438
 
1439
+ #: classes/helpers/FrmAppHelper.php:2854
1440
  msgid "Chinese Simplified"
1441
  msgstr ""
1442
 
1443
+ #: classes/helpers/FrmAppHelper.php:2855
1444
  msgid "Chinese Traditional"
1445
  msgstr ""
1446
 
1447
+ #: classes/helpers/FrmAppHelper.php:2856
1448
  msgid "Croatian"
1449
  msgstr ""
1450
 
1451
+ #: classes/helpers/FrmAppHelper.php:2857
1452
  msgid "Czech"
1453
  msgstr ""
1454
 
1455
+ #: classes/helpers/FrmAppHelper.php:2858
1456
  msgid "Danish"
1457
  msgstr ""
1458
 
1459
+ #: classes/helpers/FrmAppHelper.php:2859
1460
  msgid "Dutch"
1461
  msgstr ""
1462
 
1463
+ #: classes/helpers/FrmAppHelper.php:2860
1464
  msgid "English/UK"
1465
  msgstr ""
1466
 
1467
+ #: classes/helpers/FrmAppHelper.php:2861
1468
  msgid "Esperanto"
1469
  msgstr ""
1470
 
1471
+ #: classes/helpers/FrmAppHelper.php:2862
1472
  msgid "Estonian"
1473
  msgstr ""
1474
 
1475
+ #: classes/helpers/FrmAppHelper.php:2863
1476
  msgid "Faroese"
1477
  msgstr ""
1478
 
1479
+ #: classes/helpers/FrmAppHelper.php:2864
1480
  msgid "Farsi/Persian"
1481
  msgstr ""
1482
 
1483
+ #: classes/helpers/FrmAppHelper.php:2865
1484
  msgid "Filipino"
1485
  msgstr ""
1486
 
1487
+ #: classes/helpers/FrmAppHelper.php:2866
1488
  msgid "Finnish"
1489
  msgstr ""
1490
 
1491
+ #: classes/helpers/FrmAppHelper.php:2867
1492
  msgid "French"
1493
  msgstr ""
1494
 
1495
+ #: classes/helpers/FrmAppHelper.php:2868
1496
  msgid "French/Canadian"
1497
  msgstr ""
1498
 
1499
+ #: classes/helpers/FrmAppHelper.php:2869
1500
  msgid "French/Swiss"
1501
  msgstr ""
1502
 
1503
+ #: classes/helpers/FrmAppHelper.php:2870
1504
  msgid "German"
1505
  msgstr ""
1506
 
1507
+ #: classes/helpers/FrmAppHelper.php:2871
1508
  msgid "German/Austria"
1509
  msgstr ""
1510
 
1511
+ #: classes/helpers/FrmAppHelper.php:2872
1512
  msgid "German/Switzerland"
1513
  msgstr ""
1514
 
1515
+ #: classes/helpers/FrmAppHelper.php:2873
1516
  msgid "Greek"
1517
  msgstr ""
1518
 
1519
+ #: classes/helpers/FrmAppHelper.php:2874
1520
+ #: classes/helpers/FrmAppHelper.php:2875
1521
  msgid "Hebrew"
1522
  msgstr ""
1523
 
1524
+ #: classes/helpers/FrmAppHelper.php:2876
1525
  msgid "Hindi"
1526
  msgstr ""
1527
 
1528
+ #: classes/helpers/FrmAppHelper.php:2877
1529
  msgid "Hungarian"
1530
  msgstr ""
1531
 
1532
+ #: classes/helpers/FrmAppHelper.php:2878
1533
  msgid "Icelandic"
1534
  msgstr ""
1535
 
1536
+ #: classes/helpers/FrmAppHelper.php:2879
1537
  msgid "Indonesian"
1538
  msgstr ""
1539
 
1540
+ #: classes/helpers/FrmAppHelper.php:2880
1541
  msgid "Italian"
1542
  msgstr ""
1543
 
1544
+ #: classes/helpers/FrmAppHelper.php:2881
1545
  msgid "Japanese"
1546
  msgstr ""
1547
 
1548
+ #: classes/helpers/FrmAppHelper.php:2882
1549
  msgid "Korean"
1550
  msgstr ""
1551
 
1552
+ #: classes/helpers/FrmAppHelper.php:2883
1553
  msgid "Latvian"
1554
  msgstr ""
1555
 
1556
+ #: classes/helpers/FrmAppHelper.php:2884
1557
  msgid "Lithuanian"
1558
  msgstr ""
1559
 
1560
+ #: classes/helpers/FrmAppHelper.php:2885
1561
  msgid "Malaysian"
1562
  msgstr ""
1563
 
1564
+ #: classes/helpers/FrmAppHelper.php:2886
1565
  msgid "Norwegian"
1566
  msgstr ""
1567
 
1568
+ #: classes/helpers/FrmAppHelper.php:2887
1569
  msgid "Polish"
1570
  msgstr ""
1571
 
1572
+ #: classes/helpers/FrmAppHelper.php:2888
1573
  msgid "Portuguese"
1574
  msgstr ""
1575
 
1576
+ #: classes/helpers/FrmAppHelper.php:2889
1577
  msgid "Portuguese/Brazilian"
1578
  msgstr ""
1579
 
1580
+ #: classes/helpers/FrmAppHelper.php:2890
1581
  msgid "Portuguese/Portugal"
1582
  msgstr ""
1583
 
1584
+ #: classes/helpers/FrmAppHelper.php:2891
1585
  msgid "Romanian"
1586
  msgstr ""
1587
 
1588
+ #: classes/helpers/FrmAppHelper.php:2892
1589
  msgid "Russian"
1590
  msgstr ""
1591
 
1592
+ #: classes/helpers/FrmAppHelper.php:2893
1593
+ #: classes/helpers/FrmAppHelper.php:2894
1594
  msgid "Serbian"
1595
  msgstr ""
1596
 
1597
+ #: classes/helpers/FrmAppHelper.php:2895
1598
  msgid "Slovak"
1599
  msgstr ""
1600
 
1601
+ #: classes/helpers/FrmAppHelper.php:2896
1602
  msgid "Slovenian"
1603
  msgstr ""
1604
 
1605
+ #: classes/helpers/FrmAppHelper.php:2897
1606
  msgid "Spanish"
1607
  msgstr ""
1608
 
1609
+ #: classes/helpers/FrmAppHelper.php:2898
1610
  msgid "Spanish/Latin America"
1611
  msgstr ""
1612
 
1613
+ #: classes/helpers/FrmAppHelper.php:2899
1614
  msgid "Swedish"
1615
  msgstr ""
1616
 
1617
+ #: classes/helpers/FrmAppHelper.php:2900
1618
  msgid "Tamil"
1619
  msgstr ""
1620
 
1621
+ #: classes/helpers/FrmAppHelper.php:2901
1622
  msgid "Thai"
1623
  msgstr ""
1624
 
1625
+ #: classes/helpers/FrmAppHelper.php:2902
1626
  msgid "Turkish"
1627
  msgstr ""
1628
 
1629
+ #: classes/helpers/FrmAppHelper.php:2903
1630
  msgid "Ukrainian"
1631
  msgstr ""
1632
 
1633
+ #: classes/helpers/FrmAppHelper.php:2904
1634
  msgid "Vietnamese"
1635
  msgstr ""
1636
 
1637
+ #: classes/helpers/FrmAppHelper.php:3225
1638
  msgid "Your account has expired"
1639
  msgstr ""
1640
 
1641
+ #: classes/helpers/FrmAppHelper.php:3228
1642
  msgid "Renew Now"
1643
  msgstr ""
1644
 
1671
  msgstr ""
1672
 
1673
  #: classes/helpers/FrmCSVExportHelper.php:227
1674
+ #: classes/helpers/FrmFormsHelper.php:1240
1675
  #: classes/helpers/FrmFormsListHelper.php:342
1676
  msgid "Draft"
1677
  msgstr ""
1684
  msgid "Parent ID"
1685
  msgstr ""
1686
 
1687
+ #: classes/helpers/FrmEntriesHelper.php:534
1688
+ #: classes/helpers/FrmEntriesHelper.php:535
1689
  msgid "Unknown"
1690
  msgstr ""
1691
 
1692
+ #: classes/helpers/FrmEntriesHelper.php:644
1693
  #: classes/views/frm-entries/show.php:12
1694
  msgid "View Entry"
1695
  msgstr ""
1696
 
1697
+ #: classes/helpers/FrmEntriesHelper.php:652
1698
  msgid "Delete Entry"
1699
  msgstr ""
1700
 
1701
+ #: classes/helpers/FrmEntriesHelper.php:655
1702
  msgid "Delete this form entry?"
1703
  msgstr ""
1704
 
1705
+ #: classes/helpers/FrmEntriesHelper.php:663
1706
  msgid "Print Entry"
1707
  msgstr ""
1708
 
1709
+ #: classes/helpers/FrmEntriesHelper.php:673
1710
+ #: classes/helpers/FrmEntriesHelper.php:676
1711
  msgid "Resend Emails"
1712
  msgstr ""
1713
 
1714
+ #: classes/helpers/FrmEntriesHelper.php:685
1715
  msgid "Edit Entry"
1716
  msgstr ""
1717
 
1718
+ #: classes/helpers/FrmEntriesHelper.php:688
1719
  msgid "Entry edits"
1720
  msgstr ""
1721
 
1757
  msgstr ""
1758
 
1759
  #: classes/helpers/FrmEntriesListHelper.php:309
1760
+ #: classes/helpers/FrmFormsHelper.php:1162
1761
  #: classes/helpers/FrmFormsListHelper.php:133
1762
  #: classes/views/frm-form-actions/form_action.php:25
1763
  #: js/formidable_admin.js:2055
1771
  #. translators: %s: Field name
1772
  #. translators: %s: The field name.
1773
  #: classes/helpers/FrmFieldsHelper.php:167
1774
+ #: classes/helpers/FrmFieldsHelper.php:294
1775
  #: classes/helpers/FrmXMLHelper.php:1242
1776
  #: classes/models/fields/FrmFieldType.php:583
1777
  msgid "%s is invalid"
1778
  msgstr ""
1779
 
1780
  #. translators: %s: Field name
1781
+ #: classes/helpers/FrmFieldsHelper.php:289
1782
  msgid "%s must be unique"
1783
  msgstr ""
1784
 
1785
+ #: classes/helpers/FrmFieldsHelper.php:292
1786
  #: classes/models/fields/FrmFieldType.php:580
1787
  msgid "This field is invalid"
1788
  msgstr ""
1789
 
1790
  #. translators: %1$s: Start HTML link, %2$s: Content type label, %3$s: Content type, %4$s: End HTML link
1791
+ #: classes/helpers/FrmFieldsHelper.php:552
1792
  msgid "Options are dynamically created from your %1$s%2$s: %3$s%4$s"
1793
  msgstr ""
1794
 
1795
+ #: classes/helpers/FrmFieldsHelper.php:554
1796
  msgid "taxonomy"
1797
  msgstr ""
1798
 
1799
+ #: classes/helpers/FrmFieldsHelper.php:555
1800
  msgid "Categories"
1801
  msgstr ""
1802
 
1803
+ #: classes/helpers/FrmFieldsHelper.php:1405
1804
  msgid "Afghanistan"
1805
  msgstr ""
1806
 
1807
+ #: classes/helpers/FrmFieldsHelper.php:1406
1808
  msgid "Aland Islands"
1809
  msgstr ""
1810
 
1811
+ #: classes/helpers/FrmFieldsHelper.php:1407
1812
  msgid "Albania"
1813
  msgstr ""
1814
 
1815
+ #: classes/helpers/FrmFieldsHelper.php:1408
1816
  msgid "Algeria"
1817
  msgstr ""
1818
 
1819
+ #: classes/helpers/FrmFieldsHelper.php:1409
1820
  msgid "American Samoa"
1821
  msgstr ""
1822
 
1823
+ #: classes/helpers/FrmFieldsHelper.php:1410
1824
  msgid "Andorra"
1825
  msgstr ""
1826
 
1827
+ #: classes/helpers/FrmFieldsHelper.php:1411
1828
  msgid "Angola"
1829
  msgstr ""
1830
 
1831
+ #: classes/helpers/FrmFieldsHelper.php:1412
1832
  msgid "Anguilla"
1833
  msgstr ""
1834
 
1835
+ #: classes/helpers/FrmFieldsHelper.php:1413
1836
  msgid "Antarctica"
1837
  msgstr ""
1838
 
1839
+ #: classes/helpers/FrmFieldsHelper.php:1414
1840
  msgid "Antigua and Barbuda"
1841
  msgstr ""
1842
 
1843
+ #: classes/helpers/FrmFieldsHelper.php:1415
1844
  msgid "Argentina"
1845
  msgstr ""
1846
 
1847
+ #: classes/helpers/FrmFieldsHelper.php:1416
1848
  msgid "Armenia"
1849
  msgstr ""
1850
 
1851
+ #: classes/helpers/FrmFieldsHelper.php:1417
1852
  msgid "Aruba"
1853
  msgstr ""
1854
 
1855
+ #: classes/helpers/FrmFieldsHelper.php:1418
1856
  msgid "Australia"
1857
  msgstr ""
1858
 
1859
+ #: classes/helpers/FrmFieldsHelper.php:1419
1860
  msgid "Austria"
1861
  msgstr ""
1862
 
1863
+ #: classes/helpers/FrmFieldsHelper.php:1420
1864
  msgid "Azerbaijan"
1865
  msgstr ""
1866
 
1867
+ #: classes/helpers/FrmFieldsHelper.php:1421
1868
  msgid "Bahamas"
1869
  msgstr ""
1870
 
1871
+ #: classes/helpers/FrmFieldsHelper.php:1422
1872
  msgid "Bahrain"
1873
  msgstr ""
1874
 
1875
+ #: classes/helpers/FrmFieldsHelper.php:1423
1876
  msgid "Bangladesh"
1877
  msgstr ""
1878
 
1879
+ #: classes/helpers/FrmFieldsHelper.php:1424
1880
  msgid "Barbados"
1881
  msgstr ""
1882
 
1883
+ #: classes/helpers/FrmFieldsHelper.php:1425
1884
  msgid "Belarus"
1885
  msgstr ""
1886
 
1887
+ #: classes/helpers/FrmFieldsHelper.php:1426
1888
  msgid "Belgium"
1889
  msgstr ""
1890
 
1891
+ #: classes/helpers/FrmFieldsHelper.php:1427
1892
  msgid "Belize"
1893
  msgstr ""
1894
 
1895
+ #: classes/helpers/FrmFieldsHelper.php:1428
1896
  msgid "Benin"
1897
  msgstr ""
1898
 
1899
+ #: classes/helpers/FrmFieldsHelper.php:1429
1900
  msgid "Bermuda"
1901
  msgstr ""
1902
 
1903
+ #: classes/helpers/FrmFieldsHelper.php:1430
1904
  msgid "Bhutan"
1905
  msgstr ""
1906
 
1907
+ #: classes/helpers/FrmFieldsHelper.php:1431
1908
  msgid "Bolivia"
1909
  msgstr ""
1910
 
1911
+ #: classes/helpers/FrmFieldsHelper.php:1432
1912
  msgid "Bonaire, Sint Eustatius and Saba"
1913
  msgstr ""
1914
 
1915
+ #: classes/helpers/FrmFieldsHelper.php:1433
1916
  msgid "Bosnia and Herzegovina"
1917
  msgstr ""
1918
 
1919
+ #: classes/helpers/FrmFieldsHelper.php:1434
1920
  msgid "Botswana"
1921
  msgstr ""
1922
 
1923
+ #: classes/helpers/FrmFieldsHelper.php:1435
1924
  msgid "Bouvet Island"
1925
  msgstr ""
1926
 
1927
+ #: classes/helpers/FrmFieldsHelper.php:1436
1928
  msgid "Brazil"
1929
  msgstr ""
1930
 
1931
+ #: classes/helpers/FrmFieldsHelper.php:1437
1932
  msgid "British Indian Ocean Territory"
1933
  msgstr ""
1934
 
1935
+ #: classes/helpers/FrmFieldsHelper.php:1438
1936
  msgid "Brunei"
1937
  msgstr ""
1938
 
1939
+ #: classes/helpers/FrmFieldsHelper.php:1439
1940
  msgid "Bulgaria"
1941
  msgstr ""
1942
 
1943
+ #: classes/helpers/FrmFieldsHelper.php:1440
1944
  msgid "Burkina Faso"
1945
  msgstr ""
1946
 
1947
+ #: classes/helpers/FrmFieldsHelper.php:1441
1948
  msgid "Burundi"
1949
  msgstr ""
1950
 
1951
+ #: classes/helpers/FrmFieldsHelper.php:1442
1952
  msgid "Cambodia"
1953
  msgstr ""
1954
 
1955
+ #: classes/helpers/FrmFieldsHelper.php:1443
1956
  msgid "Cameroon"
1957
  msgstr ""
1958
 
1959
+ #: classes/helpers/FrmFieldsHelper.php:1444
1960
  msgid "Canada"
1961
  msgstr ""
1962
 
1963
+ #: classes/helpers/FrmFieldsHelper.php:1445
1964
  msgid "Cape Verde"
1965
  msgstr ""
1966
 
1967
+ #: classes/helpers/FrmFieldsHelper.php:1446
1968
  msgid "Cayman Islands"
1969
  msgstr ""
1970
 
1971
+ #: classes/helpers/FrmFieldsHelper.php:1447
1972
  msgid "Central African Republic"
1973
  msgstr ""
1974
 
1975
+ #: classes/helpers/FrmFieldsHelper.php:1448
1976
  msgid "Chad"
1977
  msgstr ""
1978
 
1979
+ #: classes/helpers/FrmFieldsHelper.php:1449
1980
  msgid "Chile"
1981
  msgstr ""
1982
 
1983
+ #: classes/helpers/FrmFieldsHelper.php:1450
1984
  msgid "China"
1985
  msgstr ""
1986
 
1987
+ #: classes/helpers/FrmFieldsHelper.php:1451
1988
  msgid "Christmas Island"
1989
  msgstr ""
1990
 
1991
+ #: classes/helpers/FrmFieldsHelper.php:1452
1992
  msgid "Cocos (Keeling) Islands"
1993
  msgstr ""
1994
 
1995
+ #: classes/helpers/FrmFieldsHelper.php:1453
1996
  msgid "Colombia"
1997
  msgstr ""
1998
 
1999
+ #: classes/helpers/FrmFieldsHelper.php:1454
2000
  msgid "Comoros"
2001
  msgstr ""
2002
 
2003
+ #: classes/helpers/FrmFieldsHelper.php:1455
2004
  msgid "Congo"
2005
  msgstr ""
2006
 
2007
+ #: classes/helpers/FrmFieldsHelper.php:1456
2008
  msgid "Cook Islands"
2009
  msgstr ""
2010
 
2011
+ #: classes/helpers/FrmFieldsHelper.php:1457
2012
  msgid "Costa Rica"
2013
  msgstr ""
2014
 
2015
+ #: classes/helpers/FrmFieldsHelper.php:1458
2016
  msgid "C&ocirc;te d'Ivoire"
2017
  msgstr ""
2018
 
2019
+ #: classes/helpers/FrmFieldsHelper.php:1459
2020
  msgid "Croatia"
2021
  msgstr ""
2022
 
2023
+ #: classes/helpers/FrmFieldsHelper.php:1460
2024
  msgid "Cuba"
2025
  msgstr ""
2026
 
2027
+ #: classes/helpers/FrmFieldsHelper.php:1461
2028
  msgid "Curacao"
2029
  msgstr ""
2030
 
2031
+ #: classes/helpers/FrmFieldsHelper.php:1462
2032
  msgid "Cyprus"
2033
  msgstr ""
2034
 
2035
+ #: classes/helpers/FrmFieldsHelper.php:1463
2036
  msgid "Czech Republic"
2037
  msgstr ""
2038
 
2039
+ #: classes/helpers/FrmFieldsHelper.php:1464
2040
  msgid "Denmark"
2041
  msgstr ""
2042
 
2043
+ #: classes/helpers/FrmFieldsHelper.php:1465
2044
  msgid "Djibouti"
2045
  msgstr ""
2046
 
2047
+ #: classes/helpers/FrmFieldsHelper.php:1466
2048
  msgid "Dominica"
2049
  msgstr ""
2050
 
2051
+ #: classes/helpers/FrmFieldsHelper.php:1467
2052
  msgid "Dominican Republic"
2053
  msgstr ""
2054
 
2055
+ #: classes/helpers/FrmFieldsHelper.php:1468
2056
  msgid "East Timor"
2057
  msgstr ""
2058
 
2059
+ #: classes/helpers/FrmFieldsHelper.php:1469
2060
  msgid "Ecuador"
2061
  msgstr ""
2062
 
2063
+ #: classes/helpers/FrmFieldsHelper.php:1470
2064
  msgid "Egypt"
2065
  msgstr ""
2066
 
2067
+ #: classes/helpers/FrmFieldsHelper.php:1471
2068
  msgid "El Salvador"
2069
  msgstr ""
2070
 
2071
+ #: classes/helpers/FrmFieldsHelper.php:1472
2072
  msgid "Equatorial Guinea"
2073
  msgstr ""
2074
 
2075
+ #: classes/helpers/FrmFieldsHelper.php:1473
2076
  msgid "Eritrea"
2077
  msgstr ""
2078
 
2079
+ #: classes/helpers/FrmFieldsHelper.php:1474
2080
  msgid "Estonia"
2081
  msgstr ""
2082
 
2083
+ #: classes/helpers/FrmFieldsHelper.php:1475
2084
  msgid "Ethiopia"
2085
  msgstr ""
2086
 
2087
+ #: classes/helpers/FrmFieldsHelper.php:1476
2088
  msgid "Falkland Islands (Malvinas)"
2089
  msgstr ""
2090
 
2091
+ #: classes/helpers/FrmFieldsHelper.php:1477
2092
  msgid "Faroe Islands"
2093
  msgstr ""
2094
 
2095
+ #: classes/helpers/FrmFieldsHelper.php:1478
2096
  msgid "Fiji"
2097
  msgstr ""
2098
 
2099
+ #: classes/helpers/FrmFieldsHelper.php:1479
2100
  msgid "Finland"
2101
  msgstr ""
2102
 
2103
+ #: classes/helpers/FrmFieldsHelper.php:1480
2104
  msgid "France"
2105
  msgstr ""
2106
 
2107
+ #: classes/helpers/FrmFieldsHelper.php:1481
2108
  msgid "French Guiana"
2109
  msgstr ""
2110
 
2111
+ #: classes/helpers/FrmFieldsHelper.php:1482
2112
  msgid "French Polynesia"
2113
  msgstr ""
2114
 
2115
+ #: classes/helpers/FrmFieldsHelper.php:1483
2116
  msgid "French Southern Territories"
2117
  msgstr ""
2118
 
2119
+ #: classes/helpers/FrmFieldsHelper.php:1484
2120
  msgid "Gabon"
2121
  msgstr ""
2122
 
2123
+ #: classes/helpers/FrmFieldsHelper.php:1485
2124
  msgid "Gambia"
2125
  msgstr ""
2126
 
2127
+ #: classes/helpers/FrmFieldsHelper.php:1486
2128
  msgid "Georgia"
2129
  msgstr ""
2130
 
2131
+ #: classes/helpers/FrmFieldsHelper.php:1487
2132
  msgid "Germany"
2133
  msgstr ""
2134
 
2135
+ #: classes/helpers/FrmFieldsHelper.php:1488
2136
  msgid "Ghana"
2137
  msgstr ""
2138
 
2139
+ #: classes/helpers/FrmFieldsHelper.php:1489
2140
  msgid "Gibraltar"
2141
  msgstr ""
2142
 
2143
+ #: classes/helpers/FrmFieldsHelper.php:1490
2144
  msgid "Greece"
2145
  msgstr ""
2146
 
2147
+ #: classes/helpers/FrmFieldsHelper.php:1491
2148
  msgid "Greenland"
2149
  msgstr ""
2150
 
2151
+ #: classes/helpers/FrmFieldsHelper.php:1492
2152
  msgid "Grenada"
2153
  msgstr ""
2154
 
2155
+ #: classes/helpers/FrmFieldsHelper.php:1493
2156
  msgid "Guadeloupe"
2157
  msgstr ""
2158
 
2159
+ #: classes/helpers/FrmFieldsHelper.php:1494
2160
  msgid "Guam"
2161
  msgstr ""
2162
 
2163
+ #: classes/helpers/FrmFieldsHelper.php:1495
2164
  msgid "Guatemala"
2165
  msgstr ""
2166
 
2167
+ #: classes/helpers/FrmFieldsHelper.php:1496
2168
  msgid "Guernsey"
2169
  msgstr ""
2170
 
2171
+ #: classes/helpers/FrmFieldsHelper.php:1497
2172
  msgid "Guinea"
2173
  msgstr ""
2174
 
2175
+ #: classes/helpers/FrmFieldsHelper.php:1498
2176
  msgid "Guinea-Bissau"
2177
  msgstr ""
2178
 
2179
+ #: classes/helpers/FrmFieldsHelper.php:1499
2180
  msgid "Guyana"
2181
  msgstr ""
2182
 
2183
+ #: classes/helpers/FrmFieldsHelper.php:1500
2184
  msgid "Haiti"
2185
  msgstr ""
2186
 
2187
+ #: classes/helpers/FrmFieldsHelper.php:1501
2188
  msgid "Heard Island and McDonald Islands"
2189
  msgstr ""
2190
 
2191
+ #: classes/helpers/FrmFieldsHelper.php:1502
2192
  msgid "Holy See"
2193
  msgstr ""
2194
 
2195
+ #: classes/helpers/FrmFieldsHelper.php:1503
2196
  msgid "Honduras"
2197
  msgstr ""
2198
 
2199
+ #: classes/helpers/FrmFieldsHelper.php:1504
2200
  msgid "Hong Kong"
2201
  msgstr ""
2202
 
2203
+ #: classes/helpers/FrmFieldsHelper.php:1505
2204
  msgid "Hungary"
2205
  msgstr ""
2206
 
2207
+ #: classes/helpers/FrmFieldsHelper.php:1506
2208
  msgid "Iceland"
2209
  msgstr ""
2210
 
2211
+ #: classes/helpers/FrmFieldsHelper.php:1507
2212
  msgid "India"
2213
  msgstr ""
2214
 
2215
+ #: classes/helpers/FrmFieldsHelper.php:1508
2216
  msgid "Indonesia"
2217
  msgstr ""
2218
 
2219
+ #: classes/helpers/FrmFieldsHelper.php:1509
2220
  msgid "Iran"
2221
  msgstr ""
2222
 
2223
+ #: classes/helpers/FrmFieldsHelper.php:1510
2224
  msgid "Iraq"
2225
  msgstr ""
2226
 
2227
+ #: classes/helpers/FrmFieldsHelper.php:1511
2228
  msgid "Ireland"
2229
  msgstr ""
2230
 
2231
+ #: classes/helpers/FrmFieldsHelper.php:1512
2232
  msgid "Israel"
2233
  msgstr ""
2234
 
2235
+ #: classes/helpers/FrmFieldsHelper.php:1513
2236
  msgid "Isle of Man"
2237
  msgstr ""
2238
 
2239
+ #: classes/helpers/FrmFieldsHelper.php:1514
2240
  msgid "Italy"
2241
  msgstr ""
2242
 
2243
+ #: classes/helpers/FrmFieldsHelper.php:1515
2244
  msgid "Jamaica"
2245
  msgstr ""
2246
 
2247
+ #: classes/helpers/FrmFieldsHelper.php:1516
2248
  msgid "Japan"
2249
  msgstr ""
2250
 
2251
+ #: classes/helpers/FrmFieldsHelper.php:1517
2252
  msgid "Jersey"
2253
  msgstr ""
2254
 
2255
+ #: classes/helpers/FrmFieldsHelper.php:1518
2256
  msgid "Jordan"
2257
  msgstr ""
2258
 
2259
+ #: classes/helpers/FrmFieldsHelper.php:1519
2260
  msgid "Kazakhstan"
2261
  msgstr ""
2262
 
2263
+ #: classes/helpers/FrmFieldsHelper.php:1520
2264
  msgid "Kenya"
2265
  msgstr ""
2266
 
2267
+ #: classes/helpers/FrmFieldsHelper.php:1521
2268
  msgid "Kiribati"
2269
  msgstr ""
2270
 
2271
+ #: classes/helpers/FrmFieldsHelper.php:1522
2272
  msgid "North Korea"
2273
  msgstr ""
2274
 
2275
+ #: classes/helpers/FrmFieldsHelper.php:1523
2276
  msgid "South Korea"
2277
  msgstr ""
2278
 
2279
+ #: classes/helpers/FrmFieldsHelper.php:1524
2280
  msgid "Kosovo"
2281
  msgstr ""
2282
 
2283
+ #: classes/helpers/FrmFieldsHelper.php:1525
2284
  msgid "Kuwait"
2285
  msgstr ""
2286
 
2287
+ #: classes/helpers/FrmFieldsHelper.php:1526
2288
  msgid "Kyrgyzstan"
2289
  msgstr ""
2290
 
2291
+ #: classes/helpers/FrmFieldsHelper.php:1527
2292
  msgid "Laos"
2293
  msgstr ""
2294
 
2295
+ #: classes/helpers/FrmFieldsHelper.php:1528
2296
  msgid "Latvia"
2297
  msgstr ""
2298
 
2299
+ #: classes/helpers/FrmFieldsHelper.php:1529
2300
  msgid "Lebanon"
2301
  msgstr ""
2302
 
2303
+ #: classes/helpers/FrmFieldsHelper.php:1530
2304
  msgid "Lesotho"
2305
  msgstr ""
2306
 
2307
+ #: classes/helpers/FrmFieldsHelper.php:1531
2308
  msgid "Liberia"
2309
  msgstr ""
2310
 
2311
+ #: classes/helpers/FrmFieldsHelper.php:1532
2312
  msgid "Libya"
2313
  msgstr ""
2314
 
2315
+ #: classes/helpers/FrmFieldsHelper.php:1533
2316
  msgid "Liechtenstein"
2317
  msgstr ""
2318
 
2319
+ #: classes/helpers/FrmFieldsHelper.php:1534
2320
  msgid "Lithuania"
2321
  msgstr ""
2322
 
2323
+ #: classes/helpers/FrmFieldsHelper.php:1535
2324
  msgid "Luxembourg"
2325
  msgstr ""
2326
 
2327
+ #: classes/helpers/FrmFieldsHelper.php:1536
2328
  msgid "Macao"
2329
  msgstr ""
2330
 
2331
+ #: classes/helpers/FrmFieldsHelper.php:1537
2332
  msgid "Macedonia"
2333
  msgstr ""
2334
 
2335
+ #: classes/helpers/FrmFieldsHelper.php:1538
2336
  msgid "Madagascar"
2337
  msgstr ""
2338
 
2339
+ #: classes/helpers/FrmFieldsHelper.php:1539
2340
  msgid "Malawi"
2341
  msgstr ""
2342
 
2343
+ #: classes/helpers/FrmFieldsHelper.php:1540
2344
  msgid "Malaysia"
2345
  msgstr ""
2346
 
2347
+ #: classes/helpers/FrmFieldsHelper.php:1541
2348
  msgid "Maldives"
2349
  msgstr ""
2350
 
2351
+ #: classes/helpers/FrmFieldsHelper.php:1542
2352
  msgid "Mali"
2353
  msgstr ""
2354
 
2355
+ #: classes/helpers/FrmFieldsHelper.php:1543
2356
  msgid "Malta"
2357
  msgstr ""
2358
 
2359
+ #: classes/helpers/FrmFieldsHelper.php:1544
2360
  msgid "Marshall Islands"
2361
  msgstr ""
2362
 
2363
+ #: classes/helpers/FrmFieldsHelper.php:1545
2364
  msgid "Martinique"
2365
  msgstr ""
2366
 
2367
+ #: classes/helpers/FrmFieldsHelper.php:1546
2368
  msgid "Mauritania"
2369
  msgstr ""
2370
 
2371
+ #: classes/helpers/FrmFieldsHelper.php:1547
2372
  msgid "Mauritius"
2373
  msgstr ""
2374
 
2375
+ #: classes/helpers/FrmFieldsHelper.php:1548
2376
  msgid "Mayotte"
2377
  msgstr ""
2378
 
2379
+ #: classes/helpers/FrmFieldsHelper.php:1549
2380
  msgid "Mexico"
2381
  msgstr ""
2382
 
2383
+ #: classes/helpers/FrmFieldsHelper.php:1550
2384
  msgid "Micronesia"
2385
  msgstr ""
2386
 
2387
+ #: classes/helpers/FrmFieldsHelper.php:1551
2388
  msgid "Moldova"
2389
  msgstr ""
2390
 
2391
+ #: classes/helpers/FrmFieldsHelper.php:1552
2392
  msgid "Monaco"
2393
  msgstr ""
2394
 
2395
+ #: classes/helpers/FrmFieldsHelper.php:1553
2396
  msgid "Mongolia"
2397
  msgstr ""
2398
 
2399
+ #: classes/helpers/FrmFieldsHelper.php:1554
2400
  msgid "Montenegro"
2401
  msgstr ""
2402
 
2403
+ #: classes/helpers/FrmFieldsHelper.php:1555
2404
  msgid "Montserrat"
2405
  msgstr ""
2406
 
2407
+ #: classes/helpers/FrmFieldsHelper.php:1556
2408
  msgid "Morocco"
2409
  msgstr ""
2410
 
2411
+ #: classes/helpers/FrmFieldsHelper.php:1557
2412
  msgid "Mozambique"
2413
  msgstr ""
2414
 
2415
+ #: classes/helpers/FrmFieldsHelper.php:1558
2416
  msgid "Myanmar"
2417
  msgstr ""
2418
 
2419
+ #: classes/helpers/FrmFieldsHelper.php:1559
2420
  msgid "Namibia"
2421
  msgstr ""
2422
 
2423
+ #: classes/helpers/FrmFieldsHelper.php:1560
2424
  msgid "Nauru"
2425
  msgstr ""
2426
 
2427
+ #: classes/helpers/FrmFieldsHelper.php:1561
2428
  msgid "Nepal"
2429
  msgstr ""
2430
 
2431
+ #: classes/helpers/FrmFieldsHelper.php:1562
2432
  msgid "Netherlands"
2433
  msgstr ""
2434
 
2435
+ #: classes/helpers/FrmFieldsHelper.php:1563
2436
  msgid "New Caledonia"
2437
  msgstr ""
2438
 
2439
+ #: classes/helpers/FrmFieldsHelper.php:1564
2440
  msgid "New Zealand"
2441
  msgstr ""
2442
 
2443
+ #: classes/helpers/FrmFieldsHelper.php:1565
2444
  msgid "Nicaragua"
2445
  msgstr ""
2446
 
2447
+ #: classes/helpers/FrmFieldsHelper.php:1566
2448
  msgid "Niger"
2449
  msgstr ""
2450
 
2451
+ #: classes/helpers/FrmFieldsHelper.php:1567
2452
  msgid "Nigeria"
2453
  msgstr ""
2454
 
2455
+ #: classes/helpers/FrmFieldsHelper.php:1568
2456
  msgid "Niue"
2457
  msgstr ""
2458
 
2459
+ #: classes/helpers/FrmFieldsHelper.php:1569
2460
  msgid "Norfolk Island"
2461
  msgstr ""
2462
 
2463
+ #: classes/helpers/FrmFieldsHelper.php:1570
2464
  msgid "Northern Mariana Islands"
2465
  msgstr ""
2466
 
2467
+ #: classes/helpers/FrmFieldsHelper.php:1571
2468
  msgid "Norway"
2469
  msgstr ""
2470
 
2471
+ #: classes/helpers/FrmFieldsHelper.php:1572
2472
  msgid "Oman"
2473
  msgstr ""
2474
 
2475
+ #: classes/helpers/FrmFieldsHelper.php:1573
2476
  msgid "Pakistan"
2477
  msgstr ""
2478
 
2479
+ #: classes/helpers/FrmFieldsHelper.php:1574
2480
  msgid "Palau"
2481
  msgstr ""
2482
 
2483
+ #: classes/helpers/FrmFieldsHelper.php:1575
2484
  msgid "Palestine"
2485
  msgstr ""
2486
 
2487
+ #: classes/helpers/FrmFieldsHelper.php:1576
2488
  msgid "Panama"
2489
  msgstr ""
2490
 
2491
+ #: classes/helpers/FrmFieldsHelper.php:1577
2492
  msgid "Papua New Guinea"
2493
  msgstr ""
2494
 
2495
+ #: classes/helpers/FrmFieldsHelper.php:1578
2496
  msgid "Paraguay"
2497
  msgstr ""
2498
 
2499
+ #: classes/helpers/FrmFieldsHelper.php:1579
2500
  msgid "Peru"
2501
  msgstr ""
2502
 
2503
+ #: classes/helpers/FrmFieldsHelper.php:1580
2504
  msgid "Philippines"
2505
  msgstr ""
2506
 
2507
+ #: classes/helpers/FrmFieldsHelper.php:1581
2508
  msgid "Pitcairn"
2509
  msgstr ""
2510
 
2511
+ #: classes/helpers/FrmFieldsHelper.php:1582
2512
  msgid "Poland"
2513
  msgstr ""
2514
 
2515
+ #: classes/helpers/FrmFieldsHelper.php:1583
2516
  msgid "Portugal"
2517
  msgstr ""
2518
 
2519
+ #: classes/helpers/FrmFieldsHelper.php:1584
2520
  msgid "Puerto Rico"
2521
  msgstr ""
2522
 
2523
+ #: classes/helpers/FrmFieldsHelper.php:1585
2524
  msgid "Qatar"
2525
  msgstr ""
2526
 
2527
+ #: classes/helpers/FrmFieldsHelper.php:1586
2528
  msgid "Reunion"
2529
  msgstr ""
2530
 
2531
+ #: classes/helpers/FrmFieldsHelper.php:1587
2532
  msgid "Romania"
2533
  msgstr ""
2534
 
2535
+ #: classes/helpers/FrmFieldsHelper.php:1588
2536
  msgid "Russia"
2537
  msgstr ""
2538
 
2539
+ #: classes/helpers/FrmFieldsHelper.php:1589
2540
  msgid "Rwanda"
2541
  msgstr ""
2542
 
2543
+ #: classes/helpers/FrmFieldsHelper.php:1590
2544
  msgid "Saint Barthelemy"
2545
  msgstr ""
2546
 
2547
+ #: classes/helpers/FrmFieldsHelper.php:1591
2548
  msgid "Saint Helena, Ascension and Tristan da Cunha"
2549
  msgstr ""
2550
 
2551
+ #: classes/helpers/FrmFieldsHelper.php:1592
2552
  msgid "Saint Kitts and Nevis"
2553
  msgstr ""
2554
 
2555
+ #: classes/helpers/FrmFieldsHelper.php:1593
2556
  msgid "Saint Lucia"
2557
  msgstr ""
2558
 
2559
+ #: classes/helpers/FrmFieldsHelper.php:1594
2560
  msgid "Saint Martin (French part)"
2561
  msgstr ""
2562
 
2563
+ #: classes/helpers/FrmFieldsHelper.php:1595
2564
  msgid "Saint Pierre and Miquelon"
2565
  msgstr ""
2566
 
2567
+ #: classes/helpers/FrmFieldsHelper.php:1596
2568
  msgid "Saint Vincent and the Grenadines"
2569
  msgstr ""
2570
 
2571
+ #: classes/helpers/FrmFieldsHelper.php:1597
2572
  msgid "Samoa"
2573
  msgstr ""
2574
 
2575
+ #: classes/helpers/FrmFieldsHelper.php:1598
2576
  msgid "San Marino"
2577
  msgstr ""
2578
 
2579
+ #: classes/helpers/FrmFieldsHelper.php:1599
2580
  msgid "Sao Tome and Principe"
2581
  msgstr ""
2582
 
2583
+ #: classes/helpers/FrmFieldsHelper.php:1600
2584
  msgid "Saudi Arabia"
2585
  msgstr ""
2586
 
2587
+ #: classes/helpers/FrmFieldsHelper.php:1601
2588
  msgid "Senegal"
2589
  msgstr ""
2590
 
2591
+ #: classes/helpers/FrmFieldsHelper.php:1602
2592
  msgid "Serbia"
2593
  msgstr ""
2594
 
2595
+ #: classes/helpers/FrmFieldsHelper.php:1603
2596
  msgid "Seychelles"
2597
  msgstr ""
2598
 
2599
+ #: classes/helpers/FrmFieldsHelper.php:1604
2600
  msgid "Sierra Leone"
2601
  msgstr ""
2602
 
2603
+ #: classes/helpers/FrmFieldsHelper.php:1605
2604
  msgid "Singapore"
2605
  msgstr ""
2606
 
2607
+ #: classes/helpers/FrmFieldsHelper.php:1606
2608
  msgid "Sint Maarten (Dutch part)"
2609
  msgstr ""
2610
 
2611
+ #: classes/helpers/FrmFieldsHelper.php:1607
2612
  msgid "Slovakia"
2613
  msgstr ""
2614
 
2615
+ #: classes/helpers/FrmFieldsHelper.php:1608
2616
  msgid "Slovenia"
2617
  msgstr ""
2618
 
2619
+ #: classes/helpers/FrmFieldsHelper.php:1609
2620
  msgid "Solomon Islands"
2621
  msgstr ""
2622
 
2623
+ #: classes/helpers/FrmFieldsHelper.php:1610
2624
  msgid "Somalia"
2625
  msgstr ""
2626
 
2627
+ #: classes/helpers/FrmFieldsHelper.php:1611
2628
  msgid "South Africa"
2629
  msgstr ""
2630
 
2631
+ #: classes/helpers/FrmFieldsHelper.php:1612
2632
  msgid "South Georgia and the South Sandwich Islands"
2633
  msgstr ""
2634
 
2635
+ #: classes/helpers/FrmFieldsHelper.php:1613
2636
  msgid "South Sudan"
2637
  msgstr ""
2638
 
2639
+ #: classes/helpers/FrmFieldsHelper.php:1614
2640
  msgid "Spain"
2641
  msgstr ""
2642
 
2643
+ #: classes/helpers/FrmFieldsHelper.php:1615
2644
  msgid "Sri Lanka"
2645
  msgstr ""
2646
 
2647
+ #: classes/helpers/FrmFieldsHelper.php:1616
2648
  msgid "Sudan"
2649
  msgstr ""
2650
 
2651
+ #: classes/helpers/FrmFieldsHelper.php:1617
2652
  msgid "Suriname"
2653
  msgstr ""
2654
 
2655
+ #: classes/helpers/FrmFieldsHelper.php:1618
2656
  msgid "Svalbard and Jan Mayen"
2657
  msgstr ""
2658
 
2659
+ #: classes/helpers/FrmFieldsHelper.php:1619
2660
  msgid "Swaziland"
2661
  msgstr ""
2662
 
2663
+ #: classes/helpers/FrmFieldsHelper.php:1620
2664
  msgid "Sweden"
2665
  msgstr ""
2666
 
2667
+ #: classes/helpers/FrmFieldsHelper.php:1621
2668
  msgid "Switzerland"
2669
  msgstr ""
2670
 
2671
+ #: classes/helpers/FrmFieldsHelper.php:1622
2672
  msgid "Syria"
2673
  msgstr ""
2674
 
2675
+ #: classes/helpers/FrmFieldsHelper.php:1623
2676
  msgid "Taiwan"
2677
  msgstr ""
2678
 
2679
+ #: classes/helpers/FrmFieldsHelper.php:1624
2680
  msgid "Tajikistan"
2681
  msgstr ""
2682
 
2683
+ #: classes/helpers/FrmFieldsHelper.php:1625
2684
  msgid "Tanzania"
2685
  msgstr ""
2686
 
2687
+ #: classes/helpers/FrmFieldsHelper.php:1626
2688
  msgid "Thailand"
2689
  msgstr ""
2690
 
2691
+ #: classes/helpers/FrmFieldsHelper.php:1627
2692
  msgid "Timor-Leste"
2693
  msgstr ""
2694
 
2695
+ #: classes/helpers/FrmFieldsHelper.php:1628
2696
  msgid "Togo"
2697
  msgstr ""
2698
 
2699
+ #: classes/helpers/FrmFieldsHelper.php:1629
2700
  msgid "Tokelau"
2701
  msgstr ""
2702
 
2703
+ #: classes/helpers/FrmFieldsHelper.php:1630
2704
  msgid "Tonga"
2705
  msgstr ""
2706
 
2707
+ #: classes/helpers/FrmFieldsHelper.php:1631
2708
  msgid "Trinidad and Tobago"
2709
  msgstr ""
2710
 
2711
+ #: classes/helpers/FrmFieldsHelper.php:1632
2712
  msgid "Tunisia"
2713
  msgstr ""
2714
 
2715
+ #: classes/helpers/FrmFieldsHelper.php:1633
2716
  msgid "Turkey"
2717
  msgstr ""
2718
 
2719
+ #: classes/helpers/FrmFieldsHelper.php:1634
2720
  msgid "Turkmenistan"
2721
  msgstr ""
2722
 
2723
+ #: classes/helpers/FrmFieldsHelper.php:1635
2724
  msgid "Turks and Caicos Islands"
2725
  msgstr ""
2726
 
2727
+ #: classes/helpers/FrmFieldsHelper.php:1636
2728
  msgid "Tuvalu"
2729
  msgstr ""
2730
 
2731
+ #: classes/helpers/FrmFieldsHelper.php:1637
2732
  msgid "Uganda"
2733
  msgstr ""
2734
 
2735
+ #: classes/helpers/FrmFieldsHelper.php:1638
2736
  msgid "Ukraine"
2737
  msgstr ""
2738
 
2739
+ #: classes/helpers/FrmFieldsHelper.php:1639
2740
  msgid "United Arab Emirates"
2741
  msgstr ""
2742
 
2743
+ #: classes/helpers/FrmFieldsHelper.php:1640
2744
  msgid "United Kingdom"
2745
  msgstr ""
2746
 
2747
+ #: classes/helpers/FrmFieldsHelper.php:1641
2748
  msgid "United States"
2749
  msgstr ""
2750
 
2751
+ #: classes/helpers/FrmFieldsHelper.php:1642
2752
  msgid "United States Minor Outlying Islands"
2753
  msgstr ""
2754
 
2755
+ #: classes/helpers/FrmFieldsHelper.php:1643
2756
  msgid "Uruguay"
2757
  msgstr ""
2758
 
2759
+ #: classes/helpers/FrmFieldsHelper.php:1644
2760
  msgid "Uzbekistan"
2761
  msgstr ""
2762
 
2763
+ #: classes/helpers/FrmFieldsHelper.php:1645
2764
  msgid "Vanuatu"
2765
  msgstr ""
2766
 
2767
+ #: classes/helpers/FrmFieldsHelper.php:1646
2768
  msgid "Vatican City"
2769
  msgstr ""
2770
 
2771
+ #: classes/helpers/FrmFieldsHelper.php:1647
2772
  msgid "Venezuela"
2773
  msgstr ""
2774
 
2775
+ #: classes/helpers/FrmFieldsHelper.php:1648
2776
  msgid "Vietnam"
2777
  msgstr ""
2778
 
2779
+ #: classes/helpers/FrmFieldsHelper.php:1649
2780
  msgid "Virgin Islands, British"
2781
  msgstr ""
2782
 
2783
+ #: classes/helpers/FrmFieldsHelper.php:1650
2784
  msgid "Virgin Islands, U.S."
2785
  msgstr ""
2786
 
2787
+ #: classes/helpers/FrmFieldsHelper.php:1651
2788
  msgid "Wallis and Futuna"
2789
  msgstr ""
2790
 
2791
+ #: classes/helpers/FrmFieldsHelper.php:1652
2792
  msgid "Western Sahara"
2793
  msgstr ""
2794
 
2795
+ #: classes/helpers/FrmFieldsHelper.php:1653
2796
  msgid "Yemen"
2797
  msgstr ""
2798
 
2799
+ #: classes/helpers/FrmFieldsHelper.php:1654
2800
  msgid "Zambia"
2801
  msgstr ""
2802
 
2803
+ #: classes/helpers/FrmFieldsHelper.php:1655
2804
  msgid "Zimbabwe"
2805
  msgstr ""
2806
 
2807
+ #: classes/helpers/FrmFieldsHelper.php:1677
2808
  msgid "Countries"
2809
  msgstr ""
2810
 
2811
+ #: classes/helpers/FrmFieldsHelper.php:1687
2812
  msgid "U.S. State Abbreviations"
2813
  msgstr ""
2814
 
2815
+ #: classes/helpers/FrmFieldsHelper.php:1696
2816
  msgid "U.S. States"
2817
  msgstr ""
2818
 
2819
+ #: classes/helpers/FrmFieldsHelper.php:1701
2820
  msgid "Under 18"
2821
  msgstr ""
2822
 
2823
+ #: classes/helpers/FrmFieldsHelper.php:1702
2824
  msgid "18-24"
2825
  msgstr ""
2826
 
2827
+ #: classes/helpers/FrmFieldsHelper.php:1703
2828
  msgid "25-34"
2829
  msgstr ""
2830
 
2831
+ #: classes/helpers/FrmFieldsHelper.php:1704
2832
  msgid "35-44"
2833
  msgstr ""
2834
 
2835
+ #: classes/helpers/FrmFieldsHelper.php:1705
2836
  msgid "45-54"
2837
  msgstr ""
2838
 
2839
+ #: classes/helpers/FrmFieldsHelper.php:1706
2840
  msgid "55-64"
2841
  msgstr ""
2842
 
2843
+ #: classes/helpers/FrmFieldsHelper.php:1707
2844
  msgid "65 or Above"
2845
  msgstr ""
2846
 
2847
+ #: classes/helpers/FrmFieldsHelper.php:1708
2848
  msgid "Prefer Not to Answer"
2849
  msgstr ""
2850
 
2851
+ #: classes/helpers/FrmFieldsHelper.php:1714
2852
  msgid "Age"
2853
  msgstr ""
2854
 
2855
+ #: classes/helpers/FrmFieldsHelper.php:1718
2856
  msgid "Very Unsatisfied"
2857
  msgstr ""
2858
 
2859
+ #: classes/helpers/FrmFieldsHelper.php:1719
2860
  msgid "Unsatisfied"
2861
  msgstr ""
2862
 
2863
+ #: classes/helpers/FrmFieldsHelper.php:1720
2864
+ #: classes/helpers/FrmFieldsHelper.php:1735
2865
+ #: classes/helpers/FrmFieldsHelper.php:1750
2866
+ #: classes/helpers/FrmFieldsHelper.php:1765
2867
  msgid "Neutral"
2868
  msgstr ""
2869
 
2870
+ #: classes/helpers/FrmFieldsHelper.php:1721
2871
  msgid "Satisfied"
2872
  msgstr ""
2873
 
2874
+ #: classes/helpers/FrmFieldsHelper.php:1722
2875
  msgid "Very Satisfied"
2876
  msgstr ""
2877
 
2878
+ #: classes/helpers/FrmFieldsHelper.php:1723
2879
+ #: classes/helpers/FrmFieldsHelper.php:1738
2880
+ #: classes/helpers/FrmFieldsHelper.php:1753
2881
+ #: classes/helpers/FrmFieldsHelper.php:1768
2882
  msgid "N/A"
2883
  msgstr ""
2884
 
2885
+ #: classes/helpers/FrmFieldsHelper.php:1729
2886
  msgid "Satisfaction"
2887
  msgstr ""
2888
 
2889
+ #: classes/helpers/FrmFieldsHelper.php:1733
2890
  msgid "Not at all Important"
2891
  msgstr ""
2892
 
2893
+ #: classes/helpers/FrmFieldsHelper.php:1734
2894
  msgid "Somewhat Important"
2895
  msgstr ""
2896
 
2897
+ #: classes/helpers/FrmFieldsHelper.php:1736
2898
  msgid "Important"
2899
  msgstr ""
2900
 
2901
+ #: classes/helpers/FrmFieldsHelper.php:1737
2902
  msgid "Very Important"
2903
  msgstr ""
2904
 
2905
+ #: classes/helpers/FrmFieldsHelper.php:1744
2906
  msgid "Importance"
2907
  msgstr ""
2908
 
2909
+ #: classes/helpers/FrmFieldsHelper.php:1748
2910
  msgid "Strongly Disagree"
2911
  msgstr ""
2912
 
2913
+ #: classes/helpers/FrmFieldsHelper.php:1749
2914
  msgid "Disagree"
2915
  msgstr ""
2916
 
2917
+ #: classes/helpers/FrmFieldsHelper.php:1751
2918
  msgid "Agree"
2919
  msgstr ""
2920
 
2921
+ #: classes/helpers/FrmFieldsHelper.php:1752
2922
  msgid "Strongly Agree"
2923
  msgstr ""
2924
 
2925
+ #: classes/helpers/FrmFieldsHelper.php:1759
2926
  msgid "Agreement"
2927
  msgstr ""
2928
 
2929
+ #: classes/helpers/FrmFieldsHelper.php:1763
2930
  msgid "Extremely Unlikely"
2931
  msgstr ""
2932
 
2933
+ #: classes/helpers/FrmFieldsHelper.php:1764
2934
  msgid "Unlikely"
2935
  msgstr ""
2936
 
2937
+ #: classes/helpers/FrmFieldsHelper.php:1766
2938
+ #: classes/helpers/FrmFieldsHelper.php:1774
2939
  msgid "Likely"
2940
  msgstr ""
2941
 
2942
+ #: classes/helpers/FrmFieldsHelper.php:1767
2943
  msgid "Extremely Likely"
2944
  msgstr ""
2945
 
2946
  #. translators: %s: Field name
2947
+ #: classes/helpers/FrmFieldsHelper.php:1848
2948
  msgid "%s fields"
2949
  msgstr ""
2950
 
2951
+ #: classes/helpers/FrmFieldsHelper.php:1877
2952
  msgid "Simple"
2953
  msgstr ""
2954
 
2955
+ #: classes/helpers/FrmFieldsHelper.php:1881
2956
  msgid "Images"
2957
  msgstr ""
2958
 
2959
+ #: classes/helpers/FrmFieldsHelper.php:1884
2960
  msgid "Image Options"
2961
  msgstr ""
2962
 
2963
+ #: classes/helpers/FrmFieldsHelper.php:1885
2964
  msgid "Show images instead of radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more."
2965
  msgstr ""
2966
 
2967
+ #: classes/helpers/FrmFieldsHelper.php:1892
2968
  msgid "Button Options"
2969
  msgstr ""
2970
 
2971
+ #: classes/helpers/FrmFieldsHelper.php:1893
2972
  msgid "Show buttons for radio buttons or check boxes. This is ideal for polls, surveys, segmenting questionnaires and more."
2973
  msgstr ""
2974
 
2975
  #. translators: Add-on name.
2976
+ #: classes/helpers/FrmFieldsHelper.php:1975
2977
  msgid "Formidable %s"
2978
  msgstr ""
2979
 
3023
  msgid "(ID %d)"
3024
  msgstr ""
3025
 
3026
+ #: classes/helpers/FrmFormsHelper.php:465
3027
  msgid "Field ID"
3028
  msgstr ""
3029
 
3030
+ #: classes/helpers/FrmFormsHelper.php:469
3031
  #: classes/views/frm-fields/back-end/settings.php:304
3032
  msgid "Field Key"
3033
  msgstr ""
3034
 
3035
+ #: classes/helpers/FrmFormsHelper.php:473
3036
  msgid "Field Name"
3037
  msgstr ""
3038
 
3039
+ #: classes/helpers/FrmFormsHelper.php:481
3040
  #: classes/views/frm-fields/back-end/settings.php:277
3041
  msgid "Label Position"
3042
  msgstr ""
3043
 
3044
+ #: classes/helpers/FrmFormsHelper.php:485
3045
  msgid "Required Label"
3046
  msgstr ""
3047
 
3048
+ #: classes/helpers/FrmFormsHelper.php:489
3049
  msgid "Input Field"
3050
  msgstr ""
3051
 
3052
+ #: classes/helpers/FrmFormsHelper.php:493
3053
  msgid "Single Option"
3054
  msgstr ""
3055
 
3056
+ #: classes/helpers/FrmFormsHelper.php:494
3057
  msgid "Show a single radio or checkbox option by replacing 1 with the order of the option"
3058
  msgstr ""
3059
 
3060
+ #: classes/helpers/FrmFormsHelper.php:498
3061
  msgid "Hide Option Label"
3062
  msgstr ""
3063
 
3064
+ #: classes/helpers/FrmFormsHelper.php:502
3065
  msgid "Required Class"
3066
  msgstr ""
3067
 
3068
+ #: classes/helpers/FrmFormsHelper.php:503
3069
  msgid "Add class name if field is required"
3070
  msgstr ""
3071
 
3072
+ #: classes/helpers/FrmFormsHelper.php:507
3073
  msgid "Error Class"
3074
  msgstr ""
3075
 
3076
+ #: classes/helpers/FrmFormsHelper.php:508
3077
  msgid "Add class name if field has an error on form submit"
3078
  msgstr ""
3079
 
3080
+ #: classes/helpers/FrmFormsHelper.php:513
3081
  #: classes/views/frm-forms/new-form-overlay.php:46
3082
  #: classes/views/frm-forms/new-form-overlay.php:47
3083
  msgid "Form Name"
3084
  msgstr ""
3085
 
3086
+ #: classes/helpers/FrmFormsHelper.php:521
3087
  #: classes/views/frm-forms/settings-advanced.php:20
3088
  msgid "Form Key"
3089
  msgstr ""
3090
 
3091
+ #: classes/helpers/FrmFormsHelper.php:525
3092
  msgid "Delete Entry Link"
3093
  msgstr ""
3094
 
3095
+ #: classes/helpers/FrmFormsHelper.php:530
3096
  msgid "Button Label"
3097
  msgstr ""
3098
 
3099
+ #: classes/helpers/FrmFormsHelper.php:534
3100
  msgid "Button Hook"
3101
  msgstr ""
3102
 
3103
+ #: classes/helpers/FrmFormsHelper.php:1022
3104
  msgid "Create Form from Template"
3105
  msgstr ""
3106
 
3107
+ #: classes/helpers/FrmFormsHelper.php:1028
3108
  msgid "Duplicate Form"
3109
  msgstr ""
3110
 
3111
+ #: classes/helpers/FrmFormsHelper.php:1149
3112
  msgid "Restore from Trash"
3113
  msgstr ""
3114
 
3115
+ #: classes/helpers/FrmFormsHelper.php:1150
3116
  #: classes/helpers/FrmFormsListHelper.php:124
3117
  msgid "Restore"
3118
  msgstr ""
3119
 
3120
+ #: classes/helpers/FrmFormsHelper.php:1154
3121
  msgid "Move Form to Trash"
3122
  msgstr ""
3123
 
3124
+ #: classes/helpers/FrmFormsHelper.php:1155
3125
+ #: classes/helpers/FrmFormsHelper.php:1241
3126
  #: classes/helpers/FrmFormsListHelper.php:158
3127
  msgid "Trash"
3128
  msgstr ""
3129
 
3130
+ #: classes/helpers/FrmFormsHelper.php:1158
3131
  msgid "Do you want to move this form to the trash?"
3132
  msgstr ""
3133
 
3134
+ #: classes/helpers/FrmFormsHelper.php:1161
3135
  #: classes/helpers/FrmFormsListHelper.php:128
3136
  msgid "Delete Permanently"
3137
  msgstr ""
3138
 
3139
+ #: classes/helpers/FrmFormsHelper.php:1164
3140
  msgid "Are you sure you want to delete this form and all its entries?"
3141
  msgstr ""
3142
 
3143
+ #: classes/helpers/FrmFormsHelper.php:1166
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:1177
3148
  #: classes/models/FrmField.php:204
3149
  msgid "Total"
3150
  msgstr ""
3151
 
3152
+ #: classes/helpers/FrmFormsHelper.php:1178
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:1181
3157
  msgid "Big Total"
3158
  msgstr ""
3159
 
3160
+ #: classes/helpers/FrmFormsHelper.php:1182
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:1185
3165
  msgid "Scroll Box"
3166
  msgstr ""
3167
 
3168
+ #: classes/helpers/FrmFormsHelper.php:1186
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:1189
3173
  #: classes/models/fields/FrmFieldName.php:36
3174
  msgid "First"
3175
  msgstr ""
3176
 
3177
+ #: classes/helpers/FrmFormsHelper.php:1190
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:1192
3182
  #: classes/helpers/FrmStylesHelper.php:113
3183
  msgid "Right"
3184
  msgstr ""
3185
 
3186
+ #: classes/helpers/FrmFormsHelper.php:1193
3187
  msgid "First Grid Row"
3188
  msgstr ""
3189
 
3190
+ #: classes/helpers/FrmFormsHelper.php:1194
3191
  msgid "Even Grid Row"
3192
  msgstr ""
3193
 
3194
+ #: classes/helpers/FrmFormsHelper.php:1195
3195
  msgid "Odd Grid Row"
3196
  msgstr ""
3197
 
3198
+ #: classes/helpers/FrmFormsHelper.php:1197
3199
  msgid "Color Block"
3200
  msgstr ""
3201
 
3202
+ #: classes/helpers/FrmFormsHelper.php:1198
3203
  msgid "Add a background color to the field or section."
3204
  msgstr ""
3205
 
3206
+ #: classes/helpers/FrmFormsHelper.php:1201
3207
  msgid "Capitalize"
3208
  msgstr ""
3209
 
3210
+ #: classes/helpers/FrmFormsHelper.php:1202
3211
  msgid "Automatically capitalize the first letter in each word."
3212
  msgstr ""
3213
 
3214
+ #: classes/helpers/FrmFormsHelper.php:1242
3215
  msgid "Published"
3216
  msgstr ""
3217
 
3218
+ #: classes/helpers/FrmFormsHelper.php:1326
3219
  msgid "Create Form"
3220
  msgstr ""
3221
 
3222
+ #: classes/helpers/FrmFormsHelper.php:1334
3223
  msgid "Renew"
3224
  msgstr ""
3225
 
3226
+ #: classes/helpers/FrmFormsHelper.php:1398
3227
  msgid "License plan required:"
3228
  msgstr ""
3229
 
3230
+ #: classes/helpers/FrmFormsHelper.php:1512
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:1522
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:1528
3241
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
3242
  msgstr ""
3243
 
3723
  msgid "There was a problem verifying your recaptcha"
3724
  msgstr ""
3725
 
3726
+ #: classes/models/fields/FrmFieldCaptcha.php:173
3727
  msgid "The captcha is missing from this form"
3728
  msgstr ""
3729
 
3908
  msgstr ""
3909
 
3910
  #: classes/models/FrmEntryValidate.php:255
3911
+ #: classes/models/FrmEntryValidate.php:265
3912
  msgid "Your entry appears to be spam!"
3913
  msgstr ""
3914
 
4086
  msgid "There are no options for this action."
4087
  msgstr ""
4088
 
4089
+ #: classes/models/FrmFormAction.php:847
4090
  msgid "Draft is saved"
4091
  msgstr ""
4092
 
4093
+ #: classes/models/FrmFormAction.php:848
4094
  msgid "Entry is created"
4095
  msgstr ""
4096
 
4097
+ #: classes/models/FrmFormAction.php:849
4098
  msgid "Entry is updated"
4099
  msgstr ""
4100
 
4101
+ #: classes/models/FrmFormAction.php:850
4102
  msgid "Entry is deleted"
4103
  msgstr ""
4104
 
4105
+ #: classes/models/FrmFormAction.php:851
4106
  msgid "Entry is imported"
4107
  msgstr ""
4108
 
4109
+ #: classes/models/FrmFormAction.php:861
4110
  msgid "Use Conditional Logic"
4111
  msgstr ""
4112
 
4113
+ #: classes/models/FrmFormAction.php:868
4114
  msgid "Conditional form actions"
4115
  msgstr ""
4116
 
4316
  msgid "New Style"
4317
  msgstr ""
4318
 
4319
+ #: classes/models/FrmStyle.php:194
4320
  msgid "WARNING: Any changes made to this file will be lost when your Formidable settings are updated"
4321
  msgstr ""
4322
 
4323
+ #: classes/models/FrmStyle.php:274
4324
  msgid "Formidable Style"
4325
  msgstr ""
4326
 
4327
+ #: classes/models/FrmStyle.php:513
4328
  #: classes/views/styles/_field-description.php:22
4329
  msgid "normal"
4330
  msgstr ""
4331
 
4332
+ #: classes/models/FrmStyle.php:516
4333
  msgid "bold"
4334
  msgstr ""
4335
 
4499
  #: classes/views/frm-fields/back-end/inline-modal.php:7
4500
  #: classes/views/frm-fields/back-end/inline-modal.php:8
4501
  #: classes/views/shared/admin-header.php:19
4502
+ #: js/formidable_admin.js:7623
4503
  msgid "Close"
4504
  msgstr ""
4505
 
4807
  msgid "(click an action to add it to your form)"
4808
  msgstr ""
4809
 
4810
+ #: classes/views/frm-form-actions/settings.php:83
4811
  msgid "Show all form actions"
4812
  msgstr ""
4813
 
4814
+ #: classes/views/frm-form-actions/settings.php:86
4815
  msgid "Hide extra form actions"
4816
  msgstr ""
4817
 
6347
  msgid "Are you sure you want to delete these %1$s selected fields?"
6348
  msgstr ""
6349
 
6350
+ #: js/formidable_admin.js:7615
6351
  msgid "Save and Reload"
6352
  msgstr ""
readme.txt CHANGED
@@ -3,9 +3,9 @@ Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Forms Plugin for Wor
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, free, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator, price calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form
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,6 +438,18 @@ 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.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.
@@ -456,11 +468,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
456
  - Fix: The frm_alignright class was causing fields to shift to the wrong row. The style definition has been updated so it will stay in the same row as other fields.
457
  - Fix: Required messages were not properly appearing for empty radio buttons when an other option was selected but left empty and JavaScript validation was on.
458
 
459
- = 5.0.09 =
460
- - The option to check entries for spam using JavaScript is now on by default for all new forms. We recommend turning this on for older forms that may be receiving spam entries, especially forms that include file uploads. After turning this feature on, make sure to also clear any caching plugins to avoid issues with cached pages with missing tokens.
461
- - New: Pre-determined option data will no longer be sent to Akismet to help reduce the number of false positive results.
462
- - Fix: Significantly reduced the amount of memory required to load settings for websites with fewer than 50 pages with a lot of data.
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>
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, free, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator, price calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form
5
  Requires at least: 5.0
6
+ Tested up to: 5.8.2
7
  Requires PHP: 5.6
8
+ Stable tag: 5.0.13
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.13 =
442
+ - FrmAppHelper::jquery_ui_base_url and an unused dropdown view file have been deprecated.
443
+ - Security: Back end form settings will now always filter on render when the DISALLOW_UNFILTERED_HTML constant is on.
444
+ - Security: Added additional sanitizing when saving a custom style, added additional filtering to icons, and improved how some content is escaped.
445
+ - New: Added a new frm_disallow_unfiltered_html filter that will always filter back form settings without having to set the DISALLOW_UNFILTERED_HTML constant.
446
+ - New: A name field will always be used when sending comment author information to Akismet if one is set to avoid false positives that could cause another field value to possibly get sent instead.
447
+ - Fix: When importing a grid or table view, [/if x] and [/foreach x] shortcodes were not properly being replaced.
448
+ - Fix: Too much was being stripped from custom submit button HTML for underpriveleged users or when disallowing unfiltered html.
449
+ - Fix: Too many calls were being made to Akismet for forms with multiple pages.
450
+ - Fix: A conflict with WooCommerce was sometimes triggering an error when checking for addon updates.
451
+ - Fix: The comment author information sent to Akismet was not getting set if the author information was set in a name field.
452
+
453
  = 5.0.12 =
454
  - 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.
455
  - Fix: Many Formidable addons were not properly displaying update details from the plugins page.
468
  - Fix: The frm_alignright class was causing fields to shift to the wrong row. The style definition has been updated so it will stay in the same row as other fields.
469
  - Fix: Required messages were not properly appearing for empty radio buttons when an other option was selected but left empty and JavaScript validation was on.
470
 
 
 
 
 
 
 
 
471
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>