Version Description
- Don't include a link in the entries list to the form page when the user doesn't have permission to see anything there.
Download this release
Release Info
Developer | sswells |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 4.09.01 |
Comparing to | |
See all releases |
Code changes from version 4.09 to 4.09.01
- classes/controllers/FrmAddonsController.php +86 -108
- classes/controllers/FrmAppController.php +5 -0
- classes/controllers/FrmFormsController.php +0 -2
- classes/controllers/FrmHooksController.php +1 -2
- classes/helpers/FrmAppHelper.php +41 -110
- classes/helpers/FrmCSVExportHelper.php +29 -14
- classes/helpers/FrmEntriesListHelper.php +19 -5
- classes/helpers/FrmFormsHelper.php +40 -11
- classes/models/FrmFormApi.php +13 -1
- classes/models/fields/FrmFieldType.php +61 -4
- classes/views/addons/list.php +9 -1
- classes/views/frm-entries/list.php +1 -1
- classes/views/frm-forms/form.php +3 -1
- classes/views/frm-forms/list.php +1 -1
- classes/views/frm-forms/new-form-overlay.php +2 -9
- classes/views/frm-forms/settings.php +1 -0
- deprecated/FrmDeprecated.php +21 -0
- formidable.php +1 -1
- js/formidable_admin.js +68 -2
- languages/formidable.pot +302 -318
- readme.txt +4 -7
classes/controllers/FrmAddonsController.php
CHANGED
@@ -65,7 +65,7 @@ class FrmAddonsController {
|
|
65 |
include( FrmAppHelper::plugin_path() . '/classes/views/addons/settings.php' );
|
66 |
}
|
67 |
|
68 |
-
|
69 |
$api = new FrmFormApi();
|
70 |
$addons = $api->get_api_info();
|
71 |
|
@@ -88,7 +88,7 @@ class FrmAddonsController {
|
|
88 |
* @since 3.04.03
|
89 |
* @return array
|
90 |
*/
|
91 |
-
|
92 |
$list = array(
|
93 |
'formidable-pro' => array(
|
94 |
'title' => 'Formidable Forms',
|
@@ -221,7 +221,7 @@ class FrmAddonsController {
|
|
221 |
/**
|
222 |
* @since 4.08
|
223 |
*/
|
224 |
-
|
225 |
return isset( $addons['93790'] ) ? $addons['93790'] : array();
|
226 |
}
|
227 |
|
@@ -229,32 +229,11 @@ class FrmAddonsController {
|
|
229 |
* @since 4.06
|
230 |
*/
|
231 |
public static function license_type() {
|
232 |
-
|
233 |
-
|
234 |
-
$type = 'free';
|
235 |
-
|
236 |
-
if ( isset( $addons['error'] ) ) {
|
237 |
-
if ( isset( $addons['error']['code'] ) && $addons['error']['code'] === 'expired' ) {
|
238 |
-
return $addons['error']['code'];
|
239 |
-
}
|
240 |
-
$type = isset( $addons['error']['type'] ) ? $addons['error']['type'] : $type;
|
241 |
-
}
|
242 |
-
|
243 |
-
$pro = self::get_pro_from_addons( $addons );
|
244 |
-
if ( $type === 'free' ) {
|
245 |
-
$type = isset( $pro['type'] ) ? $pro['type'] : $type;
|
246 |
-
if ( $type === 'free' ) {
|
247 |
-
return $type;
|
248 |
-
}
|
249 |
}
|
250 |
|
251 |
-
|
252 |
-
return $pro['code'];
|
253 |
-
}
|
254 |
-
|
255 |
-
$expires = isset( $pro['expires'] ) ? $pro['expires'] : '';
|
256 |
-
$expired = $expires ? $expires < time() : false;
|
257 |
-
return $expired ? 'expired' : strtolower( $type );
|
258 |
}
|
259 |
|
260 |
/**
|
@@ -275,30 +254,17 @@ class FrmAddonsController {
|
|
275 |
* @return boolean|int false or the number of days until expiration.
|
276 |
*/
|
277 |
public static function is_license_expiring() {
|
278 |
-
|
279 |
-
|
280 |
-
// Check for a subscription first.
|
281 |
-
return false;
|
282 |
}
|
283 |
|
284 |
-
|
285 |
-
// It's either invalid or already expired.
|
286 |
-
return false;
|
287 |
-
}
|
288 |
-
|
289 |
-
$expiration = $version_info['expires'];
|
290 |
-
$days_left = ( $expiration - time() ) / DAY_IN_SECONDS;
|
291 |
-
if ( $days_left > 30 ) {
|
292 |
-
return false;
|
293 |
-
}
|
294 |
-
|
295 |
-
return $days_left;
|
296 |
}
|
297 |
|
298 |
/**
|
299 |
* @since 4.08
|
300 |
*/
|
301 |
-
|
302 |
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
303 |
if ( empty( $installed_addons ) || ! isset( $installed_addons['formidable_pro'] ) ) {
|
304 |
return false;
|
@@ -314,6 +280,11 @@ class FrmAddonsController {
|
|
314 |
* @since 3.04.03
|
315 |
*/
|
316 |
public static function check_update( $transient ) {
|
|
|
|
|
|
|
|
|
|
|
317 |
if ( ! is_object( $transient ) ) {
|
318 |
$transient = new stdClass();
|
319 |
}
|
@@ -374,7 +345,7 @@ class FrmAddonsController {
|
|
374 |
*
|
375 |
* @return bool - True if installed
|
376 |
*/
|
377 |
-
|
378 |
if ( ! function_exists( 'get_plugins' ) ) {
|
379 |
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
380 |
}
|
@@ -391,7 +362,7 @@ class FrmAddonsController {
|
|
391 |
*
|
392 |
* @return array
|
393 |
*/
|
394 |
-
|
395 |
$checked_licenses = array();
|
396 |
$version_info = array();
|
397 |
|
@@ -478,7 +449,7 @@ class FrmAddonsController {
|
|
478 |
* @param string $plugin The plugin slug
|
479 |
* @return array|false
|
480 |
*/
|
481 |
-
|
482 |
$addons = self::get_api_addons();
|
483 |
self::prepare_addons( $addons );
|
484 |
foreach ( $addons as $addon ) {
|
@@ -494,7 +465,7 @@ class FrmAddonsController {
|
|
494 |
* @since 4.09
|
495 |
* @return string
|
496 |
*/
|
497 |
-
|
498 |
$license_type = '';
|
499 |
$addons = self::get_api_addons();
|
500 |
if ( isset( $addons['error'] ) && isset( $addons['error']['type'] ) ) {
|
@@ -527,7 +498,7 @@ class FrmAddonsController {
|
|
527 |
return $plugin;
|
528 |
}
|
529 |
|
530 |
-
|
531 |
$activate_url = '';
|
532 |
if ( current_user_can( 'activate_plugins' ) ) {
|
533 |
$activate_url = add_query_arg( array( 'action' => 'activate' ), admin_url( 'plugins.php' ) );
|
@@ -582,7 +553,7 @@ class FrmAddonsController {
|
|
582 |
/**
|
583 |
* @since 3.04.02
|
584 |
*/
|
585 |
-
|
586 |
$site_url = 'https://formidableforms.com/';
|
587 |
if ( strpos( $link, 'http' ) !== 0 ) {
|
588 |
$link = $site_url . $link;
|
@@ -602,7 +573,7 @@ class FrmAddonsController {
|
|
602 |
*
|
603 |
* @since 3.04.02
|
604 |
*/
|
605 |
-
|
606 |
if ( ! empty( $addon['activate_url'] ) ) {
|
607 |
$addon['status'] = array(
|
608 |
'type' => 'installed',
|
@@ -858,24 +829,10 @@ class FrmAddonsController {
|
|
858 |
wp_die();
|
859 |
}
|
860 |
|
861 |
-
/**
|
862 |
-
* @since 3.04.02
|
863 |
-
*/
|
864 |
-
public static function ajax_install_addon() {
|
865 |
-
|
866 |
-
self::install_addon_permissions();
|
867 |
-
|
868 |
-
self::download_and_activate();
|
869 |
-
|
870 |
-
// Send back a response.
|
871 |
-
echo json_encode( __( 'Your plugin has been installed. Please reload the page to see more options.', 'formidable' ) );
|
872 |
-
wp_die();
|
873 |
-
}
|
874 |
-
|
875 |
/**
|
876 |
* @since 4.08
|
877 |
*/
|
878 |
-
|
879 |
// Set the current screen to avoid undefined notices.
|
880 |
if ( is_admin() ) {
|
881 |
global $hook_suffix;
|
@@ -894,7 +851,7 @@ class FrmAddonsController {
|
|
894 |
/**
|
895 |
* @since 3.04.02
|
896 |
*/
|
897 |
-
|
898 |
if ( ! function_exists( 'request_filesystem_credentials' ) ) {
|
899 |
include_once( ABSPATH . 'wp-admin/includes/file.php' );
|
900 |
}
|
@@ -936,7 +893,7 @@ class FrmAddonsController {
|
|
936 |
*
|
937 |
* @since 3.04.02
|
938 |
*/
|
939 |
-
|
940 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
|
941 |
|
942 |
$download_url = FrmAppHelper::get_param( 'plugin', '', 'post', 'esc_url_raw' );
|
@@ -977,44 +934,11 @@ class FrmAddonsController {
|
|
977 |
wp_die();
|
978 |
}
|
979 |
|
980 |
-
/**
|
981 |
-
* @since 4.06.02
|
982 |
-
*/
|
983 |
-
public static function ajax_multiple_addons() {
|
984 |
-
self::install_addon_permissions();
|
985 |
-
|
986 |
-
// Set the current screen to avoid undefined notices.
|
987 |
-
global $hook_suffix;
|
988 |
-
set_current_screen();
|
989 |
-
|
990 |
-
$download_urls = FrmAppHelper::get_param( 'plugin', '', 'post' );
|
991 |
-
$download_urls = explode( ',', $download_urls );
|
992 |
-
FrmAppHelper::sanitize_value( 'esc_url_raw', $download_urls );
|
993 |
-
|
994 |
-
foreach ( $download_urls as $download_url ) {
|
995 |
-
$_POST['plugin'] = $download_url;
|
996 |
-
if ( strpos( $download_url, 'http' ) !== false ) {
|
997 |
-
// Installing.
|
998 |
-
self::maybe_show_cred_form();
|
999 |
-
|
1000 |
-
$installed = self::install_addon();
|
1001 |
-
self::maybe_activate_addon( $installed );
|
1002 |
-
} else {
|
1003 |
-
// Activating.
|
1004 |
-
self::maybe_activate_addon( $download_url );
|
1005 |
-
}
|
1006 |
-
}
|
1007 |
-
|
1008 |
-
echo json_encode( __( 'Your plugins have been installed and activated.', 'formidable' ) );
|
1009 |
-
|
1010 |
-
wp_die();
|
1011 |
-
}
|
1012 |
-
|
1013 |
/**
|
1014 |
* @since 3.04.02
|
1015 |
* @param string $installed The plugin folder name with file name
|
1016 |
*/
|
1017 |
-
|
1018 |
if ( ! $installed ) {
|
1019 |
return;
|
1020 |
}
|
@@ -1040,7 +964,7 @@ class FrmAddonsController {
|
|
1040 |
*
|
1041 |
* @since 3.04.02
|
1042 |
*/
|
1043 |
-
|
1044 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
1045 |
|
1046 |
if ( ! current_user_can( 'activate_plugins' ) || ! isset( $_POST['plugin'] ) ) {
|
@@ -1151,11 +1075,65 @@ class FrmAddonsController {
|
|
1151 |
* @since 4.09
|
1152 |
*/
|
1153 |
public static function conditional_action_button( $plugin, $upgrade_link_args ) {
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1159 |
}
|
1160 |
|
1161 |
/**
|
65 |
include( FrmAppHelper::plugin_path() . '/classes/views/addons/settings.php' );
|
66 |
}
|
67 |
|
68 |
+
protected static function get_api_addons() {
|
69 |
$api = new FrmFormApi();
|
70 |
$addons = $api->get_api_info();
|
71 |
|
88 |
* @since 3.04.03
|
89 |
* @return array
|
90 |
*/
|
91 |
+
protected static function fallback_plugin_list() {
|
92 |
$list = array(
|
93 |
'formidable-pro' => array(
|
94 |
'title' => 'Formidable Forms',
|
221 |
/**
|
222 |
* @since 4.08
|
223 |
*/
|
224 |
+
protected static function get_pro_from_addons( $addons ) {
|
225 |
return isset( $addons['93790'] ) ? $addons['93790'] : array();
|
226 |
}
|
227 |
|
229 |
* @since 4.06
|
230 |
*/
|
231 |
public static function license_type() {
|
232 |
+
if ( is_callable( 'FrmProAddonsController::license_type' ) ) {
|
233 |
+
return FrmProAddonsController::license_type();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
}
|
235 |
|
236 |
+
return 'free';
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
}
|
238 |
|
239 |
/**
|
254 |
* @return boolean|int false or the number of days until expiration.
|
255 |
*/
|
256 |
public static function is_license_expiring() {
|
257 |
+
if ( is_callable( 'FrmProAddonsController::is_license_expiring' ) ) {
|
258 |
+
return FrmProAddonsController::is_license_expiring();
|
|
|
|
|
259 |
}
|
260 |
|
261 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
}
|
263 |
|
264 |
/**
|
265 |
* @since 4.08
|
266 |
*/
|
267 |
+
protected static function get_primary_license_info() {
|
268 |
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
269 |
if ( empty( $installed_addons ) || ! isset( $installed_addons['formidable_pro'] ) ) {
|
270 |
return false;
|
280 |
* @since 3.04.03
|
281 |
*/
|
282 |
public static function check_update( $transient ) {
|
283 |
+
if ( ! FrmAppHelper::pro_is_installed() ) {
|
284 |
+
// Don't make any changes if only Lite is installed.
|
285 |
+
return $transient;
|
286 |
+
}
|
287 |
+
|
288 |
if ( ! is_object( $transient ) ) {
|
289 |
$transient = new stdClass();
|
290 |
}
|
345 |
*
|
346 |
* @return bool - True if installed
|
347 |
*/
|
348 |
+
protected static function is_installed( $plugin ) {
|
349 |
if ( ! function_exists( 'get_plugins' ) ) {
|
350 |
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
351 |
}
|
362 |
*
|
363 |
* @return array
|
364 |
*/
|
365 |
+
protected static function fill_update_addon_info( $installed_addons ) {
|
366 |
$checked_licenses = array();
|
367 |
$version_info = array();
|
368 |
|
449 |
* @param string $plugin The plugin slug
|
450 |
* @return array|false
|
451 |
*/
|
452 |
+
protected static function get_addon( $plugin ) {
|
453 |
$addons = self::get_api_addons();
|
454 |
self::prepare_addons( $addons );
|
455 |
foreach ( $addons as $addon ) {
|
465 |
* @since 4.09
|
466 |
* @return string
|
467 |
*/
|
468 |
+
protected static function get_license_type() {
|
469 |
$license_type = '';
|
470 |
$addons = self::get_api_addons();
|
471 |
if ( isset( $addons['error'] ) && isset( $addons['error']['type'] ) ) {
|
498 |
return $plugin;
|
499 |
}
|
500 |
|
501 |
+
protected static function prepare_addons( &$addons ) {
|
502 |
$activate_url = '';
|
503 |
if ( current_user_can( 'activate_plugins' ) ) {
|
504 |
$activate_url = add_query_arg( array( 'action' => 'activate' ), admin_url( 'plugins.php' ) );
|
553 |
/**
|
554 |
* @since 3.04.02
|
555 |
*/
|
556 |
+
protected static function prepare_addon_link( &$link ) {
|
557 |
$site_url = 'https://formidableforms.com/';
|
558 |
if ( strpos( $link, 'http' ) !== 0 ) {
|
559 |
$link = $site_url . $link;
|
573 |
*
|
574 |
* @since 3.04.02
|
575 |
*/
|
576 |
+
protected static function set_addon_status( &$addon ) {
|
577 |
if ( ! empty( $addon['activate_url'] ) ) {
|
578 |
$addon['status'] = array(
|
579 |
'type' => 'installed',
|
829 |
wp_die();
|
830 |
}
|
831 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
832 |
/**
|
833 |
* @since 4.08
|
834 |
*/
|
835 |
+
protected static function download_and_activate() {
|
836 |
// Set the current screen to avoid undefined notices.
|
837 |
if ( is_admin() ) {
|
838 |
global $hook_suffix;
|
851 |
/**
|
852 |
* @since 3.04.02
|
853 |
*/
|
854 |
+
protected static function maybe_show_cred_form() {
|
855 |
if ( ! function_exists( 'request_filesystem_credentials' ) ) {
|
856 |
include_once( ABSPATH . 'wp-admin/includes/file.php' );
|
857 |
}
|
893 |
*
|
894 |
* @since 3.04.02
|
895 |
*/
|
896 |
+
protected static function install_addon() {
|
897 |
require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
|
898 |
|
899 |
$download_url = FrmAppHelper::get_param( 'plugin', '', 'post', 'esc_url_raw' );
|
934 |
wp_die();
|
935 |
}
|
936 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
937 |
/**
|
938 |
* @since 3.04.02
|
939 |
* @param string $installed The plugin folder name with file name
|
940 |
*/
|
941 |
+
protected static function maybe_activate_addon( $installed ) {
|
942 |
if ( ! $installed ) {
|
943 |
return;
|
944 |
}
|
964 |
*
|
965 |
* @since 3.04.02
|
966 |
*/
|
967 |
+
protected static function install_addon_permissions() {
|
968 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
969 |
|
970 |
if ( ! current_user_can( 'activate_plugins' ) || ! isset( $_POST['plugin'] ) ) {
|
1075 |
* @since 4.09
|
1076 |
*/
|
1077 |
public static function conditional_action_button( $plugin, $upgrade_link_args ) {
|
1078 |
+
if ( is_callable( 'FrmProAddonsController::conditional_action_button' ) ) {
|
1079 |
+
return FrmProAddonsController::conditional_action_button( $plugin, $upgrade_link_args );
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
$addon = self::get_addon( $plugin );
|
1083 |
+
$upgrade_link = FrmAppHelper::admin_upgrade_link( $upgrade_link_args );
|
1084 |
+
self::addon_upgrade_link( $addon, $upgrade_link );
|
1085 |
+
}
|
1086 |
+
|
1087 |
+
/**
|
1088 |
+
* Render a conditional action button for an add on
|
1089 |
+
*
|
1090 |
+
* @since 4.09.01
|
1091 |
+
* @param array $addon
|
1092 |
+
* @param string|false $license_type
|
1093 |
+
* @param string $plan_required
|
1094 |
+
* @param string $upgrade_link
|
1095 |
+
*/
|
1096 |
+
public static function show_conditional_action_button( $atts ) {
|
1097 |
+
if ( is_callable( 'FrmProAddonsController::show_conditional_action_button' ) ) {
|
1098 |
+
return FrmProAddonsController::show_conditional_action_button( $atts );
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
self::addon_upgrade_link( $atts['addon'], $atts['upgrade_link'] );
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
/**
|
1105 |
+
* @since 4.09.01
|
1106 |
+
*/
|
1107 |
+
protected static function addon_upgrade_link( $addon, $upgrade_link ) {
|
1108 |
+
if ( $addon ) {
|
1109 |
+
$upgrade_link .= '&utm_content=' . $addon['slug'];
|
1110 |
+
}
|
1111 |
+
|
1112 |
+
if ( $addon && isset( $addon['categories'] ) && in_array( 'Solution', $addon['categories'], true ) ) {
|
1113 |
+
// Solutions will go to a separate page.
|
1114 |
+
$upgrade_link = FrmAppHelper::admin_upgrade_link( 'addons', $addon['link'] );
|
1115 |
+
}
|
1116 |
+
?>
|
1117 |
+
<a class="install-now button button-secondary frm-button-secondary" href="<?php echo esc_url( $upgrade_link ); ?>" target="_blank" rel="noopener" aria-label="<?php esc_attr_e( 'Upgrade Now', 'formidable' ); ?>">
|
1118 |
+
<?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
|
1119 |
+
</a>
|
1120 |
+
<?php
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
/**
|
1124 |
+
* @since 3.04.02
|
1125 |
+
* @deprecated 4.09.01
|
1126 |
+
*/
|
1127 |
+
public static function ajax_install_addon() {
|
1128 |
+
FrmDeprecated::ajax_install_addon();
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
/**
|
1132 |
+
* @since 4.06.02
|
1133 |
+
* @deprecated 4.09.01
|
1134 |
+
*/
|
1135 |
+
public static function ajax_multiple_addons() {
|
1136 |
+
FrmDeprecated::ajax_multiple_addons();
|
1137 |
}
|
1138 |
|
1139 |
/**
|
classes/controllers/FrmAppController.php
CHANGED
@@ -339,6 +339,11 @@ class FrmAppController {
|
|
339 |
remove_action( 'frm_after_settings', 'FrmSettingsController::settings_cta' );
|
340 |
remove_action( 'frm_add_form_style_tab_options', 'FrmFormsController::add_form_style_tab_options' );
|
341 |
remove_action( 'frm_after_field_options', 'FrmFormsController::logic_tip' );
|
|
|
|
|
|
|
|
|
|
|
342 |
}
|
343 |
|
344 |
/**
|
339 |
remove_action( 'frm_after_settings', 'FrmSettingsController::settings_cta' );
|
340 |
remove_action( 'frm_add_form_style_tab_options', 'FrmFormsController::add_form_style_tab_options' );
|
341 |
remove_action( 'frm_after_field_options', 'FrmFormsController::logic_tip' );
|
342 |
+
|
343 |
+
if ( is_callable( 'FrmProAddonsController::renewal_message' ) ) {
|
344 |
+
// These functions moved to Pro in 4.09.01
|
345 |
+
remove_action( 'frm_page_footer', 'FrmAppHelper::renewal_message' );
|
346 |
+
}
|
347 |
}
|
348 |
|
349 |
/**
|
classes/controllers/FrmFormsController.php
CHANGED
@@ -819,7 +819,6 @@ class FrmFormsController {
|
|
819 |
|
820 |
public static function list_templates() {
|
821 |
global $frm_templates;
|
822 |
-
global $frm_expired;
|
823 |
global $frm_license_type;
|
824 |
|
825 |
$templates = $frm_templates;
|
@@ -861,7 +860,6 @@ class FrmFormsController {
|
|
861 |
$my_templates_translation = __( 'My Templates', 'formidable' );
|
862 |
$categories = array_merge( array( $my_templates_translation ), $categories );
|
863 |
$pricing = FrmAppHelper::admin_upgrade_link( 'form-templates' );
|
864 |
-
$expired = $frm_expired;
|
865 |
$license_type = $frm_license_type;
|
866 |
$args = compact( 'pricing', 'license_type' );
|
867 |
$where = apply_filters( 'frm_forms_dropdown', array(), '' );
|
819 |
|
820 |
public static function list_templates() {
|
821 |
global $frm_templates;
|
|
|
822 |
global $frm_license_type;
|
823 |
|
824 |
$templates = $frm_templates;
|
860 |
$my_templates_translation = __( 'My Templates', 'formidable' );
|
861 |
$categories = array_merge( array( $my_templates_translation ), $categories );
|
862 |
$pricing = FrmAppHelper::admin_upgrade_link( 'form-templates' );
|
|
|
863 |
$license_type = $frm_license_type;
|
864 |
$args = compact( 'pricing', 'license_type' );
|
865 |
$where = apply_filters( 'frm_forms_dropdown', array(), '' );
|
classes/controllers/FrmHooksController.php
CHANGED
@@ -99,6 +99,7 @@ class FrmHooksController {
|
|
99 |
// Addons Controller.
|
100 |
add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
|
101 |
add_filter( 'pre_set_site_transient_update_plugins', 'FrmAddonsController::check_update' );
|
|
|
102 |
|
103 |
// Entries Controller.
|
104 |
add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
|
@@ -159,9 +160,7 @@ class FrmHooksController {
|
|
159 |
// Addons.
|
160 |
add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
|
161 |
add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
|
162 |
-
add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
|
163 |
add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
|
164 |
-
add_action( 'wp_ajax_frm_multiple_addons', 'FrmAddonsController::ajax_multiple_addons' );
|
165 |
add_action( 'wp_ajax_frm_connect', 'FrmAddonsController::connect_pro' );
|
166 |
|
167 |
// Fields Controller.
|
99 |
// Addons Controller.
|
100 |
add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
|
101 |
add_filter( 'pre_set_site_transient_update_plugins', 'FrmAddonsController::check_update' );
|
102 |
+
add_action( 'frm_page_footer', 'FrmAppHelper::renewal_message' );
|
103 |
|
104 |
// Entries Controller.
|
105 |
add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
|
160 |
// Addons.
|
161 |
add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
|
162 |
add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
|
|
|
163 |
add_action( 'wp_ajax_frm_activate_addon', 'FrmAddonsController::ajax_activate_addon' );
|
|
|
164 |
add_action( 'wp_ajax_frm_connect', 'FrmAddonsController::connect_pro' );
|
165 |
|
166 |
// Fields Controller.
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
|
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
-
public static $plug_version = '4.09';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
@@ -73,56 +73,6 @@ class FrmAppHelper {
|
|
73 |
return absint( apply_filters( 'frm_affiliate_id', 0 ) );
|
74 |
}
|
75 |
|
76 |
-
/**
|
77 |
-
* Render a conditional action button for an add on
|
78 |
-
*
|
79 |
-
* @since 4.09
|
80 |
-
* @param array $addon
|
81 |
-
* @param string|false $license_type
|
82 |
-
* @param string $plan_required
|
83 |
-
* @param string $upgrade_link
|
84 |
-
*/
|
85 |
-
public static function conditional_action_button( $addon, $license_type, $plan_required, $upgrade_link ) {
|
86 |
-
if ( ! $addon ) {
|
87 |
-
?>
|
88 |
-
<a class="install-now button button-secondary frm-button-secondary" href="<?php echo esc_url( $upgrade_link ); ?>" target="_blank" rel="noopener" aria-label="<?php esc_attr_e( 'Upgrade Now', 'formidable' ); ?>">
|
89 |
-
<?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
|
90 |
-
</a>
|
91 |
-
<?php
|
92 |
-
return;
|
93 |
-
}
|
94 |
-
|
95 |
-
if ( $addon['status']['type'] === 'installed' ) {
|
96 |
-
?>
|
97 |
-
<a rel="<?php echo esc_attr( $addon['plugin'] ); ?>" class="button button-primary frm-button-primary frm-activate-addon <?php echo esc_attr( empty( $addon['activate_url'] ) ? 'frm_hidden' : '' ); ?>">
|
98 |
-
<?php esc_html_e( 'Activate', 'formidable' ); ?>
|
99 |
-
</a>
|
100 |
-
<?php
|
101 |
-
} elseif ( ! empty( $addon['url'] ) ) {
|
102 |
-
?>
|
103 |
-
<a class="frm-install-addon button button-primary frm-button-primary" rel="<?php echo esc_attr( $addon['url'] ); ?>" aria-label="<?php esc_attr_e( 'Install', 'formidable' ); ?>">
|
104 |
-
<?php esc_html_e( 'Install', 'formidable' ); ?>
|
105 |
-
</a>
|
106 |
-
<?php
|
107 |
-
} elseif ( $license_type && $license_type === strtolower( $plan_required ) ) {
|
108 |
-
?>
|
109 |
-
<a class="install-now button button-secondary frm-button-secondary" href="<?php echo esc_url( self::admin_upgrade_link( 'addons', 'account/downloads/' ) . '&utm_content=' . $addon['slug'] ); ?>" target="_blank" aria-label="<?php esc_attr_e( 'Upgrade Now', 'formidable' ); ?>">
|
110 |
-
<?php esc_html_e( 'Renew Now', 'formidable' ); ?>
|
111 |
-
</a>
|
112 |
-
<?php
|
113 |
-
} else {
|
114 |
-
if ( isset( $addon['categories'] ) && in_array( 'Solution', $addon['categories'], true ) ) {
|
115 |
-
// Solutions will go to a separate page.
|
116 |
-
$upgrade_link = self::admin_upgrade_link( 'addons', $addon['link'] );
|
117 |
-
}
|
118 |
-
?>
|
119 |
-
<a class="install-now button button-secondary frm-button-secondary" href="<?php echo esc_url( $upgrade_link . '&utm_content=' . $addon['slug'] ); ?>" target="_blank" rel="noopener" aria-label="<?php esc_attr_e( 'Upgrade Now', 'formidable' ); ?>">
|
120 |
-
<?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
|
121 |
-
</a>
|
122 |
-
<?php
|
123 |
-
}
|
124 |
-
}
|
125 |
-
|
126 |
/**
|
127 |
* @since 3.04.02
|
128 |
* @param array|string $args
|
@@ -165,64 +115,6 @@ class FrmAppHelper {
|
|
165 |
return self::make_affiliate_url( $link );
|
166 |
}
|
167 |
|
168 |
-
/**
|
169 |
-
* @since 4.07
|
170 |
-
*/
|
171 |
-
public static function renewal_message() {
|
172 |
-
if ( ! FrmAddonsController::is_license_expired() ) {
|
173 |
-
self::expiring_message();
|
174 |
-
return;
|
175 |
-
}
|
176 |
-
?>
|
177 |
-
<div class="frm_error_style" style="text-align:left">
|
178 |
-
<?php self::icon_by_class( 'frmfont frm_alert_icon' ); ?>
|
179 |
-
|
180 |
-
<?php esc_html_e( 'Your account has expired', 'formidable' ); ?>
|
181 |
-
<div style="float:right">
|
182 |
-
<a href="<?php echo esc_url( self::admin_upgrade_link( 'form-expired', 'account/downloads/' ) ); ?>">
|
183 |
-
Renew Now
|
184 |
-
</a>
|
185 |
-
</div>
|
186 |
-
</div>
|
187 |
-
<?php
|
188 |
-
}
|
189 |
-
|
190 |
-
/**
|
191 |
-
* @since 4.08
|
192 |
-
*/
|
193 |
-
public static function expiring_message() {
|
194 |
-
$expiring = FrmAddonsController::is_license_expiring();
|
195 |
-
if ( ! $expiring ) {
|
196 |
-
return;
|
197 |
-
}
|
198 |
-
?>
|
199 |
-
<div class="frm_warning_style" style="text-align:left">
|
200 |
-
<?php self::icon_by_class( 'frmfont frm_alert_icon' ); ?>
|
201 |
-
|
202 |
-
<?php
|
203 |
-
printf(
|
204 |
-
esc_html(
|
205 |
-
/* translators: %1$s: start HTML tag, %2$s: end HTML tag */
|
206 |
-
_n(
|
207 |
-
'Your form subscription expires in %1$s day%2$s.',
|
208 |
-
'Your form subscription expires in %1$s days%2$s.',
|
209 |
-
intval( $expiring ),
|
210 |
-
'formidable'
|
211 |
-
)
|
212 |
-
),
|
213 |
-
'<strong>' . esc_html( number_format_i18n( $expiring ) ),
|
214 |
-
'</strong>'
|
215 |
-
);
|
216 |
-
?>
|
217 |
-
<div style="float:right">
|
218 |
-
<a href="<?php echo esc_url( self::admin_upgrade_link( 'form-renew', 'account/downloads/' ) ); ?>">
|
219 |
-
<?php esc_html_e( 'Renew Now', 'formidable' ); ?>
|
220 |
-
</a>
|
221 |
-
</div>
|
222 |
-
</div>
|
223 |
-
<?php
|
224 |
-
}
|
225 |
-
|
226 |
/**
|
227 |
* Get the Formidable settings
|
228 |
*
|
@@ -2622,7 +2514,7 @@ class FrmAppHelper {
|
|
2622 |
if ( empty( $expired ) ) {
|
2623 |
echo ' Please <a href="' . esc_url( admin_url( 'plugins.php?s=formidable%20forms%20pro' ) ) . '">update now</a>.';
|
2624 |
} else {
|
2625 |
-
echo '<br/>Please <a href="https://formidableforms.com/account/downloads/?utm_source=WordPress&utm_medium=outdated">renew now</a> to get the latest
|
2626 |
}
|
2627 |
?>
|
2628 |
</div>
|
@@ -2751,6 +2643,45 @@ class FrmAppHelper {
|
|
2751 |
include_once self::plugin_path() . '/classes/views/frm-forms/multiselect-accessibility.php';
|
2752 |
}
|
2753 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2754 |
/**
|
2755 |
* Use the WP 4.7 wp_doing_ajax function
|
2756 |
*
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
+
public static $plug_version = '4.09.01';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
73 |
return absint( apply_filters( 'frm_affiliate_id', 0 ) );
|
74 |
}
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
/**
|
77 |
* @since 3.04.02
|
78 |
* @param array|string $args
|
115 |
return self::make_affiliate_url( $link );
|
116 |
}
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
/**
|
119 |
* Get the Formidable settings
|
120 |
*
|
2514 |
if ( empty( $expired ) ) {
|
2515 |
echo ' Please <a href="' . esc_url( admin_url( 'plugins.php?s=formidable%20forms%20pro' ) ) . '">update now</a>.';
|
2516 |
} else {
|
2517 |
+
echo '<br/>Please <a href="https://formidableforms.com/account/downloads/?utm_source=WordPress&utm_medium=outdated">renew now</a> to get the latest version.';
|
2518 |
}
|
2519 |
?>
|
2520 |
</div>
|
2643 |
include_once self::plugin_path() . '/classes/views/frm-forms/multiselect-accessibility.php';
|
2644 |
}
|
2645 |
|
2646 |
+
/**
|
2647 |
+
* @since 4.07
|
2648 |
+
* @deprecated 4.09.01
|
2649 |
+
*/
|
2650 |
+
public static function renewal_message() {
|
2651 |
+
if ( is_callable( 'FrmProAddonsController::renewal_message' ) ) {
|
2652 |
+
FrmProAddonsController::renewal_message();
|
2653 |
+
return;
|
2654 |
+
}
|
2655 |
+
|
2656 |
+
if ( ! FrmAddonsController::is_license_expired() ) {
|
2657 |
+
return;
|
2658 |
+
}
|
2659 |
+
|
2660 |
+
?>
|
2661 |
+
<div class="frm_error_style" style="text-align:left">
|
2662 |
+
<?php self::icon_by_class( 'frmfont frm_alert_icon' ); ?>
|
2663 |
+
|
2664 |
+
<?php esc_html_e( 'Your account has expired', 'formidable' ); ?>
|
2665 |
+
<div style="float:right">
|
2666 |
+
<a href="<?php echo esc_url( self::admin_upgrade_link( 'form-expired', 'account/downloads/' ) ); ?>">
|
2667 |
+
<?php esc_html_e( 'Renew Now', 'formidable' ); ?>
|
2668 |
+
</a>
|
2669 |
+
</div>
|
2670 |
+
</div>
|
2671 |
+
<?php
|
2672 |
+
}
|
2673 |
+
|
2674 |
+
/**
|
2675 |
+
* @since 4.08
|
2676 |
+
* @deprecated 4.09.01
|
2677 |
+
*/
|
2678 |
+
public static function expiring_message() {
|
2679 |
+
_deprecated_function( __METHOD__, '4.09.01', 'FrmProAddonsController::expiring_message' );
|
2680 |
+
if ( is_callable( 'FrmProAddonsController::expiring_message' ) ) {
|
2681 |
+
FrmProAddonsController::expiring_message();
|
2682 |
+
}
|
2683 |
+
}
|
2684 |
+
|
2685 |
/**
|
2686 |
* Use the WP 4.7 wp_doing_ajax function
|
2687 |
*
|
classes/helpers/FrmCSVExportHelper.php
CHANGED
@@ -143,22 +143,18 @@ class FrmCSVExportHelper {
|
|
143 |
$repeater_ids = array();
|
144 |
|
145 |
foreach ( self::$fields as $col ) {
|
146 |
-
if (
|
147 |
-
$
|
148 |
-
|
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 |
-
|
|
|
|
|
161 |
}
|
|
|
|
|
|
|
|
|
162 |
}
|
163 |
}
|
164 |
unset( $repeater_id, $col );
|
@@ -226,6 +222,25 @@ class FrmCSVExportHelper {
|
|
226 |
}
|
227 |
}
|
228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
private static function has_parent_id() {
|
230 |
return self::$has_parent_id;
|
231 |
}
|
143 |
$repeater_ids = array();
|
144 |
|
145 |
foreach ( self::$fields as $col ) {
|
146 |
+
if ( self::is_the_child_of_a_repeater( $col ) ) {
|
147 |
+
$repeater_id = $col->field_options['in_section'];
|
148 |
+
$headings[ 'repeater' . $repeater_id ] = array(); // set a placeholder to maintain order for repeater fields
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
|
150 |
+
if ( ! isset( $fields_by_repeater_id[ $repeater_id ] ) ) {
|
151 |
+
$fields_by_repeater_id[ $repeater_id ] = array();
|
152 |
+
$repeater_ids[] = $repeater_id;
|
153 |
}
|
154 |
+
|
155 |
+
$fields_by_repeater_id[ $repeater_id ][] = $col;
|
156 |
+
} else {
|
157 |
+
$headings += self::field_headings( $col );
|
158 |
}
|
159 |
}
|
160 |
unset( $repeater_id, $col );
|
222 |
}
|
223 |
}
|
224 |
|
225 |
+
/**
|
226 |
+
* @param object $field
|
227 |
+
* @return bool
|
228 |
+
*/
|
229 |
+
private static function is_the_child_of_a_repeater( $field ) {
|
230 |
+
if ( $field->form_id === self::$form_id || ! $field->field_options['in_section'] ) {
|
231 |
+
return false;
|
232 |
+
}
|
233 |
+
|
234 |
+
$section_id = $field->field_options['in_section'];
|
235 |
+
$section = FrmField::getOne( $section_id );
|
236 |
+
|
237 |
+
if ( ! $section ) {
|
238 |
+
return false;
|
239 |
+
}
|
240 |
+
|
241 |
+
return FrmField::is_repeating_field( $section );
|
242 |
+
}
|
243 |
+
|
244 |
private static function has_parent_id() {
|
245 |
return self::$has_parent_id;
|
246 |
}
|
classes/helpers/FrmEntriesListHelper.php
CHANGED
@@ -190,7 +190,8 @@ class FrmEntriesListHelper extends FrmListHelper {
|
|
190 |
$r = "<tr id='item-action-{$item->id}'$style>";
|
191 |
|
192 |
list( $columns, $hidden, , $primary ) = $this->get_column_info();
|
193 |
-
$action_col
|
|
|
194 |
|
195 |
foreach ( $columns as $column_name => $column_display_name ) {
|
196 |
$class = $column_name . ' column-' . $column_name;
|
@@ -199,9 +200,9 @@ class FrmEntriesListHelper extends FrmListHelper {
|
|
199 |
$class .= ' column-primary';
|
200 |
}
|
201 |
|
202 |
-
if ( in_array( $column_name, $hidden ) ) {
|
203 |
$class .= ' frm_hidden';
|
204 |
-
} elseif ( ! $action_col && ! in_array( $column_name,
|
205 |
$action_col = $column_name;
|
206 |
}
|
207 |
|
@@ -215,7 +216,7 @@ class FrmEntriesListHelper extends FrmListHelper {
|
|
215 |
if ( $this->column_name == 'cb' ) {
|
216 |
$r .= "<th scope='row' class='check-column'>$checkbox</th>";
|
217 |
} else {
|
218 |
-
if ( in_array( $column_name, $hidden ) ) {
|
219 |
$val = '';
|
220 |
} else {
|
221 |
$val = $this->column_value( $item );
|
@@ -238,6 +239,13 @@ class FrmEntriesListHelper extends FrmListHelper {
|
|
238 |
return $r;
|
239 |
}
|
240 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
private function column_value( $item ) {
|
242 |
$col_name = $this->column_name;
|
243 |
|
@@ -260,7 +268,13 @@ class FrmEntriesListHelper extends FrmListHelper {
|
|
260 |
$val = empty( $item->is_draft ) ? esc_html__( 'No', 'formidable' ) : esc_html__( 'Yes', 'formidable' );
|
261 |
break;
|
262 |
case 'form_id':
|
263 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
break;
|
265 |
case 'post_id':
|
266 |
$val = FrmAppHelper::post_edit_link( $item->post_id );
|
190 |
$r = "<tr id='item-action-{$item->id}'$style>";
|
191 |
|
192 |
list( $columns, $hidden, , $primary ) = $this->get_column_info();
|
193 |
+
$action_col = false;
|
194 |
+
$action_columns = $this->get_action_columns();
|
195 |
|
196 |
foreach ( $columns as $column_name => $column_display_name ) {
|
197 |
$class = $column_name . ' column-' . $column_name;
|
200 |
$class .= ' column-primary';
|
201 |
}
|
202 |
|
203 |
+
if ( in_array( $column_name, $hidden, true ) ) {
|
204 |
$class .= ' frm_hidden';
|
205 |
+
} elseif ( ! $action_col && ! in_array( $column_name, $action_columns, true ) ) {
|
206 |
$action_col = $column_name;
|
207 |
}
|
208 |
|
216 |
if ( $this->column_name == 'cb' ) {
|
217 |
$r .= "<th scope='row' class='check-column'>$checkbox</th>";
|
218 |
} else {
|
219 |
+
if ( in_array( $column_name, $hidden, true ) ) {
|
220 |
$val = '';
|
221 |
} else {
|
222 |
$val = $this->column_value( $item );
|
239 |
return $r;
|
240 |
}
|
241 |
|
242 |
+
/**
|
243 |
+
* Get the column names that the logged in user can action on
|
244 |
+
*/
|
245 |
+
private function get_action_columns() {
|
246 |
+
return array( 'cb', 'form_id', 'id', 'post_id' );
|
247 |
+
}
|
248 |
+
|
249 |
private function column_value( $item ) {
|
250 |
$col_name = $this->column_name;
|
251 |
|
268 |
$val = empty( $item->is_draft ) ? esc_html__( 'No', 'formidable' ) : esc_html__( 'Yes', 'formidable' );
|
269 |
break;
|
270 |
case 'form_id':
|
271 |
+
$form_id = $item->form_id;
|
272 |
+
$user_can_edit_forms = false === FrmAppHelper::permission_nonce_error( 'frm_edit_forms' );
|
273 |
+
if ( $user_can_edit_forms ) {
|
274 |
+
$val = FrmFormsHelper::edit_form_link( $form_id );
|
275 |
+
} else {
|
276 |
+
$val = FrmFormsHelper::edit_form_link_label( $form_id );
|
277 |
+
}
|
278 |
break;
|
279 |
case 'post_id':
|
280 |
$val = FrmAppHelper::post_edit_link( $item->post_id );
|
classes/helpers/FrmFormsHelper.php
CHANGED
@@ -1006,22 +1006,51 @@ BEFORE_HTML;
|
|
1006 |
return $actions;
|
1007 |
}
|
1008 |
|
1009 |
-
public static function edit_form_link( $
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
} else {
|
1015 |
-
$name = FrmForm::getName( $form_id );
|
1016 |
}
|
1017 |
|
1018 |
-
|
1019 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1020 |
} else {
|
1021 |
-
$
|
1022 |
}
|
|
|
|
|
1023 |
|
1024 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1025 |
}
|
1026 |
|
1027 |
public static function delete_trash_link( $id, $status, $length = 'label' ) {
|
1006 |
return $actions;
|
1007 |
}
|
1008 |
|
1009 |
+
public static function edit_form_link( $data ) {
|
1010 |
+
$form_id = self::get_form_id_from_data( $data );
|
1011 |
+
|
1012 |
+
if ( ! $form_id ) {
|
1013 |
+
return '';
|
|
|
|
|
1014 |
}
|
1015 |
|
1016 |
+
$label = self::edit_form_link_label( $data );
|
1017 |
+
$link = '<a href="' . esc_url( FrmForm::get_edit_link( $form_id ) ) . '">' . esc_html( $label ) . '</a>';
|
1018 |
+
return $link;
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
public static function edit_form_link_label( $data ) {
|
1022 |
+
$name = self::get_form_name_from_data( $data );
|
1023 |
+
if ( ! $name ) {
|
1024 |
+
return __( '(no title)', 'formidable' );
|
1025 |
+
}
|
1026 |
+
return FrmAppHelper::truncate( $name, 40 );
|
1027 |
+
}
|
1028 |
+
|
1029 |
+
/**
|
1030 |
+
* @param mixed data
|
1031 |
+
* @return int
|
1032 |
+
*/
|
1033 |
+
private static function get_form_id_from_data( $data ) {
|
1034 |
+
if ( is_object( $data ) ) {
|
1035 |
+
$form_id = $data->id;
|
1036 |
} else {
|
1037 |
+
$form_id = $data;
|
1038 |
}
|
1039 |
+
return $form_id;
|
1040 |
+
}
|
1041 |
|
1042 |
+
/**
|
1043 |
+
* @param mixed $data
|
1044 |
+
* @return string
|
1045 |
+
*/
|
1046 |
+
private static function get_form_name_from_data( $data ) {
|
1047 |
+
if ( is_object( $data ) ) {
|
1048 |
+
$form_name = $data->name;
|
1049 |
+
} else {
|
1050 |
+
$form_id = $data;
|
1051 |
+
$form_name = FrmForm::getName( $form_id );
|
1052 |
+
}
|
1053 |
+
return $form_name;
|
1054 |
}
|
1055 |
|
1056 |
public static function delete_trash_link( $id, $status, $length = 'label' ) {
|
classes/models/FrmFormApi.php
CHANGED
@@ -68,7 +68,19 @@ class FrmFormApi {
|
|
68 |
return $addons;
|
69 |
}
|
70 |
|
71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
|
73 |
$addons = $response['body'];
|
74 |
if ( ! empty( $addons ) ) {
|
68 |
return $addons;
|
69 |
}
|
70 |
|
71 |
+
// We need to know the version number to allow different downloads.
|
72 |
+
$agent = 'formidable/' . FrmAppHelper::plugin_version();
|
73 |
+
if ( class_exists( 'FrmProDb' ) ) {
|
74 |
+
$agent = 'formidable-pro/' . FrmProDb::$plug_version;
|
75 |
+
}
|
76 |
+
|
77 |
+
$response = wp_remote_get(
|
78 |
+
$url,
|
79 |
+
array(
|
80 |
+
'timeout' => 25,
|
81 |
+
'user-agent' => $agent . '; ' . get_bloginfo( 'url' ),
|
82 |
+
)
|
83 |
+
);
|
84 |
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
|
85 |
$addons = $response['body'];
|
86 |
if ( ! empty( $addons ) ) {
|
classes/models/fields/FrmFieldType.php
CHANGED
@@ -1082,13 +1082,70 @@ DEFAULT_HTML;
|
|
1082 |
// Override in a child class.
|
1083 |
}
|
1084 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1085 |
public function is_not_unique( $value, $entry_id ) {
|
1086 |
-
$
|
1087 |
-
|
1088 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1089 |
}
|
1090 |
|
1091 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1092 |
}
|
1093 |
|
1094 |
public function get_value_to_save( $value, $atts ) {
|
1082 |
// Override in a child class.
|
1083 |
}
|
1084 |
|
1085 |
+
/**
|
1086 |
+
* A field is not unique if it has already been passed to this function, or if it exists in meta for this field but another entry id
|
1087 |
+
*
|
1088 |
+
* @param mixed $value
|
1089 |
+
* @param int $entry_id
|
1090 |
+
* @return bool
|
1091 |
+
*/
|
1092 |
public function is_not_unique( $value, $entry_id ) {
|
1093 |
+
if ( $this->value_has_already_been_validated_as_unique( $value ) ) {
|
1094 |
+
return true;
|
1095 |
+
}
|
1096 |
+
|
1097 |
+
if ( $this->value_exists_in_meta_for_another_entry( $value, $entry_id ) ) {
|
1098 |
+
return true;
|
1099 |
+
}
|
1100 |
+
|
1101 |
+
$this->value_validated_as_unique( $value );
|
1102 |
+
return false;
|
1103 |
+
}
|
1104 |
+
|
1105 |
+
/**
|
1106 |
+
* @param mixed $value
|
1107 |
+
* @return bool
|
1108 |
+
*/
|
1109 |
+
private function value_has_already_been_validated_as_unique( $value ) {
|
1110 |
+
global $frm_validated_unique_values;
|
1111 |
+
|
1112 |
+
if ( empty( $frm_validated_unique_values ) ) {
|
1113 |
+
$frm_validated_unique_values = array();
|
1114 |
+
return false;
|
1115 |
}
|
1116 |
|
1117 |
+
$field_id = $this->get_field_column( 'id' );
|
1118 |
+
if ( ! array_key_exists( $field_id, $frm_validated_unique_values ) ) {
|
1119 |
+
$frm_validated_unique_values[ $field_id ] = array();
|
1120 |
+
return false;
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
$already_validated_this_value = in_array( $value, $frm_validated_unique_values[ $field_id ], true );
|
1124 |
+
return $already_validated_this_value;
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
/**
|
1128 |
+
* @param mixed $value
|
1129 |
+
* @param int $entry_id
|
1130 |
+
* @return bool
|
1131 |
+
*/
|
1132 |
+
private function value_exists_in_meta_for_another_entry( $value, $entry_id ) {
|
1133 |
+
if ( ! FrmAppHelper::pro_is_installed() ) {
|
1134 |
+
return false;
|
1135 |
+
}
|
1136 |
+
$field_id = $this->get_field_column( 'id' );
|
1137 |
+
return FrmProEntryMetaHelper::value_exists( $field_id, $value, $entry_id );
|
1138 |
+
}
|
1139 |
+
|
1140 |
+
/**
|
1141 |
+
* Track that a value has been flagged as unique so that no other iterations can be for the same value for this field
|
1142 |
+
*
|
1143 |
+
* @param mixed $value
|
1144 |
+
*/
|
1145 |
+
private function value_validated_as_unique( $value ) {
|
1146 |
+
global $frm_validated_unique_values;
|
1147 |
+
$field_id = $this->get_field_column( 'id' );
|
1148 |
+
$frm_validated_unique_values[ $field_id ][] = $value;
|
1149 |
}
|
1150 |
|
1151 |
public function get_value_to_save( $value, $atts ) {
|
classes/views/addons/list.php
CHANGED
@@ -77,7 +77,15 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
77 |
);
|
78 |
?>
|
79 |
</span>
|
80 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
</div>
|
82 |
</div>
|
83 |
<?php } ?>
|
77 |
);
|
78 |
?>
|
79 |
</span>
|
80 |
+
<?php
|
81 |
+
$passing = array(
|
82 |
+
'addon' => $addon,
|
83 |
+
'license_type' => ! empty( $license_type ) ? $license_type : false,
|
84 |
+
'plan_required' => 'plan_required',
|
85 |
+
'upgrade_link' => $pricing,
|
86 |
+
);
|
87 |
+
FrmAddonsController::show_conditional_action_button( $passing );
|
88 |
+
?>
|
89 |
</div>
|
90 |
</div>
|
91 |
<?php } ?>
|
classes/views/frm-entries/list.php
CHANGED
@@ -51,8 +51,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
51 |
<div class="clear"></div>
|
52 |
<?php require( FrmAppHelper::plugin_path() . '/classes/views/shared/errors.php' ); ?>
|
53 |
<?php $wp_list_table->display(); ?>
|
54 |
-
<?php FrmAppHelper::renewal_message(); ?>
|
55 |
</form>
|
|
|
56 |
</div>
|
57 |
<?php if ( $form ) { ?>
|
58 |
</div>
|
51 |
<div class="clear"></div>
|
52 |
<?php require( FrmAppHelper::plugin_path() . '/classes/views/shared/errors.php' ); ?>
|
53 |
<?php $wp_list_table->display(); ?>
|
|
|
54 |
</form>
|
55 |
+
<?php do_action( 'frm_page_footer', array( 'table' => $wp_list_table ) ); ?>
|
56 |
</div>
|
57 |
<?php if ( $form ) { ?>
|
58 |
</div>
|
classes/views/frm-forms/form.php
CHANGED
@@ -36,7 +36,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
36 |
}
|
37 |
?>
|
38 |
</ul>
|
39 |
-
|
40 |
<p id="frm-form-button">
|
41 |
<button class="frm_button_submit" disabled="disabled">
|
42 |
<?php echo esc_attr( isset( $form->options['submit_value'] ) ? $form->options['submit_value'] : __( 'Submit', 'formidable' ) ); ?>
|
@@ -53,6 +53,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
53 |
</p>
|
54 |
<div class="clear"></div>
|
55 |
</div>
|
|
|
|
|
56 |
</div>
|
57 |
<?php
|
58 |
FrmFieldsHelper::bulk_options_overlay();
|
36 |
}
|
37 |
?>
|
38 |
</ul>
|
39 |
+
|
40 |
<p id="frm-form-button">
|
41 |
<button class="frm_button_submit" disabled="disabled">
|
42 |
<?php echo esc_attr( isset( $form->options['submit_value'] ) ? $form->options['submit_value'] : __( 'Submit', 'formidable' ) ); ?>
|
53 |
</p>
|
54 |
<div class="clear"></div>
|
55 |
</div>
|
56 |
+
|
57 |
+
<?php do_action( 'frm_page_footer', array( 'table' => 'form-builder' ) ); ?>
|
58 |
</div>
|
59 |
<?php
|
60 |
FrmFieldsHelper::bulk_options_overlay();
|
classes/views/frm-forms/list.php
CHANGED
@@ -40,9 +40,9 @@ if ( $wp_list_table->total_items === 1 && empty( $_REQUEST['s'] ) && $wp_list_ta
|
|
40 |
}
|
41 |
}
|
42 |
|
43 |
-
FrmAppHelper::renewal_message();
|
44 |
?>
|
45 |
</form>
|
46 |
|
|
|
47 |
</div>
|
48 |
</div>
|
40 |
}
|
41 |
}
|
42 |
|
|
|
43 |
?>
|
44 |
</form>
|
45 |
|
46 |
+
<?php do_action( 'frm_page_footer', array( 'table' => $wp_list_table ) ); ?>
|
47 |
</div>
|
48 |
</div>
|
classes/views/frm-forms/new-form-overlay.php
CHANGED
@@ -85,15 +85,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
85 |
<?php require $view_path . 'renew-account.php'; ?>
|
86 |
</div>
|
87 |
<?php } ?>
|
88 |
-
<?php
|
89 |
-
|
90 |
-
<?php FrmAppHelper::renewal_message(); ?>
|
91 |
-
</div>
|
92 |
-
<?php } elseif ( $expiring ) { ?>
|
93 |
-
<div id="frm-create-footer" class="frm_modal_footer">
|
94 |
-
<?php FrmAppHelper::expiring_message(); ?>
|
95 |
-
</div>
|
96 |
-
<?php } ?>
|
97 |
<div id="frm-preview-footer" class="frm_modal_footer">
|
98 |
<a href="#" class="button button-secondary frm-button-secondary frm-back-to-all-templates">
|
99 |
<?php esc_html_e( 'Back to all templates', 'formidable' ); ?>
|
85 |
<?php require $view_path . 'renew-account.php'; ?>
|
86 |
</div>
|
87 |
<?php } ?>
|
88 |
+
<?php do_action( 'frm_overlay_footer', array( 'type' => 'form' ) ); ?>
|
89 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
<div id="frm-preview-footer" class="frm_modal_footer">
|
91 |
<a href="#" class="button button-secondary frm-button-secondary frm-back-to-all-templates">
|
92 |
<?php esc_html_e( 'Back to all templates', 'formidable' ); ?>
|
classes/views/frm-forms/settings.php
CHANGED
@@ -56,6 +56,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
56 |
<?php do_action( 'frm_add_form_option_section', $values ); ?>
|
57 |
<div class="clear"></div>
|
58 |
<?php include( FrmAppHelper::plugin_path() . '/classes/views/frm-forms/mb_insert_fields.php' ); ?>
|
|
|
59 |
</div>
|
60 |
</div>
|
61 |
</div>
|
56 |
<?php do_action( 'frm_add_form_option_section', $values ); ?>
|
57 |
<div class="clear"></div>
|
58 |
<?php include( FrmAppHelper::plugin_path() . '/classes/views/frm-forms/mb_insert_fields.php' ); ?>
|
59 |
+
<?php do_action( 'frm_page_footer', array( 'table' => 'form-settings' ) ); ?>
|
60 |
</div>
|
61 |
</div>
|
62 |
</div>
|
deprecated/FrmDeprecated.php
CHANGED
@@ -166,6 +166,27 @@ class FrmDeprecated {
|
|
166 |
return $api->get_pro_updater();
|
167 |
}
|
168 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
/**
|
170 |
* @since 3.04.03
|
171 |
* @deprecated 3.06
|
166 |
return $api->get_pro_updater();
|
167 |
}
|
168 |
|
169 |
+
/**
|
170 |
+
* @since 3.04.02
|
171 |
+
* @deprecated 4.09.01
|
172 |
+
*/
|
173 |
+
public static function ajax_install_addon() {
|
174 |
+
_deprecated_function( __FUNCTION__, '4.09.01', 'FrmProAddonsController::' . __METHOD__ );
|
175 |
+
echo json_encode( __( 'Your plugin has been not been installed. Please update Formidable Pro to get downloads.', 'formidable' ) );
|
176 |
+
wp_die();
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* @since 4.06.02
|
181 |
+
* @deprecated 4.09.01
|
182 |
+
* @codeCoverageIgnore
|
183 |
+
*/
|
184 |
+
public static function ajax_multiple_addons() {
|
185 |
+
_deprecated_function( __FUNCTION__, '4.09.01', 'FrmProAddonsController::' . __METHOD__ );
|
186 |
+
echo json_encode( __( 'Your plugin has been not been installed. Please update Formidable Pro to get downloads.', 'formidable' ) );
|
187 |
+
wp_die();
|
188 |
+
}
|
189 |
+
|
190 |
/**
|
191 |
* @since 3.04.03
|
192 |
* @deprecated 3.06
|
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.09
|
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.09.01
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
js/formidable_admin.js
CHANGED
@@ -2237,6 +2237,7 @@ function frmAdminBuildJS() {
|
|
2237 |
function maybeClearOptText() {
|
2238 |
/*jshint validthis:true */
|
2239 |
if ( this.value === frm_admin_js.new_option ) {
|
|
|
2240 |
this.value = '';
|
2241 |
}
|
2242 |
}
|
@@ -2446,7 +2447,9 @@ function frmAdminBuildJS() {
|
|
2446 |
}
|
2447 |
}
|
2448 |
|
2449 |
-
this.
|
|
|
|
|
2450 |
}
|
2451 |
|
2452 |
function onOptionTextBlur() {
|
@@ -2504,7 +2507,12 @@ function frmAdminBuildJS() {
|
|
2504 |
|
2505 |
logicId = row.id.split( '_' )[ 2 ];
|
2506 |
valueSelect = row.querySelector( 'select[name="field_options[hide_opt_' + logicId + '][]"]' );
|
2507 |
-
|
|
|
|
|
|
|
|
|
|
|
2508 |
|
2509 |
if ( ! optionMatches.length ) {
|
2510 |
optionMatches = valueSelect.querySelectorAll( 'option[value="' + newValue + '"]' );
|
@@ -2968,6 +2976,64 @@ function frmAdminBuildJS() {
|
|
2968 |
container.append( addRadioCheckboxOpt( type, opts[ i ], fieldId, fieldInfo.fieldKey, isProduct, imageOptionClass ) );
|
2969 |
}
|
2970 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2971 |
}
|
2972 |
|
2973 |
function addRadioCheckboxOpt( type, opt, fieldId, fieldKey, isProduct, classes ) {
|
2237 |
function maybeClearOptText() {
|
2238 |
/*jshint validthis:true */
|
2239 |
if ( this.value === frm_admin_js.new_option ) {
|
2240 |
+
this.setAttribute( 'data-value-on-focus', this.value );
|
2241 |
this.value = '';
|
2242 |
}
|
2243 |
}
|
2447 |
}
|
2448 |
}
|
2449 |
|
2450 |
+
if ( '' !== this.value || frm_admin_js.new_option !== this.getAttribute( 'data-value-on-focus' ) ) {
|
2451 |
+
this.setAttribute( 'data-value-on-focus', this.value );
|
2452 |
+
}
|
2453 |
}
|
2454 |
|
2455 |
function onOptionTextBlur() {
|
2507 |
|
2508 |
logicId = row.id.split( '_' )[ 2 ];
|
2509 |
valueSelect = row.querySelector( 'select[name="field_options[hide_opt_' + logicId + '][]"]' );
|
2510 |
+
|
2511 |
+
if ( '' === oldValue ) {
|
2512 |
+
optionMatches = [];
|
2513 |
+
} else {
|
2514 |
+
optionMatches = valueSelect.querySelectorAll( 'option[value="' + oldValue + '"]' );
|
2515 |
+
}
|
2516 |
|
2517 |
if ( ! optionMatches.length ) {
|
2518 |
optionMatches = valueSelect.querySelectorAll( 'option[value="' + newValue + '"]' );
|
2976 |
container.append( addRadioCheckboxOpt( type, opts[ i ], fieldId, fieldInfo.fieldKey, isProduct, imageOptionClass ) );
|
2977 |
}
|
2978 |
}
|
2979 |
+
|
2980 |
+
adjustConditionalLogicOptionOrders( fieldId );
|
2981 |
+
}
|
2982 |
+
|
2983 |
+
function adjustConditionalLogicOptionOrders( fieldId ) {
|
2984 |
+
var row, opts, logicId, valueSelect, rowOptions, expectedOrder, optionLength, optionIndex, expectedOption, optionMatch,
|
2985 |
+
rows = document.getElementById( 'frm_builder_page' ).querySelectorAll( '.frm_logic_row' ),
|
2986 |
+
rowLength = rows.length,
|
2987 |
+
fieldOptions = getFieldOptions( fieldId ),
|
2988 |
+
optionLength = fieldOptions.length;
|
2989 |
+
|
2990 |
+
for ( rowIndex = 0; rowIndex < rowLength; rowIndex++ ) {
|
2991 |
+
row = rows[ rowIndex ];
|
2992 |
+
opts = row.querySelector( '.frm_logic_field_opts' );
|
2993 |
+
|
2994 |
+
if ( opts.value != fieldId ) {
|
2995 |
+
continue;
|
2996 |
+
}
|
2997 |
+
|
2998 |
+
logicId = row.id.split( '_' )[ 2 ];
|
2999 |
+
valueSelect = row.querySelector( 'select[name="field_options[hide_opt_' + logicId + '][]"]' );
|
3000 |
+
|
3001 |
+
for ( optionIndex = optionLength - 1; optionIndex >= 0; optionIndex-- ) {
|
3002 |
+
expectedOption = fieldOptions[ optionIndex ];
|
3003 |
+
optionMatch = valueSelect.querySelector( 'option[value="' + expectedOption + '"]' );
|
3004 |
+
|
3005 |
+
if ( optionMatch === null ) {
|
3006 |
+
optionMatch = document.createElement( 'option' );
|
3007 |
+
optionMatch.setAttribute( 'value', expectedOption );
|
3008 |
+
optionMatch.textContent = expectedOption;
|
3009 |
+
}
|
3010 |
+
|
3011 |
+
valueSelect.prepend( optionMatch );
|
3012 |
+
}
|
3013 |
+
}
|
3014 |
+
|
3015 |
+
optionMatch = valueSelect.querySelector( 'option[value=""]' );
|
3016 |
+
if ( optionMatch !== null ) {
|
3017 |
+
valueSelect.prepend( optionMatch );
|
3018 |
+
}
|
3019 |
+
}
|
3020 |
+
|
3021 |
+
function getFieldOptions( fieldId ) {
|
3022 |
+
var index, input, li,
|
3023 |
+
listItems = document.getElementById( 'frm_field_' + fieldId + '_opts' ).querySelectorAll( '.frm_single_option' ),
|
3024 |
+
options = [],
|
3025 |
+
length = listItems.length;
|
3026 |
+
for ( index = 0; index < length; index++ ) {
|
3027 |
+
li = listItems[ index ];
|
3028 |
+
|
3029 |
+
if ( li.classList.contains( 'frm_hidden' ) ) {
|
3030 |
+
continue;
|
3031 |
+
}
|
3032 |
+
|
3033 |
+
input = li.querySelector( '.field_' + fieldId + '_option' );
|
3034 |
+
options.push( input.value );
|
3035 |
+
}
|
3036 |
+
return options;
|
3037 |
}
|
3038 |
|
3039 |
function addRadioCheckboxOpt( type, opt, fieldId, fieldKey, isProduct, classes ) {
|
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.09\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-11-
|
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"
|
@@ -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 |
|
@@ -398,7 +398,7 @@ msgid "Quantity"
|
|
398 |
msgstr ""
|
399 |
|
400 |
#: classes/models/FrmField.php:189
|
401 |
-
#: classes/helpers/FrmFormsHelper.php:
|
402 |
msgid "Total"
|
403 |
msgstr ""
|
404 |
|
@@ -721,7 +721,7 @@ msgstr ""
|
|
721 |
#: classes/controllers/FrmAddonsController.php:23
|
722 |
#: classes/views/shared/admin-header.php:23
|
723 |
#: classes/views/frm-fields/back-end/smart-values.php:16
|
724 |
-
#: classes/helpers/FrmFormsHelper.php:
|
725 |
msgid "Upgrade"
|
726 |
msgstr ""
|
727 |
|
@@ -729,37 +729,36 @@ msgstr ""
|
|
729 |
msgid "There are no plugins on your site that require a license"
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: classes/controllers/FrmAddonsController.php:
|
733 |
msgid "Installed"
|
734 |
msgstr ""
|
735 |
|
736 |
-
#: classes/controllers/FrmAddonsController.php:
|
737 |
-
#: classes/helpers/FrmAppHelper.php:
|
738 |
msgid "Active"
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: classes/controllers/FrmAddonsController.php:
|
742 |
msgid "Not Installed"
|
743 |
msgstr ""
|
744 |
|
745 |
-
#: classes/controllers/FrmAddonsController.php:
|
746 |
-
msgid "Your plugin has been installed. Please reload the page to see more options."
|
747 |
-
msgstr ""
|
748 |
-
|
749 |
-
#: classes/controllers/FrmAddonsController.php:920
|
750 |
msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: classes/controllers/FrmAddonsController.php:
|
754 |
msgid "Your plugin has been activated. Please reload the page to see more options."
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: classes/controllers/FrmAddonsController.php:
|
758 |
-
msgid "
|
759 |
msgstr ""
|
760 |
|
761 |
-
#: classes/controllers/FrmAddonsController.php:
|
762 |
-
|
|
|
|
|
|
|
763 |
msgstr ""
|
764 |
|
765 |
#: classes/controllers/FrmAppController.php:150
|
@@ -1033,9 +1032,7 @@ msgstr ""
|
|
1033 |
#: classes/controllers/FrmSMTPController.php:305
|
1034 |
#: classes/views/shared/upgrade_overlay.php:32
|
1035 |
#: classes/helpers/FrmFormMigratorsHelper.php:131
|
1036 |
-
#: classes/helpers/FrmAppHelper.php:
|
1037 |
-
#: classes/helpers/FrmAppHelper.php:104
|
1038 |
-
#: classes/helpers/FrmAppHelper.php:2563
|
1039 |
msgid "Install"
|
1040 |
msgstr ""
|
1041 |
|
@@ -1049,7 +1046,6 @@ msgstr ""
|
|
1049 |
|
1050 |
#: classes/controllers/FrmSMTPController.php:322
|
1051 |
#: classes/views/addons/settings.php:31
|
1052 |
-
#: classes/helpers/FrmAppHelper.php:98
|
1053 |
msgid "Activate"
|
1054 |
msgstr ""
|
1055 |
|
@@ -1101,7 +1097,7 @@ msgid "Your form styles have been saved."
|
|
1101 |
msgstr ""
|
1102 |
|
1103 |
#: classes/controllers/FrmStylesController.php:393
|
1104 |
-
#: classes/controllers/FrmFormsController.php:
|
1105 |
msgid "General"
|
1106 |
msgstr ""
|
1107 |
|
@@ -1174,7 +1170,7 @@ msgid "Settings Successfully Updated"
|
|
1174 |
msgstr ""
|
1175 |
|
1176 |
#: classes/controllers/FrmFormsController.php:168
|
1177 |
-
#: classes/controllers/FrmFormsController.php:
|
1178 |
msgid "Form was successfully updated."
|
1179 |
msgstr ""
|
1180 |
|
@@ -1184,7 +1180,7 @@ msgid "However, your form is very long and may be %1$sreaching server limits%2$s
|
|
1184 |
msgstr ""
|
1185 |
|
1186 |
#: classes/controllers/FrmFormsController.php:227
|
1187 |
-
#: deprecated/FrmDeprecated.php:
|
1188 |
msgid "Form template was Successfully Created"
|
1189 |
msgstr ""
|
1190 |
|
@@ -1272,7 +1268,7 @@ msgstr ""
|
|
1272 |
#: classes/controllers/FrmFormsController.php:732
|
1273 |
#: classes/controllers/FrmFormsController.php:736
|
1274 |
#: classes/views/shared/mb_adv_info.php:98
|
1275 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
1276 |
msgid "Key"
|
1277 |
msgstr ""
|
1278 |
|
@@ -1280,167 +1276,167 @@ msgstr ""
|
|
1280 |
msgid "Shortcodes"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: classes/controllers/FrmFormsController.php:
|
1284 |
-
#: classes/helpers/FrmFormsHelper.php:
|
1285 |
msgid "My Templates"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
-
#: classes/controllers/FrmFormsController.php:
|
1289 |
msgid "You are trying to edit a form that does not exist."
|
1290 |
msgstr ""
|
1291 |
|
1292 |
#. translators: %1$s: Start link HTML, %2$s: End link HTML
|
1293 |
-
#: classes/controllers/FrmFormsController.php:
|
1294 |
msgid "You are trying to edit a child form. Please edit from %1$shere%2$s"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: classes/controllers/FrmFormsController.php:
|
1298 |
msgid "Template was successfully updated."
|
1299 |
msgstr ""
|
1300 |
|
1301 |
-
#: classes/controllers/FrmFormsController.php:
|
1302 |
msgid "General Form Settings"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: classes/controllers/FrmFormsController.php:
|
1306 |
msgid "Actions & Notifications"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
-
#: classes/controllers/FrmFormsController.php:
|
1310 |
-
#: classes/controllers/FrmFormsController.php:
|
1311 |
msgid "Form Permissions"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
-
#: classes/controllers/FrmFormsController.php:
|
1315 |
msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
|
1316 |
msgstr ""
|
1317 |
|
1318 |
-
#: classes/controllers/FrmFormsController.php:
|
1319 |
msgid "Form Scheduling"
|
1320 |
msgstr ""
|
1321 |
|
1322 |
-
#: classes/controllers/FrmFormsController.php:
|
1323 |
msgid "Form scheduling settings"
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: classes/controllers/FrmFormsController.php:
|
1327 |
msgid "Styling & Buttons"
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: classes/controllers/FrmFormsController.php:
|
1331 |
msgid "Customize HTML"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
-
#: classes/controllers/FrmFormsController.php:
|
1335 |
msgid "Customize field values with the following parameters."
|
1336 |
msgstr ""
|
1337 |
|
1338 |
-
#: classes/controllers/FrmFormsController.php:
|
1339 |
msgid "Separator"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: classes/controllers/FrmFormsController.php:
|
1343 |
msgid "Use a different separator for checkbox fields"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#: classes/controllers/FrmFormsController.php:
|
1347 |
msgid "Date Format"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: classes/controllers/FrmFormsController.php:
|
1351 |
#: classes/views/frm-fields/back-end/settings.php:27
|
1352 |
msgid "Field Label"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
-
#: classes/controllers/FrmFormsController.php:
|
1356 |
msgid "No Auto P"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
-
#: classes/controllers/FrmFormsController.php:
|
1360 |
msgid "Do not automatically add any paragraphs or line breaks"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
-
#: classes/controllers/FrmFormsController.php:
|
1364 |
msgid "First Name"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#: classes/controllers/FrmFormsController.php:
|
1368 |
msgid "Last Name"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
-
#: classes/controllers/FrmFormsController.php:
|
1372 |
msgid "Display Name"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
-
#: classes/controllers/FrmFormsController.php:
|
1376 |
msgid "User Login"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
-
#: classes/controllers/FrmFormsController.php:
|
1380 |
msgid "Avatar"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
-
#: classes/controllers/FrmFormsController.php:
|
1384 |
msgid "Author Link"
|
1385 |
msgstr ""
|
1386 |
|
1387 |
-
#: classes/controllers/FrmFormsController.php:
|
1388 |
#: classes/views/frm-entries/sidebar-shared.php:51
|
1389 |
msgid "Entry ID"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
-
#: classes/controllers/FrmFormsController.php:
|
1393 |
#: classes/controllers/FrmEntriesController.php:79
|
1394 |
#: classes/views/frm-entries/sidebar-shared.php:57
|
1395 |
#: classes/views/frm-entries/form.php:54
|
1396 |
msgid "Entry Key"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: classes/controllers/FrmFormsController.php:
|
1400 |
msgid "Post ID"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
-
#: classes/controllers/FrmFormsController.php:
|
1404 |
msgid "User IP"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: classes/controllers/FrmFormsController.php:
|
1408 |
msgid "Entry created"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
-
#: classes/controllers/FrmFormsController.php:
|
1412 |
msgid "Entry updated"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
-
#: classes/controllers/FrmFormsController.php:
|
1416 |
msgid "Site URL"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
-
#: classes/controllers/FrmFormsController.php:
|
1420 |
msgid "Site Name"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
-
#: classes/controllers/FrmFormsController.php:
|
1424 |
msgid "Default Msg"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
-
#: classes/controllers/FrmFormsController.php:
|
1428 |
msgid "Default HTML"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
-
#: classes/controllers/FrmFormsController.php:
|
1432 |
msgid "Default Plain"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
-
#: classes/controllers/FrmFormsController.php:
|
1436 |
msgid "No forms were specified"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
-
#: classes/controllers/FrmFormsController.php:
|
1440 |
msgid "Abnormal HTML characters prevented your form from saving correctly"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: classes/controllers/FrmFormsController.php:
|
1444 |
#: classes/views/frm-forms/create-template-from-an-existing-form.php:25
|
1445 |
#: classes/views/xml/import_form.php:133
|
1446 |
#: classes/views/styles/manage.php:59
|
@@ -1448,21 +1444,21 @@ msgstr ""
|
|
1448 |
#: classes/helpers/FrmFormsHelper.php:57
|
1449 |
#: classes/helpers/FrmFormsHelper.php:112
|
1450 |
#: classes/helpers/FrmFormsHelper.php:166
|
1451 |
-
#: classes/helpers/FrmFormsHelper.php:
|
1452 |
msgid "(no title)"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: classes/controllers/FrmFormsController.php:
|
1456 |
-
#: classes/controllers/FrmFormsController.php:
|
1457 |
msgid "Please select a valid form"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
-
#: classes/controllers/FrmFormsController.php:
|
1461 |
msgid "Please wait while you are redirected."
|
1462 |
msgstr ""
|
1463 |
|
1464 |
#. translators: %1$s: Start link HTML, %2$s: End link HTML
|
1465 |
-
#: classes/controllers/FrmFormsController.php:
|
1466 |
msgid "%1$sClick here%2$s if you are not automatically redirected."
|
1467 |
msgstr ""
|
1468 |
|
@@ -1514,7 +1510,7 @@ msgid "Entry Name"
|
|
1514 |
msgstr ""
|
1515 |
|
1516 |
#: classes/controllers/FrmEntriesController.php:86
|
1517 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
1518 |
msgid "Created By"
|
1519 |
msgstr ""
|
1520 |
|
@@ -1646,14 +1642,14 @@ msgid "Renew your account"
|
|
1646 |
msgstr ""
|
1647 |
|
1648 |
#: classes/views/frm-forms/new-form-overlay.php:33
|
1649 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1650 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1651 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1652 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1653 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1654 |
#: classes/views/shared/confirm-overlay.php:19
|
1655 |
#: classes/views/shared/admin-header.php:54
|
1656 |
-
#: classes/helpers/FrmAppHelper.php:
|
1657 |
msgid "Cancel"
|
1658 |
msgstr ""
|
1659 |
|
@@ -1672,54 +1668,44 @@ msgid "(optional)"
|
|
1672 |
msgstr ""
|
1673 |
|
1674 |
#: classes/views/frm-forms/new-form-overlay.php:64
|
1675 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1676 |
#: deprecated/FrmDeprecated.php:66
|
1677 |
msgid "Create"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1681 |
msgid "Back to all templates"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1685 |
msgid "Use this template"
|
1686 |
msgstr ""
|
1687 |
|
1688 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1689 |
-
#: classes/views/shared/reports-info.php:24
|
1690 |
-
#: classes/helpers/FrmAppHelper.php:88
|
1691 |
-
#: classes/helpers/FrmAppHelper.php:89
|
1692 |
-
#: classes/helpers/FrmAppHelper.php:109
|
1693 |
-
#: classes/helpers/FrmAppHelper.php:119
|
1694 |
-
#: classes/helpers/FrmAppHelper.php:120
|
1695 |
-
msgid "Upgrade Now"
|
1696 |
-
msgstr ""
|
1697 |
-
|
1698 |
-
#: classes/views/frm-forms/new-form-overlay.php:129
|
1699 |
msgid "Get Code"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1703 |
msgid "Save Code"
|
1704 |
msgstr ""
|
1705 |
|
1706 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1707 |
msgid "Renew my account"
|
1708 |
msgstr ""
|
1709 |
|
1710 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1711 |
msgid "Delete form"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1715 |
msgid "Preview form"
|
1716 |
msgstr ""
|
1717 |
|
1718 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1719 |
msgid "Create form"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
-
#: classes/views/frm-forms/new-form-overlay.php:
|
1723 |
msgid "Unlock form"
|
1724 |
msgstr ""
|
1725 |
|
@@ -1731,7 +1717,7 @@ msgstr ""
|
|
1731 |
#: classes/views/shared/mb_adv_info.php:40
|
1732 |
#: classes/views/shared/mb_adv_info.php:183
|
1733 |
#: classes/views/frm-entries/list.php:47
|
1734 |
-
#: classes/helpers/FrmAppHelper.php:
|
1735 |
msgid "Search"
|
1736 |
msgstr ""
|
1737 |
|
@@ -1987,7 +1973,7 @@ msgid "Show Page Content"
|
|
1987 |
msgstr ""
|
1988 |
|
1989 |
#: classes/views/frm-forms/settings-advanced.php:98
|
1990 |
-
#: classes/helpers/FrmAppHelper.php:
|
1991 |
msgid "Select a Page"
|
1992 |
msgstr ""
|
1993 |
|
@@ -2226,9 +2212,9 @@ msgid "Duplicate"
|
|
2226 |
msgstr ""
|
2227 |
|
2228 |
#: classes/views/frm-form-actions/form_action.php:25
|
2229 |
-
#: classes/helpers/FrmEntriesListHelper.php:
|
2230 |
#: classes/helpers/FrmFormsListHelper.php:133
|
2231 |
-
#: classes/helpers/FrmFormsHelper.php:
|
2232 |
msgid "Delete"
|
2233 |
msgstr ""
|
2234 |
|
@@ -2335,7 +2321,7 @@ msgstr ""
|
|
2335 |
|
2336 |
#: classes/views/shared/confirm-overlay.php:15
|
2337 |
#: classes/views/shared/info-overlay.php:15
|
2338 |
-
#: classes/helpers/FrmAppHelper.php:
|
2339 |
msgid "Are you sure?"
|
2340 |
msgstr ""
|
2341 |
|
@@ -2448,8 +2434,8 @@ msgid "Keys"
|
|
2448 |
msgstr ""
|
2449 |
|
2450 |
#: classes/views/shared/mb_adv_info.php:95
|
2451 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
2452 |
-
#: classes/helpers/FrmAppHelper.php:
|
2453 |
msgid "ID"
|
2454 |
msgstr ""
|
2455 |
|
@@ -2459,7 +2445,7 @@ msgstr ""
|
|
2459 |
|
2460 |
#: classes/views/shared/mb_adv_info.php:113
|
2461 |
#: classes/views/shared/mb_adv_info.php:127
|
2462 |
-
#: classes/helpers/FrmAppHelper.php:
|
2463 |
msgid "Select a Field"
|
2464 |
msgstr ""
|
2465 |
|
@@ -3083,7 +3069,7 @@ msgid "Label Position"
|
|
3083 |
msgstr ""
|
3084 |
|
3085 |
#: classes/views/frm-fields/back-end/settings.php:270
|
3086 |
-
#: classes/helpers/FrmAppHelper.php:
|
3087 |
msgid "Default"
|
3088 |
msgstr ""
|
3089 |
|
@@ -3471,7 +3457,7 @@ msgid "Post"
|
|
3471 |
msgstr ""
|
3472 |
|
3473 |
#: classes/views/frm-entries/sidebar-shared.php:43
|
3474 |
-
#: classes/helpers/FrmEntriesListHelper.php:
|
3475 |
msgid "View"
|
3476 |
msgstr ""
|
3477 |
|
@@ -3772,19 +3758,19 @@ msgstr ""
|
|
3772 |
msgid "Filter"
|
3773 |
msgstr ""
|
3774 |
|
3775 |
-
#: classes/helpers/FrmEntriesListHelper.php:
|
3776 |
msgid "No"
|
3777 |
msgstr ""
|
3778 |
|
3779 |
-
#: classes/helpers/FrmEntriesListHelper.php:
|
3780 |
msgid "Yes"
|
3781 |
msgstr ""
|
3782 |
|
3783 |
-
#: classes/helpers/FrmEntriesListHelper.php:
|
3784 |
msgid "Permanently delete this entry?"
|
3785 |
msgstr ""
|
3786 |
|
3787 |
-
#: classes/helpers/FrmEntriesListHelper.php:
|
3788 |
msgid "ALL selected entries in this form will be permanently deleted. Want to proceed?"
|
3789 |
msgstr ""
|
3790 |
|
@@ -3797,12 +3783,12 @@ msgid "See all forms."
|
|
3797 |
msgstr ""
|
3798 |
|
3799 |
#: classes/helpers/FrmFormsListHelper.php:124
|
3800 |
-
#: classes/helpers/FrmFormsHelper.php:
|
3801 |
msgid "Restore"
|
3802 |
msgstr ""
|
3803 |
|
3804 |
#: classes/helpers/FrmFormsListHelper.php:128
|
3805 |
-
#: classes/helpers/FrmFormsHelper.php:
|
3806 |
msgid "Delete Permanently"
|
3807 |
msgstr ""
|
3808 |
|
@@ -3823,8 +3809,8 @@ msgid "Drafts"
|
|
3823 |
msgstr ""
|
3824 |
|
3825 |
#: classes/helpers/FrmFormsListHelper.php:158
|
3826 |
-
#: classes/helpers/FrmFormsHelper.php:
|
3827 |
-
#: classes/helpers/FrmFormsHelper.php:
|
3828 |
msgid "Trash"
|
3829 |
msgstr ""
|
3830 |
|
@@ -3838,8 +3824,8 @@ msgid "Saving entries is disabled for this form"
|
|
3838 |
msgstr ""
|
3839 |
|
3840 |
#: classes/helpers/FrmFormsListHelper.php:342
|
3841 |
-
#: classes/helpers/FrmFormsHelper.php:
|
3842 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
3843 |
msgid "Draft"
|
3844 |
msgstr ""
|
3845 |
|
@@ -3848,7 +3834,7 @@ msgid "ALL selected forms and their entries will be permanently deleted. Want to
|
|
3848 |
msgstr ""
|
3849 |
|
3850 |
#: classes/helpers/FrmFieldsHelper.php:286
|
3851 |
-
#: classes/helpers/FrmAppHelper.php:
|
3852 |
msgid "The entered values do not match"
|
3853 |
msgstr ""
|
3854 |
|
@@ -3859,7 +3845,7 @@ msgstr ""
|
|
3859 |
|
3860 |
#: classes/helpers/FrmFieldsHelper.php:456
|
3861 |
#: classes/helpers/FrmFieldsHelper.php:457
|
3862 |
-
#: classes/helpers/FrmAppHelper.php:
|
3863 |
msgid "New Option"
|
3864 |
msgstr ""
|
3865 |
|
@@ -5030,7 +5016,7 @@ msgid "Left"
|
|
5030 |
msgstr ""
|
5031 |
|
5032 |
#: classes/helpers/FrmStylesHelper.php:113
|
5033 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5034 |
msgid "Right"
|
5035 |
msgstr ""
|
5036 |
|
@@ -5059,7 +5045,7 @@ msgid "Excerpt View"
|
|
5059 |
msgstr ""
|
5060 |
|
5061 |
#: classes/helpers/FrmListHelper.php:262
|
5062 |
-
#: classes/helpers/FrmAppHelper.php:
|
5063 |
msgid "No items found."
|
5064 |
msgstr ""
|
5065 |
|
@@ -5072,7 +5058,7 @@ msgid "Bulk Actions"
|
|
5072 |
msgstr ""
|
5073 |
|
5074 |
#: classes/helpers/FrmListHelper.php:405
|
5075 |
-
#: classes/helpers/FrmAppHelper.php:
|
5076 |
msgid "Heads up"
|
5077 |
msgstr ""
|
5078 |
|
@@ -5243,114 +5229,114 @@ msgstr ""
|
|
5243 |
msgid "Duplicate Form"
|
5244 |
msgstr ""
|
5245 |
|
5246 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5247 |
msgid "Restore from Trash"
|
5248 |
msgstr ""
|
5249 |
|
5250 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5251 |
msgid "Move Form to Trash"
|
5252 |
msgstr ""
|
5253 |
|
5254 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5255 |
msgid "Do you want to move this form to the trash?"
|
5256 |
msgstr ""
|
5257 |
|
5258 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5259 |
msgid "Are you sure you want to delete this form and all its entries?"
|
5260 |
msgstr ""
|
5261 |
|
5262 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5263 |
msgid "This will permanently delete the form and all its entries. This is irreversible. Are you sure you want to continue?"
|
5264 |
msgstr ""
|
5265 |
|
5266 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5267 |
msgid "Add this to a read-only field to display the text in bold without a border or background."
|
5268 |
msgstr ""
|
5269 |
|
5270 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5271 |
msgid "Big Total"
|
5272 |
msgstr ""
|
5273 |
|
5274 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5275 |
msgid "Add this to a read-only field to display the text in large, bold text without a border or background."
|
5276 |
msgstr ""
|
5277 |
|
5278 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5279 |
msgid "Scroll Box"
|
5280 |
msgstr ""
|
5281 |
|
5282 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5283 |
msgid "If you have many checkbox or radio button options, you may add this class to allow your user to easily scroll through the options. Or add a scrolling area around content in an HTML field."
|
5284 |
msgstr ""
|
5285 |
|
5286 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5287 |
msgid "First"
|
5288 |
msgstr ""
|
5289 |
|
5290 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5291 |
msgid "Add this to the first field in each row along with a width. ie frm_first frm4"
|
5292 |
msgstr ""
|
5293 |
|
5294 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5295 |
msgid "First Grid Row"
|
5296 |
msgstr ""
|
5297 |
|
5298 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5299 |
msgid "Even Grid Row"
|
5300 |
msgstr ""
|
5301 |
|
5302 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5303 |
msgid "Odd Grid Row"
|
5304 |
msgstr ""
|
5305 |
|
5306 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5307 |
msgid "Color Block"
|
5308 |
msgstr ""
|
5309 |
|
5310 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5311 |
msgid "Add a background color to the field or section."
|
5312 |
msgstr ""
|
5313 |
|
5314 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5315 |
msgid "Capitalize"
|
5316 |
msgstr ""
|
5317 |
|
5318 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5319 |
msgid "Automatically capitalize the first letter in each word."
|
5320 |
msgstr ""
|
5321 |
|
5322 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5323 |
msgid "Published"
|
5324 |
msgstr ""
|
5325 |
|
5326 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5327 |
msgid "Create Form"
|
5328 |
msgstr ""
|
5329 |
|
5330 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5331 |
msgid "Renew"
|
5332 |
msgstr ""
|
5333 |
|
5334 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5335 |
msgid "License plan required:"
|
5336 |
msgstr ""
|
5337 |
|
5338 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5339 |
msgid "Is this intentional?"
|
5340 |
msgstr ""
|
5341 |
|
5342 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5343 |
-
#: classes/helpers/FrmAppHelper.php:
|
5344 |
msgid "See the list of reserved words in WordPress."
|
5345 |
msgstr ""
|
5346 |
|
5347 |
#. translators: %s: the name of a single parameter in the redirect URL
|
5348 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5349 |
msgid "The redirect URL is using the parameter \"%s\", which is reserved by WordPress. "
|
5350 |
msgstr ""
|
5351 |
|
5352 |
#. translators: %s: the names of two or more parameters in the redirect URL, separated by commas
|
5353 |
-
#: classes/helpers/FrmFormsHelper.php:
|
5354 |
msgid "The redirect URL is using the parameters \"%s\", which are reserved by WordPress. "
|
5355 |
msgstr ""
|
5356 |
|
@@ -5358,605 +5344,598 @@ msgstr ""
|
|
5358 |
msgid "(label)"
|
5359 |
msgstr ""
|
5360 |
|
5361 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5362 |
msgid "Comment"
|
5363 |
msgstr ""
|
5364 |
|
5365 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5366 |
msgid "Comment User"
|
5367 |
msgstr ""
|
5368 |
|
5369 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5370 |
msgid "Comment Date"
|
5371 |
msgstr ""
|
5372 |
|
5373 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5374 |
msgid "Timestamp"
|
5375 |
msgstr ""
|
5376 |
|
5377 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5378 |
msgid "Last Updated"
|
5379 |
msgstr ""
|
5380 |
|
5381 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5382 |
msgid "Updated By"
|
5383 |
msgstr ""
|
5384 |
|
5385 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5386 |
msgid "IP"
|
5387 |
msgstr ""
|
5388 |
|
5389 |
-
#: classes/helpers/FrmCSVExportHelper.php:
|
5390 |
msgid "Parent ID"
|
5391 |
msgstr ""
|
5392 |
|
5393 |
-
#: classes/helpers/FrmAppHelper.php:
|
5394 |
-
#: classes/helpers/FrmAppHelper.php:
|
5395 |
-
msgid "Renew Now"
|
5396 |
-
msgstr ""
|
5397 |
-
|
5398 |
-
#: classes/helpers/FrmAppHelper.php:180
|
5399 |
-
msgid "Your account has expired"
|
5400 |
-
msgstr ""
|
5401 |
-
|
5402 |
-
#. translators: %1$s: start HTML tag, %2$s: end HTML tag
|
5403 |
-
#: classes/helpers/FrmAppHelper.php:206
|
5404 |
-
msgid "Your form subscription expires in %1$s day%2$s."
|
5405 |
-
msgid_plural "Your form subscription expires in %1$s days%2$s."
|
5406 |
-
msgstr[0] ""
|
5407 |
-
|
5408 |
-
#: classes/helpers/FrmAppHelper.php:1015
|
5409 |
-
#: classes/helpers/FrmAppHelper.php:1023
|
5410 |
msgid "Add New"
|
5411 |
msgstr ""
|
5412 |
|
5413 |
-
#: classes/helpers/FrmAppHelper.php:
|
5414 |
msgid "View Forms"
|
5415 |
msgstr ""
|
5416 |
|
5417 |
-
#: classes/helpers/FrmAppHelper.php:
|
5418 |
msgid "Add and Edit Forms"
|
5419 |
msgstr ""
|
5420 |
|
5421 |
-
#: classes/helpers/FrmAppHelper.php:
|
5422 |
msgid "Delete Forms"
|
5423 |
msgstr ""
|
5424 |
|
5425 |
-
#: classes/helpers/FrmAppHelper.php:
|
5426 |
msgid "Access this Settings Page"
|
5427 |
msgstr ""
|
5428 |
|
5429 |
-
#: classes/helpers/FrmAppHelper.php:
|
5430 |
msgid "View Entries from Admin Area"
|
5431 |
msgstr ""
|
5432 |
|
5433 |
-
#: classes/helpers/FrmAppHelper.php:
|
5434 |
msgid "Delete Entries from Admin Area"
|
5435 |
msgstr ""
|
5436 |
|
5437 |
-
#: classes/helpers/FrmAppHelper.php:
|
5438 |
msgid "Add Entries from Admin Area"
|
5439 |
msgstr ""
|
5440 |
|
5441 |
-
#: classes/helpers/FrmAppHelper.php:
|
5442 |
msgid "Edit Entries from Admin Area"
|
5443 |
msgstr ""
|
5444 |
|
5445 |
-
#: classes/helpers/FrmAppHelper.php:
|
5446 |
msgid "View Reports"
|
5447 |
msgstr ""
|
5448 |
|
5449 |
-
#: classes/helpers/FrmAppHelper.php:
|
5450 |
msgid "Add/Edit Views"
|
5451 |
msgstr ""
|
5452 |
|
5453 |
-
#: classes/helpers/FrmAppHelper.php:
|
5454 |
msgid "at"
|
5455 |
msgstr ""
|
5456 |
|
5457 |
-
#: classes/helpers/FrmAppHelper.php:
|
5458 |
msgid "year"
|
5459 |
msgstr ""
|
5460 |
|
5461 |
-
#: classes/helpers/FrmAppHelper.php:
|
5462 |
msgid "years"
|
5463 |
msgstr ""
|
5464 |
|
5465 |
-
#: classes/helpers/FrmAppHelper.php:
|
5466 |
msgid "month"
|
5467 |
msgstr ""
|
5468 |
|
5469 |
-
#: classes/helpers/FrmAppHelper.php:
|
5470 |
msgid "months"
|
5471 |
msgstr ""
|
5472 |
|
5473 |
-
#: classes/helpers/FrmAppHelper.php:
|
5474 |
msgid "week"
|
5475 |
msgstr ""
|
5476 |
|
5477 |
-
#: classes/helpers/FrmAppHelper.php:
|
5478 |
msgid "weeks"
|
5479 |
msgstr ""
|
5480 |
|
5481 |
-
#: classes/helpers/FrmAppHelper.php:
|
5482 |
msgid "day"
|
5483 |
msgstr ""
|
5484 |
|
5485 |
-
#: classes/helpers/FrmAppHelper.php:
|
5486 |
msgid "days"
|
5487 |
msgstr ""
|
5488 |
|
5489 |
-
#: classes/helpers/FrmAppHelper.php:
|
5490 |
msgid "hour"
|
5491 |
msgstr ""
|
5492 |
|
5493 |
-
#: classes/helpers/FrmAppHelper.php:
|
5494 |
msgid "hours"
|
5495 |
msgstr ""
|
5496 |
|
5497 |
-
#: classes/helpers/FrmAppHelper.php:
|
5498 |
msgid "minute"
|
5499 |
msgstr ""
|
5500 |
|
5501 |
-
#: classes/helpers/FrmAppHelper.php:
|
5502 |
msgid "minutes"
|
5503 |
msgstr ""
|
5504 |
|
5505 |
-
#: classes/helpers/FrmAppHelper.php:
|
5506 |
msgid "second"
|
5507 |
msgstr ""
|
5508 |
|
5509 |
-
#: classes/helpers/FrmAppHelper.php:
|
5510 |
msgid "seconds"
|
5511 |
msgstr ""
|
5512 |
|
5513 |
-
#: classes/helpers/FrmAppHelper.php:
|
5514 |
msgid "Give this action a label for easy reference."
|
5515 |
msgstr ""
|
5516 |
|
5517 |
-
#: classes/helpers/FrmAppHelper.php:
|
5518 |
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."
|
5519 |
msgstr ""
|
5520 |
|
5521 |
-
#: classes/helpers/FrmAppHelper.php:
|
5522 |
msgid "Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
|
5523 |
msgstr ""
|
5524 |
|
5525 |
-
#: classes/helpers/FrmAppHelper.php:
|
5526 |
msgid "Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or name@email.com."
|
5527 |
msgstr ""
|
5528 |
|
5529 |
-
#: classes/helpers/FrmAppHelper.php:
|
5530 |
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."
|
5531 |
msgstr ""
|
5532 |
|
5533 |
-
#: classes/helpers/FrmAppHelper.php:
|
5534 |
msgid "Enter the name and/or email address of the sender. FORMAT: John Bates <john@example.com> or john@example.com."
|
5535 |
msgstr ""
|
5536 |
|
5537 |
#. translators: %1$s: Form name, %2$s: Date
|
5538 |
-
#: classes/helpers/FrmAppHelper.php:
|
5539 |
msgid "If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s"
|
5540 |
msgstr ""
|
5541 |
|
5542 |
-
#: classes/helpers/FrmAppHelper.php:
|
5543 |
-
#: classes/helpers/FrmAppHelper.php:
|
5544 |
msgid "Please wait while your site updates."
|
5545 |
msgstr ""
|
5546 |
|
5547 |
-
#: classes/helpers/FrmAppHelper.php:
|
5548 |
msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
|
5549 |
msgstr ""
|
5550 |
|
5551 |
-
#: classes/helpers/FrmAppHelper.php:
|
5552 |
-
#: classes/helpers/FrmAppHelper.php:
|
5553 |
msgid "Loading…"
|
5554 |
msgstr ""
|
5555 |
|
5556 |
-
#: classes/helpers/FrmAppHelper.php:
|
5557 |
msgid "Remove"
|
5558 |
msgstr ""
|
5559 |
|
5560 |
-
#: classes/helpers/FrmAppHelper.php:
|
5561 |
msgid "No results match"
|
5562 |
msgstr ""
|
5563 |
|
5564 |
-
#: classes/helpers/FrmAppHelper.php:
|
5565 |
msgid "That file looks like Spam."
|
5566 |
msgstr ""
|
5567 |
|
5568 |
-
#: classes/helpers/FrmAppHelper.php:
|
5569 |
msgid "There is an error in the calculation in the field with key"
|
5570 |
msgstr ""
|
5571 |
|
5572 |
-
#: classes/helpers/FrmAppHelper.php:
|
5573 |
msgid "Please complete the preceding required fields before uploading a file."
|
5574 |
msgstr ""
|
5575 |
|
5576 |
-
#: classes/helpers/FrmAppHelper.php:
|
5577 |
msgid "(Click to add description)"
|
5578 |
msgstr ""
|
5579 |
|
5580 |
-
#: classes/helpers/FrmAppHelper.php:
|
5581 |
msgid "(Blank)"
|
5582 |
msgstr ""
|
5583 |
|
5584 |
-
#: classes/helpers/FrmAppHelper.php:
|
5585 |
msgid "(no label)"
|
5586 |
msgstr ""
|
5587 |
|
5588 |
-
#: classes/helpers/FrmAppHelper.php:
|
5589 |
msgid "Saving"
|
5590 |
msgstr ""
|
5591 |
|
5592 |
-
#: classes/helpers/FrmAppHelper.php:
|
5593 |
msgid "Saved"
|
5594 |
msgstr ""
|
5595 |
|
5596 |
-
#: classes/helpers/FrmAppHelper.php:
|
5597 |
msgid "OK"
|
5598 |
msgstr ""
|
5599 |
|
5600 |
-
#: classes/helpers/FrmAppHelper.php:
|
5601 |
msgid "Clear default value when typing"
|
5602 |
msgstr ""
|
5603 |
|
5604 |
-
#: classes/helpers/FrmAppHelper.php:
|
5605 |
msgid "Do not clear default value when typing"
|
5606 |
msgstr ""
|
5607 |
|
5608 |
-
#: classes/helpers/FrmAppHelper.php:
|
5609 |
msgid "Default value will pass form validation"
|
5610 |
msgstr ""
|
5611 |
|
5612 |
-
#: classes/helpers/FrmAppHelper.php:
|
5613 |
msgid "Default value will NOT pass form validation"
|
5614 |
msgstr ""
|
5615 |
|
5616 |
-
#: classes/helpers/FrmAppHelper.php:
|
5617 |
msgid "Are you sure you want to delete this field and all data associated with it?"
|
5618 |
msgstr ""
|
5619 |
|
5620 |
-
#: classes/helpers/FrmAppHelper.php:
|
5621 |
msgid "All fields inside this Section will be deleted along with their data. Are you sure you want to delete this group of fields?"
|
5622 |
msgstr ""
|
5623 |
|
5624 |
-
#: classes/helpers/FrmAppHelper.php:
|
5625 |
msgid "Warning: If you have entries with multiple rows, |