Completed
Push — master ( c878b5...2f4c4a )
by Jamie
02:30
created
classes/helpers/FrmAppHelper.php 1 patch
Indentation   +1017 added lines, -1017 removed lines patch added patch discarded remove patch
@@ -12,50 +12,50 @@  discard block
 block discarded – undo
12 12
 	 */
13 13
 	public static $plug_version = '2.05';
14 14
 
15
-    /**
16
-     * @since 1.07.02
17
-     *
18
-     * @param none
19
-     * @return string The version of this plugin
20
-     */
21
-    public static function plugin_version() {
22
-        return self::$plug_version;
23
-    }
24
-
25
-    public static function plugin_folder() {
26
-        return basename(self::plugin_path());
27
-    }
28
-
29
-    public static function plugin_path() {
30
-        return dirname(dirname(dirname(__FILE__)));
31
-    }
32
-
33
-    public static function plugin_url() {
34
-        //prevously FRM_URL constant
15
+	/**
16
+	 * @since 1.07.02
17
+	 *
18
+	 * @param none
19
+	 * @return string The version of this plugin
20
+	 */
21
+	public static function plugin_version() {
22
+		return self::$plug_version;
23
+	}
24
+
25
+	public static function plugin_folder() {
26
+		return basename(self::plugin_path());
27
+	}
28
+
29
+	public static function plugin_path() {
30
+		return dirname(dirname(dirname(__FILE__)));
31
+	}
32
+
33
+	public static function plugin_url() {
34
+		//prevously FRM_URL constant
35 35
 		return plugins_url( '', self::plugin_path() . '/formidable.php' );
36
-    }
36
+	}
37 37
 
38 38
 	public static function relative_plugin_url() {
39 39
 		return str_replace( array( 'https:', 'http:' ), '', self::plugin_url() );
40 40
 	}
41 41
 
42
-    /**
43
-     * @return string Site URL
44
-     */
45
-    public static function site_url() {
46
-        return site_url();
47
-    }
48
-
49
-    /**
50
-     * Get the name of this site
51
-     * Used for [sitename] shortcode
52
-     *
53
-     * @since 2.0
54
-     * @return string
55
-     */
56
-    public static function site_name() {
57
-        return get_option('blogname');
58
-    }
42
+	/**
43
+	 * @return string Site URL
44
+	 */
45
+	public static function site_url() {
46
+		return site_url();
47
+	}
48
+
49
+	/**
50
+	 * Get the name of this site
51
+	 * Used for [sitename] shortcode
52
+	 *
53
+	 * @since 2.0
54
+	 * @return string
55
+	 */
56
+	public static function site_name() {
57
+		return get_option('blogname');
58
+	}
59 59
 
60 60
 	public static function make_affiliate_url( $url ) {
61 61
 		$affiliate_id = self::get_affiliate();
@@ -69,21 +69,21 @@  discard block
 block discarded – undo
69 69
 		return '';
70 70
 	}
71 71
 
72
-    /**
73
-     * Get the Formidable settings
74
-     *
75
-     * @since 2.0
76
-     *
77
-     * @param None
78
-     * @return FrmSettings $frm_setings
79
-     */
80
-    public static function get_settings() {
81
-        global $frm_settings;
82
-        if ( empty($frm_settings) ) {
83
-            $frm_settings = new FrmSettings();
84
-        }
85
-        return $frm_settings;
86
-    }
72
+	/**
73
+	 * Get the Formidable settings
74
+	 *
75
+	 * @since 2.0
76
+	 *
77
+	 * @param None
78
+	 * @return FrmSettings $frm_setings
79
+	 */
80
+	public static function get_settings() {
81
+		global $frm_settings;
82
+		if ( empty($frm_settings) ) {
83
+			$frm_settings = new FrmSettings();
84
+		}
85
+		return $frm_settings;
86
+	}
87 87
 
88 88
 	public static function get_menu_name() {
89 89
 		$frm_settings = FrmAppHelper::get_settings();
@@ -98,62 +98,62 @@  discard block
 block discarded – undo
98 98
 		return ! $frm_settings->no_ips;
99 99
 	}
100 100
 
101
-    /**
102
-     * Show a message in place of pro features
103
-     *
104
-     * @since 2.0
105
-     */
101
+	/**
102
+	 * Show a message in place of pro features
103
+	 *
104
+	 * @since 2.0
105
+	 */
106 106
 	public static function update_message() {
107 107
 		_deprecated_function( __FUNCTION__, '2.0.19' );
108
-    }
109
-
110
-    public static function pro_is_installed() {
111
-        return apply_filters('frm_pro_installed', false);
112
-    }
113
-
114
-    /**
115
-     * Check for certain page in Formidable settings
116
-     *
117
-     * @since 2.0
118
-     *
119
-     * @param string $page The name of the page to check
120
-     * @return boolean
121
-     */
108
+	}
109
+
110
+	public static function pro_is_installed() {
111
+		return apply_filters('frm_pro_installed', false);
112
+	}
113
+
114
+	/**
115
+	 * Check for certain page in Formidable settings
116
+	 *
117
+	 * @since 2.0
118
+	 *
119
+	 * @param string $page The name of the page to check
120
+	 * @return boolean
121
+	 */
122 122
 	public static function is_admin_page( $page = 'formidable' ) {
123
-        global $pagenow;
123
+		global $pagenow;
124 124
 		$get_page = self::simple_get( 'page', 'sanitize_title' );
125
-        if ( $pagenow ) {
125
+		if ( $pagenow ) {
126 126
 			return $pagenow == 'admin.php' && $get_page == $page;
127
-        }
127
+		}
128 128
 
129 129
 		return is_admin() && $get_page == $page;
130
-    }
131
-
132
-    /**
133
-     * Check for the form preview page
134
-     *
135
-     * @since 2.0
136
-     *
137
-     * @param None
138
-     * @return boolean
139
-     */
140
-    public static function is_preview_page() {
141
-        global $pagenow;
130
+	}
131
+
132
+	/**
133
+	 * Check for the form preview page
134
+	 *
135
+	 * @since 2.0
136
+	 *
137
+	 * @param None
138
+	 * @return boolean
139
+	 */
140
+	public static function is_preview_page() {
141
+		global $pagenow;
142 142
 		$action = FrmAppHelper::simple_get( 'action', 'sanitize_title' );
143 143
 		return $pagenow && $pagenow == 'admin-ajax.php' && $action == 'frm_forms_preview';
144
-    }
144
+	}
145 145
 
146
-    /**
147
-     * Check for ajax except the form preview page
148
-     *
149
-     * @since 2.0
150
-     *
151
-     * @param None
152
-     * @return boolean
153
-     */
154
-    public static function doing_ajax() {
155
-        return defined('DOING_AJAX') && DOING_AJAX && ! self::is_preview_page();
156
-    }
146
+	/**
147
+	 * Check for ajax except the form preview page
148
+	 *
149
+	 * @since 2.0
150
+	 *
151
+	 * @param None
152
+	 * @return boolean
153
+	 */
154
+	public static function doing_ajax() {
155
+		return defined('DOING_AJAX') && DOING_AJAX && ! self::is_preview_page();
156
+	}
157 157
 
158 158
 	/**
159 159
 	 * @since 2.0.8
@@ -163,102 +163,102 @@  discard block
 block discarded – undo
163 163
 		return isset( $frm_vars['prevent_caching'] ) && $frm_vars['prevent_caching'];
164 164
 	}
165 165
 
166
-    /**
167
-     * Check if on an admin page
168
-     *
169
-     * @since 2.0
170
-     *
171
-     * @param None
172
-     * @return boolean
173
-     */
174
-    public static function is_admin() {
175
-        return is_admin() && ( ! defined('DOING_AJAX') || ! DOING_AJAX );
176
-    }
177
-
178
-    /**
179
-     * Check if value contains blank value or empty array
180
-     *
181
-     * @since 2.0
182
-     * @param mixed $value - value to check
166
+	/**
167
+	 * Check if on an admin page
168
+	 *
169
+	 * @since 2.0
170
+	 *
171
+	 * @param None
172
+	 * @return boolean
173
+	 */
174
+	public static function is_admin() {
175
+		return is_admin() && ( ! defined('DOING_AJAX') || ! DOING_AJAX );
176
+	}
177
+
178
+	/**
179
+	 * Check if value contains blank value or empty array
180
+	 *
181
+	 * @since 2.0
182
+	 * @param mixed $value - value to check
183 183
 	 * @param string
184
-     * @return boolean
185
-     */
186
-    public static function is_empty_value( $value, $empty = '' ) {
187
-        return ( is_array( $value ) && empty( $value ) ) || $value == $empty;
188
-    }
189
-
190
-    public static function is_not_empty_value( $value, $empty = '' ) {
191
-        return ! self::is_empty_value( $value, $empty );
192
-    }
193
-
194
-    /**
195
-     * Get any value from the $_SERVER
196
-     *
197
-     * @since 2.0
198
-     * @param string $value
199
-     * @return string
200
-     */
184
+	 * @return boolean
185
+	 */
186
+	public static function is_empty_value( $value, $empty = '' ) {
187
+		return ( is_array( $value ) && empty( $value ) ) || $value == $empty;
188
+	}
189
+
190
+	public static function is_not_empty_value( $value, $empty = '' ) {
191
+		return ! self::is_empty_value( $value, $empty );
192
+	}
193
+
194
+	/**
195
+	 * Get any value from the $_SERVER
196
+	 *
197
+	 * @since 2.0
198
+	 * @param string $value
199
+	 * @return string
200
+	 */
201 201
 	public static function get_server_value( $value ) {
202
-        return isset( $_SERVER[ $value ] ) ? wp_strip_all_tags( $_SERVER[ $value ] ) : '';
203
-    }
204
-
205
-    /**
206
-     * Check for the IP address in several places
207
-     * Used by [ip] shortcode
208
-     *
209
-     * @return string The IP address of the current user
210
-     */
211
-    public static function get_ip_address() {
202
+		return isset( $_SERVER[ $value ] ) ? wp_strip_all_tags( $_SERVER[ $value ] ) : '';
203
+	}
204
+
205
+	/**
206
+	 * Check for the IP address in several places
207
+	 * Used by [ip] shortcode
208
+	 *
209
+	 * @return string The IP address of the current user
210
+	 */
211
+	public static function get_ip_address() {
212 212
 		$ip = '';
213
-        foreach ( array(
214
-            'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP',
215
-            'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR',
216
-        ) as $key ) {
217
-            if ( ! isset( $_SERVER[ $key ] ) ) {
218
-                continue;
219
-            }
220
-
221
-            foreach ( explode( ',', $_SERVER[ $key ] ) as $ip ) {
222
-                $ip = trim($ip); // just to be safe
223
-
224
-                if ( filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false ) {
225
-                    return $ip;
226
-                }
227
-            }
228
-        }
213
+		foreach ( array(
214
+			'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP',
215
+			'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR',
216
+		) as $key ) {
217
+			if ( ! isset( $_SERVER[ $key ] ) ) {
218
+				continue;
219
+			}
220
+
221
+			foreach ( explode( ',', $_SERVER[ $key ] ) as $ip ) {
222
+				$ip = trim($ip); // just to be safe
223
+
224
+				if ( filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false ) {
225
+					return $ip;
226
+				}
227
+			}
228
+		}
229 229
 
230 230
 		return sanitize_text_field( $ip );
231
-    }
231
+	}
232 232
 
233
-    public static function get_param( $param, $default = '', $src = 'get', $sanitize = '' ) {
234
-        if ( strpos($param, '[') ) {
235
-            $params = explode('[', $param);
236
-            $param = $params[0];
237
-        }
233
+	public static function get_param( $param, $default = '', $src = 'get', $sanitize = '' ) {
234
+		if ( strpos($param, '[') ) {
235
+			$params = explode('[', $param);
236
+			$param = $params[0];
237
+		}
238 238
 
239 239
 		if ( $src == 'get' ) {
240
-            $value = isset( $_POST[ $param ] ) ? stripslashes_deep( $_POST[ $param ] ) : ( isset( $_GET[ $param ] ) ? stripslashes_deep( $_GET[ $param ] ) : $default );
241
-            if ( ! isset( $_POST[ $param ] ) && isset( $_GET[ $param ] ) && ! is_array( $value ) ) {
242
-                $value = stripslashes_deep( htmlspecialchars_decode( $_GET[ $param ] ) );
243
-            }
240
+			$value = isset( $_POST[ $param ] ) ? stripslashes_deep( $_POST[ $param ] ) : ( isset( $_GET[ $param ] ) ? stripslashes_deep( $_GET[ $param ] ) : $default );
241
+			if ( ! isset( $_POST[ $param ] ) && isset( $_GET[ $param ] ) && ! is_array( $value ) ) {
242
+				$value = stripslashes_deep( htmlspecialchars_decode( $_GET[ $param ] ) );
243
+			}
244 244
 			self::sanitize_value( $sanitize, $value );
245 245
 		} else {
246
-            $value = self::get_simple_request( array( 'type' => $src, 'param' => $param, 'default' => $default, 'sanitize' => $sanitize ) );
247
-        }
246
+			$value = self::get_simple_request( array( 'type' => $src, 'param' => $param, 'default' => $default, 'sanitize' => $sanitize ) );
247
+		}
248 248
 
249 249
 		if ( isset( $params ) && is_array( $value ) && ! empty( $value ) ) {
250
-            foreach ( $params as $k => $p ) {
251
-                if ( ! $k || ! is_array($value) ) {
252
-                    continue;
253
-                }
250
+			foreach ( $params as $k => $p ) {
251
+				if ( ! $k || ! is_array($value) ) {
252
+					continue;
253
+				}
254 254
 
255
-                $p = trim($p, ']');
256
-                $value = isset( $value[ $p ] ) ? $value[ $p ] : $default;
257
-            }
258
-        }
255
+				$p = trim($p, ']');
256
+				$value = isset( $value[ $p ] ) ? $value[ $p ] : $default;
257
+			}
258
+		}
259 259
 
