Formidable Forms – Form Builder for WordPress - Version 4.06.02

Version Description

  • New: Added frm_field_value_object hook for making adjustments to the field before it's label and value is displayed.
  • New: Added frm_xml_response hook for altering the message/response when an XML file is imported.
  • Fix: Updated deprecated blacklist functions in WP 5.5.
  • Fix: Add more checks to the installation triggers to prevent them from being triggered at unintended times.
  • Show a more helpful error message in some cases when the XML import fails.
Download this release

Release Info

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

Code changes from version 4.06.01 to 4.06.02

classes/controllers/FrmAddonsController.php CHANGED
@@ -404,6 +404,10 @@ class FrmAddonsController {
404
  );
405
  }
406
 
 
 
 
 
407
  return $link;
408
  }
409
  }
@@ -850,6 +854,39 @@ class FrmAddonsController {
850
  wp_die();
851
  }
852
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
853
  /**
854
  * @since 3.04.02
855
  * @param string $installed The plugin folder name with file name
404
  );
405
  }
406
 
407
+ if ( ! empty( $link ) ) {
408
+ $link['status'] = $addon['status']['type'];
409
+ }
410
+
411
  return $link;
412
  }
413
  }
854
  wp_die();
855
  }
856
 
857
+ /**
858
+ * @since 4.06.02
859
+ */
860
+ public static function ajax_multiple_addons() {
861
+ self::install_addon_permissions();
862
+
863
+ // Set the current screen to avoid undefined notices.
864
+ global $hook_suffix;
865
+ set_current_screen();
866
+
867
+ $download_urls = FrmAppHelper::get_param( 'plugin', '', 'post' );
868
+ $download_urls = explode( ',', $download_urls );
869
+ FrmAppHelper::sanitize_value( 'esc_url_raw', $download_urls );
870
+
871
+ foreach ( $download_urls as $download_url ) {
872
+ $_POST['plugin'] = $download_url;
873
+ if ( strpos( $download_url, 'http' ) !== false ) {
874
+ // Installing.
875
+ self::maybe_show_cred_form();
876
+
877
+ $installed = self::install_addon();
878
+ self::maybe_activate_addon( $installed );
879
+ } else {
880
+ // Activating.
881
+ self::maybe_activate_addon( $download_url );
882
+ }
883
+ }
884
+
885
+ echo json_encode( __( 'Your plugins have been installed and activated.', 'formidable' ) );
886
+
887
+ wp_die();
888
+ }
889
+
890
  /**
891
  * @since 3.04.02
892
  * @param string $installed The plugin folder name with file name
classes/controllers/FrmAppController.php CHANGED
@@ -456,10 +456,22 @@ class FrmAppController {
456
  $args = array(
457
  'methods' => 'GET',
458
  'callback' => 'FrmAppController::api_install',
 
459
  );
 
460
  register_rest_route( 'frm-admin/v1', '/install', $args );
461
  }
462
 
 
 
 
 
 
 
 
 
 
 
463
  /**
464
  * Run silent upgrade on each site in the network during a network upgrade.
465
  * Update database settings for all sites in a network during network upgrade process.
@@ -469,7 +481,8 @@ class FrmAppController {
469
  * @param int $blog_id Blog ID.
470
  */
