Version Description
- New feature: Added 'Include submitted values' option in Step 2 that allows you to send submitted data in a confirmation email sent to a user.
- Improvement: Multi-line and Text Editor parts now support minimium and maximum character and word counter.
- Bugfix: Long Text part was ignoring new lines when displaying submitted value in email.
Download this release
Release Info
Developer | thethemefoundry |
Plugin | Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms |
Version | 1.7.10 |
Comparing to | |
See all releases |
Code changes from version 1.7.9 to 1.7.10
- happyforms.php +2 -2
- inc/core/assets/css/admin.css +41 -0
- inc/core/assets/css/customize.css +17 -1
- inc/core/assets/js/frontend/long-text.js +17 -4
- inc/core/assets/js/frontend/rich-text.js +21 -11
- inc/core/assets/js/parts/part-multi-line-text.js +10 -21
- inc/core/assets/js/parts/part-rich-text.js +10 -21
- inc/core/classes/class-form-admin.php +19 -5
- inc/core/classes/class-form-setup.php +9 -0
- inc/core/classes/class-form-styles.php +2 -2
- inc/core/classes/class-message-controller.php +2 -2
- inc/core/classes/class-session.php +16 -0
- inc/core/classes/parts/class-part-checkbox.php +2 -2
- inc/core/classes/parts/class-part-multi-line-text.php +76 -9
- inc/core/classes/parts/class-part-radio.php +2 -2
- inc/core/classes/parts/class-part-rich-text.php +60 -11
- inc/core/helpers/helper-form-templates.php +19 -0
- inc/core/templates/email-user.php +16 -0
- inc/core/templates/parts/customize-multi-line-text.php +10 -2
- inc/core/templates/parts/customize-rich-text.php +9 -1
- languages/happyforms.pot +142 -94
- readme.txt +9 -1
happyforms.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Plugin URI: https://happyforms.me
|
6 |
* Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
|
7 |
* Author: The Theme Foundry
|
8 |
-
* Version: 1.7.
|
9 |
* Author URI: https://thethemefoundry.com
|
10 |
* Upgrade URI: https://thethemefoundry.com
|
11 |
*/
|
@@ -13,7 +13,7 @@
|
|
13 |
/**
|
14 |
* The current version of the plugin.
|
15 |
*/
|
16 |
-
define( 'HAPPYFORMS_VERSION', '1.7.
|
17 |
|
18 |
if ( ! function_exists( 'happyforms_plugin_file' ) ):
|
19 |
/**
|
5 |
* Plugin URI: https://happyforms.me
|
6 |
* Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
|
7 |
* Author: The Theme Foundry
|
8 |
+
* Version: 1.7.10
|
9 |
* Author URI: https://thethemefoundry.com
|
10 |
* Upgrade URI: https://thethemefoundry.com
|
11 |
*/
|
13 |
/**
|
14 |
* The current version of the plugin.
|
15 |
*/
|
16 |
+
define( 'HAPPYFORMS_VERSION', '1.7.10' );
|
17 |
|
18 |
if ( ! function_exists( 'happyforms_plugin_file' ) ):
|
19 |
/**
|
inc/core/assets/css/admin.css
CHANGED
@@ -272,4 +272,45 @@ p.welcome-panel-footer a:active {
|
|
272 |
|
273 |
.wp-list-table .happyforms-responses-column-label {
|
274 |
display: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
272 |
|
273 |
.wp-list-table .happyforms-responses-column-label {
|
274 |
display: none;
|
275 |
+
}
|
276 |
+
|
277 |
+
.happyforms-responses-count-wrapper {
|
278 |
+
white-space: nowrap;
|
279 |
+
word-wrap: normal;
|
280 |
+
}
|
281 |
+
|
282 |
+
.happyforms-responses-count {
|
283 |
+
margin-top: 5px;
|
284 |
+
}
|
285 |
+
|
286 |
+
.happyforms-responses-count-bubble {
|
287 |
+
box-sizing: border-box;
|
288 |
+
display: inline-block;
|
289 |
+
padding: 0 8px;
|
290 |
+
min-width: 24px;
|
291 |
+
height: 2em;
|
292 |
+
border-radius: 5px;
|
293 |
+
background-color: #72777c;
|
294 |
+
color: #fff;
|
295 |
+
font-size: 11px;
|
296 |
+
line-height: 21px;
|
297 |
+
text-align: center;
|
298 |
+
}
|
299 |
+
|
300 |
+
.happyforms-responses-count-bubble:after {
|
301 |
+
content: '';
|
302 |
+
display: block;
|
303 |
+
margin-left: 1px;
|
304 |
+
width: 0;
|
305 |
+
height: 0;
|
306 |
+
border-top: 6px solid #72777c;
|
307 |
+
border-right: 6px solid transparent;
|
308 |
+
}
|
309 |
+
|
310 |
+
.happyforms-responses-count-wrapper a:hover .happyforms-responses-count-bubble {
|
311 |
+
background-color: #0073aa;
|
312 |
+
}
|
313 |
+
|
314 |
+
.happyforms-responses-count-wrapper a:hover .happyforms-responses-count-bubble:after {
|
315 |
+
border-top-color: #0073aa;
|
316 |
}
|
inc/core/assets/css/customize.css
CHANGED
@@ -324,6 +324,7 @@ a.happyforms-form-part-remove:hover {
|
|
324 |
#customize-control-confirmation_email_from_name,
|
325 |
#customize-control-confirmation_email_subject,
|
326 |
#customize-control-confirmation_email_content,
|
|
|
327 |
#customize-control-captcha_site_key,
|
328 |
#customize-control-captcha_secret_key,
|
329 |
#customize-control-captcha_label,
|
@@ -345,6 +346,7 @@ a.happyforms-form-part-remove:hover {
|
|
345 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_from_name,
|
346 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_subject,
|
347 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_content,
|
|
|
348 |
#customize-control-captcha.checked ~ #customize-control-captcha_site_key,
|
349 |
#customize-control-captcha.checked ~ #customize-control-captcha_secret_key,
|
350 |
#customize-control-captcha.checked ~ #customize-control-captcha_label,
|
@@ -640,6 +642,19 @@ textarea.option-import-area {
|
|
640 |
color: #dc3232;
|
641 |
}
|
642 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
643 |
/**
|
644 |
*
|
645 |
* Form parts drawer
|
@@ -1119,7 +1134,8 @@ li.customize-control.happyforms-buttonset-control + .customize-control h2 {
|
|
1119 |
}
|
1120 |
|
1121 |
#customize-control-html_id input,
|
1122 |
-
#customize-control-submit_button_html_class input
|
|
|
1123 |
padding-top: 6px;
|
1124 |
font-family: Consolas, Monaco, monospace;
|
1125 |
direction: ltr;
|
324 |
#customize-control-confirmation_email_from_name,
|
325 |
#customize-control-confirmation_email_subject,
|
326 |
#customize-control-confirmation_email_content,
|
327 |
+
#customize-control-confirmation_email_include_values,
|
328 |
#customize-control-captcha_site_key,
|
329 |
#customize-control-captcha_secret_key,
|
330 |
#customize-control-captcha_label,
|
346 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_from_name,
|
347 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_subject,
|
348 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_content,
|
349 |
+
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_include_values,
|
350 |
#customize-control-captcha.checked ~ #customize-control-captcha_site_key,
|
351 |
#customize-control-captcha.checked ~ #customize-control-captcha_secret_key,
|
352 |
#customize-control-captcha.checked ~ #customize-control-captcha_label,
|
642 |
color: #dc3232;
|
643 |
}
|
644 |
|
645 |
+
div.character-limit-settings {
|
646 |
+
display: flex;
|
647 |
+
justify-content: space-between;
|
648 |
+
}
|
649 |
+
|
650 |
+
div.character-limit-settings input[type=number] {
|
651 |
+
width: 35%;
|
652 |
+
}
|
653 |
+
|
654 |
+
div.character-limit-settings select {
|
655 |
+
width: 60%;
|
656 |
+
}
|
657 |
+
|
658 |
/**
|
659 |
*
|
660 |
* Form parts drawer
|
1134 |
}
|
1135 |
|
1136 |
#customize-control-html_id input,
|
1137 |
+
#customize-control-submit_button_html_class input,
|
1138 |
+
.happyforms-widget-content input[data-bind=css_class] {
|
1139 |
padding-top: 6px;
|
1140 |
font-family: Consolas, Monaco, monospace;
|
1141 |
direction: ltr;
|
inc/core/assets/js/frontend/long-text.js
CHANGED
@@ -16,15 +16,28 @@
|
|
16 |
this.refreshCounter();
|
17 |
},
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
refreshCounter: function() {
|
20 |
-
var
|
21 |
|
22 |
-
if (
|
23 |
return;
|
24 |
}
|
25 |
|
26 |
-
var
|
27 |
-
this.$counter.text(
|
28 |
},
|
29 |
};
|
30 |
|
16 |
this.refreshCounter();
|
17 |
},
|
18 |
|
19 |
+
getValueLength: function() {
|
20 |
+
var mode = this.$input.attr( 'data-length-mode' );
|
21 |
+
var value = this.$input.val();
|
22 |
+
var length = value.length;
|
23 |
+
|
24 |
+
if ( 'word' === mode ) {
|
25 |
+
var matches = value.match( /\w+/g );
|
26 |
+
length = matches ? matches.length : 0;
|
27 |
+
}
|
28 |
+
|
29 |
+
return length;
|
30 |
+
},
|
31 |
+
|
32 |
refreshCounter: function() {
|
33 |
+
var hasLength = parseInt( this.$input.attr( 'data-length' ), 10 );
|
34 |
|
35 |
+
if ( hasLength < 1 ) {
|
36 |
return;
|
37 |
}
|
38 |
|
39 |
+
var length = this.getValueLength();
|
40 |
+
this.$counter.text( length );
|
41 |
},
|
42 |
};
|
43 |
|
inc/core/assets/js/frontend/rich-text.js
CHANGED
@@ -232,22 +232,32 @@
|
|
232 |
} );
|
233 |
},
|
234 |
|
235 |
-
|
236 |
-
var
|
237 |
-
|
238 |
-
|
239 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
}
|
241 |
|
242 |
-
|
243 |
-
|
244 |
|
245 |
-
|
246 |
-
|
|
|
|
|
|
|
247 |
}
|
248 |
|
249 |
-
var
|
250 |
-
$( '.happyforms-part__char-counter span', this.$el ).text(
|
251 |
},
|
252 |
|
253 |
editorDestroy: function() {
|
232 |
} );
|
233 |
},
|
234 |
|
235 |
+
getValueLength: function() {
|
236 |
+
var mode = this.$input.attr( 'data-length-mode' );
|
237 |
+
var value = this.editor.getContent( { format : 'text' } );
|
238 |
+
var length = value.length;
|
239 |
+
|
240 |
+
if ( 'word' === mode ) {
|
241 |
+
var matches = value.match( /\w+/g );
|
242 |
+
length = matches ? matches.length : 0;
|
243 |
+
} else {
|
244 |
+
if ( '\n' === value ) {
|
245 |
+
length --;
|
246 |
+
}
|
247 |
}
|
248 |
|
249 |
+
return length;
|
250 |
+
},
|
251 |
|
252 |
+
refreshCounter: function() {
|
253 |
+
var hasLength = parseInt( this.$input.attr( 'data-length' ), 10 );
|
254 |
+
|
255 |
+
if ( hasLength < 1 ) {
|
256 |
+
return;
|
257 |
}
|
258 |
|
259 |
+
var length = this.getValueLength();
|
260 |
+
$( '.happyforms-part__char-counter span', this.$el ).text( length );
|
261 |
},
|
262 |
|
263 |
editorDestroy: function() {
|
inc/core/assets/js/parts/part-multi-line-text.js
CHANGED
@@ -18,6 +18,7 @@
|
|
18 |
|
19 |
this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
|
20 |
this.listenTo( this.model, 'change:character_limit', this.onCharacterLimitChange );
|
|
|
21 |
},
|
22 |
|
23 |
/**
|
@@ -38,12 +39,16 @@
|
|
38 |
},
|
39 |
|
40 |
onCharacterLimitChange: function() {
|
41 |
-
var
|
42 |
-
id: this.model.get( 'id' ),
|
43 |
-
callback: 'onCharacterLimitChangeCallback',
|
44 |
-
};
|
45 |
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
},
|
48 |
} );
|
49 |
|
@@ -54,22 +59,6 @@
|
|
54 |
|
55 |
this.$( 'textarea', $part ).attr( 'placeholder', part.get( 'placeholder' ) );
|
56 |
},
|
57 |
-
|
58 |
-
onCharacterLimitChangeCallback: function( id, html, options ) {
|
59 |
-
var part = this.getPartModel( id );
|
60 |
-
var $part = this.getPartElement( html );
|
61 |
-
var $counter = this.$( '.happyforms-part__char-counter', $part );
|
62 |
-
var limit = parseInt( part.get( 'character_limit' ), 10 ) || 0;
|
63 |
-
|
64 |
-
if ( limit < 1 ) {
|
65 |
-
$counter.hide();
|
66 |
-
} else {
|
67 |
-
$counter.show();
|
68 |
-
}
|
69 |
-
|
70 |
-
this.$( 'textarea', $part ).attr( 'data-max-length', part.get( 'character_limit' ) );
|
71 |
-
this.$( 'span', $counter ).text( part.get( 'character_limit' ) );
|
72 |
-
},
|
73 |
} );
|
74 |
|
75 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
18 |
|
19 |
this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
|
20 |
this.listenTo( this.model, 'change:character_limit', this.onCharacterLimitChange );
|
21 |
+
this.listenTo( this.model, 'change:character_limit_mode', this.onCharacterLimitChange );
|
22 |
},
|
23 |
|
24 |
/**
|
39 |
},
|
40 |
|
41 |
onCharacterLimitChange: function() {
|
42 |
+
var model = this.model;
|
|
|
|
|
|
|
43 |
|
44 |
+
model.fetchHtml( function( response ) {
|
45 |
+
var data = {
|
46 |
+
id: model.get( 'id' ),
|
47 |
+
html: response,
|
48 |
+
};
|
49 |
+
|
50 |
+
happyForms.previewSend( 'happyforms-form-part-refresh', data );
|
51 |
+
} );
|
52 |
},
|
53 |
} );
|
54 |
|
59 |
|
60 |
this.$( 'textarea', $part ).attr( 'placeholder', part.get( 'placeholder' ) );
|
61 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
} );
|
63 |
|
64 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-rich-text.js
CHANGED
@@ -18,6 +18,7 @@
|
|
18 |
|
19 |
this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
|
20 |
this.listenTo( this.model, 'change:character_limit', this.onCharacterLimitChange );
|
|
|
21 |
},
|
22 |
|
23 |
/**
|
@@ -38,12 +39,16 @@
|
|
38 |
},
|
39 |
|
40 |
onCharacterLimitChange: function() {
|
41 |
-
var
|
42 |
-
id: this.model.get( 'id' ),
|
43 |
-
callback: 'onCharacterLimitChangeCallback',
|
44 |
-
};
|
45 |
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
},
|
48 |
} );
|
49 |
|
@@ -54,22 +59,6 @@
|
|
54 |
|
55 |
this.$( 'textarea', $part ).attr( 'placeholder', part.get( 'placeholder' ) );
|
56 |
},
|
57 |
-
|
58 |
-
onCharacterLimitChangeCallback: function( id, html, options ) {
|
59 |
-
var part = this.getPartModel( id );
|
60 |
-
var $part = this.getPartElement( html );
|
61 |
-
var $counter = this.$( '.happyforms-part__char-counter', $part );
|
62 |
-
var limit = parseInt( part.get( 'character_limit' ), 10 ) || 0;
|
63 |
-
|
64 |
-
if ( limit < 1 ) {
|
65 |
-
$counter.hide();
|
66 |
-
} else {
|
67 |
-
$counter.show();
|
68 |
-
}
|
69 |
-
|
70 |
-
this.$( 'textarea', $part ).attr( 'data-max-length', part.get( 'character_limit' ) );
|
71 |
-
this.$( 'span', $counter ).text( part.get( 'character_limit' ) );
|
72 |
-
},
|
73 |
} );
|
74 |
|
75 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
18 |
|
19 |
this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
|
20 |
this.listenTo( this.model, 'change:character_limit', this.onCharacterLimitChange );
|
21 |
+
this.listenTo( this.model, 'change:character_limit_mode', this.onCharacterLimitChange );
|
22 |
},
|
23 |
|
24 |
/**
|
39 |
},
|
40 |
|
41 |
onCharacterLimitChange: function() {
|
42 |
+
var model = this.model;
|
|
|
|
|
|
|
43 |
|
44 |
+
model.fetchHtml( function( response ) {
|
45 |
+
var data = {
|
46 |
+
id: model.get( 'id' ),
|
47 |
+
html: response,
|
48 |
+
};
|
49 |
+
|
50 |
+
happyForms.previewSend( 'happyforms-form-part-refresh', data );
|
51 |
+
} );
|
52 |
},
|
53 |
} );
|
54 |
|
59 |
|
60 |
this.$( 'textarea', $part ).attr( 'placeholder', part.get( 'placeholder' ) );
|
61 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
} );
|
63 |
|
64 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/classes/class-form-admin.php
CHANGED
@@ -291,11 +291,25 @@ class HappyForms_Form_Admin {
|
|
291 |
case 'messages':
|
292 |
$messages_url = admin_url( "/edit.php?post_type=happyforms-message&form_id={$id}" );
|
293 |
$messages = happyforms_get_message_controller()->get_by_form( $id );
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
)
|
298 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
break;
|
300 |
|
301 |
case 'shortcode':
|
291 |
case 'messages':
|
292 |
$messages_url = admin_url( "/edit.php?post_type=happyforms-message&form_id={$id}" );
|
293 |
$messages = happyforms_get_message_controller()->get_by_form( $id );
|
294 |
+
|
295 |
+
$message_html = '—';
|
296 |
+
|
297 |
+
if ( 0 < count( $messages ) ) {
|
298 |
+
$message_html = sprintf(
|
299 |
+
'<span class="happyforms-responses-count-wrapper happyforms-responses-count-%d">
|
300 |
+
<a href="%s" class="%s">
|
301 |
+
<span class="%s" aria-hidden="true">%d</span>
|
302 |
+
</a>
|
303 |
+
</span>',
|
304 |
+
count( $messages ),
|
305 |
+
$messages_url,
|
306 |
+
'happyforms-responses-count happyforms-responses-count-approved',
|
307 |
+
'happyforms-responses-count-bubble',
|
308 |
+
count( $messages )
|
309 |
+
);
|
310 |
+
}
|
311 |
+
|
312 |
+
echo $message_html;
|
313 |
break;
|
314 |
|
315 |
case 'shortcode':
|
inc/core/classes/class-form-setup.php
CHANGED
@@ -98,6 +98,10 @@ class HappyForms_Form_Setup {
|
|
98 |
'default' => __( 'Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon.', 'happyforms' ),
|
99 |
'sanitize' => 'esc_html',
|
100 |
),
|
|
|
|
|
|
|
|
|
101 |
'redirect_on_complete' => array(
|
102 |
'default' => 0,
|
103 |
'sanitize' => 'happyforms_sanitize_checkbox',
|
@@ -251,6 +255,11 @@ class HappyForms_Form_Setup {
|
|
251 |
'tooltip' => __( 'If your form contains an email field, recipients will receive an email with this content.', 'happyforms' ),
|
252 |
'field' => 'confirmation_email_content',
|
253 |
),
|
|
|
|
|
|
|
|
|
|
|
254 |
900 => array(
|
255 |
'type' => 'text',
|
256 |
'label' => __( 'Optional part label', 'happyforms' ),
|
98 |
'default' => __( 'Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon.', 'happyforms' ),
|
99 |
'sanitize' => 'esc_html',
|
100 |
),
|
101 |
+
'confirmation_email_include_values' => array(
|
102 |
+
'default' => 0,
|
103 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
104 |
+
),
|
105 |
'redirect_on_complete' => array(
|
106 |
'default' => 0,
|
107 |
'sanitize' => 'happyforms_sanitize_checkbox',
|
255 |
'tooltip' => __( 'If your form contains an email field, recipients will receive an email with this content.', 'happyforms' ),
|
256 |
'field' => 'confirmation_email_content',
|
257 |
),
|
258 |
+
810 => array(
|
259 |
+
'type' => 'checkbox',
|
260 |
+
'label' => __( 'Include submitted values', 'happyforms' ),
|
261 |
+
'field' => 'confirmation_email_include_values'
|
262 |
+
),
|
263 |
900 => array(
|
264 |
'type' => 'text',
|
265 |
'label' => __( 'Optional part label', 'happyforms' ),
|
inc/core/classes/class-form-styles.php
CHANGED
@@ -841,12 +841,12 @@ class HappyForms_Form_Styles {
|
|
841 |
),
|
842 |
6300 => array(
|
843 |
'type' => 'range',
|
844 |
-
'label' => __( 'Font
|
845 |
'field' => 'submit_button_font_size',
|
846 |
),
|
847 |
6400 => array(
|
848 |
'type' => 'buttonset',
|
849 |
-
'label' => __( 'Font
|
850 |
'field' => 'submit_button_font_weight',
|
851 |
),
|
852 |
6500 => array(
|
841 |
),
|
842 |
6300 => array(
|
843 |
'type' => 'range',
|
844 |
+
'label' => __( 'Font size', 'happyforms' ),
|
845 |
'field' => 'submit_button_font_size',
|
846 |
),
|
847 |
6400 => array(
|
848 |
'type' => 'buttonset',
|
849 |
+
'label' => __( 'Font weight', 'happyforms' ),
|
850 |
'field' => 'submit_button_font_weight',
|
851 |
),
|
852 |
6500 => array(
|
inc/core/classes/class-message-controller.php
CHANGED
@@ -209,8 +209,8 @@ class HappyForms_Message_Controller {
|
|
209 |
$labels = array(
|
210 |
'name' => __( 'Responses', 'happyforms' ),
|
211 |
'singular_name' => __( 'Response', 'happyforms' ),
|
212 |
-
'edit_item' => __( '
|
213 |
-
'view_item' => __( 'View
|
214 |
'view_items' => __( 'View Responses', 'happyforms' ),
|
215 |
'search_items' => __( 'Search Responses', 'happyforms' ),
|
216 |
'not_found' => __( 'No response found', 'happyforms' ),
|
209 |
$labels = array(
|
210 |
'name' => __( 'Responses', 'happyforms' ),
|
211 |
'singular_name' => __( 'Response', 'happyforms' ),
|
212 |
+
'edit_item' => __( 'View Response', 'happyforms' ),
|
213 |
+
'view_item' => __( 'View Response', 'happyforms' ),
|
214 |
'view_items' => __( 'View Responses', 'happyforms' ),
|
215 |
'search_items' => __( 'Search Responses', 'happyforms' ),
|
216 |
'not_found' => __( 'No response found', 'happyforms' ),
|
inc/core/classes/class-session.php
CHANGED
@@ -38,6 +38,8 @@ class HappyForms_Session {
|
|
38 |
*/
|
39 |
private $values = array();
|
40 |
|
|
|
|
|
41 |
/**
|
42 |
* Current form step
|
43 |
*
|
@@ -88,6 +90,20 @@ class HappyForms_Session {
|
|
88 |
$this->notices[$key] = $message;
|
89 |
}
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
public function remove_notice( $key ) {
|
92 |
if ( isset( $this->notices[$key] ) ) {
|
93 |
unset( $this->notices[$key] );
|
38 |
*/
|
39 |
private $values = array();
|
40 |
|
41 |
+
private $states = array();
|
42 |
+
|
43 |
/**
|
44 |
* Current form step
|
45 |
*
|
90 |
$this->notices[$key] = $message;
|
91 |
}
|
92 |
|
93 |
+
public function add_state( $key, $state ) {
|
94 |
+
$this->states[$key][] = $state;
|
95 |
+
}
|
96 |
+
|
97 |
+
public function get_states( $location = '' ) {
|
98 |
+
$states = array();
|
99 |
+
|
100 |
+
if ( isset( $this->states[$location] ) ) {
|
101 |
+
$states = $this->states[$location];
|
102 |
+
}
|
103 |
+
|
104 |
+
return $states;
|
105 |
+
}
|
106 |
+
|
107 |
public function remove_notice( $key ) {
|
108 |
if ( isset( $this->notices[$key] ) ) {
|
109 |
unset( $this->notices[$key] );
|
inc/core/classes/parts/class-part-checkbox.php
CHANGED
@@ -208,8 +208,8 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
|
|
208 |
return $value;
|
209 |
}
|
210 |
|
211 |
-
public function stringify_value( $value, $part, $form ) {
|
212 |
-
if ( $this->type === $part['type'] ) {
|
213 |
$options = happyforms_get_part_options( $part['options'], $part, $form );
|
214 |
$labels = wp_list_pluck( $options, 'label' );
|
215 |
|
208 |
return $value;
|
209 |
}
|
210 |
|
211 |
+
public function stringify_value( $value, $part, $form, $force = false ) {
|
212 |
+
if ( $this->type === $part['type'] || $force ) {
|
213 |
$options = happyforms_get_part_options( $part['options'], $part, $form );
|
214 |
$labels = wp_list_pluck( $options, 'label' );
|
215 |
|
inc/core/classes/parts/class-part-multi-line-text.php
CHANGED
@@ -9,6 +9,8 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
9 |
$this->description = __( 'For paragraph text fields.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_the_part_value', array( $this, 'output_part_value' ), 10, 3 );
|
|
|
|
|
12 |
add_filter( 'happyforms_part_attributes', array( $this, 'html_part_attributes' ), 10, 2 );
|
13 |
add_action( 'happyforms_part_input_after', array( $this, 'part_input_after' ) );
|
14 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
@@ -52,6 +54,13 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
52 |
'default' => '',
|
53 |
'sanitize' => 'sanitize_text_field',
|
54 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
'width' => array(
|
56 |
'default' => 'full',
|
57 |
'sanitize' => 'sanitize_key'
|
@@ -154,13 +163,21 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
154 |
$validated_value = new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
|
155 |
}
|
156 |
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
}
|
166 |
|
@@ -189,6 +206,37 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
189 |
return $class;
|
190 |
}
|
191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
public function html_part_attributes( $attrs, $part ) {
|
193 |
if ( $this->type !== $part['type'] ) {
|
194 |
return $attrs;
|
@@ -196,7 +244,9 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
196 |
|
197 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
198 |
$limit = intval( $part['character_limit'] );
|
199 |
-
$
|
|
|
|
|
200 |
}
|
201 |
|
202 |
return $attrs;
|
@@ -209,14 +259,31 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
209 |
|
210 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
211 |
$limit = intval( $part['character_limit'] );
|
|
|
212 |
?>
|
213 |
<div class="happyforms-part__char-counter" <?php if ( happyforms_is_preview() && empty( $part['character_limit'] ) ) : ?>style="display: none;"<?php endif; ?>>
|
214 |
-
<span
|
215 |
</div>
|
216 |
<?php
|
217 |
}
|
218 |
}
|
219 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
public function script_dependencies( $deps, $forms ) {
|
221 |
$contains_long_text = false;
|
222 |
$form_controller = happyforms_get_form_controller();
|
9 |
$this->description = __( 'For paragraph text fields.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_the_part_value', array( $this, 'output_part_value' ), 10, 3 );
|
12 |
+
add_filter( 'happyforms_email_part_value', array( $this, 'email_part_value' ), 10, 4 );
|
13 |
+
add_filter( 'happyforms_message_part_value', array( $this, 'message_part_value' ), 10, 4 );
|
14 |
add_filter( 'happyforms_part_attributes', array( $this, 'html_part_attributes' ), 10, 2 );
|
15 |
add_action( 'happyforms_part_input_after', array( $this, 'part_input_after' ) );
|
16 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
54 |
'default' => '',
|
55 |
'sanitize' => 'sanitize_text_field',
|
56 |
),
|
57 |
+
'character_limit_mode' => array(
|
58 |
+
'default' => 'word_max',
|
59 |
+
'sanitize' => array(
|
60 |
+
'happyforms_sanitize_choice',
|
61 |
+
array( 'character_max', 'character_min', 'word_max', 'word_min' ),
|
62 |
+
),
|
63 |
+
),
|
64 |
'width' => array(
|
65 |
'default' => 'full',
|
66 |
'sanitize' => 'sanitize_key'
|
163 |
$validated_value = new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
|
164 |
}
|
165 |
|
166 |
+
$character_limit = intval( $part['character_limit'] );
|
167 |
+
$character_limit_mode = $part['character_limit_mode'];
|
168 |
+
|
169 |
+
if ( $character_limit > 0 ) {
|
170 |
+
$character_count = strlen( $validated_value );
|
171 |
+
$word_count = str_word_count( $validated_value );
|
172 |
+
|
173 |
+
if ( 'character_max' === $character_limit_mode && $character_count > $character_limit ) {
|
174 |
+
return new WP_Error( 'error', __( 'Submitted value is too long.', 'happyforms' ) );
|
175 |
+
} else if ( 'character_min' === $character_limit_mode && $character_count < $character_limit ) {
|
176 |
+
return new WP_Error( 'error', __( 'Submitted value is too short.', 'happyforms' ) );
|
177 |
+
} else if ( 'word_max' === $character_limit_mode && $word_count > $character_limit ) {
|
178 |
+
return new WP_Error( 'error', __( 'Submitted value is too long.', 'happyforms' ) );
|
179 |
+
} else if ( 'word_min' === $character_limit_mode && $word_count < $character_limit ) {
|
180 |
+
return new WP_Error( 'error', __( 'Submitted value is too short.', 'happyforms' ) );
|
181 |
}
|
182 |
}
|
183 |
|
206 |
return $class;
|
207 |
}
|
208 |
|
209 |
+
private function get_limit_mode( $part ) {
|
210 |
+
$mode = 'character';
|
211 |
+
|
212 |
+
if ( 0 === strpos( $part['character_limit_mode'], 'word' ) ) {
|
213 |
+
$mode = 'word';
|
214 |
+
}
|
215 |
+
|
216 |
+
return $mode;
|
217 |
+
}
|
218 |
+
|
219 |
+
private function get_limit_label( $part ) {
|
220 |
+
$label = '';
|
221 |
+
|
222 |
+
switch( $part['character_limit_mode'] ) {
|
223 |
+
case 'character_min':
|
224 |
+
$label = __( 'characters (min.)', 'happyforms' );
|
225 |
+
break;
|
226 |
+
case 'character_max':
|
227 |
+
$label = __( 'characters (max.)', 'happyforms' );
|
228 |
+
break;
|
229 |
+
case 'word_min':
|
230 |
+
$label = __( 'words (min.)', 'happyforms' );
|
231 |
+
break;
|
232 |
+
case 'word_max':
|
233 |
+
$label = __( 'words (max.)', 'happyforms' );
|
234 |
+
break;
|
235 |
+
}
|
236 |
+
|
237 |
+
return $label;
|
238 |
+
}
|
239 |
+
|
240 |
public function html_part_attributes( $attrs, $part ) {
|
241 |
if ( $this->type !== $part['type'] ) {
|
242 |
return $attrs;
|
244 |
|
245 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
246 |
$limit = intval( $part['character_limit'] );
|
247 |
+
$mode = $this->get_limit_mode( $part );
|
248 |
+
$attrs[] = "data-length=\"{$limit}\"";
|
249 |
+
$attrs[] = "data-length-mode=\"{$mode}\"";
|
250 |
}
|
251 |
|
252 |
return $attrs;
|
259 |
|
260 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
261 |
$limit = intval( $part['character_limit'] );
|
262 |
+
$label = $this->get_limit_label( $part );
|
263 |
?>
|
264 |
<div class="happyforms-part__char-counter" <?php if ( happyforms_is_preview() && empty( $part['character_limit'] ) ) : ?>style="display: none;"<?php endif; ?>>
|
265 |
+
<span>0</span>/<?php echo $limit; ?> <?php echo $label; ?>
|
266 |
</div>
|
267 |
<?php
|
268 |
}
|
269 |
}
|
270 |
|
271 |
+
public function email_part_value( $value, $message, $part, $form ) {
|
272 |
+
if ( $this->type === $part['type'] ) {
|
273 |
+
$value = nl2br( $value );
|
274 |
+
}
|
275 |
+
|
276 |
+
return $value;
|
277 |
+
}
|
278 |
+
|
279 |
+
public function message_part_value( $value, $original_value, $part, $destination ) {
|
280 |
+
if ( $this->type === $part['type'] && 'admin-column' !== $destination ) {
|
281 |
+
$value = nl2br( $value );
|
282 |
+
}
|
283 |
+
|
284 |
+
return $value;
|
285 |
+
}
|
286 |
+
|
287 |
public function script_dependencies( $deps, $forms ) {
|
288 |
$contains_long_text = false;
|
289 |
$form_controller = happyforms_get_form_controller();
|
inc/core/classes/parts/class-part-radio.php
CHANGED
@@ -208,8 +208,8 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
|
|
208 |
return $value;
|
209 |
}
|
210 |
|
211 |
-
public function stringify_value( $value, $part, $form ) {
|
212 |
-
if ( $this->type === $part['type'] ) {
|
213 |
if ( '' !== $value ) {
|
214 |
$options = happyforms_get_part_options( $part['options'], $part, $form );
|
215 |
$value = $options[$value]['label'];
|
208 |
return $value;
|
209 |
}
|
210 |
|
211 |
+
public function stringify_value( $value, $part, $form, $force = false ) {
|
212 |
+
if ( $this->type === $part['type'] || $force ) {
|
213 |
if ( '' !== $value ) {
|
214 |
$options = happyforms_get_part_options( $part['options'], $part, $form );
|
215 |
$value = $options[$value]['label'];
|
inc/core/classes/parts/class-part-rich-text.php
CHANGED
@@ -49,6 +49,13 @@ class HappyForms_Part_RichText extends HappyForms_Form_Part {
|
|
49 |
'default' => '',
|
50 |
'sanitize' => 'sanitize_text_field',
|
51 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
'width' => array(
|
53 |
'default' => 'full',
|
54 |
'sanitize' => 'sanitize_key'
|
@@ -120,6 +127,7 @@ class HappyForms_Part_RichText extends HappyForms_Form_Part {
|
|
120 |
|
121 |
private function get_allowed_html() {
|
122 |
$allowed = array(
|
|
|
123 |
'b' => array(),
|
124 |
'strong' => array(),
|
125 |
'i' => array(),
|
@@ -196,15 +204,22 @@ class HappyForms_Part_RichText extends HappyForms_Form_Part {
|
|
196 |
return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
|
197 |
}
|
198 |
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
}
|
209 |
}
|
210 |
|
@@ -229,6 +244,37 @@ class HappyForms_Part_RichText extends HappyForms_Form_Part {
|
|
229 |
return $class;
|
230 |
}
|
231 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
public function html_part_attributes( $attrs, $part ) {
|
233 |
if ( $this->type !== $part['type'] ) {
|
234 |
return $attrs;
|
@@ -236,7 +282,9 @@ class HappyForms_Part_RichText extends HappyForms_Form_Part {
|
|
236 |
|
237 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
238 |
$limit = intval( $part['character_limit'] );
|
239 |
-
$
|
|
|
|
|
240 |
}
|
241 |
|
242 |
return $attrs;
|
@@ -249,9 +297,10 @@ class HappyForms_Part_RichText extends HappyForms_Form_Part {
|
|
249 |
|
250 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
251 |
$limit = intval( $part['character_limit'] );
|
|
|
252 |
?>
|
253 |
<div class="happyforms-part__char-counter" <?php if ( happyforms_is_preview() && empty( $part['character_limit'] ) ) : ?>style="display: none;"<?php endif; ?>>
|
254 |
-
<span
|
255 |
</div>
|
256 |
<?php
|
257 |
}
|
49 |
'default' => '',
|
50 |
'sanitize' => 'sanitize_text_field',
|
51 |
),
|
52 |
+
'character_limit_mode' => array(
|
53 |
+
'default' => 'word_max',
|
54 |
+
'sanitize' => array(
|
55 |
+
'happyforms_sanitize_choice',
|
56 |
+
array( 'character_max', 'character_min', 'word_max', 'word_min' ),
|
57 |
+
),
|
58 |
+
),
|
59 |
'width' => array(
|
60 |
'default' => 'full',
|
61 |
'sanitize' => 'sanitize_key'
|
127 |
|
128 |
private function get_allowed_html() {
|
129 |
$allowed = array(
|
130 |
+
'br' => array(),
|
131 |
'b' => array(),
|
132 |
'strong' => array(),
|
133 |
'i' => array(),
|
204 |
return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
|
205 |
}
|
206 |
|
207 |
+
$character_limit = intval( $part['character_limit'] );
|
208 |
+
$character_limit_mode = $part['character_limit_mode'];
|
209 |
+
|
210 |
+
if ( $character_limit > 0 ) {
|
211 |
+
$clean_value = wp_strip_all_tags( $validated_value, true );
|
212 |
+
$character_count = strlen( $clean_value );
|
213 |
+
$word_count = str_word_count( $clean_value );
|
214 |
+
|
215 |
+
if ( 'character_max' === $character_limit_mode && $character_count > $character_limit ) {
|
216 |
+
return new WP_Error( 'error', __( 'Submitted value is too long.', 'happyforms' ) );
|
217 |
+
} else if ( 'character_min' === $character_limit_mode && $character_count < $character_limit ) {
|
218 |
+
return new WP_Error( 'error', __( 'Submitted value is too short.', 'happyforms' ) );
|
219 |
+
} else if ( 'word_max' === $character_limit_mode && $word_count > $character_limit ) {
|
220 |
+
return new WP_Error( 'error', __( 'Submitted value is too long.', 'happyforms' ) );
|
221 |
+
} else if ( 'word_min' === $character_limit_mode && $word_count < $character_limit ) {
|
222 |
+
return new WP_Error( 'error', __( 'Submitted value is too short.', 'happyforms' ) );
|
223 |
}
|
224 |
}
|
225 |
|
244 |
return $class;
|
245 |
}
|
246 |
|
247 |
+
private function get_limit_mode( $part ) {
|
248 |
+
$mode = 'character';
|
249 |
+
|
250 |
+
if ( 0 === strpos( $part['character_limit_mode'], 'word' ) ) {
|
251 |
+
$mode = 'word';
|
252 |
+
}
|
253 |
+
|
254 |
+
return $mode;
|
255 |
+
}
|
256 |
+
|
257 |
+
private function get_limit_label( $part ) {
|
258 |
+
$label = '';
|
259 |
+
|
260 |
+
switch( $part['character_limit_mode'] ) {
|
261 |
+
case 'character_min':
|
262 |
+
$label = __( 'characters (min.)', 'happyforms' );
|
263 |
+
break;
|
264 |
+
case 'character_max':
|
265 |
+
$label = __( 'characters (max.)', 'happyforms' );
|
266 |
+
break;
|
267 |
+
case 'word_min':
|
268 |
+
$label = __( 'words (min.)', 'happyforms' );
|
269 |
+
break;
|
270 |
+
case 'word_max':
|
271 |
+
$label = __( 'words (max.)', 'happyforms' );
|
272 |
+
break;
|
273 |
+
}
|
274 |
+
|
275 |
+
return $label;
|
276 |
+
}
|
277 |
+
|
278 |
public function html_part_attributes( $attrs, $part ) {
|
279 |
if ( $this->type !== $part['type'] ) {
|
280 |
return $attrs;
|
282 |
|
283 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
284 |
$limit = intval( $part['character_limit'] );
|
285 |
+
$mode = $this->get_limit_mode( $part );
|
286 |
+
$attrs[] = "data-length=\"{$limit}\"";
|
287 |
+
$attrs[] = "data-length-mode=\"{$mode}\"";
|
288 |
}
|
289 |
|
290 |
return $attrs;
|
297 |
|
298 |
if ( ! empty( $part['character_limit'] ) || happyforms_is_preview() ) {
|
299 |
$limit = intval( $part['character_limit'] );
|
300 |
+
$label = $this->get_limit_label( $part );
|
301 |
?>
|
302 |
<div class="happyforms-part__char-counter" <?php if ( happyforms_is_preview() && empty( $part['character_limit'] ) ) : ?>style="display: none;"<?php endif; ?>>
|
303 |
+
<span>0</span>/<?php echo $limit; ?> <?php echo $label; ?>
|
304 |
</div>
|
305 |
<?php
|
306 |
}
|
inc/core/helpers/helper-form-templates.php
CHANGED
@@ -1543,4 +1543,23 @@ function happyforms_is_stepping() {
|
|
1543 |
return $stepping;
|
1544 |
}
|
1545 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1546 |
endif;
|
1543 |
return $stepping;
|
1544 |
}
|
1545 |
|
1546 |
+
endif;
|
1547 |
+
|
1548 |
+
if ( ! function_exists( 'happyforms_get_part_states' ) ):
|
1549 |
+
/**
|
1550 |
+
* Output notices for the current submission,
|
1551 |
+
* related to the form as a whole or specific parts.
|
1552 |
+
*
|
1553 |
+
* @since 1.0
|
1554 |
+
*
|
1555 |
+
* @param string $location The notice location to display.
|
1556 |
+
*
|
1557 |
+
* @return void
|
1558 |
+
*/
|
1559 |
+
function happyforms_get_part_states( $location = '' ) {
|
1560 |
+
$states = happyforms_get_session()->get_states( $location );
|
1561 |
+
|
1562 |
+
return $states;
|
1563 |
+
}
|
1564 |
+
|
1565 |
endif;
|
inc/core/templates/email-user.php
CHANGED
@@ -9,6 +9,22 @@
|
|
9 |
|
10 |
<br><br>
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
<?php
|
13 |
/**
|
14 |
*
|
9 |
|
10 |
<br><br>
|
11 |
|
12 |
+
<?php if ( happyforms_get_form_property( $form, 'confirmation_email_include_values' ) ) : ?>
|
13 |
+
|
14 |
+
<?php foreach( $form['parts'] as $part ) : ?>
|
15 |
+
|
16 |
+
<?php if ( happyforms_email_is_part_visible( $part, $form, $response ) ) : ?>
|
17 |
+
|
18 |
+
<b><?php echo happyforms_get_email_part_label( $response, $part, $form ); ?></b><br>
|
19 |
+
<?php echo happyforms_get_email_part_value( $response, $part, $form ); ?>
|
20 |
+
<br><br>
|
21 |
+
|
22 |
+
<?php endif; ?>
|
23 |
+
|
24 |
+
<?php endforeach; ?>
|
25 |
+
|
26 |
+
<?php endif; ?>
|
27 |
+
|
28 |
<?php
|
29 |
/**
|
30 |
*
|
inc/core/templates/parts/customize-multi-line-text.php
CHANGED
@@ -43,8 +43,16 @@
|
|
43 |
</p>
|
44 |
<div class="happyforms-part-advanced-settings-wrap">
|
45 |
<p>
|
46 |
-
<label for="<%= instance.id %>_character_limit"><?php _e( '
|
47 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
</p>
|
49 |
<p>
|
50 |
<label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
|
43 |
</p>
|
44 |
<div class="happyforms-part-advanced-settings-wrap">
|
45 |
<p>
|
46 |
+
<label for="<%= instance.id %>_character_limit"><?php _e( 'Limit words/characters', 'happyforms' ); ?></label>
|
47 |
+
<div class="character-limit-settings">
|
48 |
+
<input type="number" id="<%= instance.id %>_character_limit" class="widefat title" step="1" value="<%= instance.character_limit %>" data-bind="character_limit" />
|
49 |
+
<select id="<%= instance.id %>_character_limit_mode" data-bind="character_limit_mode">
|
50 |
+
<option value="word_max"<%= (instance.character_limit_mode == 'word_max') ? ' selected' : '' %>><?php _e( 'Words (max)', 'happyforms' ); ?></option>
|
51 |
+
<option value="word_min"<%= (instance.character_limit_mode == 'word_min') ? ' selected' : '' %>><?php _e( 'Words (min)', 'happyforms' ); ?></option>
|
52 |
+
<option value="character_max"<%= (instance.character_limit_mode == 'character_max') ? ' selected' : '' %>><?php _e( 'Characters (max)', 'happyforms' ); ?></option>
|
53 |
+
<option value="character_min"<%= (instance.character_limit_mode == 'character_min') ? ' selected' : '' %>><?php _e( 'Characters (min)', 'happyforms' ); ?></option>
|
54 |
+
</select>
|
55 |
+
</div>
|
56 |
</p>
|
57 |
<p>
|
58 |
<label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
|
inc/core/templates/parts/customize-rich-text.php
CHANGED
@@ -38,7 +38,15 @@
|
|
38 |
<div class="happyforms-part-advanced-settings-wrap">
|
39 |
<p>
|
40 |
<label for="<%= instance.id %>_character_limit"><?php _e( 'Character count', 'happyforms' ); ?></label>
|
41 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
</p>
|
43 |
<p>
|
44 |
<label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
|
38 |
<div class="happyforms-part-advanced-settings-wrap">
|
39 |
<p>
|
40 |
<label for="<%= instance.id %>_character_limit"><?php _e( 'Character count', 'happyforms' ); ?></label>
|
41 |
+
<div class="character-limit-settings">
|
42 |
+
<input type="number" id="<%= instance.id %>_character_limit" class="widefat title" step="1" value="<%= instance.character_limit %>" data-bind="character_limit" />
|
43 |
+
<select id="<%= instance.id %>_character_limit_mode" data-bind="character_limit_mode">
|
44 |
+
<option value="word_max"<%= (instance.character_limit_mode == 'word_max') ? ' selected' : '' %>><?php _e( 'Words (max)', 'happyforms' ); ?></option>
|
45 |
+
<option value="word_min"<%= (instance.character_limit_mode == 'word_min') ? ' selected' : '' %>><?php _e( 'Words (min)', 'happyforms' ); ?></option>
|
46 |
+
<option value="character_max"<%= (instance.character_limit_mode == 'character_max') ? ' selected' : '' %>><?php _e( 'Characters (max)', 'happyforms' ); ?></option>
|
47 |
+
<option value="character_min"<%= (instance.character_limit_mode == 'character_min') ? ' selected' : '' %>><?php _e( 'Characters (min)', 'happyforms' ); ?></option>
|
48 |
+
</select>
|
49 |
+
</div>
|
50 |
</p>
|
51 |
<p>
|
52 |
<label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
|
languages/happyforms.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the HappyForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: HappyForms 1.7.
|
6 |
"Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
|
7 |
-
"POT-Creation-Date: 2019-04-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -185,42 +185,42 @@ msgstr ""
|
|
185 |
msgid "Responses"
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: inc/core/classes/class-form-admin.php:
|
189 |
msgid "Copy to clipboard"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: inc/core/classes/class-form-admin.php:
|
193 |
#: inc/core/templates/customize-form-steps.php:5
|
194 |
msgid "Build"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: inc/core/classes/class-form-admin.php:
|
198 |
#: inc/core/templates/customize-form-item.php:21
|
199 |
#: inc/core/templates/customize-form-steps.php:8
|
200 |
#: inc/core/templates/customize-form-steps.php:15
|
201 |
msgid "Setup"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: inc/core/classes/class-form-admin.php:
|
205 |
#: inc/core/templates/customize-form-item.php:24
|
206 |
#: inc/core/templates/customize-form-steps.php:18
|
207 |
msgid "Style"
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: inc/core/classes/class-form-admin.php:
|
211 |
#: inc/core/templates/customize-form-item.php:27
|
212 |
#: inc/core/templates/customize-form-part-footer.php:4
|
213 |
msgid "Duplicate"
|
214 |
msgstr ""
|
215 |
|
216 |
-
#: inc/core/classes/class-form-admin.php:
|
217 |
#: inc/core/classes/class-message-admin.php:640
|
218 |
#: inc/core/classes/class-message-admin.php:720
|
219 |
#: inc/core/classes/class-message-admin.php:928
|
220 |
msgid "Trash"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: inc/core/classes/class-form-admin.php:
|
224 |
msgid "Form duplicated succesfully."
|
225 |
msgstr ""
|
226 |
|
@@ -311,236 +311,240 @@ msgid ""
|
|
311 |
"and we’ll be in touch soon."
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: inc/core/classes/class-form-setup.php:
|
315 |
msgid "(optional)"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: inc/core/classes/class-form-setup.php:
|
319 |
msgid "Submit Form"
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: inc/core/classes/class-form-setup.php:
|
323 |
msgid "Validate your submission"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: inc/core/classes/class-form-setup.php:
|
327 |
msgid "Review submission"
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: inc/core/classes/class-form-setup.php:
|
331 |
msgid "Confirmation message"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: inc/core/classes/class-form-setup.php:
|
335 |
msgid ""
|
336 |
"This is the message your users will see after succesfully submitting your "
|
337 |
"form."
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: inc/core/classes/class-form-setup.php:
|
341 |
msgid "Receive submission alerts"
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: inc/core/classes/class-form-setup.php:
|
345 |
#: inc/core/templates/admin-tracking.php:15
|
346 |
msgid "Email address"
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: inc/core/classes/class-form-setup.php:
|
350 |
msgid ""
|
351 |
"Add your email address here to receive a confirmation email for each form "
|
352 |
"response. You can add multiple email addresses by separating each address "
|
353 |
"with a comma."
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: inc/core/classes/class-form-setup.php:
|
357 |
msgid "Email Bcc address"
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: inc/core/classes/class-form-setup.php:
|
361 |
msgid ""
|
362 |
"Add your Bcc email address here to receive a confirmation email for each "
|
363 |
"form response without appearing in the received message header. You can "
|
364 |
"add multiple email addresses by separating each address with a comma."
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: inc/core/classes/class-form-setup.php:
|
368 |
-
#: inc/core/classes/class-form-setup.php:
|
369 |
msgid "Email subject"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: inc/core/classes/class-form-setup.php:
|
373 |
msgid ""
|
374 |
"Each time a user submits a message, you'll receive an email with this "
|
375 |
"subject."
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: inc/core/classes/class-form-setup.php:
|
379 |
msgid "Include mark and reply link"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: inc/core/classes/class-form-setup.php:
|
383 |
msgid "Reply to your users and mark their submission as read in one click."
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: inc/core/classes/class-form-setup.php:
|
387 |
msgid "Send confirmation email"
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: inc/core/classes/class-form-setup.php:
|
391 |
msgid "Email display name"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: inc/core/classes/class-form-setup.php:
|
395 |
msgid ""
|
396 |
"If your form contains an email field, recipients will receive an email with "
|
397 |
"this sender name."
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: inc/core/classes/class-form-setup.php:
|
401 |
msgid ""
|
402 |
"If your form contains an email field, recipients will receive an email with "
|
403 |
"this subject."
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: inc/core/classes/class-form-setup.php:
|
407 |
msgid "Email content"
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: inc/core/classes/class-form-setup.php:
|
411 |
msgid ""
|
412 |
"If your form contains an email field, recipients will receive an email with "
|
413 |
"this content."
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: inc/core/classes/class-form-setup.php:
|
|
|
|
|
|
|
|
|
417 |
msgid "Optional part label"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: inc/core/classes/class-form-setup.php:
|
421 |
msgid "Submit button label"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: inc/core/classes/class-form-setup.php:
|
425 |
msgid "Submit button HTML class"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: inc/core/classes/class-form-setup.php:
|
429 |
msgid "Set custom form HTML ID"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: inc/core/classes/class-form-setup.php:
|
433 |
msgid "Add a unique HTML ID to your form. Write without a hash (#) character."
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: inc/core/classes/class-form-setup.php:
|
437 |
msgid "Form HTML ID"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: inc/core/classes/class-form-setup.php:
|
441 |
msgid "Redirect on complete"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: inc/core/classes/class-form-setup.php:
|
445 |
msgid ""
|
446 |
"By default, recipients will be redirected to the post or page displaying "
|
447 |
"this form. To set a custom redirect webpage, add a link here."
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: inc/core/classes/class-form-setup.php:
|
451 |
msgid "On complete redirect link"
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: inc/core/classes/class-form-setup.php:
|
455 |
msgid "Open redirect link in new tab"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: inc/core/classes/class-form-setup.php:
|
459 |
msgid "Spam prevention"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: inc/core/classes/class-form-setup.php:
|
463 |
msgid "Protect your form against bots by using HoneyPot security."
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: inc/core/classes/class-form-setup.php:
|
467 |
msgid ""
|
468 |
"Use <a href=\"%s\" target=\"_blank\" class=\"external\"> Google "
|
469 |
"ReCaptcha</a>"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: inc/core/classes/class-form-setup.php:
|
473 |
msgid "Protect your form against bots using your Google ReCaptcha credentials."
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: inc/core/classes/class-form-setup.php:
|
477 |
msgid "ReCaptcha site key"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: inc/core/classes/class-form-setup.php:
|
481 |
msgid "ReCaptcha secret key"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: inc/core/classes/class-form-setup.php:
|
485 |
msgid "ReCaptcha label"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: inc/core/classes/class-form-setup.php:
|
489 |
msgid "Save responses"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: inc/core/classes/class-form-setup.php:
|
493 |
msgid "Keep recipients responses stored in your WordPress database."
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: inc/core/classes/class-form-setup.php:
|
497 |
msgid "Give each response an ID number"
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: inc/core/classes/class-form-setup.php:
|
501 |
msgid "Tag responses with a unique, incremental identifier."
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: inc/core/classes/class-form-setup.php:
|
505 |
msgid "Start counter from"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: inc/core/classes/class-form-setup.php:
|
509 |
msgid "Your next submission will be tagged with this identifier."
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: inc/core/classes/class-form-setup.php:
|
513 |
#: inc/core/templates/parts/customize-number.php:72
|
514 |
msgid "Prefix"
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: inc/core/classes/class-form-setup.php:
|
518 |
msgid "Suffix"
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: inc/core/classes/class-form-setup.php:
|
522 |
msgid "Preview values before submission"
|
523 |
msgstr ""
|
524 |
|
525 |
-
#: inc/core/classes/class-form-setup.php:
|
526 |
msgid "Let your users review their submission before confirming it."
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: inc/core/classes/class-form-setup.php:
|
530 |
msgid "Review button text"
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: inc/core/classes/class-form-setup.php:
|
534 |
msgid "Fade submit button until valid"
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: inc/core/classes/class-form-setup.php:
|
538 |
msgid ""
|
539 |
"Reduce the opacity of the submit button until all required form parts are "
|
540 |
"valid."
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: inc/core/classes/class-form-setup.php:
|
544 |
msgid "Please review your submission..."
|
545 |
msgstr ""
|
546 |
|
@@ -686,14 +690,14 @@ msgstr ""
|
|
686 |
#: inc/core/templates/parts/customize-date.php:103
|
687 |
#: inc/core/templates/parts/customize-email.php:46
|
688 |
#: inc/core/templates/parts/customize-legal.php:4
|
689 |
-
#: inc/core/templates/parts/customize-multi-line-text.php:
|
690 |
#: inc/core/templates/parts/customize-narrative.php:33
|
691 |
#: inc/core/templates/parts/customize-number.php:77
|
692 |
#: inc/core/templates/parts/customize-phone.php:69
|
693 |
#: inc/core/templates/parts/customize-placeholder.php:27
|
694 |
#: inc/core/templates/parts/customize-radio.php:67
|
695 |
#: inc/core/templates/parts/customize-rating.php:74
|
696 |
-
#: inc/core/templates/parts/customize-rich-text.php:
|
697 |
#: inc/core/templates/parts/customize-scale.php:86
|
698 |
#: inc/core/templates/parts/customize-select.php:70
|
699 |
#: inc/core/templates/parts/customize-single-line-text.php:51
|
@@ -761,6 +765,7 @@ msgid "Alignment"
|
|
761 |
msgstr ""
|
762 |
|
763 |
#: inc/core/classes/class-form-styles.php:594
|
|
|
764 |
msgid "Font size"
|
765 |
msgstr ""
|
766 |
|
@@ -898,7 +903,7 @@ msgstr ""
|
|
898 |
|
899 |
#: inc/core/classes/class-form-styles.php:734
|
900 |
#: inc/core/classes/class-form-styles.php:884
|
901 |
-
#: inc/core/classes/parts/class-part-multi-line-text.php:
|
902 |
#: inc/core/classes/parts/class-part-rich-text.php:33
|
903 |
#: inc/core/classes/parts/class-part-single-line-text.php:29
|
904 |
#: inc/core/templates/parts/customize-legal.php:13
|
@@ -966,12 +971,8 @@ msgstr ""
|
|
966 |
msgid "Submit button"
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: inc/core/classes/class-form-styles.php:844
|
970 |
-
msgid "Font Size"
|
971 |
-
msgstr ""
|
972 |
-
|
973 |
#: inc/core/classes/class-form-styles.php:849
|
974 |
-
msgid "Font
|
975 |
msgstr ""
|
976 |
|
977 |
#: inc/core/classes/class-form-styles.php:859
|
@@ -1030,7 +1031,6 @@ msgid "View Response #"
|
|
1030 |
msgstr ""
|
1031 |
|
1032 |
#: inc/core/classes/class-message-admin.php:242
|
1033 |
-
#: inc/core/classes/class-message-controller.php:213
|
1034 |
msgid "View response"
|
1035 |
msgstr ""
|
1036 |
|
@@ -1117,7 +1117,7 @@ msgstr ""
|
|
1117 |
#: inc/core/classes/class-message-admin.php:781
|
1118 |
#: inc/core/classes/class-message-controller.php:679
|
1119 |
#: inc/core/templates/admin-message-edit.php:27
|
1120 |
-
#: inc/core/templates/email-owner.php:29 inc/core/templates/email-user.php:
|
1121 |
msgid "Tracking number"
|
1122 |
msgstr ""
|
1123 |
|
@@ -1158,7 +1158,8 @@ msgid "Response"
|
|
1158 |
msgstr ""
|
1159 |
|
1160 |
#: inc/core/classes/class-message-controller.php:212
|
1161 |
-
|
|
|
1162 |
msgstr ""
|
1163 |
|
1164 |
#: inc/core/classes/class-message-controller.php:214
|
@@ -1282,7 +1283,7 @@ msgstr ""
|
|
1282 |
#: inc/core/classes/parts/class-part-email.php:152
|
1283 |
#: inc/core/classes/parts/class-part-email.php:156
|
1284 |
#: inc/core/classes/parts/class-part-legal.php:120
|
1285 |
-
#: inc/core/classes/parts/class-part-multi-line-text.php:
|
1286 |
#: inc/core/classes/parts/class-part-narrative.php:130
|
1287 |
#: inc/core/classes/parts/class-part-narrative.php:135
|
1288 |
#: inc/core/classes/parts/class-part-number.php:174
|
@@ -1290,7 +1291,7 @@ msgstr ""
|
|
1290 |
#: inc/core/classes/parts/class-part-phone.php:170
|
1291 |
#: inc/core/classes/parts/class-part-radio.php:181
|
1292 |
#: inc/core/classes/parts/class-part-rating.php:157
|
1293 |
-
#: inc/core/classes/parts/class-part-rich-text.php:
|
1294 |
#: inc/core/classes/parts/class-part-scale.php:168
|
1295 |
#: inc/core/classes/parts/class-part-select.php:175
|
1296 |
#: inc/core/classes/parts/class-part-single-line-text.php:134
|
@@ -1398,14 +1399,38 @@ msgstr ""
|
|
1398 |
msgid "For paragraph text fields."
|
1399 |
msgstr ""
|
1400 |
|
1401 |
-
#: inc/core/classes/parts/class-part-multi-line-text.php:
|
1402 |
-
#: inc/core/classes/parts/class-part-
|
1403 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1404 |
msgstr ""
|
1405 |
|
1406 |
-
#: inc/core/classes/parts/class-part-multi-line-text.php:
|
1407 |
-
#: inc/core/classes/parts/class-part-rich-text.php:
|
1408 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
1409 |
msgstr ""
|
1410 |
|
1411 |
#: inc/core/classes/parts/class-part-narrative.php:8
|
@@ -3752,7 +3777,7 @@ msgstr ""
|
|
3752 |
#: inc/core/templates/parts/customize-email.php:20
|
3753 |
#: inc/core/templates/parts/customize-email.php:56
|
3754 |
#: inc/core/templates/parts/customize-multi-line-text.php:20
|
3755 |
-
#: inc/core/templates/parts/customize-multi-line-text.php:
|
3756 |
#: inc/core/templates/parts/customize-narrative.php:18
|
3757 |
#: inc/core/templates/parts/customize-narrative.php:43
|
3758 |
#: inc/core/templates/parts/customize-number.php:20
|
@@ -3766,7 +3791,7 @@ msgstr ""
|
|
3766 |
#: inc/core/templates/parts/customize-rating.php:18
|
3767 |
#: inc/core/templates/parts/customize-rating.php:84
|
3768 |
#: inc/core/templates/parts/customize-rich-text.php:18
|
3769 |
-
#: inc/core/templates/parts/customize-rich-text.php:
|
3770 |
#: inc/core/templates/parts/customize-scale.php:18
|
3771 |
#: inc/core/templates/parts/customize-scale.php:96
|
3772 |
#: inc/core/templates/parts/customize-select.php:19
|
@@ -3880,14 +3905,14 @@ msgstr ""
|
|
3880 |
#: inc/core/templates/parts/customize-date.php:105
|
3881 |
#: inc/core/templates/parts/customize-email.php:48
|
3882 |
#: inc/core/templates/parts/customize-legal.php:6
|
3883 |
-
#: inc/core/templates/parts/customize-multi-line-text.php:
|
3884 |
#: inc/core/templates/parts/customize-narrative.php:35
|
3885 |
#: inc/core/templates/parts/customize-number.php:79
|
3886 |
#: inc/core/templates/parts/customize-phone.php:71
|
3887 |
#: inc/core/templates/parts/customize-placeholder.php:29
|
3888 |
#: inc/core/templates/parts/customize-radio.php:69
|
3889 |
#: inc/core/templates/parts/customize-rating.php:76
|
3890 |
-
#: inc/core/templates/parts/customize-rich-text.php:
|
3891 |
#: inc/core/templates/parts/customize-scale.php:88
|
3892 |
#: inc/core/templates/parts/customize-select.php:72
|
3893 |
#: inc/core/templates/parts/customize-single-line-text.php:53
|
@@ -3956,14 +3981,14 @@ msgstr ""
|
|
3956 |
#: inc/core/templates/parts/customize-date.php:106
|
3957 |
#: inc/core/templates/parts/customize-email.php:49
|
3958 |
#: inc/core/templates/parts/customize-legal.php:7
|
3959 |
-
#: inc/core/templates/parts/customize-multi-line-text.php:
|
3960 |
#: inc/core/templates/parts/customize-narrative.php:36
|
3961 |
#: inc/core/templates/parts/customize-number.php:80
|
3962 |
#: inc/core/templates/parts/customize-phone.php:72
|
3963 |
#: inc/core/templates/parts/customize-placeholder.php:30
|
3964 |
#: inc/core/templates/parts/customize-radio.php:70
|
3965 |
#: inc/core/templates/parts/customize-rating.php:77
|
3966 |
-
#: inc/core/templates/parts/customize-rich-text.php:
|
3967 |
#: inc/core/templates/parts/customize-scale.php:89
|
3968 |
#: inc/core/templates/parts/customize-select.php:73
|
3969 |
#: inc/core/templates/parts/customize-single-line-text.php:54
|
@@ -3978,14 +4003,14 @@ msgstr ""
|
|
3978 |
#: inc/core/templates/parts/customize-date.php:107
|
3979 |
#: inc/core/templates/parts/customize-email.php:50
|
3980 |
#: inc/core/templates/parts/customize-legal.php:8
|
3981 |
-
#: inc/core/templates/parts/customize-multi-line-text.php:
|
3982 |
#: inc/core/templates/parts/customize-narrative.php:37
|
3983 |
#: inc/core/templates/parts/customize-number.php:81
|
3984 |
#: inc/core/templates/parts/customize-phone.php:73
|
3985 |
#: inc/core/templates/parts/customize-placeholder.php:31
|
3986 |
#: inc/core/templates/parts/customize-radio.php:71
|
3987 |
#: inc/core/templates/parts/customize-rating.php:78
|
3988 |
-
#: inc/core/templates/parts/customize-rich-text.php:
|
3989 |
#: inc/core/templates/parts/customize-scale.php:90
|
3990 |
#: inc/core/templates/parts/customize-select.php:74
|
3991 |
#: inc/core/templates/parts/customize-single-line-text.php:55
|
@@ -4000,7 +4025,7 @@ msgstr ""
|
|
4000 |
#: inc/core/templates/parts/customize-date.php:108
|
4001 |
#: inc/core/templates/parts/customize-email.php:51
|
4002 |
#: inc/core/templates/parts/customize-legal.php:9
|
4003 |
-
#: inc/core/templates/parts/customize-multi-line-text.php:
|
4004 |
#: inc/core/templates/parts/customize-narrative.php:38
|
4005 |
#: inc/core/templates/parts/customize-number.php:82
|
4006 |
#: inc/core/templates/parts/customize-phone.php:74
|
@@ -4021,14 +4046,14 @@ msgstr ""
|
|
4021 |
#: inc/core/templates/parts/customize-date.php:117
|
4022 |
#: inc/core/templates/parts/customize-email.php:60
|
4023 |
#: inc/core/templates/parts/customize-legal.php:18
|
4024 |
-
#: inc/core/templates/parts/customize-multi-line-text.php:
|
4025 |
#: inc/core/templates/parts/customize-narrative.php:47
|
4026 |
#: inc/core/templates/parts/customize-number.php:91
|
4027 |
#: inc/core/templates/parts/customize-phone.php:83
|
4028 |
#: inc/core/templates/parts/customize-placeholder.php:41
|
4029 |
#: inc/core/templates/parts/customize-radio.php:81
|
4030 |
#: inc/core/templates/parts/customize-rating.php:88
|
4031 |
-
#: inc/core/templates/parts/customize-rich-text.php:
|
4032 |
#: inc/core/templates/parts/customize-scale.php:100
|
4033 |
#: inc/core/templates/parts/customize-select.php:84
|
4034 |
#: inc/core/templates/parts/customize-single-line-text.php:65
|
@@ -4213,8 +4238,27 @@ msgid "Confirmation field title"
|
|
4213 |
msgstr ""
|
4214 |
|
4215 |
#: inc/core/templates/parts/customize-multi-line-text.php:46
|
4216 |
-
|
4217 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4218 |
msgstr ""
|
4219 |
|
4220 |
#: inc/core/templates/parts/customize-narrative.php:24
|
@@ -4296,6 +4340,10 @@ msgstr ""
|
|
4296 |
msgid "Rating Labels"
|
4297 |
msgstr ""
|
4298 |
|
|
|
|
|
|
|
|
|
4299 |
#: inc/core/templates/parts/customize-scale.php:34
|
4300 |
msgid "Minimum value"
|
4301 |
msgstr ""
|
2 |
# This file is distributed under the same license as the HappyForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: HappyForms 1.7.10\n"
|
6 |
"Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
|
7 |
+
"POT-Creation-Date: 2019-04-25 12:32:02+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
185 |
msgid "Responses"
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: inc/core/classes/class-form-admin.php:321
|
189 |
msgid "Copy to clipboard"
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: inc/core/classes/class-form-admin.php:375
|
193 |
#: inc/core/templates/customize-form-steps.php:5
|
194 |
msgid "Build"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: inc/core/classes/class-form-admin.php:379
|
198 |
#: inc/core/templates/customize-form-item.php:21
|
199 |
#: inc/core/templates/customize-form-steps.php:8
|
200 |
#: inc/core/templates/customize-form-steps.php:15
|
201 |
msgid "Setup"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: inc/core/classes/class-form-admin.php:383
|
205 |
#: inc/core/templates/customize-form-item.php:24
|
206 |
#: inc/core/templates/customize-form-steps.php:18
|
207 |
msgid "Style"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: inc/core/classes/class-form-admin.php:387
|
211 |
#: inc/core/templates/customize-form-item.php:27
|
212 |
#: inc/core/templates/customize-form-part-footer.php:4
|
213 |
msgid "Duplicate"
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: inc/core/classes/class-form-admin.php:391
|
217 |
#: inc/core/classes/class-message-admin.php:640
|
218 |
#: inc/core/classes/class-message-admin.php:720
|
219 |
#: inc/core/classes/class-message-admin.php:928
|
220 |
msgid "Trash"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: inc/core/classes/class-form-admin.php:436
|
224 |
msgid "Form duplicated succesfully."
|
225 |
msgstr ""
|
226 |
|
311 |
"and we’ll be in touch soon."
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: inc/core/classes/class-form-setup.php:122
|
315 |
msgid "(optional)"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: inc/core/classes/class-form-setup.php:126
|
319 |
msgid "Submit Form"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: inc/core/classes/class-form-setup.php:150
|
323 |
msgid "Validate your submission"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: inc/core/classes/class-form-setup.php:158
|
327 |
msgid "Review submission"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: inc/core/classes/class-form-setup.php:202
|
331 |
msgid "Confirmation message"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: inc/core/classes/class-form-setup.php:203
|
335 |
msgid ""
|
336 |
"This is the message your users will see after succesfully submitting your "
|
337 |
"form."
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: inc/core/classes/class-form-setup.php:208
|
341 |
msgid "Receive submission alerts"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: inc/core/classes/class-form-setup.php:213
|
345 |
#: inc/core/templates/admin-tracking.php:15
|
346 |
msgid "Email address"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: inc/core/classes/class-form-setup.php:214
|
350 |
msgid ""
|
351 |
"Add your email address here to receive a confirmation email for each form "
|
352 |
"response. You can add multiple email addresses by separating each address "
|
353 |
"with a comma."
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: inc/core/classes/class-form-setup.php:219
|
357 |
msgid "Email Bcc address"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: inc/core/classes/class-form-setup.php:220
|
361 |
msgid ""
|
362 |
"Add your Bcc email address here to receive a confirmation email for each "
|
363 |
"form response without appearing in the received message header. You can "
|
364 |
"add multiple email addresses by separating each address with a comma."
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: inc/core/classes/class-form-setup.php:225
|
368 |
+
#: inc/core/classes/class-form-setup.php:248
|
369 |
msgid "Email subject"
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: inc/core/classes/class-form-setup.php:226
|
373 |
msgid ""
|
374 |
"Each time a user submits a message, you'll receive an email with this "
|
375 |
"subject."
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: inc/core/classes/class-form-setup.php:231
|
379 |
msgid "Include mark and reply link"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: inc/core/classes/class-form-setup.php:232
|
383 |
msgid "Reply to your users and mark their submission as read in one click."
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: inc/core/classes/class-form-setup.php:237
|
387 |
msgid "Send confirmation email"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: inc/core/classes/class-form-setup.php:242
|
391 |
msgid "Email display name"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: inc/core/classes/class-form-setup.php:243
|
395 |
msgid ""
|
396 |
"If your form contains an email field, recipients will receive an email with "
|
397 |
"this sender name."
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: inc/core/classes/class-form-setup.php:249
|
401 |
msgid ""
|
402 |
"If your form contains an email field, recipients will receive an email with "
|
403 |
"this subject."
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: inc/core/classes/class-form-setup.php:254
|
407 |
msgid "Email content"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: inc/core/classes/class-form-setup.php:255
|
411 |
msgid ""
|
412 |
"If your form contains an email field, recipients will receive an email with "
|
413 |
"this content."
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: inc/core/classes/class-form-setup.php:260
|
417 |
+
msgid "Include submitted values"
|
418 |
+
msgstr ""
|
419 |
+
|
420 |
+
#: inc/core/classes/class-form-setup.php:265
|
421 |
msgid "Optional part label"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: inc/core/classes/class-form-setup.php:270
|
425 |
msgid "Submit button label"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: inc/core/classes/class-form-setup.php:275
|
429 |
msgid "Submit button HTML class"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: inc/core/classes/class-form-setup.php:280
|
433 |
msgid "Set custom form HTML ID"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: inc/core/classes/class-form-setup.php:282
|
437 |
msgid "Add a unique HTML ID to your form. Write without a hash (#) character."
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: inc/core/classes/class-form-setup.php:286
|
441 |
msgid "Form HTML ID"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: inc/core/classes/class-form-setup.php:291
|
445 |
msgid "Redirect on complete"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: inc/core/classes/class-form-setup.php:292
|
449 |
msgid ""
|
450 |
"By default, recipients will be redirected to the post or page displaying "
|
451 |
"this form. To set a custom redirect webpage, add a link here."
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: inc/core/classes/class-form-setup.php:297
|
455 |
msgid "On complete redirect link"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: inc/core/classes/class-form-setup.php:302
|
459 |
msgid "Open redirect link in new tab"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: inc/core/classes/class-form-setup.php:307
|
463 |
msgid "Spam prevention"
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: inc/core/classes/class-form-setup.php:308
|
467 |
msgid "Protect your form against bots by using HoneyPot security."
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: inc/core/classes/class-form-setup.php:314
|
471 |
msgid ""
|
472 |
"Use <a href=\"%s\" target=\"_blank\" class=\"external\"> Google "
|
473 |
"ReCaptcha</a>"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: inc/core/classes/class-form-setup.php:317
|
477 |
msgid "Protect your form against bots using your Google ReCaptcha credentials."
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: inc/core/classes/class-form-setup.php:322
|
481 |
msgid "ReCaptcha site key"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: inc/core/classes/class-form-setup.php:327
|
485 |
msgid "ReCaptcha secret key"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: inc/core/classes/class-form-setup.php:332
|
489 |
msgid "ReCaptcha label"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: inc/core/classes/class-form-setup.php:337
|
493 |
msgid "Save responses"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: inc/core/classes/class-form-setup.php:338
|
497 |
msgid "Keep recipients responses stored in your WordPress database."
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: inc/core/classes/class-form-setup.php:343
|
501 |
msgid "Give each response an ID number"
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: inc/core/classes/class-form-setup.php:344
|
505 |
msgid "Tag responses with a unique, incremental identifier."
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: inc/core/classes/class-form-setup.php:349
|
509 |
msgid "Start counter from"
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: inc/core/classes/class-form-setup.php:350
|
513 |
msgid "Your next submission will be tagged with this identifier."
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: inc/core/classes/class-form-setup.php:356
|
517 |
#: inc/core/templates/parts/customize-number.php:72
|
518 |
msgid "Prefix"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: inc/core/classes/class-form-setup.php:361
|
522 |
msgid "Suffix"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: inc/core/classes/class-form-setup.php:366
|
526 |
msgid "Preview values before submission"
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: inc/core/classes/class-form-setup.php:367
|
530 |
msgid "Let your users review their submission before confirming it."
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: inc/core/classes/class-form-setup.php:372
|
534 |
msgid "Review button text"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: inc/core/classes/class-form-setup.php:377
|
538 |
msgid "Fade submit button until valid"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: inc/core/classes/class-form-setup.php:379
|
542 |
msgid ""
|
543 |
"Reduce the opacity of the submit button until all required form parts are "
|
544 |
"valid."
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: inc/core/classes/class-form-setup.php:486
|
548 |
msgid "Please review your submission..."
|
549 |
msgstr ""
|
550 |
|
690 |
#: inc/core/templates/parts/customize-date.php:103
|
691 |
#: inc/core/templates/parts/customize-email.php:46
|
692 |
#: inc/core/templates/parts/customize-legal.php:4
|
693 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:58
|
694 |
#: inc/core/templates/parts/customize-narrative.php:33
|
695 |
#: inc/core/templates/parts/customize-number.php:77
|
696 |
#: inc/core/templates/parts/customize-phone.php:69
|
697 |
#: inc/core/templates/parts/customize-placeholder.php:27
|
698 |
#: inc/core/templates/parts/customize-radio.php:67
|
699 |
#: inc/core/templates/parts/customize-rating.php:74
|
700 |
+
#: inc/core/templates/parts/customize-rich-text.php:52
|
701 |
#: inc/core/templates/parts/customize-scale.php:86
|
702 |
#: inc/core/templates/parts/customize-select.php:70
|
703 |
#: inc/core/templates/parts/customize-single-line-text.php:51
|
765 |
msgstr ""
|
766 |
|
767 |
#: inc/core/classes/class-form-styles.php:594
|
768 |
+
#: inc/core/classes/class-form-styles.php:844
|
769 |
msgid "Font size"
|
770 |
msgstr ""
|
771 |
|
903 |
|
904 |
#: inc/core/classes/class-form-styles.php:734
|
905 |
#: inc/core/classes/class-form-styles.php:884
|
906 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:34
|
907 |
#: inc/core/classes/parts/class-part-rich-text.php:33
|
908 |
#: inc/core/classes/parts/class-part-single-line-text.php:29
|
909 |
#: inc/core/templates/parts/customize-legal.php:13
|
971 |
msgid "Submit button"
|
972 |
msgstr ""
|
973 |
|
|
|
|
|
|
|
|
|
974 |
#: inc/core/classes/class-form-styles.php:849
|
975 |
+
msgid "Font weight"
|
976 |
msgstr ""
|
977 |
|
978 |
#: inc/core/classes/class-form-styles.php:859
|
1031 |
msgstr ""
|
1032 |
|
1033 |
#: inc/core/classes/class-message-admin.php:242
|
|
|
1034 |
msgid "View response"
|
1035 |
msgstr ""
|
1036 |
|
1117 |
#: inc/core/classes/class-message-admin.php:781
|
1118 |
#: inc/core/classes/class-message-controller.php:679
|
1119 |
#: inc/core/templates/admin-message-edit.php:27
|
1120 |
+
#: inc/core/templates/email-owner.php:29 inc/core/templates/email-user.php:37
|
1121 |
msgid "Tracking number"
|
1122 |
msgstr ""
|
1123 |
|
1158 |
msgstr ""
|
1159 |
|
1160 |
#: inc/core/classes/class-message-controller.php:212
|
1161 |
+
#: inc/core/classes/class-message-controller.php:213
|
1162 |
+
msgid "View Response"
|
1163 |
msgstr ""
|
1164 |
|
1165 |
#: inc/core/classes/class-message-controller.php:214
|
1283 |
#: inc/core/classes/parts/class-part-email.php:152
|
1284 |
#: inc/core/classes/parts/class-part-email.php:156
|
1285 |
#: inc/core/classes/parts/class-part-legal.php:120
|
1286 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:163
|
1287 |
#: inc/core/classes/parts/class-part-narrative.php:130
|
1288 |
#: inc/core/classes/parts/class-part-narrative.php:135
|
1289 |
#: inc/core/classes/parts/class-part-number.php:174
|
1291 |
#: inc/core/classes/parts/class-part-phone.php:170
|
1292 |
#: inc/core/classes/parts/class-part-radio.php:181
|
1293 |
#: inc/core/classes/parts/class-part-rating.php:157
|
1294 |
+
#: inc/core/classes/parts/class-part-rich-text.php:204
|
1295 |
#: inc/core/classes/parts/class-part-scale.php:168
|
1296 |
#: inc/core/classes/parts/class-part-select.php:175
|
1297 |
#: inc/core/classes/parts/class-part-single-line-text.php:134
|
1399 |
msgid "For paragraph text fields."
|
1400 |
msgstr ""
|
1401 |
|
1402 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:174
|
1403 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:178
|
1404 |
+
#: inc/core/classes/parts/class-part-rich-text.php:216
|
1405 |
+
#: inc/core/classes/parts/class-part-rich-text.php:220
|
1406 |
+
msgid "Submitted value is too long."
|
1407 |
+
msgstr ""
|
1408 |
+
|
1409 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:176
|
1410 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:180
|
1411 |
+
#: inc/core/classes/parts/class-part-rich-text.php:218
|
1412 |
+
#: inc/core/classes/parts/class-part-rich-text.php:222
|
1413 |
+
msgid "Submitted value is too short."
|
1414 |
+
msgstr ""
|
1415 |
+
|
1416 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:224
|
1417 |
+
#: inc/core/classes/parts/class-part-rich-text.php:262
|
1418 |
+
msgid "characters (min.)"
|
1419 |
+
msgstr ""
|
1420 |
+
|
1421 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:227
|
1422 |
+
#: inc/core/classes/parts/class-part-rich-text.php:265
|
1423 |
+
msgid "characters (max.)"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:230
|
1427 |
+
#: inc/core/classes/parts/class-part-rich-text.php:268
|
1428 |
+
msgid "words (min.)"
|
1429 |
+
msgstr ""
|
1430 |
+
|
1431 |
+
#: inc/core/classes/parts/class-part-multi-line-text.php:233
|
1432 |
+
#: inc/core/classes/parts/class-part-rich-text.php:271
|
1433 |
+
msgid "words (max.)"
|
1434 |
msgstr ""
|
1435 |
|
1436 |
#: inc/core/classes/parts/class-part-narrative.php:8
|
3777 |
#: inc/core/templates/parts/customize-email.php:20
|
3778 |
#: inc/core/templates/parts/customize-email.php:56
|
3779 |
#: inc/core/templates/parts/customize-multi-line-text.php:20
|
3780 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:68
|
3781 |
#: inc/core/templates/parts/customize-narrative.php:18
|
3782 |
#: inc/core/templates/parts/customize-narrative.php:43
|
3783 |
#: inc/core/templates/parts/customize-number.php:20
|
3791 |
#: inc/core/templates/parts/customize-rating.php:18
|
3792 |
#: inc/core/templates/parts/customize-rating.php:84
|
3793 |
#: inc/core/templates/parts/customize-rich-text.php:18
|
3794 |
+
#: inc/core/templates/parts/customize-rich-text.php:61
|
3795 |
#: inc/core/templates/parts/customize-scale.php:18
|
3796 |
#: inc/core/templates/parts/customize-scale.php:96
|
3797 |
#: inc/core/templates/parts/customize-select.php:19
|
3905 |
#: inc/core/templates/parts/customize-date.php:105
|
3906 |
#: inc/core/templates/parts/customize-email.php:48
|
3907 |
#: inc/core/templates/parts/customize-legal.php:6
|
3908 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:60
|
3909 |
#: inc/core/templates/parts/customize-narrative.php:35
|
3910 |
#: inc/core/templates/parts/customize-number.php:79
|
3911 |
#: inc/core/templates/parts/customize-phone.php:71
|
3912 |
#: inc/core/templates/parts/customize-placeholder.php:29
|
3913 |
#: inc/core/templates/parts/customize-radio.php:69
|
3914 |
#: inc/core/templates/parts/customize-rating.php:76
|
3915 |
+
#: inc/core/templates/parts/customize-rich-text.php:54
|
3916 |
#: inc/core/templates/parts/customize-scale.php:88
|
3917 |
#: inc/core/templates/parts/customize-select.php:72
|
3918 |
#: inc/core/templates/parts/customize-single-line-text.php:53
|
3981 |
#: inc/core/templates/parts/customize-date.php:106
|
3982 |
#: inc/core/templates/parts/customize-email.php:49
|
3983 |
#: inc/core/templates/parts/customize-legal.php:7
|
3984 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:61
|
3985 |
#: inc/core/templates/parts/customize-narrative.php:36
|
3986 |
#: inc/core/templates/parts/customize-number.php:80
|
3987 |
#: inc/core/templates/parts/customize-phone.php:72
|
3988 |
#: inc/core/templates/parts/customize-placeholder.php:30
|
3989 |
#: inc/core/templates/parts/customize-radio.php:70
|
3990 |
#: inc/core/templates/parts/customize-rating.php:77
|
3991 |
+
#: inc/core/templates/parts/customize-rich-text.php:55
|
3992 |
#: inc/core/templates/parts/customize-scale.php:89
|
3993 |
#: inc/core/templates/parts/customize-select.php:73
|
3994 |
#: inc/core/templates/parts/customize-single-line-text.php:54
|
4003 |
#: inc/core/templates/parts/customize-date.php:107
|
4004 |
#: inc/core/templates/parts/customize-email.php:50
|
4005 |
#: inc/core/templates/parts/customize-legal.php:8
|
4006 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:62
|
4007 |
#: inc/core/templates/parts/customize-narrative.php:37
|
4008 |
#: inc/core/templates/parts/customize-number.php:81
|
4009 |
#: inc/core/templates/parts/customize-phone.php:73
|
4010 |
#: inc/core/templates/parts/customize-placeholder.php:31
|
4011 |
#: inc/core/templates/parts/customize-radio.php:71
|
4012 |
#: inc/core/templates/parts/customize-rating.php:78
|
4013 |
+
#: inc/core/templates/parts/customize-rich-text.php:56
|
4014 |
#: inc/core/templates/parts/customize-scale.php:90
|
4015 |
#: inc/core/templates/parts/customize-select.php:74
|
4016 |
#: inc/core/templates/parts/customize-single-line-text.php:55
|
4025 |
#: inc/core/templates/parts/customize-date.php:108
|
4026 |
#: inc/core/templates/parts/customize-email.php:51
|
4027 |
#: inc/core/templates/parts/customize-legal.php:9
|
4028 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:63
|
4029 |
#: inc/core/templates/parts/customize-narrative.php:38
|
4030 |
#: inc/core/templates/parts/customize-number.php:82
|
4031 |
#: inc/core/templates/parts/customize-phone.php:74
|
4046 |
#: inc/core/templates/parts/customize-date.php:117
|
4047 |
#: inc/core/templates/parts/customize-email.php:60
|
4048 |
#: inc/core/templates/parts/customize-legal.php:18
|
4049 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:72
|
4050 |
#: inc/core/templates/parts/customize-narrative.php:47
|
4051 |
#: inc/core/templates/parts/customize-number.php:91
|
4052 |
#: inc/core/templates/parts/customize-phone.php:83
|
4053 |
#: inc/core/templates/parts/customize-placeholder.php:41
|
4054 |
#: inc/core/templates/parts/customize-radio.php:81
|
4055 |
#: inc/core/templates/parts/customize-rating.php:88
|
4056 |
+
#: inc/core/templates/parts/customize-rich-text.php:65
|
4057 |
#: inc/core/templates/parts/customize-scale.php:100
|
4058 |
#: inc/core/templates/parts/customize-select.php:84
|
4059 |
#: inc/core/templates/parts/customize-single-line-text.php:65
|
4238 |
msgstr ""
|
4239 |
|
4240 |
#: inc/core/templates/parts/customize-multi-line-text.php:46
|
4241 |
+
msgid "Limit words/characters"
|
4242 |
+
msgstr ""
|
4243 |
+
|
4244 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:50
|
4245 |
+
#: inc/core/templates/parts/customize-rich-text.php:44
|
4246 |
+
msgid "Words (max)"
|
4247 |
+
msgstr ""
|
4248 |
+
|
4249 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:51
|
4250 |
+
#: inc/core/templates/parts/customize-rich-text.php:45
|
4251 |
+
msgid "Words (min)"
|
4252 |
+
msgstr ""
|
4253 |
+
|
4254 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:52
|
4255 |
+
#: inc/core/templates/parts/customize-rich-text.php:46
|
4256 |
+
msgid "Characters (max)"
|
4257 |
+
msgstr ""
|
4258 |
+
|
4259 |
+
#: inc/core/templates/parts/customize-multi-line-text.php:53
|
4260 |
+
#: inc/core/templates/parts/customize-rich-text.php:47
|
4261 |
+
msgid "Characters (min)"
|
4262 |
msgstr ""
|
4263 |
|
4264 |
#: inc/core/templates/parts/customize-narrative.php:24
|
4340 |
msgid "Rating Labels"
|
4341 |
msgstr ""
|
4342 |
|
4343 |
+
#: inc/core/templates/parts/customize-rich-text.php:40
|
4344 |
+
msgid "Character count"
|
4345 |
+
msgstr ""
|
4346 |
+
|
4347 |
#: inc/core/templates/parts/customize-scale.php:34
|
4348 |
msgid "Minimum value"
|
4349 |
msgstr ""
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: contact, contact form, email, feedback form, form, form builder, custom fo
|
|
5 |
Requires at least: 4.8
|
6 |
Tested up to: 5.1
|
7 |
Requires PHP: 5.3
|
8 |
-
Stable tag: 1.7.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -99,6 +99,11 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more po
|
|
99 |
|
100 |
== Changelog ==
|
101 |
|
|
|
|
|
|
|
|
|
|
|
102 |
= 1.7.9 =
|
103 |
* Bugfix: Redirect URL feature could cause fatal error in some environments.
|
104 |
* Bugfix: Alignment fixes in form preview step.
|
@@ -467,6 +472,9 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more po
|
|
467 |
|
468 |
== Upgrade Notice ==
|
469 |
|
|
|
|
|
|
|
470 |
= 1.7.9 =
|
471 |
* Bug fixes.
|
472 |
|
5 |
Requires at least: 4.8
|
6 |
Tested up to: 5.1
|
7 |
Requires PHP: 5.3
|
8 |
+
Stable tag: 1.7.10
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
99 |
|
100 |
== Changelog ==
|
101 |
|
102 |
+
= 1.7.10 =
|
103 |
+
* New feature: Added 'Include submitted values' option in Step 2 that allows you to send submitted data in a confirmation email sent to a user.
|
104 |
+
* Improvement: Multi-line and Text Editor parts now support minimium and maximum character and word counter.
|
105 |
+
* Bugfix: Long Text part was ignoring new lines when displaying submitted value in email.
|
106 |
+
|
107 |
= 1.7.9 =
|
108 |
* Bugfix: Redirect URL feature could cause fatal error in some environments.
|
109 |
* Bugfix: Alignment fixes in form preview step.
|
472 |
|
473 |
== Upgrade Notice ==
|
474 |
|
475 |
+
= 1.7.10 =
|
476 |
+
* Allow sending values back to users, improved textarea counter, minor bugfixes.
|
477 |
+
|
478 |
= 1.7.9 =
|
479 |
* Bug fixes.
|
480 |
|