260
-        return $value;
261
-    }
260
+		return $value;
261
+	}
262 262
 
263 263
 	public static function get_post_param( $param, $default = '', $sanitize = '' ) {
264 264
 		return self::get_simple_request( array( 'type' => 'post', 'param' => $param, 'default' => $default, 'sanitize' => $sanitize ) );
@@ -274,7 +274,7 @@  discard block
 block discarded – undo
274 274
 	 */
275 275
 	public static function simple_get( $param, $sanitize = 'sanitize_text_field', $default = '' ) {
276 276
 		return self::get_simple_request( array( 'type' => 'get', 'param' => $param, 'default' => $default, 'sanitize' => $sanitize ) );
277
-    }
277
+	}
278 278
 
279 279
 	/**
280 280
 	 * Get a GET/POST/REQUEST value and sanitize it
@@ -310,12 +310,12 @@  discard block
 block discarded – undo
310 310
 	}
311 311
 
312 312
 	/**
313
-	* Preserve backslashes in a value, but make sure value doesn't get compounding slashes
314
-	*
315
-	* @since 2.0.8
316
-	* @param string $value
317
-	* @return string $value
318
-	*/
313
+	 * Preserve backslashes in a value, but make sure value doesn't get compounding slashes
314
+	 *
315
+	 * @since 2.0.8
316
+	 * @param string $value
317
+	 * @return string $value
318
+	 */
319 319
 	public static function preserve_backslashes( $value ) {
320 320
 		// If backslashes have already been added, don't add them again
321 321
 		if ( strpos( $value, '\\\\' ) === false ) {
@@ -337,14 +337,14 @@  discard block
 block discarded – undo
337 337
 		}
338 338
 	}
339 339
 
340
-    public static function sanitize_request( $sanitize_method, &$values ) {
341
-        $temp_values = $values;
342
-        foreach ( $temp_values as $k => $val ) {
343
-            if ( isset( $sanitize_method[ $k ] ) ) {
340
+	public static function sanitize_request( $sanitize_method, &$values ) {
341
+		$temp_values = $values;
342
+		foreach ( $temp_values as $k => $val ) {
343
+			if ( isset( $sanitize_method[ $k ] ) ) {
344 344
 				$values[ $k ] = call_user_func( $sanitize_method[ $k ], $val );
345
-            }
346
-        }
347
-    }
345
+			}
346
+		}
347
+	}
348 348
 
349 349
 	public static function sanitize_array( &$values ) {
350 350
 		$temp_values = $values;
@@ -362,12 +362,12 @@  discard block
 block discarded – undo
362 362
 	 */
363 363
 	public static function kses( $value, $allowed = array() ) {
364 364
 		$html = array(
365
-		    'a' => array(
365
+			'a' => array(
366 366
 				'href'  => array(),
367 367
 				'title' => array(),
368 368
 				'id'    => array(),
369 369
 				'class' => array(),
370
-		    ),
370
+			),
371 371
 		);
372 372
 
373 373
 		$allowed_html = array();
@@ -378,77 +378,77 @@  discard block
 block discarded – undo
378 378
 		return wp_kses( $value, $allowed_html );
379 379
 	}
380 380
 
381
-    /**
382
-     * Used when switching the action for a bulk action
383
-     * @since 2.0
384
-     */
385
-    public static function remove_get_action() {
386
-        if ( ! isset($_GET) ) {
387
-            return;
388
-        }
381
+	/**
382
+	 * Used when switching the action for a bulk action
383
+	 * @since 2.0
384
+	 */
385
+	public static function remove_get_action() {
386
+		if ( ! isset($_GET) ) {
387
+			return;
388
+		}
389 389
 
390
-        $new_action = isset( $_GET['action'] ) ? sanitize_text_field( $_GET['action'] ) : ( isset( $_GET['action2'] ) ? sanitize_text_field( $_GET['action2'] ) : '' );
391
-        if ( ! empty( $new_action ) ) {
390
+		$new_action = isset( $_GET['action'] ) ? sanitize_text_field( $_GET['action'] ) : ( isset( $_GET['action2'] ) ? sanitize_text_field( $_GET['action2'] ) : '' );
391
+		if ( ! empty( $new_action ) ) {
392 392
 			$_SERVER['REQUEST_URI'] = str_replace( '&action=' . $new_action, '', FrmAppHelper::get_server_value( 'REQUEST_URI' ) );
393
-        }
394
-    }
395
-
396
-    /**
397
-     * Check the WP query for a parameter
398
-     *
399
-     * @since 2.0
400
-     * @return string|array
401
-     */
402
-    public static function get_query_var( $value, $param ) {
403
-        if ( $value != '' ) {
404
-            return $value;
405
-        }
406
-
407
-        global $wp_query;
408
-        if ( isset( $wp_query->query_vars[ $param ] ) ) {
409
-            $value = $wp_query->query_vars[ $param ];
410
-        }
411
-
412
-        return $value;
413
-    }
414
-
415
-    /**
416
-     * @param string $type
417
-     */
418
-    public static function trigger_hook_load( $type, $object = null ) {
419
-        // only load the form hooks once
393
+		}
394
+	}
395
+
396
+	/**
397
+	 * Check the WP query for a parameter
398
+	 *
399
+	 * @since 2.0
400
+	 * @return string|array
401
+	 */
402
+	public static function get_query_var( $value, $param ) {
403
+		if ( $value != '' ) {
404
+			return $value;
405
+		}
406
+
407
+		global $wp_query;
408
+		if ( isset( $wp_query->query_vars[ $param ] ) ) {
409
+			$value = $wp_query->query_vars[ $param ];
410
+		}
411
+
412
+		return $value;
413
+	}
414
+
415
+	/**
416
+	 * @param string $type
417
+	 */
418
+	public static function trigger_hook_load( $type, $object = null ) {
419
+		// only load the form hooks once
420 420
 		$hooks_loaded = apply_filters( 'frm_' . $type . '_hooks_loaded', false, $object );
421
-        if ( ! $hooks_loaded ) {
421
+		if ( ! $hooks_loaded ) {
422 422
 			do_action( 'frm_load_' . $type . '_hooks' );
423
-        }
424
-    }
425
-
426
-    /**
427
-     * Check cache before fetching values and saving to cache
428
-     *
429
-     * @since 2.0
430
-     *
431
-     * @param string $cache_key The unique name for this cache
432
-     * @param string $group The name of the cache group
433
-     * @param string $query If blank, don't run a db call
434
-     * @param string $type The wpdb function to use with this query
435
-     * @return mixed $results The cache or query results
436
-     */
437
-    public static function check_cache( $cache_key, $group = '', $query = '', $type = 'get_var', $time = 300 ) {
438
-        $results = wp_cache_get($cache_key, $group);
439
-        if ( ! self::is_empty_value( $results, false ) || empty($query) ) {
440
-            return $results;
441
-        }
442
-
443
-        if ( 'get_posts' == $type ) {
444
-            $results = get_posts($query);
423
+		}
424
+	}
425
+
426
+	/**
427
+	 * Check cache before fetching values and saving to cache
428
+	 *
429
+	 * @since 2.0
430
+	 *
431
+	 * @param string $cache_key The unique name for this cache
432
+	 * @param string $group The name of the cache group
433
+	 * @param string $query If blank, don't run a db call
434
+	 * @param string $type The wpdb function to use with this query
435
+	 * @return mixed $results The cache or query results
436
+	 */
437
+	public static function check_cache( $cache_key, $group = '', $query = '', $type = 'get_var', $time = 300 ) {
438
+		$results = wp_cache_get($cache_key, $group);
439
+		if ( ! self::is_empty_value( $results, false ) || empty($query) ) {
440
+			return $results;
441
+		}
442
+
443
+		if ( 'get_posts' == $type ) {
444
+			$results = get_posts($query);
445 445
 		} else if ( 'get_associative_results' == $type ) {
446 446
 			global $wpdb;
447 447
 			$results = $wpdb->get_results( $query, OBJECT_K );
448
-        } else {
449
-            global $wpdb;
450
-            $results = $wpdb->{$type}($query);
451
-        }
448
+		} else {
449
+			global $wpdb;
450
+			$results = $wpdb->{$type}($query);
451
+		}
452 452
 
453 453
 		self::set_cache( $cache_key, $results, $group, $time );
454 454
 
@@ -481,44 +481,44 @@  discard block
 block discarded – undo
481 481
 		return $cached;
482 482
 	}
483 483
 
484
-    /**
485
-     * Data that should be stored for a long time can be stored in a transient.
486
-     * First check the cache, then check the transient
487
-     * @since 2.0
488
-     * @return mixed The cached value or false
489
-     */
484
+	/**
485
+	 * Data that should be stored for a long time can be stored in a transient.
486
+	 * First check the cache, then check the transient
487
+	 * @since 2.0
488
+	 * @return mixed The cached value or false
489
+	 */
490 490
 	public static function check_cache_and_transient( $cache_key ) {
491
-        // check caching layer first
492
-        $results = self::check_cache( $cache_key );
493
-        if ( $results ) {
494
-            return $results;
495
-        }
496
-
497
-        // then check the transient
498
-        $results = get_transient($cache_key);
499
-        if ( $results ) {
500
-            wp_cache_set($cache_key, $results);
501
-        }
502
-
503
-        return $results;
504
-    }
505
-
506
-    /**
507
-     * @since 2.0
508
-     * @param string $cache_key
509
-     */
491
+		// check caching layer first
492
+		$results = self::check_cache( $cache_key );
493
+		if ( $results ) {
494
+			return $results;
495
+		}
496
+
497
+		// then check the transient
498
+		$results = get_transient($cache_key);
499
+		if ( $results ) {
500
+			wp_cache_set($cache_key, $results);
501
+		}
502
+
503
+		return $results;
504
+	}
505
+
506
+	/**
507
+	 * @since 2.0
508
+	 * @param string $cache_key
509
+	 */
510 510
 	public static function delete_cache_and_transient( $cache_key, $group = 'default' ) {
511 511
 		delete_transient($cache_key);
512 512
 		wp_cache_delete( $cache_key, $group );
513 513
 	}
514 514
 
515
-    /**
516
-     * Delete all caching in a single group
517
-     *
518
-     * @since 2.0
519
-     *
520
-     * @param string $group The name of the cache group
521
-     */
515
+	/**
516
+	 * Delete all caching in a single group
517
+	 *
518
+	 * @since 2.0
519
+	 *
520
+	 * @param string $group The name of the cache group
521
+	 */
522 522
 	public static function cache_delete_group( $group ) {
523 523
 		$cached_keys = self::get_group_cached_keys( $group );
524 524
 
@@ -531,34 +531,34 @@  discard block
 block discarded – undo
531 531
 		}
532 532
 	}
533 533
 
534
-    /**
535
-     * Check a value from a shortcode to see if true or false.
536
-     * True when value is 1, true, 'true', 'yes'
537
-     *
538
-     * @since 1.07.10
539
-     *
540
-     * @param string $value The value to compare
541
-     * @return boolean True or False
542
-     */
534
+	/**
535
+	 * Check a value from a shortcode to see if true or false.
536
+	 * True when value is 1, true, 'true', 'yes'
537
+	 *
538
+	 * @since 1.07.10
539
+	 *
540
+	 * @param string $value The value to compare
541
+	 * @return boolean True or False
542
+	 */
543 543
 	public static function is_true( $value ) {
544
-        return ( true === $value || 1 == $value || 'true' == $value || 'yes' == $value );
545
-    }
544
+		return ( true === $value || 1 == $value || 'true' == $value || 'yes' == $value );
545
+	}
546 546
 
547
-    /**
548
-     * Used to filter shortcode in text widgets
549
-     */
550
-    public static function widget_text_filter_callback( $matches ) {
551
-        return do_shortcode( $matches[0] );
552
-    }
547
+	/**
548
+	 * Used to filter shortcode in text widgets
549
+	 */
550
+	public static function widget_text_filter_callback( $matches ) {
551
+		return do_shortcode( $matches[0] );
552
+	}
553 553
 
554
-    public static function get_pages() {
554
+	public static function get_pages() {
555 555
 		return get_posts( array( 'post_type' => 'page', 'post_status' => array( 'publish', 'private' ), 'numberposts' => -1, 'orderby' => 'title', 'order' => 'ASC' ) );
556
-    }
556
+	}
557 557
 
558
-    public static function wp_pages_dropdown( $field_name, $page_id, $truncate = false ) {
559
-        $pages = self::get_pages();
558
+	public static function wp_pages_dropdown( $field_name, $page_id, $truncate = false ) {
559
+		$pages = self::get_pages();
560 560
 		$selected = self::get_post_param( $field_name, $page_id, 'absint' );
561
-    ?>
561
+	?>
562 562
         <select name="<?php echo esc_attr($field_name); ?>" id="<?php echo esc_attr($field_name); ?>" class="frm-pages-dropdown">
563 563
             <option value=""> </option>
564 564
             <?php foreach ( $pages as $page ) { ?>
@@ -568,108 +568,108 @@  discard block
 block discarded – undo
568 568
             <?php } ?>
569 569
         </select>
570 570
     <?php
571
-    }
571
+	}
572 572
 
