Version Description
- Added: Individual fields can be duplicated in the form builder
- Changed: How data is stored for fields using Dynanic Choices
- Fixed: Global assets setting causing errors in some cases
- Fixed: Writing setting ("correct invalidly nested XHTML") breaking forms containing HTML
- Fixed: Forms being displayed/included on the native WordPress Export page
- Fixed: Dynamic Choices erroring when used with Post Types
- Fixed: Form labels including blank IDs
Download this release
Release Info
Developer | jaredatch |
Plugin | Contact Form by WPForms – Drag & Drop Form Builder for WordPress |
Version | 1.2.9 |
Comparing to | |
See all releases |
Code changes from version 1.2.8.1 to 1.2.9
- assets/css/admin-builder-fields.css +25 -0
- assets/js/admin-builder.js +82 -0
- includes/admin/ajax-actions.php +26 -0
- includes/admin/builder/class-builder.php +3 -1
- includes/admin/builder/panels/class-fields.php +5 -3
- includes/class-form.php +4 -0
- includes/class-frontend.php +7 -4
- includes/class-process.php +2 -1
- includes/fields/class-base.php +1 -0
- includes/fields/class-checkbox.php +15 -13
- includes/fields/class-radio.php +10 -12
- includes/fields/class-select.php +10 -12
- includes/templates/class-base.php +2 -2
- languages/wpforms.pot +102 -79
- readme.txt +9 -0
- wpforms.php +2 -2
assets/css/admin-builder-fields.css
CHANGED
@@ -543,6 +543,31 @@
|
|
543 |
margin: 0;
|
544 |
}
|
545 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
#wpforms-panel-fields .wpforms-field .wpforms-field-delete {
|
547 |
color: #d22222;
|
548 |
position: absolute;
|
543 |
margin: 0;
|
544 |
}
|
545 |
|
546 |
+
#wpforms-panel-fields .wpforms-field .wpforms-field-duplicate {
|
547 |
+
color: #777;
|
548 |
+
position: absolute;
|
549 |
+
top: 5px;
|
550 |
+
right: 32px;
|
551 |
+
font-size: 16px;
|
552 |
+
opacity: 0;
|
553 |
+
z-index: 10;
|
554 |
+
-webkit-transition: all 0.4s ease-in-out;
|
555 |
+
-moz-transition: all 0.4s ease-in-out;
|
556 |
+
-ms-transition: all 0.4s ease-in-out;
|
557 |
+
-o-transition: all 0.4s ease-in-out;
|
558 |
+
transition: all 0.4s ease-in-out;
|
559 |
+
}
|
560 |
+
|
561 |
+
#wpforms-panel-fields .wpforms-field:hover .wpforms-field-duplicate,
|
562 |
+
#wpforms-panel-fields .wpforms-field.active .wpforms-field-duplicate {
|
563 |
+
opacity: 0.45;
|
564 |
+
}
|
565 |
+
|
566 |
+
#wpforms-panel-fields .wpforms-field .wpforms-field-duplicate:hover {
|
567 |
+
color: #e27730;
|
568 |
+
opacity: 1;
|
569 |
+
}
|
570 |
+
|
571 |
#wpforms-panel-fields .wpforms-field .wpforms-field-delete {
|
572 |
color: #d22222;
|
573 |
position: absolute;
|
assets/js/admin-builder.js
CHANGED
@@ -537,6 +537,12 @@
|
|
537 |
WPFormsBuilder.fieldDelete($(this).parent().data('field-id'));
|
538 |
});
|
539 |
|
|
|
|
|
|
|
|
|
|
|
|
|
540 |
// Field add
|
541 |
$(document).on('click', '.wpforms-add-fields-button', function(e) {
|
542 |
e.preventDefault();
|
@@ -934,6 +940,82 @@
|
|
934 |
}
|
935 |
},
|
936 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
937 |
/**
|
938 |
* Add new field.
|
939 |
*
|
537 |
WPFormsBuilder.fieldDelete($(this).parent().data('field-id'));
|
538 |
});
|
539 |
|
540 |
+
// Field duplicate
|
541 |
+
$(document).on('click', '.wpforms-field-duplicate', function(e) {
|
542 |
+
e.preventDefault();
|
543 |
+
WPFormsBuilder.fieldDuplicate($(this).parent().data('field-id'));
|
544 |
+
});
|
545 |
+
|
546 |
// Field add
|
547 |
$(document).on('click', '.wpforms-add-fields-button', function(e) {
|
548 |
e.preventDefault();
|
940 |
}
|
941 |
},
|
942 |
|
943 |
+
/**
|
944 |
+
* Duplicate field
|
945 |
+
*
|
946 |
+
* @since 1.2.9
|
947 |
+
*/
|
948 |
+
fieldDuplicate: function(id) {
|
949 |
+
|
950 |
+
var $field = $('#wpforms-field-'+id),
|
951 |
+
type = $field.data('field-type');
|
952 |
+
|
953 |
+
if ($field.hasClass('no-duplicate')) {
|
954 |
+
$.alert({
|
955 |
+
title: wpforms_builder.field_locked,
|
956 |
+
content: wpforms_builder.field_locked_msg,
|
957 |
+
confirmButton: wpforms_builder.close
|
958 |
+
});
|
959 |
+
} else {
|
960 |
+
$.confirm({
|
961 |
+
title: false,
|
962 |
+
content: wpforms_builder.duplicate_confirm,
|
963 |
+
backgroundDismiss: false,
|
964 |
+
closeIcon: false,
|
965 |
+
confirm: function(){
|
966 |
+
|
967 |
+
var $newField = $field.clone(),
|
968 |
+
newFieldID = $('#wpforms-field-id').val(),
|
969 |
+
nextID = Number(newFieldID)+1,
|
970 |
+
$fieldOptions = $('#wpforms-field-option-'+id),
|
971 |
+
newFieldOptions = $fieldOptions.html(),
|
972 |
+
newFieldLabel = $('#wpforms-field-option-'+id+'-label').val()+' '+wpforms_builder.duplicate_copy,
|
973 |
+
regex_fieldOptionsID = new RegExp( 'ID #'+id, "g"),
|
974 |
+
regex_fieldID = new RegExp( 'fields\\['+id+'\\]', "g"),
|
975 |
+
regex_dataFieldID = new RegExp( 'data-field-id="'+id+'"', "g"),
|
976 |
+
regex_referenceID = new RegExp( 'data-reference="'+id+'"', "g"),
|
977 |
+
regex_elementID = new RegExp( '\\b(id|for)="wpforms-(.*?)'+id+'(.*?)"', "ig");
|
978 |
+
|
979 |
+
// Toggle visibility states
|
980 |
+
$field.after($newField);
|
981 |
+
$field.removeClass('active');
|
982 |
+
$newField.addClass('active').attr({
|
983 |
+
'id' : 'wpforms-field-'+newFieldID,
|
984 |
+
'data-field-id': newFieldID
|
985 |
+
});
|
986 |
+
|
987 |
+
// Various regex to adjust the field options to work with
|
988 |
+
// the new field ID
|
989 |
+
function regex_elementID_replace(match, p1, p2, p3, offset, string) {
|
990 |
+
return p1+'="wpforms-'+p2+newFieldID+p3+'"';
|
991 |
+
}
|
992 |
+
newFieldOptions = newFieldOptions.replace(regex_fieldOptionsID, 'ID #'+newFieldID);
|
993 |
+
newFieldOptions = newFieldOptions.replace(regex_fieldID, 'fields['+newFieldID+']');
|
994 |
+
newFieldOptions = newFieldOptions.replace(regex_dataFieldID, 'data-field-id="'+newFieldID+'"');
|
995 |
+
newFieldOptions = newFieldOptions.replace(regex_referenceID, 'data-reference="'+newFieldID+'"');
|
996 |
+
newFieldOptions = newFieldOptions.replace(regex_elementID, regex_elementID_replace);
|
997 |
+
|
998 |
+
// Add new field options panel
|
999 |
+
$fieldOptions.hide().after('<div class="wpforms-field-option wpforms-field-option-'+type+'" id="wpforms-field-option-'+newFieldID+'" data-field-id="'+newFieldID+'">'+newFieldOptions+'</div>');
|
1000 |
+
|
1001 |
+
// ID adjustments
|
1002 |
+
$('#wpforms-field-option-'+newFieldID).find('.wpforms-field-option-hidden-id').val(newFieldID);
|
1003 |
+
$('#wpforms-field-id').val(nextID);
|
1004 |
+
|
1005 |
+
// Adjust label to indicate this is a copy
|
1006 |
+
$('#wpforms-field-option-'+newFieldID+'-label').val(newFieldLabel);
|
1007 |
+
$newField.find('.label-title .text').text(newFieldLabel);
|
1008 |
+
|
1009 |
+
// Fire field add custom event
|
1010 |
+
$(document).trigger('wpformsFieldAdd', [newFieldID, type]);
|
1011 |
+
|
1012 |
+
// Lastly, update the next ID stored in database
|
1013 |
+
$.post(wpforms_builder.ajax_url, {form_id : s.formID, nonce : wpforms_builder.nonce, action : 'wpforms_builder_increase_next_field_id'});
|
1014 |
+
}
|
1015 |
+
});
|
1016 |
+
}
|
1017 |
+
},
|
1018 |
+
|
1019 |
/**
|
1020 |
* Add new field.
|
1021 |
*
|
includes/admin/ajax-actions.php
CHANGED
@@ -145,6 +145,32 @@ function wpforms_update_form_template() {
|
|
145 |
}
|
146 |
add_action( 'wp_ajax_wpforms_update_form_template', 'wpforms_update_form_template' );
|
147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
/**
|
149 |
* Form Builder Dynamic Choices option toggle.
|
150 |
*
|
145 |
}
|
146 |
add_action( 'wp_ajax_wpforms_update_form_template', 'wpforms_update_form_template' );
|
147 |
|
148 |
+
/**
|
149 |
+
* Form Builder update next field ID.
|
150 |
+
*
|
151 |
+
* @since 1.2.9
|
152 |
+
*/
|
153 |
+
function wpforms_builder_increase_next_field_id() {
|
154 |
+
|
155 |
+
// Run a security check
|
156 |
+
check_ajax_referer( 'wpforms-builder', 'nonce' );
|
157 |
+
|
158 |
+
// Check for permissions
|
159 |
+
if ( !current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
|
160 |
+
wp_send_json_error();
|
161 |
+
}
|
162 |
+
|
163 |
+
// Check for required items
|
164 |
+
if ( empty( $_POST['form_id'] ) ) {
|
165 |
+
wp_send_json_error();
|
166 |
+
}
|
167 |
+
|
168 |
+
wpforms()->form->next_field_id( absint( $_POST['form_id'] ) );
|
169 |
+
|
170 |
+
wp_send_json_success();
|
171 |
+
}
|
172 |
+
add_action( 'wp_ajax_wpforms_builder_increase_next_field_id', 'wpforms_builder_increase_next_field_id' );
|
173 |
+
|
174 |
/**
|
175 |
* Form Builder Dynamic Choices option toggle.
|
176 |
*
|
includes/admin/builder/class-builder.php
CHANGED
@@ -264,7 +264,7 @@ class WPForms_Builder {
|
|
264 |
'conditionals_change' => __( 'Due to form changes, conditional logic rules have been removed or updated:', 'wpforms' ),
|
265 |
'field' => __( 'Field', 'wpforms' ),
|
266 |
'field_locked' => __( 'Field Locked', 'wpforms' ),
|
267 |
-
'field_locked_msg' => __( 'This field cannot be deleted
|
268 |
'fields_available' => __( 'Available Fields', 'wpforms' ),
|
269 |
'fields_unavailable' => __( 'No fields available', 'wpforms' ),
|
270 |
'heads_up' => __( 'Heads up!', 'wpforms' ),
|
@@ -292,6 +292,8 @@ class WPForms_Builder {
|
|
292 |
'exit_url' => admin_url( 'admin.php?page=wpforms-overview' ),
|
293 |
'exit_confirm' => __( 'If you exit without saving, your changes will be lost.', 'wpforms' ),
|
294 |
'delete_confirm' => __( 'Are you sure you want to delete this field?', 'wpforms' ),
|
|
|
|
|
295 |
'error_title' => __( 'Please enter a form title.', 'wpforms' ),
|
296 |
'error_choice' => __( 'This item must contain at least one choice.', 'wpforms' ),
|
297 |
'off' => __( 'Off', 'wpforms' ),
|
264 |
'conditionals_change' => __( 'Due to form changes, conditional logic rules have been removed or updated:', 'wpforms' ),
|
265 |
'field' => __( 'Field', 'wpforms' ),
|
266 |
'field_locked' => __( 'Field Locked', 'wpforms' ),
|
267 |
+
'field_locked_msg' => __( 'This field cannot be deleted or duplicated.', 'wpforms' ),
|
268 |
'fields_available' => __( 'Available Fields', 'wpforms' ),
|
269 |
'fields_unavailable' => __( 'No fields available', 'wpforms' ),
|
270 |
'heads_up' => __( 'Heads up!', 'wpforms' ),
|
292 |
'exit_url' => admin_url( 'admin.php?page=wpforms-overview' ),
|
293 |
'exit_confirm' => __( 'If you exit without saving, your changes will be lost.', 'wpforms' ),
|
294 |
'delete_confirm' => __( 'Are you sure you want to delete this field?', 'wpforms' ),
|
295 |
+
'duplicate_confirm' => __( 'Are you sure you want to duplicate this field?', 'wpforms' ),
|
296 |
+
'duplicate_copy' => __( '(copy)', 'wpforms'),
|
297 |
'error_title' => __( 'Please enter a form title.', 'wpforms' ),
|
298 |
'error_choice' => __( 'This item must contain at least one choice.', 'wpforms' ),
|
299 |
'off' => __( 'Off', 'wpforms' ),
|
includes/admin/builder/panels/class-fields.php
CHANGED
@@ -208,9 +208,9 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
|
|
208 |
|
209 |
printf( '<div class="wpforms-field-option wpforms-field-option-%s" id="wpforms-field-option-%d" data-field-id="%d">', esc_attr( $field['type'] ), $field['id'], $field['id'] );
|
210 |
|
211 |
-
printf( '<input type="hidden" name="fields[%d][id]" value="%d">', $field['id'], $field['id'] );
|
212 |
|
213 |
-
printf( '<input type="hidden" name="fields[%d][type]" value="%s">', $field['id'], esc_attr( $field['type'] ) );
|
214 |
|
215 |
do_action( "wpforms_builder_fields_options_{$field['type']}", $field );
|
216 |
|
@@ -247,7 +247,9 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
|
|
247 |
|
248 |
printf( '<div class="wpforms-field wpforms-field-%s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field['type'], $css, $field['id'], $field['id'], $field['type'] );
|
249 |
|
250 |
-
printf( '<a href="#" class="wpforms-field-
|
|
|
|
|
251 |
|
252 |
printf( '<span class="wpforms-field-helper">%s</span>', __( 'Click to edit. Drag to reorder.', 'wpforms' ) );
|
253 |
|
208 |
|
209 |
printf( '<div class="wpforms-field-option wpforms-field-option-%s" id="wpforms-field-option-%d" data-field-id="%d">', esc_attr( $field['type'] ), $field['id'], $field['id'] );
|
210 |
|
211 |
+
printf( '<input type="hidden" name="fields[%d][id]" value="%d" class="wpforms-field-option-hidden-id">', $field['id'], $field['id'] );
|
212 |
|
213 |
+
printf( '<input type="hidden" name="fields[%d][type]" value="%s" class="wpforms-field-option-hidden-type">', $field['id'], esc_attr( $field['type'] ) );
|
214 |
|
215 |
do_action( "wpforms_builder_fields_options_{$field['type']}", $field );
|
216 |
|
247 |
|
248 |
printf( '<div class="wpforms-field wpforms-field-%s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field['type'], $css, $field['id'], $field['id'], $field['type'] );
|
249 |
|
250 |
+
printf( '<a href="#" class="wpforms-field-duplicate" title="%s"><i class="fa fa-files-o" aria-hidden="true"></i></a>', __( 'Duplicate Field', 'wpforms' ) );
|
251 |
+
|
252 |
+
printf( '<a href="#" class="wpforms-field-delete" title="%s"><i class="fa fa-times-circle" aria-hidden="true"></i></a>', __( 'Delete Field', 'wpforms' ) );
|
253 |
|
254 |
printf( '<span class="wpforms-field-helper">%s</span>', __( 'Click to edit. Drag to reorder.', 'wpforms' ) );
|
255 |
|
includes/class-form.php
CHANGED
@@ -43,6 +43,7 @@ class WPForms_Form_Handler {
|
|
43 |
'show_in_admin_bar' => false,
|
44 |
'rewrite' => false,
|
45 |
'query_var' => false,
|
|
|
46 |
'supports' => array( 'title' ),
|
47 |
)
|
48 |
);
|
@@ -209,6 +210,9 @@ class WPForms_Form_Handler {
|
|
209 |
*/
|
210 |
public function update( $form_id = '', $data = array(), $args = array() ) {
|
211 |
|
|
|
|
|
|
|
212 |
// Check for permissions
|
213 |
if ( !current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) )
|
214 |
return false;
|
43 |
'show_in_admin_bar' => false,
|
44 |
'rewrite' => false,
|
45 |
'query_var' => false,
|
46 |
+
'can_export' => false,
|
47 |
'supports' => array( 'title' ),
|
48 |
)
|
49 |
);
|
210 |
*/
|
211 |
public function update( $form_id = '', $data = array(), $args = array() ) {
|
212 |
|
213 |
+
// This filter breaks forms if they contain HTML
|
214 |
+
remove_filter( 'content_save_pre', 'balanceTags', 50 );
|
215 |
+
|
216 |
// Check for permissions
|
217 |
if ( !current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) )
|
218 |
return false;
|
includes/class-frontend.php
CHANGED
@@ -364,7 +364,7 @@ class WPForms_Frontend {
|
|
364 |
'label_class' => array(
|
365 |
'wpforms-field-label',
|
366 |
),
|
367 |
-
'label_id' =>
|
368 |
'description_class' => array(
|
369 |
'wpforms-field-description'
|
370 |
),
|
@@ -420,7 +420,10 @@ class WPForms_Frontend {
|
|
420 |
$field_atts['label_class'][] = 'wpforms-label-hide';
|
421 |
}
|
422 |
|
423 |
-
|
|
|
|
|
|
|
424 |
|
425 |
echo esc_html( $field['label'] );
|
426 |
|
@@ -514,7 +517,7 @@ class WPForms_Frontend {
|
|
514 |
|
515 |
echo '<div class="wpforms-field wpforms-field-hp" id="wpform-field-hp">';
|
516 |
|
517 |
-
echo '<label for="wpforms-field_hp" class="wpforms-field-label"
|
518 |
|
519 |
echo '<input type="text" name="wpforms[hp]" id="wpforms-field_hp" class="wpforms-field-medium">';
|
520 |
|
@@ -787,7 +790,7 @@ class WPForms_Frontend {
|
|
787 |
|
788 |
// If we have payment fields then include currency details
|
789 |
$payment_fields = array( 'credit-card', 'payment-single', 'payment-multiple', 'payment-total' );
|
790 |
-
if ( $this->assets_global() || true == wpforms_has_field_type( $payment_fields , $this->forms, true ) ) :
|
791 |
$currency = wpforms_setting( 'currency', 'USD' );
|
792 |
$currencies = wpforms_get_currencies();
|
793 |
wp_localize_script(
|
364 |
'label_class' => array(
|
365 |
'wpforms-field-label',
|
366 |
),
|
367 |
+
'label_id' => '',
|
368 |
'description_class' => array(
|
369 |
'wpforms-field-description'
|
370 |
),
|
420 |
$field_atts['label_class'][] = 'wpforms-label-hide';
|
421 |
}
|
422 |
|
423 |
+
$label_class = !empty( $field_atts['label_class'] ) ? ' class="' . implode( ' ', $field_atts['label_class'] ) . '"' : '';
|
424 |
+
$label_id = !empty( $field_atts['label_id'] ) ? ' id="' . $field_atts['label_id'] . '"' : '';
|
425 |
+
|
426 |
+
echo '<label for="wpforms-' . absint( $form_data['id'] ) . '-field_' . absint( $field['id'] ) . '"' . $label_class . $label_id . '>';
|
427 |
|
428 |
echo esc_html( $field['label'] );
|
429 |
|
517 |
|
518 |
echo '<div class="wpforms-field wpforms-field-hp" id="wpform-field-hp">';
|
519 |
|
520 |
+
echo '<label for="wpforms-field_hp" class="wpforms-field-label">' . esc_html( $names[ array_rand( $names ) ] ) . '</label>';
|
521 |
|
522 |
echo '<input type="text" name="wpforms[hp]" id="wpforms-field_hp" class="wpforms-field-medium">';
|
523 |
|
790 |
|
791 |
// If we have payment fields then include currency details
|
792 |
$payment_fields = array( 'credit-card', 'payment-single', 'payment-multiple', 'payment-total' );
|
793 |
+
if ( ( $this->assets_global() || true == wpforms_has_field_type( $payment_fields , $this->forms, true ) ) && function_exists( 'wpforms_get_currencies' ) ) :
|
794 |
$currency = wpforms_setting( 'currency', 'USD' );
|
795 |
$currencies = wpforms_get_currencies();
|
796 |
wp_localize_script(
|
includes/class-process.php
CHANGED
@@ -81,11 +81,12 @@ class WPForms_Process {
|
|
81 |
}
|
82 |
|
83 |
// Formatted form data for hooks
|
84 |
-
$form_data = wpforms_decode( $form->post_content );
|
85 |
|
86 |
// Pre-process/validate hooks and filter. Data is not validated or
|
87 |
// cleaned yet so use with caution.
|
88 |
$entry = apply_filters( 'wpforms_process_before_filter', $entry, $form_data );
|
|
|
89 |
do_action( 'wpforms_process_before', $entry, $form_data );
|
90 |
do_action( "wpforms_process_before_{$form_id}", $entry, $form_data );
|
91 |
|
81 |
}
|
82 |
|
83 |
// Formatted form data for hooks
|
84 |
+
$form_data = apply_filters( 'wpforms_process_before_form_data', wpforms_decode( $form->post_content ), $entry );
|
85 |
|
86 |
// Pre-process/validate hooks and filter. Data is not validated or
|
87 |
// cleaned yet so use with caution.
|
88 |
$entry = apply_filters( 'wpforms_process_before_filter', $entry, $form_data );
|
89 |
+
|
90 |
do_action( 'wpforms_process_before', $entry, $form_data );
|
91 |
do_action( "wpforms_process_before_{$form_id}", $entry, $form_data );
|
92 |
|
includes/fields/class-base.php
CHANGED
@@ -700,6 +700,7 @@ abstract class WPForms_Field {
|
|
700 |
$this->field_preview( $field );
|
701 |
$prev = ob_get_clean();
|
702 |
$preview = sprintf( '<div class="wpforms-field wpforms-field-%s %s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field_type, $field_required, $field_class, $field['id'], $field['id'], $field_type );
|
|
|
703 |
$preview .= sprintf( '<a href="#" class="wpforms-field-delete" title="%s"><i class="fa fa-times-circle"></i></a>', __( 'Delete Field', 'wpforms' ) );
|
704 |
$preview .= sprintf( '<span class="wpforms-field-helper">%s</span>', __( 'Click to edit. Drag to reorder.', 'wpforms' ) );
|
705 |
$preview .= $prev;
|
700 |
$this->field_preview( $field );
|
701 |
$prev = ob_get_clean();
|
702 |
$preview = sprintf( '<div class="wpforms-field wpforms-field-%s %s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field_type, $field_required, $field_class, $field['id'], $field['id'], $field_type );
|
703 |
+
$preview .= sprintf( '<a href="#" class="wpforms-field-duplicate" title="%s"><i class="fa fa-files-o" aria-hidden="true"></i></a>', __( 'Duplicate Field', 'wpforms' ) );
|
704 |
$preview .= sprintf( '<a href="#" class="wpforms-field-delete" title="%s"><i class="fa fa-times-circle"></i></a>', __( 'Delete Field', 'wpforms' ) );
|
705 |
$preview .= sprintf( '<span class="wpforms-field-helper">%s</span>', __( 'Click to edit. Drag to reorder.', 'wpforms' ) );
|
706 |
$preview .= $prev;
|
includes/fields/class-checkbox.php
CHANGED
@@ -224,7 +224,7 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
224 |
'orderby' => 'title',
|
225 |
'order' => 'ASC' ,
|
226 |
);
|
227 |
-
$posts = apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] );
|
228 |
$choices = array();
|
229 |
|
230 |
foreach ( $posts as $post ) {
|
@@ -314,16 +314,17 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
314 |
if ( 'post_type' == $dynamic && !empty( $field['dynamic_post_type'] ) ) {
|
315 |
|
316 |
// Dynamic population is enabled using post type
|
317 |
-
$
|
318 |
-
$data['
|
319 |
-
|
320 |
-
$
|
321 |
-
$
|
|
|
322 |
|
323 |
foreach ( $field_submit as $id ) {
|
324 |
$post = get_post( $id );
|
325 |
|
326 |
-
if ( ! is_wp_error( $post ) && !empty( $post ) && $
|
327 |
$posts[] = esc_html( $post->post_title );
|
328 |
}
|
329 |
}
|
@@ -333,14 +334,15 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
333 |
} elseif ( 'taxonomy' == $dynamic && !empty( $field['dynamic_taxonomy'] ) ) {
|
334 |
|
335 |
// Dynamic population is enabled using taxonomy
|
336 |
-
$
|
337 |
-
$data['
|
338 |
-
|
339 |
-
$
|
340 |
-
$
|
|
|
341 |
|
342 |
foreach ( $field_submit as $id ) {
|
343 |
-
$term = get_term( $id, $
|
344 |
|
345 |
if ( ! is_wp_error( $term ) && !empty( $term ) ) {
|
346 |
$terms[] = esc_html( $term->name );
|
224 |
'orderby' => 'title',
|
225 |
'order' => 'ASC' ,
|
226 |
);
|
227 |
+
$posts = get_posts( apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] ) );
|
228 |
$choices = array();
|
229 |
|
230 |
foreach ( $posts as $post ) {
|
314 |
if ( 'post_type' == $dynamic && !empty( $field['dynamic_post_type'] ) ) {
|
315 |
|
316 |
// Dynamic population is enabled using post type
|
317 |
+
$value_raw = implode( ',', array_map( 'absint', $field_submit ) );
|
318 |
+
$data['value_raw'] = $value_raw;
|
319 |
+
$data['dynamic'] = 'post_type';
|
320 |
+
$data['dynamic_items'] = $value_raw;
|
321 |
+
$data['dynamic_post_type'] = $field['dynamic_post_type'];
|
322 |
+
$posts = array();
|
323 |
|
324 |
foreach ( $field_submit as $id ) {
|
325 |
$post = get_post( $id );
|
326 |
|
327 |
+
if ( ! is_wp_error( $post ) && !empty( $post ) && $data['dynamic_post_type'] == $post->post_type ) {
|
328 |
$posts[] = esc_html( $post->post_title );
|
329 |
}
|
330 |
}
|
334 |
} elseif ( 'taxonomy' == $dynamic && !empty( $field['dynamic_taxonomy'] ) ) {
|
335 |
|
336 |
// Dynamic population is enabled using taxonomy
|
337 |
+
$value_raw = implode( ',', array_map( 'absint', $field_submit ) );
|
338 |
+
$data['value_raw'] = $value_raw;
|
339 |
+
$data['dynamic'] = 'taxonomy';
|
340 |
+
$data['dynamic_items'] = $value_raw;
|
341 |
+
$data['dynamic_taxonomy'] = $field['dynamic_taxonomy'];
|
342 |
+
$terms = array();
|
343 |
|
344 |
foreach ( $field_submit as $id ) {
|
345 |
+
$term = get_term( $id, $field['dynamic_taxonomy'] );
|
346 |
|
347 |
if ( ! is_wp_error( $term ) && !empty( $term ) ) {
|
348 |
$terms[] = esc_html( $term->name );
|
includes/fields/class-radio.php
CHANGED
@@ -223,7 +223,7 @@ class WPForms_Field_Radio extends WPForms_Field {
|
|
223 |
'orderby' => 'title',
|
224 |
'order' => 'ASC' ,
|
225 |
);
|
226 |
-
$posts = apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] );
|
227 |
$choices = array();
|
228 |
|
229 |
foreach ( $posts as $post ) {
|
@@ -312,24 +312,22 @@ class WPForms_Field_Radio extends WPForms_Field {
|
|
312 |
if ( 'post_type' == $dynamic && !empty( $field['dynamic_post_type'] ) ) {
|
313 |
|
314 |
// Dynamic population is enabled using post type
|
315 |
-
$data['dynamic']
|
316 |
-
$data['
|
|
|
|
|
317 |
|
318 |
-
$
|
319 |
-
$post = get_post( $value_raw );
|
320 |
-
|
321 |
-
if ( ! is_wp_error( $post ) && !empty( $post ) && $source == $post->post_type ) {
|
322 |
$data['value'] = esc_html( $post->post_title );
|
323 |
}
|
324 |
|
325 |
} elseif ( 'taxonomy' == $dynamic && !empty( $field['dynamic_taxonomy'] ) ) {
|
326 |
|
327 |
// Dynamic population is enabled using taxonomy
|
328 |
-
$data['dynamic']
|
329 |
-
$data['
|
330 |
-
|
331 |
-
$
|
332 |
-
$term = get_term( $value_raw, $source );
|
333 |
|
334 |
if ( ! is_wp_error( $term ) && !empty( $term ) ) {
|
335 |
$data['value'] = esc_html( $term->name );
|
223 |
'orderby' => 'title',
|
224 |
'order' => 'ASC' ,
|
225 |
);
|
226 |
+
$posts = get_posts( apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] ) );
|
227 |
$choices = array();
|
228 |
|
229 |
foreach ( $posts as $post ) {
|
312 |
if ( 'post_type' == $dynamic && !empty( $field['dynamic_post_type'] ) ) {
|
313 |
|
314 |
// Dynamic population is enabled using post type
|
315 |
+
$data['dynamic'] = 'post_type';
|
316 |
+
$data['dynamic_items'] = absint( $value_raw );
|
317 |
+
$data['dynamic_post_type'] = $field['dynamic_post_type'];
|
318 |
+
$post = get_post( $value_raw );
|
319 |
|
320 |
+
if ( ! is_wp_error( $post ) && !empty( $post ) && $data['dynamic_post_type'] == $post->post_type ) {
|
|
|
|
|
|
|
321 |
$data['value'] = esc_html( $post->post_title );
|
322 |
}
|
323 |
|
324 |
} elseif ( 'taxonomy' == $dynamic && !empty( $field['dynamic_taxonomy'] ) ) {
|
325 |
|
326 |
// Dynamic population is enabled using taxonomy
|
327 |
+
$data['dynamic'] = 'taxonomy';
|
328 |
+
$data['dynamic_items'] = absint( $value_raw );
|
329 |
+
$data['dynamic_taxonomy'] = $field['dynamic_taxonomy'];
|
330 |
+
$term = get_term( $value_raw, $data['dynamic_taxonomy'] );
|
|
|
331 |
|
332 |
if ( ! is_wp_error( $term ) && !empty( $term ) ) {
|
333 |
$data['value'] = esc_html( $term->name );
|
includes/fields/class-select.php
CHANGED
@@ -236,7 +236,7 @@ class WPForms_Field_Select extends WPForms_Field {
|
|
236 |
'orderby' => 'title',
|
237 |
'order' => 'ASC' ,
|
238 |
);
|
239 |
-
$posts = apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] );
|
240 |
$choices = array();
|
241 |
|
242 |
foreach ( $posts as $post ) {
|
@@ -308,24 +308,22 @@ class WPForms_Field_Select extends WPForms_Field {
|
|
308 |
if ( 'post_type' == $dynamic && !empty( $field['dynamic_post_type'] ) ) {
|
309 |
|
310 |
// Dynamic population is enabled using post type
|
311 |
-
$data['dynamic']
|
312 |
-
$data['
|
|
|
|
|
313 |
|
314 |
-
$
|
315 |
-
$post = get_post( $value_raw );
|
316 |
-
|
317 |
-
if ( ! is_wp_error( $post ) && !empty( $post ) && $source == $post->post_type ) {
|
318 |
$data['value'] = esc_html( $post->post_title );
|
319 |
}
|
320 |
|
321 |
} elseif ( 'taxonomy' == $dynamic && !empty( $field['dynamic_taxonomy'] ) ) {
|
322 |
|
323 |
// Dynamic population is enabled using taxonomy
|
324 |
-
$data['dynamic']
|
325 |
-
$data['
|
326 |
-
|
327 |
-
$
|
328 |
-
$term = get_term( $value_raw, $source );
|
329 |
|
330 |
if ( ! is_wp_error( $term ) && !empty( $term ) ) {
|
331 |
$data['value'] = esc_html( $term->name );
|
236 |
'orderby' => 'title',
|
237 |
'order' => 'ASC' ,
|
238 |
);
|
239 |
+
$posts = get_posts( apply_filters( 'wpforms_dynamic_choice_post_type_args', $args, $field, $form_data['id'] ) );
|
240 |
$choices = array();
|
241 |
|
242 |
foreach ( $posts as $post ) {
|
308 |
if ( 'post_type' == $dynamic && !empty( $field['dynamic_post_type'] ) ) {
|
309 |
|
310 |
// Dynamic population is enabled using post type
|
311 |
+
$data['dynamic'] = 'post_type';
|
312 |
+
$data['dynamic_items'] = absint( $value_raw );
|
313 |
+
$data['dynamic_post_type'] = $field['dynamic_post_type'];
|
314 |
+
$post = get_post( $value_raw );
|
315 |
|
316 |
+
if ( ! is_wp_error( $post ) && !empty( $post ) && $data['dynamic_post_type'] == $post->post_type ) {
|
|
|
|
|
|
|
317 |
$data['value'] = esc_html( $post->post_title );
|
318 |
}
|
319 |
|
320 |
} elseif ( 'taxonomy' == $dynamic && !empty( $field['dynamic_taxonomy'] ) ) {
|
321 |
|
322 |
// Dynamic population is enabled using taxonomy
|
323 |
+
$data['dynamic'] = 'taxonomy';
|
324 |
+
$data['dynamic_items'] = absint( $value_raw );
|
325 |
+
$data['dynamic_taxonomy'] = $field['dynamic_taxonomy'];
|
326 |
+
$term = get_term( $value_raw, $data['dynamic_taxonomy'] );
|
|
|
327 |
|
328 |
if ( ! is_wp_error( $term ) && !empty( $term ) ) {
|
329 |
$data['value'] = esc_html( $term->name );
|
includes/templates/class-base.php
CHANGED
@@ -172,8 +172,8 @@ abstract class WPForms_Template {
|
|
172 |
|
173 |
$form_data = wpforms_decode( $form->post_content );
|
174 |
|
175 |
-
if ( empty( $this->modal ) || $this->slug != $form_data['meta']['template'] ) {
|
176 |
-
return
|
177 |
} else {
|
178 |
$display = $this->template_modal_conditional( $form_data );
|
179 |
}
|
172 |
|
173 |
$form_data = wpforms_decode( $form->post_content );
|
174 |
|
175 |
+
if ( empty( $this->modal ) || empty( $form_data['meta']['template'] ) || $this->slug != $form_data['meta']['template'] ) {
|
176 |
+
return $details;
|
177 |
} else {
|
178 |
$display = $this->template_modal_conditional( $form_data );
|
179 |
}
|
languages/wpforms.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the WPForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WPForms 1.2.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
|
7 |
-
"POT-Creation-Date: 2016-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -40,11 +40,11 @@ msgstr ""
|
|
40 |
msgid "Error updating form template"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: includes/admin/ajax-actions.php:
|
44 |
msgid "post type"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: includes/admin/ajax-actions.php:
|
48 |
msgid "taxonomy"
|
49 |
msgstr ""
|
50 |
|
@@ -84,7 +84,7 @@ msgid "Field Locked"
|
|
84 |
msgstr ""
|
85 |
|
86 |
#: includes/admin/builder/class-builder.php:267
|
87 |
-
msgid "This field cannot be deleted
|
88 |
msgstr ""
|
89 |
|
90 |
#: includes/admin/builder/class-builder.php:268
|
@@ -140,7 +140,7 @@ msgid "Save and Exit"
|
|
140 |
msgstr ""
|
141 |
|
142 |
#: includes/admin/builder/class-builder.php:281
|
143 |
-
#: includes/admin/builder/class-builder.php:
|
144 |
msgid "Loading"
|
145 |
msgstr ""
|
146 |
|
@@ -165,7 +165,7 @@ msgid "Or you can follow the instructions in this video."
|
|
165 |
msgstr ""
|
166 |
|
167 |
#: includes/admin/builder/class-builder.php:291
|
168 |
-
#: includes/admin/builder/class-builder.php:
|
169 |
msgid "Exit"
|
170 |
msgstr ""
|
171 |
|
@@ -178,81 +178,89 @@ msgid "Are you sure you want to delete this field?"
|
|
178 |
msgstr ""
|
179 |
|
180 |
#: includes/admin/builder/class-builder.php:295
|
181 |
-
msgid "
|
182 |
msgstr ""
|
183 |
|
184 |
#: includes/admin/builder/class-builder.php:296
|
185 |
-
msgid "
|
186 |
msgstr ""
|
187 |
|
188 |
#: includes/admin/builder/class-builder.php:297
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
#: includes/fields/class-base.php:239 includes/fields/class-base.php:523
|
190 |
#: lite/wpforms-lite.php:75 pro/wpforms-pro.php:258
|
191 |
msgid "Off"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: includes/admin/builder/class-builder.php:
|
195 |
#: includes/fields/class-base.php:239 lite/wpforms-lite.php:74
|
196 |
#: pro/wpforms-pro.php:257
|
197 |
msgid "On"
|
198 |
msgstr ""
|
199 |
|
200 |
-
#: includes/admin/builder/class-builder.php:
|
201 |
#: includes/templates/class-suggestion.php:59
|
202 |
msgid "Other"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: includes/admin/builder/class-builder.php:
|
206 |
-
#: includes/class-frontend.php:
|
207 |
#: pro/includes/fields/class-page-break.php:144
|
208 |
msgid "Previous"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: includes/admin/builder/class-builder.php:
|
212 |
#: includes/admin/builder/functions.php:210 includes/fields/class-base.php:424
|
213 |
msgid "Show Smart Tags"
|
214 |
msgstr ""
|
215 |
|
216 |
-
#: includes/admin/builder/class-builder.php:
|
217 |
msgid "Hide Smart Tags"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: includes/admin/builder/class-builder.php:
|
221 |
msgid "-- Select Field --"
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: includes/admin/builder/class-builder.php:
|
225 |
-
#: pro/includes/class-provider.php:
|
226 |
msgid "-- Select Choice --"
|
227 |
msgstr ""
|
228 |
|
229 |
-
#: includes/admin/builder/class-builder.php:
|
230 |
msgid "Now editing"
|
231 |
msgstr ""
|
232 |
|
233 |
-
#: includes/admin/builder/class-builder.php:
|
234 |
#: pro/includes/admin/entries/class-entries.php:511
|
235 |
msgid "Preview Form"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: includes/admin/builder/class-builder.php:
|
239 |
#: includes/admin/overview/class-overview-table.php:159
|
240 |
msgid "Preview"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: includes/admin/builder/class-builder.php:
|
244 |
msgid "Embed Form"
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: includes/admin/builder/class-builder.php:
|
248 |
msgid "Embed"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: includes/admin/builder/class-builder.php:
|
252 |
msgid "Save Form"
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: includes/admin/builder/class-builder.php:
|
256 |
#: pro/includes/admin/class-settings.php:441
|
257 |
msgid "Save"
|
258 |
msgstr ""
|
@@ -306,11 +314,16 @@ msgstr ""
|
|
306 |
|
307 |
#: includes/admin/builder/panels/class-fields.php:250
|
308 |
#: includes/fields/class-base.php:703
|
309 |
-
msgid "
|
310 |
msgstr ""
|
311 |
|
312 |
#: includes/admin/builder/panels/class-fields.php:252
|
313 |
#: includes/fields/class-base.php:704
|
|
|
|
|
|
|
|
|
|
|
314 |
msgid "Click to edit. Drag to reorder."
|
315 |
msgstr ""
|
316 |
|
@@ -501,9 +514,9 @@ msgid ""
|
|
501 |
"a>?"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
505 |
#. Plugin Name of the plugin/theme
|
506 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
507 |
#. Author of the plugin/theme
|
508 |
#: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
|
509 |
#: includes/admin/class-menu.php:51
|
@@ -520,7 +533,7 @@ msgstr ""
|
|
520 |
|
521 |
#: includes/admin/class-menu.php:62
|
522 |
#: includes/admin/overview/class-overview.php:148
|
523 |
-
#: pro/includes/class-provider.php:
|
524 |
msgid "Add New"
|
525 |
msgstr ""
|
526 |
|
@@ -769,19 +782,19 @@ msgstr ""
|
|
769 |
msgid "Invalid form."
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: includes/class-process.php:
|
773 |
msgid "Incorrect reCAPTCHA, please try again."
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: includes/class-process.php:
|
777 |
msgid "Form has not been submitted, please see the errors below."
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: includes/class-process.php:
|
781 |
msgid "WPForms honeypot field triggered."
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: includes/class-process.php:
|
785 |
#: pro/wpforms-pro.php:237
|
786 |
msgid "New %s Entry"
|
787 |
msgstr ""
|
@@ -1062,11 +1075,11 @@ msgstr ""
|
|
1062 |
msgid "No field type found"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
-
#: includes/fields/class-base.php:
|
1066 |
#: includes/fields/class-name.php:311 includes/fields/class-number.php:127
|
1067 |
#: pro/includes/fields/class-address.php:624
|
1068 |
#: pro/includes/fields/class-date-time.php:293
|
1069 |
-
#: pro/includes/fields/class-file-upload.php:
|
1070 |
#: pro/includes/fields/class-payment-multiple.php:177
|
1071 |
#: pro/includes/fields/class-payment-single.php:189
|
1072 |
#: pro/includes/fields/class-url.php:126
|
@@ -1857,7 +1870,7 @@ msgid "Please upload a valid .json form export file."
|
|
1857 |
msgstr ""
|
1858 |
|
1859 |
#: pro/includes/admin/class-settings.php:590
|
1860 |
-
#: pro/includes/admin/entries/class-entries-export.php:
|
1861 |
msgid "Error"
|
1862 |
msgstr ""
|
1863 |
|
@@ -1869,7 +1882,7 @@ msgstr ""
|
|
1869 |
msgid "ID"
|
1870 |
msgstr ""
|
1871 |
|
1872 |
-
#: pro/includes/admin/entries/class-entries-export.php:
|
1873 |
msgid "You do not have permission to export entries."
|
1874 |
msgstr ""
|
1875 |
|
@@ -2201,8 +2214,8 @@ msgstr ""
|
|
2201 |
msgid "Connection"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: pro/includes/class-provider.php:149 pro/includes/class-provider.php:
|
2205 |
-
#: pro/includes/class-provider.php:
|
2206 |
msgid "You do not have permission"
|
2207 |
msgstr ""
|
2208 |
|
@@ -2214,7 +2227,7 @@ msgstr ""
|
|
2214 |
msgid "Select Account"
|
2215 |
msgstr ""
|
2216 |
|
2217 |
-
#: pro/includes/class-provider.php:670 pro/includes/class-provider.php:
|
2218 |
msgid "Add New Account"
|
2219 |
msgstr ""
|
2220 |
|
@@ -2232,76 +2245,76 @@ msgid ""
|
|
2232 |
"specific list segments below if needed. This is optional."
|
2233 |
msgstr ""
|
2234 |
|
2235 |
-
#: pro/includes/class-provider.php:
|
2236 |
msgid "List Fields"
|
2237 |
msgstr ""
|
2238 |
|
2239 |
-
#: pro/includes/class-provider.php:
|
2240 |
msgid "Available Form Fields"
|
2241 |
msgstr ""
|
2242 |
|
2243 |
-
#: pro/includes/class-provider.php:
|
2244 |
msgid "Conditional Logic"
|
2245 |
msgstr ""
|
2246 |
|
2247 |
-
#: pro/includes/class-provider.php:
|
2248 |
msgid "Enable conditional logic"
|
2249 |
msgstr ""
|
2250 |
|
2251 |
-
#: pro/includes/class-provider.php:
|
2252 |
msgid "Process this form if"
|
2253 |
msgstr ""
|
2254 |
|
2255 |
-
#: pro/includes/class-provider.php:
|
2256 |
msgid "-- Select field --"
|
2257 |
msgstr ""
|
2258 |
|
2259 |
-
#: pro/includes/class-provider.php:
|
2260 |
msgid "is"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
-
#: pro/includes/class-provider.php:
|
2264 |
msgid "is not"
|
2265 |
msgstr ""
|
2266 |
|
2267 |
-
#: pro/includes/class-provider.php:
|
2268 |
msgid "AND"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
-
#: pro/includes/class-provider.php:
|
2272 |
msgid "Add rule group"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
-
#: pro/includes/class-provider.php:
|
2276 |
msgid "Missing data"
|
2277 |
msgstr ""
|
2278 |
|
2279 |
-
#: pro/includes/class-provider.php:
|
2280 |
msgid "Connection missing"
|
2281 |
msgstr ""
|
2282 |
|
2283 |
-
#: pro/includes/class-provider.php:
|
2284 |
msgid "Connected on: "
|
2285 |
msgstr ""
|
2286 |
|
2287 |
-
#: pro/includes/class-provider.php:
|
2288 |
msgid "Disconnect "
|
2289 |
msgstr ""
|
2290 |
|
2291 |
-
#: pro/includes/class-provider.php:
|
2292 |
msgid "Integrate %s with WPForms"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
-
#: pro/includes/class-provider.php:
|
2296 |
msgid "Connected"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
-
#: pro/includes/class-provider.php:
|
2300 |
msgid ""
|
2301 |
"Please fill out all of the fields below to add your new provider account."
|
2302 |
msgstr ""
|
2303 |
|
2304 |
-
#: pro/includes/class-provider.php:
|
2305 |
msgid "Connect to"
|
2306 |
msgstr ""
|
2307 |
|
@@ -2427,69 +2440,79 @@ msgstr ""
|
|
2427 |
msgid "File Upload"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
-
#: pro/includes/fields/class-file-upload.php:
|
|
|
|
|
|
|
|
|
2431 |
msgid "Enter the extensions you would like to allow, comma separated."
|
2432 |
msgstr ""
|
2433 |
|
2434 |
-
#: pro/includes/fields/class-file-upload.php:
|
2435 |
-
msgid "
|
2436 |
msgstr ""
|
2437 |
|
2438 |
-
#: pro/includes/fields/class-file-upload.php:
|
2439 |
msgid ""
|
2440 |
"Enter the max file size, in megabytyes, to allow. If left blank, the value "
|
2441 |
"defaults to the maximum size the server allows which is "
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: pro/includes/fields/class-file-upload.php:
|
2445 |
-
msgid "
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: pro/includes/fields/class-file-upload.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
2449 |
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
|
2450 |
msgstr ""
|
2451 |
|
2452 |
-
#: pro/includes/fields/class-file-upload.php:
|
2453 |
msgid ""
|
2454 |
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
|
2455 |
"the HTML form."
|
2456 |
msgstr ""
|
2457 |
|
2458 |
-
#: pro/includes/fields/class-file-upload.php:
|
2459 |
msgid "The uploaded file was only partially uploaded."
|
2460 |
msgstr ""
|
2461 |
|
2462 |
-
#: pro/includes/fields/class-file-upload.php:
|
2463 |
msgid "No file was uploaded."
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: pro/includes/fields/class-file-upload.php:
|
2467 |
msgid "Missing a temporary folder."
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: pro/includes/fields/class-file-upload.php:
|
2471 |
msgid "Failed to write file to disk."
|
2472 |
msgstr ""
|
2473 |
|
2474 |
-
#: pro/includes/fields/class-file-upload.php:
|
2475 |
msgid "File upload stopped by extension."
|
2476 |
msgstr ""
|
2477 |
|
2478 |
-
#: pro/includes/fields/class-file-upload.php:
|
2479 |
msgid "File upload error. "
|
2480 |
msgstr ""
|
2481 |
|
2482 |
-
#: pro/includes/fields/class-file-upload.php:
|
2483 |
msgid "File exceeds max size allowed"
|
2484 |
msgstr ""
|
2485 |
|
2486 |
-
#: pro/includes/fields/class-file-upload.php:
|
2487 |
msgid "File must have an extension."
|
2488 |
msgstr ""
|
2489 |
|
2490 |
-
#: pro/includes/fields/class-file-upload.php:
|
2491 |
-
#: pro/includes/fields/class-file-upload.php:
|
2492 |
-
#: pro/includes/fields/class-file-upload.php:
|
2493 |
msgid "File type is not allowed."
|
2494 |
msgstr ""
|
2495 |
|
@@ -2960,9 +2983,9 @@ msgstr ""
|
|
2960 |
msgid "Please deactivate WPForms Lite before activating WPForms"
|
2961 |
msgstr ""
|
2962 |
|
2963 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
2964 |
#. Plugin URI of the plugin/theme
|
2965 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
2966 |
#. Author URI of the plugin/theme
|
2967 |
msgid "https://wpforms.com"
|
2968 |
msgstr ""
|
2 |
# This file is distributed under the same license as the WPForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WPForms 1.2.9\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
|
7 |
+
"POT-Creation-Date: 2016-10-04 15:34:00+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
40 |
msgid "Error updating form template"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: includes/admin/ajax-actions.php:243 includes/fields/class-base.php:387
|
44 |
msgid "post type"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: includes/admin/ajax-actions.php:262 includes/fields/class-base.php:394
|
48 |
msgid "taxonomy"
|
49 |
msgstr ""
|
50 |
|
84 |
msgstr ""
|
85 |
|
86 |
#: includes/admin/builder/class-builder.php:267
|
87 |
+
msgid "This field cannot be deleted or duplicated."
|
88 |
msgstr ""
|
89 |
|
90 |
#: includes/admin/builder/class-builder.php:268
|
140 |
msgstr ""
|
141 |
|
142 |
#: includes/admin/builder/class-builder.php:281
|
143 |
+
#: includes/admin/builder/class-builder.php:344
|
144 |
msgid "Loading"
|
145 |
msgstr ""
|
146 |
|
165 |
msgstr ""
|
166 |
|
167 |
#: includes/admin/builder/class-builder.php:291
|
168 |
+
#: includes/admin/builder/class-builder.php:394
|
169 |
msgid "Exit"
|
170 |
msgstr ""
|
171 |
|
178 |
msgstr ""
|
179 |
|
180 |
#: includes/admin/builder/class-builder.php:295
|
181 |
+
msgid "Are you sure you want to duplicate this field?"
|
182 |
msgstr ""
|
183 |
|
184 |
#: includes/admin/builder/class-builder.php:296
|
185 |
+
msgid "(copy)"
|
186 |
msgstr ""
|
187 |
|
188 |
#: includes/admin/builder/class-builder.php:297
|
189 |
+
msgid "Please enter a form title."
|
190 |
+
msgstr ""
|
191 |
+
|
192 |
+
#: includes/admin/builder/class-builder.php:298
|
193 |
+
msgid "This item must contain at least one choice."
|
194 |
+
msgstr ""
|
195 |
+
|
196 |
+
#: includes/admin/builder/class-builder.php:299
|
197 |
#: includes/fields/class-base.php:239 includes/fields/class-base.php:523
|
198 |
#: lite/wpforms-lite.php:75 pro/wpforms-pro.php:258
|
199 |
msgid "Off"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: includes/admin/builder/class-builder.php:300
|
203 |
#: includes/fields/class-base.php:239 lite/wpforms-lite.php:74
|
204 |
#: pro/wpforms-pro.php:257
|
205 |
msgid "On"
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: includes/admin/builder/class-builder.php:301
|
209 |
#: includes/templates/class-suggestion.php:59
|
210 |
msgid "Other"
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: includes/admin/builder/class-builder.php:302
|
214 |
+
#: includes/class-frontend.php:485
|
215 |
#: pro/includes/fields/class-page-break.php:144
|
216 |
msgid "Previous"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: includes/admin/builder/class-builder.php:305
|
220 |
#: includes/admin/builder/functions.php:210 includes/fields/class-base.php:424
|
221 |
msgid "Show Smart Tags"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: includes/admin/builder/class-builder.php:306
|
225 |
msgid "Hide Smart Tags"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: includes/admin/builder/class-builder.php:307
|
229 |
msgid "-- Select Field --"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: includes/admin/builder/class-builder.php:308
|
233 |
+
#: pro/includes/class-provider.php:945
|
234 |
msgid "-- Select Choice --"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: includes/admin/builder/class-builder.php:367
|
238 |
msgid "Now editing"
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: includes/admin/builder/class-builder.php:377
|
242 |
#: pro/includes/admin/entries/class-entries.php:511
|
243 |
msgid "Preview Form"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: includes/admin/builder/class-builder.php:379
|
247 |
#: includes/admin/overview/class-overview-table.php:159
|
248 |
msgid "Preview"
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: includes/admin/builder/class-builder.php:382
|
252 |
msgid "Embed Form"
|
253 |
msgstr ""
|
254 |
|
255 |
+
#: includes/admin/builder/class-builder.php:384
|
256 |
msgid "Embed"
|
257 |
msgstr ""
|
258 |
|
259 |
+
#: includes/admin/builder/class-builder.php:387
|
260 |
msgid "Save Form"
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: includes/admin/builder/class-builder.php:389
|
264 |
#: pro/includes/admin/class-settings.php:441
|
265 |
msgid "Save"
|
266 |
msgstr ""
|
314 |
|
315 |
#: includes/admin/builder/panels/class-fields.php:250
|
316 |
#: includes/fields/class-base.php:703
|
317 |
+
msgid "Duplicate Field"
|
318 |
msgstr ""
|
319 |
|
320 |
#: includes/admin/builder/panels/class-fields.php:252
|
321 |
#: includes/fields/class-base.php:704
|
322 |
+
msgid "Delete Field"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: includes/admin/builder/panels/class-fields.php:254
|
326 |
+
#: includes/fields/class-base.php:705
|
327 |
msgid "Click to edit. Drag to reorder."
|
328 |
msgstr ""
|
329 |
|
514 |
"a>?"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.9) #-#-#-#-#
|
518 |
#. Plugin Name of the plugin/theme
|
519 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.9) #-#-#-#-#
|
520 |
#. Author of the plugin/theme
|
521 |
#: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
|
522 |
#: includes/admin/class-menu.php:51
|
533 |
|
534 |
#: includes/admin/class-menu.php:62
|
535 |
#: includes/admin/overview/class-overview.php:148
|
536 |
+
#: pro/includes/class-provider.php:1084
|
537 |
msgid "Add New"
|
538 |
msgstr ""
|
539 |
|
782 |
msgid "Invalid form."
|
783 |
msgstr ""
|
784 |
|
785 |
+
#: includes/class-process.php:114
|
786 |
msgid "Incorrect reCAPTCHA, please try again."
|
787 |
msgstr ""
|
788 |
|
789 |
+
#: includes/class-process.php:121 includes/class-process.php:164
|
790 |
msgid "Form has not been submitted, please see the errors below."
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: includes/class-process.php:128
|
794 |
msgid "WPForms honeypot field triggered."
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: includes/class-process.php:340 lite/wpforms-lite.php:52
|
798 |
#: pro/wpforms-pro.php:237
|
799 |
msgid "New %s Entry"
|
800 |
msgstr ""
|
1075 |
msgid "No field type found"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: includes/fields/class-base.php:751 includes/fields/class-email.php:128
|
1079 |
#: includes/fields/class-name.php:311 includes/fields/class-number.php:127
|
1080 |
#: pro/includes/fields/class-address.php:624
|
1081 |
#: pro/includes/fields/class-date-time.php:293
|
1082 |
+
#: pro/includes/fields/class-file-upload.php:358
|
1083 |
#: pro/includes/fields/class-payment-multiple.php:177
|
1084 |
#: pro/includes/fields/class-payment-single.php:189
|
1085 |
#: pro/includes/fields/class-url.php:126
|
1870 |
msgstr ""
|
1871 |
|
1872 |
#: pro/includes/admin/class-settings.php:590
|
1873 |
+
#: pro/includes/admin/entries/class-entries-export.php:299
|
1874 |
msgid "Error"
|
1875 |
msgstr ""
|
1876 |
|
1882 |
msgid "ID"
|
1883 |
msgstr ""
|
1884 |
|
1885 |
+
#: pro/includes/admin/entries/class-entries-export.php:299
|
1886 |
msgid "You do not have permission to export entries."
|
1887 |
msgstr ""
|
1888 |
|
2214 |
msgid "Connection"
|
2215 |
msgstr ""
|
2216 |
|
2217 |
+
#: pro/includes/class-provider.php:149 pro/includes/class-provider.php:1129
|
2218 |
+
#: pro/includes/class-provider.php:1164
|
2219 |
msgid "You do not have permission"
|
2220 |
msgstr ""
|
2221 |
|
2227 |
msgid "Select Account"
|
2228 |
msgstr ""
|
2229 |
|
2230 |
+
#: pro/includes/class-provider.php:670 pro/includes/class-provider.php:1243
|
2231 |
msgid "Add New Account"
|
2232 |
msgstr ""
|
2233 |
|
2245 |
"specific list segments below if needed. This is optional."
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: pro/includes/class-provider.php:798 pro/includes/class-provider.php:803
|
2249 |
msgid "List Fields"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
+
#: pro/includes/class-provider.php:803
|
2253 |
msgid "Available Form Fields"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
+
#: pro/includes/class-provider.php:864
|
2257 |
msgid "Conditional Logic"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
+
#: pro/includes/class-provider.php:873
|
2261 |
msgid "Enable conditional logic"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
+
#: pro/includes/class-provider.php:880
|
2265 |
msgid "Process this form if"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
+
#: pro/includes/class-provider.php:911
|
2269 |
msgid "-- Select field --"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
+
#: pro/includes/class-provider.php:928
|
2273 |
msgid "is"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
+
#: pro/includes/class-provider.php:929
|
2277 |
msgid "is not"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: pro/includes/class-provider.php:963
|
2281 |
msgid "AND"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
+
#: pro/includes/class-provider.php:980
|
2285 |
msgid "Add rule group"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
+
#: pro/includes/class-provider.php:1133 pro/includes/class-provider.php:1168
|
2289 |
msgid "Missing data"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
+
#: pro/includes/class-provider.php:1145
|
2293 |
msgid "Connection missing"
|
2294 |
msgstr ""
|
2295 |
|
2296 |
+
#: pro/includes/class-provider.php:1182 pro/includes/class-provider.php:1233
|
2297 |
msgid "Connected on: "
|
2298 |
msgstr ""
|
2299 |
|
2300 |
+
#: pro/includes/class-provider.php:1183 pro/includes/class-provider.php:1234
|
2301 |
msgid "Disconnect "
|
2302 |
msgstr ""
|
2303 |
|
2304 |
+
#: pro/includes/class-provider.php:1218
|
2305 |
msgid "Integrate %s with WPForms"
|
2306 |
msgstr ""
|
2307 |
|
2308 |
+
#: pro/includes/class-provider.php:1219
|
2309 |
msgid "Connected"
|
2310 |
msgstr ""
|
2311 |
|
2312 |
+
#: pro/includes/class-provider.php:1249
|
2313 |
msgid ""
|
2314 |
"Please fill out all of the fields below to add your new provider account."
|
2315 |
msgstr ""
|
2316 |
|
2317 |
+
#: pro/includes/class-provider.php:1255
|
2318 |
msgid "Connect to"
|
2319 |
msgstr ""
|
2320 |
|
2440 |
msgid "File Upload"
|
2441 |
msgstr ""
|
2442 |
|
2443 |
+
#: pro/includes/fields/class-file-upload.php:140
|
2444 |
+
msgid "Allowed File Extensions"
|
2445 |
+
msgstr ""
|
2446 |
+
|
2447 |
+
#: pro/includes/fields/class-file-upload.php:141
|
2448 |
msgid "Enter the extensions you would like to allow, comma separated."
|
2449 |
msgstr ""
|
2450 |
|
2451 |
+
#: pro/includes/fields/class-file-upload.php:162
|
2452 |
+
msgid "Max File Size"
|
2453 |
msgstr ""
|
2454 |
|
2455 |
+
#: pro/includes/fields/class-file-upload.php:163
|
2456 |
msgid ""
|
2457 |
"Enter the max file size, in megabytyes, to allow. If left blank, the value "
|
2458 |
"defaults to the maximum size the server allows which is "
|
2459 |
msgstr ""
|
2460 |
|
2461 |
+
#: pro/includes/fields/class-file-upload.php:207
|
2462 |
+
msgid "Store file in WordPress Media Library"
|
2463 |
msgstr ""
|
2464 |
|
2465 |
+
#: pro/includes/fields/class-file-upload.php:208
|
2466 |
+
msgid ""
|
2467 |
+
"Check this option to store the final uploaded file in the WordPress Media "
|
2468 |
+
"Library"
|
2469 |
+
msgstr ""
|
2470 |
+
|
2471 |
+
#: pro/includes/fields/class-file-upload.php:340
|
2472 |
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
|
2473 |
msgstr ""
|
2474 |
|
2475 |
+
#: pro/includes/fields/class-file-upload.php:341
|
2476 |
msgid ""
|
2477 |
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
|
2478 |
"the HTML form."
|
2479 |
msgstr ""
|
2480 |
|
2481 |
+
#: pro/includes/fields/class-file-upload.php:342
|
2482 |
msgid "The uploaded file was only partially uploaded."
|
2483 |
msgstr ""
|
2484 |
|
2485 |
+
#: pro/includes/fields/class-file-upload.php:343
|
2486 |
msgid "No file was uploaded."
|
2487 |
msgstr ""
|
2488 |
|
2489 |
+
#: pro/includes/fields/class-file-upload.php:345
|
2490 |
msgid "Missing a temporary folder."
|
2491 |
msgstr ""
|
2492 |
|
2493 |
+
#: pro/includes/fields/class-file-upload.php:346
|
2494 |
msgid "Failed to write file to disk."
|
2495 |
msgstr ""
|
2496 |
|
2497 |
+
#: pro/includes/fields/class-file-upload.php:347
|
2498 |
msgid "File upload stopped by extension."
|
2499 |
msgstr ""
|
2500 |
|
2501 |
+
#: pro/includes/fields/class-file-upload.php:349
|
2502 |
msgid "File upload error. "
|
2503 |
msgstr ""
|
2504 |
|
2505 |
+
#: pro/includes/fields/class-file-upload.php:368
|
2506 |
msgid "File exceeds max size allowed"
|
2507 |
msgstr ""
|
2508 |
|
2509 |
+
#: pro/includes/fields/class-file-upload.php:386
|
2510 |
msgid "File must have an extension."
|
2511 |
msgstr ""
|
2512 |
|
2513 |
+
#: pro/includes/fields/class-file-upload.php:396
|
2514 |
+
#: pro/includes/fields/class-file-upload.php:415
|
2515 |
+
#: pro/includes/fields/class-file-upload.php:433
|
2516 |
msgid "File type is not allowed."
|
2517 |
msgstr ""
|
2518 |
|
2983 |
msgid "Please deactivate WPForms Lite before activating WPForms"
|
2984 |
msgstr ""
|
2985 |
|
2986 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.9) #-#-#-#-#
|
2987 |
#. Plugin URI of the plugin/theme
|
2988 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.9) #-#-#-#-#
|
2989 |
#. Author URI of the plugin/theme
|
2990 |
msgid "https://wpforms.com"
|
2991 |
msgstr ""
|
readme.txt
CHANGED
@@ -163,6 +163,15 @@ Syed Balkhi
|
|
163 |
|
164 |
== Changelog ==
|
165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
= 1.2.8.1 =
|
167 |
- Fixed: Form javascript email validation being too strict (introducted in 1.2.8)
|
168 |
|
163 |
|
164 |
== Changelog ==
|
165 |
|
166 |
+
= 1.2.9 =
|
167 |
+
- Added: Individual fields can be duplicated in the form builder
|
168 |
+
- Changed: How data is stored for fields using Dynanic Choices
|
169 |
+
- Fixed: Global assets setting causing errors in some cases
|
170 |
+
- Fixed: Writing setting ("correct invalidly nested XHTML") breaking forms containing HTML
|
171 |
+
- Fixed: Forms being displayed/included on the native WordPress Export page
|
172 |
+
- Fixed: Dynamic Choices erroring when used with Post Types
|
173 |
+
- Fixed: Form labels including blank IDs
|
174 |
+
|
175 |
= 1.2.8.1 =
|
176 |
- Fixed: Form javascript email validation being too strict (introducted in 1.2.8)
|
177 |
|
wpforms.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
|
6 |
* Author: WPForms
|
7 |
* Author URI: https://wpforms.com
|
8 |
-
* Version: 1.2.
|
9 |
* Text Domain: wpforms
|
10 |
* Domain Path: languages
|
11 |
*
|
@@ -81,7 +81,7 @@ final class WPForms {
|
|
81 |
* @since 1.0.0
|
82 |
* @var sting
|
83 |
*/
|
84 |
-
public $version = '1.2.
|
85 |
|
86 |
/**
|
87 |
* The form data handler instance.
|
5 |
* Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
|
6 |
* Author: WPForms
|
7 |
* Author URI: https://wpforms.com
|
8 |
+
* Version: 1.2.9
|
9 |
* Text Domain: wpforms
|
10 |
* Domain Path: languages
|
11 |
*
|
81 |
* @since 1.0.0
|
82 |
* @var sting
|
83 |
*/
|
84 |
+
public $version = '1.2.9';
|
85 |
|
86 |
/**
|
87 |
* The form data handler instance.
|