Version Description
- New: Added a v3 reCAPTCHA type option and reCAPTCHA threshold slider to global reCAPTCHA settings. When using v3 the score will be compared to the threshold and marked as spam if it is lower than the threshold. The default value is 0.5. For more information on setting a score, see https://developers.google.com/recaptcha/docs/v3#interpreting_the_score
Download this release
Release Info
Developer | formidableforms |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 5.0.15 |
Comparing to | |
See all releases |
Code changes from version 5.0.14 to 5.0.15
- classes/controllers/FrmSettingsController.php +1 -1
- classes/helpers/FrmAppHelper.php +1 -1
- classes/helpers/FrmEntriesHelper.php +24 -0
- classes/helpers/FrmFormsListHelper.php +1 -1
- classes/helpers/FrmListHelper.php +30 -16
- classes/models/FrmEntry.php +17 -0
- classes/models/FrmSettings.php +10 -5
- classes/models/fields/FrmFieldCaptcha.php +45 -8
- classes/models/fields/FrmFieldTextarea.php +14 -10
- classes/views/addons/list.php +1 -2
- classes/views/frm-entries/sidebar-shared.php +2 -0
- classes/views/frm-settings/recaptcha.php +14 -1
- formidable.php +1 -1
- images/icons.svg +2 -2
- js/formidable_admin.js +29 -8
- languages/formidable.pot +49 -36
- readme.txt +4 -8
classes/controllers/FrmSettingsController.php
CHANGED
@@ -54,7 +54,7 @@ class FrmSettingsController {
|
|
54 |
'recaptcha' => array(
|
55 |
'class' => __CLASS__,
|
56 |
'function' => 'recaptcha_settings',
|
57 |
-
'name' => __( '
|
58 |
'icon' => 'frm_icon_font frm_shield_check_icon',
|
59 |
),
|
60 |
'white_label' => array(
|
54 |
'recaptcha' => array(
|
55 |
'class' => __CLASS__,
|
56 |
'function' => 'recaptcha_settings',
|
57 |
+
'name' => __( 'reCAPTCHA', 'formidable' ),
|
58 |
'icon' => 'frm_icon_font frm_shield_check_icon',
|
59 |
),
|
60 |
'white_label' => array(
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
|
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
-
public static $plug_version = '5.0.
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
+
public static $plug_version = '5.0.15';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
classes/helpers/FrmEntriesHelper.php
CHANGED
@@ -694,4 +694,28 @@ class FrmEntriesHelper {
|
|
694 |
|
695 |
return apply_filters( 'frm_entry_actions_dropdown', $actions, compact( 'id', 'entry' ) );
|
696 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
697 |
}
|
694 |
|
695 |
return apply_filters( 'frm_entry_actions_dropdown', $actions, compact( 'id', 'entry' ) );
|
696 |
}
|
697 |
+
|
698 |
+
/**
|
699 |
+
* @since 5.0.15
|
700 |
+
*
|
701 |
+
* @param string|int $entry_id
|
702 |
+
* @return void
|
703 |
+
*/
|
704 |
+
public static function maybe_render_captcha_score( $entry_id ) {
|
705 |
+
$query = array(
|
706 |
+
'item_id' => (int) $entry_id,
|
707 |
+
'field_id' => 0,
|
708 |
+
);
|
709 |
+
$metas_without_a_field = (array) FrmEntryMeta::getAll( $query, ' ORDER BY it.created_at DESC', '', true );
|
710 |
+
foreach ( $metas_without_a_field as $meta ) {
|
711 |
+
if ( ! empty( $meta->meta_value['captcha_score'] ) ) {
|
712 |
+
echo '<div class="misc-pub-section">';
|
713 |
+
FrmAppHelper::icon_by_class( 'frm_icon_font frm_shield_check_icon', array( 'aria-hidden' => 'true' ) );
|
714 |
+
echo ' ' . esc_html__( 'reCAPTCHA Score', 'formidable' ) . ': ';
|
715 |
+
echo '<b>' . esc_html( $meta->meta_value['captcha_score'] ) . '</b>';
|
716 |
+
echo '</div>';
|
717 |
+
return;
|
718 |
+
}
|
719 |
+
}
|
720 |
+
}
|
721 |
}
|
classes/helpers/FrmFormsListHelper.php
CHANGED
@@ -191,7 +191,7 @@ class FrmFormsListHelper extends FrmListHelper {
|
|
191 |
|
192 |
parent::pagination( $which );
|
193 |
|
194 |
-
if ( 'top'
|
195 |
$this->view_switcher( $mode );
|
196 |
}
|
197 |
}
|
191 |
|
192 |
parent::pagination( $which );
|
193 |
|
194 |
+
if ( 'top' === $which ) {
|
195 |
$this->view_switcher( $mode );
|
196 |
}
|
197 |
}
|
classes/helpers/FrmListHelper.php
CHANGED
@@ -391,9 +391,16 @@ class FrmListHelper {
|
|
391 |
echo "<option value='-1' selected='selected'>" . esc_attr__( 'Bulk Actions', 'formidable' ) . "</option>\n";
|
392 |
|
393 |
foreach ( $this->_actions as $name => $title ) {
|
394 |
-
$
|
|
|
|
|
|
|
|
|
|
|
395 |
|
396 |
-
echo "\t<option
|
|
|
|
|
397 |
}
|
398 |
|
399 |
echo "</select>\n";
|
@@ -980,7 +987,11 @@ class FrmListHelper {
|
|
980 |
* @access public
|
981 |
*/
|
982 |
public function display() {
|
983 |
-
$singular
|
|
|
|
|
|
|
|
|
984 |
|
985 |
$this->display_tablenav( 'top' );
|
986 |
?>
|
@@ -993,7 +1004,7 @@ class FrmListHelper {
|
|
993 |
</thead>
|
994 |
<?php } ?>
|
995 |
|
996 |
-
<tbody id="the-list"<?php
|
997 |
<?php $this->display_rows_or_placeholder(); ?>
|
998 |
</tbody>
|
999 |
|
@@ -1128,13 +1139,14 @@ class FrmListHelper {
|
|
1128 |
$classes .= ' hidden';
|
1129 |
}
|
1130 |
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
|
|
1136 |
|
1137 |
-
if ( 'cb'
|
1138 |
echo '<th scope="row" class="check-column"></th>';
|
1139 |
} elseif ( method_exists( $this, '_column_' . $column_name ) ) {
|
1140 |
echo call_user_func( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
@@ -1144,13 +1156,15 @@ class FrmListHelper {
|
|
1144 |
$data,
|
1145 |
$primary
|
1146 |
);
|
1147 |
-
} elseif ( method_exists( $this, 'column_' . $column_name ) ) {
|
1148 |
-
echo "<td $attributes>"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
1149 |
-
echo call_user_func( array( $this, 'column_' . $column_name ), $item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
1150 |
-
echo $this->handle_row_actions( $item, $column_name, $primary ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
1151 |
-
echo '</td>';
|
1152 |
} else {
|
1153 |
-
echo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1154 |
echo $this->handle_row_actions( $item, $column_name, $primary ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
1155 |
echo '</td>';
|
1156 |
}
|
391 |
echo "<option value='-1' selected='selected'>" . esc_attr__( 'Bulk Actions', 'formidable' ) . "</option>\n";
|
392 |
|
393 |
foreach ( $this->_actions as $name => $title ) {
|
394 |
+
$params = array(
|
395 |
+
'value' => $name,
|
396 |
+
);
|
397 |
+
if ( 'edit' === $name ) {
|
398 |
+
$params['class'] = 'hide-if-no-js';
|
399 |
+
}
|
400 |
|
401 |
+
echo "\t<option ";
|
402 |
+
FrmAppHelper::array_to_html_params( $params, true );
|
403 |
+
echo '>' . esc_html( $title ) . '</option>' . "\n";
|
404 |
}
|
405 |
|
406 |
echo "</select>\n";
|
987 |
* @access public
|
988 |
*/
|
989 |
public function display() {
|
990 |
+
$singular = $this->_args['singular'];
|
991 |
+
$tbody_params = array();
|
992 |
+
if ( $singular ) {
|
993 |
+
$tbody_params['data-wp-lists'] = 'list:' . $singular;
|
994 |
+
}
|
995 |
|
996 |
$this->display_tablenav( 'top' );
|
997 |
?>
|
1004 |
</thead>
|
1005 |
<?php } ?>
|
1006 |
|
1007 |
+
<tbody id="the-list"<?php FrmAppHelper::array_to_html_params( $tbody_params, true ); ?>>
|
1008 |
<?php $this->display_rows_or_placeholder(); ?>
|
1009 |
</tbody>
|
1010 |
|
1139 |
$classes .= ' hidden';
|
1140 |
}
|
1141 |
|
1142 |
+
$params = array(
|
1143 |
+
'class' => $classes,
|
1144 |
+
// Comments column uses HTML in the display name with screen reader text.
|
1145 |
+
// Instead of using esc_attr(), we strip tags to get closer to a user-friendly string.
|
1146 |
+
'data-colname' => $column_display_name,
|
1147 |
+
);
|
1148 |
|
1149 |
+
if ( 'cb' === $column_name ) {
|
1150 |
echo '<th scope="row" class="check-column"></th>';
|
1151 |
} elseif ( method_exists( $this, '_column_' . $column_name ) ) {
|
1152 |
echo call_user_func( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
1156 |
$data,
|
1157 |
$primary
|
1158 |
);
|
|
|
|
|
|
|
|
|
|
|
1159 |
} else {
|
1160 |
+
echo '<td ';
|
1161 |
+
FrmAppHelper::array_to_html_params( $params, true );
|
1162 |
+
echo '>';
|
1163 |
+
|
1164 |
+
if ( method_exists( $this, 'column_' . $column_name ) ) {
|
1165 |
+
echo call_user_func( array( $this, 'column_' . $column_name ), $item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
1166 |
+
}
|
1167 |
+
|
1168 |
echo $this->handle_row_actions( $item, $column_name, $primary ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
1169 |
echo '</td>';
|
1170 |
}
|
classes/models/FrmEntry.php
CHANGED
@@ -855,11 +855,28 @@ class FrmEntry {
|
|
855 |
*
|
856 |
* @param array $values
|
857 |
* @param int $entry_id
|
|
|
858 |
*/
|
859 |
private static function maybe_add_entry_metas( $values, $entry_id ) {
|
860 |
if ( isset( $values['item_meta'] ) ) {
|
861 |
FrmEntryMeta::update_entry_metas( $entry_id, $values['item_meta'] );
|
862 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
863 |
}
|
864 |
|
865 |
/**
|
855 |
*
|
856 |
* @param array $values
|
857 |
* @param int $entry_id
|
858 |
+
* @return void
|
859 |
*/
|
860 |
private static function maybe_add_entry_metas( $values, $entry_id ) {
|
861 |
if ( isset( $values['item_meta'] ) ) {
|
862 |
FrmEntryMeta::update_entry_metas( $entry_id, $values['item_meta'] );
|
863 |
}
|
864 |
+
self::maybe_add_captcha_meta( (int) $values['form_id'], (int) $entry_id );
|
865 |
+
}
|
866 |
+
|
867 |
+
/**
|
868 |
+
* @since 5.0.15
|
869 |
+
*
|
870 |
+
* @param int $form_id
|
871 |
+
* @param int $entry_id
|
872 |
+
* @return void
|
873 |
+
*/
|
874 |
+
private static function maybe_add_captcha_meta( $form_id, $entry_id ) {
|
875 |
+
global $frm_vars;
|
876 |
+
if ( array_key_exists( 'captcha_scores', $frm_vars ) && array_key_exists( $form_id, $frm_vars['captcha_scores'] ) ) {
|
877 |
+
$captcha_score_meta = array( 'captcha_score' => $frm_vars['captcha_scores'][ $form_id ] );
|
878 |
+
FrmEntryMeta::add_entry_meta( $entry_id, 0, '', maybe_serialize( $captcha_score_meta ) );
|
879 |
+
}
|
880 |
}
|
881 |
|
882 |
/**
|
classes/models/FrmSettings.php
CHANGED
@@ -206,6 +206,10 @@ class FrmSettings {
|
|
206 |
if ( ! isset( $this->re_type ) ) {
|
207 |
$this->re_type = '';
|
208 |
}
|
|
|
|
|
|
|
|
|
209 |
}
|
210 |
|
211 |
/**
|
@@ -262,11 +266,12 @@ class FrmSettings {
|
|
262 |
}
|
263 |
|
264 |
private function update_settings( $params ) {
|
265 |
-
$this->pubkey
|
266 |
-
$this->privkey
|
267 |
-
$this->re_type
|
268 |
-
$this->re_lang
|
269 |
-
$this->
|
|
|
270 |
|
271 |
$checkboxes = array( 'mu_menu', 're_multi', 'use_html', 'jquery_css', 'accordion_js', 'fade_form', 'no_ips', 'tracking', 'admin_bar' );
|
272 |
foreach ( $checkboxes as $set ) {
|
206 |
if ( ! isset( $this->re_type ) ) {
|
207 |
$this->re_type = '';
|
208 |
}
|
209 |
+
|
210 |
+
if ( ! isset( $this->re_threshold ) ) {
|
211 |
+
$this->re_threshold = .5;
|
212 |
+
}
|
213 |
}
|
214 |
|
215 |
/**
|
266 |
}
|
267 |
|
268 |
private function update_settings( $params ) {
|
269 |
+
$this->pubkey = trim( $params['frm_pubkey'] );
|
270 |
+
$this->privkey = $params['frm_privkey'];
|
271 |
+
$this->re_type = $params['frm_re_type'];
|
272 |
+
$this->re_lang = $params['frm_re_lang'];
|
273 |
+
$this->re_threshold = floatval( $params['frm_re_threshold'] );
|
274 |
+
$this->load_style = $params['frm_load_style'];
|
275 |
|
276 |
$checkboxes = array( 'mu_menu', 're_multi', 'use_html', 'jquery_css', 'accordion_js', 'fade_form', 'no_ips', 'tracking', 'admin_bar' );
|
277 |
foreach ( $checkboxes as $set ) {
|
classes/models/fields/FrmFieldCaptcha.php
CHANGED
@@ -126,12 +126,16 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
126 |
return $frm_settings->re_multi;
|
127 |
}
|
128 |
|
|
|
|
|
|
|
129 |
protected function captcha_size() {
|
130 |
-
// for reverse compatibility
|
131 |
$frm_settings = FrmAppHelper::get_settings();
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
|
|
135 |
}
|
136 |
|
137 |
/**
|
@@ -145,19 +149,52 @@ class FrmFieldCaptcha extends FrmFieldType {
|
|
145 |
$resp = $this->send_api_check( $frm_settings );
|
146 |
$response = json_decode( wp_remote_retrieve_body( $resp ), true );
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
if ( isset( $response['success'] ) && ! $response['success'] ) {
|
149 |
// What happens when the CAPTCHA was entered incorrectly
|
150 |
$invalid_message = FrmField::get_option( $this->field, 'invalid' );
|
151 |
$errors[ 'field' . $args['id'] ] = ( $invalid_message == '' ? $frm_settings->re_msg : $invalid_message );
|
152 |
-
} elseif ( is_wp_error( $resp ) ) {
|
153 |
-
$error_string = $resp->get_error_message();
|
154 |
-
$errors[ 'field' . $args['id'] ] = __( 'There was a problem verifying your recaptcha', 'formidable' );
|
155 |
-
$errors[ 'field' . $args['id'] ] .= ' ' . $error_string;
|
156 |
}
|
157 |
|
158 |
return $errors;
|
159 |
}
|
160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
/**
|
162 |
* @param array $args
|
163 |
* @return array
|
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 |
+
}
|
137 |
+
// for reverse compatibility
|
138 |
+
return $this->field['captcha_size'] === 'default' ? 'normal' : $this->field['captcha_size'];
|
139 |
}
|
140 |
|
141 |
/**
|
149 |
$resp = $this->send_api_check( $frm_settings );
|
150 |
$response = json_decode( wp_remote_retrieve_body( $resp ), true );
|
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 recaptcha', 'formidable' );
|
155 |
+
$errors[ 'field' . $args['id'] ] .= ' ' . $error_string;
|
156 |
+
return $errors;
|
157 |
+
}
|
158 |
+
|
159 |
+
if ( ! is_array( $response ) ) {
|
160 |
+
return $errors;
|
161 |
+
}
|
162 |
+
|
163 |
+
if ( 'v3' === $frm_settings->re_type && array_key_exists( 'score', $response ) ) {
|
164 |
+
$threshold = floatval( $frm_settings->re_threshold );
|
165 |
+
$score = floatval( $response['score'] );
|
166 |
+
|
167 |
+
$this->set_score( $score );
|
168 |
+
|
169 |
+
if ( $score < $threshold ) {
|
170 |
+
$response['success'] = false;
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
if ( isset( $response['success'] ) && ! $response['success'] ) {
|
175 |
// What happens when the CAPTCHA was entered incorrectly
|
176 |
$invalid_message = FrmField::get_option( $this->field, 'invalid' );
|
177 |
$errors[ 'field' . $args['id'] ] = ( $invalid_message == '' ? $frm_settings->re_msg : $invalid_message );
|
|
|
|
|
|
|
|
|
178 |
}
|
179 |
|
180 |
return $errors;
|
181 |
}
|
182 |
|
183 |
+
/**
|
184 |
+
* @param float $score
|
185 |
+
* @return void
|
186 |
+
*/
|
187 |
+
private function set_score( $score ) {
|
188 |
+
global $frm_vars;
|
189 |
+
if ( ! isset( $frm_vars['captcha_scores'] ) ) {
|
190 |
+
$frm_vars['captcha_scores'] = array();
|
191 |
+
}
|
192 |
+
$form_id = is_object( $this->field ) ? $this->field->form_id : $this->field['form_id'];
|
193 |
+
if ( ! isset( $frm_vars['captcha_scores'][ $form_id ] ) ) {
|
194 |
+
$frm_vars['captcha_scores'][ $form_id ] = $score;
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
/**
|
199 |
* @param array $args
|
200 |
* @return array
|
classes/models/fields/FrmFieldTextarea.php
CHANGED
@@ -31,18 +31,22 @@ class FrmFieldTextarea extends FrmFieldType {
|
|
31 |
* @param string $name
|
32 |
*/
|
33 |
public function show_on_form_builder( $name = '' ) {
|
34 |
-
$size
|
35 |
-
$
|
36 |
|
37 |
-
|
38 |
-
$default_value = FrmAppHelper::esc_textarea( force_balance_tags( $this->get_field_column( 'default_value' ) ) );
|
39 |
|
40 |
-
|
41 |
-
$
|
42 |
-
|
43 |
-
|
44 |
-
$
|
45 |
-
. '
|
|
|
|
|
|
|
|
|
|
|
46 |
}
|
47 |
|
48 |
protected function prepare_display_value( $value, $atts ) {
|
31 |
* @param string $name
|
32 |
*/
|
33 |
public function show_on_form_builder( $name = '' ) {
|
34 |
+
$size = FrmField::get_option( $this->field, 'size' );
|
35 |
+
$max = FrmField::get_option( $this->field, 'max' );
|
36 |
|
37 |
+
echo '<textarea name="' . esc_attr( $this->html_name( $name ) ) . '" rows="' . esc_attr( $max ) . '" id="' . esc_attr( $this->html_id() ) . '" class="dyn_default_value"';
|
|
|
38 |
|
39 |
+
if ( $size ) {
|
40 |
+
if ( is_numeric( $size ) ) {
|
41 |
+
$size .= 'px';
|
42 |
+
}
|
43 |
+
$style = 'width:' . $size . ';';
|
44 |
+
echo ' style="' . esc_attr( $style ) . '"';
|
45 |
+
}
|
46 |
+
|
47 |
+
echo '>';
|
48 |
+
echo FrmAppHelper::esc_textarea( force_balance_tags( $this->get_field_column( 'default_value' ) ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
49 |
+
echo '</textarea>';
|
50 |
}
|
51 |
|
52 |
protected function prepare_display_value( $value, $atts ) {
|
classes/views/addons/list.php
CHANGED
@@ -53,8 +53,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
53 |
</h2>
|
54 |
<p>
|
55 |
<?php
|
56 |
-
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
57 |
-
echo FrmAppHelper::kses( $addon['excerpt'], array( 'a' ) );
|
58 |
|
59 |
$show_docs = isset( $addon['docs'] ) && ! empty( $addon['docs'] ) && $addon['installed'];
|
60 |
?>
|
53 |
</h2>
|
54 |
<p>
|
55 |
<?php
|
56 |
+
echo FrmAppHelper::kses( $addon['excerpt'], array( 'a' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
|
|
57 |
|
58 |
$show_docs = isset( $addon['docs'] ) && ! empty( $addon['docs'] ) && $addon['installed'];
|
59 |
?>
|
classes/views/frm-entries/sidebar-shared.php
CHANGED
@@ -65,6 +65,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
65 |
<b><?php echo esc_html( $entry->parent_item_id ); ?></b>
|
66 |
</div>
|
67 |
<?php } ?>
|
|
|
|
|
68 |
</div>
|
69 |
</div>
|
70 |
|
65 |
<b><?php echo esc_html( $entry->parent_item_id ); ?></b>
|
66 |
</div>
|
67 |
<?php } ?>
|
68 |
+
|
69 |
+
<?php FrmEntriesHelper::maybe_render_captcha_score( $entry->id ); ?>
|
70 |
</div>
|
71 |
</div>
|
72 |
|
classes/views/frm-settings/recaptcha.php
CHANGED
@@ -40,6 +40,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
40 |
<option value="invisible" <?php selected( $frm_settings->re_type, 'invisible' ); ?>>
|
41 |
<?php esc_html_e( 'Invisible', 'formidable' ); ?>
|
42 |
</option>
|
|
|
|
|
|
|
43 |
</select>
|
44 |
</p>
|
45 |
|
@@ -59,11 +62,21 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
59 |
</select>
|
60 |
</p>
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
<p>
|
63 |
<label for="frm_re_multi">
|
64 |
<input type="checkbox" name="frm_re_multi" id="frm_re_multi"
|
65 |
value="1" <?php checked( $frm_settings->re_multi, 1 ); ?> />
|
66 |
-
<?php esc_html_e( 'Allow multiple
|
67 |
</label>
|
68 |
</p>
|
69 |
</div>
|
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 |
|
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>
|
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.0.
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
+
Version: 5.0.15
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
images/icons.svg
CHANGED
@@ -917,8 +917,8 @@
|
|
917 |
<symbol id="frm_break_field_group_icon" viewBox="0 0 20 20" fill="none"><path d="M16.667 3.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667zM16.667 11.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
918 |
<symbol id="frm_gear_icon" viewBox="0 0 20 20" fill="none"><path d="M10 12.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.167 12.5a1.375 1.375 0 00.275 1.516l.05.05a1.666 1.666 0 01-1.179 2.847 1.666 1.666 0 01-1.179-.488l-.05-.05a1.375 1.375 0 00-1.517-.275 1.374 1.374 0 00-.833 1.258v.142a1.667 1.667 0 01-3.333 0v-.075a1.375 1.375 0 00-.9-1.259 1.375 1.375 0 00-1.517.275l-.05.05a1.666 1.666 0 11-2.358-2.358l.05-.05a1.375 1.375 0 00.275-1.517 1.376 1.376 0 00-1.259-.833h-.141a1.667 1.667 0 010-3.333h.075a1.375 1.375 0 001.258-.9 1.375 1.375 0 00-.275-1.517l-.05-.05a1.667 1.667 0 112.358-2.358l.05.05a1.375 1.375 0 001.517.275h.067a1.375 1.375 0 00.833-1.259V2.5a1.667 1.667 0 013.333 0v.075a1.375 1.375 0 00.834 1.258 1.375 1.375 0 001.516-.275l.05-.05a1.667 1.667 0 112.359 2.358l-.05.05a1.376 1.376 0 00-.275 1.517V7.5a1.375 1.375 0 001.258.833h.142a1.667 1.667 0 110 3.333h-.075a1.376 1.376 0 00-1.259.834v0z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
919 |
<symbol id="frm_trash_icon" viewBox="0 0 20 20" fill="none"><path d="M2.5 5h15M6.667 5V3.334a1.667 1.667 0 011.667-1.667h3.333a1.667 1.667 0 011.667 1.667V5m2.5 0v11.667a1.667 1.667 0 01-1.667 1.667H5.834a1.667 1.667 0 01-1.667-1.667V5h11.667z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
920 |
-
<symbol id="frm_thick_move_icon" viewBox="0 0 20 20"><path d="M4.166 7.5l-2.5 2.5 2.5 2.5M7.5 4.167l2.5-2.5 2.5 2.5M12.5 15.833l-2.5 2.5-2.5-2.5M15.834 7.5l2.5 2.5-2.5 2.5M1.666 10h16.667M10 1.667v16.667" stroke="#9EA9B8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
921 |
-
</symbol>
|
922 |
<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>
|
|
|
923 |
</defs>
|
924 |
</svg>
|
917 |
<symbol id="frm_break_field_group_icon" viewBox="0 0 20 20" fill="none"><path d="M16.667 3.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667zM16.667 11.5h-13.5c-.92 0-1.667.746-1.667 1.667v1.5c0 .92.746 1.666 1.667 1.666h13.5c.92 0 1.666-.746 1.666-1.666v-1.5c0-.92-.746-1.667-1.666-1.667z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
918 |
<symbol id="frm_gear_icon" viewBox="0 0 20 20" fill="none"><path d="M10 12.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.167 12.5a1.375 1.375 0 00.275 1.516l.05.05a1.666 1.666 0 01-1.179 2.847 1.666 1.666 0 01-1.179-.488l-.05-.05a1.375 1.375 0 00-1.517-.275 1.374 1.374 0 00-.833 1.258v.142a1.667 1.667 0 01-3.333 0v-.075a1.375 1.375 0 00-.9-1.259 1.375 1.375 0 00-1.517.275l-.05.05a1.666 1.666 0 11-2.358-2.358l.05-.05a1.375 1.375 0 00.275-1.517 1.376 1.376 0 00-1.259-.833h-.141a1.667 1.667 0 010-3.333h.075a1.375 1.375 0 001.258-.9 1.375 1.375 0 00-.275-1.517l-.05-.05a1.667 1.667 0 112.358-2.358l.05.05a1.375 1.375 0 001.517.275h.067a1.375 1.375 0 00.833-1.259V2.5a1.667 1.667 0 013.333 0v.075a1.375 1.375 0 00.834 1.258 1.375 1.375 0 001.516-.275l.05-.05a1.667 1.667 0 112.359 2.358l-.05.05a1.376 1.376 0 00-.275 1.517V7.5a1.375 1.375 0 001.258.833h.142a1.667 1.667 0 110 3.333h-.075a1.376 1.376 0 00-1.259.834v0z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
919 |
<symbol id="frm_trash_icon" viewBox="0 0 20 20" fill="none"><path d="M2.5 5h15M6.667 5V3.334a1.667 1.667 0 011.667-1.667h3.333a1.667 1.667 0 011.667 1.667V5m2.5 0v11.667a1.667 1.667 0 01-1.667 1.667H5.834a1.667 1.667 0 01-1.667-1.667V5h11.667z" stroke="#484E54" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
920 |
+
<symbol id="frm_thick_move_icon" viewBox="0 0 20 20"><path d="M4.166 7.5l-2.5 2.5 2.5 2.5M7.5 4.167l2.5-2.5 2.5 2.5M12.5 15.833l-2.5 2.5-2.5-2.5M15.834 7.5l2.5 2.5-2.5 2.5M1.666 10h16.667M10 1.667v16.667" stroke="#9EA9B8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></symbol>
|
|
|
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 |
</defs>
|
924 |
</svg>
|
js/formidable_admin.js
CHANGED
@@ -5999,19 +5999,25 @@ function frmAdminBuildJS() {
|
|
5999 |
|
6000 |
function setUpTinyMceVisualButtonListener( fieldSettings ) {
|
6001 |
var editor = fieldSettings.querySelector( '.wp-editor-area' );
|
6002 |
-
|
6003 |
-
|
6004 |
-
|
6005 |
-
|
6006 |
-
|
6007 |
-
|
6008 |
-
|
|
|
|
|
6009 |
}
|
6010 |
|
6011 |
function setUpTinyMceHtmlButtonListener( fieldSettings ) {
|
6012 |
var editor, hasResetTinyMce;
|
6013 |
|
6014 |
editor = fieldSettings.querySelector( '.wp-editor-area' );
|
|
|
|
|
|
|
|
|
6015 |
hasResetTinyMce = false;
|
6016 |
|
6017 |
jQuery( '#' + editor.id + '-tmce' )
|
@@ -6037,7 +6043,7 @@ function frmAdminBuildJS() {
|
|
6037 |
|
6038 |
editor = fieldSettings.querySelector( '.wp-editor-area' );
|
6039 |
|
6040 |
-
if ( 'function' !== typeof window.quicktags || typeof window.QTags.instances[ editor.id ] !== 'undefined' ) {
|
6041 |
return;
|
6042 |
}
|
6043 |
|
@@ -8432,6 +8438,13 @@ function frmAdminBuildJS() {
|
|
8432 |
});
|
8433 |
}
|
8434 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8435 |
function trashTemplate( e ) {
|
8436 |
/*jshint validthis:true */
|
8437 |
var id = this.getAttribute( 'data-id' );
|
@@ -9146,6 +9159,9 @@ function frmAdminBuildJS() {
|
|
9146 |
formSettings.on( 'click', '.frm_add_submit_logic', addSubmitLogic );
|
9147 |
formSettings.on( 'change', '.frm_submit_logic_field_opts', addSubmitLogicOpts );
|
9148 |
|
|
|
|
|
|
|
9149 |
// Close shortcode modal on click.
|
9150 |
formSettings.on( 'mouseup', '*:not(.frm-show-box)', function( e ) {
|
9151 |
e.stopPropagation();
|
@@ -9557,6 +9573,11 @@ function frmAdminBuildJS() {
|
|
9557 |
});
|
9558 |
jQuery( '.settings-lite-cta' ).remove();
|
9559 |
});
|
|
|
|
|
|
|
|
|
|
|
9560 |
},
|
9561 |
|
9562 |
exportInit: function() {
|
5999 |
|
6000 |
function setUpTinyMceVisualButtonListener( fieldSettings ) {
|
6001 |
var editor = fieldSettings.querySelector( '.wp-editor-area' );
|
6002 |
+
if ( editor ) {
|
6003 |
+
jQuery( document ).on(
|
6004 |
+
'click', '#' + editor.id + '-html',
|
6005 |
+
function() {
|
6006 |
+
editor.style.visibility = 'visible';
|
6007 |
+
initQuickTagsButtons( fieldSettings );
|
6008 |
+
}
|
6009 |
+
);
|
6010 |
+
}
|
6011 |
}
|
6012 |
|
6013 |
function setUpTinyMceHtmlButtonListener( fieldSettings ) {
|
6014 |
var editor, hasResetTinyMce;
|
6015 |
|
6016 |
editor = fieldSettings.querySelector( '.wp-editor-area' );
|
6017 |
+
if ( ! editor ) {
|
6018 |
+
return;
|
6019 |
+
}
|
6020 |
+
|
6021 |
hasResetTinyMce = false;
|
6022 |
|
6023 |
jQuery( '#' + editor.id + '-tmce' )
|
6043 |
|
6044 |
editor = fieldSettings.querySelector( '.wp-editor-area' );
|
6045 |
|
6046 |
+
if ( ! editor || 'function' !== typeof window.quicktags || typeof window.QTags.instances[ editor.id ] !== 'undefined' ) {
|
6047 |
return;
|
6048 |
}
|
6049 |
|
8438 |
});
|
8439 |
}
|
8440 |
|
8441 |
+
function handleCaptchaTypeChange( e ) {
|
8442 |
+
const thresholdContainer = document.getElementById( 'frm_captcha_threshold_container' );
|
8443 |
+
if ( thresholdContainer ) {
|
8444 |
+
thresholdContainer.classList.toggle( 'frm_hidden', 'v3' !== e.target.value );
|
8445 |
+
}
|
8446 |
+
}
|
8447 |
+
|
8448 |
function trashTemplate( e ) {
|
8449 |
/*jshint validthis:true */
|
8450 |
var id = this.getAttribute( 'data-id' );
|
9159 |
formSettings.on( 'click', '.frm_add_submit_logic', addSubmitLogic );
|
9160 |
formSettings.on( 'change', '.frm_submit_logic_field_opts', addSubmitLogicOpts );
|
9161 |
|
9162 |
+
jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_choose_image_box', addImageToOption );
|
9163 |
+
jQuery( '.frm_image_preview_wrapper' ).on( 'click', '.frm_remove_image_option', removeImageFromOption );
|
9164 |
+
|
9165 |
// Close shortcode modal on click.
|
9166 |
formSettings.on( 'mouseup', '*:not(.frm-show-box)', function( e ) {
|
9167 |
e.stopPropagation();
|
9573 |
});
|
9574 |
jQuery( '.settings-lite-cta' ).remove();
|
9575 |
});
|
9576 |
+
|
9577 |
+
const captchaType = document.getElementById( 'frm_re_type' );
|
9578 |
+
if ( captchaType ) {
|
9579 |
+
captchaType.addEventListener( 'change', handleCaptchaTypeChange );
|
9580 |
+
}
|
9581 |
},
|
9582 |
|
9583 |
exportInit: function() {
|
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.0.
|
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: 2021-12-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: formidable\n"
|
@@ -691,7 +691,8 @@ msgid "Permissions"
|
|
691 |
msgstr ""
|
692 |
|
693 |
#: classes/controllers/FrmSettingsController.php:57
|
694 |
-
|
|
|
695 |
msgstr ""
|
696 |
|
697 |
#: classes/controllers/FrmSettingsController.php:61
|
@@ -1251,7 +1252,7 @@ msgid "Default value will NOT pass form validation"
|
|
1251 |
msgstr ""
|
1252 |
|
1253 |
#: classes/helpers/FrmAppHelper.php:2718
|
1254 |
-
#: classes/helpers/FrmListHelper.php:
|
1255 |
#: js/formidable_admin.js:4069
|
1256 |
msgid "Heads up"
|
1257 |
msgstr ""
|
@@ -1719,6 +1720,10 @@ msgstr ""
|
|
1719 |
msgid "Entry edits"
|
1720 |
msgstr ""
|
1721 |
|
|
|
|
|
|
|
|
|
1722 |
#: classes/helpers/FrmEntriesListHelper.php:99
|
1723 |
msgid "No Entries Found"
|
1724 |
msgstr ""
|
@@ -3304,51 +3309,51 @@ msgstr ""
|
|
3304 |
msgid "Bulk Actions"
|
3305 |
msgstr ""
|
3306 |
|
3307 |
-
#: classes/helpers/FrmListHelper.php:
|
3308 |
msgid "Apply"
|
3309 |
msgstr ""
|
3310 |
|
3311 |
-
#: classes/helpers/FrmListHelper.php:
|
3312 |
-
#: classes/helpers/FrmListHelper.php:
|
3313 |
msgid "Show more details"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
#. translators: %s: Number of items
|
3317 |
-
#: classes/helpers/FrmListHelper.php:
|
3318 |
-
#: classes/helpers/FrmListHelper.php:
|
3319 |
msgid "%s item"
|
3320 |
msgid_plural "%s items"
|
3321 |
msgstr[0] ""
|
3322 |
msgstr[1] ""
|
3323 |
|
3324 |
-
#: classes/helpers/FrmListHelper.php:
|
3325 |
-
#: classes/helpers/FrmListHelper.php:
|
3326 |
msgid "Current Page"
|
3327 |
msgstr ""
|
3328 |
|
3329 |
#. translators: %1$s: Current page number, %2$s: Total pages
|
3330 |
-
#: classes/helpers/FrmListHelper.php:
|
3331 |
msgctxt "paging"
|
3332 |
msgid "%1$s of %2$s"
|
3333 |
msgstr ""
|
3334 |
|
3335 |
-
#: classes/helpers/FrmListHelper.php:
|
3336 |
msgid "First page"
|
3337 |
msgstr ""
|
3338 |
|
3339 |
-
#: classes/helpers/FrmListHelper.php:
|
3340 |
msgid "Last page"
|
3341 |
msgstr ""
|
3342 |
|
3343 |
-
#: classes/helpers/FrmListHelper.php:
|
3344 |
msgid "Previous page"
|
3345 |
msgstr ""
|
3346 |
|
3347 |
-
#: classes/helpers/FrmListHelper.php:
|
3348 |
msgid "Next page"
|
3349 |
msgstr ""
|
3350 |
|
3351 |
-
#: classes/helpers/FrmListHelper.php:
|
3352 |
msgid "Select All"
|
3353 |
msgstr ""
|
3354 |
|
@@ -3723,7 +3728,7 @@ msgstr ""
|
|
3723 |
msgid "There was a problem verifying your recaptcha"
|
3724 |
msgstr ""
|
3725 |
|
3726 |
-
#: classes/models/fields/FrmFieldCaptcha.php:
|
3727 |
msgid "The captcha is missing from this form"
|
3728 |
msgstr ""
|
3729 |
|
@@ -3884,7 +3889,7 @@ msgid "%1$s Form submitted on %2$s"
|
|
3884 |
msgstr ""
|
3885 |
|
3886 |
#: classes/models/FrmEmail.php:308
|
3887 |
-
#: classes/views/frm-entries/sidebar-shared.php:
|
3888 |
msgid "User Information"
|
3889 |
msgstr ""
|
3890 |
|
@@ -3969,10 +3974,6 @@ msgstr ""
|
|
3969 |
msgid "Hidden"
|
3970 |
msgstr ""
|
3971 |
|
3972 |
-
#: classes/models/FrmField.php:66
|
3973 |
-
msgid "reCAPTCHA"
|
3974 |
-
msgstr ""
|
3975 |
-
|
3976 |
#: classes/models/FrmField.php:78
|
3977 |
msgid "File Upload"
|
3978 |
msgstr ""
|
@@ -4349,13 +4350,13 @@ msgstr ""
|
|
4349 |
msgid "Check now for a recent upgrade or renewal"
|
4350 |
msgstr ""
|
4351 |
|
|
|
4352 |
#: classes/views/addons/list.php:62
|
4353 |
-
#: classes/views/addons/list.php:63
|
4354 |
msgid "View Docs"
|
4355 |
msgstr ""
|
4356 |
|
4357 |
#. translators: %s: Status name
|
4358 |
-
#: classes/views/addons/list.php:
|
4359 |
msgid "Status: %s"
|
4360 |
msgstr ""
|
4361 |
|
@@ -4455,24 +4456,24 @@ msgid "Parent Entry ID"
|
|
4455 |
msgstr ""
|
4456 |
|
4457 |
#. translators: %1$s: User display name.
|
4458 |
-
#: classes/views/frm-entries/sidebar-shared.php:
|
4459 |
msgid "Created by: %1$s"
|
4460 |
msgstr ""
|
4461 |
|
4462 |
#. translators: %1$s: User display name.
|
4463 |
-
#: classes/views/frm-entries/sidebar-shared.php:
|
4464 |
msgid "Updated by: %1$s"
|
4465 |
msgstr ""
|
4466 |
|
4467 |
-
#: classes/views/frm-entries/sidebar-shared.php:
|
4468 |
msgid "IP Address:"
|
4469 |
msgstr ""
|
4470 |
|
4471 |
-
#: classes/views/frm-entries/sidebar-shared.php:
|
4472 |
msgid "Browser/OS:"
|
4473 |
msgstr ""
|
4474 |
|
4475 |
-
#: classes/views/frm-entries/sidebar-shared.php:
|
4476 |
msgid "Referrer:"
|
4477 |
msgstr ""
|
4478 |
|
@@ -4499,7 +4500,7 @@ msgstr ""
|
|
4499 |
#: classes/views/frm-fields/back-end/inline-modal.php:7
|
4500 |
#: classes/views/frm-fields/back-end/inline-modal.php:8
|
4501 |
#: classes/views/shared/admin-header.php:19
|
4502 |
-
#: js/formidable_admin.js:
|
4503 |
msgid "Close"
|
4504 |
msgstr ""
|
4505 |
|
@@ -5600,16 +5601,28 @@ msgstr ""
|
|
5600 |
msgid "Invisible"
|
5601 |
msgstr ""
|
5602 |
|
5603 |
-
#: classes/views/frm-settings/recaptcha.php:
|
|
|
|
|
|
|
|
|
5604 |
msgid "reCAPTCHA Language"
|
5605 |
msgstr ""
|
5606 |
|
5607 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5608 |
msgid "Browser Default"
|
5609 |
msgstr ""
|
5610 |
|
5611 |
-
#: classes/views/frm-settings/recaptcha.php:
|
5612 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5613 |
msgstr ""
|
5614 |
|
5615 |
#: classes/views/frm-settings/settings_cta.php:13
|
@@ -6359,6 +6372,6 @@ msgstr ""
|
|
6359 |
msgid "Are you sure you want to delete these %1$s selected fields?"
|
6360 |
msgstr ""
|
6361 |
|
6362 |
-
#: js/formidable_admin.js:
|
6363 |
msgid "Save and Reload"
|
6364 |
msgstr ""
|
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.0.15\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2021-12-15T14:35:50+00:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: formidable\n"
|
691 |
msgstr ""
|
692 |
|
693 |
#: classes/controllers/FrmSettingsController.php:57
|
694 |
+
#: classes/models/FrmField.php:66
|
695 |
+
msgid "reCAPTCHA"
|
696 |
msgstr ""
|
697 |
|
698 |
#: classes/controllers/FrmSettingsController.php:61
|
1252 |
msgstr ""
|
1253 |
|
1254 |
#: classes/helpers/FrmAppHelper.php:2718
|
1255 |
+
#: classes/helpers/FrmListHelper.php:412
|
1256 |
#: js/formidable_admin.js:4069
|
1257 |
msgid "Heads up"
|
1258 |
msgstr ""
|
1720 |
msgid "Entry edits"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: classes/helpers/FrmEntriesHelper.php:714
|
1724 |
+
msgid "reCAPTCHA Score"
|
1725 |
+
msgstr ""
|
1726 |
+
|
1727 |
#: classes/helpers/FrmEntriesListHelper.php:99
|
1728 |
msgid "No Entries Found"
|
1729 |
msgstr ""
|
3309 |
msgid "Bulk Actions"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
+
#: classes/helpers/FrmListHelper.php:416
|
3313 |
msgid "Apply"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: classes/helpers/FrmListHelper.php:491
|
3317 |
+
#: classes/helpers/FrmListHelper.php:1187
|
3318 |
msgid "Show more details"
|
3319 |
msgstr ""
|
3320 |
|
3321 |
#. translators: %s: Number of items
|
3322 |
+
#: classes/helpers/FrmListHelper.php:599
|
3323 |
+
#: classes/helpers/FrmListHelper.php:1213
|
3324 |
msgid "%s item"
|
3325 |
msgid_plural "%s items"
|
3326 |
msgstr[0] ""
|
3327 |
msgstr[1] ""
|
3328 |
|
3329 |
+
#: classes/helpers/FrmListHelper.php:630
|
3330 |
+
#: classes/helpers/FrmListHelper.php:634
|
3331 |
msgid "Current Page"
|
3332 |
msgstr ""
|
3333 |
|
3334 |
#. translators: %1$s: Current page number, %2$s: Total pages
|
3335 |
+
#: classes/helpers/FrmListHelper.php:642
|
3336 |
msgctxt "paging"
|
3337 |
msgid "%1$s of %2$s"
|
3338 |
msgstr ""
|
3339 |
|
3340 |
+
#: classes/helpers/FrmListHelper.php:706
|
3341 |
msgid "First page"
|
3342 |
msgstr ""
|
3343 |
|
3344 |
+
#: classes/helpers/FrmListHelper.php:707
|
3345 |
msgid "Last page"
|
3346 |
msgstr ""
|
3347 |
|
3348 |
+
#: classes/helpers/FrmListHelper.php:708
|
3349 |
msgid "Previous page"
|
3350 |
msgstr ""
|
3351 |
|
3352 |
+
#: classes/helpers/FrmListHelper.php:709
|
3353 |
msgid "Next page"
|
3354 |
msgstr ""
|
3355 |
|
3356 |
+
#: classes/helpers/FrmListHelper.php:929
|
3357 |
msgid "Select All"
|
3358 |
msgstr ""
|
3359 |
|
3728 |
msgid "There was a problem verifying your recaptcha"
|
3729 |
msgstr ""
|
3730 |
|
3731 |
+
#: classes/models/fields/FrmFieldCaptcha.php:210
|
3732 |
msgid "The captcha is missing from this form"
|
3733 |
msgstr ""
|
3734 |
|
3889 |
msgstr ""
|
3890 |
|
3891 |
#: classes/models/FrmEmail.php:308
|
3892 |
+
#: classes/views/frm-entries/sidebar-shared.php:74
|
3893 |
msgid "User Information"
|
3894 |
msgstr ""
|
3895 |
|
3974 |
msgid "Hidden"
|
3975 |
msgstr ""
|
3976 |
|
|
|
|
|
|
|
|
|
3977 |
#: classes/models/FrmField.php:78
|
3978 |
msgid "File Upload"
|
3979 |
msgstr ""
|
4350 |
msgid "Check now for a recent upgrade or renewal"
|
4351 |
msgstr ""
|
4352 |
|
4353 |
+
#: classes/views/addons/list.php:61
|
4354 |
#: classes/views/addons/list.php:62
|
|
|
4355 |
msgid "View Docs"
|
4356 |
msgstr ""
|
4357 |
|
4358 |
#. translators: %s: Status name
|
4359 |
+
#: classes/views/addons/list.php:78
|
4360 |
msgid "Status: %s"
|
4361 |
msgstr ""
|
4362 |
|
4456 |
msgstr ""
|
4457 |
|
4458 |
#. translators: %1$s: User display name.
|
4459 |
+
#: classes/views/frm-entries/sidebar-shared.php:83
|
4460 |
msgid "Created by: %1$s"
|
4461 |
msgstr ""
|
4462 |
|
4463 |
#. translators: %1$s: User display name.
|
4464 |
+
#: classes/views/frm-entries/sidebar-shared.php:97
|
4465 |
msgid "Updated by: %1$s"
|
4466 |
msgstr ""
|
4467 |
|
4468 |
+
#: classes/views/frm-entries/sidebar-shared.php:107
|
4469 |
msgid "IP Address:"
|
4470 |
msgstr ""
|
4471 |
|
4472 |
+
#: classes/views/frm-entries/sidebar-shared.php:115
|
4473 |
msgid "Browser/OS:"
|
4474 |
msgstr ""
|
4475 |
|
4476 |
+
#: classes/views/frm-entries/sidebar-shared.php:123
|
4477 |
msgid "Referrer:"
|
4478 |
msgstr ""
|
4479 |
|
4500 |
#: classes/views/frm-fields/back-end/inline-modal.php:7
|
4501 |
#: classes/views/frm-fields/back-end/inline-modal.php:8
|
4502 |
#: classes/views/shared/admin-header.php:19
|
4503 |
+
#: js/formidable_admin.js:7770
|
4504 |
msgid "Close"
|
4505 |
msgstr ""
|
4506 |
|
5601 |
msgid "Invisible"
|
5602 |
msgstr ""
|
5603 |
|
5604 |
+
#: classes/views/frm-settings/recaptcha.php:44
|
5605 |
+
msgid "v3"
|
5606 |
+
msgstr ""
|
5607 |
+
|
5608 |
+
#: classes/views/frm-settings/recaptcha.php:51
|
5609 |
msgid "reCAPTCHA Language"
|
5610 |
msgstr ""
|
5611 |
|
5612 |
+
#: classes/views/frm-settings/recaptcha.php:55
|
5613 |
msgid "Browser Default"
|
5614 |
msgstr ""
|
5615 |
|
5616 |
+
#: classes/views/frm-settings/recaptcha.php:67
|
5617 |
+
msgid "reCAPTCHA Threshold"
|
5618 |
+
msgstr ""
|
5619 |
+
|
5620 |
+
#: classes/views/frm-settings/recaptcha.php:68
|
5621 |
+
msgid "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."
|
5622 |
+
msgstr ""
|
5623 |
+
|
5624 |
+
#: classes/views/frm-settings/recaptcha.php:79
|
5625 |
+
msgid "Allow multiple reCAPTCHAs to be used on a single page"
|
5626 |
msgstr ""
|
5627 |
|
5628 |
#: classes/views/frm-settings/settings_cta.php:13
|
6372 |
msgid "Are you sure you want to delete these %1$s selected fields?"
|
6373 |
msgstr ""
|
6374 |
|
6375 |
+
#: js/formidable_admin.js:7762
|
6376 |
msgid "Save and Reload"
|
6377 |
msgstr ""
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: forms, contact form, form builder, survey, free, form maker, form creator,
|
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 5.8.2
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 5.0.
|
9 |
|
10 |
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
|
11 |
|
@@ -438,6 +438,9 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
|
|
438 |
See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
|
439 |
|
440 |
== Changelog ==
|
|
|
|
|
|
|
441 |
= 5.0.14 =
|
442 |
- New: HTML field descriptions now use a rich text editor instead of a plain textarea.
|
443 |
- New: Added a new array_separator option to entry shortcodes. This can be used with the [default-message] like [default-message array_separator="<br/>"] shortcode to change the separator used for multiple checkbox or dropdown values. It also works with the [frm-show-entry] shortcode in pro.
|
@@ -459,11 +462,4 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
|
|
459 |
- Fix: A conflict with WooCommerce was sometimes triggering an error when checking for addon updates.
|
460 |
- Fix: The comment author information sent to Akismet was not getting set if the author information was set in a name field.
|
461 |
|
462 |
-
= 5.0.12 =
|
463 |
-
- New: When the frm_inline_submit class is added to custom Submit Button HTML if frm_inline_form is missing from the form it will now be automatically added to allow for the submit button to become inline.
|
464 |
-
- Fix: Many Formidable addons were not properly displaying update details from the plugins page.
|
465 |
-
- Fix: Fewer API requests will be sent to Formidable when inbox notice cached results expire and when a request results in an error.
|
466 |
-
- Fix: Added additional validation to CSV export so it fails more gracefully when the form does not exist.
|
467 |
-
- Fix: The style setting for Margin under Field Settings as been renamed to Bottom Margin to avoid confusion as it only updates one margin value.
|
468 |
-
|
469 |
<a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 5.8.2
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 5.0.15
|
9 |
|
10 |
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
|
11 |
|
438 |
See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
|
439 |
|
440 |
== Changelog ==
|
441 |
+
= 5.0.15 =
|
442 |
+
- New: Added a v3 reCAPTCHA type option and reCAPTCHA threshold slider to global reCAPTCHA settings. When using v3 the score will be compared to the threshold and marked as spam if it is lower than the threshold. The default value is 0.5. For more information on setting a score, see https://developers.google.com/recaptcha/docs/v3#interpreting_the_score
|
443 |
+
|
444 |
= 5.0.14 =
|
445 |
- New: HTML field descriptions now use a rich text editor instead of a plain textarea.
|
446 |
- New: Added a new array_separator option to entry shortcodes. This can be used with the [default-message] like [default-message array_separator="<br/>"] shortcode to change the separator used for multiple checkbox or dropdown values. It also works with the [frm-show-entry] shortcode in pro.
|
462 |
- Fix: A conflict with WooCommerce was sometimes triggering an error when checking for addon updates.
|
463 |
- Fix: The comment author information sent to Akismet was not getting set if the author information was set in a name field.
|
464 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
<a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
|