Version Description
- New: Added support for hCaptcha. Now in Global Settings, the reCAPTCHA tab has been changed to a CAPTCHA tab with a new CAPTCHA type setting so you can choose between using reCAPTCHA or hCaptcha.
- Fix: Avoid a fatal error if the hidden columns setting is in an unexpected format on the form and entry list pages. This may happen because of invalid option data being set or a conflict with another plugin or custom code.
- Fix: Long field names on the reports tab would force the table to horizontally scroll. A long field name will now break into multiple lines instead.
- Fix: The frm_form_object filter wouldn't get applied to a cached form result.
- Fix: Prevent an undefined function get_editable_roles fatal error that triggers when trying to connect an account.
- Fix: An incorrect section comparison was causing fields to keep old section data after being moved somewhere else. This would result in unexpected data exports and other side effects.
- Fix: A "row is undefined" error would prevent merging multiple field groups together after the layout option was clicked.
- Updated message styling on admin pages.
Download this release
Release Info
Developer | sswells |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 5.5.4 |
Comparing to | |
See all releases |
Code changes from version 5.5.3.1 to 5.5.4
- classes/controllers/FrmEntriesController.php +12 -1
- classes/controllers/FrmFormsController.php +9 -1
- classes/controllers/FrmHooksController.php +3 -0
- classes/controllers/FrmSettingsController.php +13 -5
- classes/helpers/FrmAppHelper.php +3 -3
- classes/helpers/FrmFieldsHelper.php +1 -1
- classes/models/FrmAddon.php +4 -0
- classes/models/FrmField.php +10 -1
- classes/models/FrmFieldCaptchaSettings.php +28 -0
- classes/models/FrmForm.php +1 -1
- classes/models/FrmSettings.php +25 -11
- classes/models/fields/FrmFieldCaptcha.php +125 -36
- classes/views/frm-fields/back-end/field-captcha.php +3 -9
- classes/views/frm-fields/back-end/settings.php +16 -1
- classes/views/frm-settings/captcha/captcha.php +109 -0
- classes/views/frm-settings/captcha/captcha_keys.php +47 -0
- classes/views/frm-settings/recaptcha.php +2 -76
- css/frm_admin.css +109 -25
- css/frm_fonts.css +1 -1
- formidable.php +1 -1
- images/captcha_not_setup.png +0 -0
- images/hcaptcha.png +0 -0
- images/icons.svg +4 -2
- images/recaptcha_v3.png +0 -0
- js/formidable.js +6 -4
- js/formidable.min.js +2 -2
- js/formidable_admin.js +61 -15
- js/formidable_blocks.js +1 -1
- languages/formidable.pot +294 -252
- readme.txt +33 -22
classes/controllers/FrmEntriesController.php
CHANGED
@@ -306,7 +306,18 @@ class FrmEntriesController {
|
|
306 |
return apply_filters( 'frm_field_column_is_sortable', $is_sortable, $field );
|
307 |
}
|
308 |
|
|
|
|
|
|
|
|
|
309 |
public static function hidden_columns( $result ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
$form_id = FrmForm::get_current_form_id();
|
311 |
|
312 |
$hidden = self::user_hidden_columns_for_form( $form_id, $result );
|
@@ -473,7 +484,7 @@ class FrmEntriesController {
|
|
473 |
|
474 |
$message = '';
|
475 |
if ( FrmEntry::destroy( $params['id'] ) ) {
|
476 |
-
$message = __( 'Entry was
|
477 |
}
|
478 |
|
479 |
self::display_list( $message );
|
306 |
return apply_filters( 'frm_field_column_is_sortable', $is_sortable, $field );
|
307 |
}
|
308 |
|
309 |
+
/**
|
310 |
+
* @param mixed $result Option value from database for hidden columns in entries table.
|
311 |
+
* @return array
|
312 |
+
*/
|
313 |
public static function hidden_columns( $result ) {
|
314 |
+
if ( ! is_array( $result ) ) {
|
315 |
+
// Force an unexpected value to be an array.
|
316 |
+
// Since $result is a filtered option and gets saved to the database, it's possible it could be a string.
|
317 |
+
// Since this code expects an array it would break with a "Uncaught Error: [] operator not supported for strings" error.
|
318 |
+
$result = array();
|
319 |
+
}
|
320 |
+
|
321 |
$form_id = FrmForm::get_current_form_id();
|
322 |
|
323 |
$hidden = self::user_hidden_columns_for_form( $form_id, $result );
|
484 |
|
485 |
$message = '';
|
486 |
if ( FrmEntry::destroy( $params['id'] ) ) {
|
487 |
+
$message = __( 'Entry was successfully deleted', 'formidable' );
|
488 |
}
|
489 |
|
490 |
self::display_list( $message );
|
classes/controllers/FrmFormsController.php
CHANGED
@@ -888,7 +888,15 @@ class FrmFormsController {
|
|
888 |
);
|
889 |
}
|
890 |
|
|
|
|
|
|
|
|
|
891 |
public static function hidden_columns( $hidden_columns ) {
|
|
|
|
|
|
|
|
|
892 |
$type = FrmAppHelper::get_simple_request(
|
893 |
array(
|
894 |
'param' => 'form_type',
|
@@ -2421,7 +2429,7 @@ class FrmFormsController {
|
|
2421 |
}
|
2422 |
|
2423 |
public static function defer_script_loading( $tag, $handle ) {
|
2424 |
-
if ( '
|
2425 |
$tag = str_replace( ' src', ' defer="defer" async="async" src', $tag );
|
2426 |
}
|
2427 |
|
888 |
);
|
889 |
}
|
890 |
|
891 |
+
/**
|
892 |
+
* @param mixed $hidden_columns
|
893 |
+
* @return array
|
894 |
+
*/
|
895 |
public static function hidden_columns( $hidden_columns ) {
|
896 |
+
if ( ! is_array( $hidden_columns ) ) {
|
897 |
+
$hidden_columns = array();
|
898 |
+
}
|
899 |
+
|
900 |
$type = FrmAppHelper::get_simple_request(
|
901 |
array(
|
902 |
'param' => 'form_type',
|
2429 |
}
|
2430 |
|
2431 |
public static function defer_script_loading( $tag, $handle ) {
|
2432 |
+
if ( 'captcha-api' == $handle && ! strpos( $tag, 'defer' ) ) {
|
2433 |
$tag = str_replace( ' src', ' defer="defer" async="async" src', $tag );
|
2434 |
}
|
2435 |
|
classes/controllers/FrmHooksController.php
CHANGED
@@ -169,6 +169,9 @@ class FrmHooksController {
|
|
169 |
add_action( 'admin_enqueue_scripts', 'FrmApplicationsController::dequeue_scripts', 15 );
|
170 |
add_action( 'wp_ajax_frm_get_applications_data', 'FrmApplicationsController::get_applications_data' );
|
171 |
|
|
|
|
|
|
|
172 |
FrmSMTPController::load_hooks();
|
173 |
FrmWelcomeController::load_hooks();
|
174 |
new FrmPluginSearch();
|
169 |
add_action( 'admin_enqueue_scripts', 'FrmApplicationsController::dequeue_scripts', 15 );
|
170 |
add_action( 'wp_ajax_frm_get_applications_data', 'FrmApplicationsController::get_applications_data' );
|
171 |
|
172 |
+
// CAPTCHA
|
173 |
+
add_filter( 'frm_setup_edit_field_vars', 'FrmFieldCaptcha::update_field_name' );
|
174 |
+
|
175 |
FrmSMTPController::load_hooks();
|
176 |
FrmWelcomeController::load_hooks();
|
177 |
new FrmPluginSearch();
|
classes/controllers/FrmSettingsController.php
CHANGED
@@ -51,10 +51,10 @@ class FrmSettingsController {
|
|
51 |
'name' => __( 'Permissions', 'formidable' ),
|
52 |
'icon' => 'frm_icon_font frm_lock_icon',
|
53 |
),
|
54 |
-
'
|
55 |
'class' => __CLASS__,
|
56 |
-
'function' => '
|
57 |
-
'name' => __( '
|
58 |
'icon' => 'frm_icon_font frm_shield_check_icon',
|
59 |
),
|
60 |
'white_label' => array(
|
@@ -180,11 +180,11 @@ class FrmSettingsController {
|
|
180 |
/**
|
181 |
* @since 4.0
|
182 |
*/
|
183 |
-
public static function
|
184 |
$frm_settings = FrmAppHelper::get_settings();
|
185 |
$captcha_lang = FrmAppHelper::locales( 'captcha' );
|
186 |
|
187 |
-
include( FrmAppHelper::plugin_path() . '/classes/views/frm-settings/
|
188 |
}
|
189 |
|
190 |
/**
|
@@ -345,4 +345,12 @@ class FrmSettingsController {
|
|
345 |
|
346 |
wp_send_json( $results );
|
347 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
}
|
51 |
'name' => __( 'Permissions', 'formidable' ),
|
52 |
'icon' => 'frm_icon_font frm_lock_icon',
|
53 |
),
|
54 |
+
'captcha' => array(
|
55 |
'class' => __CLASS__,
|
56 |
+
'function' => 'captcha_settings',
|
57 |
+
'name' => __( 'CAPTCHA', 'formidable' ),
|
58 |
'icon' => 'frm_icon_font frm_shield_check_icon',
|
59 |
),
|
60 |
'white_label' => array(
|
180 |
/**
|
181 |
* @since 4.0
|
182 |
*/
|
183 |
+
public static function captcha_settings() {
|
184 |
$frm_settings = FrmAppHelper::get_settings();
|
185 |
$captcha_lang = FrmAppHelper::locales( 'captcha' );
|
186 |
|
187 |
+
include( FrmAppHelper::plugin_path() . '/classes/views/frm-settings/captcha/captcha.php' );
|
188 |
}
|
189 |
|
190 |
/**
|
345 |
|
346 |
wp_send_json( $results );
|
347 |
}
|
348 |
+
|
349 |
+
/**
|
350 |
+
* @deprecated x.x use FrmSettingsController::captcha_settings().
|
351 |
+
*/
|
352 |
+
public static function recaptcha_settings() {
|
353 |
+
_deprecated_function( __FUNCTION__, 'x.x', 'FrmSettingsController::captcha_settings()' );
|
354 |
+
self::captcha_settings();
|
355 |
+
}
|
356 |
}
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -16,7 +16,7 @@ class FrmAppHelper {
|
|
16 |
/**
|
17 |
* @since 2.0
|
18 |
*/
|
19 |
-
public static $plug_version = '5.5.
|
20 |
|
21 |
/**
|
22 |
* @since 1.07.02
|
@@ -2950,7 +2950,7 @@ class FrmAppHelper {
|
|
2950 |
$pro_version = FrmProDb::$plug_version;
|
2951 |
$expired = FrmAddonsController::is_license_expired();
|
2952 |
?>
|
2953 |
-
<div class="
|
2954 |
<?php
|
2955 |
esc_html_e( 'You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro.', 'formidable' );
|
2956 |
if ( empty( $expired ) ) {
|
@@ -2991,7 +2991,7 @@ class FrmAppHelper {
|
|
2991 |
|
2992 |
foreach ( $message as $m ) {
|
2993 |
?>
|
2994 |
-
<div class="
|
2995 |
<?php echo esc_html( $m ); ?>
|
2996 |
</div>
|
2997 |
<?php
|
16 |
/**
|
17 |
* @since 2.0
|
18 |
*/
|
19 |
+
public static $plug_version = '5.5.4';
|
20 |
|
21 |
/**
|
22 |
* @since 1.07.02
|
2950 |
$pro_version = FrmProDb::$plug_version;
|
2951 |
$expired = FrmAddonsController::is_license_expired();
|
2952 |
?>
|
2953 |
+
<div class="frm-banner-alert frm_error_style frm_previous_install">
|
2954 |
<?php
|
2955 |
esc_html_e( 'You are running a version of Formidable Forms that may not be compatible with your version of Formidable Forms Pro.', 'formidable' );
|
2956 |
if ( empty( $expired ) ) {
|
2991 |
|
2992 |
foreach ( $message as $m ) {
|
2993 |
?>
|
2994 |
+
<div class="frm-banner-alert frm_error_style frm_previous_install">
|
2995 |
<?php echo esc_html( $m ); ?>
|
2996 |
</div>
|
2997 |
<?php
|
classes/helpers/FrmFieldsHelper.php
CHANGED
@@ -159,7 +159,7 @@ class FrmFieldsHelper {
|
|
159 |
$field_array['blank'] = $frm_settings->blank_msg;
|
160 |
}
|
161 |
|
162 |
-
if ( ''
|
163 |
if ( 'captcha' === $field->type ) {
|
164 |
$field_array['invalid'] = $frm_settings->re_msg;
|
165 |
} else {
|
159 |
$field_array['blank'] = $frm_settings->blank_msg;
|
160 |
}
|
161 |
|
162 |
+
if ( '' === $field_array['invalid'] ) {
|
163 |
if ( 'captcha' === $field->type ) {
|
164 |
$field_array['invalid'] = $frm_settings->re_msg;
|
165 |
} else {
|
classes/models/FrmAddon.php
CHANGED
@@ -251,6 +251,10 @@ class FrmAddon {
|
|
251 |
protected function update_pro_capabilities() {
|
252 |
global $wp_roles;
|
253 |
|
|
|
|
|
|
|
|
|
254 |
$caps = FrmAppHelper::frm_capabilities( 'pro_only' );
|
255 |
$roles = get_editable_roles();
|
256 |
$settings = new FrmSettings();
|
251 |
protected function update_pro_capabilities() {
|
252 |
global $wp_roles;
|
253 |
|
254 |
+
if ( ! function_exists( 'get_editable_roles' ) ) {
|
255 |
+
require_once ABSPATH . 'wp-admin/includes/user.php';
|
256 |
+
}
|
257 |
+
|
258 |
$caps = FrmAppHelper::frm_capabilities( 'pro_only' );
|
259 |
$roles = get_editable_roles();
|
260 |
$settings = new FrmSettings();
|
classes/models/FrmField.php
CHANGED
@@ -9,6 +9,15 @@ class FrmField {
|
|
9 |
public static $transient_size = 200;
|
10 |
|
11 |
public static function field_selection() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
$fields = array(
|
13 |
'text' => array(
|
14 |
'name' => __( 'Text', 'formidable' ),
|
@@ -63,7 +72,7 @@ class FrmField {
|
|
63 |
'icon' => 'frm_icon_font frm_user_icon',
|
64 |
),
|
65 |
'captcha' => array(
|
66 |
-
'name' =>
|
67 |
'icon' => 'frm_icon_font frm_shield_check_icon',
|
68 |
),
|
69 |
);
|
9 |
public static $transient_size = 200;
|
10 |
|
11 |
public static function field_selection() {
|
12 |
+
$frm_settings = FrmAppHelper::get_settings();
|
13 |
+
$active_captcha = $frm_settings->active_captcha;
|
14 |
+
if ( ! FrmFieldCaptcha::should_show_captcha() ) {
|
15 |
+
$captcha_name = 'CAPTCHA';
|
16 |
+
} elseif ( $active_captcha === 'recaptcha' ) {
|
17 |
+
$captcha_name = 'reCAPTCHA';
|
18 |
+
} else {
|
19 |
+
$captcha_name = 'hCaptcha';
|
20 |
+
}
|
21 |
$fields = array(
|
22 |
'text' => array(
|
23 |
'name' => __( 'Text', 'formidable' ),
|
72 |
'icon' => 'frm_icon_font frm_user_icon',
|
73 |
),
|
74 |
'captcha' => array(
|
75 |
+
'name' => $captcha_name,
|
76 |
'icon' => 'frm_icon_font frm_shield_check_icon',
|
77 |
),
|
78 |
);
|
classes/models/FrmFieldCaptchaSettings.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
die( 'You are not allowed to call this page directly.' );
|
4 |
+
}
|
5 |
+
|
6 |
+
/**
|
7 |
+
* @since x.x
|
8 |
+
*/
|
9 |
+
class FrmFieldCaptchaSettings {
|
10 |
+
|
11 |
+
public $secret;
|
12 |
+
|
13 |
+
public $token_field;
|
14 |
+
|
15 |
+
public $end_point;
|
16 |
+
|
17 |
+
public function __construct( $frm_settings ) {
|
18 |
+
if ( $frm_settings->active_captcha === 'recaptcha' ) {
|
19 |
+
$this->secret = $frm_settings->privkey;
|
20 |
+
$this->token_field = 'g-recaptcha-response';
|
21 |
+
$this->endpoint = 'https://www.google.com/recaptcha/api/siteverify';
|
22 |
+
} else {
|
23 |
+
$this->secret = $frm_settings->hcaptcha_privkey;
|
24 |
+
$this->token_field = 'h-captcha-response';
|
25 |
+
$this->endpoint = 'https://hcaptcha.com/siteverify';
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
classes/models/FrmForm.php
CHANGED
@@ -727,7 +727,7 @@ class FrmForm {
|
|
727 |
FrmAppHelper::unserialize_or_decode( $cache->options );
|
728 |
}
|
729 |
|
730 |
-
return wp_unslash( $cache );
|
731 |
}
|
732 |
}
|
733 |
|
727 |
FrmAppHelper::unserialize_or_decode( $cache->options );
|
728 |
}
|
729 |
|
730 |
+
return apply_filters( 'frm_form_object', wp_unslash( $cache ) );
|
731 |
}
|
732 |
}
|
733 |
|
classes/models/FrmSettings.php
CHANGED
@@ -27,6 +27,9 @@ class FrmSettings {
|
|
27 |
public $load_style;
|
28 |
public $custom_style;
|
29 |
|
|
|
|
|
|
|
30 |
public $pubkey;
|
31 |
public $privkey;
|
32 |
public $re_lang;
|
@@ -116,7 +119,7 @@ class FrmSettings {
|
|
116 |
}
|
117 |
|
118 |
private function set_default_options() {
|
119 |
-
$this->
|
120 |
|
121 |
if ( ! isset( $this->load_style ) ) {
|
122 |
if ( ! isset( $this->custom_style ) ) {
|
@@ -179,9 +182,17 @@ class FrmSettings {
|
|
179 |
}
|
180 |
}
|
181 |
|
182 |
-
private function
|
183 |
-
$
|
184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
|
186 |
if ( ! isset( $this->pubkey ) ) {
|
187 |
// get the options from the database
|
@@ -192,7 +203,7 @@ class FrmSettings {
|
|
192 |
}
|
193 |
|
194 |
if ( ! isset( $this->re_msg ) || empty( $this->re_msg ) ) {
|
195 |
-
$this->re_msg = __( 'The
|
196 |
}
|
197 |
|
198 |
if ( ! isset( $this->privkey ) ) {
|
@@ -267,12 +278,15 @@ class FrmSettings {
|
|
267 |
}
|
268 |
|
269 |
private function update_settings( $params ) {
|
270 |
-
$this->
|
271 |
-
$this->
|
272 |
-
$this->
|
273 |
-
$this->
|
274 |
-
$this->
|
275 |
-
$this->
|
|
|
|
|
|
|
276 |
|
277 |
$checkboxes = array( 'mu_menu', 're_multi', 'use_html', 'jquery_css', 'accordion_js', 'fade_form', 'no_ips', 'tracking', 'admin_bar' );
|
278 |
foreach ( $checkboxes as $set ) {
|
27 |
public $load_style;
|
28 |
public $custom_style;
|
29 |
|
30 |
+
public $active_captcha;
|
31 |
+
public $hcaptcha_pubkey;
|
32 |
+
public $hcaptcha_privkey;
|
33 |
public $pubkey;
|
34 |
public $privkey;
|
35 |
public $re_lang;
|
119 |
}
|
120 |
|
121 |
private function set_default_options() {
|
122 |
+
$this->fill_captcha_settings();
|
123 |
|
124 |
if ( ! isset( $this->load_style ) ) {
|
125 |
if ( ! isset( $this->custom_style ) ) {
|
182 |
}
|
183 |
}
|
184 |
|
185 |
+
private function fill_captcha_settings() {
|
186 |
+
if ( ! isset( $this->active_captcha ) ) {
|
187 |
+
$this->active_captcha = 'recaptcha';
|
188 |
+
}
|
189 |
+
|
190 |
+
$privkey = '';
|
191 |
+
$re_lang = '';
|
192 |
+
|
193 |
+
if ( ! isset( $this->hcaptcha_privkey ) ) {
|
194 |
+
$this->hcaptcha_privkey = '';
|
195 |
+
}
|
196 |
|
197 |
if ( ! isset( $this->pubkey ) ) {
|
198 |
// get the options from the database
|
203 |
}
|
204 |
|
205 |
if ( ! isset( $this->re_msg ) || empty( $this->re_msg ) ) {
|
206 |
+
$this->re_msg = __( 'The CAPTCHA was not entered correctly', 'formidable' );
|
207 |
}
|
208 |
|
209 |
if ( ! isset( $this->privkey ) ) {
|
278 |
}
|
279 |
|
280 |
private function update_settings( $params ) {
|
281 |
+
$this->active_captcha = $params['frm_active_captcha'];
|
282 |
+
$this->hcaptcha_pubkey = trim( $params['frm_hcaptcha_pubkey'] );
|
283 |
+
$this->hcaptcha_privkey = $params['frm_hcaptcha_privkey'];
|
284 |
+
$this->pubkey = trim( $params['frm_pubkey'] );
|
285 |
+
$this->privkey = $params['frm_privkey'];
|
286 |
+
$this->re_type = $params['frm_re_type'];
|
287 |
+
$this->re_lang = $params['frm_re_lang'];
|
288 |
+
$this->re_threshold = floatval( $params['frm_re_threshold'] );
|
289 |
+
$this->load_style = $params['frm_load_style'];
|
290 |
|
291 |
$checkboxes = array( 'mu_menu', 're_multi', 'use_html', 'jquery_css', 'accordion_js', 'fade_form', 'no_ips', 'tracking', 'admin_bar' );
|
292 |
foreach ( $checkboxes as $set ) {
|
classes/models/fields/FrmFieldCaptcha.php
CHANGED
@@ -21,15 +21,34 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
21 |
return FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/field-captcha.php';
|
22 |
}
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
/**
|
25 |
* @return array
|
26 |
*/
|
27 |
protected function field_settings_for_type() {
|
28 |
return array(
|
29 |
-
'required'
|
30 |
-
'invalid'
|
31 |
-
'captcha_size'
|
32 |
-
'default'
|
33 |
);
|
34 |
}
|
35 |
|
@@ -64,21 +83,34 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
64 |
* @return string
|
65 |
*/
|
66 |
protected function before_replace_html_shortcodes( $args, $html ) {
|
67 |
-
|
|
|
|
|
|
|
|
|
68 |
}
|
69 |
|
70 |
public function front_field_input( $args, $shortcode_atts ) {
|
71 |
$frm_settings = FrmAppHelper::get_settings();
|
72 |
-
if (
|
73 |
return '';
|
74 |
}
|
75 |
|
76 |
-
$class_prefix = $this->class_prefix();
|
77 |
-
$
|
|
|
78 |
$allow_mutiple = $frm_settings->re_multi;
|
79 |
|
80 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
$html .= ' data-callback="frmAfterRecaptcha"';
|
83 |
}
|
84 |
$html .= '></div>';
|
@@ -89,14 +121,22 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
89 |
protected function load_field_scripts( $args ) {
|
90 |
$api_js_url = $this->api_url();
|
91 |
|
92 |
-
wp_register_script( '
|
93 |
-
wp_enqueue_script( '
|
94 |
}
|
95 |
|
96 |
protected function api_url() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
$api_js_url = 'https://www.google.com/recaptcha/api.js?';
|
98 |
|
99 |
-
$frm_settings = FrmAppHelper::get_settings();
|
100 |
$allow_mutiple = $frm_settings->re_multi;
|
101 |
if ( $allow_mutiple ) {
|
102 |
$api_js_url .= '&onload=frmRecaptcha&render=explicit';
|
@@ -107,11 +147,28 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
107 |
$api_js_url .= '&hl=' . $lang;
|
108 |
}
|
109 |
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
}
|
112 |
|
113 |
-
protected function class_prefix() {
|
114 |
-
if ( $this->allow_multiple() ) {
|
115 |
$class_prefix = 'frm-';
|
116 |
} else {
|
117 |
$class_prefix = '';
|
@@ -120,17 +177,18 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
120 |
return $class_prefix;
|
121 |
}
|
122 |
|
123 |
-
protected function
|
124 |
-
$frm_settings
|
|
|
125 |
|
|
|
126 |
return $frm_settings->re_multi;
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
* @return string
|
131 |
*/
|
132 |
-
protected function captcha_size() {
|
133 |
-
$frm_settings = FrmAppHelper::get_settings();
|
134 |
if ( in_array( $frm_settings->re_type, array( 'invisible', 'v3' ), true ) ) {
|
135 |
return 'invisible';
|
136 |
}
|
@@ -151,7 +209,7 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
151 |
|
152 |
if ( is_wp_error( $resp ) ) {
|
153 |
$error_string = $resp->get_error_message();
|
154 |
-
$errors[ 'field' . $args['id'] ] = __( 'There was a problem verifying your
|
155 |
$errors[ 'field' . $args['id'] ] .= ' ' . $error_string;
|
156 |
return $errors;
|
157 |
}
|
@@ -160,21 +218,26 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
160 |
return $errors;
|
161 |
}
|
162 |
|
163 |
-
if (
|
164 |
-
|
165 |
-
|
|
|
166 |
|
167 |
-
|
168 |
|
169 |
-
|
170 |
-
|
|
|
171 |
}
|
172 |
}
|
173 |
|
174 |
if ( isset( $response['success'] ) && ! $response['success'] ) {
|
175 |
// What happens when the CAPTCHA was entered incorrectly
|
176 |
-
$invalid_message
|
177 |
-
$
|
|
|
|
|
|
|
178 |
}
|
179 |
|
180 |
return $errors;
|
@@ -205,7 +268,7 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
205 |
}
|
206 |
|
207 |
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
208 |
-
if ( ! isset( $_POST['g-recaptcha-response'] ) ) {
|
209 |
// There was no captcha submitted.
|
210 |
return array( 'field' . $args['id'] => __( 'The captcha is missing from this form', 'formidable' ) );
|
211 |
}
|
@@ -217,9 +280,13 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
217 |
* @since 4.07
|
218 |
* @return bool
|
219 |
*/
|
220 |
-
|
221 |
$frm_settings = FrmAppHelper::get_settings();
|
222 |
-
|
|
|
|
|
|
|
|
|
223 |
}
|
224 |
|
225 |
protected function should_validate() {
|
@@ -229,18 +296,40 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
229 |
}
|
230 |
|
231 |
// don't require the captcha if it shouldn't be shown
|
232 |
-
return
|
233 |
}
|
234 |
|
235 |
protected function send_api_check( $frm_settings ) {
|
|
|
|
|
236 |
$arg_array = array(
|
237 |
'body' => array(
|
238 |
-
'secret' => $
|
239 |
-
'response' => FrmAppHelper::get_param(
|
240 |
'remoteip' => FrmAppHelper::get_ip_address(),
|
241 |
),
|
242 |
);
|
243 |
|
244 |
-
return wp_remote_post(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
}
|
246 |
}
|
21 |
return FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/field-captcha.php';
|
22 |
}
|
23 |
|
24 |
+
/**
|
25 |
+
* Returns the image name for a captcha.
|
26 |
+
*
|
27 |
+
* @return string
|
28 |
+
*/
|
29 |
+
public static function get_captcha_image_name() {
|
30 |
+
$frm_settings = FrmAppHelper::get_settings();
|
31 |
+
$active_captcha = $frm_settings->active_captcha;
|
32 |
+
if ( ! self::should_show_captcha() ) {
|
33 |
+
$image_name = 'captcha_not_setup';
|
34 |
+
} elseif ( $active_captcha === 'recaptcha' && $frm_settings->re_type === 'v3' ) {
|
35 |
+
$image_name = 'recaptcha_v3';
|
36 |
+
} else {
|
37 |
+
$image_name = $active_captcha;
|
38 |
+
}
|
39 |
+
|
40 |
+
return $image_name;
|
41 |
+
}
|
42 |
+
|
43 |
/**
|
44 |
* @return array
|
45 |
*/
|
46 |
protected function field_settings_for_type() {
|
47 |
return array(
|
48 |
+
'required' => false,
|
49 |
+
'invalid' => true,
|
50 |
+
'captcha_size' => true,
|
51 |
+
'default' => false,
|
52 |
);
|
53 |
}
|
54 |
|
83 |
* @return string
|
84 |
*/
|
85 |
protected function before_replace_html_shortcodes( $args, $html ) {
|
86 |
+
$frm_settings = FrmAppHelper::get_settings();
|
87 |
+
$replace_response = $frm_settings->active_captcha === 'recaptcha' ? 'g-recaptcha-response' : 'h-captcha-response';
|
88 |
+
$replaced_for = str_replace( ' for="field_[key]"', ' for="' . $replace_response . '"', $html );
|
89 |
+
|
90 |
+
return $replaced_for;
|
91 |
}
|
92 |
|
93 |
public function front_field_input( $args, $shortcode_atts ) {
|
94 |
$frm_settings = FrmAppHelper::get_settings();
|
95 |
+
if ( ! self::should_show_captcha() ) {
|
96 |
return '';
|
97 |
}
|
98 |
|
99 |
+
$class_prefix = $this->class_prefix( $frm_settings );
|
100 |
+
$captcha_class = $this->captcha_class( $frm_settings );
|
101 |
+
$captcha_size = $this->captcha_size( $frm_settings );
|
102 |
$allow_mutiple = $frm_settings->re_multi;
|
103 |
|
104 |
+
if ( $frm_settings->active_captcha === 'recaptcha' ) {
|
105 |
+
$site_key = $frm_settings->pubkey;
|
106 |
+
$recaptcha_options = '" data-size="' . esc_attr( $captcha_size ) . '" data-theme="' . esc_attr( $this->field['captcha_theme'] ) . '"';
|
107 |
+
} else {
|
108 |
+
$site_key = $frm_settings->hcaptcha_pubkey;
|
109 |
+
}
|
110 |
+
|
111 |
+
$html = '<div id="' . esc_attr( $args['html_id'] ) . '" class="' . esc_attr( $class_prefix ) . $captcha_class . '" data-sitekey="' . esc_attr( $site_key ) . '"';
|
112 |
+
$html .= ! empty( $recaptcha_options ) ? $recaptcha_options : '';
|
113 |
+
if ( $captcha_size === 'invisible' && ! $allow_mutiple ) {
|
114 |
$html .= ' data-callback="frmAfterRecaptcha"';
|
115 |
}
|
116 |
$html .= '></div>';
|
121 |
protected function load_field_scripts( $args ) {
|
122 |
$api_js_url = $this->api_url();
|
123 |
|
124 |
+
wp_register_script( 'captcha-api', $api_js_url, array( 'formidable' ), '3', true );
|
125 |
+
wp_enqueue_script( 'captcha-api' );
|
126 |
}
|
127 |
|
128 |
protected function api_url() {
|
129 |
+
$frm_settings = FrmAppHelper::get_settings();
|
130 |
+
if ( $frm_settings->active_captcha === 'recaptcha' ) {
|
131 |
+
return $this->recaptcha_api_url( $frm_settings );
|
132 |
+
}
|
133 |
+
|
134 |
+
return $this->hcaptcha_api_url();
|
135 |
+
}
|
136 |
+
|
137 |
+
protected function recaptcha_api_url( $frm_settings ) {
|
138 |
$api_js_url = 'https://www.google.com/recaptcha/api.js?';
|
139 |
|
|
|
140 |
$allow_mutiple = $frm_settings->re_multi;
|
141 |
if ( $allow_mutiple ) {
|
142 |
$api_js_url .= '&onload=frmRecaptcha&render=explicit';
|
147 |
$api_js_url .= '&hl=' . $lang;
|
148 |
}
|
149 |
|
150 |
+
$api_js_url = apply_filters( 'frm_recaptcha_js_url', $api_js_url );
|
151 |
+
|
152 |
+
return $api_js_url;
|
153 |
+
}
|
154 |
+
|
155 |
+
protected function hcaptcha_api_url() {
|
156 |
+
$api_js_url = 'https://js.hcaptcha.com/1/api.js';
|
157 |
+
|
158 |
+
/**
|
159 |
+
* Allows updating hcaptcha js api url.
|
160 |
+
*
|
161 |
+
* @since x.x
|
162 |
+
*
|
163 |
+
* @param string $api_js_url
|
164 |
+
*/
|
165 |
+
$api_js_url = apply_filters( 'frm_hcaptcha_js_url', $api_js_url );
|
166 |
+
|
167 |
+
return $api_js_url;
|
168 |
}
|
169 |
|
170 |
+
protected function class_prefix( $frm_settings ) {
|
171 |
+
if ( $this->allow_multiple( $frm_settings ) && $frm_settings->active_captcha === 'recaptcha' ) {
|
172 |
$class_prefix = 'frm-';
|
173 |
} else {
|
174 |
$class_prefix = '';
|
177 |
return $class_prefix;
|
178 |
}
|
179 |
|
180 |
+
protected function captcha_class( $frm_settings ) {
|
181 |
+
return $frm_settings->active_captcha === 'recaptcha' ? 'g-recaptcha' : 'h-captcha';
|
182 |
+
}
|
183 |
|
184 |
+
protected function allow_multiple( $frm_settings ) {
|
185 |
return $frm_settings->re_multi;
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
* @return string
|
190 |
*/
|
191 |
+
protected function captcha_size( $frm_settings ) {
|
|
|
192 |
if ( in_array( $frm_settings->re_type, array( 'invisible', 'v3' ), true ) ) {
|
193 |
return 'invisible';
|
194 |
}
|
209 |
|
210 |
if ( is_wp_error( $resp ) ) {
|
211 |
$error_string = $resp->get_error_message();
|
212 |
+
$errors[ 'field' . $args['id'] ] = __( 'There was a problem verifying your captcha', 'formidable' );
|
213 |
$errors[ 'field' . $args['id'] ] .= ' ' . $error_string;
|
214 |
return $errors;
|
215 |
}
|
218 |
return $errors;
|
219 |
}
|
220 |
|
221 |
+
if ( $frm_settings->active_captcha === 'recaptcha' ) {
|
222 |
+
if ( 'v3' === $frm_settings->re_type && array_key_exists( 'score', $response ) ) {
|
223 |
+
$threshold = floatval( $frm_settings->re_threshold );
|
224 |
+
$score = floatval( $response['score'] );
|
225 |
|
226 |
+
$this->set_score( $score );
|
227 |
|
228 |
+
if ( $score < $threshold ) {
|
229 |
+
$response['success'] = false;
|
230 |
+
}
|
231 |
}
|
232 |
}
|
233 |
|
234 |
if ( isset( $response['success'] ) && ! $response['success'] ) {
|
235 |
// What happens when the CAPTCHA was entered incorrectly
|
236 |
+
$invalid_message = FrmField::get_option( $this->field, 'invalid' );
|
237 |
+
if ( $invalid_message === __( 'The reCAPTCHA was not entered correctly', 'formidable' ) ) {
|
238 |
+
$invalid_message = '';
|
239 |
+
}
|
240 |
+
$errors[ 'field' . $args['id'] ] = ( $invalid_message === '' ? $frm_settings->re_msg : $invalid_message );
|
241 |
}
|
242 |
|
243 |
return $errors;
|
268 |
}
|
269 |
|
270 |
// phpcs:ignore WordPress.Security.NonceVerification.Missing
|
271 |
+
if ( ! isset( $_POST['g-recaptcha-response'] ) && ! isset( $_POST['h-captcha-response'] ) ) {
|
272 |
// There was no captcha submitted.
|
273 |
return array( 'field' . $args['id'] => __( 'The captcha is missing from this form', 'formidable' ) );
|
274 |
}
|
280 |
* @since 4.07
|
281 |
* @return bool
|
282 |
*/
|
283 |
+
public static function should_show_captcha() {
|
284 |
$frm_settings = FrmAppHelper::get_settings();
|
285 |
+
if ( $frm_settings->active_captcha === 'recaptcha' ) {
|
286 |
+
return ! empty( $frm_settings->pubkey );
|
287 |
+
}
|
288 |
+
|
289 |
+
return ! empty( $frm_settings->hcaptcha_pubkey );
|
290 |
}
|
291 |
|
292 |
protected function should_validate() {
|
296 |
}
|
297 |
|
298 |
// don't require the captcha if it shouldn't be shown
|
299 |
+
return self::should_show_captcha();
|
300 |
}
|
301 |
|
302 |
protected function send_api_check( $frm_settings ) {
|
303 |
+
$captcha_settings = new FrmFieldCaptchaSettings( $frm_settings );
|
304 |
+
|
305 |
$arg_array = array(
|
306 |
'body' => array(
|
307 |
+
'secret' => $captcha_settings->secret,
|
308 |
+
'response' => FrmAppHelper::get_param( $captcha_settings->token_field, '', 'post', 'sanitize_text_field' ),
|
309 |
'remoteip' => FrmAppHelper::get_ip_address(),
|
310 |
),
|
311 |
);
|
312 |
|
313 |
+
return wp_remote_post( $captcha_settings->endpoint, $arg_array );
|
314 |
+
}
|
315 |
+
|
316 |
+
/**
|
317 |
+
* Updates field name in page builder to the currently activated captcha if it is set to the default.
|
318 |
+
*
|
319 |
+
* @since x.x
|
320 |
+
*
|
321 |
+
* @param array $values
|
322 |
+
*
|
323 |
+
* @return array $values
|
324 |
+
*/
|
325 |
+
public static function update_field_name( $values ) {
|
326 |
+
if ( $values['type'] === 'captcha' ) {
|
327 |
+
$name = $values['name'];
|
328 |
+
if ( in_array( $name, array( __( 'reCAPTCHA', 'formidable' ), __( 'hCaptcha', 'formidable' ) ), true ) ) {
|
329 |
+
$values['name'] = __( 'CAPTCHA', 'formidable' );
|
330 |
+
}
|
331 |
+
}
|
332 |
+
|
333 |
+
return $values;
|
334 |
}
|
335 |
}
|
classes/views/frm-fields/back-end/field-captcha.php
CHANGED
@@ -3,13 +3,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
3 |
die( 'You are not allowed to call this page directly.' );
|
4 |
}
|
5 |
|
6 |
-
$
|
7 |
-
|
8 |
-
|
9 |
-
<div class="howto frm_no_captcha_text"><?php
|
10 |
-
/* translators: %1$s: Link HTML, %2$s: End link */
|
11 |
-
printf( esc_html__( 'Your captcha will not appear on your form until you %1$sset up%2$s the Site and Secret Keys', 'formidable' ), '<a href="?page=formidable-settings" target="_blank">', '</a>' );
|
12 |
-
?></div>
|
13 |
-
<?php } ?>
|
14 |
-
<img src="<?php echo esc_url( FrmAppHelper::plugin_url() . '/images/recaptcha.png' ); ?>" class="recaptcha_placeholder" alt="reCaptcha"/>
|
15 |
<input type="hidden" name="<?php echo esc_attr( $field_name ); ?>" value="1" />
|
3 |
die( 'You are not allowed to call this page directly.' );
|
4 |
}
|
5 |
|
6 |
+
$image_name = FrmFieldCaptcha::get_captcha_image_name();
|
7 |
+
?>
|
8 |
+
<img src="<?php echo esc_url( FrmAppHelper::plugin_url() . '/images/' . $image_name . '.png' ); ?>" class="<?php echo esc_attr( $image_name ); ?>_placeholder" alt="<?php echo esc_attr( $image_name ); ?>"/>
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
<input type="hidden" name="<?php echo esc_attr( $field_name ); ?>" value="1" />
|
classes/views/frm-fields/back-end/settings.php
CHANGED
@@ -21,6 +21,21 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
21 |
</h3>
|
22 |
|
23 |
<div class="frm_grid_container frm-collapse-me">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
<?php if ( $display['label'] ) { ?>
|
25 |
<p>
|
26 |
<label for="frm_name_<?php echo esc_attr( $field['id'] ); ?>">
|
@@ -226,7 +241,7 @@ do_action( 'frm_before_field_options', $field, compact( 'field_obj', 'display',
|
|
226 |
</p>
|
227 |
<?php } ?>
|
228 |
|
229 |
-
<?php if ( $display['captcha_size'] && $frm_settings->re_type !== 'invisible' ) { ?>
|
230 |
<p class="frm6 frm_first frm_form_field">
|
231 |
<label for="field_options_captcha_size_<?php echo esc_attr( $field['id'] ); ?>" class="frm_help" title="<?php esc_attr_e( 'Set the size of the captcha field. The compact option is best if your form is in a small area.', 'formidable' ); ?>">
|
232 |
<?php esc_html_e( 'ReCaptcha Type', 'formidable' ); ?>
|
21 |
</h3>
|
22 |
|
23 |
<div class="frm_grid_container frm-collapse-me">
|
24 |
+
<?php
|
25 |
+
if ( $field['type'] === 'captcha' && ! FrmFieldCaptcha::should_show_captcha() ) {
|
26 |
+
?>
|
27 |
+
<div class="frm_builder_captcha frm_warning_style">
|
28 |
+
<?php FrmAppHelper::icon_by_class( 'frm_icon_font frm_alert_icon' ); ?>
|
29 |
+
<div><b><?php echo esc_html__( 'Setup a captcha', 'formidable' ); ?></b>
|
30 |
+
<p>
|
31 |
+
<?php
|
32 |
+
/* translators: %1$s: Link HTML, %2$s: End link */
|
33 |
+
printf( esc_html__( 'Your captcha will not appear on your form until you %1$sset up%2$s the Site and Secret Keys', 'formidable' ), '<a href="?page=formidable-settings" target="_blank">', '</a>' );
|
34 |
+
?>
|
35 |
+
</p>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
<?php } ?>
|
39 |
<?php if ( $display['label'] ) { ?>
|
40 |
<p>
|
41 |
<label for="frm_name_<?php echo esc_attr( $field['id'] ); ?>">
|
241 |
</p>
|
242 |
<?php } ?>
|
243 |
|
244 |
+
<?php if ( $display['captcha_size'] && $frm_settings->re_type !== 'invisible' && $frm_settings->active_captcha === 'recaptcha' ) { ?>
|
245 |
<p class="frm6 frm_first frm_form_field">
|
246 |
<label for="field_options_captcha_size_<?php echo esc_attr( $field['id'] ); ?>" class="frm_help" title="<?php esc_attr_e( 'Set the size of the captcha field. The compact option is best if your form is in a small area.', 'formidable' ); ?>">
|
247 |
<?php esc_html_e( 'ReCaptcha Type', 'formidable' ); ?>
|
classes/views/frm-settings/captcha/captcha.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
die( 'You are not allowed to call this page directly.' );
|
4 |
+
}
|
5 |
+
?>
|
6 |
+
<p class="howto">
|
7 |
+
<?php
|
8 |
+
esc_html_e( 'Captcha will help you to avoid gathering automatically generated responses', 'formidable' );
|
9 |
+
?>
|
10 |
+
</p>
|
11 |
+
<?php
|
12 |
+
$active_captcha = $frm_settings->active_captcha;
|
13 |
+
$recaptcha_is_active = $active_captcha === 'recaptcha';
|
14 |
+
?>
|
15 |
+
<h4><?php esc_html_e( 'Select captcha type', 'formidable' ); ?></h4>
|
16 |
+
<div class="frm_captchas">
|
17 |
+
<div class="frm_radio">
|
18 |
+
<div class="captcha_option <?php echo esc_attr( $recaptcha_is_active ? 'active' : '' ); ?>">
|
19 |
+
<input type="radio" name="frm_active_captcha" id="recaptcha" value="recaptcha" <?php checked( $frm_settings->active_captcha, 'recaptcha' ); ?> />
|
20 |
+
<label for="recaptcha">
|
21 |
+
<?php
|
22 |
+
FrmAppHelper::icon_by_class( 'frmfont frm_recaptcha' );
|
23 |
+
?>
|
24 |
+
<p><?php echo esc_html_e( 'reCAPTCHA', 'formidable' ); ?></p>
|
25 |
+
</label>
|
26 |
+
</div>
|
27 |
+
<div class="captcha_option <?php echo esc_attr( $recaptcha_is_active ? '' : 'active' ); ?>">
|
28 |
+
<input type="radio" name="frm_active_captcha" id="hcaptcha" value="hcaptcha" <?php checked( $frm_settings->active_captcha, 'hcaptcha' ); ?> />
|
29 |
+
<label for="hcaptcha">
|
30 |
+
<?php
|
31 |
+
FrmAppHelper::icon_by_class( 'frmfont frm_hcaptcha' );
|
32 |
+
?>
|
33 |
+
<p><?php echo esc_html_e( 'hCaptcha', 'formidable' ); ?></p>
|
34 |
+
</label>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
|
39 |
+
<div class="alert frm_hidden">
|
40 |
+
<?php FrmAppHelper::icon_by_class( 'frm_icon_font frm_tooltip_icon' ); ?>
|
41 |
+
<span><?php esc_html_e( 'Changing the captcha type here will replace it in all any forms where it is used.', 'formidable' ); ?></span>
|
42 |
+
</div>
|
43 |
+
|
44 |
+
<div id="recaptcha_settings" class="frm_grid_container <?php echo esc_attr( $recaptcha_is_active ? '' : 'frm_hidden' ); ?>">
|
45 |
+
<h3><?php esc_html_e( 'reCAPTCHA Settings', 'formidable' ); ?></h3>
|
46 |
+
<?php
|
47 |
+
$captcha = 'recaptcha';
|
48 |
+
require FrmAppHelper::plugin_path() . '/classes/views/frm-settings/captcha/captcha_keys.php';
|
49 |
+
?>
|
50 |
+
|
51 |
+
<p class="frm6 frm_form_field">
|
52 |
+
<label for="frm_re_type">
|
53 |
+
<?php esc_html_e( 'reCAPTCHA Type', 'formidable' ); ?>
|
54 |
+
</label>
|
55 |
+
<select name="frm_re_type" id="frm_re_type">
|
56 |
+
<option value="" <?php selected( $frm_settings->re_type, '' ); ?>>
|
57 |
+
<?php esc_html_e( 'Checkbox (V2)', 'formidable' ); ?>
|
58 |
+
</option>
|
59 |
+
<option value="invisible" <?php selected( $frm_settings->re_type, 'invisible' ); ?>>
|
60 |
+
<?php esc_html_e( 'Invisible', 'formidable' ); ?>
|
61 |
+
</option>
|
62 |
+
<option value="v3" <?php selected( $frm_settings->re_type, 'v3' ); ?>>
|
63 |
+
<?php esc_html_e( 'v3', 'formidable' ); ?>
|
64 |
+
</option>
|
65 |
+
</select>
|
66 |
+
</p>
|
67 |
+
|
68 |
+
<p class="frm6 frm_form_field">
|
69 |
+
<label for="frm_re_lang">
|
70 |
+
<?php esc_html_e( 'reCAPTCHA Language', 'formidable' ); ?>
|
71 |
+
</label>
|
72 |
+
<select name="frm_re_lang" id="frm_re_lang">
|
73 |
+
<option value="" <?php selected( $frm_settings->re_lang, '' ); ?>>
|
74 |
+
<?php esc_html_e( 'Browser Default', 'formidable' ); ?>
|
75 |
+
</option>
|
76 |
+
<?php foreach ( $captcha_lang as $lang => $lang_name ) { ?>
|
77 |
+
<option value="<?php echo esc_attr( $lang ); ?>" <?php selected( $frm_settings->re_lang, $lang ); ?>>
|
78 |
+
<?php echo esc_html( $lang_name ); ?>
|
79 |
+
</option>
|
80 |
+
<?php } ?>
|
81 |
+
</select>
|
82 |
+
</p>
|
83 |
+
|
84 |
+
<p id="frm_captcha_threshold_container" class="frm6 frm_form_field <?php echo 'v3' === $frm_settings->re_type ? '' : 'frm_hidden'; ?>">
|
85 |
+
<label for="frm_re_type">
|
86 |
+
<?php esc_html_e( 'reCAPTCHA Threshold', 'formidable' ); ?>
|
87 |
+
<span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'A score of 0 is likely to be a bot and a score of 1 is likely not a bot. Setting a lower threshold will allow more bots, but it will also stop fewer real users.', 'formidable' ); ?>"></span>
|
88 |
+
</label>
|
89 |
+
<span style="vertical-align:top;">0</span>
|
90 |
+
<input name="frm_re_threshold" id="frm_re_threshold" type="range" step="0.1" max="1" min="0" value="<?php echo esc_attr( $frm_settings->re_threshold ); ?>" />
|
91 |
+
<span style="vertical-align:top;">1</span>
|
92 |
+
</p>
|
93 |
+
|
94 |
+
<p>
|
95 |
+
<label for="frm_re_multi">
|
96 |
+
<input type="checkbox" name="frm_re_multi" id="frm_re_multi"
|
97 |
+
value="1" <?php checked( $frm_settings->re_multi, 1 ); ?> />
|
98 |
+
<?php esc_html_e( 'Allow multiple reCAPTCHAs to be used on a single page', 'formidable' ); ?>
|
99 |
+
</label>
|
100 |
+
</p>
|
101 |
+
</div>
|
102 |
+
|
103 |
+
<div id="hcaptcha_settings" class="frm_grid_container <?php echo esc_attr( $recaptcha_is_active ? 'frm_hidden' : '' ); ?>">
|
104 |
+
<h3><?php esc_html_e( 'hCaptcha Settings', 'formidable' ); ?></h3>
|
105 |
+
<?php
|
106 |
+
$captcha = 'hcaptcha';
|
107 |
+
require FrmAppHelper::plugin_path() . '/classes/views/frm-settings/captcha/captcha_keys.php';
|
108 |
+
?>
|
109 |
+
</div>
|
classes/views/frm-settings/captcha/captcha_keys.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
+
die( 'You are not allowed to call this page directly.' );
|
4 |
+
}
|
5 |
+
?>
|
6 |
+
|
7 |
+
<p class="howto">
|
8 |
+
<?php
|
9 |
+
$captcha_name = $captcha === 'recaptcha' ? 'reCAPTCHA' : 'hCaptcha';
|
10 |
+
if ( $captcha === 'recaptcha' ) {
|
11 |
+
$captcha_name = 'reCAPTCHA';
|
12 |
+
$captcha_api = 'https://www.google.com/recaptcha/';
|
13 |
+
} else {
|
14 |
+
$captcha_name = 'hCaptcha';
|
15 |
+
$captcha_api = 'https://www.hcaptcha.com/signup-interstitial';
|
16 |
+
}
|
17 |
+
printf(
|
18 |
+
/* translators: %1$s: Captcha name, %2$s: Start link HTML, %3$s: End link HTML */
|
19 |
+
esc_html__( '%1$s requires a Site and Private API key. Sign up for a %2$sfree %1$s key%3$s.', 'formidable' ),
|
20 |
+
esc_html( $captcha_name ),
|
21 |
+
'<a href="' . esc_url( $captcha_api ) . '" target="_blank">',
|
22 |
+
'</a>'
|
23 |
+
);
|
24 |
+
?>
|
25 |
+
</p>
|
26 |
+
<?php
|
27 |
+
if ( $captcha === 'recaptcha' ) {
|
28 |
+
$prefix = '';
|
29 |
+
$title = __( 'reCAPTCHA is a free, accessible CAPTCHA service that helps to digitize books while blocking spam on your blog. reCAPTCHA asks commenters to retype two words scanned from a book to prove that they are a human. This verifies that they are not a spambot.', 'formidable' );
|
30 |
+
} else {
|
31 |
+
$prefix = 'hcaptcha_';
|
32 |
+
$title = __( 'hCaptcha is an anti-bot solution that protects user privacy and rewards websites. It is a privacy-focused drop-in replacement for reCAPTCHA.', 'formidable' );
|
33 |
+
}
|
34 |
+
?>
|
35 |
+
<p class="frm6 frm_form_field">
|
36 |
+
<label class="frm_help" for="frm_<?php echo esc_attr( $prefix ); ?>pubkey" title="<?php echo esc_attr( $title ); ?>">
|
37 |
+
<?php esc_html_e( 'Site Key', 'formidable' ); ?>
|
38 |
+
</label>
|
39 |
+
<input type="text" name="frm_<?php echo esc_html( $prefix ); ?>pubkey" id="frm_<?php echo esc_html( $prefix ); ?>pubkey" size="42" value="<?php echo esc_attr( $frm_settings->{$prefix . 'pubkey'} ); ?>" />
|
40 |
+
</p>
|
41 |
+
|
42 |
+
<p class="frm6 frm_form_field">
|
43 |
+
<label for="frm_<?php echo esc_attr( $prefix ); ?>privkey">
|
44 |
+
<?php esc_html_e( 'Secret Key', 'formidable' ); ?>
|
45 |
+
</label>
|
46 |
+
<input type="text" name="frm_<?php echo esc_html( $prefix ); ?>privkey" id="frm_<?php echo esc_html( $prefix ); ?>privkey" size="42" value="<?php echo esc_attr( $frm_settings->{$prefix . 'privkey'} ); ?>" />
|
47 |
+
</p>
|
classes/views/frm-settings/recaptcha.php
CHANGED
@@ -2,81 +2,7 @@
|
|
2 |
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
die( 'You are not allowed to call this page directly.' );
|
4 |
}
|
5 |
-
?>
|
6 |
-
<p class="howto">
|
7 |
-
<?php
|
8 |
-
printf(
|
9 |
-
/* translators: %1$s: Start link HTML, %2$s: End link HTML */
|
10 |
-
esc_html__( 'reCAPTCHA requires a Site and Private API key. Sign up for a %1$sfree reCAPTCHA key%2$s.', 'formidable' ),
|
11 |
-
'<a href="' . esc_url( 'https://www.google.com/recaptcha/' ) . '" target="_blank">',
|
12 |
-
'</a>'
|
13 |
-
);
|
14 |
-
?>
|
15 |
-
</p>
|
16 |
|
17 |
-
|
18 |
-
<p class="frm6 frm_form_field">
|
19 |
-
<label class="frm_help" for="frm_pubkey" title="<?php esc_attr_e( 'reCAPTCHA is a free, accessible CAPTCHA service that helps to digitize books while blocking spam on your blog. reCAPTCHA asks commenters to retype two words scanned from a book to prove that they are a human. This verifies that they are not a spambot.', 'formidable' ); ?>">
|
20 |
-
<?php esc_html_e( 'Site Key', 'formidable' ); ?>
|
21 |
-
</label>
|
22 |
-
<input type="text" name="frm_pubkey" id="frm_pubkey" size="42" value="<?php echo esc_attr( $frm_settings->pubkey ); ?>" />
|
23 |
-
</p>
|
24 |
|
25 |
-
|
26 |
-
<label for="frm_privkey">
|
27 |
-
<?php esc_html_e( 'Secret Key', 'formidable' ); ?>
|
28 |
-
</label>
|
29 |
-
<input type="text" name="frm_privkey" id="frm_privkey" size="42" value="<?php echo esc_attr( $frm_settings->privkey ); ?>" />
|
30 |
-
</p>
|
31 |
-
|
32 |
-
<p class="frm6 frm_form_field">
|
33 |
-
<label for="frm_re_type">
|
34 |
-
<?php esc_html_e( 'reCAPTCHA Type', 'formidable' ); ?>
|
35 |
-
</label>
|
36 |
-
<select name="frm_re_type" id="frm_re_type">
|
37 |
-
<option value="" <?php selected( $frm_settings->re_type, '' ); ?>>
|
38 |
-
<?php esc_html_e( 'Checkbox (V2)', 'formidable' ); ?>
|
39 |
-
</option>
|
40 |
-
<option value="invisible" <?php selected( $frm_settings->re_type, 'invisible' ); ?>>
|
41 |
-
<?php esc_html_e( 'Invisible', 'formidable' ); ?>
|
42 |
-
</option>
|
43 |
-
<option value="v3" <?php selected( $frm_settings->re_type, 'v3' ); ?>>
|
44 |
-
<?php esc_html_e( 'v3', 'formidable' ); ?>
|
45 |
-
</option>
|
46 |
-
</select>
|
47 |
-
</p>
|
48 |
-
|
49 |
-
<p class="frm6 frm_form_field">
|
50 |
-
<label for="frm_re_lang">
|
51 |
-
<?php esc_html_e( 'reCAPTCHA Language', 'formidable' ); ?>
|
52 |
-
</label>
|
53 |
-
<select name="frm_re_lang" id="frm_re_lang">
|
54 |
-
<option value="" <?php selected( $frm_settings->re_lang, '' ); ?>>
|
55 |
-
<?php esc_html_e( 'Browser Default', 'formidable' ); ?>
|
56 |
-
</option>
|
57 |
-
<?php foreach ( $captcha_lang as $lang => $lang_name ) { ?>
|
58 |
-
<option value="<?php echo esc_attr( $lang ); ?>" <?php selected( $frm_settings->re_lang, $lang ); ?>>
|
59 |
-
<?php echo esc_html( $lang_name ); ?>
|
60 |
-
</option>
|
61 |
-
<?php } ?>
|
62 |
-
</select>
|
63 |
-
</p>
|
64 |
-
|
65 |
-
<p id="frm_captcha_threshold_container" class="frm6 frm_form_field <?php echo 'v3' === $frm_settings->re_type ? '' : 'frm_hidden'; ?>">
|
66 |
-
<label for="frm_re_type">
|
67 |
-
<?php esc_html_e( 'reCAPTCHA Threshold', 'formidable' ); ?>
|
68 |
-
<span class="frm_help frm_icon_font frm_tooltip_icon" title="<?php esc_attr_e( 'A score of 0 is likely to be a bot and a score of 1 is likely not a bot. Setting a lower threshold will allow more bots, but it will also stop fewer real users.', 'formidable' ); ?>"></span>
|
69 |
-
</label>
|
70 |
-
<span style="vertical-align:top;">0</span>
|
71 |
-
<input name="frm_re_threshold" id="frm_re_threshold" type="range" step="0.1" max="1" min="0" value="<?php echo esc_attr( $frm_settings->re_threshold ); ?>" />
|
72 |
-
<span style="vertical-align:top;">1</span>
|
73 |
-
</p>
|
74 |
-
|
75 |
-
<p>
|
76 |
-
<label for="frm_re_multi">
|
77 |
-
<input type="checkbox" name="frm_re_multi" id="frm_re_multi"
|
78 |
-
value="1" <?php checked( $frm_settings->re_multi, 1 ); ?> />
|
79 |
-
<?php esc_html_e( 'Allow multiple reCAPTCHAs to be used on a single page', 'formidable' ); ?>
|
80 |
-
</label>
|
81 |
-
</p>
|
82 |
-
</div>
|
2 |
if ( ! defined( 'ABSPATH' ) ) {
|
3 |
die( 'You are not allowed to call this page directly.' );
|
4 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
+
_deprecated_file( esc_html( basename( __FILE__ ) ), 'x.x', 'formidable/classes/views/frm-settings/captcha/captcha.php' );
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
+
include FrmAppHelper::plugin_path() . '/classes/views/frm-settings/captcha/captcha.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/frm_admin.css
CHANGED
@@ -239,9 +239,9 @@ td.column-title .frm_actions_dropdown {
|
|
239 |
}
|
240 |
|
241 |
.frm-upgrade-bar {
|
242 |
-
background:
|
243 |
border-bottom: 1px solid var(--sidebar-hover);
|
244 |
-
padding: 3px 0 3px
|
245 |
font-size: 95%;
|
246 |
}
|
247 |
|
@@ -1526,17 +1526,17 @@ form .frm_blank_field label {
|
|
1526 |
|
1527 |
.frm_error_style,
|
1528 |
.frm_warning_style,
|
|
|
1529 |
.frm_message,
|
1530 |
#post-body-content .frm_updated_message,
|
1531 |
div.frm_updated_message {
|
1532 |
-
border-radius: var(--
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
padding: 5px 25px;
|
1537 |
font-size: 14px;
|
1538 |
margin: 5px 0 15px;
|
1539 |
-
text-align:
|
1540 |
}
|
1541 |
|
1542 |
#frm_top_bar + .wrap > .frm_updated_message, #frm_top_bar + .wrap > .frm_warning_style {
|
@@ -1549,19 +1549,17 @@ div.frm_updated_message {
|
|
1549 |
margin: 5px 65px;
|
1550 |
}
|
1551 |
|
1552 |
-
#form_global_settings .frm_updated_message {
|
1553 |
margin: 5px 25px;
|
1554 |
}
|
1555 |
|
1556 |
.frm_error_style {
|
1557 |
color: #973937;
|
1558 |
-
|
1559 |
-
background-color: #F2DEDE;
|
1560 |
clear: both;
|
1561 |
}
|
1562 |
|
1563 |
.frm_error_style a {
|
1564 |
-
color: #973937;
|
1565 |
text-decoration: underline;
|
1566 |
font-weight: 600;
|
1567 |
}
|
@@ -1571,12 +1569,8 @@ div.frm_updated_message {
|
|
1571 |
}
|
1572 |
|
1573 |
.frm_warning_style {
|
1574 |
-
color: #
|
1575 |
-
|
1576 |
-
background-color: #FDF9E3;
|
1577 |
-
border-radius: 10px;
|
1578 |
-
text-align: left;
|
1579 |
-
padding-top: 5px;
|
1580 |
}
|
1581 |
|
1582 |
.frm_warning_heading{
|
@@ -1584,11 +1578,16 @@ div.frm_updated_message {
|
|
1584 |
margin-bottom:4px;
|
1585 |
}
|
1586 |
|
|
|
|
|
|
|
|
|
|
|
1587 |
.frm-banner-alert {
|
1588 |
text-align: left;
|
1589 |
margin: 0;
|
1590 |
border-radius: 0;
|
1591 |
-
padding: 10px 0 10px
|
1592 |
}
|
1593 |
|
1594 |
.frm-banner-alert a {
|
@@ -1618,6 +1617,7 @@ div.frm_updated_message {
|
|
1618 |
}
|
1619 |
|
1620 |
.frm-inline-message a {
|
|
|
1621 |
font-weight: 600;
|
1622 |
color: var(--primary-hover);
|
1623 |
}
|
@@ -1835,7 +1835,7 @@ h2.frm-h2 + .howto {
|
|
1835 |
overflow: visible;
|
1836 |
}
|
1837 |
|
1838 |
-
.frm-admin-page-formidableedit #wpbody-content > *:not(.frm-review-notice):not(.frm_previous_install),
|
1839 |
#wpbody-content > .updated,
|
1840 |
#wpbody-content > #update-nag,
|
1841 |
#wpbody-content > .update-nag,
|
@@ -2295,10 +2295,6 @@ h2.frm-h2 + .howto {
|
|
2295 |
padding: 15px 20px;
|
2296 |
}
|
2297 |
|
2298 |
-
#frm-create-footer .frm_error_style {
|
2299 |
-
border-radius: 6px;
|
2300 |
-
}
|
2301 |
-
|
2302 |
#frm_code_from_email_options {
|
2303 |
margin-top: 20px;
|
2304 |
}
|
@@ -2585,7 +2581,6 @@ a.frm_pro_tip:hover .frmsvg {
|
|
2585 |
|
2586 |
.frm_field_list .frm_pro_tip {
|
2587 |
margin: 10px 15px;
|
2588 |
-
padding-left: 40px;
|
2589 |
position: relative;
|
2590 |
width: calc(100% - 30px);
|
2591 |
box-sizing: border-box;
|
@@ -4429,6 +4424,94 @@ label.frm-example-icon {
|
|
4429 |
display: inline-block !important;
|
4430 |
}
|
4431 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4432 |
.frm-example-icon .frmsvg,
|
4433 |
.frm-example-icon i {
|
4434 |
height: 20px;
|
@@ -5548,6 +5631,7 @@ span.howto {
|
|
5548 |
|
5549 |
.frm_wrap .google-visualization-table-tr-head,
|
5550 |
.frm_wrap .google-visualization-table-tr-head th {
|
|
|
5551 |
font-size: 16px;
|
5552 |
font-weight: 400 !important;
|
5553 |
text-align: left;
|
239 |
}
|
240 |
|
241 |
.frm-upgrade-bar {
|
242 |
+
background: rgba(188, 224, 253, 0.23);
|
243 |
border-bottom: 1px solid var(--sidebar-hover);
|
244 |
+
padding: 3px 0 3px 40px;
|
245 |
font-size: 95%;
|
246 |
}
|
247 |
|
1526 |
|
1527 |
.frm_error_style,
|
1528 |
.frm_warning_style,
|
1529 |
+
.frm_note_style,
|
1530 |
.frm_message,
|
1531 |
#post-body-content .frm_updated_message,
|
1532 |
div.frm_updated_message {
|
1533 |
+
border-radius: var(--small-radius);
|
1534 |
+
background-color: #D5F2DC;
|
1535 |
+
color: #1E561F;
|
1536 |
+
padding: 12px 25px;
|
|
|
1537 |
font-size: 14px;
|
1538 |
margin: 5px 0 15px;
|
1539 |
+
text-align: left;
|
1540 |
}
|
1541 |
|
1542 |
#frm_top_bar + .wrap > .frm_updated_message, #frm_top_bar + .wrap > .frm_warning_style {
|
1549 |
margin: 5px 65px;
|
1550 |
}
|
1551 |
|
1552 |
+
#form_global_settings #post-body-content > .frm_updated_message {
|
1553 |
margin: 5px 25px;
|
1554 |
}
|
1555 |
|
1556 |
.frm_error_style {
|
1557 |
color: #973937;
|
1558 |
+
background-color: #EBCCCC;
|
|
|
1559 |
clear: both;
|
1560 |
}
|
1561 |
|
1562 |
.frm_error_style a {
|
|
|
1563 |
text-decoration: underline;
|
1564 |
font-weight: 600;
|
1565 |
}
|
1569 |
}
|
1570 |
|
1571 |
.frm_warning_style {
|
1572 |
+
color: #7A4D05;
|
1573 |
+
background-color: #FFF2D2;
|
|
|
|
|
|
|
|
|
1574 |
}
|
1575 |
|
1576 |
.frm_warning_heading{
|
1578 |
margin-bottom:4px;
|
1579 |
}
|
1580 |
|
1581 |
+
.frm_note_style {
|
1582 |
+
background: rgba(188, 224, 253, 0.23);
|
1583 |
+
color: var(--dark-grey);
|
1584 |
+
}
|
1585 |
+
|
1586 |
.frm-banner-alert {
|
1587 |
text-align: left;
|
1588 |
margin: 0;
|
1589 |
border-radius: 0;
|
1590 |
+
padding: 10px 0 10px 40px;
|
1591 |
}
|
1592 |
|
1593 |
.frm-banner-alert a {
|
1617 |
}
|
1618 |
|
1619 |
.frm-inline-message a {
|
1620 |
+
text-decoration: underline;
|
1621 |
font-weight: 600;
|
1622 |
color: var(--primary-hover);
|
1623 |
}
|
1835 |
overflow: visible;
|
1836 |
}
|
1837 |
|
1838 |
+
.frm-admin-page-formidableedit #wpbody-content > *:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert),
|
1839 |
#wpbody-content > .updated,
|
1840 |
#wpbody-content > #update-nag,
|
1841 |
#wpbody-content > .update-nag,
|
2295 |
padding: 15px 20px;
|
2296 |
}
|
2297 |
|
|
|
|
|
|
|
|
|
2298 |
#frm_code_from_email_options {
|
2299 |
margin-top: 20px;
|
2300 |
}
|
2581 |
|
2582 |
.frm_field_list .frm_pro_tip {
|
2583 |
margin: 10px 15px;
|
|
|
2584 |
position: relative;
|
2585 |
width: calc(100% - 30px);
|
2586 |
box-sizing: border-box;
|
4424 |
display: inline-block !important;
|
4425 |
}
|
4426 |
|
4427 |
+
#form_global_settings .captcha_settings h4 {
|
4428 |
+
font-weight: 400;
|
4429 |
+
font-size: 14px;
|
4430 |
+
}
|
4431 |
+
|
4432 |
+
#form_global_settings .captcha_settings h3 {
|
4433 |
+
font-weight: 600;
|
4434 |
+
font-size: 18px;
|
4435 |
+
text-transform: none;
|
4436 |
+
color: #282F36;
|
4437 |
+
margin-bottom: 0;
|
4438 |
+
}
|
4439 |
+
|
4440 |
+
.captcha_settings .alert {
|
4441 |
+
display: flex;
|
4442 |
+
margin-top: 16px;
|
4443 |
+
padding: 12px 16px;
|
4444 |
+
column-gap: 10px;
|
4445 |
+
background: rgba(188, 224, 253, 0.23);
|
4446 |
+
border-radius: 4px;
|
4447 |
+
}
|
4448 |
+
|
4449 |
+
.captcha_settings .alert.frm_hidden {
|
4450 |
+
display: none;
|
4451 |
+
}
|
4452 |
+
|
4453 |
+
#form_global_settings .alert p {
|
4454 |
+
margin: 0;
|
4455 |
+
}
|
4456 |
+
|
4457 |
+
.frm_captchas {
|
4458 |
+
margin-top: 16px;
|
4459 |
+
}
|
4460 |
+
|
4461 |
+
.frm_captchas .frm_radio {
|
4462 |
+
display: flex;
|
4463 |
+
column-gap: 21px;
|
4464 |
+
}
|
4465 |
+
|
4466 |
+
.captcha_option {
|
4467 |
+
border: 1px solid rgba(40, 47, 54, 0.2);
|
4468 |
+
border-radius: 4px;
|
4469 |
+
display: inline-block;
|
4470 |
+
position: relative;
|
4471 |
+
}
|
4472 |
+
|
4473 |
+
.captcha_option label {
|
4474 |
+
display: block;
|
4475 |
+
padding: 12px;
|
4476 |
+
display: flex;
|
4477 |
+
flex-direction: column;
|
4478 |
+
text-align: center;
|
4479 |
+
justify-content: center;
|
4480 |
+
}
|
4481 |
+
|
4482 |
+
.captcha_option label p {
|
4483 |
+
color: #545F6E;
|
4484 |
+
}
|
4485 |
+
|
4486 |
+
.captcha_option input[type=radio] {
|
4487 |
+
border: none;
|
4488 |
+
border-width: 0 !important;
|
4489 |
+
display: none;
|
4490 |
+
}
|
4491 |
+
|
4492 |
+
.captcha_option.active label:before {
|
4493 |
+
content: '';
|
4494 |
+
background-color: none;
|
4495 |
+
position: absolute;
|
4496 |
+
left: -10px;
|
4497 |
+
top: -10px;
|
4498 |
+
width: 20px !important;
|
4499 |
+
height: 20px !important;
|
4500 |
+
margin: 0 !important;
|
4501 |
+
background-image: url( data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iIzQxOTlGRCI+PHRpdGxlPmNoZWNrbWFya19jaXJjbGU8L3RpdGxlPjxjaXJjbGUgY3g9IjEyLjIiIGN5PSIxMS43IiByPSIxMCIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yMy42IDEyQTExLjYgMTEuNiAwIDExLjQgMTJhMTEuNiAxMS42IDAgMDEyMy4yIDB6bS0xMyA2LjJsOC43LTguN2MuMy0uMy4zLS43IDAtMWwtMS0xYS43LjcgMCAwMC0xLjEgMGwtNyA3LTMuNC0zLjNhLjguOCAwIDAwLTEgMGwtMSAxYy0uNC4zLS40LjggMCAxbDQuOCA1Yy4zLjIuOC4yIDEgMHoiLz48L3N2Zz4= );
|
4502 |
+
}
|
4503 |
+
|
4504 |
+
.frm_captchas .frmsvg {
|
4505 |
+
width: 140px;
|
4506 |
+
height: 38px;
|
4507 |
+
}
|
4508 |
+
|
4509 |
+
.frm_builder_captcha.frm_warning_style {
|
4510 |
+
display: flex;
|
4511 |
+
column-gap: 10px;
|
4512 |
+
padding: 12px 16px;
|
4513 |
+
}
|
4514 |
+
|
4515 |
.frm-example-icon .frmsvg,
|
4516 |
.frm-example-icon i {
|
4517 |
height: 20px;
|
5631 |
|
5632 |
.frm_wrap .google-visualization-table-tr-head,
|
5633 |
.frm_wrap .google-visualization-table-tr-head th {
|
5634 |
+
white-space: pre-wrap;
|
5635 |
font-size: 16px;
|
5636 |
font-weight: 400 !important;
|
5637 |
text-align: left;
|
css/frm_fonts.css
CHANGED
@@ -20,7 +20,7 @@
|
|
20 |
.wp-media-buttons .button.frm_insert_form{padding-left:5px;}
|
21 |
|
22 |
/* Upgrade notice */
|
23 |
-
#frm_install_message
|
24 |
.frm_deauthorize_link .spinner{
|
25 |
display:inline-block;
|
26 |
margin-top:0;
|
20 |
.wp-media-buttons .button.frm_insert_form{padding-left:5px;}
|
21 |
|
22 |
/* Upgrade notice */
|
23 |
+
#frm_install_message{padding:7px;}
|
24 |
.frm_deauthorize_link .spinner{
|
25 |
display:inline-block;
|
26 |
margin-top:0;
|
formidable.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
-
Version: 5.5.
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11 Form Builder Team
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
+
Version: 5.5.4
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11 Form Builder Team
|
images/captcha_not_setup.png
ADDED
Binary file
|
images/hcaptcha.png
ADDED
Binary file
|
images/icons.svg
CHANGED
@@ -250,9 +250,9 @@
|
|
250 |
<title>pencil_solid</title>
|
251 |
<path d="M1.7 13.4a1 1 0 0 0-.3.4l-1.3 5a.9.9 0 0 0 0 .5 1 1 0 0 0 1 .6l5-1.3c.2 0 .4-.2.5-.3l.2-.2-5-4.9zm.5 4.4zM19.7 2.2l-.8-1.1c-.6-.6-1.5-1-2.5-1S14.6.5 14 1l-1.3 1.3 4.9 5L18.9 6a3.5 3.5 0 0 0 .7-3.8zM3 12.1l8.6-8.6 5 5L7.8 17l-5-5z"/>
|
252 |
</symbol>
|
253 |
-
<symbol id="frm_pencil_icon" viewBox="0 0
|
254 |
<title>pencil</title>
|
255 |
-
<path
|
256 |
</symbol>
|
257 |
<symbol id="frm_signature_icon" viewBox="0 0 20 20">
|
258 |
<title>signature</title>
|
@@ -921,5 +921,7 @@
|
|
921 |
<symbol id="frm_thick_more_vert_icon" viewBox="0 0 20 20"><path d="M10 10.834a.833.833 0 100-1.667.833.833 0 000 1.667zM10 5a.833.833 0 100-1.667A.833.833 0 0010 5zM10 16.667A.833.833 0 1010 15a.833.833 0 000 1.667z" fill="#9EA9B8" stroke="#9EA9B8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
922 |
<symbol id="frm_chat_forms_icon" viewBox="0 0 21 21" fill="none" stroke="currentColor"><path d="M19.991 13.914a2 2 0 0 1-2 2h-12l-4 4v-16a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
923 |
<symbol id="frm_lightning" viewBox="0 0 20 22" fill="none"><path d="M11 1 1 13h9l-1 8L19 9h-9l1-8Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
|
|
|
|
924 |
</defs>
|
925 |
</svg>
|
250 |
<title>pencil_solid</title>
|
251 |
<path d="M1.7 13.4a1 1 0 0 0-.3.4l-1.3 5a.9.9 0 0 0 0 .5 1 1 0 0 0 1 .6l5-1.3c.2 0 .4-.2.5-.3l.2-.2-5-4.9zm.5 4.4zM19.7 2.2l-.8-1.1c-.6-.6-1.5-1-2.5-1S14.6.5 14 1l-1.3 1.3 4.9 5L18.9 6a3.5 3.5 0 0 0 .7-3.8zM3 12.1l8.6-8.6 5 5L7.8 17l-5-5z"/>
|
252 |
</symbol>
|
253 |
+
<symbol id="frm_pencil_icon" viewBox="0 0 18 18" fill="none">
|
254 |
<title>pencil</title>
|
255 |
+
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M13.167 1.5A2.358 2.358 0 0 1 16.5 4.833L5.25 16.083l-4.583 1.25 1.25-4.583L13.167 1.5Z"/>
|
256 |
</symbol>
|
257 |
<symbol id="frm_signature_icon" viewBox="0 0 20 20">
|
258 |
<title>signature</title>
|
921 |
<symbol id="frm_thick_more_vert_icon" viewBox="0 0 20 20"><path d="M10 10.834a.833.833 0 100-1.667.833.833 0 000 1.667zM10 5a.833.833 0 100-1.667A.833.833 0 0010 5zM10 16.667A.833.833 0 1010 15a.833.833 0 000 1.667z" fill="#9EA9B8" stroke="#9EA9B8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
922 |
<symbol id="frm_chat_forms_icon" viewBox="0 0 21 21" fill="none" stroke="currentColor"><path d="M19.991 13.914a2 2 0 0 1-2 2h-12l-4 4v-16a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
923 |
<symbol id="frm_lightning" viewBox="0 0 20 22" fill="none"><path d="M11 1 1 13h9l-1 8L19 9h-9l1-8Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
924 |
+
<symbol id="frm_hcaptcha" viewBox="0 0 38 40" fill="none"><path fill="#0074BF" d="M28.75 33.25H24V38h4.75v-4.75Z" opacity=".5"/><path fill="#0074BF" d="M24 33.25h-4.75V38H24v-4.75ZM19.25 33.25H14.5V38h4.75v-4.75Z" opacity=".7"/><path fill="#0074BF" d="M14.5 33.25H9.75V38h4.75v-4.75Z" opacity=".5"/><path fill="#0082BF" d="M33.5 28.5h-4.75v4.75h4.75V28.5Z" opacity=".7"/><path fill="#0082BF" d="M28.75 28.5H24v4.75h4.75V28.5Z" opacity=".8"/><path fill="#0082BF" d="M24 28.5h-4.75v4.75H24V28.5ZM19.25 28.5H14.5v4.75h4.75V28.5Z"/><path fill="#0082BF" d="M14.5 28.5H9.75v4.75h4.75V28.5Z" opacity=".8"/><path fill="#0082BF" d="M9.75 28.5H5v4.75h4.75V28.5Z" opacity=".7"/><path fill="#008FBF" d="M38.25 23.75H33.5v4.75h4.75v-4.75Z" opacity=".5"/><path fill="#008FBF" d="M33.5 23.75h-4.75v4.75h4.75v-4.75Z" opacity=".8"/><path fill="#008FBF" d="M28.75 23.75H24v4.75h4.75v-4.75ZM24 23.75h-4.75v4.75H24v-4.75ZM19.25 23.75H14.5v4.75h4.75v-4.75ZM14.5 23.75H9.75v4.75h4.75v-4.75Z"/><path fill="#008FBF" d="M9.75 23.75H5v4.75h4.75v-4.75Z" opacity=".8"/><path fill="#008FBF" d="M5 23.75H.25v4.75H5v-4.75Z" opacity=".5"/><path fill="#009DBF" d="M38.25 19H33.5v4.75h4.75V19Z" opacity=".7"/><path fill="#009DBF" d="M33.5 19h-4.75v4.75h4.75V19ZM28.75 19H24v4.75h4.75V19ZM24 19h-4.75v4.75H24V19ZM19.25 19H14.5v4.75h4.75V19ZM14.5 19H9.75v4.75h4.75V19ZM9.75 19H5v4.75h4.75V19Z"/><path fill="#009DBF" d="M5 19H.25v4.75H5V19Z" opacity=".7"/><path fill="#00ABBF" d="M38.25 14.25H33.5V19h4.75v-4.75Z" opacity=".7"/><path fill="#00ABBF" d="M33.5 14.25h-4.75V19h4.75v-4.75ZM28.75 14.25H24V19h4.75v-4.75ZM24 14.25h-4.75V19H24v-4.75ZM19.25 14.25H14.5V19h4.75v-4.75ZM14.5 14.25H9.75V19h4.75v-4.75ZM9.75 14.25H5V19h4.75v-4.75Z"/><path fill="#00ABBF" d="M5 14.25H.25V19H5v-4.75Z" opacity=".7"/><path fill="#00B9BF" d="M38.25 9.5H33.5v4.75h4.75V9.5Z" opacity=".5"/><path fill="#00B9BF" d="M33.5 9.5h-4.75v4.75h4.75V9.5Z" opacity=".8"/><path fill="#00B9BF" d="M28.75 9.5H24v4.75h4.75V9.5ZM24 9.5h-4.75v4.75H24V9.5ZM19.25 9.5H14.5v4.75h4.75V9.5ZM14.5 9.5H9.75v4.75h4.75V9.5Z"/><path fill="#00B9BF" d="M9.75 9.5H5v4.75h4.75V9.5Z" opacity=".8"/><path fill="#00B9BF" d="M5 9.5H.25v4.75H5V9.5Z" opacity=".5"/><path fill="#00C6BF" d="M33.5 4.75h-4.75V9.5h4.75V4.75Z" opacity=".7"/><path fill="#00C6BF" d="M28.75 4.75H24V9.5h4.75V4.75Z" opacity=".8"/><path fill="#00C6BF" d="M24 4.75h-4.75V9.5H24V4.75ZM19.25 4.75H14.5V9.5h4.75V4.75Z"/><path fill="#00C6BF" d="M14.5 4.75H9.75V9.5h4.75V4.75Z" opacity=".8"/><path fill="#00C6BF" d="M9.75 4.75H5V9.5h4.75V4.75Z" opacity=".7"/><path fill="#00D4BF" d="M28.75 0H24v4.75h4.75V0Z" opacity=".5"/><path fill="#00D4BF" d="M24 0h-4.75v4.75H24V0ZM19.25 0H14.5v4.75h4.75V0Z" opacity=".7"/><path fill="#00D4BF" d="M14.5 0H9.75v4.75h4.75V0Z" opacity=".5"/><path fill="#fff" d="m12.758 17.496 1.312-2.96c.478-.763.43-1.694-.119-2.22a.933.933 0 0 0-.239-.19 1.454 1.454 0 0 0-1.217-.143c-.454.143-.86.453-1.098.859 0 0-1.814 4.225-2.482 6.134-.669 1.91-.406 5.395 2.196 7.996 2.768 2.77 6.755 3.39 9.285 1.48.095-.047.215-.119.31-.19l7.853-6.54c.382-.311.955-.956.43-1.696-.502-.716-1.432-.238-1.814.024l-4.512 3.294a.217.217 0 0 1-.286-.024c-.12-.143-.143-.525.048-.668l6.922-5.872c.596-.549.692-1.313.19-1.862-.477-.525-1.217-.5-1.837.024l-6.206 4.822a.269.269 0 0 1-.382-.048v-.024c-.12-.143-.167-.382-.024-.501l7.065-6.85a1.39 1.39 0 0 0 .072-1.958 1.298 1.298 0 0 0-.955-.406c-.358 0-.716.144-1.002.406l-7.209 6.78c-.167.166-.501 0-.549-.192-.024-.072 0-.143.072-.19l5.514-6.278c.549-.502.572-1.385.071-1.934-.501-.549-1.384-.573-1.933-.071l-.072.071-8.378 9.261c-.31.31-.74.31-.955.144-.143-.144-.167-.334-.071-.478Z"/></symbol>
|
925 |
+
<symbol id="frm_recaptcha" viewBox="0 0 38 38" fill="none"><path fill="#1C3AA9" d="M38.586 19.085a19.756 19.756 0 0 0-.02-.82V2.752L34.278 7.04C30.768 2.744 25.428 0 19.447 0 13.223 0 7.693 2.97 4.197 7.572l7.03 7.103a9.313 9.313 0 0 1 2.848-3.195c1.227-.957 2.966-1.74 5.372-1.74.29 0 .515.034.68.098a9.268 9.268 0 0 1 7.084 4.267l-4.976 4.976c6.303-.025 13.423-.04 16.35.003"/><path fill="#4285F4" d="M19.335 0c-.275.002-.548.008-.82.02H3.002L7.29 4.31C2.994 7.819.25 13.159.25 19.139c0 6.225 2.971 11.754 7.572 15.25l7.103-7.03a9.313 9.313 0 0 1-3.195-2.848c-.957-1.227-1.74-2.966-1.74-5.371 0-.29.034-.515.098-.68a9.268 9.268 0 0 1 4.267-7.085l4.976 4.976c-.025-6.302-.04-13.422.003-16.35"/><path fill="#ABABAB" d="M.25 19.14c.002.274.008.547.02.82v15.512l4.289-4.288c3.51 4.296 8.85 7.04 14.83 7.04 6.225 0 11.754-2.97 15.25-7.571l-7.03-7.104a9.315 9.315 0 0 1-2.848 3.195c-1.227.958-2.966 1.74-5.371 1.74-.29 0-.515-.033-.68-.097a9.267 9.267 0 0 1-7.085-4.268l4.976-4.976c-6.302.025-13.423.04-16.35-.003"/></symbol>
|
926 |
</defs>
|
927 |
</svg>
|
images/recaptcha_v3.png
ADDED
Binary file
|
js/formidable.js
CHANGED
@@ -668,7 +668,6 @@ function frmFrontFormJS() {
|
|
668 |
);
|
669 |
} else if ( Object.keys( response.errors ).length ) {
|
670 |
// errors were returned
|
671 |
-
|
672 |
removeSubmitLoading( jQuery( object ), 'enable' );
|
673 |
|
674 |
//show errors
|
@@ -700,7 +699,7 @@ function frmFrontFormJS() {
|
|
700 |
}
|
701 |
}
|
702 |
|
703 |
-
jQuery( object ).find( '.frm-g-recaptcha, .g-recaptcha' ).each( function() {
|
704 |
var $recaptcha = jQuery( this ),
|
705 |
recaptchaID = $recaptcha.data( 'rid' );
|
706 |
|
@@ -711,6 +710,9 @@ function frmFrontFormJS() {
|
|
711 |
grecaptcha.reset();
|
712 |
}
|
713 |
}
|
|
|
|
|
|
|
714 |
});
|
715 |
|
716 |
jQuery( document ).trigger( 'frmFormErrors', [ object, response ]);
|
@@ -1129,9 +1131,9 @@ function frmFrontFormJS() {
|
|
1129 |
* @since 4.10.02
|
1130 |
*/
|
1131 |
function changeFocusWhenClickComboFieldLabel() {
|
1132 |
-
|
1133 |
|
1134 |
-
|
1135 |
comboInputsContainer.forEach( function( inputsContainer ) {
|
1136 |
if ( ! inputsContainer.closest( '.frm_form_field' ) ) {
|
1137 |
return;
|
668 |
);
|
669 |
} else if ( Object.keys( response.errors ).length ) {
|
670 |
// errors were returned
|
|
|
671 |
removeSubmitLoading( jQuery( object ), 'enable' );
|
672 |
|
673 |
//show errors
|
699 |
}
|
700 |
}
|
701 |
|
702 |
+
jQuery( object ).find( '.frm-g-recaptcha, .g-recaptcha, .h-captcha' ).each( function() {
|
703 |
var $recaptcha = jQuery( this ),
|
704 |
recaptchaID = $recaptcha.data( 'rid' );
|
705 |
|
710 |
grecaptcha.reset();
|
711 |
}
|
712 |
}
|
713 |
+
if ( typeof hcaptcha !== 'undefined' && hcaptcha ) {
|
714 |
+
hcaptcha.reset();
|
715 |
+
}
|
716 |
});
|
717 |
|
718 |
jQuery( document ).trigger( 'frmFormErrors', [ object, response ]);
|
1131 |
* @since 4.10.02
|
1132 |
*/
|
1133 |
function changeFocusWhenClickComboFieldLabel() {
|
1134 |
+
var label;
|
1135 |
|
1136 |
+
var comboInputsContainer = document.querySelectorAll( '.frm_combo_inputs_container' );
|
1137 |
comboInputsContainer.forEach( function( inputsContainer ) {
|
1138 |
if ( ! inputsContainer.closest( '.frm_form_field' ) ) {
|
1139 |
return;
|
js/formidable.min.js
CHANGED
@@ -24,8 +24,8 @@ pageOrder,formReturned,contSubmit,delay,$fieldCont,key,inCollapsedSection,frmTri
|
|
24 |
response.redirect}else if(response.content!==""){if(shouldTriggerEvent){triggerCustomEvent(object,"frmSubmitEvent");return}removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,
|
25 |
response.content);setTimeout(function(){var container,input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");
|
26 |
input='<input type="hidden" name="recaptcha_checked" value="'+response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");
|
27 |
-
if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID
|
28 |
-
if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}};error=function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",
|
29 |
false);object.submit()};postToAjaxUrl(object,data,success,error)}function postToAjaxUrl(form,data,success,error){var ajaxUrl,action,ajaxParams;ajaxUrl=frm_js.ajax_url;action=form.getAttribute("action");if("string"===typeof action&&-1!==action.indexOf("?action=frm_forms_preview"))ajaxUrl=action.split("?action=frm_forms_preview")[0];ajaxParams={type:"POST",url:ajaxUrl,data:data,success:success};if("function"===typeof error)ajaxParams.error=error;jQuery.ajax(ajaxParams)}function afterFormSubmitted(object,
|
30 |
response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==
|
31 |
-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");
|
24 |
response.redirect}else if(response.content!==""){if(shouldTriggerEvent){triggerCustomEvent(object,"frmSubmitEvent");return}removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,
|
25 |
response.content);setTimeout(function(){var container,input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");
|
26 |
input='<input type="hidden" name="recaptcha_checked" value="'+response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");
|
27 |
+
if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha, .h-captcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=
|
28 |
+
$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);else grecaptcha.reset();if(typeof hcaptcha!=="undefined"&&hcaptcha)hcaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}};error=function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",
|
29 |
false);object.submit()};postToAjaxUrl(object,data,success,error)}function postToAjaxUrl(form,data,success,error){var ajaxUrl,action,ajaxParams;ajaxUrl=frm_js.ajax_url;action=form.getAttribute("action");if("string"===typeof action&&-1!==action.indexOf("?action=frm_forms_preview"))ajaxUrl=action.split("?action=frm_forms_preview")[0];ajaxParams={type:"POST",url:ajaxUrl,data:data,success:success};if("function"===typeof error)ajaxParams.error=error;jQuery.ajax(ajaxParams)}function afterFormSubmitted(object,
|
30 |
response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==
|
31 |
-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");
|
js/formidable_admin.js
CHANGED
@@ -730,6 +730,15 @@ function frmAdminBuildJS() {
|
|
730 |
showInputIcon( '#' + cont.attr( 'id' ) );
|
731 |
frmDom.autocomplete.initAutocomplete( 'page', inside );
|
732 |
jQuery( b ).trigger( 'frm-action-loaded' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
733 |
}
|
734 |
});
|
735 |
}
|
@@ -1020,7 +1029,7 @@ function frmAdminBuildJS() {
|
|
1020 |
maybeOpenCollapsedPage( placeholder );
|
1021 |
|
1022 |
const $previousFieldContainer = ui.helper.parent();
|
1023 |
-
const previousSection = ui.helper.get( 0 ).closest( 'ul.
|
1024 |
const newSection = placeholder.closest( 'ul.frm_sorting' );
|
1025 |
|
1026 |
if ( draggable.classList.contains( 'frm-new-field' ) ) {
|
@@ -1029,7 +1038,7 @@ function frmAdminBuildJS() {
|
|
1029 |
moveFieldThatAlreadyExists( draggable, placeholder );
|
1030 |
}
|
1031 |
|
1032 |
-
const previousSectionId = previousSection
|
1033 |
const newSectionId = newSection.classList.contains( 'start_divider' ) ? parseInt( newSection.closest( '.edit_field_type_divider' ).getAttribute( 'data-fid' ) ) : 0;
|
1034 |
|
1035 |
placeholder.remove();
|
@@ -1040,7 +1049,7 @@ function frmAdminBuildJS() {
|
|
1040 |
maybeUpdateDraggableClassAfterDrop( draggable, $previousContainerFields );
|
1041 |
|
1042 |
if ( previousSectionId !== newSectionId ) {
|
1043 |
-
updateFieldAfterMovingBetweenSections( jQuery( draggable ) );
|
1044 |
}
|
1045 |
|
1046 |
debouncedSyncAfterDragAndDrop();
|
@@ -1538,23 +1547,26 @@ function frmAdminBuildJS() {
|
|
1538 |
/**
|
1539 |
* Update a field after it is dragged and dropped into, out of, or between sections
|
1540 |
*
|
1541 |
-
* @param {
|
|
|
|
|
1542 |
*/
|
1543 |
-
function updateFieldAfterMovingBetweenSections( currentItem ) {
|
1544 |
if ( ! currentItem.hasClass( 'form-field' ) ) {
|
1545 |
// currentItem is a field group. Call for children recursively.
|
1546 |
getFieldsInRow( jQuery( currentItem.get( 0 ).firstChild ) ).each(
|
1547 |
function() {
|
1548 |
-
updateFieldAfterMovingBetweenSections( jQuery( this ) );
|
1549 |
}
|
1550 |
);
|
1551 |
return;
|
1552 |
}
|
1553 |
|
1554 |
-
const fieldId
|
1555 |
-
const section
|
1556 |
-
const formId
|
1557 |
-
const sectionId
|
|
|
1558 |
|
1559 |
jQuery.ajax({
|
1560 |
type: 'POST',
|
@@ -1564,6 +1576,7 @@ function frmAdminBuildJS() {
|
|
1564 |
form_id: formId,
|
1565 |
field: fieldId,
|
1566 |
section_id: sectionId,
|
|
|
1567 |
nonce: frmGlobal.nonce
|
1568 |
},
|
1569 |
success: function() {
|
@@ -3857,11 +3870,20 @@ function frmAdminBuildJS() {
|
|
3857 |
return wrapper;
|
3858 |
}
|
3859 |
|
|
|
|
|
|
|
|
|
|
|
3860 |
function handleFieldGroupLayoutOptionClick() {
|
3861 |
-
|
3862 |
-
|
3863 |
-
|
3864 |
-
|
|
|
|
|
|
|
|
|
3865 |
syncLayoutClasses( getFieldsInRow( jQuery( row ) ).first(), type );
|
3866 |
destroyFieldGroupPopup();
|
3867 |
}
|
@@ -6421,6 +6443,15 @@ function frmAdminBuildJS() {
|
|
6421 |
if ( widgetTop ) {
|
6422 |
jQuery( widgetTop ).trigger( 'frm-action-loaded' );
|
6423 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6424 |
}
|
6425 |
}
|
6426 |
|
@@ -10315,6 +10346,19 @@ function frmAdminBuildJS() {
|
|
10315 |
if ( captchaType ) {
|
10316 |
captchaType.addEventListener( 'change', handleCaptchaTypeChange );
|
10317 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10318 |
},
|
10319 |
|
10320 |
exportInit: function() {
|
@@ -10419,7 +10463,9 @@ function frmAdminBuildJS() {
|
|
10419 |
addFilter: function( hookName, callback, priority ) {
|
10420 |
return wp.hooks.addFilter( hookName, 'formidable', callback, priority );
|
10421 |
}
|
10422 |
-
}
|
|
|
|
|
10423 |
};
|
10424 |
}
|
10425 |
|
730 |
showInputIcon( '#' + cont.attr( 'id' ) );
|
731 |
frmDom.autocomplete.initAutocomplete( 'page', inside );
|
732 |
jQuery( b ).trigger( 'frm-action-loaded' );
|
733 |
+
|
734 |
+
/**
|
735 |
+
* Fires after filling form action content when opening.
|
736 |
+
*
|
737 |
+
* @since 5.5.4
|
738 |
+
*
|
739 |
+
* @param {Object} insideElement JQuery object of form action inside element.
|
740 |
+
*/
|
741 |
+
wp.hooks.doAction( 'frm_filled_form_action', inside );
|
742 |
}
|
743 |
});
|
744 |
}
|
1029 |
maybeOpenCollapsedPage( placeholder );
|
1030 |
|
1031 |
const $previousFieldContainer = ui.helper.parent();
|
1032 |
+
const previousSection = ui.helper.get( 0 ).closest( 'ul.start_divider' );
|
1033 |
const newSection = placeholder.closest( 'ul.frm_sorting' );
|
1034 |
|
1035 |
if ( draggable.classList.contains( 'frm-new-field' ) ) {
|
1038 |
moveFieldThatAlreadyExists( draggable, placeholder );
|
1039 |
}
|
1040 |
|
1041 |
+
const previousSectionId = previousSection ? parseInt( previousSection.closest( '.edit_field_type_divider' ).getAttribute( 'data-fid' ) ) : 0;
|
1042 |
const newSectionId = newSection.classList.contains( 'start_divider' ) ? parseInt( newSection.closest( '.edit_field_type_divider' ).getAttribute( 'data-fid' ) ) : 0;
|
1043 |
|
1044 |
placeholder.remove();
|
1049 |
maybeUpdateDraggableClassAfterDrop( draggable, $previousContainerFields );
|
1050 |
|
1051 |
if ( previousSectionId !== newSectionId ) {
|
1052 |
+
updateFieldAfterMovingBetweenSections( jQuery( draggable ), previousSection );
|
1053 |
}
|
1054 |
|
1055 |
debouncedSyncAfterDragAndDrop();
|
1547 |
/**
|
1548 |
* Update a field after it is dragged and dropped into, out of, or between sections
|
1549 |
*
|
1550 |
+
* @param {Object} currentItem
|
1551 |
+
* @param {Object} previousSection
|
1552 |
+
* @returns {void}
|
1553 |
*/
|
1554 |
+
function updateFieldAfterMovingBetweenSections( currentItem, previousSection ) {
|
1555 |
if ( ! currentItem.hasClass( 'form-field' ) ) {
|
1556 |
// currentItem is a field group. Call for children recursively.
|
1557 |
getFieldsInRow( jQuery( currentItem.get( 0 ).firstChild ) ).each(
|
1558 |
function() {
|
1559 |
+
updateFieldAfterMovingBetweenSections( jQuery( this ), previousSection );
|
1560 |
}
|
1561 |
);
|
1562 |
return;
|
1563 |
}
|
1564 |
|
1565 |
+
const fieldId = currentItem.attr( 'id' ).replace( 'frm_field_id_', '' );
|
1566 |
+
const section = getSectionForFieldPlacement( currentItem );
|
1567 |
+
const formId = getFormIdForFieldPlacement( section );
|
1568 |
+
const sectionId = getSectionIdForFieldPlacement( section );
|
1569 |
+
const previousFormId = previousSection ? getFormIdForFieldPlacement( jQuery( previousSection.parentNode ) ) : 0;
|
1570 |
|
1571 |
jQuery.ajax({
|
1572 |
type: 'POST',
|
1576 |
form_id: formId,
|
1577 |
field: fieldId,
|
1578 |
section_id: sectionId,
|
1579 |
+
previous_form_id: previousFormId,
|
1580 |
nonce: frmGlobal.nonce
|
1581 |
},
|
1582 |
success: function() {
|
3870 |
return wrapper;
|
3871 |
}
|
3872 |
|
3873 |
+
/**
|
3874 |
+
* Handle when a field group layout option (that sets grid classes/column sizing) is selected in the "Row Layout" popup.
|
3875 |
+
*
|
3876 |
+
* @returns {void}
|
3877 |
+
*/
|
3878 |
function handleFieldGroupLayoutOptionClick() {
|
3879 |
+
const row = document.querySelector( '.frm-field-group-hover-target' );
|
3880 |
+
if ( ! row ) {
|
3881 |
+
// The field group layout options also get clicked when merging multiple rows.
|
3882 |
+
// The following code isn't required for multiple rows though so just exit early.
|
3883 |
+
return;
|
3884 |
+
}
|
3885 |
+
|
3886 |
+
const type = this.getAttribute( 'layout-type' );
|
3887 |
syncLayoutClasses( getFieldsInRow( jQuery( row ) ).first(), type );
|
3888 |
destroyFieldGroupPopup();
|
3889 |
}
|
6443 |
if ( widgetTop ) {
|
6444 |
jQuery( widgetTop ).trigger( 'frm-action-loaded' );
|
6445 |
}
|
6446 |
+
|
6447 |
+
/**
|
6448 |
+
* Fires after added a new form action.
|
6449 |
+
*
|
6450 |
+
* @since 5.5.4
|
6451 |
+
*
|
6452 |
+
* @param {HTMLElement} formAction Form action element.
|
6453 |
+
*/
|
6454 |
+
wp.hooks.doAction( 'frm_added_form_action', newAction );
|
6455 |
}
|
6456 |
}
|
6457 |
|
10346 |
if ( captchaType ) {
|
10347 |
captchaType.addEventListener( 'change', handleCaptchaTypeChange );
|
10348 |
}
|
10349 |
+
|
10350 |
+
document.querySelector( '.frm_captchas' ).addEventListener( 'change', function( e ) {
|
10351 |
+
var selectedValue, unselectedValue;
|
10352 |
+
selectedValue = e.target.value;
|
10353 |
+
unselectedValue = selectedValue === 'recaptcha' ? 'hcaptcha' : 'recaptcha';
|
10354 |
+
document.getElementById( selectedValue + '_settings' ).classList.remove( 'frm_hidden' );
|
10355 |
+
document.getElementById( selectedValue ).parentElement.classList.add( 'active' );
|
10356 |
+
|
10357 |
+
document.getElementById( unselectedValue + '_settings' ).classList.add( 'frm_hidden' );
|
10358 |
+
document.getElementById( unselectedValue ).parentElement.classList.remove( 'active' );
|
10359 |
+
|
10360 |
+
document.querySelector( '.captcha_settings .alert' ).classList.toggle( 'frm_hidden' );
|
10361 |
+
});
|
10362 |
},
|
10363 |
|
10364 |
exportInit: function() {
|
10463 |
addFilter: function( hookName, callback, priority ) {
|
10464 |
return wp.hooks.addFilter( hookName, 'formidable', callback, priority );
|
10465 |
}
|
10466 |
+
},
|
10467 |
+
|
10468 |
+
infoModal: infoModal
|
10469 |
};
|
10470 |
}
|
10471 |
|
js/formidable_blocks.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=5)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateAttribute=function(e,t,n){n(function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n;return e}({},e,t))},t.setTextAttribute=function(e,t){if(e)return" "+t+'="'+e+'"';return""},t.getSubDir=function(){var e=window.location.pathname,t=e.indexOf("wp-admin"),n="/";t>-1&&(n=e.substr(0,t));return n};t.cssHideAdvancedSettings="\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"},function(e,t,n){e.exports=n(8)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(0);function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var a=function(e){function t(){return i(this,t),l(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){return wp.element.createElement("div",null,"[formidable",(e=this.props,t=e.formId,n=e.title,r=e.description,i=e.minimize,l="",l+=(0,o.setTextAttribute)(t,"id"),l+=(0,o.setTextAttribute)(n,"title"),l+=(0,o.setTextAttribute)(r,"description"),l+=(0,o.setTextAttribute)(i,"minimize")),"]");var e,t,n,r,i,l}}]),t}(wp.element.Component);t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=l(n(10)),i=l(n(1));function l(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var u=wp.i18n.__,s=function(e){function t(){return a(this,t),c(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){var e=this.props,t=e.formId,n=e.setAttributes,r=e.forms;return wp.element.createElement(o.default,{selected:t,itemName:u("form","formidable"),itemNamePlural:u("forms","formidable"),items:r,onChange:function(e){n({formId:e})}})}}]),t}(wp.element.Component);t.default=s,s.propTypes={formId:i.default.string,setAttributes:i.default.func.isRequired}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=wp.element.Component,a=wp.components.Dashicon,c=function(e){function t(){return o(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){return"svg"!==formidable_form_selector.icon?wp.element.createElement(a,{icon:formidable_form_selector.icon,size:"120"}):wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 599.68 601.37",width:"120",height:"120"},wp.element.createElement("path",{className:"cls-1 orange",d:"M289.6 384h140v76h-140z"}),wp.element.createElement("path",{className:"cls-1",d:"M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z"}),wp.element.createElement("path",{className:"cls-1",d:"M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z"}))}}]),t}(l);t.default=c},function(e,t,n){"use strict";n(6),n(11)},function(e,t,n){"use strict";var r=c(n(2)),o=c(n(7)),i=c(n(4)),l=c(n(3)),a=n(0);function c(e){return e&&e.__esModule?e:{default:e}}var u=wp.element.Fragment,s=wp.i18n.__,f=wp.blocks.registerBlockType,p=wp.components,m=p.ServerSideRender,b=p.Notice;f("formidable/simple-form",{title:formidable_form_selector.name,description:s("Display a Form","formidable"),icon:i.default,category:"widgets",keywords:[s("contact forms","formidable"),"formidable"],edit:function(e){var t=e.setAttributes,n=e.attributes,r=e.isSelected,c=n.formId,f=formidable_form_selector.forms;return 0===f.length?wp.element.createElement(b,{status:"warning",isDismissible:!1},s("This site does not have any forms.","formidable")):c?wp.element.createElement(u,null,wp.element.createElement(o.default,{attributes:n,setAttributes:t,forms:f}),r&&wp.element.createElement("style",null,a.cssHideAdvancedSettings),wp.element.createElement(m,{block:"formidable/simple-form",attributes:n})):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(i.default,null),wp.element.createElement("div",{className:"frm-block-title"},formidable_form_selector.name),wp.element.createElement("div",{className:"frm-block-selector-screen"},wp.element.createElement(l.default,{formId:c,setAttributes:t,forms:f}))))},save:function(e){var t=e.attributes;return void 0===t.formId?"":wp.element.createElement(u,null,wp.element.createElement(r.default,t))}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=c(n(1)),i=c(n(3)),l=c(n(2)),a=n(0);function c(e){return e&&e.__esModule?e:{default:e}}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var f=wp.i18n.__,p=wp.element.Component,m=wp.blockEditor.InspectorControls,b=wp.components,d=b.PanelBody,y=b.PanelRow,w=b.ToggleControl,h=b.ExternalLink,v=function(e){function t(){return u(this,t),s(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){var e=this.props,t=e.setAttributes,n=e.attributes,r=e.forms,o=n.formId,c=n.title,u=n.description,s=n.minimize;return wp.element.createElement(m,null,wp.element.createElement(d,{title:f("Select Form","formidable"),initialOpen:!0},wp.element.createElement(y,null,wp.element.createElement(i.default,{formId:o,setAttributes:t,forms:r})),o&&wp.element.createElement(y,null,wp.element.createElement(h,{href:(0,a.getSubDir)()+"wp-admin/admin.php?page=formidable&frm_action=edit&id="+o},f("Go to form","formidable")))),wp.element.createElement(d,{title:f("Options","formidable"),initialOpen:!1},wp.element.createElement(w,{label:f("Show Form Title","formidable"),checked:c,onChange:function(e){(0,a.updateAttribute)("title",e?"1":"",t)}}),wp.element.createElement(w,{label:f("Show Form Description","formidable"),checked:u,onChange:function(e){(0,a.updateAttribute)("description",e?"1":"",t)}}),wp.element.createElement(w,{label:f("Minimize HTML","formidable"),checked:s,onChange:function(e){(0,a.updateAttribute)("minimize",e?"1":"",t)}})),wp.element.createElement(d,{title:f("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(y,null,wp.element.createElement(l.default,this.props.attributes))))}}]),t}(p);t.default=v,v.propTypes={attributes:o.default.object,setAttributes:o.default.func}},function(e,t,n){"use strict";var r=n(9);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,l){if(l!==r){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(1),l=(r=i)&&r.__esModule?r:{default:r};function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var u=wp.i18n,s=u.__,f=u.sprintf,p=wp.element.Component,m=wp.components.SelectControl,b=function(e){function t(){return a(this,t),c(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"createOptions",value:function(e,t){var n=e.map((function(e){return{label:e.label,value:e.value}}));return[{label:f(s("Select a %s","formidable"),t),value:""}].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(n))}},{key:"render",value:function(){var e=this.props,t=e.selected,n=e.items,r=e.onChange,o=e.itemName,i=e.itemNamePlural,l=e.label,a=e.help;return n&&0!==n.length?wp.element.createElement(m,{value:t,options:this.createOptions(n,o),label:l,help:a,onChange:r}):wp.element.createElement("p",{className:"frm-block-select-no-items"},f(s("Currently, there are no %s","formidable"),i))}}]),t}(p);t.default=b,b.defaultProps={itemName:"item",itemNamePlural:"items"},b.propTypes={selected:l.default.oneOfType([l.default.string,l.default.number]),items:l.default.array,onChange:l.default.func,itemName:l.default.string,itemNamePlural:l.default.string,label:l.default.string,help:l.default.string}},function(e,t,n){"use strict";var r,o=n(4),i=(r=o)&&r.__esModule?r:{default:r};var l=wp.i18n.__,a=wp.blocks.registerBlockType,c=wp.components.Notice,u=wp.element.createElement("svg",{width:20,height:20},wp.element.createElement("path",{d:"M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z"}));a("formidable/calculator",{title:l("Calculator Form","formidable"),description:l("Display a Calculator Form","formidable"),icon:u,category:"widgets",keywords:["calculation","formidable"],edit:function(e){e.setAttributes,e.attributes.formId;return 0===formidable_form_selector.forms.length?wp.element.createElement(c,{status:"warning",isDismissible:!1},l("This site does not have any forms.","formidable")):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(i.default,null),wp.element.createElement("div",{className:"frm-block-title"},l("Calculator Form","formidable")),wp.element.createElement("div",{className:"frm-block-selector-screen frm_pro_tip"},wp.element.createElement(c,{status:"warning",isDismissible:!1},l("This site does not have any calculator forms.","formidable"),wp.element.createElement("br",null),wp.element.createElement("a",{href:formidable_form_selector.link,target:"_blank"},l("Upgrade Formidable Forms.","formidable"))),wp.element.createElement("img",{src:formidable_form_selector.url+"/images/conversion-calc.jpg",alt:l("Calculator Form","formidable")}))))}})}]);
|
1 |
+
(()=>{var e={877:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var l=wp.element.Component,a=wp.components.Dashicon,i=function(e){function t(){return n(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),r(t,[{key:"render",value:function(){return"svg"!==formidable_form_selector.icon?wp.element.createElement(a,{icon:formidable_form_selector.icon,size:"120"}):wp.element.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 599.68 601.37",width:"120",height:"120"},wp.element.createElement("path",{className:"cls-1 orange",d:"M289.6 384h140v76h-140z"}),wp.element.createElement("path",{className:"cls-1",d:"M400.2 147h-200c-17 0-30.6 12.2-30.6 29.3V218h260v-71zM397.9 264H169.6v196h75V340H398a32.2 32.2 0 0 0 30.1-21.4 24.3 24.3 0 0 0 1.7-8.7V264z"}),wp.element.createElement("path",{className:"cls-1",d:"M299.8 601.4A300.3 300.3 0 0 1 0 300.7a299.8 299.8 0 1 1 511.9 212.6 297.4 297.4 0 0 1-212 88zm0-563A262 262 0 0 0 38.3 300.7a261.6 261.6 0 1 0 446.5-185.5 259.5 259.5 0 0 0-185-76.8z"}))}}]),t}(l);t.default=i},752:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,o=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),l=(n=r(697))&&n.__esModule?n:{default:n};function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var c=wp.i18n,s=c.__,u=c.sprintf,f=wp.element.Component,m=wp.components.SelectControl,p=function(e){function t(){return a(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"createOptions",value:function(e,t){var r=e.map((function(e){return{label:e.label,value:e.value}}));return[{label:u(s("Select a %s","formidable"),t),value:""}].concat(function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}(r))}},{key:"render",value:function(){var e=this.props,t=e.selected,r=e.items,n=e.onChange,o=e.itemName,l=e.itemNamePlural,a=e.label,i=e.help;return r&&0!==r.length?wp.element.createElement(m,{value:t,options:this.createOptions(r,o),label:a,help:i,onChange:n}):wp.element.createElement("p",{className:"frm-block-select-no-items"},u(s("Currently, there are no %s","formidable"),l))}}]),t}(f);t.default=p,p.defaultProps={itemName:"item",itemNamePlural:"items"},p.propTypes={selected:l.default.oneOfType([l.default.string,l.default.number]),items:l.default.array,onChange:l.default.func,itemName:l.default.string,itemNamePlural:l.default.string,label:l.default.string,help:l.default.string}},897:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateAttribute=function(e,t,r){var n,o,l;r((l=t,(o=e)in(n={})?Object.defineProperty(n,o,{value:l,enumerable:!0,configurable:!0,writable:!0}):n[o]=l,n))},t.setTextAttribute=function(e,t){return e?" "+t+'="'+e+'"':""},t.getSubDir=function(){var e=window.location.pathname,t=e.indexOf("wp-admin"),r="/";return t>-1&&(r=e.substr(0,t)),r},t.cssHideAdvancedSettings="\n .components-panel__body.editor-block-inspector__advanced {\n display:none;\n }\n"},186:(e,t,r)=>{"use strict";var n=c(r(350)),o=c(r(3)),l=c(r(877)),a=c(r(776)),i=r(897);function c(e){return e&&e.__esModule?e:{default:e}}var s=wp.element.Fragment,u=wp.i18n.__,f=wp.blocks.registerBlockType,m=wp.components,p=m.ServerSideRender,b=m.Notice;f("formidable/simple-form",{title:formidable_form_selector.name,description:u("Display a Form","formidable"),icon:l.default,category:"widgets",keywords:[u("contact forms","formidable"),"formidable"],edit:function(e){var t=e.setAttributes,r=e.attributes,n=e.isSelected,c=r.formId,f=formidable_form_selector.forms;return 0===f.length?wp.element.createElement(b,{status:"warning",isDismissible:!1},u("This site does not have any forms.","formidable")):c?wp.element.createElement(s,null,wp.element.createElement(o.default,{attributes:r,setAttributes:t,forms:f}),n&&wp.element.createElement("style",null,i.cssHideAdvancedSettings),wp.element.createElement(p,{block:"formidable/simple-form",attributes:r})):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(l.default,null),wp.element.createElement("div",{className:"frm-block-title"},formidable_form_selector.name),wp.element.createElement("div",{className:"frm-block-selector-screen"},wp.element.createElement(a.default,{formId:c,setAttributes:t,forms:f}))))},save:function(e){var t=e.attributes;return void 0===t.formId?"":wp.element.createElement(s,null,wp.element.createElement(n.default,t))}})},264:(e,t,r)=>{"use strict";var n,o=(n=r(877))&&n.__esModule?n:{default:n},l=wp.i18n.__,a=wp.blocks.registerBlockType,i=wp.components.Notice,c=wp.element.createElement("svg",{width:20,height:20},wp.element.createElement("path",{d:"M16.9 0H3a2 2 0 0 0-1.9 1.9V18a2 2 0 0 0 2 1.9h13.7a2 2 0 0 0 1.9-1.9V2a2 2 0 0 0-2-1.9zm0 18.1H3v-10H17v10zm0-11.9H3V2H17v4.3zM5.5 12.6H7c.3 0 .5-.3.5-.5v-1.5c0-.3-.3-.5-.5-.5H5.5c-.3 0-.5.3-.5.5V12c0 .3.3.5.5.5zm7.5 3.8h1.5c.3 0 .5-.3.5-.6v-5.2c0-.3-.3-.5-.5-.5H13c-.3 0-.5.3-.5.5v5.3c0 .2.3.4.5.4zm-7.5 0H7c.3 0 .5-.3.5-.6v-1.4c0-.3-.3-.6-.5-.6H5.5c-.3 0-.5.3-.5.6v1.4c0 .3.3.6.5.6zm3.8-3.8h1.4c.3 0 .6-.3.6-.5v-1.5c0-.3-.3-.5-.6-.5H9.3c-.3 0-.6.3-.6.5V12c0 .3.3.5.6.5zm0 3.8h1.4c.3 0 .6-.3.6-.6v-1.4c0-.3-.3-.6-.6-.6H9.3c-.3 0-.6.3-.6.6v1.4c0 .3.3.6.6.6z"}));a("formidable/calculator",{title:l("Calculator Form","formidable"),description:l("Display a Calculator Form","formidable"),icon:c,category:"widgets",keywords:["calculation","formidable"],edit:function(e){return e.setAttributes,e.attributes.formId,0===formidable_form_selector.forms.length?wp.element.createElement(i,{status:"warning",isDismissible:!1},l("This site does not have any forms.","formidable")):wp.element.createElement("div",{className:"frm-block-intro-screen"},wp.element.createElement("div",{className:"frm-block-intro-content"},wp.element.createElement(o.default,null),wp.element.createElement("div",{className:"frm-block-title"},l("Calculator Form","formidable")),wp.element.createElement("div",{className:"frm-block-selector-screen frm_pro_tip"},wp.element.createElement(i,{status:"warning",isDismissible:!1},l("This site does not have any calculator forms.","formidable"),wp.element.createElement("br",null),wp.element.createElement("a",{href:formidable_form_selector.link,target:"_blank"},l("Upgrade Formidable Forms.","formidable"))),wp.element.createElement("img",{src:formidable_form_selector.url+"/images/conversion-calc.jpg",alt:l("Calculator Form","formidable")}))))}})},776:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=a(r(752)),l=a(r(697));function a(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var s=wp.i18n.__,u=function(e){function t(){return i(this,t),c(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,wp.element.Component),n(t,[{key:"render",value:function(){var e=this.props,t=e.formId,r=e.setAttributes,n=e.forms;return wp.element.createElement(o.default,{selected:t,itemName:s("form","formidable"),itemNamePlural:s("forms","formidable"),items:n,onChange:function(e){r({formId:e})}})}}]),t}();t.default=u,u.propTypes={formId:l.default.string,setAttributes:l.default.func.isRequired}},350:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=r(897);function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var i=function(e){function t(){return l(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,wp.element.Component),n(t,[{key:"render",value:function(){return wp.element.createElement("div",null,"[formidable",(t=(e=this.props).formId,r=e.title,n=e.description,l=e.minimize,a="",a+=(0,o.setTextAttribute)(t,"id"),a+=(0,o.setTextAttribute)(r,"title"),(a+=(0,o.setTextAttribute)(n,"description"))+(0,o.setTextAttribute)(l,"minimize")),"]");var e,t,r,n,l,a}}]),t}();t.default=i},3:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),o=c(r(697)),l=c(r(776)),a=c(r(350)),i=r(897);function c(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}var f=wp.i18n.__,m=wp.element.Component,p=wp.blockEditor.InspectorControls,b=wp.components,d=b.PanelBody,w=b.PanelRow,y=b.ToggleControl,h=b.ExternalLink,v=function(e){function t(){return s(this,t),u(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"render",value:function(){var e=this.props,t=e.setAttributes,r=e.attributes,n=e.forms,o=r.formId,c=r.title,s=r.description,u=r.minimize;return wp.element.createElement(p,null,wp.element.createElement(d,{title:f("Select Form","formidable"),initialOpen:!0},wp.element.createElement(w,null,wp.element.createElement(l.default,{formId:o,setAttributes:t,forms:n})),o&&wp.element.createElement(w,null,wp.element.createElement(h,{href:(0,i.getSubDir)()+"wp-admin/admin.php?page=formidable&frm_action=edit&id="+o},f("Go to form","formidable")))),wp.element.createElement(d,{title:f("Options","formidable"),initialOpen:!1},wp.element.createElement(y,{label:f("Show Form Title","formidable"),checked:c,onChange:function(e){(0,i.updateAttribute)("title",e?"1":"",t)}}),wp.element.createElement(y,{label:f("Show Form Description","formidable"),checked:s,onChange:function(e){(0,i.updateAttribute)("description",e?"1":"",t)}}),wp.element.createElement(y,{label:f("Minimize HTML","formidable"),checked:u,onChange:function(e){(0,i.updateAttribute)("minimize",e?"1":"",t)}})),wp.element.createElement(d,{title:f("Shortcode","formidable"),initialOpen:!1},wp.element.createElement(w,null,wp.element.createElement(a.default,this.props.attributes))))}}]),t}(m);t.default=v,v.propTypes={attributes:o.default.object,setAttributes:o.default.func}},703:(e,t,r)=>{"use strict";var n=r(414);function o(){}function l(){}l.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,l,a){if(a!==n){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:l,resetWarningCache:o};return r.PropTypes=r,r}},697:(e,t,r)=>{e.exports=r(703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var l=t[n]={exports:{}};return e[n](l,l.exports,r),l.exports}(()=>{"use strict";r(186),r(264)})()})();
|
languages/formidable.pot
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Formidable Forms plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Formidable Forms 5.5.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2022-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.6.0\n"
|
15 |
"X-Domain: formidable\n"
|
@@ -229,7 +229,7 @@ msgid "Applications"
|
|
229 |
msgstr ""
|
230 |
|
231 |
#: classes/controllers/FrmEntriesController.php:79
|
232 |
-
#: classes/controllers/FrmFormsController.php:
|
233 |
#: classes/views/frm-entries/form.php:69
|
234 |
#: classes/views/frm-entries/sidebar-shared.php:57
|
235 |
msgid "Entry Key"
|
@@ -261,21 +261,21 @@ msgstr ""
|
|
261 |
msgid "Entry update date"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: classes/controllers/FrmEntriesController.php:
|
265 |
msgid "Your import is complete"
|
266 |
msgstr ""
|
267 |
|
268 |
#. translators: %1$s: Time string
|
269 |
-
#: classes/controllers/FrmEntriesController.php:
|
270 |
msgid "This form is in the trash and is scheduled to be deleted permanently in %s along with any entries."
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: classes/controllers/FrmEntriesController.php:
|
274 |
msgid "You are trying to view an entry that does not exist."
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: classes/controllers/FrmEntriesController.php:
|
278 |
-
msgid "Entry was
|
279 |
msgstr ""
|
280 |
|
281 |
#: classes/controllers/FrmFieldsController.php:330
|
@@ -349,7 +349,7 @@ msgid "Settings Successfully Updated"
|
|
349 |
msgstr ""
|
350 |
|
351 |
#: classes/controllers/FrmFormsController.php:179
|
352 |
-
#: classes/controllers/FrmFormsController.php:
|
353 |
msgid "Form was successfully updated."
|
354 |
msgstr ""
|
355 |
|
@@ -449,207 +449,207 @@ msgid "Actions"
|
|
449 |
msgstr ""
|
450 |
|
451 |
#: classes/controllers/FrmFormsController.php:867
|
452 |
-
#: classes/models/FrmField.php:
|
453 |
msgid "Date"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: classes/controllers/FrmFormsController.php:
|
457 |
#: classes/helpers/FrmFormsHelper.php:1317
|
458 |
msgid "My Templates"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: classes/controllers/FrmFormsController.php:
|
462 |
msgid "You are trying to edit a form that does not exist."
|
463 |
msgstr ""
|
464 |
|
465 |
#. translators: %1$s: Start link HTML, %2$s: End link HTML
|
466 |
-
#: classes/controllers/FrmFormsController.php:
|
467 |
msgid "You are trying to edit a child form. Please edit from %1$shere%2$s"
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: classes/controllers/FrmFormsController.php:
|
471 |
msgid "Template was successfully updated."
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: classes/controllers/FrmFormsController.php:
|
475 |
msgid "Form was Successfully Copied"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: classes/controllers/FrmFormsController.php:
|
479 |
#: classes/controllers/FrmStylesController.php:403
|
480 |
msgid "General"
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: classes/controllers/FrmFormsController.php:
|
484 |
msgid "General Form Settings"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: classes/controllers/FrmFormsController.php:
|
488 |
msgid "Actions & Notifications"
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: classes/controllers/FrmFormsController.php:
|
492 |
-
#: classes/controllers/FrmFormsController.php:
|
493 |
msgid "Form Permissions"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: classes/controllers/FrmFormsController.php:
|
497 |
msgid "Allow editing, protect forms and files, limit entries, and save drafts. Upgrade to get form and entry permissions."
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: classes/controllers/FrmFormsController.php:
|
501 |
msgid "Form Scheduling"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: classes/controllers/FrmFormsController.php:
|
505 |
msgid "Form scheduling settings"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: classes/controllers/FrmFormsController.php:
|
509 |
msgid "Styling & Buttons"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: classes/controllers/FrmFormsController.php:
|
513 |
msgid "Form Landing Page"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: classes/controllers/FrmFormsController.php:
|
517 |
-
#: classes/controllers/FrmFormsController.php:
|
518 |
msgid "Conversational Forms"
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: classes/controllers/FrmFormsController.php:
|
522 |
msgid "Ask one question at a time for automated conversations."
|
523 |
msgstr ""
|
524 |
|
525 |
-
#: classes/controllers/FrmFormsController.php:
|
526 |
msgid "Customize HTML"
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: classes/controllers/FrmFormsController.php:
|
530 |
msgid "Customize field values with the following parameters."
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: classes/controllers/FrmFormsController.php:
|
534 |
msgid "Separator"
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: classes/controllers/FrmFormsController.php:
|
538 |
msgid "Use a different separator for checkbox fields"
|
539 |
msgstr ""
|
540 |
|
541 |
-
#: classes/controllers/FrmFormsController.php:
|
542 |
msgid "Date Format"
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: classes/controllers/FrmFormsController.php:
|
546 |
-
#: classes/views/frm-fields/back-end/settings.php:
|
547 |
msgid "Field Label"
|
548 |
msgstr ""
|
549 |
|
550 |
-
#: classes/controllers/FrmFormsController.php:
|
551 |
msgid "No Auto P"
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: classes/controllers/FrmFormsController.php:
|
555 |
msgid "Do not automatically add any paragraphs or line breaks"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: classes/controllers/FrmFormsController.php:
|
559 |
-
#: classes/models/FrmField.php:
|
560 |
msgid "User ID"
|
561 |
msgstr ""
|
562 |
|
563 |
-
#: classes/controllers/FrmFormsController.php:
|
564 |
msgid "First Name"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: classes/controllers/FrmFormsController.php:
|
568 |
msgid "Last Name"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: classes/controllers/FrmFormsController.php:
|
572 |
msgid "Display Name"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: classes/controllers/FrmFormsController.php:
|
576 |
msgid "User Login"
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: classes/controllers/FrmFormsController.php:
|
580 |
-
#: classes/models/FrmField.php:
|
581 |
msgid "Email"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: classes/controllers/FrmFormsController.php:
|
585 |
msgid "Avatar"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: classes/controllers/FrmFormsController.php:
|
589 |
msgid "Author Link"
|
590 |
msgstr ""
|
591 |
|
592 |
-
|