573 573
 	public static function post_edit_link( $post_id ) {
574
-        $post = get_post($post_id);
575
-        if ( $post ) {
574
+		$post = get_post($post_id);
575
+		if ( $post ) {
576 576
 			$post_url = admin_url( 'post.php?post=' . $post_id . '&action=edit' );
577 577
 			return '<a href="' . esc_url( $post_url ) . '">' . self::truncate( $post->post_title, 50 ) . '</a>';
578
-        }
579
-        return '';
580
-    }
578
+		}
579
+		return '';
580
+	}
581 581
 
582 582
 	public static function wp_roles_dropdown( $field_name, $capability, $multiple = 'single' ) {
583
-    ?>
583
+	?>
584 584
         <select name="<?php echo esc_attr($field_name); ?>" id="<?php echo esc_attr($field_name); ?>" <?php
585
-            echo ( 'multiple' == $multiple ) ? 'multiple="multiple"' : '';
586
-            ?> class="frm_multiselect">
585
+			echo ( 'multiple' == $multiple ) ? 'multiple="multiple"' : '';
586
+			?> class="frm_multiselect">
587 587
             <?php self::roles_options($capability); ?>
588 588
         </select>
589 589
     <?php
590
-    }
590
+	}
591 591
 
592 592
 	public static function roles_options( $capability ) {
593
-        global $frm_vars;
594
-        if ( isset($frm_vars['editable_roles']) ) {
595
-            $editable_roles = $frm_vars['editable_roles'];
596
-        } else {
597
-            $editable_roles = get_editable_roles();
598
-            $frm_vars['editable_roles'] = $editable_roles;
599
-        }
600
-
601
-        foreach ( $editable_roles as $role => $details ) {
602
-            $name = translate_user_role($details['name'] ); ?>
593
+		global $frm_vars;
594
+		if ( isset($frm_vars['editable_roles']) ) {
595
+			$editable_roles = $frm_vars['editable_roles'];
596
+		} else {
597
+			$editable_roles = get_editable_roles();
598
+			$frm_vars['editable_roles'] = $editable_roles;
599
+		}
600
+
601
+		foreach ( $editable_roles as $role => $details ) {
602
+			$name = translate_user_role($details['name'] ); ?>
603 603
         <option value="<?php echo esc_attr($role) ?>" <?php echo in_array($role, (array) $capability) ? ' selected="selected"' : ''; ?>><?php echo esc_attr($name) ?> </option>
604 604
 <?php
605
-            unset($role, $details);
606
-        }
607
-    }
605
+			unset($role, $details);
606
+		}
607
+	}
608 608
 
609 609
 	public static function frm_capabilities( $type = 'auto' ) {
610
-        $cap = array(
611
-            'frm_view_forms'        => __( 'View Forms and Templates', 'formidable' ),
612
-            'frm_edit_forms'        => __( 'Add/Edit Forms and Templates', 'formidable' ),
613
-            'frm_delete_forms'      => __( 'Delete Forms and Templates', 'formidable' ),
614
-            'frm_change_settings'   => __( 'Access this Settings Page', 'formidable' ),
615
-            'frm_view_entries'      => __( 'View Entries from Admin Area', 'formidable' ),
616
-            'frm_delete_entries'    => __( 'Delete Entries from Admin Area', 'formidable' ),
617
-        );
610
+		$cap = array(
611
+			'frm_view_forms'        => __( 'View Forms and Templates', 'formidable' ),
612
+			'frm_edit_forms'        => __( 'Add/Edit Forms and Templates', 'formidable' ),
613
+			'frm_delete_forms'      => __( 'Delete Forms and Templates', 'formidable' ),
614
+			'frm_change_settings'   => __( 'Access this Settings Page', 'formidable' ),
615
+			'frm_view_entries'      => __( 'View Entries from Admin Area', 'formidable' ),
616
+			'frm_delete_entries'    => __( 'Delete Entries from Admin Area', 'formidable' ),
617
+		);
618 618
 
619 619
 		if ( ! self::pro_is_installed() && 'pro' != $type ) {
620
-            return $cap;
621
-        }
620
+			return $cap;
621
+		}
622 622
 
623
-        $cap['frm_create_entries'] = __( 'Add Entries from Admin Area', 'formidable' );
624
-        $cap['frm_edit_entries'] = __( 'Edit Entries from Admin Area', 'formidable' );
625
-        $cap['frm_view_reports'] = __( 'View Reports', 'formidable' );
626
-        $cap['frm_edit_displays'] = __( 'Add/Edit Views', 'formidable' );
623
+		$cap['frm_create_entries'] = __( 'Add Entries from Admin Area', 'formidable' );
624
+		$cap['frm_edit_entries'] = __( 'Edit Entries from Admin Area', 'formidable' );
625
+		$cap['frm_view_reports'] = __( 'View Reports', 'formidable' );
626
+		$cap['frm_edit_displays'] = __( 'Add/Edit Views', 'formidable' );
627 627
 
628
-        return $cap;
629
-    }
628
+		return $cap;
629
+	}
630 630
 
631 631
 	public static function user_has_permission( $needed_role ) {
632
-        if ( $needed_role == '-1' ) {
633
-            return false;
632
+		if ( $needed_role == '-1' ) {
633
+			return false;
634 634
 		}
635 635
 
636
-        // $needed_role will be equal to blank if "Logged-in users" is selected
637
-        if ( ( $needed_role == '' && is_user_logged_in() ) || current_user_can( $needed_role ) ) {
638
-            return true;
639
-        }
636
+		// $needed_role will be equal to blank if "Logged-in users" is selected
637
+		if ( ( $needed_role == '' && is_user_logged_in() ) || current_user_can( $needed_role ) ) {
638
+			return true;
639
+		}
640 640
 
641
-        $roles = array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' );
642
-        foreach ( $roles as $role ) {
641
+		$roles = array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' );
642
+		foreach ( $roles as $role ) {
643 643
 			if ( current_user_can( $role ) ) {
644
-        		return true;
644
+				return true;
645 645
 			}
646
-        	if ( $role == $needed_role ) {
647
-        		break;
646
+			if ( $role == $needed_role ) {
647
+				break;
648 648
 			}
649
-        }
650
-        return false;
651
-    }
652
-
653
-    /**
654
-     * Make sure administrators can see Formidable menu
655
-     *
656
-     * @since 2.0
657
-     */
658
-    public static function maybe_add_permissions() {
649
+		}
650
+		return false;
651
+	}
652
+
653
+	/**
654
+	 * Make sure administrators can see Formidable menu
655
+	 *
656
+	 * @since 2.0
657
+	 */
658
+	public static function maybe_add_permissions() {
659 659
 		self::force_capability( 'frm_view_entries' );
660 660
 
661
-        if ( ! current_user_can('administrator') || current_user_can('frm_view_forms') ) {
662
-            return;
663
-        }
661
+		if ( ! current_user_can('administrator') || current_user_can('frm_view_forms') ) {
662
+			return;
663
+		}
664 664
 
665 665
 		$user_id = get_current_user_id();
666 666
 		$user = new WP_User( $user_id );
667
-        $frm_roles = self::frm_capabilities();
668
-        foreach ( $frm_roles as $frm_role => $frm_role_description ) {
667
+		$frm_roles = self::frm_capabilities();
668
+		foreach ( $frm_roles as $frm_role => $frm_role_description ) {
669 669
 			$user->add_cap( $frm_role );
670
-            unset($frm_role, $frm_role_description);
671
-        }
672
-    }
670
+			unset($frm_role, $frm_role_description);
671
+		}
672
+	}
673 673
 
674 674
 	/**
675 675
 	 * Make sure admins have permission to see the menu items
@@ -685,28 +685,28 @@  discard block
 block discarded – undo
685 685
 		}
686 686
 	}
687 687
 
688
-    /**
689
-     * Check if the user has permision for action.
690
-     * Return permission message and stop the action if no permission
691
-     * @since 2.0
692
-     * @param string $permission
693
-     */
688
+	/**
689
+	 * Check if the user has permision for action.
690
+	 * Return permission message and stop the action if no permission
691
+	 * @since 2.0
692
+	 * @param string $permission
693
+	 */
694 694
 	public static function permission_check( $permission, $show_message = 'show' ) {
695
-        $permission_error = self::permission_nonce_error($permission);
696
-        if ( $permission_error !== false ) {
697
-            if ( 'hide' == $show_message ) {
698
-                $permission_error = '';
699
-            }
700
-            wp_die($permission_error);
701
-        }
702
-    }
703
-
704
-    /**
705
-     * Check user permission and nonce
706
-     * @since 2.0
707
-     * @param string $permission
708
-     * @return false|string The permission message or false if allowed
709
-     */
695
+		$permission_error = self::permission_nonce_error($permission);
696
+		if ( $permission_error !== false ) {
697
+			if ( 'hide' == $show_message ) {
698
+				$permission_error = '';
699
+			}
700
+			wp_die($permission_error);
701
+		}
702
+	}
703
+
704
+	/**
705
+	 * Check user permission and nonce
706
+	 * @since 2.0
707
+	 * @param string $permission
708
+	 * @return false|string The permission message or false if allowed
709
+	 */
710 710
 	public static function permission_nonce_error( $permission, $nonce_name = '', $nonce = '' ) {
711 711
 		if ( ! empty( $permission ) && ! current_user_can( $permission ) && ! current_user_can( 'administrator' ) ) {
712 712
 			$frm_settings = self::get_settings();
@@ -714,23 +714,23 @@  discard block
 block discarded – undo
714 714
 		}
715 715
 
716 716
 		$error = false;
717
-        if ( empty($nonce_name) ) {
718
-            return $error;
719
-        }
717
+		if ( empty($nonce_name) ) {
718
+			return $error;
719
+		}
720 720
 
721
-        if ( $_REQUEST && ( ! isset( $_REQUEST[ $nonce_name ] ) || ! wp_verify_nonce( $_REQUEST[ $nonce_name ], $nonce ) ) ) {
722
-            $frm_settings = self::get_settings();
723
-            $error = $frm_settings->admin_permission;
724
-        }
721
+		if ( $_REQUEST && ( ! isset( $_REQUEST[ $nonce_name ] ) || ! wp_verify_nonce( $_REQUEST[ $nonce_name ], $nonce ) ) ) {
722
+			$frm_settings = self::get_settings();
723
+			$error = $frm_settings->admin_permission;
724
+		}
725 725
 
726
-        return $error;
727
-    }
726
+		return $error;
727
+	}
728 728
 
729
-    public static function checked( $values, $current ) {
729
+	public static function checked( $values, $current ) {
730 730
 		if ( self::check_selected( $values, $current ) ) {
731
-            echo ' checked="checked"';
731
+			echo ' checked="checked"';
732 732
 		}
733
-    }
733
+	}
734 734
 
735 735
 	public static function check_selected( $values, $current ) {
736 736
 		$values = self::recursive_function_map( $values, 'trim' );
@@ -740,50 +740,50 @@  discard block
 block discarded – undo
740 740
 		return ( is_array( $values ) && in_array( $current, $values ) ) || ( ! is_array( $values ) && $values == $current );
741 741
 	}
742 742
 
743
-    /**
744
-    * Check if current field option is an "other" option
745
-    *
746
-    * @since 2.0
747
-    *
748
-    * @param string $opt_key
749
-    * @return boolean Returns true if current field option is an "Other" option
750
-    */
751
-    public static function is_other_opt( $opt_key ) {
752
-        _deprecated_function( __FUNCTION__, '2.0.6', 'FrmFieldsHelper::is_other_opt' );
753
-        return FrmFieldsHelper::is_other_opt( $opt_key );
754
-    }
755
-
756
-    /**
757
-    * Get value that belongs in "Other" text box
758
-    *
759
-    * @since 2.0
760
-    *
761
-    * @param string $opt_key
762
-    * @param array $field
763
-    * @return string $other_val
764
-    */
765
-    public static function get_other_val( $opt_key, $field, $parent = false, $pointer = false ) {
743
+	/**
744
+	 * Check if current field option is an "other" option
745
+	 *
746
+	 * @since 2.0
747
+	 *
748
+	 * @param string $opt_key
749
+	 * @return boolean Returns true if current field option is an "Other" option
750
+	 */
751
+	public static function is_other_opt( $opt_key ) {
752
+		_deprecated_function( __FUNCTION__, '2.0.6', 'FrmFieldsHelper::is_other_opt' );
753
+		return FrmFieldsHelper::is_other_opt( $opt_key );
754
+	}
755
+
756
+	/**
757
+	 * Get value that belongs in "Other" text box
758
+	 *
759
+	 * @since 2.0
760
+	 *
761
+	 * @param string $opt_key
762
+	 * @param array $field
763
+	 * @return string $other_val
764
+	 */
765
+	public static function get_other_val( $opt_key, $field, $parent = false, $pointer = false ) {
766 766
 		_deprecated_function( __FUNCTION__, '2.0.6', 'FrmFieldsHelper::get_other_val' );
767 767
 		return FrmFieldsHelper::get_other_val( compact( 'opt_key', 'field', 'parent', 'pointer' ) );
768
-    }
769
-
770
-    /**
771
-    * Check if there is a saved value for the "Other" text field. If so, set it as the $other_val.
772
-    * Intended for front-end use
773
-    *
774
-    * @since 2.0
775
-    *
776
-    * @param array $field
777
-    * @param boolean $other_opt
778
-    * @param string $checked
779
-    * @param array $args should include opt_key and field name
780
-    * @return string $other_val
781
-    */
782
-    public static function prepare_other_input( $field, &$other_opt, &$checked, $args = array() ) {
768
+	}
769
+
770
+	/**
771
+	 * Check if there is a saved value for the "Other" text field. If so, set it as the $other_val.
772
+	 * Intended for front-end use
773
+	 *
774
+	 * @since 2.0
775
+	 *
776
+	 * @param array $field
777
+	 * @param boolean $other_opt
778
+	 * @param string $checked
779
+	 * @param array $args should include opt_key and field name
780
+	 * @return string $other_val
781
+	 */
782
+	public static function prepare_other_input( $field, &$other_opt, &$checked, $args = array() ) {
783 783
 		_deprecated_function( __FUNCTION__, '2.0.6', 'FrmFieldsHelper::prepare_other_input' );
784 784
 		$args['field'] = $field;
785 785
 		return FrmFieldsHelper::prepare_other_input( $args, $other_opt, $checked );
786
-    }
786
+	}
787 787
 
