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

Version Description

  • New feature: New 'Google reCAPTCHA theme' setting in Style step.
  • Improvement: Various improvements to styles in HappyForms UI.
  • Bugfix: Email part with confirmation value didn't work with 'Fade submit until valid' option.
  • Bugfix: Date & Time part did not reflect EU date format in preview step and email.
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.8.9
Comparing to
See all releases

Code changes from version 1.8.8 to 1.8.9

Files changed (56) hide show
  1. happyforms.php +2 -2
  2. inc/classes/class-happyforms.php +24 -0
  3. inc/core/assets/css/customize.css +78 -9
  4. inc/core/assets/js/customize.js +48 -3
  5. inc/core/assets/js/frontend.js +15 -3
  6. inc/core/assets/js/frontend/email.js +1 -1
  7. inc/core/assets/js/frontend/recaptcha.js +2 -0
  8. inc/core/assets/js/parts/part-scale.js +2 -4
  9. inc/core/assets/js/parts/part-select.js +13 -10
  10. inc/core/assets/js/preview.js +1 -1
  11. inc/core/classes/class-form-part-library.php +1 -0
  12. inc/core/classes/class-form-styles.php +14 -0
  13. inc/core/classes/parts/class-part-date.php +12 -1
  14. inc/core/helpers/helper-customize-templates.php +16 -0
  15. inc/core/helpers/helper-form-templates.php +2 -2
  16. inc/core/helpers/helper-misc.php +18 -1
  17. inc/core/templates/customize-controls/setup/text.php +4 -0
  18. inc/core/templates/customize-form-part-footer.php +4 -4
  19. inc/core/templates/customize-form-part-logic.php +5 -0
  20. inc/core/templates/customize-form-setup-logic.php +5 -0
  21. inc/core/templates/parts/customize-address.php +8 -1
  22. inc/core/templates/parts/customize-checkbox.php +9 -2
  23. inc/core/templates/parts/customize-date.php +8 -1
  24. inc/core/templates/parts/customize-email.php +8 -1
  25. inc/core/templates/parts/customize-legal.php +8 -1
  26. inc/core/templates/parts/customize-multi-line-text.php +8 -1
  27. inc/core/templates/parts/customize-narrative.php +9 -2
  28. inc/core/templates/parts/customize-number.php +8 -1
  29. inc/core/templates/parts/customize-phone.php +8 -1
  30. inc/core/templates/parts/customize-placeholder.php +13 -6
  31. inc/core/templates/parts/customize-radio.php +9 -2
  32. inc/core/templates/parts/customize-rating.php +8 -1
  33. inc/core/templates/parts/customize-rich-text.php +8 -1
  34. inc/core/templates/parts/customize-scale.php +8 -1
  35. inc/core/templates/parts/customize-select.php +9 -2
  36. inc/core/templates/parts/customize-single-line-text.php +8 -1
  37. inc/core/templates/parts/customize-table.php +10 -3
  38. inc/core/templates/parts/customize-title.php +8 -1
  39. inc/core/templates/parts/customize-website-url.php +8 -1
  40. inc/core/templates/parts/frontend-address.php +7 -7
  41. inc/core/templates/parts/frontend-date-day.php +1 -1
  42. inc/core/templates/parts/frontend-date-month.php +1 -1
  43. inc/core/templates/parts/frontend-date.php +4 -4
  44. inc/core/templates/parts/frontend-email.php +9 -9
  45. inc/core/templates/parts/frontend-legal.php +1 -1
  46. inc/core/templates/parts/frontend-multi-line-text.php +1 -1
  47. inc/core/templates/parts/frontend-narrative.php +1 -1
  48. inc/core/templates/parts/frontend-number.php +5 -5
  49. inc/core/templates/parts/frontend-phone.php +2 -2
  50. inc/core/templates/parts/frontend-scale.php +1 -1
  51. inc/core/templates/parts/frontend-select.php +1 -1
  52. inc/core/templates/parts/frontend-single-line-text.php +2 -2
  53. inc/core/templates/parts/frontend-title.php +3 -3
  54. inc/core/templates/parts/frontend-website-url.php +1 -1
  55. languages/happyforms.pot +189 -164
  56. readme.txt +10 -1
happyforms.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
- * Version: 1.8.8
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.8.8' );
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.8.9
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.8.9' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
inc/classes/class-happyforms.php CHANGED
@@ -14,6 +14,7 @@ class HappyForms extends HappyForms_Core {
14
  add_action( 'parse_request', array( $this, 'parse_archive_request' ) );
15
 
16
  $this->register_dummy_parts();
 
17
  }
18
 
19
  public function register_dummy_parts() {
@@ -212,4 +213,27 @@ class HappyForms extends HappyForms_Core {
212
 
213
  $message_controller->export_archive( $form );
214
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  }
14
  add_action( 'parse_request', array( $this, 'parse_archive_request' ) );
15
 
16
  $this->register_dummy_parts();
17
+ $this->add_setup_logic_upgrade_links();
18
  }
19
 
20
  public function register_dummy_parts() {
213
 
214
  $message_controller->export_archive( $form );
215
  }
216
+
217
+ public function add_setup_logic_upgrade_links() {
218
+ $control_slugs = array(
219
+ 'email_recipient',
220
+ 'email_bccs',
221
+ 'alert_email_subject',
222
+ 'redirect_url'
223
+ );
224
+
225
+ foreach ( $control_slugs as $slug ) {
226
+ add_action( "happyforms_setup_control_{$slug}_after", array( $this, 'set_logic_link_template' ) );
227
+ }
228
+ }
229
+
230
+ public function set_logic_link_template() {
231
+ $html = '';
232
+
233
+ ob_start();
234
+ require( happyforms_get_include_folder() . '/core/templates/customize-form-setup-logic.php' );
235
+ $html = ob_get_clean();
236
+
237
+ echo $html;
238
+ }
239
  }
inc/core/assets/css/customize.css CHANGED
@@ -280,7 +280,64 @@ a.happyforms-form-part-advanced-settings {
280
  float: right;
281
  }
282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  a.happyforms-form-part-advanced-settings:before,
 
284
  a.advanced-option:before,
285
  a.advanced-column:before {
286
  position: relative;
@@ -291,6 +348,7 @@ a.advanced-column:before {
291
  }
292
 
293
  a.happyforms-form-part-advanced-settings.opened:before,
 
294
  a.advanced-option.opened:before,
295
  a.advanced-column.opened:before {
296
  content: "\f342";
@@ -388,7 +446,7 @@ a.happyforms-form-part-remove:hover {
388
  .happyforms-setup-view #customize-control-alert_email_subject,
389
  .happyforms-setup-view .customize-control[id*='customize-control-confirmation_email_']:not(#customize-control-confirmation_email_include_values),
390
  .happyforms-setup-view #customize-control-redirect_url,
391
- .happyforms-setup-view .customize-control[id*='customize-control-captcha_']:not(#customize-control-captcha_label) {
392
  padding-bottom: 5px;
393
  border-bottom: 0;
394
  }
@@ -409,10 +467,11 @@ a.happyforms-form-part-remove:hover {
409
  */
410
  .happyforms-parts-placeholder {
411
  display: block;
412
- border: 3px dashed #b4b9be;
413
  padding: 30px 30px 40px;
414
  box-sizing: border-box;
415
  text-align: center;
 
416
  }
417
 
418
  .happyforms-stack-view.has-parts .happyforms-parts-placeholder {
@@ -425,9 +484,16 @@ a.happyforms-form-part-remove:hover {
425
  }
426
 
427
  .happyforms-parts-placeholder p {
428
- font-size: 14px;
429
- color: #444;
430
  margin: 0;
 
 
 
 
 
 
 
431
  }
432
 
433
  .happyforms-parts-placeholder p:last-of-type {
@@ -437,7 +503,7 @@ a.happyforms-form-part-remove:hover {
437
  .happyforms-parts-placeholder__placeholder {
438
  margin-bottom: 20px;
439
  padding: 20px;
440
- border: 3px dashed #b4b9be;
441
  }
442
 
443
  .happyforms-parts-placeholder__placeholder:last-child {
@@ -623,7 +689,8 @@ body.adding-happyforms-parts #customize-preview iframe {
623
  }
624
 
625
  .happyforms-part-widget .options h3 {
626
- margin-bottom: 0;
 
627
  display: none;
628
  }
629
 
@@ -942,7 +1009,7 @@ ul.happyforms-parts-list .happyforms-parts-list-item-title {
942
  ul.happyforms-parts-list .happyforms-parts-list-item-title h3 {
943
  margin: 0;
944
  font-size: 14px;
945
- line-height: 1;
946
  overflow: hidden;
947
  white-space: nowrap;
948
  text-overflow: ellipsis;
@@ -1218,7 +1285,8 @@ li.customize-control.happyforms-buttonset-control + .customize-control h2 {
1218
  #customize-control-checkboxes-radios,
1219
  #customize-control-rating,
1220
  #customize-control-tables,
1221
- #customize-control-submit_button_part_of_last_input {
 
1222
  display: none;
1223
  }
1224
 
@@ -1227,7 +1295,8 @@ li.customize-control.happyforms-buttonset-control + .customize-control h2 {
1227
  .happyforms-style-view.has-checkbox-radio #customize-control-checkboxes-radios,
1228
  .happyforms-style-view.has-rating #customize-control-rating,
1229
  .happyforms-style-view.has-table #customize-control-tables,
1230
- .happyforms-style-view.has-submit-inline #customize-control-submit_button_part_of_last_input {
 
1231
  display: block;
1232
  }
1233
 
280
  float: right;
281
  }
282
 
283
+ a.happyforms-form-part-logic {
284
+ float: right;
285
+ margin-right: 10px;
286
+ }
287
+
288
+ .happyforms-part-logic-wrap {
289
+ display: none;
290
+ overflow: hidden;
291
+ }
292
+
293
+ .happyforms-part-logic-wrap .no-parts,
294
+ .happyforms-setup-logic-wrap .no-parts {
295
+ display: none;
296
+ margin-bottom: 15px;
297
+ border: 1px solid #eee;
298
+ padding: 10px;
299
+ }
300
+
301
+ .happyforms-part-logic-wrap .no-parts--show,
302
+ .happyforms-setup-logic-wrap .no-parts--show {
303
+ display: block;
304
+ }
305
+
306
+ .happyforms-part-logic-wrap .no-parts h3,
307
+ .happyforms-setup-logic-wrap .no-parts h3 {
308
+ margin-top: 5px;
309
+ }
310
+
311
+ .happyforms-part-logic-wrap .no-parts--small h3,
312
+ .happyforms-setup-logic-wrap .no-parts--small h3 {
313
+ margin-bottom: 0;
314
+ }
315
+
316
+ .happyforms-part-logic-wrap .no-parts--small p,
317
+ .happyforms-setup-logic-wrap .no-parts--small p {
318
+ font-size: 14px;
319
+ }
320
+
321
+ .happyforms-part-logic-wrap .no-parts--small a:after,
322
+ .happyforms-setup-logic-wrap a.external:after {
323
+ content: '\f504';
324
+ position: relative;
325
+ top: 2px;
326
+ left: 2px;
327
+ display: inline-block;
328
+ font-family: dashicons;
329
+ }
330
+
331
+ .happyforms-setup-logic-wrap {
332
+ margin-top: 5px;
333
+ }
334
+
335
+ .happyforms-setup-logic-wrap a.external {
336
+ font-size: 14px;
337
+ }
338
+
339
  a.happyforms-form-part-advanced-settings:before,
340
+ a.happyforms-form-part-logic:before,
341
  a.advanced-option:before,
342
  a.advanced-column:before {
343
  position: relative;
348
  }
349
 
350
  a.happyforms-form-part-advanced-settings.opened:before,
351
+ a.happyforms-form-part-logic.opened:before,
352
  a.advanced-option.opened:before,
353
  a.advanced-column.opened:before {
354
  content: "\f342";
446
  .happyforms-setup-view #customize-control-alert_email_subject,
447
  .happyforms-setup-view .customize-control[id*='customize-control-confirmation_email_']:not(#customize-control-confirmation_email_include_values),
448
  .happyforms-setup-view #customize-control-redirect_url,
449
+ .happyforms-setup-view .customize-control[id*='customize-control-captcha_']:not(#customize-control-captcha_theme) {
450
  padding-bottom: 5px;
451
  border-bottom: 0;
452
  }
467
  */
468
  .happyforms-parts-placeholder {
469
  display: block;
470
+ border: 1px dashed #b4b9be;
471
  padding: 30px 30px 40px;
472
  box-sizing: border-box;
473
  text-align: center;
474
+ background-color: #edeff0;
475
  }
476
 
477
  .happyforms-stack-view.has-parts .happyforms-parts-placeholder {
484
  }
485
 
486
  .happyforms-parts-placeholder p {
487
+ font-size: 13px;
488
+ color: #555d66;
489
  margin: 0;
490
+ font-style: italic;
491
+ }
492
+
493
+ .happyforms-parts-placeholder p:first-of-type {
494
+ margin-bottom: 10px;
495
+ font-size: 14px;
496
+ font-style: normal;
497
  }
498
 
499
  .happyforms-parts-placeholder p:last-of-type {
503
  .happyforms-parts-placeholder__placeholder {
504
  margin-bottom: 20px;
505
  padding: 20px;
506
+ border: 1px dashed #b4b9be;
507
  }
508
 
509
  .happyforms-parts-placeholder__placeholder:last-child {
689
  }
690
 
691
  .happyforms-part-widget .options h3 {
692
+ margin-top: 8px;
693
+ margin-bottom: 10px;
694
  display: none;
695
  }
696
 
1009
  ul.happyforms-parts-list .happyforms-parts-list-item-title h3 {
1010
  margin: 0;
1011
  font-size: 14px;
1012
+ line-height: 1.2;
1013
  overflow: hidden;
1014
  white-space: nowrap;
1015
  text-overflow: ellipsis;
1285
  #customize-control-checkboxes-radios,
1286
  #customize-control-rating,
1287
  #customize-control-tables,
1288
+ #customize-control-submit_button_part_of_last_input,
1289
+ #customize-control-captcha_theme {
1290
  display: none;
1291
  }
1292
 
1295
  .happyforms-style-view.has-checkbox-radio #customize-control-checkboxes-radios,
1296
  .happyforms-style-view.has-rating #customize-control-rating,
1297
  .happyforms-style-view.has-table #customize-control-tables,
1298
+ .happyforms-style-view.has-submit-inline #customize-control-submit_button_part_of_last_input,
1299
+ .happyforms-style-view.has-captcha #customize-control-captcha_theme {
1300
  display: block;
1301
  }
1302
 
inc/core/assets/js/customize.js CHANGED
@@ -680,6 +680,8 @@
680
  { collection: this.model.get( 'parts' ) },
681
  );
682
 
 
 
683
  var index = this.model.get( 'parts' ).indexOf( part );
684
  var after = part.get( 'id' );
685
  options = options || {};
@@ -930,7 +932,8 @@
930
  'mouseover': 'onMouseOver',
931
  'mouseout': 'onMouseOut',
932
  'click .apply-all-check': 'applyOptionGlobally',
933
- 'click .happyforms-form-part-advanced-settings': 'onAdvancedSettingsClick'
 
934
  },
935
 
936
  initialize: function( options ) {
@@ -1317,6 +1320,15 @@
1317
  } );
1318
  },
1319
 
 
 
 
 
 
 
 
 
 
1320
  onNumberChange: function( e ) {
1321
  var $input = $( e.target );
1322
  var value = parseInt( $input.val(), 10 );
@@ -1374,6 +1386,7 @@
1374
  this.listenTo( this.model, 'change:captcha_site_key', this.onChangeCaptchaKey );
1375
  this.listenTo( this.model, 'change:captcha_secret_key', this.onChangeCaptchaKey );
1376
  this.listenTo( this.model, 'change:captcha_label', this.onChangeCaptchaLabel );
 
1377
  this.listenTo( this.model, 'change:submit_button_label', this.onSubmitButtonLabelChange );
1378
  },
1379
 
@@ -1511,7 +1524,8 @@
1511
  'change [data-target="form_class"] input[type="checkbox"]': 'onFormClassCheckboxChange',
1512
  'change [data-target="css_var"] input[type=radio]': 'onButtonSetCssVarChange',
1513
  'keyup [data-target="attribute"] input[type=text]': 'onAttributeChange',
1514
- 'navigate-to-group': 'navigateToGroup'
 
1515
  } ),
1516
 
1517
  pointers: {},
@@ -1593,6 +1607,12 @@
1593
  if ( hasSubmitInline ) {
1594
  this.$el.addClass( 'has-submit-inline' );
1595
  }
 
 
 
 
 
 
1596
  },
1597
 
1598
  ready: function() {
@@ -1670,6 +1690,22 @@
1670
  happyForms.form.set( attribute, value );
1671
  },
1672
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1673
  onGroupClick: function( e ) {
1674
  e.preventDefault();
1675
 
@@ -2082,6 +2118,8 @@
2082
  if ( captcha ) {
2083
  var siteKey = happyForms.form.get( 'captcha_site_key' ) || 'null';
2084
  $recaptcha.attr( 'data-sitekey', siteKey );
 
 
2085
  $recaptcha.show();
2086
  $recaptcha.happyFormPart( 'render' );
2087
  } else {
@@ -2157,6 +2195,13 @@
2157
  } );
2158
 
2159
  request.done( success );
 
 
 
 
 
 
 
2160
  }
2161
  };
2162
 
@@ -2171,7 +2216,7 @@
2171
 
2172
  happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
2173
  BaseClass = happyForms.classes.models.parts[attrs.type];
2174
-
2175
  return func( attrs, options, BaseClass );
2176
  } );
2177
 
680
  { collection: this.model.get( 'parts' ) },
681
  );
682
 
683
+ happyForms.trigger( 'part-duplicate-complete', part, duplicate );
684
+
685
  var index = this.model.get( 'parts' ).indexOf( part );
686
  var after = part.get( 'id' );
687
  options = options || {};
932
  'mouseover': 'onMouseOver',
933
  'mouseout': 'onMouseOut',
934
  'click .apply-all-check': 'applyOptionGlobally',
935
+ 'click .happyforms-form-part-advanced-settings': 'onAdvancedSettingsClick',
936
+ 'click .happyforms-form-part-logic': 'onLogicButtonClick',
937
  },
938
 
939
  initialize: function( options ) {
1320
  } );
1321
  },
1322
 
1323
+ onLogicButtonClick: function( e ) {
1324
+ e.preventDefault();
1325
+ e.stopPropagation();
1326
+
1327
+ $( '.happyforms-part-logic-wrap', this.$el ).slideToggle( 300, function() {
1328
+ $( e.target ).toggleClass( 'opened' );
1329
+ } );
1330
+ },
1331
+
1332
  onNumberChange: function( e ) {
1333
  var $input = $( e.target );
1334
  var value = parseInt( $input.val(), 10 );
1386
  this.listenTo( this.model, 'change:captcha_site_key', this.onChangeCaptchaKey );
1387
  this.listenTo( this.model, 'change:captcha_secret_key', this.onChangeCaptchaKey );
1388
  this.listenTo( this.model, 'change:captcha_label', this.onChangeCaptchaLabel );
1389
+ this.listenTo( this.model, 'change:captcha_theme', this.onChangeCaptcha );
1390
  this.listenTo( this.model, 'change:submit_button_label', this.onSubmitButtonLabelChange );
1391
  },
1392
 
1524
  'change [data-target="form_class"] input[type="checkbox"]': 'onFormClassCheckboxChange',
1525
  'change [data-target="css_var"] input[type=radio]': 'onButtonSetCssVarChange',
1526
  'keyup [data-target="attribute"] input[type=text]': 'onAttributeChange',
1527
+ 'navigate-to-group': 'navigateToGroup',
1528
+ 'change [data-target="recaptcha"]': 'onRecaptchaChange'
1529
  } ),
1530
 
1531
  pointers: {},
1607
  if ( hasSubmitInline ) {
1608
  this.$el.addClass( 'has-submit-inline' );
1609
  }
1610
+
1611
+ var hasRecaptcha = ( '1' == happyForms.form.get( 'captcha' ) );
1612
+
1613
+ if ( hasRecaptcha ) {
1614
+ this.$el.addClass( 'has-captcha' );
1615
+ }
1616
  },
1617
 
1618
  ready: function() {
1690
  happyForms.form.set( attribute, value );
1691
  },
1692
 
1693
+ onRecaptchaChange: function( e ) {
1694
+ e.preventDefault();
1695
+
1696
+ var $target = $( e.target );
1697
+ var attribute = $target.data( 'attribute' );
1698
+ var value = $target.val();
1699
+
1700
+ happyForms.form.set( attribute, value );
1701
+
1702
+ var data = {
1703
+ callback: 'onRecaptchaUpdate',
1704
+ };
1705
+
1706
+ happyForms.previewSend( 'happyforms-form-recaptcha-update', data );
1707
+ },
1708
+
1709
  onGroupClick: function( e ) {
1710
  e.preventDefault();
1711
 
2118
  if ( captcha ) {
2119
  var siteKey = happyForms.form.get( 'captcha_site_key' ) || 'null';
2120
  $recaptcha.attr( 'data-sitekey', siteKey );
2121
+ var theme = happyForms.form.get( 'captcha_theme' ) || 'light';
2122
+ $recaptcha.attr( 'data-theme', theme );
2123
  $recaptcha.show();
2124
  $recaptcha.happyFormPart( 'render' );
2125
  } else {
2195
  } );
2196
 
2197
  request.done( success );
2198
+ },
2199
+
2200
+ unprefixOptionId: function( optionId ) {
2201
+ var split = optionId.split( '_' );
2202
+ var numericPart = _(split).last();
2203
+
2204
+ return numericPart;
2205
  }
2206
  };
2207
 
2216
 
2217
  happyForms.factory.model = _.wrap( happyForms.factory.model, function( func, attrs, options, BaseClass ) {
2218
  BaseClass = happyForms.classes.models.parts[attrs.type];
2219
+
2220
  return func( attrs, options, BaseClass );
2221
  } );
2222
 
inc/core/assets/js/frontend.js CHANGED
@@ -32,7 +32,12 @@
32
  },
33
 
34
  isRequired: function() {
35
- return this.$el.is( '[data-happyforms-required]' );
 
 
 
 
 
36
  },
37
 
38
  isFilled: function() {
@@ -54,7 +59,14 @@
54
 
55
  confirmationMatches: function() {
56
  var matches = false;
57
- var values = this.$input.map( function() {
 
 
 
 
 
 
 
58
  return $( this ).val();
59
  } ).toArray();
60
 
@@ -355,4 +367,4 @@
355
  $( '.happyforms-form' ).happyForm();
356
  } );
357
 
358
- } )( jQuery );
32
  },
33
 
34
  isRequired: function() {
35
+ var isRequired = (
36
+ this.$el.is( ':visible' )
37
+ && this.$el.is( '[data-happyforms-required]' )
38
+ );
39
+
40
+ return isRequired;
41
  },
42
 
43
  isFilled: function() {
59
 
60
  confirmationMatches: function() {
61
  var matches = false;
62
+
63
+ var $input = this.$input;
64
+
65
+ if ( this.$visualInput ) {
66
+ $input = this.$visualInput;
67
+ }
68
+
69
+ var values = $input.map( function() {
70
  return $( this ).val();
71
  } ).toArray();
72
 
367
  $( '.happyforms-form' ).happyForm();
368
  } );
369
 
370
+ } )( jQuery );
inc/core/assets/js/frontend/email.js CHANGED
@@ -40,4 +40,4 @@
40
  }
41
  };
42
 
43
- } )( jQuery, _happyFormsEmailSettings );
40
  }
41
  };
42
 
43
+ } )( jQuery, _happyFormsEmailSettings );
inc/core/assets/js/frontend/recaptcha.js CHANGED
@@ -27,6 +27,7 @@
27
 
28
  var id = this.$input.attr( 'id' );
29
  var siteKey = this.$el.attr( 'data-sitekey' );
 
30
  var self = this;
31
 
32
  if ( ! siteKey ) {
@@ -39,6 +40,7 @@
39
 
40
  this.widgetID = grecaptcha.render( id, {
41
  sitekey: siteKey,
 
42
 
43
  callback: function( response ) {
44
  self.checked = true;
27
 
28
  var id = this.$input.attr( 'id' );
29
  var siteKey = this.$el.attr( 'data-sitekey' );
30
+ var theme = ( this.$el.attr( 'data-theme' ) ) ? this.$el.attr( 'data-theme' ) : 'light';
31
  var self = this;
32
 
33
  if ( ! siteKey ) {
40
 
41
  this.widgetID = grecaptcha.render( id, {
42
  sitekey: siteKey,
43
+ theme: theme,
44
 
45
  callback: function( response ) {
46
  self.checked = true;
inc/core/assets/js/parts/part-scale.js CHANGED
@@ -22,15 +22,13 @@
22
  this.listenTo( this.model, 'change:multiple', this.onMultipleChange );
23
  },
24
 
25
- events: function() {
26
- return _.extend({}, happyForms.classes.views.Part.prototype.events, {
27
  'change [data-bind=default_value]': 'onDefaultValueChange',
28
  'change [data-bind=min_value]': 'onMinValueChange',
29
  'change [data-bind=max_value]': 'onMaxValueChange',
30
  'change [data-bind=default_range_from]': 'onDefaultRangeFromChange',
31
  'change [data-bind=default_range_to]': 'onDefaultRangeToChange'
32
- });
33
- },
34
 
35
  onMinValueChange: function( e ) {
36
  var model = this.model;
22
  this.listenTo( this.model, 'change:multiple', this.onMultipleChange );
23
  },
24
 
25
+ events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
 
26
  'change [data-bind=default_value]': 'onDefaultValueChange',
27
  'change [data-bind=min_value]': 'onMinValueChange',
28
  'change [data-bind=max_value]': 'onMaxValueChange',
29
  'change [data-bind=default_range_from]': 'onDefaultRangeFromChange',
30
  'change [data-bind=default_range_to]': 'onDefaultRangeToChange'
31
+ } ),
 
32
 
33
  onMinValueChange: function( e ) {
34
  var model = this.model;
inc/core/assets/js/parts/part-select.js CHANGED
@@ -40,7 +40,7 @@
40
  events: {
41
  'click .advanced-option': 'onAdvancedOptionClick',
42
  'click .delete-option': 'onDeleteOptionClick',
43
- 'keyup [name=label]': 'onItemLabelChange',
44
  'change [name=label]': 'onItemLabelChange',
45
  'change [name=is_default]': 'onItemDefaultChange',
46
  },
@@ -74,7 +74,7 @@
74
  this.model.collection.remove( this.model );
75
  },
76
 
77
- onItemLabelChange: function( e ) {
78
  if ( 'Enter' === e.key ) {
79
  $( '.add-option', this.$el ).click();
80
  return;
@@ -82,16 +82,19 @@
82
 
83
  this.model.set( 'label', $( e.target ).val() );
84
  this.part.trigger( 'change' );
 
85
 
86
- var data = {
87
- id: this.part.get( 'id' ),
88
- callback: 'onSelectItemLabelChangeCallback',
89
- options: {
90
- itemID: this.model.get( 'id' ),
91
- }
92
- };
93
 
94
- happyForms.previewSend( 'happyforms-part-dom-update', data );
 
 
 
 
 
 
 
95
  },
96
 
97
  onItemDefaultChange: function( e ) {
40
  events: {
41
  'click .advanced-option': 'onAdvancedOptionClick',
42
  'click .delete-option': 'onDeleteOptionClick',
43
+ 'keyup [name=label]': 'onItemLabelKeyup',
44
  'change [name=label]': 'onItemLabelChange',
45
  'change [name=is_default]': 'onItemDefaultChange',
46
  },
74
  this.model.collection.remove( this.model );
75
  },
76
 
77
+ onItemLabelKeyup: function( e ) {
78
  if ( 'Enter' === e.key ) {
79
  $( '.add-option', this.$el ).click();
80
  return;
82
 
83
  this.model.set( 'label', $( e.target ).val() );
84
  this.part.trigger( 'change' );
85
+ },
86
 
87
+ onItemLabelChange: function( e ) {
88
+ var self = this;
 
 
 
 
 
89
 
90
+ this.part.fetchHtml( function( response ) {
91
+ var data = {
92
+ id: self.part.id,
93
+ html: response,
94
+ };
95
+
96
+ happyForms.previewSend( 'happyforms-form-part-refresh', data );
97
+ } );
98
  },
99
 
100
  onItemDefaultChange: function( e ) {
inc/core/assets/js/preview.js CHANGED
@@ -251,7 +251,7 @@
251
  api.preview.bind( 'happyforms-form-class-update', handlers.formClassUpdate );
252
  api.preview.bind( 'happyforms-form-class-updated', handlers.formClassUpdated );
253
  api.preview.bind( 'happyforms-submit-button-text-update', handlers.submitButtonTextUpdate );
254
- api.preview.bind( 'happyforms-form-recaptcha-update', handlers.recaptchaUpdate )
255
 
256
  // Bind DOM handlers
257
  $( document.body ).on(
251
  api.preview.bind( 'happyforms-form-class-update', handlers.formClassUpdate );
252
  api.preview.bind( 'happyforms-form-class-updated', handlers.formClassUpdated );
253
  api.preview.bind( 'happyforms-submit-button-text-update', handlers.submitButtonTextUpdate );
254
+ api.preview.bind( 'happyforms-form-recaptcha-update', handlers.recaptchaUpdate );
255
 
256
  // Bind DOM handlers
257
  $( document.body ).on(
inc/core/classes/class-form-part-library.php CHANGED
@@ -269,6 +269,7 @@ class HappyForms_Form_Part_Library {
269
 
270
  public function html_part_data_attributes( $attributes, $part_data, $form_data ) {
271
  $attributes['happyforms-type'] = $part_data['type'];
 
272
 
273
  if ( isset( $part_data['required'] ) && 1 === intval( $part_data['required'] ) ) {
274
  $attributes['happyforms-required'] = '';
269
 
270
  public function html_part_data_attributes( $attributes, $part_data, $form_data ) {
271
  $attributes['happyforms-type'] = $part_data['type'];
272
+ $attributes['happyforms-id'] = $part_data['id'];
273
 
274
  if ( isset( $part_data['required'] ) && 1 === intval( $part_data['required'] ) ) {
275
  $attributes['happyforms-required'] = '';
inc/core/classes/class-form-styles.php CHANGED
@@ -104,6 +104,15 @@ class HappyForms_Form_Styles {
104
  'target' => 'css_var',
105
  'variable' => '--happyforms-form-title-font-size'
106
  ),
 
 
 
 
 
 
 
 
 
107
  'part_border' => array(
108
  'default' => '',
109
  'options' => array(
@@ -539,6 +548,11 @@ class HappyForms_Form_Styles {
539
  'label' => __( 'Display notices', 'happyforms' ),
540
  'field' => 'notices_position'
541
  ),
 
 
 
 
 
542
  600 => array(
543
  'type' => 'heading',
544
  'id' => 'colors_general',
104
  'target' => 'css_var',
105
  'variable' => '--happyforms-form-title-font-size'
106
  ),
107
+ 'captcha_theme' => array(
108
+ 'default' => 'light',
109
+ 'options' => array(
110
+ 'light' => __( 'Light color', 'happyforms' ),
111
+ 'dark' => __( 'Dark color', 'happyforms' )
112
+ ),
113
+ 'sanitize' => 'sanitize_text_field',
114
+ 'target' => 'recaptcha'
115
+ ),
116
  'part_border' => array(
117
  'default' => '',
118
  'options' => array(
548
  'label' => __( 'Display notices', 'happyforms' ),
549
  'field' => 'notices_position'
550
  ),
551
+ 511 => array(
552
+ 'type' => 'buttonset',
553
+ 'label' => __( 'Google reCAPTCHA theme', 'happyforms' ),
554
+ 'field' => 'captcha_theme'
555
+ ),
556
  600 => array(
557
  'type' => 'heading',
558
  'id' => 'colors_general',
inc/core/classes/parts/class-part-date.php CHANGED
@@ -321,10 +321,15 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
321
  $hour = sprintf( '%02d', intval( $value['hour'] ) );
322
  $minute = sprintf( '%02d', intval( $value['minute'] ) );
323
  $period = $value['period'];
 
324
 
325
  switch ( $part['date_type'] ) {
326
  case 'date':
327
  $value = "{$month} {$day}, {$year}";
 
 
 
 
328
  break;
329
  case 'time':
330
  $value = "{$hour}:{$minute}";
@@ -334,7 +339,13 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
334
  }
335
  break;
336
  case 'datetime':
337
- $value = "{$month} {$day}, {$year} at {$hour}:{$minute}";
 
 
 
 
 
 
338
 
339
  if ( '12' == $part['time_format'] ) {
340
  $value .= " {$period}";
321
  $hour = sprintf( '%02d', intval( $value['hour'] ) );
322
  $minute = sprintf( '%02d', intval( $value['minute'] ) );
323
  $period = $value['period'];
324
+ $site_date_format = happyforms_get_site_date_format();
325
 
326
  switch ( $part['date_type'] ) {
327
  case 'date':
328
  $value = "{$month} {$day}, {$year}";
329
+
330
+ if ( 'day_first' === $site_date_format ) {
331
+ $value = "{$day} {$month} {$year}";
332
+ }
333
  break;
334
  case 'time':
335
  $value = "{$hour}:{$minute}";
339
  }
340
  break;
341
  case 'datetime':
342
+ $date_part = "{$month} {$day}, {$year}";
343
+
344
+ if ( 'day_first' === $site_date_format ) {
345
+ $date_part = "{$day} {$month} {$year}";
346
+ }
347
+
348
+ $value = $date_part . __( 'at', 'happyforms' ) . " {$hour}:{$minute}";
349
 
350
  if ( '12' == $part['time_format'] ) {
351
  $value .= " {$period}";
inc/core/helpers/helper-customize-templates.php CHANGED
@@ -17,3 +17,19 @@ function happyforms_months_dropdown() {
17
  }
18
 
19
  endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
 
19
  endif;
20
+
21
+ if ( ! function_exists( 'happyforms_customize_logic_template_path' ) ) :
22
+
23
+ function happyforms_customize_part_logic() {
24
+ $template_path = happyforms_get_include_folder() . '/core/templates/customize-form-part-logic.php';
25
+
26
+ $template_path = apply_filters( 'happyforms_customize_part_logic_template_path', $template_path );
27
+
28
+ ob_start();
29
+ require( $template_path );
30
+ $template_html = ob_get_clean();
31
+
32
+ echo $template_html;
33
+ }
34
+
35
+ endif;
inc/core/helpers/helper-form-templates.php CHANGED
@@ -921,7 +921,7 @@ if ( ! function_exists( 'happyforms_recaptcha' ) ) :
921
  function happyforms_recaptcha( $form ) {
922
  $has_captcha = apply_filters( 'happyforms_form_has_captcha', false, $form );
923
  if ( $has_captcha ): ?>
924
- <div class="happyforms-form__part happyforms-part happyforms-part--recaptcha" data-sitekey="<?php echo $form['captcha_site_key']; ?>" data-happyforms-type="recaptcha">
925
  <label for="g-recaptcha-response" class="happyforms-part__label">
926
  <span class="label"><?php echo $form['captcha_label']; ?></span>
927
  </label>
@@ -1568,4 +1568,4 @@ function happyforms_get_part_states( $location = '' ) {
1568
  return $states;
1569
  }
1570
 
1571
- endif;
921
  function happyforms_recaptcha( $form ) {
922
  $has_captcha = apply_filters( 'happyforms_form_has_captcha', false, $form );
923
  if ( $has_captcha ): ?>
924
+ <div class="happyforms-form__part happyforms-part happyforms-part--recaptcha" data-sitekey="<?php echo $form['captcha_site_key']; ?>" data-happyforms-type="recaptcha" data-theme="<?php echo $form['captcha_theme']; ?>">
925
  <label for="g-recaptcha-response" class="happyforms-part__label">
926
  <span class="label"><?php echo $form['captcha_label']; ?></span>
927
  </label>
1568
  return $states;
1569
  }
1570
 
1571
+ endif;
inc/core/helpers/helper-misc.php CHANGED
@@ -869,4 +869,21 @@ function happyforms_get_php_locales( $code = '' ) {
869
  return '';
870
  }
871
 
872
- endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
869
  return '';
870
  }
871
 
872
+ endif;
873
+
874
+ if ( ! function_exists( 'happyforms_customize_part_footer' ) ):
875
+
876
+ function happyforms_customize_part_footer() {
877
+ $template = happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php';
878
+ $template = apply_filters( 'happyforms_part_customize_footer_template_path', $template );
879
+
880
+ $html = '';
881
+
882
+ ob_start();
883
+ require( $template );
884
+ $html = ob_get_clean();
885
+
886
+ echo $html;
887
+ }
888
+
889
+ endif;
inc/core/templates/customize-controls/setup/text.php CHANGED
@@ -1,4 +1,8 @@
1
  <div class="customize-control" id="customize-control-<?php echo $control['field']; ?>">
 
 
2
  <label for="<?php echo $control['field']; ?>" class="customize-control-title"><?php echo $control['label']; ?> <?php if ( isset( $control['tooltip'] ) ) : ?><i class="fa fa-question-circle" aria-hidden="true" data-pointer><span><?php echo $control['tooltip']; ?></span></i><?php endif; ?></label>
3
  <input type="text" id="<?php echo $control['field']; ?>" value="<%= <?php echo $control['field']; ?> %>" data-attribute="<?php echo $control['field']; ?>" data-pointer-target />
 
 
4
  </div>
1
  <div class="customize-control" id="customize-control-<?php echo $control['field']; ?>">
2
+ <?php do_action( "happyforms_setup_control_{$control['field']}_before", $control ); ?>
3
+
4
  <label for="<?php echo $control['field']; ?>" class="customize-control-title"><?php echo $control['label']; ?> <?php if ( isset( $control['tooltip'] ) ) : ?><i class="fa fa-question-circle" aria-hidden="true" data-pointer><span><?php echo $control['tooltip']; ?></span></i><?php endif; ?></label>
5
  <input type="text" id="<?php echo $control['field']; ?>" value="<%= <?php echo $control['field']; ?> %>" data-attribute="<?php echo $control['field']; ?>" data-pointer-target />
6
+
7
+ <?php do_action( "happyforms_setup_control_{$control['field']}_after", $control ); ?>
8
  </div>
inc/core/templates/customize-form-part-footer.php CHANGED
@@ -1,9 +1,9 @@
1
  </div>
2
  <div class="happyforms-widget-actions">
3
  <a href="#" class="happyforms-form-part-remove"><?php _e( 'Delete', 'happyforms' ); ?></a> |
4
- <a href="#" class="happyforms-form-part-duplicate"><?php _e( 'Duplicate', 'happyforms' ); ?></a> |
5
- <a href="#" class="happyforms-form-part-close"><?php _e( 'Done', 'happyforms' ); ?></a>
6
- <a href="#" class="happyforms-form-part-advanced-settings"><?php _e( 'Advanced', 'happyforms' ); ?></a>
7
  </div>
8
  </div>
9
- </div>
1
  </div>
2
  <div class="happyforms-widget-actions">
3
  <a href="#" class="happyforms-form-part-remove"><?php _e( 'Delete', 'happyforms' ); ?></a> |
4
+ <a href="#" class="happyforms-form-part-duplicate"><?php _e( 'Duplicate', 'happyforms' ); ?></a>
5
+ <a href="#" class="happyforms-form-part-advanced-settings"><?php _e( 'More', 'happyforms' ); ?></a>
6
+ <a href="#" class="happyforms-form-part-logic"><?php _e( 'Logic', 'happyforms' ); ?></a>
7
  </div>
8
  </div>
9
+ </div>
inc/core/templates/customize-form-part-logic.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <div class="no-parts no-parts--show no-parts--small">
2
+ <h3><?php _e( 'Logic', 'happyforms' ); ?></h3>
3
+
4
+ <p class="description"><a href="https://happyforms.me/upgrade" target="_blank" class="external"><?php _e( 'Upgrade to add logic rule', 'happyforms' ); ?></a></p>
5
+ </div>
inc/core/templates/customize-form-setup-logic.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <div class="happyforms-setup-logic-wrap">
2
+ <div class="happyforms-logic-view">
3
+ <a href="https://happyforms.me/upgrade" class="external" target="_blank"><?php _e( 'Upgrade to add logic rule', 'happyforms' ); ?></a>
4
+ </div>
5
+ </div>
inc/core/templates/parts/customize-address.php CHANGED
@@ -99,5 +99,12 @@
99
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
100
  </p>
101
  </div>
102
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
103
  </script>
99
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
100
  </p>
101
  </div>
102
+
103
+ <div class="happyforms-part-logic-wrap">
104
+ <div class="happyforms-logic-view">
105
+ <?php happyforms_customize_part_logic(); ?>
106
+ </div>
107
+ </div>
108
+
109
+ <?php happyforms_customize_part_footer(); ?>
110
  </script>
inc/core/templates/parts/customize-checkbox.php CHANGED
@@ -35,7 +35,7 @@
35
  <div class="options">
36
  <ul class="option-list"></ul>
37
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
38
- <p class="no-options"><?php _e( 'No options added yet. Add one by clicking <i>Add Option</i> below.', 'happyforms' ); ?></p>
39
  </div>
40
  <div class="options-import">
41
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
@@ -98,7 +98,14 @@
98
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
99
  </p>
100
  </div>
101
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
102
  </script>
103
  <script type="text/template" id="customize-happyforms-checkbox-item-template">
104
  <li data-option-id="<%= id %>">
35
  <div class="options">
36
  <ul class="option-list"></ul>
37
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
38
+ <p class="no-options description"><?php _e( 'No options added yet. Add one by clicking <i>Add Option</i> below.', 'happyforms' ); ?></p>
39
  </div>
40
  <div class="options-import">
41
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
98
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
99
  </p>
100
  </div>
101
+
102
+ <div class="happyforms-part-logic-wrap">
103
+ <div class="happyforms-logic-view">
104
+ <?php happyforms_customize_part_logic(); ?>
105
+ </div>
106
+ </div>
107
+
108
+ <?php happyforms_customize_part_footer(); ?>
109
  </script>
110
  <script type="text/template" id="customize-happyforms-checkbox-item-template">
111
  <li data-option-id="<%= id %>">
inc/core/templates/parts/customize-date.php CHANGED
@@ -129,5 +129,12 @@
129
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
130
  </p>
131
  </div>
132
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
133
  </script>
129
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
130
  </p>
131
  </div>
132
+
133
+ <div class="happyforms-part-logic-wrap">
134
+ <div class="happyforms-logic-view">
135
+ <?php happyforms_customize_part_logic(); ?>
136
+ </div>
137
+ </div>
138
+
139
+ <?php happyforms_customize_part_footer(); ?>
140
  </script>
inc/core/templates/parts/customize-email.php CHANGED
@@ -85,5 +85,12 @@
85
 
86
  <?php do_action( 'happyforms_part_customize_email_after_advanced_options' ); ?>
87
  </div>
88
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
89
  </script>
85
 
86
  <?php do_action( 'happyforms_part_customize_email_after_advanced_options' ); ?>
87
  </div>
88
+
89
+ <div class="happyforms-part-logic-wrap">
90
+ <div class="happyforms-logic-view">
91
+ <?php happyforms_customize_part_logic(); ?>
92
+ </div>
93
+ </div>
94
+
95
+ <?php happyforms_customize_part_footer(); ?>
96
  </script>
inc/core/templates/parts/customize-legal.php CHANGED
@@ -28,5 +28,12 @@
28
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
29
  </p>
30
  </div>
31
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
32
  </script>
28
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
29
  </p>
30
  </div>
31
+
32
+ <div class="happyforms-part-logic-wrap">
33
+ <div class="happyforms-logic-view">
34
+ <?php happyforms_customize_part_logic(); ?>
35
+ </div>
36
+ </div>
37
+
38
+ <?php happyforms_customize_part_footer(); ?>
39
  </script>
inc/core/templates/parts/customize-multi-line-text.php CHANGED
@@ -84,5 +84,12 @@
84
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
85
  </p>
86
  </div>
87
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
88
  </script>
84
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
85
  </p>
86
  </div>
87
+
88
+ <div class="happyforms-part-logic-wrap">
89
+ <div class="happyforms-logic-view">
90
+ <?php happyforms_customize_part_logic(); ?>
91
+ </div>
92
+ </div>
93
+
94
+ <?php happyforms_customize_part_footer(); ?>
95
  </script>
inc/core/templates/parts/customize-narrative.php CHANGED
@@ -24,7 +24,7 @@
24
  <p>
25
  <label for="<%= instance.id %>_format"><?php _e( 'Text', 'happyforms' ); ?></label>
26
  <textarea id="<%= instance.id %>_format" data-bind="format"><%= instance.format %></textarea>
27
- <span class="description"><?php _e( 'Text between brackets is turned into input placeholders.', 'happyforms-upgrade' ); ?></span>
28
  </p>
29
  <p>
30
  <label>
@@ -59,5 +59,12 @@
59
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
60
  </p>
61
  </div>
62
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
63
  </script>
24
  <p>
25
  <label for="<%= instance.id %>_format"><?php _e( 'Text', 'happyforms' ); ?></label>
26
  <textarea id="<%= instance.id %>_format" data-bind="format"><%= instance.format %></textarea>
27
+ <p class="description"><?php _e( 'Text between brackets is turned into input placeholders.', 'happyforms-upgrade' ); ?></p>
28
  </p>
29
  <p>
30
  <label>
59
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
60
  </p>
61
  </div>
62
+
63
+ <div class="happyforms-part-logic-wrap">
64
+ <div class="happyforms-logic-view">
65
+ <?php happyforms_customize_part_logic(); ?>
66
+ </div>
67
+ </div>
68
+
69
+ <?php happyforms_customize_part_footer(); ?>
70
  </script>
inc/core/templates/parts/customize-number.php CHANGED
@@ -111,5 +111,12 @@
111
 
112
  <?php do_action( 'happyforms_part_customize_number_after_advanced_options' ); ?>
113
  </div>
114
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
115
  </script>
111
 
112
  <?php do_action( 'happyforms_part_customize_number_after_advanced_options' ); ?>
113
  </div>
114
+
115
+ <div class="happyforms-part-logic-wrap">
116
+ <div class="happyforms-logic-view">
117
+ <?php happyforms_customize_part_logic(); ?>
118
+ </div>
119
+ </div>
120
+
121
+ <?php happyforms_customize_part_footer(); ?>
122
  </script>
inc/core/templates/parts/customize-phone.php CHANGED
@@ -103,5 +103,12 @@
103
 
104
  <?php do_action( 'happyforms_part_customize_phone_after_advanced_options' ); ?>
105
  </div>
106
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
107
  </script>
103
 
104
  <?php do_action( 'happyforms_part_customize_phone_after_advanced_options' ); ?>
105
  </div>
106
+
107
+ <div class="happyforms-part-logic-wrap">
108
+ <div class="happyforms-logic-view">
109
+ <?php happyforms_customize_part_logic(); ?>
110
+ </div>
111
+ </div>
112
+
113
+ <?php happyforms_customize_part_footer(); ?>
114
  </script>
inc/core/templates/parts/customize-placeholder.php CHANGED
@@ -19,17 +19,17 @@
19
  </label>
20
  </p>
21
 
22
- <?php do_action( 'happyforms_customize_placeholder_before_options' ); ?>
23
 
24
  <p>
25
  <label for="<%= instance.id %>_placeholder_text"><?php _e( 'Text', 'happyforms' ); ?></label>
26
  <textarea id="<%= instance.id %>_placeholder_text" class="widefat title" name="placeholder_text" data-bind="placeholder_text"><%= instance.placeholder_text %></textarea>
27
  </p>
28
 
29
- <?php do_action( 'happyforms_customize_placeholder_after_options' ); ?>
30
 
31
  <div class="happyforms-part-advanced-settings-wrap">
32
- <?php do_action( 'happyforms_customize_placeholder_before_advanced_options' ); ?>
33
 
34
  <p>
35
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
@@ -46,12 +46,19 @@
46
  </label>
47
  </p>
48
 
49
- <?php do_action( 'happyforms_customize_placeholder_after_advanced_options' ); ?>
50
 
51
  <p>
52
  <label for="<%= instance.id %>_css_class"><?php _e( 'Custom CSS class', 'happyforms' ); ?></label>
53
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
54
  </p>
55
  </div>
56
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
57
- </script>
 
 
 
 
 
 
 
19
  </label>
20
  </p>
21
 
22
+ <?php do_action( 'happyforms_part_customize_placeholder_before_options' ); ?>
23
 
24
  <p>
25
  <label for="<%= instance.id %>_placeholder_text"><?php _e( 'Text', 'happyforms' ); ?></label>
26
  <textarea id="<%= instance.id %>_placeholder_text" class="widefat title" name="placeholder_text" data-bind="placeholder_text"><%= instance.placeholder_text %></textarea>
27
  </p>
28
 
29
+ <?php do_action( 'happyforms_part_customize_placeholder_after_options' ); ?>
30
 
31
  <div class="happyforms-part-advanced-settings-wrap">
32
+ <?php do_action( 'happyforms_part_customize_placeholder_before_advanced_options' ); ?>
33
 
34
  <p>
35
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
46
  </label>
47
  </p>
48
 
49
+ <?php do_action( 'happyforms_part_customize_placeholder_after_advanced_options' ); ?>
50
 
51
  <p>
52
  <label for="<%= instance.id %>_css_class"><?php _e( 'Custom CSS class', 'happyforms' ); ?></label>
53
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
54
  </p>
55
  </div>
56
+
57
+ <div class="happyforms-part-logic-wrap">
58
+ <div class="happyforms-logic-view">
59
+ <?php happyforms_customize_part_logic(); ?>
60
+ </div>
61
+ </div>
62
+
63
+ <?php happyforms_customize_part_footer(); ?>
64
+ </script>
inc/core/templates/parts/customize-radio.php CHANGED
@@ -35,7 +35,7 @@
35
  <div class="options">
36
  <ul class="option-list"></ul>
37
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
38
- <p class="no-options"><?php _e( 'No options added yet. Add one by clicking <i>Add Option</i> below.', 'happyforms' ); ?></p>
39
  </div>
40
  <div class="options-import">
41
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
@@ -92,7 +92,14 @@
92
 
93
  <?php do_action( 'happyforms_part_customize_radio_after_advanced_options' ); ?>
94
  </div>
95
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
96
  </script>
97
  <script type="text/template" id="customize-happyforms-radio-item-template">
98
  <li data-option-id="<%= id %>">
35
  <div class="options">
36
  <ul class="option-list"></ul>
37
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
38
+ <p class="no-options description"><?php _e( 'No options added yet. Add one by clicking <i>Add Option</i> below.', 'happyforms' ); ?></p>
39
  </div>
40
  <div class="options-import">
41
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
92
 
93
  <?php do_action( 'happyforms_part_customize_radio_after_advanced_options' ); ?>
94
  </div>
95
+
96
+ <div class="happyforms-part-logic-wrap">
97
+ <div class="happyforms-logic-view">
98
+ <?php happyforms_customize_part_logic(); ?>
99
+ </div>
100
+ </div>
101
+
102
+ <?php happyforms_customize_part_footer(); ?>
103
  </script>
104
  <script type="text/template" id="customize-happyforms-radio-item-template">
105
  <li data-option-id="<%= id %>">
inc/core/templates/parts/customize-rating.php CHANGED
@@ -100,5 +100,12 @@
100
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
101
  </p>
102
  </div>
103
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
104
  </script>
100
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
101
  </p>
102
  </div>
103
+
104
+ <div class="happyforms-part-logic-wrap">
105
+ <div class="happyforms-logic-view">
106
+ <?php happyforms_customize_part_logic(); ?>
107
+ </div>
108
+ </div>
109
+
110
+ <?php happyforms_customize_part_footer(); ?>
111
  </script>
inc/core/templates/parts/customize-rich-text.php CHANGED
@@ -77,5 +77,12 @@
77
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
78
  </p>
79
  </div>
80
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
81
  </script>
77
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
78
  </p>
79
  </div>
80
+
81
+ <div class="happyforms-part-logic-wrap">
82
+ <div class="happyforms-logic-view">
83
+ <?php happyforms_customize_part_logic(); ?>
84
+ </div>
85
+ </div>
86
+
87
+ <?php happyforms_customize_part_footer(); ?>
88
  </script>
inc/core/templates/parts/customize-scale.php CHANGED
@@ -112,5 +112,12 @@
112
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
113
  </p>
114
  </div>
115
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
116
  </script>
112
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
113
  </p>
114
  </div>
115
+
116
+ <div class="happyforms-part-logic-wrap">
117
+ <div class="happyforms-logic-view">
118
+ <?php happyforms_customize_part_logic(); ?>
119
+ </div>
120
+ </div>
121
+
122
+ <?php happyforms_customize_part_footer(); ?>
123
  </script>
inc/core/templates/parts/customize-select.php CHANGED
@@ -40,7 +40,7 @@
40
  <div class="options">
41
  <ul class="option-list"></ul>
42
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
43
- <p class="no-options"><?php _e( 'No options added yet. Add one by clicking <i>Add Option</i> below.', 'happyforms' ); ?></p>
44
  </div>
45
  <div class="options-import">
46
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
@@ -96,7 +96,14 @@
96
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
97
  </p>
98
  </div>
99
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
100
  </script>
101
  <script type="text/template" id="customize-happyforms-select-item-template">
102
  <li data-option-id="<%= id %>">
40
  <div class="options">
41
  <ul class="option-list"></ul>
42
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
43
+ <p class="no-options description"><?php _e( 'No options added yet. Add one by clicking <i>Add Option</i> below.', 'happyforms' ); ?></p>
44
  </div>
45
  <div class="options-import">
46
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
96
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
97
  </p>
98
  </div>
99
+
100
+ <div class="happyforms-part-logic-wrap">
101
+ <div class="happyforms-logic-view">
102
+ <?php happyforms_customize_part_logic(); ?>
103
+ </div>
104
+ </div>
105
+
106
+ <?php happyforms_customize_part_footer(); ?>
107
  </script>
108
  <script type="text/template" id="customize-happyforms-select-item-template">
109
  <li data-option-id="<%= id %>">
inc/core/templates/parts/customize-single-line-text.php CHANGED
@@ -77,5 +77,12 @@
77
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
78
  </p>
79
  </div>
80
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
81
  </script>
77
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
78
  </p>
79
  </div>
80
+
81
+ <div class="happyforms-part-logic-wrap">
82
+ <div class="happyforms-logic-view">
83
+ <?php happyforms_customize_part_logic(); ?>
84
+ </div>
85
+ </div>
86
+
87
+ <?php happyforms_customize_part_footer(); ?>
88
  </script>
inc/core/templates/parts/customize-table.php CHANGED
@@ -46,7 +46,7 @@
46
  <div class="options columns">
47
  <ul class="column-list"></ul>
48
  <h3><?php _e( 'Columns', 'happyforms' ); ?></h3>
49
- <p class="no-options"><?php _e( 'No columns added yet. Add one by clicking <i>Add Column</i> below.', 'happyforms' ); ?></p>
50
  </div>
51
  <p class="links">
52
  <a href="#" class="button add-column"><?php _e( 'Add column', 'happyforms' ); ?></a>
@@ -56,7 +56,7 @@
56
  <div class="options rows">
57
  <ul class="row-list"></ul>
58
  <h3><?php _e( 'Rows', 'happyforms' ); ?></h3>
59
- <p class="no-options"><?php _e( 'No rows added yet. Add one by clicking <i>Add Row</i> below.', 'happyforms' ); ?></p>
60
  </div>
61
  <div class="options-import">
62
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
@@ -108,7 +108,14 @@
108
 
109
  <?php do_action( 'happyforms_part_customize_table_after_advanced_options' ); ?>
110
  </div>
111
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
112
  </script>
113
  <script type="text/template" id="customize-happyforms-table-column-template">
114
  <li data-column-id="<%= id %>">
46
  <div class="options columns">
47
  <ul class="column-list"></ul>
48
  <h3><?php _e( 'Columns', 'happyforms' ); ?></h3>
49
+ <p class="no-options description"><?php _e( 'No columns added yet. Add one by clicking <i>Add Column</i> below.', 'happyforms' ); ?></p>
50
  </div>
51
  <p class="links">
52
  <a href="#" class="button add-column"><?php _e( 'Add column', 'happyforms' ); ?></a>
56
  <div class="options rows">
57
  <ul class="row-list"></ul>
58
  <h3><?php _e( 'Rows', 'happyforms' ); ?></h3>
59
+ <p class="no-options description"><?php _e( 'No rows added yet. Add one by clicking <i>Add Row</i> below.', 'happyforms' ); ?></p>
60
  </div>
61
  <div class="options-import">
62
  <h3><?php _e( 'Options', 'happyforms' ); ?></h3>
108
 
109
  <?php do_action( 'happyforms_part_customize_table_after_advanced_options' ); ?>
110
  </div>
111
+
112
+ <div class="happyforms-part-logic-wrap">
113
+ <div class="happyforms-logic-view">
114
+ <?php happyforms_customize_part_logic(); ?>
115
+ </div>
116
+ </div>
117
+
118
+ <?php happyforms_customize_part_footer(); ?>
119
  </script>
120
  <script type="text/template" id="customize-happyforms-table-column-template">
121
  <li data-column-id="<%= id %>">
inc/core/templates/parts/customize-title.php CHANGED
@@ -70,5 +70,12 @@
70
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
71
  </p>
72
  </div>
73
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
74
  </script>
70
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
71
  </p>
72
  </div>
73
+
74
+ <div class="happyforms-part-logic-wrap">
75
+ <div class="happyforms-logic-view">
76
+ <?php happyforms_customize_part_logic(); ?>
77
+ </div>
78
+ </div>
79
+
80
+ <?php happyforms_customize_part_footer(); ?>
81
  </script>
inc/core/templates/parts/customize-website-url.php CHANGED
@@ -72,5 +72,12 @@
72
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
73
  </p>
74
  </div>
75
- <?php include( happyforms_get_include_folder() . '/core/templates/customize-form-part-footer.php' ); ?>
 
 
 
 
 
 
 
76
  </script>
72
  <input type="text" id="<%= instance.id %>_css_class" class="widefat title" value="<%= instance.css_class %>" data-bind="css_class" />
73
  </p>
74
  </div>
75
+
76
+ <div class="happyforms-part-logic-wrap">
77
+ <div class="happyforms-logic-view">
78
+ <?php happyforms_customize_part_logic(); ?>
79
+ </div>
80
+ </div>
81
+
82
+ <?php happyforms_customize_part_footer(); ?>
83
  </script>
inc/core/templates/parts/frontend-address.php CHANGED
@@ -10,7 +10,7 @@
10
  <?php if ( 'simple' === $part['mode'] ) : ?>
11
  <div class="happyforms-part-el-wrap">
12
  <div class="happyforms-part__dummy-input">
13
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[full]" class="address-full" type="text" value="<?php happyforms_the_part_value( $part, $form, 'full' ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 'full' ); ?> />
14
  <?php happyforms_geolocation_link( $part ); ?>
15
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
16
  <?php happyforms_the_part_label( $part, $form ); ?>
@@ -22,12 +22,12 @@
22
  <div class="happyforms-part__dummy-input">
23
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[full]" value="<?php happyforms_the_part_value( $part, $form, 'full' ); ?>" data-serialize />
24
 
25
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_id( $part, $form ); ?>_full_dummy_<?php echo time(); ?>" class="happyforms-part--address__autocomplete address-full" type="text" value="<?php happyforms_the_part_value( $part, $form, 'full' ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> autocomplete="none" <?php happyforms_the_part_attributes( $part, $form, 'full' ); ?> />
26
  <?php happyforms_geolocation_link( $part ); ?>
27
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
28
  <?php happyforms_the_part_label( $part, $form ); ?>
29
  <?php endif; ?>
30
-
31
  <?php happyforms_select( array(), $part, $form ); ?>
32
  </div>
33
  </div>
@@ -36,7 +36,7 @@
36
  <div class="happyforms-part__dummy-input">
37
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" data-serialize />
38
 
39
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_id( $part, $form ); ?>_country_dummy_<?php echo time(); ?>" class="happyforms-part--address__autocomplete address-country" type="text" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" placeholder="<?php _e( 'Country', 'happyforms' ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> autocomplete="off" <?php happyforms_the_part_attributes( $part, $form, 'country' ); ?> />
40
  <?php happyforms_geolocation_link( $part ); ?>
41
 
42
  <?php happyforms_select( array(), $part, $form ); ?>
@@ -51,7 +51,7 @@
51
  <div class="happyforms-part__dummy-input">
52
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" data-serialize />
53
 
54
- <input id ="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>_country_dummy_<?php echo time(); ?>" class="happyforms-part--address__autocomplete address-country" type="text" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" placeholder="<?php _e( 'Country', 'happyforms' ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> autocomplete="off" <?php happyforms_the_part_attributes( $part, $form, 'country' ); ?> />
55
  <?php happyforms_geolocation_link( $part ); ?>
56
 
57
  <?php happyforms_select( array(), $part, $form ); ?>
@@ -60,8 +60,8 @@
60
  <?php happyforms_the_part_label( $part, $form ); ?>
61
  <?php endif; ?>
62
  </div>
63
-
64
- <input name="<?php happyforms_the_part_name( $part, $form ); ?>[city]" class="address-city" type="text" value="<?php happyforms_the_part_value( $part, $form, 'city' ); ?>" placeholder="<?php _e( 'City', 'happyforms' ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 'city' ); ?> />
65
  </div>
66
  <?php endif; ?>
67
 
10
  <?php if ( 'simple' === $part['mode'] ) : ?>
11
  <div class="happyforms-part-el-wrap">
12
  <div class="happyforms-part__dummy-input">
13
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[full]" class="address-full" type="text" value="<?php happyforms_the_part_value( $part, $form, 'full' ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 'full' ); ?> />
14
  <?php happyforms_geolocation_link( $part ); ?>
15
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
16
  <?php happyforms_the_part_label( $part, $form ); ?>
22
  <div class="happyforms-part__dummy-input">
23
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[full]" value="<?php happyforms_the_part_value( $part, $form, 'full' ); ?>" data-serialize />
24
 
25
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_id( $part, $form ); ?>_full_dummy_<?php echo time(); ?>" class="happyforms-part--address__autocomplete address-full" type="text" value="<?php happyforms_the_part_value( $part, $form, 'full' ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" autocomplete="none" <?php happyforms_the_part_attributes( $part, $form, 'full' ); ?> />
26
  <?php happyforms_geolocation_link( $part ); ?>
27
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
28
  <?php happyforms_the_part_label( $part, $form ); ?>
29
  <?php endif; ?>
30
+
31
  <?php happyforms_select( array(), $part, $form ); ?>
32
  </div>
33
  </div>
36
  <div class="happyforms-part__dummy-input">
37
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" data-serialize />
38
 
39
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_id( $part, $form ); ?>_country_dummy_<?php echo time(); ?>" class="happyforms-part--address__autocomplete address-country" type="text" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" placeholder="<?php _e( 'Country', 'happyforms' ); ?>" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form, 'country' ); ?> />
40
  <?php happyforms_geolocation_link( $part ); ?>
41
 
42
  <?php happyforms_select( array(), $part, $form ); ?>
51
  <div class="happyforms-part__dummy-input">
52
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" data-serialize />
53
 
54
+ <input id ="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>_country_dummy_<?php echo time(); ?>" class="happyforms-part--address__autocomplete address-country" type="text" value="<?php happyforms_the_part_value( $part, $form, 'country' ); ?>" placeholder="<?php _e( 'Country', 'happyforms' ); ?>" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form, 'country' ); ?> />
55
  <?php happyforms_geolocation_link( $part ); ?>
56
 
57
  <?php happyforms_select( array(), $part, $form ); ?>
60
  <?php happyforms_the_part_label( $part, $form ); ?>
61
  <?php endif; ?>
62
  </div>
63
+
64
+ <input name="<?php happyforms_the_part_name( $part, $form ); ?>[city]" class="address-city" type="text" value="<?php happyforms_the_part_value( $part, $form, 'city' ); ?>" placeholder="<?php _e( 'City', 'happyforms' ); ?>" <?php happyforms_the_part_attributes( $part, $form, 'city' ); ?> />
65
  </div>
66
  <?php endif; ?>
67
 
inc/core/templates/parts/frontend-date-day.php CHANGED
@@ -14,7 +14,7 @@ if ( '' === $day_value && 'current' === $part['default_datetime'] ) {
14
 
15
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[day]" value="<?php echo $day_value; ?>" data-serialize />
16
 
17
- <input type="text" value="<?php echo $day_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
18
 
19
  <?php
20
  $options = array();
14
 
15
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[day]" value="<?php echo $day_value; ?>" data-serialize />
16
 
17
+ <input type="text" value="<?php echo $day_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form ); ?> />
18
 
19
  <?php
20
  $options = array();
inc/core/templates/parts/frontend-date-month.php CHANGED
@@ -16,7 +16,7 @@ if ( '' === $month_value && 'current' === $part['default_datetime'] ) {
16
 
17
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[month]" value="<?php echo $month_value; ?>" data-serialize />
18
 
19
- <input type="text" value="<?php echo ( $month_value ) ? $months[$month_value] : ''; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
20
 
21
  <?php
22
  $options = array();
16
 
17
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[month]" value="<?php echo $month_value; ?>" data-serialize />
18
 
19
+ <input type="text" value="<?php echo ( $month_value ) ? $months[$month_value] : ''; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form ); ?> />
20
 
21
  <?php
22
  $options = array();
inc/core/templates/parts/frontend-date.php CHANGED
@@ -36,7 +36,7 @@
36
 
37
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[year]" value="<?php echo $year_value; ?>" data-serialize />
38
 
39
- <input type="text" value="<?php echo $year_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
40
 
41
  <?php
42
  $order = ( isset( $part['years_order'] ) ) ? $part['years_order'] : 'desc';
@@ -87,7 +87,7 @@
87
  }
88
  ?>
89
  <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--hours">
90
- <input type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[hour]" min="<?php echo $part['min_hour']; ?>" max="<?php echo $part['max_hour']; ?>" maxlength="2" pattern="<?php echo $hour_pattern; ?>" autocomplete="off" value="<?php echo $hour_value; ?>"<?php if ( 1 == $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
91
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--up"></span>
92
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--down"></span>
93
  </div>
@@ -104,7 +104,7 @@
104
  }
105
  ?>
106
  <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--minutes">
107
- <input type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[minute]" min="0" max="59" step="<?php echo $part['minute_step']; ?>" maxlength="2" pattern="([0-5][0-9])" autocomplete="off" value="<?php echo $minute_value; ?>"<?php if ( 1 == $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
108
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--up"></span>
109
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--down"></span>
110
  </div>
@@ -120,7 +120,7 @@
120
 
121
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[period]" value="<?php echo $period_value; ?>" data-serialize />
122
 
123
- <input type="text" value="<?php echo $period_value_label; ?>" placeholder="<?php echo $placeholder_text; ?>" data-default-label="<?php echo $period_value_label; ?>" data-default-value="<?php echo $period_value_label; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
124
 
125
  <?php
126
  $options = array(
36
 
37
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[year]" value="<?php echo $year_value; ?>" data-serialize />
38
 
39
+ <input type="text" value="<?php echo $year_value; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form ); ?> />
40
 
41
  <?php
42
  $order = ( isset( $part['years_order'] ) ) ? $part['years_order'] : 'desc';
87
  }
88
  ?>
89
  <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--hours">
90
+ <input type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[hour]" min="<?php echo $part['min_hour']; ?>" max="<?php echo $part['max_hour']; ?>" maxlength="2" pattern="<?php echo $hour_pattern; ?>" autocomplete="off" value="<?php echo $hour_value; ?>" <?php happyforms_the_part_attributes( $part, $form ); ?>>
91
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--up"></span>
92
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--down"></span>
93
  </div>
104
  }
105
  ?>
106
  <div class="happyforms-part--date__input-wrap happyforms-part-date__time-input happyforms-part-date__time-input--minutes">
107
+ <input type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[minute]" min="0" max="59" step="<?php echo $part['minute_step']; ?>" maxlength="2" pattern="([0-5][0-9])" autocomplete="off" value="<?php echo $minute_value; ?>" <?php happyforms_the_part_attributes( $part, $form ); ?>>
108
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--up"></span>
109
  <span class="happyforms-spinner-arrow happyforms-spinner-arrow--down"></span>
110
  </div>
120
 
121
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[period]" value="<?php echo $period_value; ?>" data-serialize />
122
 
123
+ <input type="text" value="<?php echo $period_value_label; ?>" placeholder="<?php echo $placeholder_text; ?>" data-default-label="<?php echo $period_value_label; ?>" data-default-value="<?php echo $period_value_label; ?>" <?php happyforms_the_part_attributes( $part, $form ); ?> />
124
 
125
  <?php
126
  $options = array(
inc/core/templates/parts/frontend-email.php CHANGED
@@ -10,15 +10,15 @@
10
  <?php if ( 1 == $part['autocomplete_domains'] ) : ?>
11
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" data-serialize />
12
 
13
- <input type="email" name="<?php happyforms_the_part_id( $part, $form ); ?>_dummy_<?php echo time(); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" autocomplete="none" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 == $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
14
  <?php else: ?>
15
- <input type="email" name="<?php happyforms_the_part_name( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 == $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
16
  <?php endif; ?>
17
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
18
  <?php happyforms_the_part_label( $part, $form ); ?>
19
  <?php endif; ?>
20
-
21
- <?php
22
  if ( 1 == $part['autocomplete_domains'] ) {
23
  happyforms_select( array(), $part, $form );
24
  }
@@ -35,21 +35,21 @@
35
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
36
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
37
  <?php endif; ?>
38
-
39
  <div class="happyforms-part__el">
40
  <?php if ( 1 == $part['autocomplete_domains'] ) : ?>
41
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" data-serialize />
42
 
43
- <input type="email" name="<?php happyforms_the_part_id( $part, $form ); ?>_dummy_<?php echo time(); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" autocomplete="none" <?php if ( 1 == $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
44
  <?php else: ?>
45
- <input type="email" id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" class="happyforms-confirmation-input" data-confirmation-of="<?php echo esc_attr( $part['id'] ); ?>" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
46
  <?php endif; ?>
47
 
48
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
49
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
50
  <?php endif; ?>
51
-
52
- <?php
53
  if ( 1 == $part['autocomplete_domains'] ) {
54
  happyforms_select( array(), $part, $form );
55
  }
10
  <?php if ( 1 == $part['autocomplete_domains'] ) : ?>
11
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" data-serialize />
12
 
13
+ <input type="email" name="<?php happyforms_the_part_id( $part, $form ); ?>_dummy_<?php echo time(); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" autocomplete="none" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
14
  <?php else: ?>
15
+ <input type="email" name="<?php happyforms_the_part_name( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
16
  <?php endif; ?>
17
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
18
  <?php happyforms_the_part_label( $part, $form ); ?>
19
  <?php endif; ?>
20
+
21
+ <?php
22
  if ( 1 == $part['autocomplete_domains'] ) {
23
  happyforms_select( array(), $part, $form );
24
  }
35
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
36
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
37
  <?php endif; ?>
38
+
39
  <div class="happyforms-part__el">
40
  <?php if ( 1 == $part['autocomplete_domains'] ) : ?>
41
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" data-serialize />
42
 
43
+ <input type="email" name="<?php happyforms_the_part_id( $part, $form ); ?>_dummy_<?php echo time(); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" autocomplete="none" <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
44
  <?php else: ?>
45
+ <input type="email" id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" class="happyforms-confirmation-input" data-confirmation-of="<?php echo esc_attr( $part['id'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
46
  <?php endif; ?>
47
 
48
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
49
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
50
  <?php endif; ?>
51
+
52
+ <?php
53
  if ( 1 == $part['autocomplete_domains'] ) {
54
  happyforms_select( array(), $part, $form );
55
  }
inc/core/templates/parts/frontend-legal.php CHANGED
@@ -4,7 +4,7 @@
4
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
5
 
6
  <label class="option-label">
7
- <input type="checkbox" class="happyforms-visuallyhidden" id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="yes" required aria-required="true" <?php checked( happyforms_get_part_value( $part, $form ), 'yes' ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
8
  <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
9
  <span class="label"><?php echo html_entity_decode( $part['legal_text'] ); ?></span>
10
  </label>
4
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
5
 
6
  <label class="option-label">
7
+ <input type="checkbox" class="happyforms-visuallyhidden" id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="yes" <?php checked( happyforms_get_part_value( $part, $form ), 'yes' ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
8
  <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
9
  <span class="label"><?php echo html_entity_decode( $part['legal_text'] ); ?></span>
10
  </label>
inc/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="5" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?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; ?>
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="5" 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; ?>
inc/core/templates/parts/frontend-narrative.php CHANGED
@@ -14,7 +14,7 @@
14
 
15
  foreach ( $tokens as $t => $placeholder ) {
16
  ob_start(); ?>
17
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" <?php if ( ! empty( $placeholder ) ) : ?>placeholder="<?php echo esc_html( $placeholder ); ?>" <?php endif; ?> value="<?php happyforms_the_part_value( $part, $form, $t ); ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, $t ); ?> /><?php
18
  $input = ob_get_clean();
19
  $inputs[$t] = $input;
20
  }
14
 
15
  foreach ( $tokens as $t => $placeholder ) {
16
  ob_start(); ?>
17
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" <?php if ( ! empty( $placeholder ) ) : ?>placeholder="<?php echo esc_html( $placeholder ); ?>" <?php endif; ?> value="<?php happyforms_the_part_value( $part, $form, $t ); ?>" <?php happyforms_the_part_attributes( $part, $form, $t ); ?> /><?php
18
  $input = ob_get_clean();
19
  $inputs[$t] = $input;
20
  }
inc/core/templates/parts/frontend-number.php CHANGED
@@ -3,14 +3,14 @@
3
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
-
7
  <div class="happyforms-part__el">
8
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
9
 
10
  <?php if ( ! $part['masked'] ) : ?>
11
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="number" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" 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'] ); ?>" value="<?php echo esc_attr( $part['min_value'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
12
  <?php else: ?>
13
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" class="happyforms-masked-input" type="text" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
14
  <?php endif; ?>
15
 
16
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
@@ -30,9 +30,9 @@
30
 
31
  <div class="happyforms-part__el">
32
  <?php if ( ! $part['masked'] ) : ?>
33
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" class="happyforms-confirmation-input" type="number" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" min="<?php echo esc_attr( $part['min_value'] ); ?>" max="<?php echo esc_attr( $part['max_value'] ); ?>" value="<?php echo esc_attr( $part['min_value'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
34
  <?php else: ?>
35
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" class="happyforms-masked-input happyforms-confirmation-input" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
36
  <?php endif; ?>
37
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
38
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
3
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
+
7
  <div class="happyforms-part__el">
8
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
9
 
10
  <?php if ( ! $part['masked'] ) : ?>
11
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="number" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" 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'] ); ?>" value="<?php echo esc_attr( $part['min_value'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
12
  <?php else: ?>
13
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" class="happyforms-masked-input" type="text" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
14
  <?php endif; ?>
15
 
16
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
30
 
31
  <div class="happyforms-part__el">
32
  <?php if ( ! $part['masked'] ) : ?>
33
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" class="happyforms-confirmation-input" type="number" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" min="<?php echo esc_attr( $part['min_value'] ); ?>" max="<?php echo esc_attr( $part['max_value'] ); ?>" value="<?php echo esc_attr( $part['min_value'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
34
  <?php else: ?>
35
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" class="happyforms-masked-input happyforms-confirmation-input" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>_confirmation" value="<?php happyforms_the_part_value( $part, $form, 1 ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
36
  <?php endif; ?>
37
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
38
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
inc/core/templates/parts/frontend-phone.php CHANGED
@@ -33,7 +33,7 @@
33
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" class="happyforms-phone-country" value="<?php echo $country_value; ?>" <?php happyforms_the_part_attributes( $part, $form, 'country' ); ?> />
34
  <?php endif; ?>
35
  <?php include( happyforms_get_include_folder() . '/core/templates/partials/part-phone-dropdown.php' ); ?>
36
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php happyforms_the_part_value( $part, $form, 'number' ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[number]" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 'number' ); ?> />
37
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
38
  <?php happyforms_the_part_label( $part, $form ); ?>
39
  <?php endif; ?>
@@ -55,7 +55,7 @@
55
  <div class="happyforms-part__el">
56
  <div class="happyforms-part-phone-wrap">
57
  <?php include( happyforms_get_include_folder() . '/core/templates/partials/part-phone-dropdown.php' ); ?>
58
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[confirmation]" value="<?php happyforms_the_part_value( $part, $form, 'confirmation' ); ?>" class="happyforms-confirmation-input" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
59
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
60
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
61
  <?php endif; ?>
33
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" class="happyforms-phone-country" value="<?php echo $country_value; ?>" <?php happyforms_the_part_attributes( $part, $form, 'country' ); ?> />
34
  <?php endif; ?>
35
  <?php include( happyforms_get_include_folder() . '/core/templates/partials/part-phone-dropdown.php' ); ?>
36
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php happyforms_the_part_value( $part, $form, 'number' ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[number]" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form, 'number' ); ?> />
37
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
38
  <?php happyforms_the_part_label( $part, $form ); ?>
39
  <?php endif; ?>
55
  <div class="happyforms-part__el">
56
  <div class="happyforms-part-phone-wrap">
57
  <?php include( happyforms_get_include_folder() . '/core/templates/partials/part-phone-dropdown.php' ); ?>
58
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[confirmation]" value="<?php happyforms_the_part_value( $part, $form, 'confirmation' ); ?>" class="happyforms-confirmation-input" <?php happyforms_the_part_attributes( $part, $form, 1 ); ?> />
59
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
60
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
61
  <?php endif; ?>
inc/core/templates/parts/frontend-scale.php CHANGED
@@ -15,7 +15,7 @@
15
  <span class="label-min"><?php echo $part['min_label']; ?></span>
16
  <span class="label-max"><?php echo $part['max_label']; ?></span>
17
  </div>
18
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>"<?php if ( 1 === intval( $part['multiple'] ) ) : ?> multiple<?php endif; ?> type="range" name="<?php echo $part_name; ?>" step="<?php echo esc_attr( $part['step'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> min="<?php echo esc_attr( $part['min_value'] ); ?>" max="<?php echo esc_attr( $part['max_value'] ); ?>" value="<?php happyforms_the_part_value( $part, $form ); ?>" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
  <output for="<?php happyforms_the_part_id( $part, $form ); ?>">
20
  <span><?php happyforms_the_part_value( $part, $form ); ?></span>
21
  </output>
15
  <span class="label-min"><?php echo $part['min_label']; ?></span>
16
  <span class="label-max"><?php echo $part['max_label']; ?></span>
17
  </div>
18
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>"<?php if ( 1 === intval( $part['multiple'] ) ) : ?> multiple<?php endif; ?> type="range" name="<?php echo $part_name; ?>" step="<?php echo esc_attr( $part['step'] ); ?>" min="<?php echo esc_attr( $part['min_value'] ); ?>" max="<?php echo esc_attr( $part['max_value'] ); ?>" value="<?php happyforms_the_part_value( $part, $form ); ?>" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
  <output for="<?php happyforms_the_part_id( $part, $form ); ?>">
20
  <span><?php happyforms_the_part_value( $part, $form ); ?></span>
21
  </output>
inc/core/templates/parts/frontend-select.php CHANGED
@@ -15,7 +15,7 @@
15
  <div class="happyforms-part__select-wrap">
16
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $value; ?>" data-serialize />
17
 
18
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_label; ?>" placeholder="<?php echo $placeholder_text; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> data-searchable="<?php echo ( 1 == $part['allow_search'] ) ? 'true' : 'false'; ?>" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
 
20
  <?php happyforms_select( $options, $part, $form ); ?>
21
  </div>
15
  <div class="happyforms-part__select-wrap">
16
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $value; ?>" data-serialize />
17
 
18
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_label; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="<?php echo ( 1 == $part['allow_search'] ) ? 'true' : 'false'; ?>" autocomplete="off" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
 
20
  <?php happyforms_select( $options, $part, $form ); ?>
21
  </div>
inc/core/templates/parts/frontend-single-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
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
11
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
12
  <?php happyforms_the_part_label( $part, $form ); ?>
13
  <?php endif; ?>
@@ -15,7 +15,7 @@
15
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
16
 
17
  <?php happyforms_print_part_description( $part ); ?>
18
-
19
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
20
  </div>
21
  </div>
7
  <div class="happyforms-part__el">
8
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
9
 
10
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form ); ?> />
11
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
12
  <?php happyforms_the_part_label( $part, $form ); ?>
13
  <?php endif; ?>
15
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
16
 
17
  <?php happyforms_print_part_description( $part ); ?>
18
+
19
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
20
  </div>
21
  </div>
inc/core/templates/parts/frontend-title.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="<?php happyforms_the_part_class( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>-part" <?php happyforms_the_part_data_attributes( $part, $form ); ?>>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
-
5
  <?php
6
  $options = happyforms_get_part_options( $part['options'], $part, $form );
7
  $value = happyforms_get_part_value( $part, $form );
@@ -15,8 +15,8 @@
15
  <div class="happyforms-part__select-wrap">
16
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $value; ?>" data-serialize />
17
 
18
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_label; ?>" placeholder="<?php echo $placeholder_text; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> data-searchable="false" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
-
20
  <?php happyforms_select( $options, $part, $form ); ?>
21
  </div>
22
  </div>
1
  <div class="<?php happyforms_the_part_class( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>-part" <?php happyforms_the_part_data_attributes( $part, $form ); ?>>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
+
5
  <?php
6
  $options = happyforms_get_part_options( $part['options'], $part, $form );
7
  $value = happyforms_get_part_value( $part, $form );
15
  <div class="happyforms-part__select-wrap">
16
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $value; ?>" data-serialize />
17
 
18
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_label; ?>" placeholder="<?php echo $placeholder_text; ?>" data-searchable="false" <?php happyforms_the_part_attributes( $part, $form ); ?> />
19
+
20
  <?php happyforms_select( $options, $part, $form ); ?>
21
  </div>
22
  </div>
inc/core/templates/parts/frontend-website-url.php CHANGED
@@ -7,7 +7,7 @@
7
  <div class="happyforms-part__el">
8
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
9
 
10
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php happyforms_the_part_value( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
11
 
12
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
13
 
7
  <div class="happyforms-part__el">
8
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
9
 
10
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php happyforms_the_part_value( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" <?php happyforms_the_part_attributes( $part, $form ); ?> />
11
 
12
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
13
 
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.8.8\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
- "POT-Creation-Date: 2019-05-29 08:40:36+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -13,103 +13,103 @@ msgstr ""
13
  "Language-Team: The Theme Foundry\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
15
 
16
- #: inc/classes/class-happyforms.php:36
17
  msgid "Include mark and reply link"
18
  msgstr ""
19
 
20
- #: inc/classes/class-happyforms.php:37
21
  msgid "Reply to your users and mark their submission as read in one click."
22
  msgstr ""
23
 
24
- #: inc/classes/class-happyforms.php:43
25
  msgid "Track goal link"
26
  msgstr ""
27
 
28
- #: inc/classes/class-happyforms.php:44
29
  msgid ""
30
  "Track recipients landing on this internal page after successfully "
31
  "submitting this form."
32
  msgstr ""
33
 
34
- #: inc/classes/class-happyforms.php:50
35
  msgid "Use theme styles"
36
  msgstr ""
37
 
38
- #: inc/classes/class-happyforms.php:51
39
  msgid "Inherit theme default styles instead of using HappyForms styles."
40
  msgstr ""
41
 
42
- #: inc/classes/class-happyforms.php:57
43
  msgid "Shuffle parts"
44
  msgstr ""
45
 
46
- #: inc/classes/class-happyforms.php:58
47
  msgid "Shuffle the order of all form parts to avoid biases in your responses."
48
  msgstr ""
49
 
50
- #: inc/classes/class-happyforms.php:64
51
  msgid "Require password"
52
  msgstr ""
53
 
54
- #: inc/classes/class-happyforms.php:65
55
  msgid "Only users with password will be able to view and submit the form."
56
  msgstr ""
57
 
58
- #: inc/classes/class-happyforms.php:71
59
  msgid "Open in overlay window"
60
  msgstr ""
61
 
62
- #: inc/classes/class-happyforms.php:72
63
  msgid "Generate a link that can be clicked to open an overlay window for this form."
64
  msgstr ""
65
 
66
- #: inc/classes/class-happyforms.php:78
67
  msgid "Save responses"
68
  msgstr ""
69
 
70
- #: inc/classes/class-happyforms.php:79
71
  msgid "Keep recipients responses stored in your WordPress database."
72
  msgstr ""
73
 
74
- #: inc/classes/class-happyforms.php:86
75
  msgid "Save abandoned responses"
76
  msgstr ""
77
 
78
- #: inc/classes/class-happyforms.php:87
79
  msgid "Keep incomplete recipients responses stored in your WordPress database."
80
  msgstr ""
81
 
82
- #: inc/classes/class-happyforms.php:93
83
  msgid "Give each response an ID number"
84
  msgstr ""
85
 
86
- #: inc/classes/class-happyforms.php:94
87
  msgid "Tag responses with a unique, incremental identifier."
88
  msgstr ""
89
 
90
- #: inc/classes/class-happyforms.php:100
91
  msgid "Limit responses"
92
  msgstr ""
93
 
94
- #: inc/classes/class-happyforms.php:101
95
  msgid "Set limit on number of allowed form submission in general or per user."
96
  msgstr ""
97
 
98
- #: inc/classes/class-happyforms.php:107
99
  msgid "Schedule visibility"
100
  msgstr ""
101
 
102
- #: inc/classes/class-happyforms.php:108
103
  msgid ""
104
  "Show or hide this form during a chosen time and day. Go to Settings > "
105
  "Timezone to set your city offset."
106
  msgstr ""
107
 
108
- #: inc/classes/class-happyforms.php:134
109
  msgid "HappyForms Upgrade"
110
  msgstr ""
111
 
112
- #: inc/classes/class-happyforms.php:135
113
  #: inc/core/templates/customize-form-parts-drawer.php:30
114
  #: inc/templates/customize-controls/checkbox_dummy.php:7
115
  msgid "Upgrade"
@@ -586,46 +586,46 @@ msgid "Right-to-left"
586
  msgstr ""
587
 
588
  #: inc/core/classes/class-form-styles.php:71
589
- #: inc/core/classes/class-form-styles.php:139
590
- #: inc/core/classes/class-form-styles.php:149
591
- #: inc/core/classes/class-form-styles.php:252
592
- #: inc/core/classes/class-form-styles.php:262
593
  msgid "Default"
594
  msgstr ""
595
 
596
  #: inc/core/classes/class-form-styles.php:72
597
- #: inc/core/classes/class-form-styles.php:138
598
- #: inc/core/classes/class-form-styles.php:148
599
- #: inc/core/classes/class-form-styles.php:261
600
  msgid "Narrow"
601
  msgstr ""
602
 
603
  #: inc/core/classes/class-form-styles.php:73
604
- #: inc/core/classes/class-form-styles.php:140
605
- #: inc/core/classes/class-form-styles.php:150
606
- #: inc/core/classes/class-form-styles.php:263
607
  msgid "Wide"
608
  msgstr ""
609
 
610
  #: inc/core/classes/class-form-styles.php:81
611
- #: inc/core/classes/class-form-styles.php:110
612
- #: inc/core/classes/class-form-styles.php:233
613
  #: inc/core/templates/parts/customize-date.php:36
614
  #: inc/core/templates/parts/customize-date.php:65
615
  msgid "Show"
616
  msgstr ""
617
 
618
  #: inc/core/classes/class-form-styles.php:82
619
- #: inc/core/classes/class-form-styles.php:111
620
- #: inc/core/classes/class-form-styles.php:234
621
  msgid "Hide"
622
  msgstr ""
623
 
624
  #: inc/core/classes/class-form-styles.php:90
625
- #: inc/core/classes/class-form-styles.php:164
626
- #: inc/core/classes/class-form-styles.php:193
627
- #: inc/core/classes/class-form-styles.php:213
628
- #: inc/core/classes/class-form-styles.php:290
629
  #: inc/core/templates/parts/customize-address.php:11
630
  #: inc/core/templates/parts/customize-checkbox.php:11
631
  #: inc/core/templates/parts/customize-date.php:11
@@ -648,72 +648,80 @@ msgid "Left"
648
  msgstr ""
649
 
650
  #: inc/core/classes/class-form-styles.php:91
651
- #: inc/core/classes/class-form-styles.php:165
652
- #: inc/core/classes/class-form-styles.php:194
653
- #: inc/core/classes/class-form-styles.php:214
654
- #: inc/core/classes/class-form-styles.php:291
655
  msgid "Center"
656
  msgstr ""
657
 
658
  #: inc/core/classes/class-form-styles.php:92
659
- #: inc/core/classes/class-form-styles.php:166
660
- #: inc/core/classes/class-form-styles.php:195
661
- #: inc/core/classes/class-form-styles.php:215
662
- #: inc/core/classes/class-form-styles.php:292
663
  msgid "Right"
664
  msgstr ""
665
 
666
- #: inc/core/classes/class-form-styles.php:119
 
 
 
 
 
 
 
 
667
  msgid "All sides"
668
  msgstr ""
669
 
670
- #: inc/core/classes/class-form-styles.php:120
671
  msgid "Bottom only"
672
  msgstr ""
673
 
674
- #: inc/core/classes/class-form-styles.php:128
675
- #: inc/core/classes/class-form-styles.php:242
676
  msgid "Square"
677
  msgstr ""
678
 
679
- #: inc/core/classes/class-form-styles.php:129
680
- #: inc/core/classes/class-form-styles.php:243
681
  msgid "Round"
682
  msgstr ""
683
 
684
- #: inc/core/classes/class-form-styles.php:130
685
- #: inc/core/classes/class-form-styles.php:244
686
  msgid "Pill"
687
  msgstr ""
688
 
689
- #: inc/core/classes/class-form-styles.php:184
690
- #: inc/core/classes/class-form-styles.php:281
691
  msgid "Normal"
692
  msgstr ""
693
 
694
- #: inc/core/classes/class-form-styles.php:185
695
- #: inc/core/classes/class-form-styles.php:282
696
  msgid "Bold"
697
  msgstr ""
698
 
699
- #: inc/core/classes/class-form-styles.php:253
700
  msgid "Full width"
701
  msgstr ""
702
 
703
- #: inc/core/classes/class-form-styles.php:504
704
  msgid "Above form"
705
  msgstr ""
706
 
707
- #: inc/core/classes/class-form-styles.php:505
708
  msgid "Below form"
709
  msgstr ""
710
 
711
- #: inc/core/classes/class-form-styles.php:519
712
  msgid "General"
713
  msgstr ""
714
 
715
- #: inc/core/classes/class-form-styles.php:524
716
- #: inc/core/classes/class-form-styles.php:834
717
  #: inc/core/templates/parts/customize-address.php:86
718
  #: inc/core/templates/parts/customize-checkbox.php:80
719
  #: inc/core/templates/parts/customize-date.php:111
@@ -736,151 +744,155 @@ msgstr ""
736
  msgid "Width"
737
  msgstr ""
738
 
739
- #: inc/core/classes/class-form-styles.php:529
740
- #: inc/core/classes/class-form-styles.php:839
741
  msgid "Padding"
742
  msgstr ""
743
 
744
- #: inc/core/classes/class-form-styles.php:534
745
  msgid "Direction"
746
  msgstr ""
747
 
748
- #: inc/core/classes/class-form-styles.php:539
749
  msgid "Display notices"
750
  msgstr ""
751
 
752
- #: inc/core/classes/class-form-styles.php:545
753
- #: inc/core/classes/class-form-styles.php:630
754
- #: inc/core/classes/class-form-styles.php:700
755
- #: inc/core/classes/class-form-styles.php:865
 
 
 
 
756
  msgid "Colors"
757
  msgstr ""
758
 
759
- #: inc/core/classes/class-form-styles.php:549
760
  msgid "Primary"
761
  msgstr ""
762
 
763
- #: inc/core/classes/class-form-styles.php:554
764
  msgid "Success notice"
765
  msgstr ""
766
 
767
- #: inc/core/classes/class-form-styles.php:559
768
  msgid "Success notice text"
769
  msgstr ""
770
 
771
- #: inc/core/classes/class-form-styles.php:564
772
  msgid "Error"
773
  msgstr ""
774
 
775
- #: inc/core/classes/class-form-styles.php:569
776
  msgid "Error notice"
777
  msgstr ""
778
 
779
- #: inc/core/classes/class-form-styles.php:574
780
  msgid "Error notice text"
781
  msgstr ""
782
 
783
- #: inc/core/classes/class-form-styles.php:579
784
  msgid "Form title"
785
  msgstr ""
786
 
787
- #: inc/core/classes/class-form-styles.php:584
788
  msgid "Display"
789
  msgstr ""
790
 
791
- #: inc/core/classes/class-form-styles.php:589
792
- #: inc/core/classes/class-form-styles.php:854
793
  msgid "Alignment"
794
  msgstr ""
795
 
796
- #: inc/core/classes/class-form-styles.php:594
797
- #: inc/core/classes/class-form-styles.php:844
798
  msgid "Font size"
799
  msgstr ""
800
 
801
- #: inc/core/classes/class-form-styles.php:599
802
  msgid "Part borders & spacing"
803
  msgstr ""
804
 
805
- #: inc/core/classes/class-form-styles.php:604
806
- #: inc/core/classes/class-form-styles.php:634
807
- #: inc/core/classes/class-form-styles.php:824
808
- #: inc/core/classes/class-form-styles.php:879
809
  msgid "Border"
810
  msgstr ""
811
 
812
- #: inc/core/classes/class-form-styles.php:609
813
  msgid "Border location"
814
  msgstr ""
815
 
816
- #: inc/core/classes/class-form-styles.php:614
817
- #: inc/core/classes/class-form-styles.php:829
818
  msgid "Border radius"
819
  msgstr ""
820
 
821
- #: inc/core/classes/class-form-styles.php:619
822
  msgid "Outer padding"
823
  msgstr ""
824
 
825
- #: inc/core/classes/class-form-styles.php:624
826
  msgid "Inner padding"
827
  msgstr ""
828
 
829
- #: inc/core/classes/class-form-styles.php:639
830
  msgid "Border on focus"
831
  msgstr ""
832
 
833
- #: inc/core/classes/class-form-styles.php:644
834
- #: inc/core/classes/class-form-styles.php:729
835
- #: inc/core/classes/class-form-styles.php:754
836
- #: inc/core/classes/class-form-styles.php:869
837
  msgid "Background"
838
  msgstr ""
839
 
840
- #: inc/core/classes/class-form-styles.php:649
841
- #: inc/core/classes/class-form-styles.php:739
842
- #: inc/core/classes/class-form-styles.php:759
843
- #: inc/core/classes/class-form-styles.php:874
844
  msgid "Background on focus"
845
  msgstr ""
846
 
847
- #: inc/core/classes/class-form-styles.php:654
848
  msgid "Part labels & text"
849
  msgstr ""
850
 
851
- #: inc/core/classes/class-form-styles.php:659
852
  msgid "Toggle placeholder on part focus"
853
  msgstr ""
854
 
855
- #: inc/core/classes/class-form-styles.php:664
856
  msgid "Title alignment"
857
  msgstr ""
858
 
859
- #: inc/core/classes/class-form-styles.php:669
860
  msgid "Title font size"
861
  msgstr ""
862
 
863
- #: inc/core/classes/class-form-styles.php:674
864
  msgid "Title font weight"
865
  msgstr ""
866
 
867
- #: inc/core/classes/class-form-styles.php:679
868
  msgid "Description alignment"
869
  msgstr ""
870
 
871
- #: inc/core/classes/class-form-styles.php:684
872
  msgid "Description font size"
873
  msgstr ""
874
 
875
- #: inc/core/classes/class-form-styles.php:689
876
  msgid "Placeholder &amp; value alignment"
877
  msgstr ""
878
 
879
- #: inc/core/classes/class-form-styles.php:694
880
  msgid "Value font size"
881
  msgstr ""
882
 
883
- #: inc/core/classes/class-form-styles.php:704
884
  #: inc/core/classes/parts/class-part-title.php:8
885
  #: inc/core/classes/parts/class-part-title.php:30
886
  #: inc/core/templates/parts/customize-address.php:4
@@ -904,11 +916,11 @@ msgstr ""
904
  msgid "Title"
905
  msgstr ""
906
 
907
- #: inc/core/classes/class-form-styles.php:709
908
  msgid "Value"
909
  msgstr ""
910
 
911
- #: inc/core/classes/class-form-styles.php:714
912
  #: inc/core/classes/parts/class-part-placeholder.php:8
913
  #: inc/core/templates/parts/customize-address.php:36
914
  #: inc/core/templates/parts/customize-email.php:36
@@ -922,16 +934,16 @@ msgstr ""
922
  msgid "Placeholder"
923
  msgstr ""
924
 
925
- #: inc/core/classes/class-form-styles.php:719
926
  msgid "Dropdowns"
927
  msgstr ""
928
 
929
- #: inc/core/classes/class-form-styles.php:725
930
  msgid "Items"
931
  msgstr ""
932
 
933
- #: inc/core/classes/class-form-styles.php:734
934
- #: inc/core/classes/class-form-styles.php:884
935
  #: inc/core/classes/parts/class-part-multi-line-text.php:34
936
  #: inc/core/classes/parts/class-part-rich-text.php:33
937
  #: inc/core/classes/parts/class-part-single-line-text.php:29
@@ -941,70 +953,70 @@ msgstr ""
941
  msgid "Text"
942
  msgstr ""
943
 
944
- #: inc/core/classes/class-form-styles.php:744
945
- #: inc/core/classes/class-form-styles.php:889
946
  msgid "Text focused"
947
  msgstr ""
948
 
949
- #: inc/core/classes/class-form-styles.php:749
950
  msgid "Checkboxes & Radios"
951
  msgstr ""
952
 
953
- #: inc/core/classes/class-form-styles.php:764
954
  msgid "Checkmark"
955
  msgstr ""
956
 
957
- #: inc/core/classes/class-form-styles.php:769
958
  #: inc/core/classes/parts/class-part-rating.php:9
959
  #: inc/core/classes/parts/class-part-rating.php:31
960
  msgid "Rating"
961
  msgstr ""
962
 
963
- #: inc/core/classes/class-form-styles.php:774
964
  msgid "Rating star color"
965
  msgstr ""
966
 
967
- #: inc/core/classes/class-form-styles.php:779
968
  msgid "Rating star color on hover"
969
  msgstr ""
970
 
971
- #: inc/core/classes/class-form-styles.php:784
972
  msgid "Item background"
973
  msgstr ""
974
 
975
- #: inc/core/classes/class-form-styles.php:789
976
  msgid "Item background on hover"
977
  msgstr ""
978
 
979
- #: inc/core/classes/class-form-styles.php:794
980
  msgid "Tables"
981
  msgstr ""
982
 
983
- #: inc/core/classes/class-form-styles.php:799
984
  msgid "Odd row primary"
985
  msgstr ""
986
 
987
- #: inc/core/classes/class-form-styles.php:804
988
  msgid "Odd row secondary"
989
  msgstr ""
990
 
991
- #: inc/core/classes/class-form-styles.php:809
992
  msgid "Even row primary"
993
  msgstr ""
994
 
995
- #: inc/core/classes/class-form-styles.php:814
996
  msgid "Even row secondary"
997
  msgstr ""
998
 
999
- #: inc/core/classes/class-form-styles.php:819
1000
  msgid "Submit button"
1001
  msgstr ""
1002
 
1003
- #: inc/core/classes/class-form-styles.php:849
1004
  msgid "Font weight"
1005
  msgstr ""
1006
 
1007
- #: inc/core/classes/class-form-styles.php:859
1008
  msgid "Make button a part of last input"
1009
  msgstr ""
1010
 
@@ -1233,6 +1245,10 @@ msgstr ""
1233
  msgid "Not a valid date."
1234
  msgstr ""
1235
 
 
 
 
 
1236
  #: inc/core/classes/parts/class-part-email.php:8
1237
  #: inc/core/classes/parts/class-part-email.php:31
1238
  msgid "Email"
@@ -3467,11 +3483,11 @@ msgstr ""
3467
 
3468
  #: inc/core/templates/customize-form-item.php:33
3469
  #: inc/core/templates/customize-form-part-footer.php:3
3470
- #: inc/core/templates/parts/customize-checkbox.php:121
3471
- #: inc/core/templates/parts/customize-radio.php:115
3472
- #: inc/core/templates/parts/customize-select.php:115
3473
- #: inc/core/templates/parts/customize-table.php:127
3474
- #: inc/core/templates/parts/customize-table.php:142
3475
  msgid "Delete"
3476
  msgstr ""
3477
 
@@ -3480,15 +3496,17 @@ msgid "Preview"
3480
  msgstr ""
3481
 
3482
  #: inc/core/templates/customize-form-part-footer.php:5
3483
- msgid "Done"
3484
  msgstr ""
3485
 
3486
  #: inc/core/templates/customize-form-part-footer.php:6
3487
- #: inc/core/templates/parts/customize-checkbox.php:122
3488
- #: inc/core/templates/parts/customize-radio.php:116
3489
- #: inc/core/templates/parts/customize-select.php:116
3490
- #: inc/core/templates/parts/customize-table.php:128
3491
- msgid "Advanced"
 
 
3492
  msgstr ""
3493
 
3494
  #: inc/core/templates/customize-form-parts-drawer.php:5
@@ -3677,14 +3695,14 @@ msgstr ""
3677
 
3678
  #: inc/core/templates/parts/customize-address.php:24
3679
  #: inc/core/templates/parts/customize-checkbox.php:22
3680
- #: inc/core/templates/parts/customize-checkbox.php:113
3681
  #: inc/core/templates/parts/customize-date.php:22
3682
  #: inc/core/templates/parts/customize-email.php:24
3683
  #: inc/core/templates/parts/customize-multi-line-text.php:24
3684
  #: inc/core/templates/parts/customize-number.php:24
3685
  #: inc/core/templates/parts/customize-phone.php:24
3686
  #: inc/core/templates/parts/customize-radio.php:22
3687
- #: inc/core/templates/parts/customize-radio.php:107
3688
  #: inc/core/templates/parts/customize-rating.php:22
3689
  #: inc/core/templates/parts/customize-rich-text.php:22
3690
  #: inc/core/templates/parts/customize-scale.php:22
@@ -3987,19 +4005,26 @@ msgstr ""
3987
  msgid "Vertical"
3988
  msgstr ""
3989
 
3990
- #: inc/core/templates/parts/customize-checkbox.php:108
3991
- #: inc/core/templates/parts/customize-radio.php:102
3992
- #: inc/core/templates/parts/customize-select.php:106
3993
- #: inc/core/templates/parts/customize-table.php:118
3994
- #: inc/core/templates/parts/customize-table.php:138
3995
  msgid "Label"
3996
  msgstr ""
3997
 
3998
- #: inc/core/templates/parts/customize-checkbox.php:117
3999
- #: inc/core/templates/parts/customize-table.php:123
4000
  msgid "Checked by default"
4001
  msgstr ""
4002
 
 
 
 
 
 
 
 
4003
  #: inc/core/templates/parts/customize-date.php:39
4004
  msgid "Date &amp; Time"
4005
  msgstr ""
@@ -4173,8 +4198,8 @@ msgstr ""
4173
  msgid "Allow other regions to be selected"
4174
  msgstr ""
4175
 
4176
- #: inc/core/templates/parts/customize-radio.php:111
4177
- #: inc/core/templates/parts/customize-select.php:111
4178
  msgid "Make this option default"
4179
  msgstr ""
4180
 
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: HappyForms 1.8.9\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
+ "POT-Creation-Date: 2019-07-03 13:11:34+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
13
  "Language-Team: The Theme Foundry\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
15
 
16
+ #: inc/classes/class-happyforms.php:37
17
  msgid "Include mark and reply link"
18
  msgstr ""
19
 
20
+ #: inc/classes/class-happyforms.php:38
21
  msgid "Reply to your users and mark their submission as read in one click."
22
  msgstr ""
23
 
24
+ #: inc/classes/class-happyforms.php:44
25
  msgid "Track goal link"
26
  msgstr ""
27
 
28
+ #: inc/classes/class-happyforms.php:45
29
  msgid ""
30
  "Track recipients landing on this internal page after successfully "
31
  "submitting this form."
32
  msgstr ""
33
 
34
+ #: inc/classes/class-happyforms.php:51
35
  msgid "Use theme styles"
36
  msgstr ""
37
 
38
+ #: inc/classes/class-happyforms.php:52
39
  msgid "Inherit theme default styles instead of using HappyForms styles."
40
  msgstr ""
41
 
42
+ #: inc/classes/class-happyforms.php:58
43
  msgid "Shuffle parts"
44
  msgstr ""
45
 
46
+ #: inc/classes/class-happyforms.php:59
47
  msgid "Shuffle the order of all form parts to avoid biases in your responses."
48
  msgstr ""
49
 
50
+ #: inc/classes/class-happyforms.php:65
51
  msgid "Require password"
52
  msgstr ""
53
 
54
+ #: inc/classes/class-happyforms.php:66
55
  msgid "Only users with password will be able to view and submit the form."
56
  msgstr ""
57
 
58
+ #: inc/classes/class-happyforms.php:72
59
  msgid "Open in overlay window"
60
  msgstr ""
61
 
62
+ #: inc/classes/class-happyforms.php:73
63
  msgid "Generate a link that can be clicked to open an overlay window for this form."
64
  msgstr ""
65
 
66
+ #: inc/classes/class-happyforms.php:79
67
  msgid "Save responses"
68
  msgstr ""
69
 
70
+ #: inc/classes/class-happyforms.php:80
71
  msgid "Keep recipients responses stored in your WordPress database."
72
  msgstr ""
73
 
74
+ #: inc/classes/class-happyforms.php:87
75
  msgid "Save abandoned responses"
76
  msgstr ""
77
 
78
+ #: inc/classes/class-happyforms.php:88
79
  msgid "Keep incomplete recipients responses stored in your WordPress database."
80
  msgstr ""
81
 
82
+ #: inc/classes/class-happyforms.php:94
83
  msgid "Give each response an ID number"
84
  msgstr ""
85
 
86
+ #: inc/classes/class-happyforms.php:95
87
  msgid "Tag responses with a unique, incremental identifier."
88
  msgstr ""
89
 
90
+ #: inc/classes/class-happyforms.php:101
91
  msgid "Limit responses"
92
  msgstr ""
93
 
94
+ #: inc/classes/class-happyforms.php:102
95
  msgid "Set limit on number of allowed form submission in general or per user."
96
  msgstr ""
97
 
98
+ #: inc/classes/class-happyforms.php:108
99
  msgid "Schedule visibility"
100
  msgstr ""
101
 
102
+ #: inc/classes/class-happyforms.php:109
103
  msgid ""
104
  "Show or hide this form during a chosen time and day. Go to Settings > "
105
  "Timezone to set your city offset."
106
  msgstr ""
107
 
108
+ #: inc/classes/class-happyforms.php:135
109
  msgid "HappyForms Upgrade"
110
  msgstr ""
111
 
112
+ #: inc/classes/class-happyforms.php:136
113
  #: inc/core/templates/customize-form-parts-drawer.php:30
114
  #: inc/templates/customize-controls/checkbox_dummy.php:7
115
  msgid "Upgrade"
586
  msgstr ""
587
 
588
  #: inc/core/classes/class-form-styles.php:71
589
+ #: inc/core/classes/class-form-styles.php:148
590
+ #: inc/core/classes/class-form-styles.php:158
591
+ #: inc/core/classes/class-form-styles.php:261
592
+ #: inc/core/classes/class-form-styles.php:271
593
  msgid "Default"
594
  msgstr ""
595
 
596
  #: inc/core/classes/class-form-styles.php:72
597
+ #: inc/core/classes/class-form-styles.php:147
598
+ #: inc/core/classes/class-form-styles.php:157
599
+ #: inc/core/classes/class-form-styles.php:270
600
  msgid "Narrow"
601
  msgstr ""
602
 
603
  #: inc/core/classes/class-form-styles.php:73
604
+ #: inc/core/classes/class-form-styles.php:149
605
+ #: inc/core/classes/class-form-styles.php:159
606
+ #: inc/core/classes/class-form-styles.php:272
607
  msgid "Wide"
608
  msgstr ""
609
 
610
  #: inc/core/classes/class-form-styles.php:81
611
+ #: inc/core/classes/class-form-styles.php:119
612
+ #: inc/core/classes/class-form-styles.php:242
613
  #: inc/core/templates/parts/customize-date.php:36
614
  #: inc/core/templates/parts/customize-date.php:65
615
  msgid "Show"
616
  msgstr ""
617
 
618
  #: inc/core/classes/class-form-styles.php:82
619
+ #: inc/core/classes/class-form-styles.php:120
620
+ #: inc/core/classes/class-form-styles.php:243
621
  msgid "Hide"
622
  msgstr ""
623
 
624
  #: inc/core/classes/class-form-styles.php:90
625
+ #: inc/core/classes/class-form-styles.php:173
626
+ #: inc/core/classes/class-form-styles.php:202
627
+ #: inc/core/classes/class-form-styles.php:222
628
+ #: inc/core/classes/class-form-styles.php:299
629
  #: inc/core/templates/parts/customize-address.php:11
630
  #: inc/core/templates/parts/customize-checkbox.php:11
631
  #: inc/core/templates/parts/customize-date.php:11
648
  msgstr ""
649
 
650
  #: inc/core/classes/class-form-styles.php:91
651
+ #: inc/core/classes/class-form-styles.php:174
652
+ #: inc/core/classes/class-form-styles.php:203
653
+ #: inc/core/classes/class-form-styles.php:223
654
+ #: inc/core/classes/class-form-styles.php:300
655
  msgid "Center"
656
  msgstr ""
657
 
658
  #: inc/core/classes/class-form-styles.php:92
659
+ #: inc/core/classes/class-form-styles.php:175
660
+ #: inc/core/classes/class-form-styles.php:204
661
+ #: inc/core/classes/class-form-styles.php:224
662
+ #: inc/core/classes/class-form-styles.php:301
663
  msgid "Right"
664
  msgstr ""
665
 
666
+ #: inc/core/classes/class-form-styles.php:110
667
+ msgid "Light color"
668
+ msgstr ""
669
+
670
+ #: inc/core/classes/class-form-styles.php:111
671
+ msgid "Dark color"
672
+ msgstr ""
673
+
674
+ #: inc/core/classes/class-form-styles.php:128
675
  msgid "All sides"
676
  msgstr ""
677
 
678
+ #: inc/core/classes/class-form-styles.php:129
679
  msgid "Bottom only"
680
  msgstr ""
681
 
682
+ #: inc/core/classes/class-form-styles.php:137
683
+ #: inc/core/classes/class-form-styles.php:251
684
  msgid "Square"
685
  msgstr ""
686
 
687
+ #: inc/core/classes/class-form-styles.php:138
688
+ #: inc/core/classes/class-form-styles.php:252
689
  msgid "Round"
690
  msgstr ""
691
 
692
+ #: inc/core/classes/class-form-styles.php:139
693
+ #: inc/core/classes/class-form-styles.php:253
694
  msgid "Pill"
695
  msgstr ""
696
 
697
+ #: inc/core/classes/class-form-styles.php:193
698
+ #: inc/core/classes/class-form-styles.php:290
699
  msgid "Normal"
700
  msgstr ""
701
 
702
+ #: inc/core/classes/class-form-styles.php:194
703
+ #: inc/core/classes/class-form-styles.php:291
704
  msgid "Bold"
705
  msgstr ""
706
 
707
+ #: inc/core/classes/class-form-styles.php:262
708
  msgid "Full width"
709
  msgstr ""
710
 
711
+ #: inc/core/classes/class-form-styles.php:513
712
  msgid "Above form"
713
  msgstr ""
714
 
715
+ #: inc/core/classes/class-form-styles.php:514
716
  msgid "Below form"
717
  msgstr ""
718
 
719
+ #: inc/core/classes/class-form-styles.php:528
720
  msgid "General"
721
  msgstr ""
722
 
723
+ #: inc/core/classes/class-form-styles.php:533
724
+ #: inc/core/classes/class-form-styles.php:848
725
  #: inc/core/templates/parts/customize-address.php:86
726
  #: inc/core/templates/parts/customize-checkbox.php:80
727
  #: inc/core/templates/parts/customize-date.php:111
744
  msgid "Width"
745
  msgstr ""
746
 
747
+ #: inc/core/classes/class-form-styles.php:538
748
+ #: inc/core/classes/class-form-styles.php:853
749
  msgid "Padding"
750
  msgstr ""
751
 
752
+ #: inc/core/classes/class-form-styles.php:543
753
  msgid "Direction"
754
  msgstr ""
755
 
756
+ #: inc/core/classes/class-form-styles.php:548
757
  msgid "Display notices"
758
  msgstr ""
759
 
760
+ #: inc/core/classes/class-form-styles.php:553
761
+ msgid "Google reCAPTCHA theme"
762
+ msgstr ""
763
+
764
+ #: inc/core/classes/class-form-styles.php:559
765
+ #: inc/core/classes/class-form-styles.php:644
766
+ #: inc/core/classes/class-form-styles.php:714
767
+ #: inc/core/classes/class-form-styles.php:879
768
  msgid "Colors"
769
  msgstr ""
770
 
771
+ #: inc/core/classes/class-form-styles.php:563
772
  msgid "Primary"
773
  msgstr ""
774
 
775
+ #: inc/core/classes/class-form-styles.php:568
776
  msgid "Success notice"
777
  msgstr ""
778
 
779
+ #: inc/core/classes/class-form-styles.php:573
780
  msgid "Success notice text"
781
  msgstr ""
782
 
783
+ #: inc/core/classes/class-form-styles.php:578
784
  msgid "Error"
785
  msgstr ""
786
 
787
+ #: inc/core/classes/class-form-styles.php:583
788
  msgid "Error notice"
789
  msgstr ""
790
 
791
+ #: inc/core/classes/class-form-styles.php:588
792
  msgid "Error notice text"
793
  msgstr ""
794
 
795
+ #: inc/core/classes/class-form-styles.php:593
796
  msgid "Form title"
797
  msgstr ""
798
 
799
+ #: inc/core/classes/class-form-styles.php:598
800
  msgid "Display"
801
  msgstr ""
802
 
803
+ #: inc/core/classes/class-form-styles.php:603
804
+ #: inc/core/classes/class-form-styles.php:868
805
  msgid "Alignment"
806
  msgstr ""
807
 
808
+ #: inc/core/classes/class-form-styles.php:608
809
+ #: inc/core/classes/class-form-styles.php:858
810
  msgid "Font size"
811
  msgstr ""
812
 
813
+ #: inc/core/classes/class-form-styles.php:613
814
  msgid "Part borders & spacing"
815
  msgstr ""
816
 
817
+ #: inc/core/classes/class-form-styles.php:618
818
+ #: inc/core/classes/class-form-styles.php:648
819
+ #: inc/core/classes/class-form-styles.php:838
820
+ #: inc/core/classes/class-form-styles.php:893
821
  msgid "Border"
822
  msgstr ""
823
 
824
+ #: inc/core/classes/class-form-styles.php:623
825
  msgid "Border location"
826
  msgstr ""
827
 
828
+ #: inc/core/classes/class-form-styles.php:628
829
+ #: inc/core/classes/class-form-styles.php:843
830
  msgid "Border radius"
831
  msgstr ""
832
 
833
+ #: inc/core/classes/class-form-styles.php:633
834
  msgid "Outer padding"
835
  msgstr ""
836
 
837
+ #: inc/core/classes/class-form-styles.php:638
838
  msgid "Inner padding"
839
  msgstr ""
840
 
841
+ #: inc/core/classes/class-form-styles.php:653
842
  msgid "Border on focus"
843
  msgstr ""
844
 
845
+ #: inc/core/classes/class-form-styles.php:658
846
+ #: inc/core/classes/class-form-styles.php:743
847
+ #: inc/core/classes/class-form-styles.php:768
848
+ #: inc/core/classes/class-form-styles.php:883
849
  msgid "Background"
850
  msgstr ""
851
 
852
+ #: inc/core/classes/class-form-styles.php:663
853
+ #: inc/core/classes/class-form-styles.php:753
854
+ #: inc/core/classes/class-form-styles.php:773
855
+ #: inc/core/classes/class-form-styles.php:888
856
  msgid "Background on focus"
857
  msgstr ""
858
 
859
+ #: inc/core/classes/class-form-styles.php:668
860
  msgid "Part labels & text"
861
  msgstr ""
862
 
863
+ #: inc/core/classes/class-form-styles.php:673
864
  msgid "Toggle placeholder on part focus"
865
  msgstr ""
866
 
867
+ #: inc/core/classes/class-form-styles.php:678
868
  msgid "Title alignment"
869
  msgstr ""
870
 
871
+ #: inc/core/classes/class-form-styles.php:683
872
  msgid "Title font size"
873
  msgstr ""
874
 
875
+ #: inc/core/classes/class-form-styles.php:688
876
  msgid "Title font weight"
877
  msgstr ""
878
 
879
+ #: inc/core/classes/class-form-styles.php:693
880
  msgid "Description alignment"
881
  msgstr ""
882
 
883
+ #: inc/core/classes/class-form-styles.php:698
884
  msgid "Description font size"
885
  msgstr ""
886
 
887
+ #: inc/core/classes/class-form-styles.php:703
888
  msgid "Placeholder &amp; value alignment"
889
  msgstr ""
890
 
891
+ #: inc/core/classes/class-form-styles.php:708
892
  msgid "Value font size"
893
  msgstr ""
894
 
895
+ #: inc/core/classes/class-form-styles.php:718
896
  #: inc/core/classes/parts/class-part-title.php:8
897
  #: inc/core/classes/parts/class-part-title.php:30
898
  #: inc/core/templates/parts/customize-address.php:4
916
  msgid "Title"
917
  msgstr ""
918
 
919
+ #: inc/core/classes/class-form-styles.php:723
920
  msgid "Value"
921
  msgstr ""
922
 
923
+ #: inc/core/classes/class-form-styles.php:728
924
  #: inc/core/classes/parts/class-part-placeholder.php:8
925
  #: inc/core/templates/parts/customize-address.php:36
926
  #: inc/core/templates/parts/customize-email.php:36
934
  msgid "Placeholder"
935
  msgstr ""
936
 
937
+ #: inc/core/classes/class-form-styles.php:733
938
  msgid "Dropdowns"
939
  msgstr ""
940
 
941
+ #: inc/core/classes/class-form-styles.php:739
942
  msgid "Items"
943
  msgstr ""
944
 
945
+ #: inc/core/classes/class-form-styles.php:748
946
+ #: inc/core/classes/class-form-styles.php:898
947
  #: inc/core/classes/parts/class-part-multi-line-text.php:34
948
  #: inc/core/classes/parts/class-part-rich-text.php:33
949
  #: inc/core/classes/parts/class-part-single-line-text.php:29
953
  msgid "Text"
954
  msgstr ""
955
 
956
+ #: inc/core/classes/class-form-styles.php:758
957
+ #: inc/core/classes/class-form-styles.php:903
958
  msgid "Text focused"
959
  msgstr ""
960
 
961
+ #: inc/core/classes/class-form-styles.php:763
962
  msgid "Checkboxes & Radios"
963
  msgstr ""
964
 
965
+ #: inc/core/classes/class-form-styles.php:778
966
  msgid "Checkmark"
967
  msgstr ""
968
 
969
+ #: inc/core/classes/class-form-styles.php:783
970
  #: inc/core/classes/parts/class-part-rating.php:9
971
  #: inc/core/classes/parts/class-part-rating.php:31
972
  msgid "Rating"
973
  msgstr ""
974
 
975
+ #: inc/core/classes/class-form-styles.php:788
976
  msgid "Rating star color"
977
  msgstr ""
978
 
979
+ #: inc/core/classes/class-form-styles.php:793
980
  msgid "Rating star color on hover"
981
  msgstr ""
982
 
983
+ #: inc/core/classes/class-form-styles.php:798
984
  msgid "Item background"
985
  msgstr ""
986
 
987
+ #: inc/core/classes/class-form-styles.php:803
988
  msgid "Item background on hover"
989
  msgstr ""
990
 
991
+ #: inc/core/classes/class-form-styles.php:808
992
  msgid "Tables"
993
  msgstr ""
994
 
995
+ #: inc/core/classes/class-form-styles.php:813
996
  msgid "Odd row primary"
997
  msgstr ""
998
 
999
+ #: inc/core/classes/class-form-styles.php:818
1000
  msgid "Odd row secondary"
1001
  msgstr ""
1002
 
1003
+ #: inc/core/classes/class-form-styles.php:823
1004
  msgid "Even row primary"
1005
  msgstr ""
1006
 
1007
+ #: inc/core/classes/class-form-styles.php:828
1008
  msgid "Even row secondary"
1009
  msgstr ""
1010
 
1011
+ #: inc/core/classes/class-form-styles.php:833
1012
  msgid "Submit button"
1013
  msgstr ""
1014
 
1015
+ #: inc/core/classes/class-form-styles.php:863
1016
  msgid "Font weight"
1017
  msgstr ""
1018
 
1019
+ #: inc/core/classes/class-form-styles.php:873
1020
  msgid "Make button a part of last input"
1021
  msgstr ""
1022
 
1245
  msgid "Not a valid date."
1246
  msgstr ""
1247
 
1248
+ #: inc/core/classes/parts/class-part-date.php:348
1249
+ msgid "at"
1250
+ msgstr ""
1251
+
1252
  #: inc/core/classes/parts/class-part-email.php:8
1253
  #: inc/core/classes/parts/class-part-email.php:31
1254
  msgid "Email"
3483
 
3484
  #: inc/core/templates/customize-form-item.php:33
3485
  #: inc/core/templates/customize-form-part-footer.php:3
3486
+ #: inc/core/templates/parts/customize-checkbox.php:128
3487
+ #: inc/core/templates/parts/customize-radio.php:122
3488
+ #: inc/core/templates/parts/customize-select.php:122
3489
+ #: inc/core/templates/parts/customize-table.php:134
3490
+ #: inc/core/templates/parts/customize-table.php:149
3491
  msgid "Delete"
3492
  msgstr ""
3493
 
3496
  msgstr ""
3497
 
3498
  #: inc/core/templates/customize-form-part-footer.php:5
3499
+ msgid "More"
3500
  msgstr ""
3501
 
3502
  #: inc/core/templates/customize-form-part-footer.php:6
3503
+ #: inc/core/templates/customize-form-part-logic.php:2
3504
+ msgid "Logic"
3505
+ msgstr ""
3506
+
3507
+ #: inc/core/templates/customize-form-part-logic.php:4
3508
+ #: inc/core/templates/customize-form-setup-logic.php:3
3509
+ msgid "Upgrade to add logic rule"
3510
  msgstr ""
3511
 
3512
  #: inc/core/templates/customize-form-parts-drawer.php:5
3695
 
3696
  #: inc/core/templates/parts/customize-address.php:24
3697
  #: inc/core/templates/parts/customize-checkbox.php:22
3698
+ #: inc/core/templates/parts/customize-checkbox.php:120
3699
  #: inc/core/templates/parts/customize-date.php:22
3700
  #: inc/core/templates/parts/customize-email.php:24
3701
  #: inc/core/templates/parts/customize-multi-line-text.php:24
3702
  #: inc/core/templates/parts/customize-number.php:24
3703
  #: inc/core/templates/parts/customize-phone.php:24
3704
  #: inc/core/templates/parts/customize-radio.php:22
3705
+ #: inc/core/templates/parts/customize-radio.php:114
3706
  #: inc/core/templates/parts/customize-rating.php:22
3707
  #: inc/core/templates/parts/customize-rich-text.php:22
3708
  #: inc/core/templates/parts/customize-scale.php:22
4005
  msgid "Vertical"
4006
  msgstr ""
4007
 
4008
+ #: inc/core/templates/parts/customize-checkbox.php:115
4009
+ #: inc/core/templates/parts/customize-radio.php:109
4010
+ #: inc/core/templates/parts/customize-select.php:113
4011
+ #: inc/core/templates/parts/customize-table.php:125
4012
+ #: inc/core/templates/parts/customize-table.php:145
4013
  msgid "Label"
4014
  msgstr ""
4015
 
4016
+ #: inc/core/templates/parts/customize-checkbox.php:124
4017
+ #: inc/core/templates/parts/customize-table.php:130
4018
  msgid "Checked by default"
4019
  msgstr ""
4020
 
4021
+ #: inc/core/templates/parts/customize-checkbox.php:129
4022
+ #: inc/core/templates/parts/customize-radio.php:123
4023
+ #: inc/core/templates/parts/customize-select.php:123
4024
+ #: inc/core/templates/parts/customize-table.php:135
4025
+ msgid "Advanced"
4026
+ msgstr ""
4027
+
4028
  #: inc/core/templates/parts/customize-date.php:39
4029
  msgid "Date &amp; Time"
4030
  msgstr ""
4198
  msgid "Allow other regions to be selected"
4199
  msgstr ""
4200
 
4201
+ #: inc/core/templates/parts/customize-radio.php:118
4202
+ #: inc/core/templates/parts/customize-select.php:118
4203
  msgid "Make this option default"
4204
  msgstr ""
4205
 
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.2
7
  Requires PHP: 5.3
8
- Stable tag: 1.8.8
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -107,6 +107,12 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more po
107
 
108
  == Changelog ==
109
 
 
 
 
 
 
 
110
  = 1.8.8 =
111
  * Bugfix: Some parts caused notices in Customizer screen.
112
  * Bugfix: Small fixes related to styles.
@@ -514,6 +520,9 @@ Yep! HappyForms free isn't going anywhere but for those looking for even more po
514
 
515
  == Upgrade Notice ==
516
 
 
 
 
517
  = 1.8.8 =
518
  * Bugfixes.
519
 
5
  Requires at least: 4.8
6
  Tested up to: 5.2
7
  Requires PHP: 5.3
8
+ Stable tag: 1.8.9
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
107
 
108
  == Changelog ==
109
 
110
+ = 1.8.9 =
111
+ * New feature: New 'Google reCAPTCHA theme' setting in Style step.
112
+ * Improvement: Various improvements to styles in HappyForms UI.
113
+ * Bugfix: Email part with confirmation value didn't work with 'Fade submit until valid' option.
114
+ * Bugfix: Date & Time part did not reflect EU date format in preview step and email.
115
+
116
  = 1.8.8 =
117
  * Bugfix: Some parts caused notices in Customizer screen.
118
  * Bugfix: Small fixes related to styles.
520
 
521
  == Upgrade Notice ==
522
 
523
+ = 1.8.9 =
524
+ * Google reCAPTCHA theme setting, improvements, and bugfixes.
525
+
526
  = 1.8.8 =
527
  * Bugfixes.
528