Version Description
- New feature: Rows control added to Long Answer field.
- Improvement: New icons for form fields in form builder.
- Improvement: Various improvements to form builder and front-end styles.
- Bugfix: Sorting fields in form builder made the container always scroll to top instead of preserving its scrolling position.
- Bugfix: When suffix was set on a field with tooltip, the tooltip icon and suffix were overlapping.
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.9.13 |
Comparing to | |
See all releases |
Code changes from version 1.9.12 to 1.9.13
- core/assets/css/admin.css +3 -2
- core/assets/css/color.css +16 -2
- core/assets/css/customize.css +5 -1
- core/assets/css/layout.css +30 -23
- core/assets/css/preview.css +1 -1
- core/assets/js/parts/part-checkbox.js +9 -7
- core/assets/js/parts/part-multi-line-text.js +20 -1
- core/assets/js/parts/part-radio.js +9 -7
- core/assets/js/parts/part-select.js +9 -7
- core/classes/class-cache.php +59 -0
- core/classes/class-form-admin.php +4 -32
- core/classes/class-form-controller.php +15 -11
- core/classes/class-form-part-library.php +1 -1
- core/classes/class-form-setup.php +4 -10
- core/classes/class-form-styles.php +4 -4
- core/classes/class-happyforms-core.php +3 -0
- core/classes/parts/class-part-email.php +1 -1
- core/classes/parts/class-part-multi-line-text.php +5 -1
- core/classes/parts/class-part-single-line-text.php +1 -1
- core/helpers/helper-activation.php +2 -1
- core/helpers/helper-misc.php +18 -2
- core/templates/customize-form-build.php +2 -2
- core/templates/customize-form-parts-drawer.php +2 -2
- core/templates/parts/customize-checkbox.php +1 -1
- core/templates/parts/customize-email.php +5 -5
- core/templates/parts/customize-multi-line-text.php +7 -3
- core/templates/parts/customize-number.php +4 -4
- core/templates/parts/customize-select.php +4 -4
- core/templates/parts/customize-single-line-text.php +4 -4
- core/templates/parts/frontend-multi-line-text.php +1 -1
- happyforms.php +2 -2
- inc/assets/css/admin.css +0 -15
- inc/assets/js/admin/dashboard.js +0 -9
- inc/assets/js/customize.js +0 -13
- inc/classes/class-happyforms.php +2 -62
- inc/classes/parts/class-part-attachment-dummy.php +4 -4
- inc/classes/parts/class-part-date-dummy.php +4 -4
- inc/classes/parts/class-part-legal-dummy.php +1 -1
- inc/classes/parts/class-part-mailchimp-dummy.php +1 -1
- inc/classes/parts/class-part-phone-dummy.php +4 -4
- inc/classes/parts/class-part-rating-dummy.php +4 -4
- inc/classes/parts/class-part-scale-dummy.php +4 -4
- inc/classes/parts/class-part-table-dummy.php +4 -4
- languages/happyforms.pot +163 -182
- readme.txt +18 -8
core/assets/css/admin.css
CHANGED
@@ -251,6 +251,7 @@ p.welcome-panel-footer a:active {
|
|
251 |
border-left-color: #46b450;
|
252 |
}
|
253 |
|
254 |
-
.type-happyform
|
255 |
-
|
|
|
256 |
}
|
251 |
border-left-color: #46b450;
|
252 |
}
|
253 |
|
254 |
+
.post-type-happyform input[type="number"],
|
255 |
+
.post-type-happyforms-message input[type="number"] {
|
256 |
+
padding-right: 0;
|
257 |
}
|
core/assets/css/color.css
CHANGED
@@ -374,6 +374,19 @@
|
|
374 |
color: var(--happyforms-color-choice-checkmark-color);
|
375 |
}
|
376 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
/* parts - select */
|
378 |
|
379 |
.happyforms-styles .happyforms-part__select-bg {
|
@@ -446,6 +459,7 @@
|
|
446 |
background: #000;
|
447 |
background: var(--happyforms-color-submit-background-hover);
|
448 |
text-transform: none;
|
|
|
449 |
color: #fff;
|
450 |
color: var(--happyforms-color-submit-text-hover);
|
451 |
}
|
@@ -692,12 +706,12 @@
|
|
692 |
|
693 |
.happyforms-styles.happyforms-form--submit-button-border-radius-square input[type=submit].happyforms-button--submit,
|
694 |
.happyforms-styles.happyforms-form--submit-button-border-radius-square input[type=submit].happyforms-button--submit:hover {
|
695 |
-
border-radius: 0;
|
696 |
}
|
697 |
|
698 |
.happyforms-styles.happyforms-form--submit-button-border-radius-pill input[type=submit].happyforms-button--submit,
|
699 |
.happyforms-styles.happyforms-form--submit-button-border-radius-pill input[type=submit].happyforms-button--submit:hover {
|
700 |
-
border-radius: 60px;
|
701 |
}
|
702 |
|
703 |
.happyforms-styles.happyforms-form--submit-button-bold .happyforms-part--submit input[type=submit] {
|
374 |
color: var(--happyforms-color-choice-checkmark-color);
|
375 |
}
|
376 |
|
377 |
+
.happyforms-radio-circle {
|
378 |
+
display: none;
|
379 |
+
width: 7px;
|
380 |
+
height: 7px;
|
381 |
+
border-radius: 50%;
|
382 |
+
background-color: #fff;
|
383 |
+
background-color: var(--happyforms-color-choice-checkmark-color);
|
384 |
+
}
|
385 |
+
|
386 |
+
.happyforms-styles .happyforms-part--radio input:checked+.checkmark .happyforms-radio-circle {
|
387 |
+
display: block;
|
388 |
+
}
|
389 |
+
|
390 |
/* parts - select */
|
391 |
|
392 |
.happyforms-styles .happyforms-part__select-bg {
|
459 |
background: #000;
|
460 |
background: var(--happyforms-color-submit-background-hover);
|
461 |
text-transform: none;
|
462 |
+
text-decoration: none;
|
463 |
color: #fff;
|
464 |
color: var(--happyforms-color-submit-text-hover);
|
465 |
}
|
706 |
|
707 |
.happyforms-styles.happyforms-form--submit-button-border-radius-square input[type=submit].happyforms-button--submit,
|
708 |
.happyforms-styles.happyforms-form--submit-button-border-radius-square input[type=submit].happyforms-button--submit:hover {
|
709 |
+
border-radius: 0 !important;
|
710 |
}
|
711 |
|
712 |
.happyforms-styles.happyforms-form--submit-button-border-radius-pill input[type=submit].happyforms-button--submit,
|
713 |
.happyforms-styles.happyforms-form--submit-button-border-radius-pill input[type=submit].happyforms-button--submit:hover {
|
714 |
+
border-radius: 60px !important;
|
715 |
}
|
716 |
|
717 |
.happyforms-styles.happyforms-form--submit-button-bold .happyforms-part--submit input[type=submit] {
|
core/assets/css/customize.css
CHANGED
@@ -22,6 +22,10 @@
|
|
22 |
border-bottom: 0;
|
23 |
}
|
24 |
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
*
|
27 |
* Header actions
|
@@ -937,7 +941,7 @@ ul.happyforms-parts-list li.happyforms-parts-list-item {
|
|
937 |
}
|
938 |
|
939 |
ul.happyforms-parts-list li.happyforms-parts-list-item.hidden {
|
940 |
-
display: none;
|
941 |
}
|
942 |
|
943 |
ul.happyforms-parts-list li.happyforms-parts-list-item:first-child {
|
22 |
border-bottom: 0;
|
23 |
}
|
24 |
|
25 |
+
.happyforms-stack-view input[type="number"] {
|
26 |
+
padding-right: 0;
|
27 |
+
}
|
28 |
+
|
29 |
/**
|
30 |
*
|
31 |
* Header actions
|
941 |
}
|
942 |
|
943 |
ul.happyforms-parts-list li.happyforms-parts-list-item.hidden {
|
944 |
+
display: none !important;
|
945 |
}
|
946 |
|
947 |
ul.happyforms-parts-list li.happyforms-parts-list-item:first-child {
|
core/assets/css/layout.css
CHANGED
@@ -246,6 +246,10 @@ h3.happyforms-form__title {
|
|
246 |
max-width: none;
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
249 |
.happyforms-form--part-value-text-align-center .happyforms-part input[type=text],
|
250 |
.happyforms-form--part-value-text-align-center .happyforms-part input[type=password],
|
251 |
.happyforms-form--part-value-text-align-center .happyforms-part input[type=email],
|
@@ -427,21 +431,6 @@ h3.happyforms-form__title {
|
|
427 |
margin-right: 20px;
|
428 |
}
|
429 |
|
430 |
-
.happyforms-part--choice .happyforms-part-option--other .option-label .label {
|
431 |
-
margin-right: 0;
|
432 |
-
}
|
433 |
-
|
434 |
-
.happyforms-part--choice .happyforms-part-option--other .option-label .label:after {
|
435 |
-
content: ':';
|
436 |
-
}
|
437 |
-
|
438 |
-
.happyforms-part--choice .happyforms-part-option--other .option-label input[type=text] {
|
439 |
-
flex: 1 0;
|
440 |
-
padding-left: 0 !important;
|
441 |
-
padding-right: 0 !important;
|
442 |
-
padding-bottom: 0;
|
443 |
-
}
|
444 |
-
|
445 |
.happyforms-part--choice.display-type--block .happyforms-part-option__description {
|
446 |
max-width: none;
|
447 |
}
|
@@ -606,6 +595,10 @@ h3.happyforms-form__title {
|
|
606 |
opacity: 1;
|
607 |
}
|
608 |
|
|
|
|
|
|
|
|
|
609 |
/* parts - radio, checkbox */
|
610 |
|
611 |
.happyforms-part--choice .happyforms-part__el {
|
@@ -661,6 +654,20 @@ h3.happyforms-form__title {
|
|
661 |
width: 25%;
|
662 |
}
|
663 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
@media screen and (max-width: 800px) {
|
665 |
.happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option,
|
666 |
.happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option,
|
@@ -787,9 +794,12 @@ h3.happyforms-form__title {
|
|
787 |
/* submit button */
|
788 |
|
789 |
.happyforms-part--submit {
|
|
|
|
|
|
|
790 |
width: 100%;
|
791 |
-
padding-top: 10px;
|
792 |
margin-bottom: 0;
|
|
|
793 |
}
|
794 |
|
795 |
/* notices */
|
@@ -811,7 +821,7 @@ form .happyforms-flex>.happyforms-message-notices .happyforms-message-notice {
|
|
811 |
}
|
812 |
|
813 |
form .happyforms-flex>.happyforms-message-notices .happyforms-message-notice a {
|
814 |
-
|
815 |
}
|
816 |
|
817 |
.happyforms-flex>.happyforms-message-notices p:last-child {
|
@@ -1109,6 +1119,7 @@ input[type=submit][disabled].happyforms-button--submit {
|
|
1109 |
cursor: pointer;
|
1110 |
display: flex;
|
1111 |
align-items: center;
|
|
|
1112 |
padding: 5px 10px;
|
1113 |
min-height: 35px;
|
1114 |
color: #000;
|
@@ -1146,12 +1157,6 @@ input[type=submit][disabled].happyforms-button--submit {
|
|
1146 |
font-weight: bold;
|
1147 |
}
|
1148 |
|
1149 |
-
.happyforms-part--submit {
|
1150 |
-
display: flex;
|
1151 |
-
flex-flow: row wrap;
|
1152 |
-
align-items: baseline;
|
1153 |
-
}
|
1154 |
-
|
1155 |
.happyforms-form-preview .happyforms-part--submit {
|
1156 |
margin-top: 30px;
|
1157 |
}
|
@@ -1320,9 +1325,11 @@ input[type=submit][disabled].happyforms-button--submit {
|
|
1320 |
align-items: center;
|
1321 |
max-height: 100%;
|
1322 |
padding: 10px 15px;
|
|
|
1323 |
border: 1px solid #dbdbdb;
|
1324 |
border: 1px solid var(--happyforms-color-part-border) !important;
|
1325 |
background: #e8e8e8;
|
|
|
1326 |
}
|
1327 |
.happyforms-input-group__prefix {
|
1328 |
border-right: 0 !important;
|
246 |
max-width: none;
|
247 |
}
|
248 |
|
249 |
+
.happyforms-part textarea {
|
250 |
+
height: auto;
|
251 |
+
}
|
252 |
+
|
253 |
.happyforms-form--part-value-text-align-center .happyforms-part input[type=text],
|
254 |
.happyforms-form--part-value-text-align-center .happyforms-part input[type=password],
|
255 |
.happyforms-form--part-value-text-align-center .happyforms-part input[type=email],
|
431 |
margin-right: 20px;
|
432 |
}
|
433 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
.happyforms-part--choice.display-type--block .happyforms-part-option__description {
|
435 |
max-width: none;
|
436 |
}
|
595 |
opacity: 1;
|
596 |
}
|
597 |
|
598 |
+
.happyforms-part--has-tooltip .happyforms-input-group__suffix {
|
599 |
+
padding-right: 35px;
|
600 |
+
}
|
601 |
+
|
602 |
/* parts - radio, checkbox */
|
603 |
|
604 |
.happyforms-part--choice .happyforms-part__el {
|
654 |
width: 25%;
|
655 |
}
|
656 |
|
657 |
+
.happyforms-part--choice .happyforms-part__el .happyforms-part__description {
|
658 |
+
flex: 0 1 100%;
|
659 |
+
width: 100%;
|
660 |
+
margin-top: -5px;
|
661 |
+
margin-bottom: 20px;
|
662 |
+
}
|
663 |
+
|
664 |
+
.happyforms-part--choice.display-type--block .happyforms-part__el .happyforms-part__description {
|
665 |
+
flex: 0;
|
666 |
+
width: auto;
|
667 |
+
margin-top: 5px;
|
668 |
+
margin-bottom: 0;
|
669 |
+
}
|
670 |
+
|
671 |
@media screen and (max-width: 800px) {
|
672 |
.happyforms-part--choice.happyforms-part-options-width--half .happyforms-part__option,
|
673 |
.happyforms-part--choice.happyforms-part-options-width--third .happyforms-part__option,
|
794 |
/* submit button */
|
795 |
|
796 |
.happyforms-part--submit {
|
797 |
+
display: flex;
|
798 |
+
flex-flow: row wrap;
|
799 |
+
align-items: center;
|
800 |
width: 100%;
|
|
|
801 |
margin-bottom: 0;
|
802 |
+
padding-top: 10px;
|
803 |
}
|
804 |
|
805 |
/* notices */
|
821 |
}
|
822 |
|
823 |
form .happyforms-flex>.happyforms-message-notices .happyforms-message-notice a {
|
824 |
+
border: 0;
|
825 |
}
|
826 |
|
827 |
.happyforms-flex>.happyforms-message-notices p:last-child {
|
1119 |
cursor: pointer;
|
1120 |
display: flex;
|
1121 |
align-items: center;
|
1122 |
+
margin: 0;
|
1123 |
padding: 5px 10px;
|
1124 |
min-height: 35px;
|
1125 |
color: #000;
|
1157 |
font-weight: bold;
|
1158 |
}
|
1159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1160 |
.happyforms-form-preview .happyforms-part--submit {
|
1161 |
margin-top: 30px;
|
1162 |
}
|
1325 |
align-items: center;
|
1326 |
max-height: 100%;
|
1327 |
padding: 10px 15px;
|
1328 |
+
font-weight: normal;
|
1329 |
border: 1px solid #dbdbdb;
|
1330 |
border: 1px solid var(--happyforms-color-part-border) !important;
|
1331 |
background: #e8e8e8;
|
1332 |
+
text-shadow: none;
|
1333 |
}
|
1334 |
.happyforms-input-group__prefix {
|
1335 |
border-right: 0 !important;
|
core/assets/css/preview.css
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
body {
|
2 |
background-color: #fff !important;
|
3 |
padding: 40px !important;
|
4 |
}
|
1 |
+
body:not(.mce-content-body) {
|
2 |
background-color: #fff !important;
|
3 |
padding: 40px !important;
|
4 |
}
|
core/assets/js/parts/part-checkbox.js
CHANGED
@@ -388,13 +388,15 @@
|
|
388 |
return s;
|
389 |
} )
|
390 |
.forEach( function( label, i, list ) {
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
|
|
|
|
398 |
} );
|
399 |
|
400 |
$textarea.val( '' );
|
388 |
return s;
|
389 |
} )
|
390 |
.forEach( function( label, i, list ) {
|
391 |
+
_.delay( function() {
|
392 |
+
var itemID = self.getOptionModelID();
|
393 |
+
var item = new OptionModel( {
|
394 |
+
id: itemID,
|
395 |
+
label: label
|
396 |
+
} );
|
397 |
+
|
398 |
+
self.model.get( 'options' ).add( item, { refresh: ( list.length - 1 === i ) } );
|
399 |
+
}, i );
|
400 |
} );
|
401 |
|
402 |
$textarea.val( '' );
|
core/assets/js/parts/part-multi-line-text.js
CHANGED
@@ -22,6 +22,7 @@
|
|
22 |
this.listenTo( this.model, 'change:character_limit_mode', this.onCharacterLimitChange );
|
23 |
this.listenTo( this.model, 'change:characters_label', this.onLimitWordsCharactersLabelChange );
|
24 |
this.listenTo( this.model, 'change:words_label', this.onLimitWordsCharactersLabelChange );
|
|
|
25 |
},
|
26 |
|
27 |
/**
|
@@ -119,6 +120,18 @@
|
|
119 |
}
|
120 |
};
|
121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
happyForms.previewSend( 'happyforms-part-dom-update', data );
|
123 |
}
|
124 |
} );
|
@@ -135,7 +148,13 @@
|
|
135 |
var $part = this.getPartElement( html );
|
136 |
|
137 |
this.$( 'span.counter-label', $part ).text( options.label );
|
138 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
} );
|
140 |
|
141 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
22 |
this.listenTo( this.model, 'change:character_limit_mode', this.onCharacterLimitChange );
|
23 |
this.listenTo( this.model, 'change:characters_label', this.onLimitWordsCharactersLabelChange );
|
24 |
this.listenTo( this.model, 'change:words_label', this.onLimitWordsCharactersLabelChange );
|
25 |
+
this.listenTo( this.model, 'change:rows', this.onRowsChange );
|
26 |
},
|
27 |
|
28 |
/**
|
120 |
}
|
121 |
};
|
122 |
|
123 |
+
happyForms.previewSend( 'happyforms-part-dom-update', data );
|
124 |
+
},
|
125 |
+
|
126 |
+
onRowsChange: function( model, value ) {
|
127 |
+
var data = {
|
128 |
+
id: this.model.id,
|
129 |
+
callback: 'onMultiLineTextRowsChange',
|
130 |
+
options: {
|
131 |
+
value: value
|
132 |
+
}
|
133 |
+
};
|
134 |
+
|
135 |
happyForms.previewSend( 'happyforms-part-dom-update', data );
|
136 |
}
|
137 |
} );
|
148 |
var $part = this.getPartElement( html );
|
149 |
|
150 |
this.$( 'span.counter-label', $part ).text( options.label );
|
151 |
+
},
|
152 |
+
|
153 |
+
onMultiLineTextRowsChange: function( id, html, options ) {
|
154 |
+
var $part = this.getPartElement( html );
|
155 |
+
|
156 |
+
this.$( 'textarea', $part ).attr( 'rows', options.value );
|
157 |
+
},
|
158 |
} );
|
159 |
|
160 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
core/assets/js/parts/part-radio.js
CHANGED
@@ -380,13 +380,15 @@
|
|
380 |
return s;
|
381 |
} )
|
382 |
.forEach( function( label, i, list ) {
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
|
|
|
|
390 |
} );
|
391 |
|
392 |
$textarea.val( '' );
|
380 |
return s;
|
381 |
} )
|
382 |
.forEach( function( label, i, list ) {
|
383 |
+
_.delay( function() {
|
384 |
+
var itemID = self.getOptionModelID();
|
385 |
+
var item = new OptionModel( {
|
386 |
+
id: itemID,
|
387 |
+
label: label
|
388 |
+
} );
|
389 |
+
|
390 |
+
self.model.get( 'options' ).add( item, { refresh: ( list.length - 1 === i ) } );
|
391 |
+
}, i );
|
392 |
} );
|
393 |
|
394 |
$textarea.val( '' );
|
core/assets/js/parts/part-select.js
CHANGED
@@ -398,13 +398,15 @@
|
|
398 |
return s;
|
399 |
} )
|
400 |
.forEach( function( label, i, list ) {
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
|
|
|
|
408 |
} );
|
409 |
|
410 |
$textarea.val( '' );
|
398 |
return s;
|
399 |
} )
|
400 |
.forEach( function( label, i, list ) {
|
401 |
+
_.delay( function() {
|
402 |
+
var itemID = self.getOptionModelID();
|
403 |
+
var item = new OptionModel( {
|
404 |
+
id: itemID,
|
405 |
+
label: label
|
406 |
+
} );
|
407 |
+
|
408 |
+
self.model.get( 'options' ).add( item, { refresh: ( list.length - 1 === i ) } );
|
409 |
+
}, i );
|
410 |
} );
|
411 |
|
412 |
$textarea.val( '' );
|
core/classes/class-cache.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class HappyForms_Cache {
|
4 |
+
|
5 |
+
private static $instance;
|
6 |
+
|
7 |
+
private $cache = array();
|
8 |
+
|
9 |
+
public static function instance() {
|
10 |
+
if ( is_null( self::$instance ) ) {
|
11 |
+
self::$instance = new self();
|
12 |
+
}
|
13 |
+
|
14 |
+
return self::$instance;
|
15 |
+
}
|
16 |
+
|
17 |
+
public function exists( $key ) {
|
18 |
+
$exists = isset( $this->cache[$key] );
|
19 |
+
|
20 |
+
return $exists;
|
21 |
+
}
|
22 |
+
|
23 |
+
public function get( $key, &$found = null ) {
|
24 |
+
$found = false;
|
25 |
+
|
26 |
+
if ( $this->exists( $key ) ) {
|
27 |
+
$found = true;
|
28 |
+
|
29 |
+
if ( is_object( $this->cache[$key] ) ) {
|
30 |
+
return clone( $this->cache[$key] );
|
31 |
+
} else {
|
32 |
+
return $this->cache[$key];
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
return false;
|
37 |
+
}
|
38 |
+
|
39 |
+
public function set( $key, $value ) {
|
40 |
+
if ( is_object( $value ) ) {
|
41 |
+
$value = clone( $value );
|
42 |
+
}
|
43 |
+
|
44 |
+
$this->cache[$key] = $value;
|
45 |
+
|
46 |
+
return true;
|
47 |
+
}
|
48 |
+
|
49 |
+
}
|
50 |
+
|
51 |
+
if ( ! function_exists( 'happyforms_get_cache' ) ):
|
52 |
+
|
53 |
+
function happyforms_get_cache() {
|
54 |
+
return HappyForms_Cache::instance();
|
55 |
+
}
|
56 |
+
|
57 |
+
endif;
|
58 |
+
|
59 |
+
happyforms_get_cache();
|
core/classes/class-form-admin.php
CHANGED
@@ -49,7 +49,6 @@ class HappyForms_Form_Admin {
|
|
49 |
add_filter( "manage_{$post_type}_posts_columns", array( $this, 'column_headers' ), PHP_INT_MAX );
|
50 |
add_action( "manage_{$post_type}_posts_custom_column", array( $this, 'column_content' ), 10, 2 );
|
51 |
add_filter( 'post_date_column_status', array( $this, 'date_column_status' ), 10, 4 );
|
52 |
-
add_filter( 'post_date_column_time', array( $this, 'date_column_time' ), 10, 4 );
|
53 |
add_filter( 'post_row_actions', array( $this, 'row_actions' ), 10, 2 );
|
54 |
add_action( 'load-edit.php', array( $this, 'duplicate_form_redirect' ) );
|
55 |
add_action( 'admin_footer', array( $this, 'admin_footer' ) );
|
@@ -308,40 +307,13 @@ class HappyForms_Form_Admin {
|
|
308 |
|
309 |
$post_type = happyforms_get_form_controller()->post_type;
|
310 |
|
311 |
-
if ( $post->post_type
|
312 |
-
$status
|
313 |
-
}
|
314 |
-
|
315 |
-
return $status;
|
316 |
-
}
|
317 |
-
|
318 |
-
/**
|
319 |
-
* Filter: Change date format in date column.
|
320 |
-
*
|
321 |
-
* @hooked filter post_date_column_time
|
322 |
-
*
|
323 |
-
* @param string $time Current time value.
|
324 |
-
* @param object $post Post object.
|
325 |
-
* @param string $column_name Name of the column, always 'date'.
|
326 |
-
* @param string $mode Date mode.
|
327 |
-
*
|
328 |
-
* @return string
|
329 |
-
*/
|
330 |
-
public function date_column_time( $time, $post, $column_name, $mode ) {
|
331 |
-
if ( 'date' !== $column_name ) {
|
332 |
-
return $time;
|
333 |
}
|
334 |
|
335 |
-
$
|
336 |
|
337 |
-
|
338 |
-
$date = get_the_time( __( 'Y/m/d' ), $post );
|
339 |
-
$the_time = get_the_time( get_option( 'time_format' ), $post );
|
340 |
-
|
341 |
-
$time = $date . '<br>' . $the_time;
|
342 |
-
}
|
343 |
-
|
344 |
-
return $time;
|
345 |
}
|
346 |
|
347 |
/**
|
49 |
add_filter( "manage_{$post_type}_posts_columns", array( $this, 'column_headers' ), PHP_INT_MAX );
|
50 |
add_action( "manage_{$post_type}_posts_custom_column", array( $this, 'column_content' ), 10, 2 );
|
51 |
add_filter( 'post_date_column_status', array( $this, 'date_column_status' ), 10, 4 );
|
|
|
52 |
add_filter( 'post_row_actions', array( $this, 'row_actions' ), 10, 2 );
|
53 |
add_action( 'load-edit.php', array( $this, 'duplicate_form_redirect' ) );
|
54 |
add_action( 'admin_footer', array( $this, 'admin_footer' ) );
|
307 |
|
308 |
$post_type = happyforms_get_form_controller()->post_type;
|
309 |
|
310 |
+
if ( $post->post_type !== $post_type ) {
|
311 |
+
return $status;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
}
|
313 |
|
314 |
+
$status = __( 'Last modified', 'happyforms' );
|
315 |
|
316 |
+
return $status;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
317 |
}
|
318 |
|
319 |
/**
|
core/classes/class-form-controller.php
CHANGED
@@ -471,11 +471,11 @@ class HappyForms_Form_Controller {
|
|
471 |
$args = md5( serialize( func_get_args() ) );
|
472 |
$key = "_happyforms_cache_forms_get_{$args}";
|
473 |
$found = false;
|
474 |
-
$result =
|
475 |
|
476 |
if ( false === $found ) {
|
477 |
$result = $this->do_get( $post_ids, $only_id );
|
478 |
-
|
479 |
}
|
480 |
|
481 |
return $result;
|
@@ -737,7 +737,9 @@ class HappyForms_Form_Controller {
|
|
737 |
* @return int
|
738 |
*/
|
739 |
public function has_spam_protection( $form_data ) {
|
740 |
-
|
|
|
|
|
741 |
}
|
742 |
|
743 |
/**
|
@@ -780,16 +782,18 @@ class HappyForms_Form_Controller {
|
|
780 |
|
781 |
ob_start();
|
782 |
|
783 |
-
if ( $
|
784 |
-
|
785 |
-
|
|
|
786 |
|
787 |
-
|
788 |
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
|
|
793 |
|
794 |
return $form_markup;
|
795 |
}
|
471 |
$args = md5( serialize( func_get_args() ) );
|
472 |
$key = "_happyforms_cache_forms_get_{$args}";
|
473 |
$found = false;
|
474 |
+
$result = happyforms_cache_get( $key, $found );
|
475 |
|
476 |
if ( false === $found ) {
|
477 |
$result = $this->do_get( $post_ids, $only_id );
|
478 |
+
happyforms_cache_set( $key, $result );
|
479 |
}
|
480 |
|
481 |
return $result;
|
737 |
* @return int
|
738 |
*/
|
739 |
public function has_spam_protection( $form_data ) {
|
740 |
+
$has_spam_protection = apply_filters( 'happyforms_use_honeypot', true );
|
741 |
+
|
742 |
+
return $has_spam_protection;
|
743 |
}
|
744 |
|
745 |
/**
|
782 |
|
783 |
ob_start();
|
784 |
|
785 |
+
if ( 'publish' === $form['post_status'] || happyforms_is_preview() ) {
|
786 |
+
if ( $render_styles ) {
|
787 |
+
happyforms_the_form_styles( $form );
|
788 |
+
}
|
789 |
|
790 |
+
happyforms_additional_css( $form );
|
791 |
|
792 |
+
$template_path = happyforms_get_core_folder() . '/templates/single-form.php';
|
793 |
+
$template_path = apply_filters( 'happyforms_form_template_path', $template_path, $form );
|
794 |
+
require( $template_path );
|
795 |
+
$form_markup = ob_get_clean();
|
796 |
+
}
|
797 |
|
798 |
return $form_markup;
|
799 |
}
|
core/classes/class-form-part-library.php
CHANGED
@@ -193,7 +193,7 @@ class HappyForms_Form_Part_Library {
|
|
193 |
$part = $this->get_part( $part_data['type'] );
|
194 |
|
195 |
if ( ! $part ) {
|
196 |
-
$error = new WP_Error( 'part', __( '
|
197 |
return $error;
|
198 |
}
|
199 |
|
193 |
$part = $this->get_part( $part_data['type'] );
|
194 |
|
195 |
if ( ! $part ) {
|
196 |
+
$error = new WP_Error( 'part', __( 'Field definition not found' ) );
|
197 |
return $error;
|
198 |
}
|
199 |
|
core/classes/class-form-setup.php
CHANGED
@@ -89,7 +89,7 @@ class HappyForms_Form_Setup {
|
|
89 |
'sanitize' => 'sanitize_text_field',
|
90 |
),
|
91 |
'form_expiration_datetime' => array(
|
92 |
-
'default' => date( 'Y-m-d H:i:s', time() +
|
93 |
'sanitize' => 'happyforms_sanitize_datetime',
|
94 |
),
|
95 |
'save_entries' => array(
|
@@ -203,8 +203,8 @@ class HappyForms_Form_Setup {
|
|
203 |
),
|
204 |
900 => array(
|
205 |
'type' => 'text',
|
206 |
-
'label' => __( 'Optional
|
207 |
-
'tooltip' => __( 'Mark optional
|
208 |
'field' => 'optional_part_label',
|
209 |
),
|
210 |
1000 => array(
|
@@ -242,15 +242,9 @@ class HappyForms_Form_Setup {
|
|
242 |
1204 => array(
|
243 |
'type' => 'checkbox',
|
244 |
'label' => __( 'Hide form after submit', 'happyforms' ),
|
245 |
-
'tooltip' => __( 'Hide all form
|
246 |
'field' => 'form_hide_on_submit'
|
247 |
),
|
248 |
-
1400 => array(
|
249 |
-
'type' => 'checkbox',
|
250 |
-
'label' => __( 'Spam prevention', 'happyforms' ),
|
251 |
-
'tooltip' => __( 'Protect your form against bots by using HoneyPot security.', 'happyforms' ),
|
252 |
-
'field' => 'spam_prevention',
|
253 |
-
),
|
254 |
);
|
255 |
|
256 |
$controls = apply_filters( 'happyforms_setup_controls', $controls );
|
89 |
'sanitize' => 'sanitize_text_field',
|
90 |
),
|
91 |
'form_expiration_datetime' => array(
|
92 |
+
'default' => date( 'Y-m-d H:i:s', time() + WEEK_IN_SECONDS ),
|
93 |
'sanitize' => 'happyforms_sanitize_datetime',
|
94 |
),
|
95 |
'save_entries' => array(
|
203 |
),
|
204 |
900 => array(
|
205 |
'type' => 'text',
|
206 |
+
'label' => __( 'Optional field label', 'happyforms' ),
|
207 |
+
'tooltip' => __( 'Mark optional fields in your form to let your users distinguish them from required fields.', 'happyforms' ),
|
208 |
'field' => 'optional_part_label',
|
209 |
),
|
210 |
1000 => array(
|
242 |
1204 => array(
|
243 |
'type' => 'checkbox',
|
244 |
'label' => __( 'Hide form after submit', 'happyforms' ),
|
245 |
+
'tooltip' => __( 'Hide all form fields and display just title and confirmation message on submit.', 'happyforms' ),
|
246 |
'field' => 'form_hide_on_submit'
|
247 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
);
|
249 |
|
250 |
$controls = apply_filters( 'happyforms_setup_controls', $controls );
|
core/classes/class-form-styles.php
CHANGED
@@ -602,7 +602,7 @@ class HappyForms_Form_Styles {
|
|
602 |
),
|
603 |
1400 => array(
|
604 |
'type' => 'divider',
|
605 |
-
'label' => __( '
|
606 |
'id' => 'borders-spacing',
|
607 |
),
|
608 |
1500 => array(
|
@@ -657,12 +657,12 @@ class HappyForms_Form_Styles {
|
|
657 |
),
|
658 |
2500 => array(
|
659 |
'type' => 'divider',
|
660 |
-
'label' => __( '
|
661 |
'id' => 'labels-text',
|
662 |
),
|
663 |
2600 => array(
|
664 |
'type' => 'checkbox',
|
665 |
-
'label' => __( 'Toggle placeholder on
|
666 |
'field' => 'part_toggle_placeholders',
|
667 |
),
|
668 |
2700 => array(
|
@@ -857,7 +857,7 @@ class HappyForms_Form_Styles {
|
|
857 |
),
|
858 |
6600 => array(
|
859 |
'type' => 'checkbox',
|
860 |
-
'label' => __( 'Make button a
|
861 |
'field' => 'submit_button_part_of_last_input'
|
862 |
),
|
863 |
6700 => array(
|
602 |
),
|
603 |
1400 => array(
|
604 |
'type' => 'divider',
|
605 |
+
'label' => __( 'Field borders & spacing', 'happyforms' ),
|
606 |
'id' => 'borders-spacing',
|
607 |
),
|
608 |
1500 => array(
|
657 |
),
|
658 |
2500 => array(
|
659 |
'type' => 'divider',
|
660 |
+
'label' => __( 'Field labels & text', 'happyforms' ),
|
661 |
'id' => 'labels-text',
|
662 |
),
|
663 |
2600 => array(
|
664 |
'type' => 'checkbox',
|
665 |
+
'label' => __( 'Toggle placeholder on field focus', 'happyforms' ),
|
666 |
'field' => 'part_toggle_placeholders',
|
667 |
),
|
668 |
2700 => array(
|
857 |
),
|
858 |
6600 => array(
|
859 |
'type' => 'checkbox',
|
860 |
+
'label' => __( 'Make button a field of last input', 'happyforms' ),
|
861 |
'field' => 'submit_button_part_of_last_input'
|
862 |
),
|
863 |
6700 => array(
|
core/classes/class-happyforms-core.php
CHANGED
@@ -61,6 +61,7 @@ class HappyForms_Core {
|
|
61 |
* @return void
|
62 |
*/
|
63 |
public function initialize_plugin() {
|
|
|
64 |
require_once( happyforms_get_core_folder() . '/helpers/helper-misc.php' );
|
65 |
require_once( happyforms_get_core_folder() . '/helpers/helper-styles.php' );
|
66 |
|
@@ -226,6 +227,8 @@ class HappyForms_Core {
|
|
226 |
if ( empty( $submenu['happyforms'] ) ) {
|
227 |
remove_menu_page( 'happyforms' );
|
228 |
}
|
|
|
|
|
229 |
}
|
230 |
|
231 |
/**
|
61 |
* @return void
|
62 |
*/
|
63 |
public function initialize_plugin() {
|
64 |
+
require_once( happyforms_get_core_folder() . '/classes/class-cache.php' );
|
65 |
require_once( happyforms_get_core_folder() . '/helpers/helper-misc.php' );
|
66 |
require_once( happyforms_get_core_folder() . '/helpers/helper-styles.php' );
|
67 |
|
227 |
if ( empty( $submenu['happyforms'] ) ) {
|
228 |
remove_menu_page( 'happyforms' );
|
229 |
}
|
230 |
+
|
231 |
+
return $submenu_file;
|
232 |
}
|
233 |
|
234 |
/**
|
core/classes/parts/class-part-email.php
CHANGED
@@ -5,7 +5,7 @@ class HappyForms_Part_Email extends HappyForms_Form_Part {
|
|
5 |
public $type = 'email';
|
6 |
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Email', 'happyforms' );
|
9 |
$this->description = __( 'For formatted email addresses. The \'@\' symbol is required.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
5 |
public $type = 'email';
|
6 |
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Email Address', 'happyforms' );
|
9 |
$this->description = __( 'For formatted email addresses. The \'@\' symbol is required.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
|
core/classes/parts/class-part-multi-line-text.php
CHANGED
@@ -5,7 +5,7 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
5 |
public $type = 'multi_line_text';
|
6 |
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Long
|
9 |
$this->description = __( 'For paragraph text fields.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_the_part_value', array( $this, 'output_part_value' ), 10, 3 );
|
@@ -73,6 +73,10 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
|
|
73 |
'default' => __( 'Max words', 'happyforms' ),
|
74 |
'sanitize' => 'sanitize_text_field',
|
75 |
),
|
|
|
|
|
|
|
|
|
76 |
'width' => array(
|
77 |
'default' => 'full',
|
78 |
'sanitize' => 'sanitize_key'
|
5 |
public $type = 'multi_line_text';
|
6 |
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Long Answer', 'happyforms' );
|
9 |
$this->description = __( 'For paragraph text fields.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_the_part_value', array( $this, 'output_part_value' ), 10, 3 );
|
73 |
'default' => __( 'Max words', 'happyforms' ),
|
74 |
'sanitize' => 'sanitize_text_field',
|
75 |
),
|
76 |
+
'rows' => array(
|
77 |
+
'default' => 5,
|
78 |
+
'sanitize' => 'intval',
|
79 |
+
),
|
80 |
'width' => array(
|
81 |
'default' => 'full',
|
82 |
'sanitize' => 'sanitize_key'
|
core/classes/parts/class-part-single-line-text.php
CHANGED
@@ -5,7 +5,7 @@ class HappyForms_Part_SingleLineText extends HappyForms_Form_Part {
|
|
5 |
public $type = 'single_line_text';
|
6 |
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Short
|
9 |
$this->description = __( 'For single line text fields.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_the_part_value', array( $this, 'output_part_value' ), 10, 3 );
|
5 |
public $type = 'single_line_text';
|
6 |
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Short Answer', 'happyforms' );
|
9 |
$this->description = __( 'For single line text fields.', 'happyforms' );
|
10 |
|
11 |
add_filter( 'happyforms_the_part_value', array( $this, 'output_part_value' ), 10, 3 );
|
core/helpers/helper-activation.php
CHANGED
@@ -30,7 +30,7 @@ endif;
|
|
30 |
|
31 |
register_activation_hook( happyforms_plugin_file(), 'happyforms_activate' );
|
32 |
register_deactivation_hook( happyforms_plugin_file(), 'happyforms_deactivate' );
|
33 |
-
register_uninstall_hook( happyforms_plugin_file(), 'happyforms_uninstall');
|
34 |
|
35 |
/**
|
36 |
*
|
@@ -40,6 +40,7 @@ register_uninstall_hook( happyforms_plugin_file(), 'happyforms_uninstall');
|
|
40 |
if ( ! function_exists( 'happyforms_create_samples' ) ):
|
41 |
|
42 |
function happyforms_create_samples() {
|
|
|
43 |
require_once( happyforms_get_core_folder() . '/classes/class-tracking.php' );
|
44 |
require_once( happyforms_get_core_folder() . '/helpers/helper-misc.php' );
|
45 |
|
30 |
|
31 |
register_activation_hook( happyforms_plugin_file(), 'happyforms_activate' );
|
32 |
register_deactivation_hook( happyforms_plugin_file(), 'happyforms_deactivate' );
|
33 |
+
register_uninstall_hook( happyforms_plugin_file(), 'happyforms_uninstall' );
|
34 |
|
35 |
/**
|
36 |
*
|
40 |
if ( ! function_exists( 'happyforms_create_samples' ) ):
|
41 |
|
42 |
function happyforms_create_samples() {
|
43 |
+
require_once( happyforms_get_core_folder() . '/classes/class-cache.php' );
|
44 |
require_once( happyforms_get_core_folder() . '/classes/class-tracking.php' );
|
45 |
require_once( happyforms_get_core_folder() . '/helpers/helper-misc.php' );
|
46 |
|
core/helpers/helper-misc.php
CHANGED
@@ -927,7 +927,7 @@ function happyforms_customize_part_width_control() {
|
|
927 |
</p>
|
928 |
<p class="width-options" style="display: none">
|
929 |
<label>
|
930 |
-
<input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all
|
931 |
</label>
|
932 |
</p>
|
933 |
<?php
|
@@ -964,4 +964,20 @@ function happyforms_log_error( $error ) {
|
|
964 |
error_log( "[HappyForms:{$error->get_error_code()}] {$error->get_error_message()}" );
|
965 |
}
|
966 |
|
967 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
927 |
</p>
|
928 |
<p class="width-options" style="display: none">
|
929 |
<label>
|
930 |
+
<input type="checkbox" class="checkbox apply-all-check" value="" data-apply-to="width" /> <?php _e( 'Apply to all fields', 'happyforms' ); ?>
|
931 |
</label>
|
932 |
</p>
|
933 |
<?php
|
964 |
error_log( "[HappyForms:{$error->get_error_code()}] {$error->get_error_message()}" );
|
965 |
}
|
966 |
|
967 |
+
endif;
|
968 |
+
|
969 |
+
if ( ! function_exists( 'happyforms_cache_get' ) ):
|
970 |
+
|
971 |
+
function happyforms_cache_get( $key, &$found = null ) {
|
972 |
+
return happyforms_get_cache()->get( $key, $found );
|
973 |
+
}
|
974 |
+
|
975 |
+
endif;
|
976 |
+
|
977 |
+
if ( ! function_exists( 'happyforms_cache_set' ) ):
|
978 |
+
|
979 |
+
function happyforms_cache_set( $key, $value ) {
|
980 |
+
return happyforms_get_cache()->set( $key, $value );
|
981 |
+
}
|
982 |
+
|
983 |
+
endif;
|
core/templates/customize-form-build.php
CHANGED
@@ -7,10 +7,10 @@
|
|
7 |
|
8 |
<div class="customize-control">
|
9 |
<div class="happyforms-parts-placeholder">
|
10 |
-
<p><?php _e( 'Add
|
11 |
</div>
|
12 |
<div class="happyforms-form-widgets"></div>
|
13 |
-
<button type="button" class="button add-new-widget happyforms-add-new-part"><?php _e( 'Add a
|
14 |
</div>
|
15 |
</div>
|
16 |
</script>
|
7 |
|
8 |
<div class="customize-control">
|
9 |
<div class="happyforms-parts-placeholder">
|
10 |
+
<p><?php _e( 'Add fields here to appear in your form.', 'happyforms' ); ?></p>
|
11 |
</div>
|
12 |
<div class="happyforms-form-widgets"></div>
|
13 |
+
<button type="button" class="button add-new-widget happyforms-add-new-part"><?php _e( 'Add a Field', 'happyforms' ); ?></button>
|
14 |
</div>
|
15 |
</div>
|
16 |
</script>
|
core/templates/customize-form-parts-drawer.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<div id="happyforms-parts-drawer">
|
3 |
<div class="happyforms-parts-drawer-header">
|
4 |
<div class="happyforms-parts-drawer-header-search">
|
5 |
-
<input type="text" placeholder="<?php _e( 'Search
|
6 |
<div class="happyforms-parts-drawer-header-search-icon"></div>
|
7 |
<button type="button" class="happyforms-clear-search"><span class="screen-reader-text"><?php _e( 'Clear Results', 'happyforms' ); ?></span></button>
|
8 |
</div>
|
@@ -36,7 +36,7 @@
|
|
36 |
<% } %>
|
37 |
</ul>
|
38 |
<div class="happyforms-parts-drawer-not-found">
|
39 |
-
<p><?php _e( 'No
|
40 |
</div>
|
41 |
</div>
|
42 |
</script>
|
2 |
<div id="happyforms-parts-drawer">
|
3 |
<div class="happyforms-parts-drawer-header">
|
4 |
<div class="happyforms-parts-drawer-header-search">
|
5 |
+
<input type="text" placeholder="<?php _e( 'Search fields', 'happyforms' ); ?>…" id="part-search">
|
6 |
<div class="happyforms-parts-drawer-header-search-icon"></div>
|
7 |
<button type="button" class="happyforms-clear-search"><span class="screen-reader-text"><?php _e( 'Clear Results', 'happyforms' ); ?></span></button>
|
8 |
</div>
|
36 |
<% } %>
|
37 |
</ul>
|
38 |
<div class="happyforms-parts-drawer-not-found">
|
39 |
+
<p><?php _e( 'No fields found.', 'happyforms' ); ?></p>
|
40 |
</div>
|
41 |
</div>
|
42 |
</script>
|
core/templates/parts/customize-checkbox.php
CHANGED
@@ -92,7 +92,7 @@
|
|
92 |
</p>
|
93 |
<p class="width-options" style="display: none">
|
94 |
<label>
|
95 |
-
<input type="checkbox" class="checkbox apply-all-check" value="" /> <?php _e( 'Apply to all
|
96 |
</label>
|
97 |
</p>
|
98 |
|
92 |
</p>
|
93 |
<p class="width-options" style="display: none">
|
94 |
<label>
|
95 |
+
<input type="checkbox" class="checkbox apply-all-check" value="" /> <?php _e( 'Apply to all fields', 'happyforms' ); ?>
|
96 |
</label>
|
97 |
</p>
|
98 |
|
core/templates/parts/customize-email.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
<input type="text" id="<%= instance.id %>_title" class="widefat title" value="<%= instance.label %>" data-bind="label" />
|
6 |
</p>
|
7 |
<p>
|
8 |
-
<label for="<%= instance.id %>_label_placement"><?php _e( '
|
9 |
<select id="<%= instance.id %>_label_placement" data-bind="label_placement">
|
10 |
<option value="above"<%= (instance.label_placement == 'above') ? ' selected' : '' %>><?php _e( 'Above', 'happyforms' ); ?></option>
|
11 |
<option value="below"<%= (instance.label_placement == 'below') ? ' selected' : '' %>><?php _e( 'Below', 'happyforms' ); ?></option>
|
@@ -14,6 +14,10 @@
|
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
|
|
|
|
|
|
|
|
17 |
<p>
|
18 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
19 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
@@ -26,10 +30,6 @@
|
|
26 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
27 |
</select>
|
28 |
</p>
|
29 |
-
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
30 |
-
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
31 |
-
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
32 |
-
</p>
|
33 |
|
34 |
<?php do_action( 'happyforms_part_customize_email_before_options' ); ?>
|
35 |
|
5 |
<input type="text" id="<%= instance.id %>_title" class="widefat title" value="<%= instance.label %>" data-bind="label" />
|
6 |
</p>
|
7 |
<p>
|
8 |
+
<label for="<%= instance.id %>_label_placement"><?php _e( 'Label display', 'happyforms' ); ?></label>
|
9 |
<select id="<%= instance.id %>_label_placement" data-bind="label_placement">
|
10 |
<option value="above"<%= (instance.label_placement == 'above') ? ' selected' : '' %>><?php _e( 'Above', 'happyforms' ); ?></option>
|
11 |
<option value="below"<%= (instance.label_placement == 'below') ? ' selected' : '' %>><?php _e( 'Below', 'happyforms' ); ?></option>
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
17 |
+
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
18 |
+
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
19 |
+
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
20 |
+
</p>
|
21 |
<p>
|
22 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
23 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
30 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
31 |
</select>
|
32 |
</p>
|
|
|
|
|
|
|
|
|
33 |
|
34 |
<?php do_action( 'happyforms_part_customize_email_before_options' ); ?>
|
35 |
|
core/templates/parts/customize-multi-line-text.php
CHANGED
@@ -14,6 +14,10 @@
|
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
|
|
|
|
|
|
|
|
17 |
<p>
|
18 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
19 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
@@ -26,9 +30,9 @@
|
|
26 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
27 |
</select>
|
28 |
</p>
|
29 |
-
<p
|
30 |
-
<label for="<%= instance.id %>
|
31 |
-
<input type="
|
32 |
</p>
|
33 |
|
34 |
<?php do_action( 'happyforms_part_customize_multi_line_text_before_options' ); ?>
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
17 |
+
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
18 |
+
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
19 |
+
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
20 |
+
</p>
|
21 |
<p>
|
22 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
23 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
30 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
31 |
</select>
|
32 |
</p>
|
33 |
+
<p>
|
34 |
+
<label for="<%= instance.id %>_rows"><?php _e( 'Rows', 'happyforms' ); ?></label>
|
35 |
+
<input type="number" id="<%= instance.id %>_rows" min="5" max="20" class="widefat title" value="<%= instance.rows %>" data-bind="rows" />
|
36 |
</p>
|
37 |
|
38 |
<?php do_action( 'happyforms_part_customize_multi_line_text_before_options' ); ?>
|
core/templates/parts/customize-number.php
CHANGED
@@ -14,6 +14,10 @@
|
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
|
|
|
|
|
|
|
|
17 |
<p>
|
18 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
19 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
@@ -26,10 +30,6 @@
|
|
26 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
27 |
</select>
|
28 |
</p>
|
29 |
-
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
30 |
-
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
31 |
-
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
32 |
-
</p>
|
33 |
|
34 |
<?php do_action( 'happyforms_part_customize_number_before_options' ); ?>
|
35 |
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
17 |
+
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
18 |
+
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
19 |
+
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
20 |
+
</p>
|
21 |
<p>
|
22 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
23 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
30 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
31 |
</select>
|
32 |
</p>
|
|
|
|
|
|
|
|
|
33 |
|
34 |
<?php do_action( 'happyforms_part_customize_number_before_options' ); ?>
|
35 |
|
core/templates/parts/customize-select.php
CHANGED
@@ -13,6 +13,10 @@
|
|
13 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
14 |
</select>
|
15 |
</p>
|
|
|
|
|
|
|
|
|
16 |
<p>
|
17 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
18 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
@@ -24,10 +28,6 @@
|
|
24 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
25 |
</select>
|
26 |
</p>
|
27 |
-
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
28 |
-
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
29 |
-
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
30 |
-
</p>
|
31 |
|
32 |
<?php do_action( 'happyforms_part_customize_select_before_options' ); ?>
|
33 |
|
13 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
14 |
</select>
|
15 |
</p>
|
16 |
+
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
17 |
+
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
18 |
+
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
19 |
+
</p>
|
20 |
<p>
|
21 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
22 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
28 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
29 |
</select>
|
30 |
</p>
|
|
|
|
|
|
|
|
|
31 |
|
32 |
<?php do_action( 'happyforms_part_customize_select_before_options' ); ?>
|
33 |
|
core/templates/parts/customize-single-line-text.php
CHANGED
@@ -14,6 +14,10 @@
|
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
|
|
|
|
|
|
|
|
17 |
<p>
|
18 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
19 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
@@ -26,10 +30,6 @@
|
|
26 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
27 |
</select>
|
28 |
</p>
|
29 |
-
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
30 |
-
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
31 |
-
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
32 |
-
</p>
|
33 |
|
34 |
<?php do_action( 'happyforms_part_customize_single_line_text_before_options' ); ?>
|
35 |
|
14 |
<option value="hidden"<%= (instance.label_placement == 'hidden') ? ' selected' : '' %>><?php _e( 'Hidden', 'happyforms' ); ?></option>
|
15 |
</select>
|
16 |
</p>
|
17 |
+
<p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
|
18 |
+
<label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
|
19 |
+
<input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
|
20 |
+
</p>
|
21 |
<p>
|
22 |
<label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
|
23 |
<textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
|
30 |
<option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
|
31 |
</select>
|
32 |
</p>
|
|
|
|
|
|
|
|
|
33 |
|
34 |
<?php do_action( 'happyforms_part_customize_single_line_text_before_options' ); ?>
|
35 |
|
core/templates/parts/frontend-multi-line-text.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
<div class="happyforms-part__el">
|
8 |
<?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
|
9 |
|
10 |
-
<textarea id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" rows="
|
11 |
<?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
|
12 |
<?php happyforms_the_part_label( $part, $form ); ?>
|
13 |
<?php endif; ?>
|
7 |
<div class="happyforms-part__el">
|
8 |
<?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
|
9 |
|
10 |
+
<textarea id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" rows="<?php echo $part['rows']; ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form ); ?>><?php happyforms_the_part_value( $part, $form ); ?></textarea>
|
11 |
<?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
|
12 |
<?php happyforms_the_part_label( $part, $form ); ?>
|
13 |
<?php endif; ?>
|
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: HappyForms
|
8 |
-
* Version: 1.9.
|
9 |
* Author URI: https://happyforms.me
|
10 |
* Upgrade URI: https://happyforms.me/upgrade
|
11 |
*/
|
@@ -13,7 +13,7 @@
|
|
13 |
/**
|
14 |
* The current version of the plugin.
|
15 |
*/
|
16 |
-
define( 'HAPPYFORMS_VERSION', '1.9.
|
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: HappyForms
|
8 |
+
* Version: 1.9.13
|
9 |
* Author URI: https://happyforms.me
|
10 |
* Upgrade URI: https://happyforms.me/upgrade
|
11 |
*/
|
13 |
/**
|
14 |
* The current version of the plugin.
|
15 |
*/
|
16 |
+
define( 'HAPPYFORMS_VERSION', '1.9.13' );
|
17 |
|
18 |
if ( ! function_exists( 'happyforms_plugin_file' ) ):
|
19 |
/**
|
inc/assets/css/admin.css
CHANGED
@@ -1,18 +1,3 @@
|
|
1 |
-
#adminmenu #toplevel_page_happyforms ul li:last-child a,
|
2 |
-
#adminmenu #toplevel_page_happyforms ul li:last-child a:hover {
|
3 |
-
color: #FFB900;
|
4 |
-
}
|
5 |
-
|
6 |
-
#adminmenu #toplevel_page_happyforms ul li:last-child a:after {
|
7 |
-
content: '\f504';
|
8 |
-
position: relative;
|
9 |
-
top: 2px;
|
10 |
-
display: inline-block;
|
11 |
-
padding-left: 5px;
|
12 |
-
font-family: dashicons;
|
13 |
-
text-decoration: none;
|
14 |
-
}
|
15 |
-
|
16 |
.happyforms-upgrade-modal-container {
|
17 |
display: none;
|
18 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.happyforms-upgrade-modal-container {
|
2 |
display: none;
|
3 |
}
|
inc/assets/js/admin/dashboard.js
CHANGED
@@ -5,7 +5,6 @@
|
|
5 |
|
6 |
happyForms.freeDashboard = {
|
7 |
init: function() {
|
8 |
-
$( document ).on( 'click', '#adminmenu #toplevel_page_happyforms li:last-child a', this.onUpgradeClick.bind(this) );
|
9 |
$( document ).on( 'click', '#adminmenu #toplevel_page_happyforms a[href="#responses"]', this.onModalTriggerClick.bind(this) );
|
10 |
$( document ).on( 'click', '#adminmenu #toplevel_page_happyforms a[href="#settings"]', this.onModalTriggerClick.bind(this) );
|
11 |
$( document ).on( 'click', '.happyforms-upgrade-modal .happyforms-continue-link', this.onContinueClick.bind(this) );
|
@@ -13,14 +12,6 @@
|
|
13 |
$( document ).on( 'click', '.happyforms-upgrade-modal .happyforms-upgrade-modal__close', this.onCloseClick.bind(this) );
|
14 |
},
|
15 |
|
16 |
-
onUpgradeClick: function( e ) {
|
17 |
-
e.preventDefault();
|
18 |
-
|
19 |
-
var $link = $(e.target);
|
20 |
-
|
21 |
-
window.open( $link.attr('href') );
|
22 |
-
},
|
23 |
-
|
24 |
onModalTriggerClick: function( e ) {
|
25 |
e.preventDefault();
|
26 |
|
5 |
|
6 |
happyForms.freeDashboard = {
|
7 |
init: function() {
|
|
|
8 |
$( document ).on( 'click', '#adminmenu #toplevel_page_happyforms a[href="#responses"]', this.onModalTriggerClick.bind(this) );
|
9 |
$( document ).on( 'click', '#adminmenu #toplevel_page_happyforms a[href="#settings"]', this.onModalTriggerClick.bind(this) );
|
10 |
$( document ).on( 'click', '.happyforms-upgrade-modal .happyforms-continue-link', this.onContinueClick.bind(this) );
|
12 |
$( document ).on( 'click', '.happyforms-upgrade-modal .happyforms-upgrade-modal__close', this.onCloseClick.bind(this) );
|
13 |
},
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
onModalTriggerClick: function( e ) {
|
16 |
e.preventDefault();
|
17 |
|
inc/assets/js/customize.js
CHANGED
@@ -584,7 +584,6 @@
|
|
584 |
this.listenTo( this.model.get( 'parts' ), 'reset', this.onPartModelsSorted );
|
585 |
this.listenTo( this.partViews, 'add', this.onPartViewAdd );
|
586 |
this.listenTo( this.partViews, 'remove', this.onPartViewRemove );
|
587 |
-
this.listenTo( this.partViews, 'reset', this.onPartViewsSorted );
|
588 |
this.listenTo( this.partViews, 'add remove reset', this.onPartViewsChanged );
|
589 |
this.listenTo( this, 'sort-stop', this.onPartSortStop );
|
590 |
},
|
@@ -786,18 +785,6 @@
|
|
786 |
}, this ) );
|
787 |
},
|
788 |
|
789 |
-
onPartViewsSorted: function( partViews ) {
|
790 |
-
var $stage = $( '.happyforms-form-widgets', this.$el );
|
791 |
-
|
792 |
-
partViews.forEach( function( partViewModel ) {
|
793 |
-
var partView = partViewModel.get( 'view' );
|
794 |
-
var $partViewEl = partView.$el;
|
795 |
-
$partViewEl.detach();
|
796 |
-
$stage.append( $partViewEl );
|
797 |
-
partView.trigger( 'refresh' );
|
798 |
-
}, this );
|
799 |
-
},
|
800 |
-
|
801 |
onPartViewsChanged: function( partViews ) {
|
802 |
if ( this.partViews.length > 0 ) {
|
803 |
this.$el.addClass( 'has-parts' );
|
584 |
this.listenTo( this.model.get( 'parts' ), 'reset', this.onPartModelsSorted );
|
585 |
this.listenTo( this.partViews, 'add', this.onPartViewAdd );
|
586 |
this.listenTo( this.partViews, 'remove', this.onPartViewRemove );
|
|
|
587 |
this.listenTo( this.partViews, 'add remove reset', this.onPartViewsChanged );
|
588 |
this.listenTo( this, 'sort-stop', this.onPartSortStop );
|
589 |
},
|
785 |
}, this ) );
|
786 |
},
|
787 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
788 |
onPartViewsChanged: function( partViews ) {
|
789 |
if ( this.partViews.length > 0 ) {
|
790 |
this.$el.addClass( 'has-parts' );
|
inc/classes/class-happyforms.php
CHANGED
@@ -7,7 +7,6 @@ class HappyForms extends HappyForms_Core {
|
|
7 |
public function initialize_plugin() {
|
8 |
parent::initialize_plugin();
|
9 |
|
10 |
-
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
|
11 |
add_action( 'happyforms_do_setup_control', array( $this, 'do_control' ), 10, 3 );
|
12 |
add_action( 'happyforms_do_email_control', array( $this, 'do_control' ), 10, 3 );
|
13 |
add_action( 'happyforms_do_style_control', array( $this, 'do_control' ), 10, 3 );
|
@@ -16,7 +15,6 @@ class HappyForms extends HappyForms_Core {
|
|
16 |
add_filter( 'happyforms_style_controls', array( $this, 'add_dummy_style_controls' ) );
|
17 |
add_action( 'admin_print_footer_scripts', array( $this, 'print_upgrade_modals' ) );
|
18 |
add_action( 'parse_request', array( $this, 'parse_archive_request' ) );
|
19 |
-
add_action( 'init', array( $this, 'display_notices' ) );
|
20 |
|
21 |
$this->register_dummy_parts();
|
22 |
$this->add_setup_logic_upgrade_links();
|
@@ -81,8 +79,8 @@ class HappyForms extends HappyForms_Core {
|
|
81 |
$controls[1450] = array(
|
82 |
'type' => 'checkbox_dummy',
|
83 |
'dummy_id' => 'shuffle_parts',
|
84 |
-
'label' => __( '
|
85 |
-
'tooltip' => __( '
|
86 |
);
|
87 |
|
88 |
$controls[1500] = array(
|
@@ -226,20 +224,6 @@ class HappyForms extends HappyForms_Core {
|
|
226 |
require_once( happyforms_get_include_folder() . '/templates/admin/upgrade-modal.php' );
|
227 |
}
|
228 |
|
229 |
-
public function admin_menu() {
|
230 |
-
parent::admin_menu();
|
231 |
-
|
232 |
-
$form_controller = happyforms_get_form_controller();
|
233 |
-
|
234 |
-
add_submenu_page(
|
235 |
-
'happyforms',
|
236 |
-
__( 'HappyForms Upgrade', 'happyforms' ),
|
237 |
-
__( 'Upgrade', 'happyforms' ),
|
238 |
-
apply_filters( 'happyforms_forms_page_capabilities', 'manage_options' ),
|
239 |
-
'https://happyforms.me/upgrade'
|
240 |
-
);
|
241 |
-
}
|
242 |
-
|
243 |
public function admin_enqueue_scripts() {
|
244 |
parent::admin_enqueue_scripts();
|
245 |
|
@@ -311,20 +295,6 @@ class HappyForms extends HappyForms_Core {
|
|
311 |
$message_controller->export_archive( $form );
|
312 |
}
|
313 |
|
314 |
-
public function display_notices() {
|
315 |
-
if ( ! is_admin() ) {
|
316 |
-
return;
|
317 |
-
}
|
318 |
-
|
319 |
-
$forms = happyforms_get_form_controller()->get();
|
320 |
-
|
321 |
-
if ( 0 === count( $forms ) ) {
|
322 |
-
return;
|
323 |
-
}
|
324 |
-
|
325 |
-
$this->display_review_notice( $forms );
|
326 |
-
}
|
327 |
-
|
328 |
public function is_new_user( $forms ) {
|
329 |
if ( 1 !== count( $forms ) ) {
|
330 |
return false;
|
@@ -339,36 +309,6 @@ class HappyForms extends HappyForms_Core {
|
|
339 |
return false;
|
340 |
}
|
341 |
|
342 |
-
public function display_review_notice( $forms ) {
|
343 |
-
$last_form_index = count( $forms ) - 1;
|
344 |
-
$form = $forms[$last_form_index];
|
345 |
-
$form_date = new DateTime( $form['post_date'] );
|
346 |
-
$now = new DateTime();
|
347 |
-
$difference = $now->diff( $form_date );
|
348 |
-
$days = $difference->format( '%a' );
|
349 |
-
|
350 |
-
if ( 3 > intval( $days ) ) {
|
351 |
-
return;
|
352 |
-
}
|
353 |
-
|
354 |
-
$hours = intval( $days ) * 16;
|
355 |
-
$review_link = 'https://wordpress.org/support/plugin/happyforms/reviews/?filter=5#new-post';
|
356 |
-
$upgrade_link = 'https://happyforms.me/upgrade';
|
357 |
-
|
358 |
-
happyforms_get_admin_notices()->register(
|
359 |
-
'happyforms_leave_a_review',
|
360 |
-
sprintf(
|
361 |
-
__( '<p>Can we ask a favor?</p><p>You created your first form %s days ago — how time flies! Since then, we’ve answered hundreds of community emails and spent %s hours coding and improving HappyForms.</p><p>As you probably know, plugin reviews are an important way in helping a young business like ours grow.</p><p>If you could please spare one minute for a review, it would put a huge smile on our faces. 😊</p><p><a href="%s" target="_blank" rel="noopener">Leave a review now</a>, or show your support by <a href="%s" target="_blank" class="external">upgrading to a paid plan</a>.</p>', 'happyforms' ),
|
362 |
-
$days, $hours, $review_link, $upgrade_link
|
363 |
-
),
|
364 |
-
array(
|
365 |
-
'type' => 'info',
|
366 |
-
'screen' => array( 'edit-happyform' ),
|
367 |
-
'dismissible' => true,
|
368 |
-
)
|
369 |
-
);
|
370 |
-
}
|
371 |
-
|
372 |
public function add_setup_logic_upgrade_links() {
|
373 |
$control_slugs = array(
|
374 |
'email_recipient',
|
7 |
public function initialize_plugin() {
|
8 |
parent::initialize_plugin();
|
9 |
|
|
|
10 |
add_action( 'happyforms_do_setup_control', array( $this, 'do_control' ), 10, 3 );
|
11 |
add_action( 'happyforms_do_email_control', array( $this, 'do_control' ), 10, 3 );
|
12 |
add_action( 'happyforms_do_style_control', array( $this, 'do_control' ), 10, 3 );
|
15 |
add_filter( 'happyforms_style_controls', array( $this, 'add_dummy_style_controls' ) );
|
16 |
add_action( 'admin_print_footer_scripts', array( $this, 'print_upgrade_modals' ) );
|
17 |
add_action( 'parse_request', array( $this, 'parse_archive_request' ) );
|
|
|
18 |
|
19 |
$this->register_dummy_parts();
|
20 |
$this->add_setup_logic_upgrade_links();
|
79 |
$controls[1450] = array(
|
80 |
'type' => 'checkbox_dummy',
|
81 |
'dummy_id' => 'shuffle_parts',
|
82 |
+
'label' => __( 'Randomize parts', 'happyforms' ),
|
83 |
+
'tooltip' => __( 'Randomize the order of all form parts to avoid biases in your responses.', 'happyforms' ),
|
84 |
);
|
85 |
|
86 |
$controls[1500] = array(
|
224 |
require_once( happyforms_get_include_folder() . '/templates/admin/upgrade-modal.php' );
|
225 |
}
|
226 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
public function admin_enqueue_scripts() {
|
228 |
parent::admin_enqueue_scripts();
|
229 |
|
295 |
$message_controller->export_archive( $form );
|
296 |
}
|
297 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
298 |
public function is_new_user( $forms ) {
|
299 |
if ( 1 !== count( $forms ) ) {
|
300 |
return false;
|
309 |
return false;
|
310 |
}
|
311 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
public function add_setup_logic_upgrade_links() {
|
313 |
$control_slugs = array(
|
314 |
'email_recipient',
|
inc/classes/parts/class-part-attachment-dummy.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
class HappyForms_Part_Attachment_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'attachment_dummy';
|
6 |
-
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( '
|
9 |
$this->description = __( 'For allowing file uploads with easy drag and drop zone.', 'happyforms' );
|
10 |
}
|
11 |
-
|
12 |
-
}
|
3 |
class HappyForms_Part_Attachment_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'attachment_dummy';
|
6 |
+
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'File Upload', 'happyforms' );
|
9 |
$this->description = __( 'For allowing file uploads with easy drag and drop zone.', 'happyforms' );
|
10 |
}
|
11 |
+
|
12 |
+
}
|
inc/classes/parts/class-part-date-dummy.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
class HappyForms_Part_Date_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'date_dummy';
|
6 |
-
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Date
|
9 |
$this->description = __( 'For formatted day, month, year and or time fields.', 'happyforms' );
|
10 |
}
|
11 |
-
|
12 |
-
}
|
3 |
class HappyForms_Part_Date_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'date_dummy';
|
6 |
+
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Date-Time', 'happyforms' );
|
9 |
$this->description = __( 'For formatted day, month, year and or time fields.', 'happyforms' );
|
10 |
}
|
11 |
+
|
12 |
+
}
|
inc/classes/parts/class-part-legal-dummy.php
CHANGED
@@ -5,7 +5,7 @@ class HappyForms_Part_Legal_Dummy extends HappyForms_Form_Part {
|
|
5 |
public $type = 'legal_dummy';
|
6 |
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( '
|
9 |
$this->description = __( 'For requiring permission before accepting submission.', 'happyforms' );
|
10 |
}
|
11 |
|
5 |
public $type = 'legal_dummy';
|
6 |
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Consent Choice', 'happyforms' );
|
9 |
$this->description = __( 'For requiring permission before accepting submission.', 'happyforms' );
|
10 |
}
|
11 |
|
inc/classes/parts/class-part-mailchimp-dummy.php
CHANGED
@@ -5,7 +5,7 @@ class HappyForms_Part_OptIn_Dummy extends HappyForms_Form_Part {
|
|
5 |
public $type = 'optin_dummy';
|
6 |
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Opt-In', 'happyforms' );
|
9 |
$this->description = __( 'For requiring permission before adding email address to mailing list.', 'happyforms' );
|
10 |
}
|
11 |
|
5 |
public $type = 'optin_dummy';
|
6 |
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Opt-In Choice', 'happyforms' );
|
9 |
$this->description = __( 'For requiring permission before adding email address to mailing list.', 'happyforms' );
|
10 |
}
|
11 |
|
inc/classes/parts/class-part-phone-dummy.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
class HappyForms_Part_Phone_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'phone_dummy';
|
6 |
-
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Phone', 'happyforms' );
|
9 |
$this->description = __( 'For phone numbers. Includes country specific formatting.', 'happyforms' );
|
10 |
}
|
11 |
-
|
12 |
-
}
|
3 |
class HappyForms_Part_Phone_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'phone_dummy';
|
6 |
+
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Phone Number', 'happyforms' );
|
9 |
$this->description = __( 'For phone numbers. Includes country specific formatting.', 'happyforms' );
|
10 |
}
|
11 |
+
|
12 |
+
}
|
inc/classes/parts/class-part-rating-dummy.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
class HappyForms_Part_Rating_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'rating_dummy';
|
6 |
-
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Rating', 'happyforms' );
|
9 |
$this->description = __( 'For collecting opinions using stars and emoji scales.', 'happyforms' );
|
10 |
}
|
11 |
-
|
12 |
-
}
|
3 |
class HappyForms_Part_Rating_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'rating_dummy';
|
6 |
+
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Star Rating', 'happyforms' );
|
9 |
$this->description = __( 'For collecting opinions using stars and emoji scales.', 'happyforms' );
|
10 |
}
|
11 |
+
|
12 |
+
}
|
inc/classes/parts/class-part-scale-dummy.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
class HappyForms_Part_Scale_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'scale_dummy';
|
6 |
-
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Scale', 'happyforms' );
|
9 |
$this->description = __( 'For collecting opinions using a horizontal slider.', 'happyforms' );
|
10 |
}
|
11 |
-
|
12 |
-
}
|
3 |
class HappyForms_Part_Scale_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'scale_dummy';
|
6 |
+
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Slider Scale', 'happyforms' );
|
9 |
$this->description = __( 'For collecting opinions using a horizontal slider.', 'happyforms' );
|
10 |
}
|
11 |
+
|
12 |
+
}
|
inc/classes/parts/class-part-table-dummy.php
CHANGED
@@ -3,10 +3,10 @@
|
|
3 |
class HappyForms_Part_Table_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'table_dummy';
|
6 |
-
|
7 |
public function __construct() {
|
8 |
-
$this->label = __( 'Table', 'happyforms' );
|
9 |
$this->description = __( 'For radios and checkboxes displaying in a grid of rows and columns.', 'happyforms' );
|
10 |
}
|
11 |
-
|
12 |
-
}
|
3 |
class HappyForms_Part_Table_Dummy extends HappyForms_Form_Part {
|
4 |
|
5 |
public $type = 'table_dummy';
|
6 |
+
|
7 |
public function __construct() {
|
8 |
+
$this->label = __( 'Matrix Table', 'happyforms' );
|
9 |
$this->description = __( 'For radios and checkboxes displaying in a grid of rows and columns.', 'happyforms' );
|
10 |
}
|
11 |
+
|
12 |
+
}
|
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.9.
|
6 |
"Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
|
7 |
-
"POT-Creation-Date: 2020-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -45,116 +45,116 @@ msgstr ""
|
|
45 |
msgid "Edit Form"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: core/classes/class-form-admin.php:
|
49 |
#: core/classes/class-form-controller.php:73
|
50 |
msgid "View form"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: core/classes/class-form-admin.php:
|
54 |
msgid "Preview form"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: core/classes/class-form-admin.php:
|
58 |
msgid "Form updated."
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: core/classes/class-form-admin.php:
|
62 |
msgid "Custom field updated."
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: core/classes/class-form-admin.php:
|
66 |
msgid "Custom field deleted."
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: core/classes/class-form-admin.php:
|
70 |
msgid "Form restored to revision from %s."
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: core/classes/class-form-admin.php:
|
74 |
msgid "Form published."
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: core/classes/class-form-admin.php:
|
78 |
msgid "Form saved."
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: core/classes/class-form-admin.php:
|
82 |
msgid "Form submitted."
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: core/classes/class-form-admin.php:
|
86 |
msgid "Form scheduled."
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: core/classes/class-form-admin.php:
|
90 |
msgid "Form draft updated."
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: core/classes/class-form-admin.php:
|
94 |
msgid "%s form updated."
|
95 |
msgid_plural "%s forms updated."
|
96 |
msgstr[0] ""
|
97 |
msgstr[1] ""
|
98 |
|
99 |
-
#: core/classes/class-form-admin.php:
|
100 |
msgid "%s form not updated, somebody is editing it."
|
101 |
msgid_plural "%s forms not updated, somebody is editing them."
|
102 |
msgstr[0] ""
|
103 |
msgstr[1] ""
|
104 |
|
105 |
-
#: core/classes/class-form-admin.php:
|
106 |
msgid "%s form permanently deleted."
|
107 |
msgid_plural "%s forms permanently deleted."
|
108 |
msgstr[0] ""
|
109 |
msgstr[1] ""
|
110 |
|
111 |
-
#: core/classes/class-form-admin.php:
|
112 |
msgid "%s form moved to the Trash."
|
113 |
msgid_plural "%s forms moved to the Trash."
|
114 |
msgstr[0] ""
|
115 |
msgstr[1] ""
|
116 |
|
117 |
-
#: core/classes/class-form-admin.php:
|
118 |
msgid "%s form restored from the Trash."
|
119 |
msgid_plural "%s forms restored from the Trash."
|
120 |
msgstr[0] ""
|
121 |
msgstr[1] ""
|
122 |
|
123 |
-
#: core/classes/class-form-admin.php:
|
124 |
msgid "Shortcode"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: core/classes/class-form-admin.php:
|
128 |
msgid "Author"
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: core/classes/class-form-admin.php:
|
132 |
msgid "Copy to clipboard"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: core/classes/class-form-admin.php:
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: core/classes/class-form-admin.php:
|
140 |
msgid "Edit"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: core/classes/class-form-admin.php:
|
144 |
#: core/templates/customize-form-item.php:27
|
145 |
#: core/templates/customize-form-part-footer.php:4
|
146 |
msgid "Duplicate"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: core/classes/class-form-admin.php:
|
150 |
msgid "Trash"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: core/classes/class-form-admin.php:
|
154 |
msgid "1 form duplicated."
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: core/classes/class-form-admin.php:
|
158 |
msgid "Undo"
|
159 |
msgstr ""
|
160 |
|
@@ -167,8 +167,8 @@ msgid "Form"
|
|
167 |
msgstr ""
|
168 |
|
169 |
#: core/classes/class-form-controller.php:69
|
170 |
-
#: core/classes/class-happyforms-core.php:186
|
171 |
#: core/classes/class-happyforms-core.php:187
|
|
|
172 |
msgid "Add New"
|
173 |
msgstr ""
|
174 |
|
@@ -199,8 +199,8 @@ msgstr ""
|
|
199 |
|
200 |
#: core/classes/class-form-controller.php:78
|
201 |
#: core/classes/class-form-controller.php:79
|
202 |
-
#: core/classes/class-happyforms-core.php:178
|
203 |
#: core/classes/class-happyforms-core.php:179
|
|
|
204 |
msgid "All Forms"
|
205 |
msgstr ""
|
206 |
|
@@ -306,7 +306,7 @@ msgid "Invalid data"
|
|
306 |
msgstr ""
|
307 |
|
308 |
#: core/classes/class-form-part-library.php:196
|
309 |
-
msgid "
|
310 |
msgstr ""
|
311 |
|
312 |
#: core/classes/class-form-part-library.php:227
|
@@ -359,7 +359,6 @@ msgstr ""
|
|
359 |
|
360 |
#: core/classes/class-form-setup.php:182
|
361 |
#: core/templates/customize-form-parts-drawer.php:30
|
362 |
-
#: inc/classes/class-happyforms.php:237
|
363 |
#: inc/templates/customize-controls/checkbox_dummy.php:7
|
364 |
msgid "Upgrade"
|
365 |
msgstr ""
|
@@ -375,13 +374,13 @@ msgid ""
|
|
375 |
msgstr ""
|
376 |
|
377 |
#: core/classes/class-form-setup.php:206
|
378 |
-
msgid "Optional
|
379 |
msgstr ""
|
380 |
|
381 |
#: core/classes/class-form-setup.php:207
|
382 |
msgid ""
|
383 |
-
"Mark optional
|
384 |
-
"required
|
385 |
msgstr ""
|
386 |
|
387 |
#: core/classes/class-form-setup.php:212
|
@@ -420,18 +419,10 @@ msgstr ""
|
|
420 |
|
421 |
#: core/classes/class-form-setup.php:245
|
422 |
msgid ""
|
423 |
-
"Hide all form
|
424 |
"submit."
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: core/classes/class-form-setup.php:250
|
428 |
-
msgid "Spam prevention"
|
429 |
-
msgstr ""
|
430 |
-
|
431 |
-
#: core/classes/class-form-setup.php:251
|
432 |
-
msgid "Protect your form against bots by using HoneyPot security."
|
433 |
-
msgstr ""
|
434 |
-
|
435 |
#: core/classes/class-form-styles.php:49
|
436 |
msgid "Left-to-right"
|
437 |
msgstr ""
|
@@ -618,7 +609,7 @@ msgid "Font size"
|
|
618 |
msgstr ""
|
619 |
|
620 |
#: core/classes/class-form-styles.php:605
|
621 |
-
msgid "
|
622 |
msgstr ""
|
623 |
|
624 |
#: core/classes/class-form-styles.php:610
|
@@ -664,11 +655,11 @@ msgid "Background on focus"
|
|
664 |
msgstr ""
|
665 |
|
666 |
#: core/classes/class-form-styles.php:660
|
667 |
-
msgid "
|
668 |
msgstr ""
|
669 |
|
670 |
#: core/classes/class-form-styles.php:665
|
671 |
-
msgid "Toggle placeholder on
|
672 |
msgstr ""
|
673 |
|
674 |
#: core/classes/class-form-styles.php:670
|
@@ -704,23 +695,23 @@ msgid "Value"
|
|
704 |
msgstr ""
|
705 |
|
706 |
#: core/classes/class-form-styles.php:720
|
707 |
-
#: core/templates/parts/customize-email.php:
|
708 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
709 |
-
#: core/templates/parts/customize-number.php:
|
710 |
-
#: core/templates/parts/customize-select.php:
|
711 |
-
#: core/templates/parts/customize-single-line-text.php:
|
712 |
#: inc/classes/parts/class-part-placeholder-dummy.php:8
|
713 |
msgid "Placeholder"
|
714 |
msgstr ""
|
715 |
|
716 |
#: core/classes/class-form-styles.php:725
|
717 |
#: core/templates/parts/customize-checkbox.php:17
|
718 |
-
#: core/templates/parts/customize-email.php:
|
719 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
720 |
-
#: core/templates/parts/customize-number.php:
|
721 |
#: core/templates/parts/customize-radio.php:17
|
722 |
-
#: core/templates/parts/customize-select.php:
|
723 |
-
#: core/templates/parts/customize-single-line-text.php:
|
724 |
msgid "Description"
|
725 |
msgstr ""
|
726 |
|
@@ -750,7 +741,6 @@ msgid "Checkmark"
|
|
750 |
msgstr ""
|
751 |
|
752 |
#: core/classes/class-form-styles.php:780
|
753 |
-
#: inc/classes/parts/class-part-rating-dummy.php:8
|
754 |
msgid "Rating"
|
755 |
msgstr ""
|
756 |
|
@@ -791,7 +781,7 @@ msgid "Font weight"
|
|
791 |
msgstr ""
|
792 |
|
793 |
#: core/classes/class-form-styles.php:860
|
794 |
-
msgid "Make button a
|
795 |
msgstr ""
|
796 |
|
797 |
#: core/classes/class-form-styles.php:890
|
@@ -820,53 +810,53 @@ msgstr ""
|
|
820 |
msgid "Additional CSS"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: core/classes/class-happyforms-core.php:
|
824 |
msgid "HappyForms Index"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: core/classes/class-happyforms-core.php:194
|
828 |
#: core/classes/class-happyforms-core.php:195
|
|
|
829 |
msgid "Activity"
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: core/classes/class-happyforms-core.php:203
|
833 |
#: core/classes/class-happyforms-core.php:204
|
|
|
834 |
msgid "Settings"
|
835 |
msgstr ""
|
836 |
|
837 |
-
#: core/classes/class-happyforms-core.php:212
|
838 |
#: core/classes/class-happyforms-core.php:213
|
|
|
839 |
msgid "Welcome"
|
840 |
msgstr ""
|
841 |
|
842 |
-
#: core/classes/class-happyforms-core.php:
|
843 |
msgid "Insert HappyForm"
|
844 |
msgstr ""
|
845 |
|
846 |
-
#: core/classes/class-happyforms-core.php:
|
847 |
msgid "Add HappyForms"
|
848 |
msgstr ""
|
849 |
|
850 |
-
#: core/classes/class-happyforms-core.php:
|
851 |
msgid "Overview"
|
852 |
msgstr ""
|
853 |
|
854 |
-
#: core/classes/class-happyforms-core.php:
|
855 |
msgid "Hey 👋 Welcome to your HappyForms Dashboard!"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#: core/classes/class-happyforms-core.php:
|
859 |
msgid ""
|
860 |
"Are you looking for help? Well, we’ve swept the nacho crumbs from our "
|
861 |
"keyboards, refilled our ginger beers and are ready to reply with answers! "
|
862 |
"So, go on, email %s."
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: core/classes/class-happyforms-core.php:
|
866 |
msgid "For more help"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: core/classes/class-happyforms-core.php:
|
870 |
msgid "Help guide"
|
871 |
msgstr ""
|
872 |
|
@@ -1024,8 +1014,7 @@ msgid "Select all"
|
|
1024 |
msgstr ""
|
1025 |
|
1026 |
#: core/classes/parts/class-part-email.php:8
|
1027 |
-
|
1028 |
-
msgid "Email"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
#: core/classes/parts/class-part-email.php:9
|
@@ -1033,7 +1022,7 @@ msgid "For formatted email addresses. The '@' symbol is required."
|
|
1033 |
msgstr ""
|
1034 |
|
1035 |
#: core/classes/parts/class-part-multi-line-text.php:8
|
1036 |
-
msgid "Long
|
1037 |
msgstr ""
|
1038 |
|
1039 |
#: core/classes/parts/class-part-multi-line-text.php:9
|
@@ -1041,12 +1030,12 @@ msgid "For paragraph text fields."
|
|
1041 |
msgstr ""
|
1042 |
|
1043 |
#: core/classes/parts/class-part-multi-line-text.php:69
|
1044 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
1045 |
msgid "Min characters"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
#: core/classes/parts/class-part-multi-line-text.php:73
|
1049 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
1050 |
msgid "Max words"
|
1051 |
msgstr ""
|
1052 |
|
@@ -1079,46 +1068,46 @@ msgid "No results"
|
|
1079 |
msgstr ""
|
1080 |
|
1081 |
#: core/classes/parts/class-part-single-line-text.php:8
|
1082 |
-
msgid "Short
|
1083 |
msgstr ""
|
1084 |
|
1085 |
#: core/classes/parts/class-part-single-line-text.php:9
|
1086 |
msgid "For single line text fields."
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: core/helpers/helper-activation.php:
|
1090 |
msgid "Sample Form"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: core/helpers/helper-activation.php:
|
1094 |
msgid "First name"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: core/helpers/helper-activation.php:
|
1098 |
msgid "Last name"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#: core/helpers/helper-activation.php:
|
1102 |
msgid "What's your reason for contacting us?"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
-
#: core/helpers/helper-activation.php:
|
1106 |
msgid "Need technical help"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
-
#: core/helpers/helper-activation.php:
|
1110 |
msgid "Want to suggest a feature"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: core/helpers/helper-activation.php:
|
1114 |
msgid "Asking about my account"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
-
#: core/helpers/helper-activation.php:
|
1118 |
msgid "What's your age?"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
-
#: core/helpers/helper-activation.php:
|
1122 |
msgid "Your message"
|
1123 |
msgstr ""
|
1124 |
|
@@ -2790,7 +2779,7 @@ msgstr ""
|
|
2790 |
|
2791 |
#: core/helpers/helper-misc.php:930
|
2792 |
#: core/templates/parts/customize-checkbox.php:95
|
2793 |
-
msgid "Apply to all
|
2794 |
msgstr ""
|
2795 |
|
2796 |
#: core/templates/admin-form-modal.php:5
|
@@ -2840,11 +2829,11 @@ msgid "Add title"
|
|
2840 |
msgstr ""
|
2841 |
|
2842 |
#: core/templates/customize-form-build.php:10
|
2843 |
-
msgid "Add
|
2844 |
msgstr ""
|
2845 |
|
2846 |
#: core/templates/customize-form-build.php:13
|
2847 |
-
msgid "Add a
|
2848 |
msgstr ""
|
2849 |
|
2850 |
#: core/templates/customize-form-item.php:18
|
@@ -2891,7 +2880,7 @@ msgid "Upgrade to add logic rule"
|
|
2891 |
msgstr ""
|
2892 |
|
2893 |
#: core/templates/customize-form-parts-drawer.php:5
|
2894 |
-
msgid "Search
|
2895 |
msgstr ""
|
2896 |
|
2897 |
#: core/templates/customize-form-parts-drawer.php:7
|
@@ -2899,13 +2888,17 @@ msgid "Clear Results"
|
|
2899 |
msgstr ""
|
2900 |
|
2901 |
#: core/templates/customize-form-parts-drawer.php:39
|
2902 |
-
msgid "No
|
2903 |
msgstr ""
|
2904 |
|
2905 |
#: core/templates/customize-form-steps.php:3
|
2906 |
msgid "Build"
|
2907 |
msgstr ""
|
2908 |
|
|
|
|
|
|
|
|
|
2909 |
#: core/templates/customize-header-actions.php:5
|
2910 |
msgid "Save"
|
2911 |
msgstr ""
|
@@ -2944,6 +2937,7 @@ msgid "Label"
|
|
2944 |
msgstr ""
|
2945 |
|
2946 |
#: core/templates/parts/customize-checkbox.php:8
|
|
|
2947 |
#: core/templates/parts/customize-multi-line-text.php:8
|
2948 |
#: core/templates/parts/customize-number.php:8
|
2949 |
#: core/templates/parts/customize-radio.php:8
|
@@ -2983,32 +2977,32 @@ msgid "Hidden"
|
|
2983 |
msgstr ""
|
2984 |
|
2985 |
#: core/templates/parts/customize-checkbox.php:21
|
2986 |
-
#: core/templates/parts/customize-email.php:
|
2987 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
2988 |
-
#: core/templates/parts/customize-number.php:
|
2989 |
#: core/templates/parts/customize-radio.php:21
|
2990 |
-
#: core/templates/parts/customize-select.php:
|
2991 |
-
#: core/templates/parts/customize-single-line-text.php:
|
2992 |
msgid "Description appearance"
|
2993 |
msgstr ""
|
2994 |
|
2995 |
#: core/templates/parts/customize-checkbox.php:23
|
2996 |
-
#: core/templates/parts/customize-email.php:
|
2997 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
2998 |
-
#: core/templates/parts/customize-number.php:
|
2999 |
#: core/templates/parts/customize-radio.php:23
|
3000 |
-
#: core/templates/parts/customize-select.php:
|
3001 |
-
#: core/templates/parts/customize-single-line-text.php:
|
3002 |
msgid "Standard"
|
3003 |
msgstr ""
|
3004 |
|
3005 |
#: core/templates/parts/customize-checkbox.php:24
|
3006 |
-
#: core/templates/parts/customize-email.php:
|
3007 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3008 |
-
#: core/templates/parts/customize-number.php:
|
3009 |
#: core/templates/parts/customize-radio.php:24
|
3010 |
-
#: core/templates/parts/customize-select.php:
|
3011 |
-
#: core/templates/parts/customize-single-line-text.php:
|
3012 |
msgid "Tooltip"
|
3013 |
msgstr ""
|
3014 |
|
@@ -3059,7 +3053,7 @@ msgstr ""
|
|
3059 |
|
3060 |
#: core/templates/parts/customize-checkbox.php:53
|
3061 |
#: core/templates/parts/customize-email.php:38
|
3062 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3063 |
#: core/templates/parts/customize-number.php:48
|
3064 |
#: core/templates/parts/customize-radio.php:53
|
3065 |
#: core/templates/parts/customize-select.php:57
|
@@ -3093,7 +3087,7 @@ msgstr ""
|
|
3093 |
|
3094 |
#: core/templates/parts/customize-checkbox.php:102
|
3095 |
#: core/templates/parts/customize-email.php:78
|
3096 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3097 |
#: core/templates/parts/customize-number.php:99
|
3098 |
#: core/templates/parts/customize-radio.php:83
|
3099 |
#: core/templates/parts/customize-select.php:83
|
@@ -3107,10 +3101,6 @@ msgstr ""
|
|
3107 |
msgid "Make this choice default"
|
3108 |
msgstr ""
|
3109 |
|
3110 |
-
#: core/templates/parts/customize-email.php:8
|
3111 |
-
msgid "Lable display"
|
3112 |
-
msgstr ""
|
3113 |
-
|
3114 |
#: core/templates/parts/customize-email.php:13
|
3115 |
#: core/templates/parts/customize-multi-line-text.php:13
|
3116 |
#: core/templates/parts/customize-number.php:13
|
@@ -3118,10 +3108,10 @@ msgstr ""
|
|
3118 |
msgid "Inside"
|
3119 |
msgstr ""
|
3120 |
|
3121 |
-
#: core/templates/parts/customize-email.php:
|
3122 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3123 |
-
#: core/templates/parts/customize-number.php:
|
3124 |
-
#: core/templates/parts/customize-single-line-text.php:
|
3125 |
msgid "Reveal on focus"
|
3126 |
msgstr ""
|
3127 |
|
@@ -3150,31 +3140,35 @@ msgstr ""
|
|
3150 |
msgid "Suffix"
|
3151 |
msgstr ""
|
3152 |
|
3153 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
|
|
|
|
|
|
|
|
3154 |
msgid "Limit words/characters"
|
3155 |
msgstr ""
|
3156 |
|
3157 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3158 |
msgid "Limit"
|
3159 |
msgstr ""
|
3160 |
|
3161 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3162 |
msgid "Count"
|
3163 |
msgstr ""
|
3164 |
|
3165 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3166 |
msgid "Min words"
|
3167 |
msgstr ""
|
3168 |
|
3169 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3170 |
msgid "Max characters"
|
3171 |
msgstr ""
|
3172 |
|
3173 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3174 |
msgid "'Characters' label"
|
3175 |
msgstr ""
|
3176 |
|
3177 |
-
#: core/templates/parts/customize-multi-line-text.php:
|
3178 |
msgid "'Words' label"
|
3179 |
msgstr ""
|
3180 |
|
@@ -3215,167 +3209,150 @@ msgstr ""
|
|
3215 |
msgid "Click to edit this part."
|
3216 |
msgstr ""
|
3217 |
|
3218 |
-
#: inc/classes/class-happyforms.php:
|
3219 |
-
msgid "
|
3220 |
msgstr ""
|
3221 |
|
3222 |
-
#: inc/classes/class-happyforms.php:
|
3223 |
-
msgid "
|
3224 |
msgstr ""
|
3225 |
|
3226 |
-
#: inc/classes/class-happyforms.php:
|
3227 |
msgid "Use reCAPTCHA"
|
3228 |
msgstr ""
|
3229 |
|
3230 |
-
#: inc/classes/class-happyforms.php:
|
3231 |
msgid "Protect your form against bots using your Google ReCaptcha credentials."
|
3232 |
msgstr ""
|
3233 |
|
3234 |
-
#: inc/classes/class-happyforms.php:
|
3235 |
msgid "Require password"
|
3236 |
msgstr ""
|
3237 |
|
3238 |
-
#: inc/classes/class-happyforms.php:
|
3239 |
msgid "Only users with password will be able to view and submit the form."
|
3240 |
msgstr ""
|
3241 |
|
3242 |
-
#: inc/classes/class-happyforms.php:
|
3243 |
msgid "Open in overlay window"
|
3244 |
msgstr ""
|
3245 |
|
3246 |
-
#: inc/classes/class-happyforms.php:
|
3247 |
msgid "Generate a link that can be clicked to open an overlay window for this form."
|
3248 |
msgstr ""
|
3249 |
|
3250 |
-
#: inc/classes/class-happyforms.php:
|
3251 |
msgid "Save user's meta data"
|
3252 |
msgstr ""
|
3253 |
|
3254 |
-
#: inc/classes/class-happyforms.php:
|
3255 |
msgid ""
|
3256 |
"User meta data like IP address, browser language, local time, and platform "
|
3257 |
"will be saved with each submission when checked."
|
3258 |
msgstr ""
|
3259 |
|
3260 |
-
#: inc/classes/class-happyforms.php:
|
3261 |
msgid "Save abandoned forms"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
-
#: inc/classes/class-happyforms.php:
|
3265 |
msgid "Keep incomplete users responses stored in your WordPress database."
|
3266 |
msgstr ""
|
3267 |
|
3268 |
-
#: inc/classes/class-happyforms.php:
|
3269 |
msgid "Allow save and resume"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
-
#: inc/classes/class-happyforms.php:
|
3273 |
msgid ""
|
3274 |
"Let users temporarily save their incomplete response and continue filling "
|
3275 |
"out the form at a later time."
|
3276 |
msgstr ""
|
3277 |
|
3278 |
-
#: inc/classes/class-happyforms.php:
|
3279 |
msgid "Add submission identifier"
|
3280 |
msgstr ""
|
3281 |
|
3282 |
-
#: inc/classes/class-happyforms.php:
|
3283 |
msgid "Tag responses with a unique, incremental identifier."
|
3284 |
msgstr ""
|
3285 |
|
3286 |
-
#: inc/classes/class-happyforms.php:
|
3287 |
msgid "Preview before submit"
|
3288 |
msgstr ""
|
3289 |
|
3290 |
-
#: inc/classes/class-happyforms.php:
|
3291 |
msgid "Let your users review their submission before confirming it."
|
3292 |
msgstr ""
|
3293 |
|
3294 |
-
#: inc/classes/class-happyforms.php:
|
3295 |
msgid "Disable submit until valid"
|
3296 |
msgstr ""
|
3297 |
|
3298 |
-
#: inc/classes/class-happyforms.php:
|
3299 |
msgid ""
|
3300 |
"Reduce the opacity of the submit button until all required form parts are "
|
3301 |
"valid."
|
3302 |
msgstr ""
|
3303 |
|
3304 |
-
#: inc/classes/class-happyforms.php:
|
3305 |
msgid "Limit submissions"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
-
#: inc/classes/class-happyforms.php:
|
3309 |
msgid "Set limit on number of allowed form submission in general or per user."
|
3310 |
msgstr ""
|
3311 |
|
3312 |
-
#: inc/classes/class-happyforms.php:
|
3313 |
msgid "Schedule visibility"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: inc/classes/class-happyforms.php:
|
3317 |
msgid ""
|
3318 |
"Show or hide this form during a chosen time and day. Go to Settings > "
|
3319 |
"Timezone to set your city offset."
|
3320 |
msgstr ""
|
3321 |
|
3322 |
-
#: inc/classes/class-happyforms.php:
|
3323 |
msgid "Include reply link"
|
3324 |
msgstr ""
|
3325 |
|
3326 |
-
#: inc/classes/class-happyforms.php:
|
3327 |
msgid "Reply to your users and mark their submission as read in one click."
|
3328 |
msgstr ""
|
3329 |
|
3330 |
-
#: inc/classes/class-happyforms.php:
|
3331 |
msgid "Include referral link"
|
3332 |
msgstr ""
|
3333 |
|
3334 |
-
#: inc/classes/class-happyforms.php:
|
3335 |
msgid "Include the page link your form was submitted from."
|
3336 |
msgstr ""
|
3337 |
|
3338 |
-
#: inc/classes/class-happyforms.php:
|
3339 |
msgid "Attach .pdf"
|
3340 |
msgstr ""
|
3341 |
|
3342 |
-
#: inc/classes/class-happyforms.php:
|
3343 |
msgid "Attach a PDF to your submission alert."
|
3344 |
msgstr ""
|
3345 |
|
3346 |
-
#: inc/classes/class-happyforms.php:
|
3347 |
msgid "Attach a PDF to the recipient's confirmation email."
|
3348 |
msgstr ""
|
3349 |
|
3350 |
-
#: inc/classes/class-happyforms.php:
|
3351 |
msgid "Send abandonment email"
|
3352 |
msgstr ""
|
3353 |
|
3354 |
-
#: inc/classes/class-happyforms.php:
|
3355 |
msgid "Notify users when they abandon your form before submitting it."
|
3356 |
msgstr ""
|
3357 |
|
3358 |
-
#: inc/classes/class-happyforms.php:
|
3359 |
msgid "Use theme styles"
|
3360 |
msgstr ""
|
3361 |
|
3362 |
-
#: inc/classes/class-happyforms.php:236
|
3363 |
-
msgid "HappyForms Upgrade"
|
3364 |
-
msgstr ""
|
3365 |
-
|
3366 |
-
#: inc/classes/class-happyforms.php:361
|
3367 |
-
msgid ""
|
3368 |
-
"<p>Can we ask a favor?</p><p>You created your first form %s days ago — how "
|
3369 |
-
"time flies! Since then, we’ve answered hundreds of community emails and "
|
3370 |
-
"spent %s hours coding and improving HappyForms.</p><p>As you probably know, "
|
3371 |
-
"plugin reviews are an important way in helping a young business like ours "
|
3372 |
-
"grow.</p><p>If you could please spare one minute for a review, it would put "
|
3373 |
-
"a huge smile on our faces. 😊</p><p><a href=\"%s\" target=\"_blank\" "
|
3374 |
-
"rel=\"noopener\">Leave a review now</a>, or show your support by <a "
|
3375 |
-
"href=\"%s\" target=\"_blank\" class=\"external\">upgrading to a paid "
|
3376 |
-
"plan</a>.</p>"
|
3377 |
-
msgstr ""
|
3378 |
-
|
3379 |
#: inc/classes/class-message-controller.php:616
|
3380 |
#: inc/templates/email-owner.php:31
|
3381 |
msgid "Tracking number"
|
@@ -3390,7 +3367,7 @@ msgid "For geographical locations. Includes Google Maps intergration."
|
|
3390 |
msgstr ""
|
3391 |
|
3392 |
#: inc/classes/parts/class-part-attachment-dummy.php:8
|
3393 |
-
msgid "
|
3394 |
msgstr ""
|
3395 |
|
3396 |
#: inc/classes/parts/class-part-attachment-dummy.php:9
|
@@ -3398,7 +3375,7 @@ msgid "For allowing file uploads with easy drag and drop zone."
|
|
3398 |
msgstr ""
|
3399 |
|
3400 |
#: inc/classes/parts/class-part-date-dummy.php:8
|
3401 |
-
msgid "Date
|
3402 |
msgstr ""
|
3403 |
|
3404 |
#: inc/classes/parts/class-part-date-dummy.php:9
|
@@ -3406,7 +3383,7 @@ msgid "For formatted day, month, year and or time fields."
|
|
3406 |
msgstr ""
|
3407 |
|
3408 |
#: inc/classes/parts/class-part-legal-dummy.php:8
|
3409 |
-
msgid "
|
3410 |
msgstr ""
|
3411 |
|
3412 |
#: inc/classes/parts/class-part-legal-dummy.php:9
|
@@ -3414,7 +3391,7 @@ msgid "For requiring permission before accepting submission."
|
|
3414 |
msgstr ""
|
3415 |
|
3416 |
#: inc/classes/parts/class-part-mailchimp-dummy.php:8
|
3417 |
-
msgid "Opt-In"
|
3418 |
msgstr ""
|
3419 |
|
3420 |
#: inc/classes/parts/class-part-mailchimp-dummy.php:9
|
@@ -3446,7 +3423,7 @@ msgid "For processing payments using your favorite services."
|
|
3446 |
msgstr ""
|
3447 |
|
3448 |
#: inc/classes/parts/class-part-phone-dummy.php:8
|
3449 |
-
msgid "Phone"
|
3450 |
msgstr ""
|
3451 |
|
3452 |
#: inc/classes/parts/class-part-phone-dummy.php:9
|
@@ -3465,6 +3442,10 @@ msgstr ""
|
|
3465 |
msgid "For collecting opinions and showing published results in a bar chart."
|
3466 |
msgstr ""
|
3467 |
|
|
|
|
|
|
|
|
|
3468 |
#: inc/classes/parts/class-part-rating-dummy.php:9
|
3469 |
msgid "For collecting opinions using stars and emoji scales."
|
3470 |
msgstr ""
|
@@ -3478,7 +3459,7 @@ msgid "For formatting text, code blocks, lists and more."
|
|
3478 |
msgstr ""
|
3479 |
|
3480 |
#: inc/classes/parts/class-part-scale-dummy.php:8
|
3481 |
-
msgid "Scale"
|
3482 |
msgstr ""
|
3483 |
|
3484 |
#: inc/classes/parts/class-part-scale-dummy.php:9
|
@@ -3494,7 +3475,7 @@ msgid "For requiring authorization before accepting submission."
|
|
3494 |
msgstr ""
|
3495 |
|
3496 |
#: inc/classes/parts/class-part-table-dummy.php:8
|
3497 |
-
msgid "Table"
|
3498 |
msgstr ""
|
3499 |
|
3500 |
#: inc/classes/parts/class-part-table-dummy.php:9
|
2 |
# This file is distributed under the same license as the HappyForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: HappyForms 1.9.13\n"
|
6 |
"Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
|
7 |
+
"POT-Creation-Date: 2020-07-01 13:03: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"
|
45 |
msgid "Edit Form"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: core/classes/class-form-admin.php:155
|
49 |
#: core/classes/class-form-controller.php:73
|
50 |
msgid "View form"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: core/classes/class-form-admin.php:160
|
54 |
msgid "Preview form"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: core/classes/class-form-admin.php:165 core/classes/class-form-admin.php:168
|
58 |
msgid "Form updated."
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: core/classes/class-form-admin.php:166
|
62 |
msgid "Custom field updated."
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: core/classes/class-form-admin.php:167
|
66 |
msgid "Custom field deleted."
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: core/classes/class-form-admin.php:169
|
70 |
msgid "Form restored to revision from %s."
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: core/classes/class-form-admin.php:170
|
74 |
msgid "Form published."
|
75 |
msgstr ""
|
76 |
|
77 |
+
#: core/classes/class-form-admin.php:171
|
78 |
msgid "Form saved."
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: core/classes/class-form-admin.php:172
|
82 |
msgid "Form submitted."
|
83 |
msgstr ""
|
84 |
|
85 |
+
#: core/classes/class-form-admin.php:173
|
86 |
msgid "Form scheduled."
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: core/classes/class-form-admin.php:174
|
90 |
msgid "Form draft updated."
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: core/classes/class-form-admin.php:197
|
94 |
msgid "%s form updated."
|
95 |
msgid_plural "%s forms updated."
|
96 |
msgstr[0] ""
|
97 |
msgstr[1] ""
|
98 |
|
99 |
+
#: core/classes/class-form-admin.php:198
|
100 |
msgid "%s form not updated, somebody is editing it."
|
101 |
msgid_plural "%s forms not updated, somebody is editing them."
|
102 |
msgstr[0] ""
|
103 |
msgstr[1] ""
|
104 |
|
105 |
+
#: core/classes/class-form-admin.php:199
|
106 |
msgid "%s form permanently deleted."
|
107 |
msgid_plural "%s forms permanently deleted."
|
108 |
msgstr[0] ""
|
109 |
msgstr[1] ""
|
110 |
|
111 |
+
#: core/classes/class-form-admin.php:200
|
112 |
msgid "%s form moved to the Trash."
|
113 |
msgid_plural "%s forms moved to the Trash."
|
114 |
msgstr[0] ""
|
115 |
msgstr[1] ""
|
116 |
|
117 |
+
#: core/classes/class-form-admin.php:201
|
118 |
msgid "%s form restored from the Trash."
|
119 |
msgid_plural "%s forms restored from the Trash."
|
120 |
msgstr[0] ""
|
121 |
msgstr[1] ""
|
122 |
|
123 |
+
#: core/classes/class-form-admin.php:244
|
124 |
msgid "Shortcode"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: core/classes/class-form-admin.php:245
|
128 |
msgid "Author"
|
129 |
msgstr ""
|
130 |
|
131 |
+
#: core/classes/class-form-admin.php:283
|
132 |
msgid "Copy to clipboard"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: core/classes/class-form-admin.php:314
|
136 |
+
msgid "Last modified"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: core/classes/class-form-admin.php:353 core/classes/class-form-setup.php:124
|
140 |
msgid "Edit"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: core/classes/class-form-admin.php:357
|
144 |
#: core/templates/customize-form-item.php:27
|
145 |
#: core/templates/customize-form-part-footer.php:4
|
146 |
msgid "Duplicate"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: core/classes/class-form-admin.php:361
|
150 |
msgid "Trash"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: core/classes/class-form-admin.php:405
|
154 |
msgid "1 form duplicated."
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: core/classes/class-form-admin.php:407
|
158 |
msgid "Undo"
|
159 |
msgstr ""
|
160 |
|
167 |
msgstr ""
|
168 |
|
169 |
#: core/classes/class-form-controller.php:69
|
|
|
170 |
#: core/classes/class-happyforms-core.php:187
|
171 |
+
#: core/classes/class-happyforms-core.php:188
|
172 |
msgid "Add New"
|
173 |
msgstr ""
|
174 |
|
199 |
|
200 |
#: core/classes/class-form-controller.php:78
|
201 |
#: core/classes/class-form-controller.php:79
|
|
|
202 |
#: core/classes/class-happyforms-core.php:179
|
203 |
+
#: core/classes/class-happyforms-core.php:180
|
204 |
msgid "All Forms"
|
205 |
msgstr ""
|
206 |
|
306 |
msgstr ""
|
307 |
|
308 |
#: core/classes/class-form-part-library.php:196
|
309 |
+
msgid "Field definition not found"
|
310 |
msgstr ""
|
311 |
|
312 |
#: core/classes/class-form-part-library.php:227
|
359 |
|
360 |
#: core/classes/class-form-setup.php:182
|
361 |
#: core/templates/customize-form-parts-drawer.php:30
|
|
|
362 |
#: inc/templates/customize-controls/checkbox_dummy.php:7
|
363 |
msgid "Upgrade"
|
364 |
msgstr ""
|
374 |
msgstr ""
|
375 |
|
376 |
#: core/classes/class-form-setup.php:206
|
377 |
+
msgid "Optional field label"
|
378 |
msgstr ""
|
379 |
|
380 |
#: core/classes/class-form-setup.php:207
|
381 |
msgid ""
|
382 |
+
"Mark optional fields in your form to let your users distinguish them from "
|
383 |
+
"required fields."
|
384 |
msgstr ""
|
385 |
|
386 |
#: core/classes/class-form-setup.php:212
|
419 |
|
420 |
#: core/classes/class-form-setup.php:245
|
421 |
msgid ""
|
422 |
+
"Hide all form fields and display just title and confirmation message on "
|
423 |
"submit."
|
424 |
msgstr ""
|
425 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
#: core/classes/class-form-styles.php:49
|
427 |
msgid "Left-to-right"
|
428 |
msgstr ""
|
609 |
msgstr ""
|
610 |
|
611 |
#: core/classes/class-form-styles.php:605
|
612 |
+
msgid "Field borders & spacing"
|
613 |
msgstr ""
|
614 |
|
615 |
#: core/classes/class-form-styles.php:610
|
655 |
msgstr ""
|
656 |
|
657 |
#: core/classes/class-form-styles.php:660
|
658 |
+
msgid "Field labels & text"
|
659 |
msgstr ""
|
660 |
|
661 |
#: core/classes/class-form-styles.php:665
|
662 |
+
msgid "Toggle placeholder on field focus"
|
663 |
msgstr ""
|
664 |
|
665 |
#: core/classes/class-form-styles.php:670
|
695 |
msgstr ""
|
696 |
|
697 |
#: core/classes/class-form-styles.php:720
|
698 |
+
#: core/templates/parts/customize-email.php:18
|
699 |
+
#: core/templates/parts/customize-multi-line-text.php:18
|
700 |
+
#: core/templates/parts/customize-number.php:18
|
701 |
+
#: core/templates/parts/customize-select.php:17
|
702 |
+
#: core/templates/parts/customize-single-line-text.php:18
|
703 |
#: inc/classes/parts/class-part-placeholder-dummy.php:8
|
704 |
msgid "Placeholder"
|
705 |
msgstr ""
|
706 |
|
707 |
#: core/classes/class-form-styles.php:725
|
708 |
#: core/templates/parts/customize-checkbox.php:17
|
709 |
+
#: core/templates/parts/customize-email.php:22
|
710 |
+
#: core/templates/parts/customize-multi-line-text.php:22
|
711 |
+
#: core/templates/parts/customize-number.php:22
|
712 |
#: core/templates/parts/customize-radio.php:17
|
713 |
+
#: core/templates/parts/customize-select.php:21
|
714 |
+
#: core/templates/parts/customize-single-line-text.php:22
|
715 |
msgid "Description"
|
716 |
msgstr ""
|
717 |
|
741 |
msgstr ""
|
742 |
|
743 |
#: core/classes/class-form-styles.php:780
|
|
|
744 |
msgid "Rating"
|
745 |
msgstr ""
|
746 |
|
781 |
msgstr ""
|
782 |
|
783 |
#: core/classes/class-form-styles.php:860
|
784 |
+
msgid "Make button a field of last input"
|
785 |
msgstr ""
|
786 |
|
787 |
#: core/classes/class-form-styles.php:890
|
810 |
msgid "Additional CSS"
|
811 |
msgstr ""
|
812 |
|
813 |
+
#: core/classes/class-happyforms-core.php:171
|
814 |
msgid "HappyForms Index"
|
815 |
msgstr ""
|
816 |
|
|
|
817 |
#: core/classes/class-happyforms-core.php:195
|
818 |
+
#: core/classes/class-happyforms-core.php:196
|
819 |
msgid "Activity"
|
820 |
msgstr ""
|
821 |
|
|
|
822 |
#: core/classes/class-happyforms-core.php:204
|
823 |
+
#: core/classes/class-happyforms-core.php:205
|
824 |
msgid "Settings"
|
825 |
msgstr ""
|
826 |
|
|
|
827 |
#: core/classes/class-happyforms-core.php:213
|
828 |
+
#: core/classes/class-happyforms-core.php:214
|
829 |
msgid "Welcome"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: core/classes/class-happyforms-core.php:446
|
833 |
msgid "Insert HappyForm"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: core/classes/class-happyforms-core.php:446
|
837 |
msgid "Add HappyForms"
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: core/classes/class-happyforms-core.php:677
|
841 |
msgid "Overview"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: core/classes/class-happyforms-core.php:687
|
845 |
msgid "Hey 👋 Welcome to your HappyForms Dashboard!"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: core/classes/class-happyforms-core.php:690
|
849 |
msgid ""
|
850 |
"Are you looking for help? Well, we’ve swept the nacho crumbs from our "
|
851 |
"keyboards, refilled our ginger beers and are ready to reply with answers! "
|
852 |
"So, go on, email %s."
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: core/classes/class-happyforms-core.php:699
|
856 |
msgid "For more help"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: core/classes/class-happyforms-core.php:701
|
860 |
msgid "Help guide"
|
861 |
msgstr ""
|
862 |
|
1014 |
msgstr ""
|
1015 |
|
1016 |
#: core/classes/parts/class-part-email.php:8
|
1017 |
+
msgid "Email Address"
|
|
|
1018 |
msgstr ""
|
1019 |
|
1020 |
#: core/classes/parts/class-part-email.php:9
|
1022 |
msgstr ""
|
1023 |
|
1024 |
#: core/classes/parts/class-part-multi-line-text.php:8
|
1025 |
+
msgid "Long Answer"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
#: core/classes/parts/class-part-multi-line-text.php:9
|
1030 |
msgstr ""
|
1031 |
|
1032 |
#: core/classes/parts/class-part-multi-line-text.php:69
|
1033 |
+
#: core/templates/parts/customize-multi-line-text.php:68
|
1034 |
msgid "Min characters"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
#: core/classes/parts/class-part-multi-line-text.php:73
|
1038 |
+
#: core/templates/parts/customize-multi-line-text.php:65
|
1039 |
msgid "Max words"
|
1040 |
msgstr ""
|
1041 |
|
1068 |
msgstr ""
|
1069 |
|
1070 |
#: core/classes/parts/class-part-single-line-text.php:8
|
1071 |
+
msgid "Short Answer"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
#: core/classes/parts/class-part-single-line-text.php:9
|
1075 |
msgid "For single line text fields."
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: core/helpers/helper-activation.php:71
|
1079 |
msgid "Sample Form"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: core/helpers/helper-activation.php:101
|
1083 |
msgid "First name"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: core/helpers/helper-activation.php:106
|
1087 |
msgid "Last name"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: core/helpers/helper-activation.php:111
|
1091 |
msgid "What's your reason for contacting us?"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: core/helpers/helper-activation.php:114
|
1095 |
msgid "Need technical help"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: core/helpers/helper-activation.php:117
|
1099 |
msgid "Want to suggest a feature"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: core/helpers/helper-activation.php:120
|
1103 |
msgid "Asking about my account"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: core/helpers/helper-activation.php:126
|
1107 |
msgid "What's your age?"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: core/helpers/helper-activation.php:131
|
1111 |
msgid "Your message"
|
1112 |
msgstr ""
|
1113 |
|
2779 |
|
2780 |
#: core/helpers/helper-misc.php:930
|
2781 |
#: core/templates/parts/customize-checkbox.php:95
|
2782 |
+
msgid "Apply to all fields"
|
2783 |
msgstr ""
|
2784 |
|
2785 |
#: core/templates/admin-form-modal.php:5
|
2829 |
msgstr ""
|
2830 |
|
2831 |
#: core/templates/customize-form-build.php:10
|
2832 |
+
msgid "Add fields here to appear in your form."
|
2833 |
msgstr ""
|
2834 |
|
2835 |
#: core/templates/customize-form-build.php:13
|
2836 |
+
msgid "Add a Field"
|
2837 |
msgstr ""
|
2838 |
|
2839 |
#: core/templates/customize-form-item.php:18
|
2880 |
msgstr ""
|
2881 |
|
2882 |
#: core/templates/customize-form-parts-drawer.php:5
|
2883 |
+
msgid "Search fields"
|
2884 |
msgstr ""
|
2885 |
|
2886 |
#: core/templates/customize-form-parts-drawer.php:7
|
2888 |
msgstr ""
|
2889 |
|
2890 |
#: core/templates/customize-form-parts-drawer.php:39
|
2891 |
+
msgid "No fields found."
|
2892 |
msgstr ""
|
2893 |
|
2894 |
#: core/templates/customize-form-steps.php:3
|
2895 |
msgid "Build"
|
2896 |
msgstr ""
|
2897 |
|
2898 |
+
#: core/templates/customize-form-steps.php:5
|
2899 |
+
msgid "Email"
|
2900 |
+
msgstr ""
|
2901 |
+
|
2902 |
#: core/templates/customize-header-actions.php:5
|
2903 |
msgid "Save"
|
2904 |
msgstr ""
|
2937 |
msgstr ""
|
2938 |
|
2939 |
#: core/templates/parts/customize-checkbox.php:8
|
2940 |
+
#: core/templates/parts/customize-email.php:8
|
2941 |
#: core/templates/parts/customize-multi-line-text.php:8
|
2942 |
#: core/templates/parts/customize-number.php:8
|
2943 |
#: core/templates/parts/customize-radio.php:8
|
2977 |
msgstr ""
|
2978 |
|
2979 |
#: core/templates/parts/customize-checkbox.php:21
|
2980 |
+
#: core/templates/parts/customize-email.php:26
|
2981 |
+
#: core/templates/parts/customize-multi-line-text.php:26
|
2982 |
+
#: core/templates/parts/customize-number.php:26
|
2983 |
#: core/templates/parts/customize-radio.php:21
|
2984 |
+
#: core/templates/parts/customize-select.php:25
|
2985 |
+
#: core/templates/parts/customize-single-line-text.php:26
|
2986 |
msgid "Description appearance"
|
2987 |
msgstr ""
|
2988 |
|
2989 |
#: core/templates/parts/customize-checkbox.php:23
|
2990 |
+
#: core/templates/parts/customize-email.php:28
|
2991 |
+
#: core/templates/parts/customize-multi-line-text.php:28
|
2992 |
+
#: core/templates/parts/customize-number.php:28
|
2993 |
#: core/templates/parts/customize-radio.php:23
|
2994 |
+
#: core/templates/parts/customize-select.php:27
|
2995 |
+
#: core/templates/parts/customize-single-line-text.php:28
|
2996 |
msgid "Standard"
|
2997 |
msgstr ""
|
2998 |
|
2999 |
#: core/templates/parts/customize-checkbox.php:24
|
3000 |
+
#: core/templates/parts/customize-email.php:30
|
3001 |
+
#: core/templates/parts/customize-multi-line-text.php:30
|
3002 |
+
#: core/templates/parts/customize-number.php:30
|
3003 |
#: core/templates/parts/customize-radio.php:24
|
3004 |
+
#: core/templates/parts/customize-select.php:28
|
3005 |
+
#: core/templates/parts/customize-single-line-text.php:30
|
3006 |
msgid "Tooltip"
|
3007 |
msgstr ""
|
3008 |
|
3053 |
|
3054 |
#: core/templates/parts/customize-checkbox.php:53
|
3055 |
#: core/templates/parts/customize-email.php:38
|
3056 |
+
#: core/templates/parts/customize-multi-line-text.php:42
|
3057 |
#: core/templates/parts/customize-number.php:48
|
3058 |
#: core/templates/parts/customize-radio.php:53
|
3059 |
#: core/templates/parts/customize-select.php:57
|
3087 |
|
3088 |
#: core/templates/parts/customize-checkbox.php:102
|
3089 |
#: core/templates/parts/customize-email.php:78
|
3090 |
+
#: core/templates/parts/customize-multi-line-text.php:86
|
3091 |
#: core/templates/parts/customize-number.php:99
|
3092 |
#: core/templates/parts/customize-radio.php:83
|
3093 |
#: core/templates/parts/customize-select.php:83
|
3101 |
msgid "Make this choice default"
|
3102 |
msgstr ""
|
3103 |
|
|
|
|
|
|
|
|
|
3104 |
#: core/templates/parts/customize-email.php:13
|
3105 |
#: core/templates/parts/customize-multi-line-text.php:13
|
3106 |
#: core/templates/parts/customize-number.php:13
|
3108 |
msgid "Inside"
|
3109 |
msgstr ""
|
3110 |
|
3111 |
+
#: core/templates/parts/customize-email.php:29
|
3112 |
+
#: core/templates/parts/customize-multi-line-text.php:29
|
3113 |
+
#: core/templates/parts/customize-number.php:29
|
3114 |
+
#: core/templates/parts/customize-single-line-text.php:29
|
3115 |
msgid "Reveal on focus"
|
3116 |
msgstr ""
|
3117 |
|
3140 |
msgid "Suffix"
|
3141 |
msgstr ""
|
3142 |
|
3143 |
+
#: core/templates/parts/customize-multi-line-text.php:34
|
3144 |
+
msgid "Rows"
|
3145 |
+
msgstr ""
|
3146 |
+
|
3147 |
+
#: core/templates/parts/customize-multi-line-text.php:53
|
3148 |
msgid "Limit words/characters"
|
3149 |
msgstr ""
|
3150 |
|
3151 |
+
#: core/templates/parts/customize-multi-line-text.php:59
|
3152 |
msgid "Limit"
|
3153 |
msgstr ""
|
3154 |
|
3155 |
+
#: core/templates/parts/customize-multi-line-text.php:63
|
3156 |
msgid "Count"
|
3157 |
msgstr ""
|
3158 |
|
3159 |
+
#: core/templates/parts/customize-multi-line-text.php:66
|
3160 |
msgid "Min words"
|
3161 |
msgstr ""
|
3162 |
|
3163 |
+
#: core/templates/parts/customize-multi-line-text.php:67
|
3164 |
msgid "Max characters"
|
3165 |
msgstr ""
|
3166 |
|
3167 |
+
#: core/templates/parts/customize-multi-line-text.php:72
|
3168 |
msgid "'Characters' label"
|
3169 |
msgstr ""
|
3170 |
|
3171 |
+
#: core/templates/parts/customize-multi-line-text.php:76
|
3172 |
msgid "'Words' label"
|
3173 |
msgstr ""
|
3174 |
|
3209 |
msgid "Click to edit this part."
|
3210 |
msgstr ""
|
3211 |
|
3212 |
+
#: inc/classes/class-happyforms.php:82
|
3213 |
+
msgid "Randomize parts"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
+
#: inc/classes/class-happyforms.php:83
|
3217 |
+
msgid "Randomize the order of all form parts to avoid biases in your responses."
|
3218 |
msgstr ""
|
3219 |
|
3220 |
+
#: inc/classes/class-happyforms.php:89
|
3221 |
msgid "Use reCAPTCHA"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
+
#: inc/classes/class-happyforms.php:90
|
3225 |
msgid "Protect your form against bots using your Google ReCaptcha credentials."
|
3226 |
msgstr ""
|
3227 |
|
3228 |
+
#: inc/classes/class-happyforms.php:96
|
3229 |
msgid "Require password"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
+
#: inc/classes/class-happyforms.php:97
|
3233 |
msgid "Only users with password will be able to view and submit the form."
|
3234 |
msgstr ""
|
3235 |
|
3236 |
+
#: inc/classes/class-happyforms.php:103
|
3237 |
msgid "Open in overlay window"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
+
#: inc/classes/class-happyforms.php:104
|
3241 |
msgid "Generate a link that can be clicked to open an overlay window for this form."
|
3242 |
msgstr ""
|
3243 |
|
3244 |
+
#: inc/classes/class-happyforms.php:110
|
3245 |
msgid "Save user's meta data"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: inc/classes/class-happyforms.php:111
|
3249 |
msgid ""
|
3250 |
"User meta data like IP address, browser language, local time, and platform "
|
3251 |
"will be saved with each submission when checked."
|
3252 |
msgstr ""
|
3253 |
|
3254 |
+
#: inc/classes/class-happyforms.php:117
|
3255 |
msgid "Save abandoned forms"
|
3256 |
msgstr ""
|
3257 |
|
3258 |
+
#: inc/classes/class-happyforms.php:118
|
3259 |
msgid "Keep incomplete users responses stored in your WordPress database."
|
3260 |
msgstr ""
|
3261 |
|
3262 |
+
#: inc/classes/class-happyforms.php:124
|
3263 |
msgid "Allow save and resume"
|
3264 |
msgstr ""
|
3265 |
|
3266 |
+
#: inc/classes/class-happyforms.php:125
|
3267 |
msgid ""
|
3268 |
"Let users temporarily save their incomplete response and continue filling "
|
3269 |
"out the form at a later time."
|
3270 |
msgstr ""
|
3271 |
|
3272 |
+
#: inc/classes/class-happyforms.php:131
|
3273 |
msgid "Add submission identifier"
|
3274 |
msgstr ""
|
3275 |
|
3276 |
+
#: inc/classes/class-happyforms.php:132
|
3277 |
msgid "Tag responses with a unique, incremental identifier."
|
3278 |
msgstr ""
|
3279 |
|
3280 |
+
#: inc/classes/class-happyforms.php:138
|
3281 |
msgid "Preview before submit"
|
3282 |
msgstr ""
|
3283 |
|
3284 |
+
#: inc/classes/class-happyforms.php:139
|
3285 |
msgid "Let your users review their submission before confirming it."
|
3286 |
msgstr ""
|
3287 |
|
3288 |
+
#: inc/classes/class-happyforms.php:145
|
3289 |
msgid "Disable submit until valid"
|
3290 |
msgstr ""
|
3291 |
|
3292 |
+
#: inc/classes/class-happyforms.php:146
|
3293 |
msgid ""
|
3294 |
"Reduce the opacity of the submit button until all required form parts are "
|
3295 |
"valid."
|
3296 |
msgstr ""
|
3297 |
|
3298 |
+
#: inc/classes/class-happyforms.php:152
|
3299 |
msgid "Limit submissions"
|
3300 |
msgstr ""
|
3301 |
|
3302 |
+
#: inc/classes/class-happyforms.php:153
|
3303 |
msgid "Set limit on number of allowed form submission in general or per user."
|
3304 |
msgstr ""
|
3305 |
|
3306 |
+
#: inc/classes/class-happyforms.php:159
|
3307 |
msgid "Schedule visibility"
|
3308 |
msgstr ""
|
3309 |
|
3310 |
+
#: inc/classes/class-happyforms.php:160
|
3311 |
msgid ""
|
3312 |
"Show or hide this form during a chosen time and day. Go to Settings > "
|
3313 |
"Timezone to set your city offset."
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: inc/classes/class-happyforms.php:170
|
3317 |
msgid "Include reply link"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
+
#: inc/classes/class-happyforms.php:171
|
3321 |
msgid "Reply to your users and mark their submission as read in one click."
|
3322 |
msgstr ""
|
3323 |
|
3324 |
+
#: inc/classes/class-happyforms.php:177
|
3325 |
msgid "Include referral link"
|
3326 |
msgstr ""
|
3327 |
|
3328 |
+
#: inc/classes/class-happyforms.php:178
|
3329 |
msgid "Include the page link your form was submitted from."
|
3330 |
msgstr ""
|
3331 |
|
3332 |
+
#: inc/classes/class-happyforms.php:184 inc/classes/class-happyforms.php:191
|
3333 |
msgid "Attach .pdf"
|
3334 |
msgstr ""
|
3335 |
|
3336 |
+
#: inc/classes/class-happyforms.php:185
|
3337 |
msgid "Attach a PDF to your submission alert."
|
3338 |
msgstr ""
|
3339 |
|
3340 |
+
#: inc/classes/class-happyforms.php:192
|
3341 |
msgid "Attach a PDF to the recipient's confirmation email."
|
3342 |
msgstr ""
|
3343 |
|
3344 |
+
#: inc/classes/class-happyforms.php:198
|
3345 |
msgid "Send abandonment email"
|
3346 |
msgstr ""
|
3347 |
|
3348 |
+
#: inc/classes/class-happyforms.php:199
|
3349 |
msgid "Notify users when they abandon your form before submitting it."
|
3350 |
msgstr ""
|
3351 |
|
3352 |
+
#: inc/classes/class-happyforms.php:209
|
3353 |
msgid "Use theme styles"
|
3354 |
msgstr ""
|
3355 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3356 |
#: inc/classes/class-message-controller.php:616
|
3357 |
#: inc/templates/email-owner.php:31
|
3358 |
msgid "Tracking number"
|
3367 |
msgstr ""
|
3368 |
|
3369 |
#: inc/classes/parts/class-part-attachment-dummy.php:8
|
3370 |
+
msgid "File Upload"
|
3371 |
msgstr ""
|
3372 |
|
3373 |
#: inc/classes/parts/class-part-attachment-dummy.php:9
|
3375 |
msgstr ""
|
3376 |
|
3377 |
#: inc/classes/parts/class-part-date-dummy.php:8
|
3378 |
+
msgid "Date-Time"
|
3379 |
msgstr ""
|
3380 |
|
3381 |
#: inc/classes/parts/class-part-date-dummy.php:9
|
3383 |
msgstr ""
|
3384 |
|
3385 |
#: inc/classes/parts/class-part-legal-dummy.php:8
|
3386 |
+
msgid "Consent Choice"
|
3387 |
msgstr ""
|
3388 |
|
3389 |
#: inc/classes/parts/class-part-legal-dummy.php:9
|
3391 |
msgstr ""
|
3392 |
|
3393 |
#: inc/classes/parts/class-part-mailchimp-dummy.php:8
|
3394 |
+
msgid "Opt-In Choice"
|
3395 |
msgstr ""
|
3396 |
|
3397 |
#: inc/classes/parts/class-part-mailchimp-dummy.php:9
|
3423 |
msgstr ""
|
3424 |
|
3425 |
#: inc/classes/parts/class-part-phone-dummy.php:8
|
3426 |
+
msgid "Phone Number"
|
3427 |
msgstr ""
|
3428 |
|
3429 |
#: inc/classes/parts/class-part-phone-dummy.php:9
|
3442 |
msgid "For collecting opinions and showing published results in a bar chart."
|
3443 |
msgstr ""
|
3444 |
|
3445 |
+
#: inc/classes/parts/class-part-rating-dummy.php:8
|
3446 |
+
msgid "Star Rating"
|
3447 |
+
msgstr ""
|
3448 |
+
|
3449 |
#: inc/classes/parts/class-part-rating-dummy.php:9
|
3450 |
msgid "For collecting opinions using stars and emoji scales."
|
3451 |
msgstr ""
|
3459 |
msgstr ""
|
3460 |
|
3461 |
#: inc/classes/parts/class-part-scale-dummy.php:8
|
3462 |
+
msgid "Slider Scale"
|
3463 |
msgstr ""
|
3464 |
|
3465 |
#: inc/classes/parts/class-part-scale-dummy.php:9
|
3475 |
msgstr ""
|
3476 |
|
3477 |
#: inc/classes/parts/class-part-table-dummy.php:8
|
3478 |
+
msgid "Matrix Table"
|
3479 |
msgstr ""
|
3480 |
|
3481 |
#: inc/classes/parts/class-part-table-dummy.php:9
|
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.4
|
7 |
Requires PHP: 5.3
|
8 |
-
Stable tag: 1.9.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -34,7 +34,7 @@ https://www.youtube.com/watch?v=X1snk2vJbXI
|
|
34 |
* Easily add forms anywhere to your pages, posts and widget areas.
|
35 |
* Add multiple forms to the same page.
|
36 |
* Completely mobile responsive forms.
|
37 |
-
* Unlimited forms,
|
38 |
* Create multi-column layouts with a single click.
|
39 |
* Easily duplicate forms.
|
40 |
* Confirmation message on submission.
|
@@ -43,11 +43,11 @@ https://www.youtube.com/watch?v=X1snk2vJbXI
|
|
43 |
* Over 50 styles controls built-in.
|
44 |
* GDPR and 508 compliant forms and secure forms.
|
45 |
|
46 |
-
= Included HappyForms Form
|
47 |
|
48 |
-
* Short
|
49 |
-
* Long
|
50 |
-
* Email — Validate users email addresses before submission.
|
51 |
* Multiple Choice — Checkboxes for multiple selections.
|
52 |
* Single Choice — Radio buttons for single selection.
|
53 |
* Dropdown — For long lists and single selection.
|
@@ -55,7 +55,7 @@ https://www.youtube.com/watch?v=X1snk2vJbXI
|
|
55 |
|
56 |
= Upgraded HappyForms Features: =
|
57 |
|
58 |
-
* Access to all 20+ form
|
59 |
* Manage unlimited responses easily in the dashboard.
|
60 |
* Let folks upload files to your forms.
|
61 |
* Redirect to any webpage after the form is submitted.
|
@@ -72,7 +72,7 @@ https://www.youtube.com/watch?v=X1snk2vJbXI
|
|
72 |
* Built-in dashboard analytics with no setup.
|
73 |
* Log IP address automatically.
|
74 |
* Poll part with real-time results.
|
75 |
-
*
|
76 |
* Advanced filtering of responses.
|
77 |
* Fade submit button until valid.
|
78 |
* Get access to our growing Slack community.
|
@@ -97,6 +97,13 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more yo
|
|
97 |
|
98 |
== Changelog ==
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
= 1.9.12 =
|
101 |
* Improvement: Updated part icons.
|
102 |
* Improvement: Various style improvements to form builder and front-end.
|
@@ -617,6 +624,9 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more yo
|
|
617 |
|
618 |
== Upgrade Notice ==
|
619 |
|
|
|
|
|
|
|
620 |
= 1.9.12 =
|
621 |
* New part icons, various improvements to form styles.
|
622 |
|
5 |
Requires at least: 4.8
|
6 |
Tested up to: 5.4
|
7 |
Requires PHP: 5.3
|
8 |
+
Stable tag: 1.9.13
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
34 |
* Easily add forms anywhere to your pages, posts and widget areas.
|
35 |
* Add multiple forms to the same page.
|
36 |
* Completely mobile responsive forms.
|
37 |
+
* Unlimited forms, fields, emails and messages.
|
38 |
* Create multi-column layouts with a single click.
|
39 |
* Easily duplicate forms.
|
40 |
* Confirmation message on submission.
|
43 |
* Over 50 styles controls built-in.
|
44 |
* GDPR and 508 compliant forms and secure forms.
|
45 |
|
46 |
+
= Included HappyForms Form Fields: =
|
47 |
|
48 |
+
* Short Answer — For fields like ‘First Name’ and ‘Last Name’.
|
49 |
+
* Long Answer — For longer messages and feedback.
|
50 |
+
* Email Address — Validate users email addresses before submission.
|
51 |
* Multiple Choice — Checkboxes for multiple selections.
|
52 |
* Single Choice — Radio buttons for single selection.
|
53 |
* Dropdown — For long lists and single selection.
|
55 |
|
56 |
= Upgraded HappyForms Features: =
|
57 |
|
58 |
+
* Access to all 20+ form fields.
|
59 |
* Manage unlimited responses easily in the dashboard.
|
60 |
* Let folks upload files to your forms.
|
61 |
* Redirect to any webpage after the form is submitted.
|
72 |
* Built-in dashboard analytics with no setup.
|
73 |
* Log IP address automatically.
|
74 |
* Poll part with real-time results.
|
75 |
+
* Randomize form fields and values to avoid biases.
|
76 |
* Advanced filtering of responses.
|
77 |
* Fade submit button until valid.
|
78 |
* Get access to our growing Slack community.
|
97 |
|
98 |
== Changelog ==
|
99 |
|
100 |
+
= 1.9.13 =
|
101 |
+
* New feature: Rows control added to Long Answer field.
|
102 |
+
* Improvement: New icons for form fields in form builder.
|
103 |
+
* Improvement: Various improvements to form builder and front-end styles.
|
104 |
+
* Bugfix: Sorting fields in form builder made the container always scroll to top instead of preserving its scrolling position.
|
105 |
+
* Bugfix: When suffix was set on a field with tooltip, the tooltip icon and suffix were overlapping.
|
106 |
+
|
107 |
= 1.9.12 =
|
108 |
* Improvement: Updated part icons.
|
109 |
* Improvement: Various style improvements to form builder and front-end.
|
624 |
|
625 |
== Upgrade Notice ==
|
626 |
|
627 |
+
= 1.9.13 =
|
628 |
+
* Rows control for Long Answer field, new field icons, and improvements.
|
629 |
+
|
630 |
= 1.9.12 =
|
631 |
* New part icons, various improvements to form styles.
|
632 |
|