471
  public static function network_upgrade_site( $blog_id = 0 ) {
472
-
 
473
  $request = new WP_REST_Request( 'GET', '/frm-admin/v1/install' );
474
 
475
  if ( $blog_id ) {
@@ -490,6 +503,7 @@ class FrmAppController {
490
  * @since 3.0
491
  */
492
  public static function api_install() {
 
493
  if ( self::needs_update() ) {
494
  $running = get_option( 'frm_install_running' );
495
  if ( false === $running || $running < strtotime( '-5 minutes' ) ) {
456
  $args = array(
457
  'methods' => 'GET',
458
  'callback' => 'FrmAppController::api_install',
459
+ 'permission_callback' => __CLASS__ . '::can_update_db',
460
  );
461
+
462
  register_rest_route( 'frm-admin/v1', '/install', $args );
463
  }
464
 
465
+ /**
466
+ * Make sure the install is only being run when we tell it to.
467
+ * We don't want to run manually by people calling the API.
468
+ *
469
+ * @since 4.06.02
470
+ */
471
+ public static function can_update_db() {
472
+ return get_transient( 'frm_updating_api' );
473
+ }
474
+
475
  /**
476
  * Run silent upgrade on each site in the network during a network upgrade.
477
  * Update database settings for all sites in a network during network upgrade process.
481
  * @param int $blog_id Blog ID.
482
  */
483
  public static function network_upgrade_site( $blog_id = 0 ) {
484
+ // Flag to check if install is happening as intended.
485
+ set_transient( 'frm_updating_api', true, MINUTE_IN_SECONDS );
486
  $request = new WP_REST_Request( 'GET', '/frm-admin/v1/install' );
487
 
488
  if ( $blog_id ) {
503
  * @since 3.0
504
  */
505
  public static function api_install() {
506
+ delete_transient( 'frm_updating_api' );
507
  if ( self::needs_update() ) {
508
  $running = get_option( 'frm_install_running' );
509
  if ( false === $running || $running < strtotime( '-5 minutes' ) ) {
classes/controllers/FrmHooksController.php CHANGED
@@ -157,6 +157,7 @@ class FrmHooksController {
157
  add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
158
  add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
159
  add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
 
160
  add_action( 'wp_ajax_frm_connect', 'FrmAddonsController::connect_pro' );
161
 
162
  // Fields Controller.
157
  add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
158
  add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
159
  add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
160
+ add_action( 'wp_ajax_frm_multiple_addons', 'FrmAddonsController::ajax_multiple_addons' );
161
  add_action( 'wp_ajax_frm_connect', 'FrmAddonsController::connect_pro' );
162
 
163
  // Fields Controller.
classes/controllers/FrmSettingsController.php CHANGED
@@ -79,7 +79,7 @@ class FrmSettingsController {
79
  $show_licenses = false;
80
  $installed_addons = apply_filters( 'frm_installed_addons', array() );
81
  foreach ( $installed_addons as $installed_addon ) {
82
- if ( ! $installed_addon->is_parent_licence && $installed_addon->plugin_name != 'Formidable Pro' ) {
83
  $show_licenses = true;
84
  break;
85
  }
79
  $show_licenses = false;
80
  $installed_addons = apply_filters( 'frm_installed_addons', array() );
81
  foreach ( $installed_addons as $installed_addon ) {
82
+ if ( ! $installed_addon->is_parent_licence && $installed_addon->plugin_name != 'Formidable Pro' && $installed_addon->needs_license ) {
83
  $show_licenses = true;
84
  break;
85
  }
classes/controllers/FrmXMLController.php CHANGED
@@ -39,6 +39,9 @@ class FrmXMLController {
39
 
40
  $url = FrmAppHelper::get_param( 'xml', '', 'post', 'esc_url_raw' );
41
 
 
 
 
42
  $response = wp_remote_get( $url );
43
  $body = wp_remote_retrieve_body( $response );
44
  $xml = simplexml_load_string( $body );
@@ -63,16 +66,130 @@ class FrmXMLController {
63
  'redirect' => FrmForm::get_edit_link( $form_id ),
64
  'success' => 1,
65
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  } else {
 
 
 
 
 
67
  $response = array(
68
- 'message' => __( 'There was an error importing form', 'formidable' ),
69
  );
 
70
  }
71
 
 
 
72
  echo wp_json_encode( $response );
73
  wp_die();
74
  }
75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  /**
77
  * Change the name of the last form that is not a child.
78
  * This will allow for lookup fields and embedded forms
@@ -87,6 +204,12 @@ class FrmXMLController {
87
  return;
88
  }
89
 
 
 
 
 
 
 
90
  // Get the main form ID.
91
  $set_name = 0;
92
  foreach ( $xml->form as $form ) {
@@ -98,8 +221,8 @@ class FrmXMLController {
98
  foreach ( $xml->form as $form ) {
99
  // Maybe set the form name if this isn't a child form.
100
  if ( $set_name == $form->id ) {
101
- $form->name = FrmAppHelper::get_param( 'name', '', 'post', 'sanitize_text_field' );
102
- $form->description = FrmAppHelper::get_param( 'desc', '', 'post', 'sanitize_textarea_field' );
103
  }
104
 
105
  // Use a unique key to prevent editing existing form.
39
 
40
  $url = FrmAppHelper::get_param( 'xml', '', 'post', 'esc_url_raw' );
41
 
42
+ $form = self::get_posted_form();
43
+ self::override_url( $form, $url );
44
+
45
  $response = wp_remote_get( $url );
46
  $body = wp_remote_retrieve_body( $response );
47
  $xml = simplexml_load_string( $body );
66
  'redirect' => FrmForm::get_edit_link( $form_id ),
67
  'success' => 1,
68
  );
69
+ if ( ! empty( $imported['imported']['posts'] ) ) {
70
+ // Return the link to the last page created.
71
+ $pages = $imported['posts'];
72
+ }
73
+
74
+ if ( ! empty( $form ) ) {
75
+ // Create selected pages with the correct shortcodes.
76
+ $pages = self::create_pages_for_import( $form );
77
+ }
78
+
79
+ if ( isset( $pages ) && ! empty( $pages ) ) {
80
+ $post_id = end( $pages );
81
+ $response['redirect'] = get_permalink( $post_id );
82
+ }
83
  } else {
84
+ if ( isset( $imported['error'] ) ) {
85
+ $message = $imported['error'];
86
+ } else {
87
+ $message = __( 'There was an error importing form', 'formidable' );
88
+ }
89
  $response = array(
90
+ 'message' => $message,
91
  );
92
+
93
  }
94
 
95
+ $response = apply_filters( 'frm_xml_response', $response, compact( 'form', 'imported' ) );
96
+
97
  echo wp_json_encode( $response );
98
  wp_die();
99
  }
100
 
101
+ /**
102
+ * @since 4.06.02
103
+ */
104
+ private static function get_posted_form() {
105
+ $form = FrmAppHelper::get_param( 'form', '', 'post', 'wp_unslash' );
106
+ if ( empty( $form ) ) {
107
+ return $form;
108
+ }
109
+ $form = json_decode( $form, true );
110
+ return $form;
111
+ }
112
+
113
+ /**
114
+ * Get a different URL depending on the selection in the form.
115
+ *
116
+ * @since 4.06.02
117
+ */
118
+ private static function override_url( $form, &$url ) {
119
+ $selected_form = self::get_selected_in_form( $form, 'form' );
120
+ if ( empty( $selected_form ) ) {
121
+ return;
122
+ }
123
+
124
+ $selected_xml = isset( $form['xml'] ) && isset( $form['xml'][ $selected_form ] ) ? $form['xml'][ $selected_form ] : '';
125
+ if ( empty( $selected_xml ) || strpos( $selected_xml, 'http' ) !== 0 ) {
126
+ return;
127
+ }
128
+
129
+ $url = $selected_xml;
130
+ }
131
+
132
+ /**
133
+ * @since 4.06.02
134
+ */
135
+ private static function get_selected_in_form( $form, $value = 'form' ) {
136
+ if ( ! empty( $form ) && isset( $form[ $value ] ) && ! empty( $form[ $value ] ) ) {
137
+ return $form[ $value ];
138
+ }
139
+
140
+ return '';
141
+ }
142
+
143
+ /**
144
+ * @since 4.06.02
145
+ *
146
+ * @param array $form The posted form values.
147
+ *
148
+ * @return array The array of created pages.
149
+ */
150
+ private static function create_pages_for_import( $form ) {
151
+ if ( ! isset( $form['pages'] ) || empty( $form['pages'] ) ) {
152
+ return;
153
+ }
154
+
155
+ $form_key = self::get_selected_in_form( $form, 'form' );
156
+ $view_keys = self::get_selected_in_form( $form, 'view' );
157
+
158
+ $page_ids = array();
159
+ foreach ( (array) $form['pages'] as $for => $name ) {
160
+ if ( empty( $name ) ) {
161
+ // Don't create a page if no title is given.
162
+ continue;
163
+ }
164
+
165
+ if ( $for === 'view' ) {
166
+ $item_key = is_array( $view_keys ) ? $view_keys[ $form_key ] : $view_keys;
167
+ $shortcode = '[display-frm-data id=%1$s filter=limited]';
168
+ } elseif ( $for === 'form' ) {
169
+ $item_key = $form_key;
170
+ $shortcode = '[formidable id=%1$s]';
171
+ } else {
172
+ $item_key = self::get_selected_in_form( $form, 'form' );
173
+ $shortcode = '[' . esc_html( $for ) . ' id=%1$s]';
174
+ }
175
+
176
+ if ( empty( $item_key ) ) {
177
+ // Don't create it if the shortcode won't show anything.
178
+ continue;
179
+ }
180
+
181
+ $page_ids[ $for ] = wp_insert_post(
182
+ array(
183
+ 'post_title' => $name,
184
+ 'post_type' => 'page',
185
+ 'post_content' => sprintf( $shortcode, $item_key ),
186
+ )
187
+ );
188
+ }
189
+
190
+ return $page_ids;
191
+ }
192
+
193
  /**
194
  * Change the name of the last form that is not a child.
195
  * This will allow for lookup fields and embedded forms
204
  return;
205
  }
206
 
207
+ $name = FrmAppHelper::get_param( 'name', '', 'post', 'sanitize_text_field' );
208
+ $description = FrmAppHelper::get_param( 'desc', '', 'post', 'sanitize_textarea_field' );
209
+ if ( empty( $name ) && empty( $description ) ) {
210
+ return;
211
+ }
212
+
213
  // Get the main form ID.
214
  $set_name = 0;
215
  foreach ( $xml->form as $form ) {
221
  foreach ( $xml->form as $form ) {
222
  // Maybe set the form name if this isn't a child form.
223
  if ( $set_name == $form->id ) {
224
+ $form->name = $name;
225
+ $form->description = $description;
226
  }
227
 
228
  // Use a unique key to prevent editing existing form.
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '4.06.01';
15
 
16
  /**
17
  * @since 1.07.02
@@ -82,6 +82,7 @@ class FrmAppHelper {
82
  if ( empty( $page ) ) {
83
  $page = 'https://formidableforms.com/lite-upgrade/';
84
  } else {
 
85
  $page = 'https://formidableforms.com/' . $page;
86
  }
87
 
@@ -201,6 +202,14 @@ class FrmAppHelper {
201
  return apply_filters( 'frm_pro_installed', false );
202
  }
203
 
 
 
 
 
 
 
 
 
204
  /**
205
  * @since 4.06
206
  */
@@ -732,6 +741,10 @@ class FrmAppHelper {
732
  'width' => true,
733
  'x' => true,
734
  'y' => true,
 
 
 
 
735
  ),
736
  'section' => $allow_class,
737
  'span' => array(
@@ -755,6 +768,7 @@ class FrmAppHelper {
755
  'width' => true,
756
  'height' => true,
757
  'style' => true,
 
758
  ),
759
  'use' => array(
760
  'href' => true,
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '4.06.02';
15
 
16
  /**
17
  * @since 1.07.02
82
  if ( empty( $page ) ) {
83
  $page = 'https://formidableforms.com/lite-upgrade/';
84
  } else {
85
+ $page = str_replace( 'https://formidableforms.com/', '', $page );
86
  $page = 'https://formidableforms.com/' . $page;
87
  }
88
 
202
  return apply_filters( 'frm_pro_installed', false );
203
  }
204
 
205
+ /**
206
+ * @since 4.06.02
207
+ */
208
+ public static function pro_is_connected() {
209
+ global $frm_vars;
210
+ return self::pro_is_installed() && $frm_vars['pro_is_authorized'];
211
+ }
212
+
213
  /**
214
  * @since 4.06
215
  */
741
  'width' => true,
742
  'x' => true,
743
  'y' => true,
744
+ 'rx' => true,
745
+ 'stroke' => true,
746
+ 'stroke-opacity' => true,
747
+ 'stroke-width' => true,
748
  ),
749
  'section' => $allow_class,
750
  'span' => array(
768
  'width' => true,
769
  'height' => true,
770
  'style' => true,
771
+ 'fill' => true,
772
  ),
773
  'use' => array(
774
  'href' => true,
classes/helpers/FrmFormsHelper.php CHANGED
@@ -1357,11 +1357,15 @@ BEFORE_HTML;
1357
  return false;
1358
  }
1359
 
1360
- $plans = array( 'free', 'Personal', 'Business', 'Elite' );
1361
 
1362
  foreach ( $item['categories'] as $k => $category ) {
1363
  if ( in_array( $category, $plans ) ) {
1364
  unset( $item['categories'][ $k ] );
 
 
 
 
1365
  return $category;
1366
  }
1367
  }
1357
  return false;
1358
  }
1359
 
1360
+ $plans = array( 'free', 'Basic', 'Personal', 'Business', 'Elite' );
1361
 
1362
  foreach ( $item['categories'] as $k => $category ) {
1363
  if ( in_array( $category, $plans ) ) {
1364
  unset( $item['categories'][ $k ] );
1365
+ if ( $category === 'Personal' ) {
1366
+ // Show the current package name.
1367
+ $category = 'Basic';
1368
+ }
1369
  return $category;
1370
  }
1371
  }
classes/helpers/FrmXMLHelper.php CHANGED
@@ -59,6 +59,10 @@ class FrmXMLHelper {
59
  * @return array The number of items imported
60
  */
61
  public static function import_xml_now( $xml ) {
 
 
 
 
62
  $imported = self::pre_import_data();
63
 
64
  foreach ( array( 'term', 'form', 'view' ) as $item_type ) {
@@ -70,7 +74,16 @@ class FrmXMLHelper {
70
  }
71
  }
72
 
73
- return apply_filters( 'frm_importing_xml', $imported, $xml );
 
 
 
 
 
 
 
 
 
74
  }
75
 
76
  /**
59
  * @return array The number of items imported
60
  */
61
  public static function import_xml_now( $xml ) {
62
+ if ( ! defined( 'WP_IMPORTING' ) ) {
63
+ define( 'WP_IMPORTING', true );
64
+ }
65
+
66
  $imported = self::pre_import_data();
67
 
68
  foreach ( array( 'term', 'form', 'view' ) as $item_type ) {
74
  }
75
  }
76
 
77
+ $imported = apply_filters( 'frm_importing_xml', $imported, $xml );
78
+
79
+ if ( ! isset( $imported['form_status'] ) || empty( $imported['form_status'] ) ) {
80
+ // Check for an error message in the XML.
81
+ if ( isset( $xml->Code ) && isset( $xml->Message ) ) { // phpcs:ignore WordPress.NamingConventions
82
+ $imported['error'] = reset( $xml->Message ); // phpcs:ignore WordPress.NamingConventions
83
+ }
84
+ }
85
+
86
+ return $imported;
87
  }
88
 
89
  /**
classes/models/FrmAddon.php CHANGED
@@ -15,6 +15,7 @@ class FrmAddon {
15
  public $version;
16
  public $author = 'Strategy11';
17
  public $is_parent_licence = false;
 
18
  private $is_expired_addon = false;
19
  public $license;
20
  protected $get_beta = false;
15
  public $version;
16
  public $author = 'Strategy11';
17
  public $is_parent_licence = false;
18
+ public $needs_license = true;
19
  private $is_expired_addon = false;
20
  public $license;
21
  protected $get_beta = false;
classes/models/FrmEmail.php CHANGED
@@ -331,6 +331,7 @@ class FrmEmail {
331
  $args = array(
332
  'entry' => $this->entry,
333
  'email_key' => $this->email_key,
 
334
  );
335
 
336
  $this->attachments = apply_filters( 'frm_notification_attachment', array(), $this->form, $args );
331
  $args = array(
332
  'entry' => $this->entry,
333
  'email_key' => $this->email_key,
334
+ 'settings' => $this->settings,
335
  );
336
 
337
  $this->attachments = apply_filters( 'frm_notification_attachment', array(), $this->form, $args );
classes/models/FrmEntryValidate.php CHANGED
@@ -233,7 +233,7 @@ class FrmEntryValidate {
233
  }
234
 
235
  if ( self::blacklist_check( $values ) ) {
236
- $errors['spam'] = __( 'Your entry appears to be blacklist spam!', 'formidable' );
237
  }
238
 
239
  if ( self::is_akismet_spam( $values ) ) {
@@ -272,7 +272,7 @@ class FrmEntryValidate {
272
  return false;
273
  }
274
 
275
- $mod_keys = trim( get_option( 'blacklist_keys' ) );
276
  if ( empty( $mod_keys ) ) {
277
  return false;
278
  }
@@ -286,7 +286,34 @@ class FrmEntryValidate {
286
  $user_agent = FrmAppHelper::get_server_value( 'HTTP_USER_AGENT' );
287
  $user_info = self::get_spam_check_user_info( $values );
288
 
289
- return wp_blacklist_check( $user_info['comment_author'], $user_info['comment_author_email'], $user_info['comment_author_url'], $content, $ip, $user_agent );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  }
291
 
292
  /**
233
  }
234
 
235
  if ( self::blacklist_check( $values ) ) {
236
+ $errors['spam'] = __( 'Your entry appears to be blocked spam!', 'formidable' );
237
  }
238
 
239
  if ( self::is_akismet_spam( $values ) ) {
272
  return false;
273
  }
274
 
275
+ $mod_keys = trim( self::get_disallowed_words() );
276
  if ( empty( $mod_keys ) ) {
277
  return false;
278
  }
286
  $user_agent = FrmAppHelper::get_server_value( 'HTTP_USER_AGENT' );
287
  $user_info = self::get_spam_check_user_info( $values );
288
 
289
+ return self::check_disallowed_words( $user_info['comment_author'], $user_info['comment_author_email'], $user_info['comment_author_url'], $content, $ip, $user_agent );
290
+ }
291
+
292
+ /**
293
+ * For WP 5.5 compatibility.
294
+ *
295
+ * @since 4.06.02
296
+ */
297
+ private static function check_disallowed_words( $author, $email, $url, $content, $ip, $user_agent ) {
298
+ if ( function_exists( 'wp_check_comment_disallowed_list' ) ) {
299
+ return wp_check_comment_disallowed_list( $author, $email, $url, $content, $ip, $user_agent );
300
+ } else {
301
+ return wp_blacklist_check( $author, $email, $url, $content, $ip, $user_agent );
302
+ }
303
+ }
304
+
305
+ /**
306
+ * For WP 5.5 compatibility.
307
+ *
308
+ * @since 4.06.02
309
+ */
310
+ private static function get_disallowed_words() {
311
+ $keys = get_option( 'disallowed_keys' );
312
+ if ( false === $keys ) {
313
+ // Fallback for WP < 5.5.
314
+ $keys = get_option( 'blacklist_keys' );
315
+ }
316
+ return $keys;
317
  }
318
 
319
  /**
classes/models/FrmField.php CHANGED
@@ -51,7 +51,7 @@ class FrmField {
51
  'icon' => 'frm_icon_font frm_code_icon',
52
  ),
53
  'hidden' => array(
54
- 'name' => __( 'Hidden Field', 'formidable' ),
55
  'icon' => 'frm_icon_font frm_eye_slash_icon',
56
  ),
57
  'user_id' => array(
51
  'icon' => 'frm_icon_font frm_code_icon',
52
  ),
53
  'hidden' => array(
54
+ 'name' => __( 'Hidden', 'formidable' ),
55
  'icon' => 'frm_icon_font frm_eye_slash_icon',
56
  ),
57
  'user_id' => array(
classes/models/FrmFieldValue.php CHANGED
@@ -53,6 +53,7 @@ class FrmFieldValue {
53
 
54
  $this->entry = $entry;
55
  $this->entry_id = $entry->id;
 
56
  $this->field = $field;
57
  $this->init_saved_value( $entry );
58
  }
53
 
54
  $this->entry = $entry;
55
  $this->entry_id = $entry->id;
56
+ $field = apply_filters( 'frm_field_value_object', $field );
57
  $this->field = $field;
58
  $this->init_saved_value( $entry );
59
  }
classes/models/FrmFormAction.php CHANGED
@@ -712,6 +712,11 @@ class FrmFormAction {
712
  }
713
 
714
  public static function action_conditions_met( $action, $entry ) {
 
 
 
 
 
715
  $notification = $action->post_content;
716
  $stop = false;
717
  $met = array();
@@ -755,6 +760,7 @@ class FrmFormAction {
755
  * Prepare the logic value for comparison against the entered value
756
  *
757
  * @since 2.01.02
 
758
  *
759
  * @param array|string $logic_value
760
  */
@@ -779,6 +785,7 @@ class FrmFormAction {
779
  * Get the value from a specific field and entry
780
  *
781
  * @since 2.01.02
 
782
  *
783
  * @param object $entry
784
  * @param int $field_id
712
  }
713
 
714
  public static function action_conditions_met( $action, $entry ) {
715
+ if ( is_callable( 'FrmProFormActionsController::action_conditions_met' ) ) {
716
+ return FrmProFormActionsController::action_conditions_met( $action, $entry );
717
+ }
718
+
719
+ // This is here for reverse compatibility.
720
  $notification = $action->post_content;
721
  $stop = false;
722
  $met = array();
760
  * Prepare the logic value for comparison against the entered value
761
  *
762
  * @since 2.01.02
763
+ * @deprecated 4.06.02
764
  *
765
  * @param array|string $logic_value
766
  */
785
  * Get the value from a specific field and entry
786
  *
787
  * @since 2.01.02
788
+ * @deprecated 4.06.02
789
  *
790
  * @param object $entry
791
  * @param int $field_id
classes/models/FrmSolution.php ADDED
@@ -0,0 +1,804 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles the installation of a solution and any dependencies.
4
+ * This page is shown when a Formidable plugin is activated.
5
+ *
6
+ * @since 4.06.02
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ die( 'You are not allowed to call this page directly.' );
11
+ }
12
+
13
+ class FrmSolution {
14
+
15
+ protected $plugin_slug = '';
16
+
17
+ protected $plugin_file = '';
18
+
19
+ /**
20
+ * Hidden welcome page slug.
21
+ *
22
+ * @since 4.06.02
23
+ */
24
+ protected $page = '';
25
+
26
+ protected $icon = 'frm_icon_font frm_settings_icon';
27
+
28
+ public function __construct( $atts = array() ) {
29
+ if ( empty( $this->plugin_slug ) ) {
30
+ return;
31
+ }
32
+
33
+ add_action( 'plugins_loaded', array( $this, 'load_hooks' ), 50 );
34
+ add_action( 'admin_init', array( $this, 'redirect' ), 9999 );
35
+
36
+ if ( empty( $this->plugin_file ) ) {
37
+ $this->plugin_file = $this->plugin_slug . '.php';
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Register all WP hooks.
43
+ *
44
+ * @since 4.06.02
45
+ */
46
+ public function load_hooks() {
47
+ // If user is in admin ajax or doing cron, return.
48
+ if ( wp_doing_cron() ) {
49
+ return;
50
+ }
51
+
52
+ add_filter( 'frm_add_settings_section', array( $this, 'add_settings' ) );
53
+
54
+ if ( wp_doing_ajax() ) {
55
+ return;
56
+ }
57
+
58
+ // If user cannot manage_options, return.
59
+ if ( ! current_user_can( 'frm_change_settings' ) && ! FrmAppHelper::is_formidable_admin() ) {
60
+ return;
61
+ }
62
+
63
+ add_filter( 'plugin_action_links_' . $this->plugin_slug . '/' . $this->plugin_file, array( $this, 'plugin_links' ) );
64
+ add_action( 'admin_menu', array( $this, 'register' ) );
65
+ add_action( 'admin_head', array( $this, 'hide_menu' ) );
66
+ }
67
+
68
+ public function plugin_links( $links ) {
69
+ if ( ! $this->is_complete() ) {
70
+ $settings = '<a href="' . esc_url( $this->settings_link() ) . '">' . __( 'Setup', 'formidable' ) . '</a>';
71
+ array_unshift( $links, $settings );
72
+ }
73
+
74
+ return $links;
75
+ }
76
+
77
+ /**
78
+ * Register the pages to be used for the Welcome screen (and tabs).
79
+ *
80
+ * These pages will be removed from the Dashboard menu, so they will
81
+ * not actually show. Sneaky, sneaky.
82
+ *
83
+ * @since 4.06.02
84
+ */
85
+ public function register() {
86
+
87
+ // Getting started - shows after installation.
88
+ add_dashboard_page(
89
+ esc_html( $this->page_title() ),
90
+ esc_html( $this->page_title() ),
91
+ 'frm_change_settings',
92
+ $this->page,
93
+ array( $this, 'output' )
94
+ );
95
+ }
96
+
97
+ /**
98
+ * Removed the dashboard pages from the admin menu.
99
+ *
100
+ * This means the pages are still available to us, but hidden.
101
+ *
102
+ * @since 4.06.02
103
+ */
104
+ public function hide_menu() {
105
+ remove_submenu_page( 'index.php', $this->page );
106
+ }
107
+
108
+ protected function plugin_name() {
109
+ return '';
110
+ }
111
+
112
+ protected function page_title() {
113
+ return __( 'Welcome to Formidable Forms', 'formidable' );
114
+ }
115
+
116
+ protected function page_description() {
117
+ return __( 'Follow the steps below to get started.', 'formidable' );
118
+ }
119
+
120
+ /**
121
+ * Welcome screen redirect.
122
+ *
123
+ * This function checks if a new install or update has just occurred. If so,
124
+ * then we redirect the user to the appropriate page.
125
+ *
126
+ * @since 4.06.02
127
+ */
128
+ public function redirect() {
129
+
130
+ $current_page = FrmAppHelper::simple_get( 'page', 'sanitize_title' );
131
+ if ( $current_page === $this->page ) {
132
+ // Prevent endless loop.
133
+ return;
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
+
141
+ // Check if we should consider redirection.
142
+ if ( ! $this->is_current_plugin() ) {
143
+ return;
144
+ }
145
+
146
+ delete_transient( 'frm_activation_redirect' );
147
+
148
+ // Initial install.
149
+ wp_safe_redirect( $this->settings_link() );
150
+ exit;
151
+ }
152
+
153
+ protected function settings_link() {
154
+ return admin_url( 'index.php?page=' . $this->page );
155
+ }
156
+
157
+ /*
158
+ * Add page to global settings.
159
+ */
160
+ public static function add_settings( $sections ) {
161
+ wp_enqueue_style( 'formidable-pro-fields' );
162
+ $sections[ $this->plugin_slug ] = array(
163
+ 'class' => $this,
164
+ 'function' => 'settings_page',
165
+ 'name' => $this->plugin_name(),
166
+ 'icon' => $this->icon,
167
+ 'ajax' => true,
168
+ );
169
+ return $sections;
170
+ }
171
+
172
+ /*
173
+ * Output for global settings.
174
+ */
175
+ public static function settings_page() {
176
+ $steps = $this->get_steps_data();
177
+ if ( ! $steps['license']['complete'] ) {
178
+ $this->license_box( $steps['license'] );
179
+ }
180
+
181
+ if ( isset( $steps['plugin'] ) && ! $steps['license']['complete'] ) {
182
+ $this->show_plugin_install( $steps['plugin'] );
183
+ }
184
+
185
+ $all_imported = $this->is_complete( 'all' );
186
+
187
+ $step = $steps['import'];
188
+ $step['label'] = '';
189
+ $step['nested'] = true;
190
+ if ( $steps['complete']['current'] ) {
191
+ // Always show this step in settings.
192
+ $step['current'] = true;
193
+
194
+ $new_class = $all_imported ? ' button frm_hidden' : '';
195
+ $step['button_class'] = str_replace( 'frm_grey disabled', $new_class, $step['button_class'] );
196
+ }
197
+ if ( $all_imported ) {
198
+ $step['description'] = __( 'The following form(s) have been created.', 'formidable' );
199
+ }
200
+ $this->show_app_install( $step );
201
+
202
+ if ( ! $all_imported ) {
203
+ $step = $steps['complete'];
204
+ $step['current'] = false;
205
+ $step['button_class'] .= ' frm_grey disabled';
206
+ $this->show_page_links( $step );
207
+ }
208
+ }
209
+
210
+ /**
211
+ * Getting Started screen. Shows after first install.
212
+ */
213
+ public function output() {
214
+ FrmAppHelper::include_svg();
215
+ $this->css();
216
+ $class = FrmAppHelper::pro_is_installed() ? 'pro' : 'lite';
217
+
218
+ echo '<div id="frm-welcome" class="wrap frm-wrap frm-admin-plugin-landing upgrade_to_pro ' . sanitize_html_class( $class ) . '">';
219
+
220
+ $this->header();
221
+ $this->main_content();
222
+
223
+ echo '</div>';
224
+ }
225
+
226
+ /**
227
+ * Heading section.
228
+ */
229
+ protected function header() {
230
+ $size = array(
231
+ 'height' => 90,
232
+ 'width' => 90,
233
+ );
234
+
235
+ ?>
236
+ <section class="top">
237
+ <div class="frm-smtp-logos">
238
+ <?php FrmAppHelper::show_logo( $size ); ?>
239
+ <?php
240
+ FrmAppHelper::icon_by_class(
241
+ 'frmfont frm_arrow_right_icon',
242
+ array(
243
+ 'aria-label' => 'Install',
244
+ 'style' => 'width:30px;height:30px;margin:0 35px;',
245
+ )
246
+ );
247
+ FrmAppHelper::icon_by_class(
248
+ 'frmfont frm_wordpress_icon',
249
+ array(
250
+ 'aria-label' => 'WordPress',
251
+ 'style' => 'width:90px;height:90px;',
252
+ )
253
+ );
254
+ ?>
255
+ </div>
256
+ <h1><?php echo esc_html( $this->page_title() ); ?></h1>
257
+ <p><?php echo esc_html( $this->page_description() ); ?></p>
258
+ </section>
259
+ <?php
260
+ }
261
+
262
+ /**
263
+ * This is the welcome page content.
264
+ * Override me to insert different content.
265
+ */
266
+ protected function main_content() {
267
+ $steps = $this->get_steps_data();
268
+ $this->license_box( $steps['license'] );
269
+ if ( isset( $steps['plugin'] ) ) {
270
+ $this->show_plugin_install( $steps['plugin'] );
271
+ }
272
+ $this->show_app_install( $steps['import'] );
273
+ $this->show_page_links( $steps['complete'] );
274
+ }
275
+
276
+ protected function get_steps_data() {
277
+ $pro_installed = FrmAppHelper::pro_is_connected();
278
+
279
+ $steps = array(
280
+ 'license' => array(
281
+ 'label' => __( 'Connect to FormidableForms.com', 'formidable' ),
282
+ 'description' => __( 'Create a connection to get plugin downloads.', 'formidable' ),
283
+ 'button_label' => __( 'Connect an Account', 'formidable' ),
284
+ 'current' => empty( $pro_installed ),
285
+ 'complete' => $pro_installed,
286
+ 'num' => 1,
287
+ ),
288
+ 'plugin' => array(
289
+ 'label' => __( 'Install and Activate Add-Ons', 'formidable' ),
290
+ 'description' => __( 'Install any required add-ons from FormidableForms.com.', 'formidable' ),
291
+ 'button_label' => __( 'Install & Activate', 'formidable' ),
292
+ 'current' => false,
293
+ 'complete' => false,
294
+ 'num' => 2,
295
+ ),
296
+ 'import' => array(
297
+ 'label' => __( 'Setup Forms, Views, and Pages', 'formidable' ),
298
+ 'description' => __( 'Build the forms, views, and pages automatically.', 'formidable' ),
299
+ 'button_label' => __( 'Create Now', 'formidable' ),
300
+ 'complete' => $this->is_complete(),
301
+ 'num' => 3,
302
+ ),
303
+ 'complete' => array(
304
+ 'label' => __( 'Customize Your New Pages', 'formidable' ),
305
+ 'description' => __( 'Make any required changes and publish the page.', 'formidable' ),
306
+ 'button_label' => __( 'View Page', 'formidable' ),
307
+ 'complete' => false,
308
+ 'num' => 4,
309
+ ),
310
+ );
311
+
312
+ $this->adjust_plugin_install_step( $steps );
313
+
314
+ $has_current = false;
315
+ foreach ( $steps as $k => $step ) {
316
+ // Set the current step.
317
+ if ( ! isset( $step['current'] ) ) {
318
+ if ( $step['complete'] ) {
319
+ $steps[ $k ]['current'] = false;
320
+ } else {
321
+ $steps[ $k ]['current'] = ! $has_current;
322
+ $has_current = true;
323
+ }
324
+ } elseif ( $step['current'] ) {
325
+ $has_current = true;
326
+ }
327
+
328
+ // Set disabled buttons.
329
+ $class = isset( $step['button_class'] ) ? $step['button_class'] : '';
330
+ $class .= ' button-primary frm-button-primary';
331
+ if ( ! $steps[ $k ]['current'] ) {
332
+ $class .= ' frm_grey disabled';
333
+ }
334
+ $steps[ $k ]['button_class'] = $class;
335
+ }
336
+
337
+ return $steps;
338
+ }
339
+
340
+ protected function adjust_plugin_install_step( &$steps ) {
341
+ $plugins = $this->required_plugins();
342
+ if ( empty( $plugins ) ) {
343
+ unset( $steps['plugin'] );
344
+ $steps['import']['num'] = 2;
345
+ $steps['complete']['num'] = 3;
346
+ return;
347
+ }
348
+
349
+ $missing = array();
350
+ $rel = array();
351
+ foreach ( $plugins as $plugin_key ) {
352
+ $plugin = FrmAddonsController::install_link( $plugin_key );
353
+ if ( $plugin['status'] === 'active' ) {
354
+ continue;
355
+ }
356
+ $links[ $plugin_key ] = $plugin;
357
+ if ( isset( $plugin['url'] ) ) {
358
+ $rel[] = $plugin['url'];
359
+ } else {
360
+ // Add-on is required but not allowed.
361
+ $missing[] = $plugin_key;
362
+ }
363
+ }
364
+ if ( empty( $rel ) && empty( $missing ) ) {
365
+ $steps['plugin']['complete'] = true;
366
+ } elseif ( ! empty( $missing ) ) {
367
+ $steps['plugin']['error'] = sprintf(
368
+ /* translators: %1$s: Plugin name */
369
+ esc_html__( 'You need permission to download the Formidable %1$s plugin', 'formidable' ),
370
+ implode( ', ', $missing )
371
+ );
372
+ } else {
373
+ $steps['plugin']['links'] = $rel;
374
+ $steps['plugin']['button_class'] = 'frm-solution-multiple ';
375
+ }
376
+
377
+ if ( $steps['license']['complete'] && ! $steps['plugin']['complete'] ) {
378
+ $steps['plugin']['current'] = true;
379
+ }
380
+ }
381
+
382
+ protected function step_top( $step ) {
383
+ $section_class = ( ! isset( $step['current'] ) || ! $step['current'] ) ? 'frm_grey' : '';
384
+
385
+ ?>
386
+ <section class="step step-install <?php echo esc_attr( $section_class ); ?>">
387
+ <aside class="num">
388
+ <?php
389
+ if ( isset( $step['complete'] ) && $step['complete'] ) {
390
+ FrmAppHelper::icon_by_class(
391
+ 'frmfont frm_step_complete_icon',
392
+ array(
393
+ /* translators: %1$s: Step number */
394
+ 'aria-label' => sprintf( __( 'Step %1$d', 'formidable' ), $step['num'] ),
395
+ 'style' => 'width:50px;height:50px;',
396
+ )
397
+ );
398
+ } else {
399
+ ?>
400
+ <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 100 100"><circle cx="50" cy="50" r="50" fill="#ccc"/><text x="50%" y="50%" text-anchor="middle" fill="#fff" stroke="#fff" stroke-width="2px" dy=".3em" font-size="3.7em"><?php echo esc_html( $step['num'] ); ?></text></svg>
401
+ <?php
402
+ }
403
+ ?>
404
+ <i class="loader hidden"></i>
405
+ </aside>
406
+ <div>
407
+ <?php if ( $step['label'] ) { ?>
408
+ <h3 class="frm-step-heading"><?php echo esc_html( $step['label'] ); ?></h3>
409
+ <?php } ?>
410
+ <p><?php echo esc_html( $step['description'] ); ?></p>
411
+ <?php if ( isset( $step['error'] ) ) { ?>
412
+ <p class="frm_error"><?php echo esc_html( $step['error'] ); ?></p>
413
+ <?php } ?>
414
+ <?php
415
+ }
416
+
417
+ protected function step_bottom( $step ) {
418
+ ?>
419
+ </div>
420
+ </section>
421
+ <?php
422
+ }
423
+
424
+ /**
425
+ * Generate and output Connect step section HTML.
426
+ */
427
+ protected function license_box( $step ) {
428
+ $this->step_top( $step );
429
+
430
+ if ( $step['complete'] ) {
431
+ ?>
432
+ <a href="#" class="<?php echo esc_attr( $step['button_class'] ); ?>">
433
+ <?php echo esc_html( $step['button_label'] ); ?>
434
+ </a>
435
+ <?php
436
+ } else {
437
+ FrmSettingsController::license_box();
438
+ }
439
+
440
+ $this->step_bottom( $step );
441
+ }
442
+
443
+ protected function show_plugin_install( $step ) {
444
+ $this->step_top( $step );
445
+
446
+ if ( ! isset( $step['error'] ) ) {
447
+ $rel = isset( $step['links'] ) ? $step['links'] : array();
448
+
449
+ ?>
450
+ <a rel="<?php echo esc_attr( implode( ',', $rel ) ); ?>" class="<?php echo esc_attr( $step['button_class'] ); ?>">
451
+ <?php echo esc_html( $step['button_label'] ); ?>
452
+ </a>
453
+ <?php
454
+ }
455
+
456
+ $this->step_bottom( $step );
457
+ }
458
+
459
+ protected function show_app_install( $step ) {
460
+ $is_complete = $step['complete'];
461
+ if ( ! empty( $this->form_options() ) && ! $is_complete ) {
462
+ $step['description'] = __( 'Select the form or view you would like to create.', 'formidable' );
463
+ }
464
+
465
+ $this->step_top( $step );
466
+
467
+ $api = new FrmFormApi();
468
+ $addons = $api->get_api_info();
469
+
470
+ $id = $this->download_id();
471
+ $has_file = isset( $addons[ $id ] ) && isset( $addons[ $id ]['beta'] );
472
+
473
+ if ( ! $step['current'] ) {
474
+ ?>
475
+ <a href="#" class="<?php echo esc_attr( $step['button_class'] ); ?>">
476
+ <?php echo esc_html( $step['button_label'] ); ?>
477
+ </a>
478
+ <?php
479
+
480
+ $this->step_bottom( $step );
481
+ return;
482
+ }
483
+
484
+ if ( ! $has_file ) {
485
+ echo '<p class="frm_error_style">' . esc_html__( 'We didn\'t find anything to import. Please contact our team.', 'formidable' ) . '</p>';
486
+ } elseif ( ! isset( $addons[ $id ]['beta']['package'] ) ) {
487
+ echo '<p class="frm_error_style">' . esc_html__( 'Looks like you may not have a current subscription for this solution. Please check your account.', 'formidable' ) . '</p>';
488
+ } else {
489
+ $xml = $addons[ $id ]['beta']['package'];
490
+ if ( is_array( $xml ) ) {
491
+ $xml = reset( $xml );
492
+ }
493
+
494
+ if ( isset( $step['nested'] ) ) {
495
+ echo '<fieldset id="frm-new-template" class="field-group">';
496
+ } else {
497
+ echo '<form name="frm-new-template" id="frm-new-template" method="post" class="field-group">';
498
+ }
499
+
500
+ ?>
501
+ <input type="hidden" name="link" id="frm_link" value="<?php echo esc_attr( $xml ); ?>" />
502
+ <input type="hidden" name="type" id="frm_action_type" value="frm_install_template" />
503
+ <input type="hidden" name="template_name" id="frm_template_name" value="" />
504
+ <input type="hidden" name="template_desc" id="frm_template_desc" value="" />
505
+ <input type="hidden" name="redirect" value="0" />
506
+ <input type="hidden" name="show_response" value="frm_install_error" />
507
+ <?php
508
+ $this->show_form_options( $xml );
509
+ $this->show_view_options();
510
+
511
+ if ( ! $this->is_complete( 'all' ) ) {
512
+ // Don't show on the settings page when complete.
513
+ $this->show_page_options();
514
+ }
515
+ ?>
516
+ <p>
517
+ <button <?php echo esc_html( isset( $step['nested'] ) ? '' : 'type="submit" ' ); ?>class="<?php echo esc_attr( $step['button_class'] ); ?>">
518
+ <?php echo esc_html( $step['button_label'] ); ?>
519
+ </button>
520
+ </p>
521
+ <p id="frm_install_error" class="frm_error_style frm_hidden"></p>
522
+ <?php
523
+ if ( isset( $step['nested'] ) ) {
524
+ echo '</fieldset>';
525
+ } else {
526
+ echo '</form>';
527
+ }
528
+ }
529
+
530
+ $this->step_bottom( $step );
531
+ }
532
+
533
+ protected function show_form_options( $xml ) {
534
+ $this->show_import_options( $this->form_options(), 'form', $xml );
535
+ }
536
+
537
+ protected function show_view_options() {
538
+ $this->show_import_options( $this->view_options(), 'view' );
539
+ }
540
+
541
+ protected function show_import_options( $options, $importing, $xml = '' ) {
542
+ if ( empty( $options ) ) {
543
+ return;
544
+ }
545
+
546
+ $imported = $this->previously_imported_forms();
547
+ $count = count( $options );
548
+ foreach ( $options as $info ) {
549
+ // Count the number of options displayed for css.
550
+ if ( $count > 1 && ! isset( $info['img'] ) ) {
551
+ $count --;
552
+ }
553
+ }
554
+ $width = floor( ( 533 - ( ( $count - 1 ) * 20 ) ) / $count );
555
+ unset( $count );
556
+
557
+ $selected = false;
558
+
559
+ include( FrmAppHelper::plugin_path() . '/classes/views/solutions/_import.php' );
560
+ }
561
+
562
+ protected function show_page_options() {
563
+ $pages = $this->needed_pages();
564
+ if ( empty( $pages ) ) {
565
+ return;
566
+ }
567
+
568
+ echo '<h3>Choose New Page Title</h3>';
569
+ foreach ( $pages as $page ) {
570
+ ?>
571
+ <p>
572
+ <label for="pages_<?php echo esc_html( $page['type'] ); ?>">
573
+ <?php echo esc_html( $page['label'] ); ?>
574
+ </label>
575
+ <input type="text" name="pages[<?php echo esc_html( $page['type'] ); ?>]" value="<?php echo esc_attr( $page['name'] ); ?>" id="pages_<?php echo esc_html( $page['type'] ); ?>" required />
576
+ </p>
577
+ <?php
578
+ }
579
+ }
580
+
581
+ protected function show_page_links( $step ) {
582
+ if ( $step['current'] ) {
583
+ return;
584
+ }
585
+
586
+ $this->step_top( $step );
587
+
588
+ ?>
589
+ <a href="#" target="_blank" rel="noopener" id="frm-redirect-link" class="<?php echo esc_attr( $step['button_class'] ); ?>">
590
+ <?php echo esc_html( $step['button_label'] ); ?>
591
+ </a>
592
+ <?php
593
+
594
+ $this->step_bottom( $step );
595
+ }
596
+
597
+ /**
598
+ * Only show the content for the correct plugin.
599
+ */
600
+ protected function is_current_plugin() {
601
+ $to_redirect = get_transient( 'frm_activation_redirect' );
602
+ return $to_redirect === $this->plugin_slug && empty( $this->is_complete() );
603
+ }
604
+
605
+ /**
606
+ * Override this function to indicate when install is complete.
607
+ */
608
+ protected function is_complete( $count = 1 ) {
609
+ $imported = $this->previously_imported_forms();
610
+ if ( $count === 'all' ) {
611
+ return count( $imported ) >= count( $this->form_options() );
612
+ }
613
+ return ! empty( $imported );
614
+ }
615
+
616
+ /**
617
+ * Get an array of all of the forms that have been imported.
618
+ *
619
+ * @return array
620
+ */
621
+ protected function previously_imported_forms() {
622
+ $imported = array();
623
+ $forms = $this->form_options();
624
+ foreach ( $forms as $form ) {
625
+ $was_imported = isset( $form['form'] ) ? FrmForm::get_id_by_key( $form['form'] ) : false;
626
+ if ( $was_imported ) {
627
+ $imported[ $form['form'] ] = $was_imported;
628
+ }
629
+ }
630
+
631
+ return $imported;
632
+ }
633
+
634
+ /**
635
+ * In the new plugin has any dependencies, include them here.
636
+ */
637
+ protected function required_plugins() {
638
+ return array();
639
+ }
640
+
641
+ /**
642
+ * This needs to be overridden.
643
+ */
644
+ protected function download_id() {
645
+ return 0;
646
+ }
647
+
648
+ /**
649
+ * Give options for which forms to import.
650
+ */
651
+ protected function form_options() {
652
+ /**
653
+ * Example:
654
+ * array(
655
+ * 'unique-key' => array(
656
+ * 'keys' => 'forms keys here',
657
+ * 'name' => 'displayed label here',
658
+ * 'img' => 'svg code',
659
+ * ),
660
+ * )
661
+ */
662
+ return array();
663
+ }
664
+
665
+ /**
666
+ * Give options for which view to use.
667
+ */
668
+ protected function view_options() {
669
+ return array();
670
+ }
671
+
672
+ /**
673
+ * If the pages aren't imported automatically, set the page names.
674
+ */
675
+ protected function needed_pages() {
676
+ /**
677
+ * Example:
678
+ * array(
679
+ * array(
680
+ * 'label' => 'Page Name',
681
+ * 'name' => 'Default name',
682
+ * 'type' => 'form' or 'view',
683
+ * ),
684
+ * )
685
+ */
686
+
687
+ return array();
688
+ }
689
+
690
+ private function css() {
691
+ wp_enqueue_style( 'formidable-pro-fields' );
692
+ ?>
693
+ <style>
694
+ #frm-welcome *, #frm-welcome *::before, #frm-welcome *::after {
695
+ -webkit-box-sizing: border-box;
696
+ -moz-box-sizing: border-box;
697
+ box-sizing: border-box;
698
+ }
699
+ #frm-welcome{
700
+ width: 700px;
701
+ margin: 0 auto;
702
+ }
703
+ #frm-welcome p {
704
+ font-size: 15px;
705
+ }
706
+ #frm-welcome section{
707
+ margin: 50px 0;
708
+ text-align: left;
709
+ clear: both;
710
+ }
711
+ #frm-welcome .top{
712
+ text-align: center;
713
+ }
714
+ .frm-smtp-logos {
715
+ margin-bottom: 38px;
716
+ }
717
+ .frm-smtp-logos svg {
718
+ vertical-align: middle;
719
+ }
720
+ #frm-welcome .top h1 {
721
+ font-size: 26px;
722
+ font-weight: 600;
723
+ margin-bottom: 0;
724
+ padding: 0;
725
+ }
726
+ #frm-welcome .top p {
727
+ font-size: 17px;
728
+ color: #777;
729
+ margin-top: .5em;
730
+ }
731
+ #frm-welcome .screenshot ul {
732
+ display: inline-block;
733
+ margin: 0 0 0 30px;
734
+ list-style-type: none;
735
+ max-width: calc(100% - 350px);
736
+ }
737
+ #frm-welcome .screenshot li {
738
+ margin: 16px 0;
739
+ padding: 0;
740
+ font-size: 15px;
741
+ color: #777;
742
+ }
743
+ #frm-welcome .screenshot .cont img {
744
+ max-width: 100%;
745
+ display: block;
746
+ }
747
+ #frm-welcome .screenshot .cont {
748
+ display: inline-block;
749
+ position: relative;
750
+ width: 315px;
751
+ padding: 5px;
752
+ background-color: #fff;
753
+ border-radius: 3px;
754
+ }
755
+ #frm-welcome .step,
756
+ #frm-welcome .screenshot .cont {
757
+ -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05);
758
+ -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05);
759
+ box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05);
760
+ }
761
+ #frm-welcome .step {
762
+ background-color: #F9F9F9;
763
+ border: 1px solid #E5E5E5;
764
+ margin: 0 0 25px;
765
+ }
766
+ #frm-welcome .screenshot > *,
767
+ #frm-welcome .step > * {
768
+ vertical-align: middle;
769
+ }
770
+ #frm-welcome .step p {
771
+ font-size: 16px;
772
+ color: #777777;
773
+ }
774
+ #frm-welcome .step .num {
775
+ display: inline-block;
776
+ position: relative;
777
+ width: 100px;
778
+ height: 50px;
779
+ text-align: center;
780
+ }
781
+ #frm-welcome .step > div {
782
+ display: inline-block;
783
+ width: calc(100% - 104px);
784
+ background-color: #fff;
785
+ padding: 30px;
786
+ border-left: 1px solid #eee;
787
+ }
788
+ #frm-welcome .step h3.frm-step-heading {
789
+ font-size: 24px;
790
+ line-height: 22px;
791
+ margin-top: 0;
792
+ margin-bottom: 15px;
793
+ }
794
+ #frm-welcome .button.disabled {
795
+ cursor: default;
796
+ }
797
+ #frm-welcome #frm-using-lite {
798
+ display: none;
799
+ }
800
+ </style>
801
+ <?php
802
+ }
803
+
804
+ }
classes/views/addons/list.php CHANGED
@@ -8,16 +8,9 @@
8
  ?>
