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

Version Description

  • New feature: Responses can now be tagged with a unique incremental ID (think receipts).
  • New feature: Labels for Rating part options when using Smileys / Thumbs as Rating Visuals.
  • New feature: Reveal description on focus for text input parts.
  • Improvement: Better part title appearance when placement is set to 'Left'.
  • Improvement: Better alignment of Legal part when parts around it use 'Left' setting for Title placement.
  • Improvement: Various improvements in parts UI and CSS.
  • Improvement: Labels and values in email messages can now be filtered.
  • Bugfix: Fixed issue when adding multiple Rating parts to same form only displayed first one.
  • Bugfix: Single and multiple choice, Dropdown and Table parts had issues with validation.
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.6.4
Comparing to
See all releases

Code changes from version 1.6.3 to 1.6.4

Files changed (79) hide show
  1. assets/css/customize.css +10 -1
  2. assets/css/frontend.css +128 -38
  3. assets/css/preview.css +5 -0
  4. assets/img/flags.png +0 -0
  5. assets/js/admin/dashboard.js +1 -1
  6. assets/js/customize.js +73 -21
  7. assets/js/lib/happyforms-select.js +2 -2
  8. assets/js/parts/part-address.js +0 -7
  9. assets/js/parts/part-checkbox.js +3 -1
  10. assets/js/parts/part-radio.js +3 -1
  11. assets/js/parts/part-rating.js +67 -1
  12. assets/js/parts/part-select.js +3 -1
  13. assets/js/parts/part-table.js +7 -5
  14. happyforms.php +2 -2
  15. inc/classes/class-admin-notices.php +2 -2
  16. inc/classes/class-form-controller.php +34 -0
  17. inc/classes/class-message-admin.php +8 -0
  18. inc/classes/class-message-controller.php +54 -7
  19. inc/classes/class-wp-customize-form-manager.php +1 -0
  20. inc/classes/parts/class-part-address.php +3 -3
  21. inc/classes/parts/class-part-checkbox.php +14 -8
  22. inc/classes/parts/class-part-date.php +3 -3
  23. inc/classes/parts/class-part-email.php +7 -3
  24. inc/classes/parts/class-part-legal.php +38 -0
  25. inc/classes/parts/class-part-multi-line-text.php +7 -3
  26. inc/classes/parts/class-part-number.php +7 -3
  27. inc/classes/parts/class-part-phone.php +7 -3
  28. inc/classes/parts/class-part-radio.php +21 -10
  29. inc/classes/parts/class-part-rating.php +39 -9
  30. inc/classes/parts/class-part-scale.php +3 -3
  31. inc/classes/parts/class-part-select.php +21 -9
  32. inc/classes/parts/class-part-single-line-text.php +7 -3
  33. inc/classes/parts/class-part-table.php +48 -37
  34. inc/classes/parts/class-part-title.php +3 -3
  35. inc/classes/parts/class-part-website-url.php +7 -3
  36. inc/helpers/helper-form-templates.php +17 -5
  37. inc/helpers/helper-misc.php +48 -1
  38. inc/templates/admin-message-edit.php +9 -3
  39. inc/templates/customize-form-setup.php +29 -0
  40. inc/templates/customize-form-steps.php +1 -1
  41. inc/templates/parts/customize-address.php +9 -6
  42. inc/templates/parts/customize-checkbox.php +6 -4
  43. inc/templates/parts/customize-date.php +6 -4
  44. inc/templates/parts/customize-email.php +8 -5
  45. inc/templates/parts/customize-multi-line-text.php +8 -5
  46. inc/templates/parts/customize-number.php +8 -5
  47. inc/templates/parts/customize-phone.php +8 -5
  48. inc/templates/parts/customize-radio.php +6 -4
  49. inc/templates/parts/customize-rating.php +26 -4
  50. inc/templates/parts/customize-scale.php +6 -4
  51. inc/templates/parts/customize-select.php +6 -4
  52. inc/templates/parts/customize-single-line-text.php +8 -5
  53. inc/templates/parts/customize-table.php +6 -4
  54. inc/templates/parts/customize-title.php +6 -4
  55. inc/templates/parts/customize-website-url.php +8 -5
  56. inc/templates/parts/frontend-address.php +22 -24
  57. inc/templates/parts/frontend-checkbox.php +11 -12
  58. inc/templates/parts/frontend-date-day.php +1 -1
  59. inc/templates/parts/frontend-date-month.php +1 -1
  60. inc/templates/parts/frontend-date.php +5 -5
  61. inc/templates/parts/frontend-email.php +17 -13
  62. inc/templates/parts/frontend-legal.php +5 -6
  63. inc/templates/parts/frontend-multi-line-text.php +11 -8
  64. inc/templates/parts/frontend-narrative.php +17 -15
  65. inc/templates/parts/frontend-number.php +26 -21
  66. inc/templates/parts/frontend-phone.php +11 -6
  67. inc/templates/parts/frontend-placeholder.php +5 -3
  68. inc/templates/parts/frontend-radio.php +9 -5
  69. inc/templates/parts/frontend-rating-scale.php +7 -3
  70. inc/templates/parts/frontend-rating-yesno.php +10 -4
  71. inc/templates/parts/frontend-rating.php +8 -8
  72. inc/templates/parts/frontend-scale.php +19 -19
  73. inc/templates/parts/frontend-select.php +45 -49
  74. inc/templates/parts/frontend-single-line-text.php +11 -8
  75. inc/templates/parts/frontend-table.php +10 -9
  76. inc/templates/parts/frontend-title.php +46 -45
  77. inc/templates/parts/frontend-website-url.php +10 -8
  78. languages/happyforms.pot +714 -607
  79. readme.txt +15 -1
assets/css/customize.css CHANGED
@@ -292,6 +292,14 @@ a.happyforms-form-part-remove:hover {
292
  color: #72777c;
293
  }
294
 
 
 
 
 
 
 
 
 
295
  /**
296
  *
297
  * Form edit
@@ -300,7 +308,8 @@ a.happyforms-form-part-remove:hover {
300
  #happyforms-captcha-settings,
301
  #happyforms-alert-email-settings,
302
  #happyforms-confirmation-email-settings,
303
- #happyforms-review-button-label-settings {
 
304
  display: none;
305
  }
306
 
292
  color: #72777c;
293
  }
294
 
295
+ .customize-control input.happyforms-self-spaced-input {
296
+ margin: 0.5em 0;
297
+ }
298
+
299
+ .customize-control input.happyforms-self-spaced-input:first-child {
300
+ margin-top: 0;
301
+ }
302
+
303
  /**
304
  *
305
  * Form edit
308
  #happyforms-captcha-settings,
309
  #happyforms-alert-email-settings,
310
  #happyforms-confirmation-email-settings,
311
+ #happyforms-review-button-label-settings,
312
+ #happyforms-unique-id-settings {
313
  display: none;
314
  }
315
 
assets/css/frontend.css CHANGED
@@ -230,6 +230,7 @@ h3.happyforms-form__title {
230
  .happyforms-part__label .label {
231
  padding: 0;
232
  font-weight: normal;
 
233
  font-size: 16px;
234
  font-size: var(--happyforms-part-title-font-size);
235
  color: #000;
@@ -246,6 +247,15 @@ h3.happyforms-form__title {
246
  color: var(--happyforms-color-primary);
247
  }
248
 
 
 
 
 
 
 
 
 
 
249
  .happyforms-form--part-description-text-align-center .happyforms-part__description {
250
  text-align: center;
251
  }
@@ -267,7 +277,7 @@ h3.happyforms-form__title {
267
  .happyforms-part input[type=tel],
268
  .happyforms-part input[type=number],
269
  .happyforms-part input[type=range],
270
- .happyforms-part textarea.happyforms-part__el {
271
  width: 100%;
272
  max-width: none;
273
  height: auto !important;
@@ -452,6 +462,10 @@ h3.happyforms-form__title {
452
  order: 2;
453
  }
454
 
 
 
 
 
455
  .happyforms-part--label-left .happyforms-part__description {
456
  width: 100%;
457
  }
@@ -467,11 +481,10 @@ h3.happyforms-form__title {
467
  float: none;
468
  width: 25%;
469
  margin-bottom: 0;
470
- align-self: center;
471
  }
472
  }
473
 
474
- .happyforms-part--label-left .happyforms-custom-select,
475
  .happyforms-part--label-left .happyforms-part-wrap > .happyforms-part__el {
476
  width: 75%;
477
  }
@@ -493,13 +506,6 @@ h3.happyforms-form__title {
493
  }
494
  }
495
 
496
- .happyforms-part--label-below input.happyforms-part__el,
497
- .happyforms-part--label-below textarea.happyforms-part__el {
498
- position: relative;
499
- top: 5px;
500
- margin-bottom: 10px;
501
- }
502
-
503
  /* parts - option labels */
504
 
505
  .happyforms-part .option-label {
@@ -821,6 +827,7 @@ h3.happyforms-form__title {
821
  align-items: center;
822
  justify-content: center;
823
  width: 20px;
 
824
  height: 20px;
825
  border-radius: 50%;
826
  border: 1px solid;
@@ -1002,18 +1009,20 @@ h3.happyforms-form__title {
1002
  color: var(--happyforms-color-part-placeholder);
1003
  }
1004
 
 
 
 
 
 
 
 
 
 
1005
  .happyforms-part--scale-multiple .happyforms-part--scale__labels {
1006
  position: absolute;
1007
  top: -40px;
1008
  }
1009
 
1010
- .happyforms-part--label-left .happyforms-part--scale__inputwrap {
1011
- position: relative;
1012
- top: 10px;
1013
- float: right;
1014
- width: 75%;
1015
- }
1016
-
1017
  .happyforms-part--scale-multiple .happyforms-part--scale__inputwrap {
1018
  position: relative;
1019
  }
@@ -1059,6 +1068,7 @@ h3.happyforms-form__title {
1059
  order: 3;
1060
  }
1061
 
 
1062
  .happyforms-part--label-below .happyforms-custom-select {
1063
  width: 100%;
1064
  }
@@ -1347,25 +1357,42 @@ h3.happyforms-form__title {
1347
  display: flex;
1348
  }
1349
 
1350
- .happyforms-rating--smileys .happyforms-part__el label,
1351
- .happyforms-rating--thumbs .happyforms-part__el label {
 
 
 
 
 
 
 
 
 
 
 
 
1352
  cursor: pointer;
 
1353
  display: flex;
1354
  justify-content: center;
1355
  margin-right: 10px;
1356
- width: 45px;
1357
- height: 45px;
1358
- border-radius: 50%;
1359
- background-color: #efefef;
1360
- background-color: var(--happyforms-color-rating-bg);
1361
  }
1362
 
1363
  .happyforms-rating--smileys .happyforms-part__el input:checked + label,
1364
  .happyforms-rating--thumbs .happyforms-part__el input:checked + label,
1365
  .happyforms-rating--smileys .happyforms-part__el label:hover,
1366
  .happyforms-rating--thumbs .happyforms-part__el label:hover {
1367
- background-color: #407fff;
1368
- background-color: var(--happyforms-color-rating-bg-hover);
 
 
 
 
1369
  }
1370
 
1371
  .happyforms-rating--smileys label img,
@@ -1376,6 +1403,28 @@ h3.happyforms-form__title {
1376
  transition: width var(--happyforms-transition-duration) ease-in-out;
1377
  }
1378
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1379
  /* parts - legal */
1380
 
1381
  .happyforms-part--legal .option-label {
@@ -1392,6 +1441,13 @@ h3.happyforms-form__title {
1392
  font-size: var(--happyforms-part-value-font-size);
1393
  }
1394
 
 
 
 
 
 
 
 
1395
  /* parts - address */
1396
 
1397
  .happyforms-part--address .happyforms-part-el-wrap {
@@ -1402,22 +1458,31 @@ h3.happyforms-form__title {
1402
  order: 3;
1403
  }
1404
 
1405
- .happyforms-part--label-left.happyforms-part--address .happyforms-part-el-wrap {
1406
- width: 75%;
1407
- }
1408
-
1409
  .happyforms-part--address.happyforms-part--address-country-city .happyforms-part-el-wrap {
1410
  display: flex;
1411
- flex-direction: row;
1412
- flex-wrap: wrap;
 
 
 
 
 
 
1413
  }
1414
 
1415
  .happyforms-part--address .happyforms-part__el {
1416
  position: relative;
 
1417
  }
1418
 
1419
- .happyforms-part--address.happyforms-part--address-country-city .happyforms-part__el {
1420
- width: 50%;
 
 
 
 
 
 
1421
  }
1422
 
1423
  @media screen and (max-width: 800px) {
@@ -1426,6 +1491,10 @@ h3.happyforms-form__title {
1426
  margin-bottom: 20px;
1427
  }
1428
 
 
 
 
 
1429
  .happyforms-part--address.happyforms-part--address-country-city .happyforms-part__el:last-child {
1430
  width: 100%;
1431
  margin-bottom: 0;
@@ -1501,6 +1570,16 @@ h3.happyforms-form__title {
1501
  display: flex;
1502
  }
1503
 
 
 
 
 
 
 
 
 
 
 
1504
  .happyforms-part--address-has-geolocation .happyforms-part__dummy-input > input {
1505
  flex: 1 0;
1506
  }
@@ -1514,6 +1593,8 @@ h3.happyforms-form__title {
1514
  }
1515
 
1516
  a.address-geolocate {
 
 
1517
  flex: 0 0 auto;
1518
  order: 2;
1519
  height: auto !important;
@@ -1538,6 +1619,7 @@ a.address-geolocate {
1538
  color: var(--happyforms-color-part-value);
1539
  transition: border-color 0.4s;
1540
  transition: border-color var(--happyforms-transition-duration);
 
1541
  }
1542
 
1543
  a.address-geolocate svg {
@@ -1566,6 +1648,7 @@ a.address-geolocate span {
1566
 
1567
  .happyforms-part input[type=text]:focus + a.address-geolocate {
1568
  border-width: 1px;
 
1569
  border-style: solid;
1570
  border-color: #407fff;
1571
  border-color: var(--happyforms-color-part-border-focus);
@@ -1574,6 +1657,7 @@ a.address-geolocate span {
1574
  border-bottom-left-radius: 0;
1575
  background-color: #fff;
1576
  background-color: var(--happyforms-color-part-background-focus);
 
1577
  }
1578
 
1579
  .happyforms-form--part-border-radius-square a.address-geolocate {
@@ -1706,6 +1790,12 @@ form > .happyforms-message-notices .error {
1706
  font-size: 16px !important;
1707
  }
1708
 
 
 
 
 
 
 
1709
  .happyforms-form__part .happyforms-message-notices h2 {
1710
  font-weight: normal !important;
1711
  font-size: 16px !important;
@@ -2201,10 +2291,6 @@ form > .happyforms-message-notices .error {
2201
  .happyforms-part--table .happyforms-part__el {
2202
  width: 100%;
2203
  }
2204
- .happyforms-part--label-left .happyforms-table,
2205
- .happyforms-part--label-below .happyforms-table {
2206
- margin-top: 30px;
2207
- }
2208
  .happyforms-table__row {
2209
  display: flex;
2210
  width: 100%;
@@ -2611,6 +2697,10 @@ form > .happyforms-message-notices .error {
2611
  line-height: 2.7;
2612
  }
2613
 
 
 
 
 
2614
  .happyforms-part--narrative input[type=text] {
2615
  display: inline-block;
2616
  width: auto;
230
  .happyforms-part__label .label {
231
  padding: 0;
232
  font-weight: normal;
233
+ font-style: normal;
234
  font-size: 16px;
235
  font-size: var(--happyforms-part-title-font-size);
236
  color: #000;
247
  color: var(--happyforms-color-primary);
248
  }
249
 
250
+ .happyforms-part--focus-reveal-description .happyforms-part__description {
251
+ display: none;
252
+ }
253
+
254
+ .happyforms-part--focus-reveal-description input:focus + .happyforms-part__description,
255
+ .happyforms-part--focus-reveal-description textarea:focus + .happyforms-part__description {
256
+ display: block;
257
+ }
258
+
259
  .happyforms-form--part-description-text-align-center .happyforms-part__description {
260
  text-align: center;
261
  }
277
  .happyforms-part input[type=tel],
278
  .happyforms-part input[type=number],
279
  .happyforms-part input[type=range],
280
+ .happyforms-part textarea {
281
  width: 100%;
282
  max-width: none;
283
  height: auto !important;
462
  order: 2;
463
  }
464
 
465
+ .happyforms-part--date .happyforms-part__description {
466
+ width: 100%;
467
+ }
468
+
469
  .happyforms-part--label-left .happyforms-part__description {
470
  width: 100%;
471
  }
481
  float: none;
482
  width: 25%;
483
  margin-bottom: 0;
484
+ align-self: flex-start;
485
  }
486
  }
487
 
 
488
  .happyforms-part--label-left .happyforms-part-wrap > .happyforms-part__el {
489
  width: 75%;
490
  }
506
  }
507
  }
508
 
 
 
 
 
 
 
 
509
  /* parts - option labels */
510
 
511
  .happyforms-part .option-label {
827
  align-items: center;
828
  justify-content: center;
829
  width: 20px;
830
+ min-width: 20px;
831
  height: 20px;
832
  border-radius: 50%;
833
  border: 1px solid;
1009
  color: var(--happyforms-color-part-placeholder);
1010
  }
1011
 
1012
+ .happyforms-part--scale .happyforms-part__el {
1013
+ display: flex;
1014
+ flex-flow: column wrap;
1015
+ }
1016
+
1017
+ .happyforms-part--scale .happyforms-part__description {
1018
+ margin-top: 30px;
1019
+ }
1020
+
1021
  .happyforms-part--scale-multiple .happyforms-part--scale__labels {
1022
  position: absolute;
1023
  top: -40px;
1024
  }
1025
 
 
 
 
 
 
 
 
1026
  .happyforms-part--scale-multiple .happyforms-part--scale__inputwrap {
1027
  position: relative;
1028
  }
1068
  order: 3;
1069
  }
1070
 
1071
+ .happyforms-part--label-below .happyforms-part__el,
1072
  .happyforms-part--label-below .happyforms-custom-select {
1073
  width: 100%;
1074
  }
1357
  display: flex;
1358
  }
1359
 
1360
+ @media screen and (max-width: 800px) {
1361
+ .happyforms-rating--smileys .happyforms-part__el,
1362
+ .happyforms-rating--thumbs .happyforms-part__el {
1363
+ flex-flow: column wrap;
1364
+ }
1365
+
1366
+ .happyforms-rating--thumbs .happyforms-part__el label,
1367
+ .happyforms-rating--smileys .happyforms-part__el label {
1368
+ margin-bottom: 10px;
1369
+ }
1370
+ }
1371
+
1372
+ .happyforms-rating--thumbs .happyforms-part__el label,
1373
+ .happyforms-rating--smileys .happyforms-part__el label {
1374
  cursor: pointer;
1375
+ flex: 0 1 auto;
1376
  display: flex;
1377
  justify-content: center;
1378
  margin-right: 10px;
1379
+ border: 1px solid #dbdbdb;
1380
+ border: 1px solid var(--happyforms-color-part-border);
1381
+ border-radius: 6px;
1382
+ background-color: #fff;
1383
+ background-color: var(--happyforms-color-part-background);
1384
  }
1385
 
1386
  .happyforms-rating--smileys .happyforms-part__el input:checked + label,
1387
  .happyforms-rating--thumbs .happyforms-part__el input:checked + label,
1388
  .happyforms-rating--smileys .happyforms-part__el label:hover,
1389
  .happyforms-rating--thumbs .happyforms-part__el label:hover {
1390
+ border-color: #407fff !important;
1391
+ border-color: var(--happyforms-color-part-border-focus) !important;
1392
+ background-color: #fff;
1393
+ background-color: var(--happyforms-color-part-background-focus);
1394
+ box-shadow: inset 0 0 0 1px #407fff;
1395
+ box-shadow: inset 0 0 0 1px var(--happyforms-color-part-border-focus);
1396
  }
1397
 
1398
  .happyforms-rating--smileys label img,
1403
  transition: width var(--happyforms-transition-duration) ease-in-out;
1404
  }
1405
 
1406
+ .happyforms-rating__item-wrap {
1407
+ display: flex;
1408
+ flex-flow: row nowrap;
1409
+ align-items: center;
1410
+ justify-content: space-between;
1411
+ padding: 10px;
1412
+ }
1413
+
1414
+ .happyforms-rating__item-wrap .happyforms-rating__item-label {
1415
+ margin-left: 10px;
1416
+ font-size: 16px;
1417
+ font-size: var(--happyforms-part-value-font-size);
1418
+ color: #000;
1419
+ color: var(--happyforms-color-part-value);
1420
+ }
1421
+
1422
+ .happyforms-rating--smileys .happyforms-part__el input:checked + label .happyforms-rating__item-label,
1423
+ .happyforms-rating--smileys .happyforms-part__el label:hover .happyforms-rating__item-label {
1424
+ color: #000;
1425
+ color: var(--happyforms-color-part-value);
1426
+ }
1427
+
1428
  /* parts - legal */
1429
 
1430
  .happyforms-part--legal .option-label {
1441
  font-size: var(--happyforms-part-value-font-size);
1442
  }
1443
 
1444
+ @media screen and (min-width: 800px) {
1445
+ .happyforms-part-legal--align-right .happyforms-part__el {
1446
+ float: right;
1447
+ width: 75%;
1448
+ }
1449
+ }
1450
+
1451
  /* parts - address */
1452
 
1453
  .happyforms-part--address .happyforms-part-el-wrap {
1458
  order: 3;
1459
  }
1460
 
 
 
 
 
1461
  .happyforms-part--address.happyforms-part--address-country-city .happyforms-part-el-wrap {
1462
  display: flex;
1463
+ flex-flow: row wrap;
1464
+ justify-content: space-between;
1465
+ }
1466
+
1467
+ @media screen and (max-width: 800px) {
1468
+ .happyforms-part--address.happyforms-part--address-country-city .happyforms-part-el-wrap {
1469
+ flex-flow: column wrap;
1470
+ }
1471
  }
1472
 
1473
  .happyforms-part--address .happyforms-part__el {
1474
  position: relative;
1475
+ width: 100%;
1476
  }
1477
 
1478
+ .happyforms-part--address .happyforms-part-el-wrap .address-city {
1479
+ flex: 1;
1480
+ max-width: 49%;
1481
+ }
1482
+
1483
+ .happyforms-part--address-has-geolocation.happyforms-part--address-country-city .happyforms-part__dummy-input {
1484
+ flex: 1;
1485
+ max-width: 49%;
1486
  }
1487
 
1488
  @media screen and (max-width: 800px) {
1491
  margin-bottom: 20px;
1492
  }
1493
 
1494
+ .happyforms-part--address-has-geolocation.happyforms-part--address-country-city .happyforms-part__dummy-input {
1495
+ max-width: 100%;
1496
+ }
1497
+
1498
  .happyforms-part--address.happyforms-part--address-country-city .happyforms-part__el:last-child {
1499
  width: 100%;
1500
  margin-bottom: 0;
1570
  display: flex;
1571
  }
1572
 
1573
+ @media screen and (max-width: 800px) {
1574
+ .happyforms-part--address-has-geolocation .happyforms-part__dummy-input {
1575
+ max-width: 100%;
1576
+ margin-bottom: 10px;
1577
+ }
1578
+ .happyforms-part--address .happyforms-part-el-wrap .address-city {
1579
+ max-width: 100%;
1580
+ }
1581
+ }
1582
+
1583
  .happyforms-part--address-has-geolocation .happyforms-part__dummy-input > input {
1584
  flex: 1 0;
1585
  }
1593
  }
1594
 
1595
  a.address-geolocate {
1596
+ position: relative;
1597
+ left: -2px;
1598
  flex: 0 0 auto;
1599
  order: 2;
1600
  height: auto !important;
1619
  color: var(--happyforms-color-part-value);
1620
  transition: border-color 0.4s;
1621
  transition: border-color var(--happyforms-transition-duration);
1622
+ box-shadow: inset -1px -1px -1px 1px var(--happyforms-color-part-border);
1623
  }
1624
 
1625
  a.address-geolocate svg {
1648
 
1649
  .happyforms-part input[type=text]:focus + a.address-geolocate {
1650
  border-width: 1px;
1651
+ border-right-width: 0;
1652
  border-style: solid;
1653
  border-color: #407fff;
1654
  border-color: var(--happyforms-color-part-border-focus);
1657
  border-bottom-left-radius: 0;
1658
  background-color: #fff;
1659
  background-color: var(--happyforms-color-part-background-focus);
1660
+ box-shadow: inset -1px 0px 0px 1px var(--happyforms-color-part-border-focus)
1661
  }
1662
 
1663
  .happyforms-form--part-border-radius-square a.address-geolocate {
1790
  font-size: 16px !important;
1791
  }
1792
 
1793
+ .happyforms-message-notices h2 span {
1794
+ display: block;
1795
+ font-weight: normal;
1796
+ font-size: 14px;
1797
+ }
1798
+
1799
  .happyforms-form__part .happyforms-message-notices h2 {
1800
  font-weight: normal !important;
1801
  font-size: 16px !important;
2291
  .happyforms-part--table .happyforms-part__el {
2292
  width: 100%;
2293
  }
 
 
 
 
2294
  .happyforms-table__row {
2295
  display: flex;
2296
  width: 100%;
2697
  line-height: 2.7;
2698
  }
2699
 
2700
+ .happyforms-part--narrative.happyforms-part--label-left .happyforms-part__label {
2701
+ line-height: 2.7;
2702
+ }
2703
+
2704
  .happyforms-part--narrative input[type=text] {
2705
  display: inline-block;
2706
  width: auto;
assets/css/preview.css CHANGED
@@ -71,4 +71,9 @@ a.happyforms-ask-link.customize-unpreviewable {
71
 
72
  .happyforms-part--width-auto + .happyforms-part--recaptcha {
73
  display: none !important;
 
 
 
 
 
74
  }
71
 
72
  .happyforms-part--width-auto + .happyforms-part--recaptcha {
73
  display: none !important;
74
+ }
75
+
76
+ .happyforms-part--focus-reveal-description input:focus + .happyforms-part__tooltip + .happyforms-part__description,
77
+ .happyforms-part--focus-reveal-description textarea:focus + .happyforms-part__tooltip + .happyforms-part__description {
78
+ display: block;
79
  }
assets/img/flags.png DELETED
Binary file
assets/js/admin/dashboard.js CHANGED
@@ -1,6 +1,6 @@
1
  ( function( $ ) {
2
  // Dismissible notices
3
- $( '.notice:not(.one-time)' ).on( 'click', '.notice-dismiss', function( e ) {
4
  e.preventDefault();
5
 
6
  var $target = $( e.target );
1
  ( function( $ ) {
2
  // Dismissible notices
3
+ $( '.happyforms-notice:not(.one-time)' ).on( 'click', '.notice-dismiss', function( e ) {
4
  e.preventDefault();
5
 
6
  var $target = $( e.target );
assets/js/customize.js CHANGED
@@ -790,11 +790,10 @@
790
  this.listenTo( this.model, 'change:required', this.onRequiredCheckboxChange );
791
  this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
792
  this.listenTo( this.model, 'change:description', this.onDescriptionChange );
793
- this.listenTo( this.model, 'change:tooltip_description', this.onTooltipDescriptionChange );
794
  this.listenTo( this.model, 'change:label_placement', this.onLabelPlacementChange );
795
  this.listenTo( this.model, 'change:css_class', this.onCSSClassChange );
796
- this.listenTo( this, 'reveal-tooltip-checkbox', this.onRevealTooltipCheckbox );
797
- this.listenTo( this, 'conceal-tooltip-checkbox', this.onConcealTooltipCheckbox );
798
 
799
  this.listenTo( this, 'widget-expand', this.expand );
800
  this.listenTo( this, 'widget-collapse', this.collapse );
@@ -1039,10 +1038,10 @@
1039
  };
1040
 
1041
  if ( value ) {
1042
- this.trigger('reveal-tooltip-checkbox');
1043
  } else {
1044
  model.set('tooltip_description', 0);
1045
- this.trigger('conceal-tooltip-checkbox');
1046
  }
1047
 
1048
  api.previewer.send( 'happyforms-part-dom-update', data );
@@ -1055,10 +1054,10 @@
1055
  *
1056
  * @return void
1057
  */
1058
- onTooltipDescriptionChange: function() {
1059
  var data = {
1060
- id: this.model.id,
1061
- callback: 'onTooltipDescriptionChangeCallback',
1062
  };
1063
 
1064
  api.previewer.send( 'happyforms-part-dom-update', data );
@@ -1085,6 +1084,12 @@
1085
  $globalWrap.fadeIn();
1086
  }
1087
 
 
 
 
 
 
 
1088
  model.fetchHtml( function( response ) {
1089
  var data = {
1090
  id: model.get( 'id' ),
@@ -1125,18 +1130,31 @@
1125
  });
1126
  },
1127
 
1128
- onRevealTooltipCheckbox: function() {
1129
- this.$el.find('.tooltip-description-wrap').fadeIn();
1130
  },
1131
 
1132
- onConcealTooltipCheckbox: function() {
1133
- var $descriptionWrap = this.$el.find('.tooltip-description-wrap');
1134
 
1135
- $descriptionWrap.fadeOut(200, function() {
1136
- $descriptionWrap.find('input').prop('checked', false);
1137
  });
1138
  },
1139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1140
  onAdvancedSettingsClick: function(e) {
1141
  var $link = $(e.target);
1142
  var $advancedSettingsWrap = this.$el.find('.happyforms-part-advanced-settings-wrap');
@@ -1179,6 +1197,7 @@
1179
  this.listenTo( this.model, 'change:captcha_secret_key', this.onChangeCaptchaKey );
1180
  this.listenTo( this.model, 'change:submit_button_label', this.onSubmitButtonLabelChange );
1181
  this.listenTo( this.model, 'change:preview_before_submit', this.onPreviewBeforeSubmitChange );
 
1182
  },
1183
 
1184
  render: function() {
@@ -1340,6 +1359,16 @@
1340
  }
1341
  },
1342
 
 
 
 
 
 
 
 
 
 
 
1343
  remove: function() {
1344
  _.each( this.editorIds, function( editorId ) {
1345
  wp.editor.remove( editorId );
@@ -1763,18 +1792,29 @@
1763
  $description.text(description);
1764
  },
1765
 
1766
- onTooltipDescriptionChangeCallback: function( id, html ) {
1767
  var part = happyForms.form.get( 'parts' ).get( id );
1768
  var $part = this.$( html );
1769
  var $description = this.$( '.happyforms-tooltip + .happyforms-part__description', $part );
1770
  var $tooltip = this.$( '.happyforms-part__tooltip', $part );
1771
 
1772
- if ( part.get( 'tooltip_description' ) === 1 ) {
1773
- $tooltip.show();
1774
- $description.hide();
1775
- } else {
1776
- $tooltip.hide();
1777
- $description.show();
 
 
 
 
 
 
 
 
 
 
 
1778
  }
1779
  },
1780
 
@@ -1835,6 +1875,18 @@
1835
  $recaptcha.hide();
1836
  $recaptcha.happyFormPart( 'reset' );
1837
  }
 
 
 
 
 
 
 
 
 
 
 
 
1838
  }
1839
  };
1840
 
790
  this.listenTo( this.model, 'change:required', this.onRequiredCheckboxChange );
791
  this.listenTo( this.model, 'change:placeholder', this.onPlaceholderChange );
792
  this.listenTo( this.model, 'change:description', this.onDescriptionChange );
793
+ this.listenTo( this.model, 'change:description_mode', this.onDescriptionModeChange );
794
  this.listenTo( this.model, 'change:label_placement', this.onLabelPlacementChange );
795
  this.listenTo( this.model, 'change:css_class', this.onCSSClassChange );
796
+ this.listenTo( this.model, 'change:focus_reveal_description', this.onFocusRevealDescriptionChange );
 
797
 
798
  this.listenTo( this, 'widget-expand', this.expand );
799
  this.listenTo( this, 'widget-collapse', this.collapse );
1038
  };
1039
 
1040
  if ( value ) {
1041
+ this.showDescriptionOptions();
1042
  } else {
1043
  model.set('tooltip_description', 0);
1044
+ this.hideDescriptionOptions();
1045
  }
1046
 
1047
  api.previewer.send( 'happyforms-part-dom-update', data );
1054
  *
1055
  * @return void
1056
  */
1057
+ onDescriptionModeChange: function( model, value ) {
1058
  var data = {
1059
+ id: model.id,
1060
+ callback: 'onDescriptionModeChangeCallback',
1061
  };
1062
 
1063
  api.previewer.send( 'happyforms-part-dom-update', data );
1084
  $globalWrap.fadeIn();
1085
  }
1086
 
1087
+ if ( 'as_placeholder' === value ) {
1088
+ $( '.happyforms-placeholder-option', this.$el ).hide();
1089
+ } else {
1090
+ $( '.happyforms-placeholder-option', this.$el ).show();
1091
+ }
1092
+
1093
  model.fetchHtml( function( response ) {
1094
  var data = {
1095
  id: model.get( 'id' ),
1130
  });
1131
  },
1132
 
1133
+ showDescriptionOptions: function() {
1134
+ this.$el.find('.happyforms-description-options').fadeIn();
1135
  },
1136
 
1137
+ hideDescriptionOptions: function() {
1138
+ var $descriptionOptionsWrap = this.$el.find('.happyforms-description-options');
1139
 
1140
+ $descriptionOptionsWrap.fadeOut(200, function() {
1141
+ $descriptionOptionsWrap.find('input').prop('checked', false);
1142
  });
1143
  },
1144
 
1145
+ onFocusRevealDescriptionChange: function( model, value ) {
1146
+ if ( 1 == value && 1 == model.get( 'tooltip_description' ) ) {
1147
+ $( '[data-bind=tooltip_description]', this.$el ).prop('checked', false ).trigger('change');
1148
+ }
1149
+
1150
+ var data = {
1151
+ id: this.model.id,
1152
+ callback: 'onFocusRevealDescriptionCallback',
1153
+ };
1154
+
1155
+ api.previewer.send('happyforms-part-dom-update', data);
1156
+ },
1157
+
1158
  onAdvancedSettingsClick: function(e) {
1159
  var $link = $(e.target);
1160
  var $advancedSettingsWrap = this.$el.find('.happyforms-part-advanced-settings-wrap');
1197
  this.listenTo( this.model, 'change:captcha_secret_key', this.onChangeCaptchaKey );
1198
  this.listenTo( this.model, 'change:submit_button_label', this.onSubmitButtonLabelChange );
1199
  this.listenTo( this.model, 'change:preview_before_submit', this.onPreviewBeforeSubmitChange );
1200
+ this.listenTo( this.model, 'change:unique_id', this.onUniqueIDChange );
1201
  },
1202
 
1203
  render: function() {
1359
  }
1360
  },
1361
 
1362
+ onUniqueIDChange: function() {
1363
+ var $uniqueIDSettings = $( '#happyforms-unique-id-settings', this.$el );
1364
+
1365
+ if ( this.model.get( 'unique_id' ) ) {
1366
+ $uniqueIDSettings.show();
1367
+ } else {
1368
+ $uniqueIDSettings.hide();
1369
+ }
1370
+ },
1371
+
1372
  remove: function() {
1373
  _.each( this.editorIds, function( editorId ) {
1374
  wp.editor.remove( editorId );
1792
  $description.text(description);
1793
  },
1794
 
1795
+ onDescriptionModeChangeCallback: function( id, html ) {
1796
  var part = happyForms.form.get( 'parts' ).get( id );
1797
  var $part = this.$( html );
1798
  var $description = this.$( '.happyforms-tooltip + .happyforms-part__description', $part );
1799
  var $tooltip = this.$( '.happyforms-part__tooltip', $part );
1800
 
1801
+ switch( part.get( 'description_mode' ) ) {
1802
+ case 'focus-reveal':
1803
+ $tooltip.hide();
1804
+ $description.show();
1805
+ $part.addClass('happyforms-part--focus-reveal-description');
1806
+ break;
1807
+ case 'tooltip':
1808
+ $tooltip.show();
1809
+ $description.hide();
1810
+ $part.removeClass('happyforms-part--focus-reveal-description');
1811
+ break;
1812
+ case '':
1813
+ default:
1814
+ $tooltip.hide();
1815
+ $description.show();
1816
+ $part.removeClass('happyforms-part--focus-reveal-description');
1817
+ break;
1818
  }
1819
  },
1820
 
1875
  $recaptcha.hide();
1876
  $recaptcha.happyFormPart( 'reset' );
1877
  }
1878
+ },
1879
+
1880
+ onFocusRevealDescriptionCallback: function( id, html, options ) {
1881
+ var part = happyForms.form.get( 'parts' ).get( id );
1882
+ var $part = this.$( html );
1883
+ var focusRevealDescription = part.get('focus_reveal_description');
1884
+
1885
+ if ( 1 == focusRevealDescription ) {
1886
+ $part.addClass( 'happyforms-part--focus-reveal-description' );
1887
+ } else {
1888
+ $part.removeClass( 'happyforms-part--focus-reveal-description' );
1889
+ }
1890
  }
1891
  };
1892
 
assets/js/lib/happyforms-select.js CHANGED
@@ -128,13 +128,13 @@
128
  var value = this.$input.val();
129
  var self = this;
130
 
131
- if ( value ) {
132
  $( 'li', this.$dropdown ).each(function( i, li ) {
133
  var $li = $(li);
134
  var liValue = $li.data('value');
135
  var liLabel = ( $li.data('label') && $li.data('label').length ) ? $li.data('label') : '';
136
 
137
- if ( liValue && liValue.toString() === value || liLabel.toString() === value ) {
138
  self.$select.val(liValue);
139
 
140
  if ( liLabel ) {
128
  var value = this.$input.val();
129
  var self = this;
130
 
131
+ if ( value || ! isNaN( parseInt(value, 10) ) ) {
132
  $( 'li', this.$dropdown ).each(function( i, li ) {
133
  var $li = $(li);
134
  var liValue = $li.data('value');
135
  var liLabel = ( $li.data('label') && $li.data('label').length ) ? $li.data('label') : '';
136
 
137
+ if ( ( liValue.length || ! isNaN( parseInt( liValue, 10 ) ) ) && liValue.toString() === value || liLabel.toString() === value ) {
138
  self.$select.val(liValue);
139
 
140
  if ( liLabel ) {
assets/js/parts/part-address.js CHANGED
@@ -48,13 +48,6 @@
48
 
49
  var $labelPlacementSelect = this.$el.find('[data-bind=label_placement]');
50
 
51
- if ( 'country-city' === value ) {
52
- $labelPlacementSelect.val('above').attr('disabled', 'disabled');
53
- model.set('label_placement', 'above', { silent: true });
54
- } else {
55
- $labelPlacementSelect.removeAttr('disabled');
56
- }
57
-
58
  model.fetchHtml( function( response ) {
59
  var data = {
60
  id: model.get( 'id' ),
48
 
49
  var $labelPlacementSelect = this.$el.find('[data-bind=label_placement]');
50
 
 
 
 
 
 
 
 
51
  model.fetchHtml( function( response ) {
52
  var data = {
53
  id: model.get( 'id' ),
assets/js/parts/part-checkbox.js CHANGED
@@ -66,8 +66,10 @@
66
  appendOptionPartial: function( itemModel ) {
67
  var customizeTemplate = _.template( $( this.itemCustomizeTemplate ).html() );
68
  var customizeHTML = customizeTemplate( { item: itemModel.toJSON() } );
 
69
 
70
- $( '.options ul', this.$el ).append( customizeHTML );
 
71
  },
72
 
73
  onAddOptionClick: function( e ) {
66
  appendOptionPartial: function( itemModel ) {
67
  var customizeTemplate = _.template( $( this.itemCustomizeTemplate ).html() );
68
  var customizeHTML = customizeTemplate( { item: itemModel.toJSON() } );
69
+ var $optionEl = $(customizeHTML);
70
 
71
+ $( '.options ul', this.$el ).append( $optionEl );
72
+ $( 'input[type=text]', $optionEl ).focus();
73
  },
74
 
75
  onAddOptionClick: function( e ) {
assets/js/parts/part-radio.js CHANGED
@@ -68,8 +68,10 @@
68
  appendOptionPartial: function( itemModel ) {
69
  var customizeTemplate = _.template( $( this.itemCustomizeTemplate ).html() );
70
  var customizeHTML = customizeTemplate( { item: itemModel.toJSON() } );
 
71
 
72
- $( '.options ul', this.$el ).append( customizeHTML );
 
73
  },
74
 
75
  onAddOptionClick: function( e ) {
68
  appendOptionPartial: function( itemModel ) {
69
  var customizeTemplate = _.template( $( this.itemCustomizeTemplate ).html() );
70
  var customizeHTML = customizeTemplate( { item: itemModel.toJSON() } );
71
+ var $optionEl = $(customizeHTML);
72
 
73
+ $( '.options ul', this.$el ).append( $optionEl );
74
+ $( 'input[name=option_label]', $optionEl ).focus();
75
  },
76
 
77
  onAddOptionClick: function( e ) {
assets/js/parts/part-rating.js CHANGED
@@ -17,9 +17,14 @@
17
  happyForms.classes.views.Part.prototype.initialize.apply(this, arguments);
18
 
19
  this.listenTo( this.model, 'change:rating_type', this.onRatingTypeChange );
20
- this.listenTo( this.model, 'change:rating_visuals', this.refreshRatingPart );
21
  },
22
 
 
 
 
 
 
23
  onRatingTypeChange: function( model, value ) {
24
  var $ratingVisualsDropdown = $( 'select[data-bind=rating_visuals]', this.$el );
25
  var newValue = $( 'option.' + value + '-default', $ratingVisualsDropdown ).attr( 'value' );
@@ -32,6 +37,36 @@
32
  } else {
33
  this.refreshRatingPart();
34
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  },
36
 
37
  refreshRatingPart: function () {
@@ -45,6 +80,37 @@
45
 
46
  happyForms.previewSendBuffered('happyforms-form-part-refresh', data);
47
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  }
49
  } );
50
 
17
  happyForms.classes.views.Part.prototype.initialize.apply(this, arguments);
18
 
19
  this.listenTo( this.model, 'change:rating_type', this.onRatingTypeChange );
20
+ this.listenTo( this.model, 'change:rating_visuals', this.onRatingVisualsChange );
21
  },
22
 
23
+ events: _.extend( {}, happyForms.classes.views.Part.prototype.events, {
24
+ 'keyup input.rating-label': 'updateRatingLabels',
25
+ 'change input.rating-label': 'updateRatingLabels',
26
+ } ),
27
+
28
  onRatingTypeChange: function( model, value ) {
29
  var $ratingVisualsDropdown = $( 'select[data-bind=rating_visuals]', this.$el );
30
  var newValue = $( 'option.' + value + '-default', $ratingVisualsDropdown ).attr( 'value' );
37
  } else {
38
  this.refreshRatingPart();
39
  }
40
+
41
+ this.toggleRatingLabels();
42
+ },
43
+
44
+ onRatingVisualsChange: function() {
45
+ this.toggleRatingLabels();
46
+ this.refreshRatingPart();
47
+ },
48
+
49
+ toggleRatingLabels: function() {
50
+ var ratingType = this.model.get( 'rating_type' );
51
+ var ratingVisuals = this.model.get( 'rating_visuals' );
52
+ var $scaleRatingLabels = $( '.happyforms-rating-labels-scale', this.$el );
53
+ var $yesnoRatingLabels = $( '.happyforms-rating-labels-yesno', this.$el );
54
+
55
+ if ( 'smileys' === ratingVisuals || 'thumbs' === ratingVisuals ) {
56
+ switch( ratingType ) {
57
+ case 'scale':
58
+ $yesnoRatingLabels.hide();
59
+ $scaleRatingLabels.show();
60
+ break;
61
+ case 'yesno':
62
+ $scaleRatingLabels.hide();
63
+ $yesnoRatingLabels.show();
64
+ break;
65
+ }
66
+ } else {
67
+ $scaleRatingLabels.hide();
68
+ $yesnoRatingLabels.hide();
69
+ }
70
  },
71
 
72
  refreshRatingPart: function () {
80
 
81
  happyForms.previewSendBuffered('happyforms-form-part-refresh', data);
82
  });
83
+ },
84
+
85
+ updateRatingLabels: function( e ) {
86
+ var $input = $( e.target );
87
+ var attribute = $input.data( 'attribute' );
88
+ var labels = this.model.get( attribute );
89
+
90
+ labels[$input.data('index')] = $input.val();
91
+
92
+ this.model.set( attribute, labels ).trigger('change');
93
+
94
+ var data = {
95
+ id: this.model.id,
96
+ callback: 'onRatingLabelUpdate',
97
+ options: {
98
+ attribute: attribute,
99
+ index: $input.data('index')
100
+ }
101
+ };
102
+
103
+ api.previewer.send('happyforms-part-dom-update', data );
104
+ }
105
+ } );
106
+
107
+ happyForms.previewer = _.extend( happyForms.previewer, {
108
+ onRatingLabelUpdate: function( id, html, options ) {
109
+ var part = this.getPartModel( id );
110
+ var $part = this.getPartElement( html );
111
+ var $partWrap = $( '.happyforms-part__el', $part );
112
+
113
+ $( 'label:eq('+ options.index + ') .happyforms-rating__item-label', $partWrap ).text( part.get( options.attribute )[options.index] );
114
  }
115
  } );
116
 
assets/js/parts/part-select.js CHANGED
@@ -75,8 +75,10 @@
75
 
76
  var customizeTemplate = _.template( $( this.itemCustomizeTemplate ).html() );
77
  var customizeHTML = customizeTemplate( { item: itemModel.toJSON() } );
 
78
 
79
- $( '.options ul', this.$el ).append( customizeHTML );
 
80
 
81
  if (index && index > 4 && index < totalItems) {
82
  this.$el.find('[data-item-id='+ itemModel.id +']').hide();
75
 
76
  var customizeTemplate = _.template( $( this.itemCustomizeTemplate ).html() );
77
  var customizeHTML = customizeTemplate( { item: itemModel.toJSON() } );
78
+ var $optionEl = $(customizeHTML);
79
 
80
+ $( '.options ul', this.$el ).append( $optionEl );
81
+ $( 'input[type=text]', $optionEl ).focus();
82
 
83
  if (index && index > 4 && index < totalItems) {
84
  this.$el.find('[data-item-id='+ itemModel.id +']').hide();
assets/js/parts/part-table.js CHANGED
@@ -113,15 +113,19 @@
113
  appendColumnPartial: function( columnModel ) {
114
  var customizeTemplate = _.template( $( this.columnCustomizeTemplate ).html() );
115
  var customizeHTML = customizeTemplate( { column: columnModel.toJSON() } );
 
116
 
117
- $( '.options.columns ul', this.$el ).append( customizeHTML );
 
118
  },
119
 
120
  appendRowPartial: function( rowModel ) {
121
  var customizeTemplate = _.template( $( this.rowCustomizeTemplate ).html() );
122
  var customizeHTML = customizeTemplate( { row: rowModel.toJSON() } );
 
123
 
124
- $( '.options.rows ul', this.$el ).append( customizeHTML );
 
125
  },
126
 
127
  onAddColumnClick: function( e ) {
@@ -151,7 +155,6 @@
151
  var columnModel = this.model.get( 'columns' ).get( columnID );
152
 
153
  this.model.get( 'columns' ).remove( columnModel );
154
- $( '[data-column-id="' + columnID + '"]', this.$el ).remove();
155
 
156
  if ( this.model.get( 'columns' ).length == 0 ) {
157
  $( '.options.columns ul', this.$el ).html( '' );
@@ -282,8 +285,7 @@
282
  var $column = $( '#' + options.columnID, $part );
283
  var columnIndex = $column.index() + 1;
284
 
285
- $column.remove();
286
- this.$( 'td:nth-child(' + columnIndex + ')', $part ).remove();
287
  },
288
 
289
  onTableColumnLabelChangeCallback: function( id, html, options ) {
113
  appendColumnPartial: function( columnModel ) {
114
  var customizeTemplate = _.template( $( this.columnCustomizeTemplate ).html() );
115
  var customizeHTML = customizeTemplate( { column: columnModel.toJSON() } );
116
+ var $columnEl = $(customizeHTML);
117
 
118
+ $( '.options.columns ul', this.$el ).append( $columnEl );
119
+ $( 'input[type=text]', $columnEl ).focus();
120
  },
121
 
122
  appendRowPartial: function( rowModel ) {
123
  var customizeTemplate = _.template( $( this.rowCustomizeTemplate ).html() );
124
  var customizeHTML = customizeTemplate( { row: rowModel.toJSON() } );
125
+ var $rowEl = $(customizeHTML);
126
 
127
+ $( '.options.rows ul', this.$el ).append( $rowEl );
128
+ $( 'input[type=text]', $rowEl ).focus();
129
  },
130
 
131
  onAddColumnClick: function( e ) {
155
  var columnModel = this.model.get( 'columns' ).get( columnID );
156
 
157
  this.model.get( 'columns' ).remove( columnModel );
 
158
 
159
  if ( this.model.get( 'columns' ).length == 0 ) {
160
  $( '.options.columns ul', this.$el ).html( '' );
285
  var $column = $( '#' + options.columnID, $part );
286
  var columnIndex = $column.index() + 1;
287
 
288
+ this.$( '.happyforms-table__cell:nth-child(' + columnIndex + ')', $part ).remove();
 
289
  },
290
 
291
  onTableColumnLabelChangeCallback: function( id, html, options ) {
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.6.3
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.6.3' );
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.6.4
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.6.4' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
inc/classes/class-admin-notices.php CHANGED
@@ -154,7 +154,7 @@ class HappyForms_Admin_Notices {
154
 
155
  foreach ( $notices as $id => $notice ) {
156
  $type = $notice['type'];
157
- $classes = array( 'notice', 'notice-' . $type );
158
  $message = $notice['message'];
159
  $dismissible = wp_validate_boolean( $notice['dismissible'] );
160
  $onetime = wp_validate_boolean( $notice['one-time'] );
@@ -167,7 +167,7 @@ class HappyForms_Admin_Notices {
167
  $classes = implode( ' ', $classes );
168
  ?>
169
  <div id="happyforms-notice-<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( $classes ); ?>"<?php echo $nonce; ?>>
170
- <?php
171
  if ( 'custom' !== $type ) :
172
  echo wpautop( $message );
173
  else:
154
 
155
  foreach ( $notices as $id => $notice ) {
156
  $type = $notice['type'];
157
+ $classes = array( 'happyforms-notice', 'notice', 'notice-' . $type );
158
  $message = $notice['message'];
159
  $dismissible = wp_validate_boolean( $notice['dismissible'] );
160
  $onetime = wp_validate_boolean( $notice['one-time'] );
167
  $classes = implode( ' ', $classes );
168
  ?>
169
  <div id="happyforms-notice-<?php echo esc_attr( $id ); ?>" class="<?php echo esc_attr( $classes ); ?>"<?php echo $nonce; ?>>
170
+ <?php
171
  if ( 'custom' !== $type ) :
172
  echo wpautop( $message );
173
  else:
inc/classes/class-form-controller.php CHANGED
@@ -61,6 +61,7 @@ class HappyForms_Form_Controller {
61
  add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
62
  add_filter( 'happyforms_form_has_captcha', array( $this, 'has_captcha' ), 10, 2 );
63
  add_filter( 'happyforms_get_steps', array( $this, 'steps_add_preview' ), 10, 2 );
 
64
 
65
  add_filter( 'happyforms_get_template_path', array( $this, 'submit_preview_template' ), 10, 2 );
66
  add_filter( 'happyforms_get_template_path', array( $this, 'confirm_preview_partial' ), 20, 2 );
@@ -288,6 +289,22 @@ class HappyForms_Form_Controller {
288
  'default' => __( 'Review submission', 'happyforms' ),
289
  'sanitize' => 'sanitize_text_field',
290
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  );
292
 
293
  /**
@@ -619,6 +636,7 @@ class HappyForms_Form_Controller {
619
 
620
  $part_layout = array();
621
  $parts_data = isset( $form_data['parts'] ) ? $form_data['parts'] : array();
 
622
  $library = happyforms_get_part_library();
623
 
624
  foreach ( $parts_data as $part_data ) {
@@ -637,6 +655,14 @@ class HappyForms_Form_Controller {
637
  return $result;
638
  }
639
 
 
 
 
 
 
 
 
 
640
  /**
641
  * Delete a form post object.
642
  *
@@ -841,6 +867,14 @@ class HappyForms_Form_Controller {
841
  return $steps;
842
  }
843
 
 
 
 
 
 
 
 
 
844
  public function requires_confirmation( $form ) {
845
  return ( 1 === intval( $form['preview_before_submit'] ) );
846
  }
61
  add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
62
  add_filter( 'happyforms_form_has_captcha', array( $this, 'has_captcha' ), 10, 2 );
63
  add_filter( 'happyforms_get_steps', array( $this, 'steps_add_preview' ), 10, 2 );
64
+ add_action( 'happyforms_response_created', array( $this, 'increment_unique_id' ), 10, 2 );
65
 
66
  add_filter( 'happyforms_get_template_path', array( $this, 'submit_preview_template' ), 10, 2 );
67
  add_filter( 'happyforms_get_template_path', array( $this, 'confirm_preview_partial' ), 20, 2 );
289
  'default' => __( 'Review submission', 'happyforms' ),
290
  'sanitize' => 'sanitize_text_field',
291
  ),
292
+ 'unique_id' => array(
293
+ 'default' => 0,
294
+ 'sanitize' => 'happyforms_sanitize_checkbox',
295
+ ),
296
+ 'unique_id_start_from' => array(
297
+ 'default' => 1,
298
+ 'sanitize' => 'intval',
299
+ ),
300
+ 'unique_id_prefix' => array(
301
+ 'default' => '',
302
+ 'sanitize' => 'sanitize_text_field',
303
+ ),
304
+ 'unique_id_suffix' => array(
305
+ 'default' => '',
306
+ 'sanitize' => 'sanitize_text_field',
307
+ ),
308
  );
309
 
310
  /**
636
 
637
  $part_layout = array();
638
  $parts_data = isset( $form_data['parts'] ) ? $form_data['parts'] : array();
639
+
640
  $library = happyforms_get_part_library();
641
 
642
  foreach ( $parts_data as $part_data ) {
655
  return $result;
656
  }
657
 
658
+ public function update_meta_field( $form_id, $field, $value ) {
659
+ $meta_fields = $this->get_meta_fields();
660
+
661
+ if ( isset( $field, $meta_fields ) ) {
662
+ update_post_meta( $form_id, $field, $value );
663
+ }
664
+ }
665
+
666
  /**
667
  * Delete a form post object.
668
  *
867
  return $steps;
868
  }
869
 
870
+ public function increment_unique_id( $response_id, $form ) {
871
+ if ( intval( $form['unique_id'] ) ) {
872
+ $increment = intval( $form['unique_id_start_from'] );
873
+
874
+ $this->update_meta_field( $form['ID'], 'unique_id_start_from', $increment + 1 );
875
+ }
876
+ }
877
+
878
  public function requires_confirmation( $form ) {
879
  return ( 1 === intval( $form['preview_before_submit'] ) );
880
  }
inc/classes/class-message-admin.php CHANGED
@@ -365,6 +365,10 @@ class HappyForms_Message_Admin {
365
  $columns[$header] = '';
366
  }
367
 
 
 
 
 
368
  $columns['form'] = __( 'Form', 'happyforms' );
369
  $columns = $columns + array( 'date' => $date_column );
370
 
@@ -422,6 +426,10 @@ class HappyForms_Message_Admin {
422
  }
423
  break;
424
 
 
 
 
 
425
  default:
426
  if ( $form ) {
427
  $column_index = preg_match( '/column_(\d+)?/', $column, $matches );
365
  $columns[$header] = '';
366
  }
367
 
368
+ if ( $this->current_form && $this->current_form['unique_id'] ) {
369
+ $columns['unique_id'] = __( 'Tracking number', 'happyforms' );
370
+ }
371
+
372
  $columns['form'] = __( 'Form', 'happyforms' );
373
  $columns = $columns + array( 'date' => $date_column );
374
 
426
  }
427
  break;
428
 
429
+ case 'unique_id':
430
+ echo happyforms_get_message_tracking_number( $message );
431
+ break;
432
+
433
  default:
434
  if ( $form ) {
435
  $column_index = preg_match( '/column_(\d+)?/', $column, $matches );
inc/classes/class-message-controller.php CHANGED
@@ -141,6 +141,9 @@ class HappyForms_Message_Controller {
141
  // Submission preview and review
142
  add_action( 'happyforms_step', array( $this, 'preview_submission_step' ) );
143
  add_action( 'happyforms_step', array( $this, 'review_submission_step' ) );
 
 
 
144
  }
145
 
146
  /**
@@ -352,7 +355,7 @@ class HappyForms_Message_Controller {
352
  *
353
  * @return void
354
  */
355
- do_action( 'happyforms_submission_success', $submission, $form );
356
 
357
  // Render the form
358
  $response['html'] = $form_controller->render( $form );
@@ -585,9 +588,36 @@ class HappyForms_Message_Controller {
585
  $attrs = $defaults['post'] + array( 'meta_input' => $message_meta );
586
  $message_id = wp_insert_post( wp_slash( $attrs ), true );
587
 
 
 
588
  return $message_id;
589
  }
590
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
591
  /**
592
  * Get one or more message post objects.
593
  *
@@ -723,18 +753,26 @@ class HappyForms_Message_Controller {
723
  if ( ! $visible ) {
724
  continue;
725
  }
726
-
727
  $part_id = $part_data['id'];
728
- $label = happyforms_get_part_label( $part_data );
729
- $value = happyforms_get_message_part_value( $message['parts'][$part_id], $part_data, 'email' );
730
 
731
  if ( isset( $part_data['use_as_subject'] ) && 1 === $part_data['use_as_subject'] ) {
732
  $email_message->set_subject( $value );
733
  } else {
734
- $content_lines[] = "<b>$label</b><br>$value";
735
  }
736
  }
737
 
 
 
 
 
 
 
 
 
738
  // Add a From header and a reply-and-mark-as-read link
739
  // if the form includes an email part
740
  $email_part = happyforms_get_form_controller()->get_first_part_by_type( $form, 'email' );
@@ -750,7 +788,7 @@ class HappyForms_Message_Controller {
750
  __( 'Reply to this message and mark it as read', 'happyforms' )
751
  );
752
 
753
- $email_message->set_from( $from );
754
  }
755
 
756
  $content = implode( '<br><br>', $content_lines );
@@ -791,7 +829,16 @@ class HappyForms_Message_Controller {
791
  $part_id = $email_part['id'];
792
  $to = happyforms_get_message_part_value( $message['parts'][$part_id] );
793
  $email_message->set_to( $to );
794
- $email_message->set_content( html_entity_decode( $form['confirmation_email_content'] ) );
 
 
 
 
 
 
 
 
 
795
 
796
  $email_message->send();
797
  }
141
  // Submission preview and review
142
  add_action( 'happyforms_step', array( $this, 'preview_submission_step' ) );
143
  add_action( 'happyforms_step', array( $this, 'review_submission_step' ) );
144
+ // Unique IDs
145
+ add_action( 'happyforms_response_created', array( $this, 'response_stamp_unique_id' ), 10, 2 );
146
+ add_action( 'happyforms_submission_success', array( $this, 'notice_append_unique_id' ), 10, 3 );
147
  }
148
 
149
  /**
355
  *
356
  * @return void
357
  */
358
+ do_action( 'happyforms_submission_success', $submission, $form, $message );
359
 
360
  // Render the form
361
  $response['html'] = $form_controller->render( $form );
588
  $attrs = $defaults['post'] + array( 'meta_input' => $message_meta );
589
  $message_id = wp_insert_post( wp_slash( $attrs ), true );
590
 
591
+ do_action( 'happyforms_response_created', $message_id, $form );
592
+
593
  return $message_id;
594
  }
595
 
596
+ public function response_stamp_unique_id( $response_id, $form ) {
597
+ if ( intval( $form['unique_id'] ) ) {
598
+ $increment = $form['unique_id_start_from'];
599
+ $prefix = $form['unique_id_prefix'];
600
+ $suffix = $form['unique_id_suffix'];
601
+
602
+ wp_update_post( array(
603
+ 'ID' => $response_id,
604
+ 'post_title' => "{$prefix}{$increment}{$suffix}",
605
+ ) );
606
+ }
607
+ }
608
+
609
+ public function notice_append_unique_id( $submission, $form, $message ) {
610
+ if ( intval( $form['unique_id'] ) ) {
611
+ $tracking_id = $message['post_title'];
612
+ $notice = $form['confirmation_message'];
613
+ $label = __( 'Tracking number', 'happyforms' );
614
+ $notice = "{$notice}<span>{$label}: {$tracking_id}</span>";
615
+ $notice = html_entity_decode( $notice );
616
+
617
+ happyforms_get_session()->add_notice( $form['ID'], $notice );
618
+ }
619
+ }
620
+
621
  /**
622
  * Get one or more message post objects.
623
  *
753
  if ( ! $visible ) {
754
  continue;
755
  }
756
+
757
  $part_id = $part_data['id'];
758
+ $label = happyforms_get_email_part_label( $message, $part_data, $form );
759
+ $value = happyforms_get_email_part_value( $message, $part_data, $form );
760
 
761
  if ( isset( $part_data['use_as_subject'] ) && 1 === $part_data['use_as_subject'] ) {
762
  $email_message->set_subject( $value );
763
  } else {
764
+ $content_lines[] = "<b>{$label}</b><br>{$value}";
765
  }
766
  }
767
 
768
+ // Append the tracking number for this message,
769
+ // if present.
770
+ if ( intval( $form['unique_id'] ) ) {
771
+ $label = __( 'Tracking number', 'happyforms' );
772
+ $tracking_id = $message['post_title'];
773
+ $content_lines[] = "<b>{$label}</b><br>{$tracking_id}";
774
+ }
775
+
776
  // Add a From header and a reply-and-mark-as-read link
777
  // if the form includes an email part
778
  $email_part = happyforms_get_form_controller()->get_first_part_by_type( $form, 'email' );
788
  __( 'Reply to this message and mark it as read', 'happyforms' )
789
  );
790
 
791
+ $email_message->set_reply_to( $from );
792
  }
793
 
794
  $content = implode( '<br><br>', $content_lines );
829
  $part_id = $email_part['id'];
830
  $to = happyforms_get_message_part_value( $message['parts'][$part_id] );
831
  $email_message->set_to( $to );
832
+
833
+ $content = html_entity_decode( $form['confirmation_email_content'] );
834
+
835
+ if ( intval( $form['unique_id'] ) ) {
836
+ $label = __( 'Tracking number', 'happyforms' );
837
+ $tracking_id = $message['post_title'];
838
+ $content .= "<br><br>{$label}: {$tracking_id}";
839
+ }
840
+
841
+ $email_message->set_content( $content );
842
 
843
  $email_message->send();
844
  }
inc/classes/class-wp-customize-form-manager.php CHANGED
@@ -229,6 +229,7 @@ class HappyForms_WP_Customize_Form_Manager {
229
  $form_data = happyforms_get_form_controller()->get( intval( $_POST['form_id'] ) );
230
  $part_data = $_POST['part'];
231
  $template = happyforms_get_form_part( $part_data, $form_data );
 
232
 
233
  header( 'Content-type: text/html' );
234
  echo( $template );
229
  $form_data = happyforms_get_form_controller()->get( intval( $_POST['form_id'] ) );
230
  $part_data = $_POST['part'];
231
  $template = happyforms_get_form_part( $part_data, $form_data );
232
+ $template = stripslashes( $template );
233
 
234
  header( 'Content-type: text/html' );
235
  echo( $template );
inc/classes/parts/class-part-address.php CHANGED
@@ -49,9 +49,9 @@ class HappyForms_Part_Address extends HappyForms_Form_Part {
49
  'default' => '',
50
  'sanitize' => 'sanitize_text_field'
51
  ),
52
- 'tooltip_description' => array(
53
- 'default' => 0,
54
- 'sanitize' => 'happyforms_sanitize_checkbox'
55
  ),
56
  'placeholder' => array(
57
  'default' => '',
49
  'default' => '',
50
  'sanitize' => 'sanitize_text_field'
51
  ),
52
+ 'description_mode' => array(
53
+ 'default' => '',
54
+ 'sanitize' => 'sanitize_text_field'
55
  ),
56
  'placeholder' => array(
57
  'default' => '',
inc/classes/parts/class-part-checkbox.php CHANGED
@@ -38,9 +38,9 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
- 'tooltip_description' => array(
42
- 'default' => 0,
43
- 'sanitize' => 'happyforms_sanitize_checkbox'
44
  ),
45
  'width' => array(
46
  'default' => 'full',
@@ -142,7 +142,7 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
142
  $requested_data = $_REQUEST[$part_name];
143
 
144
  if ( is_array( $requested_data ) ) {
145
- $sanitized_value = array_map( 'sanitize_text_field', $requested_data );
146
  }
147
  }
148
 
@@ -167,8 +167,7 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
167
  return $validated_value;
168
  }
169
 
170
- $options = happyforms_get_part_options( $part['options'], $part, $form );
171
- $options = wp_list_pluck( $options, 'label' );
172
  $intersection = array_intersect( $options, $validated_value );
173
 
174
  if ( count( $validated_value ) !== count( $intersection ) ) {
@@ -180,9 +179,9 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
180
 
181
  public function get_part_value( $value, $part, $form ) {
182
  if ( $this->type === $part['type'] ) {
183
- foreach ( $part['options'] as $option ) {
184
  if ( ! happyforms_is_falsy( $option['is_default'] ) ) {
185
- $value[] = $option['label'];
186
  }
187
  }
188
  }
@@ -192,6 +191,13 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
192
 
193
  public function stringify_value( $value, $part, $form ) {
194
  if ( $this->type === $part['type'] ) {
 
 
 
 
 
 
 
195
  $value = implode( ', ', $value );
196
  }
197
 
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
+ 'description_mode' => array(
42
+ 'default' => '',
43
+ 'sanitize' => 'sanitize_text_field'
44
  ),
45
  'width' => array(
46
  'default' => 'full',
142
  $requested_data = $_REQUEST[$part_name];
143
 
144
  if ( is_array( $requested_data ) ) {
145
+ $sanitized_value = array_map( 'intval', $requested_data );
146
  }
147
  }
148
 
167
  return $validated_value;
168
  }
169
 
170
+ $options = range( 0, count( $part['options'] ) - 1 );
 
171
  $intersection = array_intersect( $options, $validated_value );
172
 
173
  if ( count( $validated_value ) !== count( $intersection ) ) {
179
 
180
  public function get_part_value( $value, $part, $form ) {
181
  if ( $this->type === $part['type'] ) {
182
+ foreach ( $part['options'] as $o => $option ) {
183
  if ( ! happyforms_is_falsy( $option['is_default'] ) ) {
184
+ $value[] = $o;
185
  }
186
  }
187
  }
191
 
192
  public function stringify_value( $value, $part, $form ) {
193
  if ( $this->type === $part['type'] ) {
194
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
195
+ $labels = wp_list_pluck( $options, 'label' );
196
+
197
+ foreach ( $value as $i => $index ) {
198
+ $value[$i] = $labels[$index];
199
+ }
200
+
201
  $value = implode( ', ', $value );
202
  }
203
 
inc/classes/parts/class-part-date.php CHANGED
@@ -38,9 +38,9 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
- 'tooltip_description' => array(
42
- 'default' => 0,
43
- 'sanitize' => 'happyforms_sanitize_checkbox'
44
  ),
45
  'date_type' => array(
46
  'default' => 'date',
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
+ 'description_mode' => array(
42
+ 'default' => '',
43
+ 'sanitize' => 'sanitize_text_field'
44
  ),
45
  'date_type' => array(
46
  'default' => 'date',
inc/classes/parts/class-part-email.php CHANGED
@@ -37,9 +37,9 @@ class HappyForms_Part_Email extends HappyForms_Form_Part {
37
  'default' => '',
38
  'sanitize' => 'sanitize_text_field'
39
  ),
40
- 'tooltip_description' => array(
41
- 'default' => 0,
42
- 'sanitize' => 'happyforms_sanitize_checkbox'
43
  ),
44
  'confirmation_field' => array(
45
  'default' => 0,
@@ -172,6 +172,10 @@ class HappyForms_Part_Email extends HappyForms_Form_Part {
172
  || happyforms_get_part_value( $part, $form, 1 ) ) {
173
  $class[] = 'happyforms-part--filled';
174
  }
 
 
 
 
175
  }
176
 
177
  return $class;
37
  'default' => '',
38
  'sanitize' => 'sanitize_text_field'
39
  ),
40
+ 'description_mode' => array(
41
+ 'default' => '',
42
+ 'sanitize' => 'sanitize_text_field'
43
  ),
44
  'confirmation_field' => array(
45
  'default' => 0,
172
  || happyforms_get_part_value( $part, $form, 1 ) ) {
173
  $class[] = 'happyforms-part--filled';
174
  }
175
+
176
+ if ( 'focus-reveal' === $part['description_mode'] ) {
177
+ $class[] = 'happyforms-part--focus-reveal-description';
178
+ }
179
  }
180
 
181
  return $class;
inc/classes/parts/class-part-legal.php CHANGED
@@ -9,7 +9,9 @@ class HappyForms_Part_Legal extends HappyForms_Form_Part {
9
  $this->label = __( 'Legal', 'happyforms' );
10
  $this->description = __( 'For requiring fine print before accepting submission.', 'happyforms' );
11
 
 
12
  add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 4 );
 
13
  }
14
 
15
  /**
@@ -132,6 +134,42 @@ class HappyForms_Part_Legal extends HappyForms_Form_Part {
132
  return $value;
133
  }
134
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  /**
136
  * Enqueue scripts in customizer area.
137
  *
9
  $this->label = __( 'Legal', 'happyforms' );
10
  $this->description = __( 'For requiring fine print before accepting submission.', 'happyforms' );
11
 
12
+ add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
13
  add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 4 );
14
+ add_filter( 'happyforms_message_part_value', array( $this, 'message_part_value' ), 10, 4 );
15
  }
16
 
17
  /**
134
  return $value;
135
  }
136
 
137
+ public function message_part_value( $value, $original_value, $part, $destination ) {
138
+ if ( isset( $part['type'] )
139
+ && $this->type === $part['type']
140
+ && 'email' === $destination ) {
141
+
142
+ $value = 'yes' === $value ? htmlspecialchars_decode( $part['legal_text'] ) : '';
143
+ }
144
+
145
+ return $value;
146
+ }
147
+
148
+ public function html_part_class( $class, $part, $form ) {
149
+ if ( $this->type === $part['type'] ) {
150
+ $part_index = array_search( $part['id'], wp_list_pluck( $form['parts'], 'id' ) );
151
+
152
+ if ( $part_index ) {
153
+ $previous_part = $form['parts'][$part_index-1];
154
+ $next_part = $form['parts'][$part_index+1];
155
+
156
+ if ( isset( $previous_part ) ) {
157
+ if ( 'left' === $previous_part['label_placement'] && 'full' === $previous_part['width'] ) {
158
+ $class[] = 'happyforms-part-legal--align-right';
159
+ }
160
+ }
161
+
162
+ if ( isset( $next_part ) ) {
163
+ if ( 'left' === $next_part['label_placement'] && 'full' === $next_part['width'] ) {
164
+ $class[] = 'happyforms-part-legal--align-right';
165
+ }
166
+ }
167
+ }
168
+ }
169
+
170
+ return $class;
171
+ }
172
+
173
  /**
174
  * Enqueue scripts in customizer area.
175
  *
inc/classes/parts/class-part-multi-line-text.php CHANGED
@@ -37,9 +37,9 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
37
  'default' => '',
38
  'sanitize' => 'sanitize_text_field'
39
  ),
40
- 'tooltip_description' => array(
41
- 'default' => 0,
42
- 'sanitize' => 'happyforms_sanitize_checkbox'
43
  ),
44
  'placeholder' => array(
45
  'default' => '',
@@ -158,6 +158,10 @@ class HappyForms_Part_MultiLineText extends HappyForms_Form_Part {
158
  if ( happyforms_get_part_value( $part, $form ) ) {
159
  $class[] = 'happyforms-part--filled';
160
  }
 
 
 
 
161
  }
162
 
163
  return $class;
37
  'default' => '',
38
  'sanitize' => 'sanitize_text_field'
39
  ),
40
+ 'description_mode' => array(
41
+ 'default' => '',
42
+ 'sanitize' => 'sanitize_text_field'
43
  ),
44
  'placeholder' => array(
45
  'default' => '',
158
  if ( happyforms_get_part_value( $part, $form ) ) {
159
  $class[] = 'happyforms-part--filled';
160
  }
161
+
162
+ if ( 'focus-reveal' === $part['description_mode'] ) {
163
+ $class[] = 'happyforms-part--focus-reveal-description';
164
+ }
165
  }
166
 
167
  return $class;
inc/classes/parts/class-part-number.php CHANGED
@@ -38,9 +38,9 @@ class HappyForms_Part_Number extends HappyForms_Form_Part {
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
- 'tooltip_description' => array(
42
- 'default' => 0,
43
- 'sanitize' => 'happyforms_sanitize_checkbox'
44
  ),
45
  'placeholder' => array(
46
  'default' => '',
@@ -216,6 +216,10 @@ class HappyForms_Part_Number extends HappyForms_Form_Part {
216
  || happyforms_get_part_value( $part, $form, 1 ) ) {
217
  $class[] = 'happyforms-part--filled';
218
  }
 
 
 
 
219
  }
220
 
221
  return $class;
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
+ 'description_mode' => array(
42
+ 'default' => '',
43
+ 'sanitize' => 'sanitize_text_field'
44
  ),
45
  'placeholder' => array(
46
  'default' => '',
216
  || happyforms_get_part_value( $part, $form, 1 ) ) {
217
  $class[] = 'happyforms-part--filled';
218
  }
219
+
220
+ if ( 'focus-reveal' === $part['description_mode'] ) {
221
+ $class[] = 'happyforms-part--focus-reveal-description';
222
+ }
223
  }
224
 
225
  return $class;
inc/classes/parts/class-part-phone.php CHANGED
@@ -38,9 +38,9 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
- 'tooltip_description' => array(
42
- 'default' => 0,
43
- 'sanitize' => 'happyforms_sanitize_checkbox'
44
  ),
45
  'placeholder' => array(
46
  'default' => '',
@@ -435,6 +435,10 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
435
  if ( ! $this->is_masked( $part ) ) {
436
  $class[] = 'happyforms-phone--plain';
437
  }
 
 
 
 
438
  }
439
 
440
  return $class;
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
+ 'description_mode' => array(
42
+ 'default' => '',
43
+ 'sanitize' => 'sanitize_text_field'
44
  ),
45
  'placeholder' => array(
46
  'default' => '',
435
  if ( ! $this->is_masked( $part ) ) {
436
  $class[] = 'happyforms-phone--plain';
437
  }
438
+
439
+ if ( 'focus-reveal' === $part['description_mode'] ) {
440
+ $class[] = 'happyforms-part--focus-reveal-description';
441
+ }
442
  }
443
 
444
  return $class;
inc/classes/parts/class-part-radio.php CHANGED
@@ -10,6 +10,7 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
10
  $this->description = __( 'For radio buttons allowing one selection.', 'happyforms' );
11
 
12
  add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 3 );
 
13
  add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
14
  }
15
 
@@ -38,9 +39,9 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
- 'tooltip_description' => array(
42
- 'default' => 0,
43
- 'sanitize' => 'happyforms_sanitize_checkbox'
44
  ),
45
  'width' => array(
46
  'default' => 'full',
@@ -162,15 +163,14 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
162
  public function validate_value( $value, $part = array(), $form = array() ) {
163
  $validated_value = $value;
164
 
165
- if ( 1 === $part['required'] && empty( $validated_value ) ) {
166
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
167
  }
168
 
169
- if ( ! empty( $validated_value ) ) {
170
- $options = happyforms_get_part_options( $part['options'], $part, $form );
171
- $options = wp_list_pluck( $options, 'label' );
172
 
173
- if ( ! in_array( $value, $options ) ) {
174
  return new WP_Error( 'error', __( 'Radio values are not valid.', 'happyforms' ) );
175
  }
176
  }
@@ -180,9 +180,9 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
180
 
181
  public function get_part_value( $value, $part, $form ) {
182
  if ( $this->type === $part['type'] ) {
183
- foreach ( $part['options'] as $option ) {
184
  if ( ! happyforms_is_falsy( $option['is_default'] ) ) {
185
- $value = $option['label'];
186
  }
187
  }
188
  }
@@ -190,6 +190,17 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
190
  return $value;
191
  }
192
 
 
 
 
 
 
 
 
 
 
 
 
193
  public function html_part_class( $class, $part, $form ) {
194
  if ( $this->type === $part['type'] ) {
195
  if ( isset( $part['display_type'] ) && 'block' === $part['display_type'] ) {
10
  $this->description = __( 'For radio buttons allowing one selection.', 'happyforms' );
11
 
12
  add_filter( 'happyforms_part_value', array( $this, 'get_part_value' ), 10, 3 );
13
+ add_filter( 'happyforms_stringify_part_value', array( $this, 'stringify_value' ), 10, 3 );
14
  add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
15
  }
16
 
39
  'default' => '',
40
  'sanitize' => 'sanitize_text_field'
41
  ),
42
+ 'description_mode' => array(
43
+ 'default' => '',
44
+ 'sanitize' => 'sanitize_text_field'
45
  ),
46
  'width' => array(
47
  'default' => 'full',
163
  public function validate_value( $value, $part = array(), $form = array() ) {
164
  $validated_value = $value;
165
 
166
+ if ( 1 === $part['required'] && '' === $validated_value ) {
167
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
168
  }
169
 
170
+ if ( '' !== $validated_value ) {
171
+ $options = range( 0, count( $part['options'] ) - 1 );
 
172
 
173
+ if ( ! in_array( $validated_value, $options ) ) {
174
  return new WP_Error( 'error', __( 'Radio values are not valid.', 'happyforms' ) );
175
  }
176
  }
180
 
181
  public function get_part_value( $value, $part, $form ) {
182
  if ( $this->type === $part['type'] ) {
183
+ foreach ( $part['options'] as $o => $option ) {
184
  if ( ! happyforms_is_falsy( $option['is_default'] ) ) {
185
+ $value = $o;
186
  }
187
  }
188
  }
190
  return $value;
191
  }
192
 
193
+ public function stringify_value( $value, $part, $form ) {
194
+ if ( $this->type === $part['type'] ) {
195
+ if ( '' !== $value ) {
196
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
197
+ $value = $options[$value]['label'];
198
+ }
199
+ }
200
+
201
+ return $value;
202
+ }
203
+
204
  public function html_part_class( $class, $part, $form ) {
205
  if ( $this->type === $part['type'] ) {
206
  if ( isset( $part['display_type'] ) && 'block' === $part['display_type'] ) {
inc/classes/parts/class-part-rating.php CHANGED
@@ -39,9 +39,9 @@ class HappyForms_Part_Rating extends HappyForms_Form_Part {
39
  'default' => '',
40
  'sanitize' => 'sanitize_text_field'
41
  ),
42
- 'tooltip_description' => array(
43
- 'default' => 0,
44
- 'sanitize' => 'happyforms_sanitize_checkbox'
45
  ),
46
  'rating_type' => array(
47
  'default' => 'scale',
@@ -51,6 +51,23 @@ class HappyForms_Part_Rating extends HappyForms_Form_Part {
51
  'default' => 'stars',
52
  'sanitize' => 'sanitize_text_field'
53
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  'stars_num' => array(
55
  'default' => 5,
56
  'sanitize' => 'intval'
@@ -148,12 +165,25 @@ class HappyForms_Part_Rating extends HappyForms_Form_Part {
148
 
149
  public function stringify_value( $value, $part, $form ) {
150
  if ( $this->type === $part['type'] ) {
151
- if ( 'yesno' === $part['rating_type'] ) {
152
- if ( 1 === $value ) {
153
- $value = __( 'No', 'happyforms' );
154
- } else if ( 2 === $value ) {
155
- $value = __( 'Yes', 'happyforms' );
156
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
158
 
159
  if ( 0 === $value ) {
39
  'default' => '',
40
  'sanitize' => 'sanitize_text_field'
41
  ),
42
+ 'description_mode' => array(
43
+ 'default' => '',
44
+ 'sanitize' => 'sanitize_text_field'
45
  ),
46
  'rating_type' => array(
47
  'default' => 'scale',
51
  'default' => 'stars',
52
  'sanitize' => 'sanitize_text_field'
53
  ),
54
+ 'rating_labels_yesno' => array(
55
+ 'default' => array(
56
+ __( 'Disappointed', 'happyforms' ),
57
+ __( 'Happy', 'happyforms' )
58
+ ),
59
+ 'sanitize' => 'happyforms_sanitize_array'
60
+ ),
61
+ 'rating_labels_scale' => array(
62
+ 'default' => array(
63
+ __( 'Disliked', 'happyforms' ),
64
+ __( 'Disappointed', 'happyforms' ),
65
+ __( 'Okay', 'happyforms' ),
66
+ __( 'Happy', 'happyforms' ),
67
+ __( 'Loved it', 'happyforms' )
68
+ ),
69
+ 'sanitize' => 'happyforms_sanitize_array'
70
+ ),
71
  'stars_num' => array(
72
  'default' => 5,
73
  'sanitize' => 'intval'
165
 
166
  public function stringify_value( $value, $part, $form ) {
167
  if ( $this->type === $part['type'] ) {
168
+ switch( $part['rating_type'] ) {
169
+ case 'scale':
170
+ $rating_labels = ( 'stars' === $part['rating_visuals'] ) ? array() : $part['rating_labels_scale'];
171
+
172
+ if ( ! empty( $rating_labels ) && ! empty( $rating_labels[$value-1] ) ) {
173
+ $value = $rating_labels[$value-1];
174
+ }
175
+ break;
176
+ case 'yesno':
177
+ $rating_labels = $part['rating_labels_yesno'];
178
+
179
+ if ( ! empty( $rating_labels ) && ! empty( $rating_labels[$value-1] ) ) {
180
+ $value = $rating_labels[$value-1];
181
+ } else if ( 1 === $value ) {
182
+ $value = __( 'No', 'happyforms' );
183
+ } else if ( 2 === $value ) {
184
+ $value = __( 'Yes', 'happyforms' );
185
+ }
186
+ break;
187
  }
188
 
189
  if ( 0 === $value ) {
inc/classes/parts/class-part-scale.php CHANGED
@@ -38,9 +38,9 @@ class HappyForms_Part_Scale extends HappyForms_Form_Part {
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
- 'tooltip_description' => array(
42
- 'default' => 0,
43
- 'sanitize' => 'happyforms_sanitize_checkbox'
44
  ),
45
  'width' => array(
46
  'default' => 'full',
38
  'default' => '',
39
  'sanitize' => 'sanitize_text_field'
40
  ),
41
+ 'description_mode' => array(
42
+ 'default' => '',
43
+ 'sanitize' => 'sanitize_text_field'
44
  ),
45
  'width' => array(
46
  'default' => 'full',
inc/classes/parts/class-part-select.php CHANGED
@@ -8,6 +8,7 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
8
  $this->label = __( 'Dropdown', 'happyforms' );
9
  $this->description = __( 'For selecting one option from a long list. Default value adjustable.', 'happyforms' );
10
 
 
11
  add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
12
  }
13
 
@@ -36,9 +37,9 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
36
  'default' => '',
37
  'sanitize' => 'sanitize_text_field'
38
  ),
39
- 'tooltip_description' => array(
40
- 'default' => 0,
41
- 'sanitize' => 'happyforms_sanitize_checkbox'
42
  ),
43
  'width' => array(
44
  'default' => 'full',
@@ -159,21 +160,32 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
159
  public function validate_value( $value, $part = array(), $form = array() ) {
160
  $validated_value = $value;
161
 
162
- if ( 1 === $part['required'] && empty( $validated_value ) ) {
163
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
164
  }
165
 
166
- $options = happyforms_get_part_options( $part['options'], $part, $form );
167
- $options = wp_list_pluck( $options, 'label' );
168
- $options = array_map( 'sanitize_text_field', $options );
169
 
170
- if ( ! empty( $validated_value ) && ! in_array( $value, $options ) ) {
171
- return new WP_Error( 'error', __( 'Select values are not valid.', 'happyforms' ) );
 
172
  }
173
 
174
  return $validated_value;
175
  }
176
 
 
 
 
 
 
 
 
 
 
 
 
177
  public function script_dependencies( $deps, $forms ) {
178
  $contains_select = false;
179
  $form_controller = happyforms_get_form_controller();
8
  $this->label = __( 'Dropdown', 'happyforms' );
9
  $this->description = __( 'For selecting one option from a long list. Default value adjustable.', 'happyforms' );
10
 
11
+ add_filter( 'happyforms_stringify_part_value', array( $this, 'stringify_value' ), 10, 3 );
12
  add_filter( 'happyforms_frontend_dependencies', array( $this, 'script_dependencies' ), 10, 2 );
13
  }
14
 
37
  'default' => '',
38
  'sanitize' => 'sanitize_text_field'
39
  ),
40
+ 'description_mode' => array(
41
+ 'default' => '',
42
+ 'sanitize' => 'sanitize_text_field'
43
  ),
44
  'width' => array(
45
  'default' => 'full',
160
  public function validate_value( $value, $part = array(), $form = array() ) {
161
  $validated_value = $value;
162
 
163
+ if ( 1 === $part['required'] && '' === $validated_value ) {
164
  return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
165
  }
166
 
167
+ if ( '' !== $validated_value ) {
168
+ $options = range( 0, count( $part['options'] ) - 1 );
 
169
 
170
+ if ( ! in_array( intval( $validated_value ), $options ) ) {
171
+ return new WP_Error( 'error', __( 'Select values are not valid.', 'happyforms' ) );
172
+ }
173
  }
174
 
175
  return $validated_value;
176
  }
177
 
178
+ public function stringify_value( $value, $part, $form ) {
179
+ if ( $this->type === $part['type'] ) {
180
+ if ( '' !== $value ) {
181
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
182
+ $value = $options[$value]['label'];
183
+ }
184
+ }
185
+
186
+ return $value;
187
+ }
188
+
189
  public function script_dependencies( $deps, $forms ) {
190
  $contains_select = false;
191
  $form_controller = happyforms_get_form_controller();
inc/classes/parts/class-part-single-line-text.php CHANGED
@@ -37,9 +37,9 @@ class HappyForms_Part_SingleLineText extends HappyForms_Form_Part {
37
  'default' => '',
38
  'sanitize' => 'sanitize_text_field'
39
  ),
40
- 'tooltip_description' => array(
41
- 'default' => 0,
42
- 'sanitize' => 'happyforms_sanitize_checkbox'
43
  ),
44
  'placeholder' => array(
45
  'default' => '',
@@ -145,6 +145,10 @@ class HappyForms_Part_SingleLineText extends HappyForms_Form_Part {
145
  if ( happyforms_get_part_value( $part, $form ) ) {
146
  $class[] = 'happyforms-part--filled';
147
  }
 
 
 
 
148
  }
149
 
150
  return $class;
37
  'default' => '',
38
  'sanitize' => 'sanitize_text_field'
39
  ),
40
+ 'description_mode' => array(
41
+ 'default' => '',
42
+ 'sanitize' => 'sanitize_text_field'
43
  ),
44
  'placeholder' => array(
45
  'default' => '',
145
  if ( happyforms_get_part_value( $part, $form ) ) {
146
  $class[] = 'happyforms-part--filled';
147
  }
148
+
149
+ if ( 'focus-reveal' === $part['description_mode'] ) {
150
+ $class[] = 'happyforms-part--focus-reveal-description';
151
+ }
152
  }
153
 
154
  return $class;
inc/classes/parts/class-part-table.php CHANGED
@@ -40,9 +40,9 @@ class HappyForms_Part_Table extends HappyForms_Form_Part {
40
  'default' => '',
41
  'sanitize' => 'sanitize_text_field'
42
  ),
43
- 'tooltip_description' => array(
44
- 'default' => 0,
45
- 'sanitize' => 'happyforms_sanitize_checkbox'
46
  ),
47
  'width' => array(
48
  'default' => 'full',
@@ -177,11 +177,11 @@ class HappyForms_Part_Table extends HappyForms_Form_Part {
177
  if ( $part_data['allow_multiple_selection'] ) {
178
  // Checkbox mode
179
  foreach( $requested_data as $row_id => $row ) {
180
- $sanitized_value[$row_id] = array_map( 'sanitize_text_field', $requested_data[$row_id] );
181
  }
182
  } else {
183
  // Radio mode
184
- $sanitized_value = array_map( 'sanitize_text_field', $requested_data );
185
  }
186
  }
187
  }
@@ -202,17 +202,32 @@ class HappyForms_Part_Table extends HappyForms_Form_Part {
202
  public function validate_value( $value, $part = array(), $form = array() ) {
203
  $validated_value = $value;
204
 
205
- if ( 1 === $part['required'] && empty( $validated_value ) ) {
206
- return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  }
208
 
209
- $columns = happyforms_get_part_options( $part['columns'], $part, $form );
210
- $valid_values = wp_list_pluck( $columns, 'label' );
211
 
212
  if ( $part['allow_multiple_selection'] ) {
213
  // Checkbox mode
214
  foreach( $validated_value as $row_id => $row ) {
215
- $intersection = array_intersect( $valid_values, $row );
216
 
217
  if ( count( $row ) !== count( $intersection ) ) {
218
  return new WP_Error( 'error', __( 'Checkbox values are not valid.', 'happyforms' ) );
@@ -221,7 +236,7 @@ class HappyForms_Part_Table extends HappyForms_Form_Part {
221
  } else {
222
  // Radio mode
223
  foreach( $validated_value as $value ) {
224
- if ( ! in_array( $value, $valid_values ) ) {
225
  return new WP_Error( 'error', __( 'Radio values are not valid.', 'happyforms' ) );
226
  }
227
  }
@@ -232,13 +247,13 @@ class HappyForms_Part_Table extends HappyForms_Form_Part {
232
 
233
  public function get_part_value( $value, $part, $form ) {
234
  if ( $this->type === $part['type'] ) {
235
- foreach ( $part['columns'] as $columns ) {
236
- if ( ! happyforms_is_falsy( $columns['is_default'] ) ) {
237
  if ( ! $part['allow_multiple_selection'] ) {
238
- $value = $columns['label'];
239
  } else {
240
  foreach( $value as $r => $row ) {
241
- $value[$r][] = $columns['label'];
242
  }
243
  }
244
  }
@@ -260,31 +275,27 @@ class HappyForms_Part_Table extends HappyForms_Form_Part {
260
 
261
  public function stringify_value( $value, $part, $form ) {
262
  if ( $this->type === $part['type'] ) {
263
- if ( '' !== implode( '', array_values( $value ) ) ) {
264
- $rows = happyforms_get_part_options( $part['rows'], $part, $form );
265
- $lines = array();
266
-
267
-
268
- if ( $part['allow_multiple_selection'] ) {
269
- foreach( $rows as $row ) {
270
- $label = $row['label'];
271
- $row_id = $row['id'];
272
- $row_value = implode( ', ', $value[$row_id] );
273
- $lines[] = "{$label}: {$row_value}";
274
- }
275
- } else {
276
- foreach( $rows as $row ) {
277
- $label = $row['label'];
278
- $row_id = $row['id'];
279
- $row_value = $value[$row_id];
280
- $lines[] = "{$label}: {$row_value}";
281
- }
282
  }
283
 
284
- $value = implode( '<br>', $lines );
285
- } else {
286
- $value = '';
 
287
  }
 
 
288
  }
289
 
290
  return $value;
40
  'default' => '',
41
  'sanitize' => 'sanitize_text_field'
42
  ),
43
+ 'description_mode' => array(
44
+ 'default' => '',
45
+ 'sanitize' => 'sanitize_text_field'
46
  ),
47
  'width' => array(
48
  'default' => 'full',
177
  if ( $part_data['allow_multiple_selection'] ) {
178
  // Checkbox mode
179
  foreach( $requested_data as $row_id => $row ) {
180
+ $sanitized_value[$row_id] = array_map( 'intval', $requested_data[$row_id] );
181
  }
182
  } else {
183
  // Radio mode
184
+ $sanitized_value = array_map( 'intval', $requested_data );
185
  }
186
  }
187
  }
202
  public function validate_value( $value, $part = array(), $form = array() ) {
203
  $validated_value = $value;
204
 
205
+ $rows = happyforms_get_part_options( $part['rows'], $part, $form );
206
+ $columns = happyforms_get_part_options( $part['columns'], $part, $form );
207
+ $row_ids = wp_list_pluck( $rows, 'id' );
208
+
209
+ if ( 1 === $part['required'] ) {
210
+ $validated_rows = array_keys( $validated_value );
211
+
212
+ if ( count( $row_ids ) !== count( array_intersect( $row_ids, $validated_rows ) ) ) {
213
+ return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
214
+ }
215
+
216
+ if ( $part['allow_multiple_selection'] ) {
217
+ $non_empty_rows = array_filter( $validated_value );
218
+
219
+ if ( count( $non_empty_rows ) !== count( $row_ids ) ) {
220
+ return new WP_Error( 'error', __( 'This field is required.', 'happyforms' ) );
221
+ }
222
+ }
223
  }
224
 
225
+ $columns = range( 0, count( $columns ) - 1 );
 
226
 
227
  if ( $part['allow_multiple_selection'] ) {
228
  // Checkbox mode
229
  foreach( $validated_value as $row_id => $row ) {
230
+ $intersection = array_intersect( $columns, $row );
231
 
232
  if ( count( $row ) !== count( $intersection ) ) {
233
  return new WP_Error( 'error', __( 'Checkbox values are not valid.', 'happyforms' ) );
236
  } else {
237
  // Radio mode
238
  foreach( $validated_value as $value ) {
239
+ if ( ! in_array( $value, $columns ) ) {
240
  return new WP_Error( 'error', __( 'Radio values are not valid.', 'happyforms' ) );
241
  }
242
  }
247
 
248
  public function get_part_value( $value, $part, $form ) {
249
  if ( $this->type === $part['type'] ) {
250
+ foreach ( $part['columns'] as $c => $column ) {
251
+ if ( ! happyforms_is_falsy( $column['is_default'] ) ) {
252
  if ( ! $part['allow_multiple_selection'] ) {
253
+ $value = $c;
254
  } else {
255
  foreach( $value as $r => $row ) {
256
+ $value[$r][] = $c;
257
  }
258
  }
259
  }
275
 
276
  public function stringify_value( $value, $part, $form ) {
277
  if ( $this->type === $part['type'] ) {
278
+ $columns = happyforms_get_part_options( $part['columns'], $part, $form );
279
+ $rows = happyforms_get_part_options( $part['rows'], $part, $form );
280
+ $column_labels = wp_list_pluck( $columns, 'label' );
281
+ $row_labels = wp_list_pluck( $rows, 'label', 'id' );
282
+ $string_value = array();
283
+
284
+ foreach ( $value as $row_id => $row_values ) {
285
+ $row_label = $row_labels[$row_id];
286
+ $row_values = $part['allow_multiple_selection'] ? $row_values : array( $row_values );
287
+
288
+ foreach ( $row_values as $r => $row_value ) {
289
+ $row_values[$r] = $column_labels[$row_value];
 
 
 
 
 
 
 
290
  }
291
 
292
+ if ( count( $row_values ) ) {
293
+ $row_values = implode( ', ', $row_values );
294
+ $string_value[] = "{$row_label}: $row_values";
295
+ }
296
  }
297
+
298
+ $value = implode( '<br>', $string_value );
299
  }
300
 
301
  return $value;
inc/classes/parts/class-part-title.php CHANGED
@@ -36,9 +36,9 @@ class HappyForms_Part_Title extends HappyForms_Form_Part {
36
  'default' => '',
37
  'sanitize' => 'sanitize_text_field'
38
  ),
39
- 'tooltip_description' => array(
40
- 'default' => 0,
41
- 'sanitize' => 'happyforms_sanitize_checkbox'
42
  ),
43
  'width' => array(
44
  'default' => 'full',
36
  'default' => '',
37
  'sanitize' => 'sanitize_text_field'
38
  ),
39
+ 'description_mode' => array(
40
+ 'default' => '',
41
+ 'sanitize' => 'sanitize_text_field'
42
  ),
43
  'width' => array(
44
  'default' => 'full',
inc/classes/parts/class-part-website-url.php CHANGED
@@ -36,9 +36,9 @@ class HappyForms_Part_WebsiteUrl extends HappyForms_Form_Part {
36
  'default' => '',
37
  'sanitize' => 'sanitize_text_field'
38
  ),
39
- 'tooltip_description' => array(
40
- 'default' => 0,
41
- 'sanitize' => 'happyforms_sanitize_checkbox'
42
  ),
43
  'placeholder' => array(
44
  'default' => 'http://',
@@ -140,6 +140,10 @@ class HappyForms_Part_WebsiteUrl extends HappyForms_Form_Part {
140
  if ( happyforms_get_part_value( $part, $form ) ) {
141
  $class[] = 'happyforms-part--filled';
142
  }
 
 
 
 
143
  }
144
 
145
  return $class;
36
  'default' => '',
37
  'sanitize' => 'sanitize_text_field'
38
  ),
39
+ 'description_mode' => array(
40
+ 'default' => '',
41
+ 'sanitize' => 'sanitize_text_field'
42
  ),
43
  'placeholder' => array(
44
  'default' => 'http://',
140
  if ( happyforms_get_part_value( $part, $form ) ) {
141
  $class[] = 'happyforms-part--filled';
142
  }
143
+
144
+ if ( 'focus-reveal' === $part['description_mode'] ) {
145
+ $class[] = 'happyforms-part--focus-reveal-description';
146
+ }
147
  }
148
 
149
  return $class;
inc/helpers/helper-form-templates.php CHANGED
@@ -122,19 +122,31 @@ if ( ! function_exists( 'happyforms_print_part_description' ) ):
122
  * @return void
123
  */
124
  function happyforms_print_part_description( $part_data ) {
125
- if ( 1 === intval( $part_data['tooltip_description'] ) || is_customize_preview() ) : ?>
126
- <span class="happyforms-part__tooltip happyforms-tooltip"<?php if ( empty( $part_data['tooltip_description'] ) ) : ?> style="display: none"<?php endif; ?>>
127
  <span class="happyforms-tooltip__trigger"></span>
128
  <span class="happyforms-part__description"><?php echo esc_html( $part_data['description'] ); ?></span>
129
  </span>
130
  <?php endif; ?>
131
- <?php if ( 0 === intval( $part_data['tooltip_description'] ) || is_customize_preview() ) : ?>
132
- <span class="happyforms-part__description"<?php if ( is_customize_preview() && 1 === intval( $part_data['tooltip_description'] ) ) : ?> style="display: none"<?php endif; ?>><?php echo esc_html( $part_data['description'] ); ?></span>
133
  <?php endif;
134
  }
135
 
136
  endif;
137
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  if ( ! function_exists( 'happyforms_get_form_action' ) ):
139
  /**
140
  * Returns the action for this form.
@@ -997,7 +1009,7 @@ endif;
997
  if ( ! function_exists( 'happyforms_get_rating_icons' ) ) :
998
 
999
  function happyforms_get_rating_icons( $part ) {
1000
- $icons = array( '😢', '😟', '😐', '🙂', '😁' );
1001
 
1002
  if ( 'yesno' === $part['rating_type'] ) {
1003
  switch ( $part['rating_visuals'] ) {
122
  * @return void
123
  */
124
  function happyforms_print_part_description( $part_data ) {
125
+ if ( happyforms_part_has_tooltip( $part_data ) || is_customize_preview() ) : ?>
126
+ <span class="happyforms-part__tooltip happyforms-tooltip"<?php if ( ! happyforms_part_has_tooltip( $part_data ) ) : ?> style="display: none"<?php endif; ?>>
127
  <span class="happyforms-tooltip__trigger"></span>
128
  <span class="happyforms-part__description"><?php echo esc_html( $part_data['description'] ); ?></span>
129
  </span>
130
  <?php endif; ?>
131
+ <?php if ( ! happyforms_part_has_tooltip( $part_data ) || is_customize_preview() ) : ?>
132
+ <span class="happyforms-part__description"<?php if ( is_customize_preview() && happyforms_part_has_tooltip( $part_data ) ) : ?> style="display: none"<?php endif; ?>><?php echo esc_html( $part_data['description'] ); ?></span>
133
  <?php endif;
134
  }
135
 
136
  endif;
137
 
138
+ if ( ! function_exists( 'happyforms_part_has_tooltip' ) ) :
139
+
140
+ function happyforms_part_has_tooltip( $part ) {
141
+ if ( 'tooltip' === $part['description_mode'] || ( isset( $part['tooltip_description'] ) && 1 === intval( $part['tooltip_description'] ) ) ) {
142
+ return true;
143
+ }
144
+
145
+ return false;
146
+ }
147
+
148
+ endif;
149
+
150
  if ( ! function_exists( 'happyforms_get_form_action' ) ):
151
  /**
152
  * Returns the action for this form.
1009
  if ( ! function_exists( 'happyforms_get_rating_icons' ) ) :
1010
 
1011
  function happyforms_get_rating_icons( $part ) {
1012
+ $icons = array( '😢', '😟', '😐', '🙂', '😍' );
1013
 
1014
  if ( 'yesno' === $part['rating_type'] ) {
1015
  switch ( $part['rating_visuals'] ) {
inc/helpers/helper-misc.php CHANGED
@@ -74,6 +74,22 @@ function happyforms_get_message_part_value( $value, $part = array(), $destinatio
74
 
75
  endif;
76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  if ( ! function_exists( 'happyforms_stringify_part_value' ) ):
78
  /**
79
  * Transforms a part value into a string.
@@ -276,7 +292,7 @@ function happyforms_get_countries() {
276
  __( 'Congo, the Democratic Republic of the', 'happyforms' ),
277
  __( 'Cook Islands', 'happyforms' ),
278
  __( 'Costa Rica', 'happyforms' ),
279
- __( 'Cote d\'Ivoire', 'happyforms' ),
280
  __( 'Croatia (Hrvatska)', 'happyforms' ),
281
  __( 'Cuba', 'happyforms' ),
282
  __( 'Cyprus', 'happyforms' ),
@@ -542,3 +558,34 @@ function happyforms_get_reply_and_mark_link( $id ) {
542
  }
543
 
544
  endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
 
75
  endif;
76
 
77
+ if ( ! function_exists( 'happyforms_the_message_part_value' ) ):
78
+
79
+ function happyforms_the_message_part_value( $value, $part = array(), $destination = '' ) {
80
+ $value = happyforms_get_message_part_value( $value, $part, $destination );
81
+
82
+ switch ( $part['type'] ) {
83
+ case 'email':
84
+ $value = "<a href=\"mailto:{$value}\">{$value}</a>";
85
+ break;
86
+ }
87
+
88
+ echo $value;
89
+ }
90
+
91
+ endif;
92
+
93
  if ( ! function_exists( 'happyforms_stringify_part_value' ) ):
94
  /**
95
  * Transforms a part value into a string.
292
  __( 'Congo, the Democratic Republic of the', 'happyforms' ),
293
  __( 'Cook Islands', 'happyforms' ),
294
  __( 'Costa Rica', 'happyforms' ),
295
+ __( 'Ivory Coast', 'happyforms' ),
296
  __( 'Croatia (Hrvatska)', 'happyforms' ),
297
  __( 'Cuba', 'happyforms' ),
298
  __( 'Cyprus', 'happyforms' ),
558
  }
559
 
560
  endif;
561
+
562
+ if ( ! function_exists( 'happyforms_get_message_tracking_number' ) ):
563
+
564
+ function happyforms_get_message_tracking_number( $message ) {
565
+ return $message['post_title'];
566
+ }
567
+
568
+ endif;
569
+
570
+ if ( ! function_exists( 'happyforms_get_email_part_label' ) ):
571
+
572
+ function happyforms_get_email_part_label( $message, $part = array(), $form = array() ) {
573
+ $label = happyforms_get_part_label( $part );
574
+ $label = apply_filters( 'happyforms_email_part_label', $label, $message, $part, $form );
575
+
576
+ return $label;
577
+ }
578
+
579
+ endif;
580
+
581
+ if ( ! function_exists( 'happyforms_get_email_part_value' ) ):
582
+
583
+ function happyforms_get_email_part_value( $message, $part = array(), $form = array() ) {
584
+ $part_id = $part['id'];
585
+ $value = happyforms_get_message_part_value( $message['parts'][$part_id], $part, 'email' );
586
+ $value = apply_filters( 'happyforms_email_part_value', $value, $message, $part, $form );
587
+
588
+ return $value;
589
+ }
590
+
591
+ endif;
inc/templates/admin-message-edit.php CHANGED
@@ -5,7 +5,7 @@ if ( ! $form ) {
5
  return;
6
  }
7
  ?>
8
- <table class="form-table happyforms-message-data-table">
9
  <tbody>
10
  <?php foreach ( $form['parts'] as $p => $part ):
11
  $part_value = $message['parts'][$part['id']];
@@ -14,11 +14,17 @@ if ( ! $form ) {
14
  if ( ! $visible ) {
15
  continue;
16
  } ?>
17
- <tr <?php if ($p % 2 == 0) : ?>class="alternate"<?php endif; ?>>
18
  <th scope="row"><?php echo esc_html( $part['label'] ); ?></th>
19
- <td><?php echo happyforms_get_message_part_value( $part_value ); ?></td>
20
  </tr>
21
  <?php endforeach; ?>
 
 
 
 
 
 
22
  </tbody>
23
  </table>
24
  <p class="happyforms-message-nav">
5
  return;
6
  }
7
  ?>
8
+ <table class="form-table happyforms-message-data-table striped">
9
  <tbody>
10
  <?php foreach ( $form['parts'] as $p => $part ):
11
  $part_value = $message['parts'][$part['id']];
14
  if ( ! $visible ) {
15
  continue;
16
  } ?>
17
+ <tr>
18
  <th scope="row"><?php echo esc_html( $part['label'] ); ?></th>
19
+ <td><?php happyforms_the_message_part_value( $part_value, $part ); ?></td>
20
  </tr>
21
  <?php endforeach; ?>
22
+ <?php if ( intval( $form['unique_id'] ) ): ?>
23
+ <tr>
24
+ <th scope="row"><?php _e( 'Tracking number', 'happyforms' ); ?></th>
25
+ <td><?php echo happyforms_get_message_tracking_number( $message ); ?></td>
26
+ </tr>
27
+ <?php endif; ?>
28
  </tbody>
29
  </table>
30
  <p class="happyforms-message-nav">
inc/templates/customize-form-setup.php CHANGED
@@ -80,6 +80,28 @@
80
  <label for="happyforms-save-entries"><?php _e( 'Save messages for this form', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="save_entries"></i></label>
81
  </div>
82
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  <div class="customize-control customize-control-checkbox">
84
  <div class="customize-inside-control-row" data-pointer-target>
85
  <input type="checkbox" value="1" id="happyforms-preview-before-submit" <% if ( preview_before_submit ) { %>checked="checked"<% } %> data-attribute="preview_before_submit" />
@@ -127,3 +149,10 @@
127
  <script type="text/template" id="happyforms-pointer-preview_before_submit">
128
  <?php _e( 'Let your users review their submission before confirming it.', 'happyforms' ); ?>
129
  </script>
 
 
 
 
 
 
 
80
  <label for="happyforms-save-entries"><?php _e( 'Save messages for this form', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="save_entries"></i></label>
81
  </div>
82
  </div>
83
+ <div class="customize-control customize-control-checkbox">
84
+ <div class="customize-inside-control-row" data-pointer-target>
85
+ <input type="checkbox" value="1" id="happyforms-unique-id" <% if ( unique_id ) { %>checked="checked"<% } %> data-attribute="unique_id" />
86
+ <label for="happyforms-unique-id"><?php _e( 'Add identifying number to messages', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="unique_id"></i></label>
87
+ </div>
88
+ </div>
89
+ <div id="happyforms-unique-id-settings" <% if ( unique_id ) { %>style="display: block;"<% } %>>
90
+ <div class="customize-control">
91
+ <label for="unique_id_start_from" class="customize-control-title"><?php _e( 'Start counter from', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="unique_id_start_from"></i></label>
92
+ <input type="number" id="unique_id_start_from" value="<%= unique_id_start_from %>" data-attribute="unique_id_start_from" data-pointer-target />
93
+ </div>
94
+ <div class="customize-control happyforms-customize-controls-wrap--side-by-side">
95
+ <div>
96
+ <label for="unique_id_prefix" class="customize-control-title"><?php _e( 'Prefix', 'happyforms' ); ?></label>
97
+ <input type="text" id="unique_id_prefix" value="<%= unique_id_prefix %>" data-attribute="unique_id_prefix" />
98
+ </div>
99
+ <div>
100
+ <label for="unique_id_suffix" class="customize-control-title"><?php _e( 'Suffix', 'happyforms' ); ?></label>
101
+ <input type="text" id="unique_id_suffix" value="<%= unique_id_suffix %>" data-attribute="unique_id_suffix" />
102
+ </div>
103
+ </div>
104
+ </div>
105
  <div class="customize-control customize-control-checkbox">
106
  <div class="customize-inside-control-row" data-pointer-target>
107
  <input type="checkbox" value="1" id="happyforms-preview-before-submit" <% if ( preview_before_submit ) { %>checked="checked"<% } %> data-attribute="preview_before_submit" />
149
  <script type="text/template" id="happyforms-pointer-preview_before_submit">
150
  <?php _e( 'Let your users review their submission before confirming it.', 'happyforms' ); ?>
151
  </script>
152
+ <script type="text/template" id="happyforms-pointer-unique_id">
153
+ <?php _e( 'Tag responses with a unique, incremental identifier.', 'happyforms' ); ?>
154
+ </script>
155
+ <script type="text/template" id="happyforms-pointer-unique_id_start_from">
156
+ <?php _e( 'Your next submission will be tagged with this identifier.', 'happyforms' ); ?>
157
+ </script>
158
+
inc/templates/customize-form-steps.php CHANGED
@@ -20,7 +20,7 @@
20
  %>
21
  <button class="button button-primary button-hero button-forwards happyforms-step-next"><%= nextStepTitle %> <i class="fa fa-lg fa-arrow-circle-o-right" aria-hidden="true"></i></button>
22
  <% } else { %>
23
- <button class="button button-primary button-hero button-forwards happyforms-step-save"><?php _e( 'Save form', 'happyforms' ); ?></button>
24
  <% } %>
25
  </div>
26
 
20
  %>
21
  <button class="button button-primary button-hero button-forwards happyforms-step-next"><%= nextStepTitle %> <i class="fa fa-lg fa-arrow-circle-o-right" aria-hidden="true"></i></button>
22
  <% } else { %>
23
+ <button class="button button-primary button-hero button-forwards happyforms-step-save"><?php _e( 'Save Form', 'happyforms' ); ?></button>
24
  <% } %>
25
  </div>
26
 
inc/templates/parts/customize-address.php CHANGED
@@ -6,7 +6,7 @@
6
  </p>
7
  <p>
8
  <label for="<%= instance.id %>_label_placement"><?php _e( 'Title placement', 'happyforms' ); ?></label>
9
- <select id="<%= instance.id %>_label_placement" data-bind="label_placement"<%= ( instance.mode == 'country-city' ) ? ' disabled="disabled"' : '' %>>
10
  <option value="above"<%= (instance.label_placement == 'above') ? ' selected' : '' %>><?php _e( 'Above', 'happyforms' ); ?></option>
11
  <option value="left"<%= (instance.label_placement == 'left') ? ' selected' : '' %>><?php _e( 'Left', 'happyforms' ); ?></option>
12
  <option value="below"<%= (instance.label_placement == 'below') ? ' selected' : '' %>><?php _e( 'Below', 'happyforms' ); ?></option>
@@ -23,12 +23,15 @@
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
- <label>
28
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
29
- </label>
 
 
 
30
  </p>
31
- <p>
32
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
33
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
34
  </p>
6
  </p>
7
  <p>
8
  <label for="<%= instance.id %>_label_placement"><?php _e( 'Title placement', 'happyforms' ); ?></label>
9
+ <select id="<%= instance.id %>_label_placement" data-bind="label_placement">
10
  <option value="above"<%= (instance.label_placement == 'above') ? ' selected' : '' %>><?php _e( 'Above', 'happyforms' ); ?></option>
11
  <option value="left"<%= (instance.label_placement == 'left') ? ' selected' : '' %>><?php _e( 'Left', 'happyforms' ); ?></option>
12
  <option value="below"<%= (instance.label_placement == 'below') ? ' selected' : '' %>><?php _e( 'Below', 'happyforms' ); ?></option>
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
28
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
29
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
30
+ <option value="focus-reveal"<%= (instance.description_mode == 'focus-reveal') ? ' selected' : '' %>><?php _e( 'Reveal on focus', 'happyforms' ); ?></option>
31
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
32
+ </select>
33
  </p>
34
+ <p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
35
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
36
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
37
  </p>
inc/templates/parts/customize-checkbox.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" data-bind="tooltip_description" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <p>
30
  <label>
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <p>
32
  <label>
inc/templates/parts/customize-date.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <p>
30
  <label for="<%= instance.id %>_date_type"><?php _e( 'Show', 'happyforms' ); ?></label>
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <p>
32
  <label for="<%= instance.id %>_date_type"><?php _e( 'Show', 'happyforms' ); ?></label>
inc/templates/parts/customize-email.php CHANGED
@@ -23,12 +23,15 @@
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
- <label>
28
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
29
- </label>
 
 
 
30
  </p>
31
- <p>
32
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
33
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
34
  </p>
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
28
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
29
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
30
+ <option value="focus-reveal"<%= (instance.description_mode == 'focus-reveal') ? ' selected' : '' %>><?php _e( 'Reveal on focus', 'happyforms' ); ?></option>
31
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
32
+ </select>
33
  </p>
34
+ <p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
35
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
36
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
37
  </p>
inc/templates/parts/customize-multi-line-text.php CHANGED
@@ -23,12 +23,15 @@
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
- <label>
28
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
29
- </label>
 
 
 
30
  </p>
31
- <p>
32
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
33
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
34
  </p>
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
28
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
29
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
30
+ <option value="focus-reveal"<%= (instance.description_mode == 'focus-reveal') ? ' selected' : '' %>><?php _e( 'Reveal on focus', 'happyforms' ); ?></option>
31
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
32
+ </select>
33
  </p>
34
+ <p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
35
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
36
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
37
  </p>
inc/templates/parts/customize-number.php CHANGED
@@ -23,12 +23,15 @@
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
- <label>
28
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
29
- </label>
 
 
 
30
  </p>
31
- <p>
32
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
33
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
34
  </p>
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
28
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
29
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
30
+ <option value="focus-reveal"<%= (instance.description_mode == 'focus-reveal') ? ' selected' : '' %>><?php _e( 'Reveal on focus', 'happyforms' ); ?></option>
31
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
32
+ </select>
33
  </p>
34
+ <p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
35
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
36
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
37
  </p>
inc/templates/parts/customize-phone.php CHANGED
@@ -23,12 +23,15 @@
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
- <label>
28
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
29
- </label>
 
 
 
30
  </p>
31
- <p>
32
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
33
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
34
  </p>
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
28
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
29
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
30
+ <option value="focus-reveal"<%= (instance.description_mode == 'focus-reveal') ? ' selected' : '' %>><?php _e( 'Reveal on focus', 'happyforms' ); ?></option>
31
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
32
+ </select>
33
  </p>
34
+ <p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
35
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
36
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
37
  </p>
inc/templates/parts/customize-radio.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <p>
30
  <label>
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <p>
32
  <label>
inc/templates/parts/customize-rating.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <p>
30
  <label>
@@ -47,6 +49,26 @@
47
  </select>
48
  </p>
49
  <div class="happyforms-part-advanced-settings-wrap">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  <p>
51
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
52
  <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <p>
32
  <label>
49
  </select>
50
  </p>
51
  <div class="happyforms-part-advanced-settings-wrap">
52
+ <p class="happyforms-rating-labels-scale" style="display: <%= ( instance.rating_type == 'scale' && instance.rating_visuals == 'smileys' ) ? 'block' : 'none' %>">
53
+ <label>
54
+ <?php _e( 'Rating Labels', 'happyforms' ); ?>
55
+ <% if ( instance.rating_labels_scale ) { %>
56
+ <% _.each( instance.rating_labels_scale, function( label, index ) { %>
57
+ <input type="text" class="widefat title happyforms-self-spaced-input rating-label" value="<%= label %>" data-attribute="rating_labels_scale" data-index="<%= index %>">
58
+ <% }); %>
59
+ <% } %>
60
+ </label>
61
+ </p>
62
+ <p class="happyforms-rating-labels-yesno" style="display: <%= ( instance.rating_type == 'yesno' ) ? 'block' : 'none' %>">
63
+ <label>
64
+ <?php _e( 'Rating Labels', 'happyforms' ); ?>
65
+ <% if ( instance.rating_labels_yesno ) { %>
66
+ <% _.each( instance.rating_labels_yesno, function( label, index ) { %>
67
+ <input type="text" class="widefat title happyforms-self-spaced-input rating-label" value="<%= label %>" data-attribute="rating_labels_yesno" data-index="<%= index %>">
68
+ <% }); %>
69
+ <% } %>
70
+ </label>
71
+ </p>
72
  <p>
73
  <label for="<%= instance.id %>_width"><?php _e( 'Width', 'happyforms' ); ?></label>
74
  <select id="<%= instance.id %>_width" name="width" data-bind="width" class="widefat">
inc/templates/parts/customize-scale.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <div class="happyforms-customize-controls-wrap--side-by-side">
30
  <p>
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <div class="happyforms-customize-controls-wrap--side-by-side">
32
  <p>
inc/templates/parts/customize-select.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <p>
30
  <label>
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <p>
32
  <label>
inc/templates/parts/customize-single-line-text.php CHANGED
@@ -23,12 +23,15 @@
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
- <label>
28
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
29
- </label>
 
 
 
30
  </p>
31
- <p>
32
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
33
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
34
  </p>
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
28
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
29
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
30
+ <option value="focus-reveal"<%= (instance.description_mode == 'focus-reveal') ? ' selected' : '' %>><?php _e( 'Reveal on focus', 'happyforms' ); ?></option>
31
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Show in a tooltip', 'happyforms' ); ?></option>
32
+ </select>
33
  </p>
34
+ <p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
35
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
36
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
37
  </p>
inc/templates/parts/customize-table.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <p>
30
  <label>
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <p>
32
  <label>
inc/templates/parts/customize-title.php CHANGED
@@ -21,10 +21,12 @@
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
- <label>
26
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
27
- </label>
 
 
28
  </p>
29
  <p>
30
  <label>
21
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
22
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
23
  </p>
24
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
25
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
26
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
27
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
28
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
29
+ </select>
30
  </p>
31
  <p>
32
  <label>
inc/templates/parts/customize-website-url.php CHANGED
@@ -23,12 +23,15 @@
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
- <p class="tooltip-description-wrap" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
- <label>
28
- <input type="checkbox" class="checkbox" value="1" <% if ( instance.tooltip_description ) { %>checked="checked"<% } %> data-bind="tooltip_description" /> <?php _e( 'Show description in a tooltip', 'happyforms' ); ?>
29
- </label>
 
 
 
30
  </p>
31
- <p>
32
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
33
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
34
  </p>
23
  <label for="<%= instance.id %>_description"><?php _e( 'Description', 'happyforms' ); ?></label>
24
  <textarea id="<%= instance.id %>_description" data-bind="description"><%= instance.description %></textarea>
25
  </p>
26
+ <p class="happyforms-description-options" style="display: <%= (instance.description != '') ? 'block' : 'none' %>">
27
+ <label for="<%= instance.id %>_description_mode"><?php _e( 'Description appearance', 'happyforms' ); ?></label>
28
+ <select id="<%= instance.id %>_description_mode" data-bind="description_mode">
29
+ <option value=""><?php _e( 'Standard', 'happyforms' ); ?></option>
30
+ <option value="focus-reveal"<%= (instance.description_mode == 'focus-reveal') ? ' selected' : '' %>><?php _e( 'Reveal on focus', 'happyforms' ); ?></option>
31
+ <option value="tooltip"<%= (instance.description_mode == 'tooltip' || instance.tooltip_description ) ? ' selected' : '' %>><?php _e( 'Tooltip', 'happyforms' ); ?></option>
32
+ </select>
33
  </p>
34
+ <p class="happyforms-placeholder-option" style="display: <%= ( 'as_placeholder' !== instance.label_placement ) ? 'block' : 'none' %>">
35
  <label for="<%= instance.id %>_placeholder"><?php _e( 'Placeholder', 'happyforms' ); ?></label>
36
  <input type="text" id="<%= instance.id %>_placeholder" class="widefat title" value="<%= instance.placeholder %>" data-bind="placeholder" />
37
  </p>
inc/templates/parts/frontend-address.php CHANGED
@@ -4,11 +4,11 @@
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
8
 
9
- <?php if ( 'simple' === $part['mode'] ) : ?>
10
- <div class="happyforms-part-el-wrap">
11
- <div class="happyforms-part__el">
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 ); ?>
@@ -17,10 +17,8 @@
17
  <?php endif; ?>
18
  </div>
19
  </div>
20
- </div>
21
- <?php elseif ( 'autocomplete' === $part['mode'] ) : ?>
22
- <div class="happyforms-part-el-wrap">
23
- <div class="happyforms-part__el">
24
  <div class="happyforms-part__dummy-input">
25
  <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[full]" 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="off" <?php happyforms_the_part_attributes( $part, $form, 'full' ); ?> />
26
  <?php happyforms_geolocation_link( $part ); ?>
@@ -30,10 +28,8 @@
30
  </div>
31
  <div class="happyforms-part--address__results happyforms-part--address__results--google"></div>
32
  </div>
33
- </div>
34
- <?php elseif ( 'country' === $part['mode'] ) : ?>
35
- <div class="happyforms-part-el-wrap">
36
- <div class="happyforms-part__el">
37
  <div class="happyforms-part__dummy-input">
38
  <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" 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' ); ?> />
39
  <?php happyforms_geolocation_link( $part ); ?>
@@ -41,27 +37,29 @@
41
  <?php happyforms_the_part_label( $part, $form ); ?>
42
  <?php endif; ?>
43
  </div>
 
44
  <div class="happyforms-part--address__results"></div>
45
  </div>
46
- </div>
47
- <?php else: ?>
48
- <div class="happyforms-part-el-wrap">
49
- <div class="happyforms-part__el">
50
  <div class="happyforms-part__dummy-input">
51
  <input id ="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" 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' ); ?> />
52
  <?php happyforms_geolocation_link( $part ); ?>
 
 
 
53
  </div>
54
- <div class="happyforms-part--address__results"></div>
55
- </div>
56
- <div class="happyforms-part__el">
57
  <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' ); ?> />
 
 
58
  </div>
59
- </div>
60
- <?php endif; ?>
61
 
62
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
63
 
64
- <?php happyforms_print_part_description( $part ); ?>
65
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
66
  </div>
67
  </div>
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 ( '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 ); ?>
17
  <?php endif; ?>
18
  </div>
19
  </div>
20
+ <?php elseif ( 'autocomplete' === $part['mode'] ) : ?>
21
+ <div class="happyforms-part-el-wrap">
 
 
22
  <div class="happyforms-part__dummy-input">
23
  <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[full]" 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="off" <?php happyforms_the_part_attributes( $part, $form, 'full' ); ?> />
24
  <?php happyforms_geolocation_link( $part ); ?>
28
  </div>
29
  <div class="happyforms-part--address__results happyforms-part--address__results--google"></div>
30
  </div>
31
+ <?php elseif ( 'country' === $part['mode'] ) : ?>
32
+ <div class="happyforms-part-el-wrap">
 
 
33
  <div class="happyforms-part__dummy-input">
34
  <input id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" 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' ); ?> />
35
  <?php happyforms_geolocation_link( $part ); ?>
37
  <?php happyforms_the_part_label( $part, $form ); ?>
38
  <?php endif; ?>
39
  </div>
40
+
41
  <div class="happyforms-part--address__results"></div>
42
  </div>
43
+ <?php else: ?>
44
+ <div class="happyforms-part-el-wrap">
 
 
45
  <div class="happyforms-part__dummy-input">
46
  <input id ="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>[country]" 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' ); ?> />
47
  <?php happyforms_geolocation_link( $part ); ?>
48
+ <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
49
+ <?php happyforms_the_part_label( $part, $form ); ?>
50
+ <?php endif; ?>
51
  </div>
52
+
 
 
53
  <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' ); ?> />
54
+
55
+ <div class="happyforms-part--address__results"></div>
56
  </div>
57
+ <?php endif; ?>
 
58
 
59
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
60
 
61
+ <?php happyforms_print_part_description( $part ); ?>
62
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
63
+ </div>
64
  </div>
65
  </div>
inc/templates/parts/frontend-checkbox.php CHANGED
@@ -2,27 +2,26 @@
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
6
-
7
  <div class="happyforms-part__el">
 
 
8
  <?php
9
  $options = happyforms_get_part_options( $part['options'], $part, $form );
10
- foreach( $options as $option ) : ?>
11
- <?php
12
- $value = happyforms_get_part_value( $part, $form );
13
- $checked = in_array( $option['label'], $value ) ? 'checked="checked"' : '';
14
- ?>
15
  <label class="option-label" id="<?php echo esc_attr( $option['id'] ); ?>">
16
- <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
17
  <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>
18
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
19
  </label>
20
  <?php endforeach; ?>
21
- </div>
22
 
23
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
24
 
25
- <?php happyforms_print_part_description( $part ); ?>
26
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
27
  </div>
28
  </div>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
 
 
5
  <div class="happyforms-part__el">
6
+ <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
7
+
8
  <?php
9
  $options = happyforms_get_part_options( $part['options'], $part, $form );
10
+ $value = happyforms_get_part_value( $part, $form );
11
+
12
+ foreach( $options as $o => $option ) : ?>
13
+ <?php $checked = in_array( $o, $value ) ? 'checked="checked"' : ''; ?>
 
14
  <label class="option-label" id="<?php echo esc_attr( $option['id'] ); ?>">
15
+ <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo $o; ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
16
  <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>
17
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
18
  </label>
19
  <?php endforeach; ?>
 
20
 
21
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
22
 
23
+ <?php happyforms_print_part_description( $part ); ?>
24
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
25
+ </div>
26
  </div>
27
  </div>
inc/templates/parts/frontend-date-day.php CHANGED
@@ -17,7 +17,7 @@ $day_value = ( 'current' === $part['default_datetime'] ) ? date( 'j', $current_t
17
  $placeholder_value = __( 'Day', 'happyforms' );
18
  }
19
  ?>
20
- <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
21
 
22
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
23
  <li data-value=""><?php _e( 'Day', 'happyforms' ); ?></li>
17
  $placeholder_value = __( 'Day', 'happyforms' );
18
  }
19
  ?>
20
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" placeholder="<?php echo $placeholder_value; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
21
 
22
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
23
  <li data-value=""><?php _e( 'Day', 'happyforms' ); ?></li>
inc/templates/parts/frontend-date-month.php CHANGED
@@ -19,7 +19,7 @@ $month_value = ( 'current' === $part['default_datetime'] ) ? date( 'n', $current
19
  $placeholder_value = __( 'Month', 'happyforms' );
20
  }
21
  ?>
22
- <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
23
 
24
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
25
  <li data-value=""><?php _e( 'Month', 'happyforms' ); ?></li>
19
  $placeholder_value = __( 'Month', 'happyforms' );
20
  }
21
  ?>
22
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
23
 
24
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
25
  <li data-value=""><?php _e( 'Month', 'happyforms' ); ?></li>
inc/templates/parts/frontend-date.php CHANGED
@@ -35,7 +35,7 @@
35
  $placeholder_value = __( 'Year', 'happyforms' );
36
  }
37
  ?>
38
- <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
39
 
40
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
41
  <li data-value=""><?php _e( 'Year', 'happyforms' ); ?></li>
@@ -130,7 +130,7 @@
130
  }
131
  ?>
132
 
133
- <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
134
 
135
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
136
  <li data-value="AM" data-label="AM" class="happyforms-custom-select-dropdown__item default<?php echo ( 'AM' === $default_value ) ? ' current' : ''; ?>" tabindex="0">AM</li>
@@ -148,9 +148,9 @@
148
  <?php endif; ?>
149
 
150
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
151
- </div>
152
 
153
- <?php happyforms_print_part_description( $part ); ?>
154
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
155
  </div>
156
  </div>
35
  $placeholder_value = __( 'Year', 'happyforms' );
36
  }
37
  ?>
38
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
39
 
40
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
41
  <li data-value=""><?php _e( 'Year', 'happyforms' ); ?></li>
130
  }
131
  ?>
132
 
133
+ <input type="text" value="<?php echo ( ! empty( $default_value ) && $default_value !== 0 ) ? $default_value : ''; ?>" placeholder="<?php echo $placeholder_value; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
134
 
135
  <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
136
  <li data-value="AM" data-label="AM" class="happyforms-custom-select-dropdown__item default<?php echo ( 'AM' === $default_value ) ? ' current' : ''; ?>" tabindex="0">AM</li>
148
  <?php endif; ?>
149
 
150
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
 
151
 
152
+ <?php happyforms_print_part_description( $part ); ?>
153
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
154
+ </div>
155
  </div>
156
  </div>
inc/templates/parts/frontend-email.php CHANGED
@@ -4,27 +4,31 @@
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
8
 
9
- <input type="email" id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php happyforms_the_part_value( $part, $form, 0 ); ?>" placeholder="<?php echo esc_attr( $part['placeholder'] ); ?>" class="happyforms-part__el happyforms-part__el--text-input" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, 0 ); ?> />
10
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
11
- <?php happyforms_the_part_label( $part, $form ); ?>
12
- <?php endif; ?>
13
- <?php happyforms_print_part_description( $part ); ?>
14
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
15
-
16
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
17
 
 
 
18
  </div>
19
  <?php if ( 1 === intval( $part['confirmation_field'] ) ) : ?>
20
  <div class="happyforms-part-wrap happyforms-part-wrap--confirmation" id="<?php happyforms_the_part_id( $part, $form ); ?>-part_confirmation">
21
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
22
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
23
  <?php endif; ?>
24
- <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-part__el happyforms-part__el--text-input 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 ); ?> />
25
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
26
- <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
27
- <?php endif; ?>
 
 
 
28
  </div>
29
  <?php endif; ?>
30
  </div>
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
+ <input type="email" id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $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 ); ?> />
11
+ <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
12
+ <?php happyforms_the_part_label( $part, $form ); ?>
13
+ <?php endif; ?>
14
+ <?php happyforms_print_part_description( $part ); ?>
15
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
 
16
 
17
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
18
+ </div>
19
  </div>
20
  <?php if ( 1 === intval( $part['confirmation_field'] ) ) : ?>
21
  <div class="happyforms-part-wrap happyforms-part-wrap--confirmation" id="<?php happyforms_the_part_id( $part, $form ); ?>-part_confirmation">
22
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
23
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
24
  <?php endif; ?>
25
+
26
+ <div class="happyforms-part__el">
27
+ <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 ); ?> />
28
+ <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
29
+ <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
30
+ <?php endif; ?>
31
+ </div>
32
  </div>
33
  <?php endif; ?>
34
  </div>
inc/templates/parts/frontend-legal.php CHANGED
@@ -1,18 +1,17 @@
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
-
4
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
5
-
6
  <div class="happyforms-part__el">
 
 
7
  <label class="option-label">
8
  <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 ); ?>>
9
  <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>
10
  <span class="label"><?php echo html_entity_decode( $part['legal_text'] ); ?></span>
11
  </label>
12
- </div>
13
 
14
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
15
 
 
 
16
  </div>
17
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
18
  </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
  <div class="happyforms-part__el">
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>
 
11
 
12
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
13
 
14
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
15
+ </div>
16
  </div>
 
17
  </div>
inc/templates/parts/frontend-multi-line-text.php CHANGED
@@ -4,16 +4,19 @@
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
8
 
9
- <textarea id="<?php happyforms_the_part_id( $part, $form ); ?>" class="happyforms-part__el happyforms-part__el--text-input" 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>
10
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
11
- <?php happyforms_the_part_label( $part, $form ); ?>
12
- <?php endif; ?>
13
 
14
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
15
 
16
- <?php happyforms_print_part_description( $part ); ?>
17
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
 
18
  </div>
19
  </div>
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
+ <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; ?>
14
 
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>
22
  </div>
inc/templates/parts/frontend-narrative.php CHANGED
@@ -4,25 +4,27 @@
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
8
 
9
- <p><?php
10
- $tokens = happyforms_get_narrative_tokens( $part['format'] );
11
- $format = str_replace( '[]', '%s', $part['format'] );
12
- $inputs = array();
13
 
14
- for ( $t = 0; $t < count( $tokens ); $t ++ ) {
15
- ob_start(); ?>
16
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php happyforms_the_part_value( $part, $form, $t ); ?>" class="happyforms-part__el happyforms-part__el--text-input" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, $t ); ?> /><?php
17
- $input = ob_get_clean();
18
- $tokens[$t] = $input;
19
- }
20
 
21
- vprintf( html_entity_decode( stripslashes( $format ) ), $tokens );
22
- ?></p>
23
 
24
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
25
 
26
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
27
  </div>
28
  </div>
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
+ <p><?php
11
+ $tokens = happyforms_get_narrative_tokens( $part['format'] );
12
+ $format = str_replace( '[]', '%s', $part['format'] );
13
+ $inputs = array();
14
 
15
+ for ( $t = 0; $t < count( $tokens ); $t ++ ) {
16
+ ob_start(); ?>
17
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php happyforms_the_part_value( $part, $form, $t ); ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form, $t ); ?> /><?php
18
+ $input = ob_get_clean();
19
+ $tokens[$t] = $input;
20
+ }
21
 
22
+ vprintf( html_entity_decode( stripslashes( $format ) ), $tokens );
23
+ ?></p>
24
 
25
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
26
 
27
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
28
+ </div>
29
  </div>
30
  </div>
inc/templates/parts/frontend-number.php CHANGED
@@ -3,36 +3,41 @@
3
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
 
 
 
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
 
 
 
8
 
9
- <?php if ( ! $part['masked'] ) : ?>
10
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" class="happyforms-part__el happyforms-part__el--text-input" 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 ); ?> />
11
- <?php else: ?>
12
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" class="happyforms-part__el happyforms-part__el--text-input 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 ); ?> />
13
- <?php endif; ?>
14
-
15
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
16
 
17
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
18
- <?php happyforms_the_part_label( $part, $form ); ?>
19
- <?php endif; ?>
20
- <?php happyforms_print_part_description( $part ); ?>
21
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
22
  </div>
23
  <?php if ( 1 === intval( $part['confirmation_field'] ) ) : ?>
24
  <div class="happyforms-part-wrap happyforms-part-wrap--confirmation" id="<?php happyforms_the_part_id( $part, $form ); ?>-part_confirmation">
25
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
26
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
27
  <?php endif; ?>
28
- <?php if ( ! $part['masked'] ) : ?>
29
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" class="happyforms-part__el happyforms-part__el--text-input 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 ); ?> />
30
- <?php else: ?>
31
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>_confirmation" class="happyforms-part__el happyforms-part__el--text-input 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 ); ?> />
32
- <?php endif; ?>
33
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
34
- <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
35
- <?php endif; ?>
 
 
 
36
  </div>
37
  <?php endif; ?>
38
  </div>
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 ); ?>
 
 
 
 
 
 
17
 
18
+ <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
19
+ <?php happyforms_the_part_label( $part, $form ); ?>
20
+ <?php endif; ?>
21
+ <?php happyforms_print_part_description( $part ); ?>
22
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
23
+ </div>
24
  </div>
25
  <?php if ( 1 === intval( $part['confirmation_field'] ) ) : ?>
26
  <div class="happyforms-part-wrap happyforms-part-wrap--confirmation" id="<?php happyforms_the_part_id( $part, $form ); ?>-part_confirmation">
27
  <?php if ( 'as_placeholder' !== $part['label_placement'] ) : ?>
28
  <?php happyforms_the_part_confirmation_label( $part, $form ); ?>
29
  <?php endif; ?>
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 ); ?>
39
+ <?php endif; ?>
40
+ </div>
41
  </div>
42
  <?php endif; ?>
43
  </div>
inc/templates/parts/frontend-phone.php CHANGED
@@ -4,9 +4,14 @@
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
8
-
9
  <div class="happyforms-part__el">
 
 
 
 
 
 
 
10
  <?php $code_value = ( ! empty( happyforms_get_part_value( $part, $form, 'code' ) ) ) ? happyforms_get_part_value( $part, $form, 'code' ) : $part['mask_phone_country']; ?>
11
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[code]" value="<?php echo $code_value; ?>" <?php happyforms_the_part_attributes( $part, $form, 'code' ); ?> />
12
  <?php happyforms_the_countries_dropdown( $this, $part, $code_value ); ?>
@@ -14,12 +19,12 @@
14
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
15
  <?php happyforms_the_part_label( $part, $form ); ?>
16
  <?php endif; ?>
17
- </div>
18
 
19
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
20
 
21
- <?php happyforms_print_part_description( $part ); ?>
22
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
23
  </div>
24
  <?php if ( 1 === intval( $part['confirmation_field'] ) ) : ?>
25
  <div class="happyforms-part-wrap happyforms-part-wrap--confirmation" id="<?php happyforms_the_part_id( $part, $form ); ?>-part_confirmation">
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
 
 
7
  <div class="happyforms-part__el">
8
+ <?php
9
+ $code_value = happyforms_get_part_value( $part, $form, 'code' );
10
+ $code_value = ( ! empty( $code_value ) ) ? $code_value : $part['mask_phone_country'];
11
+ ?>
12
+
13
+ <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
14
+
15
  <?php $code_value = ( ! empty( happyforms_get_part_value( $part, $form, 'code' ) ) ) ? happyforms_get_part_value( $part, $form, 'code' ) : $part['mask_phone_country']; ?>
16
  <input type="hidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[code]" value="<?php echo $code_value; ?>" <?php happyforms_the_part_attributes( $part, $form, 'code' ); ?> />
17
  <?php happyforms_the_countries_dropdown( $this, $part, $code_value ); ?>
19
  <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
20
  <?php happyforms_the_part_label( $part, $form ); ?>
21
  <?php endif; ?>
 
22
 
23
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
24
 
25
+ <?php happyforms_print_part_description( $part ); ?>
26
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
27
+ </div>
28
  </div>
29
  <?php if ( 1 === intval( $part['confirmation_field'] ) ) : ?>
30
  <div class="happyforms-part-wrap happyforms-part-wrap--confirmation" id="<?php happyforms_the_part_id( $part, $form ); ?>-part_confirmation">
inc/templates/parts/frontend-placeholder.php CHANGED
@@ -2,10 +2,12 @@
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
6
 
7
- <div class="happyforms-part__el"><?php echo html_entity_decode( $part['placeholder_text'] ); ?></div>
8
 
9
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
 
10
  </div>
11
  </div>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
+ <div class="happyforms-part__el">
6
+ <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
7
 
8
+ <?php echo html_entity_decode( $part['placeholder_text'] ); ?>
9
 
10
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
11
+ </div>
12
  </div>
13
  </div>
inc/templates/parts/frontend-radio.php CHANGED
@@ -7,11 +7,13 @@
7
  <div class="happyforms-part__el">
8
  <?php
9
  $options = happyforms_get_part_options( $part['options'], $part, $form );
10
- foreach( $options as $option ) : ?>
11
- <?php $checked = ! empty( $option['label'] ) ? checked( happyforms_get_part_value( $part, $form ), $option['label'], false ) : ''; ?>
 
 
12
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
13
  <label class="option-label">
14
- <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
15
  <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>
16
  <span class="border"></span>
17
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
@@ -19,9 +21,11 @@
19
  <span class="happyforms-part-option__description"><?php echo esc_attr( $option['description'] ); ?></span>
20
  </div>
21
  <?php endforeach; ?>
 
 
 
 
22
  </div>
23
- <?php happyforms_print_part_description( $part ); ?>
24
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
25
 
26
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
27
  </div>
7
  <div class="happyforms-part__el">
8
  <?php
9
  $options = happyforms_get_part_options( $part['options'], $part, $form );
10
+ $value = happyforms_get_part_value( $part, $form );
11
+
12
+ foreach( $options as $o => $option ) : ?>
13
+ <?php $checked = ! empty( $option['label'] ) ? checked( $value, $o, false ) : ''; ?>
14
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
15
  <label class="option-label">
16
+ <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo $o; ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
17
  <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>
18
  <span class="border"></span>
19
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
21
  <span class="happyforms-part-option__description"><?php echo esc_attr( $option['description'] ); ?></span>
22
  </div>
23
  <?php endforeach; ?>
24
+
25
+ <?php happyforms_print_part_description( $part ); ?>
26
+
27
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
28
  </div>
 
 
29
 
30
  <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
31
  </div>
inc/templates/parts/frontend-rating-scale.php CHANGED
@@ -2,16 +2,20 @@
2
 
3
  <?php
4
  $label_class = ( 'stars' === $part['rating_visuals'] ) ? 'happyforms-star__label' : '';
 
5
 
6
  for ( $i = 1; $i <= $part['stars_num']; $i++ ) {
7
  ?>
8
  <input class="happyforms-visuallyhidden" type="radio" value="<?php echo esc_attr( $i ); ?>" id="<?php echo esc_attr( $part['id'] ); ?>_<?php echo esc_attr( $i ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php checked( happyforms_get_part_value( $part, $form ), $i ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
9
  <label class="<?php echo $label_class; ?>" for="<?php echo esc_attr( $part['id'] ); ?>_<?php echo esc_attr( $i ); ?>">
10
- <span class="happyforms-visuallyhidden"><?php echo esc_attr( $i ); ?> <?php _e( 'Stars', 'happyforms' ); ?></span>
11
  <?php if ( 'stars' === $part['rating_visuals'] ) { ?>
12
- <svg class="happyforms-star" viewBox="0 0 512 512" fill=""><path class="happyforms-star__star" d="M512 198.525l-176.89-25.704-79.11-160.291-79.108 160.291-176.892 25.704 128 124.769-30.216 176.176 158.216-83.179 158.216 83.179-30.217-176.176 128.001-124.769z"></path></svg>
 
13
  <?php } else { ?>
14
- <?php echo $icons[$i-1]; ?>
 
 
 
15
  <?php } ?>
16
  </label>
17
  <?php } ?>
2
 
3
  <?php
4
  $label_class = ( 'stars' === $part['rating_visuals'] ) ? 'happyforms-star__label' : '';
5
+ $rating_labels = $part['rating_labels_scale'];
6
 
7
  for ( $i = 1; $i <= $part['stars_num']; $i++ ) {
8
  ?>
9
  <input class="happyforms-visuallyhidden" type="radio" value="<?php echo esc_attr( $i ); ?>" id="<?php echo esc_attr( $part['id'] ); ?>_<?php echo esc_attr( $i ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php checked( happyforms_get_part_value( $part, $form ), $i ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
10
  <label class="<?php echo $label_class; ?>" for="<?php echo esc_attr( $part['id'] ); ?>_<?php echo esc_attr( $i ); ?>">
 
11
  <?php if ( 'stars' === $part['rating_visuals'] ) { ?>
12
+ <span class="happyforms-visuallyhidden"><?php echo esc_attr( $i ); ?> <?php _e( 'Stars', 'happyforms' ); ?></span>
13
+ <svg class="happyforms-star" viewBox="0 0 512 512" fill=""><path class="happyforms-star__star" d="M512 198.525l-176.89-25.704-79.11-160.291-79.108 160.291-176.892 25.704 128 124.769-30.216 176.176 158.216-83.179 158.216 83.179-30.217-176.176 128.001-124.769z"></path></svg>
14
  <?php } else { ?>
15
+ <span class="happyforms-rating__item-wrap">
16
+ <?php echo $icons[$i-1]; ?>
17
+ <span class="happyforms-rating__item-label"><?php echo ( ! empty( $rating_labels[$i-1] ) ) ? $rating_labels[$i-1] : '<span class="happyforms-visuallyhidden">' . sprintf( __( '%d out of %d', 'happyforms' ), $i, $part['stars_num'] ) .'</span>'; ?></span>
18
+ </span>
19
  <?php } ?>
20
  </label>
21
  <?php } ?>
inc/templates/parts/frontend-rating-yesno.php CHANGED
@@ -1,13 +1,19 @@
 
 
1
  <input class="happyforms-visuallyhidden" type="radio" value="0" id="<?php echo esc_attr( $part['id'] ); ?>_0" name="<?php happyforms_the_part_name( $part, $form ); ?>" checked <?php happyforms_the_part_attributes( $part, $form ); ?>>
2
 
3
  <input class="happyforms-visuallyhidden" type="radio" value="1" id="<?php echo esc_attr( $part['id'] ); ?>_1" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php checked( happyforms_get_part_value( $part, $form ), 1 ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
4
  <label class="happyforms-rating__label" for="<?php echo esc_attr( $part['id'] ); ?>_1">
5
- <span class="happyforms-visuallyhidden"><?php _e( 'No', 'happyforms' ); ?></span>
6
- <?php echo $icons[0]; ?>
 
 
7
  </label>
8
 
9
  <input class="happyforms-visuallyhidden" type="radio" value="2" id="<?php echo esc_attr( $part['id'] ); ?>_2" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php checked( happyforms_get_part_value( $part, $form ), 2 ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
10
  <label class="happyforms-rating__label" for="<?php echo esc_attr( $part['id'] ); ?>_2">
11
- <span class="happyforms-visuallyhidden"><?php _e( 'Yes', 'happyforms' ); ?></span>
12
- <?php echo $icons[1]; ?>
 
 
13
  </label>
1
+ <?php $rating_labels = $part['rating_labels_yesno']; ?>
2
+
3
  <input class="happyforms-visuallyhidden" type="radio" value="0" id="<?php echo esc_attr( $part['id'] ); ?>_0" name="<?php happyforms_the_part_name( $part, $form ); ?>" checked <?php happyforms_the_part_attributes( $part, $form ); ?>>
4
 
5
  <input class="happyforms-visuallyhidden" type="radio" value="1" id="<?php echo esc_attr( $part['id'] ); ?>_1" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php checked( happyforms_get_part_value( $part, $form ), 1 ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
6
  <label class="happyforms-rating__label" for="<?php echo esc_attr( $part['id'] ); ?>_1">
7
+ <span class="happyforms-rating__item-wrap">
8
+ <?php echo $icons[0]; ?>
9
+ <span class="happyforms-rating__item-label"><?php echo ( ! empty( $rating_labels[0] ) ) ? $rating_labels[0] : '<span class="happyforms-visuallyhidden">'. __( 'No', 'happyforms' ) .'</span>'; ?></span>
10
+ </span>
11
  </label>
12
 
13
  <input class="happyforms-visuallyhidden" type="radio" value="2" id="<?php echo esc_attr( $part['id'] ); ?>_2" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php checked( happyforms_get_part_value( $part, $form ), 2 ); ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
14
  <label class="happyforms-rating__label" for="<?php echo esc_attr( $part['id'] ); ?>_2">
15
+ <span class="happyforms-rating__item-wrap">
16
+ <?php echo $icons[1]; ?>
17
+ <span class="happyforms-rating__item-label"><?php echo ( ! empty( $rating_labels[1] ) ) ? $rating_labels[1] : '<span class="happyforms-visuallyhidden">'. __( 'Yes', 'happyforms' ) .'</span>'; ?></span>
18
+ </span>
19
  </label>
inc/templates/parts/frontend-rating.php CHANGED
@@ -2,26 +2,26 @@
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
6
-
7
  <div class="happyforms-part__el">
 
 
8
  <?php
9
  $icons = happyforms_get_rating_icons( $part );
10
 
11
  switch( $part[ 'rating_type' ] ) {
12
  case 'yesno':
13
- require_once( 'frontend-rating-yesno.php' );
14
  break;
15
  case 'scale':
16
- require_once( 'frontend-rating-scale.php' );
17
  break;
18
  }
19
  ?>
20
- </div>
21
 
22
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
23
 
24
- <?php happyforms_print_part_description( $part ); ?>
25
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
26
  </div>
27
  </div>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
 
 
5
  <div class="happyforms-part__el">
6
+ <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
7
+
8
  <?php
9
  $icons = happyforms_get_rating_icons( $part );
10
 
11
  switch( $part[ 'rating_type' ] ) {
12
  case 'yesno':
13
+ require( 'frontend-rating-yesno.php' );
14
  break;
15
  case 'scale':
16
+ require( 'frontend-rating-scale.php' );
17
  break;
18
  }
19
  ?>
 
20
 
21
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
22
 
23
+ <?php happyforms_print_part_description( $part ); ?>
24
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
25
+ </div>
26
  </div>
27
  </div>
inc/templates/parts/frontend-scale.php CHANGED
@@ -2,10 +2,6 @@
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
- <?php happyforms_print_part_description( $part ); ?>
6
-
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
8
-
9
  <?php
10
  $part_name = happyforms_get_part_name( $part, $form );
11
 
@@ -13,23 +9,27 @@
13
  $part_name = $part_name . '[]';
14
  }
15
  ?>
16
- <div class="happyforms-part--scale__inputwrap">
17
- <div class="happyforms-part--scale__labels">
18
- <span class="label-min"><?php echo $part['min_label']; ?></span>
19
- <span class="label-max"><?php echo $part['max_label']; ?></span>
20
- </div>
21
- <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'] ); ?>" class="happyforms-part__el happyforms-part__el--text-input" <?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 ); ?> />
22
- <output for="<?php happyforms_the_part_id( $part, $form ); ?>">
23
- <span><?php happyforms_the_part_value( $part, $form ); ?></span>
24
- </output>
25
- <?php if ( 1 === intval( $part['multiple'] ) ) : ?>
26
- <output for="<?php happyforms_the_part_id( $part, $form ); ?>_clone">
27
  <span><?php happyforms_the_part_value( $part, $form ); ?></span>
28
  </output>
29
- <?php endif; ?>
30
- </div>
 
 
 
 
 
 
31
 
32
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
33
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
34
  </div>
35
  </div>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
 
 
 
 
5
  <?php
6
  $part_name = happyforms_get_part_name( $part, $form );
7
 
9
  $part_name = $part_name . '[]';
10
  }
11
  ?>
12
+ <div class="happyforms-part__el">
13
+ <div class="happyforms-part--scale__inputwrap">
14
+ <div class="happyforms-part--scale__labels">
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>
22
+ <?php if ( 1 === intval( $part['multiple'] ) ) : ?>
23
+ <output for="<?php happyforms_the_part_id( $part, $form ); ?>_clone">
24
+ <span><?php happyforms_the_part_value( $part, $form ); ?></span>
25
+ </output>
26
+ <?php endif; ?>
27
+ </div>
28
+
29
+ <?php happyforms_print_part_description( $part ); ?>
30
 
31
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
32
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
33
+ </div>
34
  </div>
35
  </div>
inc/templates/parts/frontend-select.php CHANGED
@@ -2,74 +2,70 @@
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
6
-
7
- <div class="happyforms-custom-select" data-searchable="<?php echo ( 1 == $part['allow_search'] ) ? 'true' : 'false'; ?>">
8
- <div class="happyforms-part__select-wrap">
9
- <?php
10
  $options = happyforms_get_part_options( $part['options'], $part, $form );
11
-
12
  $default_value = happyforms_get_part_value( $part, $form );
13
  $placeholder_value = '';
14
  $has_value = false;
15
 
16
- while( empty( $default_value ) ) {
17
- foreach( $options as $option ) {
18
- if ( $option['is_default'] === 'true' ) {
19
- $default_value = $option['label'];
20
- $has_value = true;
21
- }
22
  }
23
-
24
- break;
25
  }
26
 
27
  if ( ! $has_value ) {
28
  $placeholder_value = __( '- Select -', 'happyforms' );
29
  }
30
  ?>
31
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_value; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
32
 
33
- <ul class="happyforms-custom-select-dropdown">
34
- <li data-value=""><?php _e( '- Select -', 'happyforms' ); ?></li>
35
- <?php
36
- $options = happyforms_get_part_options( $part['options'], $part, $form );
37
- foreach( $options as $option ) :
38
- $is_default = ( 1 == $option['is_default'] ) ? true : false;
39
- $selected = $is_default ? true : false;
40
- $selected = $selected ? $selected : happyforms_get_part_value( $part, $form ) === $option['label'];
41
 
42
- $li_classes = array();
43
- $li_classes[] = 'happyforms-custom-select-dropdown__item';
44
 
45
- if ( $selected ) {
46
- $li_classes[] = 'current';
47
- }
48
 
49
- if ( $is_default ) {
50
- $li_classes[] = 'default';
51
- }
52
- ?>
53
- <li id="<?php echo esc_attr( $option['id'] ); ?>" data-value="<?php echo esc_attr( $option['label'] ); ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo esc_attr( $option['label'] ); ?></li>
54
- <?php endforeach; ?>
55
- </ul>
56
 
57
- <select id="<?php happyforms_the_part_id( $part, $form ); ?>_select" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el" <?php happyforms_the_part_attributes( $part, $form ); ?>>
58
- <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
59
- <?php
60
- foreach( $options as $option ) :
61
- $selected = selected( $option['is_default'], 1, false );
62
- $selected = $selected ? $selected : selected( happyforms_get_part_value( $part, $form ), $option['label'], false );
63
- ?>
64
- <option id="<?php echo esc_attr( $option['id'] ); ?>" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $selected; ?>><?php echo esc_attr( $option['label'] ); ?></option>
65
- <?php endforeach; ?>
66
- </select>
 
67
  </div>
68
- </div>
69
 
70
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
71
 
72
- <?php happyforms_print_part_description( $part ); ?>
73
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
74
  </div>
75
  </div>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
+ <div class="happyforms-part__el">
6
+ <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
7
+ <div class="happyforms-custom-select" data-searchable="<?php echo ( 1 == $part['allow_search'] ) ? 'true' : 'false'; ?>">
8
+ <div class="happyforms-part__select-wrap">
9
+ <?php
10
  $options = happyforms_get_part_options( $part['options'], $part, $form );
 
11
  $default_value = happyforms_get_part_value( $part, $form );
12
  $placeholder_value = '';
13
  $has_value = false;
14
 
15
+ foreach( $options as $option ) {
16
+ if ( 'true' === $option['is_default'] ) {
17
+ $default_value = $option['label'];
18
+ $has_value = true;
 
 
19
  }
 
 
20
  }
21
 
22
  if ( ! $has_value ) {
23
  $placeholder_value = __( '- Select -', 'happyforms' );
24
  }
25
  ?>
26
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_value; ?>" placeholder="<?php echo $placeholder_value; ?>"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
27
 
28
+ <ul class="happyforms-custom-select-dropdown">
29
+ <li data-value=""><?php _e( '- Select -', 'happyforms' ); ?></li>
30
+ <?php
31
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
32
+ foreach( $options as $index => $option ) :
33
+ $is_default = ( 1 == $option['is_default'] ) ? true : false;
34
+ $selected = $is_default ? true : false;
35
+ $selected = $selected ? $selected : happyforms_get_part_value( $part, $form ) === $option['label'];
36
 
37
+ $li_classes = array();
38
+ $li_classes[] = 'happyforms-custom-select-dropdown__item';
39
 
40
+ if ( $selected ) {
41
+ $li_classes[] = 'current';
42
+ }
43
 
44
+ if ( $is_default ) {
45
+ $li_classes[] = 'default';
46
+ }
47
+ ?>
48
+ <li id="<?php echo esc_attr( $option['id'] ); ?>" data-value="<?php echo $index; ?>" data-label="<?php echo esc_attr( $option['label'] ); ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo esc_attr( $option['label'] ); ?></li>
49
+ <?php endforeach; ?>
50
+ </ul>
51
 
52
+ <select id="<?php happyforms_the_part_id( $part, $form ); ?>_select" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php happyforms_the_part_attributes( $part, $form ); ?>>
53
+ <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
54
+ <?php
55
+ foreach( $options as $index => $option ) :
56
+ $selected = selected( $option['is_default'], 1, false );
57
+ $selected = $selected ? $selected : selected( happyforms_get_part_value( $part, $form ), $index, false );
58
+ ?>
59
+ <option id="<?php echo esc_attr( $option['id'] ); ?>" value="<?php echo $index; ?>" <?php echo $selected; ?>><?php echo esc_attr( $option['label'] ); ?></option>
60
+ <?php endforeach; ?>
61
+ </select>
62
+ </div>
63
  </div>
 
64
 
65
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
66
 
67
+ <?php happyforms_print_part_description( $part ); ?>
68
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
69
+ </div>
70
  </div>
71
  </div>
inc/templates/parts/frontend-single-line-text.php CHANGED
@@ -4,16 +4,19 @@
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
8
 
9
- <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'] ); ?>" class="happyforms-part__el happyforms-part__el--text-input" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
10
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
11
- <?php happyforms_the_part_label( $part, $form ); ?>
12
- <?php endif; ?>
13
 
14
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
15
 
16
- <?php happyforms_print_part_description( $part ); ?>
17
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
 
18
  </div>
19
  </div>
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
+ <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; ?>
14
 
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>
22
  </div>
inc/templates/parts/frontend-table.php CHANGED
@@ -1,7 +1,6 @@
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
- <?php happyforms_print_part_description( $part ); ?>
5
 
6
  <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
7
 
@@ -28,21 +27,22 @@
28
  <div class="happyforms-table__cell happyforms-table__cell--row-title" style="width: <?php echo 100 / $columns_num; ?>%">
29
  <span class="happyforms-table__row-label"><?php echo esc_attr( $row['label'] ); ?></span>
30
  </div>
31
- <?php foreach( $columns as $column ) : ?>
 
32
  <div class="happyforms-table__cell" style="width: <?php echo 100 / $columns_num; ?>%">
33
  <div class="happyforms-table__cell--column-title happyforms-table__cell--column-title-sm"><?php echo esc_attr( $column['label'] ); ?></div>
34
  <label class="option-label">
35
- <?php if ( ! $part['allow_multiple_selection'] ) : ?>
36
- <?php $checked = ! empty( $column['label'] ) ? checked( happyforms_get_part_value( $part, $form, $row['id'] ), $column['label'], false ) : ''; ?>
37
- <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>]" value="<?php echo esc_attr( $column['label'] ); ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
38
  <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>
39
  <span class="border"></span>
40
  <?php else: ?>
41
  <?php
42
  $value = happyforms_get_part_value( $part, $form, $row['id'], array() );
43
- $checked = in_array( $column['label'], $value ) ? 'checked="checked"' : '';
44
  ?>
45
- <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>][]" value="<?php echo esc_attr( $column['label'] ); ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
46
  <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>
47
  <?php endif; ?>
48
  </label>
@@ -51,10 +51,11 @@
51
  </div>
52
  <?php endforeach; ?>
53
  </div>
 
 
 
54
  </div>
55
 
56
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
57
-
58
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
59
  </div>
60
  </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 do_action( 'happyforms_part_input_before', $part, $form ); ?>
6
 
27
  <div class="happyforms-table__cell happyforms-table__cell--row-title" style="width: <?php echo 100 / $columns_num; ?>%">
28
  <span class="happyforms-table__row-label"><?php echo esc_attr( $row['label'] ); ?></span>
29
  </div>
30
+ <?php foreach( $columns as $c => $column ) : ?>
31
+ <?php $value = happyforms_get_part_value( $part, $form, $row['id'] ); ?>
32
  <div class="happyforms-table__cell" style="width: <?php echo 100 / $columns_num; ?>%">
33
  <div class="happyforms-table__cell--column-title happyforms-table__cell--column-title-sm"><?php echo esc_attr( $column['label'] ); ?></div>
34
  <label class="option-label">
35
+ <?php if ( ! $part['allow_multiple_selection'] ) : ?>
36
+ <?php $checked = ! empty( $column['label'] ) ? checked( $value, $c, false ) : ''; ?>
37
+ <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>]" value="<?php echo $c; ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
38
  <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>
39
  <span class="border"></span>
40
  <?php else: ?>
41
  <?php
42
  $value = happyforms_get_part_value( $part, $form, $row['id'], array() );
43
+ $checked = in_array( $c, $value ) ? 'checked="checked"' : '';
44
  ?>
45
+ <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>][]" value="<?php echo $c; ?>" <?php echo $checked; ?> <?php happyforms_the_part_attributes( $part, $form ); ?>>
46
  <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>
47
  <?php endif; ?>
48
  </label>
51
  </div>
52
  <?php endforeach; ?>
53
  </div>
54
+
55
+ <?php happyforms_print_part_description( $part ); ?>
56
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
57
  </div>
58
 
 
 
59
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
60
  </div>
61
  </div>
inc/templates/parts/frontend-title.php CHANGED
@@ -2,59 +2,60 @@
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
6
-
7
- <div class="happyforms-custom-select">
8
- <div class="happyforms-part__select-wrap">
9
- <?php
10
- $options = happyforms_get_part_options( $part['options'], $part, $form );
11
-
12
- $default_value = happyforms_get_part_value( $part, $form );
13
- $placeholder_value = '';
14
- $has_value = false;
15
-
16
- if ( ! empty( $default_value ) ) {
17
- $has_value = true;
18
- }
19
-
20
- if ( ! $has_value ) {
21
- $placeholder_value = __( '- Select -', 'happyforms' );
22
- }
23
- ?>
24
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_value; ?>" placeholder="<?php echo $placeholder_value; ?>" class="happyforms-part__el happyforms-part__el--text-input"<?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
25
-
26
- <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
27
- <li data-value=""><?php _e( '- Select -', 'happyforms' ); ?></li>
28
  <?php
29
- $options = happyforms_get_part_options( $part['options'], $part, $form );
30
 
31
- foreach( $options as $option ) :
32
- $selected = ( happyforms_get_part_value( $part, $form ) === $option['label'] ) ? true : false;
 
33
 
34
- $li_classes = array();
35
- $li_classes[] = 'happyforms-custom-select-dropdown__item';
 
36
 
37
- if ( $selected ) {
38
- $li_classes[] = 'current';
39
  }
40
  ?>
41
- <li id="<?php echo esc_attr( $option['id'] ); ?>" data-value="<?php echo esc_attr( $option['label'] ); ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo esc_attr( $option['label'] ); ?></li>
42
- <?php endforeach; ?>
43
- </ul>
44
-
45
- <select id="<?php happyforms_the_part_id( $part, $form ); ?>_select" name="<?php happyforms_the_part_name( $part, $form ); ?>" class="happyforms-part__el" <?php happyforms_the_part_attributes( $part, $form ); ?>>
46
- <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
47
- <?php
48
- foreach( $options as $option ) : ?>
49
- <option value="<?php echo $option['label']; ?>" <?php selected( happyforms_get_part_value( $part, $form ), $option['label'] ); ?>><?php echo $option['label']; ?></option>
50
- <?php endforeach; ?>
51
- </select>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  </div>
53
- </div>
54
 
55
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
56
 
57
- <?php happyforms_print_part_description( $part ); ?>
58
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
59
  </div>
60
  </div>
2
  <div class="happyforms-part-wrap">
3
  <?php happyforms_the_part_label( $part, $form ); ?>
4
 
5
+ <div class="happyforms-part__el">
6
+ <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
7
+ <div class="happyforms-custom-select">
8
+ <div class="happyforms-part__select-wrap">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  <?php
10
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
11
 
12
+ $default_value = happyforms_get_part_value( $part, $form );
13
+ $placeholder_value = '';
14
+ $has_value = false;
15
 
16
+ if ( ! empty( $default_value ) ) {
17
+ $has_value = true;
18
+ }
19
 
20
+ if ( ! $has_value ) {
21
+ $placeholder_value = __( '- Select -', 'happyforms' );
22
  }
23
  ?>
24
+ <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="text" value="<?php echo $default_value; ?>" placeholder="<?php echo $placeholder_value; ?>" <?php if ( 1 === $part['required'] ) : ?> required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
25
+
26
+ <ul class="happyforms-part-select__dropdown happyforms-custom-select-dropdown">
27
+ <li data-value=""><?php _e( '- Select -', 'happyforms' ); ?></li>
28
+ <?php
29
+ $options = happyforms_get_part_options( $part['options'], $part, $form );
30
+
31
+ foreach( $options as $option ) :
32
+ $selected = ( happyforms_get_part_value( $part, $form ) === $option['label'] ) ? true : false;
33
+
34
+ $li_classes = array();
35
+ $li_classes[] = 'happyforms-custom-select-dropdown__item';
36
+
37
+ if ( $selected ) {
38
+ $li_classes[] = 'current';
39
+ }
40
+ ?>
41
+ <li id="<?php echo esc_attr( $option['id'] ); ?>" data-value="<?php echo esc_attr( $option['label'] ); ?>" class="<?php echo join( ' ', $li_classes ); ?>" tabindex="0"><?php echo esc_attr( $option['label'] ); ?></li>
42
+ <?php endforeach; ?>
43
+ </ul>
44
+
45
+ <select id="<?php happyforms_the_part_id( $part, $form ); ?>_select" name="<?php happyforms_the_part_name( $part, $form ); ?>" <?php happyforms_the_part_attributes( $part, $form ); ?>>
46
+ <option value="">- <?php _e( 'Select', 'happyforms' ); ?> -</option>
47
+ <?php
48
+ foreach( $options as $option ) : ?>
49
+ <option value="<?php echo $option['label']; ?>" <?php selected( happyforms_get_part_value( $part, $form ), $option['label'] ); ?>><?php echo $option['label']; ?></option>
50
+ <?php endforeach; ?>
51
+ </select>
52
+ </div>
53
  </div>
 
54
 
55
+ <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
56
 
57
+ <?php happyforms_print_part_description( $part ); ?>
58
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
59
+ </div>
60
  </div>
61
  </div>
inc/templates/parts/frontend-website-url.php CHANGED
@@ -4,17 +4,19 @@
4
  <?php happyforms_the_part_label( $part, $form ); ?>
5
  <?php endif; ?>
6
 
7
- <?php do_action( 'happyforms_part_input_before', $part, $form ); ?>
 
8
 
9
- <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'] ); ?>" class="happyforms-part__el happyforms-part__el--text-input" <?php if ( 1 === $part['required'] ) : ?>required aria-required="true"<?php endif; ?> <?php happyforms_the_part_attributes( $part, $form ); ?> />
10
 
11
- <?php do_action( 'happyforms_part_input_after', $part, $form ); ?>
12
 
13
- <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
14
- <?php happyforms_the_part_label( $part, $form ); ?>
15
- <?php endif; ?>
16
 
17
- <?php happyforms_print_part_description( $part ); ?>
18
- <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
 
19
  </div>
20
  </div>
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
+ <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
 
14
+ <?php if ( 'as_placeholder' === $part['label_placement'] ) : ?>
15
+ <?php happyforms_the_part_label( $part, $form ); ?>
16
+ <?php endif; ?>
17
 
18
+ <?php happyforms_print_part_description( $part ); ?>
19
+ <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
20
+ </div>
21
  </div>
22
  </div>
languages/happyforms.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: HappyForms 1.6.3\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
- "POT-Creation-Date: 2018-09-13 14:03:03+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -14,7 +14,7 @@ msgstr ""
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
15
 
16
  #: inc/classes/class-form-admin.php:155
17
- #: inc/classes/class-form-controller.php:95
18
  msgid "View form"
19
  msgstr ""
20
 
@@ -112,8 +112,8 @@ msgstr ""
112
  msgid "Duplicate"
113
  msgstr ""
114
 
115
- #: inc/classes/class-form-admin.php:366 inc/classes/class-message-admin.php:603
116
- #: inc/classes/class-message-admin.php:856
117
  msgid "Trash"
118
  msgstr ""
119
 
@@ -125,79 +125,79 @@ msgstr ""
125
  msgid " Copy"
126
  msgstr ""
127
 
128
- #: inc/classes/class-form-controller.php:90
129
- #: inc/classes/class-form-controller.php:100
130
  #: inc/classes/class-happyforms-plugin.php:156
131
  #: inc/classes/class-happyforms-plugin.php:157
132
  msgid "All Forms"
133
  msgstr ""
134
 
135
- #: inc/classes/class-form-controller.php:91
136
- #: inc/classes/class-message-admin.php:368
137
- #: inc/classes/class-message-admin.php:841
138
  msgid "Form"
139
  msgstr ""
140
 
141
- #: inc/classes/class-form-controller.php:92
142
- #: inc/classes/class-form-controller.php:94
143
  msgid "Build form"
144
  msgstr ""
145
 
146
- #: inc/classes/class-form-controller.php:93
147
  msgid "Edit form"
148
  msgstr ""
149
 
150
- #: inc/classes/class-form-controller.php:96
151
  msgid "View forms"
152
  msgstr ""
153
 
154
- #: inc/classes/class-form-controller.php:97
155
  msgid "Search Forms"
156
  msgstr ""
157
 
158
- #: inc/classes/class-form-controller.php:98
159
  msgid "No form found"
160
  msgstr ""
161
 
162
- #: inc/classes/class-form-controller.php:99
163
  msgid "No forms found in Trash"
164
  msgstr ""
165
 
166
- #: inc/classes/class-form-controller.php:199
167
  msgid "Untitled form"
168
  msgstr ""
169
 
170
- #: inc/classes/class-form-controller.php:220
171
- #: inc/classes/class-form-controller.php:248
172
  msgid ""
173
  "Your message has been successfully sent. We appreciate you contacting us "
174
  "and we’ll be in touch soon."
175
  msgstr ""
176
 
177
- #: inc/classes/class-form-controller.php:232
178
  msgid "You received a new message"
179
  msgstr ""
180
 
181
- #: inc/classes/class-form-controller.php:244
182
  msgid "We received your message"
183
  msgstr ""
184
 
185
- #: inc/classes/class-form-controller.php:260
186
  msgid "Submit Form"
187
  msgstr ""
188
 
189
- #: inc/classes/class-form-controller.php:288
190
  msgid "Review submission"
191
  msgstr ""
192
 
193
- #: inc/classes/class-form-controller.php:784
194
- #: inc/classes/class-message-controller.php:288
195
- #: inc/classes/class-message-controller.php:388
196
- #: inc/classes/class-message-controller.php:423
197
  msgid "Your submission contains errors."
198
  msgstr ""
199
 
200
- #: inc/classes/class-form-controller.php:934
201
  msgid "Please review your submission..."
202
  msgstr ""
203
 
@@ -233,8 +233,8 @@ msgstr ""
233
 
234
  #: inc/classes/class-form-styles.php:91 inc/classes/class-form-styles.php:120
235
  #: inc/classes/class-form-styles.php:168 inc/classes/class-form-styles.php:252
236
- #: inc/templates/parts/customize-date.php:30
237
- #: inc/templates/parts/customize-date.php:51
238
  msgid "Show"
239
  msgstr ""
240
 
@@ -479,13 +479,13 @@ msgstr ""
479
 
480
  #: inc/classes/class-form-styles.php:713
481
  #: inc/classes/parts/class-part-placeholder.php:8
482
- #: inc/templates/parts/customize-address.php:32
483
- #: inc/templates/parts/customize-email.php:32
484
- #: inc/templates/parts/customize-multi-line-text.php:32
485
- #: inc/templates/parts/customize-number.php:32
486
- #: inc/templates/parts/customize-phone.php:32
487
- #: inc/templates/parts/customize-single-line-text.php:32
488
- #: inc/templates/parts/customize-website-url.php:32
489
  msgid "Placeholder"
490
  msgstr ""
491
 
@@ -575,24 +575,24 @@ msgid "Submit button"
575
  msgstr ""
576
 
577
  #: inc/classes/class-form-styles.php:841
578
- #: inc/templates/parts/customize-address.php:74
579
- #: inc/templates/parts/customize-checkbox.php:51
580
- #: inc/templates/parts/customize-date.php:97
581
- #: inc/templates/parts/customize-email.php:42
582
  #: inc/templates/parts/customize-legal.php:4
583
- #: inc/templates/parts/customize-multi-line-text.php:42
584
  #: inc/templates/parts/customize-narrative.php:31
585
- #: inc/templates/parts/customize-number.php:71
586
- #: inc/templates/parts/customize-phone.php:65
587
  #: inc/templates/parts/customize-placeholder.php:26
588
- #: inc/templates/parts/customize-radio.php:51
589
- #: inc/templates/parts/customize-rating.php:51
590
- #: inc/templates/parts/customize-scale.php:83
591
- #: inc/templates/parts/customize-select.php:50
592
- #: inc/templates/parts/customize-single-line-text.php:47
593
- #: inc/templates/parts/customize-table.php:67
594
- #: inc/templates/parts/customize-title.php:36
595
- #: inc/templates/parts/customize-website-url.php:42
596
  msgid "Width"
597
  msgstr ""
598
 
@@ -672,7 +672,7 @@ msgid "View response #"
672
  msgstr ""
673
 
674
  #: inc/classes/class-message-admin.php:233
675
- #: inc/classes/class-message-controller.php:183
676
  msgid "View response"
677
  msgstr ""
678
 
@@ -751,90 +751,98 @@ msgstr ""
751
  msgid "Number of response fields to show:"
752
  msgstr ""
753
 
754
- #: inc/classes/class-message-admin.php:529
 
 
 
 
 
 
 
 
755
  msgid "All forms"
756
  msgstr ""
757
 
758
- #: inc/classes/class-message-admin.php:601
759
- #: inc/classes/class-message-admin.php:851
760
  msgid "Mark read"
761
  msgstr ""
762
 
763
- #: inc/classes/class-message-admin.php:602
764
- #: inc/classes/class-message-admin.php:851
765
  msgid "Mark unread"
766
  msgstr ""
767
 
768
- #: inc/classes/class-message-admin.php:607
769
  msgid "Export to CSV"
770
  msgstr ""
771
 
772
- #: inc/classes/class-message-admin.php:675
773
  msgid "View"
774
  msgstr ""
775
 
776
- #: inc/classes/class-message-admin.php:679
777
  msgid "Delete Permanently"
778
  msgstr ""
779
 
780
- #: inc/classes/class-message-admin.php:826
781
  msgid "Details"
782
  msgstr ""
783
 
784
- #: inc/classes/class-message-admin.php:846
785
  msgid "Submitted on"
786
  msgstr ""
787
 
788
- #: inc/classes/class-message-admin.php:846
789
  msgid "M j, Y @ H:i"
790
  msgstr ""
791
 
792
- #: inc/classes/class-message-admin.php:851
793
  msgid "Status"
794
  msgstr ""
795
 
796
- #: inc/classes/class-message-admin.php:851
797
  msgid "Read"
798
  msgstr ""
799
 
800
- #: inc/classes/class-message-admin.php:851
801
  msgid "Unread"
802
  msgstr ""
803
 
804
- #: inc/classes/class-message-controller.php:156
805
  msgid "New submission"
806
  msgstr ""
807
 
808
- #: inc/classes/class-message-controller.php:180
809
- #: inc/classes/class-message-controller.php:188
810
  msgid "All Responses"
811
  msgstr ""
812
 
813
- #: inc/classes/class-message-controller.php:181
814
  msgid "Response"
815
  msgstr ""
816
 
817
- #: inc/classes/class-message-controller.php:182
818
  msgid "Edit response"
819
  msgstr ""
820
 
821
- #: inc/classes/class-message-controller.php:184
822
  msgid "View Responses"
823
  msgstr ""
824
 
825
- #: inc/classes/class-message-controller.php:185
826
  msgid "Search Responses"
827
  msgstr ""
828
 
829
- #: inc/classes/class-message-controller.php:186
830
  msgid "No response found"
831
  msgstr ""
832
 
833
- #: inc/classes/class-message-controller.php:187
834
  msgid "No response found in Trash"
835
  msgstr ""
836
 
837
- #: inc/classes/class-message-controller.php:750
838
  msgid "Reply to this message and mark it as read"
839
  msgstr ""
840
 
@@ -937,19 +945,20 @@ msgstr ""
937
  #: inc/classes/parts/class-part-date.php:197
938
  #: inc/classes/parts/class-part-email.php:141
939
  #: inc/classes/parts/class-part-email.php:145
940
- #: inc/classes/parts/class-part-legal.php:113
941
  #: inc/classes/parts/class-part-multi-line-text.php:142
942
  #: inc/classes/parts/class-part-narrative.php:125
943
  #: inc/classes/parts/class-part-narrative.php:130
944
  #: inc/classes/parts/class-part-number.php:169
945
  #: inc/classes/parts/class-part-phone.php:390
946
  #: inc/classes/parts/class-part-phone.php:394
947
- #: inc/classes/parts/class-part-radio.php:166
948
- #: inc/classes/parts/class-part-rating.php:135
949
  #: inc/classes/parts/class-part-scale.php:163
950
- #: inc/classes/parts/class-part-select.php:163
951
  #: inc/classes/parts/class-part-single-line-text.php:129
952
- #: inc/classes/parts/class-part-table.php:206
 
953
  #: inc/classes/parts/class-part-title.php:156
954
  #: inc/classes/parts/class-part-website-url.php:124
955
  msgid "This field is required."
@@ -964,16 +973,16 @@ msgid "For checkboxes allowing multiple selections."
964
  msgstr ""
965
 
966
  #: inc/classes/parts/class-part-checkbox.php:30
967
- #: inc/classes/parts/class-part-radio.php:30
968
  #: inc/classes/parts/class-part-table.php:32
969
- #: inc/templates/parts/customize-checkbox.php:36
970
- #: inc/templates/parts/customize-radio.php:36
971
- #: inc/templates/parts/customize-select.php:36
972
  msgid "Options"
973
  msgstr ""
974
 
975
- #: inc/classes/parts/class-part-checkbox.php:175
976
- #: inc/classes/parts/class-part-table.php:218
977
  msgid "Checkbox values are not valid."
978
  msgstr ""
979
 
@@ -986,7 +995,7 @@ msgid "For formatted day, month, year and or time fields."
986
  msgstr ""
987
 
988
  #: inc/classes/parts/class-part-date.php:30
989
- #: inc/templates/parts/customize-date.php:32
990
  msgid "Date"
991
  msgstr ""
992
 
@@ -1024,7 +1033,7 @@ msgid "Email and confirmation email are not matching."
1024
  msgstr ""
1025
 
1026
  #: inc/classes/parts/class-part-legal.php:9
1027
- #: inc/classes/parts/class-part-legal.php:45
1028
  msgid "Legal"
1029
  msgstr ""
1030
 
@@ -1032,11 +1041,11 @@ msgstr ""
1032
  msgid "For requiring fine print before accepting submission."
1033
  msgstr ""
1034
 
1035
- #: inc/classes/parts/class-part-legal.php:29
1036
  msgid "I accept terms and conditions."
1037
  msgstr ""
1038
 
1039
- #: inc/classes/parts/class-part-legal.php:118
1040
  msgid "Please accept terms before proceeding."
1041
  msgstr ""
1042
 
@@ -1105,7 +1114,7 @@ msgid "For radio buttons allowing one selection."
1105
  msgstr ""
1106
 
1107
  #: inc/classes/parts/class-part-radio.php:174
1108
- #: inc/classes/parts/class-part-table.php:225
1109
  msgid "Radio values are not valid."
1110
  msgstr ""
1111
 
@@ -1113,17 +1122,39 @@ msgstr ""
1113
  msgid "For collecting opinions using stars and emoji scales."
1114
  msgstr ""
1115
 
1116
- #: inc/classes/parts/class-part-rating.php:141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1117
  msgid "Value should be between 1 and 5."
1118
  msgstr ""
1119
 
1120
- #: inc/classes/parts/class-part-rating.php:153
1121
- #: inc/templates/parts/frontend-rating-yesno.php:5
1122
  msgid "No"
1123
  msgstr ""
1124
 
1125
- #: inc/classes/parts/class-part-rating.php:155
1126
- #: inc/templates/parts/frontend-rating-yesno.php:11
1127
  msgid "Yes"
1128
  msgstr ""
1129
 
@@ -1137,7 +1168,7 @@ msgid "For collecting opinions using a horizontal slider."
1137
  msgstr ""
1138
 
1139
  #: inc/classes/parts/class-part-select.php:8
1140
- #: inc/classes/parts/class-part-select.php:28
1141
  msgid "Dropdown"
1142
  msgstr ""
1143
 
@@ -1258,1027 +1289,1027 @@ msgstr ""
1258
  msgid "How can I access my premium upgrade credentials?"
1259
  msgstr ""
1260
 
1261
- #: inc/helpers/helper-form-templates.php:807
1262
  msgid "Get my location"
1263
  msgstr ""
1264
 
1265
- #: inc/helpers/helper-form-templates.php:807
1266
  msgid "Fetching location…"
1267
  msgstr ""
1268
 
1269
- #: inc/helpers/helper-form-templates.php:818
1270
  msgid "January"
1271
  msgstr ""
1272
 
1273
- #: inc/helpers/helper-form-templates.php:819
1274
  msgid "February"
1275
  msgstr ""
1276
 
1277
- #: inc/helpers/helper-form-templates.php:820
1278
  msgid "March"
1279
  msgstr ""
1280
 
1281
- #: inc/helpers/helper-form-templates.php:821
1282
  msgid "April"
1283
  msgstr ""
1284
 
1285
- #: inc/helpers/helper-form-templates.php:822
1286
  msgid "May"
1287
  msgstr ""
1288
 
1289
- #: inc/helpers/helper-form-templates.php:823
1290
  msgid "June"
1291
  msgstr ""
1292
 
1293
- #: inc/helpers/helper-form-templates.php:824
1294
  msgid "July"
1295
  msgstr ""
1296
 
1297
- #: inc/helpers/helper-form-templates.php:825
1298
  msgid "August"
1299
  msgstr ""
1300
 
1301
- #: inc/helpers/helper-form-templates.php:826
1302
  msgid "September"
1303
  msgstr ""
1304
 
1305
- #: inc/helpers/helper-form-templates.php:827
1306
  msgid "October"
1307
  msgstr ""
1308
 
1309
- #: inc/helpers/helper-form-templates.php:828
1310
  msgid "November"
1311
  msgstr ""
1312
 
1313
- #: inc/helpers/helper-form-templates.php:829
1314
  msgid "December"
1315
  msgstr ""
1316
 
1317
- #: inc/helpers/helper-misc.php:173
1318
  msgid "How are we doing? Please rate"
1319
  msgstr ""
1320
 
1321
- #: inc/helpers/helper-misc.php:173
1322
  msgid "on"
1323
  msgstr ""
1324
 
1325
- #: inc/helpers/helper-misc.php:173
1326
  msgid "to help us spread the word."
1327
  msgstr ""
1328
 
1329
- #: inc/helpers/helper-misc.php:227
1330
  msgid "Afghanistan"
1331
  msgstr ""
1332
 
1333
- #: inc/helpers/helper-misc.php:228
1334
  msgid "Albania"
1335
  msgstr ""
1336
 
1337
- #: inc/helpers/helper-misc.php:229
1338
  msgid "Algeria"
1339
  msgstr ""
1340
 
1341
- #: inc/helpers/helper-misc.php:230
1342
  msgid "American Samoa"
1343
  msgstr ""
1344
 
1345
- #: inc/helpers/helper-misc.php:231
1346
  msgid "Andorra"
1347
  msgstr ""
1348
 
1349
- #: inc/helpers/helper-misc.php:232
1350
  msgid "Angola"
1351
  msgstr ""
1352
 
1353
- #: inc/helpers/helper-misc.php:233
1354
  msgid "Anguilla"
1355
  msgstr ""
1356
 
1357
- #: inc/helpers/helper-misc.php:234
1358
  msgid "Antarctica"
1359
  msgstr ""
1360
 
1361
- #: inc/helpers/helper-misc.php:235
1362
  msgid "Antigua and Barbuda"
1363
  msgstr ""
1364
 
1365
- #: inc/helpers/helper-misc.php:236
1366
  msgid "Argentina"
1367
  msgstr ""
1368
 
1369
- #: inc/helpers/helper-misc.php:237
1370
  msgid "Armenia"
1371
  msgstr ""
1372
 
1373
- #: inc/helpers/helper-misc.php:238
1374
  msgid "Aruba"
1375
  msgstr ""
1376
 
1377
- #: inc/helpers/helper-misc.php:239
1378
  msgid "Australia"
1379
  msgstr ""
1380
 
1381
- #: inc/helpers/helper-misc.php:240
1382
  msgid "Austria"
1383
  msgstr ""
1384
 
1385
- #: inc/helpers/helper-misc.php:241
1386
  msgid "Azerbaijan"
1387
  msgstr ""
1388
 
1389
- #: inc/helpers/helper-misc.php:242
1390
  msgid "Bahamas"
1391
  msgstr ""
1392
 
1393
- #: inc/helpers/helper-misc.php:243
1394
  msgid "Bahrain"
1395
  msgstr ""
1396
 
1397
- #: inc/helpers/helper-misc.php:244
1398
  msgid "Bangladesh"
1399
  msgstr ""
1400
 
1401
- #: inc/helpers/helper-misc.php:245
1402
  msgid "Barbados"
1403
  msgstr ""
1404
 
1405
- #: inc/helpers/helper-misc.php:246
1406
  msgid "Belarus"
1407
  msgstr ""
1408
 
1409
- #: inc/helpers/helper-misc.php:247
1410
  msgid "Belgium"
1411
  msgstr ""
1412
 
1413
- #: inc/helpers/helper-misc.php:248
1414
  msgid "Belize"
1415
  msgstr ""
1416
 
1417
- #: inc/helpers/helper-misc.php:249
1418
  msgid "Benin"
1419
  msgstr ""
1420
 
1421
- #: inc/helpers/helper-misc.php:250
1422
  msgid "Bermuda"
1423
  msgstr ""
1424
 
1425
- #: inc/helpers/helper-misc.php:251
1426
  msgid "Bhutan"
1427
  msgstr ""
1428
 
1429
- #: inc/helpers/helper-misc.php:252
1430
  msgid "Bolivia"
1431
  msgstr ""
1432
 
1433
- #: inc/helpers/helper-misc.php:253
1434
  msgid "Bosnia and Herzegowina"
1435
  msgstr ""
1436
 
1437
- #: inc/helpers/helper-misc.php:254
1438
  msgid "Botswana"
1439
  msgstr ""
1440
 
1441
- #: inc/helpers/helper-misc.php:255
1442
  msgid "Bouvet Island"
1443
  msgstr ""
1444
 
1445
- #: inc/helpers/helper-misc.php:256
1446
  msgid "Brazil"
1447
  msgstr ""
1448
 
1449
- #: inc/helpers/helper-misc.php:257
1450
  msgid "British Indian Ocean Territory"
1451
  msgstr ""
1452
 
1453
- #: inc/helpers/helper-misc.php:258
1454
  msgid "Brunei Darussalam"
1455
  msgstr ""
1456
 
1457
- #: inc/helpers/helper-misc.php:259
1458
  msgid "Bulgaria"
1459
  msgstr ""
1460
 
1461
- #: inc/helpers/helper-misc.php:260
1462
  msgid "Burkina Faso"
1463
  msgstr ""
1464
 
1465
- #: inc/helpers/helper-misc.php:261
1466
  msgid "Burundi"
1467
  msgstr ""
1468
 
1469
- #: inc/helpers/helper-misc.php:262
1470
  msgid "Cambodia"
1471
  msgstr ""
1472
 
1473
- #: inc/helpers/helper-misc.php:263
1474
  msgid "Cameroon"
1475
  msgstr ""
1476
 
1477
- #: inc/helpers/helper-misc.php:264
1478
  msgid "Canada"
1479
  msgstr ""
1480
 
1481
- #: inc/helpers/helper-misc.php:265
1482
  msgid "Cape Verde"
1483
  msgstr ""
1484
 
1485
- #: inc/helpers/helper-misc.php:266
1486
  msgid "Cayman Islands"
1487
  msgstr ""
1488
 
1489
- #: inc/helpers/helper-misc.php:267
1490
  msgid "Central African Republic"
1491
  msgstr ""
1492
 
1493
- #: inc/helpers/helper-misc.php:268
1494
  msgid "Chad"
1495
  msgstr ""
1496
 
1497
- #: inc/helpers/helper-misc.php:269
1498
  msgid "Chile"
1499
  msgstr ""
1500
 
1501
- #: inc/helpers/helper-misc.php:270
1502
  msgid "China"
1503
  msgstr ""
1504
 
1505
- #: inc/helpers/helper-misc.php:271
1506
  msgid "Christmas Island"
1507
  msgstr ""
1508
 
1509
- #: inc/helpers/helper-misc.php:272
1510
  msgid "Cocos (Keeling) Islands"
1511
  msgstr ""
1512
 
1513
- #: inc/helpers/helper-misc.php:273
1514
  msgid "Colombia"
1515
  msgstr ""
1516
 
1517
- #: inc/helpers/helper-misc.php:274
1518
  msgid "Comoros"
1519
  msgstr ""
1520
 
1521
- #: inc/helpers/helper-misc.php:275
1522
  msgid "Congo"
1523
  msgstr ""
1524
 
1525
- #: inc/helpers/helper-misc.php:276
1526
  msgid "Congo, the Democratic Republic of the"
1527
  msgstr ""
1528
 
1529
- #: inc/helpers/helper-misc.php:277
1530
  msgid "Cook Islands"
1531
  msgstr ""
1532
 
1533
- #: inc/helpers/helper-misc.php:278
1534
  msgid "Costa Rica"
1535
  msgstr ""
1536
 
1537
- #: inc/helpers/helper-misc.php:279
1538
- msgid "Cote d'Ivoire"
1539
  msgstr ""
1540
 
1541
- #: inc/helpers/helper-misc.php:280
1542
  msgid "Croatia (Hrvatska)"
1543
  msgstr ""
1544
 
1545
- #: inc/helpers/helper-misc.php:281
1546
  msgid "Cuba"
1547
  msgstr ""
1548
 
1549
- #: inc/helpers/helper-misc.php:282
1550
  msgid "Cyprus"
1551
  msgstr ""
1552
 
1553
- #: inc/helpers/helper-misc.php:283
1554
  msgid "Czech Republic"
1555
  msgstr ""
1556
 
1557
- #: inc/helpers/helper-misc.php:284
1558
  msgid "Denmark"
1559
  msgstr ""
1560
 
1561
- #: inc/helpers/helper-misc.php:285
1562
  msgid "Djibouti"
1563
  msgstr ""
1564
 
1565
- #: inc/helpers/helper-misc.php:286
1566
  msgid "Dominica"
1567
  msgstr ""
1568
 
1569
- #: inc/helpers/helper-misc.php:287
1570
  msgid "Dominican Republic"
1571
  msgstr ""
1572
 
1573
- #: inc/helpers/helper-misc.php:288
1574
  msgid "East Timor"
1575
  msgstr ""
1576
 
1577
- #: inc/helpers/helper-misc.php:289
1578
  msgid "Ecuador"
1579
  msgstr ""
1580
 
1581
- #: inc/helpers/helper-misc.php:290
1582
  msgid "Egypt"
1583
  msgstr ""
1584
 
1585
- #: inc/helpers/helper-misc.php:291
1586
  msgid "El Salvador"
1587
  msgstr ""
1588
 
1589
- #: inc/helpers/helper-misc.php:292
1590
  msgid "Equatorial Guinea"
1591
  msgstr ""
1592
 
1593
- #: inc/helpers/helper-misc.php:293
1594
  msgid "Eritrea"
1595
  msgstr ""
1596
 
1597
- #: inc/helpers/helper-misc.php:294
1598
  msgid "Estonia"
1599
  msgstr ""
1600
 
1601
- #: inc/helpers/helper-misc.php:295
1602
  msgid "Ethiopia"
1603
  msgstr ""
1604
 
1605
- #: inc/helpers/helper-misc.php:296
1606
  msgid "Falkland Islands (Malvinas)"
1607
  msgstr ""
1608
 
1609
- #: inc/helpers/helper-misc.php:297
1610
  msgid "Faroe Islands"
1611
  msgstr ""
1612
 
1613
- #: inc/helpers/helper-misc.php:298
1614
  msgid "Fiji"
1615
  msgstr ""
1616
 
1617
- #: inc/helpers/helper-misc.php:299
1618
  msgid "Finland"
1619
  msgstr ""
1620
 
1621
- #: inc/helpers/helper-misc.php:300
1622
  msgid "France"
1623
  msgstr ""
1624
 
1625
- #: inc/helpers/helper-misc.php:301
1626
  msgid "France Metropolitan"
1627
  msgstr ""
1628
 
1629
- #: inc/helpers/helper-misc.php:302
1630
  msgid "French Guiana"
1631
  msgstr ""
1632
 
1633
- #: inc/helpers/helper-misc.php:303
1634
  msgid "French Polynesia"
1635
  msgstr ""
1636
 
1637
- #: inc/helpers/helper-misc.php:304
1638
  msgid "French Southern Territories"
1639
  msgstr ""
1640
 
1641
- #: inc/helpers/helper-misc.php:305
1642
  msgid "Gabon"
1643
  msgstr ""
1644
 
1645
- #: inc/helpers/helper-misc.php:306
1646
  msgid "Gambia"
1647
  msgstr ""
1648
 
1649
- #: inc/helpers/helper-misc.php:307
1650
  msgid "Georgia"
1651
  msgstr ""
1652
 
1653
- #: inc/helpers/helper-misc.php:308
1654
  msgid "Germany"
1655
  msgstr ""
1656
 
1657
- #: inc/helpers/helper-misc.php:309
1658
  msgid "Ghana"
1659
  msgstr ""
1660
 
1661
- #: inc/helpers/helper-misc.php:310
1662
  msgid "Gibraltar"
1663
  msgstr ""
1664
 
1665
- #: inc/helpers/helper-misc.php:311
1666
  msgid "Greece"
1667
  msgstr ""
1668
 
1669
- #: inc/helpers/helper-misc.php:312
1670
  msgid "Greenland"
1671
  msgstr ""
1672
 
1673
- #: inc/helpers/helper-misc.php:313
1674
  msgid "Grenada"
1675
  msgstr ""
1676
 
1677
- #: inc/helpers/helper-misc.php:314
1678
  msgid "Guadeloupe"
1679
  msgstr ""
1680
 
1681
- #: inc/helpers/helper-misc.php:315
1682
  msgid "Guam"
1683
  msgstr ""
1684
 
1685
- #: inc/helpers/helper-misc.php:316
1686
  msgid "Guatemala"
1687
  msgstr ""
1688
 
1689
- #: inc/helpers/helper-misc.php:317
1690
  msgid "Guinea"
1691
  msgstr ""
1692
 
1693
- #: inc/helpers/helper-misc.php:318
1694
  msgid "Guinea-Bissau"
1695
  msgstr ""
1696
 
1697
- #: inc/helpers/helper-misc.php:319
1698
  msgid "Guyana"
1699
  msgstr ""
1700
 
1701
- #: inc/helpers/helper-misc.php:320
1702
  msgid "Haiti"
1703
  msgstr ""
1704
 
1705
- #: inc/helpers/helper-misc.php:321
1706
  msgid "Heard and Mc Donald Islands"
1707
  msgstr ""
1708
 
1709
- #: inc/helpers/helper-misc.php:322
1710
  msgid "Holy See (Vatican City State)"
1711
  msgstr ""
1712
 
1713
- #: inc/helpers/helper-misc.php:323
1714
  msgid "Honduras"
1715
  msgstr ""
1716
 
1717
- #: inc/helpers/helper-misc.php:324
1718
  msgid "Hong Kong"
1719
  msgstr ""
1720
 
1721
- #: inc/helpers/helper-misc.php:325
1722
  msgid "Hungary"
1723
  msgstr ""
1724
 
1725
- #: inc/helpers/helper-misc.php:326
1726
  msgid "Iceland"
1727
  msgstr ""
1728
 
1729
- #: inc/helpers/helper-misc.php:327
1730
  msgid "India"
1731
  msgstr ""
1732
 
1733
- #: inc/helpers/helper-misc.php:328
1734
  msgid "Indonesia"
1735
  msgstr ""
1736
 
1737
- #: inc/helpers/helper-misc.php:329
1738
  msgid "Iran (Islamic Republic of)"
1739
  msgstr ""
1740
 
1741
- #: inc/helpers/helper-misc.php:330
1742
  msgid "Iraq"
1743
  msgstr ""
1744
 
1745
- #: inc/helpers/helper-misc.php:331
1746
  msgid "Ireland"
1747
  msgstr ""
1748
 
1749
- #: inc/helpers/helper-misc.php:332
1750
  msgid "Israel"
1751
  msgstr ""
1752
 
1753
- #: inc/helpers/helper-misc.php:333
1754
  msgid "Italy"
1755
  msgstr ""
1756
 
1757
- #: inc/helpers/helper-misc.php:334
1758
  msgid "Jamaica"
1759
  msgstr ""
1760
 
1761
- #: inc/helpers/helper-misc.php:335
1762
  msgid "Japan"
1763
  msgstr ""
1764
 
1765
- #: inc/helpers/helper-misc.php:336
1766
  msgid "Jordan"
1767
  msgstr ""
1768
 
1769
- #: inc/helpers/helper-misc.php:337
1770
  msgid "Kazakhstan"
1771
  msgstr ""
1772
 
1773
- #: inc/helpers/helper-misc.php:338
1774
  msgid "Kenya"
1775
  msgstr ""
1776
 
1777
- #: inc/helpers/helper-misc.php:339
1778
  msgid "Kiribati"
1779
  msgstr ""
1780
 
1781
- #: inc/helpers/helper-misc.php:340
1782
  msgid "Korea, Democratic People's Republic of"
1783
  msgstr ""
1784
 
1785
- #: inc/helpers/helper-misc.php:341
1786
  msgid "Korea, Republic of"
1787
  msgstr ""
1788
 
1789
- #: inc/helpers/helper-misc.php:342
1790
  msgid "Kuwait"
1791
  msgstr ""
1792
 
1793
- #: inc/helpers/helper-misc.php:343
1794
  msgid "Kyrgyzstan"
1795
  msgstr ""
1796
 
1797
- #: inc/helpers/helper-misc.php:344
1798
  msgid "Lao, People's Democratic Republic"
1799
  msgstr ""
1800
 
1801
- #: inc/helpers/helper-misc.php:345
1802
  msgid "Latvia"
1803
  msgstr ""
1804
 
1805
- #: inc/helpers/helper-misc.php:346
1806
  msgid "Lebanon"
1807
  msgstr ""
1808
 
1809
- #: inc/helpers/helper-misc.php:347
1810
  msgid "Lesotho"
1811
  msgstr ""
1812
 
1813
- #: inc/helpers/helper-misc.php:348
1814
  msgid "Liberia"
1815
  msgstr ""
1816
 
1817
- #: inc/helpers/helper-misc.php:349
1818
  msgid "Libyan Arab Jamahiriya"
1819
  msgstr ""
1820
 
1821
- #: inc/helpers/helper-misc.php:350
1822
  msgid "Liechtenstein"
1823
  msgstr ""
1824
 
1825
- #: inc/helpers/helper-misc.php:351
1826
  msgid "Lithuania"
1827
  msgstr ""
1828
 
1829
- #: inc/helpers/helper-misc.php:352
1830
  msgid "Luxembourg"
1831
  msgstr ""
1832
 
1833
- #: inc/helpers/helper-misc.php:353
1834
  msgid "Macau"
1835
  msgstr ""
1836
 
1837
- #: inc/helpers/helper-misc.php:354
1838
  msgid "Macedonia, The Former Yugoslav Republic of"
1839
  msgstr ""
1840
 
1841
- #: inc/helpers/helper-misc.php:355
1842
  msgid "Madagascar"
1843
  msgstr ""
1844
 
1845
- #: inc/helpers/helper-misc.php:356
1846
  msgid "Malawi"
1847
  msgstr ""
1848
 
1849
- #: inc/helpers/helper-misc.php:357
1850
  msgid "Malaysia"
1851
  msgstr ""
1852
 
1853
- #: inc/helpers/helper-misc.php:358
1854
  msgid "Maldives"
1855
  msgstr ""
1856
 
1857
- #: inc/helpers/helper-misc.php:359
1858
  msgid "Mali"
1859
  msgstr ""
1860
 
1861
- #: inc/helpers/helper-misc.php:360
1862
  msgid "Malta"
1863
  msgstr ""
1864
 
1865
- #: inc/helpers/helper-misc.php:361
1866
  msgid "Marshall Islands"
1867
  msgstr ""
1868
 
1869
- #: inc/helpers/helper-misc.php:362
1870
  msgid "Martinique"
1871
  msgstr ""
1872
 
1873
- #: inc/helpers/helper-misc.php:363
1874
  msgid "Mauritania"
1875
  msgstr ""
1876
 
1877
- #: inc/helpers/helper-misc.php:364
1878
  msgid "Mauritius"
1879
  msgstr ""
1880
 
1881
- #: inc/helpers/helper-misc.php:365
1882
  msgid "Mayotte"
1883
  msgstr ""
1884
 
1885
- #: inc/helpers/helper-misc.php:366
1886
  msgid "Mexico"
1887
  msgstr ""
1888
 
1889
- #: inc/helpers/helper-misc.php:367
1890
  msgid "Micronesia, Federated States of"
1891
  msgstr ""
1892
 
1893
- #: inc/helpers/helper-misc.php:368
1894
  msgid "Moldova, Republic of"
1895
  msgstr ""
1896
 
1897
- #: inc/helpers/helper-misc.php:369
1898
  msgid "Monaco"
1899
  msgstr ""
1900
 
1901
- #: inc/helpers/helper-misc.php:370
1902
  msgid "Mongolia"
1903
  msgstr ""
1904
 
1905
- #: inc/helpers/helper-misc.php:371
1906
  msgid "Montserrat"
1907
  msgstr ""
1908
 
1909
- #: inc/helpers/helper-misc.php:372
1910
  msgid "Morocco"
1911
  msgstr ""
1912
 
1913
- #: inc/helpers/helper-misc.php:373
1914
  msgid "Mozambique"
1915
  msgstr ""
1916
 
1917
- #: inc/helpers/helper-misc.php:374
1918
  msgid "Myanmar"
1919
  msgstr ""
1920
 
1921
- #: inc/helpers/helper-misc.php:375
1922
  msgid "Namibia"
1923
  msgstr ""
1924
 
1925
- #: inc/helpers/helper-misc.php:376
1926
  msgid "Nauru"
1927
  msgstr ""
1928
 
1929
- #: inc/helpers/helper-misc.php:377
1930
  msgid "Nepal"
1931
  msgstr ""
1932
 
1933
- #: inc/helpers/helper-misc.php:378
1934
  msgid "Netherlands"
1935
  msgstr ""
1936
 
1937
- #: inc/helpers/helper-misc.php:379
1938
  msgid "Netherlands Antilles"
1939
  msgstr ""
1940
 
1941
- #: inc/helpers/helper-misc.php:380
1942
  msgid "New Caledonia"
1943
  msgstr ""
1944
 
1945
- #: inc/helpers/helper-misc.php:381
1946
  msgid "New Zealand"
1947
  msgstr ""
1948
 
1949
- #: inc/helpers/helper-misc.php:382
1950
  msgid "Nicaragua"
1951
  msgstr ""
1952
 
1953
- #: inc/helpers/helper-misc.php:383
1954
  msgid "Niger"
1955
  msgstr ""
1956
 
1957
- #: inc/helpers/helper-misc.php:384
1958
  msgid "Nigeria"
1959
  msgstr ""
1960
 
1961
- #: inc/helpers/helper-misc.php:385
1962
  msgid "Niue"
1963
  msgstr ""
1964
 
1965
- #: inc/helpers/helper-misc.php:386
1966
  msgid "Norfolk Island"
1967
  msgstr ""
1968
 
1969
- #: inc/helpers/helper-misc.php:387
1970
  msgid "Northern Mariana Islands"
1971
  msgstr ""
1972
 
1973
- #: inc/helpers/helper-misc.php:388
1974
  msgid "Norway"
1975
  msgstr ""
1976
 
1977
- #: inc/helpers/helper-misc.php:389
1978
  msgid "Oman"
1979
  msgstr ""
1980
 
1981
- #: inc/helpers/helper-misc.php:390
1982
  msgid "Pakistan"
1983
  msgstr ""
1984
 
1985
- #: inc/helpers/helper-misc.php:391
1986
  msgid "Palau"
1987
  msgstr ""
1988
 
1989
- #: inc/helpers/helper-misc.php:392
1990
  msgid "Panama"
1991
  msgstr ""
1992
 
1993
- #: inc/helpers/helper-misc.php:393
1994
  msgid "Papua New Guinea"
1995
  msgstr ""
1996
 
1997
- #: inc/helpers/helper-misc.php:394
1998
  msgid "Paraguay"
1999
  msgstr ""
2000
 
2001
- #: inc/helpers/helper-misc.php:395
2002
  msgid "Peru"
2003
  msgstr ""
2004
 
2005
- #: inc/helpers/helper-misc.php:396
2006
  msgid "Philippines"
2007
  msgstr ""
2008
 
2009
- #: inc/helpers/helper-misc.php:397
2010
  msgid "Pitcairn"
2011
  msgstr ""
2012
 
2013
- #: inc/helpers/helper-misc.php:398
2014
  msgid "Poland"
2015
  msgstr ""
2016
 
2017
- #: inc/helpers/helper-misc.php:399
2018
  msgid "Portugal"
2019
  msgstr ""
2020
 
2021
- #: inc/helpers/helper-misc.php:400
2022
  msgid "Puerto Rico"
2023
  msgstr ""
2024
 
2025
- #: inc/helpers/helper-misc.php:401
2026
  msgid "Qatar"
2027
  msgstr ""
2028
 
2029
- #: inc/helpers/helper-misc.php:402
2030
  msgid "Reunion"
2031
  msgstr ""
2032
 
2033
- #: inc/helpers/helper-misc.php:403
2034
  msgid "Romania"
2035
  msgstr ""
2036
 
2037
- #: inc/helpers/helper-misc.php:404
2038
  msgid "Russian Federation"
2039
  msgstr ""
2040
 
2041
- #: inc/helpers/helper-misc.php:405
2042
  msgid "Rwanda"
2043
  msgstr ""
2044
 
2045
- #: inc/helpers/helper-misc.php:406
2046
  msgid "Saint Kitts and Nevis"
2047
  msgstr ""
2048
 
2049
- #: inc/helpers/helper-misc.php:407
2050
  msgid "Saint Lucia"
2051
  msgstr ""
2052
 
2053
- #: inc/helpers/helper-misc.php:408
2054
  msgid "Saint Vincent and the Grenadines"
2055
  msgstr ""
2056
 
2057
- #: inc/helpers/helper-misc.php:409
2058
  msgid "Samoa"
2059
  msgstr ""
2060
 
2061
- #: inc/helpers/helper-misc.php:410
2062
  msgid "San Marino"
2063
  msgstr ""
2064
 
2065
- #: inc/helpers/helper-misc.php:411
2066
  msgid "Sao Tome and Principe"
2067
  msgstr ""
2068
 
2069
- #: inc/helpers/helper-misc.php:412
2070
  msgid "Saudi Arabia"
2071
  msgstr ""
2072
 
2073
- #: inc/helpers/helper-misc.php:413
2074
  msgid "Senegal"
2075
  msgstr ""
2076
 
2077
- #: inc/helpers/helper-misc.php:414
2078
  msgid "Seychelles"
2079
  msgstr ""
2080
 
2081
- #: inc/helpers/helper-misc.php:415
2082
  msgid "Sierra Leone"
2083
  msgstr ""
2084
 
2085
- #: inc/helpers/helper-misc.php:416
2086
  msgid "Singapore"
2087
  msgstr ""
2088
 
2089
- #: inc/helpers/helper-misc.php:417
2090
  msgid "Slovakia (Slovak Republic)"
2091
  msgstr ""
2092
 
2093
- #: inc/helpers/helper-misc.php:418
2094
  msgid "Slovenia"
2095
  msgstr ""
2096
 
2097
- #: inc/helpers/helper-misc.php:419
2098
  msgid "Solomon Islands"
2099
  msgstr ""
2100
 
2101
- #: inc/helpers/helper-misc.php:420
2102
  msgid "Somalia"
2103
  msgstr ""
2104
 
2105
- #: inc/helpers/helper-misc.php:421
2106
  msgid "South Africa"
2107
  msgstr ""
2108
 
2109
- #: inc/helpers/helper-misc.php:422
2110
  msgid "South Georgia and the South Sandwich Islands"
2111
  msgstr ""
2112
 
2113
- #: inc/helpers/helper-misc.php:423
2114
  msgid "Spain"
2115
  msgstr ""
2116
 
2117
- #: inc/helpers/helper-misc.php:424
2118
  msgid "Sri Lanka"
2119
  msgstr ""
2120
 
2121
- #: inc/helpers/helper-misc.php:425
2122
  msgid "St. Helena"
2123
  msgstr ""
2124
 
2125
- #: inc/helpers/helper-misc.php:426
2126
  msgid "St. Pierre and Miquelon"
2127
  msgstr ""
2128
 
2129
- #: inc/helpers/helper-misc.php:427
2130
  msgid "Sudan"
2131
  msgstr ""
2132
 
2133
- #: inc/helpers/helper-misc.php:428
2134
  msgid "Suriname"
2135
  msgstr ""
2136
 
2137
- #: inc/helpers/helper-misc.php:429
2138
  msgid "Svalbard and Jan Mayen Islands"
2139
  msgstr ""
2140
 
2141
- #: inc/helpers/helper-misc.php:430
2142
  msgid "Swaziland"
2143
  msgstr ""
2144
 
2145
- #: inc/helpers/helper-misc.php:431
2146
  msgid "Sweden"
2147
  msgstr ""
2148
 
2149
- #: inc/helpers/helper-misc.php:432
2150
  msgid "Switzerland"
2151
  msgstr ""
2152
 
2153
- #: inc/helpers/helper-misc.php:433
2154
  msgid "Syrian Arab Republic"
2155
  msgstr ""
2156
 
2157
- #: inc/helpers/helper-misc.php:434
2158
  msgid "Taiwan, Province of China"
2159
  msgstr ""
2160
 
2161
- #: inc/helpers/helper-misc.php:435
2162
  msgid "Tajikistan"
2163
  msgstr ""
2164
 
2165
- #: inc/helpers/helper-misc.php:436
2166
  msgid "Tanzania, United Republic of"
2167
  msgstr ""
2168
 
2169
- #: inc/helpers/helper-misc.php:437
2170
  msgid "Thailand"
2171
  msgstr ""
2172
 
2173
- #: inc/helpers/helper-misc.php:438
2174
  msgid "Togo"
2175
  msgstr ""
2176
 
2177
- #: inc/helpers/helper-misc.php:439
2178
  msgid "Tokelau"
2179
  msgstr ""
2180
 
2181
- #: inc/helpers/helper-misc.php:440
2182
  msgid "Tonga"
2183
  msgstr ""
2184
 
2185
- #: inc/helpers/helper-misc.php:441
2186
  msgid "Trinidad and Tobago"
2187
  msgstr ""
2188
 
2189
- #: inc/helpers/helper-misc.php:442
2190
  msgid "Tunisia"
2191
  msgstr ""
2192
 
2193
- #: inc/helpers/helper-misc.php:443
2194
  msgid "Turkey"
2195
  msgstr ""
2196
 
2197
- #: inc/helpers/helper-misc.php:444
2198
  msgid "Turkmenistan"
2199
  msgstr ""
2200
 
2201
- #: inc/helpers/helper-misc.php:445
2202
  msgid "Turks and Caicos Islands"
2203
  msgstr ""
2204
 
2205
- #: inc/helpers/helper-misc.php:446
2206
  msgid "Tuvalu"
2207
  msgstr ""
2208
 
2209
- #: inc/helpers/helper-misc.php:447
2210
  msgid "Uganda"
2211
  msgstr ""
2212
 
2213
- #: inc/helpers/helper-misc.php:448
2214
  msgid "Ukraine"
2215
  msgstr ""
2216
 
2217
- #: inc/helpers/helper-misc.php:449
2218
  msgid "United Arab Emirates"
2219
  msgstr ""
2220
 
2221
- #: inc/helpers/helper-misc.php:450
2222
  msgid "United Kingdom"
2223
  msgstr ""
2224
 
2225
- #: inc/helpers/helper-misc.php:451
2226
  msgid "United States"
2227
  msgstr ""
2228
 
2229
- #: inc/helpers/helper-misc.php:452
2230
  msgid "United States Minor Outlying Islands"
2231
  msgstr ""
2232
 
2233
- #: inc/helpers/helper-misc.php:453
2234
  msgid "Uruguay"
2235
  msgstr ""
2236
 
2237
- #: inc/helpers/helper-misc.php:454
2238
  msgid "Uzbekistan"
2239
  msgstr ""
2240
 
2241
- #: inc/helpers/helper-misc.php:455
2242
  msgid "Vanuatu"
2243
  msgstr ""
2244
 
2245
- #: inc/helpers/helper-misc.php:456
2246
  msgid "Venezuela"
2247
  msgstr ""
2248
 
2249
- #: inc/helpers/helper-misc.php:457
2250
  msgid "Vietnam"
2251
  msgstr ""
2252
 
2253
- #: inc/helpers/helper-misc.php:458
2254
  msgid "Virgin Islands (British)"
2255
  msgstr ""
2256
 
2257
- #: inc/helpers/helper-misc.php:459
2258
  msgid "Virgin Islands (U.S.)"
2259
  msgstr ""
2260
 
2261
- #: inc/helpers/helper-misc.php:460
2262
  msgid "Wallis and Futuna Islands"
2263
  msgstr ""
2264
 
2265
- #: inc/helpers/helper-misc.php:461
2266
  msgid "Western Sahara"
2267
  msgstr ""
2268
 
2269
- #: inc/helpers/helper-misc.php:462
2270
  msgid "Yemen"
2271
  msgstr ""
2272
 
2273
- #: inc/helpers/helper-misc.php:463
2274
  msgid "Yugoslavia"
2275
  msgstr ""
2276
 
2277
- #: inc/helpers/helper-misc.php:464
2278
  msgid "Zambia"
2279
  msgstr ""
2280
 
2281
- #: inc/helpers/helper-misc.php:465
2282
  msgid "Zimbabwe"
2283
  msgstr ""
2284
 
@@ -2290,11 +2321,11 @@ msgstr ""
2290
  msgid "Insert"
2291
  msgstr ""
2292
 
2293
- #: inc/templates/admin-message-edit.php:25
2294
  msgid "Previous response"
2295
  msgstr ""
2296
 
2297
- #: inc/templates/admin-message-edit.php:27
2298
  msgid "Next response"
2299
  msgstr ""
2300
 
@@ -2376,11 +2407,11 @@ msgstr ""
2376
 
2377
  #: inc/templates/customize-form-item.php:33
2378
  #: inc/templates/customize-form-part-footer.php:3
2379
- #: inc/templates/parts/customize-checkbox.php:81
2380
- #: inc/templates/parts/customize-radio.php:85
2381
- #: inc/templates/parts/customize-select.php:80
2382
- #: inc/templates/parts/customize-table.php:97
2383
- #: inc/templates/parts/customize-table.php:108
2384
  msgid "Delete"
2385
  msgstr ""
2386
 
@@ -2458,82 +2489,108 @@ msgid "Save messages for this form"
2458
  msgstr ""
2459
 
2460
  #: inc/templates/customize-form-setup.php:86
2461
- msgid "Preview values before submission"
2462
  msgstr ""
2463
 
2464
  #: inc/templates/customize-form-setup.php:91
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2465
  msgid "Review button text"
2466
  msgstr ""
2467
 
2468
- #: inc/templates/customize-form-setup.php:98
2469
  msgid ""
2470
  "This is the message your users will see after succesfully submitting your "
2471
  "form."
2472
  msgstr ""
2473
 
2474
- #: inc/templates/customize-form-setup.php:101
2475
  msgid ""
2476
  "Add your email address here to receive a confirmation email for each form "
2477
  "response. You can add multiple email addresses by separating each address "
2478
  "with a comma."
2479
  msgstr ""
2480
 
2481
- #: inc/templates/customize-form-setup.php:104
2482
  msgid ""
2483
  "Each time a user submits a message, you'll receive an email with this "
2484
  "subject."
2485
  msgstr ""
2486
 
2487
- #: inc/templates/customize-form-setup.php:107
2488
  msgid ""
2489
  "If your form contains an email field, recipients will receive an email with "
2490
  "this content."
2491
  msgstr ""
2492
 
2493
- #: inc/templates/customize-form-setup.php:110
2494
  msgid ""
2495
  "If your form contains an email field, recipients will receive an email with "
2496
  "this sender name."
2497
  msgstr ""
2498
 
2499
- #: inc/templates/customize-form-setup.php:113
2500
  msgid ""
2501
  "If your form contains an email field, recipients will receive an email with "
2502
  "this subject."
2503
  msgstr ""
2504
 
2505
- #: inc/templates/customize-form-setup.php:116
2506
  msgid ""
2507
  "By default, recipients will be redirected to the post or page displaying "
2508
  "this form. To set a custom redirect webpage, add a link here."
2509
  msgstr ""
2510
 
2511
- #: inc/templates/customize-form-setup.php:119
2512
  msgid "Protect your form against bots by using HoneyPot security."
2513
  msgstr ""
2514
 
2515
- #: inc/templates/customize-form-setup.php:122
2516
  msgid "Protect your form against bots using your Google ReCaptcha credentials."
2517
  msgstr ""
2518
 
2519
- #: inc/templates/customize-form-setup.php:125
2520
  msgid "Keep recipients responses stored in your WordPress database."
2521
  msgstr ""
2522
 
2523
- #: inc/templates/customize-form-setup.php:128
2524
  msgid "Let your users review their submission before confirming it."
2525
  msgstr ""
2526
 
 
 
 
 
 
 
 
 
2527
  #: inc/templates/customize-form-steps.php:5
2528
  msgid "Build"
2529
  msgstr ""
2530
 
2531
  #: inc/templates/customize-form-steps.php:23
2532
- msgid "Save form"
 
2533
  msgstr ""
2534
 
2535
  #: inc/templates/customize-form-steps.php:30
2536
- #: inc/templates/parts/customize-scale.php:75
2537
  msgid "Step"
2538
  msgstr ""
2539
 
@@ -2549,10 +2606,6 @@ msgstr ""
2549
  msgid "You are customizing"
2550
  msgstr ""
2551
 
2552
- #: inc/templates/customize-header-actions.php:3
2553
- msgid "Save Form"
2554
- msgstr ""
2555
-
2556
  #: inc/templates/customize-header-actions.php:5
2557
  msgid "The changes you made will be lost if you navigate away from this page."
2558
  msgstr ""
@@ -2638,37 +2691,37 @@ msgstr ""
2638
 
2639
  #: inc/templates/parts/customize-address.php:19
2640
  #: inc/templates/parts/customize-checkbox.php:17
2641
- #: inc/templates/parts/customize-checkbox.php:61
2642
  #: inc/templates/parts/customize-date.php:17
2643
- #: inc/templates/parts/customize-date.php:107
2644
  #: inc/templates/parts/customize-email.php:19
2645
- #: inc/templates/parts/customize-email.php:52
2646
  #: inc/templates/parts/customize-multi-line-text.php:19
2647
- #: inc/templates/parts/customize-multi-line-text.php:52
2648
  #: inc/templates/parts/customize-narrative.php:17
2649
  #: inc/templates/parts/customize-narrative.php:41
2650
  #: inc/templates/parts/customize-number.php:19
2651
- #: inc/templates/parts/customize-number.php:81
2652
  #: inc/templates/parts/customize-phone.php:19
2653
- #: inc/templates/parts/customize-phone.php:75
2654
  #: inc/templates/parts/customize-placeholder.php:17
2655
  #: inc/templates/parts/customize-placeholder.php:36
2656
  #: inc/templates/parts/customize-radio.php:17
2657
- #: inc/templates/parts/customize-radio.php:61
2658
  #: inc/templates/parts/customize-rating.php:17
2659
- #: inc/templates/parts/customize-rating.php:61
2660
  #: inc/templates/parts/customize-scale.php:17
2661
- #: inc/templates/parts/customize-scale.php:93
2662
  #: inc/templates/parts/customize-select.php:17
2663
- #: inc/templates/parts/customize-select.php:60
2664
  #: inc/templates/parts/customize-single-line-text.php:19
2665
- #: inc/templates/parts/customize-single-line-text.php:57
2666
  #: inc/templates/parts/customize-table.php:17
2667
- #: inc/templates/parts/customize-table.php:77
2668
  #: inc/templates/parts/customize-title.php:17
2669
- #: inc/templates/parts/customize-title.php:46
2670
  #: inc/templates/parts/customize-website-url.php:19
2671
- #: inc/templates/parts/customize-website-url.php:52
2672
  msgid "Apply to all parts"
2673
  msgstr ""
2674
 
@@ -2680,7 +2733,7 @@ msgstr ""
2680
  #: inc/templates/parts/customize-number.php:23
2681
  #: inc/templates/parts/customize-phone.php:23
2682
  #: inc/templates/parts/customize-radio.php:21
2683
- #: inc/templates/parts/customize-radio.php:78
2684
  #: inc/templates/parts/customize-rating.php:21
2685
  #: inc/templates/parts/customize-scale.php:21
2686
  #: inc/templates/parts/customize-select.php:21
@@ -2691,293 +2744,338 @@ msgstr ""
2691
  msgid "Description"
2692
  msgstr ""
2693
 
2694
- #: inc/templates/parts/customize-address.php:28
2695
- #: inc/templates/parts/customize-checkbox.php:26
2696
- #: inc/templates/parts/customize-date.php:26
2697
- #: inc/templates/parts/customize-email.php:28
2698
- #: inc/templates/parts/customize-multi-line-text.php:28
2699
- #: inc/templates/parts/customize-number.php:28
2700
- #: inc/templates/parts/customize-phone.php:28
2701
- #: inc/templates/parts/customize-radio.php:26
2702
- #: inc/templates/parts/customize-rating.php:26
2703
- #: inc/templates/parts/customize-scale.php:26
2704
- #: inc/templates/parts/customize-select.php:26
2705
- #: inc/templates/parts/customize-single-line-text.php:28
2706
- #: inc/templates/parts/customize-table.php:26
2707
- #: inc/templates/parts/customize-title.php:26
2708
- #: inc/templates/parts/customize-website-url.php:28
2709
- msgid "Show description in a tooltip"
2710
- msgstr ""
2711
-
2712
- #: inc/templates/parts/customize-address.php:36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2713
  msgid "Mode"
2714
  msgstr ""
2715
 
2716
- #: inc/templates/parts/customize-address.php:38
2717
- #: inc/templates/parts/customize-address.php:76
2718
- #: inc/templates/parts/customize-checkbox.php:53
2719
- #: inc/templates/parts/customize-date.php:99
2720
- #: inc/templates/parts/customize-email.php:44
2721
  #: inc/templates/parts/customize-legal.php:6
2722
- #: inc/templates/parts/customize-multi-line-text.php:44
2723
  #: inc/templates/parts/customize-narrative.php:33
2724
- #: inc/templates/parts/customize-number.php:73
2725
- #: inc/templates/parts/customize-phone.php:67
2726
  #: inc/templates/parts/customize-placeholder.php:28
2727
- #: inc/templates/parts/customize-radio.php:53
2728
- #: inc/templates/parts/customize-rating.php:53
2729
- #: inc/templates/parts/customize-scale.php:85
2730
- #: inc/templates/parts/customize-select.php:52
2731
- #: inc/templates/parts/customize-single-line-text.php:49
2732
- #: inc/templates/parts/customize-table.php:69
2733
- #: inc/templates/parts/customize-title.php:38
2734
- #: inc/templates/parts/customize-website-url.php:44
2735
  msgid "Full"
2736
  msgstr ""
2737
 
2738
- #: inc/templates/parts/customize-address.php:39
2739
  msgid "Full with autocomplete"
2740
  msgstr ""
2741
 
2742
- #: inc/templates/parts/customize-address.php:40
2743
  msgid "Country and city"
2744
  msgstr ""
2745
 
2746
- #: inc/templates/parts/customize-address.php:41
2747
  msgid "Country only"
2748
  msgstr ""
2749
 
2750
- #: inc/templates/parts/customize-address.php:46
2751
  msgid "Allow geolocation"
2752
  msgstr ""
2753
 
2754
- #: inc/templates/parts/customize-address.php:51
2755
  msgid "Google API Key"
2756
  msgstr ""
2757
 
2758
- #: inc/templates/parts/customize-address.php:57
2759
  msgid "Address autocompletion requires a"
2760
  msgstr ""
2761
 
2762
- #: inc/templates/parts/customize-address.php:58
2763
  msgid "Google Places API key"
2764
  msgstr ""
2765
 
2766
- #: inc/templates/parts/customize-address.php:62
2767
  msgid "Geolocation requires a"
2768
  msgstr ""
2769
 
2770
- #: inc/templates/parts/customize-address.php:63
2771
  msgid "Google Geocoding API key"
2772
  msgstr ""
2773
 
2774
- #: inc/templates/parts/customize-address.php:69
2775
- #: inc/templates/parts/customize-checkbox.php:31
2776
- #: inc/templates/parts/customize-date.php:46
2777
- #: inc/templates/parts/customize-email.php:37
2778
- #: inc/templates/parts/customize-multi-line-text.php:37
2779
- #: inc/templates/parts/customize-number.php:47
2780
- #: inc/templates/parts/customize-phone.php:37
2781
- #: inc/templates/parts/customize-radio.php:31
2782
- #: inc/templates/parts/customize-rating.php:31
2783
- #: inc/templates/parts/customize-scale.php:41
2784
- #: inc/templates/parts/customize-select.php:31
2785
- #: inc/templates/parts/customize-single-line-text.php:37
2786
- #: inc/templates/parts/customize-title.php:31
2787
- #: inc/templates/parts/customize-website-url.php:37
2788
  msgid "This is required"
2789
  msgstr ""
2790
 
2791
- #: inc/templates/parts/customize-address.php:77
2792
- #: inc/templates/parts/customize-checkbox.php:54
2793
- #: inc/templates/parts/customize-date.php:100
2794
- #: inc/templates/parts/customize-email.php:45
2795
  #: inc/templates/parts/customize-legal.php:7
2796
- #: inc/templates/parts/customize-multi-line-text.php:45
2797
  #: inc/templates/parts/customize-narrative.php:34
2798
- #: inc/templates/parts/customize-number.php:74
2799
- #: inc/templates/parts/customize-phone.php:68
2800
  #: inc/templates/parts/customize-placeholder.php:29
2801
- #: inc/templates/parts/customize-radio.php:54
2802
- #: inc/templates/parts/customize-rating.php:54
2803
- #: inc/templates/parts/customize-scale.php:86
2804
- #: inc/templates/parts/customize-select.php:53
2805
- #: inc/templates/parts/customize-single-line-text.php:50
2806
- #: inc/templates/parts/customize-table.php:70
2807
- #: inc/templates/parts/customize-title.php:39
2808
- #: inc/templates/parts/customize-website-url.php:45
2809
  msgid "Half"
2810
  msgstr ""
2811
 
2812
- #: inc/templates/parts/customize-address.php:78
2813
- #: inc/templates/parts/customize-checkbox.php:55
2814
- #: inc/templates/parts/customize-date.php:101
2815
- #: inc/templates/parts/customize-email.php:46
2816
  #: inc/templates/parts/customize-legal.php:8
2817
- #: inc/templates/parts/customize-multi-line-text.php:46
2818
  #: inc/templates/parts/customize-narrative.php:35
2819
- #: inc/templates/parts/customize-number.php:75
2820
- #: inc/templates/parts/customize-phone.php:69
2821
  #: inc/templates/parts/customize-placeholder.php:30
2822
- #: inc/templates/parts/customize-radio.php:55
2823
- #: inc/templates/parts/customize-rating.php:55
2824
- #: inc/templates/parts/customize-scale.php:87
2825
- #: inc/templates/parts/customize-select.php:54
2826
- #: inc/templates/parts/customize-single-line-text.php:51
2827
- #: inc/templates/parts/customize-table.php:71
2828
- #: inc/templates/parts/customize-title.php:40
2829
- #: inc/templates/parts/customize-website-url.php:46
2830
  msgid "Third"
2831
  msgstr ""
2832
 
2833
- #: inc/templates/parts/customize-address.php:79
2834
- #: inc/templates/parts/customize-checkbox.php:56
2835
- #: inc/templates/parts/customize-date.php:102
2836
- #: inc/templates/parts/customize-email.php:47
2837
  #: inc/templates/parts/customize-legal.php:9
2838
- #: inc/templates/parts/customize-multi-line-text.php:47
2839
  #: inc/templates/parts/customize-narrative.php:36
2840
- #: inc/templates/parts/customize-number.php:76
2841
- #: inc/templates/parts/customize-phone.php:70
2842
  #: inc/templates/parts/customize-placeholder.php:31
2843
- #: inc/templates/parts/customize-radio.php:56
2844
- #: inc/templates/parts/customize-rating.php:56
2845
- #: inc/templates/parts/customize-scale.php:88
2846
- #: inc/templates/parts/customize-select.php:55
2847
- #: inc/templates/parts/customize-single-line-text.php:52
2848
- #: inc/templates/parts/customize-table.php:72
2849
- #: inc/templates/parts/customize-title.php:41
2850
- #: inc/templates/parts/customize-website-url.php:47
2851
  msgid "Auto"
2852
  msgstr ""
2853
 
2854
- #: inc/templates/parts/customize-address.php:83
2855
- #: inc/templates/parts/customize-checkbox.php:65
2856
- #: inc/templates/parts/customize-date.php:111
2857
- #: inc/templates/parts/customize-email.php:56
2858
  #: inc/templates/parts/customize-legal.php:18
2859
- #: inc/templates/parts/customize-multi-line-text.php:56
2860
  #: inc/templates/parts/customize-narrative.php:45
2861
- #: inc/templates/parts/customize-number.php:85
2862
- #: inc/templates/parts/customize-phone.php:79
2863
  #: inc/templates/parts/customize-placeholder.php:40
2864
- #: inc/templates/parts/customize-radio.php:65
2865
- #: inc/templates/parts/customize-rating.php:65
2866
- #: inc/templates/parts/customize-scale.php:97
2867
- #: inc/templates/parts/customize-select.php:64
2868
- #: inc/templates/parts/customize-single-line-text.php:61
2869
- #: inc/templates/parts/customize-table.php:81
2870
- #: inc/templates/parts/customize-title.php:50
2871
- #: inc/templates/parts/customize-website-url.php:56
2872
  msgid "Custom CSS class"
2873
  msgstr ""
2874
 
2875
- #: inc/templates/parts/customize-checkbox.php:37
2876
- #: inc/templates/parts/customize-radio.php:37
2877
- #: inc/templates/parts/customize-select.php:37
2878
  msgid "No options added yet. Add one by clicking the <i>Add option</i> link below."
2879
  msgstr ""
2880
 
2881
- #: inc/templates/parts/customize-checkbox.php:40
2882
- #: inc/templates/parts/customize-radio.php:40
2883
- #: inc/templates/parts/customize-select.php:41
2884
  msgid "Add option"
2885
  msgstr ""
2886
 
2887
- #: inc/templates/parts/customize-checkbox.php:44
2888
- #: inc/templates/parts/customize-radio.php:44
2889
  msgid "Display options"
2890
  msgstr ""
2891
 
2892
- #: inc/templates/parts/customize-checkbox.php:46
2893
- #: inc/templates/parts/customize-radio.php:46
2894
  msgid "Horizontal"
2895
  msgstr ""
2896
 
2897
- #: inc/templates/parts/customize-checkbox.php:47
2898
- #: inc/templates/parts/customize-radio.php:47
2899
  msgid "Vertical"
2900
  msgstr ""
2901
 
2902
- #: inc/templates/parts/customize-checkbox.php:74
2903
- #: inc/templates/parts/customize-radio.php:74
2904
- #: inc/templates/parts/customize-select.php:73
2905
- #: inc/templates/parts/customize-table.php:90
2906
- #: inc/templates/parts/customize-table.php:104
2907
  msgid "Label"
2908
  msgstr ""
2909
 
2910
- #: inc/templates/parts/customize-checkbox.php:78
2911
- #: inc/templates/parts/customize-table.php:94
2912
  msgid "Checked by default"
2913
  msgstr ""
2914
 
2915
- #: inc/templates/parts/customize-date.php:33
2916
  msgid "Date &amp; Time"
2917
  msgstr ""
2918
 
2919
- #: inc/templates/parts/customize-date.php:34
2920
  msgid "Time"
2921
  msgstr ""
2922
 
2923
- #: inc/templates/parts/customize-date.php:38
2924
- #: inc/templates/parts/customize-scale.php:61
2925
  msgid "Default value"
2926
  msgstr ""
2927
 
2928
- #: inc/templates/parts/customize-date.php:40
2929
  msgid "Blank"
2930
  msgstr ""
2931
 
2932
- #: inc/templates/parts/customize-date.php:41
2933
  msgid "Current date and time"
2934
  msgstr ""
2935
 
2936
- #: inc/templates/parts/customize-date.php:53
2937
  msgid "All years"
2938
  msgstr ""
2939
 
2940
- #: inc/templates/parts/customize-date.php:54
2941
  msgid "Past years only"
2942
  msgstr ""
2943
 
2944
- #: inc/templates/parts/customize-date.php:55
2945
  msgid "Future years only"
2946
  msgstr ""
2947
 
2948
- #: inc/templates/parts/customize-date.php:60
2949
  msgid "Start from"
2950
  msgstr ""
2951
 
2952
- #: inc/templates/parts/customize-date.php:64
2953
  msgid "End at"
2954
  msgstr ""
2955
 
2956
- #: inc/templates/parts/customize-date.php:69
2957
  msgid "Years order"
2958
  msgstr ""
2959
 
2960
- #: inc/templates/parts/customize-date.php:77
2961
  msgid "Min hour"
2962
  msgstr ""
2963
 
2964
- #: inc/templates/parts/customize-date.php:81
2965
  msgid "Max hour"
2966
  msgstr ""
2967
 
2968
- #: inc/templates/parts/customize-date.php:86
2969
  msgid "Minute step"
2970
  msgstr ""
2971
 
2972
- #: inc/templates/parts/customize-date.php:90
2973
  msgid "Time format"
2974
  msgstr ""
2975
 
2976
- #: inc/templates/parts/customize-date.php:92
2977
  msgid "12h"
2978
  msgstr ""
2979
 
2980
- #: inc/templates/parts/customize-date.php:93
2981
  msgid "24h"
2982
  msgstr ""
2983
 
@@ -2989,15 +3087,15 @@ msgstr ""
2989
  msgid "Inside input"
2990
  msgstr ""
2991
 
2992
- #: inc/templates/parts/customize-email.php:61
2993
- #: inc/templates/parts/customize-number.php:90
2994
- #: inc/templates/parts/customize-phone.php:84
2995
  msgid "Require confirmation of the value"
2996
  msgstr ""
2997
 
2998
- #: inc/templates/parts/customize-email.php:65
2999
- #: inc/templates/parts/customize-number.php:94
3000
- #: inc/templates/parts/customize-phone.php:88
3001
  msgid "Confirmation field title"
3002
  msgstr ""
3003
 
@@ -3013,154 +3111,159 @@ msgstr ""
3013
  msgid "Each input is required"
3014
  msgstr ""
3015
 
3016
- #: inc/templates/parts/customize-number.php:37
3017
- #: inc/templates/parts/customize-scale.php:31
3018
  msgid "Minimum value"
3019
  msgstr ""
3020
 
3021
- #: inc/templates/parts/customize-number.php:41
3022
- #: inc/templates/parts/customize-scale.php:35
3023
  msgid "Maximum value"
3024
  msgstr ""
3025
 
3026
- #: inc/templates/parts/customize-number.php:53
3027
  msgid "Mask this input"
3028
  msgstr ""
3029
 
3030
- #: inc/templates/parts/customize-number.php:58
3031
  msgid "Thousands delimiter"
3032
  msgstr ""
3033
 
3034
- #: inc/templates/parts/customize-number.php:62
3035
  msgid "Decimal mark"
3036
  msgstr ""
3037
 
3038
- #: inc/templates/parts/customize-number.php:66
3039
- msgid "Prefix"
3040
- msgstr ""
3041
-
3042
- #: inc/templates/parts/customize-phone.php:43
3043
  msgid "International format"
3044
  msgstr ""
3045
 
3046
- #: inc/templates/parts/customize-phone.php:48
3047
  msgid "Default phone number region"
3048
  msgstr ""
3049
 
3050
- #: inc/templates/parts/customize-phone.php:60
3051
  msgid "Allow other regions to be selected"
3052
  msgstr ""
3053
 
3054
- #: inc/templates/parts/customize-radio.php:82
3055
- #: inc/templates/parts/customize-select.php:77
3056
  msgid "Make this option default"
3057
  msgstr ""
3058
 
3059
- #: inc/templates/parts/customize-rating.php:35
3060
  msgid "Rating type"
3061
  msgstr ""
3062
 
3063
- #: inc/templates/parts/customize-rating.php:37
3064
  msgid "No / Yes"
3065
  msgstr ""
3066
 
3067
- #: inc/templates/parts/customize-rating.php:38
3068
  msgid "Scale of 1 to 5"
3069
  msgstr ""
3070
 
3071
- #: inc/templates/parts/customize-rating.php:42
3072
  msgid "Rating visuals"
3073
  msgstr ""
3074
 
3075
- #: inc/templates/parts/customize-rating.php:44
3076
- #: inc/templates/parts/frontend-rating-scale.php:10
3077
  msgid "Stars"
3078
  msgstr ""
3079
 
3080
- #: inc/templates/parts/customize-rating.php:45
3081
  msgid "Smileys"
3082
  msgstr ""
3083
 
3084
- #: inc/templates/parts/customize-rating.php:46
3085
  msgid "Thumbs"
3086
  msgstr ""
3087
 
3088
- #: inc/templates/parts/customize-scale.php:47
 
 
 
 
 
3089
  msgid "Allow range select"
3090
  msgstr ""
3091
 
3092
- #: inc/templates/parts/customize-scale.php:52
3093
  msgid "Default range from"
3094
  msgstr ""
3095
 
3096
- #: inc/templates/parts/customize-scale.php:56
3097
  msgid "Default range to"
3098
  msgstr ""
3099
 
3100
- #: inc/templates/parts/customize-scale.php:66
3101
  msgid "Min value label"
3102
  msgstr ""
3103
 
3104
- #: inc/templates/parts/customize-scale.php:70
3105
  msgid "Max value label"
3106
  msgstr ""
3107
 
3108
- #: inc/templates/parts/customize-select.php:40
3109
  msgid "Show all"
3110
  msgstr ""
3111
 
3112
- #: inc/templates/parts/customize-select.php:40
3113
  msgid "options"
3114
  msgstr ""
3115
 
3116
- #: inc/templates/parts/customize-select.php:46
3117
  msgid "Make searchable"
3118
  msgstr ""
3119
 
3120
- #: inc/templates/parts/customize-single-line-text.php:43
 
 
 
 
3121
  msgid "Use value as email subject"
3122
  msgstr ""
3123
 
3124
- #: inc/templates/parts/customize-table.php:31
3125
  msgid "Each row is required"
3126
  msgstr ""
3127
 
3128
- #: inc/templates/parts/customize-table.php:36
3129
  msgid "Allow multiple selections"
3130
  msgstr ""
3131
 
3132
- #: inc/templates/parts/customize-table.php:40
3133
- #: inc/templates/parts/customize-table.php:47
3134
  msgid "Columns"
3135
  msgstr ""
3136
 
3137
- #: inc/templates/parts/customize-table.php:41
3138
- #: inc/templates/parts/customize-table.php:57
3139
  msgid "Rows"
3140
  msgstr ""
3141
 
3142
- #: inc/templates/parts/customize-table.php:48
3143
  msgid "No columns added yet. Add one by clicking the <i>Add column</i> link below."
3144
  msgstr ""
3145
 
3146
- #: inc/templates/parts/customize-table.php:51
3147
  msgid "Add column"
3148
  msgstr ""
3149
 
3150
- #: inc/templates/parts/customize-table.php:58
3151
  msgid "No rows added yet. Add one by clicking the <i>Add row</i> link below."
3152
  msgstr ""
3153
 
3154
- #: inc/templates/parts/customize-table.php:61
3155
  msgid "Add row"
3156
  msgstr ""
3157
 
3158
- #: inc/templates/parts/frontend-address.php:38
3159
- #: inc/templates/parts/frontend-address.php:51
3160
  msgid "Country"
3161
  msgstr ""
3162
 
3163
- #: inc/templates/parts/frontend-address.php:57
3164
  msgid "City"
3165
  msgstr ""
3166
 
@@ -3194,14 +3297,18 @@ msgstr ""
3194
  msgid "PM"
3195
  msgstr ""
3196
 
3197
- #: inc/templates/parts/frontend-select.php:28
3198
- #: inc/templates/parts/frontend-select.php:34
 
 
 
 
3199
  #: inc/templates/parts/frontend-title.php:21
3200
  #: inc/templates/parts/frontend-title.php:27
3201
  msgid "- Select -"
3202
  msgstr ""
3203
 
3204
- #: inc/templates/parts/frontend-select.php:58
3205
  #: inc/templates/parts/frontend-title.php:46
3206
  msgid "Select"
3207
  msgstr ""
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: HappyForms 1.6.4\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
+ "POT-Creation-Date: 2018-09-22 14:09:59+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
15
 
16
  #: inc/classes/class-form-admin.php:155
17
+ #: inc/classes/class-form-controller.php:96
18
  msgid "View form"
19
  msgstr ""
20
 
112
  msgid "Duplicate"
113
  msgstr ""
114
 
115
+ #: inc/classes/class-form-admin.php:366 inc/classes/class-message-admin.php:611
116
+ #: inc/classes/class-message-admin.php:864
117
  msgid "Trash"
118
  msgstr ""
119
 
125
  msgid " Copy"
126
  msgstr ""
127
 
128
+ #: inc/classes/class-form-controller.php:91
129
+ #: inc/classes/class-form-controller.php:101
130
  #: inc/classes/class-happyforms-plugin.php:156
131
  #: inc/classes/class-happyforms-plugin.php:157
132
  msgid "All Forms"
133
  msgstr ""
134
 
135
+ #: inc/classes/class-form-controller.php:92
136
+ #: inc/classes/class-message-admin.php:372
137
+ #: inc/classes/class-message-admin.php:849
138
  msgid "Form"
139
  msgstr ""
140
 
141
+ #: inc/classes/class-form-controller.php:93
142
+ #: inc/classes/class-form-controller.php:95
143
  msgid "Build form"
144
  msgstr ""
145
 
146
+ #: inc/classes/class-form-controller.php:94
147
  msgid "Edit form"
148
  msgstr ""
149
 
150
+ #: inc/classes/class-form-controller.php:97
151
  msgid "View forms"
152
  msgstr ""
153
 
154
+ #: inc/classes/class-form-controller.php:98
155
  msgid "Search Forms"
156
  msgstr ""
157
 
158
+ #: inc/classes/class-form-controller.php:99
159
  msgid "No form found"
160
  msgstr ""
161
 
162
+ #: inc/classes/class-form-controller.php:100
163
  msgid "No forms found in Trash"
164
  msgstr ""
165
 
166
+ #: inc/classes/class-form-controller.php:200
167
  msgid "Untitled form"
168
  msgstr ""
169
 
170
+ #: inc/classes/class-form-controller.php:221
171
+ #: inc/classes/class-form-controller.php:249
172
  msgid ""
173
  "Your message has been successfully sent. We appreciate you contacting us "
174
  "and we’ll be in touch soon."
175
  msgstr ""
176
 
177
+ #: inc/classes/class-form-controller.php:233
178
  msgid "You received a new message"
179
  msgstr ""
180
 
181
+ #: inc/classes/class-form-controller.php:245
182
  msgid "We received your message"
183
  msgstr ""
184
 
185
+ #: inc/classes/class-form-controller.php:261
186
  msgid "Submit Form"
187
  msgstr ""
188
 
189
+ #: inc/classes/class-form-controller.php:289
190
  msgid "Review submission"
191
  msgstr ""
192
 
193
+ #: inc/classes/class-form-controller.php:810
194
+ #: inc/classes/class-message-controller.php:291
195
+ #: inc/classes/class-message-controller.php:391
196
+ #: inc/classes/class-message-controller.php:426
197
  msgid "Your submission contains errors."
198
  msgstr ""
199
 
200
+ #: inc/classes/class-form-controller.php:968
201
  msgid "Please review your submission..."
202
  msgstr ""
203
 
233
 
234
  #: inc/classes/class-form-styles.php:91 inc/classes/class-form-styles.php:120
235
  #: inc/classes/class-form-styles.php:168 inc/classes/class-form-styles.php:252
236
+ #: inc/templates/parts/customize-date.php:32
237
+ #: inc/templates/parts/customize-date.php:53
238
  msgid "Show"
239
  msgstr ""
240
 
479
 
480
  #: inc/classes/class-form-styles.php:713
481
  #: inc/classes/parts/class-part-placeholder.php:8
482
+ #: inc/templates/parts/customize-address.php:35
483
+ #: inc/templates/parts/customize-email.php:35
484
+ #: inc/templates/parts/customize-multi-line-text.php:35
485
+ #: inc/templates/parts/customize-number.php:35
486
+ #: inc/templates/parts/customize-phone.php:35
487
+ #: inc/templates/parts/customize-single-line-text.php:35
488
+ #: inc/templates/parts/customize-website-url.php:35
489
  msgid "Placeholder"
490
  msgstr ""
491
 
575
  msgstr ""
576
 
577
  #: inc/classes/class-form-styles.php:841
578
+ #: inc/templates/parts/customize-address.php:77
579
+ #: inc/templates/parts/customize-checkbox.php:53
580
+ #: inc/templates/parts/customize-date.php:99
581
+ #: inc/templates/parts/customize-email.php:45
582
  #: inc/templates/parts/customize-legal.php:4
583
+ #: inc/templates/parts/customize-multi-line-text.php:45
584
  #: inc/templates/parts/customize-narrative.php:31
585
+ #: inc/templates/parts/customize-number.php:74
586
+ #: inc/templates/parts/customize-phone.php:68
587
  #: inc/templates/parts/customize-placeholder.php:26
588
+ #: inc/templates/parts/customize-radio.php:53
589
+ #: inc/templates/parts/customize-rating.php:73
590
+ #: inc/templates/parts/customize-scale.php:85
591
+ #: inc/templates/parts/customize-select.php:52
592
+ #: inc/templates/parts/customize-single-line-text.php:50
593
+ #: inc/templates/parts/customize-table.php:69
594
+ #: inc/templates/parts/customize-title.php:38
595
+ #: inc/templates/parts/customize-website-url.php:45
596
  msgid "Width"
597
  msgstr ""
598
 
672
  msgstr ""
673
 
674
  #: inc/classes/class-message-admin.php:233
675
+ #: inc/classes/class-message-controller.php:186
676
  msgid "View response"
677
  msgstr ""
678
 
751
  msgid "Number of response fields to show:"
752
  msgstr ""
753
 
754
+ #: inc/classes/class-message-admin.php:369
755
+ #: inc/classes/class-message-controller.php:613
756
+ #: inc/classes/class-message-controller.php:771
757
+ #: inc/classes/class-message-controller.php:836
758
+ #: inc/templates/admin-message-edit.php:24
759
+ msgid "Tracking number"
760
+ msgstr ""
761
+
762
+ #: inc/classes/class-message-admin.php:537
763
  msgid "All forms"
764
  msgstr ""
765
 
766
+ #: inc/classes/class-message-admin.php:609
767
+ #: inc/classes/class-message-admin.php:859
768
  msgid "Mark read"
769
  msgstr ""
770
 
771
+ #: inc/classes/class-message-admin.php:610
772
+ #: inc/classes/class-message-admin.php:859
773
  msgid "Mark unread"
774
  msgstr ""
775
 
776
+ #: inc/classes/class-message-admin.php:615
777
  msgid "Export to CSV"
778
  msgstr ""
779
 
780
+ #: inc/classes/class-message-admin.php:683
781
  msgid "View"
782
  msgstr ""
783
 
784
+ #: inc/classes/class-message-admin.php:687
785
  msgid "Delete Permanently"
786
  msgstr ""
787
 
788
+ #: inc/classes/class-message-admin.php:834
789
  msgid "Details"
790
  msgstr ""
791
 
792
+ #: inc/classes/class-message-admin.php:854
793
  msgid "Submitted on"
794
  msgstr ""
795
 
796
+ #: inc/classes/class-message-admin.php:854
797
  msgid "M j, Y @ H:i"
798
  msgstr ""
799
 
800
+ #: inc/classes/class-message-admin.php:859
801
  msgid "Status"
802
  msgstr ""
803
 
804
+ #: inc/classes/class-message-admin.php:859
805
  msgid "Read"
806
  msgstr ""
807
 
808
+ #: inc/classes/class-message-admin.php:859
809
  msgid "Unread"
810
  msgstr ""
811
 
812
+ #: inc/classes/class-message-controller.php:159
813
  msgid "New submission"
814
  msgstr ""
815
 
816
+ #: inc/classes/class-message-controller.php:183
817
+ #: inc/classes/class-message-controller.php:191
818
  msgid "All Responses"
819
  msgstr ""
820
 
821
+ #: inc/classes/class-message-controller.php:184
822
  msgid "Response"
823
  msgstr ""
824
 
825
+ #: inc/classes/class-message-controller.php:185
826
  msgid "Edit response"
827
  msgstr ""
828
 
829
+ #: inc/classes/class-message-controller.php:187
830
  msgid "View Responses"
831
  msgstr ""
832
 
833
+ #: inc/classes/class-message-controller.php:188
834
  msgid "Search Responses"
835
  msgstr ""
836
 
837
+ #: inc/classes/class-message-controller.php:189
838
  msgid "No response found"
839
  msgstr ""
840
 
841
+ #: inc/classes/class-message-controller.php:190
842
  msgid "No response found in Trash"
843
  msgstr ""
844
 
845
+ #: inc/classes/class-message-controller.php:788
846
  msgid "Reply to this message and mark it as read"
847
  msgstr ""
848
 
945
  #: inc/classes/parts/class-part-date.php:197
946
  #: inc/classes/parts/class-part-email.php:141
947
  #: inc/classes/parts/class-part-email.php:145
948
+ #: inc/classes/parts/class-part-legal.php:115
949
  #: inc/classes/parts/class-part-multi-line-text.php:142
950
  #: inc/classes/parts/class-part-narrative.php:125
951
  #: inc/classes/parts/class-part-narrative.php:130
952
  #: inc/classes/parts/class-part-number.php:169
953
  #: inc/classes/parts/class-part-phone.php:390
954
  #: inc/classes/parts/class-part-phone.php:394
955
+ #: inc/classes/parts/class-part-radio.php:167
956
+ #: inc/classes/parts/class-part-rating.php:152
957
  #: inc/classes/parts/class-part-scale.php:163
958
+ #: inc/classes/parts/class-part-select.php:164
959
  #: inc/classes/parts/class-part-single-line-text.php:129
960
+ #: inc/classes/parts/class-part-table.php:213
961
+ #: inc/classes/parts/class-part-table.php:220
962
  #: inc/classes/parts/class-part-title.php:156
963
  #: inc/classes/parts/class-part-website-url.php:124
964
  msgid "This field is required."
973
  msgstr ""
974
 
975
  #: inc/classes/parts/class-part-checkbox.php:30
976
+ #: inc/classes/parts/class-part-radio.php:31
977
  #: inc/classes/parts/class-part-table.php:32
978
+ #: inc/templates/parts/customize-checkbox.php:38
979
+ #: inc/templates/parts/customize-radio.php:38
980
+ #: inc/templates/parts/customize-select.php:38
981
  msgid "Options"
982
  msgstr ""
983
 
984
+ #: inc/classes/parts/class-part-checkbox.php:174
985
+ #: inc/classes/parts/class-part-table.php:233
986
  msgid "Checkbox values are not valid."
987
  msgstr ""
988
 
995
  msgstr ""
996
 
997
  #: inc/classes/parts/class-part-date.php:30
998
+ #: inc/templates/parts/customize-date.php:34
999
  msgid "Date"
1000
  msgstr ""
1001
 
1033
  msgstr ""
1034
 
1035
  #: inc/classes/parts/class-part-legal.php:9
1036
+ #: inc/classes/parts/class-part-legal.php:47
1037
  msgid "Legal"
1038
  msgstr ""
1039
 
1041
  msgid "For requiring fine print before accepting submission."
1042
  msgstr ""
1043
 
1044
+ #: inc/classes/parts/class-part-legal.php:31
1045
  msgid "I accept terms and conditions."
1046
  msgstr ""
1047
 
1048
+ #: inc/classes/parts/class-part-legal.php:120
1049
  msgid "Please accept terms before proceeding."
1050
  msgstr ""
1051
 
1114
  msgstr ""
1115
 
1116
  #: inc/classes/parts/class-part-radio.php:174
1117
+ #: inc/classes/parts/class-part-table.php:240
1118
  msgid "Radio values are not valid."
1119
  msgstr ""
1120
 
1122
  msgid "For collecting opinions using stars and emoji scales."
1123
  msgstr ""
1124
 
1125
+ #: inc/classes/parts/class-part-rating.php:56
1126
+ #: inc/classes/parts/class-part-rating.php:64
1127
+ msgid "Disappointed"
1128
+ msgstr ""
1129
+
1130
+ #: inc/classes/parts/class-part-rating.php:57
1131
+ #: inc/classes/parts/class-part-rating.php:66
1132
+ msgid "Happy"
1133
+ msgstr ""
1134
+
1135
+ #: inc/classes/parts/class-part-rating.php:63
1136
+ msgid "Disliked"
1137
+ msgstr ""
1138
+
1139
+ #: inc/classes/parts/class-part-rating.php:65
1140
+ msgid "Okay"
1141
+ msgstr ""
1142
+
1143
+ #: inc/classes/parts/class-part-rating.php:67
1144
+ msgid "Loved it"
1145
+ msgstr ""
1146
+
1147
+ #: inc/classes/parts/class-part-rating.php:158
1148
  msgid "Value should be between 1 and 5."
1149
  msgstr ""
1150
 
1151
+ #: inc/classes/parts/class-part-rating.php:182
1152
+ #: inc/templates/parts/frontend-rating-yesno.php:9
1153
  msgid "No"
1154
  msgstr ""
1155
 
1156
+ #: inc/classes/parts/class-part-rating.php:184
1157
+ #: inc/templates/parts/frontend-rating-yesno.php:17
1158
  msgid "Yes"
1159
  msgstr ""
1160
 
1168
  msgstr ""
1169
 
1170
  #: inc/classes/parts/class-part-select.php:8
1171
+ #: inc/classes/parts/class-part-select.php:29
1172
  msgid "Dropdown"
1173
  msgstr ""
1174
 
1289
  msgid "How can I access my premium upgrade credentials?"
1290
  msgstr ""
1291
 
1292
+ #: inc/helpers/helper-form-templates.php:819
1293
  msgid "Get my location"
1294
  msgstr ""
1295
 
1296
+ #: inc/helpers/helper-form-templates.php:819
1297
  msgid "Fetching location…"
1298
  msgstr ""
1299
 
1300
+ #: inc/helpers/helper-form-templates.php:830
1301
  msgid "January"
1302
  msgstr ""
1303
 
1304
+ #: inc/helpers/helper-form-templates.php:831
1305
  msgid "February"
1306
  msgstr ""
1307
 
1308
+ #: inc/helpers/helper-form-templates.php:832
1309
  msgid "March"
1310
  msgstr ""
1311
 
1312
+ #: inc/helpers/helper-form-templates.php:833
1313
  msgid "April"
1314
  msgstr ""
1315
 
1316
+ #: inc/helpers/helper-form-templates.php:834
1317
  msgid "May"
1318
  msgstr ""
1319
 
1320
+ #: inc/helpers/helper-form-templates.php:835
1321
  msgid "June"
1322
  msgstr ""
1323
 
1324
+ #: inc/helpers/helper-form-templates.php:836
1325
  msgid "July"
1326
  msgstr ""
1327
 
1328
+ #: inc/helpers/helper-form-templates.php:837
1329
  msgid "August"
1330
  msgstr ""
1331
 
1332
+ #: inc/helpers/helper-form-templates.php:838
1333
  msgid "September"
1334
  msgstr ""
1335
 
1336
+ #: inc/helpers/helper-form-templates.php:839
1337
  msgid "October"
1338
  msgstr ""
1339
 
1340
+ #: inc/helpers/helper-form-templates.php:840
1341
  msgid "November"
1342
  msgstr ""
1343
 
1344
+ #: inc/helpers/helper-form-templates.php:841
1345
  msgid "December"
1346
  msgstr ""
1347
 
1348
+ #: inc/helpers/helper-misc.php:189
1349
  msgid "How are we doing? Please rate"
1350
  msgstr ""
1351
 
1352
+ #: inc/helpers/helper-misc.php:189
1353
  msgid "on"
1354
  msgstr ""
1355
 
1356
+ #: inc/helpers/helper-misc.php:189
1357
  msgid "to help us spread the word."
1358
  msgstr ""
1359
 
1360
+ #: inc/helpers/helper-misc.php:243
1361
  msgid "Afghanistan"
1362
  msgstr ""
1363
 
1364
+ #: inc/helpers/helper-misc.php:244
1365
  msgid "Albania"
1366
  msgstr ""
1367
 
1368
+ #: inc/helpers/helper-misc.php:245
1369
  msgid "Algeria"
1370
  msgstr ""
1371
 
1372
+ #: inc/helpers/helper-misc.php:246
1373
  msgid "American Samoa"
1374
  msgstr ""
1375
 
1376
+ #: inc/helpers/helper-misc.php:247
1377
  msgid "Andorra"
1378
  msgstr ""
1379
 
1380
+ #: inc/helpers/helper-misc.php:248
1381
  msgid "Angola"
1382
  msgstr ""
1383
 
1384
+ #: inc/helpers/helper-misc.php:249
1385
  msgid "Anguilla"
1386
  msgstr ""
1387
 
1388
+ #: inc/helpers/helper-misc.php:250
1389
  msgid "Antarctica"
1390
  msgstr ""
1391
 
1392
+ #: inc/helpers/helper-misc.php:251
1393
  msgid "Antigua and Barbuda"
1394
  msgstr ""
1395
 
1396
+ #: inc/helpers/helper-misc.php:252
1397
  msgid "Argentina"
1398
  msgstr ""
1399
 
1400
+ #: inc/helpers/helper-misc.php:253
1401
  msgid "Armenia"
1402
  msgstr ""
1403
 
1404
+ #: inc/helpers/helper-misc.php:254
1405
  msgid "Aruba"
1406
  msgstr ""
1407
 
1408
+ #: inc/helpers/helper-misc.php:255
1409
  msgid "Australia"
1410
  msgstr ""
1411
 
1412
+ #: inc/helpers/helper-misc.php:256
1413
  msgid "Austria"
1414
  msgstr ""
1415
 
1416
+ #: inc/helpers/helper-misc.php:257
1417
  msgid "Azerbaijan"
1418
  msgstr ""
1419
 
1420
+ #: inc/helpers/helper-misc.php:258
1421
  msgid "Bahamas"
1422
  msgstr ""
1423
 
1424
+ #: inc/helpers/helper-misc.php:259
1425
  msgid "Bahrain"
1426
  msgstr ""
1427
 
1428
+ #: inc/helpers/helper-misc.php:260
1429
  msgid "Bangladesh"
1430
  msgstr ""
1431
 
1432
+ #: inc/helpers/helper-misc.php:261
1433
  msgid "Barbados"
1434
  msgstr ""
1435
 
1436
+ #: inc/helpers/helper-misc.php:262
1437
  msgid "Belarus"
1438
  msgstr ""
1439
 
1440
+ #: inc/helpers/helper-misc.php:263
1441
  msgid "Belgium"
1442
  msgstr ""
1443
 
1444
+ #: inc/helpers/helper-misc.php:264
1445
  msgid "Belize"
1446
  msgstr ""
1447
 
1448
+ #: inc/helpers/helper-misc.php:265
1449
  msgid "Benin"
1450
  msgstr ""
1451
 
1452
+ #: inc/helpers/helper-misc.php:266
1453
  msgid "Bermuda"
1454
  msgstr ""
1455
 
1456
+ #: inc/helpers/helper-misc.php:267
1457
  msgid "Bhutan"
1458
  msgstr ""
1459
 
1460
+ #: inc/helpers/helper-misc.php:268
1461
  msgid "Bolivia"
1462
  msgstr ""
1463
 
1464
+ #: inc/helpers/helper-misc.php:269
1465
  msgid "Bosnia and Herzegowina"
1466
  msgstr ""
1467
 
1468
+ #: inc/helpers/helper-misc.php:270
1469
  msgid "Botswana"
1470
  msgstr ""
1471
 
1472
+ #: inc/helpers/helper-misc.php:271
1473
  msgid "Bouvet Island"
1474
  msgstr ""
1475
 
1476
+ #: inc/helpers/helper-misc.php:272
1477
  msgid "Brazil"
1478
  msgstr ""
1479
 
1480
+ #: inc/helpers/helper-misc.php:273
1481
  msgid "British Indian Ocean Territory"
1482
  msgstr ""
1483
 
1484
+ #: inc/helpers/helper-misc.php:274
1485
  msgid "Brunei Darussalam"
1486
  msgstr ""
1487
 
1488
+ #: inc/helpers/helper-misc.php:275
1489
  msgid "Bulgaria"
1490
  msgstr ""
1491
 
1492
+ #: inc/helpers/helper-misc.php:276
1493
  msgid "Burkina Faso"
1494
  msgstr ""
1495
 
1496
+ #: inc/helpers/helper-misc.php:277
1497
  msgid "Burundi"
1498
  msgstr ""
1499
 
1500
+ #: inc/helpers/helper-misc.php:278
1501
  msgid "Cambodia"
1502
  msgstr ""
1503
 
1504
+ #: inc/helpers/helper-misc.php:279
1505
  msgid "Cameroon"
1506
  msgstr ""
1507
 
1508
+ #: inc/helpers/helper-misc.php:280
1509
  msgid "Canada"
1510
  msgstr ""
1511
 
1512
+ #: inc/helpers/helper-misc.php:281
1513
  msgid "Cape Verde"
1514
  msgstr ""
1515
 
1516
+ #: inc/helpers/helper-misc.php:282
1517
  msgid "Cayman Islands"
1518
  msgstr ""
1519
 
1520
+ #: inc/helpers/helper-misc.php:283
1521
  msgid "Central African Republic"
1522
  msgstr ""
1523
 
1524
+ #: inc/helpers/helper-misc.php:284
1525
  msgid "Chad"
1526
  msgstr ""
1527
 
1528
+ #: inc/helpers/helper-misc.php:285
1529
  msgid "Chile"
1530
  msgstr ""
1531
 
1532
+ #: inc/helpers/helper-misc.php:286
1533
  msgid "China"
1534
  msgstr ""
1535
 
1536
+ #: inc/helpers/helper-misc.php:287
1537
  msgid "Christmas Island"
1538
  msgstr ""
1539
 
1540
+ #: inc/helpers/helper-misc.php:288
1541
  msgid "Cocos (Keeling) Islands"
1542
  msgstr ""
1543
 
1544
+ #: inc/helpers/helper-misc.php:289
1545
  msgid "Colombia"
1546
  msgstr ""
1547
 
1548
+ #: inc/helpers/helper-misc.php:290
1549
  msgid "Comoros"
1550
  msgstr ""
1551
 
1552
+ #: inc/helpers/helper-misc.php:291
1553
  msgid "Congo"
1554
  msgstr ""
1555
 
1556
+ #: inc/helpers/helper-misc.php:292
1557
  msgid "Congo, the Democratic Republic of the"
1558
  msgstr ""
1559
 
1560
+ #: inc/helpers/helper-misc.php:293
1561
  msgid "Cook Islands"
1562
  msgstr ""
1563
 
1564
+ #: inc/helpers/helper-misc.php:294
1565
  msgid "Costa Rica"
1566
  msgstr ""
1567
 
1568
+ #: inc/helpers/helper-misc.php:295
1569
+ msgid "Ivory Coast"
1570
  msgstr ""
1571
 
1572
+ #: inc/helpers/helper-misc.php:296
1573
  msgid "Croatia (Hrvatska)"
1574
  msgstr ""
1575
 
1576
+ #: inc/helpers/helper-misc.php:297
1577
  msgid "Cuba"
1578
  msgstr ""
1579
 
1580
+ #: inc/helpers/helper-misc.php:298
1581
  msgid "Cyprus"
1582
  msgstr ""
1583
 
1584
+ #: inc/helpers/helper-misc.php:299
1585
  msgid "Czech Republic"
1586
  msgstr ""
1587
 
1588
+ #: inc/helpers/helper-misc.php:300
1589
  msgid "Denmark"
1590
  msgstr ""
1591
 
1592
+ #: inc/helpers/helper-misc.php:301
1593
  msgid "Djibouti"
1594
  msgstr ""
1595
 
1596
+ #: inc/helpers/helper-misc.php:302
1597
  msgid "Dominica"
1598
  msgstr ""
1599
 
1600
+ #: inc/helpers/helper-misc.php:303
1601
  msgid "Dominican Republic"
1602
  msgstr ""
1603
 
1604
+ #: inc/helpers/helper-misc.php:304
1605
  msgid "East Timor"
1606
  msgstr ""
1607
 
1608
+ #: inc/helpers/helper-misc.php:305
1609
  msgid "Ecuador"
1610
  msgstr ""
1611
 
1612
+ #: inc/helpers/helper-misc.php:306
1613
  msgid "Egypt"
1614
  msgstr ""
1615
 
1616
+ #: inc/helpers/helper-misc.php:307
1617
  msgid "El Salvador"
1618
  msgstr ""
1619
 
1620
+ #: inc/helpers/helper-misc.php:308
1621
  msgid "Equatorial Guinea"
1622
  msgstr ""
1623
 
1624
+ #: inc/helpers/helper-misc.php:309
1625
  msgid "Eritrea"
1626
  msgstr ""
1627
 
1628
+ #: inc/helpers/helper-misc.php:310
1629
  msgid "Estonia"
1630
  msgstr ""
1631
 
1632
+ #: inc/helpers/helper-misc.php:311
1633
  msgid "Ethiopia"
1634
  msgstr ""
1635
 
1636
+ #: inc/helpers/helper-misc.php:312
1637
  msgid "Falkland Islands (Malvinas)"
1638
  msgstr ""
1639
 
1640
+ #: inc/helpers/helper-misc.php:313
1641
  msgid "Faroe Islands"
1642
  msgstr ""
1643
 
1644
+ #: inc/helpers/helper-misc.php:314
1645
  msgid "Fiji"
1646
  msgstr ""
1647
 
1648
+ #: inc/helpers/helper-misc.php:315
1649
  msgid "Finland"
1650
  msgstr ""
1651
 
1652
+ #: inc/helpers/helper-misc.php:316
1653
  msgid "France"
1654
  msgstr ""
1655
 
1656
+ #: inc/helpers/helper-misc.php:317
1657
  msgid "France Metropolitan"
1658
  msgstr ""
1659
 
1660
+ #: inc/helpers/helper-misc.php:318
1661
  msgid "French Guiana"
1662
  msgstr ""
1663
 
1664
+ #: inc/helpers/helper-misc.php:319
1665
  msgid "French Polynesia"
1666
  msgstr ""
1667
 
1668
+ #: inc/helpers/helper-misc.php:320
1669
  msgid "French Southern Territories"
1670
  msgstr ""
1671
 
1672
+ #: inc/helpers/helper-misc.php:321
1673
  msgid "Gabon"
1674
  msgstr ""
1675
 
1676
+ #: inc/helpers/helper-misc.php:322
1677
  msgid "Gambia"
1678
  msgstr ""
1679
 
1680
+ #: inc/helpers/helper-misc.php:323
1681
  msgid "Georgia"
1682
  msgstr ""
1683
 
1684
+ #: inc/helpers/helper-misc.php:324
1685
  msgid "Germany"
1686
  msgstr ""
1687
 
1688
+ #: inc/helpers/helper-misc.php:325
1689
  msgid "Ghana"
1690
  msgstr ""
1691
 
1692
+ #: inc/helpers/helper-misc.php:326
1693
  msgid "Gibraltar"
1694
  msgstr ""
1695
 
1696
+ #: inc/helpers/helper-misc.php:327
1697
  msgid "Greece"
1698
  msgstr ""
1699
 
1700
+ #: inc/helpers/helper-misc.php:328
1701
  msgid "Greenland"
1702
  msgstr ""
1703
 
1704
+ #: inc/helpers/helper-misc.php:329
1705
  msgid "Grenada"
1706
  msgstr ""
1707
 
1708
+ #: inc/helpers/helper-misc.php:330
1709
  msgid "Guadeloupe"
1710
  msgstr ""
1711
 
1712
+ #: inc/helpers/helper-misc.php:331
1713
  msgid "Guam"
1714
  msgstr ""
1715
 
1716
+ #: inc/helpers/helper-misc.php:332
1717
  msgid "Guatemala"
1718
  msgstr ""
1719
 
1720
+ #: inc/helpers/helper-misc.php:333
1721
  msgid "Guinea"
1722
  msgstr ""
1723
 
1724
+ #: inc/helpers/helper-misc.php:334
1725
  msgid "Guinea-Bissau"
1726
  msgstr ""
1727
 
1728
+ #: inc/helpers/helper-misc.php:335
1729
  msgid "Guyana"
1730
  msgstr ""
1731
 
1732
+ #: inc/helpers/helper-misc.php:336
1733
  msgid "Haiti"
1734
  msgstr ""
1735
 
1736
+ #: inc/helpers/helper-misc.php:337
1737
  msgid "Heard and Mc Donald Islands"
1738
  msgstr ""
1739
 
1740
+ #: inc/helpers/helper-misc.php:338
1741
  msgid "Holy See (Vatican City State)"
1742
  msgstr ""
1743
 
1744
+ #: inc/helpers/helper-misc.php:339
1745
  msgid "Honduras"
1746
  msgstr ""
1747
 
1748
+ #: inc/helpers/helper-misc.php:340
1749
  msgid "Hong Kong"
1750
  msgstr ""
1751
 
1752
+ #: inc/helpers/helper-misc.php:341
1753
  msgid "Hungary"
1754
  msgstr ""
1755
 
1756
+ #: inc/helpers/helper-misc.php:342
1757
  msgid "Iceland"
1758
  msgstr ""
1759
 
1760
+ #: inc/helpers/helper-misc.php:343
1761
  msgid "India"
1762
  msgstr ""
1763
 
1764
+ #: inc/helpers/helper-misc.php:344
1765
  msgid "Indonesia"
1766
  msgstr ""
1767
 
1768
+ #: inc/helpers/helper-misc.php:345
1769
  msgid "Iran (Islamic Republic of)"
1770
  msgstr ""
1771
 
1772
+ #: inc/helpers/helper-misc.php:346
1773
  msgid "Iraq"
1774
  msgstr ""
1775
 
1776
+ #: inc/helpers/helper-misc.php:347
1777
  msgid "Ireland"
1778
  msgstr ""
1779
 
1780
+ #: inc/helpers/helper-misc.php:348
1781
  msgid "Israel"
1782
  msgstr ""
1783
 
1784
+ #: inc/helpers/helper-misc.php:349
1785
  msgid "Italy"
1786
  msgstr ""
1787
 
1788
+ #: inc/helpers/helper-misc.php:350
1789
  msgid "Jamaica"
1790
  msgstr ""
1791
 
1792
+ #: inc/helpers/helper-misc.php:351
1793
  msgid "Japan"
1794
  msgstr ""
1795
 
1796
+ #: inc/helpers/helper-misc.php:352
1797
  msgid "Jordan"
1798
  msgstr ""
1799
 
1800
+ #: inc/helpers/helper-misc.php:353
1801
  msgid "Kazakhstan"
1802
  msgstr ""
1803
 
1804
+ #: inc/helpers/helper-misc.php:354
1805
  msgid "Kenya"
1806
  msgstr ""
1807
 
1808
+ #: inc/helpers/helper-misc.php:355
1809
  msgid "Kiribati"
1810
  msgstr ""
1811
 
1812
+ #: inc/helpers/helper-misc.php:356
1813
  msgid "Korea, Democratic People's Republic of"
1814
  msgstr ""
1815
 
1816
+ #: inc/helpers/helper-misc.php:357
1817
  msgid "Korea, Republic of"
1818
  msgstr ""
1819
 
1820
+ #: inc/helpers/helper-misc.php:358
1821
  msgid "Kuwait"
1822
  msgstr ""
1823
 
1824
+ #: inc/helpers/helper-misc.php:359
1825
  msgid "Kyrgyzstan"
1826
  msgstr ""
1827
 
1828
+ #: inc/helpers/helper-misc.php:360
1829
  msgid "Lao, People's Democratic Republic"
1830
  msgstr ""
1831
 
1832
+ #: inc/helpers/helper-misc.php:361
1833
  msgid "Latvia"
1834
  msgstr ""
1835
 
1836
+ #: inc/helpers/helper-misc.php:362
1837
  msgid "Lebanon"
1838
  msgstr ""
1839
 
1840
+ #: inc/helpers/helper-misc.php:363
1841
  msgid "Lesotho"
1842
  msgstr ""
1843
 
1844
+ #: inc/helpers/helper-misc.php:364
1845
  msgid "Liberia"
1846
  msgstr ""
1847
 
1848
+ #: inc/helpers/helper-misc.php:365
1849
  msgid "Libyan Arab Jamahiriya"
1850
  msgstr ""
1851
 
1852
+ #: inc/helpers/helper-misc.php:366
1853
  msgid "Liechtenstein"
1854
  msgstr ""
1855
 
1856
+ #: inc/helpers/helper-misc.php:367
1857
  msgid "Lithuania"
1858
  msgstr ""
1859
 
1860
+ #: inc/helpers/helper-misc.php:368
1861
  msgid "Luxembourg"
1862
  msgstr ""
1863
 
1864
+ #: inc/helpers/helper-misc.php:369
1865
  msgid "Macau"
1866
  msgstr ""
1867
 
1868
+ #: inc/helpers/helper-misc.php:370
1869
  msgid "Macedonia, The Former Yugoslav Republic of"
1870
  msgstr ""
1871
 
1872
+ #: inc/helpers/helper-misc.php:371
1873
  msgid "Madagascar"
1874
  msgstr ""
1875
 
1876
+ #: inc/helpers/helper-misc.php:372
1877
  msgid "Malawi"
1878
  msgstr ""
1879
 
1880
+ #: inc/helpers/helper-misc.php:373
1881
  msgid "Malaysia"
1882
  msgstr ""
1883
 
1884
+ #: inc/helpers/helper-misc.php:374
1885
  msgid "Maldives"
1886
  msgstr ""
1887
 
1888
+ #: inc/helpers/helper-misc.php:375
1889
  msgid "Mali"
1890
  msgstr ""
1891
 
1892
+ #: inc/helpers/helper-misc.php:376
1893
  msgid "Malta"
1894
  msgstr ""
1895
 
1896
+ #: inc/helpers/helper-misc.php:377
1897
  msgid "Marshall Islands"
1898
  msgstr ""
1899
 
1900
+ #: inc/helpers/helper-misc.php:378
1901
  msgid "Martinique"
1902
  msgstr ""
1903
 
1904
+ #: inc/helpers/helper-misc.php:379
1905
  msgid "Mauritania"
1906
  msgstr ""
1907
 
1908
+ #: inc/helpers/helper-misc.php:380
1909
  msgid "Mauritius"
1910
  msgstr ""
1911
 
1912
+ #: inc/helpers/helper-misc.php:381
1913
  msgid "Mayotte"
1914
  msgstr ""
1915
 
1916
+ #: inc/helpers/helper-misc.php:382
1917
  msgid "Mexico"
1918
  msgstr ""
1919
 
1920
+ #: inc/helpers/helper-misc.php:383
1921
  msgid "Micronesia, Federated States of"
1922
  msgstr ""
1923
 
1924
+ #: inc/helpers/helper-misc.php:384
1925
  msgid "Moldova, Republic of"
1926
  msgstr ""
1927
 
1928
+ #: inc/helpers/helper-misc.php:385
1929
  msgid "Monaco"
1930
  msgstr ""
1931
 
1932
+ #: inc/helpers/helper-misc.php:386
1933
  msgid "Mongolia"
1934
  msgstr ""
1935
 
1936
+ #: inc/helpers/helper-misc.php:387
1937
  msgid "Montserrat"
1938
  msgstr ""
1939
 
1940
+ #: inc/helpers/helper-misc.php:388
1941
  msgid "Morocco"
1942
  msgstr ""
1943
 
1944
+ #: inc/helpers/helper-misc.php:389
1945
  msgid "Mozambique"
1946
  msgstr ""
1947
 
1948
+ #: inc/helpers/helper-misc.php:390
1949
  msgid "Myanmar"
1950
  msgstr ""
1951
 
1952
+ #: inc/helpers/helper-misc.php:391
1953
  msgid "Namibia"
1954
  msgstr ""
1955
 
1956
+ #: inc/helpers/helper-misc.php:392
1957
  msgid "Nauru"
1958
  msgstr ""
1959
 
1960
+ #: inc/helpers/helper-misc.php:393
1961
  msgid "Nepal"
1962
  msgstr ""
1963
 
1964
+ #: inc/helpers/helper-misc.php:394
1965
  msgid "Netherlands"
1966
  msgstr ""
1967
 
1968
+ #: inc/helpers/helper-misc.php:395
1969
  msgid "Netherlands Antilles"
1970
  msgstr ""
1971
 
1972
+ #: inc/helpers/helper-misc.php:396
1973
  msgid "New Caledonia"
1974
  msgstr ""
1975
 
1976
+ #: inc/helpers/helper-misc.php:397
1977
  msgid "New Zealand"
1978
  msgstr ""
1979
 
1980
+ #: inc/helpers/helper-misc.php:398
1981
  msgid "Nicaragua"
1982
  msgstr ""
1983
 
1984
+ #: inc/helpers/helper-misc.php:399
1985
  msgid "Niger"
1986
  msgstr ""
1987
 
1988
+ #: inc/helpers/helper-misc.php:400
1989
  msgid "Nigeria"
1990
  msgstr ""
1991
 
1992
+ #: inc/helpers/helper-misc.php:401
1993
  msgid "Niue"
1994
  msgstr ""
1995
 
1996
+ #: inc/helpers/helper-misc.php:402
1997
  msgid "Norfolk Island"
1998
  msgstr ""
1999
 
2000
+ #: inc/helpers/helper-misc.php:403
2001
  msgid "Northern Mariana Islands"
2002
  msgstr ""
2003
 
2004
+ #: inc/helpers/helper-misc.php:404
2005
  msgid "Norway"
2006
  msgstr ""
2007
 
2008
+ #: inc/helpers/helper-misc.php:405
2009
  msgid "Oman"
2010
  msgstr ""
2011
 
2012
+ #: inc/helpers/helper-misc.php:406
2013
  msgid "Pakistan"
2014
  msgstr ""
2015
 
2016
+ #: inc/helpers/helper-misc.php:407
2017
  msgid "Palau"
2018
  msgstr ""
2019
 
2020
+ #: inc/helpers/helper-misc.php:408
2021
  msgid "Panama"
2022
  msgstr ""
2023
 
2024
+ #: inc/helpers/helper-misc.php:409
2025
  msgid "Papua New Guinea"
2026
  msgstr ""
2027
 
2028
+ #: inc/helpers/helper-misc.php:410
2029
  msgid "Paraguay"
2030
  msgstr ""
2031
 
2032
+ #: inc/helpers/helper-misc.php:411
2033
  msgid "Peru"
2034
  msgstr ""
2035
 
2036
+ #: inc/helpers/helper-misc.php:412
2037
  msgid "Philippines"
2038
  msgstr ""
2039
 
2040
+ #: inc/helpers/helper-misc.php:413
2041
  msgid "Pitcairn"
2042
  msgstr ""
2043
 
2044
+ #: inc/helpers/helper-misc.php:414
2045
  msgid "Poland"
2046
  msgstr ""
2047
 
2048
+ #: inc/helpers/helper-misc.php:415
2049
  msgid "Portugal"
2050
  msgstr ""
2051
 
2052
+ #: inc/helpers/helper-misc.php:416
2053
  msgid "Puerto Rico"
2054
  msgstr ""
2055
 
2056
+ #: inc/helpers/helper-misc.php:417
2057
  msgid "Qatar"
2058
  msgstr ""
2059
 
2060
+ #: inc/helpers/helper-misc.php:418
2061
  msgid "Reunion"
2062
  msgstr ""
2063
 
2064
+ #: inc/helpers/helper-misc.php:419
2065
  msgid "Romania"
2066
  msgstr ""
2067
 
2068
+ #: inc/helpers/helper-misc.php:420
2069
  msgid "Russian Federation"
2070
  msgstr ""
2071
 
2072
+ #: inc/helpers/helper-misc.php:421
2073
  msgid "Rwanda"
2074
  msgstr ""
2075
 
2076
+ #: inc/helpers/helper-misc.php:422
2077
  msgid "Saint Kitts and Nevis"
2078
  msgstr ""
2079
 
2080
+ #: inc/helpers/helper-misc.php:423
2081
  msgid "Saint Lucia"
2082
  msgstr ""
2083
 
2084
+ #: inc/helpers/helper-misc.php:424
2085
  msgid "Saint Vincent and the Grenadines"
2086
  msgstr ""
2087
 
2088
+ #: inc/helpers/helper-misc.php:425
2089
  msgid "Samoa"
2090
  msgstr ""
2091
 
2092
+ #: inc/helpers/helper-misc.php:426
2093
  msgid "San Marino"
2094
  msgstr ""
2095
 
2096
+ #: inc/helpers/helper-misc.php:427
2097
  msgid "Sao Tome and Principe"
2098
  msgstr ""
2099
 
2100
+ #: inc/helpers/helper-misc.php:428
2101
  msgid "Saudi Arabia"
2102
  msgstr ""
2103
 
2104
+ #: inc/helpers/helper-misc.php:429
2105
  msgid "Senegal"
2106
  msgstr ""
2107
 
2108
+ #: inc/helpers/helper-misc.php:430
2109
  msgid "Seychelles"
2110
  msgstr ""
2111
 
2112
+ #: inc/helpers/helper-misc.php:431
2113
  msgid "Sierra Leone"
2114
  msgstr ""
2115
 
2116
+ #: inc/helpers/helper-misc.php:432
2117
  msgid "Singapore"
2118
  msgstr ""
2119
 
2120
+ #: inc/helpers/helper-misc.php:433
2121
  msgid "Slovakia (Slovak Republic)"
2122
  msgstr ""
2123
 
2124
+ #: inc/helpers/helper-misc.php:434
2125
  msgid "Slovenia"
2126
  msgstr ""
2127
 
2128
+ #: inc/helpers/helper-misc.php:435
2129
  msgid "Solomon Islands"
2130
  msgstr ""
2131
 
2132
+ #: inc/helpers/helper-misc.php:436
2133
  msgid "Somalia"
2134
  msgstr ""
2135
 
2136
+ #: inc/helpers/helper-misc.php:437
2137
  msgid "South Africa"
2138
  msgstr ""
2139
 
2140
+ #: inc/helpers/helper-misc.php:438
2141
  msgid "South Georgia and the South Sandwich Islands"
2142
  msgstr ""
2143
 
2144
+ #: inc/helpers/helper-misc.php:439
2145
  msgid "Spain"
2146
  msgstr ""
2147
 
2148
+ #: inc/helpers/helper-misc.php:440
2149
  msgid "Sri Lanka"
2150
  msgstr ""
2151
 
2152
+ #: inc/helpers/helper-misc.php:441
2153
  msgid "St. Helena"
2154
  msgstr ""
2155
 
2156
+ #: inc/helpers/helper-misc.php:442
2157
  msgid "St. Pierre and Miquelon"
2158
  msgstr ""
2159
 
2160
+ #: inc/helpers/helper-misc.php:443
2161
  msgid "Sudan"
2162
  msgstr ""
2163
 
2164
+ #: inc/helpers/helper-misc.php:444
2165
  msgid "Suriname"
2166
  msgstr ""
2167
 
2168
+ #: inc/helpers/helper-misc.php:445
2169
  msgid "Svalbard and Jan Mayen Islands"
2170
  msgstr ""
2171
 
2172
+ #: inc/helpers/helper-misc.php:446
2173
  msgid "Swaziland"
2174
  msgstr ""
2175
 
2176
+ #: inc/helpers/helper-misc.php:447
2177
  msgid "Sweden"
2178
  msgstr ""
2179
 
2180
+ #: inc/helpers/helper-misc.php:448
2181
  msgid "Switzerland"
2182
  msgstr ""
2183
 
2184
+ #: inc/helpers/helper-misc.php:449
2185
  msgid "Syrian Arab Republic"
2186
  msgstr ""
2187
 
2188
+ #: inc/helpers/helper-misc.php:450
2189
  msgid "Taiwan, Province of China"
2190
  msgstr ""
2191
 
2192
+ #: inc/helpers/helper-misc.php:451
2193
  msgid "Tajikistan"
2194
  msgstr ""
2195
 
2196
+ #: inc/helpers/helper-misc.php:452
2197
  msgid "Tanzania, United Republic of"
2198
  msgstr ""
2199
 
2200
+ #: inc/helpers/helper-misc.php:453
2201
  msgid "Thailand"
2202
  msgstr ""
2203
 
2204
+ #: inc/helpers/helper-misc.php:454
2205
  msgid "Togo"
2206
  msgstr ""
2207
 
2208
+ #: inc/helpers/helper-misc.php:455
2209
  msgid "Tokelau"
2210
  msgstr ""
2211
 
2212
+ #: inc/helpers/helper-misc.php:456
2213
  msgid "Tonga"
2214
  msgstr ""
2215
 
2216
+ #: inc/helpers/helper-misc.php:457
2217
  msgid "Trinidad and Tobago"
2218
  msgstr ""
2219
 
2220
+ #: inc/helpers/helper-misc.php:458
2221
  msgid "Tunisia"
2222
  msgstr ""
2223
 
2224
+ #: inc/helpers/helper-misc.php:459
2225
  msgid "Turkey"
2226
  msgstr ""
2227
 
2228
+ #: inc/helpers/helper-misc.php:460
2229
  msgid "Turkmenistan"
2230
  msgstr ""
2231
 
2232
+ #: inc/helpers/helper-misc.php:461
2233
  msgid "Turks and Caicos Islands"
2234
  msgstr ""
2235
 
2236
+ #: inc/helpers/helper-misc.php:462
2237
  msgid "Tuvalu"
2238
  msgstr ""
2239
 
2240
+ #: inc/helpers/helper-misc.php:463
2241
  msgid "Uganda"
2242
  msgstr ""
2243
 
2244
+ #: inc/helpers/helper-misc.php:464
2245
  msgid "Ukraine"
2246
  msgstr ""
2247
 
2248
+ #: inc/helpers/helper-misc.php:465
2249
  msgid "United Arab Emirates"
2250
  msgstr ""
2251
 
2252
+ #: inc/helpers/helper-misc.php:466
2253
  msgid "United Kingdom"
2254
  msgstr ""
2255
 
2256
+ #: inc/helpers/helper-misc.php:467
2257
  msgid "United States"
2258
  msgstr ""
2259
 
2260
+ #: inc/helpers/helper-misc.php:468
2261
  msgid "United States Minor Outlying Islands"
2262
  msgstr ""
2263
 
2264
+ #: inc/helpers/helper-misc.php:469
2265
  msgid "Uruguay"
2266
  msgstr ""
2267
 
2268
+ #: inc/helpers/helper-misc.php:470
2269
  msgid "Uzbekistan"
2270
  msgstr ""
2271
 
2272
+ #: inc/helpers/helper-misc.php:471
2273
  msgid "Vanuatu"
2274
  msgstr ""
2275
 
2276
+ #: inc/helpers/helper-misc.php:472
2277
  msgid "Venezuela"
2278
  msgstr ""
2279
 
2280
+ #: inc/helpers/helper-misc.php:473
2281
  msgid "Vietnam"
2282
  msgstr ""
2283
 
2284
+ #: inc/helpers/helper-misc.php:474
2285
  msgid "Virgin Islands (British)"
2286
  msgstr ""
2287
 
2288
+ #: inc/helpers/helper-misc.php:475
2289
  msgid "Virgin Islands (U.S.)"
2290
  msgstr ""
2291
 
2292
+ #: inc/helpers/helper-misc.php:476
2293
  msgid "Wallis and Futuna Islands"
2294
  msgstr ""
2295
 
2296
+ #: inc/helpers/helper-misc.php:477
2297
  msgid "Western Sahara"
2298
  msgstr ""
2299
 
2300
+ #: inc/helpers/helper-misc.php:478
2301
  msgid "Yemen"
2302
  msgstr ""
2303
 
2304
+ #: inc/helpers/helper-misc.php:479
2305
  msgid "Yugoslavia"
2306
  msgstr ""
2307
 
2308
+ #: inc/helpers/helper-misc.php:480
2309
  msgid "Zambia"
2310
  msgstr ""
2311
 
2312
+ #: inc/helpers/helper-misc.php:481
2313
  msgid "Zimbabwe"
2314
  msgstr ""
2315
 
2321
  msgid "Insert"
2322
  msgstr ""
2323
 
2324
+ #: inc/templates/admin-message-edit.php:31
2325
  msgid "Previous response"
2326
  msgstr ""
2327
 
2328
+ #: inc/templates/admin-message-edit.php:33
2329
  msgid "Next response"
2330
  msgstr ""
2331
 
2407
 
2408
  #: inc/templates/customize-form-item.php:33
2409
  #: inc/templates/customize-form-part-footer.php:3
2410
+ #: inc/templates/parts/customize-checkbox.php:83
2411
+ #: inc/templates/parts/customize-radio.php:87
2412
+ #: inc/templates/parts/customize-select.php:82
2413
+ #: inc/templates/parts/customize-table.php:99
2414
+ #: inc/templates/parts/customize-table.php:110
2415
  msgid "Delete"
2416
  msgstr ""
2417
 
2489
  msgstr ""
2490
 
2491
  #: inc/templates/customize-form-setup.php:86
2492
+ msgid "Add identifying number to messages"
2493
  msgstr ""
2494
 
2495
  #: inc/templates/customize-form-setup.php:91
2496
+ msgid "Start counter from"
2497
+ msgstr ""
2498
+
2499
+ #: inc/templates/customize-form-setup.php:96
2500
+ #: inc/templates/parts/customize-number.php:69
2501
+ msgid "Prefix"
2502
+ msgstr ""
2503
+
2504
+ #: inc/templates/customize-form-setup.php:100
2505
+ msgid "Suffix"
2506
+ msgstr ""
2507
+
2508
+ #: inc/templates/customize-form-setup.php:108
2509
+ msgid "Preview values before submission"
2510
+ msgstr ""
2511
+
2512
+ #: inc/templates/customize-form-setup.php:113
2513
  msgid "Review button text"
2514
  msgstr ""
2515
 
2516
+ #: inc/templates/customize-form-setup.php:120
2517
  msgid ""
2518
  "This is the message your users will see after succesfully submitting your "
2519
  "form."
2520
  msgstr ""
2521
 
2522
+ #: inc/templates/customize-form-setup.php:123
2523
  msgid ""
2524
  "Add your email address here to receive a confirmation email for each form "
2525
  "response. You can add multiple email addresses by separating each address "
2526
  "with a comma."
2527
  msgstr ""
2528
 
2529
+ #: inc/templates/customize-form-setup.php:126
2530
  msgid ""
2531
  "Each time a user submits a message, you'll receive an email with this "
2532
  "subject."
2533
  msgstr ""
2534
 
2535
+ #: inc/templates/customize-form-setup.php:129
2536
  msgid ""
2537
  "If your form contains an email field, recipients will receive an email with "
2538
  "this content."
2539
  msgstr ""
2540
 
2541
+ #: inc/templates/customize-form-setup.php:132
2542
  msgid ""
2543
  "If your form contains an email field, recipients will receive an email with "
2544
  "this sender name."
2545
  msgstr ""
2546
 
2547
+ #: inc/templates/customize-form-setup.php:135
2548
  msgid ""
2549
  "If your form contains an email field, recipients will receive an email with "
2550
  "this subject."
2551
  msgstr ""
2552
 
2553
+ #: inc/templates/customize-form-setup.php:138
2554
  msgid ""
2555
  "By default, recipients will be redirected to the post or page displaying "
2556
  "this form. To set a custom redirect webpage, add a link here."
2557
  msgstr ""
2558
 
2559
+ #: inc/templates/customize-form-setup.php:141
2560
  msgid "Protect your form against bots by using HoneyPot security."
2561
  msgstr ""
2562
 
2563
+ #: inc/templates/customize-form-setup.php:144
2564
  msgid "Protect your form against bots using your Google ReCaptcha credentials."
2565
  msgstr ""
2566
 
2567
+ #: inc/templates/customize-form-setup.php:147
2568
  msgid "Keep recipients responses stored in your WordPress database."
2569
  msgstr ""
2570
 
2571
+ #: inc/templates/customize-form-setup.php:150
2572
  msgid "Let your users review their submission before confirming it."
2573
  msgstr ""
2574
 
2575
+ #: inc/templates/customize-form-setup.php:153
2576
+ msgid "Tag responses with a unique, incremental identifier."
2577
+ msgstr ""
2578
+
2579
+ #: inc/templates/customize-form-setup.php:156
2580
+ msgid "Your next submission will be tagged with this identifier."
2581
+ msgstr ""
2582
+
2583
  #: inc/templates/customize-form-steps.php:5
2584
  msgid "Build"
2585
  msgstr ""
2586
 
2587
  #: inc/templates/customize-form-steps.php:23
2588
+ #: inc/templates/customize-header-actions.php:3
2589
+ msgid "Save Form"
2590
  msgstr ""
2591
 
2592
  #: inc/templates/customize-form-steps.php:30
2593
+ #: inc/templates/parts/customize-scale.php:77
2594
  msgid "Step"
2595
  msgstr ""
2596
 
2606
  msgid "You are customizing"
2607
  msgstr ""
2608
 
 
 
 
 
2609
  #: inc/templates/customize-header-actions.php:5
2610
  msgid "The changes you made will be lost if you navigate away from this page."
2611
  msgstr ""
2691
 
2692
  #: inc/templates/parts/customize-address.php:19
2693
  #: inc/templates/parts/customize-checkbox.php:17
2694
+ #: inc/templates/parts/customize-checkbox.php:63
2695
  #: inc/templates/parts/customize-date.php:17
2696
+ #: inc/templates/parts/customize-date.php:109
2697
  #: inc/templates/parts/customize-email.php:19
2698
+ #: inc/templates/parts/customize-email.php:55
2699
  #: inc/templates/parts/customize-multi-line-text.php:19
2700
+ #: inc/templates/parts/customize-multi-line-text.php:55
2701
  #: inc/templates/parts/customize-narrative.php:17
2702
  #: inc/templates/parts/customize-narrative.php:41
2703
  #: inc/templates/parts/customize-number.php:19
2704
+ #: inc/templates/parts/customize-number.php:84
2705
  #: inc/templates/parts/customize-phone.php:19
2706
+ #: inc/templates/parts/customize-phone.php:78
2707
  #: inc/templates/parts/customize-placeholder.php:17
2708
  #: inc/templates/parts/customize-placeholder.php:36
2709
  #: inc/templates/parts/customize-radio.php:17
2710
+ #: inc/templates/parts/customize-radio.php:63
2711
  #: inc/templates/parts/customize-rating.php:17
2712
+ #: inc/templates/parts/customize-rating.php:83
2713
  #: inc/templates/parts/customize-scale.php:17
2714
+ #: inc/templates/parts/customize-scale.php:95
2715
  #: inc/templates/parts/customize-select.php:17
2716
+ #: inc/templates/parts/customize-select.php:62
2717
  #: inc/templates/parts/customize-single-line-text.php:19
2718
+ #: inc/templates/parts/customize-single-line-text.php:60
2719
  #: inc/templates/parts/customize-table.php:17
2720
+ #: inc/templates/parts/customize-table.php:79
2721
  #: inc/templates/parts/customize-title.php:17
2722
+ #: inc/templates/parts/customize-title.php:48
2723
  #: inc/templates/parts/customize-website-url.php:19
2724
+ #: inc/templates/parts/customize-website-url.php:55
2725
  msgid "Apply to all parts"
2726
  msgstr ""
2727
 
2733
  #: inc/templates/parts/customize-number.php:23
2734
  #: inc/templates/parts/customize-phone.php:23
2735
  #: inc/templates/parts/customize-radio.php:21
2736
+ #: inc/templates/parts/customize-radio.php:80
2737
  #: inc/templates/parts/customize-rating.php:21
2738
  #: inc/templates/parts/customize-scale.php:21
2739
  #: inc/templates/parts/customize-select.php:21
2744
  msgid "Description"
2745
  msgstr ""
2746
 
2747
+ #: inc/templates/parts/customize-address.php:27
2748
+ #: inc/templates/parts/customize-checkbox.php:25
2749
+ #: inc/templates/parts/customize-date.php:25
2750
+ #: inc/templates/parts/customize-email.php:27
2751
+ #: inc/templates/parts/customize-multi-line-text.php:27
2752
+ #: inc/templates/parts/customize-number.php:27
2753
+ #: inc/templates/parts/customize-phone.php:27
2754
+ #: inc/templates/parts/customize-radio.php:25
2755
+ #: inc/templates/parts/customize-rating.php:25
2756
+ #: inc/templates/parts/customize-scale.php:25
2757
+ #: inc/templates/parts/customize-select.php:25
2758
+ #: inc/templates/parts/customize-single-line-text.php:27
2759
+ #: inc/templates/parts/customize-table.php:25
2760
+ #: inc/templates/parts/customize-title.php:25
2761
+ #: inc/templates/parts/customize-website-url.php:27
2762
+ msgid "Description appearance"
2763
+ msgstr ""
2764
+
2765
+ #: inc/templates/parts/customize-address.php:29
2766
+ #: inc/templates/parts/customize-checkbox.php:27
2767
+ #: inc/templates/parts/customize-date.php:27
2768
+ #: inc/templates/parts/customize-email.php:29
2769
+ #: inc/templates/parts/customize-multi-line-text.php:29
2770
+ #: inc/templates/parts/customize-number.php:29
2771
+ #: inc/templates/parts/customize-phone.php:29
2772
+ #: inc/templates/parts/customize-radio.php:27
2773
+ #: inc/templates/parts/customize-rating.php:27
2774
+ #: inc/templates/parts/customize-scale.php:27
2775
+ #: inc/templates/parts/customize-select.php:27
2776
+ #: inc/templates/parts/customize-single-line-text.php:29
2777
+ #: inc/templates/parts/customize-table.php:27
2778
+ #: inc/templates/parts/customize-title.php:27
2779
+ #: inc/templates/parts/customize-website-url.php:29
2780
+ msgid "Standard"
2781
+ msgstr ""
2782
+
2783
+ #: inc/templates/parts/customize-address.php:30
2784
+ #: inc/templates/parts/customize-email.php:30
2785
+ #: inc/templates/parts/customize-multi-line-text.php:30
2786
+ #: inc/templates/parts/customize-number.php:30
2787
+ #: inc/templates/parts/customize-phone.php:30
2788
+ #: inc/templates/parts/customize-single-line-text.php:30
2789
+ #: inc/templates/parts/customize-website-url.php:30
2790
+ msgid "Reveal on focus"
2791
+ msgstr ""
2792
+
2793
+ #: inc/templates/parts/customize-address.php:31
2794
+ #: inc/templates/parts/customize-checkbox.php:28
2795
+ #: inc/templates/parts/customize-date.php:28
2796
+ #: inc/templates/parts/customize-email.php:31
2797
+ #: inc/templates/parts/customize-multi-line-text.php:31
2798
+ #: inc/templates/parts/customize-number.php:31
2799
+ #: inc/templates/parts/customize-phone.php:31
2800
+ #: inc/templates/parts/customize-radio.php:28
2801
+ #: inc/templates/parts/customize-rating.php:28
2802
+ #: inc/templates/parts/customize-scale.php:28
2803
+ #: inc/templates/parts/customize-select.php:28
2804
+ #: inc/templates/parts/customize-table.php:28
2805
+ #: inc/templates/parts/customize-title.php:28
2806
+ #: inc/templates/parts/customize-website-url.php:31
2807
+ msgid "Tooltip"
2808
+ msgstr ""
2809
+
2810
+ #: inc/templates/parts/customize-address.php:39
2811
  msgid "Mode"
2812
  msgstr ""
2813
 
2814
+ #: inc/templates/parts/customize-address.php:41
2815
+ #: inc/templates/parts/customize-address.php:79
2816
+ #: inc/templates/parts/customize-checkbox.php:55
2817
+ #: inc/templates/parts/customize-date.php:101
2818
+ #: inc/templates/parts/customize-email.php:47
2819
  #: inc/templates/parts/customize-legal.php:6
2820
+ #: inc/templates/parts/customize-multi-line-text.php:47
2821
  #: inc/templates/parts/customize-narrative.php:33
2822
+ #: inc/templates/parts/customize-number.php:76
2823
+ #: inc/templates/parts/customize-phone.php:70
2824
  #: inc/templates/parts/customize-placeholder.php:28
2825
+ #: inc/templates/parts/customize-radio.php:55
2826
+ #: inc/templates/parts/customize-rating.php:75
2827
+ #: inc/templates/parts/customize-scale.php:87
2828
+ #: inc/templates/parts/customize-select.php:54
2829
+ #: inc/templates/parts/customize-single-line-text.php:52
2830
+ #: inc/templates/parts/customize-table.php:71
2831
+ #: inc/templates/parts/customize-title.php:40
2832
+ #: inc/templates/parts/customize-website-url.php:47
2833
  msgid "Full"
2834
  msgstr ""
2835
 
2836
+ #: inc/templates/parts/customize-address.php:42
2837
  msgid "Full with autocomplete"
2838
  msgstr ""
2839
 
2840
+ #: inc/templates/parts/customize-address.php:43
2841
  msgid "Country and city"
2842
  msgstr ""
2843
 
2844
+ #: inc/templates/parts/customize-address.php:44
2845
  msgid "Country only"
2846
  msgstr ""
2847
 
2848
+ #: inc/templates/parts/customize-address.php:49
2849
  msgid "Allow geolocation"
2850
  msgstr ""
2851
 
2852
+ #: inc/templates/parts/customize-address.php:54
2853
  msgid "Google API Key"
2854
  msgstr ""
2855
 
2856
+ #: inc/templates/parts/customize-address.php:60
2857
  msgid "Address autocompletion requires a"
2858
  msgstr ""
2859
 
2860
+ #: inc/templates/parts/customize-address.php:61
2861
  msgid "Google Places API key"
2862
  msgstr ""
2863
 
2864
+ #: inc/templates/parts/customize-address.php:65
2865
  msgid "Geolocation requires a"
2866
  msgstr ""
2867
 
2868
+ #: inc/templates/parts/customize-address.php:66
2869
  msgid "Google Geocoding API key"
2870
  msgstr ""
2871
 
2872
+ #: inc/templates/parts/customize-address.php:72
2873
+ #: inc/templates/parts/customize-checkbox.php:33
2874
+ #: inc/templates/parts/customize-date.php:48
2875
+ #: inc/templates/parts/customize-email.php:40
2876
+ #: inc/templates/parts/customize-multi-line-text.php:40
2877
+ #: inc/templates/parts/customize-number.php:50
2878
+ #: inc/templates/parts/customize-phone.php:40
2879
+ #: inc/templates/parts/customize-radio.php:33
2880
+ #: inc/templates/parts/customize-rating.php:33
2881
+ #: inc/templates/parts/customize-scale.php:43
2882
+ #: inc/templates/parts/customize-select.php:33
2883
+ #: inc/templates/parts/customize-single-line-text.php:40
2884
+ #: inc/templates/parts/customize-title.php:33
2885
+ #: inc/templates/parts/customize-website-url.php:40
2886
  msgid "This is required"
2887
  msgstr ""
2888
 
2889
+ #: inc/templates/parts/customize-address.php:80
2890
+ #: inc/templates/parts/customize-checkbox.php:56
2891
+ #: inc/templates/parts/customize-date.php:102
2892
+ #: inc/templates/parts/customize-email.php:48
2893
  #: inc/templates/parts/customize-legal.php:7
2894
+ #: inc/templates/parts/customize-multi-line-text.php:48
2895
  #: inc/templates/parts/customize-narrative.php:34
2896
+ #: inc/templates/parts/customize-number.php:77
2897
+ #: inc/templates/parts/customize-phone.php:71
2898
  #: inc/templates/parts/customize-placeholder.php:29
2899
+ #: inc/templates/parts/customize-radio.php:56
2900
+ #: inc/templates/parts/customize-rating.php:76
2901
+ #: inc/templates/parts/customize-scale.php:88
2902
+ #: inc/templates/parts/customize-select.php:55
2903
+ #: inc/templates/parts/customize-single-line-text.php:53
2904
+ #: inc/templates/parts/customize-table.php:72
2905
+ #: inc/templates/parts/customize-title.php:41
2906
+ #: inc/templates/parts/customize-website-url.php:48
2907
  msgid "Half"
2908
  msgstr ""
2909
 
2910
+ #: inc/templates/parts/customize-address.php:81
2911
+ #: inc/templates/parts/customize-checkbox.php:57
2912
+ #: inc/templates/parts/customize-date.php:103
2913
+ #: inc/templates/parts/customize-email.php:49
2914
  #: inc/templates/parts/customize-legal.php:8
2915
+ #: inc/templates/parts/customize-multi-line-text.php:49
2916
  #: inc/templates/parts/customize-narrative.php:35
2917
+ #: inc/templates/parts/customize-number.php:78
2918
+ #: inc/templates/parts/customize-phone.php:72
2919
  #: inc/templates/parts/customize-placeholder.php:30
2920
+ #: inc/templates/parts/customize-radio.php:57
2921
+ #: inc/templates/parts/customize-rating.php:77
2922
+ #: inc/templates/parts/customize-scale.php:89
2923
+ #: inc/templates/parts/customize-select.php:56
2924
+ #: inc/templates/parts/customize-single-line-text.php:54
2925
+ #: inc/templates/parts/customize-table.php:73
2926
+ #: inc/templates/parts/customize-title.php:42
2927
+ #: inc/templates/parts/customize-website-url.php:49
2928
  msgid "Third"
2929
  msgstr ""
2930
 
2931
+ #: inc/templates/parts/customize-address.php:82
2932
+ #: inc/templates/parts/customize-checkbox.php:58
2933
+ #: inc/templates/parts/customize-date.php:104
2934
+ #: inc/templates/parts/customize-email.php:50
2935
  #: inc/templates/parts/customize-legal.php:9
2936
+ #: inc/templates/parts/customize-multi-line-text.php:50
2937
  #: inc/templates/parts/customize-narrative.php:36
2938
+ #: inc/templates/parts/customize-number.php:79
2939
+ #: inc/templates/parts/customize-phone.php:73
2940
  #: inc/templates/parts/customize-placeholder.php:31
2941
+ #: inc/templates/parts/customize-radio.php:58
2942
+ #: inc/templates/parts/customize-rating.php:78
2943
+ #: inc/templates/parts/customize-scale.php:90
2944
+ #: inc/templates/parts/customize-select.php:57
2945
+ #: inc/templates/parts/customize-single-line-text.php:55
2946
+ #: inc/templates/parts/customize-table.php:74
2947
+ #: inc/templates/parts/customize-title.php:43
2948
+ #: inc/templates/parts/customize-website-url.php:50
2949
  msgid "Auto"
2950
  msgstr ""
2951
 
2952
+ #: inc/templates/parts/customize-address.php:86
2953
+ #: inc/templates/parts/customize-checkbox.php:67
2954
+ #: inc/templates/parts/customize-date.php:113
2955
+ #: inc/templates/parts/customize-email.php:59
2956
  #: inc/templates/parts/customize-legal.php:18
2957
+ #: inc/templates/parts/customize-multi-line-text.php:59
2958
  #: inc/templates/parts/customize-narrative.php:45
2959
+ #: inc/templates/parts/customize-number.php:88
2960
+ #: inc/templates/parts/customize-phone.php:82
2961
  #: inc/templates/parts/customize-placeholder.php:40
2962
+ #: inc/templates/parts/customize-radio.php:67
2963
+ #: inc/templates/parts/customize-rating.php:87
2964
+ #: inc/templates/parts/customize-scale.php:99
2965
+ #: inc/templates/parts/customize-select.php:66
2966
+ #: inc/templates/parts/customize-single-line-text.php:64
2967
+ #: inc/templates/parts/customize-table.php:83
2968
+ #: inc/templates/parts/customize-title.php:52
2969
+ #: inc/templates/parts/customize-website-url.php:59
2970
  msgid "Custom CSS class"
2971
  msgstr ""
2972
 
2973
+ #: inc/templates/parts/customize-checkbox.php:39
2974
+ #: inc/templates/parts/customize-radio.php:39
2975
+ #: inc/templates/parts/customize-select.php:39
2976
  msgid "No options added yet. Add one by clicking the <i>Add option</i> link below."
2977
  msgstr ""
2978
 
2979
+ #: inc/templates/parts/customize-checkbox.php:42
2980
+ #: inc/templates/parts/customize-radio.php:42
2981
+ #: inc/templates/parts/customize-select.php:43
2982
  msgid "Add option"
2983
  msgstr ""
2984
 
2985
+ #: inc/templates/parts/customize-checkbox.php:46
2986
+ #: inc/templates/parts/customize-radio.php:46
2987
  msgid "Display options"
2988
  msgstr ""
2989
 
2990
+ #: inc/templates/parts/customize-checkbox.php:48
2991
+ #: inc/templates/parts/customize-radio.php:48
2992
  msgid "Horizontal"
2993
  msgstr ""
2994
 
2995
+ #: inc/templates/parts/customize-checkbox.php:49
2996
+ #: inc/templates/parts/customize-radio.php:49
2997
  msgid "Vertical"
2998
  msgstr ""
2999
 
3000
+ #: inc/templates/parts/customize-checkbox.php:76
3001
+ #: inc/templates/parts/customize-radio.php:76
3002
+ #: inc/templates/parts/customize-select.php:75
3003
+ #: inc/templates/parts/customize-table.php:92
3004
+ #: inc/templates/parts/customize-table.php:106
3005
  msgid "Label"
3006
  msgstr ""
3007
 
3008
+ #: inc/templates/parts/customize-checkbox.php:80
3009
+ #: inc/templates/parts/customize-table.php:96
3010
  msgid "Checked by default"
3011
  msgstr ""
3012
 
3013
+ #: inc/templates/parts/customize-date.php:35
3014
  msgid "Date &amp; Time"
3015
  msgstr ""
3016
 
3017
+ #: inc/templates/parts/customize-date.php:36
3018
  msgid "Time"
3019
  msgstr ""
3020
 
3021
+ #: inc/templates/parts/customize-date.php:40
3022
+ #: inc/templates/parts/customize-scale.php:63
3023
  msgid "Default value"
3024
  msgstr ""
3025
 
3026
+ #: inc/templates/parts/customize-date.php:42
3027
  msgid "Blank"
3028
  msgstr ""
3029
 
3030
+ #: inc/templates/parts/customize-date.php:43
3031
  msgid "Current date and time"
3032
  msgstr ""
3033
 
3034
+ #: inc/templates/parts/customize-date.php:55
3035
  msgid "All years"
3036
  msgstr ""
3037
 
3038
+ #: inc/templates/parts/customize-date.php:56
3039
  msgid "Past years only"
3040
  msgstr ""
3041
 
3042
+ #: inc/templates/parts/customize-date.php:57
3043
  msgid "Future years only"
3044
  msgstr ""
3045
 
3046
+ #: inc/templates/parts/customize-date.php:62
3047
  msgid "Start from"
3048
  msgstr ""
3049
 
3050
+ #: inc/templates/parts/customize-date.php:66
3051
  msgid "End at"
3052
  msgstr ""
3053
 
3054
+ #: inc/templates/parts/customize-date.php:71
3055
  msgid "Years order"
3056
  msgstr ""
3057
 
3058
+ #: inc/templates/parts/customize-date.php:79
3059
  msgid "Min hour"
3060
  msgstr ""
3061
 
3062
+ #: inc/templates/parts/customize-date.php:83
3063
  msgid "Max hour"
3064
  msgstr ""
3065
 
3066
+ #: inc/templates/parts/customize-date.php:88
3067
  msgid "Minute step"
3068
  msgstr ""
3069
 
3070
+ #: inc/templates/parts/customize-date.php:92
3071
  msgid "Time format"
3072
  msgstr ""
3073
 
3074
+ #: inc/templates/parts/customize-date.php:94
3075
  msgid "12h"
3076
  msgstr ""
3077
 
3078
+ #: inc/templates/parts/customize-date.php:95
3079
  msgid "24h"
3080
  msgstr ""
3081
 
3087
  msgid "Inside input"
3088
  msgstr ""
3089
 
3090
+ #: inc/templates/parts/customize-email.php:64
3091
+ #: inc/templates/parts/customize-number.php:93
3092
+ #: inc/templates/parts/customize-phone.php:87
3093
  msgid "Require confirmation of the value"
3094
  msgstr ""
3095
 
3096
+ #: inc/templates/parts/customize-email.php:68
3097
+ #: inc/templates/parts/customize-number.php:97
3098
+ #: inc/templates/parts/customize-phone.php:91
3099
  msgid "Confirmation field title"
3100
  msgstr ""
3101
 
3111
  msgid "Each input is required"
3112
  msgstr ""
3113
 
3114
+ #: inc/templates/parts/customize-number.php:40
3115
+ #: inc/templates/parts/customize-scale.php:33
3116
  msgid "Minimum value"
3117
  msgstr ""
3118
 
3119
+ #: inc/templates/parts/customize-number.php:44
3120
+ #: inc/templates/parts/customize-scale.php:37
3121
  msgid "Maximum value"
3122
  msgstr ""
3123
 
3124
+ #: inc/templates/parts/customize-number.php:56
3125
  msgid "Mask this input"
3126
  msgstr ""
3127
 
3128
+ #: inc/templates/parts/customize-number.php:61
3129
  msgid "Thousands delimiter"
3130
  msgstr ""
3131
 
3132
+ #: inc/templates/parts/customize-number.php:65
3133
  msgid "Decimal mark"
3134
  msgstr ""
3135
 
3136
+ #: inc/templates/parts/customize-phone.php:46
 
 
 
 
3137
  msgid "International format"
3138
  msgstr ""
3139
 
3140
+ #: inc/templates/parts/customize-phone.php:51
3141
  msgid "Default phone number region"
3142
  msgstr ""
3143
 
3144
+ #: inc/templates/parts/customize-phone.php:63
3145
  msgid "Allow other regions to be selected"
3146
  msgstr ""
3147
 
3148
+ #: inc/templates/parts/customize-radio.php:84
3149
+ #: inc/templates/parts/customize-select.php:79
3150
  msgid "Make this option default"
3151
  msgstr ""
3152
 
3153
+ #: inc/templates/parts/customize-rating.php:37
3154
  msgid "Rating type"
3155
  msgstr ""
3156
 
3157
+ #: inc/templates/parts/customize-rating.php:39
3158
  msgid "No / Yes"
3159
  msgstr ""
3160
 
3161
+ #: inc/templates/parts/customize-rating.php:40
3162
  msgid "Scale of 1 to 5"
3163
  msgstr ""
3164
 
3165
+ #: inc/templates/parts/customize-rating.php:44
3166
  msgid "Rating visuals"
3167
  msgstr ""
3168
 
3169
+ #: inc/templates/parts/customize-rating.php:46
3170
+ #: inc/templates/parts/frontend-rating-scale.php:12
3171
  msgid "Stars"
3172
  msgstr ""
3173
 
3174
+ #: inc/templates/parts/customize-rating.php:47
3175
  msgid "Smileys"
3176
  msgstr ""
3177
 
3178
+ #: inc/templates/parts/customize-rating.php:48
3179
  msgid "Thumbs"
3180
  msgstr ""
3181
 
3182
+ #: inc/templates/parts/customize-rating.php:54
3183
+ #: inc/templates/parts/customize-rating.php:64
3184
+ msgid "Rating Labels"
3185
+ msgstr ""
3186
+
3187
+ #: inc/templates/parts/customize-scale.php:49
3188
  msgid "Allow range select"
3189
  msgstr ""
3190
 
3191
+ #: inc/templates/parts/customize-scale.php:54
3192
  msgid "Default range from"
3193
  msgstr ""
3194
 
3195
+ #: inc/templates/parts/customize-scale.php:58
3196
  msgid "Default range to"
3197
  msgstr ""
3198
 
3199
+ #: inc/templates/parts/customize-scale.php:68
3200
  msgid "Min value label"
3201
  msgstr ""
3202
 
3203
+ #: inc/templates/parts/customize-scale.php:72
3204
  msgid "Max value label"
3205
  msgstr ""
3206
 
3207
+ #: inc/templates/parts/customize-select.php:42
3208
  msgid "Show all"
3209
  msgstr ""
3210
 
3211
+ #: inc/templates/parts/customize-select.php:42
3212
  msgid "options"
3213
  msgstr ""
3214
 
3215
+ #: inc/templates/parts/customize-select.php:48
3216
  msgid "Make searchable"
3217
  msgstr ""
3218
 
3219
+ #: inc/templates/parts/customize-single-line-text.php:31
3220
+ msgid "Show in a tooltip"
3221
+ msgstr ""
3222
+
3223
+ #: inc/templates/parts/customize-single-line-text.php:46
3224
  msgid "Use value as email subject"
3225
  msgstr ""
3226
 
3227
+ #: inc/templates/parts/customize-table.php:33
3228
  msgid "Each row is required"
3229
  msgstr ""
3230
 
3231
+ #: inc/templates/parts/customize-table.php:38
3232
  msgid "Allow multiple selections"
3233
  msgstr ""
3234
 
3235
+ #: inc/templates/parts/customize-table.php:42
3236
+ #: inc/templates/parts/customize-table.php:49
3237
  msgid "Columns"
3238
  msgstr ""
3239
 
3240
+ #: inc/templates/parts/customize-table.php:43
3241
+ #: inc/templates/parts/customize-table.php:59
3242
  msgid "Rows"
3243
  msgstr ""
3244
 
3245
+ #: inc/templates/parts/customize-table.php:50
3246
  msgid "No columns added yet. Add one by clicking the <i>Add column</i> link below."
3247
  msgstr ""
3248
 
3249
+ #: inc/templates/parts/customize-table.php:53
3250
  msgid "Add column"
3251
  msgstr ""
3252
 
3253
+ #: inc/templates/parts/customize-table.php:60
3254
  msgid "No rows added yet. Add one by clicking the <i>Add row</i> link below."
3255
  msgstr ""
3256
 
3257
+ #: inc/templates/parts/customize-table.php:63
3258
  msgid "Add row"
3259
  msgstr ""
3260
 
3261
+ #: inc/templates/parts/frontend-address.php:34
3262
+ #: inc/templates/parts/frontend-address.php:46
3263
  msgid "Country"
3264
  msgstr ""
3265
 
3266
+ #: inc/templates/parts/frontend-address.php:53
3267
  msgid "City"
3268
  msgstr ""
3269
 
3297
  msgid "PM"
3298
  msgstr ""
3299
 
3300
+ #: inc/templates/parts/frontend-rating-scale.php:17
3301
+ msgid "%d out of %d"
3302
+ msgstr ""
3303
+
3304
+ #: inc/templates/parts/frontend-select.php:23
3305
+ #: inc/templates/parts/frontend-select.php:29
3306
  #: inc/templates/parts/frontend-title.php:21
3307
  #: inc/templates/parts/frontend-title.php:27
3308
  msgid "- Select -"
3309
  msgstr ""
3310
 
3311
+ #: inc/templates/parts/frontend-select.php:53
3312
  #: inc/templates/parts/frontend-title.php:46
3313
  msgid "Select"
3314
  msgstr ""
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: contact, contact form, email, feedback form, form, form builder, custom fo
5
  Requires at least: 4.8
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.2.4
8
- Stable tag: 1.6.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -79,6 +79,17 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
79
 
80
  == Changelog ==
81
 
 
 
 
 
 
 
 
 
 
 
 
82
  = 1.6.3 =
83
  * Improvement: minor rewordings in form Customize screen.
84
  * Bugfix: Date part validation and value storage were misbehaving.
@@ -262,6 +273,9 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
262
 
263
  == Upgrade Notice ==
264
 
 
 
 
265
  = 1.6.3 =
266
  * Bugfixes.
267
 
5
  Requires at least: 4.8
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.2.4
8
+ Stable tag: 1.6.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
79
 
80
  == Changelog ==
81
 
82
+ = 1.6.4 =
83
+ * New feature: Responses can now be tagged with a unique incremental ID (think receipts).
84
+ * New feature: Labels for Rating part options when using Smileys / Thumbs as Rating Visuals.
85
+ * New feature: Reveal description on focus for text input parts.
86
+ * Improvement: Better part title appearance when placement is set to 'Left'.
87
+ * Improvement: Better alignment of Legal part when parts around it use 'Left' setting for Title placement.
88
+ * Improvement: Various improvements in parts UI and CSS.
89
+ * Improvement: Labels and values in email messages can now be filtered.
90
+ * Bugfix: Fixed issue when adding multiple Rating parts to same form only displayed first one.
91
+ * Bugfix: Single and multiple choice, Dropdown and Table parts had issues with validation.
92
+
93
  = 1.6.3 =
94
  * Improvement: minor rewordings in form Customize screen.
95
  * Bugfix: Date part validation and value storage were misbehaving.
273
 
274
  == Upgrade Notice ==
275
 
276
+ = 1.6.4 =
277
+ * Response unique IDs, Rating labels, part display improvements, new email filters, bugfixes.
278
+
279
  = 1.6.3 =
280
  * Bugfixes.
281