Version Description
- New feature: It's now possible to configure Bcc addresses for email alerts.
- New feature: Narrative part now supports input placeholders between brackets.
- New feature: Open redirect link in a new tab.
- Improvement: Better sample forms and responses created when activating plugin for the first time.
- Improvement: Various improvements to form styles and alignment.
- Bugfix: Forms created in 1.6.x versions weren't working because of a data format error.
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.8 |
Comparing to | |
See all releases |
Code changes from version 1.7.7 to 1.7.8
- happyforms.php +2 -2
- inc/core/assets/css/admin.css +4 -0
- inc/core/assets/css/color.css +21 -1
- inc/core/assets/css/customize.css +8 -0
- inc/core/assets/css/layout.css +21 -3
- inc/core/assets/js/customize.js +27 -0
- inc/core/assets/js/frontend.js +7 -5
- inc/core/assets/js/parts/part-address.js +2 -18
- inc/core/assets/js/parts/part-checkbox.js +2 -18
- inc/core/assets/js/parts/part-date.js +2 -18
- inc/core/assets/js/parts/part-email.js +2 -18
- inc/core/assets/js/parts/part-legal.js +2 -18
- inc/core/assets/js/parts/part-multi-line-text.js +2 -18
- inc/core/assets/js/parts/part-narrative.js +2 -30
- inc/core/assets/js/parts/part-number.js +2 -18
- inc/core/assets/js/parts/part-phone.js +2 -18
- inc/core/assets/js/parts/part-placeholder.js +2 -18
- inc/core/assets/js/parts/part-radio.js +2 -18
- inc/core/assets/js/parts/part-rating.js +2 -18
- inc/core/assets/js/parts/part-rich-text.js +2 -18
- inc/core/assets/js/parts/part-scale.js +2 -18
- inc/core/assets/js/parts/part-select.js +2 -18
- inc/core/assets/js/parts/part-single-line-text.js +2 -18
- inc/core/assets/js/parts/part-table.js +2 -18
- inc/core/assets/js/parts/part-title.js +2 -18
- inc/core/assets/js/parts/part-website-url.js +2 -18
- inc/core/classes/class-form-admin.php +3 -0
- inc/core/classes/class-form-controller.php +6 -13
- inc/core/classes/class-form-part-library.php +8 -0
- inc/core/classes/class-form-setup.php +19 -0
- inc/core/classes/class-message-admin.php +5 -4
- inc/core/classes/class-message-controller.php +48 -39
- inc/core/classes/class-migrations.php +20 -0
- inc/core/classes/parts/class-part-checkbox.php +8 -0
- inc/core/classes/parts/class-part-narrative.php +1 -1
- inc/core/classes/parts/class-part-placeholder.php +13 -0
- inc/core/classes/parts/class-part-radio.php +9 -0
- inc/core/helpers/helper-activation.php +30 -47
- inc/core/helpers/helper-form-templates.php +20 -5
- inc/core/helpers/helper-misc.php +43 -3
- inc/core/templates/email-owner.php +49 -0
- inc/core/templates/email-user.php +24 -0
- inc/core/templates/partials/part-preview.php +2 -6
- inc/core/templates/parts/customize-narrative.php +1 -0
- inc/core/templates/parts/frontend-checkbox.php +3 -3
- inc/core/templates/parts/frontend-date-day.php +1 -1
- inc/core/templates/parts/frontend-date-month.php +1 -1
- inc/core/templates/parts/frontend-date.php +1 -1
- inc/core/templates/parts/frontend-narrative.php +6 -6
- inc/core/templates/parts/frontend-radio.php +9 -3
- languages/happyforms.pot +288 -277
- readme.txt +12 -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.8
|
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.8' );
|
17 |
|
18 |
if ( ! function_exists( 'happyforms_plugin_file' ) ):
|
19 |
/**
|
inc/core/assets/css/admin.css
CHANGED
@@ -268,4 +268,8 @@ p.welcome-panel-footer a:active {
|
|
268 |
|
269 |
#happyforms-notice-happyforms_form_saved_guide {
|
270 |
border-color: #46b450;
|
|
|
|
|
|
|
|
|
271 |
}
|
268 |
|
269 |
#happyforms-notice-happyforms_form_saved_guide {
|
270 |
border-color: #46b450;
|
271 |
+
}
|
272 |
+
|
273 |
+
.wp-list-table .happyforms-responses-column-label {
|
274 |
+
display: none;
|
275 |
}
|
inc/core/assets/css/color.css
CHANGED
@@ -230,6 +230,7 @@
|
|
230 |
/* parts - option labels */
|
231 |
|
232 |
.happyforms-styles .happyforms-part .option-label {
|
|
|
233 |
font-size: 16px;
|
234 |
font-size: var(--happyforms-part-value-font-size);
|
235 |
}
|
@@ -255,6 +256,22 @@
|
|
255 |
transition: border-color var(--happyforms-transition-duration);
|
256 |
}
|
257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part--choice .option-label .border {
|
259 |
border-top-color: transparent;
|
260 |
border-left-color: transparent;
|
@@ -286,7 +303,7 @@
|
|
286 |
}
|
287 |
|
288 |
.happyforms-styles .happyforms-part-option {
|
289 |
-
margin-bottom:
|
290 |
}
|
291 |
|
292 |
.happyforms-styles .happyforms-part .option-label {
|
@@ -396,6 +413,7 @@
|
|
396 |
}
|
397 |
|
398 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--checkbox .checkmark,
|
|
|
399 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--table.happyforms-selection--multiple .checkmark,
|
400 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--legal .checkmark {
|
401 |
border-radius: 0;
|
@@ -845,6 +863,7 @@
|
|
845 |
border-radius: 0px !important;
|
846 |
}
|
847 |
|
|
|
848 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--choice .option-label .border {
|
849 |
border-radius: 0px;
|
850 |
}
|
@@ -874,6 +893,7 @@
|
|
874 |
border-radius: 25px;
|
875 |
}
|
876 |
|
|
|
877 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part--choice .option-label .border {
|
878 |
border-radius: 25px;
|
879 |
}
|
230 |
/* parts - option labels */
|
231 |
|
232 |
.happyforms-styles .happyforms-part .option-label {
|
233 |
+
border-radius: 6px;
|
234 |
font-size: 16px;
|
235 |
font-size: var(--happyforms-part-value-font-size);
|
236 |
}
|
256 |
transition: border-color var(--happyforms-transition-duration);
|
257 |
}
|
258 |
|
259 |
+
.happyforms-styles .happyforms-part--choice .option-label input[type=text] {
|
260 |
+
position: relative;
|
261 |
+
top: 0;
|
262 |
+
padding-top: 1px;
|
263 |
+
padding-bottom: 1px;
|
264 |
+
border: 0;
|
265 |
+
border-radius: 0 !important;
|
266 |
+
}
|
267 |
+
|
268 |
+
.happyforms-styles .happyforms-part--choice .option-label input[type=text]:focus {
|
269 |
+
border-top: 0;
|
270 |
+
border-right: 0;
|
271 |
+
border-left: 0;
|
272 |
+
box-shadow: none;
|
273 |
+
}
|
274 |
+
|
275 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part--choice .option-label .border {
|
276 |
border-top-color: transparent;
|
277 |
border-left-color: transparent;
|
303 |
}
|
304 |
|
305 |
.happyforms-styles .happyforms-part-option {
|
306 |
+
margin-bottom: 10px;
|
307 |
}
|
308 |
|
309 |
.happyforms-styles .happyforms-part .option-label {
|
413 |
}
|
414 |
|
415 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--checkbox .checkmark,
|
416 |
+
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--radio .checkmark,
|
417 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--table.happyforms-selection--multiple .checkmark,
|
418 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--legal .checkmark {
|
419 |
border-radius: 0;
|
863 |
border-radius: 0px !important;
|
864 |
}
|
865 |
|
866 |
+
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--choice .option-label,
|
867 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part--choice .option-label .border {
|
868 |
border-radius: 0px;
|
869 |
}
|
893 |
border-radius: 25px;
|
894 |
}
|
895 |
|
896 |
+
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part--choice .option-label,
|
897 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part--choice .option-label .border {
|
898 |
border-radius: 25px;
|
899 |
}
|
inc/core/assets/css/customize.css
CHANGED
@@ -308,12 +308,17 @@ a.happyforms-form-part-remove:hover {
|
|
308 |
display: none;
|
309 |
}
|
310 |
|
|
|
|
|
|
|
|
|
311 |
/**
|
312 |
*
|
313 |
* Form edit
|
314 |
*
|
315 |
*/
|
316 |
#customize-control-email_recipient,
|
|
|
317 |
#customize-control-alert_email_subject,
|
318 |
#customize-control-email_mark_and_reply,
|
319 |
#customize-control-confirmation_email_from_name,
|
@@ -327,12 +332,14 @@ a.happyforms-form-part-remove:hover {
|
|
327 |
#customize-control-unique_id_prefix,
|
328 |
#customize-control-unique_id_suffix,
|
329 |
#customize-control-redirect_url,
|
|
|
330 |
#customize-control-optional_part_label,
|
331 |
#customize-control-html_id {
|
332 |
display: none;
|
333 |
}
|
334 |
|
335 |
#customize-control-receive_email_alerts.checked ~ #customize-control-email_recipient,
|
|
|
336 |
#customize-control-receive_email_alerts.checked ~ #customize-control-alert_email_subject,
|
337 |
#customize-control-receive_email_alerts.checked ~ #customize-control-email_mark_and_reply,
|
338 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_from_name,
|
@@ -346,6 +353,7 @@ a.happyforms-form-part-remove:hover {
|
|
346 |
#customize-control-unique_id.checked ~ #customize-control-unique_id_prefix,
|
347 |
#customize-control-unique_id.checked ~ #customize-control-unique_id_suffix,
|
348 |
#customize-control-redirect_on_complete.checked ~ #customize-control-redirect_url,
|
|
|
349 |
#customize-control-use_html_id.checked ~ #customize-control-html_id {
|
350 |
display: block;
|
351 |
}
|
308 |
display: none;
|
309 |
}
|
310 |
|
311 |
+
.happyforms-widget span.description {
|
312 |
+
margin-top: 5px;
|
313 |
+
}
|
314 |
+
|
315 |
/**
|
316 |
*
|
317 |
* Form edit
|
318 |
*
|
319 |
*/
|
320 |
#customize-control-email_recipient,
|
321 |
+
#customize-control-email_bccs,
|
322 |
#customize-control-alert_email_subject,
|
323 |
#customize-control-email_mark_and_reply,
|
324 |
#customize-control-confirmation_email_from_name,
|
332 |
#customize-control-unique_id_prefix,
|
333 |
#customize-control-unique_id_suffix,
|
334 |
#customize-control-redirect_url,
|
335 |
+
#customize-control-redirect_blank,
|
336 |
#customize-control-optional_part_label,
|
337 |
#customize-control-html_id {
|
338 |
display: none;
|
339 |
}
|
340 |
|
341 |
#customize-control-receive_email_alerts.checked ~ #customize-control-email_recipient,
|
342 |
+
#customize-control-receive_email_alerts.checked ~ #customize-control-email_bccs,
|
343 |
#customize-control-receive_email_alerts.checked ~ #customize-control-alert_email_subject,
|
344 |
#customize-control-receive_email_alerts.checked ~ #customize-control-email_mark_and_reply,
|
345 |
#customize-control-send_confirmation_email.checked ~ #customize-control-confirmation_email_from_name,
|
353 |
#customize-control-unique_id.checked ~ #customize-control-unique_id_prefix,
|
354 |
#customize-control-unique_id.checked ~ #customize-control-unique_id_suffix,
|
355 |
#customize-control-redirect_on_complete.checked ~ #customize-control-redirect_url,
|
356 |
+
#customize-control-redirect_on_complete.checked ~ #customize-control-redirect_blank,
|
357 |
#customize-control-use_html_id.checked ~ #customize-control-html_id {
|
358 |
display: block;
|
359 |
}
|
inc/core/assets/css/layout.css
CHANGED
@@ -7,6 +7,7 @@
|
|
7 |
flex-flow: row wrap;
|
8 |
align-items: flex-start;
|
9 |
max-width: 100%;
|
|
|
10 |
padding: 25px 0;
|
11 |
}
|
12 |
|
@@ -46,7 +47,7 @@
|
|
46 |
|
47 |
h3.happyforms-form__title {
|
48 |
margin: 0;
|
49 |
-
padding: 0
|
50 |
}
|
51 |
|
52 |
.happyforms-form--hide-title h3.happyforms-form__title {
|
@@ -416,7 +417,7 @@ h3.happyforms-form__title {
|
|
416 |
}
|
417 |
|
418 |
.happyforms-part-option:last-of-type {
|
419 |
-
margin-bottom: 0;
|
420 |
}
|
421 |
|
422 |
.happyforms-part-option__description {
|
@@ -427,6 +428,21 @@ h3.happyforms-form__title {
|
|
427 |
margin-right: 20px;
|
428 |
}
|
429 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
.happyforms-part--choice.display-type--block .happyforms-part-option__description {
|
431 |
max-width: none;
|
432 |
}
|
@@ -648,7 +664,8 @@ h3.happyforms-form__title {
|
|
648 |
margin-bottom: 0;
|
649 |
}
|
650 |
|
651 |
-
.happyforms-part.display-type--block .checkmark
|
|
|
652 |
margin-right: 5px;
|
653 |
}
|
654 |
|
@@ -1904,6 +1921,7 @@ input[type=submit][disabled].happyforms-button--submit {
|
|
1904 |
min-height: 35px;
|
1905 |
color: #000;
|
1906 |
background-color: #fff;
|
|
|
1907 |
}
|
1908 |
|
1909 |
.happyforms-custom-select-dropdown li.happyforms-custom-select-dropdown__placeholder {
|
7 |
flex-flow: row wrap;
|
8 |
align-items: flex-start;
|
9 |
max-width: 100%;
|
10 |
+
margin: 0 -1%;
|
11 |
padding: 25px 0;
|
12 |
}
|
13 |
|
47 |
|
48 |
h3.happyforms-form__title {
|
49 |
margin: 0;
|
50 |
+
padding: 0;
|
51 |
}
|
52 |
|
53 |
.happyforms-form--hide-title h3.happyforms-form__title {
|
417 |
}
|
418 |
|
419 |
.happyforms-part-option:last-of-type {
|
420 |
+
margin-bottom: 0 !important;
|
421 |
}
|
422 |
|
423 |
.happyforms-part-option__description {
|
428 |
margin-right: 20px;
|
429 |
}
|
430 |
|
431 |
+
.happyforms-part--choice .happyforms-part-option--other .option-label .label {
|
432 |
+
margin-right: 0;
|
433 |
+
}
|
434 |
+
|
435 |
+
.happyforms-part--choice .happyforms-part-option--other .option-label .label:after {
|
436 |
+
content: ':';
|
437 |
+
}
|
438 |
+
|
439 |
+
.happyforms-part--choice .happyforms-part-option--other .option-label input[type=text] {
|
440 |
+
flex: 1 0;
|
441 |
+
padding-left: 0 !important;
|
442 |
+
padding-right: 0 !important;
|
443 |
+
padding-bottom: 0;
|
444 |
+
}
|
445 |
+
|
446 |
.happyforms-part--choice.display-type--block .happyforms-part-option__description {
|
447 |
max-width: none;
|
448 |
}
|
664 |
margin-bottom: 0;
|
665 |
}
|
666 |
|
667 |
+
.happyforms-part.display-type--block .checkmark,
|
668 |
+
.happyforms-part--legal .checkmark {
|
669 |
margin-right: 5px;
|
670 |
}
|
671 |
|
1921 |
min-height: 35px;
|
1922 |
color: #000;
|
1923 |
background-color: #fff;
|
1924 |
+
white-space: normal;
|
1925 |
}
|
1926 |
|
1927 |
.happyforms-custom-select-dropdown li.happyforms-custom-select-dropdown__placeholder {
|
inc/core/assets/js/customize.js
CHANGED
@@ -3,8 +3,10 @@
|
|
3 |
var happyForms;
|
4 |
var classes = {};
|
5 |
classes.models = {};
|
|
|
6 |
classes.collections = {};
|
7 |
classes.views = {};
|
|
|
8 |
classes.routers = {};
|
9 |
|
10 |
classes.models.Form = Backbone.Model.extend( {
|
@@ -1331,6 +1333,19 @@
|
|
1331 |
$input.val( max );
|
1332 |
this.model.set( attribute, max );
|
1333 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1334 |
}
|
1335 |
|
1336 |
} );
|
@@ -2154,4 +2169,16 @@
|
|
2154 |
} );
|
2155 |
} );
|
2156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2157 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
3 |
var happyForms;
|
4 |
var classes = {};
|
5 |
classes.models = {};
|
6 |
+
classes.models.parts = {};
|
7 |
classes.collections = {};
|
8 |
classes.views = {};
|
9 |
+
classes.views.parts = {};
|
10 |
classes.routers = {};
|
11 |
|
12 |
classes.models.Form = Backbone.Model.extend( {
|
1333 |
$input.val( max );
|
1334 |
this.model.set( attribute, max );
|
1335 |
}
|
1336 |
+
},
|
1337 |
+
|
1338 |
+
refreshPart: function() {
|
1339 |
+
var model = this.model;
|
1340 |
+
|
1341 |
+
this.model.fetchHtml( function( response ) {
|
1342 |
+
var data = {
|
1343 |
+
id: model.get( 'id' ),
|
1344 |
+
html: response,
|
1345 |
+
};
|
1346 |
+
|
1347 |
+
happyForms.previewSend( 'happyforms-form-part-refresh', data );
|
1348 |
+
} );
|
1349 |
}
|
1350 |
|
1351 |
} );
|
2169 |
} );
|
2170 |
} );
|
2171 |
|
2172 |
+
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
2173 |
+
BaseClass = happyForms.classes.models.parts[attrs.type];
|
2174 |
+
|
2175 |
+
return func( attrs, options, BaseClass );
|
2176 |
+
} );
|
2177 |
+
|
2178 |
+
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
2179 |
+
BaseClass = happyForms.classes.views.parts[options.type];
|
2180 |
+
|
2181 |
+
return func( options, BaseClass );
|
2182 |
+
} );
|
2183 |
+
|
2184 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/frontend.js
CHANGED
@@ -261,15 +261,17 @@
|
|
261 |
return false;
|
262 |
}
|
263 |
|
264 |
-
if ( response.data.
|
265 |
-
|
266 |
-
|
267 |
-
if ( ! $el.find('.happyforms-message-notice.error' ).length && response.data.redirect ) {
|
268 |
window.location.replace( response.data.redirect );
|
269 |
-
|
270 |
return false;
|
|
|
|
|
271 |
}
|
|
|
272 |
|
|
|
|
|
273 |
var $parts = $( '[data-happyforms-type]', this.$form );
|
274 |
|
275 |
$parts.each( function() {
|
261 |
return false;
|
262 |
}
|
263 |
|
264 |
+
if ( true === response.success && response.data.redirect ) {
|
265 |
+
if ( ! response.data.redirect_to_blank ) {
|
|
|
|
|
266 |
window.location.replace( response.data.redirect );
|
|
|
267 |
return false;
|
268 |
+
} else {
|
269 |
+
window.open( response.data.redirect, '_blank' );
|
270 |
}
|
271 |
+
}
|
272 |
|
273 |
+
if ( response.data.html ) {
|
274 |
+
var $el = $( response.data.html );
|
275 |
var $parts = $( '[data-happyforms-type]', this.$form );
|
276 |
|
277 |
$parts.each( function() {
|
inc/core/assets/js/parts/part-address.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-address-template',
|
15 |
|
16 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
@@ -91,20 +91,4 @@
|
|
91 |
}
|
92 |
} );
|
93 |
|
94 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
95 |
-
if ( 'address' === attrs.type ) {
|
96 |
-
BaseClass = AddressModel;
|
97 |
-
}
|
98 |
-
|
99 |
-
return func( attrs, options, BaseClass );
|
100 |
-
} );
|
101 |
-
|
102 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
103 |
-
if ( 'address' === options.type ) {
|
104 |
-
BaseClass = AddressView;
|
105 |
-
}
|
106 |
-
|
107 |
-
return func( options, BaseClass );
|
108 |
-
} );
|
109 |
-
|
110 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.address = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.address = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-address-template',
|
15 |
|
16 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
91 |
}
|
92 |
} );
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-checkbox.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -133,7 +133,7 @@
|
|
133 |
},
|
134 |
} );
|
135 |
|
136 |
-
|
137 |
template: '#customize-happyforms-checkbox-template',
|
138 |
|
139 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
@@ -441,20 +441,4 @@
|
|
441 |
}
|
442 |
} );
|
443 |
|
444 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
445 |
-
if ( 'checkbox' === attrs.type ) {
|
446 |
-
BaseClass = CheckboxModel;
|
447 |
-
}
|
448 |
-
|
449 |
-
return func( attrs, options, BaseClass );
|
450 |
-
} );
|
451 |
-
|
452 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
453 |
-
if ( 'checkbox' === options.type ) {
|
454 |
-
BaseClass = CheckboxView;
|
455 |
-
}
|
456 |
-
|
457 |
-
return func( options, BaseClass );
|
458 |
-
} );
|
459 |
-
|
460 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.checkbox = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
133 |
},
|
134 |
} );
|
135 |
|
136 |
+
happyForms.classes.views.parts.checkbox = happyForms.classes.views.Part.extend( {
|
137 |
template: '#customize-happyforms-checkbox-template',
|
138 |
|
139 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
441 |
}
|
442 |
} );
|
443 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-date.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-date-template',
|
15 |
|
16 |
initialize: function () {
|
@@ -185,20 +185,4 @@
|
|
185 |
},
|
186 |
} );
|
187 |
|
188 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
189 |
-
if ( 'date' === attrs.type ) {
|
190 |
-
BaseClass = DateModel;
|
191 |
-
}
|
192 |
-
|
193 |
-
return func( attrs, options, BaseClass );
|
194 |
-
} );
|
195 |
-
|
196 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
197 |
-
if ( 'date' === options.type ) {
|
198 |
-
BaseClass = DateView;
|
199 |
-
}
|
200 |
-
|
201 |
-
return func( options, BaseClass );
|
202 |
-
} );
|
203 |
-
|
204 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.date = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.date = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-date-template',
|
15 |
|
16 |
initialize: function () {
|
185 |
},
|
186 |
} );
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-email.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#customize-happyforms-email-template',
|
15 |
|
16 |
initialize: function() {
|
@@ -92,20 +92,4 @@
|
|
92 |
},
|
93 |
} );
|
94 |
|
95 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
96 |
-
if ( 'email' === attrs.type ) {
|
97 |
-
BaseClass = EmailModel;
|
98 |
-
}
|
99 |
-
|
100 |
-
return func( attrs, options, BaseClass );
|
101 |
-
} );
|
102 |
-
|
103 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
104 |
-
if ( 'email' === options.type ) {
|
105 |
-
BaseClass = EmailView;
|
106 |
-
}
|
107 |
-
|
108 |
-
return func( options, BaseClass );
|
109 |
-
} );
|
110 |
-
|
111 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.email = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.email = happyForms.classes.views.Part.extend( {
|
14 |
template: '#customize-happyforms-email-template',
|
15 |
|
16 |
initialize: function() {
|
92 |
},
|
93 |
} );
|
94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-legal.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
(function ($, _, Backbone, api, settings) {
|
2 |
|
3 |
-
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-legal-template',
|
15 |
editor: null,
|
16 |
|
@@ -95,20 +95,4 @@
|
|
95 |
},
|
96 |
} );
|
97 |
|
98 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function ( func, attrs, options, BaseClass ) {
|
99 |
-
if ( 'legal' === attrs.type ) {
|
100 |
-
BaseClass = LegalModel;
|
101 |
-
}
|
102 |
-
|
103 |
-
return func( attrs, options, BaseClass );
|
104 |
-
} );
|
105 |
-
|
106 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function ( func, options, BaseClass ) {
|
107 |
-
if ( 'legal' === options.type ) {
|
108 |
-
BaseClass = LegalView;
|
109 |
-
}
|
110 |
-
|
111 |
-
return func( options, BaseClass );
|
112 |
-
} );
|
113 |
-
|
114 |
} )( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
(function ($, _, Backbone, api, settings) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.legal = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.legal = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-legal-template',
|
15 |
editor: null,
|
16 |
|
95 |
},
|
96 |
} );
|
97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
} )( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-multi-line-text.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#customize-happyforms-multi-line-text-template',
|
15 |
|
16 |
initialize: function() {
|
@@ -72,20 +72,4 @@
|
|
72 |
},
|
73 |
} );
|
74 |
|
75 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
76 |
-
if ( 'multi_line_text' === attrs.type ) {
|
77 |
-
BaseClass = MultiLineTextModel;
|
78 |
-
}
|
79 |
-
|
80 |
-
return func( attrs, options, BaseClass );
|
81 |
-
} );
|
82 |
-
|
83 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
84 |
-
if ( 'multi_line_text' === options.type ) {
|
85 |
-
BaseClass = MultiLineTextView;
|
86 |
-
}
|
87 |
-
|
88 |
-
return func( options, BaseClass );
|
89 |
-
} );
|
90 |
-
|
91 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.multi_line_text = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.multi_line_text = happyForms.classes.views.Part.extend( {
|
14 |
template: '#customize-happyforms-multi-line-text-template',
|
15 |
|
16 |
initialize: function() {
|
72 |
},
|
73 |
} );
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-narrative.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#customize-happyforms-narrative-template',
|
15 |
|
16 |
ready: function() {
|
@@ -46,10 +46,6 @@
|
|
46 |
|
47 |
onEditorInit: function( editor ) {
|
48 |
var self = this;
|
49 |
-
var placeholderTemplate = '[]';
|
50 |
-
var placeholderRegex = /\[[^\]]*\]/gm;
|
51 |
-
var spanTemplate = '<span contenteditable="false">[]</span>';
|
52 |
-
var spanRegex = /<span[^<]+<\/span>/gm;
|
53 |
var refreshPreview = _.debounce( this.refreshPreview.bind( this ), 500 );
|
54 |
|
55 |
editor.on( 'keyup change', function() {
|
@@ -64,14 +60,6 @@
|
|
64 |
editor.insertContent( '[]' );
|
65 |
},
|
66 |
} );
|
67 |
-
|
68 |
-
editor.on( 'BeforeSetContent', function( e ) {
|
69 |
-
e.content = e.content.replace( placeholderRegex, spanTemplate );
|
70 |
-
} );
|
71 |
-
|
72 |
-
editor.on( 'GetContent', function ( e ) {
|
73 |
-
e.content = e.content.replace( spanRegex, placeholderTemplate );
|
74 |
-
} );
|
75 |
},
|
76 |
|
77 |
refreshPreview: function() {
|
@@ -95,20 +83,4 @@
|
|
95 |
},
|
96 |
} );
|
97 |
|
98 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
99 |
-
if ( 'narrative' === attrs.type ) {
|
100 |
-
BaseClass = NarrativeModel;
|
101 |
-
}
|
102 |
-
|
103 |
-
return func( attrs, options, BaseClass );
|
104 |
-
} );
|
105 |
-
|
106 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
107 |
-
if ( 'narrative' === options.type ) {
|
108 |
-
BaseClass = NarrativeView;
|
109 |
-
}
|
110 |
-
|
111 |
-
return func( options, BaseClass );
|
112 |
-
} );
|
113 |
-
|
114 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.narrative = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.narrative = happyForms.classes.views.Part.extend( {
|
14 |
template: '#customize-happyforms-narrative-template',
|
15 |
|
16 |
ready: function() {
|
46 |
|
47 |
onEditorInit: function( editor ) {
|
48 |
var self = this;
|
|
|
|
|
|
|
|
|
49 |
var refreshPreview = _.debounce( this.refreshPreview.bind( this ), 500 );
|
50 |
|
51 |
editor.on( 'keyup change', function() {
|
60 |
editor.insertContent( '[]' );
|
61 |
},
|
62 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
},
|
64 |
|
65 |
refreshPreview: function() {
|
83 |
},
|
84 |
} );
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-number.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-number-template',
|
15 |
|
16 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
@@ -164,20 +164,4 @@
|
|
164 |
}
|
165 |
} );
|
166 |
|
167 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
168 |
-
if ( 'number' === attrs.type ) {
|
169 |
-
BaseClass = NumberModel;
|
170 |
-
}
|
171 |
-
|
172 |
-
return func( attrs, options, BaseClass );
|
173 |
-
} );
|
174 |
-
|
175 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
176 |
-
if ( 'number' === options.type ) {
|
177 |
-
BaseClass = NumberView;
|
178 |
-
}
|
179 |
-
|
180 |
-
return func( options, BaseClass );
|
181 |
-
} );
|
182 |
-
|
183 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.number = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.number = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-number-template',
|
15 |
|
16 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
164 |
}
|
165 |
} );
|
166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-phone.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function ( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-phone-template',
|
15 |
|
16 |
events: _.extend({}, happyForms.classes.views.Part.prototype.events, {
|
@@ -141,20 +141,4 @@
|
|
141 |
},
|
142 |
} );
|
143 |
|
144 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function ( func, attrs, options, BaseClass ) {
|
145 |
-
if ( 'phone' === attrs.type ) {
|
146 |
-
BaseClass = PhoneModel;
|
147 |
-
}
|
148 |
-
|
149 |
-
return func( attrs, options, BaseClass );
|
150 |
-
} );
|
151 |
-
|
152 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function ( func, options, BaseClass ) {
|
153 |
-
if ( 'phone' === options.type ) {
|
154 |
-
BaseClass = PhoneView;
|
155 |
-
}
|
156 |
-
|
157 |
-
return func( options, BaseClass );
|
158 |
-
} );
|
159 |
-
|
160 |
} )( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function ( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.phone = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.phone = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-phone-template',
|
15 |
|
16 |
events: _.extend({}, happyForms.classes.views.Part.prototype.events, {
|
141 |
},
|
142 |
} );
|
143 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
} )( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-placeholder.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-placeholder-template',
|
15 |
editor: null,
|
16 |
|
@@ -95,20 +95,4 @@
|
|
95 |
},
|
96 |
} );
|
97 |
|
98 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
99 |
-
if ( 'placeholder' === attrs.type ) {
|
100 |
-
BaseClass = PlaceholderModel;
|
101 |
-
}
|
102 |
-
|
103 |
-
return func( attrs, options, BaseClass );
|
104 |
-
} );
|
105 |
-
|
106 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
107 |
-
if ( 'placeholder' === options.type ) {
|
108 |
-
BaseClass = PlaceholderView;
|
109 |
-
}
|
110 |
-
|
111 |
-
return func( options, BaseClass );
|
112 |
-
} );
|
113 |
-
|
114 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.placeholder = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.placeholder = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-placeholder-template',
|
15 |
editor: null,
|
16 |
|
95 |
},
|
96 |
} );
|
97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-radio.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -132,7 +132,7 @@
|
|
132 |
},
|
133 |
} );
|
134 |
|
135 |
-
|
136 |
template: '#customize-happyforms-radio-template',
|
137 |
|
138 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
@@ -423,20 +423,4 @@
|
|
423 |
},
|
424 |
} );
|
425 |
|
426 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
427 |
-
if ( 'radio' === attrs.type ) {
|
428 |
-
BaseClass = RadioModel;
|
429 |
-
}
|
430 |
-
|
431 |
-
return func( attrs, options, BaseClass );
|
432 |
-
} );
|
433 |
-
|
434 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
435 |
-
if ( 'radio' === options.type ) {
|
436 |
-
BaseClass = RadioView;
|
437 |
-
}
|
438 |
-
|
439 |
-
return func( options, BaseClass );
|
440 |
-
} );
|
441 |
-
|
442 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.radio = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
132 |
},
|
133 |
} );
|
134 |
|
135 |
+
happyForms.classes.views.parts.radio = happyForms.classes.views.Part.extend( {
|
136 |
template: '#customize-happyforms-radio-template',
|
137 |
|
138 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
423 |
},
|
424 |
} );
|
425 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-rating.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function ( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-rating-template',
|
15 |
|
16 |
initialize: function() {
|
@@ -114,20 +114,4 @@
|
|
114 |
}
|
115 |
} );
|
116 |
|
117 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function ( func, attrs, options, BaseClass ) {
|
118 |
-
if ( 'rating' === attrs.type ) {
|
119 |
-
BaseClass = RatingModel;
|
120 |
-
}
|
121 |
-
|
122 |
-
return func( attrs, options, BaseClass );
|
123 |
-
} );
|
124 |
-
|
125 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function ( func, options, BaseClass ) {
|
126 |
-
if ( 'rating' === options.type ) {
|
127 |
-
BaseClass = RatingView;
|
128 |
-
}
|
129 |
-
|
130 |
-
return func( options, BaseClass );
|
131 |
-
} );
|
132 |
-
|
133 |
} )( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function ( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.rating = happyForms.classes.models.Part.extend({
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.rating = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-rating-template',
|
15 |
|
16 |
initialize: function() {
|
114 |
}
|
115 |
} );
|
116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
} )( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-rich-text.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#customize-happyforms-rich-text-template',
|
15 |
|
16 |
initialize: function() {
|
@@ -72,20 +72,4 @@
|
|
72 |
},
|
73 |
} );
|
74 |
|
75 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
76 |
-
if ( 'rich_text' === attrs.type ) {
|
77 |
-
BaseClass = RichTextModel;
|
78 |
-
}
|
79 |
-
|
80 |
-
return func( attrs, options, BaseClass );
|
81 |
-
} );
|
82 |
-
|
83 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
84 |
-
if ( 'rich_text' === options.type ) {
|
85 |
-
BaseClass = RichTextView;
|
86 |
-
}
|
87 |
-
|
88 |
-
return func( options, BaseClass );
|
89 |
-
} );
|
90 |
-
|
91 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.rich_text = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.rich_text = happyForms.classes.views.Part.extend( {
|
14 |
template: '#customize-happyforms-rich-text-template',
|
15 |
|
16 |
initialize: function() {
|
72 |
},
|
73 |
} );
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-scale.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function ( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-scale-template',
|
15 |
|
16 |
initialize: function() {
|
@@ -172,22 +172,6 @@
|
|
172 |
},
|
173 |
} );
|
174 |
|
175 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
176 |
-
if ( 'scale' === attrs.type ) {
|
177 |
-
BaseClass = ScaleModel;
|
178 |
-
}
|
179 |
-
|
180 |
-
return func( attrs, options, BaseClass );
|
181 |
-
} );
|
182 |
-
|
183 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function ( func, options, BaseClass ) {
|
184 |
-
if ( 'scale' === options.type ) {
|
185 |
-
BaseClass = ScaleView;
|
186 |
-
}
|
187 |
-
|
188 |
-
return func( options, BaseClass );
|
189 |
-
} );
|
190 |
-
|
191 |
api.bind( 'ready', function () {
|
192 |
api.previewer.bind( 'happyforms-part-render', function ( $el ) {
|
193 |
if ( ! $el.is( '.happyforms-part--scale' ) ) {
|
1 |
( function ( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.scale = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.scale = happyForms.classes.views.Part.extend( {
|
14 |
template: '#happyforms-customize-scale-template',
|
15 |
|
16 |
initialize: function() {
|
172 |
},
|
173 |
} );
|
174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
api.bind( 'ready', function () {
|
176 |
api.previewer.bind( 'happyforms-part-render', function ( $el ) {
|
177 |
if ( ! $el.is( '.happyforms-part--scale' ) ) {
|
inc/core/assets/js/parts/part-select.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -120,7 +120,7 @@
|
|
120 |
},
|
121 |
} );
|
122 |
|
123 |
-
|
124 |
template: '#customize-happyforms-select-template',
|
125 |
|
126 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
@@ -448,20 +448,4 @@
|
|
448 |
}
|
449 |
} );
|
450 |
|
451 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
452 |
-
if ( 'select' === attrs.type ) {
|
453 |
-
BaseClass = SelectModel;
|
454 |
-
}
|
455 |
-
|
456 |
-
return func( attrs, options, BaseClass );
|
457 |
-
} );
|
458 |
-
|
459 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
460 |
-
if ( 'select' === options.type ) {
|
461 |
-
BaseClass = SelectView;
|
462 |
-
}
|
463 |
-
|
464 |
-
return func( options, BaseClass );
|
465 |
-
} );
|
466 |
-
|
467 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.select = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
120 |
},
|
121 |
} );
|
122 |
|
123 |
+
happyForms.classes.views.parts.select = happyForms.classes.views.Part.extend( {
|
124 |
template: '#customize-happyforms-select-template',
|
125 |
|
126 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
448 |
}
|
449 |
} );
|
450 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-single-line-text.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#customize-happyforms-single-line-text-template',
|
15 |
|
16 |
initialize: function() {
|
@@ -34,20 +34,4 @@
|
|
34 |
}
|
35 |
} );
|
36 |
|
37 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
38 |
-
if ( 'single_line_text' === attrs.type ) {
|
39 |
-
BaseClass = SingleLineTextModel;
|
40 |
-
}
|
41 |
-
|
42 |
-
return func( attrs, options, BaseClass );
|
43 |
-
} );
|
44 |
-
|
45 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
46 |
-
if ( 'single_line_text' === options.type ) {
|
47 |
-
BaseClass = SingleLineTextView;
|
48 |
-
}
|
49 |
-
|
50 |
-
return func( options, BaseClass );
|
51 |
-
} );
|
52 |
-
|
53 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.single_line_text = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.single_line_text = happyForms.classes.views.Part.extend( {
|
14 |
template: '#customize-happyforms-single-line-text-template',
|
15 |
|
16 |
initialize: function() {
|
34 |
}
|
35 |
} );
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/assets/js/parts/part-table.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings, partSettings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -168,7 +168,7 @@
|
|
168 |
},
|
169 |
} );
|
170 |
|
171 |
-
|
172 |
template: '#customize-happyforms-table-template',
|
173 |
|
174 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
@@ -644,20 +644,4 @@
|
|
644 |
},
|
645 |
} );
|
646 |
|
647 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
648 |
-
if ( 'table' === attrs.type ) {
|
649 |
-
BaseClass = TableModel;
|
650 |
-
}
|
651 |
-
|
652 |
-
return func( attrs, options, BaseClass );
|
653 |
-
} );
|
654 |
-
|
655 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
656 |
-
if ( 'table' === options.type ) {
|
657 |
-
BaseClass = TableView;
|
658 |
-
}
|
659 |
-
|
660 |
-
return func( options, BaseClass );
|
661 |
-
} );
|
662 |
-
|
663 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings, _happyFormsTableSettings );
|
1 |
( function( $, _, Backbone, api, settings, partSettings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.table = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
168 |
},
|
169 |
} );
|
170 |
|
171 |
+
happyForms.classes.views.parts.table = happyForms.classes.views.Part.extend( {
|
172 |
template: '#customize-happyforms-table-template',
|
173 |
|
174 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
644 |
},
|
645 |
} );
|
646 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
647 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings, _happyFormsTableSettings );
|
inc/core/assets/js/parts/part-title.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
(function ($, _, Backbone, api, settings) {
|
2 |
|
3 |
-
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,7 +10,7 @@
|
|
10 |
},
|
11 |
});
|
12 |
|
13 |
-
|
14 |
template: '#happyforms-customize-title-template',
|
15 |
|
16 |
initialize: function () {
|
@@ -31,20 +31,4 @@
|
|
31 |
}
|
32 |
});
|
33 |
|
34 |
-
happyForms.factory.model = _.wrap(happyForms.factory.model, function (func, attrs, options, BaseClass) {
|
35 |
-
if ('title' === attrs.type) {
|
36 |
-
BaseClass = TitleModel;
|
37 |
-
}
|
38 |
-
|
39 |
-
return func(attrs, options, BaseClass);
|
40 |
-
});
|
41 |
-
|
42 |
-
happyForms.factory.view = _.wrap(happyForms.factory.view, function (func, options, BaseClass) {
|
43 |
-
if ('title' === options.type) {
|
44 |
-
BaseClass = TitleView;
|
45 |
-
}
|
46 |
-
|
47 |
-
return func(options, BaseClass);
|
48 |
-
});
|
49 |
-
|
50 |
})(jQuery, _, Backbone, wp.customize, _happyFormsSettings);
|
1 |
(function ($, _, Backbone, api, settings) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.title = happyForms.classes.models.Part.extend({
|
4 |
defaults: function () {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
});
|
12 |
|
13 |
+
happyForms.classes.views.parts.title = happyForms.classes.views.Part.extend({
|
14 |
template: '#happyforms-customize-title-template',
|
15 |
|
16 |
initialize: function () {
|
31 |
}
|
32 |
});
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
})(jQuery, _, Backbone, wp.customize, _happyFormsSettings);
|
inc/core/assets/js/parts/part-website-url.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
-
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
@@ -10,24 +10,8 @@
|
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
-
|
14 |
template: '#customize-happyforms-website-url-template'
|
15 |
} );
|
16 |
|
17 |
-
happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
|
18 |
-
if ( 'website_url' === attrs.type ) {
|
19 |
-
BaseClass = WebsiteUrlModel;
|
20 |
-
}
|
21 |
-
|
22 |
-
return func( attrs, options, BaseClass );
|
23 |
-
} );
|
24 |
-
|
25 |
-
happyForms.factory.view = _.wrap( happyForms.factory.view, function( func, options, BaseClass ) {
|
26 |
-
if ( 'website_url' === options.type ) {
|
27 |
-
BaseClass = WebsiteUrlView;
|
28 |
-
}
|
29 |
-
|
30 |
-
return func( options, BaseClass );
|
31 |
-
} );
|
32 |
-
|
33 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
1 |
( function( $, _, Backbone, api, settings ) {
|
2 |
|
3 |
+
happyForms.classes.models.parts.website_url = happyForms.classes.models.Part.extend( {
|
4 |
defaults: function() {
|
5 |
return _.extend(
|
6 |
{},
|
10 |
},
|
11 |
} );
|
12 |
|
13 |
+
happyForms.classes.views.parts.website_url = happyForms.classes.views.Part.extend( {
|
14 |
template: '#customize-happyforms-website-url-template'
|
15 |
} );
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
inc/core/classes/class-form-admin.php
CHANGED
@@ -254,6 +254,9 @@ class HappyForms_Form_Admin {
|
|
254 |
$columns['shortcode'] = __( 'Shortcode', 'happyforms' );
|
255 |
$columns['author'] = __( 'Author', 'happyforms' );
|
256 |
$columns['messages'] = '<span class="dashicons dashicons-admin-comments"></span>';
|
|
|
|
|
|
|
257 |
$columns = $columns + array( 'date' => $date_column );
|
258 |
|
259 |
/**
|
254 |
$columns['shortcode'] = __( 'Shortcode', 'happyforms' );
|
255 |
$columns['author'] = __( 'Author', 'happyforms' );
|
256 |
$columns['messages'] = '<span class="dashicons dashicons-admin-comments"></span>';
|
257 |
+
$columns['messages'] .= '<span class="happyforms-responses-column-label">';
|
258 |
+
$columns['messages'] .= __( 'Responses', 'happyforms' );
|
259 |
+
$columns['messages'] .= '</span>';
|
260 |
$columns = $columns + array( 'date' => $date_column );
|
261 |
|
262 |
/**
|
inc/core/classes/class-form-controller.php
CHANGED
@@ -505,7 +505,9 @@ class HappyForms_Form_Controller {
|
|
505 |
$form_array['parts'] = array();
|
506 |
|
507 |
foreach ( $form_array['layout'] as $p => $part_id ) {
|
508 |
-
$
|
|
|
|
|
509 |
unset( $form_array[$part_id] );
|
510 |
}
|
511 |
|
@@ -590,6 +592,8 @@ class HappyForms_Form_Controller {
|
|
590 |
|
591 |
$result = $this->to_array( get_post( $result ) );
|
592 |
|
|
|
|
|
593 |
return $result;
|
594 |
}
|
595 |
|
@@ -656,18 +660,7 @@ class HappyForms_Form_Controller {
|
|
656 |
return;
|
657 |
}
|
658 |
|
659 |
-
|
660 |
-
'post_type' => happyforms_get_message_controller()->post_type,
|
661 |
-
'post_status' => 'any',
|
662 |
-
'meta_key' => 'form_id',
|
663 |
-
'meta_value' => $post_id,
|
664 |
-
) );
|
665 |
-
|
666 |
-
foreach ( $messages as $message ) {
|
667 |
-
wp_delete_post( $message->ID, true );
|
668 |
-
}
|
669 |
-
|
670 |
-
happyforms_get_message_controller()->update_badge_transient();
|
671 |
}
|
672 |
|
673 |
/**
|
505 |
$form_array['parts'] = array();
|
506 |
|
507 |
foreach ( $form_array['layout'] as $p => $part_id ) {
|
508 |
+
$part = $form_array[$part_id];
|
509 |
+
$part_class = happyforms_get_part_library()->get_part( $part['type'] );
|
510 |
+
$form_array['parts'][] = wp_parse_args( $part, $part_class->get_customize_defaults() );
|
511 |
unset( $form_array[$part_id] );
|
512 |
}
|
513 |
|
592 |
|
593 |
$result = $this->to_array( get_post( $result ) );
|
594 |
|
595 |
+
do_action( 'happyforms_form_updated', $result );
|
596 |
+
|
597 |
return $result;
|
598 |
}
|
599 |
|
660 |
return;
|
661 |
}
|
662 |
|
663 |
+
do_action( 'happyforms_form_deleted', $post_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
}
|
665 |
|
666 |
/**
|
inc/core/classes/class-form-part-library.php
CHANGED
@@ -85,6 +85,14 @@ class HappyForms_Form_Part_Library {
|
|
85 |
}
|
86 |
}
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
/**
|
89 |
* Get all form parts.
|
90 |
*
|
85 |
}
|
86 |
}
|
87 |
|
88 |
+
public function deregister_part( $part ) {
|
89 |
+
$key = $part instanceof HappyForms_Form_Part ? $this->hash_object( $part ) : $part;
|
90 |
+
|
91 |
+
if ( isset( $this->parts[$key] ) ) {
|
92 |
+
unset( $this->parts[$key] );
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
/**
|
97 |
* Get all form parts.
|
98 |
*
|
inc/core/classes/class-form-setup.php
CHANGED
@@ -70,6 +70,10 @@ class HappyForms_Form_Setup {
|
|
70 |
'default' => ( $current_user->user_email ) ? $current_user->user_email : '',
|
71 |
'sanitize' => 'happyforms_sanitize_emails',
|
72 |
),
|
|
|
|
|
|
|
|
|
73 |
'email_mark_and_reply' => array(
|
74 |
'default' => 0,
|
75 |
'sanitize' => 'happyforms_sanitize_checkbox',
|
@@ -102,6 +106,10 @@ class HappyForms_Form_Setup {
|
|
102 |
'default' => '',
|
103 |
'sanitize' => 'sanitize_text_field',
|
104 |
),
|
|
|
|
|
|
|
|
|
105 |
'spam_prevention' => array(
|
106 |
'default' => 1,
|
107 |
'sanitize' => 'happyforms_sanitize_checkbox',
|
@@ -202,6 +210,12 @@ class HappyForms_Form_Setup {
|
|
202 |
'tooltip' => __( 'Add your email address here to receive a confirmation email for each form response. You can add multiple email addresses by separating each address with a comma.', 'happyforms' ),
|
203 |
'field' => 'email_recipient',
|
204 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
400 => array(
|
206 |
'type' => 'text',
|
207 |
'label' => __( 'Email subject', 'happyforms' ),
|
@@ -274,6 +288,11 @@ class HappyForms_Form_Setup {
|
|
274 |
'label' => __( 'On complete redirect link', 'happyforms' ),
|
275 |
'field' => 'redirect_url',
|
276 |
),
|
|
|
|
|
|
|
|
|
|
|
277 |
1400 => array(
|
278 |
'type' => 'checkbox',
|
279 |
'label' => __( 'Spam prevention', 'happyforms' ),
|
70 |
'default' => ( $current_user->user_email ) ? $current_user->user_email : '',
|
71 |
'sanitize' => 'happyforms_sanitize_emails',
|
72 |
),
|
73 |
+
'email_bccs' => array(
|
74 |
+
'default' => '',
|
75 |
+
'sanitize' => 'happyforms_sanitize_emails',
|
76 |
+
),
|
77 |
'email_mark_and_reply' => array(
|
78 |
'default' => 0,
|
79 |
'sanitize' => 'happyforms_sanitize_checkbox',
|
106 |
'default' => '',
|
107 |
'sanitize' => 'sanitize_text_field',
|
108 |
),
|
109 |
+
'redirect_blank' => array(
|
110 |
+
'default' => 0,
|
111 |
+
'sanitize' => 'happyforms_sanitize_checkbox',
|
112 |
+
),
|
113 |
'spam_prevention' => array(
|
114 |
'default' => 1,
|
115 |
'sanitize' => 'happyforms_sanitize_checkbox',
|
210 |
'tooltip' => __( 'Add your email address here to receive a confirmation email for each form response. You can add multiple email addresses by separating each address with a comma.', 'happyforms' ),
|
211 |
'field' => 'email_recipient',
|
212 |
),
|
213 |
+
310 => array(
|
214 |
+
'type' => 'text',
|
215 |
+
'label' => __( 'Email Bcc address', 'happyforms' ),
|
216 |
+
'tooltip' => __( 'Add your Bcc email address here to receive a confirmation email for each form response without appearing in the received message header. You can add multiple email addresses by separating each address with a comma.', 'happyforms' ),
|
217 |
+
'field' => 'email_bccs',
|
218 |
+
),
|
219 |
400 => array(
|
220 |
'type' => 'text',
|
221 |
'label' => __( 'Email subject', 'happyforms' ),
|
288 |
'label' => __( 'On complete redirect link', 'happyforms' ),
|
289 |
'field' => 'redirect_url',
|
290 |
),
|
291 |
+
1302 => array(
|
292 |
+
'type' => 'checkbox',
|
293 |
+
'label' => __( 'Open redirect link in new tab', 'happyforms' ),
|
294 |
+
'field' => 'redirect_blank',
|
295 |
+
),
|
296 |
1400 => array(
|
297 |
'type' => 'checkbox',
|
298 |
'label' => __( 'Spam prevention', 'happyforms' ),
|
inc/core/classes/class-message-admin.php
CHANGED
@@ -345,12 +345,12 @@ class HappyForms_Message_Admin {
|
|
345 |
?>
|
346 |
<fieldset style="display: block;">
|
347 |
<legend><?php _e( 'Pagination', 'happyforms' ); ?></legend>
|
348 |
-
<label for=""><?php _e( 'Number of
|
349 |
<input type="number" min="1" max="99" maxlength="2" name="edit_<?php echo esc_attr( $post_type ); ?>_per_page" value="<?php echo esc_attr( $this->row_count ); ?>">
|
350 |
</fieldset>
|
351 |
<fieldset style="display: block;">
|
352 |
<legend><?php _e( 'Fields', 'happyforms' ); ?></legend>
|
353 |
-
<label for=""><?php _e( 'Number of
|
354 |
<input type="number" min="1" max="99" maxlength="2" name="<?php echo esc_attr( $this->column_count_option ); ?>" value="<?php echo esc_attr( $this->column_count ); ?>">
|
355 |
<input type="hidden" name="wp_screen_options[option]" value="<?php echo esc_attr( $this->column_count_option ); ?>">
|
356 |
<input type="hidden" name="wp_screen_options[value]" value="1">
|
@@ -637,7 +637,7 @@ class HappyForms_Message_Admin {
|
|
637 |
$actions = array(
|
638 |
'mark_read' => __( 'Mark read', 'happyforms' ),
|
639 |
'mark_unread' => __( 'Mark unread', 'happyforms' ),
|
640 |
-
'
|
641 |
);
|
642 |
|
643 |
if ( $this->current_form ) {
|
@@ -675,10 +675,11 @@ class HappyForms_Message_Admin {
|
|
675 |
}
|
676 |
happyforms_get_message_controller()->update_badge_transient();
|
677 |
break;
|
678 |
-
case '
|
679 |
foreach ( $ids as $id ) {
|
680 |
wp_delete_post( $id );
|
681 |
}
|
|
|
682 |
break;
|
683 |
case 'export_csv':
|
684 |
$this->export_csv( $ids );
|
345 |
?>
|
346 |
<fieldset style="display: block;">
|
347 |
<legend><?php _e( 'Pagination', 'happyforms' ); ?></legend>
|
348 |
+
<label for=""><?php _e( 'Number of items per page:', 'happyforms' ); ?></label>
|
349 |
<input type="number" min="1" max="99" maxlength="2" name="edit_<?php echo esc_attr( $post_type ); ?>_per_page" value="<?php echo esc_attr( $this->row_count ); ?>">
|
350 |
</fieldset>
|
351 |
<fieldset style="display: block;">
|
352 |
<legend><?php _e( 'Fields', 'happyforms' ); ?></legend>
|
353 |
+
<label for=""><?php _e( 'Number of columns to show:', 'happyforms' ); ?></label>
|
354 |
<input type="number" min="1" max="99" maxlength="2" name="<?php echo esc_attr( $this->column_count_option ); ?>" value="<?php echo esc_attr( $this->column_count ); ?>">
|
355 |
<input type="hidden" name="wp_screen_options[option]" value="<?php echo esc_attr( $this->column_count_option ); ?>">
|
356 |
<input type="hidden" name="wp_screen_options[value]" value="1">
|
637 |
$actions = array(
|
638 |
'mark_read' => __( 'Mark read', 'happyforms' ),
|
639 |
'mark_unread' => __( 'Mark unread', 'happyforms' ),
|
640 |
+
'trash' => __( 'Trash', 'happyforms' ),
|
641 |
);
|
642 |
|
643 |
if ( $this->current_form ) {
|
675 |
}
|
676 |
happyforms_get_message_controller()->update_badge_transient();
|
677 |
break;
|
678 |
+
case 'trash':
|
679 |
foreach ( $ids as $id ) {
|
680 |
wp_delete_post( $id );
|
681 |
}
|
682 |
+
happyforms_get_message_controller()->update_badge_transient();
|
683 |
break;
|
684 |
case 'export_csv':
|
685 |
$this->export_csv( $ids );
|
inc/core/classes/class-message-controller.php
CHANGED
@@ -135,6 +135,8 @@ class HappyForms_Message_Controller {
|
|
135 |
add_action( 'parse_request', array( $this, 'admin_post' ) );
|
136 |
add_action( 'admin_init', array( $this, 'admin_post' ) );
|
137 |
add_action( 'delete_post', array( $this, 'delete_post' ) );
|
|
|
|
|
138 |
|
139 |
// Core multi-step hooks
|
140 |
add_action( 'happyforms_step', array( $this, 'default_submission_step' ) );
|
@@ -354,8 +356,11 @@ class HappyForms_Message_Controller {
|
|
354 |
// Update the unread badge
|
355 |
$this->update_badge_transient();
|
356 |
|
357 |
-
if (
|
|
|
|
|
358 |
$response['redirect'] = $form['redirect_url'];
|
|
|
359 |
}
|
360 |
|
361 |
$message = $this->get( $message_id );
|
@@ -495,6 +500,16 @@ class HappyForms_Message_Controller {
|
|
495 |
$this->update_badge_transient();
|
496 |
}
|
497 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
498 |
/**
|
499 |
* Verify a message nonce.
|
500 |
*
|
@@ -576,6 +591,7 @@ class HappyForms_Message_Controller {
|
|
576 |
if ( ! is_wp_error( $validated_value ) ) {
|
577 |
return $validated_value;
|
578 |
} else {
|
|
|
579 |
$session->add_error( $part_name, $validated_value->get_error_message() );
|
580 |
}
|
581 |
}
|
@@ -814,6 +830,21 @@ class HappyForms_Message_Controller {
|
|
814 |
return $message_array;
|
815 |
}
|
816 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
817 |
/**
|
818 |
* Send a confirmation email to the site owner.
|
819 |
*
|
@@ -840,42 +871,28 @@ class HappyForms_Message_Controller {
|
|
840 |
$email_message->set_ccs( array_slice( $to, 1 ) );
|
841 |
}
|
842 |
|
843 |
-
$
|
844 |
|
845 |
-
|
846 |
-
|
|
|
847 |
|
848 |
-
|
849 |
-
$visible = apply_filters( 'happyforms_email_part_visible', true, $part_data, $form, $message );
|
850 |
|
851 |
-
|
|
|
852 |
continue;
|
853 |
}
|
854 |
|
855 |
$part_id = $part_data['id'];
|
856 |
$label = happyforms_get_email_part_label( $message, $part_data, $form );
|
857 |
$value = happyforms_get_email_part_value( $message, $part_data, $form );
|
858 |
-
$required = happyforms_is_truthy( $part_data['required'] );
|
859 |
-
|
860 |
-
if ( false === $required && empty( $value ) ) {
|
861 |
-
continue;
|
862 |
-
}
|
863 |
|
864 |
if ( isset( $part_data['use_as_subject'] ) && 1 === $part_data['use_as_subject'] ) {
|
865 |
$email_message->set_subject( $value );
|
866 |
-
} else {
|
867 |
-
$content_lines[] = "<b>{$label}</b><br>{$value}";
|
868 |
}
|
869 |
}
|
870 |
|
871 |
-
// Append the tracking number for this message,
|
872 |
-
// if present.
|
873 |
-
if ( intval( $form['unique_id'] ) ) {
|
874 |
-
$label = __( 'Tracking number', 'happyforms' );
|
875 |
-
$tracking_id = $message['tracking_id'];
|
876 |
-
$content_lines[] = "<b>{$label}</b><br>{$tracking_id}";
|
877 |
-
}
|
878 |
-
|
879 |
// Add a Reply To header and a reply-and-mark-as-read link
|
880 |
// if the form includes an email part
|
881 |
$email_part = happyforms_get_form_controller()->get_first_part_by_type( $form, 'email' );
|
@@ -884,18 +901,13 @@ class HappyForms_Message_Controller {
|
|
884 |
$part_id = $email_part['id'];
|
885 |
$reply_to = happyforms_get_message_part_value( $message['parts'][$part_id], $email_part );
|
886 |
$email_message->set_reply_to( $reply_to );
|
887 |
-
|
888 |
-
// Reply and mark as read link
|
889 |
-
if ( happyforms_get_form_property( $form, 'email_mark_and_reply' ) ) {
|
890 |
-
$content_lines[] = sprintf(
|
891 |
-
'<a href="%s">%s</a>',
|
892 |
-
happyforms_get_reply_and_mark_link( $message['ID'] ),
|
893 |
-
__( 'Reply to this message and mark it as read', 'happyforms' )
|
894 |
-
);
|
895 |
-
}
|
896 |
}
|
897 |
|
898 |
-
|
|
|
|
|
|
|
|
|
899 |
$email_message->set_content( $content );
|
900 |
$email_message = apply_filters( 'happyforms_email_alert', $email_message );
|
901 |
$email_message->send();
|
@@ -935,13 +947,10 @@ class HappyForms_Message_Controller {
|
|
935 |
$to = happyforms_get_message_part_value( $message['parts'][$part_id], $email_part );
|
936 |
$email_message->set_to( $to );
|
937 |
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
$tracking_id = $message['tracking_id'];
|
943 |
-
$content .= "<br><br>{$label}: {$tracking_id}";
|
944 |
-
}
|
945 |
|
946 |
$email_message->set_content( $content );
|
947 |
$email_message = apply_filters( 'happyforms_email_confirmation', $email_message );
|
135 |
add_action( 'parse_request', array( $this, 'admin_post' ) );
|
136 |
add_action( 'admin_init', array( $this, 'admin_post' ) );
|
137 |
add_action( 'delete_post', array( $this, 'delete_post' ) );
|
138 |
+
add_action( 'happyforms_form_deleted', array( $this, 'form_deleted' ) );
|
139 |
+
add_filter( 'happyforms_email_part_visible', array( $this, 'email_part_visible' ), 10, 4 );
|
140 |
|
141 |
// Core multi-step hooks
|
142 |
add_action( 'happyforms_step', array( $this, 'default_submission_step' ) );
|
356 |
// Update the unread badge
|
357 |
$this->update_badge_transient();
|
358 |
|
359 |
+
if ( happyforms_get_form_property( $form, 'redirect_on_complete' ) &&
|
360 |
+
! empty( happyforms_get_form_property( $form, 'redirect_url' ) ) ) {
|
361 |
+
|
362 |
$response['redirect'] = $form['redirect_url'];
|
363 |
+
$response['redirect_to_blank'] = intval( happyforms_get_form_property( $form, 'redirect_blank' ) );
|
364 |
}
|
365 |
|
366 |
$message = $this->get( $message_id );
|
500 |
$this->update_badge_transient();
|
501 |
}
|
502 |
|
503 |
+
public function form_deleted( $form_id ) {
|
504 |
+
$responses = $this->get_by_form( $form_id );
|
505 |
+
|
506 |
+
foreach ( $responses as $response ) {
|
507 |
+
wp_delete_post( $response['ID'], true );
|
508 |
+
}
|
509 |
+
|
510 |
+
$this->update_badge_transient();
|
511 |
+
}
|
512 |
+
|
513 |
/**
|
514 |
* Verify a message nonce.
|
515 |
*
|
591 |
if ( ! is_wp_error( $validated_value ) ) {
|
592 |
return $validated_value;
|
593 |
} else {
|
594 |
+
do_action( 'happyforms_validation_error', $form, $part );
|
595 |
$session->add_error( $part_name, $validated_value->get_error_message() );
|
596 |
}
|
597 |
}
|
830 |
return $message_array;
|
831 |
}
|
832 |
|
833 |
+
public function email_part_visible( $visible, $part, $form, $response ) {
|
834 |
+
$required = happyforms_is_truthy( $part['required'] );
|
835 |
+
$value = happyforms_get_email_part_value( $response, $part, $form );
|
836 |
+
|
837 |
+
if ( false === $required && empty( $value ) ) {
|
838 |
+
$visible = false;
|
839 |
+
}
|
840 |
+
|
841 |
+
if ( isset( $part['use_as_subject'] ) && $part['use_as_subject'] ) {
|
842 |
+
$visible = false;
|
843 |
+
}
|
844 |
+
|
845 |
+
return $visible;
|
846 |
+
}
|
847 |
+
|
848 |
/**
|
849 |
* Send a confirmation email to the site owner.
|
850 |
*
|
871 |
$email_message->set_ccs( array_slice( $to, 1 ) );
|
872 |
}
|
873 |
|
874 |
+
$bccs = explode( ',', $form['email_bccs'] );
|
875 |
|
876 |
+
if ( count( $bccs ) > 0 ) {
|
877 |
+
$email_message->set_bccs( $bccs );
|
878 |
+
}
|
879 |
|
880 |
+
$email_message->set_subject( $form['alert_email_subject'] );
|
|
|
881 |
|
882 |
+
foreach ( $form['parts'] as $part_data ) {
|
883 |
+
if ( ! happyforms_email_is_part_visible( $part_data, $form, $message ) ) {
|
884 |
continue;
|
885 |
}
|
886 |
|
887 |
$part_id = $part_data['id'];
|
888 |
$label = happyforms_get_email_part_label( $message, $part_data, $form );
|
889 |
$value = happyforms_get_email_part_value( $message, $part_data, $form );
|
|
|
|
|
|
|
|
|
|
|
890 |
|
891 |
if ( isset( $part_data['use_as_subject'] ) && 1 === $part_data['use_as_subject'] ) {
|
892 |
$email_message->set_subject( $value );
|
|
|
|
|
893 |
}
|
894 |
}
|
895 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
896 |
// Add a Reply To header and a reply-and-mark-as-read link
|
897 |
// if the form includes an email part
|
898 |
$email_part = happyforms_get_form_controller()->get_first_part_by_type( $form, 'email' );
|
901 |
$part_id = $email_part['id'];
|
902 |
$reply_to = happyforms_get_message_part_value( $message['parts'][$part_id], $email_part );
|
903 |
$email_message->set_reply_to( $reply_to );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
904 |
}
|
905 |
|
906 |
+
ob_start();
|
907 |
+
$response = $message;
|
908 |
+
require_once( happyforms_owner_email_template_path() );
|
909 |
+
$content = ob_get_clean();
|
910 |
+
|
911 |
$email_message->set_content( $content );
|
912 |
$email_message = apply_filters( 'happyforms_email_alert', $email_message );
|
913 |
$email_message->send();
|
947 |
$to = happyforms_get_message_part_value( $message['parts'][$part_id], $email_part );
|
948 |
$email_message->set_to( $to );
|
949 |
|
950 |
+
ob_start();
|
951 |
+
$response = $message;
|
952 |
+
require_once( happyforms_user_email_template_path() );
|
953 |
+
$content = ob_get_clean();
|
|
|
|
|
|
|
954 |
|
955 |
$email_message->set_content( $content );
|
956 |
$email_message = apply_filters( 'happyforms_email_confirmation', $email_message );
|
inc/core/classes/class-migrations.php
CHANGED
@@ -34,7 +34,12 @@ class HappyForms_Migrations {
|
|
34 |
}
|
35 |
|
36 |
public function hook() {
|
|
|
|
|
|
|
|
|
37 |
$this->add_migration( '1.0', array( $this, 'migrate_1_0' ) );
|
|
|
38 |
|
39 |
$this->migrate();
|
40 |
}
|
@@ -154,6 +159,21 @@ class HappyForms_Migrations {
|
|
154 |
$wpdb->query( $sql );
|
155 |
}
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
}
|
158 |
|
159 |
if ( ! function_exists( 'happyforms_get_migrations' ) ):
|
34 |
}
|
35 |
|
36 |
public function hook() {
|
37 |
+
add_action( 'init', array( $this, 'add_migrations' ) );
|
38 |
+
}
|
39 |
+
|
40 |
+
public function add_migrations() {
|
41 |
$this->add_migration( '1.0', array( $this, 'migrate_1_0' ) );
|
42 |
+
$this->add_migration( '1.1', array( $this, 'migrate_1_1' ) );
|
43 |
|
44 |
$this->migrate();
|
45 |
}
|
159 |
$wpdb->query( $sql );
|
160 |
}
|
161 |
|
162 |
+
public function migrate_1_1( $version, $current_version ) {
|
163 |
+
$form_controller = happyforms_get_form_controller();
|
164 |
+
$forms = $form_controller->get();
|
165 |
+
|
166 |
+
foreach ( $forms as $form ) {
|
167 |
+
if ( ! empty( $form['redirect_url'] ) && ! isset( $form['redirect_on_complete'] ) ) {
|
168 |
+
happyforms_update_meta( $form['ID'], 'redirect_on_complete', 1 );
|
169 |
+
}
|
170 |
+
|
171 |
+
if ( ! empty( $form['html_id'] ) && ! isset( $form['use_html_id'] ) ) {
|
172 |
+
happyforms_update_meta( $form['ID'], 'use_html_id', 1 );
|
173 |
+
}
|
174 |
+
}
|
175 |
+
}
|
176 |
+
|
177 |
}
|
178 |
|
179 |
if ( ! function_exists( 'happyforms_get_migrations' ) ):
|
inc/core/classes/parts/class-part-checkbox.php
CHANGED
@@ -4,10 +4,18 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
|
|
4 |
|
5 |
public $type = 'checkbox';
|
6 |
|
|
|
|
|
7 |
public function __construct() {
|
8 |
$this->label = __( 'Multiple Choice', 'happyforms' );
|
9 |
$this->description = __( 'For checkboxes allowing multiple selections.', 'happyforms' );
|
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 3 );
|
12 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
13 |
add_filter( 'happyforms_stringify_part_value', array( $this, 'stringify_value' ), 10, 3 );
|
4 |
|
5 |
public $type = 'checkbox';
|
6 |
|
7 |
+
public static $parent;
|
8 |
+
|
9 |
public function __construct() {
|
10 |
$this->label = __( 'Multiple Choice', 'happyforms' );
|
11 |
$this->description = __( 'For checkboxes allowing multiple selections.', 'happyforms' );
|
12 |
|
13 |
+
$this->hook();
|
14 |
+
}
|
15 |
+
|
16 |
+
public function hook() {
|
17 |
+
self::$parent = $this;
|
18 |
+
|
19 |
add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 3 );
|
20 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
21 |
add_filter( 'happyforms_stringify_part_value', array( $this, 'stringify_value' ), 10, 3 );
|
inc/core/classes/parts/class-part-narrative.php
CHANGED
@@ -143,7 +143,7 @@ class HappyForms_Part_Narrative extends HappyForms_Form_Part {
|
|
143 |
public function stringify_value( $value, $part, $form ) {
|
144 |
if ( $this->type === $part['type'] ) {
|
145 |
$tokens = happyforms_get_narrative_tokens( $part['format'] );
|
146 |
-
$format =
|
147 |
$value = vsprintf( html_entity_decode( stripslashes( $format ) ), $value );
|
148 |
$value = sanitize_text_field( $value );
|
149 |
}
|
143 |
public function stringify_value( $value, $part, $form ) {
|
144 |
if ( $this->type === $part['type'] ) {
|
145 |
$tokens = happyforms_get_narrative_tokens( $part['format'] );
|
146 |
+
$format = happyforms_get_narrative_format( $part['format'] );
|
147 |
$value = vsprintf( html_entity_decode( stripslashes( $format ) ), $value );
|
148 |
$value = sanitize_text_field( $value );
|
149 |
}
|
inc/core/classes/parts/class-part-placeholder.php
CHANGED
@@ -9,6 +9,7 @@ class HappyForms_Part_Placeholder extends HappyForms_Form_Part {
|
|
9 |
$this->description = __( 'For adding helper text, horizontal rules and extra space.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_message_part_visible', array( $this, 'message_part_visible' ), 10, 2 );
|
|
|
12 |
}
|
13 |
|
14 |
/**
|
@@ -43,6 +44,10 @@ class HappyForms_Part_Placeholder extends HappyForms_Form_Part {
|
|
43 |
'placeholder_text' => array(
|
44 |
'default' => '',
|
45 |
'sanitize' => 'esc_html'
|
|
|
|
|
|
|
|
|
46 |
)
|
47 |
);
|
48 |
|
@@ -135,6 +140,14 @@ class HappyForms_Part_Placeholder extends HappyForms_Form_Part {
|
|
135 |
return $visible;
|
136 |
}
|
137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
/**
|
139 |
* Enqueue scripts in customizer area.
|
140 |
*
|
9 |
$this->description = __( 'For adding helper text, horizontal rules and extra space.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_message_part_visible', array( $this, 'message_part_visible' ), 10, 2 );
|
12 |
+
add_filter( 'happyforms_email_part_visible', array( $this, 'email_part_visible' ), 10, 2 );
|
13 |
}
|
14 |
|
15 |
/**
|
44 |
'placeholder_text' => array(
|
45 |
'default' => '',
|
46 |
'sanitize' => 'esc_html'
|
47 |
+
),
|
48 |
+
'required' => array(
|
49 |
+
'default' => 0,
|
50 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
51 |
)
|
52 |
);
|
53 |
|
140 |
return $visible;
|
141 |
}
|
142 |
|
143 |
+
public function email_part_visible( $visible, $part ) {
|
144 |
+
if ( $this->type === $part['type'] ) {
|
145 |
+
$visible = false;
|
146 |
+
}
|
147 |
+
|
148 |
+
return $visible;
|
149 |
+
}
|
150 |
+
|
151 |
/**
|
152 |
* Enqueue scripts in customizer area.
|
153 |
*
|
inc/core/classes/parts/class-part-radio.php
CHANGED
@@ -3,12 +3,21 @@
|
|
3 |
class HappyForms_Part_Radio extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'radio';
|
|
|
6 |
public $template_id = 'happyforms-radio-template';
|
7 |
|
|
|
|
|
8 |
public function __construct() {
|
9 |
$this->label = __( 'Single Choice', 'happyforms' );
|
10 |
$this->description = __( 'For radio buttons allowing one selection.', 'happyforms' );
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 3 );
|
13 |
add_filter( 'happyforms_stringify_part_value', array( $this, 'stringify_value' ), 10, 3 );
|
14 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
3 |
class HappyForms_Part_Radio extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'radio';
|
6 |
+
|
7 |
public $template_id = 'happyforms-radio-template';
|
8 |
|
9 |
+
public static $parent;
|
10 |
+
|
11 |
public function __construct() {
|
12 |
$this->label = __( 'Single Choice', 'happyforms' );
|
13 |
$this->description = __( 'For radio buttons allowing one selection.', 'happyforms' );
|
14 |
|
15 |
+
$this->hook();
|
16 |
+
}
|
17 |
+
|
18 |
+
public function hook() {
|
19 |
+
self::$parent = $this;
|
20 |
+
|
21 |
add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 3 );
|
22 |
add_filter( 'happyforms_stringify_part_value', array( $this, 'stringify_value' ), 10, 3 );
|
23 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
inc/core/helpers/helper-activation.php
CHANGED
@@ -51,13 +51,32 @@ function happyforms_create_samples() {
|
|
51 |
// Get the new form default data
|
52 |
$form_data = $form_controller->get( $form->ID );
|
53 |
|
54 |
-
$form_data['post_title'] = __( 'Sample
|
55 |
|
56 |
// Prepare age dropdown options
|
57 |
-
$age_options = array(
|
58 |
-
|
59 |
-
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
62 |
$form_parts = array(
|
63 |
array(
|
@@ -87,7 +106,7 @@ function happyforms_create_samples() {
|
|
87 |
),
|
88 |
array(
|
89 |
'type' => 'select',
|
90 |
-
'label' => __( '
|
91 |
'options' => $age_options
|
92 |
),
|
93 |
array(
|
@@ -114,28 +133,16 @@ function happyforms_create_samples() {
|
|
114 |
$form_data['parts'][] = $part_data;
|
115 |
}
|
116 |
|
|
|
|
|
117 |
// Update the new form with default parts
|
118 |
$form_data = $form_controller->update( $form_data );
|
119 |
|
120 |
// Create example submissions
|
121 |
$messages_data = array(
|
122 |
array(
|
123 |
-
'First name' => '
|
124 |
-
'Last name' => '
|
125 |
-
'What\'s your reason for contacting us?' => 0,
|
126 |
-
'Age' => 31,
|
127 |
-
'Your message' => __( 'It would be great if I could use Google ReCaptcha instead of Honeypot.', 'happyforms' ),
|
128 |
-
),
|
129 |
-
array(
|
130 |
-
'First name' => 'Willie',
|
131 |
-
'Last name' => 'Crawford',
|
132 |
-
'What\'s your reason for contacting us?' => 1,
|
133 |
-
'Age' => 45,
|
134 |
-
'Your message' => __( 'How do I embed a HappyForm in my sidebar?', 'happyforms' ),
|
135 |
-
),
|
136 |
-
array(
|
137 |
-
'First name' => 'Bonnie',
|
138 |
-
'Last name' => 'Mccarthy',
|
139 |
'What\'s your reason for contacting us?' => 2,
|
140 |
'Age' => 37,
|
141 |
'Your message' => __( 'How can I access my premium upgrade credentials?', 'happyforms' ) ,
|
@@ -175,29 +182,6 @@ function happyforms_create_samples() {
|
|
175 |
|
176 |
endif;
|
177 |
|
178 |
-
if ( ! function_exists( 'happyforms_migrate_moved_fields' ) ):
|
179 |
-
|
180 |
-
function happyforms_migrate_moved_fields() {
|
181 |
-
require_once( happyforms_get_include_folder() . '/core/classes/class-form-controller.php' );
|
182 |
-
require_once( happyforms_get_include_folder() . '/core/classes/class-form-part-library.php' );
|
183 |
-
require_once( happyforms_get_include_folder() . '/core/helpers/helper-misc.php' );
|
184 |
-
|
185 |
-
$form_controller = happyforms_get_form_controller();
|
186 |
-
$forms = $form_controller->get();
|
187 |
-
|
188 |
-
foreach ( $forms as $form ) {
|
189 |
-
if ( ! empty( $form['redirect_url'] ) && ! isset( $form['redirect_on_complete'] ) ) {
|
190 |
-
happyforms_update_meta( $form['ID'], 'redirect_on_complete', 1 );
|
191 |
-
}
|
192 |
-
|
193 |
-
if ( ! empty( $form['html_id'] ) && ! isset( $form['use_html_id'] ) ) {
|
194 |
-
happyforms_update_meta( $form['ID'], 'use_html_id', 1 );
|
195 |
-
}
|
196 |
-
}
|
197 |
-
}
|
198 |
-
|
199 |
-
endif;
|
200 |
-
|
201 |
if ( ! function_exists( 'happyforms_deactivate' ) ):
|
202 |
/**
|
203 |
* Action: Deactivation routine.
|
@@ -231,5 +215,4 @@ endif;
|
|
231 |
register_activation_hook( happyforms_plugin_file(), 'happyforms_activate' );
|
232 |
register_deactivation_hook( happyforms_plugin_file(), 'happyforms_deactivate' );
|
233 |
|
234 |
-
add_action( 'happyforms_activate', 'happyforms_create_samples' );
|
235 |
-
add_action( 'happyforms_activate', 'happyforms_migrate_moved_fields' );
|
51 |
// Get the new form default data
|
52 |
$form_data = $form_controller->get( $form->ID );
|
53 |
|
54 |
+
$form_data['post_title'] = __( 'Sample Form', 'happyforms' );
|
55 |
|
56 |
// Prepare age dropdown options
|
57 |
+
$age_options = array(
|
58 |
+
array(
|
59 |
+
'label' => '20-24'
|
60 |
+
),
|
61 |
+
array(
|
62 |
+
'label' => '25-29'
|
63 |
+
),
|
64 |
+
array(
|
65 |
+
'label' => '30-34'
|
66 |
+
),
|
67 |
+
array(
|
68 |
+
'label' => '35-39'
|
69 |
+
),
|
70 |
+
array(
|
71 |
+
'label' => '40-44'
|
72 |
+
),
|
73 |
+
array(
|
74 |
+
'label' => '45-49'
|
75 |
+
),
|
76 |
+
array(
|
77 |
+
'label' => '50+'
|
78 |
+
),
|
79 |
+
);
|
80 |
|
81 |
$form_parts = array(
|
82 |
array(
|
106 |
),
|
107 |
array(
|
108 |
'type' => 'select',
|
109 |
+
'label' => __( 'What\'s your age?', 'happyforms' ),
|
110 |
'options' => $age_options
|
111 |
),
|
112 |
array(
|
133 |
$form_data['parts'][] = $part_data;
|
134 |
}
|
135 |
|
136 |
+
echo var_dump( $form_data['parts'] );
|
137 |
+
|
138 |
// Update the new form with default parts
|
139 |
$form_data = $form_controller->update( $form_data );
|
140 |
|
141 |
// Create example submissions
|
142 |
$messages_data = array(
|
143 |
array(
|
144 |
+
'First name' => 'Mr Sample',
|
145 |
+
'Last name' => 'Bloggs',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
'What\'s your reason for contacting us?' => 2,
|
147 |
'Age' => 37,
|
148 |
'Your message' => __( 'How can I access my premium upgrade credentials?', 'happyforms' ) ,
|
182 |
|
183 |
endif;
|
184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
if ( ! function_exists( 'happyforms_deactivate' ) ):
|
186 |
/**
|
187 |
* Action: Deactivation routine.
|
215 |
register_activation_hook( happyforms_plugin_file(), 'happyforms_activate' );
|
216 |
register_deactivation_hook( happyforms_plugin_file(), 'happyforms_deactivate' );
|
217 |
|
218 |
+
add_action( 'happyforms_activate', 'happyforms_create_samples' );
|
|
inc/core/helpers/helper-form-templates.php
CHANGED
@@ -1373,14 +1373,29 @@ function happyforms_get_rating_icons( $part ) {
|
|
1373 |
|
1374 |
endif;
|
1375 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1376 |
if ( ! function_exists( 'happyforms_get_narrative_tokens' ) ) :
|
1377 |
|
1378 |
-
function happyforms_get_narrative_tokens( $format ) {
|
1379 |
-
$
|
1380 |
-
|
|
|
|
|
|
|
|
|
|
|
1381 |
|
1382 |
-
if ( $
|
1383 |
-
|
1384 |
}
|
1385 |
|
1386 |
return $tokens;
|
1373 |
|
1374 |
endif;
|
1375 |
|
1376 |
+
if ( ! function_exists( 'happyforms_get_narrative_format' ) ) :
|
1377 |
+
|
1378 |
+
function happyforms_get_narrative_format( $format ) {
|
1379 |
+
$format = preg_replace( '/\[([^\]]*)\]/m', '%s', $format );
|
1380 |
+
|
1381 |
+
return $format;
|
1382 |
+
}
|
1383 |
+
|
1384 |
+
endif;
|
1385 |
+
|
1386 |
if ( ! function_exists( 'happyforms_get_narrative_tokens' ) ) :
|
1387 |
|
1388 |
+
function happyforms_get_narrative_tokens( $format, $with_placeholders = false ) {
|
1389 |
+
$matches = preg_match_all( '/\[([^\]]*)\]/m', $format, $tokens );
|
1390 |
+
|
1391 |
+
if ( ! $matches ) {
|
1392 |
+
return array();
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
$tokens = $tokens[1];
|
1396 |
|
1397 |
+
if ( ! $with_placeholders ) {
|
1398 |
+
return array_fill( 0, count( $tokens ), '' );
|
1399 |
}
|
1400 |
|
1401 |
return $tokens;
|
inc/core/helpers/helper-misc.php
CHANGED
@@ -589,6 +589,38 @@ function happyforms_get_email_part_value( $message, $part = array(), $form = arr
|
|
589 |
|
590 |
endif;
|
591 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
592 |
if ( ! function_exists( 'happyforms_is_preview_context' ) ) :
|
593 |
|
594 |
function happyforms_is_preview_context() {
|
@@ -650,17 +682,25 @@ function happyforms_unprefix_meta( $meta ) {
|
|
650 |
$meta = $meta ? $meta : array();
|
651 |
$meta = array_map( 'reset', $meta );
|
652 |
$meta = array_map( 'maybe_unserialize', $meta );
|
|
|
|
|
653 |
|
654 |
foreach( $meta as $key => $value ) {
|
655 |
if ( false !== strpos( $key, '_happyforms_' ) ) {
|
656 |
$unprefixed_key = str_replace( '_happyforms_', '', $key );
|
657 |
-
$
|
|
|
|
|
658 |
}
|
|
|
659 |
|
660 |
-
|
|
|
|
|
|
|
661 |
}
|
662 |
|
663 |
-
return $
|
664 |
}
|
665 |
|
666 |
endif;
|
589 |
|
590 |
endif;
|
591 |
|
592 |
+
if ( ! function_exists( 'happyforms_email_is_part_visible' ) ):
|
593 |
+
|
594 |
+
function happyforms_email_is_part_visible( $part = array(), $form = array(), $response = array() ) {
|
595 |
+
$visible = apply_filters( 'happyforms_email_part_visible', true, $part, $form, $response );
|
596 |
+
|
597 |
+
return $visible;
|
598 |
+
}
|
599 |
+
|
600 |
+
endif;
|
601 |
+
|
602 |
+
if ( ! function_exists( 'happyforms_owner_email_template_path' ) ):
|
603 |
+
|
604 |
+
function happyforms_owner_email_template_path() {
|
605 |
+
$path = happyforms_get_include_folder() . '/core/templates/email-owner.php';
|
606 |
+
$path = apply_filters( 'happyforms_owner_email_template_path', $path );
|
607 |
+
|
608 |
+
return $path;
|
609 |
+
}
|
610 |
+
|
611 |
+
endif;
|
612 |
+
|
613 |
+
if ( ! function_exists( 'happyforms_user_email_template_path' ) ):
|
614 |
+
|
615 |
+
function happyforms_user_email_template_path() {
|
616 |
+
$path = happyforms_get_include_folder() . '/core/templates/email-user.php';
|
617 |
+
$path = apply_filters( 'happyforms_user_email_template_path', $path );
|
618 |
+
|
619 |
+
return $path;
|
620 |
+
}
|
621 |
+
|
622 |
+
endif;
|
623 |
+
|
624 |
if ( ! function_exists( 'happyforms_is_preview_context' ) ) :
|
625 |
|
626 |
function happyforms_is_preview_context() {
|
682 |
$meta = $meta ? $meta : array();
|
683 |
$meta = array_map( 'reset', $meta );
|
684 |
$meta = array_map( 'maybe_unserialize', $meta );
|
685 |
+
$prefixed_meta = array();
|
686 |
+
$unprefixed_meta = array();
|
687 |
|
688 |
foreach( $meta as $key => $value ) {
|
689 |
if ( false !== strpos( $key, '_happyforms_' ) ) {
|
690 |
$unprefixed_key = str_replace( '_happyforms_', '', $key );
|
691 |
+
$prefixed_meta[$unprefixed_key] = $value;
|
692 |
+
} else {
|
693 |
+
$unprefixed_meta[$key] = $value;
|
694 |
}
|
695 |
+
}
|
696 |
|
697 |
+
foreach( $unprefixed_meta as $key => $value ) {
|
698 |
+
if ( ! isset( $prefixed_meta[$key] ) ) {
|
699 |
+
$prefixed_meta[$key] = $value;
|
700 |
+
}
|
701 |
}
|
702 |
|
703 |
+
return $prefixed_meta;
|
704 |
}
|
705 |
|
706 |
endif;
|
inc/core/templates/email-owner.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* Part loop
|
5 |
+
*
|
6 |
+
*/
|
7 |
+
?>
|
8 |
+
<?php foreach( $form['parts'] as $part ) : ?>
|
9 |
+
|
10 |
+
<?php if ( happyforms_email_is_part_visible( $part, $form, $response ) ) : ?>
|
11 |
+
|
12 |
+
<b><?php echo happyforms_get_email_part_label( $response, $part, $form ); ?></b><br>
|
13 |
+
<?php echo happyforms_get_email_part_value( $response, $part, $form ); ?>
|
14 |
+
<br><br>
|
15 |
+
|
16 |
+
<?php endif; ?>
|
17 |
+
|
18 |
+
<?php endforeach; ?>
|
19 |
+
|
20 |
+
<?php
|
21 |
+
/**
|
22 |
+
*
|
23 |
+
* Tracking number
|
24 |
+
*
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php if ( happyforms_get_form_property( $form, 'unique_id' ) ) : ?>
|
28 |
+
|
29 |
+
<b><?php _e( 'Tracking number', 'happyforms' ); ?></b><br>
|
30 |
+
<?php echo $response['tracking_id']; ?>
|
31 |
+
|
32 |
+
<?php endif; ?>
|
33 |
+
|
34 |
+
<?php
|
35 |
+
/**
|
36 |
+
*
|
37 |
+
* Mark and reply link
|
38 |
+
*
|
39 |
+
*/
|
40 |
+
?>
|
41 |
+
<?php if ( happyforms_get_form_controller()->get_first_part_by_type( $form, 'email' ) ) : ?>
|
42 |
+
|
43 |
+
<?php if ( happyforms_get_form_property( $form, 'email_mark_and_reply' ) ) : ?>
|
44 |
+
|
45 |
+
<a href="<?php echo happyforms_get_reply_and_mark_link( $response['ID'] ); ?>"><?php _e( 'Reply to this message and mark it as read', 'happyforms' ); ?></a>
|
46 |
+
|
47 |
+
<?php endif; ?>
|
48 |
+
|
49 |
+
<?php endif; ?>
|
inc/core/templates/email-user.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
*
|
4 |
+
* Email content
|
5 |
+
*
|
6 |
+
*/
|
7 |
+
?>
|
8 |
+
<?php echo html_entity_decode( $form['confirmation_email_content'] ); ?>
|
9 |
+
|
10 |
+
<br><br>
|
11 |
+
|
12 |
+
<?php
|
13 |
+
/**
|
14 |
+
*
|
15 |
+
* Tracking number
|
16 |
+
*
|
17 |
+
*/
|
18 |
+
?>
|
19 |
+
<?php if ( happyforms_get_form_property( $form, 'unique_id' ) ) : ?>
|
20 |
+
|
21 |
+
<b><?php _e( 'Tracking number', 'happyforms' ); ?></b><br>
|
22 |
+
<?php echo $response['tracking_id']; ?>
|
23 |
+
|
24 |
+
<?php endif; ?>
|
inc/core/templates/partials/part-preview.php
CHANGED
@@ -1,9 +1,5 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$empty = empty( happyforms_get_part_preview_value( $part, $form ) );
|
4 |
-
$hidden = ( ! $required && $empty );
|
5 |
-
?>
|
6 |
-
<div class="happyforms-form__part happyforms-part-preview" <?php if ( $hidden ) : ?>style="display: none;"<?php endif; ?>>
|
7 |
<label class="happyforms-part__label">
|
8 |
<span class="label"><?php echo esc_html( $part['label'] ); ?></span>
|
9 |
</label>
|
1 |
+
<?php $visible = apply_filters( 'happyforms_message_part_visible', true, $part ); ?>
|
2 |
+
<div class="happyforms-form__part happyforms-part-preview" <?php if ( ! $visible ) : ?>style="display: none;"<?php endif; ?>>
|
|
|
|
|
|
|
|
|
3 |
<label class="happyforms-part__label">
|
4 |
<span class="label"><?php echo esc_html( $part['label'] ); ?></span>
|
5 |
</label>
|
inc/core/templates/parts/customize-narrative.php
CHANGED
@@ -21,6 +21,7 @@
|
|
21 |
<p>
|
22 |
<label for="<%= instance.id %>_format"><?php _e( 'Text', 'happyforms' ); ?></label>
|
23 |
<textarea id="<%= instance.id %>_format" data-bind="format"><%= instance.format %></textarea>
|
|
|
24 |
</p>
|
25 |
<p>
|
26 |
<label>
|
21 |
<p>
|
22 |
<label for="<%= instance.id %>_format"><?php _e( 'Text', 'happyforms' ); ?></label>
|
23 |
<textarea id="<%= instance.id %>_format" data-bind="format"><%= instance.format %></textarea>
|
24 |
+
<span class="description"><?php _e( 'Text between brackets is turned into input placeholders.', 'happyforms-upgrade' ); ?></span>
|
25 |
</p>
|
26 |
<p>
|
27 |
<label>
|
inc/core/templates/parts/frontend-checkbox.php
CHANGED
@@ -24,7 +24,7 @@
|
|
24 |
<div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
|
25 |
<?php $checked = in_array( $o, $value ) ? 'checked="checked"' : ''; ?>
|
26 |
<label class="option-label">
|
27 |
-
<input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo $o; ?>" data-serialize <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
|
28 |
<span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
|
29 |
<span class="border"></span>
|
30 |
<span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
|
@@ -33,11 +33,11 @@
|
|
33 |
</div>
|
34 |
<?php endforeach; ?>
|
35 |
|
|
|
|
|
36 |
<?php happyforms_print_part_description( $part ); ?>
|
37 |
|
38 |
<?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
|
39 |
</div>
|
40 |
-
|
41 |
-
<?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
|
42 |
</div>
|
43 |
</div>
|
24 |
<div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
|
25 |
<?php $checked = in_array( $o, $value ) ? 'checked="checked"' : ''; ?>
|
26 |
<label class="option-label">
|
27 |
+
<input type="checkbox" class="happyforms-visuallyhidden happyforms-checkbox" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo $o; ?>" data-serialize <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
|
28 |
<span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
|
29 |
<span class="border"></span>
|
30 |
<span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
|
33 |
</div>
|
34 |
<?php endforeach; ?>
|
35 |
|
36 |
+
<?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
|
37 |
+
|
38 |
<?php happyforms_print_part_description( $part ); ?>
|
39 |
|
40 |
<?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
|
41 |
</div>
|
|
|
|
|
42 |
</div>
|
43 |
</div>
|
inc/core/templates/parts/frontend-date-day.php
CHANGED
@@ -14,7 +14,7 @@ if ( '' === $day_value && 'current' === $part['default_datetime'] ) {
|
|
14 |
|
15 |
<input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[day]" value="<?php echo $day_value; ?>" data-serialize />
|
16 |
|
17 |
-
<input type="text" value="<?php echo $day_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="
|
18 |
|
19 |
<?php
|
20 |
$options = array();
|
14 |
|
15 |
<input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[day]" value="<?php echo $day_value; ?>" data-serialize />
|
16 |
|
17 |
+
<input type="text" value="<?php echo $day_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
|
18 |
|
19 |
<?php
|
20 |
$options = array();
|
inc/core/templates/parts/frontend-date-month.php
CHANGED
@@ -16,7 +16,7 @@ if ( '' === $month_value && 'current' === $part['default_datetime'] ) {
|
|
16 |
|
17 |
<input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[month]" value="<?php echo $month_value; ?>" data-serialize />
|
18 |
|
19 |
-
<input type="text" value="<?php echo ( $month_value ) ? $months[$month_value] : ''; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="
|
20 |
|
21 |
<?php
|
22 |
$options = array();
|
16 |
|
17 |
<input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[month]" value="<?php echo $month_value; ?>" data-serialize />
|
18 |
|
19 |
+
<input type="text" value="<?php echo ( $month_value ) ? $months[$month_value] : ''; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
|
20 |
|
21 |
<?php
|
22 |
$options = array();
|
inc/core/templates/parts/frontend-date.php
CHANGED
@@ -36,7 +36,7 @@
|
|
36 |
|
37 |
<input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[year]" value="<?php echo $year_value; ?>" data-serialize />
|
38 |
|
39 |
-
<input type="text" value="<?php echo $year_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="
|
40 |
|
41 |
<?php
|
42 |
$order = ( isset( $part['years_order'] ) ) ? $part['years_order'] : 'desc';
|
36 |
|
37 |
<input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[year]" value="<?php echo $year_value; ?>" data-serialize />
|
38 |
|
39 |
+
<input type="text" value="<?php echo $year_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
|
40 |
|
41 |
<?php
|
42 |
$order = ( isset( $part['years_order'] ) ) ? $part['years_order'] : 'desc';
|
inc/core/templates/parts/frontend-narrative.php
CHANGED
@@ -8,18 +8,18 @@
|
|
8 |
<?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
|
9 |
|
10 |
<p><?php
|
11 |
-
$tokens = happyforms_get_narrative_tokens( $part['format'] );
|
12 |
-
$format =
|
13 |
$inputs = array();
|
14 |
|
15 |
-
|
16 |
ob_start(); ?>
|
17 |
-
<input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php happyforms_the_part_value( $part, $form, $t ); ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, $t ); ?> /><?php
|
18 |
$input = ob_get_clean();
|
19 |
-
$
|
20 |
}
|
21 |
|
22 |
-
vprintf( html_entity_decode( stripslashes( $format ) ), $
|
23 |
?></p>
|
24 |
|
25 |
<?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
|
8 |
<?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
|
9 |
|
10 |
<p><?php
|
11 |
+
$tokens = happyforms_get_narrative_tokens( $part['format'], true );
|
12 |
+
$format = happyforms_get_narrative_format( $part['format'] );
|
13 |
$inputs = array();
|
14 |
|
15 |
+
foreach ( $tokens as $t => $placeholder ) {
|
16 |
ob_start(); ?>
|
17 |
+
<input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" <?php if ( ! empty( $placeholder ) ) : ?>placeholder="<?php echo esc_html( $placeholder ); ?>" <?php endif; ?> value="<?php happyforms_the_part_value( $part, $form, $t ); ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, $t ); ?> /><?php
|
18 |
$input = ob_get_clean();
|
19 |
+
$inputs[$t] = $input;
|
20 |
}
|
21 |
|
22 |
+
vprintf( html_entity_decode( stripslashes( $format ) ), $inputs );
|
23 |
?></p>
|
24 |
|
25 |
<?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
|
inc/core/templates/parts/frontend-radio.php
CHANGED
@@ -10,7 +10,13 @@
|
|
10 |
$value = happyforms_get_part_value( $part, $form );
|
11 |
|
12 |
foreach( $options as $o => $option ) : ?>
|
13 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
<div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
|
15 |
<label class="option-label">
|
16 |
<input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $o; ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
|
@@ -22,11 +28,11 @@
|
|
22 |
</div>
|
23 |
<?php endforeach; ?>
|
24 |
|
|
|
|
|
25 |
<?php happyforms_print_part_description( $part ); ?>
|
26 |
|
27 |
<?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
|
28 |
</div>
|
29 |
-
|
30 |
-
<?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
|
31 |
</div>
|
32 |
</div>
|
10 |
$value = happyforms_get_part_value( $part, $form );
|
11 |
|
12 |
foreach( $options as $o => $option ) : ?>
|
13 |
+
<?php
|
14 |
+
$checked = false;
|
15 |
+
|
16 |
+
if ( is_string( $value ) ) {
|
17 |
+
$checked = ! empty( $option['label'] ) ? checked( $value, $o, false ) : '';
|
18 |
+
}
|
19 |
+
?>
|
20 |
<div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
|
21 |
<label class="option-label">
|
22 |
<input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $o; ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
|
28 |
</div>
|
29 |
<?php endforeach; ?>
|
30 |
|
31 |
+
<?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
|
32 |
+
|
33 |
<?php happyforms_print_part_description( $part ); ?>
|
34 |
|
35 |
<?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
|
36 |
</div>
|
|
|
|
|
37 |
</div>
|
38 |
</div>
|
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"
|
@@ -178,42 +178,49 @@ msgstr ""
|
|
178 |
msgid "Author"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: inc/core/classes/class-form-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
msgid "Copy to clipboard"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: inc/core/classes/class-form-admin.php:
|
186 |
#: inc/core/templates/customize-form-steps.php:5
|
187 |
msgid "Build"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: inc/core/classes/class-form-admin.php:
|
191 |
#: inc/core/templates/customize-form-item.php:21
|
192 |
#: inc/core/templates/customize-form-steps.php:8
|
193 |
#: inc/core/templates/customize-form-steps.php:15
|
194 |
msgid "Setup"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: inc/core/classes/class-form-admin.php:
|
198 |
#: inc/core/templates/customize-form-item.php:24
|
199 |
#: inc/core/templates/customize-form-steps.php:18
|
200 |
msgid "Style"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: inc/core/classes/class-form-admin.php:
|
204 |
#: inc/core/templates/customize-form-item.php:27
|
205 |
#: inc/core/templates/customize-form-part-footer.php:4
|
206 |
msgid "Duplicate"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: inc/core/classes/class-form-admin.php:
|
210 |
#: inc/core/classes/class-message-admin.php:640
|
211 |
-
#: inc/core/classes/class-message-admin.php:
|
212 |
-
#: inc/core/classes/class-message-admin.php:
|
213 |
msgid "Trash"
|
214 |
msgstr ""
|
215 |
|
216 |
-
#: inc/core/classes/class-form-admin.php:
|
217 |
msgid "Form duplicated succesfully."
|
218 |
msgstr ""
|
219 |
|
@@ -223,7 +230,7 @@ msgstr ""
|
|
223 |
|
224 |
#: inc/core/classes/class-form-controller.php:77
|
225 |
#: inc/core/classes/class-message-admin.php:397
|
226 |
-
#: inc/core/classes/class-message-admin.php:
|
227 |
msgid "Form"
|
228 |
msgstr ""
|
229 |
|
@@ -263,26 +270,26 @@ msgstr ""
|
|
263 |
msgid "Untitled form"
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: inc/core/classes/class-form-controller.php:
|
267 |
msgid " Copy"
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: inc/core/classes/class-form-controller.php:
|
271 |
-
#: inc/core/classes/class-message-controller.php:
|
272 |
-
#: inc/core/classes/class-message-controller.php:
|
273 |
-
#: inc/core/classes/class-message-controller.php:
|
274 |
msgid "Oops! Your response is invalid — please review your message."
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: inc/core/classes/class-form-part-library.php:
|
278 |
msgid "Invalid data"
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: inc/core/classes/class-form-part-library.php:
|
282 |
msgid "Part definition not found"
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: inc/core/classes/class-form-part-library.php:
|
286 |
msgid "Missing validation callback for field %s"
|
287 |
msgstr ""
|
288 |
|
@@ -290,235 +297,250 @@ msgstr ""
|
|
290 |
msgid "Thank you! Your response has been successfully submitted."
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: inc/core/classes/class-form-setup.php:
|
294 |
msgid "You received a new message"
|
295 |
msgstr ""
|
296 |
|
297 |
-
#: inc/core/classes/class-form-setup.php:
|
298 |
msgid "We received your message"
|
299 |
msgstr ""
|
300 |
|
301 |
-
#: inc/core/classes/class-form-setup.php:
|
302 |
msgid ""
|
303 |
"Your message has been successfully sent. We appreciate you contacting us "
|
304 |
"and we’ll be in touch soon."
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: inc/core/classes/class-form-setup.php:
|
308 |
msgid "(optional)"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: inc/core/classes/class-form-setup.php:
|
312 |
msgid "Submit Form"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: inc/core/classes/class-form-setup.php:
|
316 |
msgid "Validate your submission"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: inc/core/classes/class-form-setup.php:
|
320 |
msgid "Review submission"
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: inc/core/classes/class-form-setup.php:
|
324 |
msgid "Confirmation message"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: inc/core/classes/class-form-setup.php:
|
328 |
msgid ""
|
329 |
"This is the message your users will see after succesfully submitting your "
|
330 |
"form."
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: inc/core/classes/class-form-setup.php:
|
334 |
msgid "Receive submission alerts"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: inc/core/classes/class-form-setup.php:
|
338 |
#: inc/core/templates/admin-tracking.php:15
|
339 |
msgid "Email address"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: inc/core/classes/class-form-setup.php:
|
343 |
msgid ""
|
344 |
"Add your email address here to receive a confirmation email for each form "
|
345 |
"response. You can add multiple email addresses by separating each address "
|
346 |
"with a comma."
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: inc/core/classes/class-form-setup.php:
|
350 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
msgid "Email subject"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: inc/core/classes/class-form-setup.php:
|
355 |
msgid ""
|
356 |
"Each time a user submits a message, you'll receive an email with this "
|
357 |
"subject."
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: inc/core/classes/class-form-setup.php:
|
361 |
msgid "Include mark and reply link"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: inc/core/classes/class-form-setup.php:
|
365 |
msgid "Reply to your users and mark their submission as read in one click."
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: inc/core/classes/class-form-setup.php:
|
369 |
msgid "Send confirmation email"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: inc/core/classes/class-form-setup.php:
|
373 |
msgid "Email display name"
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: inc/core/classes/class-form-setup.php:
|
377 |
msgid ""
|
378 |
"If your form contains an email field, recipients will receive an email with "
|
379 |
"this sender name."
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: inc/core/classes/class-form-setup.php:
|
383 |
msgid ""
|
384 |
"If your form contains an email field, recipients will receive an email with "
|
385 |
"this subject."
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: inc/core/classes/class-form-setup.php:
|
389 |
msgid "Email content"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: inc/core/classes/class-form-setup.php:
|
393 |
msgid ""
|
394 |
"If your form contains an email field, recipients will receive an email with "
|
395 |
"this content."
|
396 |
msgstr ""
|
397 |
|
398 |
-
#: inc/core/classes/class-form-setup.php:
|
399 |
msgid "Optional part label"
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: inc/core/classes/class-form-setup.php:
|
403 |
msgid "Submit button label"
|
404 |
msgstr ""
|
405 |
|
406 |
-
#: inc/core/classes/class-form-setup.php:
|
407 |
msgid "Submit button HTML class"
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: inc/core/classes/class-form-setup.php:
|
411 |
msgid "Set custom form HTML ID"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: inc/core/classes/class-form-setup.php:
|
415 |
msgid "Add a unique HTML ID to your form. Write without a hash (#) character."
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: inc/core/classes/class-form-setup.php:
|
419 |
msgid "Form HTML ID"
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: inc/core/classes/class-form-setup.php:
|
423 |
msgid "Redirect on complete"
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: inc/core/classes/class-form-setup.php:
|
427 |
msgid ""
|
428 |
"By default, recipients will be redirected to the post or page displaying "
|
429 |
"this form. To set a custom redirect webpage, add a link here."
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: inc/core/classes/class-form-setup.php:
|
433 |
msgid "On complete redirect link"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: inc/core/classes/class-form-setup.php:
|
|
|
|
|
|
|
|
|
437 |
msgid "Spam prevention"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: inc/core/classes/class-form-setup.php:
|
441 |
msgid "Protect your form against bots by using HoneyPot security."
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: inc/core/classes/class-form-setup.php:
|
445 |
msgid ""
|
446 |
"Use <a href=\"%s\" target=\"_blank\" class=\"external\"> Google "
|
447 |
"ReCaptcha</a>"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: inc/core/classes/class-form-setup.php:
|
451 |
msgid "Protect your form against bots using your Google ReCaptcha credentials."
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: inc/core/classes/class-form-setup.php:
|
455 |
msgid "ReCaptcha site key"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: inc/core/classes/class-form-setup.php:
|
459 |
msgid "ReCaptcha secret key"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: inc/core/classes/class-form-setup.php:
|
463 |
msgid "ReCaptcha label"
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: inc/core/classes/class-form-setup.php:
|
467 |
msgid "Save responses"
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: inc/core/classes/class-form-setup.php:
|
471 |
msgid "Keep recipients responses stored in your WordPress database."
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: inc/core/classes/class-form-setup.php:
|
475 |
msgid "Give each response an ID number"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: inc/core/classes/class-form-setup.php:
|
479 |
msgid "Tag responses with a unique, incremental identifier."
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: inc/core/classes/class-form-setup.php:
|
483 |
msgid "Start counter from"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: inc/core/classes/class-form-setup.php:
|
487 |
msgid "Your next submission will be tagged with this identifier."
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: inc/core/classes/class-form-setup.php:
|
491 |
#: inc/core/templates/parts/customize-number.php:72
|
492 |
msgid "Prefix"
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: inc/core/classes/class-form-setup.php:
|
496 |
msgid "Suffix"
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: inc/core/classes/class-form-setup.php:
|
500 |
msgid "Preview values before submission"
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: inc/core/classes/class-form-setup.php:
|
504 |
msgid "Let your users review their submission before confirming it."
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: inc/core/classes/class-form-setup.php:
|
508 |
msgid "Review button text"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: inc/core/classes/class-form-setup.php:
|
512 |
msgid "Fade submit button until valid"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: inc/core/classes/class-form-setup.php:
|
516 |
msgid ""
|
517 |
"Reduce the opacity of the submit button until all required form parts are "
|
518 |
"valid."
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: inc/core/classes/class-form-setup.php:
|
522 |
msgid "Please review your submission..."
|
523 |
msgstr ""
|
524 |
|
@@ -665,7 +687,7 @@ msgstr ""
|
|
665 |
#: inc/core/templates/parts/customize-email.php:46
|
666 |
#: inc/core/templates/parts/customize-legal.php:4
|
667 |
#: inc/core/templates/parts/customize-multi-line-text.php:50
|
668 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
669 |
#: inc/core/templates/parts/customize-number.php:77
|
670 |
#: inc/core/templates/parts/customize-phone.php:69
|
671 |
#: inc/core/templates/parts/customize-placeholder.php:27
|
@@ -965,12 +987,6 @@ msgstr ""
|
|
965 |
msgid "Add New"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: inc/core/classes/class-happyforms-core.php:190
|
969 |
-
#: inc/core/classes/class-happyforms-core.php:191
|
970 |
-
#: inc/core/classes/class-message-controller.php:208
|
971 |
-
msgid "Responses"
|
972 |
-
msgstr ""
|
973 |
-
|
974 |
#: inc/core/classes/class-happyforms-core.php:198
|
975 |
#: inc/core/classes/class-happyforms-core.php:199
|
976 |
msgid "Welcome"
|
@@ -1014,7 +1030,7 @@ msgid "View Response #"
|
|
1014 |
msgstr ""
|
1015 |
|
1016 |
#: inc/core/classes/class-message-admin.php:242
|
1017 |
-
#: inc/core/classes/class-message-controller.php:
|
1018 |
msgid "View response"
|
1019 |
msgstr ""
|
1020 |
|
@@ -1086,7 +1102,7 @@ msgid "Pagination"
|
|
1086 |
msgstr ""
|
1087 |
|
1088 |
#: inc/core/classes/class-message-admin.php:348
|
1089 |
-
msgid "Number of
|
1090 |
msgstr ""
|
1091 |
|
1092 |
#: inc/core/classes/class-message-admin.php:352
|
@@ -1094,15 +1110,14 @@ msgid "Fields"
|
|
1094 |
msgstr ""
|
1095 |
|
1096 |
#: inc/core/classes/class-message-admin.php:353
|
1097 |
-
msgid "Number of
|
1098 |
msgstr ""
|
1099 |
|
1100 |
#: inc/core/classes/class-message-admin.php:394
|
1101 |
-
#: inc/core/classes/class-message-admin.php:
|
1102 |
-
#: inc/core/classes/class-message-controller.php:
|
1103 |
-
#: inc/core/classes/class-message-controller.php:874
|
1104 |
-
#: inc/core/classes/class-message-controller.php:941
|
1105 |
#: inc/core/templates/admin-message-edit.php:27
|
|
|
1106 |
msgid "Tracking number"
|
1107 |
msgstr ""
|
1108 |
|
@@ -1122,55 +1137,51 @@ msgstr ""
|
|
1122 |
msgid "Export to CSV"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
-
#: inc/core/classes/class-message-admin.php:
|
1126 |
msgid "View"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
-
#: inc/core/classes/class-message-admin.php:
|
1130 |
msgid "Details"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
-
#: inc/core/classes/class-message-admin.php:
|
1134 |
msgid "Submitted on"
|
1135 |
msgstr ""
|
1136 |
|
1137 |
-
#: inc/core/classes/class-message-admin.php:
|
1138 |
msgid "M j, Y @ H:i"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: inc/core/classes/class-message-controller.php:
|
1142 |
msgid "Response"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
-
#: inc/core/classes/class-message-controller.php:
|
1146 |
msgid "Edit response"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
-
#: inc/core/classes/class-message-controller.php:
|
1150 |
msgid "View Responses"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
-
#: inc/core/classes/class-message-controller.php:
|
1154 |
msgid "Search Responses"
|
1155 |
msgstr ""
|
1156 |
|
1157 |
-
#: inc/core/classes/class-message-controller.php:
|
1158 |
msgid "No response found"
|
1159 |
msgstr ""
|
1160 |
|
1161 |
-
#: inc/core/classes/class-message-controller.php:
|
1162 |
msgid "No response found in Trash"
|
1163 |
msgstr ""
|
1164 |
|
1165 |
-
#: inc/core/classes/class-message-controller.php:
|
1166 |
-
#: inc/core/classes/class-message-controller.php:
|
1167 |
msgid "All Responses"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
-
#: inc/core/classes/class-message-controller.php:893
|
1171 |
-
msgid "Reply to this message and mark it as read"
|
1172 |
-
msgstr ""
|
1173 |
-
|
1174 |
#: inc/core/classes/class-tracking.php:204
|
1175 |
msgid "Thank you!"
|
1176 |
msgstr ""
|
@@ -1266,7 +1277,7 @@ msgid "For geographical locations. Includes Google Maps intergration."
|
|
1266 |
msgstr ""
|
1267 |
|
1268 |
#: inc/core/classes/parts/class-part-address.php:196
|
1269 |
-
#: inc/core/classes/parts/class-part-checkbox.php:
|
1270 |
#: inc/core/classes/parts/class-part-date.php:211
|
1271 |
#: inc/core/classes/parts/class-part-email.php:152
|
1272 |
#: inc/core/classes/parts/class-part-email.php:156
|
@@ -1277,7 +1288,7 @@ msgstr ""
|
|
1277 |
#: inc/core/classes/parts/class-part-number.php:174
|
1278 |
#: inc/core/classes/parts/class-part-phone.php:166
|
1279 |
#: inc/core/classes/parts/class-part-phone.php:170
|
1280 |
-
#: inc/core/classes/parts/class-part-radio.php:
|
1281 |
#: inc/core/classes/parts/class-part-rating.php:157
|
1282 |
#: inc/core/classes/parts/class-part-rich-text.php:196
|
1283 |
#: inc/core/classes/parts/class-part-scale.php:168
|
@@ -1290,16 +1301,16 @@ msgstr ""
|
|
1290 |
msgid "This field is required."
|
1291 |
msgstr ""
|
1292 |
|
1293 |
-
#: inc/core/classes/parts/class-part-checkbox.php:
|
1294 |
msgid "Multiple Choice"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: inc/core/classes/parts/class-part-checkbox.php:
|
1298 |
msgid "For checkboxes allowing multiple selections."
|
1299 |
msgstr ""
|
1300 |
|
1301 |
-
#: inc/core/classes/parts/class-part-checkbox.php:
|
1302 |
-
#: inc/core/classes/parts/class-part-radio.php:
|
1303 |
#: inc/core/classes/parts/class-part-table.php:32
|
1304 |
#: inc/core/templates/parts/customize-checkbox.php:34
|
1305 |
#: inc/core/templates/parts/customize-checkbox.php:38
|
@@ -1311,7 +1322,7 @@ msgstr ""
|
|
1311 |
msgid "Options"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
-
#: inc/core/classes/parts/class-part-checkbox.php:
|
1315 |
#: inc/core/classes/parts/class-part-table.php:240
|
1316 |
msgid "Checkbox values are not valid."
|
1317 |
msgstr ""
|
@@ -1445,16 +1456,16 @@ msgstr ""
|
|
1445 |
msgid "For adding helper text, horizontal rules and extra space."
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#: inc/core/classes/parts/class-part-radio.php:
|
1449 |
msgid "Single Choice"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
-
#: inc/core/classes/parts/class-part-radio.php:
|
1453 |
msgid "For radio buttons allowing one selection."
|
1454 |
msgstr ""
|
1455 |
|
1456 |
-
#: inc/core/classes/parts/class-part-radio.php:
|
1457 |
-
#: inc/core/classes/parts/class-part-radio.php:
|
1458 |
msgid "Radio value is not valid."
|
1459 |
msgstr ""
|
1460 |
|
@@ -1593,50 +1604,42 @@ msgid "Not a valid URL."
|
|
1593 |
msgstr ""
|
1594 |
|
1595 |
#: inc/core/helpers/helper-activation.php:54
|
1596 |
-
msgid "Sample
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: inc/core/helpers/helper-activation.php:
|
1600 |
msgid "First name"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: inc/core/helpers/helper-activation.php:
|
1604 |
msgid "Last name"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
-
#: inc/core/helpers/helper-activation.php:
|
1608 |
msgid "What's your reason for contacting us?"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: inc/core/helpers/helper-activation.php:
|
1612 |
msgid "Need technical help"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: inc/core/helpers/helper-activation.php:
|
1616 |
msgid "Want to suggest a feature"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: inc/core/helpers/helper-activation.php:
|
1620 |
msgid "Asking about my account"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: inc/core/helpers/helper-activation.php:
|
1624 |
-
msgid "
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: inc/core/helpers/helper-activation.php:
|
1628 |
msgid "Your message"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: inc/core/helpers/helper-activation.php:
|
1632 |
-
msgid "It would be great if I could use Google ReCaptcha instead of Honeypot."
|
1633 |
-
msgstr ""
|
1634 |
-
|
1635 |
-
#: inc/core/helpers/helper-activation.php:134
|
1636 |
-
msgid "How do I embed a HappyForm in my sidebar?"
|
1637 |
-
msgstr ""
|
1638 |
-
|
1639 |
-
#: inc/core/helpers/helper-activation.php:141
|
1640 |
msgid "How can I access my premium upgrade credentials?"
|
1641 |
msgstr ""
|
1642 |
|
@@ -2937,551 +2940,551 @@ msgstr ""
|
|
2937 |
msgid "Yugoslavia"
|
2938 |
msgstr ""
|
2939 |
|
2940 |
-
#: inc/core/helpers/helper-misc.php:
|
2941 |
msgid "Response #%s"
|
2942 |
msgstr ""
|
2943 |
|
2944 |
-
#: inc/core/helpers/helper-misc.php:
|
2945 |
msgid "Afrikaans"
|
2946 |
msgstr ""
|
2947 |
|
2948 |
-
#: inc/core/helpers/helper-misc.php:
|
2949 |
msgid "Akan"
|
2950 |
msgstr ""
|
2951 |
|
2952 |
-
#: inc/core/helpers/helper-misc.php:
|
2953 |
msgid "Albanian"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
-
#: inc/core/helpers/helper-misc.php:
|
2957 |
msgid "Algerian Arabic"
|
2958 |
msgstr ""
|
2959 |
|
2960 |
-
#: inc/core/helpers/helper-misc.php:
|
2961 |
msgid "Amharic"
|
2962 |
msgstr ""
|
2963 |
|
2964 |
-
#: inc/core/helpers/helper-misc.php:
|
2965 |
msgid "Arabic"
|
2966 |
msgstr ""
|
2967 |
|
2968 |
-
#: inc/core/helpers/helper-misc.php:
|
2969 |
msgid "Armenian"
|
2970 |
msgstr ""
|
2971 |
|
2972 |
-
#: inc/core/helpers/helper-misc.php:
|
2973 |
msgid "Aromanian"
|
2974 |
msgstr ""
|
2975 |
|
2976 |
-
#: inc/core/helpers/helper-misc.php:
|
2977 |
msgid "Arpitan"
|
2978 |
msgstr ""
|
2979 |
|
2980 |
-
#: inc/core/helpers/helper-misc.php:
|
2981 |
msgid "Assamese"
|
2982 |
msgstr ""
|
2983 |
|
2984 |
-
#: inc/core/helpers/helper-misc.php:
|
2985 |
msgid "Azerbaijani"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
-
#: inc/core/helpers/helper-misc.php:
|
2989 |
msgid "Balochi Southern"
|
2990 |
msgstr ""
|
2991 |
|
2992 |
-
#: inc/core/helpers/helper-misc.php:
|
2993 |
msgid "Bashkir"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
-
#: inc/core/helpers/helper-misc.php:
|
2997 |
msgid "Basque"
|
2998 |
msgstr ""
|
2999 |
|
3000 |
-
#: inc/core/helpers/helper-misc.php:
|
3001 |
msgid "Belarusian"
|
3002 |
msgstr ""
|
3003 |
|
3004 |
-
#: inc/core/helpers/helper-misc.php:
|
3005 |
msgid "Bengali"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
-
#: inc/core/helpers/helper-misc.php:
|
3009 |
msgid "Bosnian"
|
3010 |
msgstr ""
|
3011 |
|
3012 |
-
#: inc/core/helpers/helper-misc.php:
|
3013 |
msgid "Breton"
|
3014 |
msgstr ""
|
3015 |
|
3016 |
-
#: inc/core/helpers/helper-misc.php:
|
3017 |
msgid "Bulgarian"
|
3018 |
msgstr ""
|
3019 |
|
3020 |
-
#: inc/core/helpers/helper-misc.php:
|
3021 |
msgid "Catalan"
|
3022 |
msgstr ""
|
3023 |
|
3024 |
-
#: inc/core/helpers/helper-misc.php:
|
3025 |
msgid "Cebuano"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
-
#: inc/core/helpers/helper-misc.php:
|
3029 |
msgid "Chinese"
|
3030 |
msgstr ""
|
3031 |
|
3032 |
-
#: inc/core/helpers/helper-misc.php:
|
3033 |
msgid "Corsican"
|
3034 |
msgstr ""
|
3035 |
|
3036 |
-
#: inc/core/helpers/helper-misc.php:
|
3037 |
msgid "Croatian"
|
3038 |
msgstr ""
|
3039 |
|
3040 |
-
#: inc/core/helpers/helper-misc.php:
|
3041 |
msgid "Czech"
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: inc/core/helpers/helper-misc.php:
|
3045 |
msgid "Danish"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: inc/core/helpers/helper-misc.php:
|
3049 |
msgid "Dhivehi"
|
3050 |
msgstr ""
|
3051 |
|
3052 |
-
#: inc/core/helpers/helper-misc.php:
|
3053 |
msgid "Dutch"
|
3054 |
msgstr ""
|
3055 |
|
3056 |
-
#: inc/core/helpers/helper-misc.php:
|
3057 |
msgid "Dzongkha"
|
3058 |
msgstr ""
|
3059 |
|
3060 |
-
#: inc/core/helpers/helper-misc.php:
|
3061 |
msgid "English"
|
3062 |
msgstr ""
|
3063 |
|
3064 |
-
#: inc/core/helpers/helper-misc.php:
|
3065 |
msgid "Esperanto"
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: inc/core/helpers/helper-misc.php:
|
3069 |
msgid "Estonian"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: inc/core/helpers/helper-misc.php:
|
3073 |
msgid "Faroese"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: inc/core/helpers/helper-misc.php:
|
3077 |
msgid "Finnish"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: inc/core/helpers/helper-misc.php:
|
3081 |
msgid "French"
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: inc/core/helpers/helper-misc.php:
|
3085 |
msgid "Frisian"
|
3086 |
msgstr ""
|
3087 |
|
3088 |
-
#: inc/core/helpers/helper-misc.php:
|
3089 |
msgid "Friulian"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: inc/core/helpers/helper-misc.php:
|
3093 |
msgid "Fulah"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: inc/core/helpers/helper-misc.php:
|
3097 |
msgid "Galician"
|
3098 |
msgstr ""
|
3099 |
|
3100 |
-
#: inc/core/helpers/helper-misc.php:
|
3101 |
msgid "Georgian"
|
3102 |
msgstr ""
|
3103 |
|
3104 |
-
#: inc/core/helpers/helper-misc.php:
|
3105 |
msgid "German"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
-
#: inc/core/helpers/helper-misc.php:
|
3109 |
msgid "Greek"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: inc/core/helpers/helper-misc.php:
|
3113 |
msgid "Greenlandic"
|
3114 |
msgstr ""
|
3115 |
|
3116 |
-
#: inc/core/helpers/helper-misc.php:
|
3117 |
msgid "Guaraní"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
#: inc/core/helpers/helper-misc.php:
|
3121 |
msgid "Gujarati"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: inc/core/helpers/helper-misc.php:
|
3125 |
msgid "Hawaiian"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: inc/core/helpers/helper-misc.php:
|
3129 |
msgid "Hazaragi"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
-
#: inc/core/helpers/helper-misc.php:
|
3133 |
msgid "Hebrew"
|
3134 |
msgstr ""
|
3135 |
|
3136 |
-
#: inc/core/helpers/helper-misc.php:
|
3137 |
msgid "Hindi"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
-
#: inc/core/helpers/helper-misc.php:
|
3141 |
msgid "Hungarian"
|
3142 |
msgstr ""
|
3143 |
|
3144 |
-
#: inc/core/helpers/helper-misc.php:
|
3145 |
msgid "Icelandic"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
-
#: inc/core/helpers/helper-misc.php:
|
3149 |
msgid "Ido"
|
3150 |
msgstr ""
|
3151 |
|
3152 |
-
#: inc/core/helpers/helper-misc.php:
|
3153 |
msgid "Indonesian"
|
3154 |
msgstr ""
|
3155 |
|
3156 |
-
#: inc/core/helpers/helper-misc.php:
|
3157 |
msgid "Irish"
|
3158 |
msgstr ""
|
3159 |
|
3160 |
-
#: inc/core/helpers/helper-misc.php:
|
3161 |
msgid "Italian"
|
3162 |
msgstr ""
|
3163 |
|
3164 |
-
#: inc/core/helpers/helper-misc.php:
|
3165 |
msgid "Japanese"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
-
#: inc/core/helpers/helper-misc.php:
|
3169 |
msgid "Javanese"
|
3170 |
msgstr ""
|
3171 |
|
3172 |
-
#: inc/core/helpers/helper-misc.php:
|
3173 |
msgid "Kabyle"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
-
#: inc/core/helpers/helper-misc.php:
|
3177 |
msgid "Kannada"
|
3178 |
msgstr ""
|
3179 |
|
3180 |
-
#: inc/core/helpers/helper-misc.php:
|
3181 |
msgid "Kazakh"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
-
#: inc/core/helpers/helper-misc.php:
|
3185 |
msgid "Khmer"
|
3186 |
msgstr ""
|
3187 |
|
3188 |
-
#: inc/core/helpers/helper-misc.php:
|
3189 |
msgid "Kinyarwanda"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
-
#: inc/core/helpers/helper-misc.php:
|
3193 |
msgid "Kirghiz"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
-
#: inc/core/helpers/helper-misc.php:
|
3197 |
msgid "Korean"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
-
#: inc/core/helpers/helper-misc.php:
|
3201 |
msgid "Kurdish"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
-
#: inc/core/helpers/helper-misc.php:
|
3205 |
msgid "Lao"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: inc/core/helpers/helper-misc.php:
|
3209 |
msgid "Latvian"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: inc/core/helpers/helper-misc.php:
|
3213 |
msgid "Limburgish"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: inc/core/helpers/helper-misc.php:
|
3217 |
msgid "Lingala"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: inc/core/helpers/helper-misc.php:
|
3221 |
msgid "Lithuanian"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
-
#: inc/core/helpers/helper-misc.php:
|
3225 |
msgid "Luxembourgish"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
-
#: inc/core/helpers/helper-misc.php:
|
3229 |
msgid "Macedonian"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
-
#: inc/core/helpers/helper-misc.php:
|
3233 |
msgid "Malagasy"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
-
#: inc/core/helpers/helper-misc.php:
|
3237 |
msgid "Malay"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
-
#: inc/core/helpers/helper-misc.php:
|
3241 |
msgid "Malayalam"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
-
#: inc/core/helpers/helper-misc.php:
|
3245 |
msgid "Maori"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
-
#: inc/core/helpers/helper-misc.php:
|
3249 |
msgid "Marathi"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
-
#: inc/core/helpers/helper-misc.php:
|
3253 |
msgid "Mingrelian"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
-
#: inc/core/helpers/helper-misc.php:
|
3257 |
msgid "Mongolian"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
-
#: inc/core/helpers/helper-misc.php:
|
3261 |
msgid "Montenegrin"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
-
#: inc/core/helpers/helper-misc.php:
|
3265 |
msgid "Moroccan Arabic"
|
3266 |
msgstr ""
|
3267 |
|
3268 |
-
#: inc/core/helpers/helper-misc.php:
|
3269 |
msgid "Myanmar (Burmese)"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
-
#: inc/core/helpers/helper-misc.php:
|
3273 |
msgid "Nepali"
|
3274 |
msgstr ""
|
3275 |
|
3276 |
-
#: inc/core/helpers/helper-misc.php:
|
3277 |
msgid "Norwegian (Bokmål)"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
-
#: inc/core/helpers/helper-misc.php:
|
3281 |
msgid "Norwegian (Nynorsk)"
|
3282 |
msgstr ""
|
3283 |
|
3284 |
-
#: inc/core/helpers/helper-misc.php:
|
3285 |
msgid "Occitan"
|
3286 |
msgstr ""
|
3287 |
|
3288 |
-
#: inc/core/helpers/helper-misc.php:
|
3289 |
msgid "Oriya"
|
3290 |
msgstr ""
|
3291 |
|
3292 |
-
#: inc/core/helpers/helper-misc.php:
|
3293 |
msgid "Ossetic"
|
3294 |
msgstr ""
|
3295 |
|
3296 |
-
#: inc/core/helpers/helper-misc.php:
|
3297 |
msgid "Pashto"
|
3298 |
msgstr ""
|
3299 |
|
3300 |
-
#: inc/core/helpers/helper-misc.php:
|
3301 |
msgid "Persian"
|
3302 |
msgstr ""
|
3303 |
|
3304 |
-
#: inc/core/helpers/helper-misc.php:
|
3305 |
msgid "Polish"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
-
#: inc/core/helpers/helper-misc.php:
|
3309 |
msgid "Portuguese"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
-
#: inc/core/helpers/helper-misc.php:
|
3313 |
msgid "Punjabi"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: inc/core/helpers/helper-misc.php:
|
3317 |
msgid "Rohingya"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: inc/core/helpers/helper-misc.php:
|
3321 |
msgid "Romanian"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
-
#: inc/core/helpers/helper-misc.php:
|
3325 |
msgid "Romansh Vallader"
|
3326 |
msgstr ""
|
3327 |
|
3328 |
-
#: inc/core/helpers/helper-misc.php:
|
3329 |
msgid "Russian"
|
3330 |
msgstr ""
|
3331 |
|
3332 |
-
#: inc/core/helpers/helper-misc.php:
|
3333 |
msgid "Rusyn"
|
3334 |
msgstr ""
|
3335 |
|
3336 |
-
#: inc/core/helpers/helper-misc.php:
|
3337 |
msgid "Sakha"
|
3338 |
msgstr ""
|
3339 |
|
3340 |
-
#: inc/core/helpers/helper-misc.php:
|
3341 |
msgid "Sanskrit"
|
3342 |
msgstr ""
|
3343 |
|
3344 |
-
#: inc/core/helpers/helper-misc.php:
|
3345 |
msgid "Sardinian"
|
3346 |
msgstr ""
|
3347 |
|
3348 |
-
#: inc/core/helpers/helper-misc.php:
|
3349 |
msgid "Scottish Gaelic"
|
3350 |
msgstr ""
|
3351 |
|
3352 |
-
#: inc/core/helpers/helper-misc.php:
|
3353 |
msgid "Serbian"
|
3354 |
msgstr ""
|
3355 |
|
3356 |
-
#: inc/core/helpers/helper-misc.php:
|
3357 |
msgid "Silesian"
|
3358 |
msgstr ""
|
3359 |
|
3360 |
-
#: inc/core/helpers/helper-misc.php:
|
3361 |
msgid "Sindhi"
|
3362 |
msgstr ""
|
3363 |
|
3364 |
-
#: inc/core/helpers/helper-misc.php:
|
3365 |
msgid "Sinhala"
|
3366 |
msgstr ""
|
3367 |
|
3368 |
-
#: inc/core/helpers/helper-misc.php:
|
3369 |
msgid "Slovak"
|
3370 |
msgstr ""
|
3371 |
|
3372 |
-
#: inc/core/helpers/helper-misc.php:
|
3373 |
msgid "Slovenian"
|
3374 |
msgstr ""
|
3375 |
|
3376 |
-
#: inc/core/helpers/helper-misc.php:
|
3377 |
msgid "Somali"
|
3378 |
msgstr ""
|
3379 |
|
3380 |
-
#: inc/core/helpers/helper-misc.php:
|
3381 |
msgid "South Azerbaijani"
|
3382 |
msgstr ""
|
3383 |
|
3384 |
-
#: inc/core/helpers/helper-misc.php:
|
3385 |
msgid "Spanish"
|
3386 |
msgstr ""
|
3387 |
|
3388 |
-
#: inc/core/helpers/helper-misc.php:
|
3389 |
msgid "Sundanese"
|
3390 |
msgstr ""
|
3391 |
|
3392 |
-
#: inc/core/helpers/helper-misc.php:
|
3393 |
msgid "Swahili"
|
3394 |
msgstr ""
|
3395 |
|
3396 |
-
#: inc/core/helpers/helper-misc.php:
|
3397 |
msgid "Swedish"
|
3398 |
msgstr ""
|
3399 |
|
3400 |
-
#: inc/core/helpers/helper-misc.php:
|
3401 |
msgid "Swiss German"
|
3402 |
msgstr ""
|
3403 |
|
3404 |
-
#: inc/core/helpers/helper-misc.php:
|
3405 |
msgid "Tagalog"
|
3406 |
msgstr ""
|
3407 |
|
3408 |
-
#: inc/core/helpers/helper-misc.php:
|
3409 |
msgid "Tahitian"
|
3410 |
msgstr ""
|
3411 |
|
3412 |
-
#: inc/core/helpers/helper-misc.php:
|
3413 |
msgid "Tajik"
|
3414 |
msgstr ""
|
3415 |
|
3416 |
-
#: inc/core/helpers/helper-misc.php:
|
3417 |
msgid "Tamazight"
|
3418 |
msgstr ""
|
3419 |
|
3420 |
-
#: inc/core/helpers/helper-misc.php:
|
3421 |
msgid "Tamil"
|
3422 |
msgstr ""
|
3423 |
|
3424 |
-
#: inc/core/helpers/helper-misc.php:
|
3425 |
msgid "Tatar"
|
3426 |
msgstr ""
|
3427 |
|
3428 |
-
#: inc/core/helpers/helper-misc.php:
|
3429 |
msgid "Telugu"
|
3430 |
msgstr ""
|
3431 |
|
3432 |
-
#: inc/core/helpers/helper-misc.php:
|
3433 |
msgid "Thai"
|
3434 |
msgstr ""
|
3435 |
|
3436 |
-
#: inc/core/helpers/helper-misc.php:
|
3437 |
msgid "Tibetan"
|
3438 |
msgstr ""
|
3439 |
|
3440 |
-
#: inc/core/helpers/helper-misc.php:
|
3441 |
msgid "Tigrinya"
|
3442 |
msgstr ""
|
3443 |
|
3444 |
-
#: inc/core/helpers/helper-misc.php:
|
3445 |
msgid "Turkish"
|
3446 |
msgstr ""
|
3447 |
|
3448 |
-
#: inc/core/helpers/helper-misc.php:
|
3449 |
msgid "Turkmen"
|
3450 |
msgstr ""
|
3451 |
|
3452 |
-
#: inc/core/helpers/helper-misc.php:
|
3453 |
msgid "Tweants"
|
3454 |
msgstr ""
|
3455 |
|
3456 |
-
#: inc/core/helpers/helper-misc.php:
|
3457 |
msgid "Uighur"
|
3458 |
msgstr ""
|
3459 |
|
3460 |
-
#: inc/core/helpers/helper-misc.php:
|
3461 |
msgid "Ukrainian"
|
3462 |
msgstr ""
|
3463 |
|
3464 |
-
#: inc/core/helpers/helper-misc.php:
|
3465 |
msgid "Urdu"
|
3466 |
msgstr ""
|
3467 |
|
3468 |
-
#: inc/core/helpers/helper-misc.php:
|
3469 |
msgid "Uzbek"
|
3470 |
msgstr ""
|
3471 |
|
3472 |
-
#: inc/core/helpers/helper-misc.php:
|
3473 |
msgid "Vietnamese"
|
3474 |
msgstr ""
|
3475 |
|
3476 |
-
#: inc/core/helpers/helper-misc.php:
|
3477 |
msgid "Walloon"
|
3478 |
msgstr ""
|
3479 |
|
3480 |
-
#: inc/core/helpers/helper-misc.php:
|
3481 |
msgid "Welsh"
|
3482 |
msgstr ""
|
3483 |
|
3484 |
-
#: inc/core/helpers/helper-misc.php:
|
3485 |
msgid "Yoruba"
|
3486 |
msgstr ""
|
3487 |
|
@@ -3632,6 +3635,10 @@ msgstr ""
|
|
3632 |
msgid "Close"
|
3633 |
msgstr ""
|
3634 |
|
|
|
|
|
|
|
|
|
3635 |
#: inc/core/templates/partials/form-confirm-preview.php:3
|
3636 |
msgid "Edit"
|
3637 |
msgstr ""
|
@@ -3747,7 +3754,7 @@ msgstr ""
|
|
3747 |
#: inc/core/templates/parts/customize-multi-line-text.php:20
|
3748 |
#: inc/core/templates/parts/customize-multi-line-text.php:60
|
3749 |
#: inc/core/templates/parts/customize-narrative.php:18
|
3750 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
3751 |
#: inc/core/templates/parts/customize-number.php:20
|
3752 |
#: inc/core/templates/parts/customize-number.php:87
|
3753 |
#: inc/core/templates/parts/customize-phone.php:20
|
@@ -3874,7 +3881,7 @@ msgstr ""
|
|
3874 |
#: inc/core/templates/parts/customize-email.php:48
|
3875 |
#: inc/core/templates/parts/customize-legal.php:6
|
3876 |
#: inc/core/templates/parts/customize-multi-line-text.php:52
|
3877 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
3878 |
#: inc/core/templates/parts/customize-number.php:79
|
3879 |
#: inc/core/templates/parts/customize-phone.php:71
|
3880 |
#: inc/core/templates/parts/customize-placeholder.php:29
|
@@ -3950,7 +3957,7 @@ msgstr ""
|
|
3950 |
#: inc/core/templates/parts/customize-email.php:49
|
3951 |
#: inc/core/templates/parts/customize-legal.php:7
|
3952 |
#: inc/core/templates/parts/customize-multi-line-text.php:53
|
3953 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
3954 |
#: inc/core/templates/parts/customize-number.php:80
|
3955 |
#: inc/core/templates/parts/customize-phone.php:72
|
3956 |
#: inc/core/templates/parts/customize-placeholder.php:30
|
@@ -3972,7 +3979,7 @@ msgstr ""
|
|
3972 |
#: inc/core/templates/parts/customize-email.php:50
|
3973 |
#: inc/core/templates/parts/customize-legal.php:8
|
3974 |
#: inc/core/templates/parts/customize-multi-line-text.php:54
|
3975 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
3976 |
#: inc/core/templates/parts/customize-number.php:81
|
3977 |
#: inc/core/templates/parts/customize-phone.php:73
|
3978 |
#: inc/core/templates/parts/customize-placeholder.php:31
|
@@ -3994,7 +4001,7 @@ msgstr ""
|
|
3994 |
#: inc/core/templates/parts/customize-email.php:51
|
3995 |
#: inc/core/templates/parts/customize-legal.php:9
|
3996 |
#: inc/core/templates/parts/customize-multi-line-text.php:55
|
3997 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
3998 |
#: inc/core/templates/parts/customize-number.php:82
|
3999 |
#: inc/core/templates/parts/customize-phone.php:74
|
4000 |
#: inc/core/templates/parts/customize-placeholder.php:32
|
@@ -4015,7 +4022,7 @@ msgstr ""
|
|
4015 |
#: inc/core/templates/parts/customize-email.php:60
|
4016 |
#: inc/core/templates/parts/customize-legal.php:18
|
4017 |
#: inc/core/templates/parts/customize-multi-line-text.php:64
|
4018 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
4019 |
#: inc/core/templates/parts/customize-number.php:91
|
4020 |
#: inc/core/templates/parts/customize-phone.php:83
|
4021 |
#: inc/core/templates/parts/customize-placeholder.php:41
|
@@ -4210,7 +4217,11 @@ msgstr ""
|
|
4210 |
msgid "Character count"
|
4211 |
msgstr ""
|
4212 |
|
4213 |
-
#: inc/core/templates/parts/customize-narrative.php:
|
|
|
|
|
|
|
|
|
4214 |
msgid "Each input is required"
|
4215 |
msgstr ""
|
4216 |
|
2 |
# This file is distributed under the same license as the HappyForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: HappyForms 1.7.8\n"
|
6 |
"Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
|
7 |
+
"POT-Creation-Date: 2019-04-11 13:04:47+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
178 |
msgid "Author"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: inc/core/classes/class-form-admin.php:258
|
182 |
+
#: inc/core/classes/class-happyforms-core.php:190
|
183 |
+
#: inc/core/classes/class-happyforms-core.php:191
|
184 |
+
#: inc/core/classes/class-message-controller.php:210
|
185 |
+
msgid "Responses"
|
186 |
+
msgstr ""
|
187 |
+
|
188 |
+
#: inc/core/classes/class-form-admin.php:307
|
189 |
msgid "Copy to clipboard"
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: inc/core/classes/class-form-admin.php:361
|
193 |
#: inc/core/templates/customize-form-steps.php:5
|
194 |
msgid "Build"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: inc/core/classes/class-form-admin.php:365
|
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:369
|
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:373
|
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:377
|
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:422
|
224 |
msgid "Form duplicated succesfully."
|
225 |
msgstr ""
|
226 |
|
230 |
|
231 |
#: inc/core/classes/class-form-controller.php:77
|
232 |
#: inc/core/classes/class-message-admin.php:397
|
233 |
+
#: inc/core/classes/class-message-admin.php:917
|
234 |
msgid "Form"
|
235 |
msgstr ""
|
236 |
|
270 |
msgid "Untitled form"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: inc/core/classes/class-form-controller.php:614
|
274 |
msgid " Copy"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: inc/core/classes/class-form-controller.php:792
|
278 |
+
#: inc/core/classes/class-message-controller.php:320
|
279 |
+
#: inc/core/classes/class-message-controller.php:423
|
280 |
+
#: inc/core/classes/class-message-controller.php:458
|
281 |
msgid "Oops! Your response is invalid — please review your message."
|
282 |
msgstr ""
|
283 |
|
284 |
+
#: inc/core/classes/class-form-part-library.php:197
|
285 |
msgid "Invalid data"
|
286 |
msgstr ""
|
287 |
|
288 |
+
#: inc/core/classes/class-form-part-library.php:204
|
289 |
msgid "Part definition not found"
|
290 |
msgstr ""
|
291 |
|
292 |
+
#: inc/core/classes/class-form-part-library.php:235
|
293 |
msgid "Missing validation callback for field %s"
|
294 |
msgstr ""
|
295 |
|
297 |
msgid "Thank you! Your response has been successfully submitted."
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: inc/core/classes/class-form-setup.php:82
|
301 |
msgid "You received a new message"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: inc/core/classes/class-form-setup.php:94
|
305 |
msgid "We received your message"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: inc/core/classes/class-form-setup.php:98
|
309 |
msgid ""
|
310 |
"Your message has been successfully sent. We appreciate you contacting us "
|
311 |
"and we’ll be in touch soon."
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: inc/core/classes/class-form-setup.php:118
|
315 |
msgid "(optional)"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: inc/core/classes/class-form-setup.php:122
|
319 |
msgid "Submit Form"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: inc/core/classes/class-form-setup.php:146
|
323 |
msgid "Validate your submission"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: inc/core/classes/class-form-setup.php:154
|
327 |
msgid "Review submission"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: inc/core/classes/class-form-setup.php:198
|
331 |
msgid "Confirmation message"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: inc/core/classes/class-form-setup.php:199
|
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:204
|
341 |
msgid "Receive submission alerts"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: inc/core/classes/class-form-setup.php:209
|
345 |
#: inc/core/templates/admin-tracking.php:15
|
346 |
msgid "Email address"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: inc/core/classes/class-form-setup.php:210
|
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:215
|
357 |
+
msgid "Email Bcc address"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: inc/core/classes/class-form-setup.php:216
|
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:221
|
368 |
+
#: inc/core/classes/class-form-setup.php:244
|
369 |
msgid "Email subject"
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: inc/core/classes/class-form-setup.php:222
|
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:227
|
379 |
msgid "Include mark and reply link"
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: inc/core/classes/class-form-setup.php:228
|
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:233
|
387 |
msgid "Send confirmation email"
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: inc/core/classes/class-form-setup.php:238
|
391 |
msgid "Email display name"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: inc/core/classes/class-form-setup.php:239
|
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:245
|
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:250
|
407 |
msgid "Email content"
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: inc/core/classes/class-form-setup.php:251
|
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:256
|
417 |
msgid "Optional part label"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: inc/core/classes/class-form-setup.php:261
|
421 |
msgid "Submit button label"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: inc/core/classes/class-form-setup.php:266
|
425 |
msgid "Submit button HTML class"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: inc/core/classes/class-form-setup.php:271
|
429 |
msgid "Set custom form HTML ID"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: inc/core/classes/class-form-setup.php:273
|
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:277
|
437 |
msgid "Form HTML ID"
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: inc/core/classes/class-form-setup.php:282
|
441 |
msgid "Redirect on complete"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: inc/core/classes/class-form-setup.php:283
|
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:288
|
451 |
msgid "On complete redirect link"
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: inc/core/classes/class-form-setup.php:293
|
455 |
+
msgid "Open redirect link in new tab"
|
456 |
+
msgstr ""
|
457 |
+
|
458 |
+
#: inc/core/classes/class-form-setup.php:298
|
459 |
msgid "Spam prevention"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: inc/core/classes/class-form-setup.php:299
|
463 |
msgid "Protect your form against bots by using HoneyPot security."
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: inc/core/classes/class-form-setup.php:305
|
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:308
|
473 |
msgid "Protect your form against bots using your Google ReCaptcha credentials."
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: inc/core/classes/class-form-setup.php:313
|
477 |
msgid "ReCaptcha site key"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: inc/core/classes/class-form-setup.php:318
|
481 |
msgid "ReCaptcha secret key"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: inc/core/classes/class-form-setup.php:323
|
485 |
msgid "ReCaptcha label"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: inc/core/classes/class-form-setup.php:328
|
489 |
msgid "Save responses"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: inc/core/classes/class-form-setup.php:329
|
493 |
msgid "Keep recipients responses stored in your WordPress database."
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: inc/core/classes/class-form-setup.php:334
|
497 |
msgid "Give each response an ID number"
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: inc/core/classes/class-form-setup.php:335
|
501 |
msgid "Tag responses with a unique, incremental identifier."
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: inc/core/classes/class-form-setup.php:340
|
505 |
msgid "Start counter from"
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: inc/core/classes/class-form-setup.php:341
|
509 |
msgid "Your next submission will be tagged with this identifier."
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: inc/core/classes/class-form-setup.php:347
|
513 |
#: inc/core/templates/parts/customize-number.php:72
|
514 |
msgid "Prefix"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: inc/core/classes/class-form-setup.php:352
|
518 |
msgid "Suffix"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: inc/core/classes/class-form-setup.php:357
|
522 |
msgid "Preview values before submission"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: inc/core/classes/class-form-setup.php:358
|
526 |
msgid "Let your users review their submission before confirming it."
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: inc/core/classes/class-form-setup.php:363
|
530 |
msgid "Review button text"
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: inc/core/classes/class-form-setup.php:368
|
534 |
msgid "Fade submit button until valid"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: inc/core/classes/class-form-setup.php:370
|
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:477
|
544 |
msgid "Please review your submission..."
|
545 |
msgstr ""
|
546 |
|
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:50
|
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
|
987 |
msgid "Add New"
|
988 |
msgstr ""
|
989 |
|
|
|
|
|
|
|
|
|
|
|
|
|
990 |
#: inc/core/classes/class-happyforms-core.php:198
|
991 |
#: inc/core/classes/class-happyforms-core.php:199
|
992 |
msgid "Welcome"
|
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 |
|
1102 |
msgstr ""
|
1103 |
|
1104 |
#: inc/core/classes/class-message-admin.php:348
|
1105 |
+
msgid "Number of items per page:"
|
1106 |
msgstr ""
|
1107 |
|
1108 |
#: inc/core/classes/class-message-admin.php:352
|
1110 |
msgstr ""
|
1111 |
|
1112 |
#: inc/core/classes/class-message-admin.php:353
|
1113 |
+
msgid "Number of columns to show:"
|
1114 |
msgstr ""
|
1115 |
|
1116 |
#: inc/core/classes/class-message-admin.php:394
|
1117 |
+
#: inc/core/classes/class-message-admin.php:781
|
1118 |
+
#: inc/core/classes/class-message-controller.php:677
|
|
|
|
|
1119 |
#: inc/core/templates/admin-message-edit.php:27
|
1120 |
+
#: inc/core/templates/email-owner.php:29 inc/core/templates/email-user.php:21
|
1121 |
msgid "Tracking number"
|
1122 |
msgstr ""
|
1123 |
|
1137 |
msgid "Export to CSV"
|
1138 |
msgstr ""
|
1139 |
|
1140 |
+
#: inc/core/classes/class-message-admin.php:716
|
1141 |
msgid "View"
|
1142 |
msgstr ""
|
1143 |
|
1144 |
+
#: inc/core/classes/class-message-admin.php:902
|
1145 |
msgid "Details"
|
1146 |
msgstr ""
|
1147 |
|
1148 |
+
#: inc/core/classes/class-message-admin.php:922
|
1149 |
msgid "Submitted on"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
+
#: inc/core/classes/class-message-admin.php:922
|
1153 |
msgid "M j, Y @ H:i"
|
1154 |
msgstr ""
|
1155 |
|
1156 |
+
#: inc/core/classes/class-message-controller.php:211
|
1157 |
msgid "Response"
|
1158 |
msgstr ""
|
1159 |
|
1160 |
+
#: inc/core/classes/class-message-controller.php:212
|
1161 |
msgid "Edit response"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
+
#: inc/core/classes/class-message-controller.php:214
|
1165 |
msgid "View Responses"
|
1166 |
msgstr ""
|
1167 |
|
1168 |
+
#: inc/core/classes/class-message-controller.php:215
|
1169 |
msgid "Search Responses"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
+
#: inc/core/classes/class-message-controller.php:216
|
1173 |
msgid "No response found"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
+
#: inc/core/classes/class-message-controller.php:217
|
1177 |
msgid "No response found in Trash"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
+
#: inc/core/classes/class-message-controller.php:218
|
1181 |
+
#: inc/core/classes/class-message-controller.php:219
|
1182 |
msgid "All Responses"
|
1183 |
msgstr ""
|
1184 |
|
|
|
|
|
|
|
|
|
1185 |
#: inc/core/classes/class-tracking.php:204
|
1186 |
msgid "Thank you!"
|
1187 |
msgstr ""
|
1277 |
msgstr ""
|
1278 |
|
1279 |
#: inc/core/classes/parts/class-part-address.php:196
|
1280 |
+
#: inc/core/classes/parts/class-part-checkbox.php:185
|
1281 |
#: inc/core/classes/parts/class-part-date.php:211
|
1282 |
#: inc/core/classes/parts/class-part-email.php:152
|
1283 |
#: inc/core/classes/parts/class-part-email.php:156
|
1288 |
#: inc/core/classes/parts/class-part-number.php:174
|
1289 |
#: inc/core/classes/parts/class-part-phone.php:166
|
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:196
|
1294 |
#: inc/core/classes/parts/class-part-scale.php:168
|
1301 |
msgid "This field is required."
|
1302 |
msgstr ""
|
1303 |
|
1304 |
+
#: inc/core/classes/parts/class-part-checkbox.php:10
|
1305 |
msgid "Multiple Choice"
|
1306 |
msgstr ""
|
1307 |
|
1308 |
+
#: inc/core/classes/parts/class-part-checkbox.php:11
|
1309 |
msgid "For checkboxes allowing multiple selections."
|
1310 |
msgstr ""
|
1311 |
|
1312 |
+
#: inc/core/classes/parts/class-part-checkbox.php:39
|
1313 |
+
#: inc/core/classes/parts/class-part-radio.php:40
|
1314 |
#: inc/core/classes/parts/class-part-table.php:32
|
1315 |
#: inc/core/templates/parts/customize-checkbox.php:34
|
1316 |
#: inc/core/templates/parts/customize-checkbox.php:38
|
1322 |
msgid "Options"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
+
#: inc/core/classes/parts/class-part-checkbox.php:193
|
1326 |
#: inc/core/classes/parts/class-part-table.php:240
|
1327 |
msgid "Checkbox values are not valid."
|
1328 |
msgstr ""
|
1456 |
msgid "For adding helper text, horizontal rules and extra space."
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: inc/core/classes/parts/class-part-radio.php:12
|
1460 |
msgid "Single Choice"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
+
#: inc/core/classes/parts/class-part-radio.php:13
|
1464 |
msgid "For radio buttons allowing one selection."
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: inc/core/classes/parts/class-part-radio.php:186
|
1468 |
+
#: inc/core/classes/parts/class-part-radio.php:192
|
1469 |
msgid "Radio value is not valid."
|
1470 |
msgstr ""
|
1471 |
|
1604 |
msgstr ""
|
1605 |
|
1606 |
#: inc/core/helpers/helper-activation.php:54
|
1607 |
+
msgid "Sample Form"
|
1608 |
msgstr ""
|
1609 |
|
1610 |
+
#: inc/core/helpers/helper-activation.php:84
|
1611 |
msgid "First name"
|
1612 |
msgstr ""
|
1613 |
|
1614 |
+
#: inc/core/helpers/helper-activation.php:89
|
1615 |
msgid "Last name"
|
1616 |
msgstr ""
|
1617 |
|
1618 |
+
#: inc/core/helpers/helper-activation.php:94
|
1619 |
msgid "What's your reason for contacting us?"
|
1620 |
msgstr ""
|
1621 |
|
1622 |
+
#: inc/core/helpers/helper-activation.php:97
|
1623 |
msgid "Need technical help"
|
1624 |
msgstr ""
|
1625 |
|
1626 |
+
#: inc/core/helpers/helper-activation.php:100
|
1627 |
msgid "Want to suggest a feature"
|
1628 |
msgstr ""
|
1629 |
|
1630 |
+
#: inc/core/helpers/helper-activation.php:103
|
1631 |
msgid "Asking about my account"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
+
#: inc/core/helpers/helper-activation.php:109
|
1635 |
+
msgid "What's your age?"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
+
#: inc/core/helpers/helper-activation.php:114
|
1639 |
msgid "Your message"
|
1640 |
msgstr ""
|
1641 |
|
1642 |
+
#: inc/core/helpers/helper-activation.php:148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1643 |
msgid "How can I access my premium upgrade credentials?"
|
1644 |
msgstr ""
|
1645 |
|
2940 |
msgid "Yugoslavia"
|
2941 |
msgstr ""
|
2942 |
|
2943 |
+
#: inc/core/helpers/helper-misc.php:725
|
2944 |
msgid "Response #%s"
|
2945 |
msgstr ""
|
2946 |
|
2947 |
+
#: inc/core/helpers/helper-misc.php:776
|
2948 |
msgid "Afrikaans"
|
2949 |
msgstr ""
|
2950 |
|
2951 |
+
#: inc/core/helpers/helper-misc.php:777
|
2952 |
msgid "Akan"
|
2953 |
msgstr ""
|
2954 |
|
2955 |
+
#: inc/core/helpers/helper-misc.php:778
|
2956 |
msgid "Albanian"
|
2957 |
msgstr ""
|
2958 |
|
2959 |
+
#: inc/core/helpers/helper-misc.php:779
|
2960 |
msgid "Algerian Arabic"
|
2961 |
msgstr ""
|
2962 |
|
2963 |
+
#: inc/core/helpers/helper-misc.php:780
|
2964 |
msgid "Amharic"
|
2965 |
msgstr ""
|
2966 |
|
2967 |
+
#: inc/core/helpers/helper-misc.php:781
|
2968 |
msgid "Arabic"
|
2969 |
msgstr ""
|
2970 |
|
2971 |
+
#: inc/core/helpers/helper-misc.php:782
|
2972 |
msgid "Armenian"
|
2973 |
msgstr ""
|
2974 |
|
2975 |
+
#: inc/core/helpers/helper-misc.php:783
|
2976 |
msgid "Aromanian"
|
2977 |
msgstr ""
|
2978 |
|
2979 |
+
#: inc/core/helpers/helper-misc.php:784
|
2980 |
msgid "Arpitan"
|
2981 |
msgstr ""
|
2982 |
|
2983 |
+
#: inc/core/helpers/helper-misc.php:785
|
2984 |
msgid "Assamese"
|
2985 |
msgstr ""
|
2986 |
|
2987 |
+
#: inc/core/helpers/helper-misc.php:786
|
2988 |
msgid "Azerbaijani"
|
2989 |
msgstr ""
|
2990 |
|
2991 |
+
#: inc/core/helpers/helper-misc.php:787
|
2992 |
msgid "Balochi Southern"
|
2993 |
msgstr ""
|
2994 |
|
2995 |
+
#: inc/core/helpers/helper-misc.php:788
|
2996 |
msgid "Bashkir"
|
2997 |
msgstr ""
|
2998 |
|
2999 |
+
#: inc/core/helpers/helper-misc.php:789
|
3000 |
msgid "Basque"
|
3001 |
msgstr ""
|
3002 |
|
3003 |
+
#: inc/core/helpers/helper-misc.php:790
|
3004 |
msgid "Belarusian"
|
3005 |
msgstr ""
|
3006 |
|
3007 |
+
#: inc/core/helpers/helper-misc.php:791
|
3008 |
msgid "Bengali"
|
3009 |
msgstr ""
|
3010 |
|
3011 |
+
#: inc/core/helpers/helper-misc.php:792
|
3012 |
msgid "Bosnian"
|
3013 |
msgstr ""
|
3014 |
|
3015 |
+
#: inc/core/helpers/helper-misc.php:793
|
3016 |
msgid "Breton"
|
3017 |
msgstr ""
|
3018 |
|
3019 |
+
#: inc/core/helpers/helper-misc.php:794
|
3020 |
msgid "Bulgarian"
|
3021 |
msgstr ""
|
3022 |
|
3023 |
+
#: inc/core/helpers/helper-misc.php:795
|
3024 |
msgid "Catalan"
|
3025 |
msgstr ""
|
3026 |
|
3027 |
+
#: inc/core/helpers/helper-misc.php:796
|
3028 |
msgid "Cebuano"
|
3029 |
msgstr ""
|
3030 |
|
3031 |
+
#: inc/core/helpers/helper-misc.php:797
|
3032 |
msgid "Chinese"
|
3033 |
msgstr ""
|
3034 |
|
3035 |
+
#: inc/core/helpers/helper-misc.php:798
|
3036 |
msgid "Corsican"
|
3037 |
msgstr ""
|
3038 |
|
3039 |
+
#: inc/core/helpers/helper-misc.php:799
|
3040 |
msgid "Croatian"
|
3041 |
msgstr ""
|
3042 |
|
3043 |
+
#: inc/core/helpers/helper-misc.php:800
|
3044 |
msgid "Czech"
|
3045 |
msgstr ""
|
3046 |
|
3047 |
+
#: inc/core/helpers/helper-misc.php:801
|
3048 |
msgid "Danish"
|
3049 |
msgstr ""
|
3050 |
|
3051 |
+
#: inc/core/helpers/helper-misc.php:802
|
3052 |
msgid "Dhivehi"
|
3053 |
msgstr ""
|
3054 |
|
3055 |
+
#: inc/core/helpers/helper-misc.php:803
|
3056 |
msgid "Dutch"
|
3057 |
msgstr ""
|
3058 |
|
3059 |
+
#: inc/core/helpers/helper-misc.php:804
|
3060 |
msgid "Dzongkha"
|
3061 |
msgstr ""
|
3062 |
|
3063 |
+
#: inc/core/helpers/helper-misc.php:805
|
3064 |
msgid "English"
|
3065 |
msgstr ""
|
3066 |
|
3067 |
+
#: inc/core/helpers/helper-misc.php:806
|
3068 |
msgid "Esperanto"
|
3069 |
msgstr ""
|
3070 |
|
3071 |
+
#: inc/core/helpers/helper-misc.php:807
|
3072 |
msgid "Estonian"
|
3073 |
msgstr ""
|
3074 |
|
3075 |
+
#: inc/core/helpers/helper-misc.php:808
|
3076 |
msgid "Faroese"
|
3077 |
msgstr ""
|
3078 |
|
3079 |
+
#: inc/core/helpers/helper-misc.php:809
|
3080 |
msgid "Finnish"
|
3081 |
msgstr ""
|
3082 |
|
3083 |
+
#: inc/core/helpers/helper-misc.php:810
|
3084 |
msgid "French"
|
3085 |
msgstr ""
|
3086 |
|
3087 |
+
#: inc/core/helpers/helper-misc.php:811
|
3088 |
msgid "Frisian"
|
3089 |
msgstr ""
|
3090 |
|
3091 |
+
#: inc/core/helpers/helper-misc.php:812
|
3092 |
msgid "Friulian"
|
3093 |
msgstr ""
|
3094 |
|
3095 |
+
#: inc/core/helpers/helper-misc.php:813
|
3096 |
msgid "Fulah"
|
3097 |
msgstr ""
|
3098 |
|
3099 |
+
#: inc/core/helpers/helper-misc.php:814
|
3100 |
msgid "Galician"
|
3101 |
msgstr ""
|
3102 |
|
3103 |
+
#: inc/core/helpers/helper-misc.php:815
|
3104 |
msgid "Georgian"
|
3105 |
msgstr ""
|
3106 |
|
3107 |
+
#: inc/core/helpers/helper-misc.php:816
|
3108 |
msgid "German"
|
3109 |
msgstr ""
|
3110 |
|
3111 |
+
#: inc/core/helpers/helper-misc.php:817
|
3112 |
msgid "Greek"
|
3113 |
msgstr ""
|
3114 |
|
3115 |
+
#: inc/core/helpers/helper-misc.php:818
|
3116 |
msgid "Greenlandic"
|
3117 |
msgstr ""
|
3118 |
|
3119 |
+
#: inc/core/helpers/helper-misc.php:819
|
3120 |
msgid "Guaraní"
|
3121 |
msgstr ""
|
3122 |
|
3123 |
+
#: inc/core/helpers/helper-misc.php:820
|
3124 |
msgid "Gujarati"
|
3125 |
msgstr ""
|
3126 |
|
3127 |
+
#: inc/core/helpers/helper-misc.php:821
|
3128 |
msgid "Hawaiian"
|
3129 |
msgstr ""
|
3130 |
|
3131 |
+
#: inc/core/helpers/helper-misc.php:822
|
3132 |
msgid "Hazaragi"
|
3133 |
msgstr ""
|
3134 |
|
3135 |
+
#: inc/core/helpers/helper-misc.php:823
|
3136 |
msgid "Hebrew"
|
3137 |
msgstr ""
|
3138 |
|
3139 |
+
#: inc/core/helpers/helper-misc.php:824
|
3140 |
msgid "Hindi"
|
3141 |
msgstr ""
|
3142 |
|
3143 |
+
#: inc/core/helpers/helper-misc.php:825
|
3144 |
msgid "Hungarian"
|
3145 |
msgstr ""
|
3146 |
|
3147 |
+
#: inc/core/helpers/helper-misc.php:826
|
3148 |
msgid "Icelandic"
|
3149 |
msgstr ""
|
3150 |
|
3151 |
+
#: inc/core/helpers/helper-misc.php:827
|
3152 |
msgid "Ido"
|
3153 |
msgstr ""
|
3154 |
|
3155 |
+
#: inc/core/helpers/helper-misc.php:828
|
3156 |
msgid "Indonesian"
|
3157 |
msgstr ""
|
3158 |
|
3159 |
+
#: inc/core/helpers/helper-misc.php:829
|
3160 |
msgid "Irish"
|
3161 |
msgstr ""
|
3162 |
|
3163 |
+
#: inc/core/helpers/helper-misc.php:830
|
3164 |
msgid "Italian"
|
3165 |
msgstr ""
|
3166 |
|
3167 |
+
#: inc/core/helpers/helper-misc.php:831
|
3168 |
msgid "Japanese"
|
3169 |
msgstr ""
|
3170 |
|
3171 |
+
#: inc/core/helpers/helper-misc.php:832
|
3172 |
msgid "Javanese"
|
3173 |
msgstr ""
|
3174 |
|
3175 |
+
#: inc/core/helpers/helper-misc.php:833
|
3176 |
msgid "Kabyle"
|
3177 |
msgstr ""
|
3178 |
|
3179 |
+
#: inc/core/helpers/helper-misc.php:834
|
3180 |
msgid "Kannada"
|
3181 |
msgstr ""
|
3182 |
|
3183 |
+
#: inc/core/helpers/helper-misc.php:835
|
3184 |
msgid "Kazakh"
|
3185 |
msgstr ""
|
3186 |
|
3187 |
+
#: inc/core/helpers/helper-misc.php:836
|
3188 |
msgid "Khmer"
|
3189 |
msgstr ""
|
3190 |
|
3191 |
+
#: inc/core/helpers/helper-misc.php:837
|
3192 |
msgid "Kinyarwanda"
|
3193 |
msgstr ""
|
3194 |
|
3195 |
+
#: inc/core/helpers/helper-misc.php:838
|
3196 |
msgid "Kirghiz"
|
3197 |
msgstr ""
|
3198 |
|
3199 |
+
#: inc/core/helpers/helper-misc.php:839
|
3200 |
msgid "Korean"
|
3201 |
msgstr ""
|
3202 |
|
3203 |
+
#: inc/core/helpers/helper-misc.php:840
|
3204 |
msgid "Kurdish"
|
3205 |
msgstr ""
|
3206 |
|
3207 |
+
#: inc/core/helpers/helper-misc.php:841
|
3208 |
msgid "Lao"
|
3209 |
msgstr ""
|
3210 |
|
3211 |
+
#: inc/core/helpers/helper-misc.php:842
|
3212 |
msgid "Latvian"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
+
#: inc/core/helpers/helper-misc.php:843
|
3216 |
msgid "Limburgish"
|
3217 |
msgstr ""
|
3218 |
|
3219 |
+
#: inc/core/helpers/helper-misc.php:844
|
3220 |
msgid "Lingala"
|
3221 |
msgstr ""
|
3222 |
|
3223 |
+
#: inc/core/helpers/helper-misc.php:845
|
3224 |
msgid "Lithuanian"
|
3225 |
msgstr ""
|
3226 |
|
3227 |
+
#: inc/core/helpers/helper-misc.php:846
|
3228 |
msgid "Luxembourgish"
|
3229 |
msgstr ""
|
3230 |
|
3231 |
+
#: inc/core/helpers/helper-misc.php:847
|
3232 |
msgid "Macedonian"
|
3233 |
msgstr ""
|
3234 |
|
3235 |
+
#: inc/core/helpers/helper-misc.php:848
|
3236 |
msgid "Malagasy"
|
3237 |
msgstr ""
|
3238 |
|
3239 |
+
#: inc/core/helpers/helper-misc.php:849
|
3240 |
msgid "Malay"
|
3241 |
msgstr ""
|
3242 |
|
3243 |
+
#: inc/core/helpers/helper-misc.php:850
|
3244 |
msgid "Malayalam"
|
3245 |
msgstr ""
|
3246 |
|
3247 |
+
#: inc/core/helpers/helper-misc.php:851
|
3248 |
msgid "Maori"
|
3249 |
msgstr ""
|
3250 |
|
3251 |
+
#: inc/core/helpers/helper-misc.php:852
|
3252 |
msgid "Marathi"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
+
#: inc/core/helpers/helper-misc.php:853
|
3256 |
msgid "Mingrelian"
|
3257 |
msgstr ""
|
3258 |
|
3259 |
+
#: inc/core/helpers/helper-misc.php:854
|
3260 |
msgid "Mongolian"
|
3261 |
msgstr ""
|
3262 |
|
3263 |
+
#: inc/core/helpers/helper-misc.php:855
|
3264 |
msgid "Montenegrin"
|
3265 |
msgstr ""
|
3266 |
|
3267 |
+
#: inc/core/helpers/helper-misc.php:856
|
3268 |
msgid "Moroccan Arabic"
|
3269 |
msgstr ""
|
3270 |
|
3271 |
+
#: inc/core/helpers/helper-misc.php:857
|
3272 |
msgid "Myanmar (Burmese)"
|
3273 |
msgstr ""
|
3274 |
|
3275 |
+
#: inc/core/helpers/helper-misc.php:858
|
3276 |
msgid "Nepali"
|
3277 |
msgstr ""
|
3278 |
|
3279 |
+
#: inc/core/helpers/helper-misc.php:859
|
3280 |
msgid "Norwegian (Bokmål)"
|
3281 |
msgstr ""
|
3282 |
|
3283 |
+
#: inc/core/helpers/helper-misc.php:860
|
3284 |
msgid "Norwegian (Nynorsk)"
|
3285 |
msgstr ""
|
3286 |
|
3287 |
+
#: inc/core/helpers/helper-misc.php:861
|
3288 |
msgid "Occitan"
|
3289 |
msgstr ""
|
3290 |
|
3291 |
+
#: inc/core/helpers/helper-misc.php:862
|
3292 |
msgid "Oriya"
|
3293 |
msgstr ""
|
3294 |
|
3295 |
+
#: inc/core/helpers/helper-misc.php:863
|
3296 |
msgid "Ossetic"
|
3297 |
msgstr ""
|
3298 |
|
3299 |
+
#: inc/core/helpers/helper-misc.php:864
|
3300 |
msgid "Pashto"
|
3301 |
msgstr ""
|
3302 |
|
3303 |
+
#: inc/core/helpers/helper-misc.php:865
|
3304 |
msgid "Persian"
|
3305 |
msgstr ""
|
3306 |
|
3307 |
+
#: inc/core/helpers/helper-misc.php:866
|
3308 |
msgid "Polish"
|
3309 |
msgstr ""
|
3310 |
|
3311 |
+
#: inc/core/helpers/helper-misc.php:867
|
3312 |
msgid "Portuguese"
|
3313 |
msgstr ""
|
3314 |
|
3315 |
+
#: inc/core/helpers/helper-misc.php:868
|
3316 |
msgid "Punjabi"
|
3317 |
msgstr ""
|
3318 |
|
3319 |
+
#: inc/core/helpers/helper-misc.php:869
|
3320 |
msgid "Rohingya"
|
3321 |
msgstr ""
|
3322 |
|
3323 |
+
#: inc/core/helpers/helper-misc.php:870
|
3324 |
msgid "Romanian"
|
3325 |
msgstr ""
|
3326 |
|
3327 |
+
#: inc/core/helpers/helper-misc.php:871
|
3328 |
msgid "Romansh Vallader"
|
3329 |
msgstr ""
|
3330 |
|
3331 |
+
#: inc/core/helpers/helper-misc.php:872
|
3332 |
msgid "Russian"
|
3333 |
msgstr ""
|
3334 |
|
3335 |
+
#: inc/core/helpers/helper-misc.php:873
|
3336 |
msgid "Rusyn"
|
3337 |
msgstr ""
|
3338 |
|
3339 |
+
#: inc/core/helpers/helper-misc.php:874
|
3340 |
msgid "Sakha"
|
3341 |
msgstr ""
|
3342 |
|
3343 |
+
#: inc/core/helpers/helper-misc.php:875
|
3344 |
msgid "Sanskrit"
|
3345 |
msgstr ""
|
3346 |
|
3347 |
+
#: inc/core/helpers/helper-misc.php:876
|
3348 |
msgid "Sardinian"
|
3349 |
msgstr ""
|
3350 |
|
3351 |
+
#: inc/core/helpers/helper-misc.php:877
|
3352 |
msgid "Scottish Gaelic"
|
3353 |
msgstr ""
|
3354 |
|
3355 |
+
#: inc/core/helpers/helper-misc.php:878
|
3356 |
msgid "Serbian"
|
3357 |
msgstr ""
|
3358 |
|
3359 |
+
#: inc/core/helpers/helper-misc.php:879
|
3360 |
msgid "Silesian"
|
3361 |
msgstr ""
|
3362 |
|
3363 |
+
#: inc/core/helpers/helper-misc.php:880
|
3364 |
msgid "Sindhi"
|
3365 |
msgstr ""
|
3366 |
|
3367 |
+
#: inc/core/helpers/helper-misc.php:881
|
3368 |
msgid "Sinhala"
|
3369 |
msgstr ""
|
3370 |
|
3371 |
+
#: inc/core/helpers/helper-misc.php:882
|
3372 |
msgid "Slovak"
|
3373 |
msgstr ""
|
3374 |
|
3375 |
+
#: inc/core/helpers/helper-misc.php:883
|
3376 |
msgid "Slovenian"
|
3377 |
msgstr ""
|
3378 |
|
3379 |
+
#: inc/core/helpers/helper-misc.php:884
|
3380 |
msgid "Somali"
|
3381 |
msgstr ""
|
3382 |
|
3383 |
+
#: inc/core/helpers/helper-misc.php:885
|
3384 |
msgid "South Azerbaijani"
|
3385 |
msgstr ""
|
3386 |
|
3387 |
+
#: inc/core/helpers/helper-misc.php:886
|
3388 |
msgid "Spanish"
|
3389 |
msgstr ""
|
3390 |
|
3391 |
+
#: inc/core/helpers/helper-misc.php:887
|
3392 |
msgid "Sundanese"
|
3393 |
msgstr ""
|
3394 |
|
3395 |
+
#: inc/core/helpers/helper-misc.php:888
|
3396 |
msgid "Swahili"
|
3397 |
msgstr ""
|
3398 |
|
3399 |
+
#: inc/core/helpers/helper-misc.php:889
|
3400 |
msgid "Swedish"
|
3401 |
msgstr ""
|
3402 |
|
3403 |
+
#: inc/core/helpers/helper-misc.php:890
|
3404 |
msgid "Swiss German"
|
3405 |
msgstr ""
|
3406 |
|
3407 |
+
#: inc/core/helpers/helper-misc.php:891
|
3408 |
msgid "Tagalog"
|
3409 |
msgstr ""
|
3410 |
|
3411 |
+
#: inc/core/helpers/helper-misc.php:892
|
3412 |
msgid "Tahitian"
|
3413 |
msgstr ""
|
3414 |
|
3415 |
+
#: inc/core/helpers/helper-misc.php:893
|
3416 |
msgid "Tajik"
|
3417 |
msgstr ""
|
3418 |
|
3419 |
+
#: inc/core/helpers/helper-misc.php:894
|
3420 |
msgid "Tamazight"
|
3421 |
msgstr ""
|
3422 |
|
3423 |
+
#: inc/core/helpers/helper-misc.php:895
|
3424 |
msgid "Tamil"
|
3425 |
msgstr ""
|
3426 |
|
3427 |
+
#: inc/core/helpers/helper-misc.php:896
|
3428 |
msgid "Tatar"
|
3429 |
msgstr ""
|
3430 |
|
3431 |
+
#: inc/core/helpers/helper-misc.php:897
|
3432 |
msgid "Telugu"
|
3433 |
msgstr ""
|
3434 |
|
3435 |
+
#: inc/core/helpers/helper-misc.php:898
|
3436 |
msgid "Thai"
|
3437 |
msgstr ""
|
3438 |
|
3439 |
+
#: inc/core/helpers/helper-misc.php:899
|
3440 |
msgid "Tibetan"
|
3441 |
msgstr ""
|
3442 |
|
3443 |
+
#: inc/core/helpers/helper-misc.php:900
|
3444 |
msgid "Tigrinya"
|
3445 |
msgstr ""
|
3446 |
|
3447 |
+
#: inc/core/helpers/helper-misc.php:901
|
3448 |
msgid "Turkish"
|
3449 |
msgstr ""
|
3450 |
|
3451 |
+
#: inc/core/helpers/helper-misc.php:902
|
3452 |
msgid "Turkmen"
|
3453 |
msgstr ""
|
3454 |
|
3455 |
+
#: inc/core/helpers/helper-misc.php:903
|
3456 |
msgid "Tweants"
|
3457 |
msgstr ""
|
3458 |
|
3459 |
+
#: inc/core/helpers/helper-misc.php:904
|
3460 |
msgid "Uighur"
|
3461 |
msgstr ""
|
3462 |
|
3463 |
+
#: inc/core/helpers/helper-misc.php:905
|
3464 |
msgid "Ukrainian"
|
3465 |
msgstr ""
|
3466 |
|
3467 |
+
#: inc/core/helpers/helper-misc.php:906
|
3468 |
msgid "Urdu"
|
3469 |
msgstr ""
|
3470 |
|
3471 |
+
#: inc/core/helpers/helper-misc.php:907
|
3472 |
msgid "Uzbek"
|
3473 |
msgstr ""
|
3474 |
|
3475 |
+
#: inc/core/helpers/helper-misc.php:908
|
3476 |
msgid "Vietnamese"
|
3477 |
msgstr ""
|
3478 |
|
3479 |
+
#: inc/core/helpers/helper-misc.php:909
|
3480 |
msgid "Walloon"
|
3481 |
msgstr ""
|
3482 |
|
3483 |
+
#: inc/core/helpers/helper-misc.php:910
|
3484 |
msgid "Welsh"
|
3485 |
msgstr ""
|
3486 |
|
3487 |
+
#: inc/core/helpers/helper-misc.php:911
|
3488 |
msgid "Yoruba"
|
3489 |
msgstr ""
|
3490 |
|
3635 |
msgid "Close"
|
3636 |
msgstr ""
|
3637 |
|
3638 |
+
#: inc/core/templates/email-owner.php:45
|
3639 |
+
msgid "Reply to this message and mark it as read"
|
3640 |
+
msgstr ""
|
3641 |
+
|
3642 |
#: inc/core/templates/partials/form-confirm-preview.php:3
|
3643 |
msgid "Edit"
|
3644 |
msgstr ""
|
3754 |
#: inc/core/templates/parts/customize-multi-line-text.php:20
|
3755 |
#: inc/core/templates/parts/customize-multi-line-text.php:60
|
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
|
3759 |
#: inc/core/templates/parts/customize-number.php:87
|
3760 |
#: inc/core/templates/parts/customize-phone.php:20
|
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:52
|
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
|
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:53
|
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
|
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:54
|
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
|
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:55
|
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
|
4007 |
#: inc/core/templates/parts/customize-placeholder.php:32
|
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:64
|
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
|
4217 |
msgid "Character count"
|
4218 |
msgstr ""
|
4219 |
|
4220 |
+
#: inc/core/templates/parts/customize-narrative.php:24
|
4221 |
+
msgid "Text between brackets is turned into input placeholders."
|
4222 |
+
msgstr ""
|
4223 |
+
|
4224 |
+
#: inc/core/templates/parts/customize-narrative.php:28
|
4225 |
msgid "Each input is required"
|
4226 |
msgstr ""
|
4227 |
|
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,14 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more po
|
|
99 |
|
100 |
== Changelog ==
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
= 1.7.7 =
|
103 |
* Bugfix: Form was scrolling to the top of the page after a submission.
|
104 |
|
@@ -455,6 +463,9 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more po
|
|
455 |
|
456 |
== Upgrade Notice ==
|
457 |
|
|
|
|
|
|
|
458 |
= 1.7.7 =
|
459 |
* Bug fixes.
|
460 |
|
5 |
Requires at least: 4.8
|
6 |
Tested up to: 5.1
|
7 |
Requires PHP: 5.3
|
8 |
+
Stable tag: 1.7.8
|
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.8 =
|
103 |
+
* New feature: It's now possible to configure Bcc addresses for email alerts.
|
104 |
+
* New feature: Narrative part now supports input placeholders between brackets.
|
105 |
+
* New feature: Open redirect link in a new tab.
|
106 |
+
* Improvement: Better sample forms and responses created when activating plugin for the first time.
|
107 |
+
* Improvement: Various improvements to form styles and alignment.
|
108 |
+
* Bugfix: Forms created in 1.6.x versions weren't working because of a data format error.
|
109 |
+
|
110 |
= 1.7.7 =
|
111 |
* Bugfix: Form was scrolling to the top of the page after a submission.
|
112 |
|
463 |
|
464 |
== Upgrade Notice ==
|
465 |
|
466 |
+
= 1.7.8 =
|
467 |
+
* Bcc email support, Narrative part placeholders, open redirect link in a new tab, bugfixes.
|
468 |
+
|
469 |
= 1.7.7 =
|
470 |
* Bug fixes.
|
471 |
|