9
  <div class="wrap">
10
 
11
- <?php include( FrmAppHelper::plugin_path() . '/classes/views/shared/errors.php' ); ?>
12
-
13
- <p class="alignleft">
14
- <?php esc_html_e( 'Missing add-ons?', 'formidable' ); ?>
15
- <a href="#" id="frm_reconnect_link" class="frm-show-authorized" data-refresh="1">
16
- <?php esc_html_e( 'Check now for a recent upgrade or renewal', 'formidable' ); ?>
17
- </a>
18
- </p>
19
-
20
  <?php
 
 
21
  FrmAppHelper::show_search_box(
22
  array(
23
  'input_id' => 'addon',
@@ -25,6 +18,19 @@
25
  'tosearch' => 'frm-card',
26
  )
27
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  ?>
29
  <div class="clear"></div>
30
 
@@ -79,7 +85,13 @@
79
  <?php esc_html_e( 'Renew Now', 'formidable' ); ?>
80
  </a>
81
  <?php } else { ?>
82
- <a class="install-now button button-secondary frm-button-secondary" href="<?php echo esc_url( $pricing . '&utm_content=' . $addon['slug'] ); ?>" target="_blank" aria-label="<?php esc_attr_e( 'Upgrade Now', 'formidable' ); ?>">
 
 
 
 
 
 
83
  <?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
84
  </a>
85
  <?php } ?>
8
  ?>
9
  <div class="wrap">
10
 
 
 
 
 
 
 
 
 
 
11
  <?php
12
+ include( FrmAppHelper::plugin_path() . '/classes/views/shared/errors.php' );
13
+
14
  FrmAppHelper::show_search_box(
15
  array(
16
  'input_id' => 'addon',
18
  'tosearch' => 'frm-card',
19
  )
20
  );
21
+
22
+ if ( FrmAppHelper::pro_is_connected() ) {
23
+ ?>
24
+ <p class="alignleft">
25
+ <?php esc_html_e( 'Missing add-ons?', 'formidable' ); ?>
26
+ <a href="#" id="frm_reconnect_link" class="frm-show-authorized" data-refresh="1">
27
+ <?php esc_html_e( 'Check now for a recent upgrade or renewal', 'formidable' ); ?>
28
+ </a>
29
+ </p>
30
+ <?php
31
+ } else {
32
+ FrmSettingsController::license_box();
33
+ }
34
  ?>
35
  <div class="clear"></div>
36
 
85
  <?php esc_html_e( 'Renew Now', 'formidable' ); ?>
86
  </a>
87
  <?php } else { ?>
88
+ <?php
89
+ if ( isset( $addon['categories'] ) && in_array( 'Solution', $addon['categories'] ) ) {
90
+ // Solutions will go to a separate page.
91
+ $pricing = FrmAppHelper::admin_upgrade_link( 'addons', $addon['link'] );
92
+ }
93
+ ?>
94
+ <a class="install-now button button-secondary frm-button-secondary" href="<?php echo esc_url( $pricing . '&utm_content=' . $addon['slug'] ); ?>" target="_blank" rel="noopener" aria-label="<?php esc_attr_e( 'Upgrade Now', 'formidable' ); ?>">
95
  <?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
96
  </a>
97
  <?php } ?>
classes/views/addons/settings.php CHANGED
@@ -1,10 +1,8 @@
1
  <div class="wrap">
2
- <h2 class="frm-h2"><?php esc_html_e( 'Plugin Licenses', 'formidable' ); ?></h2>
3
-
4
  <?php
5
 
6
  foreach ( $plugins as $slug => $plugin ) {
7
- if ( $slug == 'formidable_pro' || $plugin->is_parent_licence ) {
8
  continue;
9
  }
10
 
1
  <div class="wrap">
 
 
2
  <?php
3
 
4
  foreach ( $plugins as $slug => $plugin ) {
5
+ if ( $slug == 'formidable_pro' || $plugin->is_parent_licence || ! $plugin->needs_license ) {
6
  continue;
7
  }
8
 
classes/views/frm-settings/license_box.php CHANGED
@@ -4,7 +4,7 @@
4
  <?php esc_html_e( 'Connect an Account', 'formidable' ); ?>
5
  </a>
6
  or
7
- <a href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( 'settings-license' ) ); ?>" target="_blank" class="button-secondary frm-secondary-button">
8
  <?php esc_html_e( 'Get Formidable Now', 'formidable' ); ?>
9
  </a>
10
  </p>
4
  <?php esc_html_e( 'Connect an Account', 'formidable' ); ?>
5
  </a>
6
  or
7
+ <a href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( 'settings-license' ) ); ?>" target="_blank" class="button-secondary frm-button-secondary">
8
  <?php esc_html_e( 'Get Formidable Now', 'formidable' ); ?>
9
  </a>
10
  </p>
classes/views/solutions/_import.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="frm_image_options frm_form_field" style="--image-size:<?php echo esc_attr( $width ); ?>px">
2
+ <div class="frm_opt_container">
3
+ <?php
4
+ foreach ( $options as $info ) {
5
+ if ( ! empty( $xml ) && isset( $info['url'] ) && $info['url'] === 'auto' ) {
6
+ $info['url'] = $xml;
7
+ }
8
+
9
+ $disabled = isset( $imported[ $info['form'] ] ) ? ' disabled' : '';
10
+ $url = isset( $info['url'] ) ? $info['url'] : '';
11
+ $value = $importing === 'form' ? $info['form'] : $info['key'];
12
+ if ( ! isset( $info['img'] ) ) {
13
+ ?>
14
+ <input type="hidden" name="<?php echo esc_attr( $importing ); ?>[<?php echo esc_attr( $info['form'] ); ?>]" value="<?php echo esc_attr( $value ); ?>" <?php echo esc_attr( $disabled ); ?>/>
15
+ <?php
16
+ continue;
17
+ }
18
+
19
+ $hide_views = $importing === 'view' && ( ( $selected && $info['form'] !== $selected ) || isset( $imported[ $info['form'] ] ) );
20
+ ?>
21
+ <div class="frm_radio radio-inline radio frm_image_option<?php echo esc_attr( $importing === 'view' ? ' show_sub_opt show_' . $info['form'] : '' ); ?>" style="<?php echo esc_attr( $hide_views ? 'display:none' : '' ); ?>">
22
+ <?php if ( $importing === 'form' ) { ?>
23
+ <input type="hidden" name="xml[<?php echo esc_attr( $info['form'] ); ?>]" value="<?php echo esc_attr( $url ); ?>" <?php echo esc_attr( $disabled ); ?>/>
24
+ <?php } ?>
25
+ <label>
26
+ <input type="radio" name="<?php echo esc_attr( $importing . ( $importing === 'view' ? '[' . $info['form'] . ']' : '' ) ); ?>" value="<?php echo esc_attr( $value ); ?>"
27
+ <?php
28
+ echo esc_attr( $disabled );
29
+ if ( ! $selected && empty( $disabled ) ) {
30
+ echo ' checked="checked"';
31
+ $selected = $info['form'];
32
+ }
33
+ ?>
34
+ <?php if ( $importing === 'form' ) { ?>
35
+ onchange="frm_show_div('show_sub_opt',this.checked,false,'.');frm_show_div('show_<?php echo esc_attr( $info['form'] ); ?>',this.checked,true,'.')"
36
+ <?php } ?>
37
+ />
38
+ <div class="frm_image_option_container frm_label_with_image">
39
+ <?php echo FrmAppHelper::kses( $info['img'], array( 'svg', 'rect', 'path' ) ); // WPCS: XSS ok. ?>
40
+ <span class="frm_text_label_for_image">
41
+ <?php
42
+ if ( ! empty( $disabled ) ) {
43
+ FrmAppHelper::icon_by_class(
44
+ 'frmfont frm_step_complete_icon',
45
+ array(
46
+ 'aria-label' => __( 'Imported', 'formidable' ),
47
+ )
48
+ );
49
+ }
50
+
51
+ if ( $importing === 'form' && $disabled ) {
52
+ echo FrmFormsHelper::edit_form_link( $imported[ $info['form'] ] ); // WPCS: XSS ok.
53
+ } else {
54
+ echo esc_html( $info['name'] );
55
+ }
56
+ ?>
57
+ </span>
58
+ </div>
59
+ </label>
60
+ </div>
61
+ <?php } ?>
62
+ </div>
63
+ </div>
css/custom_theme.css.php CHANGED
@@ -471,9 +471,9 @@ legend.frm_hidden{
471
  }
472
 