788 788
 	public static function recursive_function_map( $value, $function ) {
789 789
 		if ( is_array( $value ) ) {
@@ -813,24 +813,24 @@  discard block
 block discarded – undo
813 813
 		return (bool) count( array_filter( array_keys( $array ), 'is_string' ) );
814 814
 	}
815 815
 
816
-    /**
817
-     * Flatten a multi-dimensional array
818
-     */
816
+	/**
817
+	 * Flatten a multi-dimensional array
818
+	 */
819 819
 	public static function array_flatten( $array, $keys = 'keep' ) {
820
-        $return = array();
821
-        foreach ( $array as $key => $value ) {
822
-            if ( is_array($value) ) {
820
+		$return = array();
821
+		foreach ( $array as $key => $value ) {
822
+			if ( is_array($value) ) {
823 823
 				$return = array_merge( $return, self::array_flatten( $value, $keys ) );
824
-            } else {
824
+			} else {
825 825
 				if ( $keys == 'keep' ) {
826 826
 					$return[ $key ] = $value;
827 827
 				} else {
828 828
 					$return[] = $value;
829 829
 				}
830
-            }
831
-        }
832
-        return $return;
833
-    }
830
+			}
831
+		}
832
+		return $return;
833
+	}
834 834
 
835 835
 	public static function esc_textarea( $text, $is_rich_text = false ) {
836 836
 		$safe_text = str_replace( '&quot;', '"', $text );
@@ -841,38 +841,38 @@  discard block
 block discarded – undo
841 841
 		return apply_filters( 'esc_textarea', $safe_text, $text );
842 842
 	}
843 843
 
844
-    /**
845
-     * Add auto paragraphs to text areas
846
-     * @since 2.0
847
-     */
844
+	/**
845
+	 * Add auto paragraphs to text areas
846
+	 * @since 2.0
847
+	 */
848 848
 	public static function use_wpautop( $content ) {
849
-        if ( apply_filters('frm_use_wpautop', true) ) {
850
-            $content = wpautop(str_replace( '<br>', '<br />', $content));
851
-        }
852
-        return $content;
853
-    }
849
+		if ( apply_filters('frm_use_wpautop', true) ) {
850
+			$content = wpautop(str_replace( '<br>', '<br />', $content));
851
+		}
852
+		return $content;
853
+	}
854 854
 
855 855
 	public static function replace_quotes( $val ) {
856
-        //Replace double quotes
856
+		//Replace double quotes
857 857
 		$val = str_replace( array( '&#8220;', '&#8221;', '&#8243;' ), '"', $val );
858
-        //Replace single quotes
859
-        $val = str_replace( array( '&#8216;', '&#8217;', '&#8242;', '&prime;', '&rsquo;', '&lsquo;' ), "'", $val );
860
-        return $val;
861
-    }
862
-
863
-    /**
864
-     * @since 2.0
865
-     * @return string The base Google APIS url for the current version of jQuery UI
866
-     */
867
-    public static function jquery_ui_base_url() {
858
+		//Replace single quotes
859
+		$val = str_replace( array( '&#8216;', '&#8217;', '&#8242;', '&prime;', '&rsquo;', '&lsquo;' ), "'", $val );
860
+		return $val;
861
+	}
862
+
863
+	/**
864
+	 * @since 2.0
865
+	 * @return string The base Google APIS url for the current version of jQuery UI
866
+	 */
867
+	public static function jquery_ui_base_url() {
868 868
 		$url = 'http' . ( is_ssl() ? 's' : '' ) . '://ajax.googleapis.com/ajax/libs/jqueryui/' . self::script_version( 'jquery-ui-core', '1.11.4' );
869
-        $url = apply_filters('frm_jquery_ui_base_url', $url);
870
-        return $url;
871
-    }
869
+		$url = apply_filters('frm_jquery_ui_base_url', $url);
870
+		return $url;
871
+	}
872 872
 
873
-    /**
874
-     * @param string $handle
875
-     */
873
+	/**
874
+	 * @param string $handle
875
+	 */
876 876
 	public static function script_version( $handle, $default = 0 ) {
877 877
 		global $wp_scripts;
878 878
 		if ( ! $wp_scripts ) {
@@ -894,241 +894,241 @@  discard block
 block discarded – undo
894 894
 
895 895
 	public static function js_redirect( $url ) {
896 896
 		return '<script type="text/javascript">window.location="' . esc_url_raw( $url ) . '"</script>';
897
-    }
897
+	}
898 898
 
899 899
 	public static function get_user_id_param( $user_id ) {
900
-        if ( ! $user_id || empty($user_id) || is_numeric($user_id) ) {
901
-            return $user_id;
902
-        }
900
+		if ( ! $user_id || empty($user_id) || is_numeric($user_id) ) {
901
+			return $user_id;
902
+		}
903 903
 
904 904
 		if ( $user_id == 'current' ) {
905 905
 			$user_id = get_current_user_id();
906 906
 		} else {
907
-            if ( is_email($user_id) ) {
908
-                $user = get_user_by('email', $user_id);
909
-            } else {
910
-                $user = get_user_by('login', $user_id);
911
-            }
907
+			if ( is_email($user_id) ) {
908
+				$user = get_user_by('email', $user_id);
909
+			} else {
910
+				$user = get_user_by('login', $user_id);
911
+			}
912 912
 
913
-            if ( $user ) {
914
-                $user_id = $user->ID;
915
-            }
916
-            unset($user);
917
-        }
913
+			if ( $user ) {
914
+				$user_id = $user->ID;
915
+			}
916
+			unset($user);
917
+		}
918 918
 
919
-        return $user_id;
920
-    }
919
+		return $user_id;
920
+	}
921 921
 
922 922
 	public static function get_file_contents( $filename, $atts = array() ) {
923
-        if ( ! is_file($filename) ) {
924
-            return false;
925
-        }
926
-
927
-        extract($atts);
928
-        ob_start();
929
-        include($filename);
930
-        $contents = ob_get_contents();
931
-        ob_end_clean();
932
-        return $contents;
933
-    }
934
-
935
-    /**
936
-     * @param string $table_name
937
-     * @param string $column
923
+		if ( ! is_file($filename) ) {
924
+			return false;
925
+		}
926
+
927
+		extract($atts);
928
+		ob_start();
929
+		include($filename);
930
+		$contents = ob_get_contents();
931
+		ob_end_clean();
932
+		return $contents;
933
+	}
934
+
935
+	/**
936
+	 * @param string $table_name
937
+	 * @param string $column
938 938
 	 * @param int $id
939 939
 	 * @param int $num_chars
940
-     */
941
-    public static function get_unique_key( $name = '', $table_name, $column, $id = 0, $num_chars = 5 ) {
942
-        $key = '';
940
+	 */
941
+	public static function get_unique_key( $name = '', $table_name, $column, $id = 0, $num_chars = 5 ) {
942
+		$key = '';
943 943
 
944
-        if ( ! empty( $name ) ) {
945
-            $key = sanitize_key($name);
946
-        }
944
+		if ( ! empty( $name ) ) {
945
+			$key = sanitize_key($name);
946
+		}
947 947
 
948 948
 		if ( empty( $key ) ) {
949
-            $max_slug_value = pow(36, $num_chars);
950
-            $min_slug_value = 37; // we want to have at least 2 characters in the slug
951
-            $key = base_convert( rand($min_slug_value, $max_slug_value), 10, 36 );
952
-        }
949
+			$max_slug_value = pow(36, $num_chars);
950
+			$min_slug_value = 37; // we want to have at least 2 characters in the slug
951
+			$key = base_convert( rand($min_slug_value, $max_slug_value), 10, 36 );
952
+		}
953 953
 
954 954
 		if ( is_numeric($key) || in_array( $key, array( 'id', 'key', 'created-at', 'detaillink', 'editlink', 'siteurl', 'evenodd' ) ) ) {
955 955
 			$key = $key . 'a';
956
-        }
956
+		}
957 957
 
958 958
 		$key_check = FrmDb::get_var( $table_name, array( $column => $key, 'ID !' => $id ), $column );
959 959
 
960
-        if ( $key_check || is_numeric($key_check) ) {
961
-            $suffix = 2;
960
+		if ( $key_check || is_numeric($key_check) ) {
961
+			$suffix = 2;
962 962
 			do {
963 963
 				$alt_post_name = substr( $key, 0, 200 - ( strlen( $suffix ) + 1 ) ) . $suffix;
964 964
 				$key_check = FrmDb::get_var( $table_name, array( $column => $alt_post_name, 'ID !' => $id ), $column );
965 965
 				$suffix++;
966 966
 			} while ( $key_check || is_numeric( $key_check ) );
967 967
 			$key = $alt_post_name;
968
-        }
969
-        return $key;
970
-    }
971
-
972
-    /**
973
-     * Editing a Form or Entry
974
-     * @param string $table
975
-     * @return bool|array
976
-     */
977
-    public static function setup_edit_vars( $record, $table, $fields = '', $default = false, $post_values = array(), $args = array() ) {
978
-        if ( ! $record ) {
979
-            return false;
980
-        }
981
-
982
-        if ( empty($post_values) ) {
983
-            $post_values = stripslashes_deep($_POST);
984
-        }
968
+		}
969
+		return $key;
970
+	}
971
+
972
+	/**
973
+	 * Editing a Form or Entry
974
+	 * @param string $table
975
+	 * @return bool|array
976
+	 */
977
+	public static function setup_edit_vars( $record, $table, $fields = '', $default = false, $post_values = array(), $args = array() ) {
978
+		if ( ! $record ) {
979
+			return false;
980
+		}
981
+
982
+		if ( empty($post_values) ) {
983
+			$post_values = stripslashes_deep($_POST);
984
+		}
985 985
 
986 986
 		$values = array( 'id' => $record->id, 'fields' => array() );
987 987
 
988 988
 		foreach ( array( 'name', 'description' ) as $var ) {
989
-            $default_val = isset($record->{$var}) ? $record->{$var} : '';
989
+			$default_val = isset($record->{$var}) ? $record->{$var} : '';
990 990
 			$values[ $var ] = self::get_param( $var, $default_val, 'get', 'wp_kses_post' );
991
-            unset($var, $default_val);
992
-        }
993
-
994
-        $values['description'] = self::use_wpautop($values['description']);
995
-        $frm_settings = self::get_settings();
996
-        $is_form_builder = self::is_admin_page('formidable' );
997
-
998
-        foreach ( (array) $fields as $field ) {
999
-            // Make sure to filter default values (for placeholder text), but not on the form builder page
1000
-            if ( ! $is_form_builder ) {
1001
-                $field->default_value = apply_filters('frm_get_default_value', $field->default_value, $field, true );
1002
-            }
991
+			unset($var, $default_val);
992
+		}
993
+
994
+		$values['description'] = self::use_wpautop($values['description']);
995
+		$frm_settings = self::get_settings();
996
+		$is_form_builder = self::is_admin_page('formidable' );
997
+
998
+		foreach ( (array) $fields as $field ) {
999
+			// Make sure to filter default values (for placeholder text), but not on the form builder page
1000
+			if ( ! $is_form_builder ) {
1001
+				$field->default_value = apply_filters('frm_get_default_value', $field->default_value, $field, true );
1002
+			}
1003 1003
 			$parent_form_id = isset( $args['parent_form_id'] ) ? $args['parent_form_id'] : $field->form_id;
1004 1004
 			self::fill_field_defaults($field, $record, $values, compact('default', 'post_values', 'frm_settings', 'parent_form_id' ) );
1005
-        }
1005
+		}
1006 1006
 
1007
-        self::fill_form_opts($record, $table, $post_values, $values);
1007
+		self::fill_form_opts($record, $table, $post_values, $values);
1008 1008
 
1009
-        if ( $table == 'entries' ) {
1010
-            $values = FrmEntriesHelper::setup_edit_vars( $values, $record );
1011
-        } else if ( $table == 'forms' ) {
1012
-            $values = FrmFormsHelper::setup_edit_vars( $values, $record, $post_values );
1013
-        }
1009
+		if ( $table == 'entries' ) {
1010
+			$values = FrmEntriesHelper::setup_edit_vars( $values, $record );
1011
+		} else if ( $table == 'forms' ) {
1012
+			$values = FrmFormsHelper::setup_edit_vars( $values, $record, $post_values );
1013
+		}
1014 1014
 
1015
-        return $values;
1016
-    }
1015
+		return $values;
1016
+	}
1017 1017
 
