Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms - Version 1.4.6

Version Description

  • Improvement: scripts and styles are now versioned to avoid cache problems after an update.
  • Bug fix: Permalinks are now flushed upon activation to avoid 404 errors.
  • Bug fix: Dropdown arrows were not clickable and didn't reflect part value color set in Style step.
Download this release

Release Info

Developer thethemefoundry
Plugin Icon 128x128 Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms
Version 1.4.6
Comparing to
See all releases

Code changes from version 1.4.5 to 1.4.6

assets/css/frontend.css CHANGED
@@ -907,22 +907,22 @@ h3.happyforms-form__title {
907
  .happyforms-part--date select,
908
  .happyforms-part--title select {
909
  position: relative;
 
910
  -webkit-appearance: none;
911
  -moz-appearance: none;
912
  appearance: none;
913
  width: 100%;
914
  max-width: none;
915
  height: auto !important;
 
 
916
  padding: 10px;
917
- border: 1px solid;
918
- border-radius: 6px;
919
- border-color: #dbdbdb;
920
- border-color: var(--happyforms-color-part-border);
921
  line-height: 1.4;
922
- background-color: #fff;
923
- background-color: var(--happyforms-color-part-background);
924
  font-size: 16px;
925
  font-size: var(--happyforms-part-value-font-size);
 
 
926
  }
927
 
928
  .happyforms-form--part-border-off .happyforms-part--select select,
@@ -949,6 +949,15 @@ h3.happyforms-form__title {
949
  padding: 0 0 0 2%;
950
  }
951
 
 
 
 
 
 
 
 
 
 
952
  .happyforms-part__select-wrap:first-of-type,
953
  .happyforms-part--date__input-wrap:first-of-type {
954
  padding-left: 0 !important;
@@ -1000,29 +1009,20 @@ h3.happyforms-form__title {
1000
  .happyforms-part__select-wrap:after {
1001
  content: '';
1002
  position: absolute;
1003
- top: 22%;
1004
  right: 15px;
1005
- z-index: 999;
1006
  display: block;
1007
- width: 25px;
1008
- height: 25px;
1009
- font-size: 22px;
1010
- color: #000;
1011
- color: var(--happyforms-color-part-value);
1012
- fill: #000;
1013
- fill: var(--happyforms-color-part-value);
1014
- stroke: #000;
1015
- stroke: var(--happyforms-color-part-value);
1016
- background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij48cGF0aCBkPSJNNSA4bDQgNCA0LTR6Ii8+PC9zdmc+);
1017
  background-size: cover;
1018
  background-repeat: no-repeat;
1019
  }
1020
 
1021
- .happyforms-part--date .happyforms-part__select-wrap:after {
1022
- top: calc(46% - 12px);
1023
- right: 15px;
1024
- }
1025
-
1026
  .happyforms-part--select select:focus,
1027
  .happyforms-part--date select:focus {
1028
  outline-width: 1px;
@@ -1044,17 +1044,20 @@ h3.happyforms-form__title {
1044
  content: '';
1045
  display: block;
1046
  position: absolute;
1047
- bottom: 3px;
1048
- right: 0;
1049
- width: 22px;
1050
- height: 22px;
1051
- background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4Ij48cGF0aCBkPSJNNSA4bDQgNCA0LTR6Ii8+PC9zdmc+);
 
 
 
1052
  background-position: left top;
1053
  background-size: cover;
1054
  }
1055
 
1056
  .happyforms-part-date__time-input .happyforms-spinner-arrow--up {
1057
- top: 3px;
1058
  bottom: auto;
1059
  transform: rotateX(-180deg);
1060
  }
@@ -1485,7 +1488,7 @@ input[type=submit].happyforms-button--submit:focus {
1485
  .happyforms-form--part-border-radius-square .happyforms-part input[type=number],
1486
  .happyforms-form--part-border-radius-square .happyforms-part input[type=range],
1487
  .happyforms-form--part-border-radius-square .happyforms-part textarea,
1488
- .happyforms-form--part-border-radius-square .happyforms-part select,
1489
  .happyforms-form--part-border-radius-square .happyforms-part--address__results ul {
1490
  border-radius: 0px;
1491
  }
@@ -1499,13 +1502,17 @@ input[type=submit].happyforms-button--submit:focus {
1499
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=tel],
1500
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=number],
1501
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=range],
1502
- .happyforms-form--part-border-radius-pill .happyforms-part textarea,
1503
- .happyforms-form--part-border-radius-pill .happyforms-part select {
1504
  border-radius: 25px;
1505
  padding-left: 25px;
1506
  padding-right: 25px;
1507
  }
1508
 
 
 
 
 
 
1509
  .happyforms-form--part-border-radius-pill .happyforms-part--address__results ul {
1510
  border-radius: 25px;
1511
  }
@@ -1514,6 +1521,10 @@ input[type=submit].happyforms-button--submit:focus {
1514
  border-radius: 25px;
1515
  }
1516
 
 
 
 
 
1517
  .happyforms-form--part-placeholder-toggle .happyforms-part ::-webkit-input-placeholder {
1518
  color: transparent;
1519
  transition: color var(--happyforms-transition-duration);
@@ -1701,6 +1712,10 @@ input[type=submit].happyforms-button--submit:focus {
1701
  padding: 15px;
1702
  }
1703
 
 
 
 
 
1704
  .happyforms-form--part-inner-padding-wide .happyforms-part--checkbox .option-label {
1705
  padding-left: 0;
1706
  padding-right: 0;
907
  .happyforms-part--date select,
908
  .happyforms-part--title select {
909
  position: relative;
910
+ z-index: 3;
911
  -webkit-appearance: none;
912
  -moz-appearance: none;
913
  appearance: none;
914
  width: 100%;
915
  max-width: none;
916
  height: auto !important;
917
+ border: 0;
918
+ border-radius: 0;
919
  padding: 10px;
 
 
 
 
920
  line-height: 1.4;
921
+ background-color: transparent;
 
922
  font-size: 16px;
923
  font-size: var(--happyforms-part-value-font-size);
924
+ color: #000;
925
+ color: var(--happyforms-color-part-value);
926
  }
927
 
928
  .happyforms-form--part-border-off .happyforms-part--select select,
949
  padding: 0 0 0 2%;
950
  }
951
 
952
+ .happyforms-part__select-bg {
953
+ border: 1px solid;
954
+ border-radius: 6px;
955
+ border-color: #dbdbdb;
956
+ border-color: var(--happyforms-color-part-border);
957
+ background-color: #fff;
958
+ background-color: var(--happyforms-color-part-background);
959
+ }
960
+
961
  .happyforms-part__select-wrap:first-of-type,
962
  .happyforms-part--date__input-wrap:first-of-type {
963
  padding-left: 0 !important;
1009
  .happyforms-part__select-wrap:after {
1010
  content: '';
1011
  position: absolute;
1012
+ top: 44%;
1013
  right: 15px;
1014
+ z-index: 1;
1015
  display: block;
1016
+ width: 0;
1017
+ height: 0;
1018
+ border-left: 6px solid transparent;
1019
+ border-right: 6px solid transparent;
1020
+ border-top: 6px solid #000;
1021
+ border-top: 6px solid var(--happyforms-color-part-value);
 
 
 
 
1022
  background-size: cover;
1023
  background-repeat: no-repeat;
1024
  }
1025
 
 
 
 
 
 
1026
  .happyforms-part--select select:focus,
1027
  .happyforms-part--date select:focus {
1028
  outline-width: 1px;
1044
  content: '';
1045
  display: block;
1046
  position: absolute;
1047
+ bottom: 8px;
1048
+ right: 7px;
1049
+ width: 0;
1050
+ height: 0;
1051
+ border-left: 6px solid transparent;
1052
+ border-right: 6px solid transparent;
1053
+ border-top: 6px solid #000;
1054
+ border-top: 6px solid var(--happyforms-color-part-value);
1055
  background-position: left top;
1056
  background-size: cover;
1057
  }
1058
 
1059
  .happyforms-part-date__time-input .happyforms-spinner-arrow--up {
1060
+ top: 8px;
1061
  bottom: auto;
1062
  transform: rotateX(-180deg);
1063
  }
1488
  .happyforms-form--part-border-radius-square .happyforms-part input[type=number],
1489
  .happyforms-form--part-border-radius-square .happyforms-part input[type=range],
1490
  .happyforms-form--part-border-radius-square .happyforms-part textarea,
1491
+ .happyforms-form--part-border-radius-square .happyforms-part .happyforms-part__select-bg,
1492
  .happyforms-form--part-border-radius-square .happyforms-part--address__results ul {
1493
  border-radius: 0px;
1494
  }
1502
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=tel],
1503
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=number],
1504
  .happyforms-form--part-border-radius-pill .happyforms-part input[type=range],
1505
+ .happyforms-form--part-border-radius-pill .happyforms-part textarea {
 
1506
  border-radius: 25px;
1507
  padding-left: 25px;
1508
  padding-right: 25px;
1509
  }
1510
 
1511
+ .happyforms-form--part-border-radius-pill .happyforms-part .happyforms-part__select-bg {
1512
+ border-radius: 25px;
1513
+ padding-left: 15px;
1514
+ }
1515
+
1516
  .happyforms-form--part-border-radius-pill .happyforms-part--address__results ul {
1517
  border-radius: 25px;
1518
  }
1521
  border-radius: 25px;
1522
  }
1523
 
1524
+ .happyforms-form--part-border-radius-pill .happyforms-part-date__time-input .happyforms-spinner-arrow {
1525
+ right: 15px;
1526
+ }
1527
+
1528
  .happyforms-form--part-placeholder-toggle .happyforms-part ::-webkit-input-placeholder {
1529
  color: transparent;
1530
  transition: color var(--happyforms-transition-duration);
1712
  padding: 15px;
1713
  }
1714
 
1715
+ .happyforms-form--part-inner-padding-wide .happyforms-part .happyforms-part__select-wrap:after {
1716
+ top: 45%;
1717
+ }
1718
+
1719
  .happyforms-form--part-inner-padding-wide .happyforms-part--checkbox .option-label {
1720
  padding-left: 0;
1721
  padding-right: 0;
happyforms.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
- * Version: 1.4.5
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
@@ -13,7 +13,7 @@
13
  /**
14
  * The current version of the plugin.
15
  */
16
- define( 'HAPPYFORMS_VERSION', '1.4.5' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
+ * Version: 1.4.6
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
13
  /**
14
  * The current version of the plugin.
15
  */
16
+ define( 'HAPPYFORMS_VERSION', '1.4.6' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
inc/classes/class-happyforms-plugin.php CHANGED
@@ -194,15 +194,14 @@ class HappyForms_Plugin {
194
  public function admin_enqueue_scripts() {
195
  wp_enqueue_style(
196
  'happyforms-admin',
197
- happyforms_get_plugin_url() . 'assets/css/admin.css'
 
198
  );
199
 
200
  wp_enqueue_script(
201
  'happyforms-admin',
202
  happyforms_get_plugin_url() . 'assets/js/happyforms.js',
203
- '',
204
- '',
205
- true
206
  );
207
  }
208
 
@@ -346,13 +345,15 @@ class HappyForms_Plugin {
346
  public function enqueue_styles() {
347
  wp_enqueue_style(
348
  'happyforms-frontend',
349
- happyforms_get_plugin_url() . 'assets/css/frontend.css'
 
350
  );
351
 
352
  if ( happyforms_is_preview() ) {
353
  wp_enqueue_style(
354
  'happyforms-preview',
355
- happyforms_get_plugin_url() . 'assets/css/preview.css'
 
356
  );
357
  }
358
  }
@@ -449,7 +450,7 @@ class HappyForms_Plugin {
449
  wp_enqueue_script(
450
  'happyforms-frontend',
451
  happyforms_get_plugin_url() . 'assets/js/frontend.js',
452
- $dependencies, false, true
453
  );
454
 
455
  /**
@@ -487,7 +488,7 @@ class HappyForms_Plugin {
487
  wp_enqueue_script(
488
  'happyforms-preview',
489
  happyforms_get_plugin_url() . 'assets/js/preview.js',
490
- $preview_deps, false, true
491
  );
492
 
493
  require_once( happyforms_get_include_folder() . '/templates/preview-form-pencil.php' );
194
  public function admin_enqueue_scripts() {
195
  wp_enqueue_style(
196
  'happyforms-admin',
197
+ happyforms_get_plugin_url() . 'assets/css/admin.css',
198
+ array(), HAPPYFORMS_VERSION
199
  );
200
 
201
  wp_enqueue_script(
202
  'happyforms-admin',
203
  happyforms_get_plugin_url() . 'assets/js/happyforms.js',
204
+ array(), HAPPYFORMS_VERSION, true
 
 
205
  );
206
  }
207
 
345
  public function enqueue_styles() {
346
  wp_enqueue_style(
347
  'happyforms-frontend',
348
+ happyforms_get_plugin_url() . 'assets/css/frontend.css',
349
+ array(), HAPPYFORMS_VERSION
350
  );
351
 
352
  if ( happyforms_is_preview() ) {
353
  wp_enqueue_style(
354
  'happyforms-preview',
355
+ happyforms_get_plugin_url() . 'assets/css/preview.css',
356
+ array(), HAPPYFORMS_VERSION
357
  );
358
  }
359
  }
450
  wp_enqueue_script(
451
  'happyforms-frontend',
452
  happyforms_get_plugin_url() . 'assets/js/frontend.js',
453
+ $dependencies, HAPPYFORMS_VERSION, true
454
  );
455
 
456
  /**
488
  wp_enqueue_script(
489
  'happyforms-preview',
490
  happyforms_get_plugin_url() . 'assets/js/preview.js',
491
+ $preview_deps, HAPPYFORMS_VERSION, true
492
  );
493
 
494
  require_once( happyforms_get_include_folder() . '/templates/preview-form-pencil.php' );
inc/classes/class-tracking.php CHANGED
@@ -187,7 +187,7 @@ class HappyForms_Tracking {
187
  wp_enqueue_script(
188
  'happyforms-tracking',
189
  happyforms_get_plugin_url() . 'assets/js/tracking.js',
190
- '', '', true
191
  );
192
  }
193
  }
187
  wp_enqueue_script(
188
  'happyforms-tracking',
189
  happyforms_get_plugin_url() . 'assets/js/tracking.js',
190
+ array(), HAPPYFORMS_VERSION, true
191
  );
192
  }
193
  }
inc/classes/class-wp-customize-form-manager.php CHANGED
@@ -287,15 +287,13 @@ class HappyForms_WP_Customize_Form_Manager {
287
  wp_enqueue_style(
288
  'happyforms-customize',
289
  happyforms_get_plugin_url() . 'assets/css/customize.css',
290
- array(
291
- 'wp-color-picker',
292
- 'wp-pointer'
293
- )
294
  );
295
 
296
  wp_enqueue_style(
297
  'happyforms-font-awesome',
298
- happyforms_get_plugin_url() . 'assets/css/font-awesome.min.css'
 
299
  );
300
 
301
  $customize_deps = apply_filters(
@@ -318,7 +316,7 @@ class HappyForms_WP_Customize_Form_Manager {
318
  wp_register_script(
319
  'happyforms-customize',
320
  happyforms_get_plugin_url() . 'assets/js/customize.js',
321
- $customize_deps, false, true
322
  );
323
 
324
  $data = array(
287
  wp_enqueue_style(
288
  'happyforms-customize',
289
  happyforms_get_plugin_url() . 'assets/css/customize.css',
290
+ array( 'wp-color-picker', 'wp-pointer' ), HAPPYFORMS_VERSION
 
 
 
291
  );
292
 
293
  wp_enqueue_style(
294
  'happyforms-font-awesome',
295
+ happyforms_get_plugin_url() . 'assets/css/font-awesome.min.css',
296
+ array(), HAPPYFORMS_VERSION
297
  );
298
 
299
  $customize_deps = apply_filters(
316
  wp_register_script(
317
  'happyforms-customize',
318
  happyforms_get_plugin_url() . 'assets/js/customize.js',
319
+ $customize_deps, HAPPYFORMS_VERSION, true
320
  );
321
 
322
  $data = array(
inc/classes/parts/class-part-address.php CHANGED
@@ -305,7 +305,7 @@ class HappyForms_Part_Address extends HappyForms_Form_Part {
305
  wp_enqueue_script(
306
  'part-address',
307
  happyforms_get_plugin_url() . 'assets/js/parts/part-address.js',
308
- $deps, false, true
309
  );
310
  }
311
 
@@ -338,7 +338,7 @@ class HappyForms_Part_Address extends HappyForms_Form_Part {
338
  wp_register_script(
339
  'happyforms-part-address',
340
  happyforms_get_plugin_url() . 'assets/js/frontend/address.js',
341
- array( 'jquery-ui-autocomplete' ), false, true
342
  );
343
 
344
  $settings = array(
305
  wp_enqueue_script(
306
  'part-address',
307
  happyforms_get_plugin_url() . 'assets/js/parts/part-address.js',
308
+ $deps, HAPPYFORMS_VERSION, true
309
  );
310
  }
311
 
338
  wp_register_script(
339
  'happyforms-part-address',
340
  happyforms_get_plugin_url() . 'assets/js/frontend/address.js',
341
+ array( 'jquery-ui-autocomplete' ), HAPPYFORMS_VERSION, true
342
  );
343
 
344
  $settings = array(
inc/classes/parts/class-part-checkbox.php CHANGED
@@ -115,9 +115,7 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
115
  wp_enqueue_script(
116
  'part-checkbox',
117
  happyforms_get_plugin_url() . 'assets/js/parts/part-checkbox.js',
118
- $deps,
119
- false,
120
- true
121
  );
122
  }
123
 
115
  wp_enqueue_script(
116
  'part-checkbox',
117
  happyforms_get_plugin_url() . 'assets/js/parts/part-checkbox.js',
118
+ $deps, HAPPYFORMS_VERSION, true
 
 
119
  );
120
  }
121
 
inc/classes/parts/class-part-date.php CHANGED
@@ -239,7 +239,7 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
239
 
240
  if ( 'date' !== $part_data['date_type'] && isset( $part_data['min_hour'] ) && isset( $part_data['max_hour'] ) ) {
241
  $hour = (12 === $part_data['time_format']) ? intval( date( 'g', $date ) ) : intval( date( 'G', $date ) );
242
-
243
  $min_hour = intval( $part_data['min_hour'] );
244
  $max_hour = intval( $part_data['max_hour'] );
245
 
@@ -287,9 +287,7 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
287
  wp_enqueue_script(
288
  'part-date',
289
  happyforms_get_plugin_url() . 'assets/js/parts/part-date.js',
290
- $deps,
291
- false,
292
- true
293
  );
294
  }
295
 
@@ -311,7 +309,7 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
311
  wp_register_script(
312
  'happyforms-part-date',
313
  happyforms_get_plugin_url() . 'assets/js/frontend/date.js',
314
- array(), false, true
315
  );
316
 
317
  $deps[] = 'happyforms-part-date';
239
 
240
  if ( 'date' !== $part_data['date_type'] && isset( $part_data['min_hour'] ) && isset( $part_data['max_hour'] ) ) {
241
  $hour = (12 === $part_data['time_format']) ? intval( date( 'g', $date ) ) : intval( date( 'G', $date ) );
242
+
243
  $min_hour = intval( $part_data['min_hour'] );
244
  $max_hour = intval( $part_data['max_hour'] );
245
 
287
  wp_enqueue_script(
288
  'part-date',
289
  happyforms_get_plugin_url() . 'assets/js/parts/part-date.js',
290
+ $deps, HAPPYFORMS_VERSION, true
 
 
291
  );
292
  }
293
 
309
  wp_register_script(
310
  'happyforms-part-date',
311
  happyforms_get_plugin_url() . 'assets/js/frontend/date.js',
312
+ array(), HAPPYFORMS_VERSION, true
313
  );
314
 
315
  $deps[] = 'happyforms-part-date';
inc/classes/parts/class-part-email.php CHANGED
@@ -209,9 +209,7 @@ class HappyForms_Part_Email extends HappyForms_Form_Part {
209
  wp_enqueue_script(
210
  'part-email',
211
  happyforms_get_plugin_url() . 'assets/js/parts/part-email.js',
212
- $deps,
213
- false,
214
- true
215
  );
216
  }
217
 
209
  wp_enqueue_script(
210
  'part-email',
211
  happyforms_get_plugin_url() . 'assets/js/parts/part-email.js',
212
+ $deps, HAPPYFORMS_VERSION, true
 
 
213
  );
214
  }
215
 
inc/classes/parts/class-part-legal.php CHANGED
@@ -153,9 +153,7 @@ class HappyForms_Part_Legal extends HappyForms_Form_Part {
153
  wp_enqueue_script(
154
  'part-legal',
155
  happyforms_get_plugin_url() . 'assets/js/parts/part-legal.js',
156
- $deps,
157
- false,
158
- true
159
  );
160
  }
161
 
153
  wp_enqueue_script(
154
  'part-legal',
155
  happyforms_get_plugin_url() . 'assets/js/parts/part-legal.js',
156
+ $deps, HAPPYFORMS_VERSION, true
 
 
157
  );
158
  }
159
 
inc/classes/parts/class-part-multi-line-text.php CHANGED
@@ -114,9 +114,7 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
114
  wp_enqueue_script(
115
  'part-multi-line-text',
116
  happyforms_get_plugin_url() . 'assets/js/parts/part-multi-line-text.js',
117
- $deps,
118
- false,
119
- true
120
  );
121
  }
122
 
114
  wp_enqueue_script(
115
  'part-multi-line-text',
116
  happyforms_get_plugin_url() . 'assets/js/parts/part-multi-line-text.js',
117
+ $deps, HAPPYFORMS_VERSION, true
 
 
118
  );
119
  }
120
 
inc/classes/parts/class-part-number.php CHANGED
@@ -224,9 +224,7 @@ class HappyForms_Part_Number extends HappyForms_Form_Part {
224
  wp_enqueue_script(
225
  'part-number',
226
  happyforms_get_plugin_url() . 'assets/js/parts/part-number.js',
227
- $deps,
228
- false,
229
- true
230
  );
231
  }
232
 
@@ -277,13 +275,14 @@ class HappyForms_Part_Number extends HappyForms_Form_Part {
277
 
278
  wp_register_script(
279
  'cleave',
280
- happyforms_get_plugin_url() . 'assets/js/lib/cleave.min.js'
 
281
  );
282
 
283
  wp_register_script(
284
  'happyforms-part-number',
285
  happyforms_get_plugin_url() . 'assets/js/frontend/number.js',
286
- array( 'cleave' ), false, true
287
  );
288
 
289
  $deps[] = 'happyforms-part-number';
224
  wp_enqueue_script(
225
  'part-number',
226
  happyforms_get_plugin_url() . 'assets/js/parts/part-number.js',
227
+ $deps, HAPPYFORMS_VERSION, true
 
 
228
  );
229
  }
230
 
275
 
276
  wp_register_script(
277
  'cleave',
278
+ happyforms_get_plugin_url() . 'assets/js/lib/cleave.min.js',
279
+ array(), HAPPYFORMS_VERSION
280
  );
281
 
282
  wp_register_script(
283
  'happyforms-part-number',
284
  happyforms_get_plugin_url() . 'assets/js/frontend/number.js',
285
+ array( 'cleave' ), HAPPYFORMS_VERSION, true
286
  );
287
 
288
  $deps[] = 'happyforms-part-number';
inc/classes/parts/class-part-phone.php CHANGED
@@ -173,7 +173,6 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
173
  'BY'=>array('name'=>'BELARUS','code'=>'375'),
174
  'BZ'=>array('name'=>'BELIZE','code'=>'501'),
175
  'CA'=>array('name'=>'CANADA','code'=>'1'),
176
- 'CC'=>array('name'=>'COCOS (KEELING) ISLANDS','code'=>'61'),
177
  'CD'=>array('name'=>'CONGO, THE DEMOCRATIC REPUBLIC OF THE','code'=>'243'),
178
  'CF'=>array('name'=>'CENTRAL AFRICAN REPUBLIC','code'=>'236'),
179
  'CG'=>array('name'=>'CONGO','code'=>'242'),
@@ -187,7 +186,6 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
187
  'CR'=>array('name'=>'COSTA RICA','code'=>'506'),
188
  'CU'=>array('name'=>'CUBA','code'=>'53'),
189
  'CV'=>array('name'=>'CAPE VERDE','code'=>'238'),
190
- 'CX'=>array('name'=>'CHRISTMAS ISLAND','code'=>'61'),
191
  'CY'=>array('name'=>'CYPRUS','code'=>'357'),
192
  'CZ'=>array('name'=>'CZECH REPUBLIC','code'=>'420'),
193
  'DE'=>array('name'=>'GERMANY','code'=>'49'),
@@ -467,9 +465,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
467
  wp_enqueue_script(
468
  'part-phone',
469
  happyforms_get_plugin_url() . 'assets/js/parts/part-phone.js',
470
- $deps,
471
- false,
472
- true
473
  );
474
  }
475
 
@@ -501,19 +497,20 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
501
 
502
  wp_register_script(
503
  'cleave',
504
- happyforms_get_plugin_url() . 'assets/js/lib/cleave.min.js'
 
505
  );
506
 
507
  wp_register_script(
508
  'cleave-phone',
509
  happyforms_get_plugin_url() . 'assets/js/lib/cleave-phone.i18n.js',
510
- array( 'cleave' ), false, true
511
  );
512
 
513
  wp_register_script(
514
  'happyforms-part-phone',
515
  happyforms_get_plugin_url() . 'assets/js/frontend/phone.js',
516
- array( 'cleave-phone' ), false, true
517
  );
518
 
519
  $deps[] = 'happyforms-part-phone';
173
  'BY'=>array('name'=>'BELARUS','code'=>'375'),
174
  'BZ'=>array('name'=>'BELIZE','code'=>'501'),
175
  'CA'=>array('name'=>'CANADA','code'=>'1'),
 
176
  'CD'=>array('name'=>'CONGO, THE DEMOCRATIC REPUBLIC OF THE','code'=>'243'),
177
  'CF'=>array('name'=>'CENTRAL AFRICAN REPUBLIC','code'=>'236'),
178
  'CG'=>array('name'=>'CONGO','code'=>'242'),
186
  'CR'=>array('name'=>'COSTA RICA','code'=>'506'),
187
  'CU'=>array('name'=>'CUBA','code'=>'53'),
188
  'CV'=>array('name'=>'CAPE VERDE','code'=>'238'),
 
189
  'CY'=>array('name'=>'CYPRUS','code'=>'357'),
190
  'CZ'=>array('name'=>'CZECH REPUBLIC','code'=>'420'),
191
  'DE'=>array('name'=>'GERMANY','code'=>'49'),
465
  wp_enqueue_script(
466
  'part-phone',
467
  happyforms_get_plugin_url() . 'assets/js/parts/part-phone.js',
468
+ $deps, HAPPYFORMS_VERSION, true
 
 
469
  );
470
  }
471
 
497
 
498
  wp_register_script(
499
  'cleave',
500
+ happyforms_get_plugin_url() . 'assets/js/lib/cleave.min.js',
501
+ array(), HAPPYFORMS_VERSION
502
  );
503
 
504
  wp_register_script(
505
  'cleave-phone',
506
  happyforms_get_plugin_url() . 'assets/js/lib/cleave-phone.i18n.js',
507
+ array( 'cleave' ), HAPPYFORMS_VERSION, true
508
  );
509
 
510
  wp_register_script(
511
  'happyforms-part-phone',
512
  happyforms_get_plugin_url() . 'assets/js/frontend/phone.js',
513
+ array( 'cleave-phone' ), HAPPYFORMS_VERSION, true
514
  );
515
 
516
  $deps[] = 'happyforms-part-phone';
inc/classes/parts/class-part-placeholder.php CHANGED
@@ -137,9 +137,7 @@ class HappyForms_Part_Placeholder extends HappyForms_Form_Part {
137
  wp_enqueue_script(
138
  'part-placeholder',
139
  happyforms_get_plugin_url() . 'assets/js/parts/part-placeholder.js',
140
- $deps,
141
- false,
142
- true
143
  );
144
  }
145
  }
137
  wp_enqueue_script(
138
  'part-placeholder',
139
  happyforms_get_plugin_url() . 'assets/js/parts/part-placeholder.js',
140
+ $deps, HAPPYFORMS_VERSION, true
 
 
141
  );
142
  }
143
  }
inc/classes/parts/class-part-radio.php CHANGED
@@ -124,9 +124,7 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
124
  wp_enqueue_script(
125
  'part-radio',
126
  happyforms_get_plugin_url() . 'assets/js/parts/part-radio.js',
127
- $deps,
128
- false,
129
- true
130
  );
131
  }
132
 
124
  wp_enqueue_script(
125
  'part-radio',
126
  happyforms_get_plugin_url() . 'assets/js/parts/part-radio.js',
127
+ $deps, HAPPYFORMS_VERSION, true
 
 
128
  );
129
  }
130
 
inc/classes/parts/class-part-rating.php CHANGED
@@ -165,9 +165,7 @@ class HappyForms_Part_Rating extends HappyForms_Form_Part {
165
  wp_enqueue_script(
166
  'part-rating',
167
  happyforms_get_plugin_url() . 'assets/js/parts/part-rating.js',
168
- $deps,
169
- false,
170
- true
171
  );
172
  }
173
 
165
  wp_enqueue_script(
166
  'part-rating',
167
  happyforms_get_plugin_url() . 'assets/js/parts/part-rating.js',
168
+ $deps, HAPPYFORMS_VERSION, true
 
 
169
  );
170
  }
171
 
inc/classes/parts/class-part-scale.php CHANGED
@@ -193,9 +193,7 @@ class HappyForms_Part_Scale extends HappyForms_Form_Part {
193
  wp_enqueue_script(
194
  'part-scale',
195
  happyforms_get_plugin_url() . 'assets/js/parts/part-scale.js',
196
- $deps,
197
- false,
198
- true
199
  );
200
  }
201
 
@@ -217,7 +215,7 @@ class HappyForms_Part_Scale extends HappyForms_Form_Part {
217
  wp_register_script(
218
  'happyforms-part-scale',
219
  happyforms_get_plugin_url() . 'assets/js/frontend/scale.js',
220
- array(), false, true
221
  );
222
 
223
  $deps[] = 'happyforms-part-scale';
193
  wp_enqueue_script(
194
  'part-scale',
195
  happyforms_get_plugin_url() . 'assets/js/parts/part-scale.js',
196
+ $deps, HAPPYFORMS_VERSION, true
 
 
197
  );
198
  }
199
 
215
  wp_register_script(
216
  'happyforms-part-scale',
217
  happyforms_get_plugin_url() . 'assets/js/frontend/scale.js',
218
+ array(), HAPPYFORMS_VERSION, true
219
  );
220
 
221
  $deps[] = 'happyforms-part-scale';
inc/classes/parts/class-part-select.php CHANGED
@@ -116,9 +116,7 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
116
  wp_enqueue_script(
117
  'part-select',
118
  happyforms_get_plugin_url() . 'assets/js/parts/part-select.js',
119
- $deps,
120
- false,
121
- true
122
  );
123
  }
124
 
116
  wp_enqueue_script(
117
  'part-select',
118
  happyforms_get_plugin_url() . 'assets/js/parts/part-select.js',
119
+ $deps, HAPPYFORMS_VERSION, true
 
 
120
  );
121
  }
122
 
inc/classes/parts/class-part-single-line-text.php CHANGED
@@ -154,9 +154,7 @@ class HappyForms_Part_SingleLineText extends HappyForms_Form_Part {
154
  wp_enqueue_script(
155
  'part-single-line-text',
156
  happyforms_get_plugin_url() . 'assets/js/parts/part-single-line-text.js',
157
- $deps,
158
- false,
159
- true
160
  );
161
  }
162
 
154
  wp_enqueue_script(
155
  'part-single-line-text',
156
  happyforms_get_plugin_url() . 'assets/js/parts/part-single-line-text.js',
157
+ $deps, HAPPYFORMS_VERSION, true
 
 
158
  );
159
  }
160
 
inc/classes/parts/class-part-title.php CHANGED
@@ -112,9 +112,7 @@ class HappyForms_Part_Title extends HappyForms_Form_Part {
112
  wp_enqueue_script(
113
  'part-title',
114
  happyforms_get_plugin_url() . 'assets/js/parts/part-title.js',
115
- $deps,
116
- false,
117
- true
118
  );
119
  }
120
 
112
  wp_enqueue_script(
113
  'part-title',
114
  happyforms_get_plugin_url() . 'assets/js/parts/part-title.js',
115
+ $deps, HAPPYFORMS_VERSION, true
 
 
116
  );
117
  }
118
 
inc/classes/parts/class-part-website-url.php CHANGED
@@ -164,9 +164,7 @@ class HappyForms_Part_WebsiteUrl extends HappyForms_Form_Part {
164
  wp_enqueue_script(
165
  'part-website-url',
166
  happyforms_get_plugin_url() . 'assets/js/parts/part-website-url.js',
167
- $deps,
168
- false,
169
- true
170
  );
171
  }
172
 
164
  wp_enqueue_script(
165
  'part-website-url',
166
  happyforms_get_plugin_url() . 'assets/js/parts/part-website-url.js',
167
+ $deps, HAPPYFORMS_VERSION, true
 
 
168
  );
169
  }
170
 
inc/helpers/helper-activation.php CHANGED
@@ -15,16 +15,21 @@ if ( ! function_exists( 'happyforms_first_run' ) ):
15
  */
16
  function happyforms_first_run() {
17
  require_once( happyforms_get_include_folder() . '/classes/class-tracking.php' );
 
18
 
19
  $tracking = happyforms_get_tracking();
20
  $status = $tracking->get_status();
21
 
22
  if ( 0 < $status['status'] ) {
 
 
 
 
 
23
  return;
24
  }
25
 
26
  require_once( happyforms_get_include_folder() . '/classes/class-form-part-library.php' );
27
- require_once( happyforms_get_include_folder() . '/classes/class-form-controller.php' );
28
  require_once( happyforms_get_include_folder() . '/classes/class-form-styles.php' );
29
  require_once( happyforms_get_include_folder() . '/classes/class-message-controller.php' );
30
  require_once( happyforms_get_include_folder() . '/helpers/helper-form-templates.php' );
@@ -164,6 +169,9 @@ function happyforms_first_run() {
164
 
165
  // Store an option to avoid creating new forms on reactivation
166
  $tracking->update_status( 1 );
 
 
 
167
  }
168
 
169
  endif;
15
  */
16
  function happyforms_first_run() {
17
  require_once( happyforms_get_include_folder() . '/classes/class-tracking.php' );
18
+ require_once( happyforms_get_include_folder() . '/classes/class-form-controller.php' );
19
 
20
  $tracking = happyforms_get_tracking();
21
  $status = $tracking->get_status();
22
 
23
  if ( 0 < $status['status'] ) {
24
+ // Immediately register our custom post type
25
+ // and force a permalinks refresh
26
+ happyforms_get_form_controller()->register_post_type();
27
+ flush_rewrite_rules();
28
+
29
  return;
30
  }
31
 
32
  require_once( happyforms_get_include_folder() . '/classes/class-form-part-library.php' );
 
33
  require_once( happyforms_get_include_folder() . '/classes/class-form-styles.php' );
34
  require_once( happyforms_get_include_folder() . '/classes/class-message-controller.php' );
35
  require_once( happyforms_get_include_folder() . '/helpers/helper-form-templates.php' );
169
 
170
  // Store an option to avoid creating new forms on reactivation
171
  $tracking->update_status( 1 );
172
+
173
+ // Force a permalinks refresh
174
+ flush_rewrite_rules();
175
  }
176
 
177
  endif;
inc/templates/parts/frontend-date.php CHANGED
@@ -11,34 +11,40 @@
11
  <?php if ( $part['date_type'] === 'datetime' || $part['date_type'] === 'date' ) : ?>
12
  <?php $month_value = ( 'current' === $part['default_datetime'] ) ? date( 'n' ) : happyforms_get_part_value( $part, $form, 'month' ); ?>
13
  <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
14
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[month]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
15
- <option value=""><?php _e( 'Month', 'happyforms' ); ?></option>
16
- <?php for ( $i = 1; $i <= 12; $i++ ) : ?>
17
- <option value="<?php echo $i; ?>" <?php selected( $month_value, $i ); ?>><?php echo date( 'F', mktime( 0, 0, 0, $i) ); ?></option>
18
- <?php endfor; ?>
19
- </select>
 
 
20
  </div>
21
  <?php $day_value = ( 'current' === $part['default_datetime'] ) ? date( 'j' ) : happyforms_get_part_value( $part, $form, 'day' ); ?>
22
  <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
23
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[day]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
24
- <option value=""><?php _e( 'Day', 'happyforms' ); ?></option>
25
- <?php for ( $i = 1; $i <= 31; $i++ ) : ?>
26
- <option value="<?php echo $i; ?>" <?php selected( $day_value, $i ); ?>><?php echo $i; ?></option>
27
- <?php endfor; ?>
28
- </select>
 
 
29
  </div>
30
  <?php $year_value = ( 'current' === $part['default_datetime'] ) ? date( 'Y', $current_timestamp ) : happyforms_get_part_value( $part, $form, 'year' ); ?>
31
  <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
32
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[year]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
33
- <option value=""><?php _e( 'Year', 'happyforms' ); ?></option>
34
- <?php
35
- $min_year = $part['min_year'];
36
- $max_year = ( $part['max_year'] > $min_year ) ? $part['max_year'] : date('Y');
 
37
 
38
- for ( $i = $max_year; $i >= $min_year; $i-- ) : ?>
39
- <option value="<?php echo $i; ?>" <?php selected( $year_value, $i ); ?>><?php echo $i; ?></option>
40
- <?php endfor; ?>
41
- </select>
 
42
  </div>
43
  <?php endif; ?>
44
  <?php if ( $part['date_type'] === 'datetime' || $part['date_type'] === 'time' ) : ?>
@@ -72,10 +78,12 @@
72
  <?php if ( 12 == intval( $part['time_format'] ) ) : ?>
73
  <?php $period_value = ( 'current' === $part['default_datetime'] ) ? date( 'A', $current_timestamp ) : happyforms_get_part_value( $part, $form, 'period' ); ?>
74
  <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--period happyforms-part__select-wrap">
75
- <select name="<?php happyforms_the_part_name( $part, $form ); ?>[period]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
76
- <option value="AM" <?php selected( $period_value, 'AM' ); ?>><?php _e( 'AM', 'happyforms' ); ?></option>
77
- <option value="PM" <?php selected( $period_value, 'PM' ); ?>><?php _e( 'PM', 'happyforms' ); ?></option>
78
- </select>
 
 
79
  </div>
80
  <?php endif; ?>
81
  <?php endif; ?>
11
  <?php if ( $part['date_type'] === 'datetime' || $part['date_type'] === 'date' ) : ?>
12
  <?php $month_value = ( 'current' === $part['default_datetime'] ) ? date( 'n' ) : happyforms_get_part_value( $part, $form, 'month' ); ?>
13
  <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
14
+ <div class="happyforms-part__select-bg">
15
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[month]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
16
+ <option value=""><?php _e( 'Month', 'happyforms' ); ?></option>
17
+ <?php for ( $i = 1; $i <= 12; $i++ ) : ?>
18
+ <option value="<?php echo $i; ?>" <?php selected( $month_value, $i ); ?>><?php echo date( 'F', mktime( 0, 0, 0, $i) ); ?></option>
19
+ <?php endfor; ?>
20
+ </select>
21
+ </div>
22
  </div>
23
  <?php $day_value = ( 'current' === $part['default_datetime'] ) ? date( 'j' ) : happyforms_get_part_value( $part, $form, 'day' ); ?>
24
  <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
25
+ <div class="happyforms-part__select-bg">
26
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[day]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
27
+ <option value=""><?php _e( 'Day', 'happyforms' ); ?></option>
28
+ <?php for ( $i = 1; $i <= 31; $i++ ) : ?>
29
+ <option value="<?php echo $i; ?>" <?php selected( $day_value, $i ); ?>><?php echo $i; ?></option>
30
+ <?php endfor; ?>
31
+ </select>
32
+ </div>
33
  </div>
34
  <?php $year_value = ( 'current' === $part['default_datetime'] ) ? date( 'Y', $current_timestamp ) : happyforms_get_part_value( $part, $form, 'year' ); ?>
35
  <div class="happyforms-part-date__date-input happyforms-part__select-wrap">
36
+ <div class="happyforms-part__select-bg">
37
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[year]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
38
+ <option value=""><?php _e( 'Year', 'happyforms' ); ?></option>
39
+ <?php
40
+ $min_year = $part['min_year'];
41
+ $max_year = ( $part['max_year'] > $min_year ) ? $part['max_year'] : date('Y');
42
 
43
+ for ( $i = $max_year; $i >= $min_year; $i-- ) : ?>
44
+ <option value="<?php echo $i; ?>" <?php selected( $year_value, $i ); ?>><?php echo $i; ?></option>
45
+ <?php endfor; ?>
46
+ </select>
47
+ </div>
48
  </div>
49
  <?php endif; ?>
50
  <?php if ( $part['date_type'] === 'datetime' || $part['date_type'] === 'time' ) : ?>
78
  <?php if ( 12 == intval( $part['time_format'] ) ) : ?>
79
  <?php $period_value = ( 'current' === $part['default_datetime'] ) ? date( 'A', $current_timestamp ) : happyforms_get_part_value( $part, $form, 'period' ); ?>
80
  <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--period happyforms-part__select-wrap">
81
+ <div class="happyforms-part__select-bg">
82
+ <select name="<?php happyforms_the_part_name( $part, $form ); ?>[period]"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
83
+ <option value="AM" <?php selected( $period_value, 'AM' ); ?>><?php _e( 'AM', 'happyforms' ); ?></option>
84
+ <option value="PM" <?php selected( $period_value, 'PM' ); ?>><?php _e( 'PM', 'happyforms' ); ?></option>
85
+ </select>
86
+ </div>
87
  </div>
88
  <?php endif; ?>
89
  <?php endif; ?>
inc/templates/parts/frontend-select.php CHANGED
@@ -5,15 +5,17 @@
5
  <?php happyforms_message_notices( $form, happyforms_get_part_name( $part, $form ) ); ?>
6
  <?php endif; ?>
7
  <div class="happyforms-part__select-wrap">
8
- <select id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
9
- <?php foreach( $part['options'] as $option ) : ?>
10
- <?php
11
- $selected = selected( $option['is_default'], 1, false );
12
- $selected = $selected ? $selected : selected( happyforms_get_part_value( $part, $form, $option['label'] ), $option['label'], false );
13
- ?>
14
- <option id="<?php echo esc_attr( $option['id'] ); ?>" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $selected; ?>><?php echo esc_attr( $option['label'] ); ?></option>
15
- <?php endforeach; ?>
16
- </select>
 
 
17
  </div>
18
  <?php happyforms_print_part_description( $part ); ?>
19
  <?php if ( 'happyforms-form--part-error-notices-below' === happyforms_get_form_property( $form, 'part_error_notices_location' ) || ( '' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) ) : ?>
5
  <?php happyforms_message_notices( $form, happyforms_get_part_name( $part, $form ) ); ?>
6
  <?php endif; ?>
7
  <div class="happyforms-part__select-wrap">
8
+ <div class="happyforms-part__select-bg">
9
+ <select id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
10
+ <?php foreach( $part['options'] as $option ) : ?>
11
+ <?php
12
+ $selected = selected( $option['is_default'], 1, false );
13
+ $selected = $selected ? $selected : selected( happyforms_get_part_value( $part, $form, $option['label'] ), $option['label'], false );
14
+ ?>
15
+ <option id="<?php echo esc_attr( $option['id'] ); ?>" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $selected; ?>><?php echo esc_attr( $option['label'] ); ?></option>
16
+ <?php endforeach; ?>
17
+ </select>
18
+ </div>
19
  </div>
20
  <?php happyforms_print_part_description( $part ); ?>
21
  <?php if ( 'happyforms-form--part-error-notices-below' === happyforms_get_form_property( $form, 'part_error_notices_location' ) || ( '' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) ) : ?>
inc/templates/parts/frontend-title.php CHANGED
@@ -2,12 +2,14 @@
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
  <div class="happyforms-part__select-wrap">
5
- <select id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
6
- <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
7
- <?php $honorifics = $this->get_honorifics(); foreach ( $honorifics as $title ) : ?>
8
- <option value="<?php echo $title; ?>" <?php selected( happyforms_get_part_value( $part, $form ), $title ); ?>><?php echo $title; ?></option>
9
- <?php endforeach; ?>
10
- </select>
 
 
11
  </div>
12
  <?php happyforms_print_part_description( $part ); ?>
13
  <?php happyforms_message_notices( $form, happyforms_get_part_name( $part, $form ) ); ?>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
  <div class="happyforms-part__select-wrap">
5
+ <div class="happyforms-part__select-bg">
6
+ <select id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?>>
7
+ <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
8
+ <?php $honorifics = $this->get_honorifics(); foreach ( $honorifics as $title ) : ?>
9
+ <option value="<?php echo $title; ?>" <?php selected( happyforms_get_part_value( $part, $form ), $title ); ?>><?php echo $title; ?></option>
10
+ <?php endforeach; ?>
11
+ </select>
12
+ </div>
13
  </div>
14
  <?php happyforms_print_part_description( $part ); ?>
15
  <?php happyforms_message_notices( $form, happyforms_get_part_name( $part, $form ) ); ?>
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.4.5\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
- "POT-Creation-Date: 2018-06-05 08:22:31+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -553,15 +553,15 @@ msgstr ""
553
  msgid "Welcome"
554
  msgstr ""
555
 
556
- #: inc/classes/class-happyforms-plugin.php:271
557
  msgid "HappyForm"
558
  msgstr ""
559
 
560
- #: inc/classes/class-happyforms-plugin.php:275
561
  msgid "New HappyForm"
562
  msgstr ""
563
 
564
- #: inc/classes/class-happyforms-plugin.php:397
565
  msgid "Add HappyForms"
566
  msgstr ""
567
 
@@ -843,19 +843,19 @@ msgid "For geographical locations. Includes Google Maps intergration."
843
  msgstr ""
844
 
845
  #: inc/classes/parts/class-part-address.php:127
846
- #: inc/classes/parts/class-part-checkbox.php:135
847
  #: inc/classes/parts/class-part-date.php:130
848
  #: inc/classes/parts/class-part-email.php:109
849
  #: inc/classes/parts/class-part-legal.php:88
850
  #: inc/classes/parts/class-part-multi-line-text.php:99
851
  #: inc/classes/parts/class-part-number.php:134
852
  #: inc/classes/parts/class-part-phone.php:118
853
- #: inc/classes/parts/class-part-radio.php:144
854
  #: inc/classes/parts/class-part-rating.php:100
855
  #: inc/classes/parts/class-part-scale.php:122
856
- #: inc/classes/parts/class-part-select.php:136
857
  #: inc/classes/parts/class-part-single-line-text.php:99
858
- #: inc/classes/parts/class-part-title.php:132
859
  #: inc/classes/parts/class-part-website-url.php:99
860
  msgid "This field is required."
861
  msgstr ""
@@ -876,7 +876,7 @@ msgstr ""
876
  msgid "Options"
877
  msgstr ""
878
 
879
- #: inc/classes/parts/class-part-checkbox.php:139
880
  msgid "Checkbox values are not valid."
881
  msgstr ""
882
 
@@ -1005,7 +1005,7 @@ msgstr ""
1005
  msgid "For radio buttons allowing one selection."
1006
  msgstr ""
1007
 
1008
- #: inc/classes/parts/class-part-radio.php:148
1009
  msgid "Radio values are not valid."
1010
  msgstr ""
1011
 
@@ -1044,7 +1044,7 @@ msgstr ""
1044
  msgid "For selecting one option from a long list. Default value adjustable."
1045
  msgstr ""
1046
 
1047
- #: inc/classes/parts/class-part-select.php:140
1048
  msgid "Select values are not valid."
1049
  msgstr ""
1050
 
@@ -1084,7 +1084,7 @@ msgstr ""
1084
  msgid "Dr."
1085
  msgstr ""
1086
 
1087
- #: inc/classes/parts/class-part-title.php:136
1088
  msgid "Values is not valid."
1089
  msgstr ""
1090
 
@@ -1101,51 +1101,51 @@ msgstr ""
1101
  msgid "Not a valid URL."
1102
  msgstr ""
1103
 
1104
- #: inc/helpers/helper-activation.php:43
1105
  msgid "Sample Contact Form"
1106
  msgstr ""
1107
 
1108
- #: inc/helpers/helper-activation.php:54
1109
  msgid "First name"
1110
  msgstr ""
1111
 
1112
- #: inc/helpers/helper-activation.php:59
1113
  msgid "Last name"
1114
  msgstr ""
1115
 
1116
- #: inc/helpers/helper-activation.php:64
1117
  msgid "What's your reason for contacting us?"
1118
  msgstr ""
1119
 
1120
- #: inc/helpers/helper-activation.php:67
1121
  msgid "Need technical help"
1122
  msgstr ""
1123
 
1124
- #: inc/helpers/helper-activation.php:70
1125
  msgid "Want to suggest a feature"
1126
  msgstr ""
1127
 
1128
- #: inc/helpers/helper-activation.php:73
1129
  msgid "Asking about my account"
1130
  msgstr ""
1131
 
1132
- #: inc/helpers/helper-activation.php:79
1133
  msgid "Age"
1134
  msgstr ""
1135
 
1136
- #: inc/helpers/helper-activation.php:84
1137
  msgid "Your message"
1138
  msgstr ""
1139
 
1140
- #: inc/helpers/helper-activation.php:116
1141
  msgid "It would be great if I could use Google ReCaptcha instead of Honeypot."
1142
  msgstr ""
1143
 
1144
- #: inc/helpers/helper-activation.php:123
1145
  msgid "How do I embed a HappyForm in my sidebar?"
1146
  msgstr ""
1147
 
1148
- #: inc/helpers/helper-activation.php:130
1149
  msgid "How can I access my premium upgrade credentials?"
1150
  msgstr ""
1151
 
@@ -2799,7 +2799,7 @@ msgid "Pre-format phone number region"
2799
  msgstr ""
2800
 
2801
  #: inc/templates/parts/customize-phone.php:50
2802
- #: inc/templates/parts/frontend-title.php:6
2803
  msgid "Select"
2804
  msgstr ""
2805
 
@@ -2833,23 +2833,23 @@ msgstr ""
2833
  msgid "City"
2834
  msgstr ""
2835
 
2836
- #: inc/templates/parts/frontend-date.php:15
2837
  msgid "Month"
2838
  msgstr ""
2839
 
2840
- #: inc/templates/parts/frontend-date.php:24
2841
  msgid "Day"
2842
  msgstr ""
2843
 
2844
- #: inc/templates/parts/frontend-date.php:33
2845
  msgid "Year"
2846
  msgstr ""
2847
 
2848
- #: inc/templates/parts/frontend-date.php:76
2849
  msgid "AM"
2850
  msgstr ""
2851
 
2852
- #: inc/templates/parts/frontend-date.php:77
2853
  msgid "PM"
2854
  msgstr ""
2855
 
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: HappyForms 1.4.6\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
+ "POT-Creation-Date: 2018-06-07 09:06:05+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
553
  msgid "Welcome"
554
  msgstr ""
555
 
556
+ #: inc/classes/class-happyforms-plugin.php:270
557
  msgid "HappyForm"
558
  msgstr ""
559
 
560
+ #: inc/classes/class-happyforms-plugin.php:274
561
  msgid "New HappyForm"
562
  msgstr ""
563
 
564
+ #: inc/classes/class-happyforms-plugin.php:398
565
  msgid "Add HappyForms"
566
  msgstr ""
567
 
843
  msgstr ""
844
 
845
  #: inc/classes/parts/class-part-address.php:127
846
+ #: inc/classes/parts/class-part-checkbox.php:133
847
  #: inc/classes/parts/class-part-date.php:130
848
  #: inc/classes/parts/class-part-email.php:109
849
  #: inc/classes/parts/class-part-legal.php:88
850
  #: inc/classes/parts/class-part-multi-line-text.php:99
851
  #: inc/classes/parts/class-part-number.php:134
852
  #: inc/classes/parts/class-part-phone.php:118
853
+ #: inc/classes/parts/class-part-radio.php:142
854
  #: inc/classes/parts/class-part-rating.php:100
855
  #: inc/classes/parts/class-part-scale.php:122
856
+ #: inc/classes/parts/class-part-select.php:134
857
  #: inc/classes/parts/class-part-single-line-text.php:99
858
+ #: inc/classes/parts/class-part-title.php:130
859
  #: inc/classes/parts/class-part-website-url.php:99
860
  msgid "This field is required."
861
  msgstr ""
876
  msgid "Options"
877
  msgstr ""
878
 
879
+ #: inc/classes/parts/class-part-checkbox.php:137
880
  msgid "Checkbox values are not valid."
881
  msgstr ""
882
 
1005
  msgid "For radio buttons allowing one selection."
1006
  msgstr ""
1007
 
1008
+ #: inc/classes/parts/class-part-radio.php:146
1009
  msgid "Radio values are not valid."
1010
  msgstr ""
1011
 
1044
  msgid "For selecting one option from a long list. Default value adjustable."
1045
  msgstr ""
1046
 
1047
+ #: inc/classes/parts/class-part-select.php:138
1048
  msgid "Select values are not valid."
1049
  msgstr ""
1050
 
1084
  msgid "Dr."
1085
  msgstr ""
1086
 
1087
+ #: inc/classes/parts/class-part-title.php:134
1088
  msgid "Values is not valid."
1089
  msgstr ""
1090
 
1101
  msgid "Not a valid URL."
1102
  msgstr ""
1103
 
1104
+ #: inc/helpers/helper-activation.php:48
1105
  msgid "Sample Contact Form"
1106
  msgstr ""
1107
 
1108
+ #: inc/helpers/helper-activation.php:59
1109
  msgid "First name"
1110
  msgstr ""
1111
 
1112
+ #: inc/helpers/helper-activation.php:64
1113
  msgid "Last name"
1114
  msgstr ""
1115
 
1116
+ #: inc/helpers/helper-activation.php:69
1117
  msgid "What's your reason for contacting us?"
1118
  msgstr ""
1119
 
1120
+ #: inc/helpers/helper-activation.php:72
1121
  msgid "Need technical help"
1122
  msgstr ""
1123
 
1124
+ #: inc/helpers/helper-activation.php:75
1125
  msgid "Want to suggest a feature"
1126
  msgstr ""
1127
 
1128
+ #: inc/helpers/helper-activation.php:78
1129
  msgid "Asking about my account"
1130
  msgstr ""
1131
 
1132
+ #: inc/helpers/helper-activation.php:84
1133
  msgid "Age"
1134
  msgstr ""
1135
 
1136
+ #: inc/helpers/helper-activation.php:89
1137
  msgid "Your message"
1138
  msgstr ""
1139
 
1140
+ #: inc/helpers/helper-activation.php:121
1141
  msgid "It would be great if I could use Google ReCaptcha instead of Honeypot."
1142
  msgstr ""
1143
 
1144
+ #: inc/helpers/helper-activation.php:128
1145
  msgid "How do I embed a HappyForm in my sidebar?"
1146
  msgstr ""
1147
 
1148
+ #: inc/helpers/helper-activation.php:135
1149
  msgid "How can I access my premium upgrade credentials?"
1150
  msgstr ""
1151
 
2799
  msgstr ""
2800
 
2801
  #: inc/templates/parts/customize-phone.php:50
2802
+ #: inc/templates/parts/frontend-title.php:7
2803
  msgid "Select"
2804
  msgstr ""
2805
 
2833
  msgid "City"
2834
  msgstr ""
2835
 
2836
+ #: inc/templates/parts/frontend-date.php:16
2837
  msgid "Month"
2838
  msgstr ""
2839
 
2840
+ #: inc/templates/parts/frontend-date.php:27
2841
  msgid "Day"
2842
  msgstr ""
2843
 
2844
+ #: inc/templates/parts/frontend-date.php:38
2845
  msgid "Year"
2846
  msgstr ""
2847
 
2848
+ #: inc/templates/parts/frontend-date.php:83
2849
  msgid "AM"
2850
  msgstr ""
2851
 
2852
+ #: inc/templates/parts/frontend-date.php:84
2853
  msgid "PM"
2854
  msgstr ""
2855
 
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: 4.9.6
7
  Requires PHP: 5.2.4
8
- Stable tag: 1.4.5
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -74,6 +74,11 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
74
 
75
  == Changelog ==
76
 
 
 
 
 
 
77
  = 1.4.5 =
78
  * Improvement: Submit button state is now connected to reCaptcha result and remains disabled until reCaptcha is filled.
79
  * Improvement: Better compatibility with various themes.
@@ -149,6 +154,9 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
149
 
150
  == Upgrade Notice ==
151
 
 
 
 
152
  = 1.4.5 =
153
  * Improvements and bug fixes.
154
 
5
  Requires at least: 4.8
6
  Tested up to: 4.9.6
7
  Requires PHP: 5.2.4
8
+ Stable tag: 1.4.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
74
 
75
  == Changelog ==
76
 
77
+ = 1.4.6 =
78
+ * Improvement: scripts and styles are now versioned to avoid cache problems after an update.
79
+ * Bug fix: Permalinks are now flushed upon activation to avoid 404 errors.
80
+ * Bug fix: Dropdown arrows were not clickable and didn't reflect part value color set in Style step.
81
+
82
  = 1.4.5 =
83
  * Improvement: Submit button state is now connected to reCaptcha result and remains disabled until reCaptcha is filled.
84
  * Improvement: Better compatibility with various themes.
154
 
155
  == Upgrade Notice ==
156
 
157
+ = 1.4.6 =
158
+ * Improvements and bug fixes.
159
+
160
  = 1.4.5 =
161
  * Improvements and bug fixes.
162