473
  .with_frm_style .frm_button{
474
- text-decoration:none;
475
  border:1px solid #eee;
476
- display:inline;
477
  <?php if ( ! empty( $defaults['submit_padding'] ) ) { ?>
478
  padding:<?php echo esc_html( $defaults['submit_padding'] . $important ); ?>;
479
  padding:var(--submit-padding)<?php echo esc_html( $important ); ?>;
@@ -673,6 +673,7 @@ a.frm_save_draft{
673
  .horizontal_radio .frm_radio,
674
  .horizontal_radio .frm_catlevel_1{
675
  display:inline-block;
 
676
  }
677
 
678
  .with_frm_style .frm_radio{
@@ -851,10 +852,18 @@ a.frm_save_draft{
851
 
852
  .frm-alt-table {
853
  width:100%;
854
- border-collapse:collapse;
855
  margin-top:0.5em;
856
  font-size:15px;
 
 
 
 
 
 
 
857
  }
 
858
 
859
  .frm-alt-table th {
860
  width:200px;
@@ -870,6 +879,7 @@ a.frm_save_draft{
870
  vertical-align:top;
871
  text-align:left;
872
  padding:20px;
 
873
  }
874
 
875
  .frm-alt-table tr:nth-child(even) {
471
  }
472
 
473
  .with_frm_style .frm_button{
474
+ text-decoration:none !important;;
475
  border:1px solid #eee;
476
+ display:inline-block;
477
  <?php if ( ! empty( $defaults['submit_padding'] ) ) { ?>
478
  padding:<?php echo esc_html( $defaults['submit_padding'] . $important ); ?>;
479
  padding:var(--submit-padding)<?php echo esc_html( $important ); ?>;
673
  .horizontal_radio .frm_radio,
674
  .horizontal_radio .frm_catlevel_1{
675
  display:inline-block;
676
+ padding-left: 0;
677
  }
678
 
679
  .with_frm_style .frm_radio{
852
 
853
  .frm-alt-table {
854
  width:100%;
855
+ border-collapse:separate;
856
  margin-top:0.5em;
857
  font-size:15px;
858
+ border-width:1px;
859
+ }
860
+
861
+ <?php if ( ! empty( $defaults['border_color'] ) ) { ?>
862
+ .with_frm_style .frm-alt-table{
863
+ border-color:<?php echo esc_html( $defaults['border_color'] ); ?>;
864
+ border-color:var(--border-color);
865
  }
866
+ <?php } ?>
867
 
868
  .frm-alt-table th {
869
  width:200px;
879
  vertical-align:top;
880
  text-align:left;
881
  padding:20px;
882
+ border-color:transparent;
883
  }
884
 
885
  .frm-alt-table tr:nth-child(even) {
css/frm_admin.css CHANGED
@@ -1672,6 +1672,14 @@ h2.frm-h2 + .howto {
1672
  margin: 5px 0 20px;
1673
  }
1674
 
 
 
 
 
 
 
 
 
1675
  .frm-addons {
1676
  margin-top: 30px;
1677
  display: grid;
@@ -3391,6 +3399,11 @@ li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-
3391
  --border-radius: var(--small-radius);
3392
  }
3393
 
 
 
 
 
 
3394
  #form_show_entry_page .frm_file_link,
3395
  #form_show_entry_page .frm_image_option_container {
3396
  display: inline-flex;
@@ -3457,6 +3470,29 @@ li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-
3457
  display: block;
3458
  }
3459
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3460
  .frm_single_option .frm_option_key {
3461
  margin-top: 17px;
3462
  }
@@ -3485,6 +3521,12 @@ li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-
3485
  object-position: center;
3486
  }
3487
 
 
 
 
 
 
 
3488
  .frm_image_preview_title{
3489
  margin-top: 6px;
3490
  color: rgba(40, 47, 54, 0.65);
@@ -3506,12 +3548,16 @@ li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-
3506
  background: #fff;
3507
  }
3508
 
 
 
3509
  .frm_remove_image_option {
3510
  margin-top: 9px;
3511
  color: rgba(40, 47, 54, 0.4);
3512
  cursor: pointer;
3513
  }
3514
 
 
 
3515
  .frm_remove_image_option:hover {
3516
  color: rgba(40, 47, 54, 0.8);
3517
  }
@@ -3813,6 +3859,11 @@ label.frm-example-icon {
3813
  color: green;
3814
  }
3815
 
 
 
 
 
 
3816
  /* Empty List */
3817
 
3818
  .frm_no_items {
@@ -6956,6 +7007,17 @@ button.frm_choose_image_box,
6956
  width: auto;
6957
  }
6958
 
 
 
 
 
 
 
 
 
 
 
 
6959
  /* Chrome Scrollbars for Windows */
6960
  .windows::-webkit-scrollbar,
6961
  .windows ::-webkit-scrollbar {
1672
  margin: 5px 0 20px;
1673
  }
1674
 
1675
+ .frm-admin-page-addons #frm-using-lite {
1676
+ display: none;
1677
+ }
1678
+
1679
+ .frm-admin-page-addons .frm-search {
1680
+ margin-top: 0;
1681
+ }
1682
+
1683
  .frm-addons {
1684
  margin-top: 30px;
1685
  display: grid;
3399
  --border-radius: var(--small-radius);
3400
  }
3401
 
3402
+ .frm_image_option_container svg {
3403
+ height: 50px;
3404
+ margin: 10px auto 0;
3405
+ }
3406
+
3407
  #form_show_entry_page .frm_file_link,
3408
  #form_show_entry_page .frm_image_option_container {
3409
  display: inline-flex;
3470
  display: block;
3471
  }
3472
 
3473
+ #frm-welcome .frm_image_options .frm_image_option_container,
3474
+ #form_global_settings .frm_image_options .frm_image_option_container{
3475
+ background: var(--sidebar-color);
3476
+ }
3477
+
3478
+ #frm-welcome .frm_image_option_container svg,
3479
+ #form_global_settings .frm_image_option_container svg {
3480
+ max-width: calc( 100% - 20px );
3481
+ }
3482
+
3483
+ /* Show an icon on top */
3484
+ .frm_image_option_container {
3485
+ position: relative;
3486
+ }
3487
+
3488
+ .frm_text_label_for_image > svg {
3489
+ width: 30px;
3490
+ position: absolute;
3491
+ top: 5px;
3492
+ right: calc( 50% - 15px );
3493
+ }
3494
+ /* End show an icon on top */
3495
+
3496
  .frm_single_option .frm_option_key {
3497
  margin-top: 17px;
3498
  }
3521
  object-position: center;
3522
  }
3523
 
3524
+ .frm_image_styling_frame .frm_email_attachment_icon img {
3525
+ height: auto;
3526
+ width: auto;
3527
+ max-width: 54px;
3528
+ }
3529
+
3530
  .frm_image_preview_title{
3531
  margin-top: 6px;
3532
  color: rgba(40, 47, 54, 0.65);
3548
  background: #fff;
3549
  }
3550
 
3551
+ a.frm_remove_image_option .frmsvg,
3552
+ a.frm_remove_image_option,
3553
  .frm_remove_image_option {
3554
  margin-top: 9px;
3555
  color: rgba(40, 47, 54, 0.4);
3556
  cursor: pointer;
3557
  }
3558
 
3559
+ a.frm_remove_image_option:hover .frmsvg,
3560
+ a.frm_remove_image_option:hover,
3561
  .frm_remove_image_option:hover {
3562
  color: rgba(40, 47, 54, 0.8);
3563
  }
3859
  color: green;
3860
  }
3861
 
3862
+ /* Hide the install steps for solutions */
3863
+ #form_global_settings .tabs-panel .num svg {
3864
+ display: none;
3865
+ }
3866
+
3867
  /* Empty List */
3868
 
3869
  .frm_no_items {
7007
  width: auto;
7008
  }
7009
 
7010
+ /* Welcome page */
7011
+
7012
+ .wp-core-ui .frm_grey.frm-button-primary.disabled,
7013
+ .wp-core-ui .frm_grey.frm-button-primary,
7014
+ #frm-welcome .frm_grey {
7015
+ opacity: 0.5;
7016
+ background: #F6F6F6 !important;
7017
+ border-color: #ddd !important;
7018
+ color: #9FA5AA !important;
7019
+ }
7020
+
7021
  /* Chrome Scrollbars for Windows */
7022
  .windows::-webkit-scrollbar,
7023
  .windows ::-webkit-scrollbar {
css/frm_grids.css CHANGED
@@ -346,6 +346,12 @@
346
  100% {opacity: 1;}
347
  }
348
 
 
 
 
 
 
 
349
  @media only screen and (max-width: 600px) {
350
  .frm_section_heading > .frm_form_field,
351
  .frm_fields_container > .frm_submit,
@@ -354,6 +360,7 @@
354
  grid-column: 1 / span 12 !important;
355
  }
356
 
 
357
  .frm_form_field.frm_inline_container,
358
  .frm_form_field.frm_right_container,
359
  .frm_form_field.frm_left_container{
346
  100% {opacity: 1;}
347
  }
348
 
349
+ @media only screen and (max-width: 750px) {
350
+ .frm_grid_container.frm_no_grid_750{
351
+ display:block;
352
+ }
353
+ }
354
+
355
  @media only screen and (max-width: 600px) {
356
  .frm_section_heading > .frm_form_field,
357
  .frm_fields_container > .frm_submit,
360
  grid-column: 1 / span 12 !important;
361
  }
362
 
363
+ .frm_grid_container.frm_no_grid_600,
364
  .frm_form_field.frm_inline_container,
365
  .frm_form_field.frm_right_container,
366
  .frm_form_field.frm_left_container{
formidable.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
- Version: 4.06.01
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 4.06.02
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
images/icons.svg CHANGED
@@ -910,7 +910,10 @@
910
  </symbol>
911
  <symbol id="frm_quantity_icon" viewBox="0 0 17 20">
912
  <title>quantity</title>
913
- <g><path d="M15.6 1.3H1.9C1 1.3 0 2 0 3.1v13.6c0 1 .9 2 2 2h13.6c1 0 1.9-1 1.9-2V3.2c0-1-.9-2-2-2zm0 15.5H1.9V3.2h13.7"></path><path fill="none" stroke="currentColor" stroke-width="2" d="M9.5 4.5v10M4.5 9.5h10" transform="translate(-.7,0.4)"/></g>
914
  </symbol>
 
 
 
915
  </defs>
916
  </svg>
910
  </symbol>
911
  <symbol id="frm_quantity_icon" viewBox="0 0 17 20">
912
  <title>quantity</title>
913
+ <path d="M15.6 1.3H1.9C1 1.3 0 2 0 3.1v13.6c0 1 .9 2 2 2h13.6c1 0 1.9-1 1.9-2V3.2c0-1-.9-2-2-2zm0 15.5H1.9V3.2h13.7"></path><path fill="none" stroke="currentColor" stroke-width="2" d="M9.5 4.5v10M4.5 9.5h10" transform="translate(-.7,0.4)"/>
914
  </symbol>
915
+ <symbol id="frm_folder_icon" viewBox="0 0 28 28" fill="none">
916
+ <title>directory</title>
917
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5 6.8c-.3 0-.6.1-.9.4-.2.2-.3.5-.3.9v14c0 .4 0 .8.3 1 .3.3.6.4 1 .4h15.6c.4 0 .7-.1 1-.4.1-.2.3-.6.3-1v-11c0-.3-.2-.7-.4-1-.2-.2-.5-.3-.9-.3H12a.7.7 0 01-.6-.3L9.5 6.8H5zm-1.9-.6c.5-.5 1.2-.8 2-.8h4.8c.3 0 .5 0 .6.3l1.8 2.7h8.4c.7 0 1.4.3 2 .8.4.5.7 1.2.7 2v11c0 .7-.3 1.4-.8 1.9s-1.2.8-1.9.8H5c-.7 0-1.4-.3-1.9-.8s-.8-1.2-.8-2v-14c0-.7.3-1.4.8-2z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M4.2 2.7c0-.4.3-.7.7-.7h6.8c.3 0 .5 0 .6.3L14 5h9a3 3 0 013 3v11.3a.7.7 0 11-1.4 0V8c0-.9-.7-1.6-1.6-1.6h-9.4a.7.7 0 01-.6-.3l-1.7-2.7H5a.7.7 0 01-.7-.7z" fill="currentColor"/></symbol>
918
  </defs>
919
  </svg>
js/formidable_admin.js CHANGED
@@ -222,6 +222,10 @@ var FrmFormsConnect = window.FrmFormsConnect || ( function( document, window, $
222
  messageBox.classList.add( 'frm_hidden' );
223
  messageBox.classList.remove( 'frm_error_style', 'frm_message', 'frm_updated_message' );
224
  }, 10000 );
 
 
 
 
225
  }
226
  },
227
 
@@ -5010,6 +5014,11 @@ function frmAdminBuildJS() {
5010
  }
5011
 
5012
  /* Addons page */
 
 
 
 
 
5013
  function activateAddon( e ) {
5014
  e.preventDefault();
5015
  installOrActivate( this, 'frm_activate_addon' );
@@ -5135,7 +5144,7 @@ function frmAdminBuildJS() {
5135
  button.removeClass( 'frm_loading_button' );
5136
 
5137
  // Maybe refresh import and SMTP pages
5138
- var refreshPage = document.querySelectorAll( '.frm-admin-page-import, #frm-admin-smtp' );
5139
  if ( refreshPage.length > 0 ) {
5140
  window.location.reload();
5141
  }
@@ -5306,6 +5315,11 @@ function frmAdminBuildJS() {
5306
  this.nextElementSibling.value = ui.item.value;
5307
  }
5308
 
 
 
 
 
 
5309
  function frmApiPreview( cont, link ) {
5310
  cont.innerHTML = '<div class="frm-wait"></div>';
5311
  jQuery.ajax({
@@ -5327,19 +5341,30 @@ function frmAdminBuildJS() {
5327
  });
5328
  }
5329
 
 
 
 
 
 
 
 
 
 
 
5330
  function installTemplate( e ) {
5331
  /*jshint validthis:true */
5332
  var action = this.elements.type.value,
5333
  button = this.querySelector( 'button' );
5334
  e.preventDefault();
5335
  button.classList.add( 'frm_loading_button' );
5336
- installNewForm( this, action );
5337
  }
5338
 
5339
- function installNewForm( form, action ) {
5340
- var data,
5341
- formName = form.elements.template_name.value,
5342
- formDesc = form.elements.template_desc.value,
 
5343
  link = form.elements.link.value;
5344
 
5345
  data = {
@@ -5347,15 +5372,37 @@ function frmAdminBuildJS() {
5347
  xml: link,
5348
  name: formName,
5349
  desc: formDesc,
 
5350
  nonce: frmGlobal.nonce
5351
  };
5352
  postAjax( data, function( response ) {
5353
- if ( typeof response.redirect !== 'undefined' ) {
5354
- window.location = response.redirect;
 
 
 
 
 
 
 
 
 
 
 
 
5355
  } else {
5356
  jQuery( '.spinner' ).css( 'visibility', 'hidden' );
5357
- // TODO: show response.message
 
 
 
 
 
 
 
 
5358
  }
 
5359
  });
5360
  }
5361
 
@@ -5589,6 +5636,48 @@ function frmAdminBuildJS() {
5589
  }
5590
  }
5591
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5592
  return {
5593
  init: function() {
5594
  s = {};
@@ -5633,6 +5722,9 @@ function frmAdminBuildJS() {
5633
  } else if ( document.getElementById( 'frm_inbox_page' ) !== null ) {
5634
  // Inbox page
5635
  frmAdminBuild.inboxInit();
 
 
 
5636
  } else {
5637
  // New form selection page
5638
  initNewFormModal();
@@ -5705,6 +5797,7 @@ function frmAdminBuildJS() {
5705
 
5706
  jQuery( document ).on( 'click', '.frm-install-addon', installAddon );
5707
  jQuery( document ).on( 'click', '.frm-activate-addon', activateAddon );
 
5708
 
5709
  // prevent annoying confirmation message from WordPress
5710
  jQuery( 'button, input[type=submit]' ).on( 'click', removeWPUnload );
@@ -6122,6 +6215,10 @@ function frmAdminBuildJS() {
6122
  });
6123
  },
6124
 
 
 
 
 
6125
  styleInit: function() {
6126
  collapseAllSections();
6127
 
@@ -6264,6 +6361,9 @@ function frmAdminBuildJS() {
6264
  jQuery( licenseTab ).on( 'click', '.edd_frm_save_license', saveAddonLicense );
6265
  }
6266
 
 
 
 
6267
  jQuery( '#frm-dismissable-cta .dismiss' ).click( function( event ) {
6268
  event.preventDefault();
6269
  jQuery.post( ajaxurl, {
222
  messageBox.classList.add( 'frm_hidden' );
223
  messageBox.classList.remove( 'frm_error_style', 'frm_message', 'frm_updated_message' );
224
  }, 10000 );
225
+ var refreshPage = document.querySelectorAll( '#frm-welcome' );
226
+ if ( refreshPage.length > 0 ) {
227
+ window.location.reload();
228
+ }
229
  }
230
  },
231
 
5014
  }
5015
 
5016
  /* Addons page */
5017
+ function installMultipleAddons( e ) {
5018
+ e.preventDefault();
5019
+ installOrActivate( this, 'frm_multiple_addons' );
5020
+ }
5021
+
5022
  function activateAddon( e ) {
5023
  e.preventDefault();
5024
  installOrActivate( this, 'frm_activate_addon' );
5144
  button.removeClass( 'frm_loading_button' );
5145
 
5146
  // Maybe refresh import and SMTP pages
5147
+ var refreshPage = document.querySelectorAll( '.frm-admin-page-import, #frm-admin-smtp, #frm-welcome' );
5148
  if ( refreshPage.length > 0 ) {
5149
  window.location.reload();
5150
  }
5315
  this.nextElementSibling.value = ui.item.value;
5316
  }
5317
 
5318
+ function nextInstallStep( thisStep ) {
5319
+ thisStep.classList.add( 'frm_grey' );
5320
+ thisStep.nextElementSibling.classList.remove( 'frm_grey' );
5321
+ }
5322
+
5323
  function frmApiPreview( cont, link ) {
5324
  cont.innerHTML = '<div class="frm-wait"></div>';
5325
  jQuery.ajax({
5341
  });
5342
  }
5343
 
5344
+ function installTemplateFieldset( e ) {
5345
+ /*jshint validthis:true */
5346
+ var fieldset = this.parentNode.parentNode,
5347
+ action = fieldset.elements.type.value,
5348
+ button = this;
5349
+ e.preventDefault();
5350
+ button.classList.add( 'frm_loading_button' );
5351
+ installNewForm( fieldset, action, button );
5352
+ }
5353
+
5354
  function installTemplate( e ) {
5355
  /*jshint validthis:true */
5356
  var action = this.elements.type.value,
5357
  button = this.querySelector( 'button' );
5358
  e.preventDefault();
5359
  button.classList.add( 'frm_loading_button' );
5360
+ installNewForm( this, action, button );
5361
  }
5362
 
5363
+ function installNewForm( form, action, button ) {
5364
+ var data, redirect, href, showError,
5365
+ formData = formToData( form ),
5366
+ formName = formData.template_name,
5367
+ formDesc = formData.template_desc,
5368
  link = form.elements.link.value;
5369
 
5370
  data = {
5372
  xml: link,
5373
  name: formName,
5374
  desc: formDesc,
5375
+ form: JSON.stringify( formData ),
5376
  nonce: frmGlobal.nonce
5377
  };
5378
  postAjax( data, function( response ) {
5379
+ redirect = response.redirect;
5380
+ if ( typeof redirect !== 'undefined' ) {
5381
+ if ( typeof form.elements.redirect === 'undefined' ) {
5382
+ window.location = redirect;
5383
+ } else {
5384
+ href = document.getElementById( 'frm-redirect-link' );
5385
+ if ( typeof link !== 'undefined' && href !== null ) {
5386
+ // Show the next installation step.
5387
+ href.setAttribute( 'href', redirect );
5388
+ href.classList.remove( 'frm_grey', 'disabled' );
5389
+ nextInstallStep( form.parentNode.parentNode );
5390
+ button.classList.add( 'frm_grey', 'disabled' );
5391
+ }
5392
+ }
5393
  } else {
5394
  jQuery( '.spinner' ).css( 'visibility', 'hidden' );
5395
+
5396
+ // Show response.message
5397
+ if ( response.message && typeof form.elements.show_response !== 'undefined' ) {
5398
+ showError = document.getElementById( form.elements.show_response.value );
5399
+ if ( showError !== null ) {
5400
+ showError.innerHTML = response.message;
5401
+ showError.classList.remove( 'frm_hidden' );
5402
+ }
5403
+ }
5404
  }
5405
+ button.classList.remove( 'frm_loading_button' );
5406
  });
5407
  }
5408
 
5636
  }
5637
  }
5638
 
5639
+ /**
5640
+ * Serialize form data with vanilla JS.
5641
+ */
5642
+ function formToData( form ) {
5643
+ var subKey, i,
5644
+ object = {},
5645
+ formData = form.elements;
5646
+
5647
+ for ( i = 0; i < formData.length; i++ ) {
5648
+ var input = formData[i],
5649
+ key = input.name,
5650
+ value = input.value,
5651
+ names = key.match( /(.*)\[(.*)\]/ );
5652
+
5653
+ if ( ( input.type === 'radio' || input.type === 'checkbox' ) && ! input.checked ) {
5654
+ continue;
5655
+ }
5656
+
5657
+ if ( names !== null ) {
5658
+ key = names[1];
5659
+ subKey = names[2];
5660
+ if ( ! Reflect.has( object, key ) ) {
5661
+ object[key] = {};
5662
+ }
5663
+ object[key][subKey] = value;
5664
+ continue;
5665
+ }
5666
+
5667
+ // Reflect.has in favor of: object.hasOwnProperty(key)
5668
+ if ( ! Reflect.has( object, key ) ) {
5669
+ object[key] = value;
5670
+ continue;
5671
+ }
5672
+ if ( ! Array.isArray( object[key]) ) {
5673
+ object[key] = [ object[key] ];
5674
+ }
5675
+ object[key].push( value );
5676
+ }
5677
+
5678
+ return object;
5679
+ }
5680
+
5681
  return {
5682
  init: function() {
5683
  s = {};
5722
  } else if ( document.getElementById( 'frm_inbox_page' ) !== null ) {
5723
  // Inbox page
5724
  frmAdminBuild.inboxInit();
5725
+ } else if ( document.getElementById( 'frm-welcome' ) !== null ) {
5726
+ // Solution install page
5727
+ frmAdminBuild.solutionInit();
5728
  } else {
5729
  // New form selection page
5730
  initNewFormModal();
5797
 
5798
  jQuery( document ).on( 'click', '.frm-install-addon', installAddon );
5799
  jQuery( document ).on( 'click', '.frm-activate-addon', activateAddon );
5800
+ jQuery( document ).on( 'click', '.frm-solution-multiple', installMultipleAddons );
5801
 
5802
  // prevent annoying confirmation message from WordPress
5803
  jQuery( 'button, input[type=submit]' ).on( 'click', removeWPUnload );
6215
  });
6216
  },
6217
 
6218
+ solutionInit: function() {
6219
+ jQuery( document ).on( 'submit', '#frm-new-template', installTemplate );
6220
+ },
6221
+
6222
  styleInit: function() {
6223
  collapseAllSections();
6224
 
6361
  jQuery( licenseTab ).on( 'click', '.edd_frm_save_license', saveAddonLicense );
6362
  }
6363
 
6364
+ // Solution install page
6365
+ jQuery( document ).on( 'click', '#frm-new-template button', installTemplateFieldset );
6366
+
6367
  jQuery( '#frm-dismissable-cta .dismiss' ).click( function( event ) {
6368
  event.preventDefault();
6369
  jQuery.post( ajaxurl, {
languages/formidable.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Formidable Forms 4.06.01\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2020-07-15T17:44:05+02:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.1.0\n"
15
  "X-Domain: formidable\n"
@@ -128,66 +128,66 @@ msgid "Sending"
128
  msgstr ""
129
 
130
  #. translators: %1$s: Plugin name, %2$s: Start link HTML, %3$s: end link HTML
131
- #: classes/models/FrmAddon.php:275
132
  msgid "Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s."
133
  msgstr ""
134
 
135
- #: classes/models/FrmAddon.php:470
136
  msgid "Oops! You forgot to enter your license number."
137
  msgstr ""
138
 
139
- #: classes/models/FrmAddon.php:546
140
  msgid "Your license has been activated. Enjoy!"
141
  msgstr ""
142
 
143
- #: classes/models/FrmAddon.php:547
144
- #: classes/models/FrmAddon.php:552
145
  msgid "That license key is invalid"
146
  msgstr ""
147
 
148
- #: classes/models/FrmAddon.php:548
149
  msgid "That license is expired"
150
  msgstr ""
151
 
152
- #: classes/models/FrmAddon.php:549
153
  msgid "That license has been refunded"
154
  msgstr ""
155
 
156
- #: classes/models/FrmAddon.php:550
157
  msgid "That license has been used on too many sites"
158
  msgstr ""
159
 
160
- #: classes/models/FrmAddon.php:551
161
  msgid "Oops! That is the wrong license key for this plugin."
162
  msgstr ""
163
 
164
- #: classes/models/FrmAddon.php:568
165
  msgid "Cache cleared"
166
  msgstr ""
167
 
168
- #: classes/models/FrmAddon.php:590
169
  msgid "That license was removed successfully"
170
  msgstr ""
171
 
172
- #: classes/models/FrmAddon.php:592
173
  msgid "There was an error deactivating your license."
174
  msgstr ""
175
 
176
- #: classes/models/FrmAddon.php:636
177
  msgid "Your License Key was invalid"
178
  msgstr ""
179
 
180
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
181
- #: classes/models/FrmAddon.php:640
182
  msgid "You had an error communicating with the Formidable API. %1$sClick here%2$s for more information."
183
  msgstr ""
184
 
185
- #: classes/models/FrmAddon.php:643
186
  msgid "You had an HTTP error connecting to the Formidable API"
187
  msgstr ""
188
 
189
  #. translators: %1$s: Error code, %2$s: Error message
190
- #: classes/models/FrmAddon.php:654
191
  msgid "There was a %1$s error: %2$s"
192
  msgstr ""
193
 
@@ -216,7 +216,7 @@ msgstr ""
216
  msgid "IP Address"
217
  msgstr ""
218
 
219
- #: classes/models/FrmFieldValue.php:168
220
  msgid "The display value has not been prepared. Please use the prepare_display_value() method before calling get_displayed_value()."
221
  msgstr ""
222
 
@@ -284,7 +284,7 @@ msgid "HTML"
284
  msgstr ""
285
 
286
  #: classes/models/FrmField.php:54
287
- msgid "Hidden Field"
288
  msgstr ""
289
 
290
  #: classes/models/FrmField.php:58
@@ -403,6 +403,93 @@ msgstr ""
403
  msgid "Total"
404
  msgstr ""
405
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
  #. translators: %s: User name, %2$d: number of entries
407
  #: classes/models/FrmReviews.php:105
408
  msgid "Congratulations%1$s! You have collected %2$d form submissions."
@@ -442,7 +529,7 @@ msgid "Your entry appears to be spam!"
442
  msgstr ""
443
 
444
  #: classes/models/FrmEntryValidate.php:236
445
- msgid "Your entry appears to be blacklist spam!"
446
  msgstr ""
447
 
448
  #: classes/models/FrmSettings.php:100
@@ -505,7 +592,7 @@ msgstr ""
505
  #: classes/models/fields/FrmFieldType.php:580
506
  #: classes/helpers/FrmFieldsHelper.php:167
507
  #: classes/helpers/FrmFieldsHelper.php:296
508
- #: classes/helpers/FrmXMLHelper.php:1118
509
  msgid "%s is invalid"
510
  msgstr ""
511
 
@@ -553,23 +640,23 @@ msgstr ""
553
  msgid "There are no options for this action."
554
  msgstr ""
555
 
556
- #: classes/models/FrmFormAction.php:818
557
  msgid "Draft is saved"
558
  msgstr ""
559
 
560
- #: classes/models/FrmFormAction.php:819
561
  msgid "Entry is created"
562
  msgstr ""
563
 
564
- #: classes/models/FrmFormAction.php:820
565
  msgid "Entry is updated"
566
  msgstr ""
567
 
568
- #: classes/models/FrmFormAction.php:821
569
  msgid "Entry is deleted"
570
  msgstr ""
571
 
572
- #: classes/models/FrmFormAction.php:822
573
  msgid "Entry is imported"
574
  msgstr ""
575
 
@@ -593,7 +680,7 @@ msgstr ""
593
  #. translators: %1$s - field type
594
  #. translators: %1$s: Number of items
595
  #: classes/models/FrmFormMigrator.php:581
596
- #: classes/helpers/FrmXMLHelper.php:1000
597
  msgid "%1$s Field"
598
  msgid_plural "%1$s Fields"
599
  msgstr[0] ""
@@ -635,31 +722,35 @@ msgstr ""
635
  msgid "There are no plugins on your site that require a license"
636
  msgstr ""
637
 
638
- #: classes/controllers/FrmAddonsController.php:511
639
  msgid "Installed"
640
  msgstr ""
641
 
642
- #: classes/controllers/FrmAddonsController.php:516
643
- #: classes/helpers/FrmAppHelper.php:2366
644
  msgid "Active"
645
  msgstr ""
646
 
647
- #: classes/controllers/FrmAddonsController.php:521
648
  msgid "Not Installed"
649
  msgstr ""
650
 
651
- #: classes/controllers/FrmAddonsController.php:779
652
  msgid "Your plugin has been installed. Please reload the page to see more options."
653
  msgstr ""
654
 
655
- #: classes/controllers/FrmAddonsController.php:806
656
  msgid "Sorry, you're site requires FTP authentication. Please install plugins manaully."
657
  msgstr ""
658
 
659
- #: classes/controllers/FrmAddonsController.php:849
660
  msgid "Your plugin has been activated. Please reload the page to see more options."
661
  msgstr ""
662
 
 
 
 
 
663
  #: classes/controllers/FrmAppController.php:146
664
  msgid "Build"
665
  msgstr ""
@@ -672,7 +763,7 @@ msgid "Settings"
672
  msgstr ""
673
 
674
  #: classes/controllers/FrmAppController.php:160
675
- #: classes/controllers/FrmXMLController.php:133
676
  #: classes/controllers/FrmFormsController.php:729
677
  #: classes/controllers/FrmEntriesController.php:8
678
  #: classes/controllers/FrmEntriesController.php:92
@@ -699,15 +790,15 @@ msgstr ""
699
  msgid "Import/Export"
700
  msgstr ""
701
 
702
- #: classes/controllers/FrmXMLController.php:48
703
  msgid "There was an error reading the form template"
704
  msgstr ""
705
 
706
- #: classes/controllers/FrmXMLController.php:68
707
  msgid "There was an error importing form"
708
  msgstr ""
709
 
710
- #: classes/controllers/FrmXMLController.php:132
711
  #: classes/controllers/FrmStylesController.php:48
712
  #: classes/controllers/FrmFormsController.php:6
713
  #: classes/controllers/FrmFormsController.php:739
@@ -715,23 +806,23 @@ msgstr ""
715
  msgid "Forms"
716
  msgstr ""
717
 
718
- #: classes/controllers/FrmXMLController.php:168
719
  msgid "Oops, you didn't select a file."
720
  msgstr ""
721
 
722
- #: classes/controllers/FrmXMLController.php:179
723
  msgid "The file does not exist, please try again."
724
  msgstr ""
725
 
726
- #: classes/controllers/FrmXMLController.php:208
727
  msgid "XML import is not enabled on your server with the libxml_disable_entity_loader function."
728
  msgstr ""
729
 
730
- #: classes/controllers/FrmXMLController.php:416
731
  msgid "Please select a form"
732
  msgstr ""
733
 
734
- #: classes/controllers/FrmXMLController.php:473
735
  msgid "There are no entries for that form."
736
  msgstr ""
737
 
@@ -774,7 +865,6 @@ msgid "Inbox settings"
774
  msgstr ""
775
 
776
  #: classes/controllers/FrmSettingsController.php:92
777
- #: classes/views/addons/settings.php:2
778
  msgid "Plugin Licenses"
779
  msgstr ""
780
 
@@ -929,11 +1019,11 @@ msgid "Install WP Mail SMTP"
929
  msgstr ""
930
 
931
  #: classes/controllers/FrmSMTPController.php:302
932
- #: classes/views/addons/list.php:74
933
- #: classes/views/addons/list.php:75
934
  #: classes/views/shared/upgrade_overlay.php:27
935
  #: classes/helpers/FrmFormMigratorsHelper.php:131
936
- #: classes/helpers/FrmAppHelper.php:2365
937
  msgid "Install"
938
  msgstr ""
939
 
@@ -946,8 +1036,8 @@ msgid "Activate WP Mail SMTP"
946
  msgstr ""
947
 
948
  #: classes/controllers/FrmSMTPController.php:319
949
- #: classes/views/addons/settings.php:28
950
- #: classes/views/addons/list.php:71
951
  msgid "Activate"
952
  msgstr ""
953
 
@@ -1510,7 +1600,7 @@ msgstr ""
1510
  #: classes/views/frm-forms/new-form-overlay.php:31
1511
  #: classes/views/shared/confirm-overlay.php:14
1512
  #: classes/views/shared/admin-header.php:42
1513
- #: classes/helpers/FrmAppHelper.php:2326
1514
  msgid "Cancel"
1515
  msgstr ""
1516
 
@@ -1522,7 +1612,7 @@ msgstr ""
1522
  #: classes/views/shared/mb_adv_info.php:35
1523
  #: classes/views/shared/mb_adv_info.php:178
1524
  #: classes/views/frm-entries/list.php:42
1525
- #: classes/helpers/FrmAppHelper.php:906
1526
  msgid "Search"
1527
  msgstr ""
1528
 
@@ -1578,7 +1668,7 @@ msgid "Category:"
1578
  msgstr ""
1579
 
1580
  #: classes/views/frm-forms/list-templates.php:171
1581
- #: classes/views/addons/list.php:16
1582
  msgid "Check now for a recent upgrade or renewal"
1583
  msgstr ""
1584
 
@@ -1708,7 +1798,7 @@ msgid "Show Page Content"
1708
  msgstr ""
1709
 
1710
  #: classes/views/frm-forms/settings-advanced.php:93
1711
- #: classes/helpers/FrmAppHelper.php:1031
1712
  msgid "Select a Page"
1713
  msgstr ""
1714
 
@@ -1975,11 +2065,11 @@ msgstr ""
1975
  msgid "Send Email"
1976
  msgstr ""
1977
 
1978
- #: classes/views/addons/settings.php:20
1979
  msgid "Good to go!"
1980
  msgstr ""
1981
 
1982
- #: classes/views/addons/settings.php:22
1983
  msgid "Deactivate"
1984
  msgstr ""
1985
 
@@ -1992,34 +2082,39 @@ msgstr ""
1992
  msgid "Formidable Add-Ons"
1993
  msgstr ""
1994
 
1995
- #: classes/views/addons/list.php:14
1996
- msgid "Missing add-ons?"
1997
  msgstr ""
1998
 
1999
- #: classes/views/addons/list.php:24
2000
- msgid "Search Add-ons"
2001
  msgstr ""
2002
 
2003
- #: classes/views/addons/list.php:47
2004
- #: classes/views/addons/list.php:48
2005
  msgid "View Docs"
2006
  msgstr ""
2007
 
2008
  #. translators: %s: Status name
2009
- #: classes/views/addons/list.php:64
2010
  msgid "Status: %s"
2011
  msgstr ""
2012
 
2013
- #: classes/views/addons/list.php:78
2014
- #: classes/views/addons/list.php:82
2015
- #: classes/views/addons/list.php:83
2016
  msgid "Upgrade Now"
2017
  msgstr ""
2018
 
2019
- #: classes/views/addons/list.php:79
2020
  msgid "Renew Now"
2021
  msgstr ""
2022
 
 
 
 
 
 
2023
  #: classes/views/shared/errors.php:33
2024
  msgid "Warning:"
2025
  msgstr ""
@@ -2034,7 +2129,7 @@ msgstr ""
2034
 
2035
  #: classes/views/shared/confirm-overlay.php:10
2036
  #: classes/views/shared/info-overlay.php:10
2037
- #: classes/helpers/FrmAppHelper.php:2333
2038
  msgid "Are you sure?"
2039
  msgstr ""
2040
 
@@ -2136,7 +2231,7 @@ msgstr ""
2136
 
2137
  #: classes/views/shared/mb_adv_info.php:90
2138
  #: classes/helpers/FrmCSVExportHelper.php:154
2139
- #: classes/helpers/FrmAppHelper.php:2305
2140
  msgid "ID"
2141
  msgstr ""
2142
 
@@ -2146,7 +2241,7 @@ msgstr ""
2146
 
2147
  #: classes/views/shared/mb_adv_info.php:108
2148
  #: classes/views/shared/mb_adv_info.php:122
2149
- #: classes/helpers/FrmAppHelper.php:2367
2150
  msgid "Select a Field"
2151
  msgstr ""
2152
 
@@ -2757,7 +2852,7 @@ msgid "Label Position"
2757
  msgstr ""
2758
 
2759
  #: classes/views/frm-fields/back-end/settings.php:265
2760
- #: classes/helpers/FrmAppHelper.php:2327
2761
  msgid "Default"
2762
  msgstr ""
2763
 
@@ -2965,10 +3060,6 @@ msgstr ""
2965
  msgid "Get Formidable Forms Pro Today and Unlock all the Powerful Features »"
2966
  msgstr ""
2967
 
2968
- #: classes/views/frm-settings/license_box.php:4
2969
- msgid "Connect an Account"
2970
- msgstr ""
2971
-
2972
  #: classes/views/frm-settings/license_box.php:8
2973
  msgid "Get Formidable Now"
2974
  msgstr ""
@@ -3472,7 +3563,7 @@ msgid "See all forms."
3472
  msgstr ""
3473
 
3474
  #: classes/helpers/FrmFormsListHelper.php:114
3475
- #: classes/helpers/FrmAppHelper.php:891
3476
  msgid "Add New"
3477
  msgstr ""
3478
 
@@ -3524,7 +3615,7 @@ msgid "Draft"
3524
  msgstr ""
3525
 
3526
  #: classes/helpers/FrmFieldsHelper.php:286
3527
- #: classes/helpers/FrmAppHelper.php:2338
3528
  msgid "The entered values do not match"
3529
  msgstr ""
3530
 
@@ -3535,7 +3626,7 @@ msgstr ""
3535
 
3536
  #: classes/helpers/FrmFieldsHelper.php:456
3537
  #: classes/helpers/FrmFieldsHelper.php:457
3538
- #: classes/helpers/FrmAppHelper.php:2342
3539
  msgid "New Option"
3540
  msgstr ""
3541
 
@@ -4735,7 +4826,7 @@ msgid "Excerpt View"
4735
  msgstr ""
4736
 
4737
  #: classes/helpers/FrmListHelper.php:257
4738
- #: classes/helpers/FrmAppHelper.php:2368
4739
  msgid "No items found."
4740
  msgstr ""
4741
 
@@ -5002,22 +5093,22 @@ msgstr ""
5002
  msgid "License plan required:"
5003
  msgstr ""
5004
 
5005
- #: classes/helpers/FrmFormsHelper.php:1452
5006
  msgid "Is this intentional?"
5007
  msgstr ""
5008
 
5009
- #: classes/helpers/FrmFormsHelper.php:1453
5010
- #: classes/helpers/FrmAppHelper.php:2362
5011
  msgid "See the list of reserved words in WordPress."
5012
  msgstr ""
5013
 
5014
  #. translators: %s: the name of a single parameter in the redirect URL
5015
- #: classes/helpers/FrmFormsHelper.php:1462
5016
  msgid "The redirect URL is using the parameter \"%s\", which is reserved by WordPress. "
5017
  msgstr ""
5018
 
5019
  #. translators: %s: the names of two or more parameters in the redirect URL, separated by commas
5020
- #: classes/helpers/FrmFormsHelper.php:1468
5021
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
5022
  msgstr ""
5023
 
@@ -5057,555 +5148,555 @@ msgstr ""
5057
  msgid "Parent ID"
5058
  msgstr ""
5059
 
5060
- #: classes/helpers/FrmAppHelper.php:1161
5061
  msgid "View Forms"
5062
  msgstr ""
5063
 
5064
- #: classes/helpers/FrmAppHelper.php:1162
5065
  msgid "Add and Edit Forms"
5066
  msgstr ""
5067
 
5068
- #: classes/helpers/FrmAppHelper.php:1163
5069
  msgid "Delete Forms"
5070
  msgstr ""
5071
 
5072
- #: classes/helpers/FrmAppHelper.php:1164
5073
  msgid "Access this Settings Page"
5074
  msgstr ""
5075
 
5076
- #: classes/helpers/FrmAppHelper.php:1165
5077
  msgid "View Entries from Admin Area"
5078
  msgstr ""
5079
 
5080
- #: classes/helpers/FrmAppHelper.php:1166
5081
  msgid "Delete Entries from Admin Area"
5082
  msgstr ""
5083
 
5084
- #: classes/helpers/FrmAppHelper.php:1173
5085
  msgid "Add Entries from Admin Area"
5086
  msgstr ""
5087
 
5088
- #: classes/helpers/FrmAppHelper.php:1174
5089
  msgid "Edit Entries from Admin Area"
5090
  msgstr ""
5091
 
5092
- #: classes/helpers/FrmAppHelper.php:1175
5093
  msgid "View Reports"
5094
  msgstr ""
5095
 
5096
- #: classes/helpers/FrmAppHelper.php:1176
5097
  msgid "Add/Edit Views"
5098
  msgstr ""
5099
 
5100
- #: classes/helpers/FrmAppHelper.php:1798
5101
  msgid "at"
5102
  msgstr ""
5103
 
5104
- #: classes/helpers/FrmAppHelper.php:1942
5105
  msgid "year"
5106
  msgstr ""
5107
 
5108
- #: classes/helpers/FrmAppHelper.php:1943
5109
  msgid "years"
5110
  msgstr ""
5111
 
5112
- #: classes/helpers/FrmAppHelper.php:1947
5113
  msgid "month"
5114
  msgstr ""
5115
 
5116
- #: classes/helpers/FrmAppHelper.php:1948
5117
  msgid "months"
5118
  msgstr ""
5119
 
5120
- #: classes/helpers/FrmAppHelper.php:1952
5121
  msgid "week"
5122
  msgstr ""
5123
 
5124
- #: classes/helpers/FrmAppHelper.php:1953
5125
  msgid "weeks"
5126
  msgstr ""
5127
 
5128
- #: classes/helpers/FrmAppHelper.php:1957
5129
  msgid "day"
5130
  msgstr ""
5131
 
5132
- #: classes/helpers/FrmAppHelper.php:1958
5133
  msgid "days"
5134
  msgstr ""
5135
 
5136
- #: classes/helpers/FrmAppHelper.php:1962
5137
  msgid "hour"
5138
  msgstr ""
5139
 
5140
- #: classes/helpers/FrmAppHelper.php:1963
5141
  msgid "hours"
5142
  msgstr ""
5143
 
5144
- #: classes/helpers/FrmAppHelper.php:1967
5145
  msgid "minute"
5146
  msgstr ""
5147
 
5148
- #: classes/helpers/FrmAppHelper.php:1968
5149
  msgid "minutes"
5150
  msgstr ""
5151
 
5152
- #: classes/helpers/FrmAppHelper.php:1972
5153
  msgid "second"
5154
  msgstr ""
5155
 
5156
- #: classes/helpers/FrmAppHelper.php:1973
5157
  msgid "seconds"
5158
  msgstr ""
5159
 
5160
- #: classes/helpers/FrmAppHelper.php:2067
5161
  msgid "Give this action a label for easy reference."
5162
  msgstr ""
5163
 
5164
- #: classes/helpers/FrmAppHelper.php:2068
5165
  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."
5166
  msgstr ""
5167
 
5168
- #: classes/helpers/FrmAppHelper.php:2069
5169
  msgid "Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
5170
  msgstr ""
5171
 
5172
- #: classes/helpers/FrmAppHelper.php:2070
5173
  msgid "Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
5174
  msgstr ""
5175
 
5176
- #: classes/helpers/FrmAppHelper.php:2071
5177
  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."
5178
  msgstr ""
5179
 
5180
- #: classes/helpers/FrmAppHelper.php:2072
5181
  msgid "Enter the name and/or email address of the sender. FORMAT: John Bates <john@example.com> or john@example.com."
5182
  msgstr ""
5183
 
5184
  #. translators: %1$s: Form name, %2$s: Date
5185
- #: classes/helpers/FrmAppHelper.php:2074
5186
  msgid "If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s"
5187
  msgstr ""
5188
 
5189
- #: classes/helpers/FrmAppHelper.php:2268
5190
- #: classes/helpers/FrmAppHelper.php:2347
5191
  msgid "Please wait while your site updates."
5192
  msgstr ""
5193
 
5194
- #: classes/helpers/FrmAppHelper.php:2269
5195
  msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
5196
  msgstr ""
5197
 
5198
- #: classes/helpers/FrmAppHelper.php:2272
5199
- #: classes/helpers/FrmAppHelper.php:2301
5200
  msgid "Loading&hellip;"
5201
  msgstr ""
5202
 
5203
- #: classes/helpers/FrmAppHelper.php:2302
5204
  msgid "Remove"
5205
  msgstr ""
5206
 
5207
- #: classes/helpers/FrmAppHelper.php:2306
5208
  msgid "No results match"
5209
  msgstr ""
5210
 
5211
- #: classes/helpers/FrmAppHelper.php:2307
5212
  msgid "That file looks like Spam."
5213
  msgstr ""
5214
 
5215
- #: classes/helpers/FrmAppHelper.php:2308
5216
  msgid "There is an error in the calculation in the field with key"
5217
  msgstr ""
5218
 
5219
- #: classes/helpers/FrmAppHelper.php:2309
5220
  msgid "Please complete the preceding required fields before uploading a file."
5221
  msgstr ""
5222
 
5223
- #: classes/helpers/FrmAppHelper.php:2320
5224
  msgid "(Click to add description)"
5225
  msgstr ""
5226
 
5227
- #: classes/helpers/FrmAppHelper.php:2321
5228
  msgid "(Blank)"
5229
  msgstr ""
5230
 
5231
- #: classes/helpers/FrmAppHelper.php:2322
5232
  msgid "(no label)"
5233
  msgstr ""
5234
 
5235
- #: classes/helpers/FrmAppHelper.php:2323
5236
  msgid "Saving"
5237
  msgstr ""
5238
 
5239
- #: classes/helpers/FrmAppHelper.php:2324
5240
  msgid "Saved"
5241
  msgstr ""
5242
 
5243
- #: classes/helpers/FrmAppHelper.php:2325
5244
  msgid "OK"
5245
  msgstr ""
5246
 
5247
- #: classes/helpers/FrmAppHelper.php:2328
5248
  msgid "Clear default value when typing"
5249
  msgstr ""
5250
 
5251
- #: classes/helpers/FrmAppHelper.php:2329
5252
  msgid "Do not clear default value when typing"
5253
  msgstr ""
5254
 
5255
- #: classes/helpers/FrmAppHelper.php:2330
5256
  msgid "Default value will pass form validation"
5257
  msgstr ""
5258
 
5259
- #: classes/helpers/FrmAppHelper.php:2331
5260
  msgid "Default value will NOT pass form validation"
5261
  msgstr ""
5262
 
5263
- #: classes/helpers/FrmAppHelper.php:2332
5264
  msgid "Heads up"
5265
  msgstr ""
5266
 
5267
- #: classes/helpers/FrmAppHelper.php:2334
5268
  msgid "Are you sure you want to delete this field and all data associated with it?"
5269
  msgstr ""
5270
 
5271
- #: classes/helpers/FrmAppHelper.php:2335
5272
  msgid "All fields inside this Section will be deleted along with their data. Are you sure you want to delete this group of fields?"
5273
  msgstr ""
5274
 
5275
- #: classes/helpers/FrmAppHelper.php:2336
5276
  msgid "Warning: If you have entries with multiple rows, all but the first row will be lost."
5277
  msgstr ""
5278
 
5279
- #: classes/helpers/FrmAppHelper.php:2339
5280
  msgid "Enter Email"
5281
  msgstr ""
5282
 
5283
- #: classes/helpers/FrmAppHelper.php:2340
5284
  msgid "Confirm Email"
5285
  msgstr ""
5286
 
5287
- #: classes/helpers/FrmAppHelper.php:2341
5288
  msgid "Conditional content here"
5289
  msgstr ""
5290
 
5291
- #: classes/helpers/FrmAppHelper.php:2343
5292
  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."
5293
  msgstr ""
5294
 
5295
- #: classes/helpers/FrmAppHelper.php:2344
5296
  msgid "Enter Password"
5297
  msgstr ""
5298
 
5299
- #: classes/helpers/FrmAppHelper.php:2345
5300
  msgid "Confirm Password"
5301
  msgstr ""
5302
 
5303
- #: classes/helpers/FrmAppHelper.php:2346
5304
  msgid "Import Complete"
5305
  msgstr ""
5306
 
5307
- #: classes/helpers/FrmAppHelper.php:2348
5308
  msgid "Warning: There is no way to retrieve unsaved entries."
5309
  msgstr ""
5310
 
5311
- #: classes/helpers/FrmAppHelper.php:2349
5312
  msgid "Private"
5313
  msgstr ""
5314
 
5315
- #: classes/helpers/FrmAppHelper.php:2352
5316
  msgid "No new licenses were found"
5317
  msgstr ""
5318
 
5319
- #: classes/helpers/FrmAppHelper.php:2353
5320
  msgid "This calculation has at least one unmatched ( ) { } [ ]."
5321
  msgstr ""
5322
 
5323
- #: classes/helpers/FrmAppHelper.php:2354
5324
  msgid "This calculation may have shortcodes that work in Views but not forms."
5325
  msgstr ""
5326
 
5327
- #: classes/helpers/FrmAppHelper.php:2355
5328
  msgid "This calculation may have shortcodes that work in text calculations but not numeric calculations."
5329
  msgstr ""
5330
 
5331
- #: classes/helpers/FrmAppHelper.php:2356
5332
  msgid "This form action is limited to one per form. Please edit the existing form action."
5333
  msgstr ""
5334
 
5335
  #. Translators: %s is the name of a Detail Page Slug that is a reserved word.
5336
- #: classes/helpers/FrmAppHelper.php:2359
5337
  msgid "The Detail Page Slug \"%s\" is reserved by WordPress. This may cause problems. Is this intentional?"
5338
  msgstr ""
5339
 
5340
  #. 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.
5341
- #: classes/helpers/FrmAppHelper.php:2361
5342
  msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems when included in the URL. Is this intentional? "
5343
  msgstr ""
5344
 
5345
- #: classes/helpers/FrmAppHelper.php:2363
5346
  msgid "Please enter a Repeat Limit that is greater than 1."
5347
  msgstr ""
5348
 
5349
- #: classes/helpers/FrmAppHelper.php:2364
5350
  msgid "Please select a limit between 0 and 200."
5351
  msgstr ""
5352
 
5353
- #: classes/helpers/FrmAppHelper.php:2396
5354
  msgid "You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable."
5355
  msgstr ""
5356
 
5357
- #: classes/helpers/FrmAppHelper.php:2423
5358
  msgid "You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro."
5359
  msgstr ""
5360
 
5361
- #: classes/helpers/FrmAppHelper.php:2451
5362
  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+."
5363
  msgstr ""
5364
 
5365
- #: classes/helpers/FrmAppHelper.php:2457
5366
  msgid "You are using an outdated browser that is not compatible with Formidable Forms. Please update to a more current browser (we recommend Chrome)."
5367
  msgstr ""
5368
 
5369
- #: classes/helpers/FrmAppHelper.php:2471
5370
  msgid "English"
5371
  msgstr ""
5372
 
5373
- #: classes/helpers/FrmAppHelper.php:2472
5374
  msgid "Afrikaans"
5375
  msgstr ""
5376
 
5377
- #: classes/helpers/FrmAppHelper.php:2473
5378
  msgid "Albanian"
5379
  msgstr ""
5380
 
5381
- #: classes/helpers/FrmAppHelper.php:2474
5382
  msgid "Arabic"
5383
  msgstr ""
5384
 
5385
- #: classes/helpers/FrmAppHelper.php:2475
5386
  msgid "Armenian"
5387
  msgstr ""
5388
 
5389
- #: classes/helpers/FrmAppHelper.php:2476
5390
  msgid "Azerbaijani"
5391
  msgstr ""
5392
 
5393
- #: classes/helpers/FrmAppHelper.php:2477
5394
  msgid "Basque"
5395
  msgstr ""
5396
 
5397
- #: classes/helpers/FrmAppHelper.php:2478
5398
  msgid "Bosnian"
5399
  msgstr ""
5400
 
5401
- #: classes/helpers/FrmAppHelper.php:2479
5402
  msgid "Bulgarian"
5403
  msgstr ""
5404
 
5405
- #: classes/helpers/FrmAppHelper.php:2480
5406
  msgid "Catalan"
5407
  msgstr ""
5408
 
5409
- #: classes/helpers/FrmAppHelper.php:2481
5410
  msgid "Chinese Hong Kong"
5411
  msgstr ""
5412
 
5413
- #: classes/helpers/FrmAppHelper.php:2482
5414
  msgid "Chinese Simplified"
5415
  msgstr ""
5416
 
5417
- #: classes/helpers/FrmAppHelper.php:2483
5418
  msgid "Chinese Traditional"
5419
  msgstr ""
5420
 
5421
- #: classes/helpers/FrmAppHelper.php:2484
5422
  msgid "Croatian"
5423
  msgstr ""
5424
 
5425
- #: classes/helpers/FrmAppHelper.php:2485
5426
  msgid "Czech"
5427
  msgstr ""
5428
 
5429
- #: classes/helpers/FrmAppHelper.php:2486
5430
  msgid "Danish"
5431
  msgstr ""
5432
 
5433
- #: classes/helpers/FrmAppHelper.php:2487
5434
  msgid "Dutch"
5435
  msgstr ""
5436
 
5437
- #: classes/helpers/FrmAppHelper.php:2488
5438
  msgid "English/UK"
5439
  msgstr ""
5440
 
5441
- #: classes/helpers/FrmAppHelper.php:2489
5442
  msgid "Esperanto"
5443
  msgstr ""
5444
 
5445
- #: classes/helpers/FrmAppHelper.php:2490
5446
  msgid "Estonian"
5447
  msgstr ""
5448
 
5449
- #: classes/helpers/FrmAppHelper.php:2491
5450
  msgid "Faroese"
5451
  msgstr ""
5452
 
5453
- #: classes/helpers/FrmAppHelper.php:2492
5454
  msgid "Farsi/Persian"
5455
  msgstr ""
5456
 
5457
- #: classes/helpers/FrmAppHelper.php:2493
5458
  msgid "Filipino"
5459
  msgstr ""
5460
 
5461
- #: classes/helpers/FrmAppHelper.php:2494
5462
  msgid "Finnish"
5463
  msgstr ""
5464
 
5465
- #: classes/helpers/FrmAppHelper.php:2495
5466
  msgid "French"
5467
  msgstr ""
5468
 
5469
- #: classes/helpers/FrmAppHelper.php:2496
5470
  msgid "French/Canadian"
5471
  msgstr ""
5472
 
5473
- #: classes/helpers/FrmAppHelper.php:2497
5474
  msgid "French/Swiss"
5475
  msgstr ""
5476
 
5477
- #: classes/helpers/FrmAppHelper.php:2498
5478
  msgid "German"
5479
  msgstr ""
5480
 
5481
- #: classes/helpers/FrmAppHelper.php:2499
5482
  msgid "German/Austria"
5483
  msgstr ""
5484
 
5485
- #: classes/helpers/FrmAppHelper.php:2500
5486
  msgid "German/Switzerland"
5487
  msgstr ""
5488
 
5489
- #: classes/helpers/FrmAppHelper.php:2501
5490
  msgid "Greek"
5491
  msgstr ""
5492
 
5493
- #: classes/helpers/FrmAppHelper.php:2502
5494
- #: classes/helpers/FrmAppHelper.php:2503
5495
  msgid "Hebrew"
5496
  msgstr ""
5497
 
5498
- #: classes/helpers/FrmAppHelper.php:2504
5499
  msgid "Hindi"
5500
  msgstr ""
5501
 
5502
- #: classes/helpers/FrmAppHelper.php:2505
5503
  msgid "Hungarian"
5504
  msgstr ""
5505
 
5506
- #: classes/helpers/FrmAppHelper.php:2506
5507
  msgid "Icelandic"
5508
  msgstr ""
5509
 
5510
- #: classes/helpers/FrmAppHelper.php:2507
5511
  msgid "Indonesian"
5512
  msgstr ""
5513
 
5514
- #: classes/helpers/FrmAppHelper.php:2508
5515
  msgid "Italian"
5516
  msgstr ""
5517
 
5518
- #: classes/helpers/FrmAppHelper.php:2509
5519
  msgid "Japanese"
5520
  msgstr ""
5521
 
5522
- #: classes/helpers/FrmAppHelper.php:2510
5523
  msgid "Korean"
5524
  msgstr ""
5525
 
5526
- #: classes/helpers/FrmAppHelper.php:2511
5527
  msgid "Latvian"
5528
  msgstr ""
5529
 
5530
- #: classes/helpers/FrmAppHelper.php:2512
5531
  msgid "Lithuanian"
5532
  msgstr ""
5533
 
5534
- #: classes/helpers/FrmAppHelper.php:2513
5535
  msgid "Malaysian"
5536
  msgstr ""
5537
 
5538
- #: classes/helpers/FrmAppHelper.php:2514
5539
  msgid "Norwegian"
5540
  msgstr ""
5541
 
5542
- #: classes/helpers/FrmAppHelper.php:2515
5543
  msgid "Polish"
5544
  msgstr ""
5545
 
5546
- #: classes/helpers/FrmAppHelper.php:2516
5547
  msgid "Portuguese"
5548
  msgstr ""
5549
 
5550
- #: classes/helpers/FrmAppHelper.php:2517
5551
  msgid "Portuguese/Brazilian"
5552
  msgstr ""
5553
 
5554
- #: classes/helpers/FrmAppHelper.php:2518
5555
  msgid "Portuguese/Portugal"
5556
  msgstr ""
5557
 
5558
- #: classes/helpers/FrmAppHelper.php:2519
5559
  msgid "Romanian"
5560
  msgstr ""
5561
 
5562
- #: classes/helpers/FrmAppHelper.php:2520
5563
  msgid "Russian"
5564
  msgstr ""
5565
 
5566
- #: classes/helpers/FrmAppHelper.php:2521
5567
- #: classes/helpers/FrmAppHelper.php:2522
5568
  msgid "Serbian"
5569
  msgstr ""
5570
 
5571
- #: classes/helpers/FrmAppHelper.php:2523
5572
  msgid "Slovak"
5573
  msgstr ""
5574
 
5575
- #: classes/helpers/FrmAppHelper.php:2524
5576
  msgid "Slovenian"
5577
  msgstr ""
5578
 
5579
- #: classes/helpers/FrmAppHelper.php:2525
5580
  msgid "Spanish"
5581
  msgstr ""
5582
 
5583
- #: classes/helpers/FrmAppHelper.php:2526
5584
  msgid "Spanish/Latin America"
5585
  msgstr ""
5586
 
5587
- #: classes/helpers/FrmAppHelper.php:2527
5588
  msgid "Swedish"
5589
  msgstr ""
5590
 
5591
- #: classes/helpers/FrmAppHelper.php:2528
5592
  msgid "Tamil"
5593
  msgstr ""
5594
 
5595
- #: classes/helpers/FrmAppHelper.php:2529
5596
  msgid "Thai"
5597
  msgstr ""
5598
 
5599
- #: classes/helpers/FrmAppHelper.php:2530
5600
- #: classes/helpers/FrmAppHelper.php:2531
5601
  msgid "Turkish"
5602
  msgstr ""
5603
 
5604
- #: classes/helpers/FrmAppHelper.php:2532
5605
  msgid "Ukranian"
5606
  msgstr ""
5607
 
5608
- #: classes/helpers/FrmAppHelper.php:2533
5609
  msgid "Vietnamese"
5610
  msgstr ""
5611
 
@@ -5622,69 +5713,65 @@ msgstr ""
5622
  msgid "Your server is missing the simplexml_import_dom function"
5623
  msgstr ""
5624
 
5625
- #: classes/helpers/FrmXMLHelper.php:957
5626
- msgid "Imported"
5627
- msgstr ""
5628
-
5629
- #: classes/helpers/FrmXMLHelper.php:958
5630
  msgid "Updated"
5631
  msgstr ""
5632
 
5633
- #: classes/helpers/FrmXMLHelper.php:983
5634
  msgid "Nothing was imported or updated"
5635
  msgstr ""
5636
 
5637
  #. translators: %1$s: Number of items
5638
- #: classes/helpers/FrmXMLHelper.php:998
5639
  msgid "%1$s Form"
5640
  msgid_plural "%1$s Forms"
5641
  msgstr[0] ""
5642
 
5643
  #. translators: %1$s: Number of items
5644
- #: classes/helpers/FrmXMLHelper.php:1002
5645
  msgid "%1$s Entry"
5646
  msgid_plural "%1$s Entries"
5647
  msgstr[0] ""
5648
 
5649
  #. translators: %1$s: Number of items
5650
- #: classes/helpers/FrmXMLHelper.php:1004
5651
  msgid "%1$s View"
5652
  msgid_plural "%1$s Views"
5653
  msgstr[0] ""
5654
 
5655
  #. translators: %1$s: Number of items
5656
- #: classes/helpers/FrmXMLHelper.php:1006
5657
  msgid "%1$s Post"
5658
  msgid_plural "%1$s Posts"
5659
  msgstr[0] ""
5660
 
5661
  #. translators: %1$s: Number of items
5662
- #: classes/helpers/FrmXMLHelper.php:1008
5663
  msgid "%1$s Style"
5664
  msgid_plural "%1$s Styles"
5665
  msgstr[0] ""
5666
 
5667
  #. translators: %1$s: Number of items
5668
- #: classes/helpers/FrmXMLHelper.php:1010
5669
  msgid "%1$s Term"
5670
  msgid_plural "%1$s Terms"
5671
  msgstr[0] ""
5672
 
5673
  #. translators: %1$s: Number of items
5674
- #: classes/helpers/FrmXMLHelper.php:1012
5675
  msgid "%1$s Form Action"
5676
  msgid_plural "%1$s Form Actions"
5677
  msgstr[0] ""
5678
 
5679
- #: classes/helpers/FrmXMLHelper.php:1036
5680
  msgid "Go to imported form"
5681
  msgstr ""
5682
 
5683
- #: classes/helpers/FrmXMLHelper.php:1241
5684
  msgid "Create Posts"
5685
  msgstr ""
5686
 
5687
- #: classes/helpers/FrmXMLHelper.php:1368
5688
  msgid "Email Notification"
5689
  msgstr ""
5690
 
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Formidable Forms 4.06.02\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2020-07-30T17:56:00+02:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.1.0\n"
15
  "X-Domain: formidable\n"
128
  msgstr ""
129
 
130
  #. translators: %1$s: Plugin name, %2$s: Start link HTML, %3$s: end link HTML
131
+ #: classes/models/FrmAddon.php:276
132
  msgid "Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s."
133
  msgstr ""
134
 
135
+ #: classes/models/FrmAddon.php:471
136
  msgid "Oops! You forgot to enter your license number."
137
  msgstr ""
138
 
139
+ #: classes/models/FrmAddon.php:547
140
  msgid "Your license has been activated. Enjoy!"
141
  msgstr ""
142
 
143
+ #: classes/models/FrmAddon.php:548
144
+ #: classes/models/FrmAddon.php:553
145
  msgid "That license key is invalid"
146
  msgstr ""
147
 
148
+ #: classes/models/FrmAddon.php:549
149
  msgid "That license is expired"
150
  msgstr ""
151
 
152
+ #: classes/models/FrmAddon.php:550
153
  msgid "That license has been refunded"
154
  msgstr ""
155
 
156
+ #: classes/models/FrmAddon.php:551
157
  msgid "That license has been used on too many sites"
158
  msgstr ""
159
 
160
+ #: classes/models/FrmAddon.php:552
161
  msgid "Oops! That is the wrong license key for this plugin."
162
  msgstr ""
163
 
164
+ #: classes/models/FrmAddon.php:569
165
  msgid "Cache cleared"
166
  msgstr ""
167
 
168
+ #: classes/models/FrmAddon.php:591
169
  msgid "That license was removed successfully"
170
  msgstr ""
171
 
172
+ #: classes/models/FrmAddon.php:593
173
  msgid "There was an error deactivating your license."
174
  msgstr ""
175
 
176
+ #: classes/models/FrmAddon.php:637
177
  msgid "Your License Key was invalid"
178
  msgstr ""
179
 
180
  #. translators: %1$s: Start link HTML, %2$s: End link HTML
181
+ #: classes/models/FrmAddon.php:641
182
  msgid "You had an error communicating with the Formidable API. %1$sClick here%2$s for more information."
183
  msgstr ""
184
 
185
+ #: classes/models/FrmAddon.php:644
186
  msgid "You had an HTTP error connecting to the Formidable API"
187
  msgstr ""
188
 
189
  #. translators: %1$s: Error code, %2$s: Error message
190
+ #: classes/models/FrmAddon.php:655
191
  msgid "There was a %1$s error: %2$s"
192
  msgstr ""
193
 
216
  msgid "IP Address"
217
  msgstr ""
218
 
219
+ #: classes/models/FrmFieldValue.php:169
220
  msgid "The display value has not been prepared. Please use the prepare_display_value() method before calling get_displayed_value()."
221
  msgstr ""
222
 
284
  msgstr ""
285
 
286
  #: classes/models/FrmField.php:54
287
+ msgid "Hidden"
288
  msgstr ""
289
 
290
  #: classes/models/FrmField.php:58
403
  msgid "Total"
404
  msgstr ""
405
 
406
+ #: classes/models/FrmSolution.php:70
407
+ msgid "Setup"
408
+ msgstr ""
409
+
410
+ #: classes/models/FrmSolution.php:113
411
+ msgid "Welcome to Formidable Forms"
412
+ msgstr ""
413
+
414
+ #: classes/models/FrmSolution.php:117
415
+ msgid "Follow the steps below to get started."
416
+ msgstr ""
417
+
418
+ #: classes/models/FrmSolution.php:198
419
+ msgid "The following form(s) have been created."
420
+ msgstr ""
421
+
422
+ #: classes/models/FrmSolution.php:281
423
+ msgid "Connect to FormidableForms.com"
424
+ msgstr ""
425
+
426
+ #: classes/models/FrmSolution.php:282
427
+ msgid "Create a connection to get plugin downloads."
428
+ msgstr ""
429
+
430
+ #: classes/models/FrmSolution.php:283
431
+ #: classes/views/frm-settings/license_box.php:4
432
+ msgid "Connect an Account"
433
+ msgstr ""
434
+
435
+ #: classes/models/FrmSolution.php:289
436
+ msgid "Install and Activate Add-Ons"
437
+ msgstr ""
438
+
439
+ #: classes/models/FrmSolution.php:290
440
+ msgid "Install any required add-ons from FormidableForms.com."
441
+ msgstr ""
442
+
443
+ #: classes/models/FrmSolution.php:291
444
+ msgid "Install & Activate"
445
+ msgstr ""
446
+
447
+ #: classes/models/FrmSolution.php:297
448
+ msgid "Setup Forms, Views, and Pages"
449
+ msgstr ""
450
+
451
+ #: classes/models/FrmSolution.php:298
452
+ msgid "Build the forms, views, and pages automatically."
453
+ msgstr ""
454
+
455
+ #: classes/models/FrmSolution.php:299
456
+ msgid "Create Now"
457
+ msgstr ""
458
+
459
+ #: classes/models/FrmSolution.php:304
460
+ msgid "Customize Your New Pages"
461
+ msgstr ""
462
+
463
+ #: classes/models/FrmSolution.php:305
464
+ msgid "Make any required changes and publish the page."
465
+ msgstr ""
466
+
467
+ #: classes/models/FrmSolution.php:306
468
+ msgid "View Page"
469
+ msgstr ""
470
+
471
+ #. translators: %1$s: Plugin name
472
+ #: classes/models/FrmSolution.php:369
473
+ msgid "You need permission to download the Formidable %1$s plugin"
474
+ msgstr ""
475
+
476
+ #. translators: %1$s: Step number
477
+ #: classes/models/FrmSolution.php:394
478
+ msgid "Step %1$d"
479
+ msgstr ""
480
+
481
+ #: classes/models/FrmSolution.php:462
482
+ msgid "Select the form or view you would like to create."
483
+ msgstr ""
484
+
485
+ #: classes/models/FrmSolution.php:485
486
+ msgid "We didn't find anything to import. Please contact our team."
487
+ msgstr ""
488
+
489
+ #: classes/models/FrmSolution.php:487
490
+ msgid "Looks like you may not have a current subscription for this solution. Please check your account."
491
+ msgstr ""
492
+
493
  #. translators: %s: User name, %2$d: number of entries
494
  #: classes/models/FrmReviews.php:105
495
  msgid "Congratulations%1$s! You have collected %2$d form submissions."
529
  msgstr ""
530
 
531
  #: classes/models/FrmEntryValidate.php:236
532
+ msgid "Your entry appears to be blocked spam!"
533
  msgstr ""
534
 
535
  #: classes/models/FrmSettings.php:100
592
  #: classes/models/fields/FrmFieldType.php:580
593
  #: classes/helpers/FrmFieldsHelper.php:167
594
  #: classes/helpers/FrmFieldsHelper.php:296
595
+ #: classes/helpers/FrmXMLHelper.php:1131
596
  msgid "%s is invalid"
597
  msgstr ""
598
 
640
  msgid "There are no options for this action."
641
  msgstr ""
642
 
643
+ #: classes/models/FrmFormAction.php:825
644
  msgid "Draft is saved"
645
  msgstr ""
646
 
647
+ #: classes/models/FrmFormAction.php:826
648
  msgid "Entry is created"
649
  msgstr ""
650
 
651
+ #: classes/models/FrmFormAction.php:827
652
  msgid "Entry is updated"
653
  msgstr ""
654
 
655
+ #: classes/models/FrmFormAction.php:828
656
  msgid "Entry is deleted"
657
  msgstr ""
658
 
659
+ #: classes/models/FrmFormAction.php:829
660
  msgid "Entry is imported"
661
  msgstr ""
662
 
680
  #. translators: %1$s - field type
681
  #. translators: %1$s: Number of items
682
  #: classes/models/FrmFormMigrator.php:581
683
+ #: classes/helpers/FrmXMLHelper.php:1013
684
  msgid "%1$s Field"
685
  msgid_plural "%1$s Fields"
686
  msgstr[0] ""
722
  msgid "There are no plugins on your site that require a license"
723
  msgstr ""
724
 
725
+ #: classes/controllers/FrmAddonsController.php:515
726
  msgid "Installed"
727
  msgstr ""
728
 
729
+ #: classes/controllers/FrmAddonsController.php:520
730
+ #: classes/helpers/FrmAppHelper.php:2380
731
  msgid "Active"
732
  msgstr ""
733
 
734
+ #: classes/controllers/FrmAddonsController.php:525
735
  msgid "Not Installed"
736
  msgstr ""
737
 
738
+ #: classes/controllers/FrmAddonsController.php:783
739
  msgid "Your plugin has been installed. Please reload the page to see more options."
740
  msgstr ""
741
 
742
+ #: classes/controllers/FrmAddonsController.php:810
743
  msgid "Sorry, you're site requires FTP authentication. Please install plugins manaully."
744
  msgstr ""
745
 
746
+ #: classes/controllers/FrmAddonsController.php:853
747
  msgid "Your plugin has been activated. Please reload the page to see more options."
748
  msgstr ""
749
 
750
+ #: classes/controllers/FrmAddonsController.php:885
751
+ msgid "Your plugins have been installed and activated."
752
+ msgstr ""
753
+
754
  #: classes/controllers/FrmAppController.php:146
755
  msgid "Build"
756
  msgstr ""
763
  msgstr ""
764
 
765
  #: classes/controllers/FrmAppController.php:160
766
+ #: classes/controllers/FrmXMLController.php:256
767
  #: classes/controllers/FrmFormsController.php:729
768
  #: classes/controllers/FrmEntriesController.php:8
769
  #: classes/controllers/FrmEntriesController.php:92
790
  msgid "Import/Export"
791
  msgstr ""
792
 
793
+ #: classes/controllers/FrmXMLController.php:51
794
  msgid "There was an error reading the form template"
795
  msgstr ""
796
 
797
+ #: classes/controllers/FrmXMLController.php:87
798
  msgid "There was an error importing form"
799
  msgstr ""
800
 
801
+ #: classes/controllers/FrmXMLController.php:255
802
  #: classes/controllers/FrmStylesController.php:48
803
  #: classes/controllers/FrmFormsController.php:6
804
  #: classes/controllers/FrmFormsController.php:739
806
  msgid "Forms"
807
  msgstr ""
808
 
809
+ #: classes/controllers/FrmXMLController.php:291
810
  msgid "Oops, you didn't select a file."
811
  msgstr ""
812
 
813
+ #: classes/controllers/FrmXMLController.php:302
814
  msgid "The file does not exist, please try again."
815
  msgstr ""
816
 
817
+ #: classes/controllers/FrmXMLController.php:331
818
  msgid "XML import is not enabled on your server with the libxml_disable_entity_loader function."
819
  msgstr ""
820
 
821
+ #: classes/controllers/FrmXMLController.php:539
822
  msgid "Please select a form"
823
  msgstr ""
824
 
825
+ #: classes/controllers/FrmXMLController.php:596
826
  msgid "There are no entries for that form."
827
  msgstr ""
828
 
865
  msgstr ""
866
 
867
  #: classes/controllers/FrmSettingsController.php:92
 
868
  msgid "Plugin Licenses"
869
  msgstr ""
870
 
1019
  msgstr ""
1020
 
1021
  #: classes/controllers/FrmSMTPController.php:302
1022
+ #: classes/views/addons/list.php:80
1023
+ #: classes/views/addons/list.php:81
1024
  #: classes/views/shared/upgrade_overlay.php:27
1025
  #: classes/helpers/FrmFormMigratorsHelper.php:131
1026
+ #: classes/helpers/FrmAppHelper.php:2379
1027
  msgid "Install"
1028
  msgstr ""
1029
 
1036
  msgstr ""
1037
 
1038
  #: classes/controllers/FrmSMTPController.php:319
1039
+ #: classes/views/addons/settings.php:26
1040
+ #: classes/views/addons/list.php:77
1041
  msgid "Activate"
1042
  msgstr ""
1043
 
1600
  #: classes/views/frm-forms/new-form-overlay.php:31
1601
  #: classes/views/shared/confirm-overlay.php:14
1602
  #: classes/views/shared/admin-header.php:42
1603
+ #: classes/helpers/FrmAppHelper.php:2340
1604
  msgid "Cancel"
1605
  msgstr ""
1606
 
1612
  #: classes/views/shared/mb_adv_info.php:35
1613
  #: classes/views/shared/mb_adv_info.php:178
1614
  #: classes/views/frm-entries/list.php:42
1615
+ #: classes/helpers/FrmAppHelper.php:920
1616
  msgid "Search"
1617
  msgstr ""
1618
 
1668
  msgstr ""
1669
 
1670
  #: classes/views/frm-forms/list-templates.php:171
1671
+ #: classes/views/addons/list.php:27
1672
  msgid "Check now for a recent upgrade or renewal"
1673
  msgstr ""
1674
 
1798
  msgstr ""
1799
 
1800
  #: classes/views/frm-forms/settings-advanced.php:93
1801
+ #: classes/helpers/FrmAppHelper.php:1045
1802
  msgid "Select a Page"
1803
  msgstr ""
1804
 
2065
  msgid "Send Email"
2066
  msgstr ""
2067
 
2068
+ #: classes/views/addons/settings.php:18
2069
  msgid "Good to go!"
2070
  msgstr ""
2071
 
2072
+ #: classes/views/addons/settings.php:20
2073
  msgid "Deactivate"
2074
  msgstr ""
2075
 
2082
  msgid "Formidable Add-Ons"
2083
  msgstr ""
2084
 
2085
+ #: classes/views/addons/list.php:17
2086
+ msgid "Search Add-ons"
2087
  msgstr ""
2088
 
2089
+ #: classes/views/addons/list.php:25
2090
+ msgid "Missing add-ons?"
2091
  msgstr ""
2092
 
2093
+ #: classes/views/addons/list.php:53
2094
+ #: classes/views/addons/list.php:54
2095
  msgid "View Docs"
2096
  msgstr ""
2097
 
2098
  #. translators: %s: Status name
2099
+ #: classes/views/addons/list.php:70
2100
  msgid "Status: %s"
2101
  msgstr ""
2102
 
2103
+ #: classes/views/addons/list.php:84
2104
+ #: classes/views/addons/list.php:94
2105
+ #: classes/views/addons/list.php:95
2106
  msgid "Upgrade Now"
2107
  msgstr ""
2108
 
2109
+ #: classes/views/addons/list.php:85
2110
  msgid "Renew Now"
2111
  msgstr ""
2112
 
2113
+ #: classes/views/solutions/_import.php:46
2114
+ #: classes/helpers/FrmXMLHelper.php:970
2115
+ msgid "Imported"
2116
+ msgstr ""
2117
+
2118
  #: classes/views/shared/errors.php:33
2119
  msgid "Warning:"
2120
  msgstr ""
2129
 
2130
  #: classes/views/shared/confirm-overlay.php:10
2131
  #: classes/views/shared/info-overlay.php:10
2132
+ #: classes/helpers/FrmAppHelper.php:2347
2133
  msgid "Are you sure?"
2134
  msgstr ""
2135
 
2231
 
2232
  #: classes/views/shared/mb_adv_info.php:90
2233
  #: classes/helpers/FrmCSVExportHelper.php:154
2234
+ #: classes/helpers/FrmAppHelper.php:2319
2235
  msgid "ID"
2236
  msgstr ""
2237
 
2241
 
2242
  #: classes/views/shared/mb_adv_info.php:108
2243
  #: classes/views/shared/mb_adv_info.php:122
2244
+ #: classes/helpers/FrmAppHelper.php:2381
2245
  msgid "Select a Field"
2246
  msgstr ""
2247
 
2852
  msgstr ""
2853
 
2854
  #: classes/views/frm-fields/back-end/settings.php:265
2855
+ #: classes/helpers/FrmAppHelper.php:2341
2856
  msgid "Default"
2857
  msgstr ""
2858
 
3060
  msgid "Get Formidable Forms Pro Today and Unlock all the Powerful Features »"
3061
  msgstr ""
3062
 
 
 
 
 
3063
  #: classes/views/frm-settings/license_box.php:8
3064
  msgid "Get Formidable Now"
3065
  msgstr ""
3563
  msgstr ""
3564
 
3565
  #: classes/helpers/FrmFormsListHelper.php:114
3566
+ #: classes/helpers/FrmAppHelper.php:905
3567
  msgid "Add New"
3568
  msgstr ""
3569
 
3615
  msgstr ""
3616
 
3617
  #: classes/helpers/FrmFieldsHelper.php:286
3618
+ #: classes/helpers/FrmAppHelper.php:2352
3619
  msgid "The entered values do not match"
3620
  msgstr ""
3621
 
3626
 
3627
  #: classes/helpers/FrmFieldsHelper.php:456
3628
  #: classes/helpers/FrmFieldsHelper.php:457
3629
+ #: classes/helpers/FrmAppHelper.php:2356
3630
  msgid "New Option"
3631
  msgstr ""
3632
 
4826
  msgstr ""
4827
 
4828
  #: classes/helpers/FrmListHelper.php:257
4829
+ #: classes/helpers/FrmAppHelper.php:2382
4830
  msgid "No items found."
4831
  msgstr ""
4832
 
5093
  msgid "License plan required:"
5094
  msgstr ""
5095
 
5096
+ #: classes/helpers/FrmFormsHelper.php:1456
5097
  msgid "Is this intentional?"
5098
  msgstr ""
5099
 
5100
+ #: classes/helpers/FrmFormsHelper.php:1457
5101
+ #: classes/helpers/FrmAppHelper.php:2376
5102
  msgid "See the list of reserved words in WordPress."
5103
  msgstr ""
5104
 
5105
  #. translators: %s: the name of a single parameter in the redirect URL
5106
+ #: classes/helpers/FrmFormsHelper.php:1466
5107
  msgid "The redirect URL is using the parameter \"%s\", which is reserved by WordPress. "
5108
  msgstr ""
5109
 
5110
  #. translators: %s: the names of two or more parameters in the redirect URL, separated by commas
5111
+ #: classes/helpers/FrmFormsHelper.php:1472
5112
  msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
5113
  msgstr ""
5114
 
5148
  msgid "Parent ID"
5149
  msgstr ""
5150
 
5151
+ #: classes/helpers/FrmAppHelper.php:1175
5152
  msgid "View Forms"
5153
  msgstr ""
5154
 
5155
+ #: classes/helpers/FrmAppHelper.php:1176
5156
  msgid "Add and Edit Forms"
5157
  msgstr ""
5158
 
5159
+ #: classes/helpers/FrmAppHelper.php:1177
5160
  msgid "Delete Forms"
5161
  msgstr ""
5162
 
5163
+ #: classes/helpers/FrmAppHelper.php:1178
5164
  msgid "Access this Settings Page"
5165
  msgstr ""
5166
 
5167
+ #: classes/helpers/FrmAppHelper.php:1179
5168
  msgid "View Entries from Admin Area"
5169
  msgstr ""
5170
 
5171
+ #: classes/helpers/FrmAppHelper.php:1180
5172
  msgid "Delete Entries from Admin Area"
5173
  msgstr ""
5174
 
5175
+ #: classes/helpers/FrmAppHelper.php:1187
5176
  msgid "Add Entries from Admin Area"
5177
  msgstr ""
5178
 
5179
+ #: classes/helpers/FrmAppHelper.php:1188
5180
  msgid "Edit Entries from Admin Area"
5181
  msgstr ""
5182
 
5183
+ #: classes/helpers/FrmAppHelper.php:1189
5184
  msgid "View Reports"
5185
  msgstr ""
5186
 
5187
+ #: classes/helpers/FrmAppHelper.php:1190
5188
  msgid "Add/Edit Views"
5189
  msgstr ""
5190
 
5191
+ #: classes/helpers/FrmAppHelper.php:1812
5192
  msgid "at"
5193
  msgstr ""
5194
 
5195
+ #: classes/helpers/FrmAppHelper.php:1956
5196
  msgid "year"
5197
  msgstr ""
5198
 
5199
+ #: classes/helpers/FrmAppHelper.php:1957
5200
  msgid "years"
5201
  msgstr ""
5202
 
5203
+ #: classes/helpers/FrmAppHelper.php:1961
5204
  msgid "month"
5205
  msgstr ""
5206
 
5207
+ #: classes/helpers/FrmAppHelper.php:1962
5208
  msgid "months"
5209
  msgstr ""
5210
 
5211
+ #: classes/helpers/FrmAppHelper.php:1966
5212
  msgid "week"
5213
  msgstr ""
5214
 
5215
+ #: classes/helpers/FrmAppHelper.php:1967
5216
  msgid "weeks"
5217
  msgstr ""
5218
 
5219
+ #: classes/helpers/FrmAppHelper.php:1971
5220
  msgid "day"
5221
  msgstr ""
5222
 
5223
+ #: classes/helpers/FrmAppHelper.php:1972
5224
  msgid "days"
5225
  msgstr ""
5226
 
5227
+ #: classes/helpers/FrmAppHelper.php:1976
5228
  msgid "hour"
5229
  msgstr ""
5230
 
5231
+ #: classes/helpers/FrmAppHelper.php:1977
5232
  msgid "hours"
5233
  msgstr ""
5234
 
5235
+ #: classes/helpers/FrmAppHelper.php:1981
5236
  msgid "minute"
5237
  msgstr ""
5238
 
5239
+ #: classes/helpers/FrmAppHelper.php:1982
5240
  msgid "minutes"
5241
  msgstr ""
5242
 
5243
+ #: classes/helpers/FrmAppHelper.php:1986
5244
  msgid "second"
5245
  msgstr ""
5246
 
5247
+ #: classes/helpers/FrmAppHelper.php:1987
5248
  msgid "seconds"
5249
  msgstr ""
5250
 
5251
+ #: classes/helpers/FrmAppHelper.php:2081
5252
  msgid "Give this action a label for easy reference."
5253
  msgstr ""
5254
 
5255
+ #: classes/helpers/FrmAppHelper.php:2082
5256
  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."
5257
  msgstr ""
5258
 
5259
+ #: classes/helpers/FrmAppHelper.php:2083
5260
  msgid "Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
5261
  msgstr ""
5262
 
5263
+ #: classes/helpers/FrmAppHelper.php:2084
5264
  msgid "Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
5265
  msgstr ""
5266
 
5267
+ #: classes/helpers/FrmAppHelper.php:2085
5268
  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."
5269
  msgstr ""
5270
 
5271
+ #: classes/helpers/FrmAppHelper.php:2086
5272
  msgid "Enter the name and/or email address of the sender. FORMAT: John Bates <john@example.com> or john@example.com."
5273
  msgstr ""
5274
 
5275
  #. translators: %1$s: Form name, %2$s: Date
5276
+ #: classes/helpers/FrmAppHelper.php:2088
5277
  msgid "If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s"
5278
  msgstr ""
5279
 
5280
+ #: classes/helpers/FrmAppHelper.php:2282
5281
+ #: classes/helpers/FrmAppHelper.php:2361
5282
  msgid "Please wait while your site updates."
5283
  msgstr ""
5284
 
5285
+ #: classes/helpers/FrmAppHelper.php:2283
5286
  msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
5287
  msgstr ""
5288
 
5289
+ #: classes/helpers/FrmAppHelper.php:2286
5290
+ #: classes/helpers/FrmAppHelper.php:2315
5291
  msgid "Loading&hellip;"
5292
  msgstr ""
5293
 
5294
+ #: classes/helpers/FrmAppHelper.php:2316
5295
  msgid "Remove"
5296
  msgstr ""
5297
 
5298
+ #: classes/helpers/FrmAppHelper.php:2320
5299
  msgid "No results match"
5300
  msgstr ""
5301
 
5302
+ #: classes/helpers/FrmAppHelper.php:2321
5303
  msgid "That file looks like Spam."
5304
  msgstr ""
5305
 
5306
+ #: classes/helpers/FrmAppHelper.php:2322
5307
  msgid "There is an error in the calculation in the field with key"
5308
  msgstr ""
5309
 
5310
+ #: classes/helpers/FrmAppHelper.php:2323
5311
  msgid "Please complete the preceding required fields before uploading a file."
5312
  msgstr ""
5313
 
5314
+ #: classes/helpers/FrmAppHelper.php:2334
5315
  msgid "(Click to add description)"
5316
  msgstr ""
5317
 
5318
+ #: classes/helpers/FrmAppHelper.php:2335
5319
  msgid "(Blank)"
5320
  msgstr ""
5321
 
5322
+ #: classes/helpers/FrmAppHelper.php:2336
5323
  msgid "(no label)"
5324
  msgstr ""
5325
 
5326
+ #: classes/helpers/FrmAppHelper.php:2337
5327
  msgid "Saving"
5328
  msgstr ""
5329
 
5330
+ #: classes/helpers/FrmAppHelper.php:2338
5331
  msgid "Saved"
5332
  msgstr ""
5333
 
5334
+ #: classes/helpers/FrmAppHelper.php:2339
5335
  msgid "OK"
5336
  msgstr ""
5337
 
5338
+ #: classes/helpers/FrmAppHelper.php:2342
5339
  msgid "Clear default value when typing"
5340
  msgstr ""
5341
 
5342
+ #: classes/helpers/FrmAppHelper.php:2343
5343
  msgid "Do not clear default value when typing"
5344
  msgstr ""
5345
 
5346
+ #: classes/helpers/FrmAppHelper.php:2344
5347
  msgid "Default value will pass form validation"
5348
  msgstr ""
5349
 
5350
+ #: classes/helpers/FrmAppHelper.php:2345
5351
  msgid "Default value will NOT pass form validation"
5352
  msgstr ""
5353
 
5354
+ #: classes/helpers/FrmAppHelper.php:2346
5355
  msgid "Heads up"
5356
  msgstr ""
5357
 
5358
+ #: classes/helpers/FrmAppHelper.php:2348
5359
  msgid "Are you sure you want to delete this field and all data associated with it?"
5360
  msgstr ""
5361
 
5362
+ #: classes/helpers/FrmAppHelper.php:2349
5363
  msgid "All fields inside this Section will be deleted along with their data. Are you sure you want to delete this group of fields?"
5364
  msgstr ""
5365
 
5366
+ #: classes/helpers/FrmAppHelper.php:2350
5367
  msgid "Warning: If you have entries with multiple rows, all but the first row will be lost."
5368
  msgstr ""
5369
 
5370
+ #: classes/helpers/FrmAppHelper.php:2353
5371
  msgid "Enter Email"
5372
  msgstr ""
5373
 
5374
+ #: classes/helpers/FrmAppHelper.php:2354
5375
  msgid "Confirm Email"
5376
  msgstr ""
5377
 
5378
+ #: classes/helpers/FrmAppHelper.php:2355
5379
  msgid "Conditional content here"
5380
  msgstr ""
5381
 
5382
+ #: classes/helpers/FrmAppHelper.php:2357
5383
  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."
5384
  msgstr ""
5385
 
5386
+ #: classes/helpers/FrmAppHelper.php:2358
5387
  msgid "Enter Password"
5388
  msgstr ""
5389
 
5390
+ #: classes/helpers/FrmAppHelper.php:2359
5391
  msgid "Confirm Password"
5392
  msgstr ""
5393
 
5394
+ #: classes/helpers/FrmAppHelper.php:2360
5395
  msgid "Import Complete"
5396
  msgstr ""
5397
 
5398
+ #: classes/helpers/FrmAppHelper.php:2362
5399
  msgid "Warning: There is no way to retrieve unsaved entries."
5400
  msgstr ""
5401
 
5402
+ #: classes/helpers/FrmAppHelper.php:2363
5403
  msgid "Private"
5404
  msgstr ""
5405
 
5406
+ #: classes/helpers/FrmAppHelper.php:2366
5407
  msgid "No new licenses were found"
5408
  msgstr ""
5409
 
5410
+ #: classes/helpers/FrmAppHelper.php:2367
5411
  msgid "This calculation has at least one unmatched ( ) { } [ ]."
5412
  msgstr ""
5413
 
5414
+ #: classes/helpers/FrmAppHelper.php:2368
5415
  msgid "This calculation may have shortcodes that work in Views but not forms."
5416
  msgstr ""
5417
 
5418
+ #: classes/helpers/FrmAppHelper.php:2369
5419
  msgid "This calculation may have shortcodes that work in text calculations but not numeric calculations."
5420
  msgstr ""
5421
 
5422
+ #: classes/helpers/FrmAppHelper.php:2370
5423
  msgid "This form action is limited to one per form. Please edit the existing form action."
5424
  msgstr ""
5425
 
5426
  #. Translators: %s is the name of a Detail Page Slug that is a reserved word.
5427
+ #: classes/helpers/FrmAppHelper.php:2373
5428
  msgid "The Detail Page Slug \"%s\" is reserved by WordPress. This may cause problems. Is this intentional?"
5429
  msgstr ""
5430
 
5431
  #. 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.
5432
+ #: classes/helpers/FrmAppHelper.php:2375
5433
  msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems when included in the URL. Is this intentional? "
5434
  msgstr ""
5435
 
5436
+ #: classes/helpers/FrmAppHelper.php:2377
5437
  msgid "Please enter a Repeat Limit that is greater than 1."
5438
  msgstr ""
5439
 
5440
+ #: classes/helpers/FrmAppHelper.php:2378
5441
  msgid "Please select a limit between 0 and 200."
5442
  msgstr ""
5443
 
5444
+ #: classes/helpers/FrmAppHelper.php:2410
5445
  msgid "You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable."
5446
  msgstr ""
5447
 
5448
+ #: classes/helpers/FrmAppHelper.php:2437
5449
  msgid "You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro."
5450
  msgstr ""
5451
 
5452
+ #: classes/helpers/FrmAppHelper.php:2465
5453
  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+."
5454
  msgstr ""
5455
 
5456
+ #: classes/helpers/FrmAppHelper.php:2471
5457
  msgid "You are using an outdated browser that is not compatible with Formidable Forms. Please update to a more current browser (we recommend Chrome)."
5458
  msgstr ""
5459
 
5460
+ #: classes/helpers/FrmAppHelper.php:2485
5461
  msgid "English"
5462
  msgstr ""
5463
 
5464
+ #: classes/helpers/FrmAppHelper.php:2486
5465
  msgid "Afrikaans"
5466
  msgstr ""
5467
 
5468
+ #: classes/helpers/FrmAppHelper.php:2487
5469
  msgid "Albanian"
5470
  msgstr ""
5471
 
5472
+ #: classes/helpers/FrmAppHelper.php:2488
5473
  msgid "Arabic"
5474
  msgstr ""
5475
 
5476
+ #: classes/helpers/FrmAppHelper.php:2489
5477
  msgid "Armenian"
5478
  msgstr ""
5479
 
5480
+ #: classes/helpers/FrmAppHelper.php:2490
5481
  msgid "Azerbaijani"
5482
  msgstr ""
5483
 
5484
+ #: classes/helpers/FrmAppHelper.php:2491
5485
  msgid "Basque"
5486
  msgstr ""
5487
 
5488
+ #: classes/helpers/FrmAppHelper.php:2492
5489
  msgid "Bosnian"
5490
  msgstr ""
5491
 
5492
+ #: classes/helpers/FrmAppHelper.php:2493
5493
  msgid "Bulgarian"
5494
  msgstr ""
5495
 
5496
+ #: classes/helpers/FrmAppHelper.php:2494
5497
  msgid "Catalan"
5498
  msgstr ""
5499
 
5500
+ #: classes/helpers/FrmAppHelper.php:2495
5501
  msgid "Chinese Hong Kong"
5502
  msgstr ""
5503
 
5504
+ #: classes/helpers/FrmAppHelper.php:2496
5505
  msgid "Chinese Simplified"
5506
  msgstr ""
5507
 
5508
+ #: classes/helpers/FrmAppHelper.php:2497
5509
  msgid "Chinese Traditional"
5510
  msgstr ""
5511
 
5512
+ #: classes/helpers/FrmAppHelper.php:2498
5513
  msgid "Croatian"
5514
  msgstr ""
5515
 
5516
+ #: classes/helpers/FrmAppHelper.php:2499
5517
  msgid "Czech"
5518
  msgstr ""
5519
 
5520
+ #: classes/helpers/FrmAppHelper.php:2500
5521
  msgid "Danish"
5522
  msgstr ""
5523
 
5524
+ #: classes/helpers/FrmAppHelper.php:2501
5525
  msgid "Dutch"
5526
  msgstr ""
5527
 
5528
+ #: classes/helpers/FrmAppHelper.php:2502
5529
  msgid "English/UK"
5530
  msgstr ""
5531
 
5532
+ #: classes/helpers/FrmAppHelper.php:2503
5533
  msgid "Esperanto"
5534
  msgstr ""
5535
 
5536
+ #: classes/helpers/FrmAppHelper.php:2504
5537
  msgid "Estonian"
5538
  msgstr ""
5539
 
5540
+ #: classes/helpers/FrmAppHelper.php:2505
5541
  msgid "Faroese"
5542
  msgstr ""
5543
 
5544
+ #: classes/helpers/FrmAppHelper.php:2506
5545
  msgid "Farsi/Persian"
5546
  msgstr ""
5547
 
5548
+ #: classes/helpers/FrmAppHelper.php:2507
5549
  msgid "Filipino"
5550
  msgstr ""
5551
 
5552
+ #: classes/helpers/FrmAppHelper.php:2508
5553
  msgid "Finnish"
5554
  msgstr ""
5555
 
5556
+ #: classes/helpers/FrmAppHelper.php:2509
5557
  msgid "French"
5558
  msgstr ""
5559
 
5560
+ #: classes/helpers/FrmAppHelper.php:2510
5561
  msgid "French/Canadian"
5562
  msgstr ""
5563
 
5564
+ #: classes/helpers/FrmAppHelper.php:2511
5565
  msgid "French/Swiss"
5566
  msgstr ""
5567
 
5568
+ #: classes/helpers/FrmAppHelper.php:2512
5569
  msgid "German"
5570
  msgstr ""
5571
 
5572
+ #: classes/helpers/FrmAppHelper.php:2513
5573
  msgid "German/Austria"
5574
  msgstr ""
5575
 
5576
+ #: classes/helpers/FrmAppHelper.php:2514
5577
  msgid "German/Switzerland"
5578
  msgstr ""
5579
 
5580
+ #: classes/helpers/FrmAppHelper.php:2515
5581
  msgid "Greek"
5582
  msgstr ""
5583
 
5584
+ #: classes/helpers/FrmAppHelper.php:2516
5585
+ #: classes/helpers/FrmAppHelper.php:2517
5586
  msgid "Hebrew"
5587
  msgstr ""
5588
 
5589
+ #: classes/helpers/FrmAppHelper.php:2518
5590
  msgid "Hindi"
5591
  msgstr ""
5592
 
5593
+ #: classes/helpers/FrmAppHelper.php:2519
5594
  msgid "Hungarian"
5595
  msgstr ""
5596
 
5597
+ #: classes/helpers/FrmAppHelper.php:2520
5598
  msgid "Icelandic"
5599
  msgstr ""
5600
 
5601
+ #: classes/helpers/FrmAppHelper.php:2521
5602
  msgid "Indonesian"
5603
  msgstr ""
5604
 
5605
+ #: classes/helpers/FrmAppHelper.php:2522
5606
  msgid "Italian"
5607
  msgstr ""
5608
 
5609
+ #: classes/helpers/FrmAppHelper.php:2523
5610
  msgid "Japanese"
5611
  msgstr ""
5612
 
5613
+ #: classes/helpers/FrmAppHelper.php:2524
5614
  msgid "Korean"
5615
  msgstr ""
5616
 
5617
+ #: classes/helpers/FrmAppHelper.php:2525
5618
  msgid "Latvian"
5619
  msgstr ""
5620
 
5621
+ #: classes/helpers/FrmAppHelper.php:2526
5622
  msgid "Lithuanian"
5623
  msgstr ""
5624
 
5625
+ #: classes/helpers/FrmAppHelper.php:2527
5626
  msgid "Malaysian"
5627
  msgstr ""
5628
 
5629
+ #: classes/helpers/FrmAppHelper.php:2528
5630
  msgid "Norwegian"
5631
  msgstr ""
5632
 
5633
+ #: classes/helpers/FrmAppHelper.php:2529
5634
  msgid "Polish"
5635
  msgstr ""
5636
 
5637
+ #: classes/helpers/FrmAppHelper.php:2530
5638
  msgid "Portuguese"
5639
  msgstr ""
5640
 
5641
+ #: classes/helpers/FrmAppHelper.php:2531
5642
  msgid "Portuguese/Brazilian"
5643
  msgstr ""
5644
 
5645
+ #: classes/helpers/FrmAppHelper.php:2532
5646
  msgid "Portuguese/Portugal"
5647
  msgstr ""
5648
 
5649
+ #: classes/helpers/FrmAppHelper.php:2533
5650
  msgid "Romanian"
5651
  msgstr ""
5652
 
5653
+ #: classes/helpers/FrmAppHelper.php:2534
5654
  msgid "Russian"
5655
  msgstr ""
5656
 
5657
+ #: classes/helpers/FrmAppHelper.php:2535
5658
+ #: classes/helpers/FrmAppHelper.php:2536
5659
  msgid "Serbian"
5660
  msgstr ""
5661
 
5662
+ #: classes/helpers/FrmAppHelper.php:2537
5663
  msgid "Slovak"
5664
  msgstr ""
5665
 
5666
+ #: classes/helpers/FrmAppHelper.php:2538
5667
  msgid "Slovenian"
5668
  msgstr ""
5669
 
5670
+ #: classes/helpers/FrmAppHelper.php:2539
5671
  msgid "Spanish"
5672
  msgstr ""
5673
 
5674
+ #: classes/helpers/FrmAppHelper.php:2540
5675
  msgid "Spanish/Latin America"
5676
  msgstr ""
5677
 
5678
+ #: classes/helpers/FrmAppHelper.php:2541
5679
  msgid "Swedish"
5680
  msgstr ""
5681
 
5682
+ #: classes/helpers/FrmAppHelper.php:2542
5683
  msgid "Tamil"
5684
  msgstr ""
5685
 
5686
+ #: classes/helpers/FrmAppHelper.php:2543
5687
  msgid "Thai"
5688
  msgstr ""
5689
 
5690
+ #: classes/helpers/FrmAppHelper.php:2544
5691
+ #: classes/helpers/FrmAppHelper.php:2545
5692
  msgid "Turkish"
5693
  msgstr ""
5694
 
5695
+ #: classes/helpers/FrmAppHelper.php:2546
5696
  msgid "Ukranian"
5697
  msgstr ""
5698
 
5699
+ #: classes/helpers/FrmAppHelper.php:2547
5700
  msgid "Vietnamese"
5701
  msgstr ""
5702
 
5713
  msgid "Your server is missing the simplexml_import_dom function"
5714
  msgstr ""
5715
 
5716
+ #: classes/helpers/FrmXMLHelper.php:971
 
 
 
 
5717
  msgid "Updated"
5718
  msgstr ""
5719
 
5720
+ #: classes/helpers/FrmXMLHelper.php:996
5721
  msgid "Nothing was imported or updated"
5722
  msgstr ""
5723
 
5724
  #. translators: %1$s: Number of items
5725
+ #: classes/helpers/FrmXMLHelper.php:1011
5726
  msgid "%1$s Form"
5727
  msgid_plural "%1$s Forms"
5728
  msgstr[0] ""
5729
 
5730
  #. translators: %1$s: Number of items
5731
+ #: classes/helpers/FrmXMLHelper.php:1015
5732
  msgid "%1$s Entry"
5733
  msgid_plural "%1$s Entries"
5734
  msgstr[0] ""
5735
 
5736
  #. translators: %1$s: Number of items
5737
+ #: classes/helpers/FrmXMLHelper.php:1017
5738
  msgid "%1$s View"
5739
  msgid_plural "%1$s Views"
5740
  msgstr[0] ""
5741
 
5742
  #. translators: %1$s: Number of items
5743
+ #: classes/helpers/FrmXMLHelper.php:1019
5744
  msgid "%1$s Post"
5745
  msgid_plural "%1$s Posts"
5746
  msgstr[0] ""
5747
 
5748
  #. translators: %1$s: Number of items
5749
+ #: classes/helpers/FrmXMLHelper.php:1021
5750
  msgid "%1$s Style"
5751
  msgid_plural "%1$s Styles"
5752
  msgstr[0] ""
5753
 
5754
  #. translators: %1$s: Number of items
5755
+ #: classes/helpers/FrmXMLHelper.php:1023
5756
  msgid "%1$s Term"
5757
  msgid_plural "%1$s Terms"
5758
  msgstr[0] ""
5759
 
5760
  #. translators: %1$s: Number of items
5761
+ #: classes/helpers/FrmXMLHelper.php:1025
5762
  msgid "%1$s Form Action"
5763
  msgid_plural "%1$s Form Actions"
5764
  msgstr[0] ""
5765
 
5766
+ #: classes/helpers/FrmXMLHelper.php:1049
5767
  msgid "Go to imported form"
5768
  msgstr ""
5769
 
5770
+ #: classes/helpers/FrmXMLHelper.php:1254
5771
  msgid "Create Posts"
5772
  msgstr ""
5773
 
5774
+ #: classes/helpers/FrmXMLHelper.php:1381
5775
  msgid "Email Notification"
5776
  msgstr ""
5777
 
readme.txt CHANGED
@@ -3,9 +3,9 @@ Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Forms Plugin for Wor
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, form maker, form creator, paypal form, registration form, paypal, paypal form, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator form, calculator, price calculator, quote form, contact button, contact me, form manager, forms creator, Akismet, web form, payment form, survey form, donation form, email submit form, message form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor
5
  Requires at least: 4.7
6
- Tested up to: 5.4
7
  Requires PHP: 5.6
8
- Stable tag: 4.06.01
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quiz forms, and more.
11
 
@@ -436,6 +436,13 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
436
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
437
 
438
  == Changelog ==
 
 
 
 
 
 
 
439
  = 4.06.01 =
440
  * Remove the top level nav notification for inbox notifications.
441
  * Use the frm_display_value hook for each different case where values are displayed (entries list table, view an entry, summary field...)
@@ -450,12 +457,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
450
  * Fix: On some sites, permissions were preventing a form from being created from a template.
451
  * Fix: The button colors were overriding eachother with some settings.
452
 
453
- = 4.05.02 =
454
- * New: Added frm_message_placement hook to show the form message below the form
455
- * New: New classes that can be used in the 'form class' setting: frm_plain_success (Removes styling from the success message) and frm_below_success (Movs the success message below the form).
456
- * Add Formidable back to the admin bar. This is now a setting if the default WordPress v5.2+ behavior is desired.
457
- * Fix: Reiew requests were added to the inbox too frequently with sites with multiple admins.
458
- * Fix: Elementor conflict by using the glost $post in the admin area.
459
- * Fix: The color picker position in the styling settings was off for some options.
460
-
461
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
3
  Contributors: formidableforms, sswells, srwells
4
  Tags: forms, contact form, form builder, survey, form maker, form creator, paypal form, registration form, paypal, paypal form, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator form, calculator, price calculator, quote form, contact button, contact me, form manager, forms creator, Akismet, web form, payment form, survey form, donation form, email submit form, message form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor
5
  Requires at least: 4.7
6
+ Tested up to: 5.5
7
  Requires PHP: 5.6
8
+ Stable tag: 4.06.02
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quiz forms, and more.
11
 
436
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
437
 
438
  == Changelog ==
439
+ = 4.06.02 =
440
+ * New: Added frm_field_value_object hook for making adjustments to the field before it's label and value is displayed.
441
+ * New: Added frm_xml_response hook for altering the message/response when an XML file is imported.
442
+ * Fix: Updated deprecated blacklist functions in WP 5.5.
443
+ * Fix: Add more checks to the installation triggers to prevent them from being triggered at unintended times.
444
+ * Show a more helpful error message in some cases when the XML import fails.
445
+
446
  = 4.06.01 =
447
  * Remove the top level nav notification for inbox notifications.
448
  * Use the frm_display_value hook for each different case where values are displayed (entries list table, view an entry, summary field...)
457
  * Fix: On some sites, permissions were preventing a form from being created from a template.
458
  * Fix: The button colors were overriding eachother with some settings.
459
 
 
 
 
 
 
 
 
 
460
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>