1018 1018
 	private static function fill_field_defaults( $field, $record, array &$values, $args ) {
1019
-        $post_values = $args['post_values'];
1020
-
1021
-        if ( $args['default'] ) {
1022
-            $meta_value = $field->default_value;
1023
-        } else {
1024
-            if ( $record->post_id && self::pro_is_installed() && isset($field->field_options['post_field']) && $field->field_options['post_field'] ) {
1025
-                if ( ! isset($field->field_options['custom_field']) ) {
1026
-                    $field->field_options['custom_field'] = '';
1027
-                }
1019
+		$post_values = $args['post_values'];
1020
+
1021
+		if ( $args['default'] ) {
1022
+			$meta_value = $field->default_value;
1023
+		} else {
1024
+			if ( $record->post_id && self::pro_is_installed() && isset($field->field_options['post_field']) && $field->field_options['post_field'] ) {
1025
+				if ( ! isset($field->field_options['custom_field']) ) {
1026
+					$field->field_options['custom_field'] = '';
1027
+				}
1028 1028
 				$meta_value = FrmProEntryMetaHelper::get_post_value( $record->post_id, $field->field_options['post_field'], $field->field_options['custom_field'], array( 'truncate' => false, 'type' => $field->type, 'form_id' => $field->form_id, 'field' => $field ) );
1029
-            } else {
1029
+			} else {
1030 1030
 				$meta_value = FrmEntryMeta::get_meta_value( $record, $field->id );
1031
-            }
1032
-        }
1031
+			}
1032
+		}
1033 1033
 
1034 1034
 		$field_type = isset( $post_values['field_options'][ 'type_' . $field->id ] ) ? $post_values['field_options'][ 'type_' . $field->id ] : $field->type;
1035
-        $new_value = isset( $post_values['item_meta'][ $field->id ] ) ? maybe_unserialize( $post_values['item_meta'][ $field->id ] ) : $meta_value;
1036
-
1037
-        $field_array = array(
1038
-            'id'            => $field->id,
1039
-            'value'         => $new_value,
1040
-            'default_value' => $field->default_value,
1041
-            'name'          => $field->name,
1042
-            'description'   => $field->description,
1043
-            'type'          => apply_filters('frm_field_type', $field_type, $field, $new_value),
1044
-            'options'       => $field->options,
1045
-            'required'      => $field->required,
1046
-            'field_key'     => $field->field_key,
1047
-            'field_order'   => $field->field_order,
1048
-            'form_id'       => $field->form_id,
1035
+		$new_value = isset( $post_values['item_meta'][ $field->id ] ) ? maybe_unserialize( $post_values['item_meta'][ $field->id ] ) : $meta_value;
1036
+
1037
+		$field_array = array(
1038
+			'id'            => $field->id,
1039
+			'value'         => $new_value,
1040
+			'default_value' => $field->default_value,
1041
+			'name'          => $field->name,
1042
+			'description'   => $field->description,
1043
+			'type'          => apply_filters('frm_field_type', $field_type, $field, $new_value),
1044
+			'options'       => $field->options,
1045
+			'required'      => $field->required,
1046
+			'field_key'     => $field->field_key,
1047
+			'field_order'   => $field->field_order,
1048
+			'form_id'       => $field->form_id,
1049 1049
 			'parent_form_id' => $args['parent_form_id'],
1050
-        );
1050
+		);
1051 1051
 
1052
-        $args['field_type'] = $field_type;
1053
-        self::fill_field_opts($field, $field_array, $args);
1052
+		$args['field_type'] = $field_type;
1053
+		self::fill_field_opts($field, $field_array, $args);
1054 1054
 		// Track the original field's type
1055 1055
 		$field_array['original_type'] = isset( $field->field_options['original_type'] ) ? $field->field_options['original_type'] : $field->type;
1056 1056
 
1057
-        $field_array = apply_filters( 'frm_setup_edit_fields_vars', $field_array, $field, $values['id'], array() );
1057
+		$field_array = apply_filters( 'frm_setup_edit_fields_vars', $field_array, $field, $values['id'], array() );
1058 1058
 
1059
-        if ( ! isset($field_array['unique']) || ! $field_array['unique'] ) {
1060
-            $field_array['unique_msg'] = '';
1061
-        }
1059
+		if ( ! isset($field_array['unique']) || ! $field_array['unique'] ) {
1060
+			$field_array['unique_msg'] = '';
1061
+		}
1062 1062
 
1063
-        $field_array = array_merge( $field->field_options, $field_array );
1063
+		$field_array = array_merge( $field->field_options, $field_array );
1064 1064
 
1065
-        $values['fields'][ $field->id ] = $field_array;
1066
-    }
1065
+		$values['fields'][ $field->id ] = $field_array;
1066
+	}
1067 1067
 
1068 1068
 	private static function fill_field_opts( $field, array &$field_array, $args ) {
1069
-        $post_values = $args['post_values'];
1070
-        $opt_defaults = FrmFieldsHelper::get_default_field_opts($field_array['type'], $field, true);
1069
+		$post_values = $args['post_values'];
1070
+		$opt_defaults = FrmFieldsHelper::get_default_field_opts($field_array['type'], $field, true);
1071 1071
 
1072
-        foreach ( $opt_defaults as $opt => $default_opt ) {
1072
+		foreach ( $opt_defaults as $opt => $default_opt ) {
1073 1073
 			$field_array[ $opt ] = ( $post_values && isset( $post_values['field_options'][ $opt . '_' . $field->id ] ) ) ? maybe_unserialize( $post_values['field_options'][ $opt . '_' . $field->id ] ) : ( isset( $field->field_options[ $opt ] ) ? $field->field_options[ $opt ] : $default_opt );
1074
-            if ( $opt == 'blank' && $field_array[ $opt ] == '' ) {
1075
-                $field_array[ $opt ] = $args['frm_settings']->blank_msg;
1076
-            } else if ( $opt == 'invalid' && $field_array[ $opt ] == '' ) {
1077
-                if ( $args['field_type'] == 'captcha' ) {
1078
-                    $field_array[ $opt ] = $args['frm_settings']->re_msg;
1079
-                } else {
1080
-                    $field_array[ $opt ] = sprintf( __( '%s is invalid', 'formidable' ), $field_array['name'] );
1081
-                }
1082
-            }
1083
-        }
1084
-
1085
-        if ( $field_array['custom_html'] == '' ) {
1086
-            $field_array['custom_html'] = FrmFieldsHelper::get_default_html($args['field_type']);
1087
-        }
1088
-    }
1089
-
1090
-    /**
1091
-     * @param string $table
1092
-     */
1074
+			if ( $opt == 'blank' && $field_array[ $opt ] == '' ) {
1075
+				$field_array[ $opt ] = $args['frm_settings']->blank_msg;
1076
+			} else if ( $opt == 'invalid' && $field_array[ $opt ] == '' ) {
1077
+				if ( $args['field_type'] == 'captcha' ) {
1078
+					$field_array[ $opt ] = $args['frm_settings']->re_msg;
1079
+				} else {
1080
+					$field_array[ $opt ] = sprintf( __( '%s is invalid', 'formidable' ), $field_array['name'] );
1081
+				}
1082
+			}
1083
+		}
1084
+
1085
+		if ( $field_array['custom_html'] == '' ) {
1086
+			$field_array['custom_html'] = FrmFieldsHelper::get_default_html($args['field_type']);
1087
+		}
1088
+	}
1089
+
1090
+	/**
1091
+	 * @param string $table
1092
+	 */
1093 1093
 	private static function fill_form_opts( $record, $table, $post_values, array &$values ) {
1094
-        if ( $table == 'entries' ) {
1095
-            $form = $record->form_id;
1094
+		if ( $table == 'entries' ) {
1095
+			$form = $record->form_id;
1096 1096
 			FrmForm::maybe_get_form( $form );
1097
-        } else {
1098
-            $form = $record;
1099
-        }
1097
+		} else {
1098
+			$form = $record;
1099
+		}
1100 1100
 
1101
-        if ( ! $form ) {
1102
-            return;
1103
-        }
1101
+		if ( ! $form ) {
1102
+			return;
1103
+		}
1104 1104
 
1105
-        $values['form_name'] = isset($record->form_id) ? $form->name : '';
1105
+		$values['form_name'] = isset($record->form_id) ? $form->name : '';
1106 1106
 		$values['parent_form_id'] = isset( $record->form_id ) ? $form->parent_form_id : 0;
1107 1107
 
1108
-        if ( ! is_array($form->options) ) {
1109
-            return;
1110
-        }
1108
+		if ( ! is_array($form->options) ) {
1109
+			return;
1110
+		}
1111 1111
 
1112
-        foreach ( $form->options as $opt => $value ) {
1113
-            $values[ $opt ] = isset( $post_values[ $opt ] ) ? maybe_unserialize( $post_values[ $opt ] ) : $value;
1114
-        }
1112
+		foreach ( $form->options as $opt => $value ) {
1113
+			$values[ $opt ] = isset( $post_values[ $opt ] ) ? maybe_unserialize( $post_values[ $opt ] ) : $value;
1114
+		}
1115 1115
 
1116
-        self::fill_form_defaults($post_values, $values);
1117
-    }
1116
+		self::fill_form_defaults($post_values, $values);
1117
+	}
1118 1118
 
1119
-    /**
1120
-     * Set to POST value or default
1121
-     */
1119
+	/**
1120
+	 * Set to POST value or default
1121
+	 */
1122 1122
 	private static function fill_form_defaults( $post_values, array &$values ) {
1123
-        $form_defaults = FrmFormsHelper::get_default_opts();
1123
+		$form_defaults = FrmFormsHelper::get_default_opts();
1124 1124
 
1125
-        foreach ( $form_defaults as $opt => $default ) {
1126
-            if ( ! isset( $values[ $opt ] ) || $values[ $opt ] == '' ) {
1125
+		foreach ( $form_defaults as $opt => $default ) {
1126
+			if ( ! isset( $values[ $opt ] ) || $values[ $opt ] == '' ) {
1127 1127
 				$values[ $opt ] = ( $post_values && isset( $post_values['options'][ $opt ] ) ) ? $post_values['options'][ $opt ] : $default;
1128
-            }
1128
+			}
1129 1129
 
1130
-            unset($opt, $defaut);
1131
-        }
1130
+			unset($opt, $defaut);
1131
+		}
1132 1132
 
1133 1133
 		if ( ! isset( $values['custom_style'] ) ) {
1134 1134
 			$values['custom_style'] = self::custom_style_value( $post_values );
@@ -1137,10 +1137,10 @@  discard block
 block discarded – undo
1137 1137
 		foreach ( array( 'before', 'after', 'submit' ) as $h ) {
1138 1138
 			if ( ! isset( $values[ $h . '_html' ] ) ) {
1139 1139
 				$values[ $h . '_html' ] = ( isset( $post_values['options'][ $h . '_html' ] ) ? $post_values['options'][ $h . '_html' ] : FrmFormsHelper::get_default_html( $h ) );
1140
-            }
1141
-            unset($h);
1142
-        }
1143
-    }
1140
+			}
1141
+			unset($h);
1142
+		}
1143
+	}
1144 1144
 
1145 1145
 	/**
1146 1146
 	 * @since 2.2.10
@@ -1163,59 +1163,59 @@  discard block
 block discarded – undo
1163 1163
 	}
1164 1164
 
1165 1165
 	public static function insert_opt_html( $args ) {
1166
-        $class = '';
1167
-        if ( in_array( $args['type'], array( 'email', 'user_id', 'hidden', 'select', 'radio', 'checkbox', 'phone', 'text' ) ) ) {
1168
-            $class .= 'show_frm_not_email_to';
1169
-        }
1170
-    ?>
1166
+		$class = '';
1167
+		if ( in_array( $args['type'], array( 'email', 'user_id', 'hidden', 'select', 'radio', 'checkbox', 'phone', 'text' ) ) ) {
1168
+			$class .= 'show_frm_not_email_to';
1169
+		}
1170
+	?>
1171 1171
 <li>
1172 1172
     <a href="javascript:void(0)" class="frmids frm_insert_code alignright <?php echo esc_attr($class) ?>" data-code="<?php echo esc_attr($args['id']) ?>" >[<?php echo esc_attr( $args['id'] ) ?>]</a>
1173 1173
     <a href="javascript:void(0)" class="frmkeys frm_insert_code alignright <?php echo esc_attr($class) ?>" data-code="<?php echo esc_attr($args['key']) ?>" >[<?php echo esc_attr( self::truncate($args['key'], 10) ) ?>]</a>
1174 1174
     <a href="javascript:void(0)" class="frm_insert_code <?php echo esc_attr( $class ) ?>" data-code="<?php echo esc_attr($args['id']) ?>" ><?php echo esc_attr( self::truncate($args['name'], 60) ) ?></a>
1175 1175
 </li>
1176 1176
     <?php
1177
-    }
1177
+	}
1178 1178
 
1179 1179
 	public static function truncate( $str, $length, $minword = 3, $continue = '...' ) {
1180
-        if ( is_array( $str ) ) {
1181
-            return '';
1180
+		if ( is_array( $str ) ) {
1181
+			return '';
1182 1182
 		}
1183 1183
 
1184
-        $length = (int) $length;
1184
+		$length = (int) $length;
1185 1185
 		$str = wp_strip_all_tags( $str );
1186 1186
 		$original_len = self::mb_function( array( 'mb_strlen', 'strlen' ), array( $str ) );
1187 1187
 
1188 1188
 		if ( $length == 0 ) {
1189
-            return '';
1190
-        } else if ( $length <= 10 ) {
1189
+			return '';
1190
+		} else if ( $length <= 10 ) {
1191 1191
 			$sub = self::mb_function( array( 'mb_substr', 'substr' ), array( $str, 0, $length ) );
1192
-            return $sub . (($length < $original_len) ? $continue : '');
1193
-        }
1192
+			return $sub . (($length < $original_len) ? $continue : '');
1193
+		}
1194 1194
 
1195
-        $sub = '';
1196
-        $len = 0;
1195
+		$sub = '';
1196
+		$len = 0;
1197 1197
 
1198 1198
 		$words = self::mb_function( array( 'mb_split', 'explode' ), array( ' ', $str ) );
1199 1199
 
1200 1200
 		foreach ( $words as $word ) {
1201
-            $part = (($sub != '') ? ' ' : '') . $word;
1201
+			$part = (($sub != '') ? ' ' : '') . $word;
1202 1202
 			$total_len = self::mb_function( array( 'mb_strlen', 'strlen' ), array( $sub . $part ) );
1203
-            if ( $total_len > $length && str_word_count($sub) ) {
1204
-                break;
1205
-            }
1203
+			if ( $total_len > $length && str_word_count($sub) ) {
1204
+				break;
1205
+			}
1206 1206
 
1207
-            $sub .= $part;
1207
+			$sub .= $part;
1208 1208
 			$len += self::mb_function( array( 'mb_strlen', 'strlen' ), array( $part ) );
1209 1209
 
1210
-            if ( str_word_count($sub) > $minword && $total_len >= $length ) {
1211
-                break;
1212
-            }
1210
+			if ( str_word_count($sub) > $minword && $total_len >= $length ) {
1211
+				break;
1212
+			}
1213 1213
 
1214
-            unset($total_len, $word);
1215
-        }
1214
+			unset($total_len, $word);
1215
+		}
1216 1216
 
1217
-        return $sub . (($len < $original_len) ? $continue : '');
1218
-    }
1217
+		return $sub . (($len < $original_len) ? $continue : '');
1218
+	}
1219 1219
 
1220 1220
 	public static function mb_function( $function_names, $args ) {
1221 1221
 		$mb_function_name = $function_names[0];
@@ -1227,18 +1227,18 @@  discard block
 block discarded – undo
1227 1227
 	}
1228 1228
 
1229 1229
 	public static function get_formatted_time( $date, $date_format = '', $time_format = '' ) {
1230
-        if ( empty($date) ) {
1231
-            return $date;
1232
-        }
1230
+		if ( empty($date) ) {
1231
+			return $date;
1232
+		}
1233 1233
 
1234
-        if ( empty($date_format) ) {
1235
-            $date_format = get_option('date_format');
1236
-        }
1234
+		if ( empty($date_format) ) {
1235
+			$date_format = get_option('date_format');
1236
+		}
1237 1237
 
1238
-        if ( preg_match('/^\d{1-2}\/\d{1-2}\/\d{4}$/', $date) && self::pro_is_installed() ) {
1239
-            $frmpro_settings = new FrmProSettings();
1240
-            $date = FrmProAppHelper::convert_date($date, $frmpro_settings->date_format, 'Y-m-d');
1241
-        }
1238
+		if ( preg_match('/^\d{1-2}\/\d{1-2}\/\d{4}$/', $date) && self::pro_is_installed() ) {
1239
+			$frmpro_settings = new FrmProSettings();
1240
+			$date = FrmProAppHelper::convert_date($date, $frmpro_settings->date_format, 'Y-m-d');
1241
+		}
1242 1242
 
1243 1243
 		$formatted = self::get_localized_date( $date_format, $date );
1244 1244
 
@@ -1247,8 +1247,8 @@  discard block
 block discarded – undo
1247 1247
 			$formatted .= self::add_time_to_date( $time_format, $date );
1248 1248
 		}
1249 1249
 
1250
-        return $formatted;
1251
-    }
1250
+		return $formatted;
1251
+	}
1252 1252
 
1253 1253
 	private static function add_time_to_date( $time_format, $date ) {
1254 1254
 		if ( empty( $time_format ) ) {
@@ -1330,61 +1330,61 @@  discard block
 block discarded – undo
1330 1330
 		);
1331 1331
 	}
1332 1332
 
1333
-    /**
1334
-     * Added for < WP 4.0 compatability
1335
-     *
1336
-     * @since 1.07.10
1337
-     *
1338
-     * @param string $term The value to escape
1339
-     * @return string The escaped value
1340
-     */
1333
+	/**
1334
+	 * Added for < WP 4.0 compatability
1335
+	 *
1336
+	 * @since 1.07.10
1337
+	 *
1338
+	 * @param string $term The value to escape
1339
+	 * @return string The escaped value
1340
+	 */
1341 1341
 	public static function esc_like( $term ) {
1342
-        global $wpdb;
1343
-        if ( method_exists($wpdb, 'esc_like') ) {
1342
+		global $wpdb;
1343
+		if ( method_exists($wpdb, 'esc_like') ) {
1344 1344
 			// WP 4.0
1345
-            $term = $wpdb->esc_like( $term );
1346
-        } else {
1347
-            $term = like_escape( $term );
1348
-        }
1345
+			$term = $wpdb->esc_like( $term );
1346
+		} else {
1347
+			$term = like_escape( $term );
1348
+		}
1349 1349
 
1350
-        return $term;
1351
-    }
1350
+		return $term;
1351
+	}
1352 1352
 
1353
-    /**
1354
-     * @param string $order_query
1355
-     */
1353
+	/**
1354
+	 * @param string $order_query
1355
+	 */
1356 1356
 	public static function esc_order( $order_query ) {
1357
-        if ( empty($order_query) ) {
1358
-            return '';
1359
-        }
1360
-
1361
-        // remove ORDER BY before santizing
1362
-        $order_query = strtolower($order_query);
1363
-        if ( strpos($order_query, 'order by') !== false ) {
1364
-            $order_query = str_replace('order by', '', $order_query);
1365
-        }
1366
-
1367
-        $order_query = explode(' ', trim($order_query));
1368
-
1369
-        $order_fields = array(
1370
-            'id', 'form_key', 'name', 'description',
1371
-            'parent_form_id', 'logged_in', 'is_template',
1372
-            'default_template', 'status', 'created_at',
1373
-        );
1374
-
1375
-        $order = trim(trim(reset($order_query), ','));
1376
-        if ( ! in_array($order, $order_fields) ) {
1377
-            return '';
1378
-        }
1379
-
1380
-        $order_by = '';
1381
-        if ( count($order_query) > 1 ) {
1357
+		if ( empty($order_query) ) {
1358
+			return '';
1359
+		}
1360
+
1361
+		// remove ORDER BY before santizing
1362
+		$order_query = strtolower($order_query);
1363
+		if ( strpos($order_query, 'order by') !== false ) {
1364
+			$order_query = str_replace('order by', '', $order_query);
1365
+		}
1366
+
1367
+		$order_query = explode(' ', trim($order_query));
1368
+
1369
+		$order_fields = array(
1370
+			'id', 'form_key', 'name', 'description',
1371
+			'parent_form_id', 'logged_in', 'is_template',
1372
+			'default_template', 'status', 'created_at',
1373
+		);
1374
+
1375
+		$order = trim(trim(reset($order_query), ','));
1376
+		if ( ! in_array($order, $order_fields) ) {
1377
+			return '';
1378
+		}
1379
+
1380
+		$order_by = '';
1381
+		if ( count($order_query) > 1 ) {
1382 1382
 			$order_by = end( $order_query );
1383 1383
 			self::esc_order_by( $order_by );
1384
-        }
1384
+		}
1385 1385
 
1386 1386
 		return ' ORDER BY ' . $order . ' ' . $order_by;
1387
-    }
1387
+	}
1388 1388
 
1389 1389
 	/**
1390 1390
 	 * Make sure this is ordering by either ASC or DESC
@@ -1396,169 +1396,169 @@  discard block
 block discarded – undo
1396 1396
 		}
1397 1397
 	}
1398 1398
 
1399
-    /**
1400
-     * @param string $limit
1401
-     */
1399
+	/**
1400
+	 * @param string $limit
1401
+	 */
1402 1402
 	public static function esc_limit( $limit ) {
1403
-        if ( empty($limit) ) {
1404
-            return '';
1405
-        }
1403
+		if ( empty($limit) ) {
1404
+			return '';
1405
+		}
1406 1406
 
1407
-        $limit = trim(str_replace(' limit', '', strtolower($limit)));
1408
-        if ( is_numeric($limit) ) {
1407
+		$limit = trim(str_replace(' limit', '', strtolower($limit)));
1408
+		if ( is_numeric($limit) ) {
1409 1409
 			return ' LIMIT ' . $limit;
1410
-        }
1410
+		}
1411 1411
 
1412
-        $limit = explode(',', trim($limit));
1413
-        foreach ( $limit as $k => $l ) {
1414
-            if ( is_numeric( $l ) ) {
1415
-                $limit[ $k ] = $l;
1416
-            }
1417
-        }
1412
+		$limit = explode(',', trim($limit));
1413
+		foreach ( $limit as $k => $l ) {
1414
+			if ( is_numeric( $l ) ) {
1415
+				$limit[ $k ] = $l;
1416
+			}
1417
+		}
1418 1418
 
1419
-        $limit = implode(',', $limit);
1419
+		$limit = implode(',', $limit);
1420 1420
 		return ' LIMIT ' . $limit;
1421
-    }
1422
-
1423
-    /**
1424
-     * Get an array of values ready to go through $wpdb->prepare
1425
-     * @since 2.0
1426
-     */
1427
-    public static function prepare_array_values( $array, $type = '%s' ) {
1428
-        $placeholders = array_fill(0, count($array), $type);
1429
-        return implode(', ', $placeholders);
1430
-    }
1431
-
1432
-    public static function prepend_and_or_where( $starts_with = ' WHERE ', $where = '' ) {
1433
-        if ( empty($where) ) {
1434
-            return '';
1435
-        }
1421
+	}
1422
+
1423
+	/**
1424
+	 * Get an array of values ready to go through $wpdb->prepare
1425
+	 * @since 2.0
1426
+	 */
1427
+	public static function prepare_array_values( $array, $type = '%s' ) {
1428
+		$placeholders = array_fill(0, count($array), $type);
1429
+		return implode(', ', $placeholders);
1430
+	}
1431
+
1432
+	public static function prepend_and_or_where( $starts_with = ' WHERE ', $where = '' ) {
1433
+		if ( empty($where) ) {
1434
+			return '';
1435
+		}
1436 1436
 
1437 1437
 		if ( is_array( $where ) ) {
1438
-            global $wpdb;
1439
-            FrmDb::get_where_clause_and_values( $where, $starts_with );
1438
+			global $wpdb;
1439
+			FrmDb::get_where_clause_and_values( $where, $starts_with );
1440 1440
 			$where = $wpdb->prepare( $where['where'], $where['values'] );
1441 1441
 		} else {
1442
-            $where = $starts_with . $where;
1443
-        }
1442
+			$where = $starts_with . $where;
1443
+		}
1444 1444
 
1445
-        return $where;
1446
-    }
1445
+		return $where;
1446
+	}
1447 1447
 
1448
-    // Pagination Methods
1448
+	// Pagination Methods
1449 1449
 
1450
-    /**
1451
-     * @param integer $current_p
1452
-     */
1450
+	/**
1451
+	 * @param integer $current_p
1452
+	 */
1453 1453
 	public static function get_last_record_num( $r_count, $current_p, $p_size ) {
1454 1454
 		return ( ( $r_count < ( $current_p * $p_size ) ) ? $r_count : ( $current_p * $p_size ) );
1455 1455
 	}
1456 1456
 
1457
-    /**
1458
-     * @param integer $current_p
1459
-     */
1460
-    public static function get_first_record_num( $r_count, $current_p, $p_size ) {
1461
-        if ( $current_p == 1 ) {
1462
-            return 1;
1463
-        } else {
1464
-            return ( self::get_last_record_num( $r_count, ( $current_p - 1 ), $p_size ) + 1 );
1465
-        }
1466
-    }
1457
+	/**
1458
+	 * @param integer $current_p
1459
+	 */
1460
+	public static function get_first_record_num( $r_count, $current_p, $p_size ) {
1461
+		if ( $current_p == 1 ) {
1462
+			return 1;
1463
+		} else {
1464
+			return ( self::get_last_record_num( $r_count, ( $current_p - 1 ), $p_size ) + 1 );
1465
+		}
1466
+	}
1467 1467
 
1468 1468
 	/**
1469 1469
 	 * @return array
1470 1470
 	 */
1471 1471
 	public static function json_to_array( $json_vars ) {
1472
-        $vars = array();
1473
-        foreach ( $json_vars as $jv ) {
1474
-            $jv_name = explode('[', $jv['name']);
1475
-            $last = count($jv_name) - 1;
1476
-            foreach ( $jv_name as $p => $n ) {
1477
-                $name = trim($n, ']');
1478
-                if ( ! isset($l1) ) {
1479
-                    $l1 = $name;
1480
-                }
1481
-
1482
-                if ( ! isset($l2) ) {
1483
-                    $l2 = $name;
1484
-                }
1485
-
1486
-                if ( ! isset($l3) ) {
1487
-                    $l3 = $name;
1488
-                }
1489
-
1490
-                $this_val = ( $p == $last ) ? $jv['value'] : array();
1491
-
1492
-                switch ( $p ) {
1493
-                    case 0:
1494
-                        $l1 = $name;
1495
-                        self::add_value_to_array( $name, $l1, $this_val, $vars );
1496
-                    break;
1497
-
1498
-                    case 1:
1499
-                        $l2 = $name;
1500
-                        self::add_value_to_array( $name, $l2, $this_val, $vars[ $l1 ] );
1501
-                    break;
1502
-
1503
-                    case 2:
1504
-                        $l3 = $name;
1505
-                        self::add_value_to_array( $name, $l3, $this_val, $vars[ $l1 ][ $l2 ] );
1506
-                    break;
1507
-
1508
-                    case 3:
1509
-                        $l4 = $name;
1510
-                        self::add_value_to_array( $name, $l4, $this_val, $vars[ $l1 ][ $l2 ][ $l3 ] );
1511
-                    break;
1512
-                }
1513
-
1514
-                unset($this_val, $n);
1515
-            }
1516
-
1517
-            unset($last, $jv);
1518
-        }
1519
-
1520
-        return $vars;
1521
-    }
1522
-
1523
-    /**
1524
-     * @param string $name
1525
-     * @param string $l1
1526
-     */
1527
-    public static function add_value_to_array( $name, $l1, $val, &$vars ) {
1528
-        if ( $name == '' ) {
1529
-            $vars[] = $val;
1530
-        } else if ( ! isset( $vars[ $l1 ] ) ) {
1531
-            $vars[ $l1 ] = $val;
1532
-        }
1533
-    }
1472
+		$vars = array();
1473
+		foreach ( $json_vars as $jv ) {
1474
+			$jv_name = explode('[', $jv['name']);
1475
+			$last = count($jv_name) - 1;
1476
+			foreach ( $jv_name as $p => $n ) {
1477
+				$name = trim($n, ']');
1478
+				if ( ! isset($l1) ) {
1479
+					$l1 = $name;
1480
+				}
1481
+
1482
+				if ( ! isset($l2) ) {
1483
+					$l2 = $name;
1484
+				}
1485
+
1486
+				if ( ! isset($l3) ) {
1487
+					$l3 = $name;
1488
+				}
1489
+
1490
+				$this_val = ( $p == $last ) ? $jv['value'] : array();
1491
+
1492
+				switch ( $p ) {
1493
+					case 0:
1494
+						$l1 = $name;
1495
+						self::add_value_to_array( $name, $l1, $this_val, $vars );
1496
+					break;
1497
+
1498
+					case 1:
1499
+						$l2 = $name;
1500
+						self::add_value_to_array( $name, $l2, $this_val, $vars[ $l1 ] );
1501
+					break;
1502
+
1503
+					case 2:
1504
+						$l3 = $name;
1505
+						self::add_value_to_array( $name, $l3, $this_val, $vars[ $l1 ][ $l2 ] );
1506
+					break;
1507
+
1508
+					case 3:
1509
+						$l4 = $name;
1510
+						self::add_value_to_array( $name, $l4, $this_val, $vars[ $l1 ][ $l2 ][ $l3 ] );
1511
+					break;
1512
+				}
1513
+
1514
+				unset($this_val, $n);
1515
+			}
1516
+
1517
+			unset($last, $jv);
1518
+		}
1519
+
1520
+		return $vars;
1521
+	}
1522
+
1523
+	/**
1524
+	 * @param string $name
1525
+	 * @param string $l1
1526
+	 */
1527
+	public static function add_value_to_array( $name, $l1, $val, &$vars ) {
1528
+		if ( $name == '' ) {
1529
+			$vars[] = $val;
1530
+		} else if ( ! isset( $vars[ $l1 ] ) ) {
1531
+			$vars[ $l1 ] = $val;
1532
+		}
1533
+	}
1534 1534
 
1535 1535
 	public static function maybe_add_tooltip( $name, $class = 'closed', $form_name = '' ) {
1536
-        $tooltips = array(
1537
-            'action_title'  => __( 'Give this action a label for easy reference.', 'formidable' ),
1538
-            'email_to'      => __( 'Add one or more recipient addresses separated by a ",".  FORMAT: Name <[email protected]> or [email protected].  [admin_email] is the address set in WP General Settings.', 'formidable' ),
1539
-            'cc'            => __( 'Add CC addresses separated by a ",".  FORMAT: Name <[email protected]> or [email protected].', 'formidable' ),
1540
-            'bcc'           => __( 'Add BCC addresses separated by a ",".  FORMAT: Name <[email protected]> or [email protected].', 'formidable' ),
1541
-            'reply_to'      => __( 'If you would like a different reply to address than the "from" address, add a single address here.  FORMAT: Name <[email protected]> or [email protected].', 'formidable' ),
1542
-            'from'          => __( 'Enter the name and/or email address of the sender. FORMAT: John Bates <[email protected]> or [email protected].', 'formidable' ),
1543
-            'email_subject' => esc_attr( sprintf( __( 'If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s', 'formidable' ), $form_name, self::site_name() ) ),
1544
-        );
1545
-
1546
-        if ( ! isset( $tooltips[ $name ] ) ) {
1547
-            return;
1548
-        }
1549
-
1550
-        if ( 'open' == $class ) {
1551
-            echo ' frm_help"';
1552
-        } else {
1553
-            echo ' class="frm_help"';
1554
-        }
1536
+		$tooltips = array(
1537
+			'action_title'  => __( 'Give this action a label for easy reference.', 'formidable' ),
1538
+			'email_to'      => __( 'Add one or more recipient addresses separated by a ",".  FORMAT: Name <[email protected]> or [email protected].  [admin_email] is the address set in WP General Settings.', 'formidable' ),
1539
+			'cc'            => __( 'Add CC addresses separated by a ",".  FORMAT: Name <[email protected]> or [email protected].', 'formidable' ),
1540
+			'bcc'           => __( 'Add BCC addresses separated by a ",".  FORMAT: Name <[email protected]> or [email protected].', 'formidable' ),
1541
+			'reply_to'      => __( 'If you would like a different reply to address than the "from" address, add a single address here.  FORMAT: Name <[email protected]> or [email protected].', 'formidable' ),
1542
+			'from'          => __( 'Enter the name and/or email address of the sender. FORMAT: John Bates <[email protected]> or [email protected].', 'formidable' ),
1543
+			'email_subject' => esc_attr( sprintf( __( 'If you leave the subject blank, the default will be used: %1$s Form submitted on %2$s', 'formidable' ), $form_name, self::site_name() ) ),
1544
+		);
1545
+
1546
+		if ( ! isset( $tooltips[ $name ] ) ) {
1547
+			return;
1548
+		}
1549
+
1550
+		if ( 'open' == $class ) {
1551
+			echo ' frm_help"';
1552
+		} else {
1553
+			echo ' class="frm_help"';
1554
+		}
1555 1555
 
1556 1556
 		echo ' title="' . esc_attr( $tooltips[ $name ] );
1557 1557
 
1558
-        if ( 'open' != $class ) {
1559
-            echo '"';
1560
-        }
1561
-    }
1558
+		if ( 'open' != $class ) {
1559
+			echo '"';
1560
+		}
1561
+	}
1562 1562
 
1563 1563
 	/**
1564 1564
 	 * Add the current_page class to that page in the form nav
@@ -1574,35 +1574,35 @@  discard block
 block discarded – undo
1574 1574
 		}
1575 1575
 	}
1576 1576
 
1577
-    /**
1578
-     * Prepare and json_encode post content
1579
-     *
1580
-     * @since 2.0
1581
-     *
1582
-     * @param array $post_content
1583
-     * @return string $post_content ( json encoded array )
1584
-     */
1585
-    public static function prepare_and_encode( $post_content ) {
1586
-        //Loop through array to strip slashes and add only the needed ones
1577
+	/**
1578
+	 * Prepare and json_encode post content
1579
+	 *
1580
+	 * @since 2.0
1581
+	 *
1582
+	 * @param array $post_content
1583
+	 * @return string $post_content ( json encoded array )
1584
+	 */
1585
+	public static function prepare_and_encode( $post_content ) {
1586
+		//Loop through array to strip slashes and add only the needed ones
1587 1587
 		foreach ( $post_content as $key => $val ) {
1588 1588
 			// Replace problematic characters (like &quot;)
1589 1589
 			$val = str_replace( '&quot;', '"', $val );
1590 1590
 
1591 1591
 			self::prepare_action_slashes( $val, $key, $post_content );
1592
-            unset( $key, $val );
1593
-        }
1592
+			unset( $key, $val );
1593
+		}
1594 1594
 
1595
-        // json_encode the array
1596
-        $post_content = json_encode( $post_content );
1595
+		// json_encode the array
1596
+		$post_content = json_encode( $post_content );
1597 1597
 
1598
-	    // add extra slashes for \r\n since WP strips them
1598
+		// add extra slashes for \r\n since WP strips them
1599 1599
 		$post_content = str_replace( array( '\\r', '\\n', '\\u', '\\t' ), array( '\\\\r', '\\\\n', '\\\\u', '\\\\t' ), $post_content );
1600 1600
 
1601
-        // allow for &quot
1602
-	    $post_content = str_replace( '&quot;', '\\"', $post_content );
1601
+		// allow for &quot
1602
+		$post_content = str_replace( '&quot;', '\\"', $post_content );
1603 1603
 
1604
-        return $post_content;
1605
-    }
1604
+		return $post_content;
1605
+	}
1606 1606
 
1607 1607
 	private static function prepare_action_slashes( $val, $key, &$post_content ) {
1608 1608
 		if ( ! isset( $post_content[ $key ] ) ) {
@@ -1670,64 +1670,64 @@  discard block
 block discarded – undo
1670 1670
 	}
1671 1671
 
1672 1672
 	public static function maybe_json_decode( $string ) {
1673
-        if ( is_array($string) ) {
1674
-            return $string;
1675
-        }
1673
+		if ( is_array($string) ) {
1674
+			return $string;
1675
+		}
1676 1676
 
1677
-        $new_string = json_decode($string, true);
1678
-        if ( function_exists('json_last_error') ) {
1677
+		$new_string = json_decode($string, true);
1678
+		if ( function_exists('json_last_error') ) {
1679 1679
 			// php 5.3+
1680
-            if ( json_last_error() == JSON_ERROR_NONE ) {
1681
-                $string = $new_string;
1682
-            }
1683
-        } else if ( isset($new_string) ) {
1680
+			if ( json_last_error() == JSON_ERROR_NONE ) {
1681
+				$string = $new_string;
1682
+			}
1683
+		} else if ( isset($new_string) ) {
1684 1684
 			// php < 5.3 fallback
1685
-            $string = $new_string;
1686
-        }
1687
-        return $string;
1688
-    }
1689
-
1690
-    /**
1691
-     * @since 1.07.10
1692
-     *
1693
-     * @param string $post_type The name of the post type that may need to be highlighted
1694
-     * echo The javascript to open and highlight the Formidable menu
1695
-     */
1685
+			$string = $new_string;
1686
+		}
1687
+		return $string;
1688
+	}
1689
+
1690
+	/**
1691
+	 * @since 1.07.10
1692
+	 *
1693
+	 * @param string $post_type The name of the post type that may need to be highlighted
1694
+	 * echo The javascript to open and highlight the Formidable menu
1695
+	 */
1696 1696
 	public static function maybe_highlight_menu( $post_type ) {
1697
-        global $post;
1697
+		global $post;
1698 1698
 
1699
-        if ( isset($_REQUEST['post_type']) && $_REQUEST['post_type'] != $post_type ) {
1700
-            return;
1701
-        }
1699
+		if ( isset($_REQUEST['post_type']) && $_REQUEST['post_type'] != $post_type ) {
1700
+			return;
1701
+		}
1702 1702
 
1703
-        if ( is_object($post) && $post->post_type != $post_type ) {
1704
-            return;
1705
-        }
1703
+		if ( is_object($post) && $post->post_type != $post_type ) {
1704
+			return;
1705
+		}
1706 1706
 
1707
-        self::load_admin_wide_js();
1708
-        echo '<script type="text/javascript">jQuery(document).ready(function(){frmSelectSubnav();});</script>';
1709
-    }
1707
+		self::load_admin_wide_js();
1708
+		echo '<script type="text/javascript">jQuery(document).ready(function(){frmSelectSubnav();});</script>';
1709
+	}
1710 1710
 
1711
-    /**
1712
-     * Load the JS file on non-Formidable pages in the admin area
1713
-     * @since 2.0
1714
-     */
1711
+	/**
1712
+	 * Load the JS file on non-Formidable pages in the admin area
1713
+	 * @since 2.0
1714
+	 */
1715 1715
 	public static function load_admin_wide_js( $load = true ) {
1716
-        $version = FrmAppHelper::plugin_version();
1716
+		$version = FrmAppHelper::plugin_version();
1717 1717
 		wp_register_script( 'formidable_admin_global', FrmAppHelper::plugin_url() . '/js/formidable_admin_global.js', array( 'jquery' ), $version );
1718 1718
 
1719
-        wp_localize_script( 'formidable_admin_global', 'frmGlobal', array(
1719
+		wp_localize_script( 'formidable_admin_global', 'frmGlobal', array(
1720 1720
 			'updating_msg' => __( 'Please wait while your site updates.', 'formidable' ),
1721
-            'deauthorize'  => __( 'Are you sure you want to deauthorize Formidable Forms on this site?', 'formidable' ),
1721
+			'deauthorize'  => __( 'Are you sure you want to deauthorize Formidable Forms on this site?', 'formidable' ),
1722 1722
 			'url'          => FrmAppHelper::plugin_url(),
1723 1723
 			'loading'      => __( 'Loading&hellip;' ),
1724 1724
 			'nonce'        => wp_create_nonce( 'frm_ajax' ),
1725
-        ) );
1725
+		) );
1726 1726
 
1727 1727
 		if ( $load ) {
1728 1728
 			wp_enqueue_script( 'formidable_admin_global' );
1729 1729
 		}
1730
-    }
1730
+	}
1731 1731
 
1732 1732
 	/**
1733 1733
 	 * @since 2.0.9
@@ -1736,9 +1736,9 @@  discard block
 block discarded – undo
1736 1736
 		wp_enqueue_style( 'frm_fonts', self::plugin_url() . '/css/frm_fonts.css', array(), self::plugin_version() );
1737 1737
 	}
1738 1738
 
1739
-    /**
1740
-     * @param string $location
1741
-     */
1739
+	/**
1740
+	 * @param string $location
1741
+	 */
1742 1742
 	public static function localize_script( $location ) {
1743 1743
 		$ajax_url = admin_url( 'admin-ajax.php', is_ssl() ? 'admin' : 'http' );
1744 1744
 		$ajax_url = apply_filters( 'frm_ajax_url', $ajax_url );
@@ -1793,81 +1793,81 @@  discard block
 block discarded – undo
1793 1793
 		}
1794 1794
 	}
1795 1795
 
1796
-    /**
1796
+	/**
1797 1797
 	 * echo the message on the plugins listing page
1798
-     * @since 1.07.10
1799
-     *
1800
-     * @param float $min_version The version the add-on requires
1801
-     */
1798
+	 * @since 1.07.10
1799
+	 *
1800
+	 * @param float $min_version The version the add-on requires
1801
+	 */
1802 1802
 	public static function min_version_notice( $min_version ) {
1803
-        $frm_version = self::plugin_version();
1803
+		$frm_version = self::plugin_version();
1804 1804
 
1805
-        // check if Formidable meets minimum requirements
1806
-        if ( version_compare($frm_version, $min_version, '>=') ) {
1807
-            return;
1808
-        }
1805
+		// check if Formidable meets minimum requirements
1806
+		if ( version_compare($frm_version, $min_version, '>=') ) {
1807
+			return;
1808
+		}
1809 1809
 
1810
-        $wp_list_table = _get_list_table('WP_Plugins_List_Table');
1810
+		$wp_list_table = _get_list_table('WP_Plugins_List_Table');
1811 1811
 		echo '<tr class="plugin-update-tr active"><th colspan="' . absint( $wp_list_table->get_column_count() ) . '" class="check-column plugin-update colspanchange"><div class="update-message">' .
1812
-        __( 'You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable.', 'formidable' ) .
1813
-        '</div></td></tr>';
1814
-    }
1815
-
1816
-    public static function locales( $type = 'date' ) {
1817
-        $locales = array(
1818
-            'en' => __( 'English', 'formidable' ),    '' => __( 'English/Western', 'formidable' ),
1819
-            'af' => __( 'Afrikaans', 'formidable' ),  'sq' => __( 'Albanian', 'formidable' ),
1820
-            'ar' => __( 'Arabic', 'formidable' ),     'hy' => __( 'Armenian', 'formidable' ),
1821
-            'az' => __( 'Azerbaijani', 'formidable' ), 'eu' => __( 'Basque', 'formidable' ),
1822
-            'bs' => __( 'Bosnian', 'formidable' ),    'bg' => __( 'Bulgarian', 'formidable' ),
1823
-            'ca' => __( 'Catalan', 'formidable' ),    'zh-HK' => __( 'Chinese Hong Kong', 'formidable' ),
1824
-            'zh-CN' => __( 'Chinese Simplified', 'formidable' ), 'zh-TW' => __( 'Chinese Traditional', 'formidable' ),
1825
-            'hr' => __( 'Croatian', 'formidable' ),   'cs' => __( 'Czech', 'formidable' ),
1826
-            'da' => __( 'Danish', 'formidable' ),     'nl' => __( 'Dutch', 'formidable' ),
1827
-            'en-GB' => __( 'English/UK', 'formidable' ), 'eo' => __( 'Esperanto', 'formidable' ),
1828
-            'et' => __( 'Estonian', 'formidable' ),   'fo' => __( 'Faroese', 'formidable' ),
1829
-            'fa' => __( 'Farsi/Persian', 'formidable' ), 'fil' => __( 'Filipino', 'formidable' ),
1830
-            'fi' => __( 'Finnish', 'formidable' ),    'fr' => __( 'French', 'formidable' ),
1831
-            'fr-CA' => __( 'French/Canadian', 'formidable' ), 'fr-CH' => __( 'French/Swiss', 'formidable' ),
1832
-            'de' => __( 'German', 'formidable' ),     'de-AT' => __( 'German/Austria', 'formidable' ),
1833
-            'de-CH' => __( 'German/Switzerland', 'formidable' ), 'el' => __( 'Greek', 'formidable' ),
1834
-            'he' => __( 'Hebrew', 'formidable' ),     'iw' => __( 'Hebrew', 'formidable' ),
1835
-            'hi' => __( 'Hindi', 'formidable' ),      'hu' => __( 'Hungarian', 'formidable' ),
1836
-            'is' => __( 'Icelandic', 'formidable' ),  'id' => __( 'Indonesian', 'formidable' ),
1837
-            'it' => __( 'Italian', 'formidable' ),    'ja' => __( 'Japanese', 'formidable' ),
1838
-            'ko' => __( 'Korean', 'formidable' ),     'lv' => __( 'Latvian', 'formidable' ),
1839
-            'lt' => __( 'Lithuanian', 'formidable' ), 'ms' => __( 'Malaysian', 'formidable' ),
1840
-            'no' => __( 'Norwegian', 'formidable' ),  'pl' => __( 'Polish', 'formidable' ),
1841
-            'pt' => __( 'Portuguese', 'formidable' ), 'pt-BR' => __( 'Portuguese/Brazilian', 'formidable' ),
1842
-            'pt-PT' => __( 'Portuguese/Portugal', 'formidable' ), 'ro' => __( 'Romanian', 'formidable' ),
1843
-            'ru' => __( 'Russian', 'formidable' ),    'sr' => __( 'Serbian', 'formidable' ),
1844
-            'sr-SR' => __( 'Serbian', 'formidable' ), 'sk' => __( 'Slovak', 'formidable' ),
1845
-            'sl' => __( 'Slovenian', 'formidable' ),  'es' => __( 'Spanish', 'formidable' ),
1846
-            'es-419' => __( 'Spanish/Latin America', 'formidable' ), 'sv' => __( 'Swedish', 'formidable' ),
1847
-            'ta' => __( 'Tamil', 'formidable' ),      'th' => __( 'Thai', 'formidable' ),
1848
-            'tu' => __( 'Turkish', 'formidable' ),    'tr' => __( 'Turkish', 'formidable' ),
1849
-            'uk' => __( 'Ukranian', 'formidable' ),   'vi' => __( 'Vietnamese', 'formidable' ),
1850
-        );
1851
-
1852
-        if ( $type == 'captcha' ) {
1853
-            // remove the languages unavailable for the captcha
1854
-            $unset = array(
1855
-                '', 'af', 'sq', 'hy', 'az', 'eu', 'bs',
1856
-                'zh-HK', 'eo', 'et', 'fo', 'fr-CH',
1857
-                'he', 'is', 'ms', 'sr-SR', 'ta', 'tu',
1858
-            );
1859
-        } else {
1860
-            // remove the languages unavailable for the datepicker
1861
-            $unset = array(
1862
-                'en', 'fil', 'fr-CA', 'de-AT', 'de-AT',
1863
-                'de-CH', 'iw', 'hi', 'pt', 'pt-PT',
1864
-                'es-419', 'tr',
1865
-            );
1866
-        }
1867
-
1868
-        $locales = array_diff_key($locales, array_flip($unset));
1869
-        $locales = apply_filters('frm_locales', $locales);
1870
-
1871
-        return $locales;
1872
-    }
1812
+		__( 'You are running an outdated version of Formidable. This plugin may not work correctly if you do not update Formidable.', 'formidable' ) .
1813
+		'</div></td></tr>';
1814
+	}
1815
+
1816
+	public static function locales( $type = 'date' ) {
1817
+		$locales = array(
1818
+			'en' => __( 'English', 'formidable' ),    '' => __( 'English/Western', 'formidable' ),
1819
+			'af' => __( 'Afrikaans', 'formidable' ),  'sq' => __( 'Albanian', 'formidable' ),
1820
+			'ar' => __( 'Arabic', 'formidable' ),     'hy' => __( 'Armenian', 'formidable' ),
1821
+			'az' => __( 'Azerbaijani', 'formidable' ), 'eu' => __( 'Basque', 'formidable' ),
1822
+			'bs' => __( 'Bosnian', 'formidable' ),    'bg' => __( 'Bulgarian', 'formidable' ),
1823
+			'ca' => __( 'Catalan', 'formidable' ),    'zh-HK' => __( 'Chinese Hong Kong', 'formidable' ),
1824
+			'zh-CN' => __( 'Chinese Simplified', 'formidable' ), 'zh-TW' => __( 'Chinese Traditional', 'formidable' ),
1825
+			'hr' => __( 'Croatian', 'formidable' ),   'cs' => __( 'Czech', 'formidable' ),
1826
+			'da' => __( 'Danish', 'formidable' ),     'nl' => __( 'Dutch', 'formidable' ),
1827
+			'en-GB' => __( 'English/UK', 'formidable' ), 'eo' => __( 'Esperanto', 'formidable' ),
1828
+			'et' => __( 'Estonian', 'formidable' ),   'fo' => __( 'Faroese', 'formidable' ),
1829
+			'fa' => __( 'Farsi/Persian', 'formidable' ), 'fil' => __( 'Filipino', 'formidable' ),
1830
+			'fi' => __( 'Finnish', 'formidable' ),    'fr' => __( 'French', 'formidable' ),
1831
+			'fr-CA' => __( 'French/Canadian', 'formidable' ), 'fr-CH' => __( 'French/Swiss', 'formidable' ),
1832
+			'de' => __( 'German', 'formidable' ),     'de-AT' => __( 'German/Austria', 'formidable' ),
1833
+			'de-CH' => __( 'German/Switzerland', 'formidable' ), 'el' => __( 'Greek', 'formidable' ),
1834
+			'he' => __( 'Hebrew', 'formidable' ),     'iw' => __( 'Hebrew', 'formidable' ),
1835
+			'hi' => __( 'Hindi', 'formidable' ),      'hu' => __( 'Hungarian', 'formidable' ),
1836
+			'is' => __( 'Icelandic', 'formidable' ),  'id' => __( 'Indonesian', 'formidable' ),
1837
+			'it' => __( 'Italian', 'formidable' ),    'ja' => __( 'Japanese', 'formidable' ),
1838
+			'ko' => __( 'Korean', 'formidable' ),     'lv' => __( 'Latvian', 'formidable' ),
1839
+			'lt' => __( 'Lithuanian', 'formidable' ), 'ms' => __( 'Malaysian', 'formidable' ),
1840
+			'no' => __( 'Norwegian', 'formidable' ),  'pl' => __( 'Polish', 'formidable' ),
1841
+			'pt' => __( 'Portuguese', 'formidable' ), 'pt-BR' => __( 'Portuguese/Brazilian', 'formidable' ),
1842
+			'pt-PT' => __( 'Portuguese/Portugal', 'formidable' ), 'ro' => __( 'Romanian', 'formidable' ),
1843
+			'ru' => __( 'Russian', 'formidable' ),    'sr' => __( 'Serbian', 'formidable' ),
1844
+			'sr-SR' => __( 'Serbian', 'formidable' ), 'sk' => __( 'Slovak', 'formidable' ),
1845
+			'sl' => __( 'Slovenian', 'formidable' ),  'es' => __( 'Spanish', 'formidable' ),
1846
+			'es-419' => __( 'Spanish/Latin America', 'formidable' ), 'sv' => __( 'Swedish', 'formidable' ),
1847
+			'ta' => __( 'Tamil', 'formidable' ),      'th' => __( 'Thai', 'formidable' ),
1848
+			'tu' => __( 'Turkish', 'formidable' ),    'tr' => __( 'Turkish', 'formidable' ),
1849
+			'uk' => __( 'Ukranian', 'formidable' ),   'vi' => __( 'Vietnamese', 'formidable' ),
1850
+		);
1851
+
1852
+		if ( $type == 'captcha' ) {
1853
+			// remove the languages unavailable for the captcha
1854
+			$unset = array(
1855
+				'', 'af', 'sq', 'hy', 'az', 'eu', 'bs',
1856
+				'zh-HK', 'eo', 'et', 'fo', 'fr-CH',
1857
+				'he', 'is', 'ms', 'sr-SR', 'ta', 'tu',
1858
+			);
1859
+		} else {
1860
+			// remove the languages unavailable for the datepicker
1861
+			$unset = array(
1862
+				'en', 'fil', 'fr-CA', 'de-AT', 'de-AT',
1863
+				'de-CH', 'iw', 'hi', 'pt', 'pt-PT',
1864
+				'es-419', 'tr',
1865
+			);
1866
+		}
1867
+
1868
+		$locales = array_diff_key($locales, array_flip($unset));
1869
+		$locales = apply_filters('frm_locales', $locales);
1870
+
1871
+		return $locales;
1872
+	}
1873 1873
 }
Please login to merge, or discard this patch.