Version Description
- New feature: "Step Interval" control allows for fine tuning the incrementing interval of Number field.
- Improvement: "Make this choice default" control now supports multiple choices in Checkbox field.
- Bugfix: Dropdown field was ignoring some style settings.
Download this release
Release Info
Developer | happyforms |
Plugin | Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms |
Version | 1.14.2 |
Comparing to | |
See all releases |
Code changes from version 1.14.1 to 1.14.2
- core/assets/css/color.css +13 -7
- core/assets/css/customize.css +0 -4
- core/assets/css/layout.css +4 -2
- core/assets/js/frontend/select.js +5 -4
- core/assets/js/parts/part-checkbox.js +6 -9
- core/assets/js/parts/part-number.js +24 -1
- core/classes/class-form-setup.php +3 -3
- core/classes/class-form-styles.php +5 -3
- core/classes/parts/class-part-number.php +4 -0
- core/templates/parts/customize-number.php +4 -0
- core/templates/parts/frontend-checkbox.php +0 -4
- core/templates/parts/frontend-number.php +1 -1
- core/templates/parts/frontend-radio.php +1 -5
- happyforms.php +2 -2
- integrations/assets/css/admin.css +24 -0
- integrations/templates/widget-aweber-dummy.php +1 -1
- languages/happyforms.pot +14 -10
- readme.txt +10 -2
core/assets/css/color.css
CHANGED
@@ -125,7 +125,8 @@
|
|
125 |
.happyforms-styles .happyforms-part input[type=email],
|
126 |
.happyforms-styles .happyforms-part input[type=tel],
|
127 |
.happyforms-styles .happyforms-part input[type=number],
|
128 |
-
.happyforms-styles .happyforms-part input[type=range]
|
|
|
129 |
height: auto !important;
|
130 |
}
|
131 |
|
@@ -135,7 +136,8 @@
|
|
135 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=tel],
|
136 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=number],
|
137 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=range],
|
138 |
-
.happyforms-styles.happyforms-form--part-border-off .happyforms-part textarea
|
|
|
139 |
border-color: transparent !important;
|
140 |
}
|
141 |
|
@@ -166,7 +168,8 @@
|
|
166 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=email]:focus,
|
167 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=tel]:focus,
|
168 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=number]:focus,
|
169 |
-
.happyforms-styles.happyforms-form--part-border-off .happyforms-part textarea:focus
|
|
|
170 |
border-color: transparent !important;
|
171 |
}
|
172 |
|
@@ -382,7 +385,7 @@
|
|
382 |
|
383 |
.happyforms-styles .happyforms-part__select-wrap:after {
|
384 |
border-top: 6px solid #000;
|
385 |
-
border-top-color: var(--happyforms-color-
|
386 |
}
|
387 |
|
388 |
.happyforms-styles .happyforms-part select.happyforms-select:invalid {
|
@@ -552,7 +555,8 @@
|
|
552 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part input[type=tel],
|
553 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part input[type=number],
|
554 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part textarea,
|
555 |
-
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part .happyforms-part__select-bg
|
|
|
556 |
border-radius: 0px !important;
|
557 |
}
|
558 |
|
@@ -565,7 +569,8 @@
|
|
565 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part input[type=email],
|
566 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part input[type=tel],
|
567 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part input[type=number],
|
568 |
-
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part textarea
|
|
|
569 |
border-radius: 25px !important;
|
570 |
padding-left: 25px;
|
571 |
padding-right: 25px;
|
@@ -641,7 +646,8 @@
|
|
641 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part input[type=password],
|
642 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part input[type=email],
|
643 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part input[type=number],
|
644 |
-
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part textarea
|
|
|
645 |
border-top-color: transparent !important;
|
646 |
border-left-color: transparent !important;
|
647 |
border-right-color: transparent !important;
|
125 |
.happyforms-styles .happyforms-part input[type=email],
|
126 |
.happyforms-styles .happyforms-part input[type=tel],
|
127 |
.happyforms-styles .happyforms-part input[type=number],
|
128 |
+
.happyforms-styles .happyforms-part input[type=range],
|
129 |
+
.happyforms-select .happyforms-part select.happyforms-select {
|
130 |
height: auto !important;
|
131 |
}
|
132 |
|
136 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=tel],
|
137 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=number],
|
138 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=range],
|
139 |
+
.happyforms-styles.happyforms-form--part-border-off .happyforms-part textarea,
|
140 |
+
.happyforms-styles.happyforms-form--part-border-off .happyforms-part select.happyforms-select {
|
141 |
border-color: transparent !important;
|
142 |
}
|
143 |
|
168 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=email]:focus,
|
169 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=tel]:focus,
|
170 |
.happyforms-styles.happyforms-form--part-border-off .happyforms-part input[type=number]:focus,
|
171 |
+
.happyforms-styles.happyforms-form--part-border-off .happyforms-part textarea:focus,
|
172 |
+
.happyforms-styles.happyforms-form--part-border-off .happyforms-part select.happyforms-select:focus {
|
173 |
border-color: transparent !important;
|
174 |
}
|
175 |
|
385 |
|
386 |
.happyforms-styles .happyforms-part__select-wrap:after {
|
387 |
border-top: 6px solid #000;
|
388 |
+
border-top-color: var(--happyforms-color-part-value);
|
389 |
}
|
390 |
|
391 |
.happyforms-styles .happyforms-part select.happyforms-select:invalid {
|
555 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part input[type=tel],
|
556 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part input[type=number],
|
557 |
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part textarea,
|
558 |
+
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part .happyforms-part__select-bg,
|
559 |
+
.happyforms-styles.happyforms-form--part-border-radius-square .happyforms-part:not(.happyforms-part--phone) select.happyforms-select {
|
560 |
border-radius: 0px !important;
|
561 |
}
|
562 |
|
569 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part input[type=email],
|
570 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part input[type=tel],
|
571 |
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part input[type=number],
|
572 |
+
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part textarea,
|
573 |
+
.happyforms-styles.happyforms-form--part-border-radius-pill .happyforms-part:not(.happyforms-part--phone) select.happyforms-select {
|
574 |
border-radius: 25px !important;
|
575 |
padding-left: 25px;
|
576 |
padding-right: 25px;
|
646 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part input[type=password],
|
647 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part input[type=email],
|
648 |
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part input[type=number],
|
649 |
+
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part textarea,
|
650 |
+
.happyforms-styles.happyforms-form--part-borders-bottom-only .happyforms-part:not(.happyforms-part--phone) select.happyforms-select {
|
651 |
border-top-color: transparent !important;
|
652 |
border-left-color: transparent !important;
|
653 |
border-right-color: transparent !important;
|
core/assets/css/customize.css
CHANGED
@@ -1466,11 +1466,7 @@ li.customize-control.happyforms-range-control select.happyforms-unit-switch {
|
|
1466 |
}
|
1467 |
|
1468 |
.happyforms-style-view.has-placeholder #customize-control-part_toggle_placeholders,
|
1469 |
-
.happyforms-style-view.has-select #customize-control-dropdowns,
|
1470 |
-
.happyforms-style-view.has-date #customize-control-dropdowns,
|
1471 |
-
.happyforms-style-view.has-email #customize-control-dropdowns,
|
1472 |
.happyforms-style-view.has-address #customize-control-dropdowns,
|
1473 |
-
.happyforms-style-view.has-title #customize-control-dropdowns,
|
1474 |
.happyforms-style-view.has-checkbox #customize-control-checkboxes-radios,
|
1475 |
.happyforms-style-view.has-radio #customize-control-checkboxes-radios,
|
1476 |
.happyforms-style-view.has-table #customize-control-checkboxes-radios,
|
1466 |
}
|
1467 |
|
1468 |
.happyforms-style-view.has-placeholder #customize-control-part_toggle_placeholders,
|
|
|
|
|
|
|
1469 |
.happyforms-style-view.has-address #customize-control-dropdowns,
|
|
|
1470 |
.happyforms-style-view.has-checkbox #customize-control-checkboxes-radios,
|
1471 |
.happyforms-style-view.has-radio #customize-control-checkboxes-radios,
|
1472 |
.happyforms-style-view.has-table #customize-control-checkboxes-radios,
|
core/assets/css/layout.css
CHANGED
@@ -859,7 +859,8 @@ form .happyforms-flex>.happyforms-message-notices .happyforms-message-notice a {
|
|
859 |
.happyforms-form--part-inner-padding-narrow .happyforms-part input[type=tel],
|
860 |
.happyforms-form--part-inner-padding-narrow .happyforms-part input[type=number],
|
861 |
.happyforms-form--part-inner-padding-narrow .happyforms-part textarea,
|
862 |
-
.happyforms-form--part-inner-padding-narrow .happyforms-part .option-label
|
|
|
863 |
padding: 5px;
|
864 |
}
|
865 |
|
@@ -885,7 +886,8 @@ form .happyforms-flex>.happyforms-message-notices .happyforms-message-notice a {
|
|
885 |
.happyforms-form--part-inner-padding-wide .happyforms-part input[type=number],
|
886 |
.happyforms-form--part-inner-padding-wide .happyforms-part textarea,
|
887 |
.happyforms-form--part-inner-padding-wide .happyforms-part .option-label,
|
888 |
-
.happyforms-form--part-inner-padding-wide .happyforms-part--placeholder .happyforms-part__el
|
|
|
889 |
padding: 15px;
|
890 |
}
|
891 |
|
859 |
.happyforms-form--part-inner-padding-narrow .happyforms-part input[type=tel],
|
860 |
.happyforms-form--part-inner-padding-narrow .happyforms-part input[type=number],
|
861 |
.happyforms-form--part-inner-padding-narrow .happyforms-part textarea,
|
862 |
+
.happyforms-form--part-inner-padding-narrow .happyforms-part .option-label,
|
863 |
+
.happyforms-form--part-inner-padding-narrow .happyforms-part:not(.happyforms-part--phone) select.happyforms-select {
|
864 |
padding: 5px;
|
865 |
}
|
866 |
|
886 |
.happyforms-form--part-inner-padding-wide .happyforms-part input[type=number],
|
887 |
.happyforms-form--part-inner-padding-wide .happyforms-part textarea,
|
888 |
.happyforms-form--part-inner-padding-wide .happyforms-part .option-label,
|
889 |
+
.happyforms-form--part-inner-padding-wide .happyforms-part--placeholder .happyforms-part__el,
|
890 |
+
.happyforms-form--part-inner-padding-wide .happyforms-part:not(.happyforms-part--phone) select.happyforms-select {
|
891 |
padding: 15px;
|
892 |
}
|
893 |
|
core/assets/js/frontend/select.js
CHANGED
@@ -5,14 +5,15 @@
|
|
5 |
HappyForms.parts.select = {
|
6 |
init: function( options ) {
|
7 |
this.type = this.$el.data( 'happyforms-type' );
|
8 |
-
this.$
|
9 |
|
10 |
-
this.$
|
|
|
11 |
},
|
12 |
|
13 |
onBlur: function() {
|
14 |
var $otherinput = $( '.happyforms-part-option--other input[type=text]', this.$el );
|
15 |
-
if ( '999' === this.$
|
16 |
$otherinput.addClass( 'hf-show' );
|
17 |
$otherinput.focus();
|
18 |
} else {
|
@@ -23,7 +24,7 @@
|
|
23 |
serialize: function() {
|
24 |
var self = this;
|
25 |
|
26 |
-
var serialized = this.$
|
27 |
var $select = $( select, self.$el );
|
28 |
var $customInput = 0;
|
29 |
|
5 |
HappyForms.parts.select = {
|
6 |
init: function( options ) {
|
7 |
this.type = this.$el.data( 'happyforms-type' );
|
8 |
+
this.$input = $( '[data-serialize]', this.$el );
|
9 |
|
10 |
+
this.$input.on( 'change', this.triggerChange.bind( this ) );
|
11 |
+
this.$input.on( 'blur', this.onBlur.bind( this ) );
|
12 |
},
|
13 |
|
14 |
onBlur: function() {
|
15 |
var $otherinput = $( '.happyforms-part-option--other input[type=text]', this.$el );
|
16 |
+
if ( '999' === this.$input.val() ) {
|
17 |
$otherinput.addClass( 'hf-show' );
|
18 |
$otherinput.focus();
|
19 |
} else {
|
24 |
serialize: function() {
|
25 |
var self = this;
|
26 |
|
27 |
+
var serialized = this.$input.map( function( i, select ) {
|
28 |
var $select = $( select, self.$el );
|
29 |
var $customInput = 0;
|
30 |
|
core/assets/js/parts/part-checkbox.js
CHANGED
@@ -204,17 +204,14 @@
|
|
204 |
},
|
205 |
|
206 |
onItemDefaultChange: function( e ) {
|
207 |
-
var
|
208 |
-
|
209 |
-
this.model.collection.forEach( function( item ) {
|
210 |
-
item.set( 'is_default', 0 );
|
211 |
-
} );
|
212 |
|
213 |
-
|
214 |
-
|
215 |
-
if ( isChecked ) {
|
216 |
this.model.set( 'is_default', 1 );
|
217 |
-
$
|
|
|
|
|
|
|
218 |
}
|
219 |
|
220 |
var data = {
|
204 |
},
|
205 |
|
206 |
onItemDefaultChange: function( e ) {
|
207 |
+
var $target = $( e.target );
|
|
|
|
|
|
|
|
|
208 |
|
209 |
+
if ( $target.is( ':checked' ) ) {
|
|
|
|
|
210 |
this.model.set( 'is_default', 1 );
|
211 |
+
$target.prop( 'checked', true );
|
212 |
+
} else {
|
213 |
+
this.model.set( 'is_default', 0 );
|
214 |
+
$target.prop( 'checked', false );
|
215 |
}
|
216 |
|
217 |
var data = {
|
core/assets/js/parts/part-number.js
CHANGED
@@ -15,6 +15,7 @@
|
|
15 |
|
16 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
17 |
'change [name=masked]': 'onMaskedChange',
|
|
|
18 |
} ),
|
19 |
|
20 |
initialize: function () {
|
@@ -65,6 +66,20 @@
|
|
65 |
} );
|
66 |
},
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
onThousandsDelimiterChange: function() {
|
69 |
var data = {
|
70 |
id: this.model.get( 'id' ),
|
@@ -183,7 +198,15 @@
|
|
183 |
var $suffix = this.$( '.happyforms-input-group__suffix span', $part );
|
184 |
|
185 |
$suffix.text( part.get( 'mask_numeric_suffix' ) );
|
186 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
} );
|
188 |
|
189 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
15 |
|
16 |
events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
|
17 |
'change [name=masked]': 'onMaskedChange',
|
18 |
+
'change [data-bind=step]': 'onNumberStepIntervalChange',
|
19 |
} ),
|
20 |
|
21 |
initialize: function () {
|
66 |
} );
|
67 |
},
|
68 |
|
69 |
+
onNumberStepIntervalChange: function( e ) {
|
70 |
+
if ( $( e.target ).val() <= 0 ) {
|
71 |
+
$('[data-bind=step]', this.$el).val( 1 );
|
72 |
+
this.model.set( 'step', 1 );
|
73 |
+
}
|
74 |
+
|
75 |
+
var data = {
|
76 |
+
id: this.model.get( 'id' ),
|
77 |
+
callback: 'onNumberStepIntervalChangeCallback',
|
78 |
+
};
|
79 |
+
|
80 |
+
happyForms.previewSend( 'happyforms-part-dom-update', data );
|
81 |
+
},
|
82 |
+
|
83 |
onThousandsDelimiterChange: function() {
|
84 |
var data = {
|
85 |
id: this.model.get( 'id' ),
|
198 |
var $suffix = this.$( '.happyforms-input-group__suffix span', $part );
|
199 |
|
200 |
$suffix.text( part.get( 'mask_numeric_suffix' ) );
|
201 |
+
},
|
202 |
+
|
203 |
+
onNumberStepIntervalChangeCallback: function( id, html, options ) {
|
204 |
+
var part = this.getPartModel( id );
|
205 |
+
var $part = this.getPartElement( html );
|
206 |
+
var $input = this.$( 'input', $part );
|
207 |
+
|
208 |
+
$input.attr( 'step', part.get( 'step' ) );
|
209 |
+
},
|
210 |
} );
|
211 |
|
212 |
} ) ( jQuery, _, Backbone, wp.customize, _happyFormsSettings );
|
core/classes/class-form-setup.php
CHANGED
@@ -269,7 +269,7 @@ class HappyForms_Form_Setup {
|
|
269 |
case 'use_html_id-group_end':
|
270 |
$form = happyforms_customize_get_current_form();
|
271 |
|
272 |
-
if (
|
273 |
break;
|
274 |
}
|
275 |
|
@@ -283,7 +283,7 @@ class HappyForms_Form_Setup {
|
|
283 |
case 'add_submit_button_class-group_end':
|
284 |
$form = happyforms_customize_get_current_form();
|
285 |
|
286 |
-
if (
|
287 |
break;
|
288 |
}
|
289 |
|
@@ -344,7 +344,7 @@ class HappyForms_Form_Setup {
|
|
344 |
$has_html_id_checkbox = ( metadata_exists( 'post', $form['ID'], '_happyforms_use_html_id' ) );
|
345 |
|
346 |
if ( ! empty( $form['html_id'] ) ) {
|
347 |
-
if ( ! $has_html_id_checkbox || $has_html_id_checkbox &&
|
348 |
$id = $form['html_id'];
|
349 |
}
|
350 |
}
|
269 |
case 'use_html_id-group_end':
|
270 |
$form = happyforms_customize_get_current_form();
|
271 |
|
272 |
+
if ( happyforms_is_falsy( $form['use_html_id'] ) ) {
|
273 |
break;
|
274 |
}
|
275 |
|
283 |
case 'add_submit_button_class-group_end':
|
284 |
$form = happyforms_customize_get_current_form();
|
285 |
|
286 |
+
if ( happyforms_is_falsy( $form['add_submit_button_class'] ) ) {
|
287 |
break;
|
288 |
}
|
289 |
|
344 |
$has_html_id_checkbox = ( metadata_exists( 'post', $form['ID'], '_happyforms_use_html_id' ) );
|
345 |
|
346 |
if ( ! empty( $form['html_id'] ) ) {
|
347 |
+
if ( ! $has_html_id_checkbox || $has_html_id_checkbox && happyforms_is_truthy( $form['use_html_id'] ) ) {
|
348 |
$id = $form['html_id'];
|
349 |
}
|
350 |
}
|
core/classes/class-form-styles.php
CHANGED
@@ -733,7 +733,7 @@ class HappyForms_Form_Styles {
|
|
733 |
),
|
734 |
3800 => array(
|
735 |
'type' => 'divider',
|
736 |
-
'label' => __( '
|
737 |
'id' => 'dropdowns',
|
738 |
),
|
739 |
3900 => array(
|
@@ -961,10 +961,11 @@ class HappyForms_Form_Styles {
|
|
961 |
|
962 |
return $form;
|
963 |
}
|
|
|
964 |
public function filter_obsolete_form_width( $styles, $form ) {
|
965 |
$form_width = $form['form_width'];
|
966 |
|
967 |
-
if (
|
968 |
unset( $styles['form_width'] );
|
969 |
}
|
970 |
|
@@ -1002,9 +1003,10 @@ class HappyForms_Form_Styles {
|
|
1002 |
case 'form-width-range':
|
1003 |
$form_width = $form['form_width'];
|
1004 |
|
1005 |
-
if(
|
1006 |
break;
|
1007 |
}
|
|
|
1008 |
require( "{$path}/range.php" );
|
1009 |
break;
|
1010 |
case 'additional_css-divider':
|
733 |
),
|
734 |
3800 => array(
|
735 |
'type' => 'divider',
|
736 |
+
'label' => __( 'Address dropdowns', 'happyforms' ),
|
737 |
'id' => 'dropdowns',
|
738 |
),
|
739 |
3900 => array(
|
961 |
|
962 |
return $form;
|
963 |
}
|
964 |
+
|
965 |
public function filter_obsolete_form_width( $styles, $form ) {
|
966 |
$form_width = $form['form_width'];
|
967 |
|
968 |
+
if ( happyforms_is_falsy( $form_width ) || 100 === intval( $form_width ) ) {
|
969 |
unset( $styles['form_width'] );
|
970 |
}
|
971 |
|
1003 |
case 'form-width-range':
|
1004 |
$form_width = $form['form_width'];
|
1005 |
|
1006 |
+
if ( happyforms_is_falsy( $form_width ) || 100 === intval( $form_width ) ) {
|
1007 |
break;
|
1008 |
}
|
1009 |
+
|
1010 |
require( "{$path}/range.php" );
|
1011 |
break;
|
1012 |
case 'additional_css-divider':
|
core/classes/parts/class-part-number.php
CHANGED
@@ -67,6 +67,10 @@ class HappyForms_Part_Number extends HappyForms_Form_Part {
|
|
67 |
'default' => 10,
|
68 |
'sanitize' => 'intval'
|
69 |
),
|
|
|
|
|
|
|
|
|
70 |
'masked' => array(
|
71 |
'default' => 0,
|
72 |
'sanitize' => 'intval'
|
67 |
'default' => 10,
|
68 |
'sanitize' => 'intval'
|
69 |
),
|
70 |
+
'step' => array(
|
71 |
+
'default' => 1,
|
72 |
+
'sanitize' => 'floatval',
|
73 |
+
),
|
74 |
'masked' => array(
|
75 |
'default' => 0,
|
76 |
'sanitize' => 'intval'
|
core/templates/parts/customize-number.php
CHANGED
@@ -41,6 +41,10 @@
|
|
41 |
<input type="number" id="<%= instance.id %>_max_value" class="widefat title" value="<%= instance.max_value %>" data-bind="max_value" />
|
42 |
</p>
|
43 |
</div>
|
|
|
|
|
|
|
|
|
44 |
<p>
|
45 |
<label>
|
46 |
<input type="checkbox" class="checkbox" value="1" <% if ( instance.required ) { %>checked="checked"<% } %> data-bind="required" /> <?php _e( 'Require an answer', 'happyforms' ); ?>
|
41 |
<input type="number" id="<%= instance.id %>_max_value" class="widefat title" value="<%= instance.max_value %>" data-bind="max_value" />
|
42 |
</p>
|
43 |
</div>
|
44 |
+
<p>
|
45 |
+
<label for="<%= instance.id %>_step"><?php _e( 'Step Interval', 'happyforms' ); ?></label>
|
46 |
+
<input type="number" id="<%= instance.id %>_step" class="widefat title" value="<%= instance.step %>" data-bind="step" />
|
47 |
+
</p>
|
48 |
<p>
|
49 |
<label>
|
50 |
<input type="checkbox" class="checkbox" value="1" <% if ( instance.required ) { %>checked="checked"<% } %> data-bind="required" /> <?php _e( 'Require an answer', 'happyforms' ); ?>
|
core/templates/parts/frontend-checkbox.php
CHANGED
@@ -20,10 +20,6 @@
|
|
20 |
$checked = in_array( $o, $value ) ? 'checked="checked"' : '';
|
21 |
$option_classes = 'happyforms-part__option happyforms-part-option';
|
22 |
|
23 |
-
if ( empty( $checked ) ) {
|
24 |
-
$checked = checked( 1, $option['is_default'], false );
|
25 |
-
}
|
26 |
-
|
27 |
if ( 1 == $option['limit_submissions'] && 0 == $option['submissions_left'] ) {
|
28 |
$option_classes .= ' disabled-option';
|
29 |
}
|
20 |
$checked = in_array( $o, $value ) ? 'checked="checked"' : '';
|
21 |
$option_classes = 'happyforms-part__option happyforms-part-option';
|
22 |
|
|
|
|
|
|
|
|
|
23 |
if ( 1 == $option['limit_submissions'] && 0 == $option['submissions_left'] ) {
|
24 |
$option_classes .= ' disabled-option';
|
25 |
}
|
core/templates/parts/frontend-number.php
CHANGED
@@ -43,7 +43,7 @@
|
|
43 |
<?php if ( ! $early_label && 'as_placeholder' !== $part['label_placement'] ) : ?>
|
44 |
<?php happyforms_the_part_label( $part, $form ); ?>
|
45 |
<?php endif; ?>
|
46 |
-
<input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="<?php echo $input_type; ?>" value="<?php happyforms_the_part_value( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" min="<?php echo esc_attr( $part['min_value'] ) ?>" max="<?php echo esc_attr( $part['max_value'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
|
47 |
<?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
|
48 |
<?php happyforms_the_part_label( $part, $form ); ?>
|
49 |
<?php endif; ?>
|
43 |
<?php if ( ! $early_label && 'as_placeholder' !== $part['label_placement'] ) : ?>
|
44 |
<?php happyforms_the_part_label( $part, $form ); ?>
|
45 |
<?php endif; ?>
|
46 |
+
<input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="<?php echo $input_type; ?>" value="<?php happyforms_the_part_value( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" min="<?php echo esc_attr( $part['min_value'] ) ?>" max="<?php echo esc_attr( $part['max_value'] ); ?>" step="<?php echo esc_attr( $part['step'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
|
47 |
<?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
|
48 |
<?php happyforms_the_part_label( $part, $form ); ?>
|
49 |
<?php endif; ?>
|
core/templates/parts/frontend-radio.php
CHANGED
@@ -14,17 +14,13 @@
|
|
14 |
|
15 |
foreach( $options as $o => $option ) : ?>
|
16 |
<?php
|
17 |
-
$checked =
|
18 |
$option_classes = 'happyforms-part__option happyforms-part-option';
|
19 |
|
20 |
if ( is_string( $value ) ) {
|
21 |
$checked = checked( $value, $o, false );
|
22 |
}
|
23 |
|
24 |
-
if ( false === $checked ) {
|
25 |
-
$checked = checked( 1, $option['is_default'], false );
|
26 |
-
}
|
27 |
-
|
28 |
if ( 1 == $option['limit_submissions'] && 0 == $option['submissions_left'] ) {
|
29 |
$option_classes .= ' disabled-option';
|
30 |
}
|
14 |
|
15 |
foreach( $options as $o => $option ) : ?>
|
16 |
<?php
|
17 |
+
$checked = ( $o === $value ) ? 'checked="checked"' : '';
|
18 |
$option_classes = 'happyforms-part__option happyforms-part-option';
|
19 |
|
20 |
if ( is_string( $value ) ) {
|
21 |
$checked = checked( $value, $o, false );
|
22 |
}
|
23 |
|
|
|
|
|
|
|
|
|
24 |
if ( 1 == $option['limit_submissions'] && 0 == $option['submissions_left'] ) {
|
25 |
$option_classes .= ' disabled-option';
|
26 |
}
|
happyforms.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Plugin URI: https://happyforms.io
|
6 |
* Description: We're changin' WordPress forms.
|
7 |
* Author: Happyforms
|
8 |
-
* Version: 1.14.
|
9 |
* Author URI: https://happyforms.io
|
10 |
* Upgrade URI: https://happyforms.io/upgrade
|
11 |
*/
|
@@ -22,7 +22,7 @@ if ( defined( 'HAPPYFORMS_UPGRADE_VERSION' ) ) {
|
|
22 |
/**
|
23 |
* The current version of the plugin.
|
24 |
*/
|
25 |
-
define( 'HAPPYFORMS_VERSION', '1.14.
|
26 |
|
27 |
if ( ! function_exists( 'happyforms_plugin_file' ) ):
|
28 |
/**
|
5 |
* Plugin URI: https://happyforms.io
|
6 |
* Description: We're changin' WordPress forms.
|
7 |
* Author: Happyforms
|
8 |
+
* Version: 1.14.2
|
9 |
* Author URI: https://happyforms.io
|
10 |
* Upgrade URI: https://happyforms.io/upgrade
|
11 |
*/
|
22 |
/**
|
23 |
* The current version of the plugin.
|
24 |
*/
|
25 |
+
define( 'HAPPYFORMS_VERSION', '1.14.2' );
|
26 |
|
27 |
if ( ! function_exists( 'happyforms_plugin_file' ) ):
|
28 |
/**
|
integrations/assets/css/admin.css
CHANGED
@@ -120,6 +120,30 @@
|
|
120 |
margin-top: 11px;
|
121 |
}
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
@media only screen and (max-width: 1000px) {
|
124 |
.media-toolbar-primary.search-form {
|
125 |
float: right;
|
120 |
margin-top: 11px;
|
121 |
}
|
122 |
|
123 |
+
#happyforms-service-aweber .components-external-link__icon {
|
124 |
+
margin-bottom: -2px;
|
125 |
+
}
|
126 |
+
|
127 |
+
#happyforms-service-aweber a {
|
128 |
+
color: #2271b1;
|
129 |
+
}
|
130 |
+
|
131 |
+
#happyforms-service-aweber svg {
|
132 |
+
color: #2271b1;
|
133 |
+
fill: #2271b1;
|
134 |
+
}
|
135 |
+
|
136 |
+
#happyforms-service-aweber a:hover,
|
137 |
+
#happyforms-service-aweber a:active {
|
138 |
+
color: #135e96;
|
139 |
+
}
|
140 |
+
|
141 |
+
#happyforms-service-aweber svg:hover,
|
142 |
+
#happyforms-service-aweber svg:active {
|
143 |
+
color: #135e96;
|
144 |
+
fill: #135e96;
|
145 |
+
}
|
146 |
+
|
147 |
@media only screen and (max-width: 1000px) {
|
148 |
.media-toolbar-primary.search-form {
|
149 |
float: right;
|
integrations/templates/widget-aweber-dummy.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
$label_link = ' (<a href="#" target="_blank">' . __( 'get your code', 'happyforms' ) . '
|
3 |
?>
|
4 |
<form class="happyforms-service">
|
5 |
<div class="widget-content">
|
1 |
<?php
|
2 |
+
$label_link = ' (<a href="#" target="_blank">' . __( 'get your code', 'happyforms' ) . '<svg xmlns="http://www.w3.org/2000/svg" viewBox="11 -4 1 24" width="20" height="18" class="components-external-link__icon css-bqq7t3 etxm6pv0" role="img" aria-hidden="true" focusable="false"><path d="M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"></path></svg></a>)';
|
3 |
?>
|
4 |
<form class="happyforms-service">
|
5 |
<div class="widget-content">
|
languages/happyforms.pot
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Happyforms (free) plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Happyforms (free) 1.14.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/happyforms/\n"
|
7 |
"Last-Translator: The Theme Foundry\n"
|
8 |
"Language-Team: The Theme Foundry\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2022-02-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: happyforms\n"
|
@@ -728,7 +728,7 @@ msgid "Hint"
|
|
728 |
msgstr ""
|
729 |
|
730 |
#: core/classes/class-form-styles.php:736
|
731 |
-
msgid "
|
732 |
msgstr ""
|
733 |
|
734 |
#: core/classes/class-form-styles.php:742
|
@@ -3171,7 +3171,7 @@ msgstr ""
|
|
3171 |
#: core/templates/parts/customize-checkbox.php:49
|
3172 |
#: core/templates/parts/customize-email.php:36
|
3173 |
#: core/templates/parts/customize-multi-line-text.php:36
|
3174 |
-
#: core/templates/parts/customize-number.php:
|
3175 |
#: core/templates/parts/customize-radio.php:49
|
3176 |
#: core/templates/parts/customize-select.php:53
|
3177 |
#: core/templates/parts/customize-single-line-text.php:36
|
@@ -3232,7 +3232,7 @@ msgstr ""
|
|
3232 |
#: core/templates/parts/customize-checkbox.php:113
|
3233 |
#: core/templates/parts/customize-email.php:58
|
3234 |
#: core/templates/parts/customize-multi-line-text.php:71
|
3235 |
-
#: core/templates/parts/customize-number.php:
|
3236 |
#: core/templates/parts/customize-radio.php:96
|
3237 |
#: core/templates/parts/customize-select.php:89
|
3238 |
#: core/templates/parts/customize-single-line-text.php:57
|
@@ -3278,13 +3278,13 @@ msgid "Prefill"
|
|
3278 |
msgstr ""
|
3279 |
|
3280 |
#: core/templates/parts/customize-email.php:45
|
3281 |
-
#: core/templates/parts/customize-number.php:
|
3282 |
#: core/templates/parts/customize-single-line-text.php:44
|
3283 |
msgid "Prefix"
|
3284 |
msgstr ""
|
3285 |
|
3286 |
#: core/templates/parts/customize-email.php:49
|
3287 |
-
#: core/templates/parts/customize-number.php:
|
3288 |
#: core/templates/parts/customize-single-line-text.php:48
|
3289 |
msgid "Suffix"
|
3290 |
msgstr ""
|
@@ -3309,15 +3309,19 @@ msgstr ""
|
|
3309 |
msgid "Max number"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
-
#: core/templates/parts/customize-number.php:
|
|
|
|
|
|
|
|
|
3313 |
msgid "Use number separators"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: core/templates/parts/customize-number.php:
|
3317 |
msgid "Grouping"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: core/templates/parts/customize-number.php:
|
3321 |
msgid "Decimal"
|
3322 |
msgstr ""
|
3323 |
|
2 |
# This file is distributed under the same license as the Happyforms (free) plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Happyforms (free) 1.14.2\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/happyforms/\n"
|
7 |
"Last-Translator: The Theme Foundry\n"
|
8 |
"Language-Team: The Theme Foundry\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2022-02-28T14:27:07+00:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: happyforms\n"
|
728 |
msgstr ""
|
729 |
|
730 |
#: core/classes/class-form-styles.php:736
|
731 |
+
msgid "Address dropdowns"
|
732 |
msgstr ""
|
733 |
|
734 |
#: core/classes/class-form-styles.php:742
|
3171 |
#: core/templates/parts/customize-checkbox.php:49
|
3172 |
#: core/templates/parts/customize-email.php:36
|
3173 |
#: core/templates/parts/customize-multi-line-text.php:36
|
3174 |
+
#: core/templates/parts/customize-number.php:50
|
3175 |
#: core/templates/parts/customize-radio.php:49
|
3176 |
#: core/templates/parts/customize-select.php:53
|
3177 |
#: core/templates/parts/customize-single-line-text.php:36
|
3232 |
#: core/templates/parts/customize-checkbox.php:113
|
3233 |
#: core/templates/parts/customize-email.php:58
|
3234 |
#: core/templates/parts/customize-multi-line-text.php:71
|
3235 |
+
#: core/templates/parts/customize-number.php:85
|
3236 |
#: core/templates/parts/customize-radio.php:96
|
3237 |
#: core/templates/parts/customize-select.php:89
|
3238 |
#: core/templates/parts/customize-single-line-text.php:57
|
3278 |
msgstr ""
|
3279 |
|
3280 |
#: core/templates/parts/customize-email.php:45
|
3281 |
+
#: core/templates/parts/customize-number.php:74
|
3282 |
#: core/templates/parts/customize-single-line-text.php:44
|
3283 |
msgid "Prefix"
|
3284 |
msgstr ""
|
3285 |
|
3286 |
#: core/templates/parts/customize-email.php:49
|
3287 |
+
#: core/templates/parts/customize-number.php:78
|
3288 |
#: core/templates/parts/customize-single-line-text.php:48
|
3289 |
msgid "Suffix"
|
3290 |
msgstr ""
|
3309 |
msgid "Max number"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
+
#: core/templates/parts/customize-number.php:45
|
3313 |
+
msgid "Step Interval"
|
3314 |
+
msgstr ""
|
3315 |
+
|
3316 |
+
#: core/templates/parts/customize-number.php:60
|
3317 |
msgid "Use number separators"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
+
#: core/templates/parts/customize-number.php:65
|
3321 |
msgid "Grouping"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
+
#: core/templates/parts/customize-number.php:69
|
3325 |
msgid "Decimal"
|
3326 |
msgstr ""
|
3327 |
|
readme.txt
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
Contributors: happyforms
|
4 |
Tags: contact form, contact form plugin, forms, form builder, custom form, intake form, registration form, survey form, quiz form, payment form, newsletter form, giveaway form, fundraising form, donation form, nomination form, order form, questionnaire form, onboarding form, contract form, estimate form, research form, qualitative form, quantitative form, membership form, mobile form, feedback form, release form, inquiry form, request form, evaluation form, RSVP form, reservation form, sales lead form, popup form, quote form, event form, booking form, application form, agreement form, safety form, compliance form, assessment form, sponsorship form, report form, file upload form, satisfaction form
|
5 |
Requires at least: 5.0
|
6 |
-
Tested up to: 5.9
|
7 |
Requires PHP: 7.0
|
8 |
-
Stable tag: 1.14.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -151,6 +151,11 @@ Aw, honestly, the thought that you're writing about our contact form builder is
|
|
151 |
|
152 |
== Changelog ==
|
153 |
|
|
|
|
|
|
|
|
|
|
|
154 |
= 1.14.1 =
|
155 |
* New feature: "Hint" control for adding descriptive text to Radio and Checkbox field choices.
|
156 |
* Improvement: Nicer vertical alignment of choices spanning multiple lines in Radio and Checkbox fields.
|
@@ -908,6 +913,9 @@ Aw, honestly, the thought that you're writing about our contact form builder is
|
|
908 |
|
909 |
== Upgrade Notice ==
|
910 |
|
|
|
|
|
|
|
911 |
= 1.14.1 =
|
912 |
* Radio and Checkbox fields choice hints, true submit buttons, layout and usability improvements.
|
913 |
|
3 |
Contributors: happyforms
|
4 |
Tags: contact form, contact form plugin, forms, form builder, custom form, intake form, registration form, survey form, quiz form, payment form, newsletter form, giveaway form, fundraising form, donation form, nomination form, order form, questionnaire form, onboarding form, contract form, estimate form, research form, qualitative form, quantitative form, membership form, mobile form, feedback form, release form, inquiry form, request form, evaluation form, RSVP form, reservation form, sales lead form, popup form, quote form, event form, booking form, application form, agreement form, safety form, compliance form, assessment form, sponsorship form, report form, file upload form, satisfaction form
|
5 |
Requires at least: 5.0
|
6 |
+
Tested up to: 5.9.1
|
7 |
Requires PHP: 7.0
|
8 |
+
Stable tag: 1.14.2
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
151 |
|
152 |
== Changelog ==
|
153 |
|
154 |
+
= 1.14.2 =
|
155 |
+
* New feature: "Step Interval" control allows for fine tuning the incrementing interval of Number field.
|
156 |
+
* Improvement: "Make this choice default" control now supports multiple choices in Checkbox field.
|
157 |
+
* Bugfix: Dropdown field was ignoring some style settings.
|
158 |
+
|
159 |
= 1.14.1 =
|
160 |
* New feature: "Hint" control for adding descriptive text to Radio and Checkbox field choices.
|
161 |
* Improvement: Nicer vertical alignment of choices spanning multiple lines in Radio and Checkbox fields.
|
913 |
|
914 |
== Upgrade Notice ==
|
915 |
|
916 |
+
= 1.14.2 =
|
917 |
+
* New "Step Interval" control for Number field, miscellaneous improvements and bugfixes.
|
918 |
+
|
919 |
= 1.14.1 =
|
920 |
* Radio and Checkbox fields choice hints, true submit buttons, layout and usability improvements.
|
921 |
|