Version Description
- New: Added confirmation before forms are deleted in bulk.
- Allow a value to pass validation if the entered value matches the placeholder setting.
- Fix: Email addresses were not being sent to Akismet for logged out users, and resulting in some false positive spam.
- Fix: Some sites have been getting duplicate entries days apart. This issue should be fixed.
- Fix: Searching when switching between forms no longer triggers the confirmation message when leaving the page.
Download this release
Release Info
Developer | sswells |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 4.08 |
Comparing to | |
See all releases |
Code changes from version 4.07.01 to 4.08
- classes/controllers/FrmAddonsController.php +216 -27
- classes/controllers/FrmAppController.php +8 -0
- classes/controllers/FrmFormActionsController.php +1 -0
- classes/controllers/FrmFormsController.php +1 -0
- classes/controllers/FrmStylesController.php +1 -1
- classes/controllers/FrmXMLController.php +1 -1
- classes/helpers/FrmAppHelper.php +40 -3
- classes/helpers/FrmCSVExportHelper.php +106 -24
- classes/helpers/FrmEntriesListHelper.php +7 -0
- classes/helpers/FrmFormsListHelper.php +7 -0
- classes/helpers/FrmListHelper.php +15 -0
- classes/helpers/FrmXMLHelper.php +7 -6
- classes/models/FrmAddon.php +9 -2
- classes/models/FrmEntryMeta.php +30 -9
- classes/models/FrmEntryValidate.php +14 -12
- classes/models/FrmInstallerSkin.php +15 -3
- classes/views/frm-fields/back-end/field-captcha.php +1 -1
- classes/views/frm-form-actions/_action_inside.php +5 -0
- classes/views/frm-form-actions/default_actions.php +8 -0
- classes/views/frm-form-actions/email_action.php +1 -1
- classes/views/frm-settings/general.php +1 -1
- classes/views/frm-settings/license_box.php +1 -1
- css/_single_theme.css.php +1 -1
- css/frm_admin.css +7 -5
- formidable.php +1 -1
- js/formidable.js +42 -29
- js/formidable.min.js +49 -48
- js/formidable_admin.js +265 -37
- languages/formidable.pot +311 -280
- readme.txt +8 -8
classes/controllers/FrmAddonsController.php
CHANGED
@@ -25,6 +25,9 @@ class FrmAddonsController {
|
|
25 |
'formidable-pro-upgrade',
|
26 |
'FrmAddonsController::upgrade_to_pro'
|
27 |
);
|
|
|
|
|
|
|
28 |
}
|
29 |
}
|
30 |
|
@@ -86,7 +89,7 @@ class FrmAddonsController {
|
|
86 |
* @return array
|
87 |
*/
|
88 |
private static function fallback_plugin_list() {
|
89 |
-
|
90 |
'formidable-pro' => array(
|
91 |
'title' => 'Formidable Forms',
|
92 |
'link' => 'pricing/',
|
@@ -156,6 +159,16 @@ class FrmAddonsController {
|
|
156 |
'excerpt' => 'Allow users to text their votes for polls created by Formidable Forms, or send SMS notifications when entries are submitted or updated.',
|
157 |
),
|
158 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
}
|
160 |
|
161 |
/**
|
@@ -165,6 +178,18 @@ class FrmAddonsController {
|
|
165 |
* @return string
|
166 |
*/
|
167 |
public static function get_pro_download_url() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
$pro_cred_store = 'frmpro-credentials';
|
169 |
$pro_wpmu_store = 'frmpro-wpmu-sitewide';
|
170 |
if ( is_multisite() && get_site_option( $pro_wpmu_store ) ) {
|
@@ -186,12 +211,14 @@ class FrmAddonsController {
|
|
186 |
// this is a fix for licenses saved in the past
|
187 |
$license = strtoupper( $license );
|
188 |
}
|
|
|
|
|
189 |
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
return isset( $
|
195 |
}
|
196 |
|
197 |
/**
|
@@ -209,7 +236,7 @@ class FrmAddonsController {
|
|
209 |
$type = isset( $addons['error']['type'] ) ? $addons['error']['type'] : $type;
|
210 |
}
|
211 |
|
212 |
-
$pro =
|
213 |
if ( $type === 'free' ) {
|
214 |
$type = isset( $pro['type'] ) ? $pro['type'] : $type;
|
215 |
if ( $type === 'free' ) {
|
@@ -230,6 +257,44 @@ class FrmAddonsController {
|
|
230 |
* @since 4.0.01
|
231 |
*/
|
232 |
public static function is_license_expired() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
234 |
if ( empty( $installed_addons ) || ! isset( $installed_addons['formidable_pro'] ) ) {
|
235 |
return false;
|
@@ -238,12 +303,7 @@ class FrmAddonsController {
|
|
238 |
'formidable_pro' => $installed_addons['formidable_pro'],
|
239 |
);
|
240 |
|
241 |
-
|
242 |
-
if ( ! isset( $version_info['error'] ) ) {
|
243 |
-
return false;
|
244 |
-
}
|
245 |
-
|
246 |
-
return $version_info['error'];
|
247 |
}
|
248 |
|
249 |
/**
|
@@ -759,7 +819,8 @@ class FrmAddonsController {
|
|
759 |
// The plugin was installed, but not active. Download it now.
|
760 |
self::ajax_install_addon();
|
761 |
} else {
|
762 |
-
$response['active']
|
|
|
763 |
}
|
764 |
|
765 |
echo json_encode( $response );
|
@@ -773,24 +834,40 @@ class FrmAddonsController {
|
|
773 |
|
774 |
self::install_addon_permissions();
|
775 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
776 |
// Set the current screen to avoid undefined notices.
|
777 |
-
|
778 |
-
|
|
|
|
|
779 |
|
780 |
self::maybe_show_cred_form();
|
781 |
|
782 |
$installed = self::install_addon();
|
|
|
|
|
|
|
783 |
self::maybe_activate_addon( $installed );
|
784 |
-
|
785 |
-
// Send back a response.
|
786 |
-
echo json_encode( __( 'Your plugin has been installed. Please reload the page to see more options.', 'formidable' ) );
|
787 |
-
wp_die();
|
788 |
}
|
789 |
|
790 |
/**
|
791 |
* @since 3.04.02
|
792 |
*/
|
793 |
private static function maybe_show_cred_form() {
|
|
|
|
|
|
|
|
|
794 |
// Start output bufferring to catch the filesystem form if credentials are needed.
|
795 |
ob_start();
|
796 |
|
@@ -808,10 +885,15 @@ class FrmAddonsController {
|
|
808 |
}
|
809 |
|
810 |
if ( $show_form ) {
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
|
|
|
|
|
|
|
|
|
|
815 |
}
|
816 |
|
817 |
ob_end_clean();
|
@@ -835,7 +917,14 @@ class FrmAddonsController {
|
|
835 |
// Flush the cache and return the newly installed plugin basename.
|
836 |
wp_cache_flush();
|
837 |
|
838 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
839 |
}
|
840 |
|
841 |
/**
|
@@ -903,8 +992,14 @@ class FrmAddonsController {
|
|
903 |
if ( is_wp_error( $activate ) ) {
|
904 |
// Ignore the invalid header message that shows with nested plugins.
|
905 |
if ( $activate->get_error_code() !== 'no_plugin_header' ) {
|
906 |
-
|
907 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
908 |
}
|
909 |
}
|
910 |
}
|
@@ -923,6 +1018,100 @@ class FrmAddonsController {
|
|
923 |
}
|
924 |
}
|
925 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
926 |
/**
|
927 |
* @since 3.04.03
|
928 |
* @deprecated 3.06
|
25 |
'formidable-pro-upgrade',
|
26 |
'FrmAddonsController::upgrade_to_pro'
|
27 |
);
|
28 |
+
} elseif ( 'formidable-pro-upgrade' === FrmAppHelper::get_param( 'page' ) ) {
|
29 |
+
wp_safe_redirect( admin_url( 'admin.php?page=formidable' ) );
|
30 |
+
exit;
|
31 |
}
|
32 |
}
|
33 |
|
89 |
* @return array
|
90 |
*/
|
91 |
private static function fallback_plugin_list() {
|
92 |
+
$list = array(
|
93 |
'formidable-pro' => array(
|
94 |
'title' => 'Formidable Forms',
|
95 |
'link' => 'pricing/',
|
159 |
'excerpt' => 'Allow users to text their votes for polls created by Formidable Forms, or send SMS notifications when entries are submitted or updated.',
|
160 |
),
|
161 |
);
|
162 |
+
|
163 |
+
$defaults = array(
|
164 |
+
'released' => '',
|
165 |
+
);
|
166 |
+
|
167 |
+
foreach ( $list as $k => $info ) {
|
168 |
+
$info['slug'] = $k;
|
169 |
+
$list[ $k ] = array_merge( $defaults, $info );
|
170 |
+
}
|
171 |
+
return $list;
|
172 |
}
|
173 |
|
174 |
/**
|
178 |
* @return string
|
179 |
*/
|
180 |
public static function get_pro_download_url() {
|
181 |
+
$license = self::get_pro_license();
|
182 |
+
$api = new FrmFormApi( $license );
|
183 |
+
$downloads = $api->get_api_info();
|
184 |
+
$pro = self::get_pro_from_addons( $downloads );
|
185 |
+
|
186 |
+
return isset( $pro['url'] ) ? $pro['url'] : '';
|
187 |
+
}
|
188 |
+
|
189 |
+
/**
|
190 |
+
* @since 4.08
|
191 |
+
*/
|
192 |
+
public static function get_pro_license() {
|
193 |
$pro_cred_store = 'frmpro-credentials';
|
194 |
$pro_wpmu_store = 'frmpro-wpmu-sitewide';
|
195 |
if ( is_multisite() && get_site_option( $pro_wpmu_store ) ) {
|
211 |
// this is a fix for licenses saved in the past
|
212 |
$license = strtoupper( $license );
|
213 |
}
|
214 |
+
return $license;
|
215 |
+
}
|
216 |
|
217 |
+
/**
|
218 |
+
* @since 4.08
|
219 |
+
*/
|
220 |
+
private static function get_pro_from_addons( $addons ) {
|
221 |
+
return isset( $addons['93790'] ) ? $addons['93790'] : array();
|
222 |
}
|
223 |
|
224 |
/**
|
236 |
$type = isset( $addons['error']['type'] ) ? $addons['error']['type'] : $type;
|
237 |
}
|
238 |
|
239 |
+
$pro = self::get_pro_from_addons( $addons );
|
240 |
if ( $type === 'free' ) {
|
241 |
$type = isset( $pro['type'] ) ? $pro['type'] : $type;
|
242 |
if ( $type === 'free' ) {
|
257 |
* @since 4.0.01
|
258 |
*/
|
259 |
public static function is_license_expired() {
|
260 |
+
$version_info = self::get_primary_license_info();
|
261 |
+
if ( ! isset( $version_info['error'] ) ) {
|
262 |
+
return false;
|
263 |
+
}
|
264 |
+
|
265 |
+
return $version_info['error'];
|
266 |
+
}
|
267 |
+
|
268 |
+
/**
|
269 |
+
* @since 4.08
|
270 |
+
*
|
271 |
+
* @return boolean|int false or the number of days until expiration.
|
272 |
+
*/
|
273 |
+
public static function is_license_expiring() {
|
274 |
+
$version_info = self::get_primary_license_info();
|
275 |
+
if ( ! isset( $version_info['active_sub'] ) || $version_info['active_sub'] !== 'no' ) {
|
276 |
+
// Check for a subscription first.
|
277 |
+
return false;
|
278 |
+
}
|
279 |
+
|
280 |
+
if ( ! isset( $version_info['error'] ) || empty( $version_info['expires'] ) ) {
|
281 |
+
// It's either invalid or already expired.
|
282 |
+
return false;
|
283 |
+
}
|
284 |
+
|
285 |
+
$expiration = $version_info['expires'];
|
286 |
+
$days_left = ( $expiration - time() ) / DAY_IN_SECONDS;
|
287 |
+
if ( $days_left > 30 ) {
|
288 |
+
return false;
|
289 |
+
}
|
290 |
+
|
291 |
+
return $days_left;
|
292 |
+
}
|
293 |
+
|
294 |
+
/**
|
295 |
+
* @since 4.08
|
296 |
+
*/
|
297 |
+
private static function get_primary_license_info() {
|
298 |
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
299 |
if ( empty( $installed_addons ) || ! isset( $installed_addons['formidable_pro'] ) ) {
|
300 |
return false;
|
303 |
'formidable_pro' => $installed_addons['formidable_pro'],
|
304 |
);
|
305 |
|
306 |
+
return self::fill_update_addon_info( $installed_addons );
|
|
|
|
|
|
|
|
|
|
|
307 |
}
|
308 |
|
309 |
/**
|
819 |
// The plugin was installed, but not active. Download it now.
|
820 |
self::ajax_install_addon();
|
821 |
} else {
|
822 |
+
$response['active'] = true;
|
823 |
+
$response['success'] = true;
|
824 |
}
|
825 |
|
826 |
echo json_encode( $response );
|
834 |
|
835 |
self::install_addon_permissions();
|
836 |
|
837 |
+
self::download_and_activate();
|
838 |
+
|
839 |
+
// Send back a response.
|
840 |
+
echo json_encode( __( 'Your plugin has been installed. Please reload the page to see more options.', 'formidable' ) );
|
841 |
+
wp_die();
|
842 |
+
}
|
843 |
+
|
844 |
+
/**
|
845 |
+
* @since 4.08
|
846 |
+
*/
|
847 |
+
private static function download_and_activate() {
|
848 |
// Set the current screen to avoid undefined notices.
|
849 |
+
if ( is_admin() ) {
|
850 |
+
global $hook_suffix;
|
851 |
+
set_current_screen();
|
852 |
+
}
|
853 |
|
854 |
self::maybe_show_cred_form();
|
855 |
|
856 |
$installed = self::install_addon();
|
857 |
+
if ( is_array( $installed ) && isset( $installed['message'] ) ) {
|
858 |
+
return $installed;
|
859 |
+
}
|
860 |
self::maybe_activate_addon( $installed );
|
|
|
|
|
|
|
|
|
861 |
}
|
862 |
|
863 |
/**
|
864 |
* @since 3.04.02
|
865 |
*/
|
866 |
private static function maybe_show_cred_form() {
|
867 |
+
if ( ! function_exists( 'request_filesystem_credentials' ) ) {
|
868 |
+
include_once( ABSPATH . 'wp-admin/includes/file.php' );
|
869 |
+
}
|
870 |
+
|
871 |
// Start output bufferring to catch the filesystem form if credentials are needed.
|
872 |
ob_start();
|
873 |
|
885 |
}
|
886 |
|
887 |
if ( $show_form ) {
|
888 |
+
$form = ob_get_clean();
|
889 |
+
$message = __( 'Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually.', 'formidable' );
|
890 |
+
$data = $form;
|
891 |
+
$response = array(
|
892 |
+
'success' => false,
|
893 |
+
'message' => $message,
|
894 |
+
'form' => $form,
|
895 |
+
);
|
896 |
+
wp_send_json( $response );
|
897 |
}
|
898 |
|
899 |
ob_end_clean();
|
917 |
// Flush the cache and return the newly installed plugin basename.
|
918 |
wp_cache_flush();
|
919 |
|
920 |
+
$plugin = $installer->plugin_info();
|
921 |
+
if ( empty( $plugin ) ) {
|
922 |
+
return array(
|
923 |
+
'message' => 'Plugin was not installed. ' . $installer->result,
|
924 |
+
'success' => false,
|
925 |
+
);
|
926 |
+
}
|
927 |
+
return $plugin;
|
928 |
}
|
929 |
|
930 |
/**
|
992 |
if ( is_wp_error( $activate ) ) {
|
993 |
// Ignore the invalid header message that shows with nested plugins.
|
994 |
if ( $activate->get_error_code() !== 'no_plugin_header' ) {
|
995 |
+
if ( wp_doing_ajax() ) {
|
996 |
+
echo json_encode( array( 'error' => $activate->get_error_message() ) );
|
997 |
+
wp_die();
|
998 |
+
}
|
999 |
+
return array(
|
1000 |
+
'message' => $activate->get_error_message(),
|
1001 |
+
'success' => false,
|
1002 |
+
);
|
1003 |
}
|
1004 |
}
|
1005 |
}
|
1018 |
}
|
1019 |
}
|
1020 |
|
1021 |
+
/**
|
1022 |
+
* @since 4.08
|
1023 |
+
*/
|
1024 |
+
public static function connect_link() {
|
1025 |
+
$auth = get_option( 'frm_connect_token' );
|
1026 |
+
if ( empty( $auth ) ) {
|
1027 |
+
$auth = hash( 'sha512', wp_rand() );
|
1028 |
+
update_option( 'frm_connect_token', $auth );
|
1029 |
+
}
|
1030 |
+
$link = FrmAppHelper::admin_upgrade_link( 'connect', 'api-connect' );
|
1031 |
+
$args = array(
|
1032 |
+
'v' => 2,
|
1033 |
+
'siteurl' => FrmAppHelper::site_url(),
|
1034 |
+
'url' => get_rest_url(),
|
1035 |
+
'token' => $auth,
|
1036 |
+
'l' => self::get_pro_license(),
|
1037 |
+
);
|
1038 |
+
|
1039 |
+
return add_query_arg( $args, $link );
|
1040 |
+
}
|
1041 |
+
|
1042 |
+
/**
|
1043 |
+
* Check the auth value for install permission.
|
1044 |
+
*
|
1045 |
+
* @since 4.08
|
1046 |
+
*
|
1047 |
+
* @return bool
|
1048 |
+
*/
|
1049 |
+
public static function can_install_addon_api() {
|
1050 |
+
// Verify params present (auth & download link).
|
1051 |
+
$post_auth = FrmAppHelper::get_param( 'token', '', 'request', 'sanitize_text_field' );
|
1052 |
+
$post_url = FrmAppHelper::get_param( 'file_url', '', 'request', 'sanitize_text_field' );
|
1053 |
+
|
1054 |
+
if ( empty( $post_auth ) || empty( $post_url ) ) {
|
1055 |
+
return false;
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
// Verify auth.
|
1059 |
+
$auth = get_option( 'frm_connect_token' );
|
1060 |
+
if ( empty( $auth ) || ! hash_equals( $auth, $post_auth ) ) {
|
1061 |
+
return false;
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
return true;
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
/**
|
1068 |
+
* Install and/or activate the add-on file.
|
1069 |
+
*
|
1070 |
+
* @since 4.08
|
1071 |
+
*/
|
1072 |
+
public static function install_addon_api() {
|
1073 |
+
// Sanitize when it's used to prevent double sanitizing.
|
1074 |
+
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput
|
1075 |
+
$_POST['plugin'] = isset( $_REQUEST['file_url'] ) ? $_REQUEST['file_url'] : ''; // Set for later use
|
1076 |
+
|
1077 |
+
$error = esc_html__( 'Could not install an upgrade. Please download from formidableforms.com and install manually.', 'formidable' );
|
1078 |
+
|
1079 |
+
// Delete so cannot replay.
|
1080 |
+
delete_option( 'frm_connect_token' );
|
1081 |
+
|
1082 |
+
// It's already installed and active.
|
1083 |
+
$active = activate_plugin( 'formidable-pro/formidable-pro.php', false, false, true );
|
1084 |
+
if ( is_wp_error( $active ) ) {
|
1085 |
+
// Download plugin now.
|
1086 |
+
$response = self::download_and_activate();
|
1087 |
+
if ( is_array( $response ) && isset( $response['success'] ) ) {
|
1088 |
+
return $response;
|
1089 |
+
}
|
1090 |
+
}
|
1091 |
+
|
1092 |
+
// If empty license, save it now.
|
1093 |
+
if ( empty( self::get_pro_license() ) && function_exists( 'load_formidable_pro' ) ) {
|
1094 |
+
load_formidable_pro();
|
1095 |
+
$license = stripslashes( FrmAppHelper::get_param( 'key', '', 'request', 'sanitize_text_field' ) );
|
1096 |
+
if ( empty( $license ) ) {
|
1097 |
+
return array(
|
1098 |
+
'success' => false,
|
1099 |
+
'error' => 'That site does not have a valid license key.',
|
1100 |
+
);
|
1101 |
+
}
|
1102 |
+
|
1103 |
+
$response = FrmAddon::activate_license_for_plugin( $license, 'formidable_pro' );
|
1104 |
+
if ( ! $response['success'] ) {
|
1105 |
+
// Could not activate license.
|
1106 |
+
return $response;
|
1107 |
+
}
|
1108 |
+
}
|
1109 |
+
|
1110 |
+
return array(
|
1111 |
+
'success' => true,
|
1112 |
+
);
|
1113 |
+
}
|
1114 |
+
|
1115 |
/**
|
1116 |
* @since 3.04.03
|
1117 |
* @deprecated 3.06
|
classes/controllers/FrmAppController.php
CHANGED
@@ -461,6 +461,14 @@ class FrmAppController {
|
|
461 |
);
|
462 |
|
463 |
register_rest_route( 'frm-admin/v1', '/install', $args );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
464 |
}
|
465 |
|
466 |
/**
|
461 |
);
|
462 |
|
463 |
register_rest_route( 'frm-admin/v1', '/install', $args );
|
464 |
+
|
465 |
+
$args = array(
|
466 |
+
'methods' => 'GET',
|
467 |
+
'callback' => 'FrmAddonsController::install_addon_api',
|
468 |
+
'permission_callback' => 'FrmAddonsController::can_install_addon_api',
|
469 |
+
);
|
470 |
+
|
471 |
+
register_rest_route( 'frm-admin/v1', '/install-addon', $args );
|
472 |
}
|
473 |
|
474 |
/**
|
classes/controllers/FrmFormActionsController.php
CHANGED
@@ -54,6 +54,7 @@ class FrmFormActionsController {
|
|
54 |
'constantcontact' => 'FrmDefConstContactAction',
|
55 |
'getresponse' => 'FrmDefGetResponseAction',
|
56 |
'hubspot' => 'FrmDefHubspotAction',
|
|
|
57 |
'twilio' => 'FrmDefTwilioAction',
|
58 |
'highrise' => 'FrmDefHighriseAction',
|
59 |
'mailpoet' => 'FrmDefMailpoetAction',
|
54 |
'constantcontact' => 'FrmDefConstContactAction',
|
55 |
'getresponse' => 'FrmDefGetResponseAction',
|
56 |
'hubspot' => 'FrmDefHubspotAction',
|
57 |
+
'zapier' => 'FrmDefZapierAction',
|
58 |
'twilio' => 'FrmDefTwilioAction',
|
59 |
'highrise' => 'FrmDefHighriseAction',
|
60 |
'mailpoet' => 'FrmDefMailpoetAction',
|
classes/controllers/FrmFormsController.php
CHANGED
@@ -983,6 +983,7 @@ class FrmFormsController {
|
|
983 |
'data' => array(
|
984 |
'medium' => 'permissions',
|
985 |
'upgrade' => __( 'Form Permissions', 'formidable' ),
|
|
|
986 |
),
|
987 |
),
|
988 |
'scheduling' => array(
|
983 |
'data' => array(
|
984 |
'medium' => 'permissions',
|
985 |
'upgrade' => __( 'Form Permissions', 'formidable' ),
|
986 |
+
'message' => __( 'Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions.', 'formidable' ),
|
987 |
),
|
988 |
),
|
989 |
'scheduling' => array(
|
classes/controllers/FrmStylesController.php
CHANGED
@@ -416,7 +416,7 @@ class FrmStylesController {
|
|
416 |
}
|
417 |
|
418 |
public static function include_style_section( $atts, $sec ) {
|
419 |
-
extract( $atts );
|
420 |
$style = $atts['style'];
|
421 |
FrmStylesHelper::prepare_color_output( $style->post_content, false );
|
422 |
|
416 |
}
|
417 |
|
418 |
public static function include_style_section( $atts, $sec ) {
|
419 |
+
extract( $atts ); // phpcs:ignore WordPress.PHP.DontExtract
|
420 |
$style = $atts['style'];
|
421 |
FrmStylesHelper::prepare_color_output( $style->post_content, false );
|
422 |
|
classes/controllers/FrmXMLController.php
CHANGED
@@ -618,7 +618,7 @@ class FrmXMLController {
|
|
618 |
$csv_fields = FrmField::get_all_for_form( $form_id, '', 'include', 'include' );
|
619 |
$no_export_fields = FrmField::no_save_fields();
|
620 |
foreach ( $csv_fields as $k => $f ) {
|
621 |
-
if ( in_array( $f->type, $no_export_fields ) ) {
|
622 |
unset( $csv_fields[ $k ] );
|
623 |
}
|
624 |
}
|
618 |
$csv_fields = FrmField::get_all_for_form( $form_id, '', 'include', 'include' );
|
619 |
$no_export_fields = FrmField::no_save_fields();
|
620 |
foreach ( $csv_fields as $k => $f ) {
|
621 |
+
if ( in_array( $f->type, $no_export_fields, true ) ) {
|
622 |
unset( $csv_fields[ $k ] );
|
623 |
}
|
624 |
}
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
|
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
-
public static $plug_version = '4.
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
@@ -120,13 +120,50 @@ class FrmAppHelper {
|
|
120 |
*/
|
121 |
public static function renewal_message() {
|
122 |
if ( ! FrmAddonsController::is_license_expired() ) {
|
|
|
123 |
return;
|
124 |
}
|
125 |
?>
|
126 |
<div class="frm_error_style" style="text-align:left">
|
127 |
<?php self::icon_by_class( 'frmfont frm_alert_icon' ); ?>
|
128 |
|
129 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
<div style="float:right">
|
131 |
<a href="<?php echo esc_url( self::admin_upgrade_link( 'form-renew', 'account/downloads/' ) ); ?>">
|
132 |
Renew Now
|
@@ -1547,7 +1584,7 @@ class FrmAppHelper {
|
|
1547 |
return false;
|
1548 |
}
|
1549 |
|
1550 |
-
extract( $atts );
|
1551 |
ob_start();
|
1552 |
include( $filename );
|
1553 |
$contents = ob_get_contents();
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
+
public static $plug_version = '4.08';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
120 |
*/
|
121 |
public static function renewal_message() {
|
122 |
if ( ! FrmAddonsController::is_license_expired() ) {
|
123 |
+
self::expiring_message();
|
124 |
return;
|
125 |
}
|
126 |
?>
|
127 |
<div class="frm_error_style" style="text-align:left">
|
128 |
<?php self::icon_by_class( 'frmfont frm_alert_icon' ); ?>
|
129 |
|
130 |
+
<?php esc_html_e( 'Your account has expired', 'formidable' ); ?>
|
131 |
+
<div style="float:right">
|
132 |
+
<a href="<?php echo esc_url( self::admin_upgrade_link( 'form-renew', 'account/downloads/' ) ); ?>">
|
133 |
+
Renew Now
|
134 |
+
</a>
|
135 |
+
</div>
|
136 |
+
</div>
|
137 |
+
<?php
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* @since 4.08
|
142 |
+
*/
|
143 |
+
public static function expiring_message() {
|
144 |
+
$expiring = FrmAddonsController::is_license_expiring();
|
145 |
+
if ( ! $expiring ) {
|
146 |
+
return;
|
147 |
+
}
|
148 |
+
?>
|
149 |
+
<div class="frm_warning_style" style="text-align:left">
|
150 |
+
<?php self::icon_by_class( 'frmfont frm_alert_icon' ); ?>
|
151 |
+
|
152 |
+
<?php
|
153 |
+
printf(
|
154 |
+
esc_html(
|
155 |
+
/* translators: %1$s: start HTML tag, %2$s: end HTML tag */
|
156 |
+
_n(
|
157 |
+
'Your form subscription expires in %1$s day%2$s.',
|
158 |
+
'Your form subscription expires in %1$s days%2$s.',
|
159 |
+
$expiring,
|
160 |
+
'formidable'
|
161 |
+
)
|
162 |
+
),
|
163 |
+
'<strong>' . esc_html( number_format_i18n( $expiring ) ),
|
164 |
+
'</strong>'
|
165 |
+
);
|
166 |
+
?>
|
167 |
<div style="float:right">
|
168 |
<a href="<?php echo esc_url( self::admin_upgrade_link( 'form-renew', 'account/downloads/' ) ); ?>">
|
169 |
Renew Now
|
1584 |
return false;
|
1585 |
}
|
1586 |
|
1587 |
+
extract( $atts ); // phpcs:ignore WordPress.PHP.DontExtract
|
1588 |
ob_start();
|
1589 |
include( $filename );
|
1590 |
$contents = ob_get_contents();
|
classes/helpers/FrmCSVExportHelper.php
CHANGED
@@ -5,16 +5,16 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
5 |
|
6 |
class FrmCSVExportHelper {
|
7 |
|
8 |
-
protected static $separator
|
9 |
protected static $column_separator = ',';
|
10 |
-
protected static $line_break
|
11 |
-
protected static $charset
|
12 |
-
protected static $to_encoding
|
13 |
-
protected static $wp_date_format
|
14 |
-
protected static $comment_count
|
15 |
-
protected static $form_id
|
16 |
-
protected static $headings
|
17 |
-
protected static $fields
|
18 |
protected static $entry;
|
19 |
protected static $has_parent_id;
|
20 |
|
@@ -119,24 +119,89 @@ class FrmCSVExportHelper {
|
|
119 |
self::print_csv_row( $headings );
|
120 |
}
|
121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
private static function csv_headings( &$headings ) {
|
|
|
|
|
|
|
123 |
foreach ( self::$fields as $col ) {
|
124 |
-
$
|
125 |
-
|
126 |
-
|
127 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
}
|
|
|
|
|
129 |
|
130 |
-
|
131 |
-
$
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
)
|
137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
|
139 |
-
$headings
|
|
|
140 |
}
|
141 |
|
142 |
if ( self::$comment_count ) {
|
@@ -250,7 +315,7 @@ class FrmCSVExportHelper {
|
|
250 |
)
|
251 |
);
|
252 |
|
253 |
-
if (
|
254 |
$sep_value = FrmEntriesHelper::display_value(
|
255 |
$field_value,
|
256 |
$col,
|
@@ -306,7 +371,24 @@ class FrmCSVExportHelper {
|
|
306 |
$sep = '';
|
307 |
|
308 |
foreach ( self::$headings as $k => $heading ) {
|
309 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
if ( is_array( $row ) ) {
|
311 |
// implode the repeated field values
|
312 |
$row = implode( self::$separator, FrmAppHelper::array_flatten( $row, 'reset' ) );
|
5 |
|
6 |
class FrmCSVExportHelper {
|
7 |
|
8 |
+
protected static $separator = ', ';
|
9 |
protected static $column_separator = ',';
|
10 |
+
protected static $line_break = 'return';
|
11 |
+
protected static $charset = 'UTF-8';
|
12 |
+
protected static $to_encoding = 'UTF-8';
|
13 |
+
protected static $wp_date_format = 'Y-m-d H:i:s';
|
14 |
+
protected static $comment_count = 0;
|
15 |
+
protected static $form_id = 0;
|
16 |
+
protected static $headings = array();
|
17 |
+
protected static $fields = array();
|
18 |
protected static $entry;
|
19 |
protected static $has_parent_id;
|
20 |
|
119 |
self::print_csv_row( $headings );
|
120 |
}
|
121 |
|
122 |
+
private static function field_headings( $col ) {
|
123 |
+
$field_headings = array();
|
124 |
+
$separate_values = array( 'user_id', 'file', 'data', 'date' );
|
125 |
+
if ( isset( $col->field_options['separate_value'] ) && $col->field_options['separate_value'] && ! in_array( $col->type, $separate_values, true ) ) {
|
126 |
+
$field_headings[ $col->id . '_label' ] = strip_tags( $col->name . ' ' . __( '(label)', 'formidable' ) );
|
127 |
+
}
|
128 |
+
|
129 |
+
$field_headings[ $col->id ] = strip_tags( $col->name );
|
130 |
+
$field_headings = apply_filters(
|
131 |
+
'frm_csv_field_columns',
|
132 |
+
$field_headings,
|
133 |
+
array(
|
134 |
+
'field' => $col,
|
135 |
+
)
|
136 |
+
);
|
137 |
+
|
138 |
+
return $field_headings;
|
139 |
+
}
|
140 |
+
|
141 |
private static function csv_headings( &$headings ) {
|
142 |
+
$fields_by_repeater_id = array();
|
143 |
+
$repeater_ids = array();
|
144 |
+
|
145 |
foreach ( self::$fields as $col ) {
|
146 |
+
if ( $col->form_id === self::$form_id || ! $col->field_options['in_section'] ) {
|
147 |
+
$headings += self::field_headings( $col );
|
148 |
+
} else {
|
149 |
+
$repeater_id = $col->field_options['in_section'];
|
150 |
+
$section = FrmField::getOne( $repeater_id );
|
151 |
+
|
152 |
+
if ( $section && FrmField::is_repeating_field( $section ) ) {
|
153 |
+
$headings[ 'repeater' . $repeater_id ] = array(); // set a placeholder to maintain order for repeater fields
|
154 |
+
|
155 |
+
if ( ! isset( $fields_by_repeater_id[ $repeater_id ] ) ) {
|
156 |
+
$fields_by_repeater_id[ $repeater_id ] = array();
|
157 |
+
$repeater_ids[] = $repeater_id;
|
158 |
+
}
|
159 |
+
|
160 |
+
$fields_by_repeater_id[ $repeater_id ][] = $col;
|
161 |
+
}
|
162 |
}
|
163 |
+
}
|
164 |
+
unset( $repeater_id, $col );
|
165 |
|
166 |
+
if ( $repeater_ids ) {
|
167 |
+
$where = array( 'field_id' => $repeater_ids );
|
168 |
+
$repeater_meta = FrmDb::get_results( 'frm_item_metas', $where, 'field_id, meta_value' );
|
169 |
+
$max = array_fill_keys( $repeater_ids, 0 );
|
170 |
+
|
171 |
+
foreach ( $repeater_meta as $row ) {
|
172 |
+
$start = strpos( $row->meta_value, 'a:' ) + 2;
|
173 |
+
$end = strpos( $row->meta_value, ':{' );
|
174 |
+
$length = substr( $row->meta_value, $start, $end - $start );
|
175 |
+
|
176 |
+
if ( $length > $max[ $row->field_id ] ) {
|
177 |
+
$max[ $row->field_id ] = $length;
|
178 |
+
}
|
179 |
+
}
|
180 |
+
unset( $start, $end, $length, $row, $repeater_meta, $where );
|
181 |
+
|
182 |
+
$flat = array();
|
183 |
+
foreach ( $headings as $key => $heading ) {
|
184 |
+
if ( is_array( $heading ) ) {
|
185 |
+
$repeater_id = str_replace( 'repeater', '', $key );
|
186 |
+
|
187 |
+
$repeater_headings = array();
|
188 |
+
foreach ( $fields_by_repeater_id[ $repeater_id ] as $col ) {
|
189 |
+
$repeater_headings += self::field_headings( $col );
|
190 |
+
}
|
191 |
+
|
192 |
+
for ( $i = 0; $i < $max[ $repeater_id ]; $i ++ ) {
|
193 |
+
foreach ( $repeater_headings as $repeater_key => $repeater_name ) {
|
194 |
+
$flat[ $repeater_key . '[' . $i . ']' ] = $repeater_name;
|
195 |
+
}
|
196 |
+
}
|
197 |
+
} else {
|
198 |
+
$flat[ $key ] = $heading;
|
199 |
+
}
|
200 |
+
}
|
201 |
+
unset( $key, $heading, $max, $repeater_headings, $repeater_id );
|
202 |
|
203 |
+
$headings = $flat;
|
204 |
+
unset( $flat );
|
205 |
}
|
206 |
|
207 |
if ( self::$comment_count ) {
|
315 |
)
|
316 |
);
|
317 |
|
318 |
+
if ( ! empty( $col->field_options['separate_value'] ) ) {
|
319 |
$sep_value = FrmEntriesHelper::display_value(
|
320 |
$field_value,
|
321 |
$col,
|
371 |
$sep = '';
|
372 |
|
373 |
foreach ( self::$headings as $k => $heading ) {
|
374 |
+
if ( isset( $rows[ $k ] ) ) {
|
375 |
+
$row = $rows[ $k ];
|
376 |
+
} else {
|
377 |
+
$row = '';
|
378 |
+
// array indexed data is not at $rows[ $k ]
|
379 |
+
if ( $k[ strlen( $k ) - 1 ] === ']' ) {
|
380 |
+
$start = strrpos( $k, '[' );
|
381 |
+
$key = substr( $k, 0, $start ++ );
|
382 |
+
$index = substr( $k, $start, strlen( $k ) - 1 - $start );
|
383 |
+
|
384 |
+
if ( isset( $rows[ $key ] ) && isset( $rows[ $key ][ $index ] ) ) {
|
385 |
+
$row = $rows[ $key ][ $index ];
|
386 |
+
}
|
387 |
+
|
388 |
+
unset( $start, $key, $index );
|
389 |
+
}
|
390 |
+
}
|
391 |
+
|
392 |
if ( is_array( $row ) ) {
|
393 |
// implode the repeated field values
|
394 |
$row = implode( self::$separator, FrmAppHelper::array_flatten( $row, 'reset' ) );
|
classes/helpers/FrmEntriesListHelper.php
CHANGED
@@ -336,4 +336,11 @@ class FrmEntriesListHelper extends FrmListHelper {
|
|
336 |
|
337 |
$val = FrmEntriesHelper::prepare_display_value( $item, $field, $atts );
|
338 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
339 |
}
|
336 |
|
337 |
$val = FrmEntriesHelper::prepare_display_value( $item, $field, $atts );
|
338 |
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* @return string
|
342 |
+
*/
|
343 |
+
protected function confirm_bulk_delete() {
|
344 |
+
return __( 'ALL selected entries in this form will be permanently deleted. Want to proceed?', 'formidable' );
|
345 |
+
}
|
346 |
}
|
classes/helpers/FrmFormsListHelper.php
CHANGED
@@ -352,4 +352,11 @@ class FrmFormsListHelper extends FrmListHelper {
|
|
352 |
$val .= FrmAppHelper::truncate( strip_tags( $item->description ), 50 );
|
353 |
}
|
354 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
}
|
352 |
$val .= FrmAppHelper::truncate( strip_tags( $item->description ), 50 );
|
353 |
}
|
354 |
}
|
355 |
+
|
356 |
+
/**
|
357 |
+
* @return string
|
358 |
+
*/
|
359 |
+
protected function confirm_bulk_delete() {
|
360 |
+
return __( 'ALL selected forms and their entries will be permanently deleted. Want to proceed?', 'formidable' );
|
361 |
+
}
|
362 |
}
|
classes/helpers/FrmListHelper.php
CHANGED
@@ -398,10 +398,25 @@ class FrmListHelper {
|
|
398 |
|
399 |
echo "</select>\n";
|
400 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
401 |
submit_button( __( 'Apply', 'formidable' ), 'action', '', false, array( 'id' => "doaction$two" ) );
|
402 |
echo "\n";
|
403 |
}
|
404 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
405 |
/**
|
406 |
* Get the current action selected from the bulk actions dropdown.
|
407 |
*
|
398 |
|
399 |
echo "</select>\n";
|
400 |
|
401 |
+
if ( isset( $this->_actions['bulk_delete'] ) ) {
|
402 |
+
$verify = $this->confirm_bulk_delete();
|
403 |
+
|
404 |
+
if ( $verify ) {
|
405 |
+
echo "<a id='confirm-bulk-delete-" . esc_attr( $which ) . "' class='frm-hidden' href='confirm-bulk-delete' data-frmcaution='" . esc_html__( 'Heads up', 'formidable' ) . "' data-frmverify='" . esc_attr( $verify ) . "'></a>";
|
406 |
+
}
|
407 |
+
}
|
408 |
+
|
409 |
submit_button( __( 'Apply', 'formidable' ), 'action', '', false, array( 'id' => "doaction$two" ) );
|
410 |
echo "\n";
|
411 |
}
|
412 |
|
413 |
+
/**
|
414 |
+
* @return string if empty there will be no confirmation pop up
|
415 |
+
*/
|
416 |
+
protected function confirm_bulk_delete() {
|
417 |
+
return '';
|
418 |
+
}
|
419 |
+
|
420 |
/**
|
421 |
* Get the current action selected from the bulk actions dropdown.
|
422 |
*
|
classes/helpers/FrmXMLHelper.php
CHANGED
@@ -186,10 +186,13 @@ class FrmXMLHelper {
|
|
186 |
|
187 |
// Keep track of whether this specific form was updated or not.
|
188 |
$imported['form_status'][ $form_id ] = 'imported';
|
189 |
-
self::track_imported_child_forms( (int) $form_id, $form['parent_form_id'], $child_forms );
|
190 |
}
|
191 |
}
|
192 |
|
|
|
|
|
|
|
|
|
193 |
self::import_xml_fields( $item->field, $form_id, $this_form, $form_fields, $imported );
|
194 |
|
195 |
self::delete_removed_fields( $form_fields );
|
@@ -340,12 +343,11 @@ class FrmXMLHelper {
|
|
340 |
*/
|
341 |
private static function maybe_update_child_form_parent_id( $imported_forms, $child_forms ) {
|
342 |
foreach ( $child_forms as $child_form_id => $old_parent_form_id ) {
|
343 |
-
|
344 |
-
if ( isset( $imported_forms[ $old_parent_form_id ] ) && $imported_forms[ $old_parent_form_id ] != $old_parent_form_id ) {
|
345 |
// Update all children with this old parent_form_id
|
346 |
$new_parent_form_id = (int) $imported_forms[ $old_parent_form_id ];
|
347 |
-
|
348 |
FrmForm::update( $child_form_id, array( 'parent_form_id' => $new_parent_form_id ) );
|
|
|
349 |
}
|
350 |
}
|
351 |
}
|
@@ -463,10 +465,9 @@ class FrmXMLHelper {
|
|
463 |
}
|
464 |
|
465 |
/**
|
466 |
-
* Update the current in_section value
|
467 |
*
|
468 |
* @since 2.0.25
|
469 |
-
*
|
470 |
* @param int $in_section
|
471 |
* @param array $f
|
472 |
*/
|
186 |
|
187 |
// Keep track of whether this specific form was updated or not.
|
188 |
$imported['form_status'][ $form_id ] = 'imported';
|
|
|
189 |
}
|
190 |
}
|
191 |
|
192 |
+
if ( $form_id ) {
|
193 |
+
self::track_imported_child_forms( (int) $form_id, $form['parent_form_id'], $child_forms );
|
194 |
+
}
|
195 |
+
|
196 |
self::import_xml_fields( $item->field, $form_id, $this_form, $form_fields, $imported );
|
197 |
|
198 |
self::delete_removed_fields( $form_fields );
|
343 |
*/
|
344 |
private static function maybe_update_child_form_parent_id( $imported_forms, $child_forms ) {
|
345 |
foreach ( $child_forms as $child_form_id => $old_parent_form_id ) {
|
346 |
+
if ( isset( $imported_forms[ $old_parent_form_id ] ) && (int) $imported_forms[ $old_parent_form_id ] !== (int) $old_parent_form_id ) {
|
|
|
347 |
// Update all children with this old parent_form_id
|
348 |
$new_parent_form_id = (int) $imported_forms[ $old_parent_form_id ];
|
|
|
349 |
FrmForm::update( $child_form_id, array( 'parent_form_id' => $new_parent_form_id ) );
|
350 |
+
do_action( 'frm_update_child_form_parent_id', $child_form_id, $new_parent_form_id );
|
351 |
}
|
352 |
}
|
353 |
}
|
465 |
}
|
466 |
|
467 |
/**
|
468 |
+
* Update the current in_section value at the beginning of the field loop
|
469 |
*
|
470 |
* @since 2.0.25
|
|
|
471 |
* @param int $in_section
|
472 |
* @param array $f
|
473 |
*/
|
classes/models/FrmAddon.php
CHANGED
@@ -475,13 +475,20 @@ class FrmAddon {
|
|
475 |
}
|
476 |
|
477 |
$plugin_slug = FrmAppHelper::get_param( 'plugin', '', 'post', 'sanitize_text_field' );
|
478 |
-
$
|
479 |
-
$response = $this_plugin->activate_license( $license );
|
480 |
|
481 |
echo json_encode( $response );
|
482 |
wp_die();
|
483 |
}
|
484 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
private function activate_license( $license ) {
|
486 |
$this->set_license( $license );
|
487 |
$this->license = $license;
|
475 |
}
|
476 |
|
477 |
$plugin_slug = FrmAppHelper::get_param( 'plugin', '', 'post', 'sanitize_text_field' );
|
478 |
+
$response = self::activate_license_for_plugin( $license, $plugin_slug );
|
|
|
479 |
|
480 |
echo json_encode( $response );
|
481 |
wp_die();
|
482 |
}
|
483 |
|
484 |
+
/**
|
485 |
+
* @since 4.08
|
486 |
+
*/
|
487 |
+
public static function activate_license_for_plugin( $license, $plugin_slug ) {
|
488 |
+
$this_plugin = self::get_addon( $plugin_slug );
|
489 |
+
return $this_plugin->activate_license( $license );
|
490 |
+
}
|
491 |
+
|
492 |
private function activate_license( $license ) {
|
493 |
$this->set_license( $license );
|
494 |
$this->license = $license;
|
classes/models/FrmEntryMeta.php
CHANGED
@@ -332,8 +332,21 @@ class FrmEntryMeta {
|
|
332 |
$query = implode( ' ', $query );
|
333 |
|
334 |
$cache_key = 'ids_' . FrmAppHelper::maybe_json_encode( $where ) . $order_by . 'l' . $limit . 'u' . $unique . FrmAppHelper::maybe_json_encode( $args );
|
|
|
|
|
|
|
335 |
|
336 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
337 |
}
|
338 |
|
339 |
/**
|
@@ -343,15 +356,23 @@ class FrmEntryMeta {
|
|
343 |
*/
|
344 |
private static function get_ids_query( $where, $order_by, $limit, $unique, $args, array &$query ) {
|
345 |
global $wpdb;
|
346 |
-
$query[]
|
347 |
-
|
348 |
-
|
|
|
|
|
349 |
$args = array_merge( $defaults, $args );
|
350 |
|
351 |
-
if ( $
|
352 |
-
$query[] =
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
} else {
|
354 |
-
$query[] =
|
355 |
}
|
356 |
|
357 |
$query[] = 'FROM ' . $wpdb->prefix . 'frm_item_metas it LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_fields fi ON it.field_id=fi.id';
|
@@ -390,8 +411,8 @@ class FrmEntryMeta {
|
|
390 |
|
391 |
if ( strpos( $where, ' GROUP BY ' ) ) {
|
392 |
// don't inject WHERE filtering after GROUP BY
|
393 |
-
$parts
|
394 |
-
$where
|
395 |
$where .= $draft_where . $user_where;
|
396 |
$where .= ' GROUP BY ' . $parts[1];
|
397 |
} else {
|
332 |
$query = implode( ' ', $query );
|
333 |
|
334 |
$cache_key = 'ids_' . FrmAppHelper::maybe_json_encode( $where ) . $order_by . 'l' . $limit . 'u' . $unique . FrmAppHelper::maybe_json_encode( $args );
|
335 |
+
$type = 'get_' . ( ' LIMIT 1' === $limit ? 'var' : 'col' );
|
336 |
+
return FrmDb::check_cache( $cache_key, 'frm_entry', $query, $type );
|
337 |
+
}
|
338 |
|
339 |
+
/**
|
340 |
+
* Given a query including a form id and its child form ids, output an array of matching entry ids
|
341 |
+
* If a child entry id is matched, its parent will be returned in its place
|
342 |
+
*
|
343 |
+
* @param array $query
|
344 |
+
* @param array $args
|
345 |
+
* @return array
|
346 |
+
*/
|
347 |
+
public static function get_top_level_entry_ids( $query, $args ) {
|
348 |
+
$args['return_parent_id_if_0_return_id'] = true;
|
349 |
+
return self::getEntryIds( $query, '', '', true, $args );
|
350 |
}
|
351 |
|
352 |
/**
|
356 |
*/
|
357 |
private static function get_ids_query( $where, $order_by, $limit, $unique, $args, array &$query ) {
|
358 |
global $wpdb;
|
359 |
+
$query[] = 'SELECT';
|
360 |
+
$defaults = array(
|
361 |
+
'return_parent_id' => false,
|
362 |
+
'return_parent_id_if_0_return_id' => false,
|
363 |
+
);
|
364 |
$args = array_merge( $defaults, $args );
|
365 |
|
366 |
+
if ( $unique ) {
|
367 |
+
$query[] = 'DISTINCT';
|
368 |
+
}
|
369 |
+
|
370 |
+
if ( $args['return_parent_id_if_0_return_id'] ) {
|
371 |
+
$query[] = 'IF ( e.parent_item_id = 0, it.item_id, e.parent_item_id )';
|
372 |
+
} elseif ( $args['return_parent_id'] ) {
|
373 |
+
$query[] = 'e.parent_item_id';
|
374 |
} else {
|
375 |
+
$query[] = 'it.item_id';
|
376 |
}
|
377 |
|
378 |
$query[] = 'FROM ' . $wpdb->prefix . 'frm_item_metas it LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_fields fi ON it.field_id=fi.id';
|
411 |
|
412 |
if ( strpos( $where, ' GROUP BY ' ) ) {
|
413 |
// don't inject WHERE filtering after GROUP BY
|
414 |
+
$parts = explode( ' GROUP BY ', $where );
|
415 |
+
$where = $parts[0];
|
416 |
$where .= $draft_where . $user_where;
|
417 |
$where .= ' GROUP BY ' . $parts[1];
|
418 |
} else {
|
classes/models/FrmEntryValidate.php
CHANGED
@@ -113,21 +113,19 @@ class FrmEntryValidate {
|
|
113 |
$errors = apply_filters( 'frm_validate_field_entry', $errors, $posted_field, $value, $args );
|
114 |
}
|
115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
private static function maybe_clear_value_for_default_blank_setting( $field, &$value ) {
|
117 |
-
$
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
if ( ! $is_default ) {
|
122 |
-
$position = FrmField::get_option( $field, 'label' );
|
123 |
-
if ( empty( $position ) ) {
|
124 |
-
$position = FrmStylesController::get_style_val( 'position', $field->form_id );
|
125 |
-
}
|
126 |
-
|
127 |
-
$is_label = ( $position == 'inside' && FrmFieldsHelper::is_placeholder_field_type( $field->type ) && $value == $field->name );
|
128 |
}
|
129 |
|
130 |
-
if ( $
|
131 |
$value = '';
|
132 |
}
|
133 |
}
|
@@ -389,6 +387,10 @@ class FrmEntryValidate {
|
|
389 |
$datas['comment_author_email'] = '';
|
390 |
$datas['comment_author_url'] = '';
|
391 |
|
|
|
|
|
|
|
|
|
392 |
$values = array_filter( $values );
|
393 |
foreach ( $values as $value ) {
|
394 |
if ( ! is_array( $value ) ) {
|
113 |
$errors = apply_filters( 'frm_validate_field_entry', $errors, $posted_field, $value, $args );
|
114 |
}
|
115 |
|
116 |
+
/**
|
117 |
+
* Set $value to an empty string if it matches its label
|
118 |
+
*
|
119 |
+
* @param object $field
|
120 |
+
* @param string $value
|
121 |
+
*/
|
122 |
private static function maybe_clear_value_for_default_blank_setting( $field, &$value ) {
|
123 |
+
$position = FrmField::get_option( $field, 'label' );
|
124 |
+
if ( ! $position ) {
|
125 |
+
$position = FrmStylesController::get_style_val( 'position', $field->form_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
}
|
127 |
|
128 |
+
if ( $position === 'inside' && FrmFieldsHelper::is_placeholder_field_type( $field->type ) && $value === $field->name ) {
|
129 |
$value = '';
|
130 |
}
|
131 |
}
|
387 |
$datas['comment_author_email'] = '';
|
388 |
$datas['comment_author_url'] = '';
|
389 |
|
390 |
+
if ( isset( $values['item_meta'] ) ) {
|
391 |
+
$values = $values['item_meta'];
|
392 |
+
}
|
393 |
+
|
394 |
$values = array_filter( $values );
|
395 |
foreach ( $values as $value ) {
|
396 |
if ( ! is_array( $value ) ) {
|
classes/models/FrmInstallerSkin.php
CHANGED
@@ -67,10 +67,22 @@ class FrmInstallerSkin extends WP_Upgrader_Skin {
|
|
67 |
public function error( $errors ) {
|
68 |
if ( ! empty( $errors ) ) {
|
69 |
if ( ! is_string( $errors ) ) {
|
70 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
}
|
72 |
-
echo json_encode( array( 'error' => $errors ) );
|
73 |
-
wp_die();
|
74 |
}
|
75 |
}
|
76 |
|
67 |
public function error( $errors ) {
|
68 |
if ( ! empty( $errors ) ) {
|
69 |
if ( ! is_string( $errors ) ) {
|
70 |
+
$error = $errors->get_error_message();
|
71 |
+
$message = $errors->get_error_data();
|
72 |
+
$errors = $error . ' ' . $message;
|
73 |
+
}
|
74 |
+
echo json_encode(
|
75 |
+
array(
|
76 |
+
'error' => $errors,
|
77 |
+
'message' => $errors,
|
78 |
+
'success' => false,
|
79 |
+
)
|
80 |
+
);
|
81 |
+
if ( wp_doing_ajax() ) {
|
82 |
+
wp_die();
|
83 |
+
} else {
|
84 |
+
die();
|
85 |
}
|
|
|
|
|
86 |
}
|
87 |
}
|
88 |
|
classes/views/frm-fields/back-end/field-captcha.php
CHANGED
@@ -8,7 +8,7 @@ if ( empty( $frm_settings->pubkey ) ) {
|
|
8 |
?>
|
9 |
<div class="howto frm_no_captcha_text"><?php
|
10 |
/* translators: %1$s: Link HTML, %2$s: End link */
|
11 |
-
printf( esc_html__( 'Your captcha will not appear on your form until you %1$sset up%2$s the Site and Secret Keys', 'formidable' ), '<a href="?page=formidable-settings">', '</a>' );
|
12 |
?></div>
|
13 |
<?php } ?>
|
14 |
<img src="<?php echo esc_url( FrmAppHelper::plugin_url() . '/images/recaptcha.png' ); ?>" class="recaptcha_placeholder" alt="reCaptcha"/>
|
8 |
?>
|
9 |
<div class="howto frm_no_captcha_text"><?php
|
10 |
/* translators: %1$s: Link HTML, %2$s: End link */
|
11 |
+
printf( esc_html__( 'Your captcha will not appear on your form until you %1$sset up%2$s the Site and Secret Keys', 'formidable' ), '<a href="?page=formidable-settings" target="_blank">', '</a>' );
|
12 |
?></div>
|
13 |
<?php } ?>
|
14 |
<img src="<?php echo esc_url( FrmAppHelper::plugin_url() . '/images/recaptcha.png' ); ?>" class="recaptcha_placeholder" alt="reCaptcha"/>
|
classes/views/frm-form-actions/_action_inside.php
CHANGED
@@ -66,6 +66,11 @@ do_action( 'frm_additional_action_settings', $form_action, $pass_args );
|
|
66 |
// Show Conditional logic indicator.
|
67 |
if ( ! FrmAppHelper::pro_is_installed() ) {
|
68 |
?>
|
|
|
|
|
|
|
|
|
|
|
69 |
<h3>
|
70 |
<a href="javascript:void(0)" class="frm_show_upgrade frm_noallow" data-upgrade="<?php esc_attr_e( 'Conditional emails', 'formidable' ); ?>" data-medium="conditional-email">
|
71 |
<?php esc_html_e( 'Use Conditional Logic', 'formidable' ); ?>
|
66 |
// Show Conditional logic indicator.
|
67 |
if ( ! FrmAppHelper::pro_is_installed() ) {
|
68 |
?>
|
69 |
+
<h3>
|
70 |
+
<a href="javascript:void(0)" class="frm_show_upgrade frm_noallow" data-upgrade="<?php esc_attr_e( 'Email attachments', 'formidable' ); ?>" data-medium="email-attachment">
|
71 |
+
<?php esc_html_e( 'Attachment', 'formidable' ); ?>
|
72 |
+
</a>
|
73 |
+
</h3>
|
74 |
<h3>
|
75 |
<a href="javascript:void(0)" class="frm_show_upgrade frm_noallow" data-upgrade="<?php esc_attr_e( 'Conditional emails', 'formidable' ); ?>" data-medium="conditional-email">
|
76 |
<?php esc_html_e( 'Use Conditional Logic', 'formidable' ); ?>
|
classes/views/frm-form-actions/default_actions.php
CHANGED
@@ -52,6 +52,14 @@ class FrmDefMlcmpAction extends FrmFormAction {
|
|
52 |
}
|
53 |
}
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
// add twilio action
|
56 |
class FrmDefTwilioAction extends FrmFormAction {
|
57 |
public function __construct() {
|
52 |
}
|
53 |
}
|
54 |
|
55 |
+
// add zapier action
|
56 |
+
class FrmDefZapierAction extends FrmFormAction {
|
57 |
+
public function __construct() {
|
58 |
+
$action_ops = FrmFormAction::default_action_opts( 'frm_zapier_icon frm_show_upgrade' );
|
59 |
+
parent::__construct( 'zapier', 'Zapier', $action_ops );
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
// add twilio action
|
64 |
class FrmDefTwilioAction extends FrmFormAction {
|
65 |
public function __construct() {
|
classes/views/frm-form-actions/email_action.php
CHANGED
@@ -20,7 +20,7 @@ class FrmEmailAction extends FrmFormAction {
|
|
20 |
}
|
21 |
|
22 |
public function form( $form_action, $args = array() ) {
|
23 |
-
extract( $args );
|
24 |
|
25 |
include FrmAppHelper::plugin_path() . '/classes/views/frm-form-actions/_email_settings.php';
|
26 |
}
|
20 |
}
|
21 |
|
22 |
public function form( $form_action, $args = array() ) {
|
23 |
+
extract( $args ); // phpcs:ignore WordPress.PHP.DontExtract
|
24 |
|
25 |
include FrmAppHelper::plugin_path() . '/classes/views/frm-form-actions/_email_settings.php';
|
26 |
}
|
classes/views/frm-settings/general.php
CHANGED
@@ -6,7 +6,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
6 |
<div class="frm_license_box">
|
7 |
<h3 class="frm-no-border frm_no_top_margin"><?php esc_html_e( 'License Key', 'formidable' ); ?></h3>
|
8 |
<p class="howto">
|
9 |
-
<?php esc_html_e( 'Your license key provides access to
|
10 |
</p>
|
11 |
|
12 |
<?php do_action( 'frm_before_settings' ); ?>
|
6 |
<div class="frm_license_box">
|
7 |
<h3 class="frm-no-border frm_no_top_margin"><?php esc_html_e( 'License Key', 'formidable' ); ?></h3>
|
8 |
<p class="howto">
|
9 |
+
<?php esc_html_e( 'Your license key provides access to new features and updates.', 'formidable' ); ?>
|
10 |
</p>
|
11 |
|
12 |
<?php do_action( 'frm_before_settings' ); ?>
|
classes/views/frm-settings/license_box.php
CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
5 |
?>
|
6 |
<div id="frm_license_top" class="frm_unauthorized_box">
|
7 |
<p id="frm-connect-btns" class="frm-show-unauthorized">
|
8 |
-
<a href="<?php echo esc_url(
|
9 |
<?php esc_html_e( 'Connect an Account', 'formidable' ); ?>
|
10 |
</a>
|
11 |
or
|
5 |
?>
|
6 |
<div id="frm_license_top" class="frm_unauthorized_box">
|
7 |
<p id="frm-connect-btns" class="frm-show-unauthorized">
|
8 |
+
<a href="<?php echo esc_url( FrmAddonsController::connect_link() ); ?>" class="button-primary frm-button-primary">
|
9 |
<?php esc_html_e( 'Connect an Account', 'formidable' ); ?>
|
10 |
</a>
|
11 |
or
|
css/_single_theme.css.php
CHANGED
@@ -4,7 +4,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
4 |
}
|
5 |
|
6 |
$settings = FrmStylesHelper::get_settings_for_output( $style );
|
7 |
-
extract( $settings );
|
8 |
|
9 |
$important = empty( $important_style ) ? '' : ' !important';
|
10 |
|
4 |
}
|
5 |
|
6 |
$settings = FrmStylesHelper::get_settings_for_output( $style );
|
7 |
+
extract( $settings ); // phpcs:ignore WordPress.PHP.DontExtract
|
8 |
|
9 |
$important = empty( $important_style ) ? '' : ' !important';
|
10 |
|
css/frm_admin.css
CHANGED
@@ -1731,6 +1731,10 @@ h2.frm-h2 + .howto {
|
|
1731 |
}
|
1732 |
|
1733 |
/* Add-on tiles */
|
|
|
|
|
|
|
|
|
1734 |
.frm-addons .plugin-card-top {
|
1735 |
height: 140px;
|
1736 |
padding-top: 30px;
|
@@ -1783,13 +1787,11 @@ h2.frm-h2 + .howto {
|
|
1783 |
|
1784 |
.frm-addon-error {
|
1785 |
position: absolute;
|
1786 |
-
|
|
|
|
|
1787 |
font-weight: bold;
|
1788 |
text-align: center;
|
1789 |
-
max-width: 291px;
|
1790 |
-
margin: 0;
|
1791 |
-
margin-top: -205px;
|
1792 |
-
margin-left: -17px;
|
1793 |
}
|
1794 |
|
1795 |
/* Form Templates */
|
1731 |
}
|
1732 |
|
1733 |
/* Add-on tiles */
|
1734 |
+
.frm-addons .frm-card.frm-addon-not-installed {
|
1735 |
+
position: relative;
|
1736 |
+
}
|
1737 |
+
|
1738 |
.frm-addons .plugin-card-top {
|
1739 |
height: 140px;
|
1740 |
padding-top: 30px;
|
1787 |
|
1788 |
.frm-addon-error {
|
1789 |
position: absolute;
|
1790 |
+
top: 55px;
|
1791 |
+
left: 10px;
|
1792 |
+
right: 10px;
|
1793 |
font-weight: bold;
|
1794 |
text-align: center;
|
|
|
|
|
|
|
|
|
1795 |
}
|
1796 |
|
1797 |
/* Form Templates */
|
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.
|
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.08
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
js/formidable.js
CHANGED
@@ -151,7 +151,7 @@ function frmFrontFormJS() {
|
|
151 |
}
|
152 |
|
153 |
function validateForm( object ) {
|
154 |
-
var r, rl, n, nl,
|
155 |
errors = [];
|
156 |
|
157 |
// Make sure required text field is filled in
|
@@ -164,7 +164,6 @@ function frmFrontFormJS() {
|
|
164 |
}
|
165 |
}
|
166 |
|
167 |
-
emailFields = jQuery( object ).find( 'input[type=email]' ).filter( ':visible' );
|
168 |
fields = jQuery( object ).find( 'input,select,textarea' );
|
169 |
if ( fields.length ) {
|
170 |
for ( n = 0, nl = fields.length; n < nl; n++ ) {
|
@@ -176,7 +175,9 @@ function frmFrontFormJS() {
|
|
176 |
} else if ( field.type === 'number' ) {
|
177 |
errors = checkNumberField( field, errors );
|
178 |
} else if ( field.type === 'email' ) {
|
179 |
-
errors = checkEmailField( field, errors
|
|
|
|
|
180 |
} else if ( field.type === 'url' ) {
|
181 |
errors = checkUrlField( field, errors );
|
182 |
} else if ( field.pattern !== null ) {
|
@@ -209,7 +210,7 @@ function frmFrontFormJS() {
|
|
209 |
}
|
210 |
|
211 |
function validateField( fieldId, field ) {
|
212 |
-
var key,
|
213 |
errors = [];
|
214 |
|
215 |
var $fieldCont = jQuery( field ).closest( '.frm_form_field' );
|
@@ -219,8 +220,9 @@ function frmFrontFormJS() {
|
|
219 |
|
220 |
if ( errors.length < 1 ) {
|
221 |
if ( field.type === 'email' ) {
|
222 |
-
|
223 |
-
|
|
|
224 |
} else if ( field.type === 'number' ) {
|
225 |
errors = checkNumberField( field, errors );
|
226 |
} else if ( field.type === 'url' ) {
|
@@ -337,34 +339,45 @@ function frmFrontFormJS() {
|
|
337 |
return errors;
|
338 |
}
|
339 |
|
340 |
-
function checkEmailField( field, errors
|
341 |
-
var
|
342 |
-
|
343 |
-
fieldID = getFieldId( field, true );
|
344 |
|
345 |
-
|
346 |
-
|
|
|
347 |
}
|
348 |
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
}
|
|
|
|
|
366 |
}
|
367 |
-
return errors;
|
368 |
}
|
369 |
|
370 |
function checkNumberField( field, errors ) {
|
151 |
}
|
152 |
|
153 |
function validateForm( object ) {
|
154 |
+
var r, rl, n, nl, fields, field, value, requiredFields,
|
155 |
errors = [];
|
156 |
|
157 |
// Make sure required text field is filled in
|
164 |
}
|
165 |
}
|
166 |
|
|
|
167 |
fields = jQuery( object ).find( 'input,select,textarea' );
|
168 |
if ( fields.length ) {
|
169 |
for ( n = 0, nl = fields.length; n < nl; n++ ) {
|
175 |
} else if ( field.type === 'number' ) {
|
176 |
errors = checkNumberField( field, errors );
|
177 |
} else if ( field.type === 'email' ) {
|
178 |
+
errors = checkEmailField( field, errors );
|
179 |
+
} else if ( field.type === 'password' ) {
|
180 |
+
errors = checkPasswordField( field, errors );
|
181 |
} else if ( field.type === 'url' ) {
|
182 |
errors = checkUrlField( field, errors );
|
183 |
} else if ( field.pattern !== null ) {
|
210 |
}
|
211 |
|
212 |
function validateField( fieldId, field ) {
|
213 |
+
var key,
|
214 |
errors = [];
|
215 |
|
216 |
var $fieldCont = jQuery( field ).closest( '.frm_form_field' );
|
220 |
|
221 |
if ( errors.length < 1 ) {
|
222 |
if ( field.type === 'email' ) {
|
223 |
+
errors = checkEmailField( field, errors );
|
224 |
+
} else if ( field.type === 'password' ) {
|
225 |
+
errors = checkPasswordField( field, errors );
|
226 |
} else if ( field.type === 'number' ) {
|
227 |
errors = checkNumberField( field, errors );
|
228 |
} else if ( field.type === 'url' ) {
|
339 |
return errors;
|
340 |
}
|
341 |
|
342 |
+
function checkEmailField( field, errors ) {
|
343 |
+
var fieldID = getFieldId( field, true ),
|
344 |
+
pattern = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i;
|
|
|
345 |
|
346 |
+
// validate the current field we're editing first
|
347 |
+
if ( '' !== field.value && pattern.test( field.value ) === false ) {
|
348 |
+
errors[ fieldID ] = getFieldValidationMessage( field, 'data-invmsg' );
|
349 |
}
|
350 |
|
351 |
+
confirmField( field, errors );
|
352 |
+
return errors;
|
353 |
+
}
|
354 |
+
|
355 |
+
function checkPasswordField( field, errors ) {
|
356 |
+
confirmField( field, errors );
|
357 |
+
return errors;
|
358 |
+
}
|
359 |
+
|
360 |
+
function confirmField( field, errors ) {
|
361 |
+
var value, confirmValue, firstField,
|
362 |
+
fieldID = getFieldId( field, true ),
|
363 |
+
strippedId = field.id.replace( 'conf_', '' ),
|
364 |
+
strippedFieldID = fieldID.replace( 'conf_', '' ),
|
365 |
+
confirmField = document.getElementById( strippedId.replace( 'field_', 'field_conf_' ) );
|
366 |
+
|
367 |
+
if ( confirmField === null || typeof errors[ 'conf_' + strippedFieldID ] !== 'undefined' ) {
|
368 |
+
return;
|
369 |
+
}
|
370 |
+
|
371 |
+
if ( fieldID !== strippedFieldID ) {
|
372 |
+
firstField = document.getElementById( strippedId );
|
373 |
+
value = firstField.value;
|
374 |
+
confirmValue = confirmField.value;
|
375 |
+
if ( '' !== value && '' !== confirmValue && value !== confirmValue ) {
|
376 |
+
errors[ 'conf_' + strippedFieldID ] = getFieldValidationMessage( confirmField, 'data-confmsg' );
|
377 |
}
|
378 |
+
} else {
|
379 |
+
validateField( 'conf_' + strippedFieldID, confirmField );
|
380 |
}
|
|
|
381 |
}
|
382 |
|
383 |
function checkNumberField( field, errors ) {
|
js/formidable.min.js
CHANGED
@@ -2,54 +2,55 @@ var frmFrontForm;
|
|
2 |
function frmFrontFormJS(){var action="";var jsErrors=[];function maybeShowLabel(){var $field=jQuery(this),$label=$field.closest(".frm_inside_container").find(".frm_primary_label"),val=$field.val();if(val!==null&&val.length>0)$label.addClass("frm_visible");else $label.removeClass("frm_visible")}function getFieldId(field,fullID){var nameParts,fieldId,isRepeating=false,fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName=
|
3 |
"";if(fieldName===""){if(field instanceof jQuery)fieldName=field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}nameParts=fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});fieldId=nameParts[0];if(nameParts.length===1)return fieldId;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;
|
4 |
if(jQuery('input[name="item_meta['+fieldId+'][form]"]').length){fieldId=nameParts[2].replace("[","");isRepeating=true}if("other"===fieldId)if(isRepeating)fieldId=nameParts[3].replace("[","");else fieldId=nameParts[1].replace("[","");if(fullID===true)if(fieldId===nameParts[0])fieldId=fieldId+"-"+nameParts[1].replace("[","");else fieldId=fieldId+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return fieldId}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled",
|
5 |
-
"disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').removeAttr("disabled")}function disableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","none")}function enableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","")}function validateForm(object){var r,rl,n,nl,
|
6 |
-
if(requiredFields.length)for(r=0,rl=requiredFields.length;r<rl;r++)errors=checkRequiredField(requiredFields[r],errors);
|
7 |
-
|
8 |
-
""&&matches===null)field.value="http://"+url}function validateField(fieldId,field){var key,
|
9 |
-
|
10 |
-
|
11 |
-
"
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');
|
17 |
-
|
18 |
-
"");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg=field.getAttribute(messageType);if(msg===null)msg="";return msg}function shouldJSValidate(object){var validate=
|
19 |
-
fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(object).serialize()+"&action=frm_entries_"+
|
20 |
-
0)response=jQuery.parseJSON(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,
|
21 |
-
|
22 |
-
response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+
|
23 |
-
"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection
|
24 |
-
contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);
|
25 |
-
object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').removeAttr("disabled");object.submit()}})}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");
|
26 |
-
if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")
|
27 |
-
response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=
|
28 |
-
input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{$fieldCont.append('<div class="frm_error" id="'+
|
29 |
-
[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby")
|
30 |
-
jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field:first");if(field.length)frmFrontForm.scrollMsg(field,
|
31 |
-
$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}function isGoingToPrevPage($object){return typeof frmProForm!==
|
32 |
-
|
33 |
-
"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");
|
34 |
-
if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entryId,form_id:formId,nonce:frm_js.nonce},
|
35 |
-
|
36 |
-
function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this===void 0||this===
|
37 |
-
[];for(i in
|
38 |
-
|
39 |
-
jQuery("a[data-frmtoggle]").click(toggleDiv);addIndexOfFallbackForIE8();addTrimFallbackForIE8();addFilterFallbackForIE8();addKeysFallbackForIE8()},getFieldId:function(field,fullID){return getFieldId(field,fullID)},renderRecaptcha:function(captcha){var formID,
|
40 |
-
jQuery(captcha).closest("form").find('input[name="form_id"]').val();jQuery(captcha).closest(".frm_form_field .frm_primary_label").hide();params.callback=function(token){frmFrontForm.afterRecaptcha(token,formID)}}recaptchaID=grecaptcha.render(captcha.id,
|
41 |
-
formID+"_container form")[0];frmFrontForm.submitFormNow(object)},submitForm:function(e){frmFrontForm.submitFormManual(e,this)},submitFormManual:function(e,object){var isPro,errors,invisibleRecaptcha=hasInvisibleRecaptcha(object),classList=object.className.trim().split(/\s+/gi);
|
42 |
-
"undefined"&&typeof frmProForm.submitAllowed==="function")if(!frmProForm.submitAllowed(object))return;if(invisibleRecaptcha.length){showLoadingIndicator(jQuery(object));executeInvisibleRecaptcha(invisibleRecaptcha)}else{errors=frmFrontForm.validateFormSubmit(object);
|
43 |
-
|
44 |
-
|
45 |
-
"_container");if($fieldCont.length)addFieldError($fieldCont,key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object)},checkFormErrors:function(object,action){getFormErrors(object,action)},
|
46 |
-
frmFrontForm.scrollMsg(object,false)},scrollMsg:function(id,object,animate){var newPos,m,b,screenTop,screenBottom,scrollObj="";if(typeof object==="undefined"){scrollObj=
|
47 |
-
|
48 |
-
"undefined")
|
49 |
-
|
50 |
-
|
51 |
-
frmProForm.
|
52 |
-
function frmRecaptcha(){var c,cl,captchas=jQuery(".frm-g-recaptcha");for(c=0,cl=captchas.length;c<cl;c++)frmFrontForm.renderRecaptcha(captchas[c])}
|
|
|
53 |
function frmUpdateField(entryId,fieldId,value,message,num){jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:entryId,field_id:fieldId,value:value,nonce:frm_js.nonce},success:function(){if(message.replace(/^\s+|\s+$/g,"")==="")jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).fadeOut("slow");else jQuery(document.getElementById("frm_update_field_"+
|
54 |
entryId+"_"+fieldId+"_"+num)).replaceWith(message)}})}
|
55 |
function frmDeleteEntry(entryId,prefix){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+entryId+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:entryId,nonce:frm_js.nonce},success:function(html){if(html.replace(/^\s+|\s+$/g,"")==="success")jQuery(document.getElementById(prefix+entryId)).fadeOut("slow");
|
2 |
function frmFrontFormJS(){var action="";var jsErrors=[];function maybeShowLabel(){var $field=jQuery(this),$label=$field.closest(".frm_inside_container").find(".frm_primary_label"),val=$field.val();if(val!==null&&val.length>0)$label.addClass("frm_visible");else $label.removeClass("frm_visible")}function getFieldId(field,fullID){var nameParts,fieldId,isRepeating=false,fieldName="";if(field instanceof jQuery)fieldName=field.attr("name");else fieldName=field.name;if(typeof fieldName==="undefined")fieldName=
|
3 |
"";if(fieldName===""){if(field instanceof jQuery)fieldName=field.data("name");else fieldName=field.getAttribute("data-name");if(typeof fieldName==="undefined")fieldName="";if(fieldName!==""&&fieldName)return fieldName;return 0}nameParts=fieldName.replace("item_meta[","").replace("[]","").split("]");if(nameParts.length<1)return 0;nameParts=nameParts.filter(function(n){return n!==""});fieldId=nameParts[0];if(nameParts.length===1)return fieldId;if(nameParts[1]==="[form"||nameParts[1]==="[row_ids")return 0;
|
4 |
if(jQuery('input[name="item_meta['+fieldId+'][form]"]').length){fieldId=nameParts[2].replace("[","");isRepeating=true}if("other"===fieldId)if(isRepeating)fieldId=nameParts[3].replace("[","");else fieldId=nameParts[1].replace("[","");if(fullID===true)if(fieldId===nameParts[0])fieldId=fieldId+"-"+nameParts[1].replace("[","");else fieldId=fieldId+"-"+nameParts[0]+"-"+nameParts[1].replace("[","");return fieldId}function disableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled",
|
5 |
+
"disabled")}function enableSubmitButton($form){$form.find('input[type="submit"], input[type="button"], button[type="submit"]').removeAttr("disabled")}function disableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","none")}function enableSaveDraft($form){$form.find("a.frm_save_draft").css("pointer-events","")}function validateForm(object){var r,rl,n,nl,fields,field,value,requiredFields,errors=[];requiredFields=jQuery(object).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");
|
6 |
+
if(requiredFields.length)for(r=0,rl=requiredFields.length;r<rl;r++)errors=checkRequiredField(requiredFields[r],errors);fields=jQuery(object).find("input,select,textarea");if(fields.length)for(n=0,nl=fields.length;n<nl;n++){field=fields[n];value=field.value;if(value!=="")if(field.type==="hidden");else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);
|
7 |
+
else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors)}errors=validateRecaptcha(object,errors);return errors}function maybeValidateChange(fieldId,field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(fieldId,field)}function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==
|
8 |
+
""&&matches===null)field.value="http://"+url}function validateField(fieldId,field){var key,errors=[];var $fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type==="password")errors=checkPasswordField(field,errors);else if(field.type==="number")errors=checkNumberField(field,errors);
|
9 |
+
else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors);removeFieldError($fieldCont);if(Object.keys(errors).length>0)for(key in errors)addFieldError($fieldCont,key,errors)}function checkRequiredField(field,errors){var checkGroup,fieldClasses,tempVal,i,placeholder,val="",fieldID="",fileID=field.getAttribute("data-frmfile");if(field.type==="hidden"&&fileID===null)return errors;if(field.type==="checkbox"||field.type==="radio"){checkGroup=
|
10 |
+
jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=this.value})}else if(field.type==="file"||fileID){if(typeof fileID==="undefined"){fileID=getFieldId(field,true);fileID=fileID.replace("file","")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);fieldID=fileID}else{fieldClasses=field.className;if(fieldClasses.indexOf("frm_pos_none")!==-1)return errors;val=jQuery(field).val();if(val===null)val="";else if(typeof val!==
|
11 |
+
"string"){tempVal=val;val="";for(i=0;i<tempVal.length;i++)if(tempVal[i]!=="")val=tempVal[i]}if(fieldClasses.indexOf("frm_other_input")===-1)fieldID=getFieldId(field,true);else fieldID=getFieldId(field,false);if(fieldClasses.indexOf("frm_time_select")!==-1)fieldID=fieldID.replace("-H","").replace("-m","");placeholder=field.getAttribute("data-frmplaceholder");if(placeholder!==null&&val===placeholder)val=""}if(val===""){if(fieldID==="")fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=
|
12 |
+
getFieldValidationMessage(field,"data-reqmsg")}return errors}function getFileVals(fileID){var val="",fileFields=jQuery('input[name="file'+fileID+'"], input[name="file'+fileID+'[]"], input[name^="item_meta['+fileID+']"]');fileFields.each(function(){if(val==="")val=this.value});return val}function checkUrlField(field,errors){var fieldID,url=field.value;if(url!==""&&!/^http(s)?:\/\/(?:localhost|(?:[\da-z\.-]+\.[\da-z\.-]+))/i.test(url)){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=
|
13 |
+
getFieldValidationMessage(field,"data-invmsg")}return errors}function checkEmailField(field,errors){var fieldID=getFieldId(field,true),pattern=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i;if(""!==field.value&&pattern.test(field.value)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg");confirmField(field,errors);return errors}function checkPasswordField(field,errors){confirmField(field,
|
14 |
+
errors);return errors}function confirmField(field,errors){var value,confirmValue,firstField,fieldID=getFieldId(field,true),strippedId=field.id.replace("conf_",""),strippedFieldID=fieldID.replace("conf_",""),confirmField=document.getElementById(strippedId.replace("field_","field_conf_"));if(confirmField===null||typeof errors["conf_"+strippedFieldID]!=="undefined")return;if(fieldID!==strippedFieldID){firstField=document.getElementById(strippedId);value=firstField.value;confirmValue=confirmField.value;
|
15 |
+
if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField("conf_"+strippedFieldID,confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,errors){var fieldID,text=
|
16 |
+
field.value,format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');
|
17 |
+
if(recaptcha.length){recaptchaID=recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID=
|
18 |
+
$recaptcha.data("rid");try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg=field.getAttribute(messageType);if(msg===null)msg="";return msg}function shouldJSValidate(object){var validate=
|
19 |
+
jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){var fieldset;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(object).serialize()+"&action=frm_entries_"+
|
20 |
+
action+"&nonce="+frm_js.nonce,success:function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key,inCollapsedSection,frmTrigger,defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=jQuery.parseJSON(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,
|
21 |
+
response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,
|
22 |
+
input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+
|
23 |
+
response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=
|
24 |
+
$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.click()}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);
|
25 |
+
else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(contSubmit)object.submit();else jQuery(object).prepend(response.error_message)}else{showFileLoading(object);object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').removeAttr("disabled");object.submit()}})}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");
|
26 |
+
if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==
|
27 |
+
-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=
|
28 |
+
value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input,id,describedBy;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{$fieldCont.append('<div class="frm_error" id="'+
|
29 |
+
id+'">'+jsErrors[key]+"</div>");if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");
|
30 |
+
$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field:first");if(field.length)frmFrontForm.scrollMsg(field,
|
31 |
+
object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}function isGoingToPrevPage($object){return typeof frmProForm!==
|
32 |
+
"undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,loading=document.getElementById("frm_loading");
|
33 |
+
if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");
|
34 |
+
if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entryId,form_id:formId,nonce:frm_js.nonce},
|
35 |
+
success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");return false}function addIndexOfFallbackForIE8(){var len,from;if(!Array.prototype.indexOf)Array.prototype.indexOf=
|
36 |
+
function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this===void 0||this===
|
37 |
+
null)throw new TypeError;t=Object(this);len=t.length>>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i<len;i++)if(i in t){val=t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res}}function addKeysFallbackForIE8(){var keys,i;if(!Object.keys)Object.keys=function(obj){keys=[];for(i in obj)if(obj.hasOwnProperty(i))keys.push(i);return keys}}return{init:function(){jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",
|
38 |
+
".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()==="")jQuery(this).blur()});jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default",replaceDefault);jQuery(".frm_toggle_default").blur();jQuery(document.getElementById("frm_resend_email")).click(resendEmail);jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',
|
39 |
+
frmFrontForm.fieldValueChanged);jQuery(document).on("change keyup",".frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea",maybeShowLabel);jQuery(document).on("click","a[data-frmconfirm]",confirmClick);jQuery("a[data-frmtoggle]").click(toggleDiv);addIndexOfFallbackForIE8();addTrimFallbackForIE8();addFilterFallbackForIE8();addKeysFallbackForIE8()},getFieldId:function(field,fullID){return getFieldId(field,fullID)},renderRecaptcha:function(captcha){var formID,
|
40 |
+
recaptchaID,size=captcha.getAttribute("data-size"),rendered=captcha.getAttribute("data-rid")!==null,params={"sitekey":captcha.getAttribute("data-sitekey"),"size":size,"theme":captcha.getAttribute("data-theme")};if(rendered)return;if(size==="invisible"){formID=jQuery(captcha).closest("form").find('input[name="form_id"]').val();jQuery(captcha).closest(".frm_form_field .frm_primary_label").hide();params.callback=function(token){frmFrontForm.afterRecaptcha(token,formID)}}recaptchaID=grecaptcha.render(captcha.id,
|
41 |
+
params);captcha.setAttribute("data-rid",recaptchaID)},afterSingleRecaptcha:function(){var object=jQuery(".frm-show-form .g-recaptcha").closest("form")[0];frmFrontForm.submitFormNow(object)},afterRecaptcha:function(token,formID){var object=jQuery("#frm_form_"+formID+"_container form")[0];frmFrontForm.submitFormNow(object)},submitForm:function(e){frmFrontForm.submitFormManual(e,this)},submitFormManual:function(e,object){var isPro,errors,invisibleRecaptcha=hasInvisibleRecaptcha(object),classList=object.className.trim().split(/\s+/gi);
|
42 |
+
if(classList&&invisibleRecaptcha.length<1){isPro=classList.indexOf("frm_pro_form")>-1;if(!isPro)return}if(jQuery("body").hasClass("wp-admin")&&jQuery(object).closest(".frmapi-form").length<1)return;e.preventDefault();if(typeof frmProForm!=="undefined"&&typeof frmProForm.submitAllowed==="function")if(!frmProForm.submitAllowed(object))return;if(invisibleRecaptcha.length){showLoadingIndicator(jQuery(object));executeInvisibleRecaptcha(invisibleRecaptcha)}else{errors=frmFrontForm.validateFormSubmit(object);
|
43 |
+
if(Object.keys(errors).length===0){showSubmitLoading(jQuery(object));frmFrontForm.submitFormNow(object,classList)}}},submitFormNow:function(object){var hasFileFields,classList=object.className.trim().split(/\s+/gi);if(classList.indexOf("frm_ajax_submit")>-1){hasFileFields=jQuery(object).find('input[type="file"]').filter(function(){return!!this.value}).length;if(hasFileFields<1){action=jQuery(object).find('input[name="frm_action"]').val();frmFrontForm.checkFormErrors(object,action)}else object.submit()}else object.submit()},
|
44 |
+
validateFormSubmit:function(object){if(typeof tinyMCE!=="undefined"&&jQuery(object).find(".wp-editor-wrap").length)tinyMCE.triggerSave();jsErrors=[];if(shouldJSValidate(object)){frmFrontForm.getAjaxFormErrors(object);if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},getAjaxFormErrors:function(object){var customErrors,key;jsErrors=validateForm(object);if(typeof frmThemeOverride_jsErrors==="function"){action=jQuery(object).find('input[name="frm_action"]').val();
|
45 |
+
customErrors=frmThemeOverride_jsErrors(action,object);if(Object.keys(customErrors).length)for(key in customErrors)jsErrors[key]=customErrors[key]}return jsErrors},addAjaxFormErrors:function(object){var key,$fieldCont;removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length)addFieldError($fieldCont,key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object)},checkFormErrors:function(object,action){getFormErrors(object,action)},
|
46 |
+
checkRequiredField:function(field,errors){return checkRequiredField(field,errors)},showSubmitLoading:function($object){showSubmitLoading($object)},removeSubmitLoading:function($object,enable,processesRunning){removeSubmitLoading($object,enable,processesRunning)},scrollToID:function(id){var object=jQuery(document.getElementById(id));frmFrontForm.scrollMsg(object,false)},scrollMsg:function(id,object,animate){var newPos,m,b,screenTop,screenBottom,scrollObj="";if(typeof object==="undefined"){scrollObj=
|
47 |
+
jQuery(document.getElementById("frm_form_"+id+"_container"));if(scrollObj.length<1)return}else if(typeof id==="string")scrollObj=jQuery(object).find("#frm_field_"+id+"_container");else scrollObj=id;scrollObj.focus();newPos=scrollObj.offset().top;if(!newPos||frm_js.offset==="-1")return;newPos=newPos-frm_js.offset;m=jQuery("html").css("margin-top");b=jQuery("body").css("margin-top");if(m||b)newPos=newPos-parseInt(m)-parseInt(b);if(newPos&&window.innerHeight){screenTop=document.documentElement.scrollTop||
|
48 |
+
document.body.scrollTop;screenBottom=screenTop+window.innerHeight;if(newPos>screenBottom||newPos<screenTop){if(typeof animate==="undefined")jQuery(window).scrollTop(newPos);else jQuery("html,body").animate({scrollTop:newPos},500);return false}}},fieldValueChanged:function(e){var fieldId=frmFrontForm.getFieldId(this,false);if(!fieldId||typeof fieldId==="undefined")return;if(e.frmTriggered&&e.frmTriggered==fieldId)return;jQuery(document).trigger("frmFieldChanged",[this,fieldId,e]);if(e.selfTriggered!==
|
49 |
+
true)maybeValidateChange(fieldId,this)},savingDraft:function(object){console.warn("DEPRECATED: function frmFrontForm.savingDraft in v3.0 use frmProForm.savingDraft");if(typeof frmProForm!=="undefined")return frmProForm.savingDraft(object)},goingToPreviousPage:function(object){console.warn("DEPRECATED: function frmFrontForm.goingToPreviousPage in v3.0 use frmProForm.goingToPreviousPage");if(typeof frmProForm!=="undefined")return frmProForm.goingToPreviousPage(object)},hideOrShowFields:function(){console.warn("DEPRECATED: function frmFrontForm.hideOrShowFields in v3.0 use frmProForm.hideOrShowFields");
|
50 |
+
if(typeof frmProForm!=="undefined")frmProForm.hideOrShowFields()},hidePreviouslyHiddenFields:function(){console.warn("DEPRECATED: function frmFrontForm.hidePreviouslyHiddenFields in v3.0 use frmProForm.hidePreviouslyHiddenFields");if(typeof frmProForm!=="undefined")frmProForm.hidePreviouslyHiddenFields()},checkDependentDynamicFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentDynamicFields in v3.0 use frmProForm.checkDependentDynamicFields");if(typeof frmProForm!==
|
51 |
+
"undefined")frmProForm.checkDependentDynamicFields(ids)},checkDependentLookupFields:function(ids){console.warn("DEPRECATED: function frmFrontForm.checkDependentLookupFields in v3.0 use frmProForm.checkDependentLookupFields");if(typeof frmProForm!=="undefined")frmProForm.checkDependentLookupFields(ids)},loadGoogle:function(){console.warn("DEPRECATED: function frmFrontForm.loadGoogle in v3.0 use frmProForm.loadGoogle");frmProForm.loadGoogle()},escapeHtml:function(text){return text.replace(/&/g,"&").replace(/</g,
|
52 |
+
"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(){frmFrontForm.init()});function frmRecaptcha(){var c,cl,captchas=jQuery(".frm-g-recaptcha");for(c=0,cl=captchas.length;c<cl;c++)frmFrontForm.renderRecaptcha(captchas[c])}
|
53 |
+
function frmAfterRecaptcha(token){frmFrontForm.afterSingleRecaptcha(token)}
|
54 |
function frmUpdateField(entryId,fieldId,value,message,num){jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:entryId,field_id:fieldId,value:value,nonce:frm_js.nonce},success:function(){if(message.replace(/^\s+|\s+$/g,"")==="")jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).fadeOut("slow");else jQuery(document.getElementById("frm_update_field_"+
|
55 |
entryId+"_"+fieldId+"_"+num)).replaceWith(message)}})}
|
56 |
function frmDeleteEntry(entryId,prefix){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+entryId+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:entryId,nonce:frm_js.nonce},success:function(html){if(html.replace(/^\s+|\s+$/g,"")==="success")jQuery(document.getElementById(prefix+entryId)).fadeOut("slow");
|
js/formidable_admin.js
CHANGED
@@ -300,7 +300,8 @@ function frmAdminBuildJS() {
|
|
300 |
cancelSort = false,
|
301 |
copyHelper = false,
|
302 |
fieldsUpdated = 0,
|
303 |
-
thisFormId = 0
|
|
|
304 |
|
305 |
if ( thisForm !== null ) {
|
306 |
thisFormId = thisForm.value;
|
@@ -494,7 +495,9 @@ function frmAdminBuildJS() {
|
|
494 |
|
495 |
function loadTooltips() {
|
496 |
var wrapClass = jQuery( '.wrap, .frm_wrap' ),
|
497 |
-
confirmModal = document.getElementById( 'frm_confirm_modal' )
|
|
|
|
|
498 |
|
499 |
jQuery( confirmModal ).on( 'click', '[data-deletefield]', deleteFieldConfirmed );
|
500 |
jQuery( confirmModal ).on( 'click', '[data-removeid]', removeThisTag );
|
@@ -514,6 +517,39 @@ function frmAdminBuildJS() {
|
|
514 |
});
|
515 |
|
516 |
jQuery( '.frm_bstooltip, .frm_help' ).tooltip( );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
517 |
}
|
518 |
|
519 |
function removeThisTag() {
|
@@ -2329,6 +2365,146 @@ function frmAdminBuildJS() {
|
|
2329 |
return false;
|
2330 |
}
|
2331 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2332 |
function updateGetValueFieldSelection() {
|
2333 |
/*jshint validthis:true */
|
2334 |
var fieldID = this.id.replace( 'get_values_form_', '' );
|
@@ -3183,6 +3359,37 @@ function frmAdminBuildJS() {
|
|
3183 |
return false;
|
3184 |
}
|
3185 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3186 |
/**
|
3187 |
* Get rid of empty container that inserts extra space.
|
3188 |
*/
|
@@ -3391,6 +3598,7 @@ function frmAdminBuildJS() {
|
|
3391 |
function afterFormSave( $button, buttonVal ) {
|
3392 |
$button.removeClass( 'frm_loading_form' ).removeClass( 'frm_loading_button' );
|
3393 |
$button.html( frm_admin_js.saved );
|
|
|
3394 |
fieldsUpdated = 0;
|
3395 |
|
3396 |
setTimeout( function() {
|
@@ -5052,8 +5260,9 @@ function frmAdminBuildJS() {
|
|
5052 |
|
5053 |
multiselectAccessibility();
|
5054 |
},
|
5055 |
-
onChange: function(
|
5056 |
multiselectAccessibility();
|
|
|
5057 |
}
|
5058 |
});
|
5059 |
});
|
@@ -5098,25 +5307,10 @@ function frmAdminBuildJS() {
|
|
5098 |
plugin: plugin
|
5099 |
},
|
5100 |
success: function( response ) {
|
5101 |
-
|
5102 |
-
if ( response.error ) {
|
5103 |
-
addonError( response, el, button );
|
5104 |
-
return;
|
5105 |
-
}
|
5106 |
-
|
5107 |
-
// If we need more credentials, output the form sent back to us.
|
5108 |
-
if ( response.form ) {
|
5109 |
-
// Display the form to gather the users credentials.
|
5110 |
-
|
5111 |
-
button.append( '<div class="frm-addon-error frm_error_style">' + response.form + '</div>' );
|
5112 |
-
loader.hide();
|
5113 |
-
|
5114 |
-
// Add a disabled attribute the install button if the creds are needed.
|
5115 |
-
button.attr( 'disabled', true );
|
5116 |
-
|
5117 |
-
el.on( 'click', '#upgrade', 'installAddonWithCreds' );
|
5118 |
|
5119 |
-
|
|
|
5120 |
return;
|
5121 |
}
|
5122 |
|
@@ -5133,8 +5327,9 @@ function frmAdminBuildJS() {
|
|
5133 |
e.preventDefault();
|
5134 |
|
5135 |
// Now let's make another Ajax request once the user has submitted their credentials.
|
5136 |
-
var proceed = jQuery( this )
|
5137 |
-
|
|
|
5138 |
|
5139 |
proceed.addClass( 'frm_loading_button' );
|
5140 |
|
@@ -5153,17 +5348,10 @@ function frmAdminBuildJS() {
|
|
5153 |
password: el.find( '#password' ).val()
|
5154 |
},
|
5155 |
success: function( response ) {
|
5156 |
-
|
5157 |
-
if ( response.error ) {
|
5158 |
-
addonError( response, el, button );
|
5159 |
-
return;
|
5160 |
-
}
|
5161 |
|
5162 |
-
if (
|
5163 |
-
|
5164 |
-
jQuery( '.frm-inline-error' ).remove();
|
5165 |
-
//proceed.val(admin.proceed);
|
5166 |
-
//proceed.after('<span class="frm-inline-error">' + admin.connect_error + '</span>' );
|
5167 |
return;
|
5168 |
}
|
5169 |
|
@@ -5196,10 +5384,42 @@ function frmAdminBuildJS() {
|
|
5196 |
}
|
5197 |
}
|
5198 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5199 |
function addonError( response, el, button ) {
|
5200 |
-
|
5201 |
-
|
5202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5203 |
}
|
5204 |
|
5205 |
/* Templates */
|
@@ -5819,6 +6039,8 @@ function frmAdminBuildJS() {
|
|
5819 |
});
|
5820 |
clickTab( jQuery( '.starttab a' ), 'auto' );
|
5821 |
|
|
|
|
|
5822 |
// submit the search form with dropdown
|
5823 |
jQuery( '#frm-fid-search-menu a' ).click( function() {
|
5824 |
var val = this.id.replace( 'fid-', '' );
|
@@ -5902,6 +6124,7 @@ function frmAdminBuildJS() {
|
|
5902 |
$builderForm.on( 'change', '.frm_logic_field_opts', getFieldValues );
|
5903 |
$builderForm.on( 'change', '.scale_maxnum, .scale_minnum', setScaleValues );
|
5904 |
$builderForm.on( 'change', '.radio_maxnum', setStarValues );
|
|
|
5905 |
|
5906 |
jQuery( document.getElementById( 'frm-insert-fields' ) ).on( 'click', '.frm_add_field', addFieldClick );
|
5907 |
$newFields.on( 'click', '.frm_clone_field', duplicateField );
|
@@ -5962,12 +6185,15 @@ function frmAdminBuildJS() {
|
|
5962 |
$builderForm.on( 'change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg );
|
5963 |
|
5964 |
jQuery( document ).on( 'submit', '#frm_js_build_form', buildSubmittedNoAjax );
|
5965 |
-
jQuery( document ).on( 'change', '#frm_builder_page input, #frm_builder_page select', fieldUpdated );
|
5966 |
|
5967 |
popAllProductFields();
|
5968 |
|
5969 |
jQuery( document ).on( 'change', '.frmjs_prod_data_type_opt', toggleProductType );
|
5970 |
|
|
|
|
|
|
|
5971 |
initBulkOptionsOverlay();
|
5972 |
hideEmptyEle();
|
5973 |
maybeDisableAddSummaryBtn();
|
@@ -6120,6 +6346,8 @@ function frmAdminBuildJS() {
|
|
6120 |
}
|
6121 |
});
|
6122 |
|
|
|
|
|
6123 |
// Page Selection Autocomplete
|
6124 |
initSelectionAutocomplete();
|
6125 |
},
|
300 |
cancelSort = false,
|
301 |
copyHelper = false,
|
302 |
fieldsUpdated = 0,
|
303 |
+
thisFormId = 0,
|
304 |
+
optionMap = {};
|
305 |
|
306 |
if ( thisForm !== null ) {
|
307 |
thisFormId = thisForm.value;
|
495 |
|
496 |
function loadTooltips() {
|
497 |
var wrapClass = jQuery( '.wrap, .frm_wrap' ),
|
498 |
+
confirmModal = document.getElementById( 'frm_confirm_modal' ),
|
499 |
+
doAction = false,
|
500 |
+
confirmedBulkDelete = false;
|
501 |
|
502 |
jQuery( confirmModal ).on( 'click', '[data-deletefield]', deleteFieldConfirmed );
|
503 |
jQuery( confirmModal ).on( 'click', '[data-removeid]', removeThisTag );
|
517 |
});
|
518 |
|
519 |
jQuery( '.frm_bstooltip, .frm_help' ).tooltip( );
|
520 |
+
|
521 |
+
jQuery( document ).on( 'click', '#doaction, #doaction2', function( event ) {
|
522 |
+
var link,
|
523 |
+
isTop = this.id === 'doaction',
|
524 |
+
suffix = isTop ? 'top' : 'bottom',
|
525 |
+
bulkActionSelector = document.getElementById( 'bulk-action-selector-' + suffix ),
|
526 |
+
confirmBulkDelete = document.getElementById( 'confirm-bulk-delete-' + suffix );
|
527 |
+
|
528 |
+
if ( bulkActionSelector !== null && confirmBulkDelete !== null ) {
|
529 |
+
doAction = this;
|
530 |
+
|
531 |
+
if ( ! confirmedBulkDelete && bulkActionSelector.value === 'bulk_delete' ) {
|
532 |
+
event.preventDefault();
|
533 |
+
confirmLinkClick( confirmBulkDelete );
|
534 |
+
return false;
|
535 |
+
}
|
536 |
+
} else {
|
537 |
+
doAction = false;
|
538 |
+
}
|
539 |
+
});
|
540 |
+
|
541 |
+
jQuery( document ).on( 'click', '#frm-confirmed-click', function( event ) {
|
542 |
+
if ( doAction === false ) {
|
543 |
+
return;
|
544 |
+
}
|
545 |
+
|
546 |
+
if ( this.getAttribute( 'href' ) === 'confirm-bulk-delete' ) {
|
547 |
+
event.preventDefault();
|
548 |
+
confirmedBulkDelete = true;
|
549 |
+
doAction.click();
|
550 |
+
return false;
|
551 |
+
}
|
552 |
+
});
|
553 |
}
|
554 |
|
555 |
function removeThisTag() {
|
2365 |
return false;
|
2366 |
}
|
2367 |
|
2368 |
+
function resetOptionTextDetails() {
|
2369 |
+
jQuery( '.frm-single-settings ul input[type="text"][name^="field_options[options_"]' ).filter( '[data-value-on-load]' ).removeAttr( 'data-value-on-load' );
|
2370 |
+
jQuery( 'input[type="hidden"][name^=optionmap]' ).remove();
|
2371 |
+
}
|
2372 |
+
|
2373 |
+
function optionTextAlreadyExists( input ) {
|
2374 |
+
var fieldId = jQuery( input ).closest( '.frm-single-settings' ).attr( 'data-fid' ),
|
2375 |
+
optionInputs = jQuery( input ).closest( 'ul' ).get( 0 ).querySelectorAll( '.field_' + fieldId + '_option' ),
|
2376 |
+
index,
|
2377 |
+
optionInput;
|
2378 |
+
|
2379 |
+
for ( index in optionInputs ) {
|
2380 |
+
optionInput = optionInputs[ index ];
|
2381 |
+
if ( optionInput.id !== input.id && optionInput.value === input.value && optionInput.getAttribute( 'data-duplicate' ) !== 'true' ) {
|
2382 |
+
return true;
|
2383 |
+
}
|
2384 |
+
}
|
2385 |
+
|
2386 |
+
return false;
|
2387 |
+
}
|
2388 |
+
|
2389 |
+
function onOptionTextFocus() {
|
2390 |
+
var input,
|
2391 |
+
fieldId;
|
2392 |
+
|
2393 |
+
if ( this.getAttribute( 'data-value-on-load' ) === null ) {
|
2394 |
+
this.setAttribute( 'data-value-on-load', this.value );
|
2395 |
+
|
2396 |
+
fieldId = jQuery( this ).closest( '.frm-single-settings' ).attr( 'data-fid' );
|
2397 |
+
input = document.createElement( 'input' );
|
2398 |
+
input.value = this.value;
|
2399 |
+
input.setAttribute( 'type', 'hidden' );
|
2400 |
+
input.setAttribute( 'name', 'optionmap[' + fieldId + '][' + this.value + ']' );
|
2401 |
+
this.parentNode.appendChild( input );
|
2402 |
+
|
2403 |
+
if ( typeof optionMap[ fieldId ] === 'undefined' ) {
|
2404 |
+
optionMap[ fieldId ] = {};
|
2405 |
+
}
|
2406 |
+
|
2407 |
+
optionMap[ fieldId ][ this.value ] = input;
|
2408 |
+
}
|
2409 |
+
|
2410 |
+
if ( this.getAttribute( 'data-duplicate' ) === 'true' ) {
|
2411 |
+
this.removeAttribute( 'data-duplicate' );
|
2412 |
+
|
2413 |
+
// we want to use original value if actually still a duplicate
|
2414 |
+
if ( optionTextAlreadyExists( this ) ) {
|
2415 |
+
this.setAttribute( 'data-value-on-focus', this.getAttribute( 'data-value-on-load' ) );
|
2416 |
+
return;
|
2417 |
+
}
|
2418 |
+
}
|
2419 |
+
|
2420 |
+
this.setAttribute( 'data-value-on-focus', this.value );
|
2421 |
+
}
|
2422 |
+
|
2423 |
+
function onOptionTextBlur() {
|
2424 |
+
var originalValue,
|
2425 |
+
oldValue = this.getAttribute( 'data-value-on-focus' ),
|
2426 |
+
newValue = this.value,
|
2427 |
+
fieldId,
|
2428 |
+
fieldIndex,
|
2429 |
+
logicId,
|
2430 |
+
row,
|
2431 |
+
rowLength,
|
2432 |
+
rowIndex,
|
2433 |
+
valueSelect,
|
2434 |
+
opts,
|
2435 |
+
fieldIds,
|
2436 |
+
settingId,
|
2437 |
+
setting,
|
2438 |
+
optionMatches,
|
2439 |
+
option;
|
2440 |
+
|
2441 |
+
if ( oldValue === newValue ) {
|
2442 |
+
return;
|
2443 |
+
}
|
2444 |
+
|
2445 |
+
fieldId = jQuery( this ).closest( '.frm-single-settings' ).attr( 'data-fid' );
|
2446 |
+
originalValue = this.getAttribute( 'data-value-on-load' );
|
2447 |
+
|
2448 |
+
// check if the newValue is already mapped to another option
|
2449 |
+
// if it is, mark as duplicate and return
|
2450 |
+
if ( optionTextAlreadyExists( this ) ) {
|
2451 |
+
this.setAttribute( 'data-duplicate', 'true' );
|
2452 |
+
|
2453 |
+
if ( typeof optionMap[ fieldId ] !== 'undefined' && typeof optionMap[ fieldId ][ originalValue ] !== 'undefined' ) {
|
2454 |
+
// unmap any other change that may have happened before instead of changing it to something unused
|
2455 |
+
optionMap[ fieldId ][ originalValue ].value = originalValue;
|
2456 |
+
}
|
2457 |
+
|
2458 |
+
return;
|
2459 |
+
}
|
2460 |
+
|
2461 |
+
if ( typeof optionMap[ fieldId ] !== 'undefined' && typeof optionMap[ fieldId ][ originalValue ] !== 'undefined' ) {
|
2462 |
+
optionMap[ fieldId ][ originalValue ].value = newValue;
|
2463 |
+
}
|
2464 |
+
|
2465 |
+
fieldIds = [];
|
2466 |
+
rows = document.getElementById( 'frm_builder_page' ).querySelectorAll( '.frm_logic_row' );
|
2467 |
+
rowLength = rows.length;
|
2468 |
+
for ( rowIndex = 0; rowIndex < rowLength; rowIndex++ ) {
|
2469 |
+
row = rows[ rowIndex ];
|
2470 |
+
opts = row.querySelector( '.frm_logic_field_opts' );
|
2471 |
+
|
2472 |
+
if ( opts.value !== fieldId ) {
|
2473 |
+
continue;
|
2474 |
+
}
|
2475 |
+
|
2476 |
+
logicId = row.id.split( '_' )[ 2 ];
|
2477 |
+
valueSelect = row.querySelector( 'select[name="field_options[hide_opt_' + logicId + '][]"]' );
|
2478 |
+
optionMatches = valueSelect.querySelectorAll( 'option[value="' + oldValue + '"]' );
|
2479 |
+
|
2480 |
+
if ( ! optionMatches.length ) {
|
2481 |
+
optionMatches = valueSelect.querySelectorAll( 'option[value="' + newValue + '"]' );
|
2482 |
+
|
2483 |
+
if ( ! optionMatches.length ) {
|
2484 |
+
option = document.createElement( 'option' );
|
2485 |
+
valueSelect.appendChild( option );
|
2486 |
+
}
|
2487 |
+
}
|
2488 |
+
|
2489 |
+
if ( optionMatches.length ) {
|
2490 |
+
option = optionMatches[ optionMatches.length - 1 ];
|
2491 |
+
}
|
2492 |
+
|
2493 |
+
option.setAttribute( 'value', newValue );
|
2494 |
+
option.textContent = newValue;
|
2495 |
+
|
2496 |
+
if ( fieldIds.indexOf( logicId ) === -1 ) {
|
2497 |
+
fieldIds.push( logicId );
|
2498 |
+
}
|
2499 |
+
}
|
2500 |
+
|
2501 |
+
for ( fieldIndex in fieldIds ) {
|
2502 |
+
settingId = fieldIds[ fieldIndex ];
|
2503 |
+
setting = document.getElementById( 'frm-single-settings-' + settingId );
|
2504 |
+
moveFieldSettings( setting );
|
2505 |
+
}
|
2506 |
+
}
|
2507 |
+
|
2508 |
function updateGetValueFieldSelection() {
|
2509 |
/*jshint validthis:true */
|
2510 |
var fieldID = this.id.replace( 'get_values_form_', '' );
|
3359 |
return false;
|
3360 |
}
|
3361 |
|
3362 |
+
function adjustVisibilityValuesForEveryoneValues( element, option ) {
|
3363 |
+
if ( '' === option.getAttribute( 'value' ) ) {
|
3364 |
+
onEveryoneOptionSelected( jQuery( this ) );
|
3365 |
+
} else {
|
3366 |
+
unselectEveryoneOptionIfSelected( jQuery( this ) );
|
3367 |
+
}
|
3368 |
+
}
|
3369 |
+
|
3370 |
+
function onEveryoneOptionSelected( $select ) {
|
3371 |
+
$select.val( '' );
|
3372 |
+
$select.next( '.btn-group' ).find( '.multiselect-container li input[value!=""]' ).prop( 'checked', false );
|
3373 |
+
}
|
3374 |
+
|
3375 |
+
function unselectEveryoneOptionIfSelected( $select ) {
|
3376 |
+
var selectedValues = $select.val(),
|
3377 |
+
index;
|
3378 |
+
|
3379 |
+
if ( selectedValues === null ) {
|
3380 |
+
$select.next( '.btn-group' ).find( '.multiselect-container li input[value=""]' ).prop( 'checked', true );
|
3381 |
+
onEveryoneOptionSelected( $select );
|
3382 |
+
return;
|
3383 |
+
}
|
3384 |
+
|
3385 |
+
index = selectedValues.indexOf( '' );
|
3386 |
+
if ( index >= 0 ) {
|
3387 |
+
selectedValues.splice( index, 1 );
|
3388 |
+
$select.val( selectedValues );
|
3389 |
+
$select.next( '.btn-group' ).find( '.multiselect-container li input[value=""]' ).prop( 'checked', false );
|
3390 |
+
}
|
3391 |
+
}
|
3392 |
+
|
3393 |
/**
|
3394 |
* Get rid of empty container that inserts extra space.
|
3395 |
*/
|
3598 |
function afterFormSave( $button, buttonVal ) {
|
3599 |
$button.removeClass( 'frm_loading_form' ).removeClass( 'frm_loading_button' );
|
3600 |
$button.html( frm_admin_js.saved );
|
3601 |
+
resetOptionTextDetails();
|
3602 |
fieldsUpdated = 0;
|
3603 |
|
3604 |
setTimeout( function() {
|
5260 |
|
5261 |
multiselectAccessibility();
|
5262 |
},
|
5263 |
+
onChange: function( element, option ) {
|
5264 |
multiselectAccessibility();
|
5265 |
+
$select.trigger( 'frm-multiselect-changed', element, option );
|
5266 |
}
|
5267 |
});
|
5268 |
});
|
5307 |
plugin: plugin
|
5308 |
},
|
5309 |
success: function( response ) {
|
5310 |
+
var error = extractErrorFromAddOnResponse( response );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5311 |
|
5312 |
+
if ( error ) {
|
5313 |
+
addonError( error, el, button );
|
5314 |
return;
|
5315 |
}
|
5316 |
|
5327 |
e.preventDefault();
|
5328 |
|
5329 |
// Now let's make another Ajax request once the user has submitted their credentials.
|
5330 |
+
var proceed = jQuery( this ),
|
5331 |
+
el = proceed.parent().parent(),
|
5332 |
+
plugin = proceed.attr( 'rel' );
|
5333 |
|
5334 |
proceed.addClass( 'frm_loading_button' );
|
5335 |
|
5348 |
password: el.find( '#password' ).val()
|
5349 |
},
|
5350 |
success: function( response ) {
|
5351 |
+
var error = extractErrorFromAddOnResponse( response );
|
|
|
|
|
|
|
|
|
5352 |
|
5353 |
+
if ( error ) {
|
5354 |
+
addonError( error, el, proceed );
|
|
|
|
|
|
|
5355 |
return;
|
5356 |
}
|
5357 |
|
5384 |
}
|
5385 |
}
|
5386 |
|
5387 |
+
function extractErrorFromAddOnResponse( response ) {
|
5388 |
+
var $message, text;
|
5389 |
+
|
5390 |
+
if ( typeof response !== 'string' ) {
|
5391 |
+
if ( typeof response.success !== 'undefined' && response.success ) {
|
5392 |
+
return false;
|
5393 |
+
}
|
5394 |
+
|
5395 |
+
if ( response.form ) {
|
5396 |
+
if ( jQuery( response.form ).is( '#message' ) ) {
|
5397 |
+
return {
|
5398 |
+
message: jQuery( response.form ).find( 'p' ).html()
|
5399 |
+
};
|
5400 |
+
}
|
5401 |
+
}
|
5402 |
+
|
5403 |
+
return response;
|
5404 |
+
}
|
5405 |
+
|
5406 |
+
return false;
|
5407 |
+
}
|
5408 |
+
|
5409 |
function addonError( response, el, button ) {
|
5410 |
+
if ( response.form ) {
|
5411 |
+
jQuery( '.frm-inline-error' ).remove();
|
5412 |
+
button.closest( '.frm-card' )
|
5413 |
+
.html( response.form )
|
5414 |
+
.css({ padding: 5 })
|
5415 |
+
.find( '#upgrade' )
|
5416 |
+
.attr( 'rel', button.attr( 'rel' ) )
|
5417 |
+
.click( installAddonWithCreds );
|
5418 |
+
} else {
|
5419 |
+
el.append( '<div class="frm-addon-error frm_error_style"><p><strong>' + response.message + '</strong></p></div>' );
|
5420 |
+
button.removeClass( 'frm_loading_button' );
|
5421 |
+
jQuery( '.frm-addon-error' ).delay( 4000 ).fadeOut();
|
5422 |
+
}
|
5423 |
}
|
5424 |
|
5425 |
/* Templates */
|
6039 |
});
|
6040 |
clickTab( jQuery( '.starttab a' ), 'auto' );
|
6041 |
|
6042 |
+
jQuery( '.post-type-frm_display #screen-options-wrap:hidden input[type="checkbox"]' ).attr( 'disabled', true );
|
6043 |
+
|
6044 |
// submit the search form with dropdown
|
6045 |
jQuery( '#frm-fid-search-menu a' ).click( function() {
|
6046 |
var val = this.id.replace( 'fid-', '' );
|
6124 |
$builderForm.on( 'change', '.frm_logic_field_opts', getFieldValues );
|
6125 |
$builderForm.on( 'change', '.scale_maxnum, .scale_minnum', setScaleValues );
|
6126 |
$builderForm.on( 'change', '.radio_maxnum', setStarValues );
|
6127 |
+
$builderForm.on( 'frm-multiselect-changed', 'select[name^="field_options[admin_only_"]', adjustVisibilityValuesForEveryoneValues );
|
6128 |
|
6129 |
jQuery( document.getElementById( 'frm-insert-fields' ) ).on( 'click', '.frm_add_field', addFieldClick );
|
6130 |
$newFields.on( 'click', '.frm_clone_field', duplicateField );
|
6185 |
$builderForm.on( 'change', 'select[name^="field_options[form_select_"]', maybeChangeEmbedFormMsg );
|
6186 |
|
6187 |
jQuery( document ).on( 'submit', '#frm_js_build_form', buildSubmittedNoAjax );
|
6188 |
+
jQuery( document ).on( 'change', '#frm_builder_page input:not(.frm-search-input), #frm_builder_page select', fieldUpdated );
|
6189 |
|
6190 |
popAllProductFields();
|
6191 |
|
6192 |
jQuery( document ).on( 'change', '.frmjs_prod_data_type_opt', toggleProductType );
|
6193 |
|
6194 |
+
jQuery( document ).on( 'focus', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextFocus );
|
6195 |
+
jQuery( document ).on( 'blur', '.frm-single-settings ul input[type="text"][name^="field_options[options_"]', onOptionTextBlur );
|
6196 |
+
|
6197 |
initBulkOptionsOverlay();
|
6198 |
hideEmptyEle();
|
6199 |
maybeDisableAddSummaryBtn();
|
6346 |
}
|
6347 |
});
|
6348 |
|
6349 |
+
jQuery( document ).on( 'frm-multiselect-changed', '#protect_files_role', adjustVisibilityValuesForEveryoneValues );
|
6350 |
+
|
6351 |
// Page Selection Autocomplete
|
6352 |
initSelectionAutocomplete();
|
6353 |
},
|
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.
|
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-
|
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"
|
@@ -136,58 +136,58 @@ msgstr ""
|
|
136 |
msgid "Oops! You forgot to enter your license number."
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: classes/models/FrmAddon.php:
|
140 |
msgid "Your license has been activated. Enjoy!"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: classes/models/FrmAddon.php:
|
144 |
-
#: classes/models/FrmAddon.php:
|
145 |
msgid "That license key is invalid"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: classes/models/FrmAddon.php:
|
149 |
msgid "That license is expired"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: classes/models/FrmAddon.php:
|
153 |
msgid "That license has been refunded"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: classes/models/FrmAddon.php:
|
157 |
msgid "That license has been used on too many sites"
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: classes/models/FrmAddon.php:
|
161 |
msgid "Oops! That is the wrong license key for this plugin."
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: classes/models/FrmAddon.php:
|
165 |
msgid "Cache cleared"
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: classes/models/FrmAddon.php:
|
169 |
msgid "That license was removed successfully"
|
170 |
msgstr ""
|
171 |
|
172 |
-
#: classes/models/FrmAddon.php:
|
173 |
msgid "There was an error deactivating your license."
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: classes/models/FrmAddon.php:
|
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:
|
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:
|
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:
|
191 |
msgid "There was a %1$s error: %2$s"
|
192 |
msgstr ""
|
193 |
|
@@ -262,7 +262,7 @@ msgid "Dropdown"
|
|
262 |
msgstr ""
|
263 |
|
264 |
#: classes/models/FrmField.php:34
|
265 |
-
#: classes/controllers/FrmFormsController.php:
|
266 |
msgid "Email"
|
267 |
msgstr ""
|
268 |
|
@@ -287,7 +287,7 @@ msgid "Hidden"
|
|
287 |
msgstr ""
|
288 |
|
289 |
#: classes/models/FrmField.php:58
|
290 |
-
#: classes/controllers/FrmFormsController.php:
|
291 |
msgid "User ID"
|
292 |
msgstr ""
|
293 |
|
@@ -518,16 +518,16 @@ msgstr ""
|
|
518 |
|
519 |
#: classes/models/FrmEntryValidate.php:18
|
520 |
#: classes/models/FrmSettings.php:110
|
521 |
-
#: classes/controllers/FrmFormActionsController.php:
|
522 |
msgid "You do not have permission to do that"
|
523 |
msgstr ""
|
524 |
|
525 |
-
#: classes/models/FrmEntryValidate.php:
|
526 |
-
#: classes/models/FrmEntryValidate.php:
|
527 |
msgid "Your entry appears to be spam!"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: classes/models/FrmEntryValidate.php:
|
531 |
msgid "Your entry appears to be blocked spam!"
|
532 |
msgstr ""
|
533 |
|
@@ -591,7 +591,7 @@ msgstr ""
|
|
591 |
#: classes/models/fields/FrmFieldType.php:583
|
592 |
#: classes/helpers/FrmFieldsHelper.php:167
|
593 |
#: classes/helpers/FrmFieldsHelper.php:296
|
594 |
-
#: classes/helpers/FrmXMLHelper.php:
|
595 |
msgid "%s is invalid"
|
596 |
msgstr ""
|
597 |
|
@@ -678,7 +678,7 @@ msgstr ""
|
|
678 |
#. translators: %1$s - field type
|
679 |
#. translators: %1$s: Number of items
|
680 |
#: classes/models/FrmFormMigrator.php:584
|
681 |
-
#: classes/helpers/FrmXMLHelper.php:
|
682 |
msgid "%1$s Field"
|
683 |
msgid_plural "%1$s Fields"
|
684 |
msgstr[0] ""
|
@@ -717,39 +717,43 @@ msgstr ""
|
|
717 |
msgid "Upgrade"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: classes/controllers/FrmAddonsController.php:
|
721 |
msgid "There are no plugins on your site that require a license"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: classes/controllers/FrmAddonsController.php:
|
725 |
msgid "Installed"
|
726 |
msgstr ""
|
727 |
|
728 |
-
#: classes/controllers/FrmAddonsController.php:
|
729 |
-
#: classes/helpers/FrmAppHelper.php:
|
730 |
msgid "Active"
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: classes/controllers/FrmAddonsController.php:
|
734 |
msgid "Not Installed"
|
735 |
msgstr ""
|
736 |
|
737 |
-
#: classes/controllers/FrmAddonsController.php:
|
738 |
msgid "Your plugin has been installed. Please reload the page to see more options."
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: classes/controllers/FrmAddonsController.php:
|
742 |
-
msgid "Sorry,
|
743 |
msgstr ""
|
744 |
|
745 |
-
#: classes/controllers/FrmAddonsController.php:
|
746 |
msgid "Your plugin has been activated. Please reload the page to see more options."
|
747 |
msgstr ""
|
748 |
|
749 |
-
#: classes/controllers/FrmAddonsController.php:
|
750 |
msgid "Your plugins have been installed and activated."
|
751 |
msgstr ""
|
752 |
|
|
|
|
|
|
|
|
|
753 |
#: classes/controllers/FrmAppController.php:150
|
754 |
msgid "Build"
|
755 |
msgstr ""
|
@@ -1023,7 +1027,7 @@ msgstr ""
|
|
1023 |
#: classes/views/addons/list.php:86
|
1024 |
#: classes/views/shared/upgrade_overlay.php:32
|
1025 |
#: classes/helpers/FrmFormMigratorsHelper.php:131
|
1026 |
-
#: classes/helpers/FrmAppHelper.php:
|
1027 |
msgid "Install"
|
1028 |
msgstr ""
|
1029 |
|
@@ -1260,7 +1264,7 @@ msgstr ""
|
|
1260 |
#: classes/controllers/FrmFormsController.php:741
|
1261 |
#: classes/controllers/FrmFormsController.php:745
|
1262 |
#: classes/views/shared/mb_adv_info.php:98
|
1263 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
1264 |
msgid "Key"
|
1265 |
msgstr ""
|
1266 |
|
@@ -1294,132 +1298,136 @@ msgstr ""
|
|
1294 |
msgid "Form Permissions"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: classes/controllers/FrmFormsController.php:
|
|
|
|
|
|
|
|
|
1298 |
msgid "Form Scheduling"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
-
#: classes/controllers/FrmFormsController.php:
|
1302 |
msgid "Form scheduling settings"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: classes/controllers/FrmFormsController.php:
|
1306 |
msgid "Styling & Buttons"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
-
#: classes/controllers/FrmFormsController.php:
|
1310 |
msgid "Customize HTML"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
-
#: classes/controllers/FrmFormsController.php:
|
1314 |
msgid "Customize field values with the following parameters."
|
1315 |
msgstr ""
|
1316 |
|
1317 |
-
#: classes/controllers/FrmFormsController.php:
|
1318 |
msgid "Separator"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
-
#: classes/controllers/FrmFormsController.php:
|
1322 |
msgid "Use a different separator for checkbox fields"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
-
#: classes/controllers/FrmFormsController.php:
|
1326 |
msgid "Date Format"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
-
#: classes/controllers/FrmFormsController.php:
|
1330 |
#: classes/views/frm-fields/back-end/settings.php:27
|
1331 |
msgid "Field Label"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
-
#: classes/controllers/FrmFormsController.php:
|
1335 |
msgid "No Auto P"
|
1336 |
msgstr ""
|
1337 |
|
1338 |
-
#: classes/controllers/FrmFormsController.php:
|
1339 |
msgid "Do not automatically add any paragraphs or line breaks"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: classes/controllers/FrmFormsController.php:
|
1343 |
msgid "First Name"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#: classes/controllers/FrmFormsController.php:
|
1347 |
msgid "Last Name"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: classes/controllers/FrmFormsController.php:
|
1351 |
msgid "Display Name"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
-
#: classes/controllers/FrmFormsController.php:
|
1355 |
msgid "User Login"
|
1356 |
msgstr ""
|
1357 |
|
1358 |
-
#: classes/controllers/FrmFormsController.php:
|
1359 |
msgid "Avatar"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
-
#: classes/controllers/FrmFormsController.php:
|
1363 |
msgid "Author Link"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
-
#: classes/controllers/FrmFormsController.php:
|
1367 |
#: classes/views/frm-entries/sidebar-shared.php:51
|
1368 |
msgid "Entry ID"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
-
#: classes/controllers/FrmFormsController.php:
|
1372 |
#: classes/controllers/FrmEntriesController.php:78
|
1373 |
#: classes/views/frm-entries/sidebar-shared.php:57
|
1374 |
#: classes/views/frm-entries/form.php:54
|
1375 |
msgid "Entry Key"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
-
#: classes/controllers/FrmFormsController.php:
|
1379 |
msgid "Post ID"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
-
#: classes/controllers/FrmFormsController.php:
|
1383 |
msgid "User IP"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
-
#: classes/controllers/FrmFormsController.php:
|
1387 |
msgid "Entry created"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: classes/controllers/FrmFormsController.php:
|
1391 |
msgid "Entry updated"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: classes/controllers/FrmFormsController.php:
|
1395 |
msgid "Site URL"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
-
#: classes/controllers/FrmFormsController.php:
|
1399 |
msgid "Site Name"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
-
#: classes/controllers/FrmFormsController.php:
|
1403 |
msgid "Default Msg"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
-
#: classes/controllers/FrmFormsController.php:
|
1407 |
msgid "Default HTML"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
-
#: classes/controllers/FrmFormsController.php:
|
1411 |
msgid "Default Plain"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
-
#: classes/controllers/FrmFormsController.php:
|
1415 |
msgid "No forms were specified"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
-
#: classes/controllers/FrmFormsController.php:
|
1419 |
msgid "Abnormal HTML characters prevented your form from saving correctly"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: classes/controllers/FrmFormsController.php:
|
1423 |
#: classes/views/frm-forms/list-templates.php:203
|
1424 |
#: classes/views/xml/import_form.php:133
|
1425 |
#: classes/views/styles/manage.php:59
|
@@ -1431,17 +1439,17 @@ msgstr ""
|
|
1431 |
msgid "(no title)"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
-
#: classes/controllers/FrmFormsController.php:
|
1435 |
-
#: classes/controllers/FrmFormsController.php:
|
1436 |
msgid "Please select a valid form"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
-
#: classes/controllers/FrmFormsController.php:
|
1440 |
msgid "Please wait while you are redirected."
|
1441 |
msgstr ""
|
1442 |
|
1443 |
#. translators: %1$s: Start link HTML, %2$s: End link HTML
|
1444 |
-
#: classes/controllers/FrmFormsController.php:
|
1445 |
msgid "%1$sClick here%2$s if you are not automatically redirected."
|
1446 |
msgstr ""
|
1447 |
|
@@ -1470,21 +1478,21 @@ msgstr ""
|
|
1470 |
msgid "Form Actions"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
-
#: classes/controllers/FrmFormActionsController.php:
|
1474 |
-
#: classes/views/frm-form-actions/default_actions.php:
|
1475 |
msgid "eCommerce"
|
1476 |
msgstr ""
|
1477 |
|
1478 |
-
#: classes/controllers/FrmFormActionsController.php:
|
1479 |
msgid "Email Marketing"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: classes/controllers/FrmFormActionsController.php:
|
1483 |
msgid "CRM"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
#. translators: %s: Name of form action
|
1487 |
-
#: classes/controllers/FrmFormActionsController.php:
|
1488 |
msgid "%s form actions"
|
1489 |
msgstr ""
|
1490 |
|
@@ -1493,7 +1501,7 @@ msgid "Entry Name"
|
|
1493 |
msgstr ""
|
1494 |
|
1495 |
#: classes/controllers/FrmEntriesController.php:85
|
1496 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
1497 |
msgid "Created By"
|
1498 |
msgstr ""
|
1499 |
|
@@ -1621,7 +1629,7 @@ msgstr ""
|
|
1621 |
#: classes/views/frm-forms/new-form-overlay.php:36
|
1622 |
#: classes/views/shared/confirm-overlay.php:19
|
1623 |
#: classes/views/shared/admin-header.php:54
|
1624 |
-
#: classes/helpers/FrmAppHelper.php:
|
1625 |
msgid "Cancel"
|
1626 |
msgstr ""
|
1627 |
|
@@ -1633,7 +1641,7 @@ msgstr ""
|
|
1633 |
#: classes/views/shared/mb_adv_info.php:40
|
1634 |
#: classes/views/shared/mb_adv_info.php:183
|
1635 |
#: classes/views/frm-entries/list.php:47
|
1636 |
-
#: classes/helpers/FrmAppHelper.php:
|
1637 |
msgid "Search"
|
1638 |
msgstr ""
|
1639 |
|
@@ -1824,7 +1832,7 @@ msgid "Show Page Content"
|
|
1824 |
msgstr ""
|
1825 |
|
1826 |
#: classes/views/frm-forms/settings-advanced.php:98
|
1827 |
-
#: classes/helpers/FrmAppHelper.php:
|
1828 |
msgid "Select a Page"
|
1829 |
msgstr ""
|
1830 |
|
@@ -1983,11 +1991,11 @@ msgstr ""
|
|
1983 |
msgid "Register User"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
-
#: classes/views/frm-form-actions/default_actions.php:
|
1987 |
msgid "Twilio SMS"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: classes/views/frm-form-actions/default_actions.php:
|
1991 |
msgid "Send API data"
|
1992 |
msgstr ""
|
1993 |
|
@@ -2071,31 +2079,39 @@ msgid "Trigger this action when"
|
|
2071 |
msgstr ""
|
2072 |
|
2073 |
#: classes/views/frm-form-actions/_action_inside.php:70
|
2074 |
-
msgid "
|
2075 |
msgstr ""
|
2076 |
|
2077 |
#: classes/views/frm-form-actions/_action_inside.php:71
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2078 |
msgid "Use Conditional Logic"
|
2079 |
msgstr ""
|
2080 |
|
2081 |
-
#: classes/views/frm-form-actions/_action_inside.php:
|
2082 |
msgid "Form action automations"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
-
#: classes/views/frm-form-actions/_action_inside.php:
|
2086 |
msgid "Setup Automation"
|
2087 |
msgstr ""
|
2088 |
|
2089 |
-
#: classes/views/frm-form-actions/_action_inside.php:
|
2090 |
msgid "Form action logs"
|
2091 |
msgstr ""
|
2092 |
|
2093 |
-
#: classes/views/frm-form-actions/_action_inside.php:
|
2094 |
msgid "Install logging to get more information on API requests."
|
2095 |
msgstr ""
|
2096 |
|
2097 |
#. translators: %1$s: The ID of the form action.
|
2098 |
-
#: classes/views/frm-form-actions/_action_inside.php:
|
2099 |
msgid "Action ID: %1$s"
|
2100 |
msgstr ""
|
2101 |
|
@@ -2151,7 +2167,7 @@ msgid "Renew Now"
|
|
2151 |
msgstr ""
|
2152 |
|
2153 |
#: classes/views/solutions/_import.php:51
|
2154 |
-
#: classes/helpers/FrmXMLHelper.php:
|
2155 |
msgid "Imported"
|
2156 |
msgstr ""
|
2157 |
|
@@ -2169,7 +2185,7 @@ msgstr ""
|
|
2169 |
|
2170 |
#: classes/views/shared/confirm-overlay.php:15
|
2171 |
#: classes/views/shared/info-overlay.php:15
|
2172 |
-
#: classes/helpers/FrmAppHelper.php:
|
2173 |
msgid "Are you sure?"
|
2174 |
msgstr ""
|
2175 |
|
@@ -2282,8 +2298,8 @@ msgid "Keys"
|
|
2282 |
msgstr ""
|
2283 |
|
2284 |
#: classes/views/shared/mb_adv_info.php:95
|
2285 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
2286 |
-
#: classes/helpers/FrmAppHelper.php:
|
2287 |
msgid "ID"
|
2288 |
msgstr ""
|
2289 |
|
@@ -2293,7 +2309,7 @@ msgstr ""
|
|
2293 |
|
2294 |
#: classes/views/shared/mb_adv_info.php:113
|
2295 |
#: classes/views/shared/mb_adv_info.php:127
|
2296 |
-
#: classes/helpers/FrmAppHelper.php:
|
2297 |
msgid "Select a Field"
|
2298 |
msgstr ""
|
2299 |
|
@@ -2917,7 +2933,7 @@ msgid "Label Position"
|
|
2917 |
msgstr ""
|
2918 |
|
2919 |
#: classes/views/frm-fields/back-end/settings.php:270
|
2920 |
-
#: classes/helpers/FrmAppHelper.php:
|
2921 |
msgid "Default"
|
2922 |
msgstr ""
|
2923 |
|
@@ -3139,7 +3155,7 @@ msgid "License Key"
|
|
3139 |
msgstr ""
|
3140 |
|
3141 |
#: classes/views/frm-settings/general.php:9
|
3142 |
-
msgid "Your license key provides access to
|
3143 |
msgstr ""
|
3144 |
|
3145 |
#: classes/views/frm-settings/general.php:15
|
@@ -3614,6 +3630,10 @@ msgstr ""
|
|
3614 |
msgid "Permanently delete this entry?"
|
3615 |
msgstr ""
|
3616 |
|
|
|
|
|
|
|
|
|
3617 |
#: classes/helpers/FrmFormsListHelper.php:106
|
3618 |
msgid "No forms found in the trash."
|
3619 |
msgstr ""
|
@@ -3665,12 +3685,16 @@ msgstr ""
|
|
3665 |
|
3666 |
#: classes/helpers/FrmFormsListHelper.php:342
|
3667 |
#: classes/helpers/FrmFormsHelper.php:1198
|
3668 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
3669 |
msgid "Draft"
|
3670 |
msgstr ""
|
3671 |
|
|
|
|
|
|
|
|
|
3672 |
#: classes/helpers/FrmFieldsHelper.php:286
|
3673 |
-
#: classes/helpers/FrmAppHelper.php:
|
3674 |
msgid "The entered values do not match"
|
3675 |
msgstr ""
|
3676 |
|
@@ -3681,7 +3705,7 @@ msgstr ""
|
|
3681 |
|
3682 |
#: classes/helpers/FrmFieldsHelper.php:456
|
3683 |
#: classes/helpers/FrmFieldsHelper.php:457
|
3684 |
-
#: classes/helpers/FrmAppHelper.php:
|
3685 |
msgid "New Option"
|
3686 |
msgstr ""
|
3687 |
|
@@ -4881,7 +4905,7 @@ msgid "Excerpt View"
|
|
4881 |
msgstr ""
|
4882 |
|
4883 |
#: classes/helpers/FrmListHelper.php:262
|
4884 |
-
#: classes/helpers/FrmAppHelper.php:
|
4885 |
msgid "No items found."
|
4886 |
msgstr ""
|
4887 |
|
@@ -4893,50 +4917,55 @@ msgstr ""
|
|
4893 |
msgid "Bulk Actions"
|
4894 |
msgstr ""
|
4895 |
|
4896 |
-
#: classes/helpers/FrmListHelper.php:
|
|
|
|
|
|
|
|
|
|
|
4897 |
msgid "Apply"
|
4898 |
msgstr ""
|
4899 |
|
4900 |
-
#: classes/helpers/FrmListHelper.php:
|
4901 |
-
#: classes/helpers/FrmListHelper.php:
|
4902 |
msgid "Show more details"
|
4903 |
msgstr ""
|
4904 |
|
4905 |
#. translators: %s: Number of items
|
4906 |
-
#: classes/helpers/FrmListHelper.php:
|
4907 |
-
#: classes/helpers/FrmListHelper.php:
|
4908 |
msgid "%s item"
|
4909 |
msgid_plural "%s items"
|
4910 |
msgstr[0] ""
|
4911 |
|
4912 |
-
#: classes/helpers/FrmListHelper.php:
|
4913 |
-
#: classes/helpers/FrmListHelper.php:
|
4914 |
msgid "Current Page"
|
4915 |
msgstr ""
|
4916 |
|
4917 |
#. translators: %1$s: Current page number, %2$s: Total pages
|
4918 |
-
#: classes/helpers/FrmListHelper.php:
|
4919 |
msgctxt "paging"
|
4920 |
msgid "%1$s of %2$s"
|
4921 |
msgstr ""
|
4922 |
|
4923 |
-
#: classes/helpers/FrmListHelper.php:
|
4924 |
msgid "First page"
|
4925 |
msgstr ""
|
4926 |
|
4927 |
-
#: classes/helpers/FrmListHelper.php:
|
4928 |
msgid "Last page"
|
4929 |
msgstr ""
|
4930 |
|
4931 |
-
#: classes/helpers/FrmListHelper.php:
|
4932 |
msgid "Previous page"
|
4933 |
msgstr ""
|
4934 |
|
4935 |
-
#: classes/helpers/FrmListHelper.php:
|
4936 |
msgid "Next page"
|
4937 |
msgstr ""
|
4938 |
|
4939 |
-
#: classes/helpers/FrmListHelper.php:
|
4940 |
msgid "Select All"
|
4941 |
msgstr ""
|
4942 |
|
@@ -5153,7 +5182,7 @@ msgid "Is this intentional?"
|
|
5153 |
msgstr ""
|
5154 |
|
5155 |
#: classes/helpers/FrmFormsHelper.php:1457
|
5156 |
-
#: classes/helpers/FrmAppHelper.php:
|
5157 |
msgid "See the list of reserved words in WordPress."
|
5158 |
msgstr ""
|
5159 |
|
@@ -5167,599 +5196,601 @@ msgstr ""
|
|
5167 |
msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
|
5168 |
msgstr ""
|
5169 |
|
5170 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5171 |
msgid "(label)"
|
5172 |
msgstr ""
|
5173 |
|
5174 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5175 |
msgid "Comment"
|
5176 |
msgstr ""
|
5177 |
|
5178 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5179 |
msgid "Comment User"
|
5180 |
msgstr ""
|
5181 |
|
5182 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5183 |
msgid "Comment Date"
|
5184 |
msgstr ""
|
5185 |
|
5186 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5187 |
msgid "Timestamp"
|
5188 |
msgstr ""
|
5189 |
|
5190 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5191 |
msgid "Last Updated"
|
5192 |
msgstr ""
|
5193 |
|
5194 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5195 |
msgid "Updated By"
|
5196 |
msgstr ""
|
5197 |
|
5198 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5199 |
msgid "IP"
|
5200 |
msgstr ""
|
5201 |
|
5202 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5203 |
msgid "Parent ID"
|
5204 |
msgstr ""
|
5205 |
|
5206 |
-
#: classes/helpers/FrmAppHelper.php:
|
5207 |
msgid "Your account has expired"
|
5208 |
msgstr ""
|
5209 |
|
5210 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
5211 |
msgid "Add New"
|
5212 |
msgstr ""
|
5213 |
|
5214 |
-
#: classes/helpers/FrmAppHelper.php:
|
5215 |
msgid "View Forms"
|
5216 |
msgstr ""
|
5217 |
|
5218 |
-
#: classes/helpers/FrmAppHelper.php:
|
5219 |
msgid "Add and Edit Forms"
|
5220 |
msgstr ""
|
5221 |
|
5222 |
-
#: classes/helpers/FrmAppHelper.php:
|
5223 |
msgid "Delete Forms"
|
5224 |
msgstr ""
|
5225 |
|
5226 |
-
#: classes/helpers/FrmAppHelper.php:
|
5227 |
msgid "Access this Settings Page"
|
5228 |
msgstr ""
|
5229 |
|
5230 |
-
#: classes/helpers/FrmAppHelper.php:
|
5231 |
msgid "View Entries from Admin Area"
|
5232 |
msgstr ""
|
5233 |
|
5234 |
-
#: classes/helpers/FrmAppHelper.php:
|
5235 |
msgid "Delete Entries from Admin Area"
|
5236 |
msgstr ""
|
5237 |
|
5238 |
-
#: classes/helpers/FrmAppHelper.php:
|
5239 |
msgid "Add Entries from Admin Area"
|
5240 |
msgstr ""
|
5241 |
|
5242 |
-
#: classes/helpers/FrmAppHelper.php:
|
5243 |
msgid "Edit Entries from Admin Area"
|
5244 |
msgstr ""
|
5245 |
|
5246 |
-
#: classes/helpers/FrmAppHelper.php:
|
5247 |
msgid "View Reports"
|
5248 |
msgstr ""
|
5249 |
|
5250 |
-
#: classes/helpers/FrmAppHelper.php:
|
5251 |
msgid "Add/Edit Views"
|
5252 |
msgstr ""
|
5253 |
|
5254 |
-
#: classes/helpers/FrmAppHelper.php:
|
5255 |
msgid "at"
|
5256 |
msgstr ""
|
5257 |
|
5258 |
-
#: classes/helpers/FrmAppHelper.php:
|
5259 |
msgid "year"
|
5260 |
msgstr ""
|
5261 |
|
5262 |
-
#: classes/helpers/FrmAppHelper.php:
|
5263 |
msgid "years"
|
5264 |
msgstr ""
|
5265 |
|
5266 |
-
#: classes/helpers/FrmAppHelper.php:
|
5267 |
msgid "month"
|
5268 |
msgstr ""
|
5269 |
|
5270 |
-
#: classes/helpers/FrmAppHelper.php:
|
5271 |
msgid "months"
|
5272 |
msgstr ""
|
5273 |
|
5274 |
-
#: classes/helpers/FrmAppHelper.php:
|
5275 |
msgid "week"
|
5276 |
msgstr ""
|
5277 |
|
5278 |
-
#: classes/helpers/FrmAppHelper.php:
|
5279 |
msgid "weeks"
|
5280 |
msgstr ""
|
5281 |
|
5282 |
-
#: classes/helpers/FrmAppHelper.php:
|
5283 |
msgid "day"
|
5284 |
msgstr ""
|
5285 |
|
5286 |
-
#: classes/helpers/FrmAppHelper.php:
|
5287 |
msgid "days"
|
5288 |
msgstr ""
|
5289 |
|
5290 |
-
#: classes/helpers/FrmAppHelper.php:
|
5291 |
msgid "hour"
|
5292 |
msgstr ""
|
5293 |
|
5294 |
-
#: classes/helpers/FrmAppHelper.php:
|
5295 |
msgid "hours"
|
5296 |
msgstr ""
|
5297 |
|
5298 |
-
#: classes/helpers/FrmAppHelper.php:
|
5299 |
msgid "minute"
|
5300 |
msgstr ""
|
5301 |
|
5302 |
-
#: classes/helpers/FrmAppHelper.php:
|
5303 |
msgid "minutes"
|
5304 |
msgstr ""
|
5305 |
|
5306 |
-
#: classes/helpers/FrmAppHelper.php:
|
5307 |
msgid "second"
|
5308 |
msgstr ""
|
5309 |
|
5310 |
-
#: classes/helpers/FrmAppHelper.php:
|
5311 |
msgid "seconds"
|
5312 |
msgstr ""
|
5313 |
|
5314 |
-
#: classes/helpers/FrmAppHelper.php:
|
5315 |
msgid "Give this action a label for easy reference."
|
5316 |
msgstr ""
|
5317 |
|
5318 |
-
#: classes/helpers/FrmAppHelper.php:
|
5319 |
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."
|
5320 |
msgstr ""
|
5321 |
|
5322 |
-
#: classes/helpers/FrmAppHelper.php:
|
5323 |
msgid "Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
|
5324 |
msgstr ""
|
5325 |
|
5326 |
-
#: classes/helpers/FrmAppHelper.php:
|
5327 |
msgid "Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
|
5328 |
msgstr ""
|
5329 |
|
5330 |
-
#: classes/helpers/FrmAppHelper.php:
|
5331 |
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."
|
5332 |
msgstr ""
|
5333 |
|
5334 |
-
#: classes/helpers/FrmAppHelper.php:
|
5335 |
msgid "Enter the name and/or email address of the sender. FORMAT: John Bates <john@example.com> or john@example.com."
|
5336 |
msgstr ""
|
5337 |
|
5338 |
#. translators: %1$s: Form name, %2$s: Date
|
5339 |
-
#: classes/helpers/FrmAppHelper.php:
|
5340 |
msgid "If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s"
|
5341 |
msgstr ""
|
5342 |
|
5343 |
-
#: classes/helpers/FrmAppHelper.php:
|
5344 |
-
#: classes/helpers/FrmAppHelper.php:
|
5345 |
msgid "Please wait while your site updates."
|
5346 |
msgstr ""
|
5347 |
|
5348 |
-
#: classes/helpers/FrmAppHelper.php:
|
5349 |
msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
|
5350 |
msgstr ""
|
5351 |
|
5352 |
-
#: classes/helpers/FrmAppHelper.php:
|
5353 |
-
#: classes/helpers/FrmAppHelper.php:
|
5354 |
msgid "Loading…"
|
5355 |
msgstr ""
|
5356 |
|
5357 |
-
#: classes/helpers/FrmAppHelper.php:
|
5358 |
msgid "Remove"
|
5359 |
msgstr ""
|
5360 |
|
5361 |
-
#: classes/helpers/FrmAppHelper.php:
|
5362 |
msgid "No results match"
|
5363 |
msgstr ""
|
5364 |
|
5365 |
-
#: classes/helpers/FrmAppHelper.php:
|
5366 |
msgid "That file looks like Spam."
|
5367 |
msgstr ""
|
5368 |
|
5369 |
-
#: classes/helpers/FrmAppHelper.php:
|
5370 |
msgid "There is an error in the calculation in the field with key"
|
5371 |
msgstr ""
|
5372 |
|
5373 |
-
#: classes/helpers/FrmAppHelper.php:
|
5374 |
msgid "Please complete the preceding required fields before uploading a file."
|
5375 |
msgstr ""
|
5376 |
|
5377 |
-
#: classes/helpers/FrmAppHelper.php:
|
5378 |
msgid "(Click to add description)"
|
5379 |
msgstr ""
|
5380 |
|
5381 |
-
#: classes/helpers/FrmAppHelper.php:
|
5382 |
msgid "(Blank)"
|
5383 |
msgstr ""
|
5384 |
|
5385 |
-
#: classes/helpers/FrmAppHelper.php:
|
5386 |
msgid "(no label)"
|
5387 |
msgstr ""
|
5388 |
|
5389 |
-
#: classes/helpers/FrmAppHelper.php:
|
5390 |
msgid "Saving"
|
5391 |
msgstr ""
|
5392 |
|
5393 |
-
#: classes/helpers/FrmAppHelper.php:
|
5394 |
msgid "Saved"
|
5395 |
msgstr ""
|
5396 |
|
5397 |
-
#: classes/helpers/FrmAppHelper.php:
|
5398 |
msgid "OK"
|
5399 |
msgstr ""
|
5400 |
|
5401 |
-
#: classes/helpers/FrmAppHelper.php:
|
5402 |
msgid "Clear default value when typing"
|
5403 |
msgstr ""
|
5404 |
|
5405 |
-
#: classes/helpers/FrmAppHelper.php:
|
5406 |
msgid "Do not clear default value when typing"
|
5407 |
msgstr ""
|
5408 |
|
5409 |
-
#: classes/helpers/FrmAppHelper.php:
|
5410 |
msgid "Default value will pass form validation"
|
5411 |
msgstr ""
|
5412 |
|
5413 |
-
#: classes/helpers/FrmAppHelper.php:
|
5414 |
msgid "Default value will NOT pass form validation"
|
5415 |
msgstr ""
|
5416 |
|
5417 |
-
#: classes/helpers/FrmAppHelper.php:
|
5418 |
-
msgid "Heads up"
|
5419 |
-
msgstr ""
|
5420 |
-
|
5421 |
-
#: classes/helpers/FrmAppHelper.php:2435
|
5422 |
msgid "Are you sure you want to delete this field and all data associated with it?"
|
5423 |
msgstr ""
|
5424 |
|
5425 |
-
#: classes/helpers/FrmAppHelper.php:
|
5426 |
msgid "All fields inside this Section will be deleted along with their data. Are you sure you want to delete this group of fields?"
|
5427 |
msgstr ""
|
5428 |
|
5429 |
-
#: classes/helpers/FrmAppHelper.php:
|
5430 |
msgid "Warning: If you have entries with multiple rows, all but the first row will be lost."
|
5431 |
msgstr ""
|
5432 |
|
5433 |
-
#: classes/helpers/FrmAppHelper.php:
|
5434 |
msgid "Enter Email"
|
5435 |
msgstr ""
|
5436 |
|
5437 |
-
#: classes/helpers/FrmAppHelper.php:
|
5438 |
msgid "Confirm Email"
|
5439 |
msgstr ""
|
5440 |
|
5441 |
-
#: classes/helpers/FrmAppHelper.php:
|
5442 |
msgid "Conditional content here"
|
5443 |
msgstr ""
|
5444 |
|
5445 |
-
#: classes/helpers/FrmAppHelper.php:
|
5446 |
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."
|
5447 |
msgstr ""
|
5448 |
|
5449 |
-
#: classes/helpers/FrmAppHelper.php:
|
5450 |
msgid "Enter Password"
|
5451 |
msgstr ""
|
5452 |
|
5453 |
-
#: classes/helpers/FrmAppHelper.php:
|
5454 |
msgid "Confirm Password"
|
5455 |
msgstr ""
|
5456 |
|
5457 |
-
#: classes/helpers/FrmAppHelper.php:
|
5458 |
msgid "Import Complete"
|
5459 |
msgstr ""
|
5460 |
|
5461 |
-
#: classes/helpers/FrmAppHelper.php:
|
5462 |
msgid "Warning: There is no way to retrieve unsaved entries."
|
5463 |
msgstr ""
|
5464 |
|
5465 |
-
#: classes/helpers/FrmAppHelper.php:
|
5466 |
msgid "Private"
|
5467 |
msgstr ""
|
5468 |
|
5469 |
-
#: classes/helpers/FrmAppHelper.php:
|
5470 |
msgid "No new licenses were found"
|
5471 |
msgstr ""
|
5472 |
|
5473 |
-
#: classes/helpers/FrmAppHelper.php:
|
5474 |
msgid "This calculation has at least one unmatched ( ) { } [ ]."
|
5475 |
msgstr ""
|
5476 |
|
5477 |
-
#: classes/helpers/FrmAppHelper.php:
|
5478 |
msgid "This calculation may have shortcodes that work in Views but not forms."
|
5479 |
msgstr ""
|
5480 |
|
5481 |
-
#: classes/helpers/FrmAppHelper.php:
|
5482 |
msgid "This calculation may have shortcodes that work in text calculations but not numeric calculations."
|
5483 |
msgstr ""
|
5484 |
|
5485 |
-
#: classes/helpers/FrmAppHelper.php:
|
5486 |
msgid "This form action is limited to one per form. Please edit the existing form action."
|
5487 |
msgstr ""
|
5488 |
|
5489 |
#. Translators: %s is the name of a Detail Page Slug that is a reserved word.
|
5490 |
-
#: classes/helpers/FrmAppHelper.php:
|
5491 |
msgid "The Detail Page Slug \"%s\" is reserved by WordPress. This may cause problems. Is this intentional?"
|
5492 |
msgstr ""
|
5493 |
|
5494 |
#. 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.
|
5495 |
-
#: classes/helpers/FrmAppHelper.php:
|
5496 |
msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems when included in the URL. Is this intentional? "
|
5497 |
msgstr ""
|
5498 |
|
5499 |
-
#: classes/helpers/FrmAppHelper.php:
|
5500 |
msgid "Please enter a Repeat Limit that is greater than 1."
|
5501 |
msgstr ""
|
5502 |
|
5503 |
-
#: classes/helpers/FrmAppHelper.php:
|
5504 |
msgid "Please select a limit between 0 and 200."
|
5505 |
msgstr ""
|
5506 |
|
5507 |
-
#: classes/helpers/FrmAppHelper.php:
|
5508 |
msgid "You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable."
|
5509 |
msgstr ""
|
5510 |
|
5511 |
-
#: classes/helpers/FrmAppHelper.php:
|
5512 |
msgid "You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro."
|
5513 |
msgstr ""
|
5514 |
|
5515 |
-
#: classes/helpers/FrmAppHelper.php:
|
5516 |
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+."
|
5517 |
msgstr ""
|
5518 |
|
5519 |
-
#: classes/helpers/FrmAppHelper.php:
|
5520 |
msgid "You are using an outdated browser that is not compatible with Formidable Forms. Please update to a more current browser (we recommend Chrome)."
|
5521 |
msgstr ""
|
5522 |
|
5523 |
-
#: classes/helpers/FrmAppHelper.php:
|
5524 |
msgid "English"
|
5525 |
msgstr ""
|
5526 |
|
5527 |
-
#: classes/helpers/FrmAppHelper.php:
|
5528 |
msgid "Afrikaans"
|
5529 |
msgstr ""
|
5530 |
|
5531 |
-
#: classes/helpers/FrmAppHelper.php:
|
5532 |
msgid "Albanian"
|
5533 |
msgstr ""
|
5534 |
|
5535 |
-
#: classes/helpers/FrmAppHelper.php:
|
5536 |
msgid "Arabic"
|
5537 |
msgstr ""
|
5538 |
|
5539 |
-
#: classes/helpers/FrmAppHelper.php:
|
5540 |
msgid "Armenian"
|
5541 |
msgstr ""
|
5542 |
|
5543 |
-
#: classes/helpers/FrmAppHelper.php:
|
5544 |
msgid "Azerbaijani"
|
5545 |
msgstr ""
|
5546 |
|
5547 |
-
#: classes/helpers/FrmAppHelper.php:
|
5548 |
msgid "Basque"
|
5549 |
msgstr ""
|
5550 |
|
5551 |
-
#: classes/helpers/FrmAppHelper.php:
|
5552 |
msgid "Bosnian"
|
5553 |
msgstr ""
|
5554 |
|
5555 |
-
#: classes/helpers/FrmAppHelper.php:
|
5556 |
msgid "Bulgarian"
|
5557 |
msgstr ""
|
5558 |
|
5559 |
-
#: classes/helpers/FrmAppHelper.php:
|
5560 |
msgid "Catalan"
|
5561 |
msgstr ""
|
5562 |
|
5563 |
-
#: classes/helpers/FrmAppHelper.php:
|
5564 |
msgid "Chinese Hong Kong"
|
5565 |
msgstr ""
|
5566 |
|
5567 |
-
#: classes/helpers/FrmAppHelper.php:
|
5568 |
msgid "Chinese Simplified"
|
5569 |
msgstr ""
|
5570 |
|
5571 |
-
#: classes/helpers/FrmAppHelper.php:
|
5572 |
msgid "Chinese Traditional"
|
5573 |
msgstr ""
|
5574 |
|
5575 |
-
#: classes/helpers/FrmAppHelper.php:
|
5576 |
msgid "Croatian"
|
5577 |
msgstr ""
|
5578 |
|
5579 |
-
#: classes/helpers/FrmAppHelper.php:
|
5580 |
msgid "Czech"
|
5581 |
msgstr ""
|
5582 |
|
5583 |
-
#: classes/helpers/FrmAppHelper.php:
|
5584 |
msgid "Danish"
|
5585 |
msgstr ""
|
5586 |
|
5587 |
-
#: classes/helpers/FrmAppHelper.php:
|
5588 |
msgid "Dutch"
|
5589 |
msgstr ""
|
5590 |
|
5591 |
-
#: classes/helpers/FrmAppHelper.php:
|
5592 |
msgid "English/UK"
|
5593 |
msgstr ""
|
5594 |
|
5595 |
-
#: classes/helpers/FrmAppHelper.php:
|
5596 |
msgid "Esperanto"
|
5597 |
msgstr ""
|
5598 |
|
5599 |
-
#: classes/helpers/FrmAppHelper.php:
|
5600 |
msgid "Estonian"
|
5601 |
msgstr ""
|
5602 |
|
5603 |
-
#: classes/helpers/FrmAppHelper.php:
|
5604 |
msgid "Faroese"
|
5605 |
msgstr ""
|
5606 |
|
5607 |
-
#: classes/helpers/FrmAppHelper.php:
|
5608 |
msgid "Farsi/Persian"
|
5609 |
msgstr ""
|
5610 |
|
5611 |
-
#: classes/helpers/FrmAppHelper.php:
|
5612 |
msgid "Filipino"
|
5613 |
msgstr ""
|
5614 |
|
5615 |
-
#: classes/helpers/FrmAppHelper.php:
|
5616 |
msgid "Finnish"
|
5617 |
msgstr ""
|
5618 |
|
5619 |
-
#: classes/helpers/FrmAppHelper.php:
|
5620 |
msgid "French"
|
5621 |
msgstr ""
|
5622 |
|
5623 |
-
#: classes/helpers/FrmAppHelper.php:
|
5624 |
msgid "French/Canadian"
|
5625 |
msgstr ""
|
5626 |
|
5627 |
-
#: classes/helpers/FrmAppHelper.php:
|
5628 |
msgid "French/Swiss"
|
5629 |
msgstr ""
|
5630 |
|
5631 |
-
#: classes/helpers/FrmAppHelper.php:
|
5632 |
msgid "German"
|
5633 |
msgstr ""
|
5634 |
|
5635 |
-
#: classes/helpers/FrmAppHelper.php:
|
5636 |
msgid "German/Austria"
|
5637 |
msgstr ""
|
5638 |
|
5639 |
-
#: classes/helpers/FrmAppHelper.php:
|
5640 |
msgid "German/Switzerland"
|
5641 |
msgstr ""
|
5642 |
|
5643 |
-
#: classes/helpers/FrmAppHelper.php:
|
5644 |
msgid "Greek"
|
5645 |
msgstr ""
|
5646 |
|
5647 |
-
#: classes/helpers/FrmAppHelper.php:
|
5648 |
-
#: classes/helpers/FrmAppHelper.php:
|
5649 |
msgid "Hebrew"
|
5650 |
msgstr ""
|
5651 |
|
5652 |
-
#: classes/helpers/FrmAppHelper.php:
|
5653 |
msgid "Hindi"
|
5654 |
msgstr ""
|
5655 |
|
5656 |
-
#: classes/helpers/FrmAppHelper.php:
|
5657 |
msgid "Hungarian"
|
5658 |
msgstr ""
|
5659 |
|
5660 |
-
#: classes/helpers/FrmAppHelper.php:
|
5661 |
msgid "Icelandic"
|
5662 |
msgstr ""
|
5663 |
|
5664 |
-
#: classes/helpers/FrmAppHelper.php:
|
5665 |
msgid "Indonesian"
|
5666 |
msgstr ""
|
5667 |
|
5668 |
-
#: classes/helpers/FrmAppHelper.php:
|
5669 |
msgid "Italian"
|
5670 |
msgstr ""
|
5671 |
|
5672 |
-
#: classes/helpers/FrmAppHelper.php:
|
5673 |
msgid "Japanese"
|
5674 |
msgstr ""
|
5675 |
|
5676 |
-
#: classes/helpers/FrmAppHelper.php:
|
5677 |
msgid "Korean"
|
5678 |
msgstr ""
|
5679 |
|
5680 |
-
#: classes/helpers/FrmAppHelper.php:
|
5681 |
msgid "Latvian"
|
5682 |
msgstr ""
|
5683 |
|
5684 |
-
#: classes/helpers/FrmAppHelper.php:
|
5685 |
msgid "Lithuanian"
|
5686 |
msgstr ""
|
5687 |
|
5688 |
-
#: classes/helpers/FrmAppHelper.php:
|
5689 |
msgid "Malaysian"
|
5690 |
msgstr ""
|
5691 |
|
5692 |
-
#: classes/helpers/FrmAppHelper.php:
|
5693 |
msgid "Norwegian"
|
5694 |
msgstr ""
|
5695 |
|
5696 |
-
#: classes/helpers/FrmAppHelper.php:
|
5697 |
msgid "Polish"
|
5698 |
msgstr ""
|
5699 |
|
5700 |
-
#: classes/helpers/FrmAppHelper.php:
|
5701 |
msgid "Portuguese"
|
5702 |
msgstr ""
|
5703 |
|
5704 |
-
#: classes/helpers/FrmAppHelper.php:
|
5705 |
msgid "Portuguese/Brazilian"
|
5706 |
msgstr ""
|
5707 |
|
5708 |
-
#: classes/helpers/FrmAppHelper.php:
|
5709 |
msgid "Portuguese/Portugal"
|
5710 |
msgstr ""
|
5711 |
|
5712 |
-
#: classes/helpers/FrmAppHelper.php:
|
5713 |
msgid "Romanian"
|
5714 |
msgstr ""
|
5715 |
|
5716 |
-
#: classes/helpers/FrmAppHelper.php:
|
5717 |
msgid "Russian"
|
5718 |
msgstr ""
|
5719 |
|
5720 |
-
#: classes/helpers/FrmAppHelper.php:
|
5721 |
-
#: classes/helpers/FrmAppHelper.php:
|
5722 |
msgid "Serbian"
|
5723 |
msgstr ""
|
5724 |
|
5725 |
-
#: classes/helpers/FrmAppHelper.php:
|
5726 |
msgid "Slovak"
|
5727 |
msgstr ""
|
5728 |
|
5729 |
-
#: classes/helpers/FrmAppHelper.php:
|
5730 |
msgid "Slovenian"
|
5731 |
msgstr ""
|
5732 |
|
5733 |
-
#: classes/helpers/FrmAppHelper.php:
|
5734 |
msgid "Spanish"
|
5735 |
msgstr ""
|
5736 |
|
5737 |
-
#: classes/helpers/FrmAppHelper.php:
|
5738 |
msgid "Spanish/Latin America"
|
5739 |
msgstr ""
|
5740 |
|
5741 |
-
#: classes/helpers/FrmAppHelper.php:
|
5742 |
msgid "Swedish"
|
5743 |
msgstr ""
|
5744 |
|
5745 |
-
#: classes/helpers/FrmAppHelper.php:
|
5746 |
msgid "Tamil"
|
5747 |
msgstr ""
|
5748 |
|
5749 |
-
#: classes/helpers/FrmAppHelper.php:
|
5750 |
msgid "Thai"
|
5751 |
msgstr ""
|
5752 |
|
5753 |
-
#: classes/helpers/FrmAppHelper.php:
|
5754 |
-
#: classes/helpers/FrmAppHelper.php:
|
5755 |
msgid "Turkish"
|
5756 |
msgstr ""
|
5757 |
|
5758 |
-
#: classes/helpers/FrmAppHelper.php:
|
5759 |
msgid "Ukranian"
|
5760 |
msgstr ""
|
5761 |
|
5762 |
-
#: classes/helpers/FrmAppHelper.php:
|
5763 |
msgid "Vietnamese"
|
5764 |
msgstr ""
|
5765 |
|
@@ -5776,65 +5807,65 @@ msgstr ""
|
|
5776 |
msgid "Your server is missing the simplexml_import_dom function"
|
5777 |
msgstr ""
|
5778 |
|
5779 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5780 |
msgid "Updated"
|
5781 |
msgstr ""
|
5782 |
|
5783 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5784 |
msgid "Nothing was imported or updated"
|
5785 |
msgstr ""
|
5786 |
|
5787 |
#. translators: %1$s: Number of items
|
5788 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5789 |
msgid "%1$s Form"
|
5790 |
msgid_plural "%1$s Forms"
|
5791 |
msgstr[0] ""
|
5792 |
|
5793 |
#. translators: %1$s: Number of items
|
5794 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5795 |
msgid "%1$s Entry"
|
5796 |
msgid_plural "%1$s Entries"
|
5797 |
msgstr[0] ""
|
5798 |
|
5799 |
#. translators: %1$s: Number of items
|
5800 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5801 |
msgid "%1$s View"
|
5802 |
msgid_plural "%1$s Views"
|
5803 |
msgstr[0] ""
|
5804 |
|
5805 |
#. translators: %1$s: Number of items
|
5806 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5807 |
msgid "%1$s Post"
|
5808 |
msgid_plural "%1$s Posts"
|
5809 |
msgstr[0] ""
|
5810 |
|
5811 |
#. translators: %1$s: Number of items
|
5812 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5813 |
msgid "%1$s Style"
|
5814 |
msgid_plural "%1$s Styles"
|
5815 |
msgstr[0] ""
|
5816 |
|
5817 |
#. translators: %1$s: Number of items
|
5818 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5819 |
msgid "%1$s Term"
|
5820 |
msgid_plural "%1$s Terms"
|
5821 |
msgstr[0] ""
|
5822 |
|
5823 |
#. translators: %1$s: Number of items
|
5824 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5825 |
msgid "%1$s Form Action"
|
5826 |
msgid_plural "%1$s Form Actions"
|
5827 |
msgstr[0] ""
|
5828 |
|
5829 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5830 |
msgid "Go to imported form"
|
5831 |
msgstr ""
|
5832 |
|
5833 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5834 |
msgid "Create Posts"
|
5835 |
msgstr ""
|
5836 |
|
5837 |
-
#: classes/helpers/FrmXMLHelper.php:
|
5838 |
msgid "Email Notification"
|
5839 |
msgstr ""
|
5840 |
|
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.08\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-10-16T00:40:28+00:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.1.0\n"
|
15 |
"X-Domain: formidable\n"
|
136 |
msgid "Oops! You forgot to enter your license number."
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: classes/models/FrmAddon.php:553
|
140 |
msgid "Your license has been activated. Enjoy!"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: classes/models/FrmAddon.php:554
|
144 |
+
#: classes/models/FrmAddon.php:559
|
145 |
msgid "That license key is invalid"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: classes/models/FrmAddon.php:555
|
149 |
msgid "That license is expired"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: classes/models/FrmAddon.php:556
|
153 |
msgid "That license has been refunded"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: classes/models/FrmAddon.php:557
|
157 |
msgid "That license has been used on too many sites"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: classes/models/FrmAddon.php:558
|
161 |
msgid "Oops! That is the wrong license key for this plugin."
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: classes/models/FrmAddon.php:575
|
165 |
msgid "Cache cleared"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: classes/models/FrmAddon.php:597
|
169 |
msgid "That license was removed successfully"
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: classes/models/FrmAddon.php:599
|
173 |
msgid "There was an error deactivating your license."
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: classes/models/FrmAddon.php:643
|
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:647
|
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:650
|
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:661
|
191 |
msgid "There was a %1$s error: %2$s"
|
192 |
msgstr ""
|
193 |
|
262 |
msgstr ""
|
263 |
|
264 |
#: classes/models/FrmField.php:34
|
265 |
+
#: classes/controllers/FrmFormsController.php:1182
|
266 |
msgid "Email"
|
267 |
msgstr ""
|
268 |
|
287 |
msgstr ""
|
288 |
|
289 |
#: classes/models/FrmField.php:58
|
290 |
+
#: classes/controllers/FrmFormsController.php:1177
|
291 |
msgid "User ID"
|
292 |
msgstr ""
|
293 |
|
518 |
|
519 |
#: classes/models/FrmEntryValidate.php:18
|
520 |
#: classes/models/FrmSettings.php:110
|
521 |
+
#: classes/controllers/FrmFormActionsController.php:391
|
522 |
msgid "You do not have permission to do that"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: classes/models/FrmEntryValidate.php:233
|
526 |
+
#: classes/models/FrmEntryValidate.php:242
|
527 |
msgid "Your entry appears to be spam!"
|
528 |
msgstr ""
|
529 |
|
530 |
+
#: classes/models/FrmEntryValidate.php:237
|
531 |
msgid "Your entry appears to be blocked spam!"
|
532 |
msgstr ""
|
533 |
|
591 |
#: classes/models/fields/FrmFieldType.php:583
|
592 |
#: classes/helpers/FrmFieldsHelper.php:167
|
593 |
#: classes/helpers/FrmFieldsHelper.php:296
|
594 |
+
#: classes/helpers/FrmXMLHelper.php:1179
|
595 |
msgid "%s is invalid"
|
596 |
msgstr ""
|
597 |
|
678 |
#. translators: %1$s - field type
|
679 |
#. translators: %1$s: Number of items
|
680 |
#: classes/models/FrmFormMigrator.php:584
|
681 |
+
#: classes/helpers/FrmXMLHelper.php:1061
|
682 |
msgid "%1$s Field"
|
683 |
msgid_plural "%1$s Fields"
|
684 |
msgstr[0] ""
|
717 |
msgid "Upgrade"
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: classes/controllers/FrmAddonsController.php:58
|
721 |
msgid "There are no plugins on your site that require a license"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: classes/controllers/FrmAddonsController.php:578
|
725 |
msgid "Installed"
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: classes/controllers/FrmAddonsController.php:583
|
729 |
+
#: classes/helpers/FrmAppHelper.php:2504
|
730 |
msgid "Active"
|
731 |
msgstr ""
|
732 |
|
733 |
+
#: classes/controllers/FrmAddonsController.php:588
|
734 |
msgid "Not Installed"
|
735 |
msgstr ""
|
736 |
|
737 |
+
#: classes/controllers/FrmAddonsController.php:840
|
738 |
msgid "Your plugin has been installed. Please reload the page to see more options."
|
739 |
msgstr ""
|
740 |
|
741 |
+
#: classes/controllers/FrmAddonsController.php:889
|
742 |
+
msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
|
743 |
msgstr ""
|
744 |
|
745 |
+
#: classes/controllers/FrmAddonsController.php:945
|
746 |
msgid "Your plugin has been activated. Please reload the page to see more options."
|
747 |
msgstr ""
|
748 |
|
749 |
+
#: classes/controllers/FrmAddonsController.php:977
|
750 |
msgid "Your plugins have been installed and activated."
|
751 |
msgstr ""
|
752 |
|
753 |
+
#: classes/controllers/FrmAddonsController.php:1077
|
754 |
+
msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
|
755 |
+
msgstr ""
|
756 |
+
|
757 |
#: classes/controllers/FrmAppController.php:150
|
758 |
msgid "Build"
|
759 |
msgstr ""
|
1027 |
#: classes/views/addons/list.php:86
|
1028 |
#: classes/views/shared/upgrade_overlay.php:32
|
1029 |
#: classes/helpers/FrmFormMigratorsHelper.php:131
|
1030 |
+
#: classes/helpers/FrmAppHelper.php:2503
|
1031 |
msgid "Install"
|
1032 |
msgstr ""
|
1033 |
|
1264 |
#: classes/controllers/FrmFormsController.php:741
|
1265 |
#: classes/controllers/FrmFormsController.php:745
|
1266 |
#: classes/views/shared/mb_adv_info.php:98
|
1267 |
+
#: classes/helpers/FrmCSVExportHelper.php:223
|
1268 |
msgid "Key"
|
1269 |
msgstr ""
|
1270 |
|
1298 |
msgid "Form Permissions"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: classes/controllers/FrmFormsController.php:986
|
1302 |
+
msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
|
1303 |
+
msgstr ""
|
1304 |
+
|
1305 |
+
#: classes/controllers/FrmFormsController.php:990
|
1306 |
msgid "Form Scheduling"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: classes/controllers/FrmFormsController.php:995
|
1310 |
msgid "Form scheduling settings"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: classes/controllers/FrmFormsController.php:999
|
1314 |
msgid "Styling & Buttons"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: classes/controllers/FrmFormsController.php:1005
|
1318 |
msgid "Customize HTML"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
+
#: classes/controllers/FrmFormsController.php:1114
|
1322 |
msgid "Customize field values with the following parameters."
|
1323 |
msgstr ""
|
1324 |
|
1325 |
+
#: classes/controllers/FrmFormsController.php:1151
|
1326 |
msgid "Separator"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
+
#: classes/controllers/FrmFormsController.php:1152
|
1330 |
msgid "Use a different separator for checkbox fields"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
+
#: classes/controllers/FrmFormsController.php:1155
|
1334 |
msgid "Date Format"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
+
#: classes/controllers/FrmFormsController.php:1158
|
1338 |
#: classes/views/frm-fields/back-end/settings.php:27
|
1339 |
msgid "Field Label"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
+
#: classes/controllers/FrmFormsController.php:1161
|
1343 |
msgid "No Auto P"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
+
#: classes/controllers/FrmFormsController.php:1162
|
1347 |
msgid "Do not automatically add any paragraphs or line breaks"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: classes/controllers/FrmFormsController.php:1178
|
1351 |
msgid "First Name"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
+
#: classes/controllers/FrmFormsController.php:1179
|
1355 |
msgid "Last Name"
|
1356 |
msgstr ""
|
1357 |
|
1358 |
+
#: classes/controllers/FrmFormsController.php:1180
|
1359 |
msgid "Display Name"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
+
#: classes/controllers/FrmFormsController.php:1181
|
1363 |
msgid "User Login"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
+
#: classes/controllers/FrmFormsController.php:1183
|
1367 |
msgid "Avatar"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
+
#: classes/controllers/FrmFormsController.php:1184
|
1371 |
msgid "Author Link"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
+
#: classes/controllers/FrmFormsController.php:1197
|
1375 |
#: classes/views/frm-entries/sidebar-shared.php:51
|
1376 |
msgid "Entry ID"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
+
#: classes/controllers/FrmFormsController.php:1198
|
1380 |
#: classes/controllers/FrmEntriesController.php:78
|
1381 |
#: classes/views/frm-entries/sidebar-shared.php:57
|
1382 |
#: classes/views/frm-entries/form.php:54
|
1383 |
msgid "Entry Key"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
+
#: classes/controllers/FrmFormsController.php:1199
|
1387 |
msgid "Post ID"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
+
#: classes/controllers/FrmFormsController.php:1200
|
1391 |
msgid "User IP"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
+
#: classes/controllers/FrmFormsController.php:1201
|
1395 |
msgid "Entry created"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
+
#: classes/controllers/FrmFormsController.php:1202
|
1399 |
msgid "Entry updated"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
+
#: classes/controllers/FrmFormsController.php:1204
|
1403 |
msgid "Site URL"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
+
#: classes/controllers/FrmFormsController.php:1205
|
1407 |
msgid "Site Name"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
+
#: classes/controllers/FrmFormsController.php:1213
|
1411 |
msgid "Default Msg"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
+
#: classes/controllers/FrmFormsController.php:1214
|
1415 |
msgid "Default HTML"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
+
#: classes/controllers/FrmFormsController.php:1215
|
1419 |
msgid "Default Plain"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
+
#: classes/controllers/FrmFormsController.php:1304
|
1423 |
msgid "No forms were specified"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
+
#: classes/controllers/FrmFormsController.php:1419
|
1427 |
msgid "Abnormal HTML characters prevented your form from saving correctly"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
+
#: classes/controllers/FrmFormsController.php:1534
|
1431 |
#: classes/views/frm-forms/list-templates.php:203
|
1432 |
#: classes/views/xml/import_form.php:133
|
1433 |
#: classes/views/styles/manage.php:59
|
1439 |
msgid "(no title)"
|
1440 |
msgstr ""
|
1441 |
|
1442 |
+
#: classes/controllers/FrmFormsController.php:1580
|
1443 |
+
#: classes/controllers/FrmFormsController.php:1594
|
1444 |
msgid "Please select a valid form"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: classes/controllers/FrmFormsController.php:1816
|
1448 |
msgid "Please wait while you are redirected."
|
1449 |
msgstr ""
|
1450 |
|
1451 |
#. translators: %1$s: Start link HTML, %2$s: End link HTML
|
1452 |
+
#: classes/controllers/FrmFormsController.php:1852
|
1453 |
msgid "%1$sClick here%2$s if you are not automatically redirected."
|
1454 |
msgstr ""
|
1455 |
|
1478 |
msgid "Form Actions"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
#: classes/controllers/FrmFormActionsController.php:141
|
1482 |
+
#: classes/views/frm-form-actions/default_actions.php:77
|
1483 |
msgid "eCommerce"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
+
#: classes/controllers/FrmFormActionsController.php:149
|
1487 |
msgid "Email Marketing"
|
1488 |
msgstr ""
|
1489 |
|
1490 |
+
#: classes/controllers/FrmFormActionsController.php:161
|
1491 |
msgid "CRM"
|
1492 |
msgstr ""
|
1493 |
|
1494 |
#. translators: %s: Name of form action
|
1495 |
+
#: classes/controllers/FrmFormActionsController.php:205
|
1496 |
msgid "%s form actions"
|
1497 |
msgstr ""
|
1498 |
|
1501 |
msgstr ""
|
1502 |
|
1503 |
#: classes/controllers/FrmEntriesController.php:85
|
1504 |
+
#: classes/helpers/FrmCSVExportHelper.php:218
|
1505 |
msgid "Created By"
|
1506 |
msgstr ""
|
1507 |
|
1629 |
#: classes/views/frm-forms/new-form-overlay.php:36
|
1630 |
#: classes/views/shared/confirm-overlay.php:19
|
1631 |
#: classes/views/shared/admin-header.php:54
|
1632 |
+
#: classes/helpers/FrmAppHelper.php:2464
|
1633 |
msgid "Cancel"
|
1634 |
msgstr ""
|
1635 |
|
1641 |
#: classes/views/shared/mb_adv_info.php:40
|
1642 |
#: classes/views/shared/mb_adv_info.php:183
|
1643 |
#: classes/views/frm-entries/list.php:47
|
1644 |
+
#: classes/helpers/FrmAppHelper.php:979
|
1645 |
msgid "Search"
|
1646 |
msgstr ""
|
1647 |
|
1832 |
msgstr ""
|
1833 |
|
1834 |
#: classes/views/frm-forms/settings-advanced.php:98
|
1835 |
+
#: classes/helpers/FrmAppHelper.php:1104
|
1836 |
msgid "Select a Page"
|
1837 |
msgstr ""
|
1838 |
|
1991 |
msgid "Register User"
|
1992 |
msgstr ""
|
1993 |
|
1994 |
+
#: classes/views/frm-form-actions/default_actions.php:67
|
1995 |
msgid "Twilio SMS"
|
1996 |
msgstr ""
|
1997 |
|
1998 |
+
#: classes/views/frm-form-actions/default_actions.php:141
|
1999 |
msgid "Send API data"
|
2000 |
msgstr ""
|
2001 |
|
2079 |
msgstr ""
|
2080 |
|
2081 |
#: classes/views/frm-form-actions/_action_inside.php:70
|
2082 |
+
msgid "Email attachments"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
#: classes/views/frm-form-actions/_action_inside.php:71
|
2086 |
+
msgid "Attachment"
|
2087 |
+
msgstr ""
|
2088 |
+
|
2089 |
+
#: classes/views/frm-form-actions/_action_inside.php:75
|
2090 |
+
msgid "Conditional emails"
|
2091 |
+
msgstr ""
|
2092 |
+
|
2093 |
+
#: classes/views/frm-form-actions/_action_inside.php:76
|
2094 |
msgid "Use Conditional Logic"
|
2095 |
msgstr ""
|
2096 |
|
2097 |
+
#: classes/views/frm-form-actions/_action_inside.php:93
|
2098 |
msgid "Form action automations"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
+
#: classes/views/frm-form-actions/_action_inside.php:94
|
2102 |
msgid "Setup Automation"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: classes/views/frm-form-actions/_action_inside.php:106
|
2106 |
msgid "Form action logs"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: classes/views/frm-form-actions/_action_inside.php:108
|
2110 |
msgid "Install logging to get more information on API requests."
|
2111 |
msgstr ""
|
2112 |
|
2113 |
#. translators: %1$s: The ID of the form action.
|
2114 |
+
#: classes/views/frm-form-actions/_action_inside.php:118
|
2115 |
msgid "Action ID: %1$s"
|
2116 |
msgstr ""
|
2117 |
|
2167 |
msgstr ""
|
2168 |
|
2169 |
#: classes/views/solutions/_import.php:51
|
2170 |
+
#: classes/helpers/FrmXMLHelper.php:1018
|
2171 |
msgid "Imported"
|
2172 |
msgstr ""
|
2173 |
|
2185 |
|
2186 |
#: classes/views/shared/confirm-overlay.php:15
|
2187 |
#: classes/views/shared/info-overlay.php:15
|
2188 |
+
#: classes/helpers/FrmAppHelper.php:2471
|
2189 |
msgid "Are you sure?"
|
2190 |
msgstr ""
|
2191 |
|
2298 |
msgstr ""
|
2299 |
|
2300 |
#: classes/views/shared/mb_adv_info.php:95
|
2301 |
+
#: classes/helpers/FrmCSVExportHelper.php:222
|
2302 |
+
#: classes/helpers/FrmAppHelper.php:2443
|
2303 |
msgid "ID"
|
2304 |
msgstr ""
|
2305 |
|
2309 |
|
2310 |
#: classes/views/shared/mb_adv_info.php:113
|
2311 |
#: classes/views/shared/mb_adv_info.php:127
|
2312 |
+
#: classes/helpers/FrmAppHelper.php:2505
|
2313 |
msgid "Select a Field"
|
2314 |
msgstr ""
|
2315 |
|
2933 |
msgstr ""
|
2934 |
|
2935 |
#: classes/views/frm-fields/back-end/settings.php:270
|
2936 |
+
#: classes/helpers/FrmAppHelper.php:2465
|
2937 |
msgid "Default"
|
2938 |
msgstr ""
|
2939 |
|
3155 |
msgstr ""
|
3156 |
|
3157 |
#: classes/views/frm-settings/general.php:9
|
3158 |
+
msgid "Your license key provides access to new features and updates."
|
3159 |
msgstr ""
|
3160 |
|
3161 |
#: classes/views/frm-settings/general.php:15
|
3630 |
msgid "Permanently delete this entry?"
|
3631 |
msgstr ""
|
3632 |
|
3633 |
+
#: classes/helpers/FrmEntriesListHelper.php:344
|
3634 |
+
msgid "ALL selected entries in this form will be permanently deleted. Want to proceed?"
|
3635 |
+
msgstr ""
|
3636 |
+
|
3637 |
#: classes/helpers/FrmFormsListHelper.php:106
|
3638 |
msgid "No forms found in the trash."
|
3639 |
msgstr ""
|
3685 |
|
3686 |
#: classes/helpers/FrmFormsListHelper.php:342
|
3687 |
#: classes/helpers/FrmFormsHelper.php:1198
|
3688 |
+
#: classes/helpers/FrmCSVExportHelper.php:220
|
3689 |
msgid "Draft"
|
3690 |
msgstr ""
|
3691 |
|
3692 |
+
#: classes/helpers/FrmFormsListHelper.php:360
|
3693 |
+
msgid "ALL selected forms and their entries will be permanently deleted. Want to proceed?"
|
3694 |
+
msgstr ""
|
3695 |
+
|
3696 |
#: classes/helpers/FrmFieldsHelper.php:286
|
3697 |
+
#: classes/helpers/FrmAppHelper.php:2476
|
3698 |
msgid "The entered values do not match"
|
3699 |
msgstr ""
|
3700 |
|
3705 |
|
3706 |
#: classes/helpers/FrmFieldsHelper.php:456
|
3707 |
#: classes/helpers/FrmFieldsHelper.php:457
|
3708 |
+
#: classes/helpers/FrmAppHelper.php:2480
|
3709 |
msgid "New Option"
|
3710 |
msgstr ""
|
3711 |
|
4905 |
msgstr ""
|
4906 |
|
4907 |
#: classes/helpers/FrmListHelper.php:262
|
4908 |
+
#: classes/helpers/FrmAppHelper.php:2506
|
4909 |
msgid "No items found."
|
4910 |
msgstr ""
|
4911 |
|
4917 |
msgid "Bulk Actions"
|
4918 |
msgstr ""
|
4919 |
|
4920 |
+
#: classes/helpers/FrmListHelper.php:405
|
4921 |
+
#: classes/helpers/FrmAppHelper.php:2470
|
4922 |
+
msgid "Heads up"
|
4923 |
+
msgstr ""
|
4924 |
+
|
4925 |
+
#: classes/helpers/FrmListHelper.php:409
|
4926 |
msgid "Apply"
|
4927 |
msgstr ""
|
4928 |
|
4929 |
+
#: classes/helpers/FrmListHelper.php:484
|
4930 |
+
#: classes/helpers/FrmListHelper.php:1173
|
4931 |
msgid "Show more details"
|
4932 |
msgstr ""
|
4933 |
|
4934 |
#. translators: %s: Number of items
|
4935 |
+
#: classes/helpers/FrmListHelper.php:592
|
4936 |
+
#: classes/helpers/FrmListHelper.php:1199
|
4937 |
msgid "%s item"
|
4938 |
msgid_plural "%s items"
|
4939 |
msgstr[0] ""
|
4940 |
|
4941 |
+
#: classes/helpers/FrmListHelper.php:623
|
4942 |
+
#: classes/helpers/FrmListHelper.php:627
|
4943 |
msgid "Current Page"
|
4944 |
msgstr ""
|
4945 |
|
4946 |
#. translators: %1$s: Current page number, %2$s: Total pages
|
4947 |
+
#: classes/helpers/FrmListHelper.php:635
|
4948 |
msgctxt "paging"
|
4949 |
msgid "%1$s of %2$s"
|
4950 |
msgstr ""
|
4951 |
|
4952 |
+
#: classes/helpers/FrmListHelper.php:699
|
4953 |
msgid "First page"
|
4954 |
msgstr ""
|
4955 |
|
4956 |
+
#: classes/helpers/FrmListHelper.php:700
|
4957 |
msgid "Last page"
|
4958 |
msgstr ""
|
4959 |
|
4960 |
+
#: classes/helpers/FrmListHelper.php:701
|
4961 |
msgid "Previous page"
|
4962 |
msgstr ""
|
4963 |
|
4964 |
+
#: classes/helpers/FrmListHelper.php:702
|
4965 |
msgid "Next page"
|
4966 |
msgstr ""
|
4967 |
|
4968 |
+
#: classes/helpers/FrmListHelper.php:922
|
4969 |
msgid "Select All"
|
4970 |
msgstr ""
|
4971 |
|
5182 |
msgstr ""
|
5183 |
|
5184 |
#: classes/helpers/FrmFormsHelper.php:1457
|
5185 |
+
#: classes/helpers/FrmAppHelper.php:2500
|
5186 |
msgid "See the list of reserved words in WordPress."
|
5187 |
msgstr ""
|
5188 |
|
5196 |
msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
|
5197 |
msgstr ""
|
5198 |
|
5199 |
+
#: classes/helpers/FrmCSVExportHelper.php:126
|
5200 |
msgid "(label)"
|
5201 |
msgstr ""
|
5202 |
|
5203 |
+
#: classes/helpers/FrmCSVExportHelper.php:209
|
5204 |
msgid "Comment"
|
5205 |
msgstr ""
|
5206 |
|
5207 |
+
#: classes/helpers/FrmCSVExportHelper.php:210
|
5208 |
msgid "Comment User"
|
5209 |
msgstr ""
|
5210 |
|
5211 |
+
#: classes/helpers/FrmCSVExportHelper.php:211
|
5212 |
msgid "Comment Date"
|
5213 |
msgstr ""
|
5214 |
|
5215 |
+
#: classes/helpers/FrmCSVExportHelper.php:216
|
5216 |
msgid "Timestamp"
|
5217 |
msgstr ""
|
5218 |
|
5219 |
+
#: classes/helpers/FrmCSVExportHelper.php:217
|
5220 |
msgid "Last Updated"
|
5221 |
msgstr ""
|
5222 |
|
5223 |
+
#: classes/helpers/FrmCSVExportHelper.php:219
|
5224 |
msgid "Updated By"
|
5225 |
msgstr ""
|
5226 |
|
5227 |
+
#: classes/helpers/FrmCSVExportHelper.php:221
|
5228 |
msgid "IP"
|
5229 |
msgstr ""
|
5230 |
|
5231 |
+
#: classes/helpers/FrmCSVExportHelper.php:225
|
5232 |
msgid "Parent ID"
|
5233 |
msgstr ""
|
5234 |
|
5235 |
+
#: classes/helpers/FrmAppHelper.php:130
|
5236 |
msgid "Your account has expired"
|
5237 |
msgstr ""
|
5238 |
|
5239 |
+
#. translators: %1$s: start HTML tag, %2$s: end HTML tag
|
5240 |
+
#: classes/helpers/FrmAppHelper.php:156
|
5241 |
+
msgid "Your form subscription expires in %1$s day%2$s."
|
5242 |
+
msgid_plural "Your form subscription expires in %1$s days%2$s."
|
5243 |
+
msgstr[0] ""
|
5244 |
+
|
5245 |
+
#: classes/helpers/FrmAppHelper.php:964
|
5246 |
msgid "Add New"
|
5247 |
msgstr ""
|
5248 |
|
5249 |
+
#: classes/helpers/FrmAppHelper.php:1255
|
5250 |
msgid "View Forms"
|
5251 |
msgstr ""
|
5252 |
|
5253 |
+
#: classes/helpers/FrmAppHelper.php:1256
|
5254 |
msgid "Add and Edit Forms"
|
5255 |
msgstr ""
|
5256 |
|
5257 |
+
#: classes/helpers/FrmAppHelper.php:1257
|
5258 |
msgid "Delete Forms"
|
5259 |
msgstr ""
|
5260 |
|
5261 |
+
#: classes/helpers/FrmAppHelper.php:1258
|
5262 |
msgid "Access this Settings Page"
|
5263 |
msgstr ""
|
5264 |
|
5265 |
+
#: classes/helpers/FrmAppHelper.php:1259
|
5266 |
msgid "View Entries from Admin Area"
|
5267 |
msgstr ""
|
5268 |
|
5269 |
+
#: classes/helpers/FrmAppHelper.php:1260
|
5270 |
msgid "Delete Entries from Admin Area"
|
5271 |
msgstr ""
|
5272 |
|
5273 |
+
#: classes/helpers/FrmAppHelper.php:1267
|
5274 |
msgid "Add Entries from Admin Area"
|
5275 |
msgstr ""
|
5276 |
|
5277 |
+
#: classes/helpers/FrmAppHelper.php:1268
|
5278 |
msgid "Edit Entries from Admin Area"
|
5279 |
msgstr ""
|
5280 |
|
5281 |
+
#: classes/helpers/FrmAppHelper.php:1269
|
5282 |
msgid "View Reports"
|
5283 |
msgstr ""
|
5284 |
|
5285 |
+
#: classes/helpers/FrmAppHelper.php:1270
|
5286 |
msgid "Add/Edit Views"
|
5287 |
msgstr ""
|
5288 |
|
5289 |
+
#: classes/helpers/FrmAppHelper.php:1936
|
5290 |
msgid "at"
|
5291 |
msgstr ""
|
5292 |
|
5293 |
+
#: classes/helpers/FrmAppHelper.php:2080
|
5294 |
msgid "year"
|
5295 |
msgstr ""
|
5296 |
|
5297 |
+
#: classes/helpers/FrmAppHelper.php:2081
|
5298 |
msgid "years"
|
5299 |
msgstr ""
|
5300 |
|
5301 |
+
#: classes/helpers/FrmAppHelper.php:2085
|
5302 |
msgid "month"
|
5303 |
msgstr ""
|
5304 |
|
5305 |
+
#: classes/helpers/FrmAppHelper.php:2086
|
5306 |
msgid "months"
|
5307 |
msgstr ""
|
5308 |
|
5309 |
+
#: classes/helpers/FrmAppHelper.php:2090
|
5310 |
msgid "week"
|
5311 |
msgstr ""
|
5312 |
|
5313 |
+
#: classes/helpers/FrmAppHelper.php:2091
|
5314 |
msgid "weeks"
|
5315 |
msgstr ""
|
5316 |
|
5317 |
+
#: classes/helpers/FrmAppHelper.php:2095
|
5318 |
msgid "day"
|
5319 |
msgstr ""
|
5320 |
|
5321 |
+
#: classes/helpers/FrmAppHelper.php:2096
|
5322 |
msgid "days"
|
5323 |
msgstr ""
|
5324 |
|
5325 |
+
#: classes/helpers/FrmAppHelper.php:2100
|
5326 |
msgid "hour"
|
5327 |
msgstr ""
|
5328 |
|
5329 |
+
#: classes/helpers/FrmAppHelper.php:2101
|
5330 |
msgid "hours"
|
5331 |
msgstr ""
|
5332 |
|
5333 |
+
#: classes/helpers/FrmAppHelper.php:2105
|
5334 |
msgid "minute"
|
5335 |
msgstr ""
|
5336 |
|
5337 |
+
#: classes/helpers/FrmAppHelper.php:2106
|
5338 |
msgid "minutes"
|
5339 |
msgstr ""
|
5340 |
|
5341 |
+
#: classes/helpers/FrmAppHelper.php:2110
|
5342 |
msgid "second"
|
5343 |
msgstr ""
|
5344 |
|
5345 |
+
#: classes/helpers/FrmAppHelper.php:2111
|
5346 |
msgid "seconds"
|
5347 |
msgstr ""
|
5348 |
|
5349 |
+
#: classes/helpers/FrmAppHelper.php:2205
|
5350 |
msgid "Give this action a label for easy reference."
|
5351 |
msgstr ""
|
5352 |
|
5353 |
+
#: classes/helpers/FrmAppHelper.php:2206
|
5354 |
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."
|
5355 |
msgstr ""
|
5356 |
|
5357 |
+
#: classes/helpers/FrmAppHelper.php:2207
|
5358 |
msgid "Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
|
5359 |
msgstr ""
|
5360 |
|
5361 |
+
#: classes/helpers/FrmAppHelper.php:2208
|
5362 |
msgid "Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
|
5363 |
msgstr ""
|
5364 |
|
5365 |
+
#: classes/helpers/FrmAppHelper.php:2209
|
5366 |
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."
|
5367 |
msgstr ""
|
5368 |
|
5369 |
+
#: classes/helpers/FrmAppHelper.php:2210
|
5370 |
msgid "Enter the name and/or email address of the sender. FORMAT: John Bates <john@example.com> or john@example.com."
|
5371 |
msgstr ""
|
5372 |
|
5373 |
#. translators: %1$s: Form name, %2$s: Date
|
5374 |
+
#: classes/helpers/FrmAppHelper.php:2212
|
5375 |
msgid "If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s"
|
5376 |
msgstr ""
|
5377 |
|
5378 |
+
#: classes/helpers/FrmAppHelper.php:2406
|
5379 |
+
#: classes/helpers/FrmAppHelper.php:2485
|
5380 |
msgid "Please wait while your site updates."
|
5381 |
msgstr ""
|
5382 |
|
5383 |
+
#: classes/helpers/FrmAppHelper.php:2407
|
5384 |
msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
|
5385 |
msgstr ""
|
5386 |
|
5387 |
+
#: classes/helpers/FrmAppHelper.php:2410
|
5388 |
+
#: classes/helpers/FrmAppHelper.php:2439
|
5389 |
msgid "Loading…"
|
5390 |
msgstr ""
|
5391 |
|
5392 |
+
#: classes/helpers/FrmAppHelper.php:2440
|
5393 |
msgid "Remove"
|
5394 |
msgstr ""
|
5395 |
|
5396 |
+
#: classes/helpers/FrmAppHelper.php:2444
|
5397 |
msgid "No results match"
|
5398 |
msgstr ""
|
5399 |
|
5400 |
+
#: classes/helpers/FrmAppHelper.php:2445
|
5401 |
msgid "That file looks like Spam."
|
5402 |
msgstr ""
|
5403 |
|
5404 |
+
#: classes/helpers/FrmAppHelper.php:2446
|
5405 |
msgid "There is an error in the calculation in the field with key"
|
5406 |
msgstr ""
|
5407 |
|
5408 |
+
#: classes/helpers/FrmAppHelper.php:2447
|
5409 |
msgid "Please complete the preceding required fields before uploading a file."
|
5410 |
msgstr ""
|
5411 |
|
5412 |
+
#: classes/helpers/FrmAppHelper.php:2458
|
5413 |
msgid "(Click to add description)"
|
5414 |
msgstr ""
|
5415 |
|
5416 |
+
#: classes/helpers/FrmAppHelper.php:2459
|
5417 |
msgid "(Blank)"
|
5418 |
msgstr ""
|
5419 |
|
5420 |
+
#: classes/helpers/FrmAppHelper.php:2460
|
5421 |
msgid "(no label)"
|
5422 |
msgstr ""
|
5423 |
|
5424 |
+
#: classes/helpers/FrmAppHelper.php:2461
|
5425 |
msgid "Saving"
|
5426 |
msgstr ""
|
5427 |
|
5428 |
+
#: classes/helpers/FrmAppHelper.php:2462
|
5429 |
msgid "Saved"
|
5430 |
msgstr ""
|
5431 |
|
5432 |
+
#: classes/helpers/FrmAppHelper.php:2463
|
5433 |
msgid "OK"
|
5434 |
msgstr ""
|
5435 |
|
5436 |
+
#: classes/helpers/FrmAppHelper.php:2466
|
5437 |
msgid "Clear default value when typing"
|
5438 |
msgstr ""
|
5439 |
|
5440 |
+
#: classes/helpers/FrmAppHelper.php:2467
|
5441 |
msgid "Do not clear default value when typing"
|
5442 |
msgstr ""
|
5443 |
|
5444 |
+
#: classes/helpers/FrmAppHelper.php:2468
|
5445 |
msgid "Default value will pass form validation"
|
5446 |
msgstr ""
|
5447 |
|
5448 |
+
#: classes/helpers/FrmAppHelper.php:2469
|
5449 |
msgid "Default value will NOT pass form validation"
|
5450 |
msgstr ""
|
5451 |
|
5452 |
+
#: classes/helpers/FrmAppHelper.php:2472
|
|
|
|
|
|
|
|
|
5453 |
msgid "Are you sure you want to delete this field and all data associated with it?"
|
5454 |
msgstr ""
|
5455 |
|
5456 |
+
#: classes/helpers/FrmAppHelper.php:2473
|
5457 |
msgid "All fields inside this Section will be deleted along with their data. Are you sure you want to delete this group of fields?"
|
5458 |
msgstr ""
|
5459 |
|
5460 |
+
#: classes/helpers/FrmAppHelper.php:2474
|
5461 |
msgid "Warning: If you have entries with multiple rows, all but the first row will be lost."
|
5462 |
msgstr ""
|
5463 |
|
5464 |
+
#: classes/helpers/FrmAppHelper.php:2477
|
5465 |
msgid "Enter Email"
|
5466 |
msgstr ""
|
5467 |
|
5468 |
+
#: classes/helpers/FrmAppHelper.php:2478
|
5469 |
msgid "Confirm Email"
|
5470 |
msgstr ""
|
5471 |
|
5472 |
+
#: classes/helpers/FrmAppHelper.php:2479
|
5473 |
msgid "Conditional content here"
|
5474 |
msgstr ""
|
5475 |
|
5476 |
+
#: classes/helpers/FrmAppHelper.php:2481
|
5477 |
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."
|
5478 |
msgstr ""
|
5479 |
|
5480 |
+
#: classes/helpers/FrmAppHelper.php:2482
|
5481 |
msgid "Enter Password"
|
5482 |
msgstr ""
|
5483 |
|
5484 |
+
#: classes/helpers/FrmAppHelper.php:2483
|
5485 |
msgid "Confirm Password"
|
5486 |
msgstr ""
|
5487 |
|
5488 |
+
#: classes/helpers/FrmAppHelper.php:2484
|
5489 |
msgid "Import Complete"
|
5490 |
msgstr ""
|
5491 |
|
5492 |
+
#: classes/helpers/FrmAppHelper.php:2486
|
5493 |
msgid "Warning: There is no way to retrieve unsaved entries."
|
5494 |
msgstr ""
|
5495 |
|
5496 |
+
#: classes/helpers/FrmAppHelper.php:2487
|
5497 |
msgid "Private"
|
5498 |
msgstr ""
|
5499 |
|
5500 |
+
#: classes/helpers/FrmAppHelper.php:2490
|
5501 |
msgid "No new licenses were found"
|
5502 |
msgstr ""
|
5503 |
|
5504 |
+
#: classes/helpers/FrmAppHelper.php:2491
|
5505 |
msgid "This calculation has at least one unmatched ( ) { } [ ]."
|
5506 |
msgstr ""
|
5507 |
|
5508 |
+
#: classes/helpers/FrmAppHelper.php:2492
|
5509 |
msgid "This calculation may have shortcodes that work in Views but not forms."
|
5510 |
msgstr ""
|
5511 |
|
5512 |
+
#: classes/helpers/FrmAppHelper.php:2493
|
5513 |
msgid "This calculation may have shortcodes that work in text calculations but not numeric calculations."
|
5514 |
msgstr ""
|
5515 |
|
5516 |
+
#: classes/helpers/FrmAppHelper.php:2494
|
5517 |
msgid "This form action is limited to one per form. Please edit the existing form action."
|
5518 |
msgstr ""
|
5519 |
|
5520 |
#. Translators: %s is the name of a Detail Page Slug that is a reserved word.
|
5521 |
+
#: classes/helpers/FrmAppHelper.php:2497
|
5522 |
msgid "The Detail Page Slug \"%s\" is reserved by WordPress. This may cause problems. Is this intentional?"
|
5523 |
msgstr ""
|
5524 |
|
5525 |
#. 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.
|
5526 |
+
#: classes/helpers/FrmAppHelper.php:2499
|
5527 |
msgid "The parameter \"%s\" is reserved by WordPress. This may cause problems when included in the URL. Is this intentional? "
|
5528 |
msgstr ""
|
5529 |
|
5530 |
+
#: classes/helpers/FrmAppHelper.php:2501
|
5531 |
msgid "Please enter a Repeat Limit that is greater than 1."
|
5532 |
msgstr ""
|
5533 |
|
5534 |
+
#: classes/helpers/FrmAppHelper.php:2502
|
5535 |
msgid "Please select a limit between 0 and 200."
|
5536 |
msgstr ""
|
5537 |
|
5538 |
+
#: classes/helpers/FrmAppHelper.php:2534
|
5539 |
msgid "You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable."
|
5540 |
msgstr ""
|
5541 |
|
5542 |
+
#: classes/helpers/FrmAppHelper.php:2561
|
5543 |
msgid "You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro."
|
5544 |
msgstr ""
|
5545 |
|
5546 |
+
#: classes/helpers/FrmAppHelper.php:2589
|
5547 |
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+."
|
5548 |
msgstr ""
|
5549 |
|
5550 |
+
#: classes/helpers/FrmAppHelper.php:2595
|
5551 |
msgid "You are using an outdated browser that is not compatible with Formidable Forms. Please update to a more current browser (we recommend Chrome)."
|
5552 |
msgstr ""
|
5553 |
|
5554 |
+
#: classes/helpers/FrmAppHelper.php:2609
|
5555 |
msgid "English"
|
5556 |
msgstr ""
|
5557 |
|
5558 |
+
#: classes/helpers/FrmAppHelper.php:2610
|
5559 |
msgid "Afrikaans"
|
5560 |
msgstr ""
|
5561 |
|
5562 |
+
#: classes/helpers/FrmAppHelper.php:2611
|
5563 |
msgid "Albanian"
|
5564 |
msgstr ""
|
5565 |
|
5566 |
+
#: classes/helpers/FrmAppHelper.php:2612
|
5567 |
msgid "Arabic"
|
5568 |
msgstr ""
|
5569 |
|
5570 |
+
#: classes/helpers/FrmAppHelper.php:2613
|
5571 |
msgid "Armenian"
|
5572 |
msgstr ""
|
5573 |
|
5574 |
+
#: classes/helpers/FrmAppHelper.php:2614
|
5575 |
msgid "Azerbaijani"
|
5576 |
msgstr ""
|
5577 |
|
5578 |
+
#: classes/helpers/FrmAppHelper.php:2615
|
5579 |
msgid "Basque"
|
5580 |
msgstr ""
|
5581 |
|
5582 |
+
#: classes/helpers/FrmAppHelper.php:2616
|
5583 |
msgid "Bosnian"
|
5584 |
msgstr ""
|
5585 |
|
5586 |
+
#: classes/helpers/FrmAppHelper.php:2617
|
5587 |
msgid "Bulgarian"
|
5588 |
msgstr ""
|
5589 |
|
5590 |
+
#: classes/helpers/FrmAppHelper.php:2618
|
5591 |
msgid "Catalan"
|
5592 |
msgstr ""
|
5593 |
|
5594 |
+
#: classes/helpers/FrmAppHelper.php:2619
|
5595 |
msgid "Chinese Hong Kong"
|
5596 |
msgstr ""
|
5597 |
|
5598 |
+
#: classes/helpers/FrmAppHelper.php:2620
|
5599 |
msgid "Chinese Simplified"
|
5600 |
msgstr ""
|
5601 |
|
5602 |
+
#: classes/helpers/FrmAppHelper.php:2621
|
5603 |
msgid "Chinese Traditional"
|
5604 |
msgstr ""
|
5605 |
|
5606 |
+
#: classes/helpers/FrmAppHelper.php:2622
|
5607 |
msgid "Croatian"
|
5608 |
msgstr ""
|
5609 |
|
5610 |
+
#: classes/helpers/FrmAppHelper.php:2623
|
5611 |
msgid "Czech"
|
5612 |
msgstr ""
|
5613 |
|
5614 |
+
#: classes/helpers/FrmAppHelper.php:2624
|
5615 |
msgid "Danish"
|
5616 |
msgstr ""
|
5617 |
|
5618 |
+
#: classes/helpers/FrmAppHelper.php:2625
|
5619 |
msgid "Dutch"
|
5620 |
msgstr ""
|
5621 |
|
5622 |
+
#: classes/helpers/FrmAppHelper.php:2626
|
5623 |
msgid "English/UK"
|
5624 |
msgstr ""
|
5625 |
|
5626 |
+
#: classes/helpers/FrmAppHelper.php:2627
|
5627 |
msgid "Esperanto"
|
5628 |
msgstr ""
|
5629 |
|
5630 |
+
#: classes/helpers/FrmAppHelper.php:2628
|
5631 |
msgid "Estonian"
|
5632 |
msgstr ""
|
5633 |
|
5634 |
+
#: classes/helpers/FrmAppHelper.php:2629
|
5635 |
msgid "Faroese"
|
5636 |
msgstr ""
|
5637 |
|
5638 |
+
#: classes/helpers/FrmAppHelper.php:2630
|
5639 |
msgid "Farsi/Persian"
|
5640 |
msgstr ""
|
5641 |
|
5642 |
+
#: classes/helpers/FrmAppHelper.php:2631
|
5643 |
msgid "Filipino"
|
5644 |
msgstr ""
|
5645 |
|
5646 |
+
#: classes/helpers/FrmAppHelper.php:2632
|
5647 |
msgid "Finnish"
|
5648 |
msgstr ""
|
5649 |
|
5650 |
+
#: classes/helpers/FrmAppHelper.php:2633
|
5651 |
msgid "French"
|
5652 |
msgstr ""
|
5653 |
|
5654 |
+
#: classes/helpers/FrmAppHelper.php:2634
|
5655 |
msgid "French/Canadian"
|
5656 |
msgstr ""
|
5657 |
|
5658 |
+
#: classes/helpers/FrmAppHelper.php:2635
|
5659 |
msgid "French/Swiss"
|
5660 |
msgstr ""
|
5661 |
|
5662 |
+
#: classes/helpers/FrmAppHelper.php:2636
|
5663 |
msgid "German"
|
5664 |
msgstr ""
|
5665 |
|
5666 |
+
#: classes/helpers/FrmAppHelper.php:2637
|
5667 |
msgid "German/Austria"
|
5668 |
msgstr ""
|
5669 |
|
5670 |
+
#: classes/helpers/FrmAppHelper.php:2638
|
5671 |
msgid "German/Switzerland"
|
5672 |
msgstr ""
|
5673 |
|
5674 |
+
#: classes/helpers/FrmAppHelper.php:2639
|
5675 |
msgid "Greek"
|
5676 |
msgstr ""
|
5677 |
|
5678 |
+
#: classes/helpers/FrmAppHelper.php:2640
|
5679 |
+
#: classes/helpers/FrmAppHelper.php:2641
|
5680 |
msgid "Hebrew"
|
5681 |
msgstr ""
|
5682 |
|
5683 |
+
#: classes/helpers/FrmAppHelper.php:2642
|
5684 |
msgid "Hindi"
|
5685 |
msgstr ""
|
5686 |
|
5687 |
+
#: classes/helpers/FrmAppHelper.php:2643
|
5688 |
msgid "Hungarian"
|
5689 |
msgstr ""
|
5690 |
|
5691 |
+
#: classes/helpers/FrmAppHelper.php:2644
|
5692 |
msgid "Icelandic"
|
5693 |
msgstr ""
|
5694 |
|
5695 |
+
#: classes/helpers/FrmAppHelper.php:2645
|
5696 |
msgid "Indonesian"
|
5697 |
msgstr ""
|
5698 |
|
5699 |
+
#: classes/helpers/FrmAppHelper.php:2646
|
5700 |
msgid "Italian"
|
5701 |
msgstr ""
|
5702 |
|
5703 |
+
#: classes/helpers/FrmAppHelper.php:2647
|
5704 |
msgid "Japanese"
|
5705 |
msgstr ""
|
5706 |
|
5707 |
+
#: classes/helpers/FrmAppHelper.php:2648
|
5708 |
msgid "Korean"
|
5709 |
msgstr ""
|
5710 |
|
5711 |
+
#: classes/helpers/FrmAppHelper.php:2649
|
5712 |
msgid "Latvian"
|
5713 |
msgstr ""
|
5714 |
|
5715 |
+
#: classes/helpers/FrmAppHelper.php:2650
|
5716 |
msgid "Lithuanian"
|
5717 |
msgstr ""
|
5718 |
|
5719 |
+
#: classes/helpers/FrmAppHelper.php:2651
|
5720 |
msgid "Malaysian"
|
5721 |
msgstr ""
|
5722 |
|
5723 |
+
#: classes/helpers/FrmAppHelper.php:2652
|
5724 |
msgid "Norwegian"
|
5725 |
msgstr ""
|
5726 |
|
5727 |
+
#: classes/helpers/FrmAppHelper.php:2653
|
5728 |
msgid "Polish"
|
5729 |
msgstr ""
|
5730 |
|
5731 |
+
#: classes/helpers/FrmAppHelper.php:2654
|
5732 |
msgid "Portuguese"
|
5733 |
msgstr ""
|
5734 |
|
5735 |
+
#: classes/helpers/FrmAppHelper.php:2655
|
5736 |
msgid "Portuguese/Brazilian"
|
5737 |
msgstr ""
|
5738 |
|
5739 |
+
#: classes/helpers/FrmAppHelper.php:2656
|
5740 |
msgid "Portuguese/Portugal"
|
5741 |
msgstr ""
|
5742 |
|
5743 |
+
#: classes/helpers/FrmAppHelper.php:2657
|
5744 |
msgid "Romanian"
|
5745 |
msgstr ""
|
5746 |
|
5747 |
+
#: classes/helpers/FrmAppHelper.php:2658
|
5748 |
msgid "Russian"
|
5749 |
msgstr ""
|
5750 |
|
5751 |
+
#: classes/helpers/FrmAppHelper.php:2659
|
5752 |
+
#: classes/helpers/FrmAppHelper.php:2660
|
5753 |
msgid "Serbian"
|
5754 |
msgstr ""
|
5755 |
|
5756 |
+
#: classes/helpers/FrmAppHelper.php:2661
|
5757 |
msgid "Slovak"
|
5758 |
msgstr ""
|
5759 |
|
5760 |
+
#: classes/helpers/FrmAppHelper.php:2662
|
5761 |
msgid "Slovenian"
|
5762 |
msgstr ""
|
5763 |
|
5764 |
+
#: classes/helpers/FrmAppHelper.php:2663
|
5765 |
msgid "Spanish"
|
5766 |
msgstr ""
|
5767 |
|
5768 |
+
#: classes/helpers/FrmAppHelper.php:2664
|
5769 |
msgid "Spanish/Latin America"
|
5770 |
msgstr ""
|
5771 |
|
5772 |
+
#: classes/helpers/FrmAppHelper.php:2665
|
5773 |
msgid "Swedish"
|
5774 |
msgstr ""
|
5775 |
|
5776 |
+
#: classes/helpers/FrmAppHelper.php:2666
|
5777 |
msgid "Tamil"
|
5778 |
msgstr ""
|
5779 |
|
5780 |
+
#: classes/helpers/FrmAppHelper.php:2667
|
5781 |
msgid "Thai"
|
5782 |
msgstr ""
|
5783 |
|
5784 |
+
#: classes/helpers/FrmAppHelper.php:2668
|
5785 |
+
#: classes/helpers/FrmAppHelper.php:2669
|
5786 |
msgid "Turkish"
|
5787 |
msgstr ""
|
5788 |
|
5789 |
+
#: classes/helpers/FrmAppHelper.php:2670
|
5790 |
msgid "Ukranian"
|
5791 |
msgstr ""
|
5792 |
|
5793 |
+
#: classes/helpers/FrmAppHelper.php:2671
|
5794 |
msgid "Vietnamese"
|
5795 |
msgstr ""
|
5796 |
|
5807 |
msgid "Your server is missing the simplexml_import_dom function"
|
5808 |
msgstr ""
|
5809 |
|
5810 |
+
#: classes/helpers/FrmXMLHelper.php:1019
|
5811 |
msgid "Updated"
|
5812 |
msgstr ""
|
5813 |
|
5814 |
+
#: classes/helpers/FrmXMLHelper.php:1044
|
5815 |
msgid "Nothing was imported or updated"
|
5816 |
msgstr ""
|
5817 |
|
5818 |
#. translators: %1$s: Number of items
|
5819 |
+
#: classes/helpers/FrmXMLHelper.php:1059
|
5820 |
msgid "%1$s Form"
|
5821 |
msgid_plural "%1$s Forms"
|
5822 |
msgstr[0] ""
|
5823 |
|
5824 |
#. translators: %1$s: Number of items
|
5825 |
+
#: classes/helpers/FrmXMLHelper.php:1063
|
5826 |
msgid "%1$s Entry"
|
5827 |
msgid_plural "%1$s Entries"
|
5828 |
msgstr[0] ""
|
5829 |
|
5830 |
#. translators: %1$s: Number of items
|
5831 |
+
#: classes/helpers/FrmXMLHelper.php:1065
|
5832 |
msgid "%1$s View"
|
5833 |
msgid_plural "%1$s Views"
|
5834 |
msgstr[0] ""
|
5835 |
|
5836 |
#. translators: %1$s: Number of items
|
5837 |
+
#: classes/helpers/FrmXMLHelper.php:1067
|
5838 |
msgid "%1$s Post"
|
5839 |
msgid_plural "%1$s Posts"
|
5840 |
msgstr[0] ""
|
5841 |
|
5842 |
#. translators: %1$s: Number of items
|
5843 |
+
#: classes/helpers/FrmXMLHelper.php:1069
|
5844 |
msgid "%1$s Style"
|
5845 |
msgid_plural "%1$s Styles"
|
5846 |
msgstr[0] ""
|
5847 |
|
5848 |
#. translators: %1$s: Number of items
|
5849 |
+
#: classes/helpers/FrmXMLHelper.php:1071
|
5850 |
msgid "%1$s Term"
|
5851 |
msgid_plural "%1$s Terms"
|
5852 |
msgstr[0] ""
|
5853 |
|
5854 |
#. translators: %1$s: Number of items
|
5855 |
+
#: classes/helpers/FrmXMLHelper.php:1073
|
5856 |
msgid "%1$s Form Action"
|
5857 |
msgid_plural "%1$s Form Actions"
|
5858 |
msgstr[0] ""
|
5859 |
|
5860 |
+
#: classes/helpers/FrmXMLHelper.php:1097
|
5861 |
msgid "Go to imported form"
|
5862 |
msgstr ""
|
5863 |
|
5864 |
+
#: classes/helpers/FrmXMLHelper.php:1302
|
5865 |
msgid "Create Posts"
|
5866 |
msgstr ""
|
5867 |
|
5868 |
+
#: classes/helpers/FrmXMLHelper.php:1429
|
5869 |
msgid "Email Notification"
|
5870 |
msgstr ""
|
5871 |
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: forms, contact form, form builder, survey, form maker, form creator, paypa
|
|
5 |
Requires at least: 4.7
|
6 |
Tested up to: 5.5.1
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.
|
9 |
|
10 |
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
|
11 |
|
@@ -435,6 +435,13 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
|
|
435 |
See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
|
436 |
|
437 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
= 4.07.01 =
|
439 |
* New: Show a warning when leaving the builder page with unsaved changes.
|
440 |
* Fix: Make any multiselect dropdowns in admin settings accessible.
|
@@ -451,11 +458,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
|
|
451 |
* Fix: WP 5.5 - Email subject lines were coming through encoded.
|
452 |
* Fix: WP 5.5 - When WP Mail SMTP was installed, the Formidable SMTP page has an error.
|
453 |
|
454 |
-
= 4.06.02 =
|
455 |
-
* New: Added frm_field_value_object hook for making adjustments to the field before it's label and value is displayed.
|
456 |
-
* New: Added frm_xml_response hook for altering the message/response when an XML file is imported.
|
457 |
-
* Fix: Updated deprecated blacklist functions in WP 5.5.
|
458 |
-
* Fix: Add more checks to the installation triggers to prevent them from being triggered at unintended times.
|
459 |
-
* Show a more helpful error message in some cases when the XML import fails.
|
460 |
-
|
461 |
<a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
|
5 |
Requires at least: 4.7
|
6 |
Tested up to: 5.5.1
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.08
|
9 |
|
10 |
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
|
11 |
|
435 |
See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
|
436 |
|
437 |
== Changelog ==
|
438 |
+
= 4.08 =
|
439 |
+
* New: Added confirmation before forms are deleted in bulk.
|
440 |
+
* Allow a value to pass validation if the entered value matches the placeholder setting.
|
441 |
+
* Fix: Email addresses were not being sent to Akismet for logged out users, and resulting in some false positive spam.
|
442 |
+
* Fix: Some sites have been getting duplicate entries days apart. This issue should be fixed.
|
443 |
+
* Fix: Searching when switching between forms no longer triggers the confirmation message when leaving the page.
|
444 |
+
|
445 |
= 4.07.01 =
|
446 |
* New: Show a warning when leaving the builder page with unsaved changes.
|
447 |
* Fix: Make any multiselect dropdowns in admin settings accessible.
|
458 |
* Fix: WP 5.5 - Email subject lines were coming through encoded.
|
459 |
* Fix: WP 5.5 - When WP Mail SMTP was installed, the Formidable SMTP page has an error.
|
460 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
461 |
<a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
|