Contact Form by WPForms – Drag & Drop Form Builder for WordPress - Version 1.4.4

Version Description

  • Added: Advanced setting for Multiple Choice and Checkbox fields to randomize choices
  • Changed: Admin menu icons now uses SVG instead of custom font icon
  • Changed: Reviewed all translatable strings, improved escaping and formatting
  • Changed: External links have rel="noopener noreferrer" improve security
  • Changed: Permission check centralized into a single function (wpforms_current_user_can())
  • Changed: Required label field text centralized into a single function (wpforms_get_required_label())
  • Fixed: Typo in German translation
  • Fixed: Required email provider connection fields not highlighting when left empty
  • Fixed: Inside form builder, notification name area breaking into multiple lines on smaller screens
Download this release

Release Info

Developer jaredatch
Plugin Icon 128x128 Contact Form by WPForms – Drag & Drop Form Builder for WordPress
Version 1.4.4
Comparing to
See all releases

Code changes from version 1.4.3 to 1.4.4

Files changed (78) hide show
  1. assets/css/admin-builder-settings.css +2 -1
  2. assets/css/admin-builder.css +1 -1
  3. assets/css/admin.css +1 -1
  4. assets/css/wpforms-base.css +37 -0
  5. assets/css/wpforms-full.css +64 -0
  6. assets/fonts/wpforms-menu.eot +0 -0
  7. assets/fonts/wpforms-menu.svg +0 -11
  8. assets/fonts/wpforms-menu.ttf +0 -0
  9. assets/fonts/wpforms-menu.woff +0 -0
  10. assets/js/admin-builder-conditional-logic-core.js +8 -2
  11. assets/js/admin-builder-conditional-logic-core.min.js +0 -1
  12. assets/js/admin-builder.js +68 -0
  13. assets/js/admin.min.js +1 -1
  14. assets/js/wpforms.js +88 -13
  15. changelog.txt +11 -0
  16. includes/admin/admin.php +96 -56
  17. includes/admin/ajax-actions.php +14 -14
  18. includes/admin/builder/class-builder.php +121 -118
  19. includes/admin/builder/functions.php +20 -20
  20. includes/admin/builder/panels/class-base.php +50 -43
  21. includes/admin/builder/panels/class-fields.php +78 -57
  22. includes/admin/builder/panels/class-providers.php +42 -18
  23. includes/admin/builder/panels/class-settings.php +48 -37
  24. includes/admin/builder/panels/class-setup.php +90 -47
  25. includes/admin/class-am-deactivation-survey.php +201 -141
  26. includes/admin/class-am-notification.php +72 -67
  27. includes/admin/class-editor.php +74 -41
  28. includes/admin/class-importers.php +1 -0
  29. includes/admin/class-menu.php +26 -70
  30. includes/admin/class-notices.php +8 -11
  31. includes/admin/class-review.php +61 -40
  32. includes/admin/class-settings.php +217 -167
  33. includes/admin/class-tools.php +108 -63
  34. includes/admin/class-welcome.php +77 -55
  35. includes/admin/importers/class-base.php +1 -1
  36. includes/admin/importers/class-contact-form-7.php +16 -14
  37. includes/admin/importers/class-ninja-forms.php +17 -15
  38. includes/admin/overview/class-overview-table.php +81 -74
  39. includes/admin/overview/class-overview.php +16 -10
  40. includes/admin/settings-api.php +91 -34
  41. includes/class-conditional-logic-core.php +54 -44
  42. includes/class-fields.php +1 -0
  43. includes/class-form.php +17 -17
  44. includes/class-frontend.php +20 -12
  45. includes/class-logging.php +3 -3
  46. includes/class-preview.php +35 -33
  47. includes/class-process.php +16 -15
  48. includes/class-providers.php +5 -2
  49. includes/class-smart-tags.php +21 -21
  50. includes/class-templates.php +2 -0
  51. includes/class-widget.php +8 -8
  52. includes/emails/class-emails.php +45 -28
  53. includes/emails/templates/footer-default.php +1 -1
  54. includes/emails/templates/header-default.php +8 -8
  55. includes/fields/class-base.php +65 -55
  56. includes/fields/class-checkbox.php +31 -9
  57. includes/fields/class-email.php +7 -7
  58. includes/fields/class-name.php +22 -22
  59. includes/fields/class-number.php +3 -3
  60. includes/fields/class-radio.php +34 -11
  61. includes/fields/class-select.php +7 -7
  62. includes/fields/class-text.php +1 -1
  63. includes/fields/class-textarea.php +1 -1
  64. includes/functions.php +112 -51
  65. includes/integrations.php +15 -15
  66. includes/providers/class-base.php +118 -90
  67. includes/providers/class-constant-contact.php +192 -135
  68. includes/templates/class-base.php +6 -6
  69. includes/templates/class-blank.php +3 -3
  70. includes/templates/class-contact.php +6 -6
  71. includes/templates/class-subscribe.php +8 -8
  72. includes/templates/class-suggestion.php +13 -13
  73. languages/wpforms-de_DE.mo +0 -0
  74. languages/wpforms-de_DE.po +1907 -266
  75. languages/wpforms-fr_FR.mo +0 -0
  76. languages/wpforms-fr_FR.po +5848 -1225
  77. languages/wpforms-ru_RU.mo +0 -0
  78. languages/wpforms-ru_RU.po +1928 -390
assets/css/admin-builder-settings.css CHANGED
@@ -1 +1,2 @@
1
- body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification{border:1px solid #d3d3d3;margin:0 0 20px 0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification .wpforms-panel-field{padding:0 20px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header{background-color:#f1f1f1;padding:10px 20px;font-size:16px;margin:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-edit{display:none;margin-top:-6px;margin-bottom:-6px;width:410px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-edit.active{display:inline-block}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-edit input{width:100%}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions{display:inline-block;float:right}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button{-webkit-appearance:none;background-color:transparent;border:none;color:inherit;cursor:pointer;font-size:16px;line-height:1}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button.wpforms-notification-delete{color:#d22222;padding-right:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-content{margin-top:20px}
 
1
+ body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification{border:1px solid #d3d3d3;margin:0 0 20px 0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification .wpforms-panel-field{padding:0 20px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header{background-color:#f1f1f1;padding:10px 20px;font-size:16px;margin:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder{display:block;margin-right:100px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit{display:none;margin-top:-6px;margin-bottom:-6px;width:100%}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit.active{display:inline-block}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-name-holder .wpforms-notification-name-edit input{width:100%}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions{display:inline-block;float:right;text-align:right;width:100px}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button{-webkit-appearance:none;background-color:transparent;border:none;color:inherit;cursor:pointer;font-size:16px;line-height:1}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header .wpforms-notification-actions button.wpforms-notification-delete{color:#d22222;padding-right:0}#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-content{margin-top:20px}
2
+
assets/css/admin-builder.css CHANGED
@@ -102,7 +102,7 @@ body {
102
  }
103
 
104
  #wpforms-builder input.wpforms-error{
105
- border: 1px solid #ebccd1;
106
  }
107
 
108
  #wpforms-builder .wpforms-loading-inline {
102
  }
103
 
104
  #wpforms-builder input.wpforms-error{
105
+ border: 1px solid #ebccd1 !important;
106
  }
107
 
108
  #wpforms-builder .wpforms-loading-inline {
assets/css/admin.css CHANGED
@@ -1,2 +1,2 @@
1
- .choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#EAEAEA;cursor:not-allowed;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{padding-bottom:3.0px}.choices[data-type*="select-one"] .choices__input{display:block;width:100% !important;padding:10px !important;border-bottom:1px solid #ddd !important;background-color:#FFFFFF;margin:0 !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;height:100%;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0px 0px 0px 2px #0e6cad}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:18px;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:relative;display:inline-block;margin-top:0;margin-right:-4px;margin-bottom:0;margin-left:8px;padding-left:16px;border-left:1px solid #0a4f7e;background-image:url("../images/cross.svg");background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#fff;padding:4px 7.5px 1px;border:1px solid #ddd;border-radius:3px;font-size:14px;min-height:35px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:3px 3px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 3px 3px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir="rtl"] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:500;margin-right:4px;margin-top:0px;margin-bottom:3px;background-color:#0e6cad;border:1px solid #0c5d95;color:#FFFFFF;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir="rtl"] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#0c5d95;border:1px solid #0a4f7e}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir="rtl"] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir="rtl"] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir="rtl"] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline !important;background-color:#f9f9f9;font-size:14px;margin:0 !important;border:0 !important;border-radius:0 !important;max-width:100%;min-height:0 !important;width:auto !important;padding:4px 0 4px 2px !important}.choices__input:focus{outline:0}[dir="rtl"] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.wpforms-admin-page .wpforms-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}.wpforms-admin-page .wpforms-btn-block{display:block}.wpforms-admin-page .wpforms-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#fff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#b85a1b;border-color:#b85a1b}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#eee;color:#444}.wpforms-admin-page .wpforms-btn-trans-green{background-color:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}.wpforms-flag{width:16px;height:16px;background:url(../../images/flags.png) no-repeat;display:inline-block}.wpforms-flag.wpforms-flag-ad{background-position:-16px 0}.wpforms-flag.wpforms-flag-ae{background-position:-32px 0}.wpforms-flag.wpforms-flag-af{background-position:-48px 0}.wpforms-flag.wpforms-flag-ag{background-position:-64px 0}.wpforms-flag.wpforms-flag-ai{background-position:-80px 0}.wpforms-flag.wpforms-flag-al{background-position:-96px 0}.wpforms-flag.wpforms-flag-am{background-position:-112px 0}.wpforms-flag.wpforms-flag-an{background-position:-128px 0}.wpforms-flag.wpforms-flag-ao{background-position:-144px 0}.wpforms-flag.wpforms-flag-ar{background-position:-160px 0}.wpforms-flag.wpforms-flag-as{background-position:-176px 0}.wpforms-flag.wpforms-flag-at{background-position:-192px 0}.wpforms-flag.wpforms-flag-au{background-position:-208px 0}.wpforms-flag.wpforms-flag-aw{background-position:-224px 0}.wpforms-flag.wpforms-flag-az{background-position:0 -16px}.wpforms-flag.wpforms-flag-ba{background-position:-16px -16px}.wpforms-flag.wpforms-flag-bb{background-position:-32px -16px}.wpforms-flag.wpforms-flag-bd{background-position:-48px -16px}.wpforms-flag.wpforms-flag-be{background-position:-64px -16px}.wpforms-flag.wpforms-flag-bf{background-position:-80px -16px}.wpforms-flag.wpforms-flag-bg{background-position:-96px -16px}.wpforms-flag.wpforms-flag-bh{background-position:-112px -16px}.wpforms-flag.wpforms-flag-bi{background-position:-128px -16px}.wpforms-flag.wpforms-flag-bj{background-position:-144px -16px}.wpforms-flag.wpforms-flag-bm{background-position:-160px -16px}.wpforms-flag.wpforms-flag-bn{background-position:-176px -16px}.wpforms-flag.wpforms-flag-bo{background-position:-192px -16px}.wpforms-flag.wpforms-flag-br{background-position:-208px -16px}.wpforms-flag.wpforms-flag-bs{background-position:-224px -16px}.wpforms-flag.wpforms-flag-bt{background-position:0 -32px}.wpforms-flag.wpforms-flag-bw{background-position:-16px -32px}.wpforms-flag.wpforms-flag-by{background-position:-32px -32px}.wpforms-flag.wpforms-flag-bz{background-position:-48px -32px}.wpforms-flag.wpforms-flag-ca{background-position:-64px -32px}.wpforms-flag.wpforms-flag-cd{background-position:-80px -32px}.wpforms-flag.wpforms-flag-cf{background-position:-96px -32px}.wpforms-flag.wpforms-flag-cg{background-position:-112px -32px}.wpforms-flag.wpforms-flag-ch{background-position:-128px -32px}.wpforms-flag.wpforms-flag-ci{background-position:-144px -32px}.wpforms-flag.wpforms-flag-ck{background-position:-160px -32px}.wpforms-flag.wpforms-flag-cl{background-position:-176px -32px}.wpforms-flag.wpforms-flag-cm{background-position:-192px -32px}.wpforms-flag.wpforms-flag-cn{background-position:-208px -32px}.wpforms-flag.wpforms-flag-co{background-position:-224px -32px}.wpforms-flag.wpforms-flag-cr{background-position:0 -48px}.wpforms-flag.wpforms-flag-cu{background-position:-16px -48px}.wpforms-flag.wpforms-flag-cv{background-position:-32px -48px}.wpforms-flag.wpforms-flag-cy{background-position:-48px -48px}.wpforms-flag.wpforms-flag-cz{background-position:-64px -48px}.wpforms-flag.wpforms-flag-de{background-position:-80px -48px}.wpforms-flag.wpforms-flag-dj{background-position:-96px -48px}.wpforms-flag.wpforms-flag-dk{background-position:-112px -48px}.wpforms-flag.wpforms-flag-dm{background-position:-128px -48px}.wpforms-flag.wpforms-flag-do{background-position:-144px -48px}.wpforms-flag.wpforms-flag-dz{background-position:-160px -48px}.wpforms-flag.wpforms-flag-ec{background-position:-176px -48px}.wpforms-flag.wpforms-flag-ee{background-position:-192px -48px}.wpforms-flag.wpforms-flag-eg{background-position:-208px -48px}.wpforms-flag.wpforms-flag-eh{background-position:-224px -48px}.wpforms-flag.wpforms-flag-er{background-position:0 -64px}.wpforms-flag.wpforms-flag-es{background-position:-16px -64px}.wpforms-flag.wpforms-flag-et{background-position:-32px -64px}.wpforms-flag.wpforms-flag-fi{background-position:-48px -64px}.wpforms-flag.wpforms-flag-fj{background-position:-64px -64px}.wpforms-flag.wpforms-flag-fm{background-position:-80px -64px}.wpforms-flag.wpforms-flag-fo{background-position:-96px -64px}.wpforms-flag.wpforms-flag-fr{background-position:-112px -64px}.wpforms-flag.wpforms-flag-ga{background-position:-128px -64px}.wpforms-flag.wpforms-flag-gb{background-position:-144px -64px}.wpforms-flag.wpforms-flag-gd{background-position:-160px -64px}.wpforms-flag.wpforms-flag-ge{background-position:-176px -64px}.wpforms-flag.wpforms-flag-gg{background-position:-192px -64px}.wpforms-flag.wpforms-flag-gh{background-position:-208px -64px}.wpforms-flag.wpforms-flag-gi{background-position:-224px -64px}.wpforms-flag.wpforms-flag-gl{background-position:0 -80px}.wpforms-flag.wpforms-flag-gm{background-position:-16px -80px}.wpforms-flag.wpforms-flag-gn{background-position:-32px -80px}.wpforms-flag.wpforms-flag-gp{background-position:-48px -80px}.wpforms-flag.wpforms-flag-gq{background-position:-64px -80px}.wpforms-flag.wpforms-flag-gr{background-position:-80px -80px}.wpforms-flag.wpforms-flag-gt{background-position:-96px -80px}.wpforms-flag.wpforms-flag-gu{background-position:-112px -80px}.wpforms-flag.wpforms-flag-gw{background-position:-128px -80px}.wpforms-flag.wpforms-flag-gy{background-position:-144px -80px}.wpforms-flag.wpforms-flag-hk{background-position:-160px -80px}.wpforms-flag.wpforms-flag-hn{background-position:-176px -80px}.wpforms-flag.wpforms-flag-hr{background-position:-192px -80px}.wpforms-flag.wpforms-flag-ht{background-position:-208px -80px}.wpforms-flag.wpforms-flag-hu{background-position:-224px -80px}.wpforms-flag.wpforms-flag-id{background-position:0 -96px}.wpforms-flag.wpforms-flag-ie{background-position:-16px -96px}.wpforms-flag.wpforms-flag-il{background-position:-32px -96px}.wpforms-flag.wpforms-flag-im{background-position:-48px -96px}.wpforms-flag.wpforms-flag-in{background-position:-64px -96px}.wpforms-flag.wpforms-flag-iq{background-position:-80px -96px}.wpforms-flag.wpforms-flag-ir{background-position:-96px -96px}.wpforms-flag.wpforms-flag-is{background-position:-112px -96px}.wpforms-flag.wpforms-flag-it{background-position:-128px -96px}.wpforms-flag.wpforms-flag-je{background-position:-144px -96px}.wpforms-flag.wpforms-flag-jm{background-position:-160px -96px}.wpforms-flag.wpforms-flag-jo{background-position:-176px -96px}.wpforms-flag.wpforms-flag-jp{background-position:-192px -96px}.wpforms-flag.wpforms-flag-ke{background-position:-208px -96px}.wpforms-flag.wpforms-flag-kg{background-position:-224px -96px}.wpforms-flag.wpforms-flag-kh{background-position:0 -112px}.wpforms-flag.wpforms-flag-ki{background-position:-16px -112px}.wpforms-flag.wpforms-flag-km{background-position:-32px -112px}.wpforms-flag.wpforms-flag-kn{background-position:-48px -112px}.wpforms-flag.wpforms-flag-kp{background-position:-64px -112px}.wpforms-flag.wpforms-flag-kr{background-position:-80px -112px}.wpforms-flag.wpforms-flag-kw{background-position:-96px -112px}.wpforms-flag.wpforms-flag-ky{background-position:-112px -112px}.wpforms-flag.wpforms-flag-kz{background-position:-128px -112px}.wpforms-flag.wpforms-flag-la{background-position:-144px -112px}.wpforms-flag.wpforms-flag-lb{background-position:-160px -112px}.wpforms-flag.wpforms-flag-lc{background-position:-176px -112px}.wpforms-flag.wpforms-flag-li{background-position:-192px -112px}.wpforms-flag.wpforms-flag-lk{background-position:-208px -112px}.wpforms-flag.wpforms-flag-lr{background-position:-224px -112px}.wpforms-flag.wpforms-flag-ls{background-position:0 -128px}.wpforms-flag.wpforms-flag-lt{background-position:-16px -128px}.wpforms-flag.wpforms-flag-lu{background-position:-32px -128px}.wpforms-flag.wpforms-flag-lv{background-position:-48px -128px}.wpforms-flag.wpforms-flag-ly{background-position:-64px -128px}.wpforms-flag.wpforms-flag-ma{background-position:-80px -128px}.wpforms-flag.wpforms-flag-mc{background-position:-96px -128px}.wpforms-flag.wpforms-flag-md{background-position:-112px -128px}.wpforms-flag.wpforms-flag-me{background-position:-128px -128px}.wpforms-flag.wpforms-flag-mg{background-position:-144px -128px}.wpforms-flag.wpforms-flag-mh{background-position:-160px -128px}.wpforms-flag.wpforms-flag-mk{background-position:-176px -128px}.wpforms-flag.wpforms-flag-ml{background-position:-192px -128px}.wpforms-flag.wpforms-flag-mm{background-position:-208px -128px}.wpforms-flag.wpforms-flag-mn{background-position:-224px -128px}.wpforms-flag.wpforms-flag-mo{background-position:0 -144px}.wpforms-flag.wpforms-flag-mq{background-position:-16px -144px}.wpforms-flag.wpforms-flag-mr{background-position:-32px -144px}.wpforms-flag.wpforms-flag-ms{background-position:-48px -144px}.wpforms-flag.wpforms-flag-mt{background-position:-64px -144px}.wpforms-flag.wpforms-flag-mu{background-position:-80px -144px}.wpforms-flag.wpforms-flag-mv{background-position:-96px -144px}.wpforms-flag.wpforms-flag-mw{background-position:-112px -144px}.wpforms-flag.wpforms-flag-mx{background-position:-128px -144px}.wpforms-flag.wpforms-flag-my{background-position:-144px -144px}.wpforms-flag.wpforms-flag-mz{background-position:-160px -144px}.wpforms-flag.wpforms-flag-na{background-position:-176px -144px}.wpforms-flag.wpforms-flag-nc{background-position:-192px -144px}.wpforms-flag.wpforms-flag-ne{background-position:-208px -144px}.wpforms-flag.wpforms-flag-ng{background-position:-224px -144px}.wpforms-flag.wpforms-flag-ni{background-position:0 -160px}.wpforms-flag.wpforms-flag-nl{background-position:-16px -160px}.wpforms-flag.wpforms-flag-no{background-position:-32px -160px}.wpforms-flag.wpforms-flag-np{background-position:-48px -160px}.wpforms-flag.wpforms-flag-nr{background-position:-64px -160px}.wpforms-flag.wpforms-flag-nz{background-position:-80px -160px}.wpforms-flag.wpforms-flag-om{background-position:-96px -160px}.wpforms-flag.wpforms-flag-pa{background-position:-112px -160px}.wpforms-flag.wpforms-flag-pe{background-position:-128px -160px}.wpforms-flag.wpforms-flag-pf{background-position:-144px -160px}.wpforms-flag.wpforms-flag-pg{background-position:-160px -160px}.wpforms-flag.wpforms-flag-ph{background-position:-176px -160px}.wpforms-flag.wpforms-flag-pk{background-position:-192px -160px}.wpforms-flag.wpforms-flag-pl{background-position:-208px -160px}.wpforms-flag.wpforms-flag-pr{background-position:-224px -160px}.wpforms-flag.wpforms-flag-ps{background-position:0 -176px}.wpforms-flag.wpforms-flag-pt{background-position:-16px -176px}.wpforms-flag.wpforms-flag-pw{background-position:-32px -176px}.wpforms-flag.wpforms-flag-py{background-position:-48px -176px}.wpforms-flag.wpforms-flag-qa{background-position:-64px -176px}.wpforms-flag.wpforms-flag-re{background-position:-80px -176px}.wpforms-flag.wpforms-flag-ro{background-position:-96px -176px}.wpforms-flag.wpforms-flag-rs{background-position:-112px -176px}.wpforms-flag.wpforms-flag-ru{background-position:-128px -176px}.wpforms-flag.wpforms-flag-rw{background-position:-144px -176px}.wpforms-flag.wpforms-flag-sa{background-position:-160px -176px}.wpforms-flag.wpforms-flag-sb{background-position:-176px -176px}.wpforms-flag.wpforms-flag-sc{background-position:-192px -176px}.wpforms-flag.wpforms-flag-sd{background-position:-208px -176px}.wpforms-flag.wpforms-flag-se{background-position:-224px -176px}.wpforms-flag.wpforms-flag-sg{background-position:0 -192px}.wpforms-flag.wpforms-flag-si{background-position:-16px -192px}.wpforms-flag.wpforms-flag-sk{background-position:-32px -192px}.wpforms-flag.wpforms-flag-sl{background-position:-48px -192px}.wpforms-flag.wpforms-flag-sm{background-position:-64px -192px}.wpforms-flag.wpforms-flag-sn{background-position:-80px -192px}.wpforms-flag.wpforms-flag-so{background-position:-96px -192px}.wpforms-flag.wpforms-flag-sr{background-position:-112px -192px}.wpforms-flag.wpforms-flag-st{background-position:-128px -192px}.wpforms-flag.wpforms-flag-sv{background-position:-144px -192px}.wpforms-flag.wpforms-flag-sy{background-position:-160px -192px}.wpforms-flag.wpforms-flag-sz{background-position:-176px -192px}.wpforms-flag.wpforms-flag-tc{background-position:-192px -192px}.wpforms-flag.wpforms-flag-td{background-position:-208px -192px}.wpforms-flag.wpforms-flag-tg{background-position:-224px -192px}.wpforms-flag.wpforms-flag-th{background-position:0 -208px}.wpforms-flag.wpforms-flag-tj{background-position:-16px -208px}.wpforms-flag.wpforms-flag-tl{background-position:-32px -208px}.wpforms-flag.wpforms-flag-tm{background-position:-48px -208px}.wpforms-flag.wpforms-flag-tn{background-position:-64px -208px}.wpforms-flag.wpforms-flag-to{background-position:-80px -208px}.wpforms-flag.wpforms-flag-tr{background-position:-96px -208px}.wpforms-flag.wpforms-flag-tt{background-position:-112px -208px}.wpforms-flag.wpforms-flag-tv{background-position:-128px -208px}.wpforms-flag.wpforms-flag-tw{background-position:-144px -208px}.wpforms-flag.wpforms-flag-tz{background-position:-160px -208px}.wpforms-flag.wpforms-flag-ua{background-position:-176px -208px}.wpforms-flag.wpforms-flag-ug{background-position:-192px -208px}.wpforms-flag.wpforms-flag-us{background-position:-208px -208px}.wpforms-flag.wpforms-flag-uy{background-position:-224px -208px}.wpforms-flag.wpforms-flag-uz{background-position:0 -224px}.wpforms-flag.wpforms-flag-va{background-position:-16px -224px}.wpforms-flag.wpforms-flag-vc{background-position:-32px -224px}.wpforms-flag.wpforms-flag-ve{background-position:-48px -224px}.wpforms-flag.wpforms-flag-vg{background-position:-64px -224px}.wpforms-flag.wpforms-flag-vi{background-position:-80px -224px}.wpforms-flag.wpforms-flag-vn{background-position:-96px -224px}.wpforms-flag.wpforms-flag-vu{background-position:-112px -224px}.wpforms-flag.wpforms-flag-ws{background-position:-128px -224px}.wpforms-flag.wpforms-flag-ye{background-position:-144px -224px}.wpforms-flag.wpforms-flag-za{background-position:-160px -224px}.wpforms-flag.wpforms-flag-zm{background-position:-176px -224px}.wpforms-flag.wpforms-flag-zw{background-position:-192px -224px}#wpforms-header-temp{position:relative;margin:0;position:absolute;top:-1px;left:20px;right:20px;z-index:99}#wpforms-header{border-top:3px solid #e27730;padding:22px 20px}#wpforms-header img{display:block;margin:0;max-width:235px}@media (max-width: 782px){#wpforms-header img{max-width:200px}}.wpforms-admin-wrap .page-title{background-color:#fff;margin:0 0 20px 0;padding:15px 20px}.wpforms-admin-wrap .page-title .add-new-h2{margin-left:28px}.wpforms-admin-tabs{background-color:#fff;margin:0 0 20px 0;padding:0 20px;list-style:none;overflow:auto;font-size:14px}.wpforms-admin-tabs li{margin:0 30px 0 0;padding:0;float:left}.wpforms-admin-tabs li:last-of-type{margin:0}.wpforms-admin-tabs li a{color:#666;display:block;padding:20px 0 18px 0;text-decoration:none;border-bottom:2px solid #fff;box-shadow:none}.wpforms-admin-tabs li a:hover{border-color:#999}.wpforms-admin-tabs li a.active{border-color:#e27730}#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}.wpforms-admin-page #screen-meta-links,.wpforms-admin-page #screen-meta{display:none}.wpforms-admin-page .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.wpforms-admin-page .video-container iframe,.wpforms-admin-page .video-container object,.wpforms-admin-page .video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.wpforms-admin-page .wpforms-file-upload input[type=file]{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.wpforms-admin-page .wpforms-file-upload label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden;padding:0}.wpforms-admin-page .wpforms-file-upload input[type=file]:focus+label,.wpforms-admin-page .wpforms-file-upload input[type=file].has-focus+label{outline:1px dotted #000;outline:-webkit-focus-ring-color auto 5px}.wpforms-admin-page .wpforms-file-upload .fld{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}.wpforms-admin-page .wpforms-file-upload .fld .placeholder{color:#ccc}.wpforms-admin-page .wpforms-file-upload strong .fa{margin-right:8px}.wpforms-admin-page .wpforms-hide{display:none}.wpforms-admin-page .wpforms-h1-placeholder{display:none}.wpforms-admin-page .notice{display:none}.wpforms-admin-wrap{margin:0}.wpforms-admin-wrap .notice{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-content{padding-left:20px;padding-right:20px}.wpforms-admin-content:before{content:" ";display:table}.wpforms-admin-content:after{clear:both;content:" ";display:table}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}#wpforms-overview .tablenav.top{margin-top:0}#wpforms-overview .wp-list-table .column-id{width:30px}#wpforms-overview .wp-list-table .column-entries{width:70px}#wpforms-overview .wp-list-table .column-shortcode{width:150px}#wpforms-overview .wp-list-table .column-created{width:145px}#wpforms-entries-single #poststuff{padding:0}#wpforms-entries-single .postbox .hndle{cursor:default !important}#wpforms-entries-single .wpforms-entry-navigation{font-size:13px;line-height:29px;float:right;position:relative;padding-top:2px}@media (max-width: 600px){#wpforms-entries-single .wpforms-entry-navigation{display:none}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{top:auto;margin:0;padding:4px 0px;text-align:center}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2 .dashicons{font-size:16px;height:auto;width:28px;line-height:29px}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2.inactive{opacity:0.5;pointer-events:none;cursor:default}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-navigation-text{display:inline-block;margin-right:10px}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-current{top:auto;margin:0;text-align:center;padding:4px 10px;position:relative;text-decoration:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#fff;font-size:13px;line-height:29px;text-transform:center}#wpforms-entries-single #wpforms-entry-fields h2.hndle{font-size:18px}#wpforms-entries-single #wpforms-entry-fields h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#wpforms-entries-single #wpforms-entry-fields .no-fields{padding:12px;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside p{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-name{font-weight:600;background:#ebf3fb;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-value{background:#fff;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .empty .wpforms-entry-field-value{font-style:italic;color:#999}#wpforms-entries-single #wpforms-entry-fields .wpforms-empty-field-toggle{float:right;text-decoration:none;padding:5px 0 0}#wpforms-entries-single #wpforms-entry-notes .inside{margin:0;padding:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-new{padding:10px}#wpforms-entries-single #wpforms-entry-notes form{display:none}#wpforms-entries-single #wpforms-entry-notes .btns{overflow:auto;padding:8px 0}#wpforms-entries-single #wpforms-entry-notes .no-notes{margin:0;padding:4px 10px 8px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single{padding:10px;border-top:1px solid #e3e1e3}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single p:last-of-type{margin-bottom:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single.even{background-color:#f9f9f9}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline{color:#888;margin-bottom:10px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .sep{color:#ddd}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .notes-user{text-decoration:none;font-weight:600}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete{color:#a00;text-decoration:none}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover{color:red;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .inside,#wpforms-entries-single #wpforms-entry-payment .inside,#wpforms-entries-single #wpforms-entry-actions .inside{margin:0;padding:0}#wpforms-entries-single .wpforms-entry-details-meta,#wpforms-entries-single .wpforms-entry-actions-meta{padding:6px 0 0}#wpforms-entries-single .wpforms-entry-details-meta p,#wpforms-entries-single .wpforms-entry-payment-meta p,#wpforms-entries-single .wpforms-entry-actions-meta p{padding:6px 10px 8px;margin:0}#wpforms-entries-single .wpforms-entry-payment-meta{padding:0}#wpforms-entries-single .wpforms-entry-payment-meta p{border-bottom:1px solid #eee;padding:10px}#wpforms-entries-single .wpforms-entry-payment-meta p:last-of-type{border-bottom:0}#wpforms-entries-single .wpforms-entry-details-meta strong,#wpforms-entries-single .wpforms-entry-actions-meta strong{font-weight:600}#wpforms-entries-single .wpforms-entry-details-meta .dashicons,#wpforms-entries-single .wpforms-entry-actions-meta .dashicons{padding:0 2px 0 0;color:#82878A;top:-1px;left:-1px;position:relative;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .submitdelete{color:#a00;text-decoration:none;padding:1px 2px}#wpforms-entries-single #wpforms-entry-details .submitdelete:hover{color:red}#wpforms-entries-single .wpforms-entry-actions-meta a{text-decoration:none}#wpforms-entries-single .wpforms-entry-actions-meta a:hover{text-decoration:underline}#wpforms-entries-single #wpforms-entry-geolocation .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul{margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul li{border-bottom:1px solid #eee;margin:0;overflow:auto}#wpforms-entries-single #wpforms-entry-geolocation ul li:last-of-type{border-bottom:0}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-meta{width:85px;float:left;border-right:1px solid #eee;padding:10px 20px 10px 12px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-value{display:inline-block;padding:10px 12px 10px 20px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-flag{vertical-align:text-top;margin-right:4px}#wpforms-entries-list .form-details{border-bottom:1px solid #ddd;padding-bottom:15px;margin:0 0 10px}#wpforms-entries-list .form-details .form-details-sub{color:#999;display:block;font-size:10px;text-transform:uppercase;margin:0 0 8px 0}#wpforms-entries-list .form-details .form-details-title{float:left;font-size:18px;font-weight:400;margin:0}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-title{float:none;margin-bottom:10px}}#wpforms-entries-list .form-details .form-selector{display:inline-block;position:relative}#wpforms-entries-list .form-details .form-selector .toggle{border-radius:50%;color:#444;font-size:16px;box-shadow:none}#wpforms-entries-list .form-details .form-selector .toggle:hover,#wpforms-entries-list .form-details .form-selector .toggle.active{background-color:#e3e3e3;outline:none}#wpforms-entries-list .form-details .form-selector .toggle:before{vertical-align:middle}#wpforms-entries-list .form-details .form-selector .form-list{display:none;background:#fff;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);position:absolute;top:27px;left:-108px;width:230px;padding:10px 0;z-index:9991}#wpforms-entries-list .form-details .form-selector .form-list:before{content:" ";position:absolute;top:-10px;left:110px;width:0;height:0;border-style:solid;border-width:0 8px 10px 8px;border-color:transparent transparent #fff transparent}#wpforms-entries-list .form-details .form-selector ul{max-height:196px;overflow-x:hidden;padding:0;margin:0}#wpforms-entries-list .form-details .form-selector ul li{list-style:none;margin:0;font-size:13px}#wpforms-entries-list .form-details .form-selector ul li a{display:block;text-decoration:none;padding:5px 15px;color:#444}#wpforms-entries-list .form-details .form-selector ul li a:hover{background-color:#f7f7f7}#wpforms-entries-list .form-details .form-details-actions{float:right}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-actions{float:none}}#wpforms-entries-list .form-details .form-details-actions a{text-decoration:none;display:inline-block;margin:0 12px 0 0}#wpforms-entries-list .form-details .form-details-actions a:last-of-type{margin:0}#wpforms-entries-list .form-details .form-details-actions a .dashicons{width:16px;height:16px;font-size:16px}#wpforms-entries-list .wp-list-table .column-indicators{width:35px;text-align:center}#wpforms-entries-list .wp-list-table .column-indicators a:focus{-webkit-box-shadow:none;box-shadow:none}#wpforms-entries-list .wp-list-table .column-indicators .dashicons{width:14px;height:14px;font-size:14px;margin-top:3px}#wpforms-entries-list .wp-list-table .indicator-star .dashicons{margin-right:6px}#wpforms-entries-list .wp-list-table .indicator-star{color:#e4e4e4}#wpforms-entries-list .wp-list-table .indicator-star:hover,#wpforms-entries-list .wp-list-table .indicator-star.unstar{color:#e27730}#wpforms-entries-list .wp-list-table .indicator-read{color:#9ede84}#wpforms-entries-list .wp-list-table .indicator-read:hover,#wpforms-entries-list .wp-list-table .indicator-read.unread{color:#e4e4e4}#wpforms-entries-list .wp-list-table .column-date{width:150px}#wpforms-entries-list .wp-list-table .column-status{width:120px}#wpforms-entries-list .wp-list-table .column-status img{display:inline-block;height:12px;width:auto;margin:0 0 0 3px}#wpforms-entries-list .wp-list-table .column-payment_total{width:100px}#wpforms-entries-list .wp-list-table .column-actions{width:100px}#wpforms-entries-list .wp-list-table .sep{color:#ddd}#wpforms-entries-list .wp-list-table .delete:hover{color:red}#wpforms-entries-list #wpforms-entries-table-edit-columns{float:right;color:#ccc}#wpforms-entries-list #wpforms-entries-table-edit-columns:hover{color:#666}#wpforms-welcome{border-top:3px solid #e27730;color:#555;padding-top:110px}@media (max-width: 767px){#wpforms-welcome{padding-top:64px}}#wpforms-welcome *,#wpforms-welcome *::before,#wpforms-welcome *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-welcome .container{margin:0 auto;max-width:720px;padding:0}#wpforms-welcome .block{padding:40px}@media (max-width: 767px){#wpforms-welcome .block{padding:20px}}#wpforms-welcome img{max-width:100%;height:auto}#wpforms-welcome h1{color:#222;font-size:24px;text-align:center;margin:0 0 16px 0}#wpforms-welcome h5{color:#222;font-size:16px;margin:0 0 8px 0}#wpforms-welcome h6{font-size:16px;font-weight:400;line-height:1.6;text-align:center;margin:0}#wpforms-welcome p{font-size:14px;margin:0 0 20px 0}#wpforms-welcome .button-wrap{max-width:590px;margin:0 auto 0 auto}#wpforms-welcome .button-wrap .left{float:left;width:50%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .left{float:none;width:100%;padding:0;margin-bottom:20px}}#wpforms-welcome .button-wrap .right{float:right;width:50%;padding-left:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .right{float:none;width:100%;padding:0}}#wpforms-welcome .intro{background-color:#fff;border:2px solid #e1e1e1;border-radius:2px;margin-bottom:30px;position:relative;padding-top:40px}#wpforms-welcome .intro .sullie{background-color:#fff;border:2px solid #e1e1e1;border-radius:50%;height:110px;width:110px;padding:18px 14px 0 14px;position:absolute;top:-58px;left:50%;margin-left:-55px}#wpforms-welcome .intro .video-thumbnail{display:block;margin:0 auto}#wpforms-welcome .intro .button-wrap{margin-top:25px}#wpforms-welcome .features{background-color:#fff;border:2px solid #e1e1e1;border-bottom:0;border-radius:2px 2px 0 0;position:relative;padding-top:20px;padding-bottom:20px}#wpforms-welcome .features .feature-list{margin-top:60px}#wpforms-welcome .features .feature-block{float:left;width:50%;padding-bottom:35px;overflow:auto}@media (max-width: 767px){#wpforms-welcome .features .feature-block{float:none;width:100%}}#wpforms-welcome .features .feature-block.first{padding-right:20px;clear:both}@media (max-width: 767px){#wpforms-welcome .features .feature-block.first{padding-right:0}}#wpforms-welcome .features .feature-block.last{padding-left:20px}@media (max-width: 767px){#wpforms-welcome .features .feature-block.last{padding-left:0}}#wpforms-welcome .features .feature-block img{float:left;max-width:46px}#wpforms-welcome .features .feature-block h5{margin-left:68px}#wpforms-welcome .features .feature-block p{margin:0;margin-left:68px}#wpforms-welcome .features .button-wrap{margin-top:25px;text-align:center}#wpforms-welcome .upgrade-cta{background-color:#000;border:2px solid #e1e1e1;border-top:0;border-bottom:0;color:#fff}#wpforms-welcome .upgrade-cta h2{color:#fff;font-size:20px;margin:0 0 30px 0}#wpforms-welcome .upgrade-cta ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;font-size:15px;margin:0;padding:0}#wpforms-welcome .upgrade-cta ul li{display:block;width:50%;margin:0 0 8px 0;padding:0}#wpforms-welcome .upgrade-cta ul li .dashicons{color:#2a9b39;margin-right:5px}#wpforms-welcome .upgrade-cta .left{float:left;width:66.666666%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .left{float:none;width:100%;padding-right:0;margin-bottom:20px}}#wpforms-welcome .upgrade-cta .right{float:right;width:33.333333%;padding-left:20px;text-align:center}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .right{float:none;width:100%;padding-left:0}}#wpforms-welcome .upgrade-cta .right h2{text-align:center;margin:0}#wpforms-welcome .upgrade-cta .right h2 span{display:inline-block;border-bottom:1px solid #555;padding:0 15px 12px}#wpforms-welcome .upgrade-cta .right .price{padding:26px 0}#wpforms-welcome .upgrade-cta .right .price .amount{font-size:48px;font-weight:600;position:relative;display:inline-block}#wpforms-welcome .upgrade-cta .right .price .amount:before{content:'$';position:absolute;top:-8px;left:-16px;font-size:18px}#wpforms-welcome .upgrade-cta .right .price .term{font-size:12px;display:inline-block}#wpforms-welcome .testimonials{background-color:#fff;border:2px solid #e1e1e1;border-top:0;padding:20px 0}#wpforms-welcome .testimonials .testimonial-block{margin:50px 0 0 0}#wpforms-welcome .testimonials .testimonial-block img{border-radius:50%;float:left;max-width:100px;box-shadow:0 0 18px rgba(0,0,0,0.2)}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block img{width:65px}}#wpforms-welcome .testimonials .testimonial-block p{font-size:14px;margin:0 0 12px 140px}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block p{margin-left:100px}}#wpforms-welcome .testimonials .testimonial-block p:last-of-type{margin-bottom:0}#wpforms-welcome .footer{background-color:#f1f1f1;border:2px solid #e1e1e1;border-top:0;border-radius:0 0 2px 2px}#wpforms-welcome.pro .features{border:2px solid #e1e1e1;margin-bottom:30px}#wpforms-welcome.pro .upgrade,#wpforms-welcome.pro .footer{display:none}#wpforms-welcome.pro .testimonials{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started .video-container{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started #wpfooter,.dashboard_page_wpforms-getting-started div.notice{display:none !important}#wpforms-admin-addons *,#wpforms-admin-addons *::before,#wpforms-admin-addons *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-addons .addons-container{margin-left:-20px;margin-right:-20px}#wpforms-admin-addons .unlock-msg{padding:0 20px;margin-top:-20px}#wpforms-admin-addons .addon-container{padding:0 20px;float:left;width:33.333333%}@media (max-width: 1249px){#wpforms-admin-addons .addon-container{width:50%}}@media (max-width: 767px){#wpforms-admin-addons .addon-container{width:100%}}#wpforms-admin-addons h4{font-size:17px;font-weight:700}#wpforms-admin-addons .addon-item{background-color:#fff;border:1px solid #ddd;border-radius:3px;margin:0 0 40px 0}@media (max-width: 767px){#wpforms-admin-addons .addon-item{margin:0 0}}#wpforms-admin-addons .addon-item img{border:1px solid #eee;float:left;max-width:75px}#wpforms-admin-addons .addon-item h5{margin:0 0 10px 100px;font-size:16px}#wpforms-admin-addons .addon-item p{margin:0 0 0 100px}#wpforms-admin-addons .addon-item .details{padding:30px 20px}#wpforms-admin-addons .addon-item .actions{background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;position:relative}#wpforms-admin-addons .addon-item .actions .msg{background-color:#f7f7f7;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;z-index:99;padding:20px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-align-items:center;align-items:center;justify-content:center}#wpforms-admin-addons .addon-item .actions .msg.success{color:#2a9b39}#wpforms-admin-addons .addon-item .actions .msg.error{color:red}#wpforms-admin-addons .addon-item .status{float:left;padding-top:8px}#wpforms-admin-addons .addon-item .status .status-inactive{color:red}#wpforms-admin-addons .addon-item .status .status-download{color:#666}#wpforms-admin-addons .addon-item .status .status-active{color:#2a9b39}#wpforms-admin-addons .addon-item .upgrade-button{text-align:center}#wpforms-admin-addons .addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button{float:right}#wpforms-admin-addons .addon-item .action-button button{background:none;border:1px solid #ddd;border-radius:3px;box-shadow:none;cursor:pointer;font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button button:hover,#wpforms-admin-addons .addon-item .action-button button.loading{background-color:#e9e9e9}#wpforms-admin-addons .addon-item .action-button button .fa{margin-right:8px}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-inactive .fa{color:red}#wpforms-admin-addons .addon-item .action-button button.status-download .fa{color:#999}#wpforms-admin-addons .addon-item .action-button button.loading .fa{color:#666}.wpforms-admin-settings *,.wpforms-admin-settings *::before,.wpforms-admin-settings *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-admin-settings .wpforms-setting-row{border-bottom:1px solid #e4e4e4;padding:30px 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row:first-of-type{padding-top:10px !important}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row{padding:20px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:20px 0}.wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4{margin:0}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field{margin:0;max-width:1000px}.wpforms-admin-settings .wpforms-setting-row.tools p,.wpforms-admin-settings .wpforms-setting-row.tools p:first-of-type{margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc{margin:0 0 0 30px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type{margin-top:12px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-select .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]{margin:-3px 10px 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{margin-right:30px;display:inline-block}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field label:before{content:" ";display:block;width:155px;height:180px;margin:0 0 10px 0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-default:before{background:url(../images/settings-email-html.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-none:before{background:url(../images/settings-email-plaintext.png) center center}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img{display:block;margin:0 0 20px 0;max-width:400px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .wpforms-color-picker{padding-left:40px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .minicolors-input-swatch{top:7px;left:7px;height:21px;width:21px;border-radius:2px}.wpforms-admin-settings .wpforms-setting-row h4{font-size:20px;font-weight:700;margin:0 0 6px 0}.wpforms-admin-settings .wpforms-setting-row h3{font-size:24px;font-weight:600;margin:0 0 20px 0}.wpforms-admin-settings .wpforms-setting-row p{margin:12px 0 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row p:first-of-type{margin:8px 0 0}.wpforms-admin-settings .wpforms-setting-row p.desc{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{width:300px}}.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus{border-color:#bbb}.wpforms-admin-settings .wpforms-setting-row button{margin-right:10px}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{display:block;max-width:400px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{width:300px}}.wpforms-admin-settings .wpforms-setting-row .progress-bar{background:#fff;border:1px solid #e27730;height:30px;width:100%;position:relative;border-radius:3px;margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar{background-color:#2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after{content:none;display:none}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar{display:block;background:#e27730;height:100%;left:0;position:absolute;-webkit-transition:width 0.5s ease-in-out;-moz-transition:width 0.5s ease-in-out;-o-transition:width 0.5s ease-in-out;transition:width 0.5s ease-in-out}@-webkit-keyframes progress{to{background-position:60px 0}}@-moz-keyframes progress{to{background-position:60px 0}}@keyframes progress{to{background-position:60px 0}}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-animation:progress 1s linear infinite;-moz-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-repeat:repeat-x;background-size:60px 60px;background-image:-webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.wpforms-admin-settings .wpforms-setting-label{display:block;float:left;width:200px;padding:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-label{float:none;width:100%;padding-bottom:15px}}.wpforms-admin-settings .wpforms-setting-label label{display:block;font-weight:600}.wpforms-admin-settings .wpforms-setting-field{display:block;margin:0 0 0 200px;max-width:800px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-field{margin:0}}.wpforms-admin-settings p.submit{margin:0;padding:25px 0}.wpforms-admin-settings .captcha-addon-notice{background-color:#fff;border:1px solid #e27730;border-radius:3px;padding:30px;max-width:1000px;margin:20px 0 0 0}.wpforms-admin-settings .captcha-addon-notice img{float:left;max-width:90px}.wpforms-admin-settings .captcha-addon-notice h5{margin:0 0 10px 120px;font-size:18px}.wpforms-admin-settings .captcha-addon-notice p{margin:0 0 0 120px;font-size:14px;line-height:1.3}.wpforms-admin-settings .info-area{display:block;width:100%;max-width:1000px;height:450px;font-family:Menlo,Monaco,monospace;font-size:12px;background:#fff;box-shadow:none;border:1px solid #ddd;white-space:pre;overflow:auto;padding:20px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider{border-bottom:1px solid #ddd;padding:30px 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider.focus-out{opacity:0.4}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-header{cursor:pointer;max-width:1000px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo{float:left;position:relative}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo .fa{position:absolute;top:50%;margin:-9px 0 0 0;left:10px;color:#666;font-size:18px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo img{border:1px solid #ddd;max-width:90px;display:block;margin:0 0 0 40px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info{margin:0 0 0 160px;position:relative;padding:20px 0 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info h3{margin:0 0 10px 0;font-size:20px;font-weight:600}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info p{margin:0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{color:#83c11f;width:135px;border:1px solid #83c11f;border-radius:4px;padding:8px 14px;font-size:16px;position:absolute;top:28px;right:0;display:none}.wpforms-admin-settings #wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 0 0 160px;display:none;max-width:840px}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul{padding:0;margin:0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li{border-bottom:1px solid #ddd;margin:0;padding:10px 0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type{border-top:1px solid #ddd}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type{margin-bottom:16px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{float:left;width:50%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{color:#999;float:left;width:35%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{float:right;width:15%;text-align:right}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect{display:none;padding:20px;background-color:#ebf3fb;border:1px solid #0e6cad}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:block;padding:7px 12px;margin:5px 0;width:400px;min-height:35px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]:focus{border-color:#bbb}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa{display:none}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts p{margin:0 0 15px 0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns{max-width:600px;position:relative}.wpforms-admin-settings .checkbox-multiselect-columns:after{content:".";display:block;height:0;line-height:0;font-size:0;clear:both;min-height:0;visibility:hidden}.wpforms-admin-settings .checkbox-multiselect-columns:before{content:"\f0ec";color:#999;font:normal normal normal 20px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:130px;left:50%;margin:0 0 0 -10px}.wpforms-admin-settings .checkbox-multiselect-columns .header{font-weight:600;font-size:13px;margin:0;padding:0 0 5px 0;text-align:center}.wpforms-admin-settings .checkbox-multiselect-columns .first-column,.wpforms-admin-settings .checkbox-multiselect-columns .second-column{width:45%;float:left}.wpforms-admin-settings .checkbox-multiselect-columns .second-column{float:right}.wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li{padding:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul{background-color:#fff;border:1px solid #ddd;border-radius:3px;position:relative;height:250px;padding:0;overflow-y:auto;margin:0;list-style-type:none}.wpforms-admin-settings .checkbox-multiselect-columns ul li{border-bottom:1px #eee solid;margin:0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label{display:block;padding:10px 10px 10px 32px;position:relative;vertical-align:baseline}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover{background-color:#e27730;color:#fff}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:before{content:"\f0c8";color:#ddd;font:normal normal normal 16px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:12px;left:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked{opacity:0.6}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{content:"\f14a";color:#2a9b39}.wpforms-admin-settings .checkbox-multiselect-columns ul li input{display:none}.wpforms-admin-settings .checkbox-multiselect-columns .all{color:#999;display:inline-block;font-size:13px;margin:10px 0 0}.wpforms-admin-settings #wpforms-importer-analyze{display:none}.wpforms-admin-settings #wpforms-importer-analyze .process-count,.wpforms-admin-settings #wpforms-importer-analyze p{font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade{display:none;font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade h5{font-size:18px;font-weight:600;padding:0;margin:30px 0 20px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade hr{border:none;border-bottom:1px solid #e4e4e4;margin:40px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn{margin-right:10px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li{list-style-type:disc;margin-left:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form{list-style-type:none;margin-left:0;font-weight:700}.wpforms-admin-settings #wpforms-importer-process{display:none}.wpforms-admin-settings #wpforms-importer-process .process-count,.wpforms-admin-settings #wpforms-importer-process .process-completed{font-size:14px}.wpforms-admin-settings #wpforms-importer-process .process-completed{display:none}.wpforms-admin-settings #wpforms-importer-process .status{margin:20px 0 30px;background-color:#fff;border-radius:3px;border:1px solid #ddd;max-height:800px;overflow-y:scroll;display:none}.wpforms-admin-settings #wpforms-importer-process .status .item{border-bottom:1px solid #ddd;padding:20px}.wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type{border:none}.wpforms-admin-settings #wpforms-importer-process .status .item p{font-size:13px;margin:12px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item ul{font-size:13px;margin:12px 0 0 16px}.wpforms-admin-settings #wpforms-importer-process .status .item ul li{list-style:disc}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon{display:inline-block;margin:0 10px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle{color:#00a0d2}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#46b450}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle{color:#ffb900}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:red}.wpforms-admin-settings #wpforms-importer-process .status .item .name{font-size:14px;float:left}.wpforms-admin-settings #wpforms-importer-process .status .item .actions{font-size:14px;float:right}.wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep{color:#ddd}
2
 
1
+ .choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#EAEAEA;cursor:not-allowed;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{padding-bottom:3.0px}.choices[data-type*="select-one"] .choices__input{display:block;width:100% !important;padding:10px !important;border-bottom:1px solid #ddd !important;background-color:#FFFFFF;margin:0 !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;height:100%;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0px 0px 0px 2px #0e6cad}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:18px;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:relative;display:inline-block;margin-top:0;margin-right:-4px;margin-bottom:0;margin-left:8px;padding-left:16px;border-left:1px solid #0a4f7e;background-image:url("../images/cross.svg");background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#fff;padding:4px 7.5px 1px;border:1px solid #ddd;border-radius:3px;font-size:14px;min-height:35px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:3px 3px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 3px 3px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir="rtl"] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:500;margin-right:4px;margin-top:0px;margin-bottom:3px;background-color:#0e6cad;border:1px solid #0c5d95;color:#FFFFFF;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir="rtl"] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#0c5d95;border:1px solid #0a4f7e}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir="rtl"] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir="rtl"] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir="rtl"] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline !important;background-color:#f9f9f9;font-size:14px;margin:0 !important;border:0 !important;border-radius:0 !important;max-width:100%;min-height:0 !important;width:auto !important;padding:4px 0 4px 2px !important}.choices__input:focus{outline:0}[dir="rtl"] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.wpforms-admin-page .wpforms-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}.wpforms-admin-page .wpforms-btn-block{display:block}.wpforms-admin-page .wpforms-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#fff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#b85a1b;border-color:#b85a1b}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#eee;color:#444}.wpforms-admin-page .wpforms-btn-trans-green{background-color:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:20px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:initial}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}.wpforms-flag{width:16px;height:16px;background:url(../../images/flags.png) no-repeat;display:inline-block}.wpforms-flag.wpforms-flag-ad{background-position:-16px 0}.wpforms-flag.wpforms-flag-ae{background-position:-32px 0}.wpforms-flag.wpforms-flag-af{background-position:-48px 0}.wpforms-flag.wpforms-flag-ag{background-position:-64px 0}.wpforms-flag.wpforms-flag-ai{background-position:-80px 0}.wpforms-flag.wpforms-flag-al{background-position:-96px 0}.wpforms-flag.wpforms-flag-am{background-position:-112px 0}.wpforms-flag.wpforms-flag-an{background-position:-128px 0}.wpforms-flag.wpforms-flag-ao{background-position:-144px 0}.wpforms-flag.wpforms-flag-ar{background-position:-160px 0}.wpforms-flag.wpforms-flag-as{background-position:-176px 0}.wpforms-flag.wpforms-flag-at{background-position:-192px 0}.wpforms-flag.wpforms-flag-au{background-position:-208px 0}.wpforms-flag.wpforms-flag-aw{background-position:-224px 0}.wpforms-flag.wpforms-flag-az{background-position:0 -16px}.wpforms-flag.wpforms-flag-ba{background-position:-16px -16px}.wpforms-flag.wpforms-flag-bb{background-position:-32px -16px}.wpforms-flag.wpforms-flag-bd{background-position:-48px -16px}.wpforms-flag.wpforms-flag-be{background-position:-64px -16px}.wpforms-flag.wpforms-flag-bf{background-position:-80px -16px}.wpforms-flag.wpforms-flag-bg{background-position:-96px -16px}.wpforms-flag.wpforms-flag-bh{background-position:-112px -16px}.wpforms-flag.wpforms-flag-bi{background-position:-128px -16px}.wpforms-flag.wpforms-flag-bj{background-position:-144px -16px}.wpforms-flag.wpforms-flag-bm{background-position:-160px -16px}.wpforms-flag.wpforms-flag-bn{background-position:-176px -16px}.wpforms-flag.wpforms-flag-bo{background-position:-192px -16px}.wpforms-flag.wpforms-flag-br{background-position:-208px -16px}.wpforms-flag.wpforms-flag-bs{background-position:-224px -16px}.wpforms-flag.wpforms-flag-bt{background-position:0 -32px}.wpforms-flag.wpforms-flag-bw{background-position:-16px -32px}.wpforms-flag.wpforms-flag-by{background-position:-32px -32px}.wpforms-flag.wpforms-flag-bz{background-position:-48px -32px}.wpforms-flag.wpforms-flag-ca{background-position:-64px -32px}.wpforms-flag.wpforms-flag-cd{background-position:-80px -32px}.wpforms-flag.wpforms-flag-cf{background-position:-96px -32px}.wpforms-flag.wpforms-flag-cg{background-position:-112px -32px}.wpforms-flag.wpforms-flag-ch{background-position:-128px -32px}.wpforms-flag.wpforms-flag-ci{background-position:-144px -32px}.wpforms-flag.wpforms-flag-ck{background-position:-160px -32px}.wpforms-flag.wpforms-flag-cl{background-position:-176px -32px}.wpforms-flag.wpforms-flag-cm{background-position:-192px -32px}.wpforms-flag.wpforms-flag-cn{background-position:-208px -32px}.wpforms-flag.wpforms-flag-co{background-position:-224px -32px}.wpforms-flag.wpforms-flag-cr{background-position:0 -48px}.wpforms-flag.wpforms-flag-cu{background-position:-16px -48px}.wpforms-flag.wpforms-flag-cv{background-position:-32px -48px}.wpforms-flag.wpforms-flag-cy{background-position:-48px -48px}.wpforms-flag.wpforms-flag-cz{background-position:-64px -48px}.wpforms-flag.wpforms-flag-de{background-position:-80px -48px}.wpforms-flag.wpforms-flag-dj{background-position:-96px -48px}.wpforms-flag.wpforms-flag-dk{background-position:-112px -48px}.wpforms-flag.wpforms-flag-dm{background-position:-128px -48px}.wpforms-flag.wpforms-flag-do{background-position:-144px -48px}.wpforms-flag.wpforms-flag-dz{background-position:-160px -48px}.wpforms-flag.wpforms-flag-ec{background-position:-176px -48px}.wpforms-flag.wpforms-flag-ee{background-position:-192px -48px}.wpforms-flag.wpforms-flag-eg{background-position:-208px -48px}.wpforms-flag.wpforms-flag-eh{background-position:-224px -48px}.wpforms-flag.wpforms-flag-er{background-position:0 -64px}.wpforms-flag.wpforms-flag-es{background-position:-16px -64px}.wpforms-flag.wpforms-flag-et{background-position:-32px -64px}.wpforms-flag.wpforms-flag-fi{background-position:-48px -64px}.wpforms-flag.wpforms-flag-fj{background-position:-64px -64px}.wpforms-flag.wpforms-flag-fm{background-position:-80px -64px}.wpforms-flag.wpforms-flag-fo{background-position:-96px -64px}.wpforms-flag.wpforms-flag-fr{background-position:-112px -64px}.wpforms-flag.wpforms-flag-ga{background-position:-128px -64px}.wpforms-flag.wpforms-flag-gb{background-position:-144px -64px}.wpforms-flag.wpforms-flag-gd{background-position:-160px -64px}.wpforms-flag.wpforms-flag-ge{background-position:-176px -64px}.wpforms-flag.wpforms-flag-gg{background-position:-192px -64px}.wpforms-flag.wpforms-flag-gh{background-position:-208px -64px}.wpforms-flag.wpforms-flag-gi{background-position:-224px -64px}.wpforms-flag.wpforms-flag-gl{background-position:0 -80px}.wpforms-flag.wpforms-flag-gm{background-position:-16px -80px}.wpforms-flag.wpforms-flag-gn{background-position:-32px -80px}.wpforms-flag.wpforms-flag-gp{background-position:-48px -80px}.wpforms-flag.wpforms-flag-gq{background-position:-64px -80px}.wpforms-flag.wpforms-flag-gr{background-position:-80px -80px}.wpforms-flag.wpforms-flag-gt{background-position:-96px -80px}.wpforms-flag.wpforms-flag-gu{background-position:-112px -80px}.wpforms-flag.wpforms-flag-gw{background-position:-128px -80px}.wpforms-flag.wpforms-flag-gy{background-position:-144px -80px}.wpforms-flag.wpforms-flag-hk{background-position:-160px -80px}.wpforms-flag.wpforms-flag-hn{background-position:-176px -80px}.wpforms-flag.wpforms-flag-hr{background-position:-192px -80px}.wpforms-flag.wpforms-flag-ht{background-position:-208px -80px}.wpforms-flag.wpforms-flag-hu{background-position:-224px -80px}.wpforms-flag.wpforms-flag-id{background-position:0 -96px}.wpforms-flag.wpforms-flag-ie{background-position:-16px -96px}.wpforms-flag.wpforms-flag-il{background-position:-32px -96px}.wpforms-flag.wpforms-flag-im{background-position:-48px -96px}.wpforms-flag.wpforms-flag-in{background-position:-64px -96px}.wpforms-flag.wpforms-flag-iq{background-position:-80px -96px}.wpforms-flag.wpforms-flag-ir{background-position:-96px -96px}.wpforms-flag.wpforms-flag-is{background-position:-112px -96px}.wpforms-flag.wpforms-flag-it{background-position:-128px -96px}.wpforms-flag.wpforms-flag-je{background-position:-144px -96px}.wpforms-flag.wpforms-flag-jm{background-position:-160px -96px}.wpforms-flag.wpforms-flag-jo{background-position:-176px -96px}.wpforms-flag.wpforms-flag-jp{background-position:-192px -96px}.wpforms-flag.wpforms-flag-ke{background-position:-208px -96px}.wpforms-flag.wpforms-flag-kg{background-position:-224px -96px}.wpforms-flag.wpforms-flag-kh{background-position:0 -112px}.wpforms-flag.wpforms-flag-ki{background-position:-16px -112px}.wpforms-flag.wpforms-flag-km{background-position:-32px -112px}.wpforms-flag.wpforms-flag-kn{background-position:-48px -112px}.wpforms-flag.wpforms-flag-kp{background-position:-64px -112px}.wpforms-flag.wpforms-flag-kr{background-position:-80px -112px}.wpforms-flag.wpforms-flag-kw{background-position:-96px -112px}.wpforms-flag.wpforms-flag-ky{background-position:-112px -112px}.wpforms-flag.wpforms-flag-kz{background-position:-128px -112px}.wpforms-flag.wpforms-flag-la{background-position:-144px -112px}.wpforms-flag.wpforms-flag-lb{background-position:-160px -112px}.wpforms-flag.wpforms-flag-lc{background-position:-176px -112px}.wpforms-flag.wpforms-flag-li{background-position:-192px -112px}.wpforms-flag.wpforms-flag-lk{background-position:-208px -112px}.wpforms-flag.wpforms-flag-lr{background-position:-224px -112px}.wpforms-flag.wpforms-flag-ls{background-position:0 -128px}.wpforms-flag.wpforms-flag-lt{background-position:-16px -128px}.wpforms-flag.wpforms-flag-lu{background-position:-32px -128px}.wpforms-flag.wpforms-flag-lv{background-position:-48px -128px}.wpforms-flag.wpforms-flag-ly{background-position:-64px -128px}.wpforms-flag.wpforms-flag-ma{background-position:-80px -128px}.wpforms-flag.wpforms-flag-mc{background-position:-96px -128px}.wpforms-flag.wpforms-flag-md{background-position:-112px -128px}.wpforms-flag.wpforms-flag-me{background-position:-128px -128px}.wpforms-flag.wpforms-flag-mg{background-position:-144px -128px}.wpforms-flag.wpforms-flag-mh{background-position:-160px -128px}.wpforms-flag.wpforms-flag-mk{background-position:-176px -128px}.wpforms-flag.wpforms-flag-ml{background-position:-192px -128px}.wpforms-flag.wpforms-flag-mm{background-position:-208px -128px}.wpforms-flag.wpforms-flag-mn{background-position:-224px -128px}.wpforms-flag.wpforms-flag-mo{background-position:0 -144px}.wpforms-flag.wpforms-flag-mq{background-position:-16px -144px}.wpforms-flag.wpforms-flag-mr{background-position:-32px -144px}.wpforms-flag.wpforms-flag-ms{background-position:-48px -144px}.wpforms-flag.wpforms-flag-mt{background-position:-64px -144px}.wpforms-flag.wpforms-flag-mu{background-position:-80px -144px}.wpforms-flag.wpforms-flag-mv{background-position:-96px -144px}.wpforms-flag.wpforms-flag-mw{background-position:-112px -144px}.wpforms-flag.wpforms-flag-mx{background-position:-128px -144px}.wpforms-flag.wpforms-flag-my{background-position:-144px -144px}.wpforms-flag.wpforms-flag-mz{background-position:-160px -144px}.wpforms-flag.wpforms-flag-na{background-position:-176px -144px}.wpforms-flag.wpforms-flag-nc{background-position:-192px -144px}.wpforms-flag.wpforms-flag-ne{background-position:-208px -144px}.wpforms-flag.wpforms-flag-ng{background-position:-224px -144px}.wpforms-flag.wpforms-flag-ni{background-position:0 -160px}.wpforms-flag.wpforms-flag-nl{background-position:-16px -160px}.wpforms-flag.wpforms-flag-no{background-position:-32px -160px}.wpforms-flag.wpforms-flag-np{background-position:-48px -160px}.wpforms-flag.wpforms-flag-nr{background-position:-64px -160px}.wpforms-flag.wpforms-flag-nz{background-position:-80px -160px}.wpforms-flag.wpforms-flag-om{background-position:-96px -160px}.wpforms-flag.wpforms-flag-pa{background-position:-112px -160px}.wpforms-flag.wpforms-flag-pe{background-position:-128px -160px}.wpforms-flag.wpforms-flag-pf{background-position:-144px -160px}.wpforms-flag.wpforms-flag-pg{background-position:-160px -160px}.wpforms-flag.wpforms-flag-ph{background-position:-176px -160px}.wpforms-flag.wpforms-flag-pk{background-position:-192px -160px}.wpforms-flag.wpforms-flag-pl{background-position:-208px -160px}.wpforms-flag.wpforms-flag-pr{background-position:-224px -160px}.wpforms-flag.wpforms-flag-ps{background-position:0 -176px}.wpforms-flag.wpforms-flag-pt{background-position:-16px -176px}.wpforms-flag.wpforms-flag-pw{background-position:-32px -176px}.wpforms-flag.wpforms-flag-py{background-position:-48px -176px}.wpforms-flag.wpforms-flag-qa{background-position:-64px -176px}.wpforms-flag.wpforms-flag-re{background-position:-80px -176px}.wpforms-flag.wpforms-flag-ro{background-position:-96px -176px}.wpforms-flag.wpforms-flag-rs{background-position:-112px -176px}.wpforms-flag.wpforms-flag-ru{background-position:-128px -176px}.wpforms-flag.wpforms-flag-rw{background-position:-144px -176px}.wpforms-flag.wpforms-flag-sa{background-position:-160px -176px}.wpforms-flag.wpforms-flag-sb{background-position:-176px -176px}.wpforms-flag.wpforms-flag-sc{background-position:-192px -176px}.wpforms-flag.wpforms-flag-sd{background-position:-208px -176px}.wpforms-flag.wpforms-flag-se{background-position:-224px -176px}.wpforms-flag.wpforms-flag-sg{background-position:0 -192px}.wpforms-flag.wpforms-flag-si{background-position:-16px -192px}.wpforms-flag.wpforms-flag-sk{background-position:-32px -192px}.wpforms-flag.wpforms-flag-sl{background-position:-48px -192px}.wpforms-flag.wpforms-flag-sm{background-position:-64px -192px}.wpforms-flag.wpforms-flag-sn{background-position:-80px -192px}.wpforms-flag.wpforms-flag-so{background-position:-96px -192px}.wpforms-flag.wpforms-flag-sr{background-position:-112px -192px}.wpforms-flag.wpforms-flag-st{background-position:-128px -192px}.wpforms-flag.wpforms-flag-sv{background-position:-144px -192px}.wpforms-flag.wpforms-flag-sy{background-position:-160px -192px}.wpforms-flag.wpforms-flag-sz{background-position:-176px -192px}.wpforms-flag.wpforms-flag-tc{background-position:-192px -192px}.wpforms-flag.wpforms-flag-td{background-position:-208px -192px}.wpforms-flag.wpforms-flag-tg{background-position:-224px -192px}.wpforms-flag.wpforms-flag-th{background-position:0 -208px}.wpforms-flag.wpforms-flag-tj{background-position:-16px -208px}.wpforms-flag.wpforms-flag-tl{background-position:-32px -208px}.wpforms-flag.wpforms-flag-tm{background-position:-48px -208px}.wpforms-flag.wpforms-flag-tn{background-position:-64px -208px}.wpforms-flag.wpforms-flag-to{background-position:-80px -208px}.wpforms-flag.wpforms-flag-tr{background-position:-96px -208px}.wpforms-flag.wpforms-flag-tt{background-position:-112px -208px}.wpforms-flag.wpforms-flag-tv{background-position:-128px -208px}.wpforms-flag.wpforms-flag-tw{background-position:-144px -208px}.wpforms-flag.wpforms-flag-tz{background-position:-160px -208px}.wpforms-flag.wpforms-flag-ua{background-position:-176px -208px}.wpforms-flag.wpforms-flag-ug{background-position:-192px -208px}.wpforms-flag.wpforms-flag-us{background-position:-208px -208px}.wpforms-flag.wpforms-flag-uy{background-position:-224px -208px}.wpforms-flag.wpforms-flag-uz{background-position:0 -224px}.wpforms-flag.wpforms-flag-va{background-position:-16px -224px}.wpforms-flag.wpforms-flag-vc{background-position:-32px -224px}.wpforms-flag.wpforms-flag-ve{background-position:-48px -224px}.wpforms-flag.wpforms-flag-vg{background-position:-64px -224px}.wpforms-flag.wpforms-flag-vi{background-position:-80px -224px}.wpforms-flag.wpforms-flag-vn{background-position:-96px -224px}.wpforms-flag.wpforms-flag-vu{background-position:-112px -224px}.wpforms-flag.wpforms-flag-ws{background-position:-128px -224px}.wpforms-flag.wpforms-flag-ye{background-position:-144px -224px}.wpforms-flag.wpforms-flag-za{background-position:-160px -224px}.wpforms-flag.wpforms-flag-zm{background-position:-176px -224px}.wpforms-flag.wpforms-flag-zw{background-position:-192px -224px}#wpforms-header-temp{position:relative;margin:0;position:absolute;top:-1px;left:20px;right:20px;z-index:99}#wpforms-header{border-top:3px solid #e27730;padding:22px 20px}#wpforms-header img{display:block;margin:0;max-width:235px}@media (max-width: 782px){#wpforms-header img{max-width:200px}}.wpforms-admin-wrap .page-title{background-color:#fff;margin:0 0 20px 0;padding:15px 20px}.wpforms-admin-wrap .page-title .add-new-h2{margin-left:28px}.wpforms-admin-tabs{background-color:#fff;margin:0 0 20px 0;padding:0 20px;list-style:none;overflow:auto;font-size:14px}.wpforms-admin-tabs li{margin:0 30px 0 0;padding:0;float:left}.wpforms-admin-tabs li:last-of-type{margin:0}.wpforms-admin-tabs li a{color:#666;display:block;padding:20px 0 18px 0;text-decoration:none;border-bottom:2px solid #fff;box-shadow:none}.wpforms-admin-tabs li a:hover{border-color:#999}.wpforms-admin-tabs li a.active{border-color:#e27730}#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}.wpforms-admin-page #screen-meta-links,.wpforms-admin-page #screen-meta{display:none}.wpforms-admin-page .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.wpforms-admin-page .video-container iframe,.wpforms-admin-page .video-container object,.wpforms-admin-page .video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.wpforms-admin-page .wpforms-file-upload input[type=file]{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.wpforms-admin-page .wpforms-file-upload label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden;padding:0}.wpforms-admin-page .wpforms-file-upload input[type=file]:focus+label,.wpforms-admin-page .wpforms-file-upload input[type=file].has-focus+label{outline:1px dotted #000;outline:-webkit-focus-ring-color auto 5px}.wpforms-admin-page .wpforms-file-upload .fld{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}.wpforms-admin-page .wpforms-file-upload .fld .placeholder{color:#ccc}.wpforms-admin-page .wpforms-file-upload strong .fa{margin-right:8px}.wpforms-admin-page .wpforms-hide{display:none}.wpforms-admin-page .wpforms-h1-placeholder{display:none}.wpforms-admin-page .notice{display:none}.wpforms-admin-wrap{margin:0}.wpforms-admin-wrap .notice{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-content{padding-left:20px;padding-right:20px}.wpforms-admin-content:before{content:" ";display:table}.wpforms-admin-content:after{clear:both;content:" ";display:table}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}#wpforms-overview .tablenav.top{margin-top:0}#wpforms-overview .wp-list-table .column-id{width:30px}#wpforms-overview .wp-list-table .column-entries{width:70px}#wpforms-overview .wp-list-table .column-shortcode{width:150px}#wpforms-overview .wp-list-table .column-created{width:145px}#wpforms-entries-single #poststuff{padding:0}#wpforms-entries-single .postbox .hndle{cursor:default !important}#wpforms-entries-single .wpforms-entry-navigation{font-size:13px;line-height:29px;float:right;position:relative;padding-top:2px}@media (max-width: 600px){#wpforms-entries-single .wpforms-entry-navigation{display:none}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{top:auto;margin:0;padding:4px 0px;text-align:center}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2 .dashicons{font-size:16px;height:auto;width:28px;line-height:29px}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2.inactive{opacity:0.5;pointer-events:none;cursor:default}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-navigation-text{display:inline-block;margin-right:10px}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-current{top:auto;margin:0;text-align:center;padding:4px 10px;position:relative;text-decoration:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#fff;font-size:13px;line-height:29px;text-transform:center}#wpforms-entries-single #wpforms-entry-fields h2.hndle{font-size:18px}#wpforms-entries-single #wpforms-entry-fields h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#wpforms-entries-single #wpforms-entry-fields .no-fields{padding:12px;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside p{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-name{font-weight:600;background:#ebf3fb;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-value{background:#fff;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .empty .wpforms-entry-field-value{font-style:italic;color:#999}#wpforms-entries-single #wpforms-entry-fields .wpforms-empty-field-toggle{float:right;text-decoration:none;padding:5px 0 0}#wpforms-entries-single #wpforms-entry-notes .inside{margin:0;padding:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-new{padding:10px}#wpforms-entries-single #wpforms-entry-notes form{display:none}#wpforms-entries-single #wpforms-entry-notes .btns{overflow:auto;padding:8px 0}#wpforms-entries-single #wpforms-entry-notes .no-notes{margin:0;padding:4px 10px 8px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single{padding:10px;border-top:1px solid #e3e1e3}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single p:last-of-type{margin-bottom:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single.even{background-color:#f9f9f9}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline{color:#888;margin-bottom:10px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .sep{color:#ddd}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .notes-user{text-decoration:none;font-weight:600}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete{color:#a00;text-decoration:none}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover{color:red;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .inside,#wpforms-entries-single #wpforms-entry-payment .inside,#wpforms-entries-single #wpforms-entry-actions .inside{margin:0;padding:0}#wpforms-entries-single .wpforms-entry-details-meta,#wpforms-entries-single .wpforms-entry-actions-meta{padding:6px 0 0}#wpforms-entries-single .wpforms-entry-details-meta p,#wpforms-entries-single .wpforms-entry-payment-meta p,#wpforms-entries-single .wpforms-entry-actions-meta p{padding:6px 10px 8px;margin:0}#wpforms-entries-single .wpforms-entry-payment-meta{padding:0}#wpforms-entries-single .wpforms-entry-payment-meta p{border-bottom:1px solid #eee;padding:10px}#wpforms-entries-single .wpforms-entry-payment-meta p:last-of-type{border-bottom:0}#wpforms-entries-single .wpforms-entry-details-meta strong,#wpforms-entries-single .wpforms-entry-actions-meta strong{font-weight:600}#wpforms-entries-single .wpforms-entry-details-meta .dashicons,#wpforms-entries-single .wpforms-entry-actions-meta .dashicons{padding:0 2px 0 0;color:#82878A;top:-1px;left:-1px;position:relative;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .submitdelete{color:#a00;text-decoration:none;padding:1px 2px}#wpforms-entries-single #wpforms-entry-details .submitdelete:hover{color:red}#wpforms-entries-single .wpforms-entry-actions-meta a{text-decoration:none}#wpforms-entries-single .wpforms-entry-actions-meta a:hover{text-decoration:underline}#wpforms-entries-single #wpforms-entry-geolocation .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul{margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul li{border-bottom:1px solid #eee;margin:0;overflow:auto}#wpforms-entries-single #wpforms-entry-geolocation ul li:last-of-type{border-bottom:0}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-meta{width:85px;float:left;border-right:1px solid #eee;padding:10px 20px 10px 12px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-value{display:inline-block;padding:10px 12px 10px 20px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-flag{vertical-align:text-top;margin-right:4px}#wpforms-entries-list .form-details{border-bottom:1px solid #ddd;padding-bottom:15px;margin:0 0 10px}#wpforms-entries-list .form-details .form-details-sub{color:#999;display:block;font-size:10px;text-transform:uppercase;margin:0 0 8px 0}#wpforms-entries-list .form-details .form-details-title{float:left;font-size:18px;font-weight:400;margin:0}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-title{float:none;margin-bottom:10px}}#wpforms-entries-list .form-details .form-selector{display:inline-block;position:relative}#wpforms-entries-list .form-details .form-selector .toggle{border-radius:50%;color:#444;font-size:16px;box-shadow:none}#wpforms-entries-list .form-details .form-selector .toggle:hover,#wpforms-entries-list .form-details .form-selector .toggle.active{background-color:#e3e3e3;outline:none}#wpforms-entries-list .form-details .form-selector .toggle:before{vertical-align:middle}#wpforms-entries-list .form-details .form-selector .form-list{display:none;background:#fff;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);position:absolute;top:27px;left:-108px;width:230px;padding:10px 0;z-index:9991}#wpforms-entries-list .form-details .form-selector .form-list:before{content:" ";position:absolute;top:-10px;left:110px;width:0;height:0;border-style:solid;border-width:0 8px 10px 8px;border-color:transparent transparent #fff transparent}#wpforms-entries-list .form-details .form-selector ul{max-height:196px;overflow-x:hidden;padding:0;margin:0}#wpforms-entries-list .form-details .form-selector ul li{list-style:none;margin:0;font-size:13px}#wpforms-entries-list .form-details .form-selector ul li a{display:block;text-decoration:none;padding:5px 15px;color:#444}#wpforms-entries-list .form-details .form-selector ul li a:hover{background-color:#f7f7f7}#wpforms-entries-list .form-details .form-details-actions{float:right}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-actions{float:none}}#wpforms-entries-list .form-details .form-details-actions a{text-decoration:none;display:inline-block;margin:0 12px 0 0}#wpforms-entries-list .form-details .form-details-actions a:last-of-type{margin:0}#wpforms-entries-list .form-details .form-details-actions a .dashicons{width:16px;height:16px;font-size:16px}#wpforms-entries-list .search-box .wpforms-form-search-box-field{max-width:180px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-comparison{max-width:90px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-term{height:28px;margin:0 2px 0 0}#wpforms-entries-list .wpforms-filter-date .wpforms-filter-date-selector{height:28px;background-color:#fff;vertical-align:middle;max-width:210px}#wpforms-entries-list .wpforms-filter-date button{margin:1px 8px 0 0;vertical-align:top}#wpforms-entries-list .wp-list-table .column-indicators{width:35px;text-align:center}#wpforms-entries-list .wp-list-table .column-indicators a:focus{-webkit-box-shadow:none;box-shadow:none}#wpforms-entries-list .wp-list-table .column-indicators .dashicons{width:14px;height:14px;font-size:14px;margin-top:3px}#wpforms-entries-list .wp-list-table .indicator-star .dashicons{margin-right:6px}#wpforms-entries-list .wp-list-table .indicator-star{color:#e4e4e4}#wpforms-entries-list .wp-list-table .indicator-star:hover,#wpforms-entries-list .wp-list-table .indicator-star.unstar{color:#e27730}#wpforms-entries-list .wp-list-table .indicator-read{color:#9ede84}#wpforms-entries-list .wp-list-table .indicator-read:hover,#wpforms-entries-list .wp-list-table .indicator-read.unread{color:#e4e4e4}#wpforms-entries-list .wp-list-table .column-date{width:150px}#wpforms-entries-list .wp-list-table .column-status{width:120px}#wpforms-entries-list .wp-list-table .column-status img{display:inline-block;height:12px;width:auto;margin:0 0 0 3px}#wpforms-entries-list .wp-list-table .column-payment_total{width:100px}#wpforms-entries-list .wp-list-table .column-actions{width:100px}#wpforms-entries-list .wp-list-table .sep{color:#ddd}#wpforms-entries-list .wp-list-table .delete:hover{color:red}#wpforms-entries-list #wpforms-entries-table-edit-columns{float:right;color:#ccc}#wpforms-entries-list #wpforms-entries-table-edit-columns:hover{color:#666}#wpforms-welcome{border-top:3px solid #e27730;color:#555;padding-top:110px}@media (max-width: 767px){#wpforms-welcome{padding-top:64px}}#wpforms-welcome *,#wpforms-welcome *::before,#wpforms-welcome *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-welcome .container{margin:0 auto;max-width:720px;padding:0}#wpforms-welcome .block{padding:40px}@media (max-width: 767px){#wpforms-welcome .block{padding:20px}}#wpforms-welcome img{max-width:100%;height:auto}#wpforms-welcome h1{color:#222;font-size:24px;text-align:center;margin:0 0 16px 0}#wpforms-welcome h5{color:#222;font-size:16px;margin:0 0 8px 0}#wpforms-welcome h6{font-size:16px;font-weight:400;line-height:1.6;text-align:center;margin:0}#wpforms-welcome p{font-size:14px;margin:0 0 20px 0}#wpforms-welcome .button-wrap{max-width:590px;margin:0 auto 0 auto}#wpforms-welcome .button-wrap .left{float:left;width:50%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .left{float:none;width:100%;padding:0;margin-bottom:20px}}#wpforms-welcome .button-wrap .right{float:right;width:50%;padding-left:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .right{float:none;width:100%;padding:0}}#wpforms-welcome .intro{background-color:#fff;border:2px solid #e1e1e1;border-radius:2px;margin-bottom:30px;position:relative;padding-top:40px}#wpforms-welcome .intro .sullie{background-color:#fff;border:2px solid #e1e1e1;border-radius:50%;height:110px;width:110px;padding:18px 14px 0 14px;position:absolute;top:-58px;left:50%;margin-left:-55px}#wpforms-welcome .intro .video-thumbnail{display:block;margin:0 auto}#wpforms-welcome .intro .button-wrap{margin-top:25px}#wpforms-welcome .features{background-color:#fff;border:2px solid #e1e1e1;border-bottom:0;border-radius:2px 2px 0 0;position:relative;padding-top:20px;padding-bottom:20px}#wpforms-welcome .features .feature-list{margin-top:60px}#wpforms-welcome .features .feature-block{float:left;width:50%;padding-bottom:35px;overflow:auto}@media (max-width: 767px){#wpforms-welcome .features .feature-block{float:none;width:100%}}#wpforms-welcome .features .feature-block.first{padding-right:20px;clear:both}@media (max-width: 767px){#wpforms-welcome .features .feature-block.first{padding-right:0}}#wpforms-welcome .features .feature-block.last{padding-left:20px}@media (max-width: 767px){#wpforms-welcome .features .feature-block.last{padding-left:0}}#wpforms-welcome .features .feature-block img{float:left;max-width:46px}#wpforms-welcome .features .feature-block h5{margin-left:68px}#wpforms-welcome .features .feature-block p{margin:0;margin-left:68px}#wpforms-welcome .features .button-wrap{margin-top:25px;text-align:center}#wpforms-welcome .upgrade-cta{background-color:#000;border:2px solid #e1e1e1;border-top:0;border-bottom:0;color:#fff}#wpforms-welcome .upgrade-cta h2{color:#fff;font-size:20px;margin:0 0 30px 0}#wpforms-welcome .upgrade-cta ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;font-size:15px;margin:0;padding:0}#wpforms-welcome .upgrade-cta ul li{display:block;width:50%;margin:0 0 8px 0;padding:0}#wpforms-welcome .upgrade-cta ul li .dashicons{color:#2a9b39;margin-right:5px}#wpforms-welcome .upgrade-cta .left{float:left;width:66.666666%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .left{float:none;width:100%;padding-right:0;margin-bottom:20px}}#wpforms-welcome .upgrade-cta .right{float:right;width:33.333333%;padding-left:20px;text-align:center}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .right{float:none;width:100%;padding-left:0}}#wpforms-welcome .upgrade-cta .right h2{text-align:center;margin:0}#wpforms-welcome .upgrade-cta .right h2 span{display:inline-block;border-bottom:1px solid #555;padding:0 15px 12px}#wpforms-welcome .upgrade-cta .right .price{padding:26px 0}#wpforms-welcome .upgrade-cta .right .price .amount{font-size:48px;font-weight:600;position:relative;display:inline-block}#wpforms-welcome .upgrade-cta .right .price .amount:before{content:'$';position:absolute;top:-8px;left:-16px;font-size:18px}#wpforms-welcome .upgrade-cta .right .price .term{font-size:12px;display:inline-block}#wpforms-welcome .testimonials{background-color:#fff;border:2px solid #e1e1e1;border-top:0;padding:20px 0}#wpforms-welcome .testimonials .testimonial-block{margin:50px 0 0 0}#wpforms-welcome .testimonials .testimonial-block img{border-radius:50%;float:left;max-width:100px;box-shadow:0 0 18px rgba(0,0,0,0.2)}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block img{width:65px}}#wpforms-welcome .testimonials .testimonial-block p{font-size:14px;margin:0 0 12px 140px}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block p{margin-left:100px}}#wpforms-welcome .testimonials .testimonial-block p:last-of-type{margin-bottom:0}#wpforms-welcome .footer{background-color:#f1f1f1;border:2px solid #e1e1e1;border-top:0;border-radius:0 0 2px 2px}#wpforms-welcome.pro .features{border:2px solid #e1e1e1;margin-bottom:30px}#wpforms-welcome.pro .upgrade,#wpforms-welcome.pro .footer{display:none}#wpforms-welcome.pro .testimonials{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started .video-container{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started #wpfooter,.dashboard_page_wpforms-getting-started div.notice{display:none !important}#wpforms-admin-addons *,#wpforms-admin-addons *::before,#wpforms-admin-addons *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-addons .addons-container{margin-left:-20px;margin-right:-20px}#wpforms-admin-addons .unlock-msg{padding:0 20px;margin-top:-20px}#wpforms-admin-addons .addon-container{padding:0 20px;float:left;width:33.333333%}@media (max-width: 1249px){#wpforms-admin-addons .addon-container{width:50%}}@media (max-width: 767px){#wpforms-admin-addons .addon-container{width:100%}}#wpforms-admin-addons h4{font-size:17px;font-weight:700}#wpforms-admin-addons .addon-item{background-color:#fff;border:1px solid #ddd;border-radius:3px;margin:0 0 40px 0}@media (max-width: 767px){#wpforms-admin-addons .addon-item{margin:0 0}}#wpforms-admin-addons .addon-item img{border:1px solid #eee;float:left;max-width:75px}#wpforms-admin-addons .addon-item h5{margin:0 0 10px 100px;font-size:16px}#wpforms-admin-addons .addon-item p{margin:0 0 0 100px}#wpforms-admin-addons .addon-item .details{padding:30px 20px}#wpforms-admin-addons .addon-item .actions{background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;position:relative}#wpforms-admin-addons .addon-item .actions .msg{background-color:#f7f7f7;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;z-index:99;padding:20px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-align-items:center;align-items:center;justify-content:center}#wpforms-admin-addons .addon-item .actions .msg.success{color:#2a9b39}#wpforms-admin-addons .addon-item .actions .msg.error{color:red}#wpforms-admin-addons .addon-item .status{float:left;padding-top:8px}#wpforms-admin-addons .addon-item .status .status-inactive{color:red}#wpforms-admin-addons .addon-item .status .status-download{color:#666}#wpforms-admin-addons .addon-item .status .status-active{color:#2a9b39}#wpforms-admin-addons .addon-item .upgrade-button{text-align:center}#wpforms-admin-addons .addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button{float:right}#wpforms-admin-addons .addon-item .action-button button{background:none;border:1px solid #ddd;border-radius:3px;box-shadow:none;cursor:pointer;font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button button:hover,#wpforms-admin-addons .addon-item .action-button button.loading{background-color:#e9e9e9}#wpforms-admin-addons .addon-item .action-button button .fa{margin-right:8px}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-inactive .fa{color:red}#wpforms-admin-addons .addon-item .action-button button.status-download .fa{color:#999}#wpforms-admin-addons .addon-item .action-button button.loading .fa{color:#666}.wpforms-admin-settings *,.wpforms-admin-settings *::before,.wpforms-admin-settings *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-admin-settings .wpforms-setting-row{border-bottom:1px solid #e4e4e4;padding:30px 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row:first-of-type{padding-top:10px !important}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row{padding:20px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:20px 0}.wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4{margin:0}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field{margin:0;max-width:1000px}.wpforms-admin-settings .wpforms-setting-row.tools p,.wpforms-admin-settings .wpforms-setting-row.tools p:first-of-type{margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc{margin:0 0 0 30px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type{margin-top:12px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-select .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]{margin:-3px 10px 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{margin-right:30px;display:inline-block}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field label:before{content:" ";display:block;width:155px;height:180px;margin:0 0 10px 0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-default:before{background:url(../images/settings-email-html.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-none:before{background:url(../images/settings-email-plaintext.png) center center}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img{display:block;margin:0 0 20px 0;max-width:400px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .wpforms-color-picker{padding-left:40px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .minicolors-input-swatch{top:7px;left:7px;height:21px;width:21px;border-radius:2px}.wpforms-admin-settings .wpforms-setting-row h4{font-size:20px;font-weight:700;margin:0 0 6px 0}.wpforms-admin-settings .wpforms-setting-row h3{font-size:24px;font-weight:600;margin:0 0 20px 0}.wpforms-admin-settings .wpforms-setting-row p{margin:12px 0 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row p:first-of-type{margin:8px 0 0}.wpforms-admin-settings .wpforms-setting-row p.desc{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{width:300px}}.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus{border-color:#bbb}.wpforms-admin-settings .wpforms-setting-row button{margin-right:10px}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{display:block;max-width:400px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{width:300px}}.wpforms-admin-settings .wpforms-setting-row .progress-bar{background:#fff;border:1px solid #e27730;height:30px;width:100%;position:relative;border-radius:3px;margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar{background-color:#2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after{content:none;display:none}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar{display:block;background:#e27730;height:100%;left:0;position:absolute;-webkit-transition:width 0.5s ease-in-out;-moz-transition:width 0.5s ease-in-out;-o-transition:width 0.5s ease-in-out;transition:width 0.5s ease-in-out}@-webkit-keyframes progress{to{background-position:60px 0}}@-moz-keyframes progress{to{background-position:60px 0}}@keyframes progress{to{background-position:60px 0}}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-animation:progress 1s linear infinite;-moz-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-repeat:repeat-x;background-size:60px 60px;background-image:-webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.wpforms-admin-settings .wpforms-setting-label{display:block;float:left;width:200px;padding:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-label{float:none;width:100%;padding-bottom:15px}}.wpforms-admin-settings .wpforms-setting-label label{display:block;font-weight:600}.wpforms-admin-settings .wpforms-setting-field{display:block;margin:0 0 0 200px;max-width:800px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-field{margin:0}}.wpforms-admin-settings p.submit{margin:0;padding:25px 0}.wpforms-admin-settings .captcha-addon-notice{background-color:#fff;border:1px solid #e27730;border-radius:3px;padding:30px;max-width:1000px;margin:20px 0 0 0}.wpforms-admin-settings .captcha-addon-notice img{float:left;max-width:90px}.wpforms-admin-settings .captcha-addon-notice h5{margin:0 0 10px 120px;font-size:18px}.wpforms-admin-settings .captcha-addon-notice p{margin:0 0 0 120px;font-size:14px;line-height:1.3}.wpforms-admin-settings .info-area{display:block;width:100%;max-width:1000px;height:450px;font-family:Menlo,Monaco,monospace;font-size:12px;background:#fff;box-shadow:none;border:1px solid #ddd;white-space:pre;overflow:auto;padding:20px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider{border-bottom:1px solid #ddd;padding:30px 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider.focus-out{opacity:0.4}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-header{cursor:pointer;max-width:1000px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo{float:left;position:relative}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo .fa{position:absolute;top:50%;margin:-9px 0 0 0;left:10px;color:#666;font-size:18px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-logo img{border:1px solid #ddd;max-width:90px;display:block;margin:0 0 0 40px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info{margin:0 0 0 160px;position:relative;padding:20px 0 0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info h3{margin:0 0 10px 0;font-size:20px;font-weight:600}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info p{margin:0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{color:#83c11f;width:135px;border:1px solid #83c11f;border-radius:4px;padding:8px 14px;font-size:16px;position:absolute;top:28px;right:0;display:none}.wpforms-admin-settings #wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 0 0 160px;display:none;max-width:840px}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul{padding:0;margin:0}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li{border-bottom:1px solid #ddd;margin:0;padding:10px 0;font-size:14px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type{border-top:1px solid #ddd}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type{margin-bottom:16px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{float:left;width:50%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{color:#999;float:left;width:35%}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{float:right;width:15%;text-align:right}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect{display:none;padding:20px;background-color:#ebf3fb;border:1px solid #0e6cad}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:block;padding:7px 12px;margin:5px 0;width:400px;min-height:35px}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]:focus{border-color:#bbb}.wpforms-admin-settings #wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect{display:block}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa{display:none}.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,.wpforms-admin-settings #wpforms-settings-providers .wpforms-settings-provider-accounts p{margin:0 0 15px 0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns{max-width:600px;position:relative}.wpforms-admin-settings .checkbox-multiselect-columns:after{content:".";display:block;height:0;line-height:0;font-size:0;clear:both;min-height:0;visibility:hidden}.wpforms-admin-settings .checkbox-multiselect-columns:before{content:"\f0ec";color:#999;font:normal normal normal 20px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:130px;left:50%;margin:0 0 0 -10px}.wpforms-admin-settings .checkbox-multiselect-columns .header{font-weight:600;font-size:13px;margin:0;padding:0 0 5px 0;text-align:center}.wpforms-admin-settings .checkbox-multiselect-columns .first-column,.wpforms-admin-settings .checkbox-multiselect-columns .second-column{width:45%;float:left}.wpforms-admin-settings .checkbox-multiselect-columns .second-column{float:right}.wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li{padding:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul{background-color:#fff;border:1px solid #ddd;border-radius:3px;position:relative;height:250px;padding:0;overflow-y:auto;margin:0;list-style-type:none}.wpforms-admin-settings .checkbox-multiselect-columns ul li{border-bottom:1px #eee solid;margin:0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label{display:block;padding:10px 10px 10px 32px;position:relative;vertical-align:baseline}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover{background-color:#e27730;color:#fff}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:before{content:"\f0c8";color:#ddd;font:normal normal normal 16px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:12px;left:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked{opacity:0.6}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{content:"\f14a";color:#2a9b39}.wpforms-admin-settings .checkbox-multiselect-columns ul li input{display:none}.wpforms-admin-settings .checkbox-multiselect-columns .all{color:#999;display:inline-block;font-size:13px;margin:10px 0 0}.wpforms-admin-settings #wpforms-importer-analyze{display:none}.wpforms-admin-settings #wpforms-importer-analyze .process-count,.wpforms-admin-settings #wpforms-importer-analyze p{font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade{display:none;font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade h5{font-size:18px;font-weight:600;padding:0;margin:30px 0 20px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade hr{border:none;border-bottom:1px solid #e4e4e4;margin:40px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn{margin-right:10px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li{list-style-type:disc;margin-left:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form{list-style-type:none;margin-left:0;font-weight:700}.wpforms-admin-settings #wpforms-importer-process{display:none}.wpforms-admin-settings #wpforms-importer-process .process-count,.wpforms-admin-settings #wpforms-importer-process .process-completed{font-size:14px}.wpforms-admin-settings #wpforms-importer-process .process-completed{display:none}.wpforms-admin-settings #wpforms-importer-process .status{margin:20px 0 30px;background-color:#fff;border-radius:3px;border:1px solid #ddd;max-height:800px;overflow-y:scroll;display:none}.wpforms-admin-settings #wpforms-importer-process .status .item{border-bottom:1px solid #ddd;padding:20px}.wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type{border:none}.wpforms-admin-settings #wpforms-importer-process .status .item p{font-size:13px;margin:12px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item ul{font-size:13px;margin:12px 0 0 16px}.wpforms-admin-settings #wpforms-importer-process .status .item ul li{list-style:disc}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon{display:inline-block;margin:0 10px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle{color:#00a0d2}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#46b450}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle{color:#ffb900}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:red}.wpforms-admin-settings #wpforms-importer-process .status .item .name{font-size:14px;float:left}.wpforms-admin-settings #wpforms-importer-process .status .item .actions{font-size:14px;float:right}.wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep{color:#ddd}
2
 
assets/css/wpforms-base.css CHANGED
@@ -430,6 +430,32 @@
430
  width:auto;
431
  }
432
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
433
 
434
  /* Page Indicator themes
435
  ----------------------------------------------------------------------------- */
@@ -687,6 +713,17 @@ div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:
687
  display: none;
688
  }
689
 
 
 
 
 
 
 
 
 
 
 
 
690
  /* Media Queries
691
  ----------------------------------------------------------------------------- */
692
 
430
  width:auto;
431
  }
432
 
433
+ /* Rating field
434
+ ----------------------------------------------------------------------------- */
435
+
436
+ .wpforms-container .wpforms-field-rating-item {
437
+ padding: 0 6px 0 0;
438
+ margin: 0;
439
+ display: inline-block;
440
+ }
441
+
442
+ .wpforms-container .wpforms-field-rating svg {
443
+ cursor: pointer;
444
+ -webkit-transform: perspective(1px) translateZ(0);
445
+ transform: perspective(1px) translateZ(0);
446
+ box-shadow: 0 0 1px transparent;
447
+ opacity: 0.60;
448
+ }
449
+
450
+ .wpforms-container .wpforms-field-rating-item.selected svg,
451
+ .wpforms-container .wpforms-field-rating-item.hover svg,
452
+ .wpforms-container .wpforms-field-rating-item input:focus + svg {
453
+ -webkit-transform: scale(1.3);
454
+ transform: scale(1.3);
455
+ opacity: 1;
456
+ }
457
+
458
+
459
 
460
  /* Page Indicator themes
461
  ----------------------------------------------------------------------------- */
713
  display: none;
714
  }
715
 
716
+ .wpforms-container .wpforms-screen-reader-element {
717
+ position: absolute !important;
718
+ clip: rect(0, 0, 0, 0);
719
+ height: 1px;
720
+ width: 1px;
721
+ border: 0;
722
+ overflow: hidden;
723
+ word-wrap: normal !important;
724
+ }
725
+
726
+
727
  /* Media Queries
728
  ----------------------------------------------------------------------------- */
729
 
assets/css/wpforms-full.css CHANGED
@@ -647,6 +647,33 @@ div.wpforms-container-full .wpforms-form .wpforms-field-credit-card-expiration s
647
  }
648
 
649
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
650
  /* Date/time field
651
  ----------------------------------------------------------------------------- */
652
 
@@ -681,6 +708,30 @@ div.wpforms-container-full .wpforms-form .wpforms-captcha-question {
681
  margin: 0 0 4px 0;
682
  }
683
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
684
  /* Page Indicator themes
685
  ----------------------------------------------------------------------------- */
686
 
@@ -920,6 +971,7 @@ div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:
920
  background-color: #ff3860;
921
  }
922
 
 
923
  /* Misc
924
  ----------------------------------------------------------------------------- */
925
 
@@ -942,6 +994,18 @@ div.wpforms-container-full .wpforms-form .wpforms-field-hidden {
942
  display: none;
943
  }
944
 
 
 
 
 
 
 
 
 
 
 
 
 
945
 
946
  /* Media Queries
947
  ----------------------------------------------------------------------------- */
647
  }
648
 
649
 
650
+ /* HTML field
651
+ ----------------------------------------------------------------------------- */
652
+
653
+ div.wpforms-container-full .wpforms-form .wpforms-field-html ul,
654
+ div.wpforms-container-full .wpforms-form .wpforms-field-html ol {
655
+ margin: 0 0 20px !important;
656
+ }
657
+
658
+ div.wpforms-container-full .wpforms-form .wpforms-field-html ul li,
659
+ div.wpforms-container-full .wpforms-form .wpforms-field-html ol li {
660
+ margin: 0 0 5px 0 !important;
661
+ }
662
+
663
+ div.wpforms-container-full .wpforms-form .wpforms-field-html ul li {
664
+ list-style: disc !important;
665
+ }
666
+
667
+ div.wpforms-container-full .wpforms-form .wpforms-field-html ol li {
668
+ list-style: decimal !important;
669
+ }
670
+
671
+ div.wpforms-container-full .wpforms-form .wpforms-field-html li > ul,
672
+ div.wpforms-container-full .wpforms-form .wpforms-field-html li > ol {
673
+ margin: 6px 0 0 20px !important;
674
+ }
675
+
676
+
677
  /* Date/time field
678
  ----------------------------------------------------------------------------- */
679
 
708
  margin: 0 0 4px 0;
709
  }
710
 
711
+ /* Rating field
712
+ ----------------------------------------------------------------------------- */
713
+
714
+ div.wpforms-container-full .wpforms-form .wpforms-field-rating-item {
715
+ padding-right: 6px;
716
+ }
717
+
718
+ div.wpforms-container-full .wpforms-form .wpforms-field-rating svg {
719
+ cursor: pointer;
720
+ -webkit-transform: perspective(1px) translateZ(0);
721
+ transform: perspective(1px) translateZ(0);
722
+ box-shadow: 0 0 1px transparent;
723
+ opacity: 0.60;
724
+ }
725
+
726
+ div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.selected svg,
727
+ div.wpforms-container-full .wpforms-form .wpforms-field-rating-item.hover svg,
728
+ div.wpforms-container-full .wpforms-form .wpforms-field-rating-item input:focus + svg {
729
+ -webkit-transform: scale(1.3);
730
+ transform: scale(1.3);
731
+ opacity: 1;
732
+ }
733
+
734
+
735
  /* Page Indicator themes
736
  ----------------------------------------------------------------------------- */
737
 
971
  background-color: #ff3860;
972
  }
973
 
974
+
975
  /* Misc
976
  ----------------------------------------------------------------------------- */
977
 
994
  display: none;
995
  }
996
 
997
+ div.wpforms-container-full .wpforms-form .wpforms-screen-reader-element {
998
+ position: absolute !important;
999
+ clip: rect(0, 0, 0, 0) !important;
1000
+ height: 1px !important;
1001
+ width: 1px !important;
1002
+ border: 0 !important;
1003
+ margin: 0 !important;
1004
+ padding: 0 !important;
1005
+ overflow: hidden !important;
1006
+ word-wrap: normal !important;
1007
+ }
1008
+
1009
 
1010
  /* Media Queries
1011
  ----------------------------------------------------------------------------- */
assets/fonts/wpforms-menu.eot DELETED
Binary file
assets/fonts/wpforms-menu.svg DELETED
@@ -1,11 +0,0 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg xmlns="http://www.w3.org/2000/svg">
4
- <metadata>Generated by Fontastic.me</metadata>
5
- <defs>
6
- <font id="wpforms" horiz-adv-x="512">
7
- <font-face font-family="wpforms" units-per-em="512" ascent="480" descent="-32"/>
8
- <missing-glyph horiz-adv-x="512" />
9
-
10
- <glyph glyph-name="wpforms-menu-icon" unicode="&#97;" d="M0 49l0 414c0 27 22 49 49 49l414 0c27 0 49-22 49-49l0-414c0-27-22-49-49-49l-414 0c-27 0-49 22-49 49z m88 202l84 0 0-43-84 0z m112 0l224 0 0-43-224 0z m-112 85l84 0 0-42-84 0z m112 0l224 0 0-42-224 0z m111-170l113 0 0-43-113 0z m-65 303l-62-50-73 50z m155 0l-73-50-62 50z m51 0l-126-85-70 57-70-57-126 85-11 0c-3 0-6-3-6-6l0-414c0-3 3-6 6-6l414 0c3 0 6 3 6 6l0 414c0 3-3 6-6 6l-11 0z"/>
11
- </font></defs></svg>
 
 
 
 
 
 
 
 
 
 
 
assets/fonts/wpforms-menu.ttf DELETED
Binary file
assets/fonts/wpforms-menu.woff DELETED
Binary file
assets/js/admin-builder-conditional-logic-core.js CHANGED
@@ -64,7 +64,7 @@
64
  $rows = $rows || $('.wpforms-conditional-row'); // jshint ignore:line
65
 
66
  var fields = $.extend({}, allFields),
67
- allowed = ['text', 'textarea', 'select', 'radio', 'email', 'url', 'checkbox', 'number', 'payment-multiple', 'payment-select', 'hidden'],
68
  changed = [],
69
  key = '',
70
  label = '';
@@ -315,7 +315,13 @@
315
  } else {
316
 
317
  // Text type fields (everything else) use text inputs
318
- $element = $('<input>').attr({ type: 'text', name: name, class: 'wpforms-conditional-value' });
 
 
 
 
 
 
319
  $operator.find('option').prop('disabled', false);
320
  }
321
 
64
  $rows = $rows || $('.wpforms-conditional-row'); // jshint ignore:line
65
 
66
  var fields = $.extend({}, allFields),
67
+ allowed = ['text', 'textarea', 'select', 'radio', 'email', 'url', 'checkbox', 'number', 'payment-multiple', 'payment-select', 'hidden', 'rating'],
68
  changed = [],
69
  key = '',
70
  label = '';
315
  } else {
316
 
317
  // Text type fields (everything else) use text inputs
318
+
319
+ // Determine input type.
320
+ var inputType = 'text';
321
+ if ( data.field.type === 'rating' ) {
322
+ inputType = 'number';
323
+ }
324
+ $element = $('<input>').attr({ type: inputType, name: name, class: 'wpforms-conditional-value' });
325
  $operator.find('option').prop('disabled', false);
326
  }
327
 
assets/js/admin-builder-conditional-logic-core.min.js DELETED
@@ -1 +0,0 @@
1
- !function($){var e={init:function(){e.bindUIActions()},bindUIActions:function(){$(document).on("change",".wpforms-conditionals-enable-toggle input[type=checkbox]",function(t){e.conditionalToggle(this,t)}),$(document).on("change",".wpforms-conditional-field",function(t){e.conditionalField(this,t)}),$(document).on("change",".wpforms-conditional-operator",function(t){e.conditionalOperator(this,t)}),$(document).on("click",".wpforms-conditional-rule-add",function(t){e.conditionalRuleAdd(this,t)}),$(document).on("click",".wpforms-conditional-rule-delete",function(t){e.conditionalRuleDelete(this,t)}),$(document).on("click",".wpforms-conditional-groups-add",function(t){e.conditionalGroupAdd(this,t)}),$(document).on("wpformsFieldUpdate",e.conditionalUpdateOptions)},conditionalUpdateOptions:function(e,t,i){i=i||$(".wpforms-conditional-row");var o=$.extend({},t),n=["text","textarea","select","radio","email","url","checkbox","number","payment-multiple","payment-select","hidden"],l=[],a="",d="";if(!wpf.empty(o)){for(a in o)-1===$.inArray(o[a].type,n)?delete o[a]:void 0!==o[a].dynamic_choices&&""!==o[a].dynamic_choices&&delete o[a];if(i.each(function(e,t){var i=$(this),n=i.attr("data-field-id"),r=i.find(".wpforms-conditional-field"),c=r.find("option:selected").val(),p=i.find(".wpforms-conditional-value"),f="";r.empty().append($("<option>",{value:"",text:wpforms_builder.select_field}));for(a in o)d=o[a].label.length?wpf.sanitizeString(o[a].label):wpforms_builder.field+" #"+o[a].id,n&&n===o[a].id||r.append($("<option>",{value:o[a].id,text:d}));if(!c)return!0;if(r.find('option[value="'+c+'"]').length){if(r.find('option[value="'+c+'"]').prop("selected",!0),p.length&&p.is("select")){f=p.find("option:selected").val(),p.empty(),p.append($("<option>",{value:"",text:wpforms_builder.select_choice}));for(a in o["field_"+c].choices)d=wpf.sanitizeString(o["field_"+c].choices[a].label),p.append($("<option>",{value:o["field_"+c].choices[a].key,text:d}));p.find('option[value="'+f+'"]').length?p.find('option[value="'+f+'"]').prop("selected",!0):f.length>0&&l.push(i.closest(".wpforms-conditional-group").data("reference"))}}else{l.push(i.closest(".wpforms-conditional-group").data("reference"));var s=i.closest(".wpforms-conditional-group");if(1===s.find("table >tbody >tr").length){i.closest(".wpforms-conditional-groups").find(".wpforms-conditional-group").length>1?s.remove():(i.find(".wpforms-conditional-value").remove(),i.find(".value").append("<select>"))}else i.remove()}}),l.length>0){var r=l.reduce(function(e,t){return e.indexOf(t)<0&&e.push(t),e},[]),c=wpforms_builder.conditionals_change;for(a in r)wpf.isNumber(r[a])?t["field_"+r[a]].label.length?c+="<br/>"+wpf.sanitizeString(t["field_"+r[a]].label)+" ("+wpforms_builder.field+" #"+r[a]+")":c+="<br>"+wpforms_builder.field+" #"+r[a]:c+="<br>"+r[a];$.alert({title:wpforms_builder.heads_up,content:c,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})}}},conditionalToggle:function(t,i){i.preventDefault();var o=$(t),n=o.parent().parent(),l=wp.template("wpforms-conditional-block"),a={fieldID:o.parent().data("field-id"),fieldName:o.data("name"),actions:o.data("actions"),actionDesc:o.data("action-desc")};o.is(":checked")?(n.append(l(a)),e.conditionalUpdateOptions(!1,wpf.getFields(!1,!0),n.find(".wpforms-conditional-row"))):$.confirm({title:!1,content:wpforms_builder.conditionals_disable,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",action:function(){n.find(".wpforms-conditional-groups").remove()}},cancel:{text:wpforms_builder.cancel,action:function(){o.prop("checked",!0)}}}})},conditionalField:function(t,i){i.preventDefault();var o=$(t),n=o.parent().parent(),l=n.find(".wpforms-conditional-operator"),a=l.find("option:selected").val(),d=e.conditionalData(o),r=d.inputName+"["+d.groupID+"]["+d.ruleID+"][value]",c;if(d.field)if("select"===d.field.type||"radio"===d.field.type||"checkbox"===d.field.type||"payment-multiple"===d.field.type||"payment-select"===d.field.type){if(c=$("<select>").attr({name:r,class:"wpforms-conditional-value"}),c.append($("<option>",{value:"",text:wpforms_builder.select_choice})),d.field.choices)for(var p in d.field.choices)c.append($("<option>",{value:d.field.choices[p].key,text:wpf.sanitizeString(d.field.choices[p].label)}));l.find("option:not([value='=='],[value='!='],[value='e'],[value='!e'])").prop("disabled",!0).prop("selected",!1)}else c=$("<input>").attr({type:"text",name:r,class:"wpforms-conditional-value"}),l.find("option").prop("disabled",!1);else c=$("<select>");"e"!==a&&"!e"!==a||c.prop("disabled",!0),n.find(".value").empty().append(c)},conditionalOperator:function(e,t){t.preventDefault();var i=$(e),o=i.parent().parent(),n=o.find(".wpforms-conditional-value"),l=i.find("option:selected").val();"e"===l||"!e"===l?(n.prop("disabled",!0),n.is("select")?n.find("option:selected").prop("selected",!1):n.val("")):n.prop("disabled",!1)},conditionalRuleAdd:function(t,i){i.preventDefault();var o=$(t),n=o.closest(".wpforms-conditional-group"),l=n.find("tr").last(),a=l.clone(),d=a.find(".wpforms-conditional-field"),r=a.find(".wpforms-conditional-operator"),c=e.conditionalData(d),p=Number(c.ruleID)+1,f=c.inputName+"["+c.groupID+"]["+p+"]";a.find("option:selected").prop("selected",!1),a.find(".value").empty().append($("<select>")),d.attr("name",f+"[field]").attr("data-ruleid",p),r.attr("name",f+"[operator]"),l.after(a)},conditionalRuleDelete:function(e,t){t.preventDefault();var i=$(e),o=i.closest(".wpforms-conditional-group"),n=o.find("table >tbody >tr");if(n&&1===n.length){if(!(i.closest(".wpforms-conditional-groups").find(".wpforms-conditional-group").length>1))return;o.remove()}else i.parent().parent().remove()},conditionalGroupAdd:function(t,i){i.preventDefault();var o=$(t),n=o.parent().find(".wpforms-conditional-group").last(),l=n.clone();l.find("tr").not(":first").remove();var a=l.find(".wpforms-conditional-field"),d=l.find(".wpforms-conditional-operator"),r=e.conditionalData(a),c=Number(r.groupID)+1,p=0,f=r.inputName+"["+c+"][0]";l.find("option:selected").prop("selected",!1),l.find(".value").empty().append($("<select>")),a.attr("name",f+"[field]").attr("data-ruleid",0).attr("data-groupid",c),d.attr("name",f+"[operator]"),o.before(l)},conditionalData:function(e){var t=$(e),i={fields:wpf.getFields(!1,!0),inputBase:t.closest(".wpforms-conditional-row").attr("data-input-name"),fieldID:t.closest(".wpforms-conditional-row").attr("data-field-id"),ruleID:t.attr("data-ruleid"),groupID:t.attr("data-groupid"),selectedID:t.find(":selected").val()};return i.inputName=i.inputBase+"[conditionals]",i.selectedID.length?i.field=i.fields["field_"+i.selectedID]:i.field=!1,i}};e.init()}(jQuery);
 
assets/js/admin-builder.js CHANGED
@@ -851,6 +851,74 @@
851
  e.preventDefault();
852
  WPFormsBuilder.fieldLayoutSelectorInsert(this);
853
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
854
  },
855
 
856
  /**
851
  e.preventDefault();
852
  WPFormsBuilder.fieldLayoutSelectorInsert(this);
853
  });
854
+
855
+ // Real-time updates for Rating field scale option.
856
+ $( document ).on( 'change', '.wpforms-field-option-row-scale select', function() {
857
+
858
+ var $this = $( this ),
859
+ value = $this.val(),
860
+ id = $this.parent().data( 'field-id' ),
861
+ $icons = $( '#wpforms-field-'+id +' .rating-icon' ),
862
+ x = 1;
863
+
864
+ $icons.each( function( index ) {;
865
+ if ( x <= value ) {
866
+ $( this ).show();
867
+ } else {
868
+ $( this ).hide();
869
+ }
870
+ x++;
871
+ });
872
+ });
873
+
874
+ // Real-time updates for Rating field icon option.
875
+ $( document ).on( 'change', '.wpforms-field-option-row-icon select', function() {
876
+
877
+ var $this = $( this ),
878
+ value = $this.val(),
879
+ id = $this.parent().data( 'field-id' ),
880
+ $icons = $( '#wpforms-field-'+id +' .rating-icon' ),
881
+ iconClass = 'fa-star';
882
+
883
+ if ( 'heart' === value ) {
884
+ iconClass = 'fa-heart';
885
+ } else if ( 'thumb' === value ) {
886
+ iconClass = 'fa-thumbs-up';
887
+ } else if ( 'smiley' === value ) {
888
+ iconClass = 'fa-smile-o';
889
+ }
890
+
891
+ $icons.removeClass( 'fa-star fa-heart fa-thumbs-up fa-smile-o' ).addClass( iconClass );
892
+ });
893
+
894
+ // Real-time updates for Rating field icon size option.
895
+ $( document ).on( 'change', '.wpforms-field-option-row-icon_size select', function() {
896
+
897
+ var $this = $( this ),
898
+ value = $this.val(),
899
+ id = $this.parent().data( 'field-id' ),
900
+ $icons = $( '#wpforms-field-'+id +' .rating-icon' );
901
+ fontSize = '28';
902
+
903
+ if ( 'small' === value ) {
904
+ fontSize = '18';
905
+ } else if ( 'large' === value ) {
906
+ fontSize = '38';
907
+ }
908
+
909
+ $icons.css( 'font-size', fontSize + 'px' );
910
+ });
911
+
912
+ // Real-time updates for Rating field icon color option.
913
+ $( document ).on( 'input', '.wpforms-field-option-row-icon_color input.wpforms-color-picker', function() {
914
+
915
+ var $this = $( this ),
916
+ value = $this.val(),
917
+ id = $this.closest( '.wpforms-field-option-row' ).data( 'field-id' ),
918
+ $icons = $( '#wpforms-field-'+id +' i.fa' );
919
+
920
+ $icons.css( 'color', value );
921
+ });
922
  },
923
 
924
  /**
assets/js/admin.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){"use strict";var t,n={settings:{iconActivate:'<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',iconDeactivate:'<i class="fa fa-toggle-on" aria-hidden="true"></i>',iconInstall:'<i class="fa fa-cloud-download" aria-hidden="true"></i>',iconSpinner:'<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>',mediaFrame:!1},init:function(){t=this.settings,e(document).ready(n.ready),n.initFormOverview(),n.initEntriesSingle(),n.initEntriesList(),n.initWelcome(),n.initAddons(),n.initSettings(),n.initTools(),n.initUpgrades()},ready:function(){e(".notice").show(),e("#screen-meta-links, #screen-meta").prependTo("#wpforms-header-temp").show(),n.initChoicesJS(),n.initCheckboxMultiselectColumns(),e(".wpforms-color-picker").minicolors(),e(".wpforms-file-upload").each(function(){var t=e(this).find("input[type=file]"),n=e(this).find("label"),o=n.html();t.on("change",function(e){var t="";this.files&&this.files.length>1?t=(this.getAttribute("data-multiple-caption")||"").replace("{count}",this.files.length):e.target.value&&(t=e.target.value.split("\\").pop()),t?n.find(".fld").html(t):n.html(o)}),t.on("focus",function(){t.addClass("has-focus")}).on("blur",function(){t.removeClass("has-focus")})}),jconfirm.defaults={closeIcon:!0,backgroundDismiss:!0,escapeKey:!0,animationBounce:1,useBootstrap:!1,theme:"modern",boxWidth:"400px"},e(document).on("click",".wpforms-upgrade-modal",function(){e.alert({title:!1,content:wpforms_admin.upgrade_modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).trigger("wpformsReady")},initChoicesJS:function(){e(".choicesjs-select").each(function(){var t=e(this),n={searchEnabled:!1};t.attr("multiple")&&(n.searchEnabled=!0,n.removeItemButton=!0),t.data("placeholder")&&(n.placeholderValue=t.data("placeholder")),t.data("search")&&(n.searchEnabled=!0),new Choices(t[0],n)})},initCheckboxMultiselectColumns:function(){e(document).on("change",".checkbox-multiselect-columns input",function(t){var n=e(this),o=n.parent(),i=n.closest(".checkbox-multiselect-columns"),a=o.text(),r="check-item-"+n.val(),s=i.find("#"+r);n.prop("checked")?(n.parent().addClass("checked"),s.length||i.find(".second-column ul").append('<li id="'+r+'">'+a+"</li>")):(n.parent().removeClass("checked"),i.find("#"+r).remove())}),e(document).on("click",".checkbox-multiselect-columns .all",function(t){t.preventDefault(),e(this).closest(".checkbox-multiselect-columns").find("input[type=checkbox]").prop("checked",!0).trigger("change"),e(this).remove()})},initFormOverview:function(){e(document).on("click","#wpforms-overview .wp-list-table .delete a, #wpforms-overview .wp-list-table .duplicate a",function(t){t.preventDefault();var n=e(this).attr("href"),o=e(this).parent().hasClass("delete")?wpforms_admin.form_delete_confirm:wpforms_admin.form_duplicate_confirm;e.confirm({title:!1,content:o,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},initEntriesSingle:function(){"wpforms-entries"===n.getQueryString("page")&&"details"===n.getQueryString("view")&&n.entryHotkeys(),e(document).on("click","#wpforms-entries-single .submitdelete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-single .wpforms-entry-print a",function(t){t.preventDefault(),window.open(e(this).attr("href"))}),e(document).on("click","#wpforms-entries-single .wpforms-empty-field-toggle",function(t){t.preventDefault(),"true"==wpCookies.get("wpforms_entry_hide_empty")?(wpCookies.remove("wpforms_entry_hide_empty"),e(this).text(wpforms_admin.entry_empty_fields_hide)):(wpCookies.set("wpforms_entry_hide_empty","true",2592e3),e(this).text(wpforms_admin.entry_empty_fields_show)),e(".wpforms-entry-field.empty").toggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .add",function(t){t.preventDefault(),e(this).hide().next("form").slideToggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .cancel",function(t){t.preventDefault(),e(this).closest("form").slideToggle(),e(".wpforms-entry-notes-new .add").show()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-byline .note-delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_note_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entryHotkeys:function(){e(document).keydown(function(t){if(74!==t.keyCode||n.isFormTypeNode(t.target.nodeName)){if(75===t.keyCode&&!n.isFormTypeNode(t.target.nodeName)){var o=e("#wpforms-entry-next-link").attr("href");"#"!==o&&(window.location.href=o)}}else{var i=e("#wpforms-entry-prev-link").attr("href");"#"!==i&&(window.location.href=i)}})},initEntriesList:function(){e(document).on("click","#wpforms-entries-table-edit-columns",function(e){e.preventDefault(),n.entriesListFieldColumn()}),e(document).on("click","#wpforms-entries-list .form-selector .toggle",function(t){t.preventDefault(),e(this).toggleClass("active").next(".form-list").toggle()}),e(document).on("click","#wpforms-entries-list .wp-list-table .delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-star",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .starred-num").text()),a=n.data("id");n.hasClass("star")?(o="star",i++,n.attr("title",wpforms_admin.entry_unstar)):(o="unstar",i--,n.attr("title",wpforms_admin.entry_star)),n.toggleClass("star unstar"),e("#wpforms-entries-list .starred-num").text(i);var r={task:o,action:"wpforms_entry_list_star",nonce:wpforms_admin.nonce,entry_id:a};e.post(wpforms_admin.ajax_url,r)}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-read",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .unread-num").text()),a=n.data("id");n.hasClass("read")?(o="read",i--,n.attr("title",wpforms_admin.entry_unread)):(o="unread",i++,n.attr("title",wpforms_admin.entry_read)),n.toggleClass("read unread"),e("#wpforms-entries-list .unread-num").text(i);var r={task:o,action:"wpforms_entry_list_read",nonce:wpforms_admin.nonce,entry_id:a};e.post(wpforms_admin.ajax_url,r)}),e(document).on("click","#wpforms-entries-list .form-details-actions-deleteall",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_all_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entriesListFieldColumn:function(){e.alert({title:wpforms_admin.entry_field_columns,boxWidth:"500px",content:t.iconSpinner+e("#wpforms-field-column-select").html(),onContentReady:function(){var t=this.$content,n=t.find("select"),o=new Choices(n[0],{maxItemCount:5,placeholderValue:wpforms_admin.fields_select+"...",removeItemButton:!0,shouldSort:!1,callbackOnInit:function(){t.find(".fa").remove(),t.find("form").show()}});e(".jconfirm-content-pane, .jconfirm-box").css("overflow","visible"),o.passedElement.addEventListener("change",function(e){o.hideDropdown()},!1)},buttons:{confirm:{text:wpforms_admin.save_refresh,btnClass:"btn-confirm",keys:["enter"],action:function(){this.$content.find("form").submit()}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initWelcome:function(){e(document).on("click","#wpforms-welcome .play-video",function(t){t.preventDefault();e.dialog({title:!1,content:'<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube-nocookie.com/embed/yDyvSGV7tP4?rel=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe></div>',closeIcon:!0,boxWidth:"70%"})})},initAddons:function(){e(document).on("wpformsReady",function(){e("#wpforms-admin-addons").length&&e(".addon-item .details").matchHeight({byrow:!1,property:"min-height"})}),e(document).on("click","#wpforms-admin-addons .addon-item button",function(t){t.preventDefault(),n.addonToggle(e(this))})},addonToggle:function(n){var o,i,a,r,s,c=e(n),m=c.closest(".addon-item"),d=c.attr("data-plugin");if(c.prop("disabled",!0).addClass("loading"),c.html(t.iconSpinner),c.hasClass("status-active"))o="wpforms_deactivate_addon",i="status-inactive",a=wpforms_admin.addon_inactive,r=t.iconActivate+wpforms_admin.addon_activate,s=t.iconDeactivate+wpforms_admin.addon_deactivate;else if(c.hasClass("status-inactive"))o="wpforms_activate_addon",i="status-active",a=wpforms_admin.addon_active,r=t.iconDeactivate+wpforms_admin.addon_deactivate,s=t.iconActivate+wpforms_admin.addon_activate;else{if(!c.hasClass("status-download"))return;o="wpforms_install_addon",i="status-inactive",a=wpforms_admin.addon_inactive,r=t.iconActivate+wpforms_admin.addon_activate,s=t.iconInstall+wpforms_admin.addon_install}var l={action:o,nonce:wpforms_admin.nonce,plugin:d};e.post(wpforms_admin.ajax_url,l,function(t){if(t.success){if("wpforms_install_addon"===o){c.attr("data-plugin",t.data.basename);n=t.data.msg}else var n=t.data;m.find(".actions").append('<div class="msg success">'+n+"</div>"),m.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(i).text(a),c.removeClass("status-active status-inactive status-download").addClass(i).html(r)}else m.find(".actions").append('<div class="msg error">'+t.data+"</div>"),c.html(s);c.prop("disabled",!1).removeClass("loading"),setTimeout(function(){e(".addon-item .msg").remove()},3e3)}).fail(function(e){console.log(e.responseText)})},initSettings:function(){e(document).on("wpformsReady",function(){if(e("#wpforms-settings").length){var t=n.getQueryString("wpforms-integration"),o=n.getQueryString("jump");t?e("body").animate({scrollTop:e("#wpforms-integration-"+t).offset().top},1e3):o&&e("body").animate({scrollTop:e("#"+o).offset().top},1e3)}}),e(document).on("click",".wpforms-setting-row-image button",function(t){t.preventDefault(),n.imageUploadModal(e(this))}),e(document).on("click","#wpforms-setting-license-key-verify",function(t){t.preventDefault(),n.licenseVerify(e(this))}),e(document).on("click","#wpforms-setting-license-key-deactivate",function(t){t.preventDefault(),n.licenseDeactivate(e(this))}),e(document).on("click","#wpforms-setting-license-key-refresh",function(t){t.preventDefault(),n.licenseRefresh(e(this))}),e(document).on("click",".wpforms-settings-provider-connect",function(t){t.preventDefault(),n.integrationConnect(e(this))}),e(document).on("click",".wpforms-settings-provider-accounts-list a",function(t){t.preventDefault(),n.integrationDisconnect(e(this))}),e(document).on("click",".wpforms-settings-provider-header",function(t){t.preventDefault(),e(this).parent().find(".wpforms-settings-provider-accounts").slideToggle(),e(this).parent().find(".wpforms-settings-provider-logo i").toggleClass("fa-chevron-right fa-chevron-down")}),e(document).on("click",".wpforms-settings-provider-accounts-toggle a",function(t){t.preventDefault();var n=e(this).parent().next(".wpforms-settings-provider-accounts-connect");n.find("input[type=text], input[type=password]").val(""),n.slideToggle()})},imageUploadModal:function(n){if(t.media_frame)t.media_frame.open();else{var o=e(n).closest(".wpforms-setting-field");t.media_frame=wp.media.frames.wpforms_media_frame=wp.media({className:"media-frame wpforms-media-frame",frame:"select",multiple:!1,title:wpforms_admin.upload_image_title,library:{type:"image"},button:{text:wpforms_admin.upload_image_button}}),t.media_frame.on("select",function(){var e=t.media_frame.state().get("selection").first().toJSON();o.find("input[type=text]").val(e.url),o.find("img").remove(),o.prepend('<img src="'+e.url+'">')}),t.media_frame.open()}},licenseVerify:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),a=o.outerWidth(),r=o.text(),s={action:"wpforms_verify_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};o.html(t.iconSpinner).css("width",a).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(t){var n,a="fa fa-check-circle",s="green";t.success?(n=t.data.msg,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").show(),i.find(".type strong").text(t.data.type),e(".wpforms-license-notice").remove()):(a="fa fa-exclamation-circle",s="orange",n=t.data,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:n,icon:a,type:s,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(r).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseDeactivate:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),a=o.outerWidth(),r=o.text(),s={action:"wpforms_deactivate_license",nonce:wpforms_admin.nonce};o.html(t.iconSpinner).css("width",a).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(t){var n="fa fa-info-circle",a="blue",s=t.data;t.success?(i.find("#wpforms-setting-license-key").val(""),i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()):(n="fa fa-exclamation-circle",a="orange"),e.alert({title:!1,content:s,icon:n,type:a,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(r).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseRefresh:function(t){var n=e(t).closest(".wpforms-setting-row"),o={action:"wpforms_refresh_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};e.post(wpforms_admin.ajax_url,o,function(t){var o,i="fa fa-check-circle",a="green";t.success?(o=t.data.msg,n.find(".type strong").text(t.data.type)):(i="fa fa-exclamation-circle",a="orange",o=t.data,n.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:o,icon:i,type:a,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(e){console.log(e.responseText)})},integrationConnect:function(t){var n=e(t),o=n.outerWidth(),i=n.text(),a=n.closest(".wpforms-settings-provider"),r={action:"wpforms_settings_provider_add",data:n.closest("form").serialize(),provider:n.data("provider"),nonce:wpforms_admin.nonce};n.html("Connecting...").css("width",o).prop("disabled",!0),e.post(wpforms_admin.ajax_url,r,function(t){if(t.success)a.find(".wpforms-settings-provider-accounts-list ul").append(t.data.html),a.addClass("connected"),n.closest(".wpforms-settings-provider-accounts-connect").slideToggle();else{var o=wpforms_admin.provider_auth_error;t.data.error_msg&&(o+="\n"+t.data.error_msg),e.alert({title:!1,content:o,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),console.log(t)}n.html(i).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},integrationDisconnect:function(t){var n=e(t),o={action:"wpforms_settings_provider_disconnect",provider:n.data("provider"),key:n.data("key"),nonce:wpforms_admin.nonce};e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.provider_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){e.post(wpforms_admin.ajax_url,o,function(e){e.success?n.parent().remove():console.log(e)}).fail(function(e){console.log(e.responseText)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initTools:function(){e(document).on("click","#wpforms-importer-forms-submit",function(t){if(t.preventDefault(),e("#wpforms-importer-forms input:checked").length){var o=[];e("#wpforms-importer-forms input:checked").each(function(t){o[t]=e(this).val()}),wpforms_admin.isPro?n.importForms(o):n.analyzeForms(o)}else e.alert({title:!1,content:wpforms_admin.importer_forms_required,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).on("click","#wpforms-importer-continue-submit",function(e){e.preventDefault(),n.importForms(t.formIDs)})},analyzeForms:function(o){var i=e("#wpforms-importer-analyze");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms").hide(),i.show(),t.analyzeQueue=o,t.analyzed=0,t.analyzeUpgrade=[],t.formIDs=o,n.analyzeForm()},analyzeForm:function(){var o=e("#wpforms-importer-analyze"),i=_.first(t.analyzeQueue),a={action:"wpforms_import_form_"+n.getQueryString("provider"),analyze:1,form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,a,function(e){if(e.success)if(_.isEmpty(e.data.upgrade_plain)&&_.isEmpty(e.data.upgrade_omit)||t.analyzeUpgrade.push({name:e.data.name,fields:_.union(e.data.upgrade_omit,e.data.upgrade_plain)}),t.analyzeQueue=_.without(t.analyzeQueue,i),t.analyzed++,_.isEmpty(t.analyzeQueue))if(_.isEmpty(t.analyzeUpgrade))n.importForms(t.formIDs);else{var a=wp.template("wpforms-importer-upgrade");o.find(".upgrade").append(a(t.analyzeUpgrade)),o.find(".upgrade").show(),o.find(".process-analyze").hide()}else o.find(".form-current").text(t.analyzed+1),n.analyzeForm()})},importForms:function(o){var i=e("#wpforms-importer-process");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms, #wpforms-importer-analyze").hide(),i.show(),t.importQueue=o,t.imported=0,n.importForm()},importForm:function(){var o=e("#wpforms-importer-process"),i=_.first(t.importQueue),a={action:"wpforms_import_form_"+n.getQueryString("provider"),form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,a,function(e){if(e.success){if(e.data.error)a=wp.template("wpforms-importer-status-error");else var a=wp.template("wpforms-importer-status-update");o.find(".status").prepend(a(e.data)),o.find(".status").show(),t.importQueue=_.without(t.importQueue,i),t.imported++,_.isEmpty(t.importQueue)?(o.find(".process-count").hide(),o.find(".forms-completed").text(t.imported),o.find(".process-completed").show()):(o.find(".form-current").text(t.imported+1),n.importForm())}})},initUpgrades:function(){e(document).on("click","#wpforms-upgrade-143 button",function(o){o.preventDefault();var i=e(this),a=i.outerWidth(),r=e("#wpforms-upgrade-143 .status"),s={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,init:!0,incomplete:i.data("incomplete")};i.html(t.iconSpinner).css("width",a).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(e){if(e.success){t.upgraded=Number(e.data.upgraded),t.upgradeTotal=Number(e.data.total);var o=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);i.remove(),r.find(".bar").css("width",o+"%"),r.show().find(".total").text(t.upgradeTotal),r.find(".current").text(t.upgraded),r.find(".percent").text(o+"%"),n.upgrade143()}})})},upgrade143:function(){var o=e("#wpforms-upgrade-143 .status"),i={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,upgraded:t.upgraded};e.post(wpforms_admin.ajax_url,i,function(e){if(e.success){t.upgraded=Number(t.upgraded)+Number(e.data.count);var i=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);o.find(".bar").css("width",i+"%"),Number(e.data.count)<10?(o.find(".progress-bar").addClass("complete"),o.find(".msg").text(wpforms_admin.upgrade_completed)):(o.find(".current").text(t.upgraded),o.find(".percent").text(i+"%"),n.upgrade143())}})},isFormTypeNode:function(e){return"TEXTAREA"===(e=e||!1)||"INPUT"===e||"SELECT"===e},getQueryString:function(e){var t=new RegExp("[?&]"+e+"=([^&]*)").exec(window.location.search);return t&&decodeURIComponent(t[1].replace(/\+/g," "))}};n.init()}(jQuery);
1
+ !function(e){"use strict";var t,n={settings:{iconActivate:'<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',iconDeactivate:'<i class="fa fa-toggle-on" aria-hidden="true"></i>',iconInstall:'<i class="fa fa-cloud-download" aria-hidden="true"></i>',iconSpinner:'<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>',mediaFrame:!1},init:function(){t=this.settings,e(document).ready(n.ready),n.initFormOverview(),n.initEntriesSingle(),n.initEntriesList(),n.initWelcome(),n.initAddons(),n.initSettings(),n.initTools(),n.initUpgrades()},ready:function(){e(".notice").show(),e("#screen-meta-links, #screen-meta").prependTo("#wpforms-header-temp").show(),n.initChoicesJS(),n.initCheckboxMultiselectColumns(),e(".wpforms-color-picker").minicolors(),e(".wpforms-file-upload").each(function(){var t=e(this).find("input[type=file]"),n=e(this).find("label"),o=n.html();t.on("change",function(e){var t="";this.files&&this.files.length>1?t=(this.getAttribute("data-multiple-caption")||"").replace("{count}",this.files.length):e.target.value&&(t=e.target.value.split("\\").pop()),t?n.find(".fld").html(t):n.html(o)}),t.on("focus",function(){t.addClass("has-focus")}).on("blur",function(){t.removeClass("has-focus")})}),jconfirm.defaults={closeIcon:!0,backgroundDismiss:!0,escapeKey:!0,animationBounce:1,useBootstrap:!1,theme:"modern",boxWidth:"400px"},e(document).on("click",".wpforms-upgrade-modal",function(){e.alert({title:!1,content:wpforms_admin.upgrade_modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).trigger("wpformsReady")},initChoicesJS:function(){e(".choicesjs-select").each(function(){var t=e(this),n={searchEnabled:!1};t.attr("multiple")&&(n.searchEnabled=!0,n.removeItemButton=!0),t.data("placeholder")&&(n.placeholderValue=t.data("placeholder")),"off"===t.data("sorting")&&(n.shouldSort=!1),t.data("search")&&(n.searchEnabled=!0),new Choices(t[0],n)})},initCheckboxMultiselectColumns:function(){e(document).on("change",".checkbox-multiselect-columns input",function(){var t=e(this),n=t.parent(),o=t.closest(".checkbox-multiselect-columns"),i=n.text(),r="check-item-"+t.val(),a=o.find("#"+r);t.prop("checked")?(t.parent().addClass("checked"),a.length||o.find(".second-column ul").append('<li id="'+r+'">'+i+"</li>")):(t.parent().removeClass("checked"),o.find("#"+r).remove())}),e(document).on("click",".checkbox-multiselect-columns .all",function(t){t.preventDefault(),e(this).closest(".checkbox-multiselect-columns").find("input[type=checkbox]").prop("checked",!0).trigger("change"),e(this).remove()})},initFormOverview:function(){e(document).on("click","#wpforms-overview .wp-list-table .delete a, #wpforms-overview .wp-list-table .duplicate a",function(t){t.preventDefault();var n=e(this).attr("href"),o=e(this).parent().hasClass("delete")?wpforms_admin.form_delete_confirm:wpforms_admin.form_duplicate_confirm;e.confirm({title:!1,content:o,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},initEntriesSingle:function(){"wpforms-entries"===n.getQueryString("page")&&"details"===n.getQueryString("view")&&n.entryHotkeys(),e(document).on("click","#wpforms-entries-single .submitdelete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-single .wpforms-entry-print a",function(t){t.preventDefault(),window.open(e(this).attr("href"))}),e(document).on("click","#wpforms-entries-single .wpforms-empty-field-toggle",function(t){t.preventDefault(),"true"===wpCookies.get("wpforms_entry_hide_empty")?(wpCookies.remove("wpforms_entry_hide_empty"),e(this).text(wpforms_admin.entry_empty_fields_hide)):(wpCookies.set("wpforms_entry_hide_empty","true",2592e3),e(this).text(wpforms_admin.entry_empty_fields_show)),e(".wpforms-entry-field.empty").toggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .add",function(t){t.preventDefault(),e(this).hide().next("form").slideToggle()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .cancel",function(t){t.preventDefault(),e(this).closest("form").slideToggle(),e(".wpforms-entry-notes-new .add").show()}),e(document).on("click","#wpforms-entries-single .wpforms-entry-notes-byline .note-delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_note_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entryHotkeys:function(){e(document).keydown(function(t){if(74!==t.keyCode||n.isFormTypeNode(t.target.nodeName)){if(75===t.keyCode&&!n.isFormTypeNode(t.target.nodeName)){var o=e("#wpforms-entry-next-link").attr("href");"#"!==o&&(window.location.href=o)}}else{var i=e("#wpforms-entry-prev-link").attr("href");"#"!==i&&(window.location.href=i)}})},initEntriesList:function(){e(document).on("click","#wpforms-entries-table-edit-columns",function(e){e.preventDefault(),n.entriesListFieldColumn()}),e(document).on("click","#wpforms-entries-list .form-selector .toggle",function(t){t.preventDefault(),e(this).toggleClass("active").next(".form-list").toggle()}),e(document).on("click","#wpforms-entries-list .wp-list-table .delete",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-star",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .starred-num").text()),r=n.data("id");n.hasClass("star")?(o="star",i++,n.attr("title",wpforms_admin.entry_unstar)):(o="unstar",i--,n.attr("title",wpforms_admin.entry_star)),n.toggleClass("star unstar"),e("#wpforms-entries-list .starred-num").text(i);var a={task:o,action:"wpforms_entry_list_star",nonce:wpforms_admin.nonce,entry_id:r};e.post(wpforms_admin.ajax_url,a)}),e(document).on("click","#wpforms-entries-list .wp-list-table .indicator-read",function(t){t.preventDefault();var n=e(this),o="",i=Number(e("#wpforms-entries-list .unread-num").text()),r=n.data("id");n.hasClass("read")?(o="read",i--,n.attr("title",wpforms_admin.entry_unread)):(o="unread",i++,n.attr("title",wpforms_admin.entry_read)),n.toggleClass("read unread"),e("#wpforms-entries-list .unread-num").text(i);var a={task:o,action:"wpforms_entry_list_read",nonce:wpforms_admin.nonce,entry_id:r};e.post(wpforms_admin.ajax_url,a)}),e(document).on("click","#wpforms-entries-list .form-details-actions-deleteall",function(t){t.preventDefault();var n=e(this).attr("href");e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_all_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=n}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entriesListFieldColumn:function(){e.alert({title:wpforms_admin.entry_field_columns,boxWidth:"500px",content:t.iconSpinner+e("#wpforms-field-column-select").html(),onContentReady:function(){var t=this.$content,n=t.find("select"),o=new Choices(n[0],{maxItemCount:5,placeholderValue:wpforms_admin.fields_select+"...",removeItemButton:!0,shouldSort:!1,callbackOnInit:function(){t.find(".fa").remove(),t.find("form").show()}});e(".jconfirm-content-pane, .jconfirm-box").css("overflow","visible"),o.passedElement.addEventListener("change",function(){o.hideDropdown()},!1)},buttons:{confirm:{text:wpforms_admin.save_refresh,btnClass:"btn-confirm",keys:["enter"],action:function(){this.$content.find("form").submit()}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initWelcome:function(){e(document).on("click","#wpforms-welcome .play-video",function(t){t.preventDefault();e.dialog({title:!1,content:'<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube-nocookie.com/embed/yDyvSGV7tP4?rel=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe></div>',closeIcon:!0,boxWidth:"70%"})})},initAddons:function(){e(document).on("wpformsReady",function(){e("#wpforms-admin-addons").length&&e(".addon-item .details").matchHeight({byrow:!1,property:"min-height"})}),e(document).on("click","#wpforms-admin-addons .addon-item button",function(t){t.preventDefault(),n.addonToggle(e(this))})},addonToggle:function(n){var o,i,r,a,s,c,m=e(n),d=m.closest(".addon-item"),l=m.attr("data-plugin");if(m.prop("disabled",!0).addClass("loading"),m.html(t.iconSpinner),m.hasClass("status-active"))o="wpforms_deactivate_addon",i="status-inactive",r=wpforms_admin.addon_inactive,a=t.iconActivate+wpforms_admin.addon_activate,s=t.iconDeactivate+wpforms_admin.addon_deactivate;else if(m.hasClass("status-inactive"))o="wpforms_activate_addon",i="status-active",r=wpforms_admin.addon_active,a=t.iconDeactivate+wpforms_admin.addon_deactivate,s=t.iconActivate+wpforms_admin.addon_activate;else{if(!m.hasClass("status-download"))return;o="wpforms_install_addon",i="status-inactive",r=wpforms_admin.addon_inactive,a=t.iconActivate+wpforms_admin.addon_activate,s=t.iconInstall+wpforms_admin.addon_install}var f={action:o,nonce:wpforms_admin.nonce,plugin:l};e.post(wpforms_admin.ajax_url,f,function(t){t.success?("wpforms_install_addon"===o?(m.attr("data-plugin",t.data.basename),c=t.data.msg):c=t.data,d.find(".actions").append('<div class="msg success">'+c+"</div>"),d.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(i).text(r),m.removeClass("status-active status-inactive status-download").addClass(i).html(a)):(d.find(".actions").append('<div class="msg error">'+t.data+"</div>"),m.html(s)),m.prop("disabled",!1).removeClass("loading"),setTimeout(function(){e(".addon-item .msg").remove()},3e3)}).fail(function(e){console.log(e.responseText)})},initSettings:function(){e(document).on("wpformsReady",function(){if(e("#wpforms-settings").length){var t=n.getQueryString("wpforms-integration"),o=n.getQueryString("jump");t?e("body").animate({scrollTop:e("#wpforms-integration-"+t).offset().top},1e3):o&&e("body").animate({scrollTop:e("#"+o).offset().top},1e3)}}),e(document).on("click",".wpforms-setting-row-image button",function(t){t.preventDefault(),n.imageUploadModal(e(this))}),e(document).on("click","#wpforms-setting-license-key-verify",function(t){t.preventDefault(),n.licenseVerify(e(this))}),e(document).on("click","#wpforms-setting-license-key-deactivate",function(t){t.preventDefault(),n.licenseDeactivate(e(this))}),e(document).on("click","#wpforms-setting-license-key-refresh",function(t){t.preventDefault(),n.licenseRefresh(e(this))}),e(document).on("click",".wpforms-settings-provider-connect",function(t){t.preventDefault(),n.integrationConnect(e(this))}),e(document).on("click",".wpforms-settings-provider-accounts-list a",function(t){t.preventDefault(),n.integrationDisconnect(e(this))}),e(document).on("click",".wpforms-settings-provider-header",function(t){t.preventDefault(),e(this).parent().find(".wpforms-settings-provider-accounts").slideToggle(),e(this).parent().find(".wpforms-settings-provider-logo i").toggleClass("fa-chevron-right fa-chevron-down")}),e(document).on("click",".wpforms-settings-provider-accounts-toggle a",function(t){t.preventDefault();var n=e(this).parent().next(".wpforms-settings-provider-accounts-connect");n.find("input[type=text], input[type=password]").val(""),n.slideToggle()})},imageUploadModal:function(n){if(t.media_frame)t.media_frame.open();else{var o=e(n).closest(".wpforms-setting-field");t.media_frame=wp.media.frames.wpforms_media_frame=wp.media({className:"media-frame wpforms-media-frame",frame:"select",multiple:!1,title:wpforms_admin.upload_image_title,library:{type:"image"},button:{text:wpforms_admin.upload_image_button}}),t.media_frame.on("select",function(){var e=t.media_frame.state().get("selection").first().toJSON();o.find("input[type=text]").val(e.url),o.find("img").remove(),o.prepend('<img src="'+e.url+'">')}),t.media_frame.open()}},licenseVerify:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),r=o.outerWidth(),a=o.text(),s={action:"wpforms_verify_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};o.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(t){var n,r="fa fa-check-circle",s="green";t.success?(n=t.data.msg,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").show(),i.find(".type strong").text(t.data.type),e(".wpforms-license-notice").remove()):(r="fa fa-exclamation-circle",s="orange",n=t.data,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:n,icon:r,type:s,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseDeactivate:function(n){var o=e(n),i=o.closest(".wpforms-setting-row"),r=o.outerWidth(),a=o.text(),s={action:"wpforms_deactivate_license",nonce:wpforms_admin.nonce};o.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(t){var n="fa fa-info-circle",r="blue",s=t.data;t.success?(i.find("#wpforms-setting-license-key").val(""),i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()):(n="fa fa-exclamation-circle",r="orange"),e.alert({title:!1,content:s,icon:n,type:r,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),o.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseRefresh:function(t){var n=e(t).closest(".wpforms-setting-row"),o={action:"wpforms_refresh_license",nonce:wpforms_admin.nonce,license:e("#wpforms-setting-license-key").val()};e.post(wpforms_admin.ajax_url,o,function(t){var o,i="fa fa-check-circle",r="green";t.success?(o=t.data.msg,n.find(".type strong").text(t.data.type)):(i="fa fa-exclamation-circle",r="orange",o=t.data,n.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),e.alert({title:!1,content:o,icon:i,type:r,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(e){console.log(e.responseText)})},integrationConnect:function(t){var n=e(t),o=n.outerWidth(),i=n.text(),r=n.closest(".wpforms-settings-provider"),a={action:"wpforms_settings_provider_add",data:n.closest("form").serialize(),provider:n.data("provider"),nonce:wpforms_admin.nonce};n.html("Connecting...").css("width",o).prop("disabled",!0),e.post(wpforms_admin.ajax_url,a,function(t){if(t.success)r.find(".wpforms-settings-provider-accounts-list ul").append(t.data.html),r.addClass("connected"),n.closest(".wpforms-settings-provider-accounts-connect").slideToggle();else{var o=wpforms_admin.provider_auth_error;t.data.error_msg&&(o+="\n"+t.data.error_msg),e.alert({title:!1,content:o,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),console.log(t)}n.html(i).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},integrationDisconnect:function(t){var n=e(t),o={action:"wpforms_settings_provider_disconnect",provider:n.data("provider"),key:n.data("key"),nonce:wpforms_admin.nonce};e.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.provider_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){e.post(wpforms_admin.ajax_url,o,function(e){e.success?n.parent().remove():console.log(e)}).fail(function(e){console.log(e.responseText)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initTools:function(){e(document).on("click","#wpforms-importer-forms-submit",function(t){if(t.preventDefault(),e("#wpforms-importer-forms input:checked").length){var o=[];e("#wpforms-importer-forms input:checked").each(function(t){o[t]=e(this).val()}),wpforms_admin.isPro?n.importForms(o):n.analyzeForms(o)}else e.alert({title:!1,content:wpforms_admin.importer_forms_required,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),e(document).on("click","#wpforms-importer-continue-submit",function(e){e.preventDefault(),n.importForms(t.formIDs)})},analyzeForms:function(o){var i=e("#wpforms-importer-analyze");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms").hide(),i.show(),t.analyzeQueue=o,t.analyzed=0,t.analyzeUpgrade=[],t.formIDs=o,n.analyzeForm()},analyzeForm:function(){var o=e("#wpforms-importer-analyze"),i=_.first(t.analyzeQueue),r={action:"wpforms_import_form_"+n.getQueryString("provider"),analyze:1,form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,r,function(e){if(e.success)if(_.isEmpty(e.data.upgrade_plain)&&_.isEmpty(e.data.upgrade_omit)||t.analyzeUpgrade.push({name:e.data.name,fields:_.union(e.data.upgrade_omit,e.data.upgrade_plain)}),t.analyzeQueue=_.without(t.analyzeQueue,i),t.analyzed++,_.isEmpty(t.analyzeQueue))if(_.isEmpty(t.analyzeUpgrade))n.importForms(t.formIDs);else{var r=wp.template("wpforms-importer-upgrade");o.find(".upgrade").append(r(t.analyzeUpgrade)),o.find(".upgrade").show(),o.find(".process-analyze").hide()}else o.find(".form-current").text(t.analyzed+1),n.analyzeForm()})},importForms:function(o){var i=e("#wpforms-importer-process");i.find(".form-total").text(o.length),i.find(".form-current").text("1"),e("#wpforms-importer-forms, #wpforms-importer-analyze").hide(),i.show(),t.importQueue=o,t.imported=0,n.importForm()},importForm:function(){var o=e("#wpforms-importer-process"),i=_.first(t.importQueue),r={action:"wpforms_import_form_"+n.getQueryString("provider"),form_id:i,nonce:wpforms_admin.nonce};e.post(wpforms_admin.ajax_url,r,function(e){if(e.success){var r;r=e.data.error?wp.template("wpforms-importer-status-error"):wp.template("wpforms-importer-status-update"),o.find(".status").prepend(r(e.data)),o.find(".status").show(),t.importQueue=_.without(t.importQueue,i),t.imported++,_.isEmpty(t.importQueue)?(o.find(".process-count").hide(),o.find(".forms-completed").text(t.imported),o.find(".process-completed").show()):(o.find(".form-current").text(t.imported+1),n.importForm())}})},initUpgrades:function(){e(document).on("click","#wpforms-upgrade-143 button",function(o){o.preventDefault();var i=e(this),r=i.outerWidth(),a=e("#wpforms-upgrade-143 .status"),s={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,init:!0,incomplete:i.data("incomplete")};i.html(t.iconSpinner).css("width",r).prop("disabled",!0),e.post(wpforms_admin.ajax_url,s,function(e){if(e.success){t.upgraded=Number(e.data.upgraded),t.upgradeTotal=Number(e.data.total);var o=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);i.remove(),a.find(".bar").css("width",o+"%"),a.show().find(".total").text(t.upgradeTotal),a.find(".current").text(t.upgraded),a.find(".percent").text(o+"%"),n.upgrade143()}})})},upgrade143:function(){var o=e("#wpforms-upgrade-143 .status"),i={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,upgraded:t.upgraded};e.post(wpforms_admin.ajax_url,i,function(e){if(e.success){t.upgraded=Number(t.upgraded)+Number(e.data.count);var i=Math.round(Number(t.upgraded)/Number(t.upgradeTotal)*100);o.find(".bar").css("width",i+"%"),Number(e.data.count)<10?(o.find(".progress-bar").addClass("complete"),o.find(".msg").text(wpforms_admin.upgrade_completed)):(o.find(".current").text(t.upgraded),o.find(".percent").text(i+"%"),n.upgrade143())}})},isFormTypeNode:function(e){return"TEXTAREA"===(e=e||!1)||"INPUT"===e||"SELECT"===e},getQueryString:function(e){var t=new RegExp("[?&]"+e+"=([^&]*)").exec(window.location.search);return t&&decodeURIComponent(t[1].replace(/\+/g," "))},debug:function(e){n.isDebug()&&("object"==typeof e||e.constructor===Array?(console.log("WPForms Debug:"),console.log(e)):console.log("WPForms Debug: "+e))},isDebug:function(){return window.location.hash&&"#wpformsdebug"===window.location.hash}};n.init(),window.WPFormsAdmin=n}(jQuery);
assets/js/wpforms.js CHANGED
@@ -1,6 +1,9 @@
1
  /* global wpforms_settings,grecaptcha,wpforms_validate,wpforms_timepicker */
 
2
  ;(function($) {
3
 
 
 
4
  var WPForms = {
5
 
6
  /**
@@ -35,6 +38,11 @@
35
  WPForms.loadInputMask();
36
  WPForms.loadPayments();
37
 
 
 
 
 
 
38
  $(document).trigger('wpformsReady');
39
  },
40
 
@@ -153,24 +161,47 @@
153
  properties = {
154
  errorClass: 'wpforms-error',
155
  validClass: 'wpforms-valid',
156
- errorPlacement: function(error, element) {
157
- if (element.attr('type') === 'radio' || element.attr('type') === 'checkbox' ) {
158
- element.parent().parent().parent().append(error);
159
- } else if (element.is('select') && element.attr('class').match(/date-month|date-day|date-year/)) {
160
- if (element.parent().find('label.wpforms-error:visible').length === 0) {
161
- element.parent().find('select:last').after(error);
 
 
 
 
 
 
 
 
 
162
  }
163
  } else {
164
  error.insertAfter(element);
165
  }
166
  },
167
- highlight: function(element, errorClass, validClass) {
168
- $(element).addClass(errorClass).removeClass(validClass);
169
- $(element).closest('.wpforms-field').addClass('wpforms-has-error');
 
 
 
 
 
 
 
170
  },
171
- unhighlight: function(element, errorClass, validClass) {
172
- $(element).removeClass(errorClass).addClass(validClass);
173
- $(element).closest('.wpforms-field').removeClass('wpforms-has-error');
 
 
 
 
 
 
 
174
  },
175
  submitHandler: function(form) {
176
 
@@ -343,6 +374,29 @@
343
  $this.val(formatted);
344
  });
345
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  // OptinMonster: initialize again after OM is finished.
347
  // This is to accommodate moving the form in the DOM.
348
  $(document).on('OptinMonsterAfterInject', function() {
@@ -485,7 +539,7 @@
485
  totalFormattedSymbol = 0,
486
  currency = WPForms.getCurrency();
487
 
488
- $('.wpforms-payment-price').each(function(index, el) {
489
 
490
  var amount = 0,
491
  $this = $(this);
@@ -765,8 +819,29 @@
765
  }
766
  };
767
 
 
768
  WPForms.init();
769
 
 
770
  window.wpforms = WPForms;
771
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
772
  })(jQuery);
1
  /* global wpforms_settings,grecaptcha,wpforms_validate,wpforms_timepicker */
2
+
3
  ;(function($) {
4
 
5
+ 'use strict';
6
+
7
  var WPForms = {
8
 
9
  /**
38
  WPForms.loadInputMask();
39
  WPForms.loadPayments();
40
 
41
+ // Randomize elements.
42
+ $( '.wpforms-randomize' ).each( function() {
43
+ $( this ).randomize();
44
+ });
45
+
46
  $(document).trigger('wpformsReady');
47
  },
48
 
161
  properties = {
162
  errorClass: 'wpforms-error',
163
  validClass: 'wpforms-valid',
164
+ errorPlacement: function( error, element ) {
165
+ console.log(error);
166
+ if ( element.attr( 'type' ) === 'radio' || element.attr( 'type' ) === 'checkbox' ) {
167
+ if ( element.hasClass( 'wpforms-likert-scale-option' ) ) {
168
+ if ( element.closest( 'table' ).hasClass( 'single-row' ) ) {
169
+ element.closest( 'table' ).after( error );
170
+ } else {
171
+ element.closest( 'tr' ).find( 'th' ).append( error );
172
+ }
173
+ } else {
174
+ element.parent().parent().parent().append( error );
175
+ }
176
+ } else if ( element.is( 'select' ) && element.attr( 'class' ).match( /date-month|date-day|date-year/ ) ) {
177
+ if ( element.parent().find( 'label.wpforms-error:visible' ).length === 0 ) {
178
+ element.parent().find( 'select:last' ).after( error );
179
  }
180
  } else {
181
  error.insertAfter(element);
182
  }
183
  },
184
+ highlight: function( element, errorClass, validClass ) {
185
+ var $element = $( element ),
186
+ $field = $element.closest( '.wpforms-field' ),
187
+ inputName = $element.attr( 'name' );
188
+ if ( $element.attr( 'type' ) === 'radio' || $element.attr( 'type' ) === 'checkbox' ) {
189
+ $field.find( 'input[name=\''+inputName+'\']' ).addClass( errorClass ).removeClass( validClass );
190
+ } else {
191
+ $element.addClass( errorClass ).removeClass( validClass );
192
+ }
193
+ $field.addClass( 'wpforms-has-error' );
194
  },
195
+ unhighlight: function( element, errorClass, validClass ) {
196
+ var $element = $( element ),
197
+ $field = $element.closest( '.wpforms-field' ),
198
+ inputName = $element.attr( 'name' );
199
+ if ( $element.attr( 'type' ) === 'radio' || $element.attr( 'type' ) === 'checkbox' ) {
200
+ $field.find( 'input[name=\''+inputName+'\']' ).addClass( validClass ).removeClass( errorClass );
201
+ } else {
202
+ $element.addClass( validClass ).removeClass( errorClass );
203
+ }
204
+ $field.removeClass( 'wpforms-has-error' );
205
  },
206
  submitHandler: function(form) {
207
 
374
  $this.val(formatted);
375
  });
376
 
377
+ // Rating field: hover effect.
378
+ $( '.wpforms-field-rating-item' ).hover(
379
+ function() {
380
+ $( this ).parent().find( '.wpforms-field-rating-item' ).removeClass( 'selected hover' );
381
+ $( this ).prevAll().andSelf().addClass( 'hover' );
382
+ },
383
+ function() {
384
+ $( this ).parent().find( '.wpforms-field-rating-item' ).removeClass( 'selected hover' );
385
+ $( this ).parent().find( 'input:checked' ).parent().prevAll().andSelf().addClass( 'selected' );
386
+ }
387
+ );
388
+
389
+ // Rating field: toggle selected state.
390
+ $( document ).on( 'change', '.wpforms-field-rating-item input', function() {
391
+
392
+ var $this = $( this ),
393
+ $wrap = $this.closest( '.wpforms-field-rating-items' ),
394
+ $items = $wrap.find( '.wpforms-field-rating-item' );
395
+
396
+ $items.removeClass( 'hover selected' );
397
+ $this.parent().prevAll().andSelf().addClass( 'selected' );
398
+ });
399
+
400
  // OptinMonster: initialize again after OM is finished.
401
  // This is to accommodate moving the form in the DOM.
402
  $(document).on('OptinMonsterAfterInject', function() {
539
  totalFormattedSymbol = 0,
540
  currency = WPForms.getCurrency();
541
 
542
+ $('.wpforms-payment-price', $form).each(function(index, el) {
543
 
544
  var amount = 0,
545
  $this = $(this);
819
  }
820
  };
821
 
822
+ // Initialize.
823
  WPForms.init();
824
 
825
+ // Add to global scope.
826
  window.wpforms = WPForms;
827
 
828
+ //--------------------------------------------------------------------//
829
+ // jQuery Functions.
830
+ //--------------------------------------------------------------------//
831
+
832
+ /**
833
+ * Randomize selectors.
834
+ *
835
+ * @since 1.4.4
836
+ */
837
+ $.fn.randomize = function( selector ){
838
+
839
+ var $elems = selector ? $( this ).find( selector ) : $( this ).children();
840
+
841
+ for ( var i = $elems.length; i >= 0; i-- ) {
842
+ $( this ).append( $elems[ Math.random() * i | 0 ] );
843
+ }
844
+
845
+ return this;
846
+ }
847
  })(jQuery);
changelog.txt CHANGED
@@ -1,5 +1,16 @@
1
  == Changelog ==
2
 
 
 
 
 
 
 
 
 
 
 
 
3
  = 1.4.3 =
4
  - Added: Early filter for form data before form output, `wpforms_frontend_form_data`
5
  - Changed: Standardize and tweak modal window button styles
1
  == Changelog ==
2
 
3
+ = 1.4.4 =
4
+ - Added: Advanced setting for Multiple Choice and Checkbox fields to randomize choices
5
+ - Changed: Admin menu icons now uses SVG instead of custom font icon
6
+ - Changed: Reviewed all translatable strings, improved escaping and formatting
7
+ - Changed: External links have `rel="noopener noreferrer"` improve security
8
+ - Changed: Permission check centralized into a single function (`wpforms_current_user_can()`)
9
+ - Changed: Required label field text centralized into a single function (`wpforms_get_required_label()`)
10
+ - Fixed: Typo in German translation
11
+ - Fixed: Required email provider connection fields not highlighting when left empty
12
+ - Fixed: Inside form builder, notification name area breaking into multiple lines on smaller screens
13
+
14
  = 1.4.3 =
15
  - Added: Early filter for form data before form output, `wpforms_frontend_form_data`
16
  - Changed: Standardize and tweak modal window button styles
includes/admin/admin.php CHANGED
@@ -84,7 +84,7 @@ function wpforms_admin_scripts() {
84
 
85
  wp_enqueue_media();
86
 
87
- // jQuery confirm
88
  wp_enqueue_script(
89
  'jquery-confirm',
90
  WPFORMS_PLUGIN_URL . 'assets/js/jquery.jquery-confirm.min.js',
@@ -125,58 +125,43 @@ function wpforms_admin_scripts() {
125
  );
126
 
127
  $strings = array(
128
- 'addon_activate' => __( 'Activate', 'wpforms' ),
129
- 'addon_active' => __( 'Active', 'wpforms' ),
130
- 'addon_deactivate' => __( 'Deactivate', 'wpforms' ),
131
- 'addon_inactive' => __( 'Inactive', 'wpforms' ),
132
- 'addon_install' => __( 'Install Addon', 'wpforms' ),
133
  'ajax_url' => admin_url( 'admin-ajax.php' ),
134
- 'cancel' => __( 'Cancel', 'wpforms' ),
135
- 'close' => __( 'Close', 'wpforms' ),
136
- 'entry_delete_confirm' => __( 'Are you sure you want to delete this entry?', 'wpforms' ),
137
- 'entry_delete_all_confirm' => __( 'Are you sure you want to delete ALL entries?', 'wpforms' ),
138
- 'entry_empty_fields_hide' => __( 'Hide Empty Fields', 'wpforms' ),
139
- 'entry_empty_fields_show' => __( 'Show Empty Fields', 'wpforms' ),
140
- 'entry_field_columns' => __( 'Entries Field Columns', 'wpforms' ),
141
- 'entry_note_delete_confirm' => __( 'Are you sure you want to delete this note?', 'wpforms' ),
142
- 'entry_unstar' => __( 'Unstar entry', 'wpforms' ),
143
- 'entry_star' => __( 'Star entry', 'wpforms' ),
144
- 'entry_read' => __( 'Mark entry read', 'wpforms' ),
145
- 'entry_unread' => __( 'Mark entry unread', 'wpforms' ),
146
- 'fields_select' => __( 'Select fields', 'wpforms' ),
147
- 'form_delete_confirm' => __( 'Are you sure you want to delete this form?', 'wpforms' ),
148
- 'form_duplicate_confirm' => __( 'Are you sure you want to duplicate this form?', 'wpforms' ),
149
- 'heads_up' => __( 'Heads up!', 'wpforms' ),
150
- 'importer_forms_required' => __( 'Please select at least one form to import.', 'wpforms' ),
151
  'isPro' => wpforms()->pro,
152
  'nonce' => wp_create_nonce( 'wpforms-admin' ),
153
- 'ok' => __( 'OK', 'wpforms' ),
154
- 'plugin_install_activate_btn' => __( 'Install and Activate', 'wpforms' ),
155
- 'plugin_install_activate_confirm' => __( 'needs to be installed and activated to import its forms. Would you like us to install and activate it for you?', 'wpforms' ),
156
- 'plugin_activate_btn' => __( 'Activate', 'wpforms' ),
157
- 'plugin_activate_confirm' => __( 'needs to be activated to import its forms. Would you like us to activate it for you?.', 'wpforms' ),
158
- 'provider_delete_confirm' => __( 'Are you sure you want to disconnect this account?', 'wpforms' ),
159
- 'provider_auth_error' => __( 'Could not authenticate with the provider.', 'wpforms' ),
160
- 'save_refresh' => __( 'Save and Refresh', 'wpforms' ),
161
- 'upgrade_completed' => __( 'Upgrade was successfully completed!', 'wpforms' ),
162
- 'upload_image_title' => __( 'Upload or Choose Your Image', 'wpforms' ),
163
- 'upload_image_button' => __( 'Use Image', 'wpforms' ),
164
- /* translators: %1$s - opening link tag; %2$s - closing link tag; %3$s - opening link tag; %4$s - closing link tag. */
165
- 'upgrade_modal' => sprintf(
166
- wp_kses(
167
- __( '<p>Thanks for your interest in WPForms Pro!<br>If you have any questions or issues just %1$slet us know%2$s.</p><p>After purchasing WPForms Pro, you\'ll need to <strong>download and install the Pro version of the plugin</strong>, and then <strong>remove the free plugin</strong>.<br>(Don\'t worry, all your forms and settings will be preserved.)</p><p>Check out %3$sour documentation%4$s for step-by-step instructions.</p>', 'wpforms' ),
168
- array(
169
- 'br' => array(),
170
- 'strong' => array(),
171
- 'p' => array(),
172
- 'a' => array( 'href', 'rel', 'target' ),
173
- )
174
- ),
175
- '<a href="https://wpforms.com/contact/" target="_blank" rel="noopener noreferrer">',
176
- '</a>',
177
- '<a href="https://wpforms.com/docs/upgrade-wpforms-lite-paid-license/" target="_blank" rel="noopener noreferrer">',
178
- '</a>'
179
- ),
180
  );
181
  $strings = apply_filters( 'wpforms_admin_strings', $strings );
182
 
@@ -369,18 +354,73 @@ function wpforms_check_php_version() {
369
  // Display the notice, finally.
370
  WPForms_Admin_Notice::error(
371
  '<p>' .
372
- /* translators: %1$s - WPForms plugin name; %2$s - opening a link tag; %3$s - closing a link tag. */
373
  sprintf(
374
- __(
375
- 'Your site is running an outdated version of PHP that is no longer supported and may cause issues with %1$s. %2$sRead more%3$s for additional information.',
376
- 'wpforms'
 
 
 
 
 
 
 
377
  ),
378
  '<strong>WPForms</strong>',
379
- '<a href="https://wpforms.com/docs/supported-php-version/" target="_blank">',
380
- '</a>'
381
  ) .
382
  '</p>'
383
  );
384
  }
385
 
386
  add_action( 'admin_init', 'wpforms_check_php_version' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
 
85
  wp_enqueue_media();
86
 
87
+ // jQuery confirm.
88
  wp_enqueue_script(
89
  'jquery-confirm',
90
  WPFORMS_PLUGIN_URL . 'assets/js/jquery.jquery-confirm.min.js',
125
  );
126
 
127
  $strings = array(
128
+ 'addon_activate' => esc_html__( 'Activate', 'wpforms' ),
129
+ 'addon_active' => esc_html__( 'Active', 'wpforms' ),
130
+ 'addon_deactivate' => esc_html__( 'Deactivate', 'wpforms' ),
131
+ 'addon_inactive' => esc_html__( 'Inactive', 'wpforms' ),
132
+ 'addon_install' => esc_html__( 'Install Addon', 'wpforms' ),
133
  'ajax_url' => admin_url( 'admin-ajax.php' ),
134
+ 'cancel' => esc_html__( 'Cancel', 'wpforms' ),
135
+ 'close' => esc_html__( 'Close', 'wpforms' ),
136
+ 'entry_delete_confirm' => esc_html__( 'Are you sure you want to delete this entry?', 'wpforms' ),
137
+ 'entry_delete_all_confirm' => esc_html__( 'Are you sure you want to delete ALL entries?', 'wpforms' ),
138
+ 'entry_empty_fields_hide' => esc_html__( 'Hide Empty Fields', 'wpforms' ),
139
+ 'entry_empty_fields_show' => esc_html__( 'Show Empty Fields', 'wpforms' ),
140
+ 'entry_field_columns' => esc_html__( 'Entries Field Columns', 'wpforms' ),
141
+ 'entry_note_delete_confirm' => esc_html__( 'Are you sure you want to delete this note?', 'wpforms' ),
142
+ 'entry_unstar' => esc_html__( 'Unstar entry', 'wpforms' ),
143
+ 'entry_star' => esc_html__( 'Star entry', 'wpforms' ),
144
+ 'entry_read' => esc_html__( 'Mark entry read', 'wpforms' ),
145
+ 'entry_unread' => esc_html__( 'Mark entry unread', 'wpforms' ),
146
+ 'fields_select' => esc_html__( 'Select fields', 'wpforms' ),
147
+ 'form_delete_confirm' => esc_html__( 'Are you sure you want to delete this form?', 'wpforms' ),
148
+ 'form_duplicate_confirm' => esc_html__( 'Are you sure you want to duplicate this form?', 'wpforms' ),
149
+ 'heads_up' => esc_html__( 'Heads up!', 'wpforms' ),
150
+ 'importer_forms_required' => esc_html__( 'Please select at least one form to import.', 'wpforms' ),
151
  'isPro' => wpforms()->pro,
152
  'nonce' => wp_create_nonce( 'wpforms-admin' ),
153
+ 'ok' => esc_html__( 'OK', 'wpforms' ),
154
+ 'plugin_install_activate_btn' => esc_html__( 'Install and Activate', 'wpforms' ),
155
+ 'plugin_install_activate_confirm' => esc_html__( 'needs to be installed and activated to import its forms. Would you like us to install and activate it for you?', 'wpforms' ),
156
+ 'plugin_activate_btn' => esc_html__( 'Activate', 'wpforms' ),
157
+ 'plugin_activate_confirm' => esc_html__( 'needs to be activated to import its forms. Would you like us to activate it for you?', 'wpforms' ),
158
+ 'provider_delete_confirm' => esc_html__( 'Are you sure you want to disconnect this account?', 'wpforms' ),
159
+ 'provider_auth_error' => esc_html__( 'Could not authenticate with the provider.', 'wpforms' ),
160
+ 'save_refresh' => esc_html__( 'Save and Refresh', 'wpforms' ),
161
+ 'upgrade_completed' => esc_html__( 'Upgrade was successfully completed!', 'wpforms' ),
162
+ 'upload_image_title' => esc_html__( 'Upload or Choose Your Image', 'wpforms' ),
163
+ 'upload_image_button' => esc_html__( 'Use Image', 'wpforms' ),
164
+ 'upgrade_modal' => wpforms_get_upgrade_modal_text(),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  );
166
  $strings = apply_filters( 'wpforms_admin_strings', $strings );
167
 
354
  // Display the notice, finally.
355
  WPForms_Admin_Notice::error(
356
  '<p>' .
 
357
  sprintf(
358
+ wp_kses(
359
+ /* translators: %1$s - WPForms plugin name; %2$s - WPForms.com URL to a related doc. */
360
+ __( 'Your site is running an outdated version of PHP that is no longer supported and may cause issues with %1$s. <a href="%2$s" target="_blank" rel="noopener noreferrer">Read more</a> for additional information.', 'wpforms' ),
361
+ array(
362
+ 'a' => array(
363
+ 'href' => array(),
364
+ 'target' => array(),
365
+ 'rel' => array(),
366
+ ),
367
+ )
368
  ),
369
  '<strong>WPForms</strong>',
370
+ 'https://wpforms.com/docs/supported-php-version/'
 
371
  ) .
372
  '</p>'
373
  );
374
  }
375
 
376
  add_action( 'admin_init', 'wpforms_check_php_version' );
377
+
378
+ /**
379
+ * Get an upgrade modal text.
380
+ */
381
+ function wpforms_get_upgrade_modal_text() {
382
+
383
+ return
384
+ '<p>' .
385
+ esc_html__( 'Thanks for your interest in WPForms Pro!', 'wpforms' ) . '<br>' .
386
+ sprintf(
387
+ wp_kses(
388
+ /* translators: %s - WPForms.com contact page URL. */
389
+ __( 'If you have any questions or issues just <a href="%s" target="_blank" rel="noopener noreferrer">let us know</a>.', 'wpforms' ),
390
+ array(
391
+ 'a' => array(
392
+ 'href' => array(),
393
+ 'target' => array(),
394
+ 'rel' => array(),
395
+ ),
396
+ )
397
+ ),
398
+ 'https://wpforms.com/contact/'
399
+ ) .
400
+ '</p>' .
401
+ '<p>' .
402
+ wp_kses(
403
+ __( 'After purchasing WPForms Pro, you\'ll need to <strong>download and install the Pro version of the plugin</strong>, and then <strong>remove the free plugin</strong>.', 'wpforms' ),
404
+ array(
405
+ 'strong' => array(),
406
+ )
407
+ ) . '<br>' .
408
+ esc_html__( '(Don\'t worry, all your forms and settings will be preserved.)', 'wpforms' ) .
409
+ '</p>' .
410
+ '<p>' .
411
+ sprintf(
412
+ wp_kses(
413
+ /* translators: %s - WPForms.com upgrade from Lite to paid docs page URL. */
414
+ __( 'Check out <a href="%s" target="_blank" rel="noopener noreferrer">our documentation</a> for step-by-step instructions.', 'wpforms' ),
415
+ array(
416
+ 'a' => array(
417
+ 'href' => array(),
418
+ 'target' => array(),
419
+ 'rel' => array(),
420
+ ),
421
+ )
422
+ ),
423
+ 'https://wpforms.com/docs/upgrade-wpforms-lite-paid-license/'
424
+ ) .
425
+ '</p>';
426
+ }
includes/admin/ajax-actions.php CHANGED
@@ -16,15 +16,15 @@
16
  */
17
  function wpforms_save_form() {
18
 
19
- // Run a security check
20
  check_ajax_referer( 'wpforms-builder', 'nonce' );
21
 
22
- // Check for permissions
23
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
24
  die( __( 'You do not have permission.', 'wpforms' ) );
25
  }
26
 
27
- // Check for form data
28
  if ( empty( $_POST['data'] ) ) {
29
  die( __( 'No data provided', 'wpforms' ) );
30
  }
@@ -87,7 +87,7 @@ add_action( 'wp_ajax_wpforms_save_form', 'wpforms_save_form' );
87
  */
88
  function wpforms_new_form() {
89
 
90
- // Run a security check
91
  check_ajax_referer( 'wpforms-builder', 'nonce' );
92
 
93
  // Check for form name.
@@ -95,7 +95,7 @@ function wpforms_new_form() {
95
  die( __( 'No form name provided', 'wpforms' ) );
96
  }
97
 
98
- // Create form
99
  $form_title = sanitize_text_field( $_POST['title'] );
100
  $form_template = sanitize_text_field( $_POST['template'] );
101
  $title_exists = get_page_by_title( $form_title, 'OBJECT', 'wpforms' );
@@ -187,7 +187,7 @@ function wpforms_builder_increase_next_field_id() {
187
  check_ajax_referer( 'wpforms-builder', 'nonce' );
188
 
189
  // Check for permissions.
190
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
191
  wp_send_json_error();
192
  }
193
 
@@ -216,7 +216,7 @@ function wpforms_builder_dynamic_choices() {
216
  check_ajax_referer( 'wpforms-builder', 'nonce' );
217
 
218
  // Check for permissions.
219
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
220
  wp_send_json_error();
221
  }
222
 
@@ -228,7 +228,7 @@ function wpforms_builder_dynamic_choices() {
228
  $type = esc_attr( $_POST['type'] );
229
  $id = absint( $_POST['field_id'] );
230
 
231
- // Fetch the option row HTML to be returned to the builder
232
  $field = new WPForms_Field_Select( false );
233
  $field_args = array(
234
  'id' => $id,
@@ -258,7 +258,7 @@ function wpforms_builder_dynamic_source() {
258
  check_ajax_referer( 'wpforms-builder', 'nonce' );
259
 
260
  // Check for permissions.
261
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
262
  wp_send_json_error();
263
  }
264
 
@@ -342,6 +342,7 @@ function wpforms_builder_dynamic_source() {
342
  )
343
  );
344
  }
 
345
  add_action( 'wp_ajax_wpforms_builder_dynamic_source', 'wpforms_builder_dynamic_source' );
346
 
347
  /**
@@ -354,11 +355,10 @@ function wpforms_tools_import_form() {
354
  // Run a security check.
355
  check_ajax_referer( 'wpforms-admin', 'nonce' );
356
 
357
- // // Check for permissions.
358
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
359
  wp_send_json_error();
360
  }
361
-
362
- // stuff
363
  }
 
364
  add_action( 'wp_ajax_wpforms_tools_import_form', 'wpforms_tools_import_form' );
16
  */
17
  function wpforms_save_form() {
18
 
19
+ // Run a security check.
20
  check_ajax_referer( 'wpforms-builder', 'nonce' );
21
 
22
+ // Check for permissions.
23
+ if ( ! wpforms_current_user_can() ) {
24
  die( __( 'You do not have permission.', 'wpforms' ) );
25
  }
26
 
27
+ // Check for form data.
28
  if ( empty( $_POST['data'] ) ) {
29
  die( __( 'No data provided', 'wpforms' ) );
30
  }
87
  */
88
  function wpforms_new_form() {
89
 
90
+ // Run a security check.
91
  check_ajax_referer( 'wpforms-builder', 'nonce' );
92
 
93
  // Check for form name.
95
  die( __( 'No form name provided', 'wpforms' ) );
96
  }
97
 
98
+ // Create form.
99
  $form_title = sanitize_text_field( $_POST['title'] );
100
  $form_template = sanitize_text_field( $_POST['template'] );
101
  $title_exists = get_page_by_title( $form_title, 'OBJECT', 'wpforms' );
187
  check_ajax_referer( 'wpforms-builder', 'nonce' );
188
 
189
  // Check for permissions.
190
+ if ( ! wpforms_current_user_can() ) {
191
  wp_send_json_error();
192
  }
193
 
216
  check_ajax_referer( 'wpforms-builder', 'nonce' );
217
 
218
  // Check for permissions.
219
+ if ( ! wpforms_current_user_can() ) {
220
  wp_send_json_error();
221
  }
222
 
228
  $type = esc_attr( $_POST['type'] );
229
  $id = absint( $_POST['field_id'] );
230
 
231
+ // Fetch the option row HTML to be returned to the builder.
232
  $field = new WPForms_Field_Select( false );
233
  $field_args = array(
234
  'id' => $id,
258
  check_ajax_referer( 'wpforms-builder', 'nonce' );
259
 
260
  // Check for permissions.
261
+ if ( ! wpforms_current_user_can() ) {
262
  wp_send_json_error();
263
  }
264
 
342
  )
343
  );
344
  }
345
+
346
  add_action( 'wp_ajax_wpforms_builder_dynamic_source', 'wpforms_builder_dynamic_source' );
347
 
348
  /**
355
  // Run a security check.
356
  check_ajax_referer( 'wpforms-admin', 'nonce' );
357
 
358
+ // Check for permissions.
359
+ if ( ! wpforms_current_user_can() ) {
360
  wp_send_json_error();
361
  }
 
 
362
  }
363
+
364
  add_action( 'wp_ajax_wpforms_tools_import_form', 'wpforms_tools_import_form' );
includes/admin/builder/class-builder.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Form builder that contains magic.
4
  *
@@ -11,7 +12,7 @@
11
  class WPForms_Builder {
12
 
13
  /**
14
- * Current view (panel)
15
  *
16
  * @since 1.0.0
17
  * @var string
@@ -49,51 +50,51 @@ class WPForms_Builder {
49
  */
50
  public function __construct() {
51
 
52
- // Maybe load form builder
53
  add_action( 'admin_init', array( $this, 'init' ) );
54
  }
55
 
56
  /**
57
- * Determing if the user is viewing the builder, if so, party on.
58
  *
59
  * @since 1.0.0
60
  */
61
  public function init() {
62
 
63
- // Check what page we are on
64
  $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
65
 
66
- // Only load if we are actually on the builder
67
  if ( 'wpforms-builder' === $page ) {
68
 
69
- // Load form if found
70
  $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : false;
71
 
72
  if ( $form_id ) {
73
- // Default view for with an existing form is fields panel
74
  $this->view = isset( $_GET['view'] ) ? $_GET['view'] : 'fields';
75
  } else {
76
- // Default view for new field is the setup panel
77
  $this->view = isset( $_GET['view'] ) ? $_GET['view'] : 'setup';
78
  }
79
 
80
- // Preview page check
81
  wpforms()->preview->form_preview_check();
82
 
83
- // Fetch form
84
  $this->form = wpforms()->form->get( $form_id );
85
 
86
- // Fetch template information
87
  $this->template = apply_filters( 'wpforms_builder_template_active', array(), $this->form );
88
 
89
- // Load builder panels
90
  $this->load_panels();
91
 
92
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
93
  add_action( 'admin_print_footer_scripts', array( $this, 'footer_scripts' ) );
94
- add_action( 'wpforms_admin_page', array( $this, 'output' ) );
95
 
96
- // Provide hook for addons
97
  do_action( 'wpforms_builder_init', $this->view );
98
 
99
  add_filter( 'teeny_mce_plugins', array( $this, 'tinymce_buttons' ) );
@@ -123,7 +124,7 @@ class WPForms_Builder {
123
  */
124
  public function load_panels() {
125
 
126
- // Base class and functions
127
  require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-base.php';
128
 
129
  $this->panels = apply_filters( 'wpforms_builder_panels', array(
@@ -135,6 +136,7 @@ class WPForms_Builder {
135
  ) );
136
 
137
  foreach ( $this->panels as $panel ) {
 
138
 
139
  if ( file_exists( WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-' . $panel . '.php' ) ) {
140
  require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-' . $panel . '.php';
@@ -151,13 +153,15 @@ class WPForms_Builder {
151
  */
152
  public function enqueues() {
153
 
154
- // Remove conflicting scripts
155
  wp_deregister_script( 'serialize-object' );
156
  wp_deregister_script( 'wpclef-ajax-settings' );
157
 
158
  do_action( 'wpforms_builder_enqueues_before', $this->view );
159
 
160
- // CSS
 
 
161
  wp_enqueue_style(
162
  'wpforms-font-awesome',
163
  WPFORMS_PLUGIN_URL . 'assets/css/font-awesome.min.css',
@@ -193,8 +197,9 @@ class WPForms_Builder {
193
  WPFORMS_VERSION
194
  );
195
 
196
- // JS
197
-
 
198
  wp_enqueue_media();
199
  wp_enqueue_script( 'jquery-ui-sortable' );
200
  wp_enqueue_script( 'jquery-ui-draggable' );
@@ -271,87 +276,87 @@ class WPForms_Builder {
271
  );
272
 
273
  $strings = array(
274
- 'and' => __( 'AND', 'wpforms' ),
275
  'ajax_url' => admin_url( 'admin-ajax.php' ),
276
- 'bulk_add_button' => __( 'Add New Choices', 'wpforms '),
277
- 'bulk_add_show' => __( 'Bulk Add', 'wpforms' ),
278
- 'bulk_add_hide' => __( 'Hide Bulk Add', 'wpforms' ),
279
- 'bulk_add_heading' => __( 'Add Choices (one per line)', 'wpforms '),
280
- 'bulk_add_placeholder' => __( "Blue\nRed\nGreen", 'wpforms '),
281
- 'bulk_add_presets_show' => __( 'Show presets', 'wpforms '),
282
- 'bulk_add_presets_hide' => __( 'Hide presets', 'wpforms '),
283
  'date_select_day' => 'DD',
284
  'date_select_month' => 'MM',
285
  'debug' => wpforms_debug(),
286
- 'dynamic_choice_limit' => __( 'The {source} {type} contains over {limit} items ({total}). This may make the field difficult for your vistors to use and/or cause the form to be slow.', 'wpforms' ),
287
- 'cancel' => __( 'Cancel', 'wpforms' ),
288
- 'ok' => __( 'OK', 'wpforms' ),
289
- 'close' => __( 'Close', 'wpforms' ),
290
- 'conditionals_change' => __( 'Due to form changes, conditional logic rules have been removed or updated:', 'wpforms' ),
291
- 'conditionals_disable' => __( 'Are you sure you want to disable conditional logic? This will remove the rules for this field or setting.' ),
292
- 'field' => __( 'Field', 'wpforms' ),
293
- 'field_locked' => __( 'Field Locked', 'wpforms' ),
294
- 'field_locked_msg' => __( 'This field cannot be deleted or duplicated.', 'wpforms' ),
295
- 'fields_available' => __( 'Available Fields', 'wpforms' ),
296
- 'fields_unavailable' => __( 'No fields available', 'wpforms' ),
297
- 'heads_up' => __( 'Heads up!', 'wpforms' ),
298
  'nonce' => wp_create_nonce( 'wpforms-builder' ),
299
- 'no_email_fields' => __( 'No email fields', 'wpforms' ),
300
- 'notification_delete' => __( 'Are you sure you want to delete this notification?', 'wpforms' ),
301
- 'notification_prompt' => __( 'Enter a notification name', 'wpforms' ),
302
- 'notification_ph' => __( 'Eg: User Confirmation', 'wpforms' ),
303
- 'notification_error' => __( 'You must provide a notification name', 'wpforms' ),
304
- 'notification_error2' => __( 'Form must contain one notification. To disable all notifications use the Notifications dropdown setting.', 'wpforms' ),
305
- 'notification_def_name' => __( 'Default Notification', 'wpforms' ),
306
- 'save' => __( 'Save', 'wpforms' ),
307
- 'saving' => __( 'Saving ...', 'wpforms' ),
308
- 'saved' => __( 'Saved!', 'wpforms' ),
309
- 'save_exit' => __( 'Save and Exit', 'wpforms' ),
310
  'saved_state' => '',
311
- 'layout_selector_show' => __( 'Show Layouts', 'wpforms' ),
312
- 'layout_selector_hide' => __( 'Hide Layouts', 'wpforms' ),
313
- 'layout_selector_layout' => __( 'Select your layout', 'wpforms' ),
314
- 'layout_selector_column' => __( 'Select your column', 'wpforms' ),
315
- 'loading' => __( 'Loading', 'wpforms' ),
316
  'template_name' => ! empty( $this->template['name'] ) ? $this->template['name'] : '',
317
  'template_slug' => ! empty( $this->template['slug'] ) ? $this->template['slug'] : '',
318
  'template_modal_title' => ! empty( $this->template['modal']['title'] ) ? $this->template['modal']['title'] : '',
319
  'template_modal_msg' => ! empty( $this->template['modal']['message'] ) ? $this->template['modal']['message'] : '',
320
  'template_modal_display' => ! empty( $this->template['modal_display'] ) ? $this->template['modal_display'] : '',
321
- 'template_select' => __( 'Use Template', 'wpforms' ),
322
- 'template_confirm' => __( 'Changing templates on an existing form will DELETE existing form fields. Are you sure you want apply the new template?', 'wpforms' ),
323
- 'embed_modal' => __( 'You are almost done. To embed this form on your site, please paste the following shortcode inside a post or page.', 'wpforms' ),
324
- 'embed_modal_2' => __( 'Or you can follow the instructions in this video.', 'wpforms' ),
325
- 'exit' => __( 'Exit', 'wpforms' ),
326
  'exit_url' => admin_url( 'admin.php?page=wpforms-overview' ),
327
- 'exit_confirm' => __( 'If you exit without saving, your changes will be lost.', 'wpforms' ),
328
- 'delete_confirm' => __( 'Are you sure you want to delete this field?', 'wpforms' ),
329
- 'duplicate_confirm' => __( 'Are you sure you want to duplicate this field?', 'wpforms' ),
330
- 'duplicate_copy' => __( '(copy)', 'wpforms'),
331
- 'error_title' => __( 'Please enter a form name.', 'wpforms' ),
332
- 'error_choice' => __( 'This item must contain at least one choice.', 'wpforms' ),
333
- 'off' => __( 'Off', 'wpforms' ),
334
- 'on' => __( 'On', 'wpforms' ),
335
- 'or' => __( 'or', 'wpforms' ),
336
- 'other' => __( 'Other', 'wpforms' ),
337
- 'operator_is' => __( 'is', 'wpforms' ),
338
- 'operator_is_not' => __( 'is not', 'wpforms' ),
339
- 'operator_empty' => __( 'empty', 'wpforms' ),
340
- 'operator_not_empty' => __( 'not empty', 'wpforms' ),
341
- 'operator_contains' => __( 'contains', 'wpforms' ),
342
- 'operator_not_contains' => __( 'does not contain', 'wpforms' ),
343
- 'operator_starts' => __( 'starts with', 'wpforms' ),
344
- 'operator_ends' => __( 'ends with', 'wpforms' ),
345
- 'payments_entries_off' => __( 'Form entries must be stored to accept payments. Please enable saving form entries in the General settings first.', 'wpforms' ),
346
- 'previous' => __( 'Previous', 'wpforms' ),
347
- 'rule_create' => __( 'Create new rule', 'wpforms' ),
348
- 'rule_create_group' => __( 'Add new group', 'wpforms' ),
349
- 'rule_delete' => __( 'Delete rule', 'wpforms' ),
350
  'smart_tags' => wpforms()->smart_tags->get(),
351
- 'smart_tags_show' => __( 'Show Smart Tags', 'wpforms' ),
352
- 'smart_tags_hide' => __( 'Hide Smart Tags', 'wpforms' ),
353
- 'select_field' => __( '-- Select Field --', 'wpforms' ),
354
- 'select_choice' => __( '-- Select Choice --', 'wpforms' ),
355
  );
356
  $strings = apply_filters( 'wpforms_builder_strings', $strings, $this->form );
357
 
@@ -371,7 +376,7 @@ class WPForms_Builder {
371
  $strings
372
  );
373
 
374
- // Hook for addons
375
  do_action( 'wpforms_builder_enqueues', $this->view );
376
  }
377
 
@@ -383,28 +388,28 @@ class WPForms_Builder {
383
  public function footer_scripts() {
384
 
385
  $choices = array(
386
- 'countries' => array(
387
- 'name' => __( 'Countries', 'wpforms' ),
388
  'choices' => array_values( wpforms_countries() ),
389
  ),
390
  'countries_postal' => array(
391
- 'name' => __( 'Countries Postal Code', 'wpforms' ),
392
  'choices' => array_keys( wpforms_countries() ),
393
  ),
394
- 'states' => array(
395
- 'name' => __( 'States', 'wpforms' ),
396
  'choices' => array_values( wpforms_us_states() ),
397
  ),
398
- 'states_postal' => array(
399
- 'name' => __( 'States Postal Code', 'wpforms' ),
400
  'choices' => array_keys( wpforms_us_states() ),
401
  ),
402
- 'months' => array(
403
- 'name' => __( 'Months', 'wpforms' ),
404
  'choices' => array_values( wpforms_months() ),
405
  ),
406
- 'days' => array(
407
- 'name' => __( 'Days', 'wpforms' ),
408
  'choices' => array_values( wpforms_days() ),
409
  ),
410
  );
@@ -425,6 +430,7 @@ class WPForms_Builder {
425
  $form_id = $this->form ? absint( $this->form->ID ) : '';
426
  $form_data = $this->form ? wpforms_decode( $this->form->post_content ) : false;
427
  ?>
 
428
  <div id="wpforms-builder">
429
 
430
  <div id="wpforms-builder-overlay">
@@ -433,7 +439,7 @@ class WPForms_Builder {
433
 
434
  <i class="fa fa-cog fa-spin"></i>
435
 
436
- <span class="msg"><?php _e( 'Loading', 'wpforms'); ?></span>
437
  </div>
438
 
439
  </div>
@@ -448,7 +454,7 @@ class WPForms_Builder {
448
 
449
  <div class="wpforms-left">
450
 
451
- <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/sullie-alt.png" alt="Sullie WPForms mascot">
452
 
453
  </div>
454
 
@@ -456,7 +462,8 @@ class WPForms_Builder {
456
 
457
  <?php if ( $this->form ) : ?>
458
 
459
- <?php _e( 'Now editing', 'wpforms' ); ?> <span class="wpforms-center-form-name wpforms-form-name"><?php echo esc_html( $this->form->post_title ); ?></span>
 
460
 
461
  <?php endif; ?>
462
 
@@ -466,24 +473,19 @@ class WPForms_Builder {
466
 
467
  <?php if ( $this->form ) : ?>
468
 
469
- <!--<a href="<?php echo esc_url( wpforms()->preview->form_preview_url( $form_id ) ); ?>" id="wpforms-preview" title="<?php _e( 'Preview Form', 'wpforms' ); ?>">
470
- <i class="fa fa-eye"></i>
471
- <span class="text"><?php _e( 'Preview', 'wpforms' ); ?></span>
472
- </a>-->
473
 
474
- <a href="#" id="wpforms-embed" title="<?php _e( 'Embed Form', 'wpforms' ); ?>">
475
- <i class="fa fa-code"></i>
476
- <span class="text"><?php _e( 'Embed', 'wpforms' ); ?></span>
477
- </a>
478
-
479
- <a href="#" id="wpforms-save" title="<?php _e( 'Save Form', 'wpforms' ); ?>">
480
- <i class="fa fa-check"></i>
481
- <span class="text"><?php _e( 'Save', 'wpforms' ); ?></span>
482
- </a>
483
 
484
  <?php endif; ?>
485
 
486
- <a href="#" id="wpforms-exit" title="<?php _e( 'Exit', 'wpforms' ); ?>">
487
  <i class="fa fa-times"></i>
488
  </a>
489
 
@@ -491,7 +493,7 @@ class WPForms_Builder {
491
 
492
  </div>
493
 
494
- <!-- Panel toggle buttons -->
495
  <div class="wpforms-panels-toggle" id="wpforms-panels-toggle">
496
 
497
  <?php do_action( 'wpforms_builder_panel_buttons', $this->form, $this->view ); ?>
@@ -507,6 +509,7 @@ class WPForms_Builder {
507
  </form>
508
 
509
  </div>
 
510
  <?php
511
  }
512
  }
1
  <?php
2
+
3
  /**
4
  * Form builder that contains magic.
5
  *
12
  class WPForms_Builder {
13
 
14
  /**
15
+ * Current view (panel).
16
  *
17
  * @since 1.0.0
18
  * @var string
50
  */
51
  public function __construct() {
52
 
53
+ // Maybe load form builder.
54
  add_action( 'admin_init', array( $this, 'init' ) );
55
  }
56
 
57
  /**
58
+ * Determine if the user is viewing the builder, if so, party on.
59
  *
60
  * @since 1.0.0
61
  */
62
  public function init() {
63
 
64
+ // Check what page we are on.
65
  $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
66
 
67
+ // Only load if we are actually on the builder.
68
  if ( 'wpforms-builder' === $page ) {
69
 
70
+ // Load form if found.
71
  $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : false;
72
 
73
  if ( $form_id ) {
74
+ // Default view for with an existing form is fields panel.
75
  $this->view = isset( $_GET['view'] ) ? $_GET['view'] : 'fields';
76
  } else {
77
+ // Default view for new field is the setup panel.
78
  $this->view = isset( $_GET['view'] ) ? $_GET['view'] : 'setup';
79
  }
80
 
81
+ // Preview page check.
82
  wpforms()->preview->form_preview_check();
83
 
84
+ // Fetch form.
85
  $this->form = wpforms()->form->get( $form_id );
86
 
87
+ // Fetch template information.
88
  $this->template = apply_filters( 'wpforms_builder_template_active', array(), $this->form );
89
 
90
+ // Load builder panels.
91
  $this->load_panels();
92
 
93
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
94
  add_action( 'admin_print_footer_scripts', array( $this, 'footer_scripts' ) );
95
+ add_action( 'wpforms_admin_page', array( $this, 'output' ) );
96
 
97
+ // Provide hook for addons.
98
  do_action( 'wpforms_builder_init', $this->view );
99
 
100
  add_filter( 'teeny_mce_plugins', array( $this, 'tinymce_buttons' ) );
124
  */
125
  public function load_panels() {
126
 
127
+ // Base class and functions.
128
  require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-base.php';
129
 
130
  $this->panels = apply_filters( 'wpforms_builder_panels', array(
136
  ) );
137
 
138
  foreach ( $this->panels as $panel ) {
139
+ $panel = sanitize_file_name( $panel );
140
 
141
  if ( file_exists( WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-' . $panel . '.php' ) ) {
142
  require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/panels/class-' . $panel . '.php';
153
  */
154
  public function enqueues() {
155
 
156
+ // Remove conflicting scripts.
157
  wp_deregister_script( 'serialize-object' );
158
  wp_deregister_script( 'wpclef-ajax-settings' );
159
 
160
  do_action( 'wpforms_builder_enqueues_before', $this->view );
161
 
162
+ /*
163
+ * CSS.
164
+ */
165
  wp_enqueue_style(
166
  'wpforms-font-awesome',
167
  WPFORMS_PLUGIN_URL . 'assets/css/font-awesome.min.css',
197
  WPFORMS_VERSION
198
  );
199
 
200
+ /*
201
+ * JavaScript.
202
+ */
203
  wp_enqueue_media();
204
  wp_enqueue_script( 'jquery-ui-sortable' );
205
  wp_enqueue_script( 'jquery-ui-draggable' );
276
  );
277
 
278
  $strings = array(
279
+ 'and' => esc_html__( 'AND', 'wpforms' ),
280
  'ajax_url' => admin_url( 'admin-ajax.php' ),
281
+ 'bulk_add_button' => esc_html__( 'Add New Choices', 'wpforms' ),
282
+ 'bulk_add_show' => esc_html__( 'Bulk Add', 'wpforms' ),
283
+ 'bulk_add_hide' => esc_html__( 'Hide Bulk Add', 'wpforms' ),
284
+ 'bulk_add_heading' => esc_html__( 'Add Choices (one per line)', 'wpforms' ),
285
+ 'bulk_add_placeholder' => esc_html__( "Blue\nRed\nGreen", 'wpforms' ),
286
+ 'bulk_add_presets_show' => esc_html__( 'Show presets', 'wpforms' ),
287
+ 'bulk_add_presets_hide' => esc_html__( 'Hide presets', 'wpforms' ),
288
  'date_select_day' => 'DD',
289
  'date_select_month' => 'MM',
290
  'debug' => wpforms_debug(),
291
+ 'dynamic_choice_limit' => esc_html__( 'The {source} {type} contains over {limit} items ({total}). This may make the field difficult for your visitors to use and/or cause the form to be slow.', 'wpforms' ),
292
+ 'cancel' => esc_html__( 'Cancel', 'wpforms' ),
293
+ 'ok' => esc_html__( 'OK', 'wpforms' ),
294
+ 'close' => esc_html__( 'Close', 'wpforms' ),
295
+ 'conditionals_change' => esc_html__( 'Due to form changes, conditional logic rules have been removed or updated:', 'wpforms' ),
296
+ 'conditionals_disable' => esc_html__( 'Are you sure you want to disable conditional logic? This will remove the rules for this field or setting.' ),
297
+ 'field' => esc_html__( 'Field', 'wpforms' ),
298
+ 'field_locked' => esc_html__( 'Field Locked', 'wpforms' ),
299
+ 'field_locked_msg' => esc_html__( 'This field cannot be deleted or duplicated.', 'wpforms' ),
300
+ 'fields_available' => esc_html__( 'Available Fields', 'wpforms' ),
301
+ 'fields_unavailable' => esc_html__( 'No fields available', 'wpforms' ),
302
+ 'heads_up' => esc_html__( 'Heads up!', 'wpforms' ),
303
  'nonce' => wp_create_nonce( 'wpforms-builder' ),
304
+ 'no_email_fields' => esc_html__( 'No email fields', 'wpforms' ),
305
+ 'notification_delete' => esc_html__( 'Are you sure you want to delete this notification?', 'wpforms' ),
306
+ 'notification_prompt' => esc_html__( 'Enter a notification name', 'wpforms' ),
307
+ 'notification_ph' => esc_html__( 'Eg: User Confirmation', 'wpforms' ),
308
+ 'notification_error' => esc_html__( 'You must provide a notification name', 'wpforms' ),
309
+ 'notification_error2' => esc_html__( 'Form must contain one notification. To disable all notifications use the Notifications dropdown setting.', 'wpforms' ),
310
+ 'notification_def_name' => esc_html__( 'Default Notification', 'wpforms' ),
311
+ 'save' => esc_html__( 'Save', 'wpforms' ),
312
+ 'saving' => esc_html__( 'Saving ...', 'wpforms' ),
313
+ 'saved' => esc_html__( 'Saved!', 'wpforms' ),
314
+ 'save_exit' => esc_html__( 'Save and Exit', 'wpforms' ),
315
  'saved_state' => '',
316
+ 'layout_selector_show' => esc_html__( 'Show Layouts', 'wpforms' ),
317
+ 'layout_selector_hide' => esc_html__( 'Hide Layouts', 'wpforms' ),
318
+ 'layout_selector_layout' => esc_html__( 'Select your layout', 'wpforms' ),
319
+ 'layout_selector_column' => esc_html__( 'Select your column', 'wpforms' ),
320
+ 'loading' => esc_html__( 'Loading', 'wpforms' ),
321
  'template_name' => ! empty( $this->template['name'] ) ? $this->template['name'] : '',
322
  'template_slug' => ! empty( $this->template['slug'] ) ? $this->template['slug'] : '',
323
  'template_modal_title' => ! empty( $this->template['modal']['title'] ) ? $this->template['modal']['title'] : '',
324
  'template_modal_msg' => ! empty( $this->template['modal']['message'] ) ? $this->template['modal']['message'] : '',
325
  'template_modal_display' => ! empty( $this->template['modal_display'] ) ? $this->template['modal_display'] : '',
326
+ 'template_select' => esc_html__( 'Use Template', 'wpforms' ),
327
+ 'template_confirm' => esc_html__( 'Changing templates on an existing form will DELETE existing form fields. Are you sure you want apply the new template?', 'wpforms' ),
328
+ 'embed_modal' => esc_html__( 'You are almost done. To embed this form on your site, please paste the following shortcode inside a post or page.', 'wpforms' ),
329
+ 'embed_modal_2' => esc_html__( 'Or you can follow the instructions in this video.', 'wpforms' ),
330
+ 'exit' => esc_html__( 'Exit', 'wpforms' ),
331
  'exit_url' => admin_url( 'admin.php?page=wpforms-overview' ),
332
+ 'exit_confirm' => esc_html__( 'If you exit without saving, your changes will be lost.', 'wpforms' ),
333
+ 'delete_confirm' => esc_html__( 'Are you sure you want to delete this field?', 'wpforms' ),
334
+ 'duplicate_confirm' => esc_html__( 'Are you sure you want to duplicate this field?', 'wpforms' ),
335
+ 'duplicate_copy' => esc_html__( '(copy)', 'wpforms' ),
336
+ 'error_title' => esc_html__( 'Please enter a form name.', 'wpforms' ),
337
+ 'error_choice' => esc_html__( 'This item must contain at least one choice.', 'wpforms' ),
338
+ 'off' => esc_html__( 'Off', 'wpforms' ),
339
+ 'on' => esc_html__( 'On', 'wpforms' ),
340
+ 'or' => esc_html__( 'or', 'wpforms' ),
341
+ 'other' => esc_html__( 'Other', 'wpforms' ),
342
+ 'operator_is' => esc_html__( 'is', 'wpforms' ),
343
+ 'operator_is_not' => esc_html__( 'is not', 'wpforms' ),
344
+ 'operator_empty' => esc_html__( 'empty', 'wpforms' ),
345
+ 'operator_not_empty' => esc_html__( 'not empty', 'wpforms' ),
346
+ 'operator_contains' => esc_html__( 'contains', 'wpforms' ),
347
+ 'operator_not_contains' => esc_html__( 'does not contain', 'wpforms' ),
348
+ 'operator_starts' => esc_html__( 'starts with', 'wpforms' ),
349
+ 'operator_ends' => esc_html__( 'ends with', 'wpforms' ),
350
+ 'payments_entries_off' => esc_html__( 'Form entries must be stored to accept payments. Please enable saving form entries in the General settings first.', 'wpforms' ),
351
+ 'previous' => esc_html__( 'Previous', 'wpforms' ),
352
+ 'rule_create' => esc_html__( 'Create new rule', 'wpforms' ),
353
+ 'rule_create_group' => esc_html__( 'Add new group', 'wpforms' ),
354
+ 'rule_delete' => esc_html__( 'Delete rule', 'wpforms' ),
355
  'smart_tags' => wpforms()->smart_tags->get(),
356
+ 'smart_tags_show' => esc_html__( 'Show Smart Tags', 'wpforms' ),
357
+ 'smart_tags_hide' => esc_html__( 'Hide Smart Tags', 'wpforms' ),
358
+ 'select_field' => esc_html__( '-- Select Field --', 'wpforms' ),
359
+ 'select_choice' => esc_html__( '-- Select Choice --', 'wpforms' ),
360
  );
361
  $strings = apply_filters( 'wpforms_builder_strings', $strings, $this->form );
362
 
376
  $strings
377
  );
378
 
379
+ // Hook for addons.
380
  do_action( 'wpforms_builder_enqueues', $this->view );
381
  }
382
 
388
  public function footer_scripts() {
389
 
390
  $choices = array(
391
+ 'countries' => array(
392
+ 'name' => esc_html__( 'Countries', 'wpforms' ),
393
  'choices' => array_values( wpforms_countries() ),
394
  ),
395
  'countries_postal' => array(
396
+ 'name' => esc_html__( 'Countries Postal Code', 'wpforms' ),
397
  'choices' => array_keys( wpforms_countries() ),
398
  ),
399
+ 'states' => array(
400
+ 'name' => esc_html__( 'States', 'wpforms' ),
401
  'choices' => array_values( wpforms_us_states() ),
402
  ),
403
+ 'states_postal' => array(
404
+ 'name' => esc_html__( 'States Postal Code', 'wpforms' ),
405
  'choices' => array_keys( wpforms_us_states() ),
406
  ),
407
+ 'months' => array(
408
+ 'name' => esc_html__( 'Months', 'wpforms' ),
409
  'choices' => array_values( wpforms_months() ),
410
  ),
411
+ 'days' => array(
412
+ 'name' => esc_html__( 'Days', 'wpforms' ),
413
  'choices' => array_values( wpforms_days() ),
414
  ),
415
  );
430
  $form_id = $this->form ? absint( $this->form->ID ) : '';
431
  $form_data = $this->form ? wpforms_decode( $this->form->post_content ) : false;
432
  ?>
433
+
434
  <div id="wpforms-builder">
435
 
436
  <div id="wpforms-builder-overlay">
439
 
440
  <i class="fa fa-cog fa-spin"></i>
441
 
442
+ <span class="msg"><?php esc_html_e( 'Loading', 'wpforms' ); ?></span>
443
  </div>
444
 
445
  </div>
454
 
455
  <div class="wpforms-left">
456
 
457
+ <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/sullie-alt.png" alt="<?php esc_attr_e( 'Sullie the WPForms mascot', 'wpforms' ); ?>">
458
 
459
  </div>
460
 
462
 
463
  <?php if ( $this->form ) : ?>
464
 
465
+ <?php esc_html_e( 'Now editing', 'wpforms' ); ?>
466
+ <span class="wpforms-center-form-name wpforms-form-name"><?php echo esc_html( $this->form->post_title ); ?></span>
467
 
468
  <?php endif; ?>
469
 
473
 
474
  <?php if ( $this->form ) : ?>
475
 
476
+ <a href="#" id="wpforms-embed" title="<?php esc_attr_e( 'Embed Form', 'wpforms' ); ?>">
477
+ <i class="fa fa-code"></i>
478
+ <span class="text"><?php esc_html_e( 'Embed', 'wpforms' ); ?></span>
479
+ </a>
480
 
481
+ <a href="#" id="wpforms-save" title="<?php esc_attr_e( 'Save Form', 'wpforms' ); ?>">
482
+ <i class="fa fa-check"></i>
483
+ <span class="text"><?php esc_html_e( 'Save', 'wpforms' ); ?></span>
484
+ </a>
 
 
 
 
 
485
 
486
  <?php endif; ?>
487
 
488
+ <a href="#" id="wpforms-exit" title="<?php esc_attr_e( 'Exit', 'wpforms' ); ?>">
489
  <i class="fa fa-times"></i>
490
  </a>
491
 
493
 
494
  </div>
495
 
496
+ <!-- Panel toggle buttons. -->
497
  <div class="wpforms-panels-toggle" id="wpforms-panels-toggle">
498
 
499
  <?php do_action( 'wpforms_builder_panel_buttons', $this->form, $this->view ); ?>
509
  </form>
510
 
511
  </div>
512
+
513
  <?php
514
  }
515
  }
includes/admin/builder/functions.php CHANGED
@@ -26,12 +26,12 @@
26
  */
27
  function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args = array(), $echo = true ) {
28
 
29
- // Required params
30
  if ( empty( $option ) || empty( $panel ) || empty( $field ) ) {
31
  return '';
32
  }
33
 
34
- // Setup basic vars
35
  $panel = esc_attr( $panel );
36
  $field = esc_attr( $field );
37
  $panel_id = sanitize_html_class( $panel );
@@ -45,7 +45,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
45
  $data_attr = '';
46
  $output = '';
47
 
48
- // Check if we should store values in a parent array
49
  if ( ! empty( $parent ) ) {
50
  if ( ! empty( $subsection ) ) {
51
  $field_name = sprintf( '%s[%s][%s][%s]', $parent, $panel, $subsection, $field );
@@ -60,7 +60,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
60
  $value = isset( $form_data[ $panel ][ $field ] ) ? $form_data[ $panel ][ $field ] : $default;
61
  }
62
 
63
- // Check for data attributes
64
  if ( ! empty( $args['data'] ) ) {
65
  foreach ( $args['data'] as $key => $val ) {
66
  if ( is_array( $val ) ) {
@@ -70,10 +70,10 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
70
  }
71
  }
72
 
73
- // Determine what field type to output
74
  switch ( $option ) {
75
 
76
- // Text input
77
  case 'text':
78
  $type = ! empty( $args['type'] ) ? esc_attr( $args['type'] ) : 'text';
79
  $output = sprintf(
@@ -89,7 +89,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
89
  );
90
  break;
91
 
92
- // Textarea
93
  case 'textarea':
94
  $rows = ! empty( $args['rows'] ) ? (int) $args['rows'] : '3';
95
  $output = sprintf(
@@ -105,7 +105,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
105
  );
106
  break;
107
 
108
- // TinyMCE
109
  case 'tinymce':
110
  $args = wp_parse_args( $args['tinymce'], array(
111
  'media_buttons' => false,
@@ -120,7 +120,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
120
  $output = ob_get_clean();
121
  break;
122
 
123
- // Checkbox
124
  case 'checkbox':
125
  $checked = checked( '1', $value, false );
126
  $output = sprintf(
@@ -132,7 +132,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
132
  $checked,
133
  $data_attr
134
  );
135
- $output .= sprintf(
136
  '<label for="wpforms-panel-field-%s-%s" class="inline">%s',
137
  sanitize_html_class( $panel_id ),
138
  sanitize_html_class( $field ),
@@ -144,7 +144,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
144
  $output .= '</label>';
145
  break;
146
 
147
- // Radio
148
  case 'radio':
149
  $options = $args['options'];
150
  $x = 1;
@@ -154,7 +154,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
154
  continue;
155
  }
156
  $checked = checked( $key, $value, false );
157
- $output .= sprintf(
158
  '<span class="row"><input type="radio" id="wpforms-panel-field-%s-%s-%d" name="%s" value="%s" class="%s" %s %s>',
159
  sanitize_html_class( $panel_id ),
160
  sanitize_html_class( $field ),
@@ -165,7 +165,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
165
  $checked,
166
  $data_attr
167
  );
168
- $output .= sprintf(
169
  '<label for="wpforms-panel-field-%s-%s-%d" class="inline">%s',
170
  sanitize_html_class( $panel_id ),
171
  sanitize_html_class( $field ),
@@ -180,7 +180,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
180
  }
181
  break;
182
 
183
- // Select
184
  case 'select':
185
  if ( empty( $args['options'] ) && empty( $args['field_map'] ) ) {
186
  return '';
@@ -191,7 +191,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
191
  $available_fields = wpforms_get_form_fields( $form_data, $args['field_map'] );
192
  if ( ! empty( $available_fields ) ) {
193
  foreach ( $available_fields as $id => $available_field ) {
194
- $lbl = ! empty( $available_field['label'] ) ? esc_attr( $available_field['label'] ) : __( 'Field #' ) . $id;
195
  $options[ $id ] = $lbl;
196
  }
197
  }
@@ -225,8 +225,8 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
225
  break;
226
  }
227
 
228
- // Put the pieces together....
229
- $field_open = sprintf(
230
  '<div id="wpforms-panel-field-%s-%s-wrap" class="wpforms-panel-field %s %s">',
231
  sanitize_html_class( $panel_id ),
232
  sanitize_html_class( $field ),
@@ -252,15 +252,15 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
252
  $type = ! empty( $args['smarttags']['type'] ) ? esc_attr( $args['smarttags']['type'] ) : 'fields';
253
  $fields = ! empty( $args['smarttags']['fields'] ) ? esc_attr( $args['smarttags']['fields'] ) : '';
254
 
255
- $field_label .= '<a href="#" class="toggle-smart-tag-display" data-type="' . $type . '" data-fields="' . $fields . '"><i class="fa fa-tags"></i> <span>' . __( 'Show Smart Tags', 'wpforms' ) . '</span></a>';
256
  }
257
  $field_label .= '</label>';
258
  } else {
259
  $field_label = '';
260
  }
261
- $field_close = ! empty( $args['after'] ) ? $args['after'] : '';
262
  $field_close .= '</div>';
263
- $output = $field_open . $field_label . $output . $field_close;
264
 
265
  // Wash our hands.
266
  if ( $echo ) {
26
  */
27
  function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args = array(), $echo = true ) {
28
 
29
+ // Required params.
30
  if ( empty( $option ) || empty( $panel ) || empty( $field ) ) {
31
  return '';
32
  }
33
 
34
+ // Setup basic vars.
35
  $panel = esc_attr( $panel );
36
  $field = esc_attr( $field );
37
  $panel_id = sanitize_html_class( $panel );
45
  $data_attr = '';
46
  $output = '';
47
 
48
+ // Check if we should store values in a parent array.
49
  if ( ! empty( $parent ) ) {
50
  if ( ! empty( $subsection ) ) {
51
  $field_name = sprintf( '%s[%s][%s][%s]', $parent, $panel, $subsection, $field );
60
  $value = isset( $form_data[ $panel ][ $field ] ) ? $form_data[ $panel ][ $field ] : $default;
61
  }
62
 
63
+ // Check for data attributes.
64
  if ( ! empty( $args['data'] ) ) {
65
  foreach ( $args['data'] as $key => $val ) {
66
  if ( is_array( $val ) ) {
70
  }
71
  }
72
 
73
+ // Determine what field type to output.
74
  switch ( $option ) {
75
 
76
+ // Text input.
77
  case 'text':
78
  $type = ! empty( $args['type'] ) ? esc_attr( $args['type'] ) : 'text';
79
  $output = sprintf(
89
  );
90
  break;
91
 
92
+ // Textarea.
93
  case 'textarea':
94
  $rows = ! empty( $args['rows'] ) ? (int) $args['rows'] : '3';
95
  $output = sprintf(
105
  );
106
  break;
107
 
108
+ // TinyMCE.
109
  case 'tinymce':
110
  $args = wp_parse_args( $args['tinymce'], array(
111
  'media_buttons' => false,
120
  $output = ob_get_clean();
121
  break;
122
 
123
+ // Checkbox.
124
  case 'checkbox':
125
  $checked = checked( '1', $value, false );
126
  $output = sprintf(
132
  $checked,
133
  $data_attr
134
  );
135
+ $output .= sprintf(
136
  '<label for="wpforms-panel-field-%s-%s" class="inline">%s',
137
  sanitize_html_class( $panel_id ),
138
  sanitize_html_class( $field ),
144
  $output .= '</label>';
145
  break;
146
 
147
+ // Radio.
148
  case 'radio':
149
  $options = $args['options'];
150
  $x = 1;
154
  continue;
155
  }
156
  $checked = checked( $key, $value, false );
157
+ $output .= sprintf(
158
  '<span class="row"><input type="radio" id="wpforms-panel-field-%s-%s-%d" name="%s" value="%s" class="%s" %s %s>',
159
  sanitize_html_class( $panel_id ),
160
  sanitize_html_class( $field ),
165
  $checked,
166
  $data_attr
167
  );
168
+ $output .= sprintf(
169
  '<label for="wpforms-panel-field-%s-%s-%d" class="inline">%s',
170
  sanitize_html_class( $panel_id ),
171
  sanitize_html_class( $field ),
180
  }
181
  break;
182
 
183
+ // Select.
184
  case 'select':
185
  if ( empty( $args['options'] ) && empty( $args['field_map'] ) ) {
186
  return '';
191
  $available_fields = wpforms_get_form_fields( $form_data, $args['field_map'] );
192
  if ( ! empty( $available_fields ) ) {
193
  foreach ( $available_fields as $id => $available_field ) {
194
+ $lbl = ! empty( $available_field['label'] ) ? esc_attr( $available_field['label'] ) : esc_html__( 'Field #' ) . $id;
195
  $options[ $id ] = $lbl;
196
  }
197
  }
225
  break;
226
  }
227
 
228
+ // Put the pieces together.
229
+ $field_open = sprintf(
230
  '<div id="wpforms-panel-field-%s-%s-wrap" class="wpforms-panel-field %s %s">',
231
  sanitize_html_class( $panel_id ),
232
  sanitize_html_class( $field ),
252
  $type = ! empty( $args['smarttags']['type'] ) ? esc_attr( $args['smarttags']['type'] ) : 'fields';
253
  $fields = ! empty( $args['smarttags']['fields'] ) ? esc_attr( $args['smarttags']['fields'] ) : '';
254
 
255
+ $field_label .= '<a href="#" class="toggle-smart-tag-display" data-type="' . $type . '" data-fields="' . $fields . '"><i class="fa fa-tags"></i> <span>' . esc_html__( 'Show Smart Tags', 'wpforms' ) . '</span></a>';
256
  }
257
  $field_label .= '</label>';
258
  } else {
259
  $field_label = '';
260
  }
261
+ $field_close = ! empty( $args['after'] ) ? $args['after'] : '';
262
  $field_close .= '</div>';
263
+ $output = $field_open . $field_label . $output . $field_close;
264
 
265
  // Wash our hands.
266
  if ( $echo ) {
includes/admin/builder/panels/class-base.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Base panel class.
4
  *
@@ -7,7 +8,7 @@
7
  * @since 1.0.0
8
  * @license GPL-2.0+
9
  * @copyright Copyright (c) 2016, WPForms LLC
10
- */
11
  abstract class WPForms_Builder_Panel {
12
 
13
  /**
@@ -73,21 +74,21 @@ abstract class WPForms_Builder_Panel {
73
  */
74
  public function __construct() {
75
 
76
- // Load form if found
77
- $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : false;
78
- $this->form = wpforms()->form->get( $form_id );
79
  $this->form_data = $this->form ? wpforms_decode( $this->form->post_content ) : false;
80
 
81
- // Bootstrap
82
  $this->init();
83
 
84
- // Load panel specific enqueus
85
  add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ), 15 );
86
 
87
- // Primary panel button
88
  add_action( 'wpforms_builder_panel_buttons', array( $this, 'button' ), $this->order, 2 );
89
 
90
- // Output
91
  add_action( 'wpforms_builder_panels', array( $this, 'panel_output' ), $this->order, 2 );
92
  }
93
 
@@ -111,69 +112,71 @@ abstract class WPForms_Builder_Panel {
111
  * Primary panel button in the left panel navigation.
112
  *
113
  * @since 1.0.0
 
114
  * @param mixed $form
115
  * @param string $view
116
  */
117
  public function button( $form, $view ) {
118
 
119
- $active = $view == $this->slug ? 'active' : '';
 
120
 
121
- printf ('<button class="wpforms-panel-%s-button %s" data-panel="%s">', $this->slug, $active, $this->slug );
122
-
123
- printf ('<i class="fa %s"></i>', $this->icon );
124
-
125
- printf ('<span>%s</span>', $this->name );
126
 
127
- echo '</button>';
128
  }
129
 
130
  /**
131
  * Outputs the contents of the panel.
132
  *
133
  * @since 1.0.0
 
134
  * @param object $form
135
  * @param string $view
136
  */
137
  public function panel_output( $form, $view ) {
138
 
139
- $active = $view == $this->slug ? 'active' : '';
140
  $wrap = $this->sidebar ? 'wpforms-panel-sidebar-content' : 'wpforms-panel-full-content';
141
 
142
- printf ('<div class="wpforms-panel %s" id="wpforms-panel-%s">', $active, $this->slug );
143
 
144
- printf( '<div class="wpforms-panel-name">%s</div>', $this->name );
145
 
146
- printf ('<div class="%s">', $wrap );
147
 
148
- if ( true == $this->sidebar ) {
149
 
150
- echo '<div class="wpforms-panel-sidebar">';
151
 
152
- do_action( 'wpforms_builder_before_panel_sidebar', $this->form, $this->slug );
153
 
154
- $this->panel_sidebar();
155
 
156
- do_action( 'wpforms_builder_after_panel_sidebar', $this->form, $this->slug );
157
 
158
- echo '</div>';
159
 
160
- }
161
 
162
- echo '<div class="wpforms-panel-content-wrap">';
163
 
164
- echo '<div class="wpforms-panel-content">';
165
 
166
- do_action( 'wpforms_builder_before_panel_content', $this->form, $this->slug );
167
 
168
- $this->panel_content();
169
 
170
- do_action( 'wpforms_builder_after_panel_content', $this->form, $this->slug );
171
 
172
- echo '</div>';
173
 
174
- echo '</div>';
175
 
176
- echo '</div>';
177
 
178
  echo '</div>';
179
  }
@@ -190,22 +193,26 @@ abstract class WPForms_Builder_Panel {
190
  * Outputs panel sidebar sections.
191
  *
192
  * @since 1.0.0
 
 
 
 
193
  */
194
  public function panel_sidebar_section( $name, $slug, $icon = '' ) {
195
 
196
  $class = '';
197
- $class .= $slug == 'default' ? ' default' : '';
198
- $class .= !empty( $icon ) ? ' icon' : '';
199
 
200
  echo '<a href="#" class="wpforms-panel-sidebar-section wpforms-panel-sidebar-section-' . esc_attr( $slug ) . $class . '" data-section="' . esc_attr( $slug ) . '">';
201
-
202
- if ( !empty( $icon ) ) {
203
- echo '<img src="' . esc_url( $icon ) . '">';
204
- }
205
 
206
- echo esc_html( $name );
 
 
 
 
207
 
208
- echo '<i class="fa fa-angle-right wpforms-toggle-arrow"></i>';
209
 
210
  echo '</a>';
211
  }
@@ -217,4 +224,4 @@ abstract class WPForms_Builder_Panel {
217
  */
218
  public function panel_content() {
219
  }
220
- }
1
  <?php
2
+
3
  /**
4
  * Base panel class.
5
  *
8
  * @since 1.0.0
9
  * @license GPL-2.0+
10
  * @copyright Copyright (c) 2016, WPForms LLC
11
+ */
12
  abstract class WPForms_Builder_Panel {
13
 
14
  /**
74
  */
75
  public function __construct() {
76
 
77
+ // Load form if found.
78
+ $form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : false;
79
+ $this->form = wpforms()->form->get( $form_id );
80
  $this->form_data = $this->form ? wpforms_decode( $this->form->post_content ) : false;
81
 
82
+ // Bootstrap.
83
  $this->init();
84
 
85
+ // Load panel specific enqueues.
86
  add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ), 15 );
87
 
88
+ // Primary panel button.
89
  add_action( 'wpforms_builder_panel_buttons', array( $this, 'button' ), $this->order, 2 );
90
 
91
+ // Output.
92
  add_action( 'wpforms_builder_panels', array( $this, 'panel_output' ), $this->order, 2 );
93
  }
94
 
112
  * Primary panel button in the left panel navigation.
113
  *
114
  * @since 1.0.0
115
+ *
116
  * @param mixed $form
117
  * @param string $view
118
  */
119
  public function button( $form, $view ) {
120
 
121
+ $active = $view === $this->slug ? 'active' : '';
122
+ ?>
123
 
124
+ <button class="wpforms-panel-<?php echo esc_attr( $this->slug ); ?>-button <?php echo $active; ?>" data-panel="<?php echo esc_attr( $this->slug ); ?>">
125
+ <i class="fa <?php echo esc_attr( $this->icon ); ?>"></i>
126
+ <span><?php echo esc_html( $this->name ); ?></span>
127
+ </button>
 
128
 
129
+ <?php
130
  }
131
 
132
  /**
133
  * Outputs the contents of the panel.
134
  *
135
  * @since 1.0.0
136
+ *
137
  * @param object $form
138
  * @param string $view
139
  */
140
  public function panel_output( $form, $view ) {
141
 
142
+ $active = $view === $this->slug ? 'active' : '';
143
  $wrap = $this->sidebar ? 'wpforms-panel-sidebar-content' : 'wpforms-panel-full-content';
144
 
145
+ printf( '<div class="wpforms-panel %s" id="wpforms-panel-%s">', $active, esc_attr( $this->slug ) );
146
 
147
+ printf( '<div class="wpforms-panel-name">%s</div>', $this->name );
148
 
149
+ printf( '<div class="%s">', $wrap );
150
 
151
+ if ( true === $this->sidebar ) {
152
 
153
+ echo '<div class="wpforms-panel-sidebar">';
154
 
155
+ do_action( 'wpforms_builder_before_panel_sidebar', $this->form, $this->slug );
156
 
157
+ $this->panel_sidebar();
158
 
159
+ do_action( 'wpforms_builder_after_panel_sidebar', $this->form, $this->slug );
160
 
161
+ echo '</div>';
162
 
163
+ }
164
 
165
+ echo '<div class="wpforms-panel-content-wrap">';
166
 
167
+ echo '<div class="wpforms-panel-content">';
168
 
169
+ do_action( 'wpforms_builder_before_panel_content', $this->form, $this->slug );
170
 
171
+ $this->panel_content();
172
 
173
+ do_action( 'wpforms_builder_after_panel_content', $this->form, $this->slug );
174
 
175
+ echo '</div>';
176
 
177
+ echo '</div>';
178
 
179
+ echo '</div>';
180
 
181
  echo '</div>';
182
  }
193
  * Outputs panel sidebar sections.
194
  *
195
  * @since 1.0.0
196
+ *
197
+ * @param string $name
198
+ * @param string $slug
199
+ * @param string $icon
200
  */
201
  public function panel_sidebar_section( $name, $slug, $icon = '' ) {
202
 
203
  $class = '';
204
+ $class .= $slug === 'default' ? ' default' : '';
205
+ $class .= ! empty( $icon ) ? ' icon' : '';
206
 
207
  echo '<a href="#" class="wpforms-panel-sidebar-section wpforms-panel-sidebar-section-' . esc_attr( $slug ) . $class . '" data-section="' . esc_attr( $slug ) . '">';
 
 
 
 
208
 
209
+ if ( ! empty( $icon ) ) {
210
+ echo '<img src="' . esc_url( $icon ) . '">';
211
+ }
212
+
213
+ echo esc_html( $name );
214
 
215
+ echo '<i class="fa fa-angle-right wpforms-toggle-arrow"></i>';
216
 
217
  echo '</a>';
218
  }
224
  */
225
  public function panel_content() {
226
  }
227
+ }
includes/admin/builder/panels/class-fields.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Fields management panel.
4
  *
@@ -7,7 +8,7 @@
7
  * @since 1.0.0
8
  * @license GPL-2.0+
9
  * @copyright Copyright (c) 2016, WPForms LLC
10
- */
11
  class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
12
 
13
  /**
@@ -17,17 +18,17 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
17
  */
18
  public function init() {
19
 
20
- // Define panel information
21
- $this->name = __( 'Fields', 'wpforms' );
22
  $this->slug = 'fields';
23
  $this->icon = 'fa-list-alt';
24
  $this->order = 10;
25
  $this->sidebar = true;
26
 
27
  if ( $this->form ) {
28
- add_action( 'wpforms_builder_fields', array( $this, 'fields' ) );
29
  add_action( 'wpforms_builder_fields_options', array( $this, 'fields_options' ) );
30
- add_action( 'wpforms_builder_preview', array( $this, 'preview' ) );
31
  }
32
  }
33
 
@@ -38,7 +39,7 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
38
  */
39
  public function enqueues() {
40
 
41
- // CSS
42
  wp_enqueue_style(
43
  'wpforms-builder-fields',
44
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-fields.css',
@@ -54,8 +55,8 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
54
  */
55
  public function panel_sidebar() {
56
 
57
- // Sidebar contents are not valid unless we have a form
58
- if ( !$this->form ) {
59
  return;
60
  }
61
  ?>
@@ -63,14 +64,14 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
63
 
64
  <li class="wpforms-tab" id="add-fields">
65
  <a href="#" class="active">
66
- <?php _e( 'Add Fields', 'wpforms' ); ?>
67
  <i class="fa fa-angle-down"></i>
68
  </a>
69
  </li>
70
 
71
  <li class="wpforms-tab" id="field-options">
72
  <a href="#">
73
- <?php _e( 'Field Options', 'wpforms' ); ?>
74
  <i class="fa fa-angle-right"></i>
75
  </a>
76
  </li>
@@ -94,14 +95,25 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
94
  */
95
  public function panel_content() {
96
 
97
- // Check if there is a form created
98
- if ( !$this->form ) {
99
  echo '<div class="wpforms-alert wpforms-alert-info">';
100
- _e( 'You need to <a href="#" class="wpforms-panel-switch" data-panel="setup">setup your form</a> before you can manage the fields.', 'wpforms' );
 
 
 
 
 
 
 
 
 
101
  echo '</div>';
 
102
  return;
103
  }
104
  ?>
 
105
  <div class="wpforms-preview-wrap">
106
 
107
  <div class="wpforms-preview">
@@ -120,19 +132,20 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
120
  </p>
121
 
122
  <?php
123
- $submit = !empty( $this->form_data['settings']['submit_text'] ) ? esc_attr( $this->form_data['settings']['submit_text'] ) : __( 'Submit', 'wpforms' );
124
- printf( '<p class="wpforms-field-submit"><input type="submit" value="%s" class="wpforms-field-submit-button"></p>', $submit );
125
  ?>
126
 
127
  <?php wpforms_debug_data( $this->form_data ); ?>
128
  </div>
129
 
130
  </div>
 
131
  <?php
132
  }
133
 
134
  /**
135
- * Builder field butttons.
136
  *
137
  * @since 1.0.0
138
  */
@@ -140,50 +153,50 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
140
 
141
  $fields = array(
142
  'standard' => array(
143
- 'group_name' => __( 'Standard Fields', 'wpforms' ),
144
  'fields' => array(),
145
  ),
146
- 'fancy' => array(
147
- 'group_name' => __( 'Fancy Fields', 'wpforms' ),
148
  'fields' => array(),
149
  ),
150
- 'payment' => array(
151
- 'group_name' => __( 'Payment Fields', 'wpforms' ),
152
  'fields' => array(),
153
  ),
154
  );
155
  $fields = apply_filters( 'wpforms_builder_fields_buttons', $fields );
156
 
157
- // Output the buttons
158
  foreach ( $fields as $id => $group ) {
159
 
160
  usort( $group['fields'], array( $this, 'field_order' ) );
161
 
162
  echo '<div class="wpforms-add-fields-group">';
163
 
164
- echo '<a href="#" class="wpforms-add-fields-heading" data-group="' . esc_attr( $id ) . '">';
165
 
166
- echo esc_html( $group['group_name'] );
167
 
168
- echo '<i class="fa fa-angle-down"></i>';
169
 
170
- echo '</a>';
171
 
172
- echo '<div class="wpforms-add-fields-buttons">';
173
 
174
- foreach( $group['fields'] as $field ) {
175
 
176
- $class = !empty( $field['class'] ) ? sanitize_html_class( $field['class'] ) : '';
177
 
178
- echo '<button class="wpforms-add-fields-button ' . $class . '" id="wpforms-add-fields-' . esc_attr( $field['type'] ) . '" data-field-type="' . esc_attr( $field['type'] ) . '">';
179
- if ( $field['icon'] ) {
180
- echo '<i class="fa ' . esc_attr( $field['icon'] ) . '"></i> ';
181
- }
182
- echo esc_html( $field['name'] );
183
- echo '</button>';
184
- }
185
 
186
- echo '</div>';
187
 
188
  echo '</div>';
189
  }
@@ -196,25 +209,26 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
196
  */
197
  public function fields_options() {
198
 
199
- // Check to make sure the form actually has fields created already
200
  if ( empty( $this->form_data['fields'] ) ) {
201
- printf( '<p class="no-fields">%s</p>', __( "You don't have any fields yet.", 'wpforms' ) );
 
202
  return;
203
  }
204
 
205
  $fields = $this->form_data['fields'];
206
 
207
- foreach( $fields as $field ) {
208
 
209
  $class = apply_filters( 'wpforms_builder_field_option_class', '', $field );
210
 
211
  printf( '<div class="wpforms-field-option wpforms-field-option-%s %s" id="wpforms-field-option-%d" data-field-id="%d">', esc_attr( $field['type'] ), $class, $field['id'], $field['id'] );
212
 
213
- printf( '<input type="hidden" name="fields[%d][id]" value="%d" class="wpforms-field-option-hidden-id">', $field['id'], $field['id'] );
214
 
215
- printf( '<input type="hidden" name="fields[%d][type]" value="%s" class="wpforms-field-option-hidden-type">', $field['id'], esc_attr( $field['type'] ) );
216
 
217
- do_action( "wpforms_builder_fields_options_{$field['type']}", $field );
218
 
219
  echo '</div>';
220
  }
@@ -227,35 +241,36 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
227
  */
228
  public function preview() {
229
 
230
- // Check to make sure the form actually has fields created already
231
  if ( empty( $this->form_data['fields'] ) ) {
232
- printf( '<p class="no-fields-preview">%s</p>', __( "You don't have any fields yet. Add some!", 'wpforms' ) );
 
233
  return;
234
  }
235
 
236
  $fields = $this->form_data['fields'];
237
 
238
- foreach( $fields as $field ) {
239
 
240
- $css = !empty( $field['size'] ) ? 'size-' . esc_attr( $field['size'] ) : '' ;
241
- $css .= !empty( $field['label_hide'] ) && $field['label_hide'] == '1' ? ' label_hide' : '' ;
242
- $css .= !empty( $field['sublabel_hide'] ) && $field['sublabel_hide'] == '1' ? ' sublabel_hide' : '';
243
- $css .= !empty( $field['required'] ) && $field['required'] == '1' ? ' required' : '';
244
- $css .= !empty( $field['input_columns'] ) && $field['input_columns'] == '2' ? ' wpforms-list-2-columns' : '';
245
- $css .= !empty( $field['input_columns'] ) && $field['input_columns'] == '3' ? ' wpforms-list-3-columns' : '';
246
  $css .= isset( $field['meta']['delete'] ) && $field['meta']['delete'] === false ? ' no-delete' : '';
247
 
248
  $css = apply_filters( 'wpforms_field_preview_class', $css, $field );
249
 
250
  printf( '<div class="wpforms-field wpforms-field-%s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field['type'], $css, $field['id'], $field['id'], $field['type'] );
251
 
252
- printf( '<a href="#" class="wpforms-field-duplicate" title="%s"><i class="fa fa-files-o" aria-hidden="true"></i></a>', __( 'Duplicate Field', 'wpforms' ) );
253
 
254
- printf( '<a href="#" class="wpforms-field-delete" title="%s"><i class="fa fa-times-circle" aria-hidden="true"></i></a>', __( 'Delete Field', 'wpforms' ) );
255
 
256
- printf( '<span class="wpforms-field-helper">%s</span>', __( 'Click to edit. Drag to reorder.', 'wpforms' ) );
257
 
258
- do_action( "wpforms_builder_fields_previews_{$field['type']}", $field );
259
 
260
  echo '</div>';
261
  }
@@ -265,9 +280,15 @@ class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
265
  * Sort Add Field buttons by order provided.
266
  *
267
  * @since 1.0.0
 
 
 
 
 
268
  */
269
- function field_order( $a, $b ) {
270
  return $a['order'] - $b['order'];
271
  }
272
  }
 
273
  new WPForms_Builder_Panel_Fields;
1
  <?php
2
+
3
  /**
4
  * Fields management panel.
5
  *
8
  * @since 1.0.0
9
  * @license GPL-2.0+
10
  * @copyright Copyright (c) 2016, WPForms LLC
11
+ */
12
  class WPForms_Builder_Panel_Fields extends WPForms_Builder_Panel {
13
 
14
  /**
18
  */
19
  public function init() {
20
 
21
+ // Define panel information.
22
+ $this->name = esc_html__( 'Fields', 'wpforms' );
23
  $this->slug = 'fields';
24
  $this->icon = 'fa-list-alt';
25
  $this->order = 10;
26
  $this->sidebar = true;
27
 
28
  if ( $this->form ) {
29
+ add_action( 'wpforms_builder_fields', array( $this, 'fields' ) );
30
  add_action( 'wpforms_builder_fields_options', array( $this, 'fields_options' ) );
31
+ add_action( 'wpforms_builder_preview', array( $this, 'preview' ) );
32
  }
33
  }
34
 
39
  */
40
  public function enqueues() {
41
 
42
+ // CSS.
43
  wp_enqueue_style(
44
  'wpforms-builder-fields',
45
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-fields.css',
55
  */
56
  public function panel_sidebar() {
57
 
58
+ // Sidebar contents are not valid unless we have a form.
59
+ if ( ! $this->form ) {
60
  return;
61
  }
62
  ?>
64
 
65
  <li class="wpforms-tab" id="add-fields">
66
  <a href="#" class="active">
67
+ <?php esc_html_e( 'Add Fields', 'wpforms' ); ?>
68
  <i class="fa fa-angle-down"></i>
69
  </a>
70
  </li>
71
 
72
  <li class="wpforms-tab" id="field-options">
73
  <a href="#">
74
+ <?php esc_html_e( 'Field Options', 'wpforms' ); ?>
75
  <i class="fa fa-angle-right"></i>
76
  </a>
77
  </li>
95
  */
96
  public function panel_content() {
97
 
98
+ // Check if there is a form created.
99
+ if ( ! $this->form ) {
100
  echo '<div class="wpforms-alert wpforms-alert-info">';
101
+ echo wp_kses(
102
+ __( 'You need to <a href="#" class="wpforms-panel-switch" data-panel="setup">setup your form</a> before you can manage the fields.', 'wpforms' ),
103
+ array(
104
+ 'a' => array(
105
+ 'href' => array(),
106
+ 'class' => array(),
107
+ 'data-panel' => array(),
108
+ ),
109
+ )
110
+ );
111
  echo '</div>';
112
+
113
  return;
114
  }
115
  ?>
116
+
117
  <div class="wpforms-preview-wrap">
118
 
119
  <div class="wpforms-preview">
132
  </p>
133
 
134
  <?php
135
+ $submit = ! empty( $this->form_data['settings']['submit_text'] ) ? $this->form_data['settings']['submit_text'] : esc_html__( 'Submit', 'wpforms' );
136
+ printf( '<p class="wpforms-field-submit"><input type="submit" value="%s" class="wpforms-field-submit-button"></p>', esc_attr( $submit ) );
137
  ?>
138
 
139
  <?php wpforms_debug_data( $this->form_data ); ?>
140
  </div>
141
 
142
  </div>
143
+
144
  <?php
145
  }
146
 
147
  /**
148
+ * Builder field buttons.
149
  *
150
  * @since 1.0.0
151
  */
153
 
154
  $fields = array(
155
  'standard' => array(
156
+ 'group_name' => esc_html__( 'Standard Fields', 'wpforms' ),
157
  'fields' => array(),
158
  ),
159
+ 'fancy' => array(
160
+ 'group_name' => esc_html__( 'Fancy Fields', 'wpforms' ),
161
  'fields' => array(),
162
  ),
163
+ 'payment' => array(
164
+ 'group_name' => esc_html__( 'Payment Fields', 'wpforms' ),
165
  'fields' => array(),
166
  ),
167
  );
168
  $fields = apply_filters( 'wpforms_builder_fields_buttons', $fields );
169
 
170
+ // Output the buttons.
171
  foreach ( $fields as $id => $group ) {
172
 
173
  usort( $group['fields'], array( $this, 'field_order' ) );
174
 
175
  echo '<div class="wpforms-add-fields-group">';
176
 
177
+ echo '<a href="#" class="wpforms-add-fields-heading" data-group="' . esc_attr( $id ) . '">';
178
 
179
+ echo esc_html( $group['group_name'] );
180
 
181
+ echo '<i class="fa fa-angle-down"></i>';
182
 
183
+ echo '</a>';
184
 
185
+ echo '<div class="wpforms-add-fields-buttons">';
186
 
187
+ foreach ( $group['fields'] as $field ) {
188
 
189
+ $class = ! empty( $field['class'] ) ? sanitize_html_class( $field['class'] ) : '';
190
 
191
+ echo '<button class="wpforms-add-fields-button ' . $class . '" id="wpforms-add-fields-' . esc_attr( $field['type'] ) . '" data-field-type="' . esc_attr( $field['type'] ) . '">';
192
+ if ( $field['icon'] ) {
193
+ echo '<i class="fa ' . esc_attr( $field['icon'] ) . '"></i> ';
194
+ }
195
+ echo esc_html( $field['name'] );
196
+ echo '</button>';
197
+ }
198
 
199
+ echo '</div>';
200
 
201
  echo '</div>';
202
  }
209
  */
210
  public function fields_options() {
211
 
212
+ // Check to make sure the form actually has fields created already.
213
  if ( empty( $this->form_data['fields'] ) ) {
214
+ printf( '<p class="no-fields">%s</p>', esc_html__( 'You don\'t have any fields yet.', 'wpforms' ) );
215
+
216
  return;
217
  }
218
 
219
  $fields = $this->form_data['fields'];
220
 
221
+ foreach ( $fields as $field ) {
222
 
223
  $class = apply_filters( 'wpforms_builder_field_option_class', '', $field );
224
 
225
  printf( '<div class="wpforms-field-option wpforms-field-option-%s %s" id="wpforms-field-option-%d" data-field-id="%d">', esc_attr( $field['type'] ), $class, $field['id'], $field['id'] );
226
 
227
+ printf( '<input type="hidden" name="fields[%d][id]" value="%d" class="wpforms-field-option-hidden-id">', $field['id'], $field['id'] );
228
 
229
+ printf( '<input type="hidden" name="fields[%d][type]" value="%s" class="wpforms-field-option-hidden-type">', $field['id'], esc_attr( $field['type'] ) );
230
 
231
+ do_action( "wpforms_builder_fields_options_{$field['type']}", $field );
232
 
233
  echo '</div>';
234
  }
241
  */
242
  public function preview() {
243
 
244
+ // Check to make sure the form actually has fields created already.
245
  if ( empty( $this->form_data['fields'] ) ) {
246
+ printf( '<p class="no-fields-preview">%s</p>', esc_html__( 'You don\'t have any fields yet. Add some!', 'wpforms' ) );
247
+
248
  return;
249
  }
250
 
251
  $fields = $this->form_data['fields'];
252
 
253
+ foreach ( $fields as $field ) {
254
 
255
+ $css = ! empty( $field['size'] ) ? 'size-' . esc_attr( $field['size'] ) : '';
256
+ $css .= ! empty( $field['label_hide'] ) && $field['label_hide'] == '1' ? ' label_hide' : '';
257
+ $css .= ! empty( $field['sublabel_hide'] ) && $field['sublabel_hide'] == '1' ? ' sublabel_hide' : '';
258
+ $css .= ! empty( $field['required'] ) && $field['required'] == '1' ? ' required' : '';
259
+ $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '2' ? ' wpforms-list-2-columns' : '';
260
+ $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '3' ? ' wpforms-list-3-columns' : '';
261
  $css .= isset( $field['meta']['delete'] ) && $field['meta']['delete'] === false ? ' no-delete' : '';
262
 
263
  $css = apply_filters( 'wpforms_field_preview_class', $css, $field );
264
 
265
  printf( '<div class="wpforms-field wpforms-field-%s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field['type'], $css, $field['id'], $field['id'], $field['type'] );
266
 
267
+ printf( '<a href="#" class="wpforms-field-duplicate" title="%s"><i class="fa fa-files-o" aria-hidden="true"></i></a>', esc_html__( 'Duplicate Field', 'wpforms' ) );
268
 
269
+ printf( '<a href="#" class="wpforms-field-delete" title="%s"><i class="fa fa-times-circle" aria-hidden="true"></i></a>', esc_html__( 'Delete Field', 'wpforms' ) );
270
 
271
+ printf( '<span class="wpforms-field-helper">%s</span>', esc_html__( 'Click to edit. Drag to reorder.', 'wpforms' ) );
272
 
273
+ do_action( "wpforms_builder_fields_previews_{$field['type']}", $field );
274
 
275
  echo '</div>';
276
  }
280
  * Sort Add Field buttons by order provided.
281
  *
282
  * @since 1.0.0
283
+ *
284
+ * @param array $a
285
+ * @param array $b
286
+ *
287
+ * @return array
288
  */
289
+ public function field_order( $a, $b ) {
290
  return $a['order'] - $b['order'];
291
  }
292
  }
293
+
294
  new WPForms_Builder_Panel_Fields;
includes/admin/builder/panels/class-providers.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Providers panel.
4
  *
@@ -7,7 +8,7 @@
7
  * @since 1.0.0
8
  * @license GPL-2.0+
9
  * @copyright Copyright (c) 2016, WPForms LLC
10
- */
11
  class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
12
 
13
  /**
@@ -17,8 +18,8 @@ class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
17
  */
18
  public function init() {
19
 
20
- // Define panel information
21
- $this->name = __( 'Marketing', 'wpforms' );
22
  $this->slug = 'providers';
23
  $this->icon = 'fa-bullhorn';
24
  $this->order = 10;
@@ -52,12 +53,12 @@ class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
52
  'wpforms_builder_providers',
53
  array(
54
  'url' => esc_url( add_query_arg( array( 'view' => 'providers' ) ) ),
55
- 'confirm_save' => __( 'We need to save your progress to continue to the Marketing panel. Is that OK?', 'wpforms' ),
56
- 'confirm_connection' => __( 'Are you sure you want to delete this connecton?', 'wpforms' ),
57
- 'prompt_connection' => __( 'Enter a %type% nickname', 'wpforms' ),
58
- 'prompt_placeholder' => __( 'Eg: Newsletter Optin', 'wpforms' ),
59
- 'error_name' => __( 'You must provide a connection nickname', 'wpforms' ),
60
- 'required_field' => __( 'Field required', 'wpforms' ),
61
  )
62
  );
63
  }
@@ -69,12 +70,12 @@ class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
69
  */
70
  public function panel_sidebar() {
71
 
72
- // Sidebar contents are not valid unless we have a form
73
- if ( !$this->form ) {
74
  return;
75
  }
76
 
77
- $this->panel_sidebar_section( 'Default', 'default' );
78
 
79
  do_action( 'wpforms_providers_panel_sidebar', $this->form );
80
  }
@@ -86,7 +87,7 @@ class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
86
  */
87
  public function panel_content() {
88
 
89
- // An array of all the active provider addons
90
  $providers_active = apply_filters( 'wpforms_providers_available', array() );
91
 
92
  if ( ! $this->form ) {
@@ -94,8 +95,18 @@ class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
94
  // Check if there is a form created. When no form has been created
95
  // yet let the user know we need a form to setup a provider.
96
  echo '<div class="wpforms-alert wpforms-alert-info">';
97
- _e( 'You need to <a href="#" class="wpforms-panel-switch" data-panel="setup">setup your form</a> before you can manage these settings.', 'wpforms' );
 
 
 
 
 
 
 
 
 
98
  echo '</div>';
 
99
  return;
100
  }
101
 
@@ -105,15 +116,28 @@ class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
105
  // activated let the user know they need to install/activate an
106
  // addon to setup a provider.
107
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-info">';
108
- echo '<h5>' . __( 'Install Your Marketing Integration', 'wpforms' ) . '</h5>';
109
- echo '<p>' . sprintf( __( 'It seems you do not have any marketing addons activated. You can head over to the <a href="%s">Addons page</a> to install and activate the addon for your provider.', 'wpforms' ), admin_url( 'admin.php?page=wpforms-addons' ) ) . '</p>';
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  echo '</div>';
111
  } else {
112
 
113
  // Everything is good - display default instructions.
114
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-default">';
115
- echo '<h5>' . __( 'Select Your Marketing Integration', 'wpforms' ) . '</h5>';
116
- echo '<p>' . __( 'Select your email marketing service provider or CRM from the options on the left. If you don\'t see your email marketing service listed, then let us know and we\'ll do our best to get it added as fast as possible.', 'wpforms' ) . '</p>';
117
  echo '</div>';
118
  }
119
 
1
  <?php
2
+
3
  /**
4
  * Providers panel.
5
  *
8
  * @since 1.0.0
9
  * @license GPL-2.0+
10
  * @copyright Copyright (c) 2016, WPForms LLC
11
+ */
12
  class WPForms_Builder_Panel_Providers extends WPForms_Builder_Panel {
13
 
14
  /**
18
  */
19
  public function init() {
20
 
21
+ // Define panel information.
22
+ $this->name = esc_html__( 'Marketing', 'wpforms' );
23
  $this->slug = 'providers';
24
  $this->icon = 'fa-bullhorn';
25
  $this->order = 10;
53
  'wpforms_builder_providers',
54
  array(
55
  'url' => esc_url( add_query_arg( array( 'view' => 'providers' ) ) ),
56
+ 'confirm_save' => esc_html__( 'We need to save your progress to continue to the Marketing panel. Is that OK?', 'wpforms' ),
57
+ 'confirm_connection' => esc_html__( 'Are you sure you want to delete this connection?', 'wpforms' ),
58
+ 'prompt_connection' => esc_html__( 'Enter a %type% nickname', 'wpforms' ),
59
+ 'prompt_placeholder' => esc_html__( 'Eg: Newsletter Optin', 'wpforms' ),
60
+ 'error_name' => esc_html__( 'You must provide a connection nickname', 'wpforms' ),
61
+ 'required_field' => esc_html__( 'Field required', 'wpforms' ),
62
  )
63
  );
64
  }
70
  */
71
  public function panel_sidebar() {
72
 
73
+ // Sidebar contents are not valid unless we have a form.
74
+ if ( ! $this->form ) {
75
  return;
76
  }
77
 
78
+ $this->panel_sidebar_section( 'Default', 'default' );
79
 
80
  do_action( 'wpforms_providers_panel_sidebar', $this->form );
81
  }
87
  */
88
  public function panel_content() {
89
 
90
+ // An array of all the active provider addons.
91
  $providers_active = apply_filters( 'wpforms_providers_available', array() );
92
 
93
  if ( ! $this->form ) {
95
  // Check if there is a form created. When no form has been created
96
  // yet let the user know we need a form to setup a provider.
97
  echo '<div class="wpforms-alert wpforms-alert-info">';
98
+ echo wp_kses(
99
+ __( 'You need to <a href="#" class="wpforms-panel-switch" data-panel="setup">setup your form</a> before you can manage these settings.', 'wpforms' ),
100
+ array(
101
+ 'a' => array(
102
+ 'href' => array(),
103
+ 'class' => array(),
104
+ 'data-panel' => array(),
105
+ ),
106
+ )
107
+ );
108
  echo '</div>';
109
+
110
  return;
111
  }
112
 
116
  // activated let the user know they need to install/activate an
117
  // addon to setup a provider.
118
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-info">';
119
+ echo '<h5>' . esc_html__( 'Install Your Marketing Integration', 'wpforms' ) . '</h5>';
120
+ echo '<p>' .
121
+ sprintf(
122
+ wp_kses(
123
+ /* translators: %s - plugin admin area Addons page. */
124
+ __( 'It seems you do not have any marketing addons activated. You can head over to the <a href="%s">Addons page</a> to install and activate the addon for your provider.', 'wpforms' ),
125
+ array(
126
+ 'a' => array(
127
+ 'href' => array(),
128
+ ),
129
+ )
130
+ ),
131
+ admin_url( 'admin.php?page=wpforms-addons' )
132
+ ) .
133
+ '</p>';
134
  echo '</div>';
135
  } else {
136
 
137
  // Everything is good - display default instructions.
138
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-default">';
139
+ echo '<h5>' . esc_html__( 'Select Your Marketing Integration', 'wpforms' ) . '</h5>';
140
+ echo '<p>' . esc_html__( 'Select your email marketing service provider or CRM from the options on the left. If you don\'t see your email marketing service listed, then let us know and we\'ll do our best to get it added as fast as possible.', 'wpforms' ) . '</p>';
141
  echo '</div>';
142
  }
143
 
includes/admin/builder/panels/class-settings.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Settings management panel.
4
  *
@@ -17,8 +18,8 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
17
  */
18
  public function init() {
19
 
20
- // Define panel information
21
- $this->name = __( 'Settings', 'wpforms' );
22
  $this->slug = 'settings';
23
  $this->icon = 'fa-sliders';
24
  $this->order = 10;
@@ -32,7 +33,7 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
32
  */
33
  public function enqueues() {
34
 
35
- // CSS
36
  wp_enqueue_style(
37
  'wpforms-builder-settings',
38
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-settings.css',
@@ -48,19 +49,19 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
48
  */
49
  public function panel_sidebar() {
50
 
51
- // Sidebar contents are not valid unless we have a form
52
  if ( ! $this->form ) {
53
  return;
54
  }
55
 
56
  $sections = array(
57
- 'general' => __( 'General', 'wpforms' ),
58
- 'notifications' => __( 'Notifications', 'wpforms' ),
59
- 'confirmation' => __( 'Confirmation', 'wpforms' ),
60
  );
61
  $sections = apply_filters( 'wpforms_builder_settings_sections', $sections, $this->form_data );
62
  foreach ( $sections as $slug => $section ) {
63
- $this->panel_sidebar_section( $section, $slug );
64
  }
65
  }
66
 
@@ -71,27 +72,37 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
71
  */
72
  public function panel_content() {
73
 
74
- // Check if there is a form created
75
  if ( ! $this->form ) {
76
  echo '<div class="wpforms-alert wpforms-alert-info">';
77
- _e( 'You need to <a href="#" class="wpforms-panel-switch" data-panel="setup">setup your form</a> before you can manage the settings.', 'wpforms' );
 
 
 
 
 
 
 
 
 
78
  echo '</div>';
 
79
  return;
80
  }
81
 
82
  // --------------------------------------------------------------------//
83
- // General
84
  // --------------------------------------------------------------------//
85
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-general">';
86
  echo '<div class="wpforms-panel-content-section-title">';
87
- _e( 'General', 'wpforms' );
88
  echo '</div>';
89
  wpforms_panel_field(
90
  'text',
91
  'settings',
92
  'form_title',
93
  $this->form_data,
94
- __( 'Form Name', 'wpforms' ),
95
  array(
96
  'default' => $this->form->post_title,
97
  )
@@ -101,16 +112,16 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
101
  'settings',
102
  'form_desc',
103
  $this->form_data,
104
- __( 'Form Description', 'wpforms' )
105
  );
106
  wpforms_panel_field(
107
  'text',
108
  'settings',
109
  'form_class',
110
  $this->form_data,
111
- __( 'Form CSS Class', 'wpforms' ),
112
  array(
113
- 'tooltip' => __( 'Enter CSS class names for the form wrapper. Multiple class names should be separated with spaces.', 'wpforms' ),
114
  )
115
  );
116
  wpforms_panel_field(
@@ -118,9 +129,9 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
118
  'settings',
119
  'submit_text',
120
  $this->form_data,
121
- __( 'Submit Button Text', 'wpforms' ),
122
  array(
123
- 'default' => __( 'Submit', 'wpforms' ),
124
  )
125
  );
126
  wpforms_panel_field(
@@ -128,9 +139,9 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
128
  'settings',
129
  'submit_text_processing',
130
  $this->form_data,
131
- __( 'Submit Button Processing Text', 'wpforms' ),
132
  array(
133
- 'tooltip' => __( 'Enter the submit button text you would like the button display while the form submit is processing.', 'wpforms' ),
134
  )
135
  );
136
  wpforms_panel_field(
@@ -138,9 +149,9 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
138
  'settings',
139
  'submit_class',
140
  $this->form_data,
141
- __( 'Submit Button CSS Class', 'wpforms' ),
142
  array(
143
- 'tooltip' => __( 'Enter CSS class names for the form submit button. Multiple names should be separated with spaces.', 'wpforms' ),
144
  )
145
  );
146
  wpforms_panel_field(
@@ -148,7 +159,7 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
148
  'settings',
149
  'honeypot',
150
  $this->form_data,
151
- __( 'Enable anti-spam honeypot', 'wpforms' )
152
  );
153
  $recaptcha_key = wpforms_setting( 'recaptcha-site-key' );
154
  $recaptcha_secret = wpforms_setting( 'recaptcha-secret-key' );
@@ -159,38 +170,38 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
159
  'settings',
160
  'recaptcha',
161
  $this->form_data,
162
- 'invisible' === $recaptcha_type ? __( 'Enable Google invisible reCAPTCHA', 'wpforms' ) : __( 'Enable Google reCAPTCHA (v2)', 'wpforms' )
163
  );
164
  }
165
  do_action( 'wpforms_form_settings_general', $this );
166
  echo '</div>';
167
 
168
  // --------------------------------------------------------------------//
169
- // Notifications
170
  // --------------------------------------------------------------------//
171
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-notifications">';
172
  do_action( 'wpforms_form_settings_notifications', $this );
173
  echo '</div>';
174
 
175
  // --------------------------------------------------------------------//
176
- // Confirmation
177
  // --------------------------------------------------------------------//
178
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-confirmation">';
179
  echo '<div class="wpforms-panel-content-section-title">';
180
- _e( 'Confirmation', 'wpforms' );
181
  echo '</div>';
182
  wpforms_panel_field(
183
  'select',
184
  'settings',
185
  'confirmation_type',
186
  $this->form_data,
187
- __( 'Confirmation Type', 'wpforms' ),
188
  array(
189
  'default' => 'message',
190
  'options' => array(
191
- 'message' => __( 'Message', 'wpforms' ),
192
- 'page' => __( 'Show Page', 'wpforms' ),
193
- 'redirect' => __( 'Go to URL (Redirect)', 'wpforms' ),
194
  ),
195
  )
196
  );
@@ -199,9 +210,9 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
199
  'settings',
200
  'confirmation_message',
201
  $this->form_data,
202
- __( 'Confirmation Message', 'wpforms' ),
203
  array(
204
- 'default' => __( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms' ),
205
  'tinymce' => array(
206
  'editor_height' => '200',
207
  ),
@@ -212,9 +223,9 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
212
  'settings',
213
  'confirmation_message_scroll',
214
  $this->form_data,
215
- __( 'Automatically scroll to the confirmation message', 'wpforms' )
216
  );
217
- $p = array();
218
  $pages = get_pages();
219
  foreach ( $pages as $page ) {
220
  $depth = count( $page->ancestors );
@@ -225,7 +236,7 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
225
  'settings',
226
  'confirmation_page',
227
  $this->form_data,
228
- __( 'Confirmation Page', 'wpforms' ),
229
  array(
230
  'options' => $p,
231
  )
@@ -235,7 +246,7 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
235
  'settings',
236
  'confirmation_redirect',
237
  $this->form_data,
238
- __( 'Confirmation Redirect URL', 'wpforms' )
239
  );
240
  do_action( 'wpforms_form_settings_confirmation', $this );
241
  echo '</div>';
1
  <?php
2
+
3
  /**
4
  * Settings management panel.
5
  *
18
  */
19
  public function init() {
20
 
21
+ // Define panel information.
22
+ $this->name = esc_html__( 'Settings', 'wpforms' );
23
  $this->slug = 'settings';
24
  $this->icon = 'fa-sliders';
25
  $this->order = 10;
33
  */
34
  public function enqueues() {
35
 
36
+ // CSS.
37
  wp_enqueue_style(
38
  'wpforms-builder-settings',
39
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-settings.css',
49
  */
50
  public function panel_sidebar() {
51
 
52
+ // Sidebar contents are not valid unless we have a form.
53
  if ( ! $this->form ) {
54
  return;
55
  }
56
 
57
  $sections = array(
58
+ 'general' => esc_html__( 'General', 'wpforms' ),
59
+ 'notifications' => esc_html__( 'Notifications', 'wpforms' ),
60
+ 'confirmation' => esc_html__( 'Confirmation', 'wpforms' ),
61
  );
62
  $sections = apply_filters( 'wpforms_builder_settings_sections', $sections, $this->form_data );
63
  foreach ( $sections as $slug => $section ) {
64
+ $this->panel_sidebar_section( $section, $slug );
65
  }
66
  }
67
 
72
  */
73
  public function panel_content() {
74
 
75
+ // Check if there is a form created.
76
  if ( ! $this->form ) {
77
  echo '<div class="wpforms-alert wpforms-alert-info">';
78
+ echo wp_kses(
79
+ __( 'You need to <a href="#" class="wpforms-panel-switch" data-panel="setup">setup your form</a> before you can manage the settings.', 'wpforms' ),
80
+ array(
81
+ 'a' => array(
82
+ 'href' => array(),
83
+ 'class' => array(),
84
+ 'data-panel' => array(),
85
+ ),
86
+ )
87
+ );
88
  echo '</div>';
89
+
90
  return;
91
  }
92
 
93
  // --------------------------------------------------------------------//
94
+ // General.
95
  // --------------------------------------------------------------------//
96
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-general">';
97
  echo '<div class="wpforms-panel-content-section-title">';
98
+ esc_html_e( 'General', 'wpforms' );
99
  echo '</div>';
100
  wpforms_panel_field(
101
  'text',
102
  'settings',
103
  'form_title',
104
  $this->form_data,
105
+ esc_html__( 'Form Name', 'wpforms' ),
106
  array(
107
  'default' => $this->form->post_title,
108
  )
112
  'settings',
113
  'form_desc',
114
  $this->form_data,
115
+ esc_html__( 'Form Description', 'wpforms' )
116
  );
117
  wpforms_panel_field(
118
  'text',
119
  'settings',
120
  'form_class',
121
  $this->form_data,
122
+ esc_html__( 'Form CSS Class', 'wpforms' ),
123
  array(
124
+ 'tooltip' => esc_html__( 'Enter CSS class names for the form wrapper. Multiple class names should be separated with spaces.', 'wpforms' ),
125
  )
126
  );
127
  wpforms_panel_field(
129
  'settings',
130
  'submit_text',
131
  $this->form_data,
132
+ esc_html__( 'Submit Button Text', 'wpforms' ),
133
  array(
134
+ 'default' => esc_html__( 'Submit', 'wpforms' ),
135
  )
136
  );
137
  wpforms_panel_field(
139
  'settings',
140
  'submit_text_processing',
141
  $this->form_data,
142
+ esc_html__( 'Submit Button Processing Text', 'wpforms' ),
143
  array(
144
+ 'tooltip' => esc_html__( 'Enter the submit button text you would like the button display while the form submit is processing.', 'wpforms' ),
145
  )
146
  );
147
  wpforms_panel_field(
149
  'settings',
150
  'submit_class',
151
  $this->form_data,
152
+ esc_html__( 'Submit Button CSS Class', 'wpforms' ),
153
  array(
154
+ 'tooltip' => esc_html__( 'Enter CSS class names for the form submit button. Multiple names should be separated with spaces.', 'wpforms' ),
155
  )
156
  );
157
  wpforms_panel_field(
159
  'settings',
160
  'honeypot',
161
  $this->form_data,
162
+ esc_html__( 'Enable anti-spam honeypot', 'wpforms' )
163
  );
164
  $recaptcha_key = wpforms_setting( 'recaptcha-site-key' );
165
  $recaptcha_secret = wpforms_setting( 'recaptcha-secret-key' );
170
  'settings',
171
  'recaptcha',
172
  $this->form_data,
173
+ 'invisible' === $recaptcha_type ? esc_html__( 'Enable Google invisible reCAPTCHA', 'wpforms' ) : esc_html__( 'Enable Google reCAPTCHA (v2)', 'wpforms' )
174
  );
175
  }
176
  do_action( 'wpforms_form_settings_general', $this );
177
  echo '</div>';
178
 
179
  // --------------------------------------------------------------------//
180
+ // Notifications.
181
  // --------------------------------------------------------------------//
182
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-notifications">';
183
  do_action( 'wpforms_form_settings_notifications', $this );
184
  echo '</div>';
185
 
186
  // --------------------------------------------------------------------//
187
+ // Confirmation.
188
  // --------------------------------------------------------------------//
189
  echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-confirmation">';
190
  echo '<div class="wpforms-panel-content-section-title">';
191
+ esc_html_e( 'Confirmation', 'wpforms' );
192
  echo '</div>';
193
  wpforms_panel_field(
194
  'select',
195
  'settings',
196
  'confirmation_type',
197
  $this->form_data,
198
+ esc_html__( 'Confirmation Type', 'wpforms' ),
199
  array(
200
  'default' => 'message',
201
  'options' => array(
202
+ 'message' => esc_html__( 'Message', 'wpforms' ),
203
+ 'page' => esc_html__( 'Show Page', 'wpforms' ),
204
+ 'redirect' => esc_html__( 'Go to URL (Redirect)', 'wpforms' ),
205
  ),
206
  )
207
  );
210
  'settings',
211
  'confirmation_message',
212
  $this->form_data,
213
+ esc_html__( 'Confirmation Message', 'wpforms' ),
214
  array(
215
+ 'default' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms' ),
216
  'tinymce' => array(
217
  'editor_height' => '200',
218
  ),
223
  'settings',
224
  'confirmation_message_scroll',
225
  $this->form_data,
226
+ esc_html__( 'Automatically scroll to the confirmation message', 'wpforms' )
227
  );
228
+ $p = array();
229
  $pages = get_pages();
230
  foreach ( $pages as $page ) {
231
  $depth = count( $page->ancestors );
236
  'settings',
237
  'confirmation_page',
238
  $this->form_data,
239
+ esc_html__( 'Confirmation Page', 'wpforms' ),
240
  array(
241
  'options' => $p,
242
  )
246
  'settings',
247
  'confirmation_redirect',
248
  $this->form_data,
249
+ esc_html__( 'Confirmation Redirect URL', 'wpforms' )
250
  );
251
  do_action( 'wpforms_form_settings_confirmation', $this );
252
  echo '</div>';
includes/admin/builder/panels/class-setup.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Setup panel.
4
  *
@@ -17,8 +18,8 @@ class WPForms_Builder_Panel_Setup extends WPForms_Builder_Panel {
17
  */
18
  public function init() {
19
 
20
- // Define panel information
21
- $this->name = __( 'Setup', 'wpforms' );
22
  $this->slug = 'setup';
23
  $this->icon = 'fa-cog';
24
  $this->order = 5;
@@ -31,7 +32,7 @@ class WPForms_Builder_Panel_Setup extends WPForms_Builder_Panel {
31
  */
32
  public function enqueues() {
33
 
34
- // CSS
35
  wp_enqueue_style(
36
  'wpforms-builder-setup',
37
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-setup.css',
@@ -48,26 +49,37 @@ class WPForms_Builder_Panel_Setup extends WPForms_Builder_Panel {
48
  public function panel_content() {
49
 
50
  $core_templates = apply_filters( 'wpforms_form_templates_core', array() );
51
- $additional_templates = apply_filters( 'wpforms_form_templates', array() );
52
  $additional_count = count( $additional_templates );
53
  ?>
54
  <div id="wpforms-setup-form-name">
55
- <span><?php _e( 'Form Name', 'wpforms' ); ?></span>
56
- <input type="text" id="wpforms-setup-name" placeholder="<?php _e( 'Enter your form name here&hellip;', 'wpforms' ); ?>">
57
  </div>
58
 
59
  <div class="wpforms-setup-title core">
60
- <?php _e( 'Select a Template', 'wpforms' ); ?>
61
  </div>
62
 
63
  <p class="wpforms-setup-desc core">
64
- <?php _e( 'To speed up the process, you can select from one of our pre-made templates or start with a <strong><a href="#" class="wpforms-trigger-blank">blank form.</a></strong>', 'wpforms' ); ?>
 
 
 
 
 
 
 
 
 
 
 
65
  </p>
66
 
67
  <?php $this->template_select_options( $core_templates, 'core' ); ?>
68
 
69
  <div class="wpforms-setup-title additional">
70
- <?php _e( 'Additional Templates', 'wpforms' ); ?>
71
  <?php echo ! empty( $additional_count ) ? '<span class="count">(' . $additional_count . ')</span>' : ''; ?>
72
  </div>
73
 
@@ -75,22 +87,27 @@ class WPForms_Builder_Panel_Setup extends WPForms_Builder_Panel {
75
 
76
  <p class="wpforms-setup-desc additional">
77
  <?php
78
- /* translators: %1$s - opening tag, %2$s - closing tag, %3$s - opening tag, %4$s - closing tag. */
79
  printf(
80
- __(
81
- 'Have a suggestion for a new template? %1$sWe\'d love to hear it%2$s. Also, you can %3$screate your own templates%4$s!',
82
- 'wpforms'
 
 
 
 
 
 
 
83
  ),
84
- '<a href="https://wpforms.com/form-template-suggestion/" target="_blank" rel="noopener noreferrer">',
85
- '</a>',
86
- '<a href="https://wpforms.com/docs/how-to-create-a-custom-form-template/" target="_blank" rel="noopener noreferrer">',
87
- '</a>'
88
  );
89
  ?>
90
  </p>
91
 
92
  <div class="wpforms-setup-template-search-wrap">
93
- <i class="fa fa-search" aria-hidden="true"></i><input type="text" id="wpforms-setup-template-search" value="" placeholder="<?php _e( 'Search additional templates...', 'wpforms' ); ?>">
 
94
  </div>
95
 
96
  <?php $this->template_select_options( $additional_templates, 'additional' ); ?>
@@ -99,16 +116,20 @@ class WPForms_Builder_Panel_Setup extends WPForms_Builder_Panel {
99
 
100
  <p class="wpforms-setup-desc additional">
101
  <?php
102
- /* translators:%1$s - opening a tag, %2$s - close tag, %3$s - opening tag, %4$s - close tag. */
103
  printf(
104
- __(
105
- 'More are available in the %1$sForm Templates Pack addon%2$s or by %3$screating your own%4$s.',
106
- 'wpforms'
 
 
 
 
 
 
 
107
  ),
108
- '<a href="https://wpforms.com/addons/form-templates-pack-addon/" target="_blank" rel="noopener noreferrer">',
109
- '</a>',
110
- '<a href="https://wpforms.com/docs/how-to-create-a-custom-form-template/" target="_blank" rel="noopener noreferrer">',
111
- '</a>'
112
  );
113
  ?>
114
  </p>
@@ -122,6 +143,7 @@ class WPForms_Builder_Panel_Setup extends WPForms_Builder_Panel {
122
  * Generate a block of templates to choose from.
123
  *
124
  * @since 1.4.0
 
125
  * @param array $templates
126
  * @param string $slug
127
  */
@@ -131,42 +153,63 @@ class WPForms_Builder_Panel_Setup extends WPForms_Builder_Panel {
131
 
132
  echo '<div id="wpforms-setup-templates-' . $slug . '" class="wpforms-setup-templates ' . $slug . ' wpforms-clear">';
133
 
134
- echo '<div class="list">';
135
 
136
- // Loop through each available template.
137
- foreach ( $templates as $template ) {
138
 
139
- $selected = ! empty( $this->form_data['meta']['template'] ) && $this->form_data['meta']['template'] === $template['slug'] ? true : false;
140
- ?>
141
- <div class="wpforms-template <?php echo $selected ? 'selected' : ''; ?>" id="wpforms-template-<?php echo sanitize_html_class( $template['slug'] ); ?>">
 
142
 
143
- <div class="wpforms-template-inner">
144
 
145
- <div class="wpforms-template-name wpforms-clear">
146
- <?php echo esc_html( $template['name'] ); ?>
147
- <?php echo $selected ? '<span class="selected">' . __( 'Selected', 'wpforms' ) . '</span>' : ''; ?>
148
- </div>
149
 
150
- <?php if ( ! empty( $template['description'] ) ) : ?>
151
  <div class="wpforms-template-details">
152
  <p class="desc"><?php echo esc_html( $template['description'] ); ?></p>
153
  </div>
154
- <?php endif; ?>
155
-
156
- <div class="wpforms-template-overlay">
157
- <a href="#" class="wpforms-template-select" data-template-name-raw="<?php echo esc_attr( $template['name'] ); ?>" data-template-name="<?php printf( _x( '%s template', 'Template name', 'wpforms' ), esc_attr( $template['name'] ) ); ?>" data-template="<?php echo esc_attr( $template['slug'] ); ?>"><?php printf( _x( 'Create a %s', 'Template name', 'wpforms' ), esc_html( $template['name'] ) ); ?></a>
158
- </div>
159
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  </div>
161
 
162
  </div>
163
- <?php
164
- }
165
 
166
- echo '</div>';
 
 
 
 
167
 
168
  echo '</div>';
169
  }
170
  }
171
  }
 
172
  new WPForms_Builder_Panel_Setup;
1
  <?php
2
+
3
  /**
4
  * Setup panel.
5
  *
18
  */
19
  public function init() {
20
 
21
+ // Define panel information.
22
+ $this->name = esc_html__( 'Setup', 'wpforms' );
23
  $this->slug = 'setup';
24
  $this->icon = 'fa-cog';
25
  $this->order = 5;
32
  */
33
  public function enqueues() {
34
 
35
+ // CSS.
36
  wp_enqueue_style(
37
  'wpforms-builder-setup',
38
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-setup.css',
49
  public function panel_content() {
50
 
51
  $core_templates = apply_filters( 'wpforms_form_templates_core', array() );
52
+ $additional_templates = apply_filters( 'wpforms_form_templates', array() );
53
  $additional_count = count( $additional_templates );
54
  ?>
55
  <div id="wpforms-setup-form-name">
56
+ <span><?php esc_html_e( 'Form Name', 'wpforms' ); ?></span>
57
+ <input type="text" id="wpforms-setup-name" placeholder="<?php esc_attr_e( 'Enter your form name here&hellip;', 'wpforms' ); ?>">
58
  </div>
59
 
60
  <div class="wpforms-setup-title core">
61
+ <?php esc_html_e( 'Select a Template', 'wpforms' ); ?>
62
  </div>
63
 
64
  <p class="wpforms-setup-desc core">
65
+ <?php
66
+ echo wp_kses(
67
+ __( 'To speed up the process, you can select from one of our pre-made templates or start with a <strong><a href="#" class="wpforms-trigger-blank">blank form.</a></strong>', 'wpforms' ),
68
+ array(
69
+ 'strong' => array(),
70
+ 'a' => array(
71
+ 'href' => array(),
72
+ 'class' => array(),
73
+ ),
74
+ )
75
+ );
76
+ ?>
77
  </p>
78
 
79
  <?php $this->template_select_options( $core_templates, 'core' ); ?>
80
 
81
  <div class="wpforms-setup-title additional">
82
+ <?php esc_html_e( 'Additional Templates', 'wpforms' ); ?>
83
  <?php echo ! empty( $additional_count ) ? '<span class="count">(' . $additional_count . ')</span>' : ''; ?>
84
  </div>
85
 
87
 
88
  <p class="wpforms-setup-desc additional">
89
  <?php
 
90
  printf(
91
+ wp_kses(
92
+ /* translators: %1$s - WPForms.com URL to a template suggestion, %2$s - WPForms.com URL to a doc about custom templates. */
93
+ __( 'Have a suggestion for a new template? <a href="%1$s" target="_blank" rel="noopener noreferrer">We\'d love to hear it</a>. Also, you can <a href="%1$s" target="_blank" rel="noopener noreferrer">create your own templates</a>!', 'wpforms' ),
94
+ array(
95
+ 'a' => array(
96
+ 'href' => array(),
97
+ 'target' => array(),
98
+ 'rel' => array(),
99
+ ),
100
+ )
101
  ),
102
+ 'https://wpforms.com/form-template-suggestion/',
103
+ 'https://wpforms.com/docs/how-to-create-a-custom-form-template/'
 
 
104
  );
105
  ?>
106
  </p>
107
 
108
  <div class="wpforms-setup-template-search-wrap">
109
+ <i class="fa fa-search" aria-hidden="true"></i>
110
+ <input type="text" id="wpforms-setup-template-search" value="" placeholder="<?php esc_attr_e( 'Search additional templates...', 'wpforms' ); ?>">
111
  </div>
112
 
113
  <?php $this->template_select_options( $additional_templates, 'additional' ); ?>
116
 
117
  <p class="wpforms-setup-desc additional">
118
  <?php
 
119
  printf(
120
+ wp_kses(
121
+ /* translators: %1$s - WPForms.com URL to an addon page, %2$s - WPForms.com URL to a docs article. */
122
+ __( 'More are available in the <a href="%1$s" target="_blank" rel="noopener noreferrer">Form Templates Pack addon</a> or by <a href="%2$s" target="_blank" rel="noopener noreferrer">creating your own</a>.', 'wpforms' ),
123
+ array(
124
+ 'a' => array(
125
+ 'href' => array(),
126
+ 'target' => array(),
127
+ 'rel' => array(),
128
+ ),
129
+ )
130
  ),
131
+ 'https://wpforms.com/addons/form-templates-pack-addon/',
132
+ 'https://wpforms.com/docs/how-to-create-a-custom-form-template/'
 
 
133
  );
134
  ?>
135
  </p>
143
  * Generate a block of templates to choose from.
144
  *
145
  * @since 1.4.0
146
+ *
147
  * @param array $templates
148
  * @param string $slug
149
  */
153
 
154
  echo '<div id="wpforms-setup-templates-' . $slug . '" class="wpforms-setup-templates ' . $slug . ' wpforms-clear">';
155
 
156
+ echo '<div class="list">';
157
 
158
+ // Loop through each available template.
159
+ foreach ( $templates as $template ) {
160
 
161
+ $selected = ! empty( $this->form_data['meta']['template'] ) && $this->form_data['meta']['template'] === $template['slug'] ? true : false;
162
+ ?>
163
+ <div class="wpforms-template <?php echo $selected ? 'selected' : ''; ?>"
164
+ id="wpforms-template-<?php echo sanitize_html_class( $template['slug'] ); ?>">
165
 
166
+ <div class="wpforms-template-inner">
167
 
168
+ <div class="wpforms-template-name wpforms-clear">
169
+ <?php echo esc_html( $template['name'] ); ?>
170
+ <?php echo $selected ? '<span class="selected">' . esc_html__( 'Selected', 'wpforms' ) . '</span>' : ''; ?>
171
+ </div>
172
 
173
+ <?php if ( ! empty( $template['description'] ) ) : ?>
174
  <div class="wpforms-template-details">
175
  <p class="desc"><?php echo esc_html( $template['description'] ); ?></p>
176
  </div>
177
+ <?php endif; ?>
178
+
179
+ <?php
180
+ $template_name = sprintf(
181
+ /* translators: %s - Form template name. */
182
+ esc_html__( '%s template', 'wpforms' ),
183
+ $template['name']
184
+ );
185
+ ?>
186
+
187
+ <div class="wpforms-template-overlay">
188
+ <a href="#" class="wpforms-template-select"
189
+ data-template-name-raw="<?php echo esc_attr( $template['name'] ); ?>"
190
+ data-template-name="<?php echo esc_attr( $template_name ); ?>"
191
+ data-template="<?php echo esc_attr( $template['slug'] ); ?>">
192
+ <?php
193
+ printf(
194
+ /* translators: %s - Form template name. */
195
+ esc_html__( 'Create a %s', 'wpforms' ),
196
+ $template['name']
197
+ );
198
+ ?>
199
+ </a>
200
  </div>
201
 
202
  </div>
 
 
203
 
204
+ </div>
205
+ <?php
206
+ }
207
+
208
+ echo '</div>';
209
 
210
  echo '</div>';
211
  }
212
  }
213
  }
214
+
215
  new WPForms_Builder_Panel_Setup;
includes/admin/class-am-deactivation-survey.php CHANGED
@@ -5,11 +5,11 @@ if ( ! class_exists( 'AM_Deactivation_Survey' ) ) {
5
  *
6
  * This prompts the user for more details when they deactivate the plugin.
7
  *
8
- * @version 1.0.1
9
  * @package AwesomeMotive
10
- * @author Jared Atchison
11
  * @license GPL-2.0+
12
- * @copyright Copyright (c) 2017
13
  */
14
  class AM_Deactivation_Survey {
15
 
@@ -49,11 +49,72 @@ if ( ! class_exists( 'AM_Deactivation_Survey' ) ) {
49
  $this->name = $name;
50
  $this->plugin = $plugin;
51
 
 
 
 
 
 
52
  add_action( 'admin_print_scripts', array( $this, 'js' ), 20 );
53
  add_action( 'admin_print_scripts', array( $this, 'css' ) );
54
  add_action( 'admin_footer', array( $this, 'modal' ) );
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  /**
58
  * Checks if current admin screen is the plugins page.
59
  *
@@ -77,59 +138,58 @@ if ( ! class_exists( 'AM_Deactivation_Survey' ) ) {
77
  }
78
  ?>
79
  <script type="text/javascript">
80
- jQuery(function($){
81
- var $deactivateLink = $('#the-list').find('[data-slug="<?php echo $this->plugin; ?>"] span.deactivate a'),
82
- $overlay = $('#am-deactivate-survey-<?php echo $this->plugin; ?>'),
83
- $form = $overlay.find('form'),
84
- formOpen = false;
85
- // Plugin listing table deactivate link.
86
- $deactivateLink.on('click', function(event) {
87
- event.preventDefault();
88
- $overlay.css('display', 'table');
89
- formOpen = true;
90
- $form.find('.am-deactivate-survey-option:first-of-type input[type=radio]').focus();
91
- });
92
- // Survey radio option selected.
93
- $form.on('change', 'input[type=radio]', function(event) {
94
- event.preventDefault();
95
- $form.find('input[type=text], .error').hide();
96
- $form.find('.am-deactivate-survey-option').removeClass('selected');
97
- $(this).closest('.am-deactivate-survey-option').addClass('selected').find('input[type=text]').show();
98
- });
99
- // Survey Skip & Deactivate.
100
- $form.on('click', '.am-deactivate-survey-deactivate', function(event) {
101
- event.preventDefault();
102
- location.href = $deactivateLink.attr('href');
103
- });
104
- // Survey submit.
105
- $form.submit(function(event) {
106
- event.preventDefault();
107
- if (! $form.find('input[type=radio]:checked').val()) {
108
- $form.find('.am-deactivate-survey-footer').prepend('<span class="error">Please select an option</span>');
109
- return;
110
- }
111
- $form.find('button[type=submit]').prop('disabled', true);
112
- var data = {
113
- code: $form.find('.selected input[type=radio]').val(),
114
- reason: $form.find('.selected .am-deactivate-survey-option-reason').text(),
115
- details: $form.find('.selected input[type=text]').val(),
116
- site: '<?php echo esc_url( home_url() ); ?>',
117
- plugin: '<?php echo sanitize_key( $this->name ); ?>'
118
- }
119
- var submitSurvey = $.post('<?php echo $this->api_url; ?>', data);
120
- submitSurvey.always(function() {
121
  location.href = $deactivateLink.attr('href');
122
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  });
124
- // Exit key closes survey when open.
125
- $(document).keyup(function(event) {
126
- if (27 === event.keyCode && formOpen) {
127
- $overlay.hide();
128
- formOpen = false;
129
- $deactivateLink.focus();
130
- }
131
- });
132
- });
133
  </script>
134
  <?php
135
  }
@@ -146,74 +206,74 @@ if ( ! class_exists( 'AM_Deactivation_Survey' ) ) {
146
  }
147
  ?>
148
  <style type="text/css">
149
- .am-deactivate-survey-modal {
150
- display: none;
151
- table-layout: fixed;
152
- position: fixed;
153
- z-index: 9999;
154
- width: 100%;
155
- height: 100%;
156
- text-align: center;
157
- font-size: 14px;
158
- top: 0;
159
- left: 0;
160
- background: rgba(0,0,0,0.8);
161
- }
162
- .am-deactivate-survey-wrap {
163
- display: table-cell;
164
- vertical-align: middle;
165
- }
166
- .am-deactivate-survey {
167
- background-color: #fff;
168
- max-width: 550px;
169
- margin: 0 auto;
170
- padding: 30px;
171
- text-align: left;
172
- }
173
- .am-deactivate-survey .error {
174
- display: block;
175
- color: red;
176
- margin: 0 0 10px 0;
177
- }
178
- .am-deactivate-survey-title {
179
- display: block;
180
- font-size: 18px;
181
- font-weight: 700;
182
- text-transform: uppercase;
183
- border-bottom: 1px solid #ddd;
184
- padding: 0 0 18px 0;
185
- margin: 0 0 18px 0;
186
- }
187
- .am-deactivate-survey-title span {
188
- color: #999;
189
- margin-right: 10px;
190
- }
191
- .am-deactivate-survey-desc {
192
- display: block;
193
- font-weight: 600;
194
- margin: 0 0 18px 0;
195
- }
196
- .am-deactivate-survey-option {
197
- margin: 0 0 10px 0;
198
- }
199
- .am-deactivate-survey-option-input {
200
- margin-right: 10px !important;
201
- }
202
- .am-deactivate-survey-option-details {
203
- display: none;
204
- width: 90%;
205
- margin: 10px 0 0 30px;
206
- }
207
- .am-deactivate-survey-footer {
208
- margin-top: 18px;
209
- }
210
- .am-deactivate-survey-deactivate {
211
- float: right;
212
- font-size: 13px;
213
- color: #ccc;
214
- text-decoration: none;
215
- padding-top: 7px;
216
- }
217
  </style>
218
  <?php
219
  }
@@ -231,45 +291,45 @@ if ( ! class_exists( 'AM_Deactivation_Survey' ) ) {
231
 
232
  $options = array(
233
  1 => array(
234
- 'title' => 'I no longer need the plugin',
235
  ),
236
  2 => array(
237
- 'title' => 'I\'m switching to a different plugin',
238
- 'details' => 'Please share which plugin',
239
  ),
240
  3 => array(
241
- 'title' => 'I couldn\'t get the plugin to work',
242
  ),
243
  4 => array(
244
- 'title' => 'It\'s a temporary deactivation',
245
  ),
246
  5 => array(
247
- 'title' => 'Other',
248
- 'details' => 'Please share the reason',
249
  ),
250
  );
251
  ?>
252
  <div class="am-deactivate-survey-modal" id="am-deactivate-survey-<?php echo $this->plugin; ?>">
253
  <div class="am-deactivate-survey-wrap">
254
  <form class="am-deactivate-survey" method="post">
255
- <span class="am-deactivate-survey-title"><span class="dashicons dashicons-testimonial"></span> Quick Feedback</span>
256
- <span class="am-deactivate-survey-desc">If you have a moment, please share why you are deactivating <?php echo $this->name; ?>:</span>
257
  <div class="am-deactivate-survey-options">
258
  <?php foreach ( $options as $id => $option ) : ?>
259
- <div class="am-deactivate-survey-option">
260
- <label for="am-deactivate-survey-option-<?php echo $this->plugin; ?>-<?php echo $id; ?>" class="am-deactivate-survey-option-label">
261
- <input id="am-deactivate-survey-option-<?php echo $this->plugin; ?>-<?php echo $id; ?>" class="am-deactivate-survey-option-input" type="radio" name="code" value="<?php echo $id; ?>" />
262
- <span class="am-deactivate-survey-option-reason"><?php echo $option['title']; ?></span>
263
- </label>
264
- <?php if ( ! empty( $option['details'] ) ) : ?>
265
- <input class="am-deactivate-survey-option-details" type="text" placeholder="<?php echo $option['details']; ?>" />
266
- <?php endif; ?>
267
- </div>
268
  <?php endforeach; ?>
269
  </div>
270
  <div class="am-deactivate-survey-footer">
271
- <button type="submit" class="am-deactivate-survey-submit button button-primary button-large">Submit &amp; Deactivate</button>
272
- <a href="#" class="am-deactivate-survey-deactivate">Skip &amp; Deactivate</a>
273
  </div>
274
  </form>
275
  </div>
5
  *
6
  * This prompts the user for more details when they deactivate the plugin.
7
  *
8
+ * @version 1.2.0
9
  * @package AwesomeMotive
10
+ * @author Jared Atchison and Chris Christoff
11
  * @license GPL-2.0+
12
+ * @copyright Copyright (c) 2018
13
  */
14
  class AM_Deactivation_Survey {
15
 
49
  $this->name = $name;
50
  $this->plugin = $plugin;
51
 
52
+ // Don't run deactivation survey on dev sites.
53
+ if ( $this->is_dev_url() ) {
54
+ return;
55
+ }
56
+
57
  add_action( 'admin_print_scripts', array( $this, 'js' ), 20 );
58
  add_action( 'admin_print_scripts', array( $this, 'css' ) );
59
  add_action( 'admin_footer', array( $this, 'modal' ) );
60
  }
61
 
62
+ /**
63
+ * Checks if current site is a development one.
64
+ *
65
+ * @since 1.2.0
66
+ * @return bool
67
+ */
68
+ public function is_dev_url() {
69
+ // If it is an AM dev site, return false, so we can see them on our dev sites.
70
+ if ( defined ('AWESOMEMOTIVE_DEV_MODE' ) && AWESOMEMOTIVE_DEV_MODE ) {
71
+ return false;
72
+ }
73
+
74
+ $url = network_site_url( '/' );
75
+ $is_local_url = false;
76
+
77
+ // Trim it up
78
+ $url = strtolower( trim( $url ) );
79
+
80
+ // Need to get the host...so let's add the scheme so we can use parse_url
81
+ if ( false === strpos( $url, 'http://' ) && false === strpos( $url, 'https://' ) ) {
82
+ $url = 'http://' . $url;
83
+ }
84
+ $url_parts = parse_url( $url );
85
+ $host = ! empty( $url_parts['host'] ) ? $url_parts['host'] : false;
86
+ if ( ! empty( $url ) && ! empty( $host ) ) {
87
+ if ( false !== ip2long( $host ) ) {
88
+ if ( ! filter_var( $host, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) ) {
89
+ $is_local_url = true;
90
+ }
91
+ } else if ( 'localhost' === $host ) {
92
+ $is_local_url = true;
93
+ }
94
+
95
+ $tlds_to_check = array( '.dev', '.local', ':8888' );
96
+ foreach ( $tlds_to_check as $tld ) {
97
+ if ( false !== strpos( $host, $tld ) ) {
98
+ $is_local_url = true;
99
+ continue;
100
+ }
101
+
102
+ }
103
+ if ( substr_count( $host, '.' ) > 1 ) {
104
+ $subdomains_to_check = array( 'dev.', '*.staging.', 'beta.', 'test.' );
105
+ foreach ( $subdomains_to_check as $subdomain ) {
106
+ $subdomain = str_replace( '.', '(.)', $subdomain );
107
+ $subdomain = str_replace( array( '*', '(.)' ), '(.*)', $subdomain );
108
+ if ( preg_match( '/^(' . $subdomain . ')/', $host ) ) {
109
+ $is_local_url = true;
110
+ continue;
111
+ }
112
+ }
113
+ }
114
+ }
115
+ return $is_local_url;
116
+ }
117
+
118
  /**
119
  * Checks if current admin screen is the plugins page.
120
  *
138
  }
139
  ?>
140
  <script type="text/javascript">
141
+ jQuery(function($){
142
+ var $deactivateLink = $('#the-list').find('[data-slug="<?php echo $this->plugin; ?>"] span.deactivate a'),
143
+ $overlay = $('#am-deactivate-survey-<?php echo $this->plugin; ?>'),
144
+ $form = $overlay.find('form'),
145
+ formOpen = false;
146
+ // Plugin listing table deactivate link.
147
+ $deactivateLink.on('click', function(event) {
148
+ event.preventDefault();
149
+ $overlay.css('display', 'table');
150
+ formOpen = true;
151
+ $form.find('.am-deactivate-survey-option:first-of-type input[type=radio]').focus();
152
+ });
153
+ // Survey radio option selected.
154
+ $form.on('change', 'input[type=radio]', function(event) {
155
+ event.preventDefault();
156
+ $form.find('input[type=text], .error').hide();
157
+ $form.find('.am-deactivate-survey-option').removeClass('selected');
158
+ $(this).closest('.am-deactivate-survey-option').addClass('selected').find('input[type=text]').show();
159
+ });
160
+ // Survey Skip & Deactivate.
161
+ $form.on('click', '.am-deactivate-survey-deactivate', function(event) {
162
+ event.preventDefault();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
  location.href = $deactivateLink.attr('href');
164
  });
165
+ // Survey submit.
166
+ $form.submit(function(event) {
167
+ event.preventDefault();
168
+ if (! $form.find('input[type=radio]:checked').val()) {
169
+ $form.find('.am-deactivate-survey-footer').prepend('<span class="error"><?php echo esc_js( __( 'Please select an option', 'wpforms' ) ); ?></span>');
170
+ return;
171
+ }
172
+ var data = {
173
+ code: $form.find('.selected input[type=radio]').val(),
174
+ reason: $form.find('.selected .am-deactivate-survey-option-reason').text(),
175
+ details: $form.find('.selected input[type=text]').val(),
176
+ site: '<?php echo esc_url( home_url() ); ?>',
177
+ plugin: '<?php echo sanitize_key( $this->name ); ?>'
178
+ }
179
+ var submitSurvey = $.post('<?php echo $this->api_url; ?>', data);
180
+ submitSurvey.always(function() {
181
+ location.href = $deactivateLink.attr('href');
182
+ });
183
+ });
184
+ // Exit key closes survey when open.
185
+ $(document).keyup(function(event) {
186
+ if (27 === event.keyCode && formOpen) {
187
+ $overlay.hide();
188
+ formOpen = false;
189
+ $deactivateLink.focus();
190
+ }
191
+ });
192
  });
 
 
 
 
 
 
 
 
 
193
  </script>
194
  <?php
195
  }
206
  }
207
  ?>
208
  <style type="text/css">
209
+ .am-deactivate-survey-modal {
210
+ display: none;
211
+ table-layout: fixed;
212
+ position: fixed;
213
+ z-index: 9999;
214
+ width: 100%;
215
+ height: 100%;
216
+ text-align: center;
217
+ font-size: 14px;
218
+ top: 0;
219
+ left: 0;
220
+ background: rgba(0,0,0,0.8);
221
+ }
222
+ .am-deactivate-survey-wrap {
223
+ display: table-cell;
224
+ vertical-align: middle;
225
+ }
226
+ .am-deactivate-survey {
227
+ background-color: #fff;
228
+ max-width: 550px;
229
+ margin: 0 auto;
230
+ padding: 30px;
231
+ text-align: left;
232
+ }
233
+ .am-deactivate-survey .error {
234
+ display: block;
235
+ color: red;
236
+ margin: 0 0 10px 0;
237
+ }
238
+ .am-deactivate-survey-title {
239
+ display: block;
240
+ font-size: 18px;
241
+ font-weight: 700;
242
+ text-transform: uppercase;
243
+ border-bottom: 1px solid #ddd;
244
+ padding: 0 0 18px 0;
245
+ margin: 0 0 18px 0;
246
+ }
247
+ .am-deactivate-survey-title span {
248
+ color: #999;
249
+ margin-right: 10px;
250
+ }
251
+ .am-deactivate-survey-desc {
252
+ display: block;
253
+ font-weight: 600;
254
+ margin: 0 0 18px 0;
255
+ }
256
+ .am-deactivate-survey-option {
257
+ margin: 0 0 10px 0;
258
+ }
259
+ .am-deactivate-survey-option-input {
260
+ margin-right: 10px !important;
261
+ }
262
+ .am-deactivate-survey-option-details {
263
+ display: none;
264
+ width: 90%;
265
+ margin: 10px 0 0 30px;
266
+ }
267
+ .am-deactivate-survey-footer {
268
+ margin-top: 18px;
269
+ }
270
+ .am-deactivate-survey-deactivate {
271
+ float: right;
272
+ font-size: 13px;
273
+ color: #ccc;
274
+ text-decoration: none;
275
+ padding-top: 7px;
276
+ }
277
  </style>
278
  <?php
279
  }
291
 
292
  $options = array(
293
  1 => array(
294
+ 'title' => esc_html__( 'I no longer need the plugin', 'wpforms' ),
295
  ),
296
  2 => array(
297
+ 'title' => esc_html__( 'I\'m switching to a different plugin', 'wpforms' ),
298
+ 'details' => esc_html__( 'Please share which plugin', 'wpforms' ),
299
  ),
300
  3 => array(
301
+ 'title' => esc_html__( 'I couldn\'t get the plugin to work', 'wpforms' ),
302
  ),
303
  4 => array(
304
+ 'title' => esc_html__( 'It\'s a temporary deactivation', 'wpforms' ),
305
  ),
306
  5 => array(
307
+ 'title' => esc_html__( 'Other', 'wpforms' ),
308
+ 'details' => esc_html__( 'Please share the reason', 'wpforms' ),
309
  ),
310
  );
311
  ?>
312
  <div class="am-deactivate-survey-modal" id="am-deactivate-survey-<?php echo $this->plugin; ?>">
313
  <div class="am-deactivate-survey-wrap">
314
  <form class="am-deactivate-survey" method="post">
315
+ <span class="am-deactivate-survey-title"><span class="dashicons dashicons-testimonial"></span><?php echo ' ' . esc_html__( 'Quick Feedback', 'wpforms' ); ?></span>
316
+ <span class="am-deactivate-survey-desc"><?php echo sprintf( esc_html__('If you have a moment, please share why you are deactivating %s:', 'wpforms' ), $this->name ); ?></span>
317
  <div class="am-deactivate-survey-options">
318
  <?php foreach ( $options as $id => $option ) : ?>
319
+ <div class="am-deactivate-survey-option">
320
+ <label for="am-deactivate-survey-option-<?php echo $this->plugin; ?>-<?php echo $id; ?>" class="am-deactivate-survey-option-label">
321
+ <input id="am-deactivate-survey-option-<?php echo $this->plugin; ?>-<?php echo $id; ?>" class="am-deactivate-survey-option-input" type="radio" name="code" value="<?php echo $id; ?>" />
322
+ <span class="am-deactivate-survey-option-reason"><?php echo $option['title']; ?></span>
323
+ </label>
324
+ <?php if ( ! empty( $option['details'] ) ) : ?>
325
+ <input class="am-deactivate-survey-option-details" type="text" placeholder="<?php echo $option['details']; ?>" />
326
+ <?php endif; ?>
327
+ </div>
328
  <?php endforeach; ?>
329
  </div>
330
  <div class="am-deactivate-survey-footer">
331
+ <button type="submit" class="am-deactivate-survey-submit button button-primary button-large"><?php echo sprintf( esc_html__('Submit %s Deactivate', 'wpforms' ), '&amp;' ); ?></button>
332
+ <a href="#" class="am-deactivate-survey-deactivate"><?php echo sprintf( esc_html__('Skip %s Deactivate', 'wpforms' ), '&amp;' ); ?></a>
333
  </div>
334
  </form>
335
  </div>
includes/admin/class-am-notification.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  if ( ! class_exists( 'AM_Notification' ) ) {
3
  /**
4
  * Awesome Motive Notifications
@@ -7,12 +8,13 @@ if ( ! class_exists( 'AM_Notification' ) ) {
7
  * retrieve notifications for this product.
8
  *
9
  * @package AwesomeMotive
10
- * @author Benjamin Rojas
11
  * @license GPL-2.0+
12
- * @copyright Copyright (c) 2017, Retyp LLC
13
- * @version 1.0.2
14
  */
15
  class AM_Notification {
 
16
  /**
17
  * The api url we are calling.
18
  *
@@ -87,7 +89,7 @@ if ( ! class_exists( 'AM_Notification' ) ) {
87
  * @since 1.0.0
88
  */
89
  public function get_remote_notifications() {
90
- if ( ! current_user_can( apply_filters( 'am_notifications_display', 'manage_options' ) ) ) {
91
  return;
92
  }
93
 
@@ -95,7 +97,7 @@ if ( ! class_exists( 'AM_Notification' ) ) {
95
 
96
  if ( $last_checked < strtotime( 'today midnight' ) ) {
97
  $plugin_notifications = $this->get_plugin_notifications( 1 );
98
- $notification_id = null;
99
 
100
  if ( ! empty( $plugin_notifications ) ) {
101
  // Unset it from the array.
@@ -131,10 +133,12 @@ if ( ! class_exists( 'AM_Notification' ) ) {
131
  }
132
 
133
  if ( empty( $notifications ) ) {
134
- $new_notification_id = wp_insert_post( array(
135
- 'post_content' => wp_kses_post( $data->content ),
136
- 'post_type' => 'amn_' . $this->plugin,
137
- ) );
 
 
138
 
139
  update_post_meta( $new_notification_id, 'notification_id', absint( $data->id ) );
140
  update_post_meta( $new_notification_id, 'type', sanitize_text_field( trim( $data->type ) ) );
@@ -167,7 +171,7 @@ if ( ! class_exists( 'AM_Notification' ) ) {
167
  *
168
  * @return WP_Post[] WP_Post that match the query.
169
  */
170
- public function get_plugin_notifications( $limit = -1, $args = array() ) {
171
  return get_posts(
172
  array(
173
  'posts_per_page' => $limit,
@@ -182,11 +186,11 @@ if ( ! class_exists( 'AM_Notification' ) ) {
182
  * @since 1.0.0
183
  */
184
  public function display_notifications() {
185
- if ( ! current_user_can( apply_filters( 'am_notifications_display', 'manage_options' ) ) ) {
186
  return;
187
  }
188
 
189
- $plugin_notifications = $this->get_plugin_notifications( -1, array(
190
  'post_status' => 'all',
191
  'meta_key' => 'viewed',
192
  'meta_value' => '0',
@@ -203,14 +207,14 @@ if ( ! class_exists( 'AM_Notification' ) ) {
203
  <?php echo $notification->post_content; ?>
204
  </div>
205
  <script type="text/javascript">
206
- jQuery(document).ready(function ($) {
207
- $(document).on('click', '.am-notification-<?php echo $notification->ID; ?> button.notice-dismiss', function (event) {
208
- $.post(ajaxurl, {
209
  action: 'am_notification_dismiss',
210
  notification_id: '<?php echo $notification->ID; ?>'
211
- });
212
- });
213
- });
214
  </script>
215
  <?php
216
  }
@@ -325,11 +329,11 @@ if ( ! class_exists( 'AM_Notification' ) ) {
325
  */
326
  public function get_plan_level() {
327
  // Prepare variables.
328
- $key = '';
329
- $level = '';
330
- $option = false;
331
  switch ( $this->plugin ) {
332
- case 'wpforms' :
333
  $option = get_option( 'wpforms_license' );
334
  $key = is_array( $option ) && isset( $option['key'] ) ? $option['key'] : '';
335
  $level = is_array( $option ) && isset( $option['type'] ) ? $option['type'] : '';
@@ -338,38 +342,34 @@ if ( ! class_exists( 'AM_Notification' ) ) {
338
  if ( empty( $key ) && defined( 'WPFORMS_LICENSE_KEY' ) ) {
339
  $key = WPFORMS_LICENSE_KEY;
340
  }
341
- break;
342
- case 'mi' :
343
- $option = get_option( 'monsterinsights_license' );
344
- $key = is_array( $option ) && isset( $option['key'] ) ? $option['key'] : '';
345
- $level = is_array( $option ) && isset( $option['type'] ) ? $option['type'] : '';
346
-
347
- // Possibly check for a constant.
348
- if ( empty( $key ) && defined( 'MONSTERINSIGHTS_LICENSE_KEY' ) && is_string( MONSTERINSIGHTS_LICENSE_KEY ) && strlen( MONSTERINSIGHTS_LICENSE_KEY ) > 10 ) {
349
- $key = MONSTERINSIGHTS_LICENSE_KEY;
350
- }
351
- break;
352
- case 'sol' :
353
- $option = get_option( 'soliloquy' );
354
- $key = is_array( $option ) && isset( $option['key'] ) ? $option['key'] : '';
355
- $level = is_array( $option ) && isset( $option['type'] ) ? $option['type'] : '';
356
-
357
- // Possibly check for a constant.
358
- if ( empty( $key ) && defined( 'SOLILOQUY_LICENSE_KEY' ) ) {
359
- $key = SOLILOQUY_LICENSE_KEY;
360
- }
361
- break;
362
- case 'envira' :
363
- $option = get_option( 'envira_gallery' );
364
- $key = is_array( $option ) && isset( $option['key'] ) ? $option['key'] : '';
365
- $level = is_array( $option ) && isset( $option['type'] ) ? $option['type'] : '';
366
 
367
- // Possibly check for a constant.
368
- if ( empty( $key ) && defined( 'ENVIRA_LICENSE_KEY' ) ) {
369
- $key = ENVIRA_LICENSE_KEY;
 
 
 
 
 
 
 
 
 
 
370
  }
371
- break;
372
- case 'om' :
373
  $option = get_option( 'optin_monster_api' );
374
  $key = is_array( $option ) && isset( $option['api']['apikey'] ) ? $option['api']['apikey'] : '';
375
 
@@ -382,7 +382,7 @@ if ( ! class_exists( 'AM_Notification' ) ) {
382
  if ( empty( $key ) ) {
383
  $key = is_array( $option ) && isset( $option['api']['key'] ) ? $option['api']['key'] : '';
384
  }
385
- break;
386
  }
387
 
388
  // Possibly set the level to 'none' if the key is empty and no level has been set.
@@ -390,24 +390,29 @@ if ( ! class_exists( 'AM_Notification' ) ) {
390
  $level = 'none';
391
  }
392
 
 
 
 
 
 
393
  // Normalize the level.
394
  switch ( $level ) {
395
- case 'bronze' :
396
- case 'personal' :
397
  $level = 'basic';
398
- break;
399
- case 'silver' :
400
- case 'multi' :
401
  $level = 'plus';
402
- break;
403
- case 'gold' :
404
- case 'developer' :
405
  $level = 'pro';
406
- break;
407
- case 'platinum' :
408
- case 'master' :
409
  $level = 'ultimate';
410
- break;
411
  }
412
 
413
  // Return the plan level.
@@ -420,7 +425,7 @@ if ( ! class_exists( 'AM_Notification' ) ) {
420
  * @since 1.0.0
421
  */
422
  public function dismiss_notification() {
423
- if ( ! current_user_can( apply_filters( 'am_notifications_display', 'manage_options' ) ) ) {
424
  die;
425
  }
426
 
@@ -439,7 +444,7 @@ if ( ! class_exists( 'AM_Notification' ) ) {
439
  public function revoke_notifications( $ids ) {
440
  // Loop through each of the IDs and find the post that has it as meta.
441
  foreach ( (array) $ids as $id ) {
442
- $notifications = $this->get_plugin_notifications( -1, array( 'post_status' => 'all', 'meta_key' => 'notification_id', 'meta_value' => $id ) );
443
  if ( $notifications ) {
444
  foreach ( $notifications as $notification ) {
445
  update_post_meta( $notification->ID, 'viewed', 1 );
1
  <?php
2
+
3
  if ( ! class_exists( 'AM_Notification' ) ) {
4
  /**
5
  * Awesome Motive Notifications
8
  * retrieve notifications for this product.
9
  *
10
  * @package AwesomeMotive
11
+ * @author AwesomeMotive Team
12
  * @license GPL-2.0+
13
+ * @copyright Copyright (c) 2018, Awesome Motive LLC
14
+ * @version 1.0.5
15
  */
16
  class AM_Notification {
17
+
18
  /**
19
  * The api url we are calling.
20
  *
89
  * @since 1.0.0
90
  */
91
  public function get_remote_notifications() {
92
+ if ( ! apply_filters( 'am_notifications_display', is_super_admin() ) ) {
93
  return;
94
  }
95
 
97
 
98
  if ( $last_checked < strtotime( 'today midnight' ) ) {
99
  $plugin_notifications = $this->get_plugin_notifications( 1 );
100
+ $notification_id = null;
101
 
102
  if ( ! empty( $plugin_notifications ) ) {
103
  // Unset it from the array.
133
  }
134
 
135
  if ( empty( $notifications ) ) {
136
+ $new_notification_id = wp_insert_post(
137
+ array(
138
+ 'post_content' => wp_kses_post( $data->content ),
139
+ 'post_type' => 'amn_' . $this->plugin,
140
+ )
141
+ );
142
 
143
  update_post_meta( $new_notification_id, 'notification_id', absint( $data->id ) );
144
  update_post_meta( $new_notification_id, 'type', sanitize_text_field( trim( $data->type ) ) );
171
  *
172
  * @return WP_Post[] WP_Post that match the query.
173
  */
174
+ public function get_plugin_notifications( $limit = - 1, $args = array() ) {
175
  return get_posts(
176
  array(
177
  'posts_per_page' => $limit,
186
  * @since 1.0.0
187
  */
188
  public function display_notifications() {
189
+ if ( ! current_user_can( apply_filters( 'am_notifications_display', is_super_admin() ) ) ) {
190
  return;
191
  }
192
 
193
+ $plugin_notifications = $this->get_plugin_notifications( - 1, array(
194
  'post_status' => 'all',
195
  'meta_key' => 'viewed',
196
  'meta_value' => '0',
207
  <?php echo $notification->post_content; ?>
208
  </div>
209
  <script type="text/javascript">
210
+ jQuery( document ).ready( function ( $ ) {
211
+ $( document ).on( 'click', '.am-notification-<?php echo $notification->ID; ?> button.notice-dismiss', function ( event ) {
212
+ $.post( ajaxurl, {
213
  action: 'am_notification_dismiss',
214
  notification_id: '<?php echo $notification->ID; ?>'
215
+ } );
216
+ } );
217
+ } );
218
  </script>
219
  <?php
220
  }
329
  */
330
  public function get_plan_level() {
331
  // Prepare variables.
332
+ $key = '';
333
+ $level = '';
334
+
335
  switch ( $this->plugin ) {
336
+ case 'wpforms':
337
  $option = get_option( 'wpforms_license' );
338
  $key = is_array( $option ) && isset( $option['key'] ) ? $option['key'] : '';
339
  $level = is_array( $option ) && isset( $option['type'] ) ? $option['type'] : '';
342
  if ( empty( $key ) && defined( 'WPFORMS_LICENSE_KEY' ) ) {
343
  $key = WPFORMS_LICENSE_KEY;
344
  }
345
+ break;
346
+ case 'mi-lite':
347
+ case 'mi':
348
+ if ( version_compare( MONSTERINSIGHTS_VERSION, '6.9.0', '>=' ) ) {
349
+ if ( MonsterInsights()->license->get_site_license_type() ) {
350
+ $key = MonsterInsights()->license->get_site_license_key();
351
+ $type = MonsterInsights()->license->get_site_license_type();
352
+ } else if ( MonsterInsights()->license->get_network_license_type() ) {
353
+ $key = MonsterInsights()->license->get_network_license_key();
354
+ $type = MonsterInsights()->license->get_network_license_type();
355
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
356
 
357
+ // Check key fallbacks
358
+ if ( empty( $key ) ) {
359
+ $key = MonsterInsights()->license->get_license_key();
360
+ }
361
+ } else {
362
+ $option = get_option( 'monsterinsights_license' );
363
+ $key = is_array( $option ) && isset( $option['key'] ) ? $option['key'] : '';
364
+ $level = is_array( $option ) && isset( $option['type'] ) ? $option['type'] : '';
365
+
366
+ // Possibly check for a constant.
367
+ if ( empty( $key ) && defined( 'MONSTERINSIGHTS_LICENSE_KEY' ) && is_string( MONSTERINSIGHTS_LICENSE_KEY ) && strlen( MONSTERINSIGHTS_LICENSE_KEY ) > 10 ) {
368
+ $key = MONSTERINSIGHTS_LICENSE_KEY;
369
+ }
370
  }
371
+ break;
372
+ case 'om':
373
  $option = get_option( 'optin_monster_api' );
374
  $key = is_array( $option ) && isset( $option['api']['apikey'] ) ? $option['api']['apikey'] : '';
375
 
382
  if ( empty( $key ) ) {
383
  $key = is_array( $option ) && isset( $option['api']['key'] ) ? $option['api']['key'] : '';
384
  }
385
+ break;
386
  }
387
 
388
  // Possibly set the level to 'none' if the key is empty and no level has been set.
390
  $level = 'none';
391
  }
392
 
393
+ // Possibly set the level to 'unknown' if a key is entered, but no level can be determined (such as manually entered key)
394
+ if ( ! empty( $key ) && empty( $level ) ) {
395
+ $level = 'unknown';
396
+ }
397
+
398
  // Normalize the level.
399
  switch ( $level ) {
400
+ case 'bronze':
401
+ case 'personal':
402
  $level = 'basic';
403
+ break;
404
+ case 'silver':
405
+ case 'multi':
406
  $level = 'plus';
407
+ break;
408
+ case 'gold':
409
+ case 'developer':
410
  $level = 'pro';
411
+ break;
412
+ case 'platinum':
413
+ case 'master':
414
  $level = 'ultimate';
415
+ break;
416
  }
417
 
418
  // Return the plan level.
425
  * @since 1.0.0
426
  */
427
  public function dismiss_notification() {
428
+ if ( ! current_user_can( apply_filters( 'am_notifications_display', is_super_admin() ) ) ) {
429
  die;
430
  }
431
 
444
  public function revoke_notifications( $ids ) {
445
  // Loop through each of the IDs and find the post that has it as meta.
446
  foreach ( (array) $ids as $id ) {
447
+ $notifications = $this->get_plugin_notifications( - 1, array( 'post_status' => 'all', 'meta_key' => 'notification_id', 'meta_value' => $id ) );
448
  if ( $notifications ) {
449
  foreach ( $notifications as $notification ) {
450
  update_post_meta( $notification->ID, 'viewed', 1 );
includes/admin/class-editor.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Functionality related to the admin TinyMCE editor.
4
  *
@@ -16,7 +17,6 @@ class WPForms_Admin_Editor {
16
  * @since 1.0.0
17
  */
18
  public function __construct() {
19
-
20
  add_action( 'media_buttons', array( $this, 'media_button' ), 15 );
21
  }
22
 
@@ -27,7 +27,7 @@ class WPForms_Admin_Editor {
27
  *
28
  * @param string $editor_id
29
  */
30
- function media_button( $editor_id ) {
31
 
32
  // Provide the ability to conditionally disable the button, so it can be
33
  // disabled for custom fields or front-end use such as bbPress. We default
@@ -36,17 +36,18 @@ class WPForms_Admin_Editor {
36
  return;
37
  }
38
 
39
- // Setup the icon - currently using a dashicon
40
- $icon = '<span class="wp-media-buttons-icon wpforms-menu-icon" style="font-size:16px;margin-top:-2px;"></span>';
41
 
42
- printf( '<a href="#" class="button wpforms-insert-form-button" data-editor="%s" title="%s">%s %s</a>',
 
43
  esc_attr( $editor_id ),
44
  esc_attr__( 'Add Form', 'wpforms' ),
45
  $icon,
46
  __( 'Add Form', 'wpforms' )
47
  );
48
 
49
- // If we have made it this far then load the JS
50
  wp_enqueue_script( 'wpforms-editor', WPFORMS_PLUGIN_URL . 'assets/js/admin-editor.js', array( 'jquery' ), WPFORMS_VERSION, true );
51
 
52
  add_action( 'admin_footer', array( $this, 'shortcode_modal' ) );
@@ -61,55 +62,66 @@ class WPForms_Admin_Editor {
61
  *
62
  * @since 1.0.0
63
  */
64
- function shortcode_modal() {
65
  ?>
66
  <div id="wpforms-modal-backdrop" style="display: none"></div>
67
  <div id="wpforms-modal-wrap" style="display: none">
68
  <form id="wpforms-modal" tabindex="-1">
69
  <div id="wpforms-modal-title">
70
- <?php _e( 'Insert Form', 'wpforms' ); ?>
71
- <button type="button" id="wpforms-modal-close"><span class="screen-reader-text"><?php _e( 'Close', 'wpforms' ); ?></span></button>
72
  </div>
73
  <div id="wpforms-modal-inner">
74
  <div id="wpforms-modal-options">
75
- <?php
76
- $args = apply_filters( 'wpforms_modal_select', array() );
77
- $forms = wpforms()->form->get( '', $args );
78
- if ( ! empty( $forms ) ) {
79
- printf( '<p><label for="wpforms-modal-select-form">%s</label></p>', __( 'Select a form below to insert', 'wpforms' ) );
80
- echo '<select id="wpforms-modal-select-form">';
81
- foreach ( $forms as $form ) {
82
- printf( '<option value="%d">%s</option>', $form->ID, esc_html( $form->post_title ) );
83
- }
84
- echo '</select><br>';
85
- printf( '<p class="wpforms-modal-inline"><input type="checkbox" id="wpforms-modal-checkbox-title"><label for="wpforms-modal-checkbox-title">%s</label></p>', __( 'Show form name', 'wpforms' ) );
86
- printf( '<p class="wpforms-modal-inline"><input type="checkbox" id="wpforms-modal-checkbox-description"><label for="wpforms-modal-checkbox-description">%s</label></p>', __( 'Show form description', 'wpforms' ) );
87
- } else {
88
- echo '<p>';
89
- printf( __( 'Whoops, you haven\'t created a form yet. Want to <a href="%s">give it a go</a>?', 'wpforms' ), admin_url( 'admin.php?page=wpforms-builder' ) );
90
- echo '</p>';
91
  }
92
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  </div>
94
  </div>
95
  <div class="submitbox">
96
  <div id="wpforms-modal-cancel">
97
- <a class="submitdelete deletion" href="#"><?php _e( 'Cancel', 'wpforms' ); ?></a>
98
  </div>
99
  <?php if ( ! empty( $forms ) ) : ?>
100
- <div id="wpforms-modal-update">
101
- <button class="button button-primary" id="wpforms-modal-submit"><?php _e( 'Add Form', 'wpforms' ); ?></button>
102
- </div>
103
  <?php endif; ?>
104
  </div>
105
  </form>
106
  </div>
107
- <style style="text/css">
108
  #wpforms-modal-wrap {
109
  display: none;
110
  background-color: #fff;
111
- -webkit-box-shadow: 0 3px 6px rgba( 0, 0, 0, 0.3 );
112
- box-shadow: 0 3px 6px rgba( 0, 0, 0, 0.3 );
113
  width: 500px;
114
  height: 220px;
115
  overflow: hidden;
@@ -122,6 +134,7 @@ class WPForms_Admin_Editor {
122
  -webkit-transition: height 0.2s, margin-top 0.2s;
123
  transition: height 0.2s, margin-top 0.2s;
124
  }
 
125
  #wpforms-modal-backdrop {
126
  display: none;
127
  position: fixed;
@@ -135,10 +148,12 @@ class WPForms_Admin_Editor {
135
  filter: alpha(opacity=70);
136
  z-index: 100100;
137
  }
 
138
  #wpforms-modal {
139
  position: relative;
140
  height: 100%;
141
  }
 
142
  #wpforms-modal-title {
143
  background: #fcfcfc;
144
  border-bottom: 1px solid #dfdfdf;
@@ -151,6 +166,7 @@ class WPForms_Admin_Editor {
151
  right: 0;
152
  left: 0;
153
  }
 
154
  #wpforms-modal-close {
155
  color: #666;
156
  padding: 0;
@@ -164,6 +180,7 @@ class WPForms_Admin_Editor {
164
  border: none;
165
  cursor: pointer;
166
  }
 
167
  #wpforms-modal-close:before {
168
  font: normal 20px/36px 'dashicons';
169
  vertical-align: top;
@@ -174,22 +191,24 @@ class WPForms_Admin_Editor {
174
  height: 36px;
175
  content: '\f158';
176
  }
 
177
  #wpforms-modal-close:hover,
178
  #wpforms-modal-close:focus {
179
  color: #2ea2cc;
180
  }
 
181
  #wpforms-modal-close:focus {
182
  outline: none;
183
- -webkit-box-shadow:
184
- 0 0 0 1px #5b9dd9,
185
- 0 0 2px 1px rgba(30, 140, 190, .8);
186
- box-shadow:
187
- 0 0 0 1px #5b9dd9,
188
- 0 0 2px 1px rgba(30, 140, 190, .8);
189
  }
190
- #wpforms-modal-inner{
 
191
  padding: 0 16px 50px;
192
  }
 
193
  #wpforms-modal-search-toggle:after {
194
  display: inline-block;
195
  font: normal 20px/1 'dashicons';
@@ -199,18 +218,22 @@ class WPForms_Admin_Editor {
199
  -moz-osx-font-smoothing: grayscale;
200
  content: '\f140';
201
  }
 
202
  #wpforms-modal #wpforms-modal-options {
203
  padding: 8px 0 12px;
204
  }
 
205
  #wpforms-modal #wpforms-modal-options .wpforms-modal-inline {
206
- display:inline-block;
207
  margin: 0;
208
  padding: 0 20px 0 0;
209
  }
 
210
  #wpforms-modal-select-form {
211
  margin-bottom: 1em;
212
  max-width: 100%;
213
  }
 
214
  #wpforms-modal .submitbox {
215
  padding: 8px 16px;
216
  background: #fcfcfc;
@@ -220,30 +243,37 @@ class WPForms_Admin_Editor {
220
  left: 0;
221
  right: 0;
222
  }
 
223
  #wpforms-modal-cancel {
224
  line-height: 25px;
225
  float: left;
226
  }
 
227
  #wpforms-modal-update {
228
  line-height: 23px;
229
  float: right;
230
  }
 
231
  #wpforms-modal-submit {
232
  float: right;
233
  margin-bottom: 0;
234
  }
 
235
  @media screen and ( max-width: 782px ) {
236
  #wpforms-modal-wrap {
237
  height: 280px;
238
  margin-top: -140px;
239
  }
 
240
  #wpforms-modal-inner {
241
  padding: 0 16px 60px;
242
  }
 
243
  #wpforms-modal-cancel {
244
  line-height: 32px;
245
  }
246
  }
 
247
  @media screen and ( max-width: 520px ) {
248
  #wpforms-modal-wrap {
249
  width: auto;
@@ -253,12 +283,14 @@ class WPForms_Admin_Editor {
253
  max-width: 500px;
254
  }
255
  }
 
256
  @media screen and ( max-height: 520px ) {
257
  #wpforms-modal-wrap {
258
  -webkit-transition: none;
259
  transition: none;
260
  }
261
  }
 
262
  @media screen and ( max-height: 290px ) {
263
  #wpforms-modal-wrap {
264
  height: auto;
@@ -266,6 +298,7 @@ class WPForms_Admin_Editor {
266
  top: 10px;
267
  bottom: 10px;
268
  }
 
269
  #wpforms-modal-inner {
270
  overflow: auto;
271
  height: -webkit-calc(100% - 92px);
1
  <?php
2
+
3
  /**
4
  * Functionality related to the admin TinyMCE editor.
5
  *
17
  * @since 1.0.0
18
  */
19
  public function __construct() {
 
20
  add_action( 'media_buttons', array( $this, 'media_button' ), 15 );
21
  }
22
 
27
  *
28
  * @param string $editor_id
29
  */
30
+ public function media_button( $editor_id ) {
31
 
32
  // Provide the ability to conditionally disable the button, so it can be
33
  // disabled for custom fields or front-end use such as bbPress. We default
36
  return;
37
  }
38
 
39
+ // Setup the icon - currently using a dashicon.
40
+ $icon = '<span class="wp-media-buttons-icon wpforms-menu-icon" style="font-size:16px;margin-top:-2px;"><svg width="18" height="18" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M643 911v128h-252v-128h252zm0-255v127h-252v-127h252zm758 511v128h-341v-128h341zm0-256v128h-672v-128h672zm0-255v127h-672v-127h672zm135 860v-1240q0-8-6-14t-14-6h-32l-378 256-210-171-210 171-378-256h-32q-8 0-14 6t-6 14v1240q0 8 6 14t14 6h1240q8 0 14-6t6-14zm-855-1110l185-150h-406zm430 0l221-150h-406zm553-130v1240q0 62-43 105t-105 43h-1240q-62 0-105-43t-43-105v-1240q0-62 43-105t105-43h1240q62 0 105 43t43 105z" fill="#82878c"/></svg></span>';
41
 
42
+ printf(
43
+ '<a href="#" class="button wpforms-insert-form-button" data-editor="%s" title="%s">%s %s</a>',
44
  esc_attr( $editor_id ),
45
  esc_attr__( 'Add Form', 'wpforms' ),
46
  $icon,
47
  __( 'Add Form', 'wpforms' )
48
  );
49
 
50
+ // If we have made it this far then load the JS.
51
  wp_enqueue_script( 'wpforms-editor', WPFORMS_PLUGIN_URL . 'assets/js/admin-editor.js', array( 'jquery' ), WPFORMS_VERSION, true );
52
 
53
  add_action( 'admin_footer', array( $this, 'shortcode_modal' ) );
62
  *
63
  * @since 1.0.0
64
  */
65
+ public function shortcode_modal() {
66
  ?>
67
  <div id="wpforms-modal-backdrop" style="display: none"></div>
68
  <div id="wpforms-modal-wrap" style="display: none">
69
  <form id="wpforms-modal" tabindex="-1">
70
  <div id="wpforms-modal-title">
71
+ <?php esc_html_e( 'Insert Form', 'wpforms' ); ?>
72
+ <button type="button" id="wpforms-modal-close"><span class="screen-reader-text"><?php esc_html_e( 'Close', 'wpforms' ); ?></span></button>
73
  </div>
74
  <div id="wpforms-modal-inner">
75
  <div id="wpforms-modal-options">
76
+ <?php
77
+ $args = apply_filters( 'wpforms_modal_select', array() );
78
+ $forms = wpforms()->form->get( '', $args );
79
+ if ( ! empty( $forms ) ) {
80
+ printf( '<p><label for="wpforms-modal-select-form">%s</label></p>', esc_html__( 'Select a form below to insert', 'wpforms' ) );
81
+ echo '<select id="wpforms-modal-select-form">';
82
+ foreach ( $forms as $form ) {
83
+ printf( '<option value="%d">%s</option>', $form->ID, esc_html( $form->post_title ) );
 
 
 
 
 
 
 
 
84
  }
85
+ echo '</select><br>';
86
+ printf( '<p class="wpforms-modal-inline"><input type="checkbox" id="wpforms-modal-checkbox-title"><label for="wpforms-modal-checkbox-title">%s</label></p>', esc_html__( 'Show form name', 'wpforms' ) );
87
+ printf( '<p class="wpforms-modal-inline"><input type="checkbox" id="wpforms-modal-checkbox-description"><label for="wpforms-modal-checkbox-description">%s</label></p>', esc_html__( 'Show form description', 'wpforms' ) );
88
+ } else {
89
+ echo '<p>';
90
+ printf(
91
+ wp_kses(
92
+ /* translators: %s - WPForms Builder page. */
93
+ __( 'Whoops, you haven\'t created a form yet. Want to <a href="%s">give it a go</a>?', 'wpforms' ),
94
+ array(
95
+ 'a' => array(
96
+ 'href' => array(),
97
+ ),
98
+ )
99
+ ),
100
+ admin_url( 'admin.php?page=wpforms-builder' )
101
+ );
102
+ echo '</p>';
103
+ }
104
+ ?>
105
  </div>
106
  </div>
107
  <div class="submitbox">
108
  <div id="wpforms-modal-cancel">
109
+ <a class="submitdelete deletion" href="#"><?php esc_html_e( 'Cancel', 'wpforms' ); ?></a>
110
  </div>
111
  <?php if ( ! empty( $forms ) ) : ?>
112
+ <div id="wpforms-modal-update">
113
+ <button class="button button-primary" id="wpforms-modal-submit"><?php esc_html_e( 'Add Form', 'wpforms' ); ?></button>
114
+ </div>
115
  <?php endif; ?>
116
  </div>
117
  </form>
118
  </div>
119
+ <style type="text/css">
120
  #wpforms-modal-wrap {
121
  display: none;
122
  background-color: #fff;
123
+ -webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
124
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
125
  width: 500px;
126
  height: 220px;
127
  overflow: hidden;
134
  -webkit-transition: height 0.2s, margin-top 0.2s;
135
  transition: height 0.2s, margin-top 0.2s;
136
  }
137
+
138
  #wpforms-modal-backdrop {
139
  display: none;
140
  position: fixed;
148
  filter: alpha(opacity=70);
149
  z-index: 100100;
150
  }
151
+
152
  #wpforms-modal {
153
  position: relative;
154
  height: 100%;
155
  }
156
+
157
  #wpforms-modal-title {
158
  background: #fcfcfc;
159
  border-bottom: 1px solid #dfdfdf;
166
  right: 0;
167
  left: 0;
168
  }
169
+
170
  #wpforms-modal-close {
171
  color: #666;
172
  padding: 0;
180
  border: none;
181
  cursor: pointer;
182
  }
183
+
184
  #wpforms-modal-close:before {
185
  font: normal 20px/36px 'dashicons';
186
  vertical-align: top;
191
  height: 36px;
192
  content: '\f158';
193
  }
194
+
195
  #wpforms-modal-close:hover,
196
  #wpforms-modal-close:focus {
197
  color: #2ea2cc;
198
  }
199
+
200
  #wpforms-modal-close:focus {
201
  outline: none;
202
+ -webkit-box-shadow: 0 0 0 1px #5b9dd9,
203
+ 0 0 2px 1px rgba(30, 140, 190, .8);
204
+ box-shadow: 0 0 0 1px #5b9dd9,
205
+ 0 0 2px 1px rgba(30, 140, 190, .8);
 
 
206
  }
207
+
208
+ #wpforms-modal-inner {
209
  padding: 0 16px 50px;
210
  }
211
+
212
  #wpforms-modal-search-toggle:after {
213
  display: inline-block;
214
  font: normal 20px/1 'dashicons';
218
  -moz-osx-font-smoothing: grayscale;
219
  content: '\f140';
220
  }
221
+
222
  #wpforms-modal #wpforms-modal-options {
223
  padding: 8px 0 12px;
224
  }
225
+
226
  #wpforms-modal #wpforms-modal-options .wpforms-modal-inline {
227
+ display: inline-block;
228
  margin: 0;
229
  padding: 0 20px 0 0;
230
  }
231
+
232
  #wpforms-modal-select-form {
233
  margin-bottom: 1em;
234
  max-width: 100%;
235
  }
236
+
237
  #wpforms-modal .submitbox {
238
  padding: 8px 16px;
239
  background: #fcfcfc;
243
  left: 0;
244
  right: 0;
245
  }
246
+
247
  #wpforms-modal-cancel {
248
  line-height: 25px;
249
  float: left;
250
  }
251
+
252
  #wpforms-modal-update {
253
  line-height: 23px;
254
  float: right;
255
  }
256
+
257
  #wpforms-modal-submit {
258
  float: right;
259
  margin-bottom: 0;
260
  }
261
+
262
  @media screen and ( max-width: 782px ) {
263
  #wpforms-modal-wrap {
264
  height: 280px;
265
  margin-top: -140px;
266
  }
267
+
268
  #wpforms-modal-inner {
269
  padding: 0 16px 60px;
270
  }
271
+
272
  #wpforms-modal-cancel {
273
  line-height: 32px;
274
  }
275
  }
276
+
277
  @media screen and ( max-width: 520px ) {
278
  #wpforms-modal-wrap {
279
  width: auto;
283
  max-width: 500px;
284
  }
285
  }
286
+
287
  @media screen and ( max-height: 520px ) {
288
  #wpforms-modal-wrap {
289
  -webkit-transition: none;
290
  transition: none;
291
  }
292
  }
293
+
294
  @media screen and ( max-height: 290px ) {
295
  #wpforms-modal-wrap {
296
  height: auto;
298
  top: 10px;
299
  bottom: 10px;
300
  }
301
+
302
  #wpforms-modal-inner {
303
  overflow: auto;
304
  height: -webkit-calc(100% - 92px);
includes/admin/class-importers.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Load the different form importers.
4
  *
1
  <?php
2
+
3
  /**
4
  * Load the different form importers.
5
  *
includes/admin/class-menu.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Register menu elements and do other global tasks.
4
  *
@@ -18,8 +19,7 @@ class WPForms_Admin_Menu {
18
  public function __construct() {
19
 
20
  // Let's make some menus.
21
- add_action( 'admin_menu', array( $this, 'register_menus' ), 9 );
22
- add_action( 'admin_print_styles', array( $this, 'menu_icon' ) );
23
 
24
  // Plugins page settings link.
25
  add_filter( 'plugin_action_links_' . plugin_basename( WPFORMS_PLUGIN_DIR . 'wpforms.php' ), array( $this, 'settings_link' ) );
@@ -30,26 +30,26 @@ class WPForms_Admin_Menu {
30
  *
31
  * @since 1.0.0
32
  */
33
- function register_menus() {
34
 
35
- $menu_cap = apply_filters( 'wpforms_manage_cap', 'manage_options' );
36
 
37
  // Default Forms top level menu item.
38
  add_menu_page(
39
- __( 'WPForms', 'wpforms' ),
40
- __( 'WPForms', 'wpforms' ),
41
  $menu_cap,
42
  'wpforms-overview',
43
  array( $this, 'admin_page' ),
44
- 'dashicons-feedback',
45
  apply_filters( 'wpforms_menu_position', '57.7' )
46
  );
47
 
48
  // All Forms sub menu item.
49
  add_submenu_page(
50
  'wpforms-overview',
51
- __( 'WPForms', 'wpforms' ),
52
- __( 'All Forms', 'wpforms' ),
53
  $menu_cap,
54
  'wpforms-overview',
55
  array( $this, 'admin_page' )
@@ -58,8 +58,8 @@ class WPForms_Admin_Menu {
58
  // Add New sub menu item.
59
  add_submenu_page(
60
  'wpforms-overview',
61
- __( 'WPForms Builder', 'wpforms' ),
62
- __( 'Add New', 'wpforms' ),
63
  $menu_cap,
64
  'wpforms-builder',
65
  array( $this, 'admin_page' )
@@ -68,8 +68,8 @@ class WPForms_Admin_Menu {
68
  // Entries sub menu item.
69
  add_submenu_page(
70
  'wpforms-overview',
71
- __( 'Form Entries', 'wpforms' ),
72
- __( 'Entries', 'wpforms' ),
73
  $menu_cap,
74
  'wpforms-entries',
75
  array( $this, 'admin_page' )
@@ -80,8 +80,8 @@ class WPForms_Admin_Menu {
80
  // Settings sub menu item.
81
  add_submenu_page(
82
  'wpforms-overview',
83
- __( 'WPForms Settings', 'wpforms' ),
84
- __( 'Settings', 'wpforms' ),
85
  $menu_cap,
86
  'wpforms-settings',
87
  array( $this, 'admin_page' )
@@ -90,8 +90,8 @@ class WPForms_Admin_Menu {
90
  // Tools sub menu item.
91
  add_submenu_page(
92
  'wpforms-overview',
93
- __( 'WPForms Tools', 'wpforms' ),
94
- __( 'Tools', 'wpforms' ),
95
  $menu_cap,
96
  'wpforms-tools',
97
  array( $this, 'admin_page' )
@@ -100,8 +100,8 @@ class WPForms_Admin_Menu {
100
  // Hidden placeholder paged used for misc content.
101
  add_submenu_page(
102
  'wpforms-settings',
103
- __( 'WPForms', 'wpforms' ),
104
- __( 'Info', 'wpforms' ),
105
  $menu_cap,
106
  'wpforms-page',
107
  array( $this, 'admin_page' )
@@ -110,8 +110,8 @@ class WPForms_Admin_Menu {
110
  // Addons submenu page.
111
  add_submenu_page(
112
  'wpforms-overview',
113
- __( 'WPForms Addons', 'wpforms' ),
114
- '<span style="color:#f18500">' . __( 'Addons', 'wpforms' ) . '<span>',
115
  $menu_cap,
116
  'wpforms-addons',
117
  array( $this, 'admin_page' )
@@ -124,60 +124,16 @@ class WPForms_Admin_Menu {
124
  * @since 1.0.0
125
  */
126
  public function admin_page() {
127
-
128
  do_action( 'wpforms_admin_page' );
129
  }
130
 
131
- /**
132
- * Load CSS for custom menu icon.
133
- *
134
- * @since 1.0.0
135
- */
136
- public function menu_icon() {
137
-
138
- $menu_cap = apply_filters( 'wpforms_manage_cap', 'manage_options' );
139
-
140
- if ( ! current_user_can( $menu_cap ) ) {
141
- return;
142
- }
143
- ?>
144
- <style type="text/css">
145
- @font-face {
146
- font-family: "wpforms-menu";
147
- src:url("<?php echo WPFORMS_PLUGIN_URL; ?>assets/fonts/wpforms-menu.eot");
148
- src:url("<?php echo WPFORMS_PLUGIN_URL; ?>assets/fonts/wpforms-menu.eot?#iefix") format("embedded-opentype"),
149
- url("<?php echo WPFORMS_PLUGIN_URL; ?>assets/fonts/wpforms-menu.woff") format("woff"),
150
- url("<?php echo WPFORMS_PLUGIN_URL; ?>assets/fonts/wpforms-menu.ttf") format("truetype"),
151
- url("<?php echo WPFORMS_PLUGIN_URL; ?>assets/fonts/wpforms-menu.svg#wpforms") format("svg");
152
- font-weight: normal;
153
- font-style: normal;
154
- }
155
- #toplevel_page_wpforms-overview .wp-menu-image:before,
156
- .wpforms-menu-icon:before {
157
- content: "\61";
158
- font-family: "wpforms-menu" !important;
159
- font-style: normal !important;
160
- font-weight: normal !important;
161
- font-variant: normal !important;
162
- text-transform: none !important;
163
- speak: none;
164
- line-height: 1;
165
- -webkit-font-smoothing: antialiased;
166
- -moz-osx-font-smoothing: grayscale;
167
- }
168
- #toplevel_page_wpforms-overview .wp-menu-image:before {
169
- font-size: 1.15em;
170
- padding-top: 9px;
171
- }
172
- </style>
173
- <?php
174
- }
175
-
176
  /**
177
  * Add settings link to the Plugins page.
178
  *
179
  * @since 1.3.9
 
180
  * @param array $links
 
181
  * @return array $links
182
  */
183
  public function settings_link( $links ) {
@@ -191,14 +147,14 @@ class WPForms_Admin_Menu {
191
 
192
  $setting_link = sprintf(
193
  '<a href="%s">%s</a>',
194
- $admin_link ,
195
- __( 'Settings', 'wpforms' )
196
  );
197
 
198
  array_unshift( $links, $setting_link );
199
 
200
  return $links;
201
  }
202
-
203
  }
 
204
  new WPForms_Admin_Menu;
1
  <?php
2
+
3
  /**
4
  * Register menu elements and do other global tasks.
5
  *
19
  public function __construct() {
20
 
21
  // Let's make some menus.
22
+ add_action( 'admin_menu', array( $this, 'register_menus' ), 9 );
 
23
 
24
  // Plugins page settings link.
25
  add_filter( 'plugin_action_links_' . plugin_basename( WPFORMS_PLUGIN_DIR . 'wpforms.php' ), array( $this, 'settings_link' ) );
30
  *
31
  * @since 1.0.0
32
  */
33
+ public function register_menus() {
34
 
35
+ $menu_cap = wpforms_get_capability_manage_options();
36
 
37
  // Default Forms top level menu item.
38
  add_menu_page(
39
+ esc_html__( 'WPForms', 'wpforms' ),
40
+ esc_html__( 'WPForms', 'wpforms' ),
41
  $menu_cap,
42
  'wpforms-overview',
43
  array( $this, 'admin_page' ),
44
+ 'data:image/svg+xml;base64,' . base64_encode( '<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="#9ea3a8" d="M643 911v128h-252v-128h252zm0-255v127h-252v-127h252zm758 511v128h-341v-128h341zm0-256v128h-672v-128h672zm0-255v127h-672v-127h672zm135 860v-1240q0-8-6-14t-14-6h-32l-378 256-210-171-210 171-378-256h-32q-8 0-14 6t-6 14v1240q0 8 6 14t14 6h1240q8 0 14-6t6-14zm-855-1110l185-150h-406zm430 0l221-150h-406zm553-130v1240q0 62-43 105t-105 43h-1240q-62 0-105-43t-43-105v-1240q0-62 43-105t105-43h1240q62 0 105 43t43 105z"/></svg>' ),
45
  apply_filters( 'wpforms_menu_position', '57.7' )
46
  );
47
 
48
  // All Forms sub menu item.
49
  add_submenu_page(
50
  'wpforms-overview',
51
+ esc_html__( 'WPForms', 'wpforms' ),
52
+ esc_html__( 'All Forms', 'wpforms' ),
53
  $menu_cap,
54
  'wpforms-overview',
55
  array( $this, 'admin_page' )
58
  // Add New sub menu item.
59
  add_submenu_page(
60
  'wpforms-overview',
61
+ esc_html__( 'WPForms Builder', 'wpforms' ),
62
+ esc_html__( 'Add New', 'wpforms' ),
63
  $menu_cap,
64
  'wpforms-builder',
65
  array( $this, 'admin_page' )
68
  // Entries sub menu item.
69
  add_submenu_page(
70
  'wpforms-overview',
71
+ esc_html__( 'Form Entries', 'wpforms' ),
72
+ esc_html__( 'Entries', 'wpforms' ),
73
  $menu_cap,
74
  'wpforms-entries',
75
  array( $this, 'admin_page' )
80
  // Settings sub menu item.
81
  add_submenu_page(
82
  'wpforms-overview',
83
+ esc_html__( 'WPForms Settings', 'wpforms' ),
84
+ esc_html__( 'Settings', 'wpforms' ),
85
  $menu_cap,
86
  'wpforms-settings',
87
  array( $this, 'admin_page' )
90
  // Tools sub menu item.
91
  add_submenu_page(
92
  'wpforms-overview',
93
+ esc_html__( 'WPForms Tools', 'wpforms' ),
94
+ esc_html__( 'Tools', 'wpforms' ),
95
  $menu_cap,
96
  'wpforms-tools',
97
  array( $this, 'admin_page' )
100
  // Hidden placeholder paged used for misc content.
101
  add_submenu_page(
102
  'wpforms-settings',
103
+ esc_html__( 'WPForms', 'wpforms' ),
104
+ esc_html__( 'Info', 'wpforms' ),
105
  $menu_cap,
106
  'wpforms-page',
107
  array( $this, 'admin_page' )
110
  // Addons submenu page.
111
  add_submenu_page(
112
  'wpforms-overview',
113
+ esc_html__( 'WPForms Addons', 'wpforms' ),
114
+ '<span style="color:#f18500">' . esc_html__( 'Addons', 'wpforms' ) . '<span>',
115
  $menu_cap,
116
  'wpforms-addons',
117
  array( $this, 'admin_page' )
124
  * @since 1.0.0
125
  */
126
  public function admin_page() {
 
127
  do_action( 'wpforms_admin_page' );
128
  }
129
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  /**
131
  * Add settings link to the Plugins page.
132
  *
133
  * @since 1.3.9
134
+ *
135
  * @param array $links
136
+ *
137
  * @return array $links
138
  */
139
  public function settings_link( $links ) {
147
 
148
  $setting_link = sprintf(
149
  '<a href="%s">%s</a>',
150
+ $admin_link,
151
+ esc_html__( 'Settings', 'wpforms' )
152
  );
153
 
154
  array_unshift( $links, $setting_link );
155
 
156
  return $links;
157
  }
 
158
  }
159
+
160
  new WPForms_Admin_Menu;
includes/admin/class-notices.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Admin notices, on the fly.
4
  *
@@ -8,7 +9,7 @@
8
  * @example
9
  * WPForms_Admin_Notice::warning( 'Do something please.' );
10
  *
11
- * @todo Persistent, dismissable notices.
12
  * @link https://gist.github.com/monkeymonk/2ea17e2260daaecd0049c46c8d6c85fd
13
  * @package WPForms
14
  * @author WPForms
@@ -55,7 +56,6 @@ class WPForms_Admin_Notice {
55
  * @since 1.3.9
56
  */
57
  public function __construct() {
58
-
59
  add_action( 'admin_notices', array( &$this, 'display' ) );
60
  }
61
 
@@ -66,7 +66,7 @@ class WPForms_Admin_Notice {
66
  */
67
  public function display() {
68
 
69
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
70
  return;
71
  }
72
 
@@ -77,15 +77,16 @@ class WPForms_Admin_Notice {
77
  * Add notice to instance property.
78
  *
79
  * @since 1.3.9
 
80
  * @param string $message Message to display.
81
  * @param string $type Type of the notice (default: '').
82
  */
83
  public static function add( $message, $type = '' ) {
84
 
85
- $instance = self::getInstance();
86
- $id = 'wpforms-notice-' . ( count( $instance->notices ) + 1 );
87
- $type = ! empty( $type ) ? 'notice-' . $type : '';
88
- $notice = sprintf( '<div class="notice wpforms-notice %s" id="%s">%s</div>', $type, $id, wpautop( $message ) );
89
 
90
  $instance->notices[] = $notice;
91
  }
@@ -98,7 +99,6 @@ class WPForms_Admin_Notice {
98
  * @param string $message Message to display.
99
  */
100
  public static function info( $message ) {
101
-
102
  self::add( $message, 'info' );
103
  }
104
 
@@ -110,7 +110,6 @@ class WPForms_Admin_Notice {
110
  * @param string $message Message to display.
111
  */
112
  public static function error( $message ) {
113
-
114
  self::add( $message, 'error' );
115
  }
116
 
@@ -122,7 +121,6 @@ class WPForms_Admin_Notice {
122
  * @param string $message Message to display.
123
  */
124
  public static function success( $message ) {
125
-
126
  self::add( $message, 'success' );
127
  }
128
 
@@ -134,7 +132,6 @@ class WPForms_Admin_Notice {
134
  * @param string $message Message to display.
135
  */
136
  public static function warning( $message ) {
137
-
138
  self::add( $message, 'warning' );
139
  }
140
  }
1
  <?php
2
+
3
  /**
4
  * Admin notices, on the fly.
5
  *
9
  * @example
10
  * WPForms_Admin_Notice::warning( 'Do something please.' );
11
  *
12
+ * @todo Persistent, dismissible notices.
13
  * @link https://gist.github.com/monkeymonk/2ea17e2260daaecd0049c46c8d6c85fd
14
  * @package WPForms
15
  * @author WPForms
56
  * @since 1.3.9
57
  */
58
  public function __construct() {
 
59
  add_action( 'admin_notices', array( &$this, 'display' ) );
60
  }
61
 
66
  */
67
  public function display() {
68
 
69
+ if ( ! wpforms_current_user_can() ) {
70
  return;
71
  }
72
 
77
  * Add notice to instance property.
78
  *
79
  * @since 1.3.9
80
+ *
81
  * @param string $message Message to display.
82
  * @param string $type Type of the notice (default: '').
83
  */
84
  public static function add( $message, $type = '' ) {
85
 
86
+ $instance = self::getInstance();
87
+ $id = 'wpforms-notice-' . ( count( $instance->notices ) + 1 );
88
+ $type = ! empty( $type ) ? 'notice-' . $type : '';
89
+ $notice = sprintf( '<div class="notice wpforms-notice %s" id="%s">%s</div>', $type, $id, wpautop( $message ) );
90
 
91
  $instance->notices[] = $notice;
92
  }
99
  * @param string $message Message to display.
100
  */
101
  public static function info( $message ) {
 
102
  self::add( $message, 'info' );
103
  }
104
 
110
  * @param string $message Message to display.
111
  */
112
  public static function error( $message ) {
 
113
  self::add( $message, 'error' );
114
  }
115
 
121
  * @param string $message Message to display.
122
  */
123
  public static function success( $message ) {
 
124
  self::add( $message, 'success' );
125
  }
126
 
132
  * @param string $message Message to display.
133
  */
134
  public static function warning( $message ) {
 
135
  self::add( $message, 'warning' );
136
  }
137
  }
includes/admin/class-review.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Ask for some love.
4
  *
@@ -7,7 +8,7 @@
7
  * @since 1.3.2
8
  * @license GPL-2.0+
9
  * @copyright Copyright (c) 2017, WPForms LLC
10
- */
11
  class WPForms_Review {
12
 
13
  /**
@@ -17,11 +18,11 @@ class WPForms_Review {
17
  */
18
  public function __construct() {
19
 
20
- // Admin notice requesting review
21
- add_action( 'admin_notices', array( $this, 'review_request' ) );
22
  add_action( 'wp_ajax_wpforms_review_dismiss', array( $this, 'review_dismiss' ) );
23
 
24
- // Admin footer text
25
  add_filter( 'admin_footer_text', array( $this, 'admin_footer' ), 1, 2 );
26
  }
27
 
@@ -32,22 +33,22 @@ class WPForms_Review {
32
  */
33
  public function review_request() {
34
 
35
- // Only consider showing the review request to admin users
36
  if ( ! is_super_admin() ) {
37
  return;
38
  }
39
 
40
  // Verify that we can do a check for reviews.
41
  $review = get_option( 'wpforms_review' );
42
- $time = time();
43
- $load = false;
44
 
45
  if ( ! $review ) {
46
  $review = array(
47
  'time' => $time,
48
- 'dismissed' => false
49
  );
50
- $load = true;
51
  } else {
52
  // Check if it has been dismissed or not.
53
  if ( ( isset( $review['dismissed'] ) && ! $review['dismissed'] ) && ( isset( $review['time'] ) && ( ( $review['time'] + DAY_IN_SECONDS ) <= $time ) ) ) {
@@ -78,10 +79,10 @@ class WPForms_Review {
78
  */
79
  public function review() {
80
 
81
- // Fetch total entries
82
  $entries = wpforms()->entry->get_entries( array( 'number' => 50 ), true );
83
 
84
- // Only show review request if the site has collected at least 50 entries
85
  if ( empty( $entries ) || $entries < 50 ) {
86
  return;
87
  }
@@ -89,26 +90,26 @@ class WPForms_Review {
89
  // We have a candidate! Output a review message.
90
  ?>
91
  <div class="notice notice-info is-dismissible wpforms-review-notice">
92
- <p><?php _e( 'Hey, I noticed you collected over 50 entries from WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'wpforms' ); ?></p>
93
- <p><strong><?php _e( '~ Syed Balkhi<br>Co-Founder of WPForms', 'wpforms' ); ?></strong></p>
94
  <p>
95
- <a href="https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post" class="wpforms-dismiss-review-notice wpforms-review-out" target="_blank" rel="noopener"><?php _e( 'Ok, you deserve it', 'wpforms' ); ?></a><br>
96
- <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener"><?php _e( 'Nope, maybe later', 'wpforms' ); ?></a><br>
97
- <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener"><?php _e( 'I already did', 'wpforms' ); ?></a>
98
  </p>
99
  </div>
100
  <script type="text/javascript">
101
- jQuery(document).ready( function($) {
102
- $(document).on('click', '.wpforms-dismiss-review-notice, .wpforms-review-notice button', function( event ) {
103
- if ( ! $(this).hasClass('wpforms-review-out') ) {
104
  event.preventDefault();
105
  }
106
  $.post( ajaxurl, {
107
  action: 'wpforms_review_dismiss'
108
- });
109
- $('.wpforms-review-notice').remove();
110
- });
111
- });
112
  </script>
113
  <?php
114
  }
@@ -120,17 +121,18 @@ class WPForms_Review {
120
  */
121
  public function review_lite() {
122
 
123
- // Fetch when plugin was initially installed
124
  $activated = get_option( 'wpforms_activated', array() );
125
 
126
  if ( ! empty( $activated['lite'] ) ) {
127
- // Only continue if plugin has been installed for at least 7 days
128
  if ( ( $activated['lite'] + ( DAY_IN_SECONDS * 14 ) ) > time() ) {
129
  return;
130
  }
131
  } else {
132
  $activated['lite'] = time();
133
  update_option( 'wpforms_activated', $activated );
 
134
  return;
135
  }
136
 
@@ -152,26 +154,26 @@ class WPForms_Review {
152
  // We have a candidate! Output a review message.
153
  ?>
154
  <div class="notice notice-info is-dismissible wpforms-review-notice">
155
- <p><?php _e( 'Hey, I noticed you created a contact form with WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'wpforms' ); ?></p>
156
- <p><strong><?php _e( '~ Syed Balkhi<br>Co-Founder of WPForms', 'wpforms' ); ?></strong></p>
157
  <p>
158
- <a href="https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post" class="wpforms-dismiss-review-notice wpforms-review-out" target="_blank" rel="noopener"><?php _e( 'Ok, you deserve it', 'wpforms' ); ?></a><br>
159
- <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener"><?php _e( 'Nope, maybe later', 'wpforms' ); ?></a><br>
160
- <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener"><?php _e( 'I already did', 'wpforms' ); ?></a>
161
  </p>
162
  </div>
163
  <script type="text/javascript">
164
- jQuery(document).ready( function($) {
165
- $(document).on('click', '.wpforms-dismiss-review-notice, .wpforms-review-notice button', function( event ) {
166
- if ( ! $(this).hasClass('wpforms-review-out') ) {
167
  event.preventDefault();
168
  }
169
  $.post( ajaxurl, {
170
  action: 'wpforms_review_dismiss'
171
- });
172
- $('.wpforms-review-notice').remove();
173
- });
174
- });
175
  </script>
176
  <?php
177
  }
@@ -184,7 +186,7 @@ class WPForms_Review {
184
  public function review_dismiss() {
185
 
186
  $review = get_option( 'wpforms_review', array() );
187
- $review['time'] = time();
188
  $review['dismissed'] = true;
189
 
190
  update_option( 'wpforms_review', $review );
@@ -196,19 +198,38 @@ class WPForms_Review {
196
  * that graciously asks them to rate us.
197
  *
198
  * @since 1.3.2
 
199
  * @param string $text
 
200
  * @return string
201
  */
202
  public function admin_footer( $text ) {
203
 
204
  global $current_screen;
205
 
206
- if ( !empty( $current_screen->id ) && strpos( $current_screen->id, 'wpforms' ) !== false ) {
207
  $url = 'https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post';
208
- $text = sprintf( __( 'Please rate <strong>WPForms</strong> <a href="%s" target="_blank" rel="noopener">&#9733;&#9733;&#9733;&#9733;&#9733;</a> on <a href="%s" target="_blank">WordPress.org</a> to help us spread the word. Thank you from the WPForms team!', 'wpforms' ), $url, $url );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
209
  }
 
210
  return $text;
211
  }
212
 
213
  }
 
214
  new WPForms_Review;
1
  <?php
2
+
3
  /**
4
  * Ask for some love.
5
  *
8
  * @since 1.3.2
9
  * @license GPL-2.0+
10
  * @copyright Copyright (c) 2017, WPForms LLC
11
+ */
12
  class WPForms_Review {
13
 
14
  /**
18
  */
19
  public function __construct() {
20
 
21
+ // Admin notice requesting review.
22
+ add_action( 'admin_notices', array( $this, 'review_request' ) );
23
  add_action( 'wp_ajax_wpforms_review_dismiss', array( $this, 'review_dismiss' ) );
24
 
25
+ // Admin footer text.
26
  add_filter( 'admin_footer_text', array( $this, 'admin_footer' ), 1, 2 );
27
  }
28
 
33
  */
34
  public function review_request() {
35
 
36
+ // Only consider showing the review request to admin users.
37
  if ( ! is_super_admin() ) {
38
  return;
39
  }
40
 
41
  // Verify that we can do a check for reviews.
42
  $review = get_option( 'wpforms_review' );
43
+ $time = time();
44
+ $load = false;
45
 
46
  if ( ! $review ) {
47
  $review = array(
48
  'time' => $time,
49
+ 'dismissed' => false,
50
  );
51
+ $load = true;
52
  } else {
53
  // Check if it has been dismissed or not.
54
  if ( ( isset( $review['dismissed'] ) && ! $review['dismissed'] ) && ( isset( $review['time'] ) && ( ( $review['time'] + DAY_IN_SECONDS ) <= $time ) ) ) {
79
  */
80
  public function review() {
81
 
82
+ // Fetch total entries.
83
  $entries = wpforms()->entry->get_entries( array( 'number' => 50 ), true );
84
 
85
+ // Only show review request if the site has collected at least 50 entries.
86
  if ( empty( $entries ) || $entries < 50 ) {
87
  return;
88
  }
90
  // We have a candidate! Output a review message.
91
  ?>
92
  <div class="notice notice-info is-dismissible wpforms-review-notice">
93
+ <p><?php esc_html_e( 'Hey, I noticed you collected over 50 entries from WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'wpforms' ); ?></p>
94
+ <p><strong><?php echo wp_kses( __( '~ Syed Balkhi<br>Co-Founder of WPForms', 'wpforms' ), array( 'br' => array() ) ); ?></strong></p>
95
  <p>
96
+ <a href="https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post" class="wpforms-dismiss-review-notice wpforms-review-out" target="_blank" rel="noopener"><?php esc_html_e( 'Ok, you deserve it', 'wpforms' ); ?></a><br>
97
+ <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Nope, maybe later', 'wpforms' ); ?></a><br>
98
+ <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'I already did', 'wpforms' ); ?></a>
99
  </p>
100
  </div>
101
  <script type="text/javascript">
102
+ jQuery( document ).ready( function ( $ ) {
103
+ $( document ).on( 'click', '.wpforms-dismiss-review-notice, .wpforms-review-notice button', function ( event ) {
104
+ if ( ! $( this ).hasClass( 'wpforms-review-out' ) ) {
105
  event.preventDefault();
106
  }
107
  $.post( ajaxurl, {
108
  action: 'wpforms_review_dismiss'
109
+ } );
110
+ $( '.wpforms-review-notice' ).remove();
111
+ } );
112
+ } );
113
  </script>
114
  <?php
115
  }
121
  */
122
  public function review_lite() {
123
 
124
+ // Fetch when plugin was initially installed.
125
  $activated = get_option( 'wpforms_activated', array() );
126
 
127
  if ( ! empty( $activated['lite'] ) ) {
128
+ // Only continue if plugin has been installed for at least 7 days.
129
  if ( ( $activated['lite'] + ( DAY_IN_SECONDS * 14 ) ) > time() ) {
130
  return;
131
  }
132
  } else {
133
  $activated['lite'] = time();
134
  update_option( 'wpforms_activated', $activated );
135
+
136
  return;
137
  }
138
 
154
  // We have a candidate! Output a review message.
155
  ?>
156
  <div class="notice notice-info is-dismissible wpforms-review-notice">
157
+ <p><?php esc_html_e( 'Hey, I noticed you created a contact form with WPForms - that’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'wpforms' ); ?></p>
158
+ <p><strong><?php echo wp_kses( __( '~ Syed Balkhi<br>Co-Founder of WPForms', 'wpforms' ), array( 'br' => array() ) ); ?></strong></p>
159
  <p>
160
+ <a href="https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post" class="wpforms-dismiss-review-notice wpforms-review-out" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Ok, you deserve it', 'wpforms' ); ?></a><br>
161
+ <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'Nope, maybe later', 'wpforms' ); ?></a><br>
162
+ <a href="#" class="wpforms-dismiss-review-notice" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'I already did', 'wpforms' ); ?></a>
163
  </p>
164
  </div>
165
  <script type="text/javascript">
166
+ jQuery( document ).ready( function ( $ ) {
167
+ $( document ).on( 'click', '.wpforms-dismiss-review-notice, .wpforms-review-notice button', function ( event ) {
168
+ if ( ! $( this ).hasClass( 'wpforms-review-out' ) ) {
169
  event.preventDefault();
170
  }
171
  $.post( ajaxurl, {
172
  action: 'wpforms_review_dismiss'
173
+ } );
174
+ $( '.wpforms-review-notice' ).remove();
175
+ } );
176
+ } );
177
  </script>
178
  <?php
179
  }
186
  public function review_dismiss() {
187
 
188
  $review = get_option( 'wpforms_review', array() );
189
+ $review['time'] = time();
190
  $review['dismissed'] = true;
191
 
192
  update_option( 'wpforms_review', $review );
198
  * that graciously asks them to rate us.
199
  *
200
  * @since 1.3.2
201
+ *
202
  * @param string $text
203
+ *
204
  * @return string
205
  */
206
  public function admin_footer( $text ) {
207
 
208
  global $current_screen;
209
 
210
+ if ( ! empty( $current_screen->id ) && strpos( $current_screen->id, 'wpforms' ) !== false ) {
211
  $url = 'https://wordpress.org/support/plugin/wpforms-lite/reviews/?filter=5#new-post';
212
+ $text = sprintf(
213
+ wp_kses(
214
+ /* translators: $1$s - WPForms plugin name; $2$s - WP.org review link; $3$s - WP.org review link. */
215
+ __( 'Please rate %1$s <a href="%2$s" target="_blank" rel="noopener noreferrer">&#9733;&#9733;&#9733;&#9733;&#9733;</a> on <a href="%3$s" target="_blank" rel="noopener">WordPress.org</a> to help us spread the word. Thank you from the WPForms team!', 'wpforms' ),
216
+ array(
217
+ 'a' => array(
218
+ 'href' => array(),
219
+ 'target' => array(),
220
+ 'rel' => array(),
221
+ ),
222
+ )
223
+ ),
224
+ '<strong>WPForms</strong>',
225
+ $url,
226
+ $url
227
+ );
228
  }
229
+
230
  return $text;
231
  }
232
 
233
  }
234
+
235
  new WPForms_Review;
includes/admin/class-settings.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Settings class.
4
  *
@@ -14,7 +15,7 @@ class WPForms_Settings {
14
  * The current active tab.
15
  *
16
  * @since 1.3.9
17
- * @var array
18
  */
19
  public $view;
20
 
@@ -30,7 +31,7 @@ class WPForms_Settings {
30
  }
31
 
32
  /**
33
- * Determing if the user is viewing the settings page, if so, party on.
34
  *
35
  * @since 1.0.0
36
  */
@@ -51,9 +52,9 @@ class WPForms_Settings {
51
  // Determine the current active settings tab.
52
  $this->view = isset( $_GET['view'] ) ? esc_html( $_GET['view'] ) : 'general';
53
 
54
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
55
- add_action( 'wpforms_admin_settings_after', array( $this, 'captcha_addon_notice' ) );
56
- add_action( 'wpforms_admin_page', array( $this, 'output' ) );
57
 
58
  // Hook for addons.
59
  do_action( 'wpforms_settings_init' );
@@ -61,7 +62,7 @@ class WPForms_Settings {
61
  }
62
 
63
  /**
64
- * Sanitize and save setings.
65
  *
66
  * @since 1.3.9
67
  */
@@ -76,7 +77,7 @@ class WPForms_Settings {
76
  return;
77
  }
78
 
79
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
80
  return;
81
  }
82
 
@@ -102,8 +103,8 @@ class WPForms_Settings {
102
  continue;
103
  }
104
 
105
- $value = isset( $_POST[ $id ] ) ? trim( $_POST[ $id ] ) : false;
106
- $vaue_prev = isset( $settings[ $id ] ) ? $settings[ $id ] : false;
107
 
108
  // Custom filter can be provided for sanitizing, otherwise use
109
  // defaults.
@@ -139,7 +140,7 @@ class WPForms_Settings {
139
  // Save settings.
140
  update_option( 'wpforms_settings', $settings );
141
 
142
- WPForms_Admin_Notice::success( __( 'Settings were successfully saved.', 'wpforms' ) );
143
  }
144
 
145
  /**
@@ -148,8 +149,6 @@ class WPForms_Settings {
148
  * @since 1.0.0
149
  */
150
  public function enqueues() {
151
-
152
- // Hook for addons.
153
  do_action( 'wpforms_settings_enqueue' );
154
  }
155
 
@@ -162,32 +161,33 @@ class WPForms_Settings {
162
  public function get_tabs() {
163
 
164
  $tabs = array(
165
- 'general' => array(
166
- 'name' => __( 'General', 'wpforms' ),
167
  'form' => true,
168
- 'submit' => __( 'Save Settings', 'wpforms' ),
169
  ),
170
- 'email' => array(
171
- 'name' => __( 'Email', 'wpforms' ),
172
  'form' => true,
173
- 'submit' => __( 'Save Settings', 'wpforms' ),
174
  ),
175
- 'recaptcha' => array(
176
- 'name' => __( 'reCAPTCHA', 'wpforms' ),
177
  'form' => true,
178
- 'submit' => __( 'Save Settings', 'wpforms' ),
179
  ),
180
- 'validation' => array(
181
- 'name' => __( 'Validation', 'wpforms' ),
182
  'form' => true,
183
- 'submit' => __( 'Save Settings', 'wpforms' ),
184
  ),
185
  'integrations' => array(
186
- 'name' => __( 'Integrations', 'wpforms' ),
187
  'form' => false,
188
  'submit' => false,
189
  ),
190
  );
 
191
  return apply_filters( 'wpforms_settings_tabs', $tabs );
192
  }
193
 
@@ -201,14 +201,14 @@ class WPForms_Settings {
201
  $tabs = $this->get_tabs();
202
 
203
  echo '<ul class="wpforms-admin-tabs">';
204
- foreach ( $tabs as $id => $tab ) {
205
 
206
- $active = $id === $this->view ? 'active' : '';
207
- $name = esc_html( $tab['name'] );
208
- $link = esc_url_raw( add_query_arg( 'view', $id, admin_url( 'admin.php?page=wpforms-settings' ) ) );
209
 
210
- echo '<li><a href="' . $link . '" class="' . $active . '">' . $name . '</a></li>';
211
- }
212
  echo '</ul>';
213
  }
214
 
@@ -216,189 +216,224 @@ class WPForms_Settings {
216
  * Return all the default registered settings fields.
217
  *
218
  * @since 1.3.9
 
219
  * @param string $view
 
220
  * @return array
221
  */
222
  public function get_registered_settings( $view = '' ) {
223
 
224
- // reCAPTCAH heading description is long so we define it separately.
225
- $recaptcha_desc = '<p>' . __( 'reCAPTCHA is a free anti-spam service from Google which helps to protect your website from spam and abuse while letting real people pass through with ease.', 'wpforms' ) . '</p>';
226
- $recaptcha_desc .= '<p>' . __( 'Google\'s original <a href="https://www.google.com/recaptcha/intro/" target="_blank" rel="noopener noreferrer">v2 reCAPTCHA</a> prompts users to check a box to prove they\'re human, whereas <a href="https://www.google.com/recaptcha/intro/invisible.html" target="_blank" rel="noopener noreferrer">Invisible reCAPTCHA</a> uses advanced technology to detect real users without requiring any input.', 'wpforms' ) . '</p>';
227
- $recaptcha_desc .= '<p>' . __( 'Sites already using v2 reCAPTCHA will need to create new site keys before switching to the Invisible reCAPTCHA.', 'wpforms' ) . '</p>';
228
- $recaptcha_desc .= '<p>' . sprintf( __( '<a href="%s" rel="noopener noreferrer" target="_blank">Read our walk through</a> to learn more and for step-by-step directions.', 'wpforms' ), 'https://wpforms.com/docs/setup-captcha-wpforms/' ) . '</p>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
 
230
  $defaults = array(
231
  // General Settings tab.
232
- 'general' => array(
233
- 'license-heading' => array(
234
  'id' => 'license-heading',
235
- 'content' => '<h4>' . __( 'License', 'wpforms' ) . '</h4><p>' . __( 'Your license key provides access to updates and addons.', 'wpforms' ) . '</p>',
236
  'type' => 'content',
237
  'no_label' => true,
238
  'class' => array( 'section-heading' ),
239
  ),
240
- 'license-key' => array(
241
- 'id' => 'license-key',
242
- 'name' => __( 'License Key', 'wpforms' ),
243
- 'type' => 'license',
244
  ),
245
- 'general-heading' => array(
246
  'id' => 'general-heading',
247
- 'content' => '<h4>' . __( 'General', 'wpforms' ) . '</h4>',
248
  'type' => 'content',
249
  'no_label' => true,
250
  'class' => array( 'section-heading', 'no-desc' ),
251
  ),
252
- 'disable-css' => array(
253
  'id' => 'disable-css',
254
- 'name' => __( 'Include Form Styling', 'wpforms' ),
255
- 'desc' => __( 'Determines which CSS files to load for the site.', 'wpforms' ),
256
  'type' => 'select',
257
  'choicesjs' => true,
258
  'default' => 1,
259
  'options' => array(
260
- 1 => __( 'Base and form theme styling', 'wpforms' ),
261
- 2 => __( 'Base styling only', 'wpforms' ),
262
- 3 => __( 'No styling', 'wpforms' ),
263
  ),
264
  ),
265
- 'global-assets' => array(
266
- 'id' => 'global-assets',
267
- 'name' => __( 'Load Assets Globally', 'wpforms' ),
268
- 'desc' => __( 'Check this if you would like to load WPForms assets site-wide. Only check if your site is having compatibility issues or instructed to by support.', 'wpforms' ),
269
- 'type' => 'checkbox',
270
  ),
271
  'hide-announcements' => array(
272
- 'id' => 'hide-announcements',
273
- 'name' => __( 'Hide Announcements', 'wpforms' ),
274
- 'desc' => __( 'Check this if you would like to hide plugin announcements and update details.', 'wpforms' ),
275
- 'type' => 'checkbox',
276
  ),
277
  ),
278
  // Email settings tab.
279
- 'email' => array(
280
- 'email-heading' => array(
281
  'id' => 'email-heading',
282
- 'content' => '<h4>' . __( 'Email', 'wpforms' ) . '</h4>',
283
  'type' => 'content',
284
  'no_label' => true,
285
  'class' => array( 'section-heading', 'no-desc' ),
286
  ),
287
- 'email-template' => array(
288
- 'id' => 'email-template',
289
- 'name' => __( 'Template', 'wpforms' ),
290
- 'desc' => __( 'Determines how email notifications will be formatted. HTML Templates are the default.', 'wpforms' ),
291
- 'type' => 'radio',
292
- 'default' => 'default',
293
- 'options' => array(
294
- 'default' => __( 'HTML Template', 'wpforms' ),
295
- 'none' => __( 'Plain text', 'wpforms' ),
296
  ),
297
  ),
298
- 'email-header-image' => array(
299
- 'id' => 'email-header-image',
300
- 'name' => __( 'Header Image', 'wpforms' ),
301
- 'desc' => __( 'Upload or choose a logo to be displayed at the top of email notifications.<br>Recommended size is 300x100 or smaller for best support on all devices.', 'wpforms' ),
302
- 'type' => 'image',
303
  ),
304
  'email-background-color' => array(
305
- 'id' => 'email-background-color',
306
- 'name' => __( 'Background Color', 'wpforms' ),
307
- 'desc' => __( 'Customize the background color of the HTML email template.', 'wpforms' ),
308
- 'type' => 'color',
309
- 'default' => '#e9eaec',
310
  ),
311
- 'email-carbon-copy' => array(
312
- 'id' => 'email-carbon-copy',
313
- 'name' => __( 'Carbon Copy', 'wpforms' ),
314
- 'desc' => __( 'Check this if you would like to enable the ability to CC: email addresses in the form notification settings.', 'wpforms' ),
315
- 'type' => 'checkbox',
316
  ),
317
  ),
318
  // Recaptcha settings tab.
319
- 'recaptcha' => array(
320
- 'recaptcha-heading' => array(
321
  'id' => 'recaptcha-heading',
322
- 'content' => '<h4>' . __( 'reCAPTCHA', 'wpforms' ) . '</h4>' . $recaptcha_desc,
323
  'type' => 'content',
324
  'no_label' => true,
325
  'class' => array( 'section-heading' ),
326
  ),
327
- 'recaptcha-type' => array(
328
- 'id' => 'recaptcha-type',
329
- 'name' => __( 'Type', 'wpforms' ),
330
- 'type' => 'radio',
331
- 'default' => 'default',
332
- 'options' => array(
333
- 'v2' => __( 'v2 reCAPTCHA', 'wpforms' ),
334
- 'invisible' => __( 'Invisible reCAPTCHA', 'wpforms' ),
335
  ),
336
  ),
337
- 'recaptcha-site-key' => array(
338
- 'id' => 'recaptcha-site-key',
339
- 'name' => __( 'Site Key', 'wpforms' ),
340
- 'type' => 'text',
341
  ),
342
  'recaptcha-secret-key' => array(
343
- 'id' => 'recaptcha-secret-key',
344
- 'name' => __( 'Secret Key', 'wpforms' ),
345
- 'type' => 'text',
346
  ),
347
  ),
348
  // Validation messages settings tab.
349
- 'validation' => array(
350
- 'validation-heading' => array(
351
  'id' => 'validation-heading',
352
- 'content' => '<h4>' . __( 'Validation Messages', 'wpforms' ) . '</h4><p>' . __( 'These messages are displayed to the user as they fill out a form in real-time.', 'wpforms' ) . '</p>',
353
  'type' => 'content',
354
  'no_label' => true,
355
  'class' => array( 'section-heading' ),
356
  ),
357
  'validation-required' => array(
358
- 'id' => 'validation-required',
359
- 'name' => __( 'Required', 'wpforms' ),
360
- 'type' => 'text',
361
- 'default' => __( 'This field is required.', 'wpforms' ),
362
  ),
363
- 'validation-url' => array(
364
- 'id' => 'validation-url',
365
- 'name' => __( 'Website URL', 'wpforms' ),
366
- 'type' => 'text',
367
- 'default' => __( 'Please enter a valid URL.', 'wpforms' ),
368
  ),
369
- 'validation-email' => array(
370
- 'id' => 'validation-email',
371
- 'name' => __( 'Email', 'wpforms' ),
372
- 'type' => 'text',
373
- 'default' => __( 'Please enter a valid email address.', 'wpforms' ),
374
  ),
375
- 'validation-number' => array(
376
- 'id' => 'validation-number',
377
- 'name' => __( 'Number', 'wpforms' ),
378
- 'type' => 'text',
379
- 'default' => __( 'Please enter a valid number.', 'wpforms' ),
380
  ),
381
- 'validation-confirm' => array(
382
- 'id' => 'validation-confirm',
383
- 'name' => __( 'Confirm Value', 'wpforms' ),
384
- 'type' => 'text',
385
- 'default' => __( 'Field values do not match.', 'wpforms' ),
386
  ),
387
  ),
388
  // Provider integrations settings tab.
389
  'integrations' => array(
390
- 'integrations-heading' => array(
391
  'id' => 'integrations-heading',
392
- 'content' => '<h4>' . __( 'Integrations', 'wpforms' ) . '</h4><p>' . __( 'Manage integrations with popular providers such as Constant Contact, MailChimp, Zapier, and more.', 'wpforms' ) . '</p>',
393
  'type' => 'content',
394
  'no_label' => true,
395
  'class' => array( 'section-heading' ),
396
  ),
397
  'integrations-providers' => array(
398
- 'id' => 'integrations-providers',
399
- 'content' => '<h4>' . __( 'Integrations', 'wpforms' ) . '</h4><p>' . __( 'Manage integrations with popular providers such as Constant Contact, MailChimp, Zapier, and more.', 'wpforms' ) . '</p>',
400
- 'type' => 'providers',
401
- 'wrap' => 'none',
402
  ),
403
  ),
404
  );
@@ -411,7 +446,9 @@ class WPForms_Settings {
411
  * Return array containing markup for all the appropriate settings fields.
412
  *
413
  * @since 1.3.9
 
414
  * @param string $view
 
415
  * @return array
416
  */
417
  public function get_settings_fields( $view = '' ) {
@@ -436,48 +473,57 @@ class WPForms_Settings {
436
 
437
  $tabs = $this->get_tabs();
438
  $fields = $this->get_settings_fields( $this->view );
 
439
 
440
- echo '<div id="wpforms-settings" class="wrap wpforms-admin-wrap">';
441
 
442
- $this->tabs();
443
 
444
- echo '<h1 class="wpforms-h1-placeholder"></h1>';
445
 
 
446
  if ( wpforms()->pro && class_exists( 'WPForms_License' ) ) {
447
  wpforms()->license->notices( true );
448
  }
 
449
 
450
- echo '<div class="wpforms-admin-content wpforms-admin-settings">';
451
 
452
- // Some tabs rely on AJAX and do not contain a form, such as Integrations.
453
- if ( ! empty( $tabs[ $this->view ]['form'] ) ) {
454
- echo '<form class="wpforms-admin-settings-form" method="post">';
455
- echo '<input type="hidden" name="action" value="update-settings">';
456
- echo '<input type="hidden" name="view" value="' . $this->view . '">';
457
- echo '<input type="hidden" name="nonce" value="' . wp_create_nonce( 'wpforms-settings-nonce' ) . '">';
458
- }
 
 
459
 
460
- do_action( 'wpforms_admin_settings_before', $this->view, $fields );
461
 
462
- foreach ( $fields as $field ) {
463
- echo $field;
464
- }
 
 
465
 
466
- if ( ! empty( $tabs[ $this->view ]['submit'] ) ) {
467
- echo '<p class="submit">';
468
- echo '<button type="submit" class="wpforms-btn wpforms-btn-md wpforms-btn-orange" name="wpforms-settings-submit">' . $tabs[ $this->view ]['submit'] . '</button>';
469
- echo '</p>';
470
- }
471
 
472
- do_action( 'wpforms_admin_settings_after', $this->view, $fields );
473
 
474
- if ( ! empty( $tabs[ $this->view ]['form'] ) ) {
475
- echo '</form>';
476
- }
 
 
477
 
478
- echo '</div>';
479
 
480
- echo '</div>';
481
  }
482
 
483
  /**
@@ -496,16 +542,20 @@ class WPForms_Settings {
496
  return;
497
  }
498
  ?>
 
499
  <div class="captcha-addon-notice wpforms-clear">
500
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/settings-captcha-addon.png">
501
- <h5><?php _e( 'Want to better protect your contact forms from spam?', 'wpforms' ); ?></h5>
502
  <p>
503
- <?php _e( 'WPForms custom captcha addon allows you to add custom questions captcha or math questions captcha to your WordPress forms. Since we know spam is a huge problem for contact forms, WPForms goes above and beyond to help you protect your forms.', 'wpforms' ); ?>
504
  <br><br>
505
- <a href="<?php echo wpforms_admin_upgrade_link(); ?>" class="wpforms-btn wpforms-btn-md wpforms-btn-orange wpforms-upgrade-modal" target="_blank" rel="noopener noreferrer"><?php _e( 'Click here to Upgrade', 'wpforms' ); ?></a>
 
 
506
  </p>
507
  </div>
508
  <?php
509
  }
510
  }
 
511
  new WPForms_Settings;
1
  <?php
2
+
3
  /**
4
  * Settings class.
5
  *
15
  * The current active tab.
16
  *
17
  * @since 1.3.9
18
+ * @var string
19
  */
20
  public $view;
21
 
31
  }
32
 
33
  /**
34
+ * Determine if the user is viewing the settings page, if so, party on.
35
  *
36
  * @since 1.0.0
37
  */
52
  // Determine the current active settings tab.
53
  $this->view = isset( $_GET['view'] ) ? esc_html( $_GET['view'] ) : 'general';
54
 
55
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
56
+ add_action( 'wpforms_admin_settings_after', array( $this, 'captcha_addon_notice' ) );
57
+ add_action( 'wpforms_admin_page', array( $this, 'output' ) );
58
 
59
  // Hook for addons.
60
  do_action( 'wpforms_settings_init' );
62
  }
63
 
64
  /**
65
+ * Sanitize and save settings.
66
  *
67
  * @since 1.3.9
68
  */
77
  return;
78
  }
79
 
80
+ if ( ! wpforms_current_user_can() ) {
81
  return;
82
  }
83
 
103
  continue;
104
  }
105
 
106
+ $value = isset( $_POST[ $id ] ) ? trim( $_POST[ $id ] ) : false;
107
+ $value_prev = isset( $settings[ $id ] ) ? $settings[ $id ] : false;
108
 
109
  // Custom filter can be provided for sanitizing, otherwise use
110
  // defaults.
140
  // Save settings.
141
  update_option( 'wpforms_settings', $settings );
142
 
143
+ WPForms_Admin_Notice::success( esc_html__( 'Settings were successfully saved.', 'wpforms' ) );
144
  }
145
 
146
  /**
149
  * @since 1.0.0
150
  */
151
  public function enqueues() {
 
 
152
  do_action( 'wpforms_settings_enqueue' );
153
  }
154
 
161
  public function get_tabs() {
162
 
163
  $tabs = array(
164
+ 'general' => array(
165
+ 'name' => esc_html__( 'General', 'wpforms' ),
166
  'form' => true,
167
+ 'submit' => esc_html__( 'Save Settings', 'wpforms' ),
168
  ),
169
+ 'email' => array(
170
+ 'name' => esc_html__( 'Email', 'wpforms' ),
171
  'form' => true,
172
+ 'submit' => esc_html__( 'Save Settings', 'wpforms' ),
173
  ),
174
+ 'recaptcha' => array(
175
+ 'name' => esc_html__( 'reCAPTCHA', 'wpforms' ),
176
  'form' => true,
177
+ 'submit' => esc_html__( 'Save Settings', 'wpforms' ),
178
  ),
179
+ 'validation' => array(
180
+ 'name' => esc_html__( 'Validation', 'wpforms' ),
181
  'form' => true,
182
+ 'submit' => esc_html__( 'Save Settings', 'wpforms' ),
183
  ),
184
  'integrations' => array(
185
+ 'name' => esc_html__( 'Integrations', 'wpforms' ),
186
  'form' => false,
187
  'submit' => false,
188
  ),
189
  );
190
+
191
  return apply_filters( 'wpforms_settings_tabs', $tabs );
192
  }
193
 
201
  $tabs = $this->get_tabs();
202
 
203
  echo '<ul class="wpforms-admin-tabs">';
204
+ foreach ( $tabs as $id => $tab ) {
205
 
206
+ $active = $id === $this->view ? 'active' : '';
207
+ $name = esc_html( $tab['name'] );
208
+ $link = esc_url_raw( add_query_arg( 'view', $id, admin_url( 'admin.php?page=wpforms-settings' ) ) );
209
 
210
+ echo '<li><a href="' . $link . '" class="' . $active . '">' . $name . '</a></li>';
211
+ }
212
  echo '</ul>';
213
  }
214
 
216
  * Return all the default registered settings fields.
217
  *
218
  * @since 1.3.9
219
+ *
220
  * @param string $view
221
+ *
222
  * @return array
223
  */
224
  public function get_registered_settings( $view = '' ) {
225
 
226
+ // reCAPTCHA heading description is long so we define it separately.
227
+ $recaptcha_desc = '<p>' . esc_html__( 'reCAPTCHA is a free anti-spam service from Google which helps to protect your website from spam and abuse while letting real people pass through with ease.', 'wpforms' ) . '</p>';
228
+ $recaptcha_desc .=
229
+ '<p>' .
230
+ sprintf(
231
+ wp_kses(
232
+ /* translators: %1$s - Google reCAPTCHA Intro URL, %2$s - Google Invisible reCAPTCHA Intro URL. */
233
+ __( 'Google\'s original <a href="%1$s" target="_blank" rel="noopener noreferrer">v2 reCAPTCHA</a> prompts users to check a box to prove they\'re human, whereas <a href="%2$s" target="_blank" rel="noopener noreferrer">Invisible reCAPTCHA</a> uses advanced technology to detect real users without requiring any input.', 'wpforms' ),
234
+ array(
235
+ 'a' => array(
236
+ 'href' => array(),
237
+ 'target' => array(),
238
+ 'rel' => array(),
239
+ ),
240
+ )
241
+ ),
242
+ 'https://www.google.com/recaptcha/intro/',
243
+ 'https://www.google.com/recaptcha/intro/invisible.html'
244
+ ) .
245
+ '</p>';
246
+ $recaptcha_desc .= '<p>' . esc_html__( 'Sites already using v2 reCAPTCHA will need to create new site keys before switching to the Invisible reCAPTCHA.', 'wpforms' ) . '</p>';
247
+ $recaptcha_desc .=
248
+ '<p>' .
249
+ sprintf(
250
+ wp_kses(
251
+ /* translators: %s = WPForms.com Setup Captcha URL. */
252
+ __( '<a href="%s" target="_blank" rel="noopener noreferrer">Read our walk through</a> to learn more and for step-by-step directions.', 'wpforms' ),
253
+ array(
254
+ 'a' => array(
255
+ 'href' => array(),
256
+ 'target' => array(),
257
+ 'rel' => array(),
258
+ ),
259
+ )
260
+ ),
261
+ 'https://wpforms.com/docs/setup-captcha-wpforms/'
262
+ ) .
263
+ '</p>';
264
 
265
  $defaults = array(
266
  // General Settings tab.
267
+ 'general' => array(
268
+ 'license-heading' => array(
269
  'id' => 'license-heading',
270
+ 'content' => '<h4>' . esc_html__( 'License', 'wpforms' ) . '</h4><p>' . esc_html__( 'Your license key provides access to updates and addons.', 'wpforms' ) . '</p>',
271
  'type' => 'content',
272
  'no_label' => true,
273
  'class' => array( 'section-heading' ),
274
  ),
275
+ 'license-key' => array(
276
+ 'id' => 'license-key',
277
+ 'name' => esc_html__( 'License Key', 'wpforms' ),
278
+ 'type' => 'license',
279
  ),
280
+ 'general-heading' => array(
281
  'id' => 'general-heading',
282
+ 'content' => '<h4>' . esc_html__( 'General', 'wpforms' ) . '</h4>',
283
  'type' => 'content',
284
  'no_label' => true,
285
  'class' => array( 'section-heading', 'no-desc' ),
286
  ),
287
+ 'disable-css' => array(
288
  'id' => 'disable-css',
289
+ 'name' => esc_html__( 'Include Form Styling', 'wpforms' ),
290
+ 'desc' => esc_html__( 'Determines which CSS files to load for the site.', 'wpforms' ),
291
  'type' => 'select',
292
  'choicesjs' => true,
293
  'default' => 1,
294
  'options' => array(
295
+ 1 => esc_html__( 'Base and form theme styling', 'wpforms' ),
296
+ 2 => esc_html__( 'Base styling only', 'wpforms' ),
297
+ 3 => esc_html__( 'No styling', 'wpforms' ),
298
  ),
299
  ),
300
+ 'global-assets' => array(
301
+ 'id' => 'global-assets',
302
+ 'name' => esc_html__( 'Load Assets Globally', 'wpforms' ),
303
+ 'desc' => esc_html__( 'Check this if you would like to load WPForms assets site-wide. Only check if your site is having compatibility issues or instructed to by support.', 'wpforms' ),
304
+ 'type' => 'checkbox',
305
  ),
306
  'hide-announcements' => array(
307
+ 'id' => 'hide-announcements',
308
+ 'name' => esc_html__( 'Hide Announcements', 'wpforms' ),
309
+ 'desc' => esc_html__( 'Check this if you would like to hide plugin announcements and update details.', 'wpforms' ),
310
+ 'type' => 'checkbox',
311
  ),
312
  ),
313
  // Email settings tab.
314
+ 'email' => array(
315
+ 'email-heading' => array(
316
  'id' => 'email-heading',
317
+ 'content' => '<h4>' . esc_html__( 'Email', 'wpforms' ) . '</h4>',
318
  'type' => 'content',
319
  'no_label' => true,
320
  'class' => array( 'section-heading', 'no-desc' ),
321
  ),
322
+ 'email-template' => array(
323
+ 'id' => 'email-template',
324
+ 'name' => esc_html__( 'Template', 'wpforms' ),
325
+ 'desc' => esc_html__( 'Determines how email notifications will be formatted. HTML Templates are the default.', 'wpforms' ),
326
+ 'type' => 'radio',
327
+ 'default' => 'default',
328
+ 'options' => array(
329
+ 'default' => esc_html__( 'HTML Template', 'wpforms' ),
330
+ 'none' => esc_html__( 'Plain text', 'wpforms' ),
331
  ),
332
  ),
333
+ 'email-header-image' => array(
334
+ 'id' => 'email-header-image',
335
+ 'name' => esc_html__( 'Header Image', 'wpforms' ),
336
+ 'desc' => wp_kses( __( 'Upload or choose a logo to be displayed at the top of email notifications.<br>Recommended size is 300x100 or smaller for best support on all devices.', 'wpforms' ), array( 'br' => array() ) ),
337
+ 'type' => 'image',
338
  ),
339
  'email-background-color' => array(
340
+ 'id' => 'email-background-color',
341
+ 'name' => esc_html__( 'Background Color', 'wpforms' ),
342
+ 'desc' => esc_html__( 'Customize the background color of the HTML email template.', 'wpforms' ),
343
+ 'type' => 'color',
344
+ 'default' => '#e9eaec',
345
  ),
346
+ 'email-carbon-copy' => array(
347
+ 'id' => 'email-carbon-copy',
348
+ 'name' => esc_html__( 'Carbon Copy', 'wpforms' ),
349
+ 'desc' => esc_html__( 'Check this if you would like to enable the ability to CC: email addresses in the form notification settings.', 'wpforms' ),
350
+ 'type' => 'checkbox',
351
  ),
352
  ),
353
  // Recaptcha settings tab.
354
+ 'recaptcha' => array(
355
+ 'recaptcha-heading' => array(
356
  'id' => 'recaptcha-heading',
357
+ 'content' => '<h4>' . esc_html__( 'reCAPTCHA', 'wpforms' ) . '</h4>' . $recaptcha_desc,
358
  'type' => 'content',
359
  'no_label' => true,
360
  'class' => array( 'section-heading' ),
361
  ),
362
+ 'recaptcha-type' => array(
363
+ 'id' => 'recaptcha-type',
364
+ 'name' => esc_html__( 'Type', 'wpforms' ),
365
+ 'type' => 'radio',
366
+ 'default' => 'default',
367
+ 'options' => array(
368
+ 'v2' => esc_html__( 'v2 reCAPTCHA', 'wpforms' ),
369
+ 'invisible' => esc_html__( 'Invisible reCAPTCHA', 'wpforms' ),
370
  ),
371
  ),
372
+ 'recaptcha-site-key' => array(
373
+ 'id' => 'recaptcha-site-key',
374
+ 'name' => esc_html__( 'Site Key', 'wpforms' ),
375
+ 'type' => 'text',
376
  ),
377
  'recaptcha-secret-key' => array(
378
+ 'id' => 'recaptcha-secret-key',
379
+ 'name' => esc_html__( 'Secret Key', 'wpforms' ),
380
+ 'type' => 'text',
381
  ),
382
  ),
383
  // Validation messages settings tab.
384
+ 'validation' => array(
385
+ 'validation-heading' => array(
386
  'id' => 'validation-heading',
387
+ 'content' => '<h4>' . esc_html__( 'Validation Messages', 'wpforms' ) . '</h4><p>' . esc_html__( 'These messages are displayed to the user as they fill out a form in real-time.', 'wpforms' ) . '</p>',
388
  'type' => 'content',
389
  'no_label' => true,
390
  'class' => array( 'section-heading' ),
391
  ),
392
  'validation-required' => array(
393
+ 'id' => 'validation-required',
394
+ 'name' => esc_html__( 'Required', 'wpforms' ),
395
+ 'type' => 'text',
396
+ 'default' => esc_html__( 'This field is required.', 'wpforms' ),
397
  ),
398
+ 'validation-url' => array(
399
+ 'id' => 'validation-url',
400
+ 'name' => esc_html__( 'Website URL', 'wpforms' ),
401
+ 'type' => 'text',
402
+ 'default' => esc_html__( 'Please enter a valid URL.', 'wpforms' ),
403
  ),
404
+ 'validation-email' => array(
405
+ 'id' => 'validation-email',
406
+ 'name' => esc_html__( 'Email', 'wpforms' ),
407
+ 'type' => 'text',
408
+ 'default' => esc_html__( 'Please enter a valid email address.', 'wpforms' ),
409
  ),
410
+ 'validation-number' => array(
411
+ 'id' => 'validation-number',
412
+ 'name' => esc_html__( 'Number', 'wpforms' ),
413
+ 'type' => 'text',
414
+ 'default' => esc_html__( 'Please enter a valid number.', 'wpforms' ),
415
  ),
416
+ 'validation-confirm' => array(
417
+ 'id' => 'validation-confirm',
418
+ 'name' => esc_html__( 'Confirm Value', 'wpforms' ),
419
+ 'type' => 'text',
420
+ 'default' => esc_html__( 'Field values do not match.', 'wpforms' ),
421
  ),
422
  ),
423
  // Provider integrations settings tab.
424
  'integrations' => array(
425
+ 'integrations-heading' => array(
426
  'id' => 'integrations-heading',
427
+ 'content' => '<h4>' . esc_html__( 'Integrations', 'wpforms' ) . '</h4><p>' . esc_html__( 'Manage integrations with popular providers such as Constant Contact, MailChimp, Zapier, and more.', 'wpforms' ) . '</p>',
428
  'type' => 'content',
429
  'no_label' => true,
430
  'class' => array( 'section-heading' ),
431
  ),
432
  'integrations-providers' => array(
433
+ 'id' => 'integrations-providers',
434
+ 'content' => '<h4>' . esc_html__( 'Integrations', 'wpforms' ) . '</h4><p>' . esc_html__( 'Manage integrations with popular providers such as Constant Contact, MailChimp, Zapier, and more.', 'wpforms' ) . '</p>',
435
+ 'type' => 'providers',
436
+ 'wrap' => 'none',
437
  ),
438
  ),
439
  );
446
  * Return array containing markup for all the appropriate settings fields.
447
  *
448
  * @since 1.3.9
449
+ *
450
  * @param string $view
451
+ *
452
  * @return array
453
  */
454
  public function get_settings_fields( $view = '' ) {
473
 
474
  $tabs = $this->get_tabs();
475
  $fields = $this->get_settings_fields( $this->view );
476
+ ?>
477
 
478
+ <div id="wpforms-settings" class="wrap wpforms-admin-wrap">
479
 
480
+ <?php $this->tabs(); ?>
481
 
482
+ <h1 class="wpforms-h1-placeholder"></h1>
483
 
484
+ <?php
485
  if ( wpforms()->pro && class_exists( 'WPForms_License' ) ) {
486
  wpforms()->license->notices( true );
487
  }
488
+ ?>
489
 
490
+ <div class="wpforms-admin-content wpforms-admin-settings">
491
 
492
+ <?php
493
+ // Some tabs rely on AJAX and do not contain a form, such as Integrations.
494
+ if ( ! empty( $tabs[ $this->view ]['form'] ) ) :
495
+ ?>
496
+ <form class="wpforms-admin-settings-form" method="post">
497
+ <input type="hidden" name="action" value="update-settings">
498
+ <input type="hidden" name="view" value="<?php echo esc_attr( $this->view ); ?>">
499
+ <input type="hidden" name="nonce" value="<?php echo wp_create_nonce( 'wpforms-settings-nonce' ); ?>">
500
+ <?php endif; ?>
501
 
502
+ <?php do_action( 'wpforms_admin_settings_before', $this->view, $fields ); ?>
503
 
504
+ <?php
505
+ foreach ( $fields as $field ) {
506
+ echo $field;
507
+ }
508
+ ?>
509
 
510
+ <?php if ( ! empty( $tabs[ $this->view ]['submit'] ) ) : ?>
511
+ <p class="submit">
512
+ <button type="submit" class="wpforms-btn wpforms-btn-md wpforms-btn-orange" name="wpforms-settings-submit"><?php echo $tabs[ $this->view ]['submit']; ?></button>
513
+ </p>
514
+ <?php endif; ?>
515
 
516
+ <?php do_action( 'wpforms_admin_settings_after', $this->view, $fields ); ?>
517
 
518
+ <?php if ( ! empty( $tabs[ $this->view ]['form'] ) ) : ?>
519
+ </form>
520
+ <?php endif; ?>
521
+
522
+ </div>
523
 
524
+ </div>
525
 
526
+ <?php
527
  }
528
 
529
  /**
542
  return;
543
  }
544
  ?>
545
+
546
  <div class="captcha-addon-notice wpforms-clear">
547
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/settings-captcha-addon.png">
548
+ <h5><?php esc_html_e( 'Want to better protect your contact forms from spam?', 'wpforms' ); ?></h5>
549
  <p>
550
+ <?php esc_html_e( 'WPForms custom captcha addon allows you to add custom questions captcha or math questions captcha to your WordPress forms. Since we know spam is a huge problem for contact forms, WPForms goes above and beyond to help you protect your forms.', 'wpforms' ); ?>
551
  <br><br>
552
+ <a href="<?php echo wpforms_admin_upgrade_link(); ?>" class="wpforms-btn wpforms-btn-md wpforms-btn-orange wpforms-upgrade-modal" target="_blank" rel="noopener noreferrer">
553
+ <?php esc_html_e( 'Click here to Upgrade', 'wpforms' ); ?>
554
+ </a>
555
  </p>
556
  </div>
557
  <?php
558
  }
559
  }
560
+
561
  new WPForms_Settings;
includes/admin/class-tools.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Tools admin page class.
4
  *
@@ -83,7 +84,8 @@ class WPForms_Tools {
83
  public function init() {
84
 
85
  // Define the core views for the tools tab.
86
- $this->views = apply_filters( 'wpforms_tools_views',
 
87
  array(
88
  esc_html__( 'Import', 'wpforms' ) => array( 'import', 'importer' ),
89
  esc_html__( 'Export', 'wpforms' ) => array( 'export' ),
@@ -101,7 +103,10 @@ class WPForms_Tools {
101
  $this->view = ! empty( $_GET['view'] ) ? esc_html( $_GET['view'] ) : 'import';
102
 
103
  // If the user tries to load a invalid view fallback to import.
104
- if ( ! in_array( $this->view, call_user_func_array( 'array_merge', $this->views ) ) && ! has_action( 'wpforms_tools_display_tab_' . sanitize_key( $this->view ) ) ) {
 
 
 
105
  $this->view = 'import';
106
  }
107
 
@@ -158,7 +163,8 @@ class WPForms_Tools {
158
  $view = (array) $view;
159
  $class = in_array( $this->view, $view, true ) ? ' class="active"' : '';
160
  echo '<li>';
161
- printf( '<a href="%s"%s>%s</a>',
 
162
  admin_url( 'admin.php?page=wpforms-tools&view=' . sanitize_key( $view[0] ) ),
163
  $class,
164
  esc_html( $label )
@@ -175,7 +181,22 @@ class WPForms_Tools {
175
  if ( isset( $_GET['wpforms_notice'] ) && 'forms-imported' === $_GET['wpforms_notice'] ) {
176
  ?>
177
  <div class="updated notice is-dismissible">
178
- <p><?php printf( __( 'Import was successfully finished. You can go and <a href="%s">check your forms</a>.', 'wpforms' ), admin_url( 'admin.php?page=wpforms-overview' ) ); ?></p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  </div>
180
  <?php
181
  }
@@ -215,30 +236,30 @@ class WPForms_Tools {
215
  ?>
216
 
217
  <div class="wpforms-setting-row tools">
218
- <h3><?php _e( 'WPForms Import', 'wpforms' ); ?></h3>
219
- <p><?php _e( 'Select a WPForms export file.', 'wpforms' ); ?></p>
220
 
221
  <form method="post" enctype="multipart/form-data" action="<?php echo admin_url( 'admin.php?page=wpforms-tools&view=import' ); ?>">
222
  <div class="wpforms-file-upload">
223
- <input type="file" name="file" id="wpforms-tools-form-import" class="inputfile" data-multiple-caption="{count} files selected" accept=".json" />
224
  <label for="wpforms-tools-form-import">
225
- <span class="fld"><span class="placeholder"><?php _e( 'No file chosen', 'wpforms' ); ?></span></span>
226
  <strong class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey">
227
- <i class="fa fa-upload" aria-hidden="true"></i> <?php _e( 'Choose a file&hellip;', 'wpforms' ); ?>
228
  </strong>
229
  </label>
230
  </div>
231
  <br>
232
  <input type="hidden" name="action" value="import_form">
233
- <button type="submit" name="submit-importexport" class="wpforms-btn wpforms-btn-md wpforms-btn-orange"><?php _e( 'Import', 'wpforms' ); ?></button>
234
  <?php wp_nonce_field( 'wpforms_import_nonce', 'wpforms-tools-importexport-nonce' ); ?>
235
  </form>
236
  </div>
237
 
238
  <div class="wpforms-setting-row tools" id="wpforms-importers">
239
- <h3><?php _e( 'Import from Other Form Plugins', 'wpforms' ); ?></h3>
240
- <p><?php _e( 'Not happy with other WordPress contact form plugins?', 'wpforms' ); ?></p>
241
- <p><?php _e( 'WPForms makes it easy for you to switch by allowing you import your third-party forms with a single click.', 'wpforms' ); ?></p>
242
 
243
  <div class="wpforms-importers-wrap">
244
  <?php if ( empty( $this->importers ) ) { ?>
@@ -247,7 +268,7 @@ class WPForms_Tools {
247
  <form method="get" action="<?php echo admin_url( 'admin.php' ); ?>">
248
  <span class="choicesjs-select-wrap">
249
  <select class="choicesjs-select" name="provider" required>
250
- <option value="" placeholder><?php esc_html_e( 'Select previous contact form plugin...', 'wpforms' ); ?></option>
251
  <?php
252
  foreach ( $this->importers as $importer ) {
253
  $status = '';
@@ -342,9 +363,9 @@ class WPForms_Tools {
342
  <p class="process-analyze">
343
  <i class="fa fa-spinner fa-spin" aria-hidden="true"></i>
344
  <?php
345
- /* translators: %1$s - current forms counter; %2$s - total forms counter; %3$s - provider name. */
346
  printf(
347
- __( 'Analyzing %1$s of %2$s forms from %3$s.', 'wpforms' ),
 
348
  '<span class="form-current">1</span>',
349
  '<span class="form-total">0</span>',
350
  sanitize_text_field( $provider['name'] )
@@ -353,7 +374,7 @@ class WPForms_Tools {
353
  </p>
354
  <div class="upgrade">
355
  <h5><?php esc_html_e( 'Heads Up!', 'wpforms' ); ?></h5>
356
- <p><?php esc_html_e( 'One or more of your forms contain fields that are not available in WPForms Lite. To properly impor tthese fields, we recommend upgrading to WPForms Pro.', 'wpforms' ); ?></p>
357
  <p><?php esc_html_e( 'You can continue with the import without upgrading, and we will do our best to match the fields. However, some of them will be omitted due to compatibility issues.', 'wpforms' ); ?></p>
358
  <p>
359
  <a href="<?php echo wpforms_admin_upgrade_link(); ?>" target="_blank" rel="noopener noreferrer" class="wpforms-btn wpforms-btn-md wpforms-btn-orange wpforms-upgrade-modal"><?php esc_html_e( 'Upgrade to WPForms Pro', 'wpforms' ); ?></a>
@@ -369,9 +390,9 @@ class WPForms_Tools {
369
  <p class="process-count">
370
  <i class="fa fa-spinner fa-spin" aria-hidden="true"></i>
371
  <?php
372
- /* translators: %1$s - current forms counter; %2$s - total forms counter; %3$s - provider name. */
373
  printf(
374
- __( 'Importing %1$s of %2$s forms from %3$s.', 'wpforms' ),
 
375
  '<span class="form-current">1</span>',
376
  '<span class="form-total">0</span>',
377
  sanitize_text_field( $provider['name'] )
@@ -381,9 +402,9 @@ class WPForms_Tools {
381
 
382
  <p class="process-completed">
383
  <?php
384
- /* translators: %s - number of imported forms. */
385
  printf(
386
- __( 'Congrats, the import process has finished! We have successfully imported %s forms. You can review the results below.', 'wpforms' ),
 
387
  '<span class="forms-completed"></span>'
388
  );
389
  ?>
@@ -403,6 +424,7 @@ class WPForms_Tools {
403
  public function importer_templates() {
404
 
405
  ?>
 
406
  <script type="text/html" id="tmpl-wpforms-importer-upgrade">
407
  <# _.each( data, function( item, key ) { #>
408
  <ul>
@@ -440,13 +462,13 @@ class WPForms_Tools {
440
  {{ data.name }}
441
  </span>
442
  <span class="actions">
443
- <a href="{{ data.edit }}" target="_blank"><?php _e( 'Edit', 'wpforms' ); ?></a>
444
  <span class="sep">|</span>
445
- <a href="{{ data.preview }}" target="_blank"><?php _e( 'Preview', 'wpforms' ); ?></a>
446
  </span>
447
  </div>
448
  <# if ( ! _.isEmpty( data.upgrade_omit ) ) { #>
449
- <p><?php _e( 'The following fields are available in PRO and were not imported:', 'wpforms' ); ?></p>
450
  <ul>
451
  <# _.each( data.upgrade_omit, function( val, key ) { #>
452
  <li>{{ val }}</li>
@@ -454,7 +476,7 @@ class WPForms_Tools {
454
  </ul>
455
  <# } #>
456
  <# if ( ! _.isEmpty( data.upgrade_plain ) ) { #>
457
- <p><?php _e( 'The following fields are available in PRO and were imported as text fields:', 'wpforms' ); ?></p>
458
  <ul>
459
  <# _.each( data.upgrade_plain, function( val, key ) { #>
460
  <li>{{ val }}</li>
@@ -462,7 +484,7 @@ class WPForms_Tools {
462
  </ul>
463
  <# } #>
464
  <# if ( ! _.isEmpty( data.unsupported ) ) { #>
465
- <p><?php _e( 'The following fields are not supported and were not imported:', 'wpforms' ); ?></p>
466
  <ul>
467
  <# _.each( data.unsupported, function( val, key ) { #>
468
  <li>{{ val }}</li>
@@ -471,9 +493,9 @@ class WPForms_Tools {
471
  <# } #>
472
  <# if ( ! _.isEmpty( data.upgrade_plain ) || ! _.isEmpty( data.upgrade_omit ) ) { #>
473
  <p>
474
- <?php _e( 'Upgrade to the PRO plan to import these fields.' ); ?><br><br>
475
  <a href="<?php echo wpforms_admin_upgrade_link(); ?>" class="wpforms-btn wpforms-btn-orange wpforms-btn-md wpforms-upgrade-modal" target="_blank" rel="noopener noreferrer">
476
- <?php _e( 'Upgrade Now', 'wpforms' ); ?>
477
  </a>
478
  </p>
479
  <# } #>
@@ -490,41 +512,57 @@ class WPForms_Tools {
490
  public function export_tab() {
491
 
492
  ?>
 
493
  <div class="wpforms-setting-row tools">
494
 
495
- <h3 id="form-export"><?php _e( 'Form Export', 'wpforms' ); ?></h3>
496
 
497
- <p><?php _e( 'Form exports files can be used to create a backup of your forms or to import forms into another site.' ,'wpforms' ); ?></p>
498
 
499
  <form method="post" action="<?php echo admin_url( 'admin.php?page=wpforms-tools&view=export' ); ?>">
500
  <?php
501
  if ( ! empty( $this->forms ) ) {
502
  echo '<span class="choicesjs-select-wrap">';
503
- echo '<select id="wpforms-tools-form-export" class="choicesjs-select" name="forms[]" multiple data-placeholder="' . __( 'Select form(s)', 'wpforms' ) . '">';
504
  foreach ( $this->forms as $form ) {
505
  printf( '<option value="%d">%s</option>', $form->ID, esc_html( $form->post_title ) );
506
  }
507
  echo '</select>';
508
  echo '</span>';
509
  } else {
510
- echo '<p>' . __( 'You need to create a form before you can use form export.', 'wpforms' ) . '</p>';
511
  }
512
  ?>
513
  <br>
514
  <input type="hidden" name="action" value="export_form">
515
  <?php wp_nonce_field( 'wpforms_import_nonce', 'wpforms-tools-importexport-nonce' ); ?>
516
- <button type="submit" name="submit-importexport" class="wpforms-btn wpforms-btn-md wpforms-btn-orange"><?php _e( 'Export', 'wpforms' ); ?></button>
517
  </form>
518
  </div>
519
 
520
  <div class="wpforms-setting-row tools">
521
 
522
- <h3 id="template-export"><?php _e( 'Form Template Export', 'wpforms' ); ?></h3>
523
 
524
  <?php
525
  if ( $this->template ) {
526
- echo '<p>' . __( 'The following code can be used to register your custom form template. Copy and paste the following code to your theme\'s functions.php file or include it within an external file.', 'wpforms' ) . '<p>';
527
- echo '<p>' . sprintf( __( 'For more information <a href="%s" target="blank" rel="noopener noreferrer">see our documentation</a>.', 'wpforms' ), 'https://wpforms.com/docs/how-to-create-a-custom-form-template/' ) . '<p>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
528
  echo '<textarea class="info-area" readonly>' . esc_textarea( $this->template ) . '</textarea><br>';
529
  }
530
  ?>
@@ -542,15 +580,17 @@ class WPForms_Tools {
542
  echo '</select>';
543
  echo '</span>';
544
  } else {
545
- echo '<p>' . __( 'You need to create a form before you can generate a template.', 'wpforms' ) . '</p>';
546
  }
547
  ?>
548
  <br>
549
  <input type="hidden" name="action" value="export_template">
550
  <?php wp_nonce_field( 'wpforms_import_nonce', 'wpforms-tools-importexport-nonce' ); ?>
551
- <button type="submit" name="submit-importexport" class="wpforms-btn wpforms-btn-md wpforms-btn-orange"><?php _e( 'Export Template', 'wpforms' ); ?></button>
552
  </form>
 
553
  </div>
 
554
  <?php
555
  }
556
 
@@ -562,10 +602,12 @@ class WPForms_Tools {
562
  public function system_info_tab() {
563
 
564
  ?>
 
565
  <div class="wpforms-setting-row tools">
566
- <h3 id="form-export"><?php _e( 'System Information', 'wpforms' ); ?></h3>
567
  <textarea readonly="readonly" class="info-area"><?php echo $this->get_system_info(); ?></textarea>
568
  </div>
 
569
  <?php
570
  }
571
 
@@ -588,7 +630,7 @@ class WPForms_Tools {
588
  // Check for valid nonce and permission.
589
  if (
590
  ! wp_verify_nonce( $_POST['wpforms-tools-importexport-nonce'], 'wpforms_import_nonce' ) ||
591
- ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) )
592
  ) {
593
  return;
594
  }
@@ -630,8 +672,8 @@ class WPForms_Tools {
630
 
631
  if ( 'json' !== $ext ) {
632
  wp_die(
633
- __( 'Please upload a valid .json form export file.', 'wpforms' ),
634
- __( 'Error', 'wpforms' ),
635
  array(
636
  'response' => 400,
637
  )
@@ -654,11 +696,12 @@ class WPForms_Tools {
654
  ) );
655
  if ( $new_id ) {
656
  $form['id'] = $new_id;
657
- $new = array(
658
- 'ID' => $new_id,
659
- 'post_content' => wpforms_encode( $form ),
 
 
660
  );
661
- wp_update_post( $new );
662
  }
663
  }
664
  wp_safe_redirect( admin_url( 'admin.php?page=wpforms-tools&view=importexport&wpforms_notice=forms-imported' ) );
@@ -669,10 +712,9 @@ class WPForms_Tools {
669
  // Export form template.
670
  if ( 'export_template' === $_POST['action'] && ! empty( $_POST['form'] ) ) {
671
 
672
- $args = array(
673
  'content_only' => true,
674
- );
675
- $form_data = wpforms()->form->get( absint( $_POST['form'] ), $args );
676
 
677
  if ( ! $form_data ) {
678
  return;
@@ -681,11 +723,11 @@ class WPForms_Tools {
681
  // Define basic data.
682
  $name = sanitize_text_field( $form_data['settings']['form_title'] );
683
  $desc = sanitize_text_field( $form_data['settings']['form_desc'] );
684
- $slug = sanitize_key( str_replace( ' ', '_' , $form_data['settings']['form_title'] ) );
685
  $class = 'WPForms_Template_' . $slug;
686
 
687
  // Format template field and settings data.
688
- $data = $form_data;
689
  $data['meta']['template'] = $slug;
690
  $data['fields'] = wpforms_array_remove_empty_strings( $data['fields'] );
691
  $data['settings'] = wpforms_array_remove_empty_strings( $data['settings'] );
@@ -750,18 +792,18 @@ EOT;
750
  $theme_data = wp_get_theme();
751
  $theme = $theme_data->Name . ' ' . $theme_data->Version;
752
 
753
- $return = '### Begin System Info ###' . "\n\n";
754
 
755
  // WPForms info.
756
  $activated = get_option( 'wpforms_activated', array() );
757
- $return .= '-- WPForms Info' . "\n\n";
758
  if ( ! empty( $activated['pro'] ) ) {
759
  $date = $activated['pro'] + ( get_option( 'gmt_offset' ) * 3600 );
760
- $return .= 'Pro: ' . date_i18n( __( 'M j, Y @ g:ia' ), $date ) . "\n";
761
  }
762
  if ( ! empty( $activated['lite'] ) ) {
763
  $date = $activated['lite'] + ( get_option( 'gmt_offset' ) * 3600 );
764
- $return .= 'Lite: ' . date_i18n( __( 'M j, Y @ g:ia' ), $date ) . "\n";
765
  }
766
 
767
  // Now the basics...
@@ -777,10 +819,11 @@ EOT;
777
  $return .= 'Permalink Structure: ' . ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ) . "\n";
778
  $return .= 'Active Theme: ' . $theme . "\n";
779
  $return .= 'Show On Front: ' . get_option( 'show_on_front' ) . "\n";
780
- // Only show page specs if frontpage is set to 'page'.
781
  if ( get_option( 'show_on_front' ) === 'page' ) {
782
  $front_page_id = get_option( 'page_on_front' );
783
- $blog_page_id = get_option( 'page_for_posts' );
 
784
  $return .= 'Page On Front: ' . ( 0 != $front_page_id ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset' ) . "\n";
785
  $return .= 'Page For Posts: ' . ( 0 != $blog_page_id ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ) . "\n";
786
  }
@@ -796,7 +839,9 @@ EOT;
796
  $return .= 'WP_CONTENT_DIR: ' . ( defined( 'WP_CONTENT_DIR' ) ? WP_CONTENT_DIR ? WP_CONTENT_DIR : 'Disabled' : 'Not set' ) . "\n";
797
  $return .= 'WP_CONTENT_URL: ' . ( defined( 'WP_CONTENT_URL' ) ? WP_CONTENT_URL ? WP_CONTENT_URL : 'Disabled' : 'Not set' ) . "\n";
798
  $return .= 'UPLOADS: ' . ( defined( 'UPLOADS' ) ? UPLOADS ? UPLOADS : 'Disabled' : 'Not set' ) . "\n";
 
799
  $uploads_dir = wp_upload_dir();
 
800
  $return .= 'wp_uploads_dir() path: ' . $uploads_dir['path'] . "\n";
801
  $return .= 'wp_uploads_dir() url: ' . $uploads_dir['url'] . "\n";
802
  $return .= 'wp_uploads_dir() basedir: ' . $uploads_dir['basedir'] . "\n";
@@ -819,14 +864,14 @@ EOT;
819
  // WordPress active plugins.
820
  $return .= "\n" . '-- WordPress Active Plugins' . "\n\n";
821
 
822
- $plugins = get_plugins();
823
  $active_plugins = get_option( 'active_plugins', array() );
824
 
825
  foreach ( $plugins as $plugin_path => $plugin ) {
826
  if ( ! in_array( $plugin_path, $active_plugins, true ) ) {
827
  continue;
828
  }
829
- $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : '';
830
  $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
831
  }
832
 
@@ -837,7 +882,7 @@ EOT;
837
  if ( in_array( $plugin_path, $active_plugins, true ) ) {
838
  continue;
839
  }
840
- $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : '';
841
  $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
842
  }
843
 
@@ -845,7 +890,7 @@ EOT;
845
  // WordPress Multisite active plugins.
846
  $return .= "\n" . '-- Network Active Plugins' . "\n\n";
847
 
848
- $plugins = wp_get_active_network_plugins();
849
  $active_plugins = get_site_option( 'active_sitewide_plugins', array() );
850
 
851
  foreach ( $plugins as $plugin_path ) {
@@ -853,7 +898,7 @@ EOT;
853
  if ( ! array_key_exists( $plugin_base, $active_plugins ) ) {
854
  continue;
855
  }
856
- $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : '';
857
  $plugin = get_plugin_data( $plugin_path );
858
  $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
859
  }
@@ -882,7 +927,7 @@ EOT;
882
  $return .= 'SOAP Client: ' . ( class_exists( 'SoapClient' ) ? 'Installed' : 'Not Installed' ) . "\n";
883
  $return .= 'Suhosin: ' . ( extension_loaded( 'suhosin' ) ? 'Installed' : 'Not Installed' ) . "\n";
884
 
885
- // Session stuff
886
  $return .= "\n" . '-- Session Configuration' . "\n\n";
887
  $return .= 'Session: ' . ( isset( $_SESSION ) ? 'Enabled' : 'Disabled' ) . "\n";
888
 
1
  <?php
2
+
3
  /**
4
  * Tools admin page class.
5
  *
84
  public function init() {
85
 
86
  // Define the core views for the tools tab.
87
+ $this->views = apply_filters(
88
+ 'wpforms_tools_views',
89
  array(
90
  esc_html__( 'Import', 'wpforms' ) => array( 'import', 'importer' ),
91
  esc_html__( 'Export', 'wpforms' ) => array( 'export' ),
103
  $this->view = ! empty( $_GET['view'] ) ? esc_html( $_GET['view'] ) : 'import';
104
 
105
  // If the user tries to load a invalid view fallback to import.
106
+ if (
107
+ ! in_array( $this->view, call_user_func_array( 'array_merge', $this->views ), true ) &&
108
+ ! has_action( 'wpforms_tools_display_tab_' . sanitize_key( $this->view ) )
109
+ ) {
110
  $this->view = 'import';
111
  }
112
 
163
  $view = (array) $view;
164
  $class = in_array( $this->view, $view, true ) ? ' class="active"' : '';
165
  echo '<li>';
166
+ printf(
167
+ '<a href="%s"%s>%s</a>',
168
  admin_url( 'admin.php?page=wpforms-tools&view=' . sanitize_key( $view[0] ) ),
169
  $class,
170
  esc_html( $label )
181
  if ( isset( $_GET['wpforms_notice'] ) && 'forms-imported' === $_GET['wpforms_notice'] ) {
182
  ?>
183
  <div class="updated notice is-dismissible">
184
+ <p>
185
+ <?php
186
+ printf(
187
+ wp_kses(
188
+ /* translators: %s - Forms list page URL. */
189
+ __( 'Import was successfully finished. You can go and <a href="%s">check your forms</a>.', 'wpforms' ),
190
+ array(
191
+ 'a' => array(
192
+ 'href' => array(),
193
+ ),
194
+ )
195
+ ),
196
+ admin_url( 'admin.php?page=wpforms-overview' )
197
+ );
198
+ ?>
199
+ </p>
200
  </div>
201
  <?php
202
  }
236
  ?>
237
 
238
  <div class="wpforms-setting-row tools">
239
+ <h3><?php esc_html_e( 'WPForms Import', 'wpforms' ); ?></h3>
240
+ <p><?php esc_html_e( 'Select a WPForms export file.', 'wpforms' ); ?></p>
241
 
242
  <form method="post" enctype="multipart/form-data" action="<?php echo admin_url( 'admin.php?page=wpforms-tools&view=import' ); ?>">
243
  <div class="wpforms-file-upload">
244
+ <input type="file" name="file" id="wpforms-tools-form-import" class="inputfile" data-multiple-caption="<?php esc_attr_e( '{count} files selected', 'wpforms' ); ?>" accept=".json" />
245
  <label for="wpforms-tools-form-import">
246
+ <span class="fld"><span class="placeholder"><?php esc_html_e( 'No file chosen', 'wpforms' ); ?></span></span>
247
  <strong class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey">
248
+ <i class="fa fa-upload" aria-hidden="true"></i> <?php esc_html_e( 'Choose a file&hellip;', 'wpforms' ); ?>
249
  </strong>
250
  </label>
251
  </div>
252
  <br>
253
  <input type="hidden" name="action" value="import_form">
254
+ <button type="submit" name="submit-importexport" class="wpforms-btn wpforms-btn-md wpforms-btn-orange"><?php esc_html_e( 'Import', 'wpforms' ); ?></button>
255
  <?php wp_nonce_field( 'wpforms_import_nonce', 'wpforms-tools-importexport-nonce' ); ?>
256
  </form>
257
  </div>
258
 
259
  <div class="wpforms-setting-row tools" id="wpforms-importers">
260
+ <h3><?php esc_html_e( 'Import from Other Form Plugins', 'wpforms' ); ?></h3>
261
+ <p><?php esc_html_e( 'Not happy with other WordPress contact form plugins?', 'wpforms' ); ?></p>
262
+ <p><?php esc_html_e( 'WPForms makes it easy for you to switch by allowing you import your third-party forms with a single click.', 'wpforms' ); ?></p>
263
 
264
  <div class="wpforms-importers-wrap">
265
  <?php if ( empty( $this->importers ) ) { ?>
268
  <form method="get" action="<?php echo admin_url( 'admin.php' ); ?>">
269
  <span class="choicesjs-select-wrap">
270
  <select class="choicesjs-select" name="provider" required>
271
+ <option value=""><?php esc_html_e( 'Select previous contact form plugin...', 'wpforms' ); ?></option>
272
  <?php
273
  foreach ( $this->importers as $importer ) {
274
  $status = '';
363
  <p class="process-analyze">
364
  <i class="fa fa-spinner fa-spin" aria-hidden="true"></i>
365
  <?php
 
366
  printf(
367
+ /* translators: %1$s - current forms counter; %2$s - total forms counter; %3$s - provider name. */
368
+ esc_html__( 'Analyzing %1$s of %2$s forms from %3$s.', 'wpforms' ),
369
  '<span class="form-current">1</span>',
370
  '<span class="form-total">0</span>',
371
  sanitize_text_field( $provider['name'] )
374
  </p>
375
  <div class="upgrade">
376
  <h5><?php esc_html_e( 'Heads Up!', 'wpforms' ); ?></h5>
377
+ <p><?php esc_html_e( 'One or more of your forms contain fields that are not available in WPForms Lite. To properly import these fields, we recommend upgrading to WPForms Pro.', 'wpforms' ); ?></p>
378
  <p><?php esc_html_e( 'You can continue with the import without upgrading, and we will do our best to match the fields. However, some of them will be omitted due to compatibility issues.', 'wpforms' ); ?></p>
379
  <p>
380
  <a href="<?php echo wpforms_admin_upgrade_link(); ?>" target="_blank" rel="noopener noreferrer" class="wpforms-btn wpforms-btn-md wpforms-btn-orange wpforms-upgrade-modal"><?php esc_html_e( 'Upgrade to WPForms Pro', 'wpforms' ); ?></a>
390
  <p class="process-count">
391
  <i class="fa fa-spinner fa-spin" aria-hidden="true"></i>
392
  <?php
 
393
  printf(
394
+ /* translators: %1$s - current forms counter; %2$s - total forms counter; %3$s - provider name. */
395
+ esc_html__( 'Importing %1$s of %2$s forms from %3$s.', 'wpforms' ),
396
  '<span class="form-current">1</span>',
397
  '<span class="form-total">0</span>',
398
  sanitize_text_field( $provider['name'] )
402
 
403
  <p class="process-completed">
404
  <?php
 
405
  printf(
406
+ /* translators: %s - number of imported forms. */
407
+ esc_html__( 'Congrats, the import process has finished! We have successfully imported %s forms. You can review the results below.', 'wpforms' ),
408
  '<span class="forms-completed"></span>'
409
  );
410
  ?>
424
  public function importer_templates() {
425
 
426
  ?>
427
+
428
  <script type="text/html" id="tmpl-wpforms-importer-upgrade">
429
  <# _.each( data, function( item, key ) { #>
430
  <ul>
462
  {{ data.name }}
463
  </span>
464
  <span class="actions">
465
+ <a href="{{ data.edit }}" target="_blank"><?php esc_html_e( 'Edit', 'wpforms' ); ?></a>
466
  <span class="sep">|</span>
467
+ <a href="{{ data.preview }}" target="_blank"><?php esc_html_e( 'Preview', 'wpforms' ); ?></a>
468
  </span>
469
  </div>
470
  <# if ( ! _.isEmpty( data.upgrade_omit ) ) { #>
471
+ <p><?php esc_html_e( 'The following fields are available in PRO and were not imported:', 'wpforms' ); ?></p>
472
  <ul>
473
  <# _.each( data.upgrade_omit, function( val, key ) { #>
474
  <li>{{ val }}</li>
476
  </ul>
477
  <# } #>
478
  <# if ( ! _.isEmpty( data.upgrade_plain ) ) { #>
479
+ <p><?php esc_html_e( 'The following fields are available in PRO and were imported as text fields:', 'wpforms' ); ?></p>
480
  <ul>
481
  <# _.each( data.upgrade_plain, function( val, key ) { #>
482
  <li>{{ val }}</li>
484
  </ul>
485
  <# } #>
486
  <# if ( ! _.isEmpty( data.unsupported ) ) { #>
487
+ <p><?php esc_html_e( 'The following fields are not supported and were not imported:', 'wpforms' ); ?></p>
488
  <ul>
489
  <# _.each( data.unsupported, function( val, key ) { #>
490
  <li>{{ val }}</li>
493
  <# } #>
494
  <# if ( ! _.isEmpty( data.upgrade_plain ) || ! _.isEmpty( data.upgrade_omit ) ) { #>
495
  <p>
496
+ <?php esc_html_e( 'Upgrade to the PRO plan to import these fields.' ); ?><br><br>
497
  <a href="<?php echo wpforms_admin_upgrade_link(); ?>" class="wpforms-btn wpforms-btn-orange wpforms-btn-md wpforms-upgrade-modal" target="_blank" rel="noopener noreferrer">
498
+ <?php esc_html_e( 'Upgrade Now', 'wpforms' ); ?>
499
  </a>
500
  </p>
501
  <# } #>
512
  public function export_tab() {
513
 
514
  ?>
515
+
516
  <div class="wpforms-setting-row tools">
517
 
518
+ <h3 id="form-export"><?php esc_html_e( 'Form Export', 'wpforms' ); ?></h3>
519
 
520
+ <p><?php esc_html_e( 'Form exports files can be used to create a backup of your forms or to import forms into another site.', 'wpforms' ); ?></p>
521
 
522
  <form method="post" action="<?php echo admin_url( 'admin.php?page=wpforms-tools&view=export' ); ?>">
523
  <?php
524
  if ( ! empty( $this->forms ) ) {
525
  echo '<span class="choicesjs-select-wrap">';
526
+ echo '<select id="wpforms-tools-form-export" class="choicesjs-select" name="forms[]" multiple data-placeholder="' . esc_attr__( 'Select form(s)', 'wpforms' ) . '">';
527
  foreach ( $this->forms as $form ) {
528
  printf( '<option value="%d">%s</option>', $form->ID, esc_html( $form->post_title ) );
529
  }
530
  echo '</select>';
531
  echo '</span>';
532
  } else {
533
+ echo '<p>' . esc_html__( 'You need to create a form before you can use form export.', 'wpforms' ) . '</p>';
534
  }
535
  ?>
536
  <br>
537
  <input type="hidden" name="action" value="export_form">
538
  <?php wp_nonce_field( 'wpforms_import_nonce', 'wpforms-tools-importexport-nonce' ); ?>
539
+ <button type="submit" name="submit-importexport" class="wpforms-btn wpforms-btn-md wpforms-btn-orange"><?php esc_html_e( 'Export', 'wpforms' ); ?></button>
540
  </form>
541
  </div>
542
 
543
  <div class="wpforms-setting-row tools">
544
 
545
+ <h3 id="template-export"><?php esc_html_e( 'Form Template Export', 'wpforms' ); ?></h3>
546
 
547
  <?php
548
  if ( $this->template ) {
549
+ echo '<p>' . esc_html__( 'The following code can be used to register your custom form template. Copy and paste the following code to your theme\'s functions.php file or include it within an external file.', 'wpforms' ) . '<p>';
550
+ echo '<p>' .
551
+ sprintf(
552
+ wp_kses(
553
+ /* translators: %s - WPForms.com docs URL. */
554
+ __( 'For more information <a href="%s" target="_blank" rel="noopener noreferrer">see our documentation</a>.', 'wpforms' ),
555
+ array(
556
+ 'a' => array(
557
+ 'href' => array(),
558
+ 'target' => array(),
559
+ 'rel' => array(),
560
+ ),
561
+ )
562
+ ),
563
+ 'https://wpforms.com/docs/how-to-create-a-custom-form-template/'
564
+ ) .
565
+ '<p>';
566
  echo '<textarea class="info-area" readonly>' . esc_textarea( $this->template ) . '</textarea><br>';
567
  }
568
  ?>
580
  echo '</select>';
581
  echo '</span>';
582
  } else {
583
+ echo '<p>' . esc_html__( 'You need to create a form before you can generate a template.', 'wpforms' ) . '</p>';
584
  }
585
  ?>
586
  <br>
587
  <input type="hidden" name="action" value="export_template">
588
  <?php wp_nonce_field( 'wpforms_import_nonce', 'wpforms-tools-importexport-nonce' ); ?>
589
+ <button type="submit" name="submit-importexport" class="wpforms-btn wpforms-btn-md wpforms-btn-orange"><?php esc_html_e( 'Export Template', 'wpforms' ); ?></button>
590
  </form>
591
+
592
  </div>
593
+
594
  <?php
595
  }
596
 
602
  public function system_info_tab() {
603
 
604
  ?>
605
+
606
  <div class="wpforms-setting-row tools">
607
+ <h3 id="form-export"><?php esc_html_e( 'System Information', 'wpforms' ); ?></h3>
608
  <textarea readonly="readonly" class="info-area"><?php echo $this->get_system_info(); ?></textarea>
609
  </div>
610
+
611
  <?php
612
  }
613
 
630
  // Check for valid nonce and permission.
631
  if (
632
  ! wp_verify_nonce( $_POST['wpforms-tools-importexport-nonce'], 'wpforms_import_nonce' ) ||
633
+ ! wpforms_current_user_can()
634
  ) {
635
  return;
636
  }
672
 
673
  if ( 'json' !== $ext ) {
674
  wp_die(
675
+ esc_html__( 'Please upload a valid .json form export file.', 'wpforms' ),
676
+ esc_html__( 'Error', 'wpforms' ),
677
  array(
678
  'response' => 400,
679
  )
696
  ) );
697
  if ( $new_id ) {
698
  $form['id'] = $new_id;
699
+ wp_update_post(
700
+ array(
701
+ 'ID' => $new_id,
702
+ 'post_content' => wpforms_encode( $form ),
703
+ )
704
  );
 
705
  }
706
  }
707
  wp_safe_redirect( admin_url( 'admin.php?page=wpforms-tools&view=importexport&wpforms_notice=forms-imported' ) );
712
  // Export form template.
713
  if ( 'export_template' === $_POST['action'] && ! empty( $_POST['form'] ) ) {
714
 
715
+ $form_data = wpforms()->form->get( absint( $_POST['form'] ), array(
716
  'content_only' => true,
717
+ ) );
 
718
 
719
  if ( ! $form_data ) {
720
  return;
723
  // Define basic data.
724
  $name = sanitize_text_field( $form_data['settings']['form_title'] );
725
  $desc = sanitize_text_field( $form_data['settings']['form_desc'] );
726
+ $slug = sanitize_key( str_replace( ' ', '_', $form_data['settings']['form_title'] ) );
727
  $class = 'WPForms_Template_' . $slug;
728
 
729
  // Format template field and settings data.
730
+ $data = $form_data;
731
  $data['meta']['template'] = $slug;
732
  $data['fields'] = wpforms_array_remove_empty_strings( $data['fields'] );
733
  $data['settings'] = wpforms_array_remove_empty_strings( $data['settings'] );
792
  $theme_data = wp_get_theme();
793
  $theme = $theme_data->Name . ' ' . $theme_data->Version;
794
 
795
+ $return = '### Begin System Info ###' . "\n\n";
796
 
797
  // WPForms info.
798
  $activated = get_option( 'wpforms_activated', array() );
799
+ $return .= '-- WPForms Info' . "\n\n";
800
  if ( ! empty( $activated['pro'] ) ) {
801
  $date = $activated['pro'] + ( get_option( 'gmt_offset' ) * 3600 );
802
+ $return .= 'Pro: ' . date_i18n( esc_html__( 'M j, Y @ g:ia' ), $date ) . "\n";
803
  }
804
  if ( ! empty( $activated['lite'] ) ) {
805
  $date = $activated['lite'] + ( get_option( 'gmt_offset' ) * 3600 );
806
+ $return .= 'Lite: ' . date_i18n( esc_html__( 'M j, Y @ g:ia' ), $date ) . "\n";
807
  }
808
 
809
  // Now the basics...
819
  $return .= 'Permalink Structure: ' . ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ) . "\n";
820
  $return .= 'Active Theme: ' . $theme . "\n";
821
  $return .= 'Show On Front: ' . get_option( 'show_on_front' ) . "\n";
822
+ // Only show page specs if front page is set to 'page'.
823
  if ( get_option( 'show_on_front' ) === 'page' ) {
824
  $front_page_id = get_option( 'page_on_front' );
825
+ $blog_page_id = get_option( 'page_for_posts' );
826
+
827
  $return .= 'Page On Front: ' . ( 0 != $front_page_id ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset' ) . "\n";
828
  $return .= 'Page For Posts: ' . ( 0 != $blog_page_id ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ) . "\n";
829
  }
839
  $return .= 'WP_CONTENT_DIR: ' . ( defined( 'WP_CONTENT_DIR' ) ? WP_CONTENT_DIR ? WP_CONTENT_DIR : 'Disabled' : 'Not set' ) . "\n";
840
  $return .= 'WP_CONTENT_URL: ' . ( defined( 'WP_CONTENT_URL' ) ? WP_CONTENT_URL ? WP_CONTENT_URL : 'Disabled' : 'Not set' ) . "\n";
841
  $return .= 'UPLOADS: ' . ( defined( 'UPLOADS' ) ? UPLOADS ? UPLOADS : 'Disabled' : 'Not set' ) . "\n";
842
+
843
  $uploads_dir = wp_upload_dir();
844
+
845
  $return .= 'wp_uploads_dir() path: ' . $uploads_dir['path'] . "\n";
846
  $return .= 'wp_uploads_dir() url: ' . $uploads_dir['url'] . "\n";
847
  $return .= 'wp_uploads_dir() basedir: ' . $uploads_dir['basedir'] . "\n";
864
  // WordPress active plugins.
865
  $return .= "\n" . '-- WordPress Active Plugins' . "\n\n";
866
 
867
+ $plugins = get_plugins();
868
  $active_plugins = get_option( 'active_plugins', array() );
869
 
870
  foreach ( $plugins as $plugin_path => $plugin ) {
871
  if ( ! in_array( $plugin_path, $active_plugins, true ) ) {
872
  continue;
873
  }
874
+ $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : '';
875
  $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
876
  }
877
 
882
  if ( in_array( $plugin_path, $active_plugins, true ) ) {
883
  continue;
884
  }
885
+ $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : '';
886
  $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
887
  }
888
 
890
  // WordPress Multisite active plugins.
891
  $return .= "\n" . '-- Network Active Plugins' . "\n\n";
892
 
893
+ $plugins = wp_get_active_network_plugins();
894
  $active_plugins = get_site_option( 'active_sitewide_plugins', array() );
895
 
896
  foreach ( $plugins as $plugin_path ) {
898
  if ( ! array_key_exists( $plugin_base, $active_plugins ) ) {
899
  continue;
900
  }
901
+ $update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[ $plugin_path ]->update->new_version . ')' : '';
902
  $plugin = get_plugin_data( $plugin_path );
903
  $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
904
  }
927
  $return .= 'SOAP Client: ' . ( class_exists( 'SoapClient' ) ? 'Installed' : 'Not Installed' ) . "\n";
928
  $return .= 'Suhosin: ' . ( extension_loaded( 'suhosin' ) ? 'Installed' : 'Not Installed' ) . "\n";
929
 
930
+ // Session stuff.
931
  $return .= "\n" . '-- Session Configuration' . "\n\n";
932
  $return .= 'Session: ' . ( isset( $_SESSION ) ? 'Enabled' : 'Disabled' ) . "\n";
933
 
includes/admin/class-welcome.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Welcome page class.
4
  *
@@ -19,9 +20,9 @@ class WPForms_Welcome {
19
  */
20
  public function __construct() {
21
 
22
- add_action( 'admin_menu', array( $this, 'register' ) );
23
- add_action( 'admin_head', array( $this, 'hide_menu' ) );
24
- add_action( 'admin_init', array( $this, 'redirect' ), 9999 );
25
  }
26
 
27
  /**
@@ -36,8 +37,8 @@ class WPForms_Welcome {
36
 
37
  // Getting started - shows after installation.
38
  add_dashboard_page(
39
- __( 'Welcome to WPForms', 'wpforms' ),
40
- __( 'Welcome to WPForms', 'wpforms' ),
41
  apply_filters( 'wpforms_welcome_cap', 'manage_options' ),
42
  'wpforms-getting-started',
43
  array( $this, 'output' )
@@ -52,14 +53,13 @@ class WPForms_Welcome {
52
  * @since 1.0.0
53
  */
54
  public function hide_menu() {
55
-
56
  remove_submenu_page( 'index.php', 'wpforms-getting-started' );
57
  }
58
 
59
  /**
60
  * Welcome screen redirect.
61
  *
62
- * This function checks if a new install or update has just occured. If so,
63
  * then we redirect the user to the appropriate page.
64
  *
65
  * @since 1.0.0
@@ -103,6 +103,7 @@ class WPForms_Welcome {
103
 
104
  $class = wpforms()->pro ? 'pro' : 'lite';
105
  ?>
 
106
  <div id="wpforms-welcome" class="<?php echo $class; ?>">
107
 
108
  <div class="container">
@@ -110,12 +111,12 @@ class WPForms_Welcome {
110
  <div class="intro">
111
 
112
  <div class="sullie">
113
- <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/sullie.png" alt="<?php esc_attr_e( 'Sullie the WPForms mascot' , 'wpforms' ); ?>">
114
  </div>
115
 
116
  <div class="block">
117
- <h1><?php _e( 'Welcome to WPForms', 'wpforms' ); ?></h1>
118
- <h6><?php _e( 'Thank you for choosing WPForms - the most powerful drag & drop WordPress form builder in the market.', 'wpforms' ); ?></h6>
119
  </div>
120
 
121
  <a href="#" class="play-video" title="<?php esc_attr_e( 'Watch how to create your first form', 'wpforms' ); ?>">
@@ -124,14 +125,19 @@ class WPForms_Welcome {
124
 
125
  <div class="block">
126
 
127
- <h6><?php _e( 'WPForms makes it easy to create forms in WordPress. You can watch the video tutorial or read our guide on how create your first form.', 'wpforms' ); ?></h6>
128
 
129
  <div class="button-wrap wpforms-clear">
130
  <div class="left">
131
- <a href="<?php echo admin_url( 'admin.php?page=wpforms-builder' ); ?>" class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-orange"><?php _e( 'Create Your First Form', 'wpforms' ); ?></a>
 
 
132
  </div>
133
  <div class="right">
134
- <a href="https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&amp;utm_medium=link&amp;utm_campaign=liteplugin" class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-grey" target="_blank" rel="noopener noreferrer"><?php _e( 'Read the Full Guide', 'wpforms' ); ?></a>
 
 
 
135
  </div>
136
  </div>
137
 
@@ -143,75 +149,78 @@ class WPForms_Welcome {
143
 
144
  <div class="block">
145
 
146
- <h1><?php _e( 'Welcome Features &amp; Addons', 'wpforms' ); ?></h1>
147
- <h6><?php _e( 'WPForms is both easy to use and extremely powerful. We have tons of helpful features that allow us to give you everything you need from a form builder.', 'wpforms' ); ?></h6>
148
 
149
  <div class="feature-list wpforms-clear">
150
 
151
  <div class="feature-block first">
152
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-1.png">
153
- <h5><?php _e( 'Drag &amp; Drop Form Builder', 'wpforms' ); ?></h5>
154
- <p><?php _e( 'Easily create an amazing form in just a few minutes without writing any code.', 'wpforms' ); ?></p>
155
  </div>
156
 
157
  <div class="feature-block last">
158
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-2.png">
159
- <h5><?php _e( 'Form Templates', 'wpforms' ); ?></h5>
160
- <p><?php _e( 'Start with pre-built form templates to save even more time.', 'wpforms' ); ?></p>
161
  </div>
162
 
163
  <div class="feature-block first">
164
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-3.png">
165
- <h5><?php _e( 'Responsive Mobile Friendly', 'wpforms' ); ?></h5>
166
- <p><?php _e( 'WPForms is 100% responsive meaning it works on mobile, tablets & desktop.', 'wpforms' ); ?></p>
167
  </div>
168
 
169
  <div class="feature-block last">
170
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-4.png">
171
- <h5><?php _e( 'Smart Conditional Logic', 'wpforms' ); ?></h5>
172
- <p><?php _e( 'Easily create high performance forms with our smart conditional logic.', 'wpforms' ); ?></p>
173
  </div>
174
 
175
  <div class="feature-block first">
176
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-5.png">
177
- <h5><?php _e( 'Instant Notifications', 'wpforms' ); ?></h5>
178
- <p><?php _e( 'Respond to leads quickly with our instant form notification feature for your team.', 'wpforms' ); ?></p>
179
  </div>
180
 
181
  <div class="feature-block last">
182
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-6.png">
183
- <h5><?php _e( 'Entry Management', 'wpforms' ); ?></h5>
184
- <p><?php _e( 'View all your leads in one place to streamline your workflow.', 'wpforms' ); ?></p>
185
  </div>
186
 
187
  <div class="feature-block first">
188
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-7.png">
189
- <h5><?php _e( 'Payments Made Easy', 'wpforms' ); ?></h5>
190
- <p><?php _e( 'Easily collect payments, donations, and online orders without hiring a developer.', 'wpforms' ); ?></p>
191
  </div>
192
 
193
  <div class="feature-block last">
194
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-8.png">
195
- <h5><?php _e( 'Marketing &amp; Subscriptions', 'wpforms' ); ?></h5>
196
- <p><?php _e( 'Create subscription forms and connect with your email marketing service.', 'wpforms' ); ?></p>
197
  </div>
198
 
199
  <div class="feature-block first">
200
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-9.png">
201
- <h5><?php _e( 'Easy to Embed', 'wpforms' ); ?></h5>
202
- <p><?php _e( 'Easily embed your forms in blog posts, pages, sidebar widgets, footer, etc.', 'wpforms' ); ?></p>
203
  </div>
204
 
205
  <div class="feature-block last">
206
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-10.png">
207
- <h5><?php _e( 'Spam Protection', 'wpforms' ); ?></h5>
208
- <p><?php _e( 'Our smart captcha and honeypot automatically prevent spam submissions.', 'wpforms' ); ?></p>
209
  </div>
210
 
211
  </div>
212
 
213
  <div class="button-wrap">
214
- <a href="https://wpforms.com/features/?utm_source=WordPress&amp;utm_medium=link&amp;utm_campaign=liteplugin" class="wpforms-btn wpforms-btn-lg wpforms-btn-grey" rel="noopener noreferrer" target="_blank"><?php _e( 'See All Features', 'wpforms' ); ?></a>
 
 
 
215
  </div>
216
 
217
  </div>
@@ -223,28 +232,31 @@ class WPForms_Welcome {
223
  <div class="block wpforms-clear">
224
 
225
  <div class="left">
226
- <h2><?php _e( 'Upgrade to PRO', 'wpforms' ); ?></h2>
227
  <ul>
228
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'PayPal', 'wpforms' ); ?></li>
229
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Post Submissions', 'wpforms' ); ?></li>
230
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Stripe', 'wpforms' ); ?></li>
231
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Signatures', 'wpforms' ); ?></li>
232
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'User Registration', 'wpforms' ); ?></li>
233
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Form Abandonment', 'wpforms' ); ?></li>
234
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Geolocation', 'wpforms' ); ?></li>
235
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Unlimited Sites', 'wpforms' ); ?></li>
236
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Zapier', 'wpforms' ); ?></li>
237
- <li><span class="dashicons dashicons-yes"></span> <?php _e( 'Priority Support', 'wpforms' ); ?></li>
238
  </ul>
239
  </div>
240
 
241
  <div class="right">
242
- <h2><span><?php _e( 'PRO', 'wpforms' ); ?></span></h2>
243
  <div class="price">
244
  <span class="amount">199</span><br>
245
- <span class="term"><?php _e( 'per year', 'wpforms' ); ?></span>
246
  </div>
247
- <a href="<?php echo wpforms_admin_upgrade_link(); ?>" class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-orange wpforms-upgrade-modal" rel="noopener noreferrer" target="_blank"><?php _e( 'Upgrade Now', 'wpforms' ); ?></a>
 
 
 
248
  </div>
249
 
250
  </div>
@@ -255,17 +267,19 @@ class WPForms_Welcome {
255
 
256
  <div class="block">
257
 
258
- <h1><?php _e( 'Testimonials', 'wpforms' ); ?></h1>
259
 
260
  <div class="testimonial-block wpforms-clear">
261
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-testimonial-bill.jpg">
262
- <p><?php _e( 'WPForms is by far the easiest form plugin to use. My clients love it – it’s one of the few plugins they can use without any training. As a developer I appreciate how fast, modern, clean and extensible it is.', 'wpforms' ); ?><p>
 
263
  <p><strong>Bill Erickson</strong>, Erickson Web Consulting</p>
264
  </div>
265
 
266
  <div class="testimonial-block wpforms-clear">
267
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-testimonial-david.jpg">
268
- <p><?php _e( 'As a business owner, time is my most valuable asset. WPForms allow me to create smart online forms with just a few clicks. With their pre-built form templates and the drag & drop builder, I can create a new form that works in less than 2 minutes without writing a single line of code. Well worth the investment.', 'wpforms' ); ?><p>
 
269
  <p><strong>David Henzel</strong>, MaxCDN</p>
270
  </div>
271
 
@@ -279,10 +293,18 @@ class WPForms_Welcome {
279
 
280
  <div class="button-wrap wpforms-clear">
281
  <div class="left">
282
- <a href="<?php echo admin_url( 'admin.php?page=wpforms-builder' ); ?>" class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-orange"><?php _e( 'Create Your First Form', 'wpforms' ); ?></a>
 
 
 
283
  </div>
284
  <div class="right">
285
- <a href="<?php echo wpforms_admin_upgrade_link(); ?>" class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-trans-green wpforms-upgrade-modal" rel="noopener noreferrer" target="_blank"><span class="underline"><?php _e( 'Upgrade to WPForms Pro', 'wpforms' ); ?> <span class="dashicons dashicons-arrow-right"></span></span></a>
 
 
 
 
 
286
  </div>
287
  </div>
288
 
1
  <?php
2
+
3
  /**
4
  * Welcome page class.
5
  *
20
  */
21
  public function __construct() {
22
 
23
+ add_action( 'admin_menu', array( $this, 'register' ) );
24
+ add_action( 'admin_head', array( $this, 'hide_menu' ) );
25
+ add_action( 'admin_init', array( $this, 'redirect' ), 9999 );
26
  }
27
 
28
  /**
37
 
38
  // Getting started - shows after installation.
39
  add_dashboard_page(
40
+ esc_html__( 'Welcome to WPForms', 'wpforms' ),
41
+ esc_html__( 'Welcome to WPForms', 'wpforms' ),
42
  apply_filters( 'wpforms_welcome_cap', 'manage_options' ),
43
  'wpforms-getting-started',
44
  array( $this, 'output' )
53
  * @since 1.0.0
54
  */
55
  public function hide_menu() {
 
56
  remove_submenu_page( 'index.php', 'wpforms-getting-started' );
57
  }
58
 
59
  /**
60
  * Welcome screen redirect.
61
  *
62
+ * This function checks if a new install or update has just occurred. If so,
63
  * then we redirect the user to the appropriate page.
64
  *
65
  * @since 1.0.0
103
 
104
  $class = wpforms()->pro ? 'pro' : 'lite';
105
  ?>
106
+
107
  <div id="wpforms-welcome" class="<?php echo $class; ?>">
108
 
109
  <div class="container">
111
  <div class="intro">
112
 
113
  <div class="sullie">
114
+ <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/sullie.png" alt="<?php esc_attr_e( 'Sullie the WPForms mascot', 'wpforms' ); ?>">
115
  </div>
116
 
117
  <div class="block">
118
+ <h1><?php esc_html_e( 'Welcome to WPForms', 'wpforms' ); ?></h1>
119
+ <h6><?php esc_html_e( 'Thank you for choosing WPForms - the most powerful drag & drop WordPress form builder in the market.', 'wpforms' ); ?></h6>
120
  </div>
121
 
122
  <a href="#" class="play-video" title="<?php esc_attr_e( 'Watch how to create your first form', 'wpforms' ); ?>">
125
 
126
  <div class="block">
127
 
128
+ <h6><?php esc_html_e( 'WPForms makes it easy to create forms in WordPress. You can watch the video tutorial or read our guide on how create your first form.', 'wpforms' ); ?></h6>
129
 
130
  <div class="button-wrap wpforms-clear">
131
  <div class="left">
132
+ <a href="<?php echo admin_url( 'admin.php?page=wpforms-builder' ); ?>" class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-orange">
133
+ <?php esc_html_e( 'Create Your First Form', 'wpforms' ); ?>
134
+ </a>
135
  </div>
136
  <div class="right">
137
+ <a href="https://wpforms.com/docs/creating-first-form/?utm_source=WordPress&amp;utm_medium=link&amp;utm_campaign=liteplugin"
138
+ class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-grey" target="_blank" rel="noopener noreferrer">
139
+ <?php esc_html_e( 'Read the Full Guide', 'wpforms' ); ?>
140
+ </a>
141
  </div>
142
  </div>
143
 
149
 
150
  <div class="block">
151
 
152
+ <h1><?php esc_html_e( 'Welcome Features &amp; Addons', 'wpforms' ); ?></h1>
153
+ <h6><?php esc_html_e( 'WPForms is both easy to use and extremely powerful. We have tons of helpful features that allow us to give you everything you need from a form builder.', 'wpforms' ); ?></h6>
154
 
155
  <div class="feature-list wpforms-clear">
156
 
157
  <div class="feature-block first">
158
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-1.png">
159
+ <h5><?php esc_html_e( 'Drag &amp; Drop Form Builder', 'wpforms' ); ?></h5>
160
+ <p><?php esc_html_e( 'Easily create an amazing form in just a few minutes without writing any code.', 'wpforms' ); ?></p>
161
  </div>
162
 
163
  <div class="feature-block last">
164
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-2.png">
165
+ <h5><?php esc_html_e( 'Form Templates', 'wpforms' ); ?></h5>
166
+ <p><?php esc_html_e( 'Start with pre-built form templates to save even more time.', 'wpforms' ); ?></p>
167
  </div>
168
 
169
  <div class="feature-block first">
170
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-3.png">
171
+ <h5><?php esc_html_e( 'Responsive Mobile Friendly', 'wpforms' ); ?></h5>
172
+ <p><?php esc_html_e( 'WPForms is 100% responsive meaning it works on mobile, tablets & desktop.', 'wpforms' ); ?></p>
173
  </div>
174
 
175
  <div class="feature-block last">
176
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-4.png">
177
+ <h5><?php esc_html_e( 'Smart Conditional Logic', 'wpforms' ); ?></h5>
178
+ <p><?php esc_html_e( 'Easily create high performance forms with our smart conditional logic.', 'wpforms' ); ?></p>
179
  </div>
180
 
181
  <div class="feature-block first">
182
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-5.png">
183
+ <h5><?php esc_html_e( 'Instant Notifications', 'wpforms' ); ?></h5>
184
+ <p><?php esc_html_e( 'Respond to leads quickly with our instant form notification feature for your team.', 'wpforms' ); ?></p>
185
  </div>
186
 
187
  <div class="feature-block last">
188
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-6.png">
189
+ <h5><?php esc_html_e( 'Entry Management', 'wpforms' ); ?></h5>
190
+ <p><?php esc_html_e( 'View all your leads in one place to streamline your workflow.', 'wpforms' ); ?></p>
191
  </div>
192
 
193
  <div class="feature-block first">
194
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-7.png">
195
+ <h5><?php esc_html_e( 'Payments Made Easy', 'wpforms' ); ?></h5>
196
+ <p><?php esc_html_e( 'Easily collect payments, donations, and online orders without hiring a developer.', 'wpforms' ); ?></p>
197
  </div>
198
 
199
  <div class="feature-block last">
200
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-8.png">
201
+ <h5><?php esc_html_e( 'Marketing &amp; Subscriptions', 'wpforms' ); ?></h5>
202
+ <p><?php esc_html_e( 'Create subscription forms and connect with your email marketing service.', 'wpforms' ); ?></p>
203
  </div>
204
 
205
  <div class="feature-block first">
206
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-9.png">
207
+ <h5><?php esc_html_e( 'Easy to Embed', 'wpforms' ); ?></h5>
208
+ <p><?php esc_html_e( 'Easily embed your forms in blog posts, pages, sidebar widgets, footer, etc.', 'wpforms' ); ?></p>
209
  </div>
210
 
211
  <div class="feature-block last">
212
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-feature-icon-10.png">
213
+ <h5><?php esc_html_e( 'Spam Protection', 'wpforms' ); ?></h5>
214
+ <p><?php esc_html_e( 'Our smart captcha and honeypot automatically prevent spam submissions.', 'wpforms' ); ?></p>
215
  </div>
216
 
217
  </div>
218
 
219
  <div class="button-wrap">
220
+ <a href="https://wpforms.com/features/?utm_source=WordPress&amp;utm_medium=link&amp;utm_campaign=liteplugin"
221
+ class="wpforms-btn wpforms-btn-lg wpforms-btn-grey" rel="noopener noreferrer" target="_blank">
222
+ <?php esc_html_e( 'See All Features', 'wpforms' ); ?>
223
+ </a>
224
  </div>
225
 
226
  </div>
232
  <div class="block wpforms-clear">
233
 
234
  <div class="left">
235
+ <h2><?php esc_html_e( 'Upgrade to PRO', 'wpforms' ); ?></h2>
236
  <ul>
237
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'PayPal', 'wpforms' ); ?></li>
238
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Post Submissions', 'wpforms' ); ?></li>
239
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Stripe', 'wpforms' ); ?></li>
240
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Signatures', 'wpforms' ); ?></li>
241
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'User Registration', 'wpforms' ); ?></li>
242
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Form Abandonment', 'wpforms' ); ?></li>
243
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Geolocation', 'wpforms' ); ?></li>
244
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Unlimited Sites', 'wpforms' ); ?></li>
245
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Zapier', 'wpforms' ); ?></li>
246
+ <li><span class="dashicons dashicons-yes"></span> <?php esc_html_e( 'Priority Support', 'wpforms' ); ?></li>
247
  </ul>
248
  </div>
249
 
250
  <div class="right">
251
+ <h2><span><?php esc_html_e( 'PRO', 'wpforms' ); ?></span></h2>
252
  <div class="price">
253
  <span class="amount">199</span><br>
254
+ <span class="term"><?php esc_html_e( 'per year', 'wpforms' ); ?></span>
255
  </div>
256
+ <a href="<?php echo wpforms_admin_upgrade_link(); ?>" rel="noopener noreferrer" target="_blank"
257
+ class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-orange wpforms-upgrade-modal">
258
+ <?php esc_html_e( 'Upgrade Now', 'wpforms' ); ?>
259
+ </a>
260
  </div>
261
 
262
  </div>
267
 
268
  <div class="block">
269
 
270
+ <h1><?php esc_html_e( 'Testimonials', 'wpforms' ); ?></h1>
271
 
272
  <div class="testimonial-block wpforms-clear">
273
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-testimonial-bill.jpg">
274
+ <p><?php esc_html_e( 'WPForms is by far the easiest form plugin to use. My clients love it – it’s one of the few plugins they can use without any training. As a developer I appreciate how fast, modern, clean and extensible it is.', 'wpforms' ); ?>
275
+ <p>
276
  <p><strong>Bill Erickson</strong>, Erickson Web Consulting</p>
277
  </div>
278
 
279
  <div class="testimonial-block wpforms-clear">
280
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/welcome-testimonial-david.jpg">
281
+ <p><?php esc_html_e( 'As a business owner, time is my most valuable asset. WPForms allow me to create smart online forms with just a few clicks. With their pre-built form templates and the drag & drop builder, I can create a new form that works in less than 2 minutes without writing a single line of code. Well worth the investment.', 'wpforms' ); ?>
282
+ <p>
283
  <p><strong>David Henzel</strong>, MaxCDN</p>
284
  </div>
285
 
293
 
294
  <div class="button-wrap wpforms-clear">
295
  <div class="left">
296
+ <a href="<?php echo admin_url( 'admin.php?page=wpforms-builder' ); ?>"
297
+ class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-orange">
298
+ <?php esc_html_e( 'Create Your First Form', 'wpforms' ); ?>
299
+ </a>
300
  </div>
301
  <div class="right">
302
+ <a href="<?php echo wpforms_admin_upgrade_link(); ?>" target="_blank" rel="noopener noreferrer"
303
+ class="wpforms-btn wpforms-btn-block wpforms-btn-lg wpforms-btn-trans-green wpforms-upgrade-modal">
304
+ <span class="underline">
305
+ <?php esc_html_e( 'Upgrade to WPForms Pro', 'wpforms' ); ?> <span class="dashicons dashicons-arrow-right"></span>
306
+ </span>
307
+ </a>
308
  </div>
309
  </div>
310
 
includes/admin/importers/class-base.php CHANGED
@@ -111,7 +111,7 @@ abstract class WPForms_Importer implements WPForms_Importer_Interface {
111
  wp_send_json_success( array(
112
  'error' => true,
113
  'name' => sanitize_text_field( $form['settings']['form_title'] ),
114
- 'msg' => __( 'There was an error while creating a new form.', 'wpforms' ),
115
  ) );
116
  }
117
 
111
  wp_send_json_success( array(
112
  'error' => true,
113
  'name' => sanitize_text_field( $form['settings']['form_title'] ),
114
+ 'msg' => esc_html__( 'There was an error while creating a new form.', 'wpforms' ),
115
  ) );
116
  }
117
 
includes/admin/importers/class-contact-form-7.php CHANGED
@@ -78,7 +78,7 @@ class WPForms_Contact_Form_7 extends WPForms_Importer {
78
  check_ajax_referer( 'wpforms-admin', 'nonce' );
79
 
80
  // Check for permissions.
81
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
82
  wp_send_json_error();
83
  }
84
 
@@ -103,16 +103,16 @@ class WPForms_Contact_Form_7 extends WPForms_Importer {
103
  'settings' => array(
104
  'form_title' => $cf7_form_name,
105
  'form_desc' => '',
106
- 'submit_text' => __( 'Submit', 'wpforms' ),
107
- 'submit_text_processing' => __( 'Sending', 'wpforms' ),
108
  'honeypot' => '1',
109
  'notification_enable' => '1',
110
  'notifications' => array(
111
  1 => array(
112
- 'notification_name' => __( 'Notification 1', 'wpforms' ),
113
  'email' => '{admin_email}',
114
  /* translators: %s - Contact Form 7 form name. */
115
- 'subject' => sprintf( __( 'New Entry: %s', 'wpforms' ), $cf7_form_name ),
116
  'sender_name' => get_bloginfo( 'name' ),
117
  'sender_address' => '{admin_email}',
118
  'replyto' => '',
@@ -120,7 +120,7 @@ class WPForms_Contact_Form_7 extends WPForms_Importer {
120
  ),
121
  ),
122
  'confirmation_type' => 'message',
123
- 'confirmation_message' => __( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms' ),
124
  'confirmation_message_scroll' => '1',
125
  'import_form_id' => $cf7_id,
126
  ),
@@ -131,7 +131,7 @@ class WPForms_Contact_Form_7 extends WPForms_Importer {
131
  wp_send_json_success( array(
132
  'error' => true,
133
  'name' => sanitize_text_field( $cf7_form_name ),
134
- 'msg' => __( 'No form fields found.', 'wpforms' ),
135
  ) );
136
  }
137
 
@@ -299,7 +299,7 @@ class WPForms_Contact_Form_7 extends WPForms_Importer {
299
  $form['fields'][ $field_id ] = array(
300
  'id' => $field_id,
301
  'type' => 'checkbox',
302
- 'label' => __( 'Acceptance Field', 'wpforms' ),
303
  'choices' => array(
304
  1 => array(
305
  'label' => $label,
@@ -394,10 +394,10 @@ class WPForms_Contact_Form_7 extends WPForms_Importer {
394
  // Check if a secondary notification is enabled, if so set defaults
395
  // and set it up.
396
  $form['settings']['notifications'][2] = array(
397
- 'notification_name' => __( 'Notification 2', 'wpforms' ),
398
  'email' => '{admin_email}',
399
  /* translators: %s - Contact Form 7 form name. */
400
- 'subject' => sprintf( __( 'New Entry: %s', 'wpforms' ), $cf7_form_name ),
401
  'sender_name' => get_bloginfo( 'name' ),
402
  'sender_address' => '{admin_email}',
403
  'replyto' => '',
@@ -485,12 +485,14 @@ class WPForms_Contact_Form_7 extends WPForms_Importer {
485
  }
486
  }
487
 
488
- /* translators: %1$s - field type; %2$s - field name if available. */
489
- return sprintf(
490
- __( '%1$s Field%2$s', 'wpforms' ),
491
  ucfirst( $type ),
492
- ! empty( $name ) ? " ($name)" : ''
493
  );
 
 
494
  }
495
 
496
  /**
78
  check_ajax_referer( 'wpforms-admin', 'nonce' );
79
 
80
  // Check for permissions.
81
+ if ( ! wpforms_current_user_can() ) {
82
  wp_send_json_error();
83
  }
84
 
103
  'settings' => array(
104
  'form_title' => $cf7_form_name,
105
  'form_desc' => '',
106
+ 'submit_text' => esc_html__( 'Submit', 'wpforms' ),
107
+ 'submit_text_processing' => esc_html__( 'Sending', 'wpforms' ),
108
  'honeypot' => '1',
109
  'notification_enable' => '1',
110
  'notifications' => array(
111
  1 => array(
112
+ 'notification_name' => esc_html__( 'Notification 1', 'wpforms' ),
113
  'email' => '{admin_email}',
114
  /* translators: %s - Contact Form 7 form name. */
115
+ 'subject' => sprintf( esc_html__( 'New Entry: %s', 'wpforms' ), $cf7_form_name ),
116
  'sender_name' => get_bloginfo( 'name' ),
117
  'sender_address' => '{admin_email}',
118
  'replyto' => '',
120
  ),
121
  ),
122
  'confirmation_type' => 'message',
123
+ 'confirmation_message' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms' ),
124
  'confirmation_message_scroll' => '1',
125
  'import_form_id' => $cf7_id,
126
  ),
131
  wp_send_json_success( array(
132
  'error' => true,
133
  'name' => sanitize_text_field( $cf7_form_name ),
134
+ 'msg' => esc_html__( 'No form fields found.', 'wpforms' ),
135
  ) );
136
  }
137
 
299
  $form['fields'][ $field_id ] = array(
300
  'id' => $field_id,
301
  'type' => 'checkbox',
302
+ 'label' => esc_html__( 'Acceptance Field', 'wpforms' ),
303
  'choices' => array(
304
  1 => array(
305
  'label' => $label,
394
  // Check if a secondary notification is enabled, if so set defaults
395
  // and set it up.
396
  $form['settings']['notifications'][2] = array(
397
+ 'notification_name' => esc_html__( 'Notification 2', 'wpforms' ),
398
  'email' => '{admin_email}',
399
  /* translators: %s - Contact Form 7 form name. */
400
+ 'subject' => sprintf( esc_html__( 'New Entry: %s', 'wpforms' ), $cf7_form_name ),
401
  'sender_name' => get_bloginfo( 'name' ),
402
  'sender_address' => '{admin_email}',
403
  'replyto' => '',
485
  }
486
  }
487
 
488
+ $label = sprintf(
489
+ /* translators: %1$s - field type; %2$s - field name if available. */
490
+ esc_html__( '%1$s Field %2$s', 'wpforms' ),
491
  ucfirst( $type ),
492
+ ! empty( $name ) ? "($name)" : ''
493
  );
494
+
495
+ return trim( $label );
496
  }
497
 
498
  /**
includes/admin/importers/class-ninja-forms.php CHANGED
@@ -96,7 +96,7 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
96
  check_ajax_referer( 'wpforms-admin', 'nonce' );
97
 
98
  // Check for permissions.
99
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
100
  wp_send_json_error();
101
  }
102
 
@@ -120,16 +120,16 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
120
  'settings' => array(
121
  'form_title' => $nf_form_name,
122
  'form_desc' => '',
123
- 'submit_text' => __( 'Submit', 'wpforms' ),
124
- 'submit_text_processing' => __( 'Sending', 'wpforms' ),
125
  'honeypot' => '1',
126
  'notification_enable' => '1',
127
  'notifications' => array(
128
  1 => array(
129
- 'notification_name' => __( 'Notification 1', 'wpforms' ),
130
  'email' => '{admin_email}',
131
  /* translators: %s - Ninja Forms form name. */
132
- 'subject' => sprintf( __( 'New Entry: %s', 'wpforms' ), $nf_form_name ),
133
  'sender_name' => get_bloginfo( 'name' ),
134
  'sender_address' => '{admin_email}',
135
  'replyto' => '',
@@ -137,7 +137,7 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
137
  ),
138
  ),
139
  'confirmation_type' => 'message',
140
- 'confirmation_message' => __( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms' ),
141
  'confirmation_message_scroll' => '1',
142
  'import_form_id' => $nf_id,
143
  ),
@@ -148,7 +148,7 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
148
  wp_send_json_success( array(
149
  'error' => true,
150
  'name' => sanitize_text_field( $nf_form_name ),
151
- 'msg' => __( 'No form fields found.', 'wpforms' ),
152
  ) );
153
  }
154
 
@@ -224,7 +224,7 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
224
  $form['fields'][ $field_id ] = array(
225
  'id' => $field_id,
226
  'type' => 'checkbox',
227
- 'label' => __( 'Single Checkbox Field' ),
228
  'choices' => array(
229
  1 => array(
230
  'label' => $label,
@@ -309,6 +309,7 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
309
  // Phone number field.
310
  case 'phone':
311
  $type = wpforms()->pro ? 'phone' : 'text';
 
312
  $form['fields'][ $field_id ] = array(
313
  'id' => $field_id,
314
  'type' => $type,
@@ -326,6 +327,7 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
326
  // Date field.
327
  case 'date':
328
  $type = wpforms()->pro ? 'date-time' : 'text';
 
329
  $form['fields'][ $field_id ] = array(
330
  'id' => $field_id,
331
  'type' => $type,
@@ -398,10 +400,10 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
398
  // Setup email notifications.
399
  $action_count = 1;
400
  $action_defaults = array(
401
- 'notification_name' => __( 'Notification', 'wpforms' ) . " $action_count",
402
  'email' => '{admin_email}',
403
  /* translators: %s - Ninja Forms form name. */
404
- 'subject' => sprintf( __( 'New Entry: %s', 'wpforms' ), $nf_form_name ),
405
  'sender_name' => get_bloginfo( 'name' ),
406
  'sender_address' => '{admin_email}',
407
  'replyto' => '',
@@ -414,7 +416,7 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
414
  continue;
415
  }
416
 
417
- $action_defaults['notification_name'] = __( 'Notification', 'wpforms' ) . " $action_count";
418
 
419
  $form['settings']['notifications'][ $action_count ] = $action_defaults;
420
 
@@ -466,15 +468,15 @@ class WPForms_Ninja_Forms extends WPForms_Importer {
466
  if ( ! empty( $field['label'] ) ) {
467
  $label = sanitize_text_field( $field['label'] );
468
  } else {
469
- /* translators: %1$s - field type; %2$s - field name if available. */
470
  $label = sprintf(
471
- '%1$s Field%2$s',
 
472
  ucfirst( $field['type'] ),
473
- ! empty( $name ) ? " ($name)" : ''
474
  );
475
  }
476
 
477
- return $label;
478
  }
479
 
480
  /**
96
  check_ajax_referer( 'wpforms-admin', 'nonce' );
97
 
98
  // Check for permissions.
99
+ if ( ! wpforms_current_user_can() ) {
100
  wp_send_json_error();
101
  }
102
 
120
  'settings' => array(
121
  'form_title' => $nf_form_name,
122
  'form_desc' => '',
123
+ 'submit_text' => esc_html__( 'Submit', 'wpforms' ),
124
+ 'submit_text_processing' => esc_html__( 'Sending', 'wpforms' ),
125
  'honeypot' => '1',
126
  'notification_enable' => '1',
127
  'notifications' => array(
128
  1 => array(
129
+ 'notification_name' => esc_html__( 'Notification 1', 'wpforms' ),
130
  'email' => '{admin_email}',
131
  /* translators: %s - Ninja Forms form name. */
132
+ 'subject' => sprintf( esc_html__( 'New Entry: %s', 'wpforms' ), $nf_form_name ),
133
  'sender_name' => get_bloginfo( 'name' ),
134
  'sender_address' => '{admin_email}',
135
  'replyto' => '',
137
  ),
138
  ),
139
  'confirmation_type' => 'message',
140
+ 'confirmation_message' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms' ),
141
  'confirmation_message_scroll' => '1',
142
  'import_form_id' => $nf_id,
143
  ),
148
  wp_send_json_success( array(
149
  'error' => true,
150
  'name' => sanitize_text_field( $nf_form_name ),
151
+ 'msg' => esc_html__( 'No form fields found.', 'wpforms' ),
152
  ) );
153
  }
154
 
224
  $form['fields'][ $field_id ] = array(
225
  'id' => $field_id,
226
  'type' => 'checkbox',
227
+ 'label' => esc_html__( 'Single Checkbox Field' ),
228
  'choices' => array(
229
  1 => array(
230
  'label' => $label,
309
  // Phone number field.
310
  case 'phone':
311
  $type = wpforms()->pro ? 'phone' : 'text';
312
+
313
  $form['fields'][ $field_id ] = array(
314
  'id' => $field_id,
315
  'type' => $type,
327
  // Date field.
328
  case 'date':
329
  $type = wpforms()->pro ? 'date-time' : 'text';
330
+
331
  $form['fields'][ $field_id ] = array(
332
  'id' => $field_id,
333
  'type' => $type,
400
  // Setup email notifications.
401
  $action_count = 1;
402
  $action_defaults = array(
403
+ 'notification_name' => esc_html__( 'Notification', 'wpforms' ) . " $action_count",
404
  'email' => '{admin_email}',
405
  /* translators: %s - Ninja Forms form name. */
406
+ 'subject' => sprintf( esc_html__( 'New Entry: %s', 'wpforms' ), $nf_form_name ),
407
  'sender_name' => get_bloginfo( 'name' ),
408
  'sender_address' => '{admin_email}',
409
  'replyto' => '',
416
  continue;
417
  }
418
 
419
+ $action_defaults['notification_name'] = esc_html__( 'Notification', 'wpforms' ) . " $action_count";
420
 
421
  $form['settings']['notifications'][ $action_count ] = $action_defaults;
422
 
468
  if ( ! empty( $field['label'] ) ) {
469
  $label = sanitize_text_field( $field['label'] );
470
  } else {
 
471
  $label = sprintf(
472
+ /* translators: %1$s - field type; %2$s - field name if available. */
473
+ esc_html__( '%1$s Field %2$s', 'wpforms' ),
474
  ucfirst( $field['type'] ),
475
+ ! empty( $name ) ? "($name)" : ''
476
  );
477
  }
478
 
479
+ return trim( $label );
480
  }
481
 
482
  /**
includes/admin/overview/class-overview-table.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Generates the table on the plugin overview page.
4
  *
@@ -7,7 +8,7 @@
7
  * @since 1.0.0
8
  * @license GPL-2.0+
9
  * @copyright Copyright (c) 2016, WPForms LLC
10
- */
11
  class WPForms_Overview_Table extends WP_List_Table {
12
 
13
  /**
@@ -24,9 +25,6 @@ class WPForms_Overview_Table extends WP_List_Table {
24
  */
25
  public function __construct() {
26
 
27
- // Bring globals into scope for parent.
28
- global $status, $page;
29
-
30
  // Utilize the parent constructor to build the main class properties.
31
  parent::__construct(
32
  array(
@@ -41,18 +39,18 @@ class WPForms_Overview_Table extends WP_List_Table {
41
  }
42
 
43
  /**
44
- * Retrieve the table columns
45
  *
46
  * @since 1.0.0
47
- * @return array $columns Array of all the list table columns
48
  */
49
  public function get_columns() {
50
 
51
  $columns = array(
52
- 'cb' => '<input type="checkbox" />',
53
- 'form_name' => __( 'Name', 'wpforms' ),
54
- 'shortcode' => __( 'Shortcode', 'wpforms' ),
55
- 'created' => __( 'Created', 'wpforms' ),
56
  );
57
 
58
  return apply_filters( 'wpforms_overview_table_columns', $columns );
@@ -84,35 +82,35 @@ class WPForms_Overview_Table extends WP_List_Table {
84
  */
85
  public function column_default( $form, $column_name ) {
86
 
87
- switch ( $column_name ) {
88
- case 'id':
89
- $value = $form->ID;
90
- break;
91
 
92
- case 'shortcode':
93
- $value = '[wpforms id="' . $form->ID . '"]';
94
- break;
95
 
96
- case 'created':
97
- $value = get_the_date( get_option( 'date_format' ), $form );
98
- break;
99
 
100
- case 'modified':
101
- $value = get_post_modified_time( get_option( 'date_format' ), false, $form );
102
- break;
103
 
104
- case 'author':
105
- $author = get_userdata( $form->post_author );
106
- $value = $author->display_name;
107
- break;
108
 
109
- case 'php':
110
- $value = '<code style="display:block;font-size:11px;">if( function_exists( \'wpforms_get\' ) ){ wpforms_get( ' . $form->ID . ' ); }</code>';
111
- break;
112
 
113
- default:
114
- $value = '';
115
- }
116
 
117
  return apply_filters( 'wpforms_overview_table_column_value', $value, $form, $column_name );
118
  }
@@ -139,14 +137,14 @@ class WPForms_Overview_Table extends WP_List_Table {
139
  ),
140
  admin_url( 'admin.php?page=wpforms-builder' )
141
  ),
142
- __( 'Edit this form', 'wpforms' ),
143
  $name
144
  );
145
 
146
  // Build all of the row action links.
147
  $row_actions = array();
148
 
149
- // Edit
150
  $row_actions['edit'] = sprintf(
151
  '<a href="%s" title="%s">%s</a>',
152
  add_query_arg(
@@ -156,33 +154,33 @@ class WPForms_Overview_Table extends WP_List_Table {
156
  ),
157
  admin_url( 'admin.php?page=wpforms-builder' )
158
  ),
159
- __( 'Edit this form', 'wpforms' ),
160
- __( 'Edit', 'wpforms' )
161
  );
162
 
163
- // Entries
164
  $row_actions['entries'] = sprintf(
165
  '<a href="%s" title="%s">%s</a>',
166
  add_query_arg(
167
  array(
168
- 'view' => 'list',
169
  'form_id' => $form->ID,
170
  ),
171
  admin_url( 'admin.php?page=wpforms-entries' )
172
  ),
173
- __( 'View entries', 'wpforms' ),
174
- __( 'Entries', 'wpforms' )
175
  );
176
 
177
- // Preview
178
  $row_actions['preview_'] = sprintf(
179
- '<a href="%s" title="%s" target="_blank" rel="noopener">%s</a>',
180
  esc_url( wpforms()->preview->form_preview_url( $form->ID ) ),
181
- __( 'View preview', 'wpforms' ),
182
- __( 'Preview', 'wpforms' )
183
  );
184
 
185
- // Duplicate
186
  $row_actions['duplicate'] = sprintf(
187
  '<a href="%s" title="%s">%s</a>',
188
  wp_nonce_url(
@@ -195,11 +193,11 @@ class WPForms_Overview_Table extends WP_List_Table {
195
  ),
196
  'wpforms_duplicate_form_nonce'
197
  ),
198
- __( 'Duplicate this form', 'wpforms' ),
199
- __( 'Duplicate', 'wpforms' )
200
  );
201
 
202
- // Delete
203
  $row_actions['delete'] = sprintf(
204
  '<a href="%s" title="%s">%s</a>',
205
  wp_nonce_url(
@@ -212,14 +210,12 @@ class WPForms_Overview_Table extends WP_List_Table {
212
  ),
213
  'wpforms_delete_form_nonce'
214
  ),
215
- __( 'Delete this form', 'wpforms' ),
216
- __( 'Delete', 'wpforms' )
217
  );
218
 
219
  // Build the row action links and return the value.
220
- $value = $name . $this->row_actions( $row_actions );
221
-
222
- return apply_filters( 'wpforms_overview_row_actions', $value, $form );
223
  }
224
 
225
  /**
@@ -232,8 +228,9 @@ class WPForms_Overview_Table extends WP_List_Table {
232
  public function get_bulk_actions() {
233
 
234
  $actions = array(
235
- 'delete' => __( 'Delete', 'wpforms' ),
236
  );
 
237
  return $actions;
238
  }
239
 
@@ -257,7 +254,7 @@ class WPForms_Overview_Table extends WP_List_Table {
257
  return;
258
  }
259
 
260
- // Delete one or multiple forms - both delete links and bulk actions
261
  if ( 'delete' === $this->current_action() ) {
262
 
263
  if (
@@ -272,9 +269,9 @@ class WPForms_Overview_Table extends WP_List_Table {
272
  <p>
273
  <?php
274
  if ( count( $ids ) === 1 ) {
275
- _e( 'Form was successfully deleted.', 'wpforms' );
276
  } else {
277
- _e( 'Forms were successfully deleted.', 'wpforms' );
278
  }
279
  ?>
280
  </p>
@@ -284,14 +281,14 @@ class WPForms_Overview_Table extends WP_List_Table {
284
  ?>
285
  <div class="notice updated">
286
  <p>
287
- <?php _e( 'Security check failed. Please try again.', 'wpforms' ); ?>
288
  </p>
289
  </div>
290
  <?php
291
  }
292
  }
293
 
294
- // Duplicate form - currently just delete links (no bulk action at the moment)
295
  if ( 'duplicate' === $this->current_action() ) {
296
 
297
  if ( wp_verify_nonce( $_GET['_wpnonce'], 'wpforms_duplicate_form_nonce' ) ) {
@@ -303,9 +300,9 @@ class WPForms_Overview_Table extends WP_List_Table {
303
  <p>
304
  <?php
305
  if ( count( $ids ) === 1 ) {
306
- _e( 'Form was successfully duplicated.', 'wpforms' );
307
  } else {
308
- _e( 'Forms were successfully duplicated.', 'wpforms' );
309
  }
310
  ?>
311
  </p>
@@ -315,7 +312,7 @@ class WPForms_Overview_Table extends WP_List_Table {
315
  ?>
316
  <div class="notice updated">
317
  <p>
318
- <?php _e( 'Security check failed. Please try again.', 'wpforms' ); ?>
319
  </p>
320
  </div>
321
  <?php
@@ -329,8 +326,18 @@ class WPForms_Overview_Table extends WP_List_Table {
329
  * @since 1.0.0
330
  */
331
  public function no_items() {
332
-
333
- printf( __( 'Whoops, you haven\'t created a form yet. Want to <a href="%s">give it a go</a>?', 'wpforms' ), admin_url( 'admin.php?page=wpforms-builder' ) );
 
 
 
 
 
 
 
 
 
 
334
  }
335
 
336
  /**
@@ -340,25 +347,25 @@ class WPForms_Overview_Table extends WP_List_Table {
340
  */
341
  public function prepare_items() {
342
 
343
- // Process bulk actions if found
344
  $this->process_bulk_actions();
345
 
346
- // Setup the columns
347
- $columns = $this->get_columns();
348
 
349
- // Hidden columns (none)
350
  $hidden = array();
351
 
352
- // Define which columns can be sorted - form name, date
353
  $sortable = array(
354
  'form_name' => array( 'title', false ),
355
  'created' => array( 'date', false ),
356
  );
357
 
358
- // Set column headers
359
  $this->_column_headers = array( $columns, $hidden, $sortable );
360
 
361
- // Get forms
362
  $total = wp_count_posts( 'wpforms' )->publish;
363
  $page = $this->get_pagenum();
364
  $order = isset( $_GET['order'] ) ? $_GET['order'] : 'DESC';
@@ -373,10 +380,10 @@ class WPForms_Overview_Table extends WP_List_Table {
373
  'no_found_rows' => false,
374
  ) );
375
 
376
- // Giddy up
377
  $this->items = $data;
378
 
379
- // Finalize pagination
380
  $this->set_pagination_args(
381
  array(
382
  'total_items' => $total,
1
  <?php
2
+
3
  /**
4
  * Generates the table on the plugin overview page.
5
  *
8
  * @since 1.0.0
9
  * @license GPL-2.0+
10
  * @copyright Copyright (c) 2016, WPForms LLC
11
+ */
12
  class WPForms_Overview_Table extends WP_List_Table {
13
 
14
  /**
25
  */
26
  public function __construct() {
27
 
 
 
 
28
  // Utilize the parent constructor to build the main class properties.
29
  parent::__construct(
30
  array(
39
  }
40
 
41
  /**
42
+ * Retrieve the table columns.
43
  *
44
  * @since 1.0.0
45
+ * @return array $columns Array of all the list table columns.
46
  */
47
  public function get_columns() {
48
 
49
  $columns = array(
50
+ 'cb' => '<input type="checkbox" />',
51
+ 'form_name' => esc_html__( 'Name', 'wpforms' ),
52
+ 'shortcode' => esc_html__( 'Shortcode', 'wpforms' ),
53
+ 'created' => esc_html__( 'Created', 'wpforms' ),
54
  );
55
 
56
  return apply_filters( 'wpforms_overview_table_columns', $columns );
82
  */
83
  public function column_default( $form, $column_name ) {
84
 
85
+ switch ( $column_name ) {
86
+ case 'id':
87
+ $value = $form->ID;
88
+ break;
89
 
90
+ case 'shortcode':
91
+ $value = '[wpforms id="' . $form->ID . '"]';
92
+ break;
93
 
94
+ case 'created':
95
+ $value = get_the_date( get_option( 'date_format' ), $form );
96
+ break;
97
 
98
+ case 'modified':
99
+ $value = get_post_modified_time( get_option( 'date_format' ), false, $form );
100
+ break;
101
 
102
+ case 'author':
103
+ $author = get_userdata( $form->post_author );
104
+ $value = $author->display_name;
105
+ break;
106
 
107
+ case 'php':
108
+ $value = '<code style="display:block;font-size:11px;">if( function_exists( \'wpforms_get\' ) ){ wpforms_get( ' . $form->ID . ' ); }</code>';
109
+ break;
110
 
111
+ default:
112
+ $value = '';
113
+ }
114
 
115
  return apply_filters( 'wpforms_overview_table_column_value', $value, $form, $column_name );
116
  }
137
  ),
138
  admin_url( 'admin.php?page=wpforms-builder' )
139
  ),
140
+ esc_html__( 'Edit this form', 'wpforms' ),
141
  $name
142
  );
143
 
144
  // Build all of the row action links.
145
  $row_actions = array();
146
 
147
+ // Edit.
148
  $row_actions['edit'] = sprintf(
149
  '<a href="%s" title="%s">%s</a>',
150
  add_query_arg(
154
  ),
155
  admin_url( 'admin.php?page=wpforms-builder' )
156
  ),
157
+ esc_html__( 'Edit this form', 'wpforms' ),
158
+ esc_html__( 'Edit', 'wpforms' )
159
  );
160
 
161
+ // Entries.
162
  $row_actions['entries'] = sprintf(
163
  '<a href="%s" title="%s">%s</a>',
164
  add_query_arg(
165
  array(
166
+ 'view' => 'list',
167
  'form_id' => $form->ID,
168
  ),
169
  admin_url( 'admin.php?page=wpforms-entries' )
170
  ),
171
+ esc_html__( 'View entries', 'wpforms' ),
172
+ esc_html__( 'Entries', 'wpforms' )
173
  );
174
 
175
+ // Preview.
176
  $row_actions['preview_'] = sprintf(
177
+ '<a href="%s" title="%s" target="_blank" rel="noopener noreferrer">%s</a>',
178
  esc_url( wpforms()->preview->form_preview_url( $form->ID ) ),
179
+ esc_html__( 'View preview', 'wpforms' ),
180
+ esc_html__( 'Preview', 'wpforms' )
181
  );
182
 
183
+ // Duplicate.
184
  $row_actions['duplicate'] = sprintf(
185
  '<a href="%s" title="%s">%s</a>',
186
  wp_nonce_url(
193
  ),
194
  'wpforms_duplicate_form_nonce'
195
  ),
196
+ esc_html__( 'Duplicate this form', 'wpforms' ),
197
+ esc_html__( 'Duplicate', 'wpforms' )
198
  );
199
 
200
+ // Delete.
201
  $row_actions['delete'] = sprintf(
202
  '<a href="%s" title="%s">%s</a>',
203
  wp_nonce_url(
210
  ),
211
  'wpforms_delete_form_nonce'
212
  ),
213
+ esc_html__( 'Delete this form', 'wpforms' ),
214
+ esc_html__( 'Delete', 'wpforms' )
215
  );
216
 
217
  // Build the row action links and return the value.
218
+ return $name . $this->row_actions( apply_filters( 'wpforms_overview_row_actions', $row_actions, $form ) );
 
 
219
  }
220
 
221
  /**
228
  public function get_bulk_actions() {
229
 
230
  $actions = array(
231
+ 'delete' => esc_html__( 'Delete', 'wpforms' ),
232
  );
233
+
234
  return $actions;
235
  }
236
 
254
  return;
255
  }
256
 
257
+ // Delete one or multiple forms - both delete links and bulk actions.
258
  if ( 'delete' === $this->current_action() ) {
259
 
260
  if (
269
  <p>
270
  <?php
271
  if ( count( $ids ) === 1 ) {
272
+ esc_html_e( 'Form was successfully deleted.', 'wpforms' );
273
  } else {
274
+ esc_html_e( 'Forms were successfully deleted.', 'wpforms' );
275
  }
276
  ?>
277
  </p>
281
  ?>
282
  <div class="notice updated">
283
  <p>
284
+ <?php esc_html_e( 'Security check failed. Please try again.', 'wpforms' ); ?>
285
  </p>
286
  </div>
287
  <?php
288
  }
289
  }
290
 
291
+ // Duplicate form - currently just delete links (no bulk action at the moment).
292
  if ( 'duplicate' === $this->current_action() ) {
293
 
294
  if ( wp_verify_nonce( $_GET['_wpnonce'], 'wpforms_duplicate_form_nonce' ) ) {
300
  <p>
301
  <?php
302
  if ( count( $ids ) === 1 ) {
303
+ esc_html_e( 'Form was successfully duplicated.', 'wpforms' );
304
  } else {
305
+ esc_html_e( 'Forms were successfully duplicated.', 'wpforms' );
306
  }
307
  ?>
308
  </p>
312
  ?>
313
  <div class="notice updated">
314
  <p>
315
+ <?php esc_html_e( 'Security check failed. Please try again.', 'wpforms' ); ?>
316
  </p>
317
  </div>
318
  <?php
326
  * @since 1.0.0
327
  */
328
  public function no_items() {
329
+ printf(
330
+ wp_kses(
331
+ /* translators: %s - admin area page builder page URL. */
332
+ __( 'Whoops, you haven\'t created a form yet. Want to <a href="%s">give it a go</a>?', 'wpforms' ),
333
+ array(
334
+ 'a' => array(
335
+ 'href' => array(),
336
+ ),
337
+ )
338
+ ),
339
+ admin_url( 'admin.php?page=wpforms-builder' )
340
+ );
341
  }
342
 
343
  /**
347
  */
348
  public function prepare_items() {
349
 
350
+ // Process bulk actions if found.
351
  $this->process_bulk_actions();
352
 
353
+ // Setup the columns.
354
+ $columns = $this->get_columns();
355
 
356
+ // Hidden columns (none).
357
  $hidden = array();
358
 
359
+ // Define which columns can be sorted - form name, date.
360
  $sortable = array(
361
  'form_name' => array( 'title', false ),
362
  'created' => array( 'date', false ),
363
  );
364
 
365
+ // Set column headers.
366
  $this->_column_headers = array( $columns, $hidden, $sortable );
367
 
368
+ // Get forms.
369
  $total = wp_count_posts( 'wpforms' )->publish;
370
  $page = $this->get_pagenum();
371
  $order = isset( $_GET['order'] ) ? $_GET['order'] : 'DESC';
380
  'no_found_rows' => false,
381
  ) );
382
 
383
+ // Giddy up.
384
  $this->items = $data;
385
 
386
+ // Finalize pagination.
387
  $this->set_pagination_args(
388
  array(
389
  'total_items' => $total,
includes/admin/overview/class-overview.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Primary overview page inside the admin which lists all forms.
4
  *
@@ -26,7 +27,7 @@ class WPForms_Overview {
26
  }
27
 
28
  /**
29
- * Determing if the user is viewing the overview page, if so, party on.
30
  *
31
  * @since 1.0.0
32
  */
@@ -50,7 +51,7 @@ class WPForms_Overview {
50
  wpforms()->preview->form_preview_check();
51
 
52
  add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
53
- add_action( 'wpforms_admin_page', array( $this, 'output' ) );
54
 
55
  // Provide hook for addons.
56
  do_action( 'wpforms_overview_init' );
@@ -62,7 +63,7 @@ class WPForms_Overview {
62
  *
63
  * @since 1.0.0
64
  */
65
- function screen_options() {
66
 
67
  $screen = get_current_screen();
68
 
@@ -73,7 +74,7 @@ class WPForms_Overview {
73
  add_screen_option(
74
  'per_page',
75
  array(
76
- 'label' => __( 'Number of forms per page:', 'wpforms' ),
77
  'option' => 'wpforms_forms_per_page',
78
  'default' => apply_filters( 'wpforms_overview_per_page', 20 ),
79
  )
@@ -81,15 +82,17 @@ class WPForms_Overview {
81
  }
82
 
83
  /**
84
- * Forms table per-page screen option value
85
  *
86
  * @since 1.0.0
 
87
  * @param mixed $status
88
  * @param string $option
89
  * @param mixed $value
 
90
  * @return mixed
91
  */
92
- function screen_options_set( $status, $option, $value ) {
93
 
94
  if ( 'wpforms_forms_per_page' === $option ) {
95
  return $value;
@@ -120,8 +123,10 @@ class WPForms_Overview {
120
  <div id="wpforms-overview" class="wrap wpforms-admin-wrap">
121
 
122
  <h1 class="page-title">
123
- <?php _e( 'Forms Overview', 'wpforms' ); ?>
124
- <a href="<?php echo admin_url( 'admin.php?page=wpforms-builder&view=setup' ); ?>" class="add-new-h2 wpforms-btn-orange"><?php _e( 'Add New', 'wpforms' ); ?></a>
 
 
125
  </h1>
126
 
127
  <?php
@@ -133,9 +138,9 @@ class WPForms_Overview {
133
 
134
  <form id="wpforms-overview-table" method="get" action="<?php echo admin_url( 'admin.php?page=wpforms-overview' ); ?>">
135
 
136
- <input type="hidden" name="post_type" value="wpforms" />
137
 
138
- <input type="hidden" name="page" value="wpforms-overview" />
139
 
140
  <?php $overview_table->views(); ?>
141
  <?php $overview_table->display(); ?>
@@ -148,4 +153,5 @@ class WPForms_Overview {
148
  <?php
149
  }
150
  }
 
151
  new WPForms_Overview;
1
  <?php
2
+
3
  /**
4
  * Primary overview page inside the admin which lists all forms.
5
  *
27
  }
28
 
29
  /**
30
+ * Determine if the user is viewing the overview page, if so, party on.
31
  *
32
  * @since 1.0.0
33
  */
51
  wpforms()->preview->form_preview_check();
52
 
53
  add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
54
+ add_action( 'wpforms_admin_page', array( $this, 'output' ) );
55
 
56
  // Provide hook for addons.
57
  do_action( 'wpforms_overview_init' );
63
  *
64
  * @since 1.0.0
65
  */
66
+ public function screen_options() {
67
 
68
  $screen = get_current_screen();
69
 
74
  add_screen_option(
75
  'per_page',
76
  array(
77
+ 'label' => esc_html__( 'Number of forms per page:', 'wpforms' ),
78
  'option' => 'wpforms_forms_per_page',
79
  'default' => apply_filters( 'wpforms_overview_per_page', 20 ),
80
  )
82
  }
83
 
84
  /**
85
+ * Forms table per-page screen option value.
86
  *
87
  * @since 1.0.0
88
+ *
89
  * @param mixed $status
90
  * @param string $option
91
  * @param mixed $value
92
+ *
93
  * @return mixed
94
  */
95
+ public function screen_options_set( $status, $option, $value ) {
96
 
97
  if ( 'wpforms_forms_per_page' === $option ) {
98
  return $value;
123
  <div id="wpforms-overview" class="wrap wpforms-admin-wrap">
124
 
125
  <h1 class="page-title">
126
+ <?php esc_html_e( 'Forms Overview', 'wpforms' ); ?>
127
+ <a href="<?php echo admin_url( 'admin.php?page=wpforms-builder&view=setup' ); ?>" class="add-new-h2 wpforms-btn-orange">
128
+ <?php esc_html_e( 'Add New', 'wpforms' ); ?>
129
+ </a>
130
  </h1>
131
 
132
  <?php
138
 
139
  <form id="wpforms-overview-table" method="get" action="<?php echo admin_url( 'admin.php?page=wpforms-overview' ); ?>">
140
 
141
+ <input type="hidden" name="post_type" value="wpforms"/>
142
 
143
+ <input type="hidden" name="page" value="wpforms-overview"/>
144
 
145
  <?php $overview_table->views(); ?>
146
  <?php $overview_table->display(); ?>
153
  <?php
154
  }
155
  }
156
+
157
  new WPForms_Overview;
includes/admin/settings-api.php CHANGED
@@ -13,7 +13,9 @@
13
  * Settings output wrapper.
14
  *
15
  * @since 1.3.9
 
16
  * @param array $args
 
17
  * @return string
18
  */
19
  function wpforms_settings_output_field( $args ) {
@@ -38,17 +40,17 @@ function wpforms_settings_output_field( $args ) {
38
  $class = ! empty( $args['class'] ) ? wpforms_sanitize_classes( (array) $args['class'], true ) : '';
39
 
40
  // Build standard field markup and return.
41
- $output = '<div class="wpforms-setting-row wpforms-setting-row-' . sanitize_html_class( $args['type'] ) . ' wpforms-clear ' . $class . '" id="wpforms-setting-row-' . wpforms_sanitize_key( $args['id'] ) . '">';
42
 
43
- if ( ! empty( $args['name'] ) && empty( $args['no_label'] ) ) {
44
- $output .= '<span class="wpforms-setting-label">';
45
- $output .= '<label for="wpforms-setting-' . wpforms_sanitize_key( $args['id'] ) . '">' . esc_html( $args['name'] ) . '</label>';
46
- $output .= '</span>';
47
- }
48
-
49
- $output .= '<span class="wpforms-setting-field">';
50
- $output .= $field;
51
  $output .= '</span>';
 
 
 
 
 
52
 
53
  $output .= '</div>';
54
 
@@ -61,12 +63,16 @@ function wpforms_settings_output_field( $args ) {
61
  * If a function is missing for settings callbacks alert the user.
62
  *
63
  * @since 1.3.9
 
64
  * @param array $args Arguments passed by the setting.
 
 
65
  */
66
  function wpforms_settings_missing_callback( $args ) {
67
 
68
  return sprintf(
69
- __( 'The callback function used for the %s setting is missing.', 'wpforms' ),
 
70
  '<strong>' . wpforms_sanitize_key( $args['id'] ) . '</strong>'
71
  );
72
  }
@@ -75,11 +81,12 @@ function wpforms_settings_missing_callback( $args ) {
75
  * Settings content field callback.
76
  *
77
  * @since 1.3.9
 
78
  * @param array $args
 
79
  * @return string
80
  */
81
  function wpforms_settings_content_callback( $args ) {
82
-
83
  return ! empty( $args['content'] ) ? $args['content'] : '';
84
  }
85
 
@@ -87,15 +94,35 @@ function wpforms_settings_content_callback( $args ) {
87
  * Settings license field callback.
88
  *
89
  * @since 1.3.9
 
90
  * @param array $args
 
91
  * @return string
92
  */
93
  function wpforms_settings_license_callback( $args ) {
94
 
95
  // Lite users don't need to worry about license keys.
96
  if ( ! wpforms()->pro || ! class_exists( 'WPForms_License' ) ) {
97
- $output = '<p>' . __( 'You\'re using WPForms Lite - no license needed. Enjoy!', 'wpforms') . ' 🙂</p>';
98
- $output .= '<p>' . sprintf( __( 'To unlock more features consider <a href="%s" target="_blank" rel="noopener noreferrer" class="wpforms-upgrade-modal">upgrading to Pro</a>.</p>', 'wpforms' ), wpforms_admin_upgrade_link() );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  return $output;
100
  }
101
 
@@ -103,16 +130,32 @@ function wpforms_settings_license_callback( $args ) {
103
  $type = wpforms_setting( 'type', '', 'wpforms_license' );
104
 
105
  $output = '<input type="password" id="wpforms-setting-license-key" value="' . esc_attr( $key ) . '" />';
106
- $output .= '<button id="wpforms-setting-license-key-verify" class="wpforms-btn wpforms-btn-md wpforms-btn-orange">' . __( 'Verify Key', 'wpforms' ) . '</button>';
107
 
108
  // Offer option to deactivate the key.
109
- $class = empty( $key ) ? 'wpforms-hide' : '';
110
- $output .= '<button id="wpforms-setting-license-key-deactivate" class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey ' . $class . '">' . __( 'Deactivate Key', 'wpforms' ) . '</button>';
111
 
112
  // If we have previously looked up the license type, display it.
113
- $class = empty( $type ) ? 'wpforms-hide' : '';
114
- $output .= '<p class="type ' . $class . '">' . sprintf( __( 'Your license key type is %s.', 'wpforms' ), '<strong>' . esc_html( $type ) . '</strong>' ) .'</p>';
115
- $output .= '<p class="desc ' . $class . '">' . __( 'If your license has been upgraded or is incorrect, <a href="#" id="wpforms-setting-license-key-refresh">click here to force a refresh</a>.', 'wpforms' ) . '</p>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
 
117
  return $output;
118
  }
@@ -121,7 +164,9 @@ function wpforms_settings_license_callback( $args ) {
121
  * Settings text input field callback.
122
  *
123
  * @since 1.3.9
 
124
  * @param array $args
 
125
  * @return string
126
  */
127
  function wpforms_settings_text_callback( $args ) {
@@ -143,7 +188,9 @@ function wpforms_settings_text_callback( $args ) {
143
  * Settings select field callback.
144
  *
145
  * @since 1.3.9
 
146
  * @param array $args
 
147
  * @return string
148
  */
149
  function wpforms_settings_select_callback( $args ) {
@@ -155,17 +202,17 @@ function wpforms_settings_select_callback( $args ) {
155
  $choices = ! empty( $args['choicesjs'] ) ? true : false;
156
  $data = '';
157
 
158
- if ( $choices && !empty( $args['search'] ) ) {
159
  $data = ' data-search="true"';
160
  }
161
 
162
  $output = $choices ? '<span class="choicesjs-select-wrap">' : '';
163
  $output .= '<select id="wpforms-setting-' . $id . '" name="' . $id . '" class="' . $class . '"' . $data . '>';
164
 
165
- foreach ( $args['options'] as $option => $name ) {
166
- $selected = selected( $value, $option, false );
167
- $output .= '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( $name ) . '</option>';
168
- }
169
 
170
  $output .= '</select>';
171
  $output .= $choices ? '</span>' : '';
@@ -181,7 +228,9 @@ function wpforms_settings_select_callback( $args ) {
181
  * Settings checkbox field callback.
182
  *
183
  * @since 1.3.9
 
184
  * @param array $args
 
185
  * @return string
186
  */
187
  function wpforms_settings_checkbox_callback( $args ) {
@@ -203,7 +252,9 @@ function wpforms_settings_checkbox_callback( $args ) {
203
  * Settings radio field callback.
204
  *
205
  * @since 1.3.9
 
206
  * @param array $args
 
207
  * @return string
208
  */
209
  function wpforms_settings_radio_callback( $args ) {
@@ -216,12 +267,12 @@ function wpforms_settings_radio_callback( $args ) {
216
 
217
  foreach ( $args['options'] as $option => $name ) {
218
 
219
- $checked = checked( $value, $option, false );
220
- $output .= '<label for="wpforms-setting-' . $id . '[' . $x . ']" class="option-' . sanitize_html_class( $option ) . '">';
221
- $output .= '<input type="radio" id="wpforms-setting-' . $id . '[' . $x . ']" name="' . $id . '" value="' . esc_attr( $option ) . '" ' . $checked . '>';
222
- $output .= esc_html( $name );
223
  $output .= '</label>';
224
- $x++;
225
  }
226
 
227
  if ( ! empty( $args['desc'] ) ) {
@@ -235,7 +286,9 @@ function wpforms_settings_radio_callback( $args ) {
235
  * Settings image upload field callback.
236
  *
237
  * @since 1.3.9
 
238
  * @param array $args
 
239
  * @return string
240
  */
241
  function wpforms_settings_image_callback( $args ) {
@@ -250,7 +303,7 @@ function wpforms_settings_image_callback( $args ) {
250
  }
251
 
252
  $output .= '<input type="text" id="wpforms-setting-' . $id . '" name="' . $id . '" value="' . esc_url_raw( $value ) . '">';
253
- $output .= '<button class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey">' . __( 'Upload Image', 'wpforms' ) . '</button>';
254
 
255
  if ( ! empty( $args['desc'] ) ) {
256
  $output .= '<p class="desc">' . wp_kses_post( $args['desc'] ) . '</p>';
@@ -263,7 +316,9 @@ function wpforms_settings_image_callback( $args ) {
263
  * Settings color picker field callback.
264
  *
265
  * @since 1.3.9
 
266
  * @param array $args
 
267
  * @return string
268
  */
269
  function wpforms_settings_color_callback( $args ) {
@@ -272,7 +327,7 @@ function wpforms_settings_color_callback( $args ) {
272
  $value = wpforms_setting( $args['id'], $default );
273
  $id = wpforms_sanitize_key( $args['id'] );
274
 
275
- $output = '<input type="text" id="wpforms-setting-' . $id . '" class="wpforms-color-picker" name="' . $id . '" value="' . esc_attr( $value ) . '">';
276
 
277
  if ( ! empty( $args['desc'] ) ) {
278
  $output .= '<p class="desc">' . wp_kses_post( $args['desc'] ) . '</p>';
@@ -285,7 +340,9 @@ function wpforms_settings_color_callback( $args ) {
285
  * Settings providers field callback - this is for the Integrations tab.
286
  *
287
  * @since 1.3.9
 
288
  * @param array $args
 
289
  * @return string
290
  */
291
  function wpforms_settings_providers_callback( $args ) {
@@ -295,9 +352,9 @@ function wpforms_settings_providers_callback( $args ) {
295
 
296
  $output = '<div id="wpforms-settings-providers">';
297
 
298
- ob_start();
299
- do_action( 'wpforms_settings_providers', $active, $providers );
300
- $output .= ob_get_clean();
301
 
302
  $output .= '</div>';
303
 
13
  * Settings output wrapper.
14
  *
15
  * @since 1.3.9
16
+ *
17
  * @param array $args
18
+ *
19
  * @return string
20
  */
21
  function wpforms_settings_output_field( $args ) {
40
  $class = ! empty( $args['class'] ) ? wpforms_sanitize_classes( (array) $args['class'], true ) : '';
41
 
42
  // Build standard field markup and return.
43
+ $output = '<div class="wpforms-setting-row wpforms-setting-row-' . sanitize_html_class( $args['type'] ) . ' wpforms-clear ' . $class . '" id="wpforms-setting-row-' . wpforms_sanitize_key( $args['id'] ) . '">';
44
 
45
+ if ( ! empty( $args['name'] ) && empty( $args['no_label'] ) ) {
46
+ $output .= '<span class="wpforms-setting-label">';
47
+ $output .= '<label for="wpforms-setting-' . wpforms_sanitize_key( $args['id'] ) . '">' . esc_html( $args['name'] ) . '</label>';
 
 
 
 
 
48
  $output .= '</span>';
49
+ }
50
+
51
+ $output .= '<span class="wpforms-setting-field">';
52
+ $output .= $field;
53
+ $output .= '</span>';
54
 
55
  $output .= '</div>';
56
 
63
  * If a function is missing for settings callbacks alert the user.
64
  *
65
  * @since 1.3.9
66
+ *
67
  * @param array $args Arguments passed by the setting.
68
+ *
69
+ * @return string
70
  */
71
  function wpforms_settings_missing_callback( $args ) {
72
 
73
  return sprintf(
74
+ /* translators: %s - ID of a setting. */
75
+ esc_html__( 'The callback function used for the %s setting is missing.', 'wpforms' ),
76
  '<strong>' . wpforms_sanitize_key( $args['id'] ) . '</strong>'
77
  );
78
  }
81
  * Settings content field callback.
82
  *
83
  * @since 1.3.9
84
+ *
85
  * @param array $args
86
+ *
87
  * @return string
88
  */
89
  function wpforms_settings_content_callback( $args ) {
 
90
  return ! empty( $args['content'] ) ? $args['content'] : '';
91
  }
92
 
94
  * Settings license field callback.
95
  *
96
  * @since 1.3.9
97
+ *
98
  * @param array $args
99
+ *
100
  * @return string
101
  */
102
  function wpforms_settings_license_callback( $args ) {
103
 
104
  // Lite users don't need to worry about license keys.
105
  if ( ! wpforms()->pro || ! class_exists( 'WPForms_License' ) ) {
106
+ $output = '<p>' . esc_html__( 'You\'re using WPForms Lite - no license needed. Enjoy!', 'wpforms' ) . ' 🙂</p>';
107
+ $output .=
108
+ '<p>' .
109
+ sprintf(
110
+ wp_kses(
111
+ /* translators: %s - WPForms.com upgrade URL. */
112
+ __( 'To unlock more features consider <a href="%s" target="_blank" rel="noopener noreferrer" class="wpforms-upgrade-modal">upgrading to Pro</a>.', 'wpforms' ),
113
+ array(
114
+ 'a' => array(
115
+ 'href' => array(),
116
+ 'class' => array(),
117
+ 'target' => array(),
118
+ 'rel' => array(),
119
+ ),
120
+ )
121
+ ),
122
+ wpforms_admin_upgrade_link()
123
+ ) .
124
+ '</p>';
125
+
126
  return $output;
127
  }
128
 
130
  $type = wpforms_setting( 'type', '', 'wpforms_license' );
131
 
132
  $output = '<input type="password" id="wpforms-setting-license-key" value="' . esc_attr( $key ) . '" />';
133
+ $output .= '<button id="wpforms-setting-license-key-verify" class="wpforms-btn wpforms-btn-md wpforms-btn-orange">' . esc_html__( 'Verify Key', 'wpforms' ) . '</button>';
134
 
135
  // Offer option to deactivate the key.
136
+ $class = empty( $key ) ? 'wpforms-hide' : '';
137
+ $output .= '<button id="wpforms-setting-license-key-deactivate" class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey ' . $class . '">' . esc_html__( 'Deactivate Key', 'wpforms' ) . '</button>';
138
 
139
  // If we have previously looked up the license type, display it.
140
+ $class = empty( $type ) ? 'wpforms-hide' : '';
141
+ $output .= '<p class="type ' . $class . '">' .
142
+ sprintf(
143
+ /* translators: $s - license type. */
144
+ esc_html__( 'Your license key type is %s.', 'wpforms' ),
145
+ '<strong>' . esc_html( $type ) . '</strong>'
146
+ ) .
147
+ '</p>';
148
+ $output .= '<p class="desc ' . $class . '">' .
149
+ wp_kses(
150
+ __( 'If your license has been upgraded or is incorrect, <a href="#" id="wpforms-setting-license-key-refresh">click here to force a refresh</a>.', 'wpforms' ),
151
+ array(
152
+ 'a' => array(
153
+ 'href' => array(),
154
+ 'id' => array(),
155
+ ),
156
+ )
157
+ ) .
158
+ '</p>';
159
 
160
  return $output;
161
  }
164
  * Settings text input field callback.
165
  *
166
  * @since 1.3.9
167
+ *
168
  * @param array $args
169
+ *
170
  * @return string
171
  */
172
  function wpforms_settings_text_callback( $args ) {
188
  * Settings select field callback.
189
  *
190
  * @since 1.3.9
191
+ *
192
  * @param array $args
193
+ *
194
  * @return string
195
  */
196
  function wpforms_settings_select_callback( $args ) {
202
  $choices = ! empty( $args['choicesjs'] ) ? true : false;
203
  $data = '';
204
 
205
+ if ( $choices && ! empty( $args['search'] ) ) {
206
  $data = ' data-search="true"';
207
  }
208
 
209
  $output = $choices ? '<span class="choicesjs-select-wrap">' : '';
210
  $output .= '<select id="wpforms-setting-' . $id . '" name="' . $id . '" class="' . $class . '"' . $data . '>';
211
 
212
+ foreach ( $args['options'] as $option => $name ) {
213
+ $selected = selected( $value, $option, false );
214
+ $output .= '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( $name ) . '</option>';
215
+ }
216
 
217
  $output .= '</select>';
218
  $output .= $choices ? '</span>' : '';
228
  * Settings checkbox field callback.
229
  *
230
  * @since 1.3.9
231
+ *
232
  * @param array $args
233
+ *
234
  * @return string
235
  */
236
  function wpforms_settings_checkbox_callback( $args ) {
252
  * Settings radio field callback.
253
  *
254
  * @since 1.3.9
255
+ *
256
  * @param array $args
257
+ *
258
  * @return string
259
  */
260
  function wpforms_settings_radio_callback( $args ) {
267
 
268
  foreach ( $args['options'] as $option => $name ) {
269
 
270
+ $checked = checked( $value, $option, false );
271
+ $output .= '<label for="wpforms-setting-' . $id . '[' . $x . ']" class="option-' . sanitize_html_class( $option ) . '">';
272
+ $output .= '<input type="radio" id="wpforms-setting-' . $id . '[' . $x . ']" name="' . $id . '" value="' . esc_attr( $option ) . '" ' . $checked . '>';
273
+ $output .= esc_html( $name );
274
  $output .= '</label>';
275
+ $x ++;
276
  }
277
 
278
  if ( ! empty( $args['desc'] ) ) {
286
  * Settings image upload field callback.
287
  *
288
  * @since 1.3.9
289
+ *
290
  * @param array $args
291
+ *
292
  * @return string
293
  */
294
  function wpforms_settings_image_callback( $args ) {
303
  }
304
 
305
  $output .= '<input type="text" id="wpforms-setting-' . $id . '" name="' . $id . '" value="' . esc_url_raw( $value ) . '">';
306
+ $output .= '<button class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey">' . esc_html__( 'Upload Image', 'wpforms' ) . '</button>';
307
 
308
  if ( ! empty( $args['desc'] ) ) {
309
  $output .= '<p class="desc">' . wp_kses_post( $args['desc'] ) . '</p>';
316
  * Settings color picker field callback.
317
  *
318
  * @since 1.3.9
319
+ *
320
  * @param array $args
321
+ *
322
  * @return string
323
  */
324
  function wpforms_settings_color_callback( $args ) {
327
  $value = wpforms_setting( $args['id'], $default );
328
  $id = wpforms_sanitize_key( $args['id'] );
329
 
330
+ $output = '<input type="text" id="wpforms-setting-' . $id . '" class="wpforms-color-picker" name="' . $id . '" value="' . esc_attr( $value ) . '">';
331
 
332
  if ( ! empty( $args['desc'] ) ) {
333
  $output .= '<p class="desc">' . wp_kses_post( $args['desc'] ) . '</p>';
340
  * Settings providers field callback - this is for the Integrations tab.
341
  *
342
  * @since 1.3.9
343
+ *
344
  * @param array $args
345
+ *
346
  * @return string
347
  */
348
  function wpforms_settings_providers_callback( $args ) {
352
 
353
  $output = '<div id="wpforms-settings-providers">';
354
 
355
+ ob_start();
356
+ do_action( 'wpforms_settings_providers', $active, $providers );
357
+ $output .= ob_get_clean();
358
 
359
  $output .= '</div>';
360
 
includes/class-conditional-logic-core.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Conditional logic core.
4
  *
@@ -21,7 +22,7 @@ class WPForms_Conditional_Logic_Core {
21
  * One is the loneliest number that you'll ever do.
22
  *
23
  * @since 1.1.0
24
- * @var object
25
  */
26
  private static $instance;
27
 
@@ -60,9 +61,7 @@ class WPForms_Conditional_Logic_Core {
60
  */
61
  public function builder_assets() {
62
 
63
- $suffix = ( ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) || wpforms_debug() ) ? '' : '.min';
64
-
65
- // CSS
66
  wp_enqueue_style(
67
  'wpforms-builder-conditionals',
68
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-conditional-logic-core.css',
@@ -70,10 +69,10 @@ class WPForms_Conditional_Logic_Core {
70
  WPFORMS_VERSION
71
  );
72
 
73
- // JS
74
  wp_enqueue_script(
75
  'wpforms-builder-conditionals',
76
- WPFORMS_PLUGIN_URL . 'assets/js/admin-builder-conditional-logic-core' . $suffix . '.js',
77
  array( 'jquery', 'serialize-object' ),
78
  WPFORMS_VERSION,
79
  false
@@ -149,25 +148,25 @@ class WPForms_Conditional_Logic_Core {
149
  public function builder_block( $args = array(), $echo = true ) {
150
 
151
  if ( ! empty( $args['form'] ) ) {
152
- $form_fields = wpforms_get_form_fields( $args['form'], array( 'text', 'textarea', 'select', 'radio', 'email', 'url', 'checkbox', 'number', 'payment-multiple', 'payment-select', 'hidden' ) );
153
  } else {
154
  $form_fields = array();
155
  }
156
 
157
  // Define data.
158
  $type = ! empty( $args['type'] ) ? $args['type'] : 'field';
159
- $panel = ! empty( $args['panel'] ) ? $args['panel'] : false; // notifications
160
- $parent = ! empty( $args['parent'] ) ? $args['parent'] : false; // settings
161
  $subsection = ! empty( $args['subsection'] ) ? $args['subsection'] : false;
162
- $action_desc = ! empty( $args['action_desc'] ) ? $args['action_desc'] : __( 'this field if', 'wpforms' );
163
  $field = ! empty( $args['field'] ) ? $args['field'] : false;
164
  $reference = ! empty( $args['reference'] ) ? $args['reference'] : '';
165
  $data_attrs = '';
166
 
167
  if ( empty( $args['actions'] ) ) {
168
  $actions = array(
169
- 'show' => __( 'Show', 'wpforms' ),
170
- 'hide' => __( 'Hide', 'wpforms' ),
171
  );
172
  } else {
173
  $actions = array_map( 'esc_attr', $args['actions'] );
@@ -183,7 +182,9 @@ class WPForms_Conditional_Logic_Core {
183
  );
184
 
185
  if ( 'field' === $type ) {
186
- // This settings block is for a field.
 
 
187
 
188
  // Define more data for this field.
189
  $fields_instance = $args['instance'];
@@ -202,8 +203,8 @@ class WPForms_Conditional_Logic_Core {
202
  array(
203
  'slug' => 'conditional_logic',
204
  'value' => $enabled,
205
- 'desc' => __( 'Enable conditional logic', 'wpforms' ),
206
- 'tooltip' => __( 'Check this option to enable conditional logic on this field.', 'wpforms' ),
207
  'data' => array(
208
  'name' => $field_name,
209
  'actions' => $actions,
@@ -259,9 +260,9 @@ class WPForms_Conditional_Logic_Core {
259
  $panel,
260
  'conditional_logic',
261
  $args['form'],
262
- __( 'Enable conditional logic', 'wpforms' ),
263
  array(
264
- 'tooltip' => __( 'Check this option to enable conditional logic.', 'wpforms' ),
265
  'parent' => $parent,
266
  'subsection' => $subsection,
267
  'class' => 'wpforms-conditionals-enable-toggle',
@@ -304,7 +305,7 @@ class WPForms_Conditional_Logic_Core {
304
  // Individual group open markup.
305
  echo '<div class="wpforms-conditional-group" data-reference="' . $reference . '">';
306
 
307
- echo'<table><tbody>';
308
 
309
  foreach ( $group as $rule_id => $rule ) :
310
 
@@ -327,7 +328,7 @@ class WPForms_Conditional_Logic_Core {
327
  $rule_id
328
  );
329
 
330
- echo '<option value="">' . __( '-- Select Field --', 'wpforms' ) . '</option>';
331
 
332
  if ( ! empty( $form_fields ) ) {
333
 
@@ -368,18 +369,18 @@ class WPForms_Conditional_Logic_Core {
368
  );
369
 
370
  $operator = ! empty( $rule['operator'] ) ? $rule['operator'] : false;
371
- printf( '<option value="==" %s>%s</option>', selected( $operator, '==', false ), __( 'is', 'wpforms' ) );
372
- printf( '<option value="!=" %s>%s</option>', selected( $operator, '!=', false ), __( 'is not', 'wpforms' ) );
373
- printf( '<option value="e" %s>%s</option>', selected( $operator, 'e', false ), __( 'empty', 'wpforms' ) );
374
- printf( '<option value="!e" %s>%s</option>', selected( $operator, '!e', false ), __( 'not empty', 'wpforms' ) );
375
 
376
  // Only text based fields support
377
  // these additional operators.
378
- if ( ! $selected || ( in_array( $form_fields[ $rule['field'] ]['type'], array( 'text', 'textarea', 'email', 'url', 'number', 'hidden' ), true ) ) ) {
379
- printf( '<option value="c" %s>%s</option>', selected( $operator, 'c', false ), __( 'contains', 'wpforms' ) );
380
- printf( '<option value="!c" %s>%s</option>', selected( $operator, '!c', false ), __( 'does not contain', 'wpforms' ) );
381
- printf( '<option value="^" %s>%s</option>', selected( $operator, '^', false ), __( 'starts with', 'wpforms' ) );
382
- printf( '<option value="~" %s>%s</option>', selected( $operator, '~', false ), __( 'ends with', 'wpforms' ) );
383
  }
384
 
385
  echo '</select>';
@@ -393,7 +394,7 @@ class WPForms_Conditional_Logic_Core {
393
 
394
  if ( isset( $rule['field'] ) ) {
395
 
396
- // For empty/not empty fields the field value input is not needed so we disable it
397
  if ( ! empty( $rule['operator'] ) && in_array( $rule['operator'], array( 'e', '!e' ), true ) ) {
398
  $disabled = 'disabled';
399
  $rule['value'] = '';
@@ -401,10 +402,13 @@ class WPForms_Conditional_Logic_Core {
401
  $disabled = '';
402
  }
403
 
404
- if ( isset( $form_fields[ $rule['field'] ]['type'] ) && in_array( $form_fields[ $rule['field'] ]['type'], array( 'text', 'textarea', 'email', 'url', 'number', 'hidden' ), true ) ) {
 
 
405
 
406
  printf(
407
- '<input type="text" name="%s[conditionals][%s][%s][value]" value="%s" class="wpforms-conditional-value" %s>',
 
408
  $field_name,
409
  $group_id,
410
  $rule_id,
@@ -422,7 +426,7 @@ class WPForms_Conditional_Logic_Core {
422
  $disabled
423
  );
424
 
425
- echo '<option value="">' . __( '-- Select Choice --', 'wpforms' ) . '</option>';
426
 
427
  if ( ! empty( $form_fields[ $rule['field'] ]['choices'] ) ) {
428
 
@@ -442,8 +446,8 @@ class WPForms_Conditional_Logic_Core {
442
 
443
  // Rule actions.
444
  echo '<td class="actions">';
445
- echo '<button class="wpforms-conditional-rule-add" title="' . __( 'Create new rule', 'wpforms' ) . '">' . __( 'AND', 'wpforms') . '</button>';
446
- echo '<button class="wpforms-conditional-rule-delete" title="' . __( 'Delete rule', 'wpforms' ) . '"><i class="fa fa-times-circle" aria-hidden="true"></i></button>';
447
  echo '</td>';
448
 
449
  echo '</tr>'; // Close individual rule table row.
@@ -458,7 +462,7 @@ class WPForms_Conditional_Logic_Core {
458
 
459
  endforeach; // End foreach() for conditional logic groups.
460
 
461
- echo '<button class="wpforms-conditional-groups-add">' . __( 'Add rule group', 'wpforms' ) . '</button>';
462
 
463
  echo '</div>'; // Close Groups wrap markup.
464
 
@@ -535,7 +539,7 @@ class WPForms_Conditional_Logic_Core {
535
  $rule_operator = $rule['operator'];
536
  $rule_value = isset( $rule['value'] ) ? $rule['value'] : '';
537
 
538
- if ( in_array( $fields[ $rule_field ]['type'], array( 'text', 'textarea', 'email', 'url', 'number', 'hidden' ), true ) ) {
539
 
540
  // Text based fields.
541
  $left = trim( strtolower( $fields[ $rule_field ]['value'] ) );
@@ -575,7 +579,11 @@ class WPForms_Conditional_Logic_Core {
575
  // Selector based fields.
576
  $provided_id = false;
577
 
578
- if ( in_array( $fields[ $rule_field ]['type'], array( 'payment-multiple', 'payment-select' ), true ) && isset( $fields[ $rule_field ]['value_raw'] ) && '' != $fields[ $rule_field ]['value_raw'] ) {
 
 
 
 
579
 
580
  // Payment Multiple field stores the option key, so
581
  // we can reference that easily.
@@ -595,6 +603,9 @@ class WPForms_Conditional_Logic_Core {
595
  }
596
 
597
  foreach ( $form_data['fields'][ $rule_field ]['choices'] as $key => $choice ) {
 
 
 
598
  foreach ( $values as $value ) {
599
  $value = wpforms_decode_string( $value );
600
 
@@ -610,13 +621,13 @@ class WPForms_Conditional_Logic_Core {
610
 
611
  switch ( $rule_operator ) {
612
  case '==':
613
- case 'c': // BC, no longer available
614
- case '^': // BC, no longer available
615
- case '~': // BC, no longer available
616
  $pass_rule = in_array( $right, $left );
617
  break;
618
  case '!=':
619
- case '!c': // BC, no longer available
620
  $pass_rule = ! in_array( $right, $left );
621
  break;
622
  case 'e':
@@ -658,7 +669,6 @@ class WPForms_Conditional_Logic_Core {
658
  * @return bool
659
  */
660
  public function conditionals_process( $fields, $form_data, $conditionals ) {
661
-
662
  return $this->process( $fields, $form_data, $conditionals );
663
  }
664
  }
@@ -670,10 +680,10 @@ class WPForms_Conditional_Logic_Core {
670
  * to declare the global.
671
  *
672
  * @since 1.1.0
673
- * @return object
 
674
  */
675
  function wpforms_conditional_logic() {
676
-
677
  return WPForms_Conditional_Logic_Core::instance();
678
  }
679
 
1
  <?php
2
+
3
  /**
4
  * Conditional logic core.
5
  *
22
  * One is the loneliest number that you'll ever do.
23
  *
24
  * @since 1.1.0
25
+ * @var WPForms_Conditional_Logic_Core
26
  */
27
  private static $instance;
28
 
61
  */
62
  public function builder_assets() {
63
 
64
+ // CSS.
 
 
65
  wp_enqueue_style(
66
  'wpforms-builder-conditionals',
67
  WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-conditional-logic-core.css',
69
  WPFORMS_VERSION
70
  );
71
 
72
+ // JavaScript.
73
  wp_enqueue_script(
74
  'wpforms-builder-conditionals',
75
+ WPFORMS_PLUGIN_URL . 'assets/js/admin-builder-conditional-logic-core.js',
76
  array( 'jquery', 'serialize-object' ),
77
  WPFORMS_VERSION,
78
  false
148
  public function builder_block( $args = array(), $echo = true ) {
149
 
150
  if ( ! empty( $args['form'] ) ) {
151
+ $form_fields = wpforms_get_form_fields( $args['form'], array( 'text', 'textarea', 'select', 'radio', 'email', 'url', 'checkbox', 'number', 'payment-multiple', 'payment-select', 'hidden', 'rating' ) );
152
  } else {
153
  $form_fields = array();
154
  }
155
 
156
  // Define data.
157
  $type = ! empty( $args['type'] ) ? $args['type'] : 'field';
158
+ $panel = ! empty( $args['panel'] ) ? $args['panel'] : false; // notifications.
159
+ $parent = ! empty( $args['parent'] ) ? $args['parent'] : false; // settings.
160
  $subsection = ! empty( $args['subsection'] ) ? $args['subsection'] : false;
161
+ $action_desc = ! empty( $args['action_desc'] ) ? $args['action_desc'] : esc_html__( 'this field if', 'wpforms' );
162
  $field = ! empty( $args['field'] ) ? $args['field'] : false;
163
  $reference = ! empty( $args['reference'] ) ? $args['reference'] : '';
164
  $data_attrs = '';
165
 
166
  if ( empty( $args['actions'] ) ) {
167
  $actions = array(
168
+ 'show' => esc_html__( 'Show', 'wpforms' ),
169
+ 'hide' => esc_html__( 'Hide', 'wpforms' ),
170
  );
171
  } else {
172
  $actions = array_map( 'esc_attr', $args['actions'] );
182
  );
183
 
184
  if ( 'field' === $type ) {
185
+ /*
186
+ * This settings block is for a field.
187
+ */
188
 
189
  // Define more data for this field.
190
  $fields_instance = $args['instance'];
203
  array(
204
  'slug' => 'conditional_logic',
205
  'value' => $enabled,
206
+ 'desc' => esc_html__( 'Enable conditional logic', 'wpforms' ),
207
+ 'tooltip' => esc_html__( 'Check this option to enable conditional logic on this field.', 'wpforms' ),
208
  'data' => array(
209
  'name' => $field_name,
210
  'actions' => $actions,
260
  $panel,
261
  'conditional_logic',
262
  $args['form'],
263
+ esc_html__( 'Enable conditional logic', 'wpforms' ),
264
  array(
265
+ 'tooltip' => esc_html__( 'Check this option to enable conditional logic.', 'wpforms' ),
266
  'parent' => $parent,
267
  'subsection' => $subsection,
268
  'class' => 'wpforms-conditionals-enable-toggle',
305
  // Individual group open markup.
306
  echo '<div class="wpforms-conditional-group" data-reference="' . $reference . '">';
307
 
308
+ echo '<table><tbody>';
309
 
310
  foreach ( $group as $rule_id => $rule ) :
311
 
328
  $rule_id
329
  );
330
 
331
+ echo '<option value="">' . esc_html__( '-- Select Field --', 'wpforms' ) . '</option>';
332
 
333
  if ( ! empty( $form_fields ) ) {
334
 
369
  );
370
 
371
  $operator = ! empty( $rule['operator'] ) ? $rule['operator'] : false;
372
+ printf( '<option value="==" %s>%s</option>', selected( $operator, '==', false ), esc_html__( 'is', 'wpforms' ) );
373
+ printf( '<option value="!=" %s>%s</option>', selected( $operator, '!=', false ), esc_html__( 'is not', 'wpforms' ) );
374
+ printf( '<option value="e" %s>%s</option>', selected( $operator, 'e', false ), esc_html__( 'empty', 'wpforms' ) );
375
+ printf( '<option value="!e" %s>%s</option>', selected( $operator, '!e', false ), esc_html__( 'not empty', 'wpforms' ) );
376
 
377
  // Only text based fields support
378
  // these additional operators.
379
+ if ( ! $selected || ( in_array( $form_fields[ $rule['field'] ]['type'], array( 'text', 'textarea', 'email', 'url', 'number', 'hidden' ), true ) ) ) {
380
+ printf( '<option value="c" %s>%s</option>', selected( $operator, 'c', false ), esc_html__( 'contains', 'wpforms' ) );
381
+ printf( '<option value="!c" %s>%s</option>', selected( $operator, '!c', false ), esc_html__( 'does not contain', 'wpforms' ) );
382
+ printf( '<option value="^" %s>%s</option>', selected( $operator, '^', false ), esc_html__( 'starts with', 'wpforms' ) );
383
+ printf( '<option value="~" %s>%s</option>', selected( $operator, '~', false ), esc_html__( 'ends with', 'wpforms' ) );
384
  }
385
 
386
  echo '</select>';
394
 
395
  if ( isset( $rule['field'] ) ) {
396
 
397
+ // For empty/not empty fields the field value input is not needed so we disable it.
398
  if ( ! empty( $rule['operator'] ) && in_array( $rule['operator'], array( 'e', '!e' ), true ) ) {
399
  $disabled = 'disabled';
400
  $rule['value'] = '';
402
  $disabled = '';
403
  }
404
 
405
+ if ( isset( $form_fields[ $rule['field'] ]['type'] ) && in_array( $form_fields[ $rule['field'] ]['type'], array( 'text', 'textarea', 'email', 'url', 'number', 'hidden', 'rating' ), true ) ) {
406
+
407
+ $type = in_array( $form_fields[ $rule['field'] ]['type'], array( 'rating' ), true ) ? 'number' : 'text';
408
 
409
  printf(
410
+ '<input type="%s" name="%s[conditionals][%s][%s][value]" value="%s" class="wpforms-conditional-value" %s>',
411
+ $type,
412
  $field_name,
413
  $group_id,
414
  $rule_id,
426
  $disabled
427
  );
428
 
429
+ echo '<option value="">' . esc_html__( '-- Select Choice --', 'wpforms' ) . '</option>';
430
 
431
  if ( ! empty( $form_fields[ $rule['field'] ]['choices'] ) ) {
432
 
446
 
447
  // Rule actions.
448
  echo '<td class="actions">';
449
+ echo '<button class="wpforms-conditional-rule-add" title="' . esc_attr__( 'Create new rule', 'wpforms' ) . '">' . esc_html__( 'AND', 'wpforms' ) . '</button>';
450
+ echo '<button class="wpforms-conditional-rule-delete" title="' . esc_attr__( 'Delete rule', 'wpforms' ) . '"><i class="fa fa-times-circle" aria-hidden="true"></i></button>';
451
  echo '</td>';
452
 
453
  echo '</tr>'; // Close individual rule table row.
462
 
463
  endforeach; // End foreach() for conditional logic groups.
464
 
465
+ echo '<button class="wpforms-conditional-groups-add">' . esc_html__( 'Add rule group', 'wpforms' ) . '</button>';
466
 
467
  echo '</div>'; // Close Groups wrap markup.
468
 
539
  $rule_operator = $rule['operator'];
540
  $rule_value = isset( $rule['value'] ) ? $rule['value'] : '';
541
 
542
+ if ( in_array( $fields[ $rule_field ]['type'], array( 'text', 'textarea', 'email', 'url', 'number', 'hidden', 'rating' ), true ) ) {
543
 
544
  // Text based fields.
545
  $left = trim( strtolower( $fields[ $rule_field ]['value'] ) );
579
  // Selector based fields.
580
  $provided_id = false;
581
 
582
+ if (
583
+ in_array( $fields[ $rule_field ]['type'], array( 'payment-multiple', 'payment-select' ), true ) &&
584
+ isset( $fields[ $rule_field ]['value_raw'] ) &&
585
+ '' != $fields[ $rule_field ]['value_raw']
586
+ ) {
587
 
588
  // Payment Multiple field stores the option key, so
589
  // we can reference that easily.
603
  }
604
 
605
  foreach ( $form_data['fields'][ $rule_field ]['choices'] as $key => $choice ) {
606
+
607
+ $choice = array_map( 'sanitize_text_field', $choice );
608
+
609
  foreach ( $values as $value ) {
610
  $value = wpforms_decode_string( $value );
611
 
621
 
622
  switch ( $rule_operator ) {
623
  case '==':
624
+ case 'c': // BC, no longer available.
625
+ case '^': // BC, no longer available.
626
+ case '~': // BC, no longer available.
627
  $pass_rule = in_array( $right, $left );
628
  break;
629
  case '!=':
630
+ case '!c': // BC, no longer available.
631
  $pass_rule = ! in_array( $right, $left );
632
  break;
633
  case 'e':
669
  * @return bool
670
  */
671
  public function conditionals_process( $fields, $form_data, $conditionals ) {
 
672
  return $this->process( $fields, $form_data, $conditionals );
673
  }
674
  }
680
  * to declare the global.
681
  *
682
  * @since 1.1.0
683
+ *
684
+ * @return WPForms_Conditional_Logic_Core
685
  */
686
  function wpforms_conditional_logic() {
 
687
  return WPForms_Conditional_Logic_Core::instance();
688
  }
689
 
includes/class-fields.php CHANGED
@@ -59,6 +59,7 @@ class WPForms_Fields {
59
  'date-time',
60
  'number',
61
  'page-break',
 
62
  'file-upload',
63
  'payment-single',
64
  'payment-multiple',
59
  'date-time',
60
  'number',
61
  'page-break',
62
+ 'rating',
63
  'file-upload',
64
  'payment-single',
65
  'payment-multiple',
includes/class-form.php CHANGED
@@ -63,13 +63,13 @@ class WPForms_Form_Handler {
63
  */
64
  public function admin_bar( $wp_admin_bar ) {
65
 
66
- if ( ! is_admin_bar_showing() || ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
67
  return;
68
  }
69
 
70
  $args = array(
71
  'id' => 'wpforms',
72
- 'title' => __( 'WPForms', 'wpforms' ),
73
  'href' => admin_url( 'admin.php?page=wpforms-builder' ),
74
  'parent' => 'new-content',
75
  );
@@ -139,8 +139,8 @@ class WPForms_Form_Handler {
139
  */
140
  public function delete( $ids = array() ) {
141
 
142
- // Check for permissions
143
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
144
  return false;
145
  }
146
 
@@ -181,12 +181,12 @@ class WPForms_Form_Handler {
181
  */
182
  public function add( $title = '', $args = array(), $data = array() ) {
183
 
184
- // Check for permissions
185
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
186
  return false;
187
  }
188
 
189
- // Must have a title
190
  if ( empty( $title ) ) {
191
  return false;
192
  }
@@ -232,11 +232,11 @@ class WPForms_Form_Handler {
232
  */
233
  public function update( $form_id = '', $data = array(), $args = array() ) {
234
 
235
- // This filter breaks forms if they contain HTML
236
  remove_filter( 'content_save_pre', 'balanceTags', 50 );
237
 
238
- // Check for permissions
239
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
240
  return false;
241
  }
242
 
@@ -325,7 +325,7 @@ class WPForms_Form_Handler {
325
  public function duplicate( $ids = array() ) {
326
 
327
  // Check for permissions.
328
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
329
  return false;
330
  }
331
 
@@ -395,7 +395,7 @@ class WPForms_Form_Handler {
395
  public function next_field_id( $form_id ) {
396
 
397
  // Check for permissions.
398
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
399
  return false;
400
  }
401
 
@@ -458,14 +458,14 @@ class WPForms_Form_Handler {
458
  *
459
  * @param int $form_id
460
  * @param string $meta_key
461
- * @param string $meta_value
462
  *
463
  * @return bool
464
  */
465
  public function update_meta( $form_id, $meta_key, $meta_value ) {
466
 
467
- // Check for permissions
468
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
469
  return false;
470
  }
471
 
@@ -508,8 +508,8 @@ class WPForms_Form_Handler {
508
  */
509
  public function delete_meta( $form_id, $meta_key ) {
510
 
511
- // Check for permissions
512
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
513
  return false;
514
  }
515
 
63
  */
64
  public function admin_bar( $wp_admin_bar ) {
65
 
66
+ if ( ! is_admin_bar_showing() || ! wpforms_current_user_can() ) {
67
  return;
68
  }
69
 
70
  $args = array(
71
  'id' => 'wpforms',
72
+ 'title' => esc_html__( 'WPForms', 'wpforms' ),
73
  'href' => admin_url( 'admin.php?page=wpforms-builder' ),
74
  'parent' => 'new-content',
75
  );
139
  */
140
  public function delete( $ids = array() ) {
141
 
142
+ // Check for permissions.
143
+ if ( ! wpforms_current_user_can() ) {
144
  return false;
145
  }
146
 
181
  */
182
  public function add( $title = '', $args = array(), $data = array() ) {
183
 
184
+ // Check for permissions.
185
+ if ( ! wpforms_current_user_can() ) {
186
  return false;
187
  }
188
 
189
+ // Must have a title.
190
  if ( empty( $title ) ) {
191
  return false;
192
  }
232
  */
233
  public function update( $form_id = '', $data = array(), $args = array() ) {
234
 
235
+ // This filter breaks forms if they contain HTML.
236
  remove_filter( 'content_save_pre', 'balanceTags', 50 );
237
 
238
+ // Check for permissions.
239
+ if ( ! wpforms_current_user_can() ) {
240
  return false;
241
  }
242
 
325
  public function duplicate( $ids = array() ) {
326
 
327
  // Check for permissions.
328
+ if ( ! wpforms_current_user_can() ) {
329
  return false;
330
  }
331
 
395
  public function next_field_id( $form_id ) {
396
 
397
  // Check for permissions.
398
+ if ( ! wpforms_current_user_can() ) {
399
  return false;
400
  }
401
 
458
  *
459
  * @param int $form_id
460
  * @param string $meta_key
461
+ * @param mixed $meta_value
462
  *
463
  * @return bool
464
  */
465
  public function update_meta( $form_id, $meta_key, $meta_value ) {
466
 
467
+ // Check for permissions.
468
+ if ( ! wpforms_current_user_can() ) {
469
  return false;
470
  }
471
 
508
  */
509
  public function delete_meta( $form_id, $meta_key ) {
510
 
511
+ // Check for permissions.
512
+ if ( ! wpforms_current_user_can() ) {
513
  return false;
514
  }
515
 
includes/class-frontend.php CHANGED
@@ -1002,17 +1002,17 @@ class WPForms_Frontend {
1002
 
1003
  // Define base strings.
1004
  $strings = array(
1005
- 'val_required' => wpforms_setting( 'validation-required', __( 'This field is required.', 'wpforms' ) ),
1006
- 'val_url' => wpforms_setting( 'validation-url', __( 'Please enter a valid URL.', 'wpforms' ) ),
1007
- 'val_email' => wpforms_setting( 'validation-email', __( 'Please enter a valid email address.', 'wpforms' ) ),
1008
- 'val_number' => wpforms_setting( 'validation-number', __( 'Please enter a valid number.', 'wpforms' ) ),
1009
- 'val_confirm' => wpforms_setting( 'validation-confirm', __( 'Field values do not match.', 'wpforms' ) ),
1010
- 'val_fileextension' => wpforms_setting( 'validation-fileextension', __( 'File type is not allowed.', 'wpforms' ) ),
1011
- 'val_filesize' => wpforms_setting( 'validation-filesize', __( 'File exceeds max size allowed.', 'wpforms' ) ),
1012
- 'val_time12h' => wpforms_setting( 'validation-time12h', __( 'Please enter time in 12-hour AM/PM format (eg 8:45 AM).', 'wpforms' ) ),
1013
- 'val_time24h' => wpforms_setting( 'validation-time24h', __( 'Please enter time in 24-hour format (eg 22:45).', 'wpforms' ) ),
1014
- 'val_requiredpayment' => wpforms_setting( 'validation-requiredpayment', __( 'Payment is required.', 'wpforms' ) ),
1015
- 'val_creditcard' => wpforms_setting( 'validation-creditcard', __( 'Please enter a valid credit card number.', 'wpforms' ) ),
1016
  );
1017
  // Include payment related strings if needed.
1018
  if ( function_exists( 'wpforms_get_currencies' ) ) {
@@ -1075,7 +1075,15 @@ class WPForms_Frontend {
1075
  $text = apply_filters(
1076
  'wpforms_frontend_shortcode_amp_text',
1077
  sprintf(
1078
- __( '<a href="%s">Go to the full page</a> to view and submit the form.', 'wpforms' ),
 
 
 
 
 
 
 
 
1079
  $link
1080
  )
1081
  );
1002
 
1003
  // Define base strings.
1004
  $strings = array(
1005
+ 'val_required' => wpforms_setting( 'validation-required', esc_html__( 'This field is required.', 'wpforms' ) ),
1006
+ 'val_url' => wpforms_setting( 'validation-url', esc_html__( 'Please enter a valid URL.', 'wpforms' ) ),
1007
+ 'val_email' => wpforms_setting( 'validation-email', esc_html__( 'Please enter a valid email address.', 'wpforms' ) ),
1008
+ 'val_number' => wpforms_setting( 'validation-number', esc_html__( 'Please enter a valid number.', 'wpforms' ) ),
1009
+ 'val_confirm' => wpforms_setting( 'validation-confirm', esc_html__( 'Field values do not match.', 'wpforms' ) ),
1010
+ 'val_fileextension' => wpforms_setting( 'validation-fileextension', esc_html__( 'File type is not allowed.', 'wpforms' ) ),
1011
+ 'val_filesize' => wpforms_setting( 'validation-filesize', esc_html__( 'File exceeds max size allowed.', 'wpforms' ) ),
1012
+ 'val_time12h' => wpforms_setting( 'validation-time12h', esc_html__( 'Please enter time in 12-hour AM/PM format (eg 8:45 AM).', 'wpforms' ) ),
1013
+ 'val_time24h' => wpforms_setting( 'validation-time24h', esc_html__( 'Please enter time in 24-hour format (eg 22:45).', 'wpforms' ) ),
1014
+ 'val_requiredpayment' => wpforms_setting( 'validation-requiredpayment', esc_html__( 'Payment is required.', 'wpforms' ) ),
1015
+ 'val_creditcard' => wpforms_setting( 'validation-creditcard', esc_html__( 'Please enter a valid credit card number.', 'wpforms' ) ),
1016
  );
1017
  // Include payment related strings if needed.
1018
  if ( function_exists( 'wpforms_get_currencies' ) ) {
1075
  $text = apply_filters(
1076
  'wpforms_frontend_shortcode_amp_text',
1077
  sprintf(
1078
+ wp_kses(
1079
+ /* translators: %s - URL to a non-amp version of a page with the form. */
1080
+ __( '<a href="%s">Go to the full page</a> to view and submit the form.', 'wpforms' ),
1081
+ array(
1082
+ 'a' => array(
1083
+ 'href' => array(),
1084
+ ),
1085
+ )
1086
+ ),
1087
  $link
1088
  )
1089
  );
includes/class-logging.php CHANGED
@@ -35,7 +35,7 @@ class WPForms_Logging {
35
  public function register_post_type() {
36
 
37
  $log_args = array(
38
- 'labels' => array( 'name' => __( 'WPForms Logs', 'wpforms' ), 'menu_name' => __( 'Logs', 'wpforms' ) ),
39
  'public' => false,
40
  'exclude_from_search' => true,
41
  'publicly_queryable' => false,
@@ -111,7 +111,7 @@ class WPForms_Logging {
111
  * @return int Log ID
112
  */
113
  public function add( $title = '', $message = '', $parent = 0, $type = null, $meta = '' ) {
114
-
115
  $log_data = array(
116
  'post_title' => $title,
117
  'post_content' => $message,
@@ -333,4 +333,4 @@ class WPForms_Logging {
333
  }
334
  }
335
  }
336
- }
35
  public function register_post_type() {
36
 
37
  $log_args = array(
38
+ 'labels' => array( 'name' => esc_html__( 'WPForms Logs', 'wpforms' ), 'menu_name' => esc_html__( 'Logs', 'wpforms' ) ),
39
  'public' => false,
40
  'exclude_from_search' => true,
41
  'publicly_queryable' => false,
111
  * @return int Log ID
112
  */
113
  public function add( $title = '', $message = '', $parent = 0, $type = null, $meta = '' ) {
114
+
115
  $log_data = array(
116
  'post_title' => $title,
117
  'post_content' => $message,
333
  }
334
  }
335
  }
336
+ }
includes/class-preview.php CHANGED
@@ -37,7 +37,7 @@ class WPForms_Preview {
37
  }
38
 
39
  // Check for authenticated user with correct capabilities.
40
- if ( ! is_user_logged_in() || ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
41
  return;
42
  }
43
 
@@ -120,9 +120,9 @@ class WPForms_Preview {
120
  $(document).on('click', '.toggle-empty', function(e) {
121
  e.preventDefault();
122
  if ( ! showEmpty ) {
123
- $(this).text('<?php _e( 'Hide empty fields', 'wpforms' ); ?>');
124
  } else {
125
- $(this).text('<?php _e( 'Show empty fields', 'wpforms' ); ?>');
126
  }
127
  $('.field.empty').toggle();
128
  showEmpty = !showEmpty;
@@ -131,9 +131,9 @@ class WPForms_Preview {
131
  $(document).on('click', '.toggle-notes', function(e) {
132
  e.preventDefault();
133
  if ( ! showNotes ) {
134
- $(this).text('<?php _e( 'Hide notes', 'wpforms' ); ?>');
135
  } else {
136
- $(this).text('<?php _e( 'Show notes', 'wpforms' ); ?>');
137
  }
138
  $('.notes, .notes-head').toggle();
139
  showNotes = !showNotes;
@@ -142,9 +142,9 @@ class WPForms_Preview {
142
  $(document).on('click', '.toggle-view', function(e) {
143
  e.preventDefault();
144
  if ( ! showCompact ) {
145
- $(this).text('<?php _e( 'Normal view', 'wpforms' ); ?>');
146
  } else {
147
- $(this).text('<?php _e( 'Compact view', 'wpforms' ); ?>');
148
  }
149
  $('body').toggleClass('compact');
150
  showCompact = !showCompact;
@@ -155,16 +155,17 @@ class WPForms_Preview {
155
  <body class="wp-core-ui">
156
  <div class="wpforms-preview" id="print">
157
  <h1>
158
- <?php echo sanitize_text_field( $form_data['settings']['form_title'] ); ?> <span> - <?php printf( __( 'Entry #%d', 'wpforms' ), absint( $entry->entry_id ) ); ?></span>
 
159
  <div class="buttons">
160
- <a href="" class="button button-secondary close-window"><?php _e( 'Close', 'wpforms' ); ?></a>
161
- <a href="" class="button button-primary print"><?php _e( 'Print', 'wpforms' ); ?></a>
162
  </div>
163
  </h1>
164
  <div class="actions">
165
- <a href="#" class="toggle-empty"><?php _e( 'Show empty fields', 'wpforms' ); ?></a> &bull;
166
- <?php echo ! empty( $entry->entry_notes ) ? '<a href="#" class="toggle-notes">' . __( 'Show notes', 'wpforms' ) . '</a> &bull;' : ''; ?>
167
- <a href="#" class="toggle-view"><?php _e( 'Compact view', 'wpforms' ); ?></a>
168
  </div>
169
  <?php
170
  $fields = apply_filters( 'wpforms_entry_single_data', wpforms_decode( $entry->fields ), $entry, $form_data );
@@ -172,7 +173,7 @@ class WPForms_Preview {
172
  if ( empty( $fields ) ) {
173
 
174
  // Whoops, no fields! This shouldn't happen under normal use cases.
175
- echo '<p class="no-fields">' . __( 'This entry does not have any fields', 'wpforms' ) . '</p>';
176
 
177
  } else {
178
 
@@ -189,11 +190,11 @@ class WPForms_Preview {
189
 
190
  echo '<p class="field-name">';
191
  /* translators: %d - field ID */
192
- echo ! empty( $field['name'] ) ? wp_strip_all_tags( $field['name'] ) : sprintf( __( 'Field ID #%d', 'wpforms' ), absint( $field['id'] ) );
193
  echo '</p>';
194
 
195
  echo '<p class="field-value">';
196
- echo ! empty( $field_value ) ? nl2br( make_clickable( $field_value ) ) : __( 'Empty', 'wpforms' );
197
  echo '</p>';
198
 
199
  echo '</div>';
@@ -204,7 +205,7 @@ class WPForms_Preview {
204
 
205
  if ( ! empty( $entry->entry_notes ) ) {
206
 
207
- echo '<h2 class="notes-head">' . __( 'Notes', 'wpforms' ) . '</h2>';
208
 
209
  echo '<div class="notes">';
210
 
@@ -218,7 +219,7 @@ class WPForms_Preview {
218
  echo '<div class="note">';
219
  echo '<div class="note-byline">';
220
  /* translators: %1$s - user name; %2$s - date */
221
- printf( __( 'Added by %1$s on %2$s', 'wpforms' ), $user_name, $date );
222
  echo '</div>';
223
  echo '<div class="note-text">' . wp_kses_post( $note->data ) . '</div>';
224
  echo '</div>';
@@ -244,14 +245,14 @@ class WPForms_Preview {
244
  return;
245
  }
246
 
247
- // Verify page exits
248
  $preview = get_option( 'wpforms_preview_page' );
249
 
250
  if ( $preview ) {
251
 
252
  $preview_page = get_post( $preview );
253
 
254
- // Check to see if the visibility has been changed, if so correct it
255
  if ( ! empty( $preview_page ) && 'private' !== $preview_page->post_status ) {
256
  $preview_page->post_status = 'private';
257
  wp_update_post( $preview_page );
@@ -262,14 +263,14 @@ class WPForms_Preview {
262
  }
263
  }
264
 
265
- // Create the custom preview page
266
- $content = '<p>' . __( 'This is the WPForms preview page. All your form previews will be handled on this page.', 'wpforms' ) . '</p>';
267
- $content .= '<p>' . __( 'The page is set to private, so it is not publicly accessible. Please do not delete this page :) .', 'wpforms' ) . '</p>';
268
  $args = array(
269
  'post_type' => 'page',
270
  'post_name' => 'wpforms-preview',
271
  'post_author' => 1,
272
- 'post_title' => __( 'WPForms Preview', 'wpforms' ),
273
  'post_status' => 'private',
274
  'post_content' => $content,
275
  'comment_status' => 'closed',
@@ -336,11 +337,11 @@ class WPForms_Preview {
336
  public function form_preview_query( $posts, $query ) {
337
 
338
  // One last cap check, just for fun.
339
- if ( ! is_user_logged_in() || ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
340
  return $posts;
341
  }
342
 
343
- // Only target main query
344
  if ( ! $query->is_main_query() ) {
345
  return $posts;
346
  }
@@ -357,7 +358,7 @@ class WPForms_Preview {
357
  return $posts;
358
  }
359
 
360
- // Get the form details
361
  $form = wpforms()->form->get(
362
  absint( $_GET['form_id'] ),
363
  array(
@@ -369,14 +370,15 @@ class WPForms_Preview {
369
  return $posts;
370
  }
371
 
372
- // Customize the page content
373
- $title = ! empty( $form['settings']['form_title'] ) ? sanitize_text_field( $form['settings']['form_title'] ) : __( 'Form', 'wpforms' );
374
  $shortcode = ! empty( $form['id'] ) ? '[wpforms id="' . absint( $form['id'] ) . '"]' : '';
375
- $content = __( 'This is a preview of your form. This page is not publicly accessible.', 'wpforms' );
376
  if ( ! empty( $_GET['new_window'] ) ) {
377
- $content .= ' <a href="javascript:window.close();">' . __( 'Close this window', 'wpforms' ) . '.</a>';
378
  }
379
- $posts[0]->post_title = sprintf( _x( '%s Preview', 'Form name', 'wpforms' ), $title );
 
380
  $posts[0]->post_content = $content . $shortcode;
381
  $posts[0]->post_status = 'public';
382
 
@@ -390,7 +392,7 @@ class WPForms_Preview {
390
  *
391
  * @param WP_Query $query
392
  */
393
- function form_preview_hide( $query ) {
394
 
395
  if (
396
  $query->is_main_query() &&
37
  }
38
 
39
  // Check for authenticated user with correct capabilities.
40
+ if ( ! is_user_logged_in() || ! wpforms_current_user_can() ) {
41
  return;
42
  }
43
 
120
  $(document).on('click', '.toggle-empty', function(e) {
121
  e.preventDefault();
122
  if ( ! showEmpty ) {
123
+ $(this).text('<?php esc_html_e( 'Hide empty fields', 'wpforms' ); ?>');
124
  } else {
125
+ $(this).text('<?php esc_html_e( 'Show empty fields', 'wpforms' ); ?>');
126
  }
127
  $('.field.empty').toggle();
128
  showEmpty = !showEmpty;
131
  $(document).on('click', '.toggle-notes', function(e) {
132
  e.preventDefault();
133
  if ( ! showNotes ) {
134
+ $(this).text('<?php esc_html_e( 'Hide notes', 'wpforms' ); ?>');
135
  } else {
136
+ $(this).text('<?php esc_html_e( 'Show notes', 'wpforms' ); ?>');
137
  }
138
  $('.notes, .notes-head').toggle();
139
  showNotes = !showNotes;
142
  $(document).on('click', '.toggle-view', function(e) {
143
  e.preventDefault();
144
  if ( ! showCompact ) {
145
+ $(this).text('<?php esc_html_e( 'Normal view', 'wpforms' ); ?>');
146
  } else {
147
+ $(this).text('<?php esc_html_e( 'Compact view', 'wpforms' ); ?>');
148
  }
149
  $('body').toggleClass('compact');
150
  showCompact = !showCompact;
155
  <body class="wp-core-ui">
156
  <div class="wpforms-preview" id="print">
157
  <h1>
158
+ <?php /* translators: %d - entry ID. */ ?>
159
+ <?php echo sanitize_text_field( $form_data['settings']['form_title'] ); ?> <span> - <?php printf( esc_html__( 'Entry #%d', 'wpforms' ), absint( $entry->entry_id ) ); ?></span>
160
  <div class="buttons">
161
+ <a href="" class="button button-secondary close-window"><?php esc_html_e( 'Close', 'wpforms' ); ?></a>
162
+ <a href="" class="button button-primary print"><?php esc_html_e( 'Print', 'wpforms' ); ?></a>
163
  </div>
164
  </h1>
165
  <div class="actions">
166
+ <a href="#" class="toggle-empty"><?php esc_html_e( 'Show empty fields', 'wpforms' ); ?></a> &bull;
167
+ <?php echo ! empty( $entry->entry_notes ) ? '<a href="#" class="toggle-notes">' . esc_html__( 'Show notes', 'wpforms' ) . '</a> &bull;' : ''; ?>
168
+ <a href="#" class="toggle-view"><?php esc_html_e( 'Compact view', 'wpforms' ); ?></a>
169
  </div>
170
  <?php
171
  $fields = apply_filters( 'wpforms_entry_single_data', wpforms_decode( $entry->fields ), $entry, $form_data );
173
  if ( empty( $fields ) ) {
174
 
175
  // Whoops, no fields! This shouldn't happen under normal use cases.
176
+ echo '<p class="no-fields">' . esc_html__( 'This entry does not have any fields', 'wpforms' ) . '</p>';
177
 
178
  } else {
179
 
190
 
191
  echo '<p class="field-name">';
192
  /* translators: %d - field ID */
193
+ echo ! empty( $field['name'] ) ? wp_strip_all_tags( $field['name'] ) : sprintf( esc_html__( 'Field ID #%d', 'wpforms' ), absint( $field['id'] ) );
194
  echo '</p>';
195
 
196
  echo '<p class="field-value">';
197
+ echo ! empty( $field_value ) ? nl2br( make_clickable( $field_value ) ) : esc_html__( 'Empty', 'wpforms' );
198
  echo '</p>';
199
 
200
  echo '</div>';
205
 
206
  if ( ! empty( $entry->entry_notes ) ) {
207
 
208
+ echo '<h2 class="notes-head">' . esc_html__( 'Notes', 'wpforms' ) . '</h2>';
209
 
210
  echo '<div class="notes">';
211
 
219
  echo '<div class="note">';
220
  echo '<div class="note-byline">';
221
  /* translators: %1$s - user name; %2$s - date */
222
+ printf( esc_html__( 'Added by %1$s on %2$s', 'wpforms' ), $user_name, $date );
223
  echo '</div>';
224
  echo '<div class="note-text">' . wp_kses_post( $note->data ) . '</div>';
225
  echo '</div>';
245
  return;
246
  }
247
 
248
+ // Verify page exits.
249
  $preview = get_option( 'wpforms_preview_page' );
250
 
251
  if ( $preview ) {
252
 
253
  $preview_page = get_post( $preview );
254
 
255
+ // Check to see if the visibility has been changed, if so correct it.
256
  if ( ! empty( $preview_page ) && 'private' !== $preview_page->post_status ) {
257
  $preview_page->post_status = 'private';
258
  wp_update_post( $preview_page );
263
  }
264
  }
265
 
266
+ // Create the custom preview page.
267
+ $content = '<p>' . esc_html__( 'This is the WPForms preview page. All your form previews will be handled on this page.', 'wpforms' ) . '</p>';
268
+ $content .= '<p>' . esc_html__( 'The page is set to private, so it is not publicly accessible. Please do not delete this page :) .', 'wpforms' ) . '</p>';
269
  $args = array(
270
  'post_type' => 'page',
271
  'post_name' => 'wpforms-preview',
272
  'post_author' => 1,
273
+ 'post_title' => esc_html__( 'WPForms Preview', 'wpforms' ),
274
  'post_status' => 'private',
275
  'post_content' => $content,
276
  'comment_status' => 'closed',
337
  public function form_preview_query( $posts, $query ) {
338
 
339
  // One last cap check, just for fun.
340
+ if ( ! is_user_logged_in() || ! wpforms_current_user_can() ) {
341
  return $posts;
342
  }
343
 
344
+ // Only target main query.
345
  if ( ! $query->is_main_query() ) {
346
  return $posts;
347
  }
358
  return $posts;
359
  }
360
 
361
+ // Get the form details.
362
  $form = wpforms()->form->get(
363
  absint( $_GET['form_id'] ),
364
  array(
370
  return $posts;
371
  }
372
 
373
+ // Customize the page content.
374
+ $title = ! empty( $form['settings']['form_title'] ) ? sanitize_text_field( $form['settings']['form_title'] ) : esc_html__( 'Form', 'wpforms' );
375
  $shortcode = ! empty( $form['id'] ) ? '[wpforms id="' . absint( $form['id'] ) . '"]' : '';
376
+ $content = esc_html__( 'This is a preview of your form. This page is not publicly accessible.', 'wpforms' );
377
  if ( ! empty( $_GET['new_window'] ) ) {
378
+ $content .= ' <a href="javascript:window.close();">' . esc_html__( 'Close this window', 'wpforms' ) . '.</a>';
379
  }
380
+ /* translators: %s - Form name. */
381
+ $posts[0]->post_title = sprintf( esc_html__( '%s Preview', 'wpforms' ), $title );
382
  $posts[0]->post_content = $content . $shortcode;
383
  $posts[0]->post_status = 'public';
384
 
392
  *
393
  * @param WP_Query $query
394
  */
395
+ public function form_preview_hide( $query ) {
396
 
397
  if (
398
  $query->is_main_query() &&
includes/class-process.php CHANGED
@@ -77,7 +77,7 @@ class WPForms_Process {
77
 
78
  // Validate form is real and active (published).
79
  if ( ! $form || 'publish' !== $form->post_status ) {
80
- $this->errors[ $form_id ]['header'] = __( 'Invalid form.', 'wpforms' );
81
  return;
82
  }
83
 
@@ -114,10 +114,10 @@ class WPForms_Process {
114
  $data = wp_remote_get( 'https://www.google.com/recaptcha/api/siteverify?secret=' . $secret_key . '&response=' . $_POST['g-recaptcha-response'] );
115
  $data = json_decode( wp_remote_retrieve_body( $data ) );
116
  if ( empty( $data->success ) ) {
117
- $this->errors[ $form_id ]['recaptcha'] = __( 'Incorrect reCAPTCHA, please try again.', 'wpforms' );
118
  }
119
  } else {
120
- $this->errors[ $form_id ]['recaptcha'] = __( 'reCAPTCHA is required.', 'wpforms' );
121
  }
122
  }
123
 
@@ -129,7 +129,7 @@ class WPForms_Process {
129
 
130
  if ( ! empty( $errors[ $form_id ] ) ) {
131
  if ( empty( $this->errors[ $form_id ]['header'] ) ) {
132
- $errors[ $form_id ]['header'] = __( 'Form has not been submitted, please see the errors below.', 'wpforms' );
133
  }
134
  $this->errors = $errors;
135
  return;
@@ -141,7 +141,7 @@ class WPForms_Process {
141
  '1' == $form_data['settings']['honeypot'] &&
142
  ! empty( $entry['hp'] )
143
  ) {
144
- $honeypot = __( 'WPForms honeypot field triggered.', 'wpforms' );
145
  }
146
 
147
  $honeypot = apply_filters( 'wpforms_process_honeypot', $honeypot, $this->fields, $entry, $form_data );
@@ -179,7 +179,7 @@ class WPForms_Process {
179
  // One last error check - don't proceed if there are any errors.
180
  if ( ! empty( $this->errors[ $form_id ] ) ) {
181
  if ( empty( $this->errors[ $form_id ]['header'] ) ) {
182
- $this->errors[ $form_id ]['header'] = __( 'Form has not been submitted, please see the errors below.', 'wpforms' );
183
  }
184
  return;
185
  }
@@ -316,7 +316,7 @@ class WPForms_Process {
316
  * @param array $fields
317
  * @param array $entry
318
  * @param array $form_data
319
- * @param array $entry_id
320
  * @param string $context
321
  */
322
  public function entry_email( $fields, $entry, $form_data, $entry_id, $context = '' ) {
@@ -329,7 +329,7 @@ class WPForms_Process {
329
  return;
330
  }
331
 
332
- // Provide the opportunity to override via a filter
333
  if ( ! apply_filters( 'wpforms_entry_email', true, $fields, $entry, $form_data ) ) {
334
  return;
335
  }
@@ -362,12 +362,13 @@ class WPForms_Process {
362
  continue;
363
  }
364
 
365
- $email = array();
366
 
367
  // Setup email properties.
 
 
368
  $email['address'] = explode( ',', apply_filters( 'wpforms_process_smart_tags', $notification['email'], $form_data, $fields, $this->entry_id ) );
369
  $email['address'] = array_map( 'sanitize_email', $email['address'] );
370
- $email['subject'] = ! empty( $notification['subject'] ) ? $notification['subject'] : sprintf( _x( 'New %s Entry', 'Form name', 'wpforms ' ), $form_data['settings']['form_title'] );
371
  $email['sender_address'] = ! empty( $notification['sender_address'] ) ? $notification['sender_address'] : get_option( 'admin_email' );
372
  $email['sender_name'] = ! empty( $notification['sender_name'] ) ? $notification['sender_name'] : get_bloginfo( 'name' );
373
  $email['replyto'] = ! empty( $notification['replyto'] ) ? $notification['replyto'] : false;
@@ -376,12 +377,12 @@ class WPForms_Process {
376
 
377
  // Create new email.
378
  $emails = new WPForms_WP_Emails;
379
- $emails->__set( 'form_data', $form_data );
380
- $emails->__set( 'fields', $fields );
381
- $emails->__set( 'entry_id', $this->entry_id );
382
- $emails->__set( 'from_name', $email['sender_name'] );
383
  $emails->__set( 'from_address', $email['sender_address'] );
384
- $emails->__set( 'reply_to', $email['replyto'] );
385
 
386
  // Maybe include CC.
387
  if ( ! empty( $notification['carboncopy'] ) && wpforms_setting( 'email-carbon-copy', false ) ) {
77
 
78
  // Validate form is real and active (published).
79
  if ( ! $form || 'publish' !== $form->post_status ) {
80
+ $this->errors[ $form_id ]['header'] = esc_html__( 'Invalid form.', 'wpforms' );
81
  return;
82
  }
83
 
114
  $data = wp_remote_get( 'https://www.google.com/recaptcha/api/siteverify?secret=' . $secret_key . '&response=' . $_POST['g-recaptcha-response'] );
115
  $data = json_decode( wp_remote_retrieve_body( $data ) );
116
  if ( empty( $data->success ) ) {
117
+ $this->errors[ $form_id ]['recaptcha'] = esc_html__( 'Incorrect reCAPTCHA, please try again.', 'wpforms' );
118
  }
119
  } else {
120
+ $this->errors[ $form_id ]['recaptcha'] = esc_html__( 'reCAPTCHA is required.', 'wpforms' );
121
  }
122
  }
123
 
129
 
130
  if ( ! empty( $errors[ $form_id ] ) ) {
131
  if ( empty( $this->errors[ $form_id ]['header'] ) ) {
132
+ $errors[ $form_id ]['header'] = esc_html__( 'Form has not been submitted, please see the errors below.', 'wpforms' );
133
  }
134
  $this->errors = $errors;
135
  return;
141
  '1' == $form_data['settings']['honeypot'] &&
142
  ! empty( $entry['hp'] )
143
  ) {
144
+ $honeypot = esc_html__( 'WPForms honeypot field triggered.', 'wpforms' );
145
  }
146
 
147
  $honeypot = apply_filters( 'wpforms_process_honeypot', $honeypot, $this->fields, $entry, $form_data );
179
  // One last error check - don't proceed if there are any errors.
180
  if ( ! empty( $this->errors[ $form_id ] ) ) {
181
  if ( empty( $this->errors[ $form_id ]['header'] ) ) {
182
+ $this->errors[ $form_id ]['header'] = esc_html__( 'Form has not been submitted, please see the errors below.', 'wpforms' );
183
  }
184
  return;
185
  }
316
  * @param array $fields
317
  * @param array $entry
318
  * @param array $form_data
319
+ * @param int $entry_id
320
  * @param string $context
321
  */
322
  public function entry_email( $fields, $entry, $form_data, $entry_id, $context = '' ) {
329
  return;
330
  }
331
 
332
+ // Provide the opportunity to override via a filter.
333
  if ( ! apply_filters( 'wpforms_entry_email', true, $fields, $entry, $form_data ) ) {
334
  return;
335
  }
362
  continue;
363
  }
364
 
365
+ $email = array();
366
 
367
  // Setup email properties.
368
+ /* translators: %s - form name. */
369
+ $email['subject'] = ! empty( $notification['subject'] ) ? $notification['subject'] : sprintf( esc_html__( 'New %s Entry', 'wpforms' ), $form_data['settings']['form_title'] );
370
  $email['address'] = explode( ',', apply_filters( 'wpforms_process_smart_tags', $notification['email'], $form_data, $fields, $this->entry_id ) );
371
  $email['address'] = array_map( 'sanitize_email', $email['address'] );
 
372
  $email['sender_address'] = ! empty( $notification['sender_address'] ) ? $notification['sender_address'] : get_option( 'admin_email' );
373
  $email['sender_name'] = ! empty( $notification['sender_name'] ) ? $notification['sender_name'] : get_bloginfo( 'name' );
374
  $email['replyto'] = ! empty( $notification['replyto'] ) ? $notification['replyto'] : false;
377
 
378
  // Create new email.
379
  $emails = new WPForms_WP_Emails;
380
+ $emails->__set( 'form_data', $form_data );
381
+ $emails->__set( 'fields', $fields );
382
+ $emails->__set( 'entry_id', $this->entry_id );
383
+ $emails->__set( 'from_name', $email['sender_name'] );
384
  $emails->__set( 'from_address', $email['sender_address'] );
385
+ $emails->__set( 'reply_to', $email['replyto'] );
386
 
387
  // Maybe include CC.
388
  if ( ! empty( $notification['carboncopy'] ) && wpforms_setting( 'email-carbon-copy', false ) ) {
includes/class-providers.php CHANGED
@@ -28,10 +28,10 @@ class WPForms_Providers {
28
  */
29
  public function init() {
30
 
31
- // Parent class template
32
  require_once WPFORMS_PLUGIN_DIR . 'includes/providers/class-base.php';
33
 
34
- // Load default templates on WP init
35
  add_action( 'wpforms_loaded', array( $this, 'load' ) );
36
  }
37
 
@@ -49,6 +49,9 @@ class WPForms_Providers {
49
  $providers = apply_filters( 'wpforms_load_providers', $providers );
50
 
51
  foreach ( $providers as $provider ) {
 
 
 
52
  require_once WPFORMS_PLUGIN_DIR . 'includes/providers/class-' . $provider . '.php';
53
  }
54
  }
28
  */
29
  public function init() {
30
 
31
+ // Parent class template.
32
  require_once WPFORMS_PLUGIN_DIR . 'includes/providers/class-base.php';
33
 
34
+ // Load default templates on WP init.
35
  add_action( 'wpforms_loaded', array( $this, 'load' ) );
36
  }
37
 
49
  $providers = apply_filters( 'wpforms_load_providers', $providers );
50
 
51
  foreach ( $providers as $provider ) {
52
+
53
+ $provider = sanitize_file_name( $provider );
54
+
55
  require_once WPFORMS_PLUGIN_DIR . 'includes/providers/class-' . $provider . '.php';
56
  }
57
  }
includes/class-smart-tags.php CHANGED
@@ -32,27 +32,27 @@ class WPForms_Smart_Tags {
32
  public function get( $return = 'array' ) {
33
 
34
  $tags = array(
35
- 'admin_email' => __( 'Site Administrator Email', 'wpforms' ),
36
- 'entry_id' => __( 'Entry ID', 'wpforms' ),
37
- 'form_id' => __( 'Form ID', 'wpforms' ),
38
- 'form_name' => __( 'Form Name', 'wpforms' ),
39
- 'page_title' => __( 'Embedded Post/Page Title', 'wpforms' ),
40
- 'page_url' => __( 'Embedded Post Page URL', 'wpforms' ),
41
- 'page_id' => __( 'Embedded Post/Page ID', 'wpforms' ),
42
- 'date format="m/d/Y"' => __( 'Date', 'wpforms' ),
43
- 'query_var key=""' => __( 'Query String Variable', 'wpforms' ),
44
- 'user_ip' => __( 'User IP Address', 'wpforms' ),
45
- 'user_id' => __( 'User ID', 'wpforms' ),
46
- 'user_display' => __( 'User Name', 'wpforms' ),
47
- 'user_email' => __( 'User Email', 'wpforms' ),
48
- 'author_id' => __( 'Author ID', 'wpforms' ),
49
- 'author_display' => __( 'Author Name', 'wpforms' ),
50
- 'author_email' => __( 'Author Email', 'wpforms' ),
51
- 'url_referer' => __( 'Referrer URL', 'wpforms' ),
52
- 'url_login' => __( 'Login URL', 'wpforms' ),
53
- 'url_logout' => __( 'Logout URL', 'wpforms' ),
54
- 'url_register' => __( 'Register URL', 'wpforms' ),
55
- 'url_lost_password' => __( 'Lost Password URL', 'wpforms' ),
56
  );
57
 
58
  $tags = apply_filters( 'wpforms_smart_tags', $tags );
32
  public function get( $return = 'array' ) {
33
 
34
  $tags = array(
35
+ 'admin_email' => esc_html__( 'Site Administrator Email', 'wpforms' ),
36
+ 'entry_id' => esc_html__( 'Entry ID', 'wpforms' ),
37
+ 'form_id' => esc_html__( 'Form ID', 'wpforms' ),
38
+ 'form_name' => esc_html__( 'Form Name', 'wpforms' ),
39
+ 'page_title' => esc_html__( 'Embedded Post/Page Title', 'wpforms' ),
40
+ 'page_url' => esc_html__( 'Embedded Post Page URL', 'wpforms' ),
41
+ 'page_id' => esc_html__( 'Embedded Post/Page ID', 'wpforms' ),
42
+ 'date format="m/d/Y"' => esc_html__( 'Date', 'wpforms' ),
43
+ 'query_var key=""' => esc_html__( 'Query String Variable', 'wpforms' ),
44
+ 'user_ip' => esc_html__( 'User IP Address', 'wpforms' ),
45
+ 'user_id' => esc_html__( 'User ID', 'wpforms' ),
46
+ 'user_display' => esc_html__( 'User Name', 'wpforms' ),
47
+ 'user_email' => esc_html__( 'User Email', 'wpforms' ),
48
+ 'author_id' => esc_html__( 'Author ID', 'wpforms' ),
49
+ 'author_display' => esc_html__( 'Author Name', 'wpforms' ),
50
+ 'author_email' => esc_html__( 'Author Email', 'wpforms' ),
51
+ 'url_referer' => esc_html__( 'Referrer URL', 'wpforms' ),
52
+ 'url_login' => esc_html__( 'Login URL', 'wpforms' ),
53
+ 'url_logout' => esc_html__( 'Logout URL', 'wpforms' ),
54
+ 'url_register' => esc_html__( 'Register URL', 'wpforms' ),
55
+ 'url_lost_password' => esc_html__( 'Lost Password URL', 'wpforms' ),
56
  );
57
 
58
  $tags = apply_filters( 'wpforms_smart_tags', $tags );
includes/class-templates.php CHANGED
@@ -54,6 +54,8 @@ class WPForms_Templates {
54
 
55
  foreach ( $templates as $template ) {
56
 
 
 
57
  if ( file_exists( WPFORMS_PLUGIN_DIR . 'includes/templates/class-' . $template . '.php' ) ) {
58
  require_once WPFORMS_PLUGIN_DIR . 'includes/templates/class-' . $template . '.php';
59
  } elseif ( file_exists( WPFORMS_PLUGIN_DIR . 'pro/includes/templates/class-' . $template . '.php' ) ) {
54
 
55
  foreach ( $templates as $template ) {
56
 
57
+ $template = sanitize_file_name( $template );
58
+
59
  if ( file_exists( WPFORMS_PLUGIN_DIR . 'includes/templates/class-' . $template . '.php' ) ) {
60
  require_once WPFORMS_PLUGIN_DIR . 'includes/templates/class-' . $template . '.php';
61
  } elseif ( file_exists( WPFORMS_PLUGIN_DIR . 'pro/includes/templates/class-' . $template . '.php' ) ) {
includes/class-widget.php CHANGED
@@ -40,7 +40,7 @@ class WPForms_Widget extends WP_Widget {
40
  // Widget basics.
41
  $widget_ops = array(
42
  'classname' => $widget_slug,
43
- 'description' => _x( 'Display a form.', 'Widget', 'wpforms' ),
44
  );
45
 
46
  // Widget controls.
@@ -49,7 +49,7 @@ class WPForms_Widget extends WP_Widget {
49
  );
50
 
51
  // load widget
52
- parent::__construct( $widget_slug, _x( 'WPForms', 'Widget', 'wpforms' ), $widget_ops, $control_ops );
53
  }
54
 
55
  /**
@@ -117,7 +117,7 @@ class WPForms_Widget extends WP_Widget {
117
  ?>
118
  <p>
119
  <label for="<?php echo $this->get_field_id( 'title' ); ?>">
120
- <?php _ex( 'Title:', 'Widget', 'wpforms' ); ?>
121
  </label>
122
  <input type="text"
123
  id="<?php echo $this->get_field_id( 'title' ); ?>"
@@ -126,19 +126,19 @@ class WPForms_Widget extends WP_Widget {
126
  </p>
127
  <p>
128
  <label for="<?php echo $this->get_field_id( 'form_id' ); ?>">
129
- <?php _ex( 'Form:', 'Widget', 'wpforms' ); ?>
130
  </label>
131
  <select id="<?php echo $this->get_field_id( 'form_id' ); ?>" name="<?php echo $this->get_field_name( 'form_id' ); ?>" class="widefat">
132
  <?php
133
  $forms = wpforms()->form->get();
134
  if ( ! empty( $forms ) ) {
135
- echo '<option value="" selected disabled>' . _x( 'Select your form', 'Widget', 'wpforms' ) . '</option>';
136
 
137
  foreach ( $forms as $form ) {
138
  echo '<option value="' . esc_attr( $form->ID ) . '" ' . selected( $instance['form_id'], $form->ID, false ) . '>' . esc_html( $form->post_title ) . '</option>';
139
  }
140
  } else {
141
- echo '<option value="">' . _x( 'No forms', 'Widget', 'wpforms' ) . '</option>';
142
  }
143
  ?>
144
  </select>
@@ -146,11 +146,11 @@ class WPForms_Widget extends WP_Widget {
146
  <p>
147
  <input type="checkbox" id="<?php echo $this->get_field_id( 'show_title' ); ?>"
148
  name="<?php echo $this->get_field_name( 'show_title' ); ?>" <?php checked( '1', $instance['show_title'] ); ?>>
149
- <label for="<?php echo $this->get_field_id( 'show_title' ); ?>"><?php _ex( 'Display form name', 'Widget', 'wpforms' ); ?></label>
150
  <br>
151
  <input type="checkbox" id="<?php echo $this->get_field_id( 'show_desc' ); ?>"
152
  name="<?php echo $this->get_field_name( 'show_desc' ); ?>" <?php checked( '1', $instance['show_desc'] ); ?>>
153
- <label for="<?php echo $this->get_field_id( 'show_desc' ); ?>"><?php _ex( 'Display form description', 'Widget', 'wpforms' ); ?></label>
154
  </p>
155
  <?php
156
  }
40
  // Widget basics.
41
  $widget_ops = array(
42
  'classname' => $widget_slug,
43
+ 'description' => esc_html_x( 'Display a form.', 'Widget', 'wpforms' ),
44
  );
45
 
46
  // Widget controls.
49
  );
50
 
51
  // load widget
52
+ parent::__construct( $widget_slug, esc_html_x( 'WPForms', 'Widget', 'wpforms' ), $widget_ops, $control_ops );
53
  }
54
 
55
  /**
117
  ?>
118
  <p>
119
  <label for="<?php echo $this->get_field_id( 'title' ); ?>">
120
+ <?php esc_html( _ex( 'Title:', 'Widget', 'wpforms' ) ); ?>
121
  </label>
122
  <input type="text"
123
  id="<?php echo $this->get_field_id( 'title' ); ?>"
126
  </p>
127
  <p>
128
  <label for="<?php echo $this->get_field_id( 'form_id' ); ?>">
129
+ <?php esc_html( _ex( 'Form:', 'Widget', 'wpforms' ) ); ?>
130
  </label>
131
  <select id="<?php echo $this->get_field_id( 'form_id' ); ?>" name="<?php echo $this->get_field_name( 'form_id' ); ?>" class="widefat">
132
  <?php
133
  $forms = wpforms()->form->get();
134
  if ( ! empty( $forms ) ) {
135
+ echo '<option value="" selected disabled>' . esc_html_x( 'Select your form', 'Widget', 'wpforms' ) . '</option>';
136
 
137
  foreach ( $forms as $form ) {
138
  echo '<option value="' . esc_attr( $form->ID ) . '" ' . selected( $instance['form_id'], $form->ID, false ) . '>' . esc_html( $form->post_title ) . '</option>';
139
  }
140
  } else {
141
+ echo '<option value="">' . esc_html_x( 'No forms', 'Widget', 'wpforms' ) . '</option>';
142
  }
143
  ?>
144
  </select>
146
  <p>
147
  <input type="checkbox" id="<?php echo $this->get_field_id( 'show_title' ); ?>"
148
  name="<?php echo $this->get_field_name( 'show_title' ); ?>" <?php checked( '1', $instance['show_title'] ); ?>>
149
+ <label for="<?php echo $this->get_field_id( 'show_title' ); ?>"><?php esc_html( _ex( 'Display form name', 'Widget', 'wpforms' ) ); ?></label>
150
  <br>
151
  <input type="checkbox" id="<?php echo $this->get_field_id( 'show_desc' ); ?>"
152
  name="<?php echo $this->get_field_name( 'show_desc' ); ?>" <?php checked( '1', $instance['show_desc'] ); ?>>
153
+ <label for="<?php echo $this->get_field_id( 'show_desc' ); ?>"><?php esc_html( _ex( 'Display form description', 'Widget', 'wpforms' ) ); ?></label>
154
  </p>
155
  <?php
156
  }
includes/emails/class-emails.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * This class handles all (notification) emails sent by WPForms.
7
  *
8
- * Heavily influceded by the great AffiliateWP plugin by Pippin Williamson.
9
  * https://github.com/AffiliateWP/AffiliateWP/blob/master/includes/emails/class-affwp-emails.php
10
  *
11
  * @package WPForms
@@ -255,7 +255,7 @@ class WPForms_WP_Emails {
255
  public function get_headers() {
256
 
257
  if ( ! $this->headers ) {
258
- $this->headers = "From: {$this->get_from_name()} <{$this->get_from_address()}>\r\n";
259
  if ( $this->get_reply_to() ) {
260
  $this->headers .= "Reply-To: {$this->get_reply_to()}\r\n";
261
  }
@@ -282,6 +282,7 @@ class WPForms_WP_Emails {
282
  if ( false === $this->html ) {
283
  $message = $this->process_tag( $message, false, true );
284
  $message = str_replace( '{all_fields}', $this->wpforms_html_field_value( false ), $message );
 
285
  return apply_filters( 'wpforms_email_message', $message, $this );
286
  }
287
 
@@ -289,17 +290,17 @@ class WPForms_WP_Emails {
289
 
290
  $this->get_template_part( 'header', $this->get_template(), true );
291
 
292
- // Hooks into the email header
293
  do_action( 'wpforms_email_header', $this );
294
 
295
  $this->get_template_part( 'body', $this->get_template(), true );
296
 
297
- // Hooks into the email body
298
  do_action( 'wpforms_email_body', $this );
299
 
300
  $this->get_template_part( 'footer', $this->get_template(), true );
301
 
302
- // Hooks into the email footer
303
  do_action( 'wpforms_email_footer', $this );
304
 
305
  $message = $this->process_tag( $message, false );
@@ -328,7 +329,7 @@ class WPForms_WP_Emails {
328
  public function send( $to, $subject, $message, $attachments = array() ) {
329
 
330
  if ( ! did_action( 'init' ) && ! did_action( 'admin_init' ) ) {
331
- _doing_it_wrong( __FUNCTION__, __( 'You cannot send emails with WPForms_WP_Emails until init/admin_init has been reached.', 'wpforms' ), null );
332
 
333
  return false;
334
  }
@@ -448,8 +449,9 @@ class WPForms_WP_Emails {
448
  $message = '';
449
 
450
  if ( $html ) {
451
-
452
- // HTML emails ---------------------------------------------------//
 
453
  ob_start();
454
 
455
  // Hooks into the email field.
@@ -469,8 +471,16 @@ class WPForms_WP_Emails {
469
  continue;
470
  }
471
 
472
- $field_val = empty( $field['value'] ) && '0' !== $field['value'] ? '<em>' . __( '(empty)', 'wpforms' ) . '</em>' : $field['value'];
473
- $field_name = ! empty( $field['name'] ) ? $field['name'] : __( 'Field ID #', 'wpforms' ) . absint( $field['id'] );
 
 
 
 
 
 
 
 
474
 
475
  $field_item = $field_template;
476
  if ( 1 === $x ) {
@@ -481,19 +491,29 @@ class WPForms_WP_Emails {
481
  $field_item = str_replace( '{field_value}', $field_value, $field_item );
482
 
483
  $message .= wpautop( $field_item );
484
- $x++;
485
  }
486
  } else {
487
-
488
- // Plain Text emails ---------------------------------------------//
 
489
  foreach ( $this->fields as $field ) {
490
 
491
  if ( ! apply_filters( 'wpforms_email_display_empty_fields', false ) && ( empty( $field['value'] ) && '0' !== $field['value'] ) ) {
492
  continue;
493
  }
494
 
495
- $field_val = empty( $field['value'] ) && '0' !== $field['value'] ? __( '(empty)', 'wpforms' ) : $field['value'];
496
- $field_name = ! empty( $field['name'] ) ? $field['name'] : __( 'Field ID #', 'wpforms' ) . absint( $field['id'] );
 
 
 
 
 
 
 
 
 
497
  $message .= '--- ' . wpforms_decode_string( $field_name ) . " ---\r\n\r\n";
498
  $field_value = wpforms_decode_string( $field_val ) . "\r\n\r\n";
499
  $message .= apply_filters( 'wpforms_plaintext_field_value', $field_value, $field, $this->form_data );
@@ -501,7 +521,7 @@ class WPForms_WP_Emails {
501
  }
502
 
503
  if ( empty( $message ) ) {
504
- $empty_message = __( 'An empty form was submitted.', 'wpforms' );
505
  $message = $html ? wpautop( $empty_message ) : $empty_message;
506
  }
507
 
@@ -516,10 +536,7 @@ class WPForms_WP_Emails {
516
  * @return bool
517
  */
518
  public function is_email_disabled() {
519
-
520
- $disabled = (bool) apply_filters( 'wpforms_disable_all_emails', false, $this );
521
-
522
- return $disabled;
523
  }
524
 
525
  /**
@@ -551,14 +568,14 @@ class WPForms_WP_Emails {
551
  */
552
  public function get_template_part( $slug, $name = null, $load = true ) {
553
 
554
- // Setup possible parts
555
  $templates = array();
556
  if ( isset( $name ) ) {
557
  $templates[] = $slug . '-' . $name . '.php';
558
  }
559
  $templates[] = $slug . '.php';
560
 
561
- // Return the part that is found
562
  return $this->locate_template( $templates, $load, false );
563
  }
564
 
@@ -582,21 +599,21 @@ class WPForms_WP_Emails {
582
  */
583
  public function locate_template( $template_names, $load = false, $require_once = true ) {
584
 
585
- // No file found yet
586
  $located = false;
587
 
588
- // Try to find a template file
589
  foreach ( (array) $template_names as $template_name ) {
590
 
591
- // Continue if template is empty
592
  if ( empty( $template_name ) ) {
593
  continue;
594
  }
595
 
596
- // Trim off any slashes from the template name
597
  $template_name = ltrim( $template_name, '/' );
598
 
599
- // try locating this template file by looping through the template paths
600
  foreach ( $this->get_theme_template_paths() as $template_path ) {
601
  if ( file_exists( $template_path . $template_name ) ) {
602
  $located = $template_path . $template_name;
@@ -631,7 +648,7 @@ class WPForms_WP_Emails {
631
 
632
  $file_paths = apply_filters( 'wpforms_email_template_paths', $file_paths );
633
 
634
- // sort the file paths based on priority
635
  ksort( $file_paths, SORT_NUMERIC );
636
 
637
  return array_map( 'trailingslashit', $file_paths );
5
  *
6
  * This class handles all (notification) emails sent by WPForms.
7
  *
8
+ * Heavily influenced by the great AffiliateWP plugin by Pippin Williamson.
9
  * https://github.com/AffiliateWP/AffiliateWP/blob/master/includes/emails/class-affwp-emails.php
10
  *
11
  * @package WPForms
255
  public function get_headers() {
256
 
257
  if ( ! $this->headers ) {
258
+ $this->headers = "From: {$this->get_from_name()} <{$this->get_from_address()}>\r\n";
259
  if ( $this->get_reply_to() ) {
260
  $this->headers .= "Reply-To: {$this->get_reply_to()}\r\n";
261
  }
282
  if ( false === $this->html ) {
283
  $message = $this->process_tag( $message, false, true );
284
  $message = str_replace( '{all_fields}', $this->wpforms_html_field_value( false ), $message );
285
+
286
  return apply_filters( 'wpforms_email_message', $message, $this );
287
  }
288
 
290
 
291
  $this->get_template_part( 'header', $this->get_template(), true );
292
 
293
+ // Hooks into the email header.
294
  do_action( 'wpforms_email_header', $this );
295
 
296
  $this->get_template_part( 'body', $this->get_template(), true );
297
 
298
+ // Hooks into the email body.
299
  do_action( 'wpforms_email_body', $this );
300
 
301
  $this->get_template_part( 'footer', $this->get_template(), true );
302
 
303
+ // Hooks into the email footer.
304
  do_action( 'wpforms_email_footer', $this );
305
 
306
  $message = $this->process_tag( $message, false );
329
  public function send( $to, $subject, $message, $attachments = array() ) {
330
 
331
  if ( ! did_action( 'init' ) && ! did_action( 'admin_init' ) ) {
332
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'You cannot send emails with WPForms_WP_Emails until init/admin_init has been reached.', 'wpforms' ), null );
333
 
334
  return false;
335
  }
449
  $message = '';
450
 
451
  if ( $html ) {
452
+ /*
453
+ * HTML emails.
454
+ */
455
  ob_start();
456
 
457
  // Hooks into the email field.
471
  continue;
472
  }
473
 
474
+ $field_val = empty( $field['value'] ) && '0' !== $field['value'] ? '<em>' . esc_html__( '(empty)', 'wpforms' ) . '</em>' : $field['value'];
475
+ $field_name = $field['name'];
476
+
477
+ if ( empty( $field_name ) ) {
478
+ $field_name = sprintf(
479
+ /* translators: %d - field ID. */
480
+ esc_html__( 'Field ID #%d', 'wpforms' ),
481
+ absint( $field['id'] )
482
+ );
483
+ }
484
 
485
  $field_item = $field_template;
486
  if ( 1 === $x ) {
491
  $field_item = str_replace( '{field_value}', $field_value, $field_item );
492
 
493
  $message .= wpautop( $field_item );
494
+ $x ++;
495
  }
496
  } else {
497
+ /*
498
+ * Plain Text emails.
499
+ */
500
  foreach ( $this->fields as $field ) {
501
 
502
  if ( ! apply_filters( 'wpforms_email_display_empty_fields', false ) && ( empty( $field['value'] ) && '0' !== $field['value'] ) ) {
503
  continue;
504
  }
505
 
506
+ $field_val = empty( $field['value'] ) && '0' !== $field['value'] ? esc_html__( '(empty)', 'wpforms' ) : $field['value'];
507
+ $field_name = $field['name'];
508
+
509
+ if ( empty( $field_name ) ) {
510
+ $field_name = sprintf(
511
+ /* translators: %d - field ID. */
512
+ esc_html__( 'Field ID #%d', 'wpforms' ),
513
+ absint( $field['id'] )
514
+ );
515
+ }
516
+
517
  $message .= '--- ' . wpforms_decode_string( $field_name ) . " ---\r\n\r\n";
518
  $field_value = wpforms_decode_string( $field_val ) . "\r\n\r\n";
519
  $message .= apply_filters( 'wpforms_plaintext_field_value', $field_value, $field, $this->form_data );
521
  }
522
 
523
  if ( empty( $message ) ) {
524
+ $empty_message = esc_html__( 'An empty form was submitted.', 'wpforms' );
525
  $message = $html ? wpautop( $empty_message ) : $empty_message;
526
  }
527
 
536
  * @return bool
537
  */
538
  public function is_email_disabled() {
539
+ return (bool) apply_filters( 'wpforms_disable_all_emails', false, $this );
 
 
 
540
  }
541
 
542
  /**
568
  */
569
  public function get_template_part( $slug, $name = null, $load = true ) {
570
 
571
+ // Setup possible parts.
572
  $templates = array();
573
  if ( isset( $name ) ) {
574
  $templates[] = $slug . '-' . $name . '.php';
575
  }
576
  $templates[] = $slug . '.php';
577
 
578
+ // Return the part that is found.
579
  return $this->locate_template( $templates, $load, false );
580
  }
581
 
599
  */
600
  public function locate_template( $template_names, $load = false, $require_once = true ) {
601
 
602
+ // No file found yet.
603
  $located = false;
604
 
605
+ // Try to find a template file.
606
  foreach ( (array) $template_names as $template_name ) {
607
 
608
+ // Continue if template is empty.
609
  if ( empty( $template_name ) ) {
610
  continue;
611
  }
612
 
613
+ // Trim off any slashes from the template name.
614
  $template_name = ltrim( $template_name, '/' );
615
 
616
+ // Try locating this template file by looping through the template paths.
617
  foreach ( $this->get_theme_template_paths() as $template_path ) {
618
  if ( file_exists( $template_path . $template_name ) ) {
619
  $located = $template_path . $template_name;
648
 
649
  $file_paths = apply_filters( 'wpforms_email_template_paths', $file_paths );
650
 
651
+ // Sort the file paths based on priority.
652
  ksort( $file_paths, SORT_NUMERIC );
653
 
654
  return array_map( 'trailingslashit', $file_paths );
includes/emails/templates/footer-default.php CHANGED
@@ -38,7 +38,7 @@ $background_color = wpforms_setting( 'email-background-color', '#e9eaec' );
38
  <!-- Footer content -->
39
  <?php
40
  /* translators: %s - link to a site. */
41
- $footer = sprintf( __( 'Sent from %s', 'wpforms' ), '<a href="' . esc_url( home_url() ) . '" style="color:#bbbbbb;">' . wp_specialchars_decode( get_bloginfo( 'name' ) ) . '</a>' );
42
  echo apply_filters( 'wpforms_email_footer_text', $footer );
43
  ?>
44
 
38
  <!-- Footer content -->
39
  <?php
40
  /* translators: %s - link to a site. */
41
+ $footer = sprintf( esc_html__( 'Sent from %s', 'wpforms' ), '<a href="' . esc_url( home_url() ) . '" style="color:#bbbbbb;">' . wp_specialchars_decode( get_bloginfo( 'name' ) ) . '</a>' );
42
  echo apply_filters( 'wpforms_email_footer_text', $footer );
43
  ?>
44
 
includes/emails/templates/header-default.php CHANGED
@@ -223,24 +223,24 @@ $text_direction = is_rtl() ? 'rtl' : 'ltr';
223
  body,table,td,p,a,li,blockquote{
224
  -webkit-text-size-adjust:none !important;
225
  }
226
- }
227
  @media only screen and (max-width: 480px){
228
  body{
229
  width:100% !important;
230
  min-width:100% !important;
231
  }
232
- }
233
  @media only screen and (max-width: 680px){
234
  #bodyCell{
235
  padding:20px 20px !important;
236
  }
237
- }
238
  @media only screen and (max-width: 480px){
239
  .mcnTextContentContainer{
240
  max-width:100% !important;
241
  width:100% !important;
242
  }
243
- }
244
  </style>
245
  </head>
246
  <body style="height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: <?php echo $background_color; ?>;">
@@ -256,10 +256,10 @@ $text_direction = is_rtl() ? 'rtl' : 'ltr';
256
  <td align="center" valign="top" width="600" style="width:600px;">
257
  <![endif]-->
258
  <table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 0;max-width: 600px !important;">
259
- <?php
260
- if ( !empty( $header_image ) ) {
261
  echo '<tr><td valign="top" align="center" id="templateHeader" style="padding-bottom:20px;text-align:center;">';
262
- echo '<img src="' . esc_url( $header_image ) . '" alt="' . get_bloginfo( 'name' ) . '" />';
263
  echo '</td></tr>';
264
  }
265
  ?>
@@ -272,4 +272,4 @@ $text_direction = is_rtl() ? 'rtl' : 'ltr';
272
  <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer">
273
  <tbody>
274
  <tr>
275
- <td valign="top" style="padding-top: 30px;padding-right: 30px;padding-bottom: 30px;padding-left: 30px;" class="mcnTextContent">
223
  body,table,td,p,a,li,blockquote{
224
  -webkit-text-size-adjust:none !important;
225
  }
226
+ }
227
  @media only screen and (max-width: 480px){
228
  body{
229
  width:100% !important;
230
  min-width:100% !important;
231
  }
232
+ }
233
  @media only screen and (max-width: 680px){
234
  #bodyCell{
235
  padding:20px 20px !important;
236
  }
237
+ }
238
  @media only screen and (max-width: 480px){
239
  .mcnTextContentContainer{
240
  max-width:100% !important;
241
  width:100% !important;
242
  }
243
+ }
244
  </style>
245
  </head>
246
  <body style="height: 100%;margin: 0;padding: 0;width: 100%;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: <?php echo $background_color; ?>;">
256
  <td align="center" valign="top" width="600" style="width:600px;">
257
  <![endif]-->
258
  <table border="0" cellpadding="0" cellspacing="0" width="100%" class="templateContainer" style="border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 0;max-width: 600px !important;">
259
+ <?php
260
+ if ( ! empty( $header_image ) ) {
261
  echo '<tr><td valign="top" align="center" id="templateHeader" style="padding-bottom:20px;text-align:center;">';
262
+ echo '<img src="' . esc_url( $header_image ) . '" alt="' . esc_attr( get_bloginfo( 'name' ) ) . '" />';
263
  echo '</td></tr>';
264
  }
265
  ?>
272
  <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="min-width: 100%;border-collapse: collapse;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;" class="mcnTextContentContainer">
273
  <tbody>
274
  <tr>
275
+ <td valign="top" style="padding-top: 30px;padding-right: 30px;padding-bottom: 30px;padding-left: 30px;" class="mcnTextContent">
includes/fields/class-base.php CHANGED
@@ -250,7 +250,7 @@ abstract class WPForms_Field {
250
  $checked = checked( '1', $args['value'], false );
251
  $icon = $args['value'] ? 'fa-toggle-on' : 'fa-toggle-off';
252
  $cls = $args['value'] ? 'wpforms-on' : 'wpforms-off';
253
- $status = $args['value'] ? __( 'On', 'wpforms' ) : __( 'Off', 'wpforms' );
254
  $output = sprintf( '<span class="wpforms-toggle-icon %s"><i class="fa %s" aria-hidden="true"></i> <span class="wpforms-toggle-icon-label">%s</span>', $cls, $icon, $status );
255
  $output .= sprintf( '<input type="checkbox" class="%s" id="wpforms-field-option-%d-%s" name="fields[%d][%s]" value="1" %s %s></span>', $class, $id, $slug, $id, $slug, $checked, $data );
256
  break;
@@ -312,8 +312,8 @@ abstract class WPForms_Field {
312
 
313
  case 'label':
314
  $value = ! empty( $field['label'] ) ? esc_attr( $field['label'] ) : '';
315
- $tooltip = __( 'Enter text for the form field label. Field labels are recommended and can be hidden in the Advanced Settings.', 'wpforms' );
316
- $output = $this->field_element( 'label', $field, array( 'slug' => 'label', 'value' => __( 'Label', 'wpforms' ), 'tooltip' => $tooltip ), false );
317
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'label', 'value' => $value ), false );
318
  $output = $this->field_element( 'row', $field, array( 'slug' => 'label', 'content' => $output ), false );
319
  break;
@@ -322,8 +322,8 @@ abstract class WPForms_Field {
322
 
323
  case 'description':
324
  $value = ! empty( $field['description'] ) ? esc_attr( $field['description'] ) : '';
325
- $tooltip = __( 'Enter text for the form field description.', 'wpforms' );
326
- $output = $this->field_element( 'label', $field, array( 'slug' => 'description', 'value' => __( 'Description', 'wpforms' ), 'tooltip' => $tooltip ), false );
327
  $output .= $this->field_element( 'textarea', $field, array( 'slug' => 'description', 'value' => $value ), false );
328
  $output = $this->field_element( 'row', $field, array( 'slug' => 'description', 'content' => $output ), false );
329
  break;
@@ -333,8 +333,8 @@ abstract class WPForms_Field {
333
  case 'required':
334
  $default = ! empty( $args['default'] ) ? $args['default'] : '0';
335
  $value = isset( $field['required'] ) ? $field['required'] : $default;
336
- $tooltip = __( 'Check this option to mark the field required. A form will not submit unless all required fields are provided.', 'wpforms' );
337
- $output = $this->field_element( 'checkbox', $field, array( 'slug' => 'required', 'value' => $value, 'desc' => __( 'Required', 'wpforms' ), 'tooltip' => $tooltip ), false );
338
  $output = $this->field_element( 'row', $field, array( 'slug' => 'required', 'content' => $output ), false );
339
  break;
340
 
@@ -350,8 +350,8 @@ abstract class WPForms_Field {
350
 
351
  case 'code':
352
  $value = ! empty( $field['code'] ) ? esc_attr( $field['code'] ) : '';
353
- $tooltip = __( 'Enter code for the form field.', 'wpforms' );
354
- $output = $this->field_element( 'label', $field, array( 'slug' => 'code', 'value' => __( 'Code', 'wpforms' ), 'tooltip' => $tooltip ), false );
355
  $output .= $this->field_element( 'textarea', $field, array( 'slug' => 'code', 'value' => $value ), false );
356
  $output = $this->field_element( 'row', $field, array( 'slug' => 'code', 'content' => $output ), false );
357
  break;
@@ -359,8 +359,8 @@ abstract class WPForms_Field {
359
  // Choices. -------------------------------------------------------//
360
 
361
  case 'choices':
362
- $tooltip = __( 'Add choices for the form field.', 'wpforms' );
363
- $toggle = '<a href="#" class="toggle-bulk-add-display"><i class="fa fa-download"></i> <span>' . __( 'Bulk Add', 'wpforms' ) . '</span></a>';
364
  $dynamic = ! empty( $field['dynamic_choices'] ) ? esc_html( $field['dynamic_choices'] ) : '';
365
  $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
366
  $class = ! empty( $field['show_values'] ) && $field['show_values'] == '1' ? 'show-values' : '';
@@ -372,7 +372,7 @@ abstract class WPForms_Field {
372
  $field,
373
  array(
374
  'slug' => 'choices',
375
- 'value' => __( 'Choices', 'wpforms' ),
376
  'tooltip' => $tooltip,
377
  'after_tooltip' => $toggle,
378
  ),
@@ -402,14 +402,14 @@ abstract class WPForms_Field {
402
 
403
  if ( 'post_type' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
404
 
405
- $type_name = __( 'post type', 'wpforms' );
406
  $source = $field[ 'dynamic_' . $dynamic ];
407
  $pt = get_post_type_object( $source );
408
  $source_name = $pt->labels->name;
409
 
410
  } elseif ( 'taxonomy' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
411
 
412
- $type_name = __( 'taxonomy', 'wpforms' );
413
  $source = $field[ 'dynamic_' . $dynamic ];
414
  $tax = get_taxonomy( $source );
415
  $source_name = $tax->labels->name;
@@ -418,7 +418,7 @@ abstract class WPForms_Field {
418
  $option_status = sprintf( '<div class="wpforms-alert-warning wpforms-alert %s">', $status_visibility );
419
  /* translators: %1$s - source name; %2$s - type name. */
420
  $option_status .= sprintf(
421
- __(
422
  'Choices are dynamically populated from the %1$s %2$s',
423
  'wpforms'
424
  ),
@@ -441,7 +441,7 @@ abstract class WPForms_Field {
441
  // Choices for payments. ------------------------------------------//
442
 
443
  case 'choices_payments':
444
- $tooltip = __( 'Add choices for the form field.', 'wpforms' );
445
  $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
446
 
447
  // Field option label.
@@ -450,7 +450,7 @@ abstract class WPForms_Field {
450
  $field,
451
  array(
452
  'slug' => 'choices',
453
- 'value' => __( 'Items', 'wpforms' ),
454
  'tooltip' => $tooltip,
455
  ),
456
  false
@@ -492,9 +492,9 @@ abstract class WPForms_Field {
492
 
493
  case 'default_value':
494
  $value = ! empty( $field['default_value'] ) ? esc_attr( $field['default_value'] ) : '';
495
- $tooltip = __( 'Enter text for the default form field value.', 'wpforms' );
496
- $toggle = '<a href="#" class="toggle-smart-tag-display" data-type="other"><i class="fa fa-tags"></i> <span>' . __( 'Show Smart Tags', 'wpforms' ) . '</span></a>';
497
- $output = $this->field_element( 'label', $field, array( 'slug' => 'default_value', 'value' => __( 'Default Value', 'wpforms' ), 'tooltip' => $tooltip, 'after_tooltip' => $toggle ), false );
498
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'default_value', 'value' => $value ), false );
499
  $output = $this->field_element( 'row', $field, array( 'slug' => 'default_value', 'content' => $output ), false );
500
  break;
@@ -504,13 +504,13 @@ abstract class WPForms_Field {
504
  case 'size':
505
  $value = ! empty( $field['size'] ) ? esc_attr( $field['size'] ) : 'medium';
506
  $class = ! empty( $args['class'] ) ? esc_html( $args['class'] ) : '';
507
- $tooltip = __( 'Select the default form field size.', 'wpforms' );
508
  $options = array(
509
- 'small' => __( 'Small', 'wpforms' ),
510
- 'medium' => __( 'Medium', 'wpforms' ),
511
- 'large' => __( 'Large', 'wpforms' ),
512
  );
513
- $output = $this->field_element( 'label', $field, array( 'slug' => 'size', 'value' => __( 'Field Size', 'wpforms' ), 'tooltip' => $tooltip ), false );
514
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'size', 'value' => $value, 'options' => $options ), false );
515
  $output = $this->field_element( 'row', $field, array( 'slug' => 'size', 'content' => $output, 'class' => $class ), false );
516
  break;
@@ -523,7 +523,7 @@ abstract class WPForms_Field {
523
  $override = apply_filters( 'wpforms_advanced_options_override', false );
524
  $override = ! empty( $override ) ? 'style="display:' . $override . ';"' : '';
525
  $output = sprintf( '<div class="wpforms-field-option-group wpforms-field-option-group-advanced wpforms-hide" id="wpforms-field-option-advanced-%d" %s>', $field['id'], $override );
526
- $output .= sprintf( '<a href="#" class="wpforms-field-option-group-toggle">%s <i class="fa fa-angle-right"></i></a>', __( 'Advanced Options', 'wpforms' ) );
527
  $output .= '<div class="wpforms-field-option-group-inner">';
528
  } else {
529
  $output = '</div></div>';
@@ -534,8 +534,8 @@ abstract class WPForms_Field {
534
 
535
  case 'placeholder':
536
  $value = ! empty( $field['placeholder'] ) ? esc_attr( $field['placeholder'] ) : '';
537
- $tooltip = __( 'Enter text for the form field placeholder.', 'wpforms' );
538
- $output = $this->field_element( 'label', $field, array( 'slug' => 'placeholder', 'value' => __( 'Placeholder Text', 'wpforms' ), 'tooltip' => $tooltip ), false );
539
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'placeholder', 'value' => $value ), false );
540
  $output = $this->field_element( 'row', $field, array( 'slug' => 'placeholder', 'content' => $output ), false );
541
  break;
@@ -545,12 +545,12 @@ abstract class WPForms_Field {
545
  case 'css':
546
  $toggle = '';
547
  $value = ! empty( $field['css'] ) ? esc_attr( $field['css'] ) : '';
548
- $tooltip = __( 'Enter CSS class names for the form field container. Class names should be separated with spaces.', 'wpforms' );
549
  if ( ! in_array( $field['type'], array( 'pagebreak' ), true ) ) {
550
- $toggle = '<a href="#" class="toggle-layout-selector-display"><i class="fa fa-th-large"></i> <span>' . __( 'Show Layouts', 'wpforms' ) . '</span></a>';
551
  }
552
  // Build output
553
- $output = $this->field_element( 'label', $field, array( 'slug' => 'css', 'value' => __( 'CSS Classes', 'wpforms' ), 'tooltip' => $tooltip, 'after_tooltip' => $toggle ), false );
554
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'css', 'value' => $value ), false );
555
  $output = $this->field_element( 'row', $field, array( 'slug' => 'css', 'content' => $output ), false );
556
  break;
@@ -559,9 +559,9 @@ abstract class WPForms_Field {
559
 
560
  case 'label_hide':
561
  $value = isset( $field['label_hide'] ) ? $field['label_hide'] : '0';
562
- $tooltip = __( 'Check this option to hide the form field label.', 'wpforms' );
563
  // Build output
564
- $output = $this->field_element( 'checkbox', $field, array( 'slug' => 'label_hide', 'value' => $value, 'desc' => __( 'Hide Label', 'wpforms' ), 'tooltip' => $tooltip ), false );
565
  $output = $this->field_element( 'row', $field, array( 'slug' => 'label_hide', 'content' => $output ), false );
566
  break;
567
 
@@ -569,9 +569,9 @@ abstract class WPForms_Field {
569
 
570
  case 'sublabel_hide':
571
  $value = isset( $field['sublabel_hide'] ) ? $field['sublabel_hide'] : '0';
572
- $tooltip = __( 'Check this option to hide the form field sub-label.', 'wpforms' );
573
  // Build output
574
- $output = $this->field_element( 'checkbox', $field, array( 'slug' => 'sublabel_hide', 'value' => $value, 'desc' => __( 'Hide Sub-Labels', 'wpforms' ), 'tooltip' => $tooltip ), false );
575
  $output = $this->field_element( 'row', $field, array( 'slug' => 'sublabel_hide', 'content' => $output ), false );
576
  break;
577
 
@@ -579,13 +579,13 @@ abstract class WPForms_Field {
579
 
580
  case 'input_columns':
581
  $value = ! empty( $field['input_columns'] ) ? esc_attr( $field['input_columns'] ) : '';
582
- $tooltip = __( 'Select the layout for displaying field choices.', 'wpforms' );
583
  $options = array(
584
- '' => __( 'One Column', 'wpforms' ),
585
- '2' => __( 'Two Columns', 'wpforms'),
586
- '3' => __( 'Three Columns', 'wpforms' ),
587
  );
588
- $output = $this->field_element( 'label', $field, array( 'slug' => 'input_columns', 'value' => __( 'Choice Layout', 'wpforms' ), 'tooltip' => $tooltip ), false );
589
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'input_columns', 'value' => $value, 'options' => $options ), false );
590
  $output = $this->field_element( 'row', $field, array( 'slug' => 'input_columns', 'content' => $output ), false );
591
  break;
@@ -594,13 +594,13 @@ abstract class WPForms_Field {
594
 
595
  case 'dynamic_choices':
596
  $value = ! empty( $field['dynamic_choices'] ) ? esc_attr( $field['dynamic_choices'] ) : '';
597
- $tooltip = __( 'Select auto-populate method to use.', 'wpforms' );
598
  $options = array(
599
- '' => __( 'Off', 'wpforms' ),
600
- 'post_type' => __( 'Post Type', 'wpforms'),
601
- 'taxonomy' => __( 'Taxonomy', 'wpforms' ),
602
  );
603
- $output = $this->field_element( 'label', $field, array( 'slug' => 'dynamic_choices', 'value' => __( 'Dynamic Choices', 'wpforms' ), 'tooltip' => $tooltip ), false );
604
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'dynamic_choices', 'value' => $value, 'options' => $options ), false );
605
  $output = $this->field_element( 'row', $field, array( 'slug' => 'dynamic_choices', 'content' => $output ), false );
606
  break;
@@ -618,7 +618,7 @@ abstract class WPForms_Field {
618
 
619
  if ( 'post_type' === $type ) {
620
 
621
- $type_name = __( 'Post Type', 'wpforms' );
622
  $items = get_post_types(
623
  array(
624
  'public' => true,
@@ -629,7 +629,7 @@ abstract class WPForms_Field {
629
 
630
  } elseif ( 'taxonomy' === $type ) {
631
 
632
- $type_name = __( 'Taxonomy', 'wpforms' );
633
  $items = get_taxonomies(
634
  array(
635
  'public' => true,
@@ -639,8 +639,10 @@ abstract class WPForms_Field {
639
  unset( $items['post_format'] );
640
  }
641
 
642
- $tooltip = sprintf( __( 'Select %s to use for auto-populating field choices.', 'wpforms' ), $type_name );
643
- $label = sprintf( __( 'Dynamic %s Source', 'wpforms' ), $type_name );
 
 
644
  $options = array();
645
  $source = ! empty( $field[ 'dynamic_' . $type ] ) ? esc_attr( $field[ 'dynamic_' . $type ] ) : '';
646
 
@@ -694,8 +696,16 @@ abstract class WPForms_Field {
694
  do_action( "wpforms_field_options_before_{$option}", $field, $this );
695
  }
696
 
 
 
 
 
697
  echo $output; // WPCS: XSS ok.
698
 
 
 
 
 
699
  if ( 'close' === $markup ) {
700
  do_action( "wpforms_field_options_after_{$option}", $field, $this );
701
  }
@@ -753,8 +763,8 @@ abstract class WPForms_Field {
753
  check_ajax_referer( 'wpforms-builder', 'nonce' );
754
 
755
  // Check for permissions.
756
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
757
- die( esc_html__( 'You do no have permission.', 'wpforms' ) );
758
  }
759
 
760
  // Check for form ID.
@@ -793,9 +803,9 @@ abstract class WPForms_Field {
793
  $this->field_preview( $field );
794
  $prev = ob_get_clean();
795
  $preview = sprintf( '<div class="wpforms-field wpforms-field-%s %s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field_type, $field_required, $field_class, $field['id'], $field['id'], $field_type );
796
- $preview .= sprintf( '<a href="#" class="wpforms-field-duplicate" title="%s"><i class="fa fa-files-o" aria-hidden="true"></i></a>', __( 'Duplicate Field', 'wpforms' ) );
797
- $preview .= sprintf( '<a href="#" class="wpforms-field-delete" title="%s"><i class="fa fa-times-circle"></i></a>', __( 'Delete Field', 'wpforms' ) );
798
- $preview .= sprintf( '<span class="wpforms-field-helper">%s</span>', __( 'Click to edit. Drag to reorder.', 'wpforms' ) );
799
  $preview .= $prev;
800
  $preview .= '</div>';
801
 
@@ -898,7 +908,7 @@ abstract class WPForms_Field {
898
 
899
  // Basic required check - If field is marked as required, check for entry data.
900
  if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) && '0' != $field_submit ) {
901
- wpforms()->process->errors[ $form_data['id'] ][ $field_id ] = apply_filters( 'wpforms_required_label', __( 'This field is required.', 'wpforms' ) );
902
  }
903
  }
904
 
250
  $checked = checked( '1', $args['value'], false );
251
  $icon = $args['value'] ? 'fa-toggle-on' : 'fa-toggle-off';
252
  $cls = $args['value'] ? 'wpforms-on' : 'wpforms-off';
253
+ $status = $args['value'] ? esc_html__( 'On', 'wpforms' ) : esc_html__( 'Off', 'wpforms' );
254
  $output = sprintf( '<span class="wpforms-toggle-icon %s"><i class="fa %s" aria-hidden="true"></i> <span class="wpforms-toggle-icon-label">%s</span>', $cls, $icon, $status );
255
  $output .= sprintf( '<input type="checkbox" class="%s" id="wpforms-field-option-%d-%s" name="fields[%d][%s]" value="1" %s %s></span>', $class, $id, $slug, $id, $slug, $checked, $data );
256
  break;
312
 
313
  case 'label':
314
  $value = ! empty( $field['label'] ) ? esc_attr( $field['label'] ) : '';
315
+ $tooltip = esc_html__( 'Enter text for the form field label. Field labels are recommended and can be hidden in the Advanced Settings.', 'wpforms' );
316
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'label', 'value' => esc_html__( 'Label', 'wpforms' ), 'tooltip' => $tooltip ), false );
317
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'label', 'value' => $value ), false );
318
  $output = $this->field_element( 'row', $field, array( 'slug' => 'label', 'content' => $output ), false );
319
  break;
322
 
323
  case 'description':
324
  $value = ! empty( $field['description'] ) ? esc_attr( $field['description'] ) : '';
325
+ $tooltip = esc_html__( 'Enter text for the form field description.', 'wpforms' );
326
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'description', 'value' => esc_html__( 'Description', 'wpforms' ), 'tooltip' => $tooltip ), false );
327
  $output .= $this->field_element( 'textarea', $field, array( 'slug' => 'description', 'value' => $value ), false );
328
  $output = $this->field_element( 'row', $field, array( 'slug' => 'description', 'content' => $output ), false );
329
  break;
333
  case 'required':
334
  $default = ! empty( $args['default'] ) ? $args['default'] : '0';
335
  $value = isset( $field['required'] ) ? $field['required'] : $default;
336
+ $tooltip = esc_html__( 'Check this option to mark the field required. A form will not submit unless all required fields are provided.', 'wpforms' );
337
+ $output = $this->field_element( 'checkbox', $field, array( 'slug' => 'required', 'value' => $value, 'desc' => esc_html__( 'Required', 'wpforms' ), 'tooltip' => $tooltip ), false );
338
  $output = $this->field_element( 'row', $field, array( 'slug' => 'required', 'content' => $output ), false );
339
  break;
340
 
350
 
351
  case 'code':
352
  $value = ! empty( $field['code'] ) ? esc_attr( $field['code'] ) : '';
353
+ $tooltip = esc_html__( 'Enter code for the form field.', 'wpforms' );
354
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'code', 'value' => esc_html__( 'Code', 'wpforms' ), 'tooltip' => $tooltip ), false );
355
  $output .= $this->field_element( 'textarea', $field, array( 'slug' => 'code', 'value' => $value ), false );
356
  $output = $this->field_element( 'row', $field, array( 'slug' => 'code', 'content' => $output ), false );
357
  break;
359
  // Choices. -------------------------------------------------------//
360
 
361
  case 'choices':
362
+ $tooltip = esc_html__( 'Add choices for the form field.', 'wpforms' );
363
+ $toggle = '<a href="#" class="toggle-bulk-add-display"><i class="fa fa-download"></i> <span>' . esc_html__( 'Bulk Add', 'wpforms' ) . '</span></a>';
364
  $dynamic = ! empty( $field['dynamic_choices'] ) ? esc_html( $field['dynamic_choices'] ) : '';
365
  $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
366
  $class = ! empty( $field['show_values'] ) && $field['show_values'] == '1' ? 'show-values' : '';
372
  $field,
373
  array(
374
  'slug' => 'choices',
375
+ 'value' => esc_html__( 'Choices', 'wpforms' ),
376
  'tooltip' => $tooltip,
377
  'after_tooltip' => $toggle,
378
  ),
402
 
403
  if ( 'post_type' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
404
 
405
+ $type_name = esc_html__( 'post type', 'wpforms' );
406
  $source = $field[ 'dynamic_' . $dynamic ];
407
  $pt = get_post_type_object( $source );
408
  $source_name = $pt->labels->name;
409
 
410
  } elseif ( 'taxonomy' === $dynamic && ! empty( $field[ 'dynamic_' . $dynamic ] ) ) {
411
 
412
+ $type_name = esc_html__( 'taxonomy', 'wpforms' );
413
  $source = $field[ 'dynamic_' . $dynamic ];
414
  $tax = get_taxonomy( $source );
415
  $source_name = $tax->labels->name;
418
  $option_status = sprintf( '<div class="wpforms-alert-warning wpforms-alert %s">', $status_visibility );
419
  /* translators: %1$s - source name; %2$s - type name. */
420
  $option_status .= sprintf(
421
+ esc_html__(
422
  'Choices are dynamically populated from the %1$s %2$s',
423
  'wpforms'
424
  ),
441
  // Choices for payments. ------------------------------------------//
442
 
443
  case 'choices_payments':
444
+ $tooltip = esc_html__( 'Add choices for the form field.', 'wpforms' );
445
  $values = ! empty( $field['choices'] ) ? $field['choices'] : $this->defaults;
446
 
447
  // Field option label.
450
  $field,
451
  array(
452
  'slug' => 'choices',
453
+ 'value' => esc_html__( 'Items', 'wpforms' ),
454
  'tooltip' => $tooltip,
455
  ),
456
  false
492
 
493
  case 'default_value':
494
  $value = ! empty( $field['default_value'] ) ? esc_attr( $field['default_value'] ) : '';
495
+ $tooltip = esc_html__( 'Enter text for the default form field value.', 'wpforms' );
496
+ $toggle = '<a href="#" class="toggle-smart-tag-display" data-type="other"><i class="fa fa-tags"></i> <span>' . esc_html__( 'Show Smart Tags', 'wpforms' ) . '</span></a>';
497
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'default_value', 'value' => esc_html__( 'Default Value', 'wpforms' ), 'tooltip' => $tooltip, 'after_tooltip' => $toggle ), false );
498
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'default_value', 'value' => $value ), false );
499
  $output = $this->field_element( 'row', $field, array( 'slug' => 'default_value', 'content' => $output ), false );
500
  break;
504
  case 'size':
505
  $value = ! empty( $field['size'] ) ? esc_attr( $field['size'] ) : 'medium';
506
  $class = ! empty( $args['class'] ) ? esc_html( $args['class'] ) : '';
507
+ $tooltip = esc_html__( 'Select the default form field size.', 'wpforms' );
508
  $options = array(
509
+ 'small' => esc_html__( 'Small', 'wpforms' ),
510
+ 'medium' => esc_html__( 'Medium', 'wpforms' ),
511
+ 'large' => esc_html__( 'Large', 'wpforms' ),
512
  );
513
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'size', 'value' => esc_html__( 'Field Size', 'wpforms' ), 'tooltip' => $tooltip ), false );
514
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'size', 'value' => $value, 'options' => $options ), false );
515
  $output = $this->field_element( 'row', $field, array( 'slug' => 'size', 'content' => $output, 'class' => $class ), false );
516
  break;
523
  $override = apply_filters( 'wpforms_advanced_options_override', false );
524
  $override = ! empty( $override ) ? 'style="display:' . $override . ';"' : '';
525
  $output = sprintf( '<div class="wpforms-field-option-group wpforms-field-option-group-advanced wpforms-hide" id="wpforms-field-option-advanced-%d" %s>', $field['id'], $override );
526
+ $output .= sprintf( '<a href="#" class="wpforms-field-option-group-toggle">%s <i class="fa fa-angle-right"></i></a>', esc_html__( 'Advanced Options', 'wpforms' ) );
527
  $output .= '<div class="wpforms-field-option-group-inner">';
528
  } else {
529
  $output = '</div></div>';
534
 
535
  case 'placeholder':
536
  $value = ! empty( $field['placeholder'] ) ? esc_attr( $field['placeholder'] ) : '';
537
+ $tooltip = esc_html__( 'Enter text for the form field placeholder.', 'wpforms' );
538
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'placeholder', 'value' => esc_html__( 'Placeholder Text', 'wpforms' ), 'tooltip' => $tooltip ), false );
539
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'placeholder', 'value' => $value ), false );
540
  $output = $this->field_element( 'row', $field, array( 'slug' => 'placeholder', 'content' => $output ), false );
541
  break;
545
  case 'css':
546
  $toggle = '';
547
  $value = ! empty( $field['css'] ) ? esc_attr( $field['css'] ) : '';
548
+ $tooltip = esc_html__( 'Enter CSS class names for the form field container. Class names should be separated with spaces.', 'wpforms' );
549
  if ( ! in_array( $field['type'], array( 'pagebreak' ), true ) ) {
550
+ $toggle = '<a href="#" class="toggle-layout-selector-display"><i class="fa fa-th-large"></i> <span>' . esc_html__( 'Show Layouts', 'wpforms' ) . '</span></a>';
551
  }
552
  // Build output
553
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'css', 'value' => esc_html__( 'CSS Classes', 'wpforms' ), 'tooltip' => $tooltip, 'after_tooltip' => $toggle ), false );
554
  $output .= $this->field_element( 'text', $field, array( 'slug' => 'css', 'value' => $value ), false );
555
  $output = $this->field_element( 'row', $field, array( 'slug' => 'css', 'content' => $output ), false );
556
  break;
559
 
560
  case 'label_hide':
561
  $value = isset( $field['label_hide'] ) ? $field['label_hide'] : '0';
562
+ $tooltip = esc_html__( 'Check this option to hide the form field label.', 'wpforms' );
563
  // Build output
564
+ $output = $this->field_element( 'checkbox', $field, array( 'slug' => 'label_hide', 'value' => $value, 'desc' => esc_html__( 'Hide Label', 'wpforms' ), 'tooltip' => $tooltip ), false );
565
  $output = $this->field_element( 'row', $field, array( 'slug' => 'label_hide', 'content' => $output ), false );
566
  break;
567
 
569
 
570
  case 'sublabel_hide':
571
  $value = isset( $field['sublabel_hide'] ) ? $field['sublabel_hide'] : '0';
572
+ $tooltip = esc_html__( 'Check this option to hide the form field sub-label.', 'wpforms' );
573
  // Build output
574
+ $output = $this->field_element( 'checkbox', $field, array( 'slug' => 'sublabel_hide', 'value' => $value, 'desc' => esc_html__( 'Hide Sub-Labels', 'wpforms' ), 'tooltip' => $tooltip ), false );
575
  $output = $this->field_element( 'row', $field, array( 'slug' => 'sublabel_hide', 'content' => $output ), false );
576
  break;
577
 
579
 
580
  case 'input_columns':
581
  $value = ! empty( $field['input_columns'] ) ? esc_attr( $field['input_columns'] ) : '';
582
+ $tooltip = esc_html__( 'Select the layout for displaying field choices.', 'wpforms' );
583
  $options = array(
584
+ '' => esc_html__( 'One Column', 'wpforms' ),
585
+ '2' => esc_html__( 'Two Columns', 'wpforms' ),
586
+ '3' => esc_html__( 'Three Columns', 'wpforms' ),
587
  );
588
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'input_columns', 'value' => esc_html__( 'Choice Layout', 'wpforms' ), 'tooltip' => $tooltip ), false );
589
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'input_columns', 'value' => $value, 'options' => $options ), false );
590
  $output = $this->field_element( 'row', $field, array( 'slug' => 'input_columns', 'content' => $output ), false );
591
  break;
594
 
595
  case 'dynamic_choices':
596
  $value = ! empty( $field['dynamic_choices'] ) ? esc_attr( $field['dynamic_choices'] ) : '';
597
+ $tooltip = esc_html__( 'Select auto-populate method to use.', 'wpforms' );
598
  $options = array(
599
+ '' => esc_html__( 'Off', 'wpforms' ),
600
+ 'post_type' => esc_html__( 'Post Type', 'wpforms' ),
601
+ 'taxonomy' => esc_html__( 'Taxonomy', 'wpforms' ),
602
  );
603
+ $output = $this->field_element( 'label', $field, array( 'slug' => 'dynamic_choices', 'value' => esc_html__( 'Dynamic Choices', 'wpforms' ), 'tooltip' => $tooltip ), false );
604
  $output .= $this->field_element( 'select', $field, array( 'slug' => 'dynamic_choices', 'value' => $value, 'options' => $options ), false );
605
  $output = $this->field_element( 'row', $field, array( 'slug' => 'dynamic_choices', 'content' => $output ), false );
606
  break;
618
 
619
  if ( 'post_type' === $type ) {
620
 
621
+ $type_name = esc_html__( 'Post Type', 'wpforms' );
622
  $items = get_post_types(
623
  array(
624
  'public' => true,
629
 
630
  } elseif ( 'taxonomy' === $type ) {
631
 
632
+ $type_name = esc_html__( 'Taxonomy', 'wpforms' );
633
  $items = get_taxonomies(
634
  array(
635
  'public' => true,
639
  unset( $items['post_format'] );
640
  }
641
 
642
+ /* translators: %s - dynamic source type name. */
643
+ $tooltip = sprintf( esc_html__( 'Select %s to use for auto-populating field choices.', 'wpforms' ), $type_name );
644
+ /* translators: %s - dynamic source type name. */
645
+ $label = sprintf( esc_html__( 'Dynamic %s Source', 'wpforms' ), $type_name );
646
  $options = array();
647
  $source = ! empty( $field[ 'dynamic_' . $type ] ) ? esc_attr( $field[ 'dynamic_' . $type ] ) : '';
648
 
696
  do_action( "wpforms_field_options_before_{$option}", $field, $this );
697
  }
698
 
699
+ if ( 'close' === $markup ) {
700
+ do_action( "wpforms_field_options_bottom_{$option}", $field, $this );
701
+ }
702
+
703
  echo $output; // WPCS: XSS ok.
704
 
705
+ if ( 'open' === $markup ) {
706
+ do_action( "wpforms_field_options_top_{$option}", $field, $this );
707
+ }
708
+
709
  if ( 'close' === $markup ) {
710
  do_action( "wpforms_field_options_after_{$option}", $field, $this );
711
  }
763
  check_ajax_referer( 'wpforms-builder', 'nonce' );
764
 
765
  // Check for permissions.
766
+ if ( ! wpforms_current_user_can() ) {
767
+ die( esc_html__( 'You do not have permission.', 'wpforms' ) );
768
  }
769
 
770
  // Check for form ID.
803
  $this->field_preview( $field );
804
  $prev = ob_get_clean();
805
  $preview = sprintf( '<div class="wpforms-field wpforms-field-%s %s %s" id="wpforms-field-%d" data-field-id="%d" data-field-type="%s">', $field_type, $field_required, $field_class, $field['id'], $field['id'], $field_type );
806
+ $preview .= sprintf( '<a href="#" class="wpforms-field-duplicate" title="%s"><i class="fa fa-files-o" aria-hidden="true"></i></a>', esc_attr__( 'Duplicate Field', 'wpforms' ) );
807
+ $preview .= sprintf( '<a href="#" class="wpforms-field-delete" title="%s"><i class="fa fa-times-circle"></i></a>', esc_attr__( 'Delete Field', 'wpforms' ) );
808
+ $preview .= sprintf( '<span class="wpforms-field-helper">%s</span>', esc_html__( 'Click to edit. Drag to reorder.', 'wpforms' ) );
809
  $preview .= $prev;
810
  $preview .= '</div>';
811
 
908
 
909
  // Basic required check - If field is marked as required, check for entry data.
910
  if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) && '0' != $field_submit ) {
911
+ wpforms()->process->errors[ $form_data['id'] ][ $field_id ] = wpforms_get_required_label();
912
  }
913
  }
914
 
includes/fields/class-checkbox.php CHANGED
@@ -18,23 +18,23 @@ class WPForms_Field_Checkbox extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information
21
- $this->name = __( 'Checkboxes', 'wpforms' );
22
  $this->type = 'checkbox';
23
  $this->icon = 'fa-check-square-o';
24
  $this->order = 11;
25
  $this->defaults = array(
26
  1 => array(
27
- 'label' => __( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
  'default' => '',
30
  ),
31
  2 => array(
32
- 'label' => __( 'Second Choice', 'wpforms' ),
33
  'value' => '',
34
  'default' => '',
35
  ),
36
  3 => array(
37
- 'label' => __( 'Third Choice', 'wpforms' ),
38
  'value' => '',
39
  'default' => '',
40
  ),
@@ -85,6 +85,26 @@ class WPForms_Field_Checkbox extends WPForms_Field {
85
  'markup' => 'open',
86
  ) );
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  // Show Values toggle option. This option will only show if already used
89
  // or if manually enabled by a filter.
90
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
@@ -94,8 +114,8 @@ class WPForms_Field_Checkbox extends WPForms_Field {
94
  array(
95
  'slug' => 'show_values',
96
  'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
97
- 'desc' => __( 'Show Values', 'wpforms' ),
98
- 'tooltip' => __( 'Check this to manually set form field values.', 'wpforms' ),
99
  ),
100
  false
101
  );
@@ -191,7 +211,7 @@ class WPForms_Field_Checkbox extends WPForms_Field {
191
  // Notify if currently empty
192
  if ( empty( $values ) ) {
193
  $values = array(
194
- 'label' => __( '(empty)', 'wpforms' ),
195
  );
196
  }
197
 
@@ -209,7 +229,8 @@ class WPForms_Field_Checkbox extends WPForms_Field {
209
  // Dynamic population is enabled and contains more than 20 items
210
  if ( isset( $total ) && $total > 20 ) {
211
  echo '<div class="wpforms-alert-dynamic wpforms-alert wpforms-alert-warning">';
212
- printf( __( 'Showing the first 20 choices.<br> All %d choices will be displayed when viewing the form.', 'wpforms' ), absint( $total ) );
 
213
  echo '</div>';
214
  }
215
 
@@ -237,6 +258,7 @@ class WPForms_Field_Checkbox extends WPForms_Field {
237
  $form_id = $form_data['id'];
238
  $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
239
  $choices = $field['choices'];
 
240
 
241
  if ( ! empty( $field_atts['input_data'] ) ) {
242
  foreach ( $field_atts['input_data'] as $key => $val ) {
@@ -296,7 +318,7 @@ class WPForms_Field_Checkbox extends WPForms_Field {
296
  }
297
 
298
  // List.
299
- printf( '<ul id="%s" class="%s" %s>', $field_id, $field_class, $field_data );
300
 
301
  foreach ( $choices as $key => $choice ) {
302
 
18
  public function init() {
19
 
20
  // Define field type information
21
+ $this->name = esc_html__( 'Checkboxes', 'wpforms' );
22
  $this->type = 'checkbox';
23
  $this->icon = 'fa-check-square-o';
24
  $this->order = 11;
25
  $this->defaults = array(
26
  1 => array(
27
+ 'label' => esc_html__( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
  'default' => '',
30
  ),
31
  2 => array(
32
+ 'label' => esc_html__( 'Second Choice', 'wpforms' ),
33
  'value' => '',
34
  'default' => '',
35
  ),
36
  3 => array(
37
+ 'label' => esc_html__( 'Third Choice', 'wpforms' ),
38
  'value' => '',
39
  'default' => '',
40
  ),
85
  'markup' => 'open',
86
  ) );
87
 
88
+ // Randomize order of choices.
89
+ $this->field_element(
90
+ 'row',
91
+ $field,
92
+ array(
93
+ 'slug' => 'random',
94
+ 'content' => $this->field_element(
95
+ 'checkbox',
96
+ $field,
97
+ array(
98
+ 'slug' => 'random',
99
+ 'value' => isset( $field['random'] ) ? '1' : '0',
100
+ 'desc' => esc_html__( 'Randomize Choices', 'wpforms' ),
101
+ 'tooltip' => esc_html__( 'Check this option to randomize the order of the choices.', 'wpforms' ),
102
+ ),
103
+ false
104
+ ),
105
+ )
106
+ );
107
+
108
  // Show Values toggle option. This option will only show if already used
109
  // or if manually enabled by a filter.
110
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
114
  array(
115
  'slug' => 'show_values',
116
  'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
117
+ 'desc' => esc_html__( 'Show Values', 'wpforms' ),
118
+ 'tooltip' => esc_html__( 'Check this to manually set form field values.', 'wpforms' ),
119
  ),
120
  false
121
  );
211
  // Notify if currently empty
212
  if ( empty( $values ) ) {
213
  $values = array(
214
+ 'label' => esc_html__( '(empty)', 'wpforms' ),
215
  );
216
  }
217
 
229
  // Dynamic population is enabled and contains more than 20 items
230
  if ( isset( $total ) && $total > 20 ) {
231
  echo '<div class="wpforms-alert-dynamic wpforms-alert wpforms-alert-warning">';
232
+ /* translators: %d - total amount of choices. */
233
+ printf( wp_kses( __( 'Showing the first 20 choices.<br> All %d choices will be displayed when viewing the form.', 'wpforms' ), array( 'br' => array() ) ), absint( $total ) );
234
  echo '</div>';
235
  }
236
 
258
  $form_id = $form_data['id'];
259
  $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
260
  $choices = $field['choices'];
261
+ $randomize = ! empty( $field['random'] ) ? 'wpforms-randomize' : '';
262
 
263
  if ( ! empty( $field_atts['input_data'] ) ) {
264
  foreach ( $field_atts['input_data'] as $key => $val ) {
318
  }
319
 
320
  // List.
321
+ printf( '<ul id="%s" class="%s %s" %s>', $field_id, $field_class, $randomize, $field_data );
322
 
323
  foreach ( $choices as $key => $choice ) {
324
 
includes/fields/class-email.php CHANGED
@@ -18,7 +18,7 @@ class WPForms_Field_Email extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information.
21
- $this->name = __( 'Email', 'wpforms' );
22
  $this->type = 'email';
23
  $this->icon = 'fa-envelope-o';
24
  $this->order = 17;
@@ -65,7 +65,7 @@ class WPForms_Field_Email extends WPForms_Field {
65
  ),
66
  'sublabel' => array(
67
  'hidden' => ! empty( $field['sublabel_hide'] ),
68
- 'value' => __( 'Email', 'wpforms' ),
69
  ),
70
  ),
71
  'secondary' => array(
@@ -88,7 +88,7 @@ class WPForms_Field_Email extends WPForms_Field {
88
  'required' => ! empty( $field['required'] ) ? 'required' : '',
89
  'sublabel' => array(
90
  'hidden' => ! empty( $field['sublabel_hide'] ),
91
- 'value' => __( 'Confirm Email', 'wpforms' ),
92
  ),
93
  'value' => '',
94
  ),
@@ -204,8 +204,8 @@ class WPForms_Field_Email extends WPForms_Field {
204
  array(
205
  'slug' => 'confirmation',
206
  'value' => isset( $field['confirmation'] ) ? '1' : '0',
207
- 'desc' => __( 'Enable Email Confirmation', 'wpforms' ),
208
- 'tooltip' => __( 'Check this option to ask users to provide an email address twice.', 'wpforms' ),
209
  ),
210
  false
211
  );
@@ -243,8 +243,8 @@ class WPForms_Field_Email extends WPForms_Field {
243
  $field,
244
  array(
245
  'slug' => 'confirmation_placeholder',
246
- 'value' => __( 'Confirmation Placeholder Text', 'wpforms' ),
247
- 'tooltip' => __( 'Enter text for the confirmation field placeholder.', 'wpforms' ),
248
  ),
249
  false
250
  );
18
  public function init() {
19
 
20
  // Define field type information.
21
+ $this->name = esc_html__( 'Email', 'wpforms' );
22
  $this->type = 'email';
23
  $this->icon = 'fa-envelope-o';
24
  $this->order = 17;
65
  ),
66
  'sublabel' => array(
67
  'hidden' => ! empty( $field['sublabel_hide'] ),
68
+ 'value' => esc_html__( 'Email', 'wpforms' ),
69
  ),
70
  ),
71
  'secondary' => array(
88
  'required' => ! empty( $field['required'] ) ? 'required' : '',
89
  'sublabel' => array(
90
  'hidden' => ! empty( $field['sublabel_hide'] ),
91
+ 'value' => esc_html__( 'Confirm Email', 'wpforms' ),
92
  ),
93
  'value' => '',
94
  ),
204
  array(
205
  'slug' => 'confirmation',
206
  'value' => isset( $field['confirmation'] ) ? '1' : '0',
207
+ 'desc' => esc_html__( 'Enable Email Confirmation', 'wpforms' ),
208
+ 'tooltip' => esc_html__( 'Check this option to ask users to provide an email address twice.', 'wpforms' ),
209
  ),
210
  false
211
  );
243
  $field,
244
  array(
245
  'slug' => 'confirmation_placeholder',
246
+ 'value' => esc_html__( 'Confirmation Placeholder Text', 'wpforms' ),
247
+ 'tooltip' => esc_html__( 'Enter text for the confirmation field placeholder.', 'wpforms' ),
248
  ),
249
  false
250
  );
includes/fields/class-name.php CHANGED
@@ -18,7 +18,7 @@ class WPForms_Field_Name extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information
21
- $this->name = __( 'Name', 'wpforms' );
22
  $this->type = 'name';
23
  $this->icon = 'fa-user';
24
  $this->order = 15;
@@ -79,7 +79,7 @@ class WPForms_Field_Name extends WPForms_Field {
79
  'required' => ! empty( $field['required'] ) ? 'required' : '',
80
  'sublabel' => array(
81
  'hidden' => ! empty( $field['sublabel_hide'] ),
82
- 'value' => __( 'First', 'wpforms' ),
83
  ),
84
  ),
85
  'middle' => array(
@@ -100,7 +100,7 @@ class WPForms_Field_Name extends WPForms_Field {
100
  'required' => '',
101
  'sublabel' => array(
102
  'hidden' => ! empty( $field['sublabel_hide'] ),
103
- 'value' => __( 'Middle', 'wpforms' ),
104
  ),
105
  ),
106
  'last' => array(
@@ -121,7 +121,7 @@ class WPForms_Field_Name extends WPForms_Field {
121
  'required' => ! empty( $field['required'] ) ? 'required' : '',
122
  'sublabel' => array(
123
  'hidden' => ! empty( $field['sublabel_hide'] ),
124
- 'value' => __( 'Last', 'wpforms' ),
125
  ),
126
  ),
127
  ),
@@ -217,8 +217,8 @@ class WPForms_Field_Name extends WPForms_Field {
217
  $field,
218
  array(
219
  'slug' => 'format',
220
- 'value' => __( 'Format', 'wpforms' ),
221
- 'tooltip' => __( 'Select format to use for the name form field', 'wpforms' ),
222
  ),
223
  false
224
  );
@@ -229,9 +229,9 @@ class WPForms_Field_Name extends WPForms_Field {
229
  'slug' => 'format',
230
  'value' => $format,
231
  'options' => array(
232
- 'simple' => __( 'Simple', 'wpforms' ),
233
- 'first-last' => __( 'First Last', 'wpforms' ),
234
- 'first-middle-last' => __( 'First Middle Last', 'wpforms' ),
235
  ),
236
  ),
237
  false
@@ -273,14 +273,14 @@ class WPForms_Field_Name extends WPForms_Field {
273
  $simple_placeholder = ! empty( $field['simple_placeholder'] ) ? esc_attr( $field['simple_placeholder'] ) : '';
274
  $simple_default = ! empty( $field['simple_default'] ) ? esc_attr( $field['simple_default'] ) : '';
275
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-simple" id="wpforms-field-option-row-%d-simple" data-subfield="simple" data-field-id="%d">', $field['id'], $field['id'] );
276
- $this->field_element( 'label', $field, array( 'slug' => 'simple_placeholder', 'value' => __( 'Name', 'wpforms' ), 'tooltip' => __( 'Name field advanced options.', 'wpforms' ) ) );
277
  echo '<div class="placeholder">';
278
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-simple_placeholder" name="fields[%d][simple_placeholder]" value="%s">', $field['id'], $field['id'], $simple_placeholder );
279
- printf( '<label for="wpforms-field-option-%d-simple_placeholder" class="sub-label">%s</label>', $field['id'], __( 'Placeholder', 'wpforms' ) );
280
  echo '</div>';
281
  echo '<div class="default">';
282
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-simple_default" name="fields[%d][simple_default]" value="%s">', $field['id'], $field['id'], $simple_default );
283
- printf( '<label for="wpforms-field-option-%d-simple_default" class="sub-label">%s</label>', $field['id'], __( 'Default Value', 'wpforms' ) );
284
  echo '</div>';
285
  echo '</div>';
286
 
@@ -288,14 +288,14 @@ class WPForms_Field_Name extends WPForms_Field {
288
  $first_placeholder = ! empty( $field['first_placeholder'] ) ? esc_attr( $field['first_placeholder'] ) : '';
289
  $first_default = ! empty( $field['first_default'] ) ? esc_attr( $field['first_default'] ) : '';
290
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-first" id="wpforms-field-option-row-%d-first" data-subfield="first-name" data-field-id="%d">', $field['id'], $field['id'] );
291
- $this->field_element( 'label', $field, array( 'slug' => 'first_placeholder', 'value' => __( 'First Name', 'wpforms' ), 'tooltip' => __( 'First name field advanced options.', 'wpforms' ) ) );
292
  echo '<div class="placeholder">';
293
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-first_placeholder" name="fields[%d][first_placeholder]" value="%s">', $field['id'], $field['id'], $first_placeholder );
294
- printf( '<label for="wpforms-field-option-%d-first_placeholder" class="sub-label">%s</label>', $field['id'], __( 'Placeholder', 'wpforms' ) );
295
  echo '</div>';
296
  echo '<div class="default">';
297
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-first_default" name="fields[%d][first_default]" value="%s">', $field['id'], $field['id'], $first_default );
298
- printf( '<label for="wpforms-field-option-%d-first_default" class="sub-label">%s</label>', $field['id'], __( 'Default Value', 'wpforms' ) );
299
  echo '</div>';
300
  echo '</div>';
301
 
@@ -303,14 +303,14 @@ class WPForms_Field_Name extends WPForms_Field {
303
  $middle_placeholder = ! empty( $field['middle_placeholder'] ) ? esc_attr( $field['middle_placeholder'] ) : '';
304
  $middle_default = ! empty( $field['middle_default'] ) ? esc_attr( $field['middle_default'] ) : '';
305
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-middle" id="wpforms-field-option-row-%d-middle" data-subfield="middle-name" data-field-id="%d">', $field['id'], $field['id'] );
306
- $this->field_element( 'label', $field, array( 'slug' => 'middle_placeholder', 'value' => __( 'Middle Name', 'wpforms' ), 'tooltip' => __( 'Middle name field advanced options.', 'wpforms' ) ) );
307
  echo '<div class="placeholder">';
308
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-middle_placeholder" name="fields[%d][middle_placeholder]" value="%s">', $field['id'], $field['id'], $middle_placeholder );
309
- printf( '<label for="wpforms-field-option-%d-middle_placeholder" class="sub-label">%s</label>', $field['id'], __( 'Placeholder', 'wpforms' ) );
310
  echo '</div>';
311
  echo '<div class="default">';
312
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-middle_default" name="fields[%d][middle_default]" value="%s">', $field['id'], $field['id'], $middle_default );
313
- printf( '<label for="wpforms-field-option-%d-middle_default" class="sub-label">%s</label>', $field['id'], __( 'Default Value', 'wpforms' ) );
314
  echo '</div>';
315
  echo '</div>';
316
 
@@ -318,14 +318,14 @@ class WPForms_Field_Name extends WPForms_Field {
318
  $last_placeholder = ! empty( $field['last_placeholder'] ) ? esc_attr( $field['last_placeholder'] ) : '';
319
  $last_default = ! empty( $field['last_default'] ) ? esc_attr( $field['last_default'] ) : '';
320
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-last" id="wpforms-field-option-row-%d-last" data-subfield="last-name" data-field-id="%d">', $field['id'], $field['id'] );
321
- $this->field_element( 'label', $field, array( 'slug' => 'last_placeholder', 'value' => __( 'Last Name', 'wpforms' ), 'tooltip' => __( 'Last name field advanced options.', 'wpforms' ) ) );
322
  echo '<div class="placeholder">';
323
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-last_placeholder" name="fields[%d][last_placeholder]" value="%s">', $field['id'], $field['id'], $last_placeholder );
324
- printf( '<label for="wpforms-field-option-%d-last_placeholder" class="sub-label">%s</label>', $field['id'], __( 'Placeholder', 'wpforms' ) );
325
  echo '</div>';
326
  echo '<div class="default">';
327
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-last_default" name="fields[%d][last_default]" value="%s">', $field['id'], $field['id'], $last_default );
328
- printf( '<label for="wpforms-field-option-%d-last_default" class="sub-label">%s</label>', $field['id'], __( 'Default Value', 'wpforms' ) );
329
  echo '</div>';
330
  echo '</div>';
331
 
@@ -482,7 +482,7 @@ class WPForms_Field_Name extends WPForms_Field {
482
 
483
  $form_id = $form_data['id'];
484
  $format = $form_data['fields'][ $field_id ]['format'];
485
- $required = apply_filters( 'wpforms_required_label', __( 'This field is required.', 'wpforms' ) );
486
 
487
  if ( 'simple' === $format && empty( $field_submit ) ) {
488
  wpforms()->process->errors[ $form_id ][ $field_id ] = $required;
18
  public function init() {
19
 
20
  // Define field type information
21
+ $this->name = esc_html__( 'Name', 'wpforms' );
22
  $this->type = 'name';
23
  $this->icon = 'fa-user';
24
  $this->order = 15;
79
  'required' => ! empty( $field['required'] ) ? 'required' : '',
80
  'sublabel' => array(
81
  'hidden' => ! empty( $field['sublabel_hide'] ),
82
+ 'value' => esc_html__( 'First', 'wpforms' ),
83
  ),
84
  ),
85
  'middle' => array(
100
  'required' => '',
101
  'sublabel' => array(
102
  'hidden' => ! empty( $field['sublabel_hide'] ),
103
+ 'value' => esc_html__( 'Middle', 'wpforms' ),
104
  ),
105
  ),
106
  'last' => array(
121
  'required' => ! empty( $field['required'] ) ? 'required' : '',
122
  'sublabel' => array(
123
  'hidden' => ! empty( $field['sublabel_hide'] ),
124
+ 'value' => esc_html__( 'Last', 'wpforms' ),
125
  ),
126
  ),
127
  ),
217
  $field,
218
  array(
219
  'slug' => 'format',
220
+ 'value' => esc_html__( 'Format', 'wpforms' ),
221
+ 'tooltip' => esc_html__( 'Select format to use for the name form field', 'wpforms' ),
222
  ),
223
  false
224
  );
229
  'slug' => 'format',
230
  'value' => $format,
231
  'options' => array(
232
+ 'simple' => esc_html__( 'Simple', 'wpforms' ),
233
+ 'first-last' => esc_html__( 'First Last', 'wpforms' ),
234
+ 'first-middle-last' => esc_html__( 'First Middle Last', 'wpforms' ),
235
  ),
236
  ),
237
  false
273
  $simple_placeholder = ! empty( $field['simple_placeholder'] ) ? esc_attr( $field['simple_placeholder'] ) : '';
274
  $simple_default = ! empty( $field['simple_default'] ) ? esc_attr( $field['simple_default'] ) : '';
275
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-simple" id="wpforms-field-option-row-%d-simple" data-subfield="simple" data-field-id="%d">', $field['id'], $field['id'] );
276
+ $this->field_element( 'label', $field, array( 'slug' => 'simple_placeholder', 'value' => esc_html__( 'Name', 'wpforms' ), 'tooltip' => esc_html__( 'Name field advanced options.', 'wpforms' ) ) );
277
  echo '<div class="placeholder">';
278
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-simple_placeholder" name="fields[%d][simple_placeholder]" value="%s">', $field['id'], $field['id'], $simple_placeholder );
279
+ printf( '<label for="wpforms-field-option-%d-simple_placeholder" class="sub-label">%s</label>', $field['id'], esc_html__( 'Placeholder', 'wpforms' ) );
280
  echo '</div>';
281
  echo '<div class="default">';
282
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-simple_default" name="fields[%d][simple_default]" value="%s">', $field['id'], $field['id'], $simple_default );
283
+ printf( '<label for="wpforms-field-option-%d-simple_default" class="sub-label">%s</label>', $field['id'], esc_html__( 'Default Value', 'wpforms' ) );
284
  echo '</div>';
285
  echo '</div>';
286
 
288
  $first_placeholder = ! empty( $field['first_placeholder'] ) ? esc_attr( $field['first_placeholder'] ) : '';
289
  $first_default = ! empty( $field['first_default'] ) ? esc_attr( $field['first_default'] ) : '';
290
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-first" id="wpforms-field-option-row-%d-first" data-subfield="first-name" data-field-id="%d">', $field['id'], $field['id'] );
291
+ $this->field_element( 'label', $field, array( 'slug' => 'first_placeholder', 'value' => esc_html__( 'First Name', 'wpforms' ), 'tooltip' => esc_html__( 'First name field advanced options.', 'wpforms' ) ) );
292
  echo '<div class="placeholder">';
293
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-first_placeholder" name="fields[%d][first_placeholder]" value="%s">', $field['id'], $field['id'], $first_placeholder );
294
+ printf( '<label for="wpforms-field-option-%d-first_placeholder" class="sub-label">%s</label>', $field['id'], esc_html__( 'Placeholder', 'wpforms' ) );
295
  echo '</div>';
296
  echo '<div class="default">';
297
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-first_default" name="fields[%d][first_default]" value="%s">', $field['id'], $field['id'], $first_default );
298
+ printf( '<label for="wpforms-field-option-%d-first_default" class="sub-label">%s</label>', $field['id'], esc_html__( 'Default Value', 'wpforms' ) );
299
  echo '</div>';
300
  echo '</div>';
301
 
303
  $middle_placeholder = ! empty( $field['middle_placeholder'] ) ? esc_attr( $field['middle_placeholder'] ) : '';
304
  $middle_default = ! empty( $field['middle_default'] ) ? esc_attr( $field['middle_default'] ) : '';
305
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-middle" id="wpforms-field-option-row-%d-middle" data-subfield="middle-name" data-field-id="%d">', $field['id'], $field['id'] );
306
+ $this->field_element( 'label', $field, array( 'slug' => 'middle_placeholder', 'value' => esc_html__( 'Middle Name', 'wpforms' ), 'tooltip' => esc_html__( 'Middle name field advanced options.', 'wpforms' ) ) );
307
  echo '<div class="placeholder">';
308
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-middle_placeholder" name="fields[%d][middle_placeholder]" value="%s">', $field['id'], $field['id'], $middle_placeholder );
309
+ printf( '<label for="wpforms-field-option-%d-middle_placeholder" class="sub-label">%s</label>', $field['id'], esc_html__( 'Placeholder', 'wpforms' ) );
310
  echo '</div>';
311
  echo '<div class="default">';
312
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-middle_default" name="fields[%d][middle_default]" value="%s">', $field['id'], $field['id'], $middle_default );
313
+ printf( '<label for="wpforms-field-option-%d-middle_default" class="sub-label">%s</label>', $field['id'], esc_html__( 'Default Value', 'wpforms' ) );
314
  echo '</div>';
315
  echo '</div>';
316
 
318
  $last_placeholder = ! empty( $field['last_placeholder'] ) ? esc_attr( $field['last_placeholder'] ) : '';
319
  $last_default = ! empty( $field['last_default'] ) ? esc_attr( $field['last_default'] ) : '';
320
  printf( '<div class="wpforms-clear wpforms-field-option-row wpforms-field-option-row-last" id="wpforms-field-option-row-%d-last" data-subfield="last-name" data-field-id="%d">', $field['id'], $field['id'] );
321
+ $this->field_element( 'label', $field, array( 'slug' => 'last_placeholder', 'value' => esc_html__( 'Last Name', 'wpforms' ), 'tooltip' => esc_html__( 'Last name field advanced options.', 'wpforms' ) ) );
322
  echo '<div class="placeholder">';
323
  printf( '<input type="text" class="placeholder" id="wpforms-field-option-%d-last_placeholder" name="fields[%d][last_placeholder]" value="%s">', $field['id'], $field['id'], $last_placeholder );
324
+ printf( '<label for="wpforms-field-option-%d-last_placeholder" class="sub-label">%s</label>', $field['id'], esc_html__( 'Placeholder', 'wpforms' ) );
325
  echo '</div>';
326
  echo '<div class="default">';
327
  printf( '<input type="text" class="default" id="wpforms-field-option-%d-last_default" name="fields[%d][last_default]" value="%s">', $field['id'], $field['id'], $last_default );
328
+ printf( '<label for="wpforms-field-option-%d-last_default" class="sub-label">%s</label>', $field['id'], esc_html__( 'Default Value', 'wpforms' ) );
329
  echo '</div>';
330
  echo '</div>';
331
 
482
 
483
  $form_id = $form_data['id'];
484
  $format = $form_data['fields'][ $field_id ]['format'];
485
+ $required = wpforms_get_required_label();
486
 
487
  if ( 'simple' === $format && empty( $field_submit ) ) {
488
  wpforms()->process->errors[ $form_id ][ $field_id ] = $required;
includes/fields/class-number.php CHANGED
@@ -18,7 +18,7 @@ class WPForms_Field_Number extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information.
21
- $this->name = __( 'Numbers', 'wpforms' );
22
  $this->type = 'number';
23
  $this->icon = 'fa-hashtag';
24
  $this->order = 13;
@@ -149,12 +149,12 @@ class WPForms_Field_Number extends WPForms_Field {
149
 
150
  // Basic required check - If field is marked as required, check for entry data
151
  if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) && '0' != $field_submit ) {
152
- wpforms()->process->errors[ $form_id ][ $field_id ] = apply_filters( 'wpforms_required_label', __( 'This field is required.', 'wpforms' ) );
153
  }
154
 
155
  // Check if value is numeric.
156
  if ( ! empty( $field_submit ) && ! is_numeric( $field_submit ) ) {
157
- wpforms()->process->errors[ $form_id ][ $field_id ] = apply_filters( 'wpforms_valid_number_label', __( 'Please enter a valid number.', 'wpforms' ) );
158
  }
159
  }
160
 
18
  public function init() {
19
 
20
  // Define field type information.
21
+ $this->name = esc_html__( 'Numbers', 'wpforms' );
22
  $this->type = 'number';
23
  $this->icon = 'fa-hashtag';
24
  $this->order = 13;
149
 
150
  // Basic required check - If field is marked as required, check for entry data
151
  if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) && '0' != $field_submit ) {
152
+ wpforms()->process->errors[ $form_id ][ $field_id ] = wpforms_get_required_label();
153
  }
154
 
155
  // Check if value is numeric.
156
  if ( ! empty( $field_submit ) && ! is_numeric( $field_submit ) ) {
157
+ wpforms()->process->errors[ $form_id ][ $field_id ] = apply_filters( 'wpforms_valid_number_label', esc_html__( 'Please enter a valid number.', 'wpforms' ) );
158
  }
159
  }
160
 
includes/fields/class-radio.php CHANGED
@@ -18,23 +18,23 @@ class WPForms_Field_Radio extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information.
21
- $this->name = __( 'Multiple Choice', 'wpforms' );
22
  $this->type = 'radio';
23
  $this->icon = 'fa-list-ul';
24
  $this->order = 11;
25
  $this->defaults = array(
26
  1 => array(
27
- 'label' => __( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
  'default' => '',
30
  ),
31
  2 => array(
32
- 'label' => __( 'Second Choice', 'wpforms' ),
33
  'value' => '',
34
  'default' => '',
35
  ),
36
  3 => array(
37
- 'label' => __( 'Third Choice', 'wpforms' ),
38
  'value' => '',
39
  'default' => '',
40
  ),
@@ -85,6 +85,26 @@ class WPForms_Field_Radio extends WPForms_Field {
85
  'markup' => 'open',
86
  ) );
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  // Show Values toggle option. This option will only show if already used
89
  // or if manually enabled by a filter.
90
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
@@ -94,8 +114,8 @@ class WPForms_Field_Radio extends WPForms_Field {
94
  array(
95
  'slug' => 'show_values',
96
  'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
97
- 'desc' => __( 'Show Values', 'wpforms' ),
98
- 'tooltip' => __( 'Check this to manually set form field values.', 'wpforms' ),
99
  ),
100
  false
101
  );
@@ -191,7 +211,7 @@ class WPForms_Field_Radio extends WPForms_Field {
191
  // Notify if currently empty.
192
  if ( empty( $values ) ) {
193
  $values = array(
194
- 'label' => __( '(empty)', 'wpforms' ),
195
  );
196
  }
197
 
@@ -209,7 +229,8 @@ class WPForms_Field_Radio extends WPForms_Field {
209
  // Dynamic population is enabled and contains more than 20 items.
210
  if ( isset( $total ) && $total > 20 ) {
211
  echo '<div class="wpforms-alert-dynamic wpforms-alert wpforms-alert-warning">';
212
- printf( __( 'Showing the first 20 choices.<br> All %d choices will be displayed when viewing the form.', 'wpforms' ), absint( $total ) );
 
213
  echo '</div>';
214
  }
215
 
@@ -237,6 +258,7 @@ class WPForms_Field_Radio extends WPForms_Field {
237
  $form_id = absint( $form_data['id'] );
238
  $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
239
  $choices = $field['choices'];
 
240
 
241
  if ( ! empty( $field_atts['input_data'] ) ) {
242
  foreach ( $field_atts['input_data'] as $key => $val ) {
@@ -295,7 +317,7 @@ class WPForms_Field_Radio extends WPForms_Field {
295
  }
296
 
297
  // List.
298
- printf( '<ul id="%s" class="%s" %s>', $field_id, $field_class, $field_data );
299
 
300
  foreach ( $choices as $key => $choice ) {
301
 
@@ -372,8 +394,9 @@ class WPForms_Field_Radio extends WPForms_Field {
372
  $data['value'] = esc_html( $term->name );
373
  }
374
  } else {
375
-
376
- // Normal processing, dynamic population is off.
 
377
 
378
  // If show_values is true, that means values posted are the raw values
379
  // and not the labels. So we need to get the label values.
18
  public function init() {
19
 
20
  // Define field type information.
21
+ $this->name = esc_html__( 'Multiple Choice', 'wpforms' );
22
  $this->type = 'radio';
23
  $this->icon = 'fa-list-ul';
24
  $this->order = 11;
25
  $this->defaults = array(
26
  1 => array(
27
+ 'label' => esc_html__( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
  'default' => '',
30
  ),
31
  2 => array(
32
+ 'label' => esc_html__( 'Second Choice', 'wpforms' ),
33
  'value' => '',
34
  'default' => '',
35
  ),
36
  3 => array(
37
+ 'label' => esc_html__( 'Third Choice', 'wpforms' ),
38
  'value' => '',
39
  'default' => '',
40
  ),
85
  'markup' => 'open',
86
  ) );
87
 
88
+ // Randomize order of choices.
89
+ $this->field_element(
90
+ 'row',
91
+ $field,
92
+ array(
93
+ 'slug' => 'random',
94
+ 'content' => $this->field_element(
95
+ 'checkbox',
96
+ $field,
97
+ array(
98
+ 'slug' => 'random',
99
+ 'value' => isset( $field['random'] ) ? '1' : '0',
100
+ 'desc' => esc_html__( 'Randomize Choices', 'wpforms' ),
101
+ 'tooltip' => esc_html__( 'Check this option to randomize the order of the choices.', 'wpforms' ),
102
+ ),
103
+ false
104
+ ),
105
+ )
106
+ );
107
+
108
  // Show Values toggle option. This option will only show if already used
109
  // or if manually enabled by a filter.
110
  if ( ! empty( $field['show_values'] ) || apply_filters( 'wpforms_fields_show_options_setting', false ) ) {
114
  array(
115
  'slug' => 'show_values',
116
  'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
117
+ 'desc' => esc_html__( 'Show Values', 'wpforms' ),
118
+ 'tooltip' => esc_html__( 'Check this to manually set form field values.', 'wpforms' ),
119
  ),
120
  false
121
  );
211
  // Notify if currently empty.
212
  if ( empty( $values ) ) {
213
  $values = array(
214
+ 'label' => esc_html__( '(empty)', 'wpforms' ),
215
  );
216
  }
217
 
229
  // Dynamic population is enabled and contains more than 20 items.
230
  if ( isset( $total ) && $total > 20 ) {
231
  echo '<div class="wpforms-alert-dynamic wpforms-alert wpforms-alert-warning">';
232
+ /* translators: %d - total number of choices. */
233
+ printf( wp_kses( __( 'Showing the first 20 choices.<br> All %d choices will be displayed when viewing the form.', 'wpforms' ), array( 'br' => array() ) ), absint( $total ) );
234
  echo '</div>';
235
  }
236
 
258
  $form_id = absint( $form_data['id'] );
259
  $dynamic = ! empty( $field['dynamic_choices'] ) ? $field['dynamic_choices'] : false;
260
  $choices = $field['choices'];
261
+ $randomize = ! empty( $field['random'] ) ? 'wpforms-randomize' : '';
262
 
263
  if ( ! empty( $field_atts['input_data'] ) ) {
264
  foreach ( $field_atts['input_data'] as $key => $val ) {
317
  }
318
 
319
  // List.
320
+ printf( '<ul id="%s" class="%s %s" %s>', $field_id, $field_class, $randomize, $field_data );
321
 
322
  foreach ( $choices as $key => $choice ) {
323
 
394
  $data['value'] = esc_html( $term->name );
395
  }
396
  } else {
397
+ /*
398
+ * Normal processing, dynamic population is off.
399
+ */
400
 
401
  // If show_values is true, that means values posted are the raw values
402
  // and not the labels. So we need to get the label values.
includes/fields/class-select.php CHANGED
@@ -18,23 +18,23 @@ class WPForms_Field_Select extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information
21
- $this->name = __( 'Dropdown', 'wpforms' );
22
  $this->type = 'select';
23
  $this->icon = 'fa-caret-square-o-down';
24
  $this->order = 7;
25
  $this->defaults = array(
26
  1 => array(
27
- 'label' => __( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
  'default' => '',
30
  ),
31
  2 => array(
32
- 'label' => __( 'Second Choice', 'wpforms' ),
33
  'value' => '',
34
  'default' => '',
35
  ),
36
  3 => array(
37
- 'label' => __( 'Third Choice', 'wpforms' ),
38
  'value' => '',
39
  'default' => '',
40
  ),
@@ -94,8 +94,8 @@ class WPForms_Field_Select extends WPForms_Field {
94
  array(
95
  'slug' => 'show_values',
96
  'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
97
- 'desc' => __( 'Show Values', 'wpforms' ),
98
- 'tooltip' => __( 'Check this to manually set form field values.', 'wpforms' ),
99
  ),
100
  false
101
  );
@@ -197,7 +197,7 @@ class WPForms_Field_Select extends WPForms_Field {
197
  // Notify if currently empty.
198
  if ( empty( $values ) ) {
199
  $values = array(
200
- 'label' => __( '(empty)', 'wpforms' ),
201
  );
202
  }
203
 
18
  public function init() {
19
 
20
  // Define field type information
21
+ $this->name = esc_html__( 'Dropdown', 'wpforms' );
22
  $this->type = 'select';
23
  $this->icon = 'fa-caret-square-o-down';
24
  $this->order = 7;
25
  $this->defaults = array(
26
  1 => array(
27
+ 'label' => esc_html__( 'First Choice', 'wpforms' ),
28
  'value' => '',
29
  'default' => '',
30
  ),
31
  2 => array(
32
+ 'label' => esc_html__( 'Second Choice', 'wpforms' ),
33
  'value' => '',
34
  'default' => '',
35
  ),
36
  3 => array(
37
+ 'label' => esc_html__( 'Third Choice', 'wpforms' ),
38
  'value' => '',
39
  'default' => '',
40
  ),
94
  array(
95
  'slug' => 'show_values',
96
  'value' => isset( $field['show_values'] ) ? $field['show_values'] : '0',
97
+ 'desc' => esc_html__( 'Show Values', 'wpforms' ),
98
+ 'tooltip' => esc_html__( 'Check this to manually set form field values.', 'wpforms' ),
99
  ),
100
  false
101
  );
197
  // Notify if currently empty.
198
  if ( empty( $values ) ) {
199
  $values = array(
200
+ 'label' => esc_html__( '(empty)', 'wpforms' ),
201
  );
202
  }
203
 
includes/fields/class-text.php CHANGED
@@ -18,7 +18,7 @@ class WPForms_Field_Text extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information.
21
- $this->name = __( 'Single Line Text', 'wpforms' );
22
  $this->type = 'text';
23
  $this->icon = 'fa-text-width';
24
  $this->order = 3;
18
  public function init() {
19
 
20
  // Define field type information.
21
+ $this->name = esc_html__( 'Single Line Text', 'wpforms' );
22
  $this->type = 'text';
23
  $this->icon = 'fa-text-width';
24
  $this->order = 3;
includes/fields/class-textarea.php CHANGED
@@ -18,7 +18,7 @@ class WPForms_Field_Textarea extends WPForms_Field {
18
  public function init() {
19
 
20
  // Define field type information
21
- $this->name = __( 'Paragraph Text', 'wpforms' );
22
  $this->type = 'textarea';
23
  $this->icon = 'fa-paragraph';
24
  $this->order = 5;
18
  public function init() {
19
 
20
  // Define field type information
21
+ $this->name = esc_html__( 'Paragraph Text', 'wpforms' );
22
  $this->type = 'textarea';
23
  $this->icon = 'fa-paragraph';
24
  $this->order = 5;
includes/functions.php CHANGED
@@ -153,7 +153,7 @@ function wpforms_sanitize_key( $key = '' ) {
153
  *
154
  * @since 1.0.5
155
  *
156
- * @param string $type
157
  * @param array $form
158
  * @param bool $multiple
159
  *
@@ -390,7 +390,7 @@ function wpforms_html_attributes( $id = '', $class = array(), $datas = array(),
390
  *
391
  * @since 1.2.1
392
  *
393
- * @param string $classes
394
  * @param bool $convert True will convert strings to array and vice versa.
395
  *
396
  * @return string|array
@@ -632,7 +632,7 @@ function wpforms_us_states() {
632
  'DE' => esc_html__( 'Delaware', 'wpforms' ),
633
  'DC' => esc_html__( 'District of Columbia', 'wpforms' ),
634
  'FL' => esc_html__( 'Florida', 'wpforms' ),
635
- 'GA' => esc_html__( 'Georgia', 'wpforms' ),
636
  'HI' => esc_html__( 'Hawaii', 'wpforms' ),
637
  'ID' => esc_html__( 'Idaho', 'wpforms' ),
638
  'IL' => esc_html__( 'Illinois', 'wpforms' ),
@@ -688,7 +688,7 @@ function wpforms_countries() {
688
 
689
  $countries = array(
690
  'AF' => esc_html__( 'Afghanistan', 'wpforms' ),
691
- 'AX' => esc_html__( 'Aland Islands', 'wpforms' ),
692
  'AL' => esc_html__( 'Albania', 'wpforms' ),
693
  'DZ' => esc_html__( 'Algeria', 'wpforms' ),
694
  'AS' => esc_html__( 'American Samoa', 'wpforms' ),
@@ -700,7 +700,6 @@ function wpforms_countries() {
700
  'AR' => esc_html__( 'Argentina', 'wpforms' ),
701
  'AM' => esc_html__( 'Armenia', 'wpforms' ),
702
  'AW' => esc_html__( 'Aruba', 'wpforms' ),
703
- 'AC' => esc_html__( 'Ascension Island', 'wpforms' ),
704
  'AU' => esc_html__( 'Australia', 'wpforms' ),
705
  'AT' => esc_html__( 'Austria', 'wpforms' ),
706
  'AZ' => esc_html__( 'Azerbaijan', 'wpforms' ),
@@ -714,46 +713,40 @@ function wpforms_countries() {
714
  'BJ' => esc_html__( 'Benin', 'wpforms' ),
715
  'BM' => esc_html__( 'Bermuda', 'wpforms' ),
716
  'BT' => esc_html__( 'Bhutan', 'wpforms' ),
717
- 'BO' => esc_html__( 'Bolivia', 'wpforms' ),
718
  'BA' => esc_html__( 'Bosnia and Herzegovina', 'wpforms' ),
719
  'BW' => esc_html__( 'Botswana', 'wpforms' ),
720
  'BV' => esc_html__( 'Bouvet Island', 'wpforms' ),
721
  'BR' => esc_html__( 'Brazil', 'wpforms' ),
722
  'IO' => esc_html__( 'British Indian Ocean Territory', 'wpforms' ),
723
- 'VG' => esc_html__( 'British Virgin Islands', 'wpforms' ),
724
- 'BN' => esc_html__( 'Brunei', 'wpforms' ),
725
  'BG' => esc_html__( 'Bulgaria', 'wpforms' ),
726
  'BF' => esc_html__( 'Burkina Faso', 'wpforms' ),
727
  'BI' => esc_html__( 'Burundi', 'wpforms' ),
 
728
  'KH' => esc_html__( 'Cambodia', 'wpforms' ),
729
  'CM' => esc_html__( 'Cameroon', 'wpforms' ),
730
  'CA' => esc_html__( 'Canada', 'wpforms' ),
731
- 'IC' => esc_html__( 'Canary Islands', 'wpforms' ),
732
- 'CV' => esc_html__( 'Cape Verde', 'wpforms' ),
733
- 'BQ' => esc_html__( 'Caribbean Netherlands', 'wpforms' ),
734
  'KY' => esc_html__( 'Cayman Islands', 'wpforms' ),
735
  'CF' => esc_html__( 'Central African Republic', 'wpforms' ),
736
- 'EA' => esc_html__( 'Ceuta and Melilla', 'wpforms' ),
737
  'TD' => esc_html__( 'Chad', 'wpforms' ),
738
  'CL' => esc_html__( 'Chile', 'wpforms' ),
739
  'CN' => esc_html__( 'China', 'wpforms' ),
740
  'CX' => esc_html__( 'Christmas Island', 'wpforms' ),
741
- 'CP' => esc_html__( 'Clipperton Island', 'wpforms' ),
742
  'CC' => esc_html__( 'Cocos (Keeling) Islands', 'wpforms' ),
743
  'CO' => esc_html__( 'Colombia', 'wpforms' ),
744
  'KM' => esc_html__( 'Comoros', 'wpforms' ),
745
- 'CD' => esc_html__( 'Congo (DRC)', 'wpforms' ),
746
- 'CG' => esc_html__( 'Congo (Republic)', 'wpforms' ),
747
  'CK' => esc_html__( 'Cook Islands', 'wpforms' ),
748
  'CR' => esc_html__( 'Costa Rica', 'wpforms' ),
749
- 'CI' => esc_html__( 'Côte dIvoire', 'wpforms' ),
750
  'HR' => esc_html__( 'Croatia', 'wpforms' ),
751
  'CU' => esc_html__( 'Cuba', 'wpforms' ),
752
  'CW' => esc_html__( 'Curaçao', 'wpforms' ),
753
  'CY' => esc_html__( 'Cyprus', 'wpforms' ),
754
  'CZ' => esc_html__( 'Czech Republic', 'wpforms' ),
755
- 'DK' => esc_html__( 'Denmark (Danmark)', 'wpforms' ),
756
- 'DG' => esc_html__( 'Diego Garcia', 'wpforms' ),
757
  'DJ' => esc_html__( 'Djibouti', 'wpforms' ),
758
  'DM' => esc_html__( 'Dominica', 'wpforms' ),
759
  'DO' => esc_html__( 'Dominican Republic', 'wpforms' ),
@@ -764,7 +757,7 @@ function wpforms_countries() {
764
  'ER' => esc_html__( 'Eritrea', 'wpforms' ),
765
  'EE' => esc_html__( 'Estonia', 'wpforms' ),
766
  'ET' => esc_html__( 'Ethiopia', 'wpforms' ),
767
- 'FK' => esc_html__( 'Falkland Islands', 'wpforms' ),
768
  'FO' => esc_html__( 'Faroe Islands', 'wpforms' ),
769
  'FJ' => esc_html__( 'Fiji', 'wpforms' ),
770
  'FI' => esc_html__( 'Finland', 'wpforms' ),
@@ -774,7 +767,7 @@ function wpforms_countries() {
774
  'TF' => esc_html__( 'French Southern Territories', 'wpforms' ),
775
  'GA' => esc_html__( 'Gabon', 'wpforms' ),
776
  'GM' => esc_html__( 'Gambia', 'wpforms' ),
777
- 'GE' => esc_html__( 'Georgia', 'wpforms' ),
778
  'DE' => esc_html__( 'Germany', 'wpforms' ),
779
  'GH' => esc_html__( 'Ghana', 'wpforms' ),
780
  'GI' => esc_html__( 'Gibraltar', 'wpforms' ),
@@ -789,16 +782,16 @@ function wpforms_countries() {
789
  'GW' => esc_html__( 'Guinea-Bissau', 'wpforms' ),
790
  'GY' => esc_html__( 'Guyana', 'wpforms' ),
791
  'HT' => esc_html__( 'Haiti', 'wpforms' ),
792
- 'HM' => esc_html__( 'Heard & McDonald Islands', 'wpforms' ),
793
  'HN' => esc_html__( 'Honduras', 'wpforms' ),
794
  'HK' => esc_html__( 'Hong Kong', 'wpforms' ),
795
  'HU' => esc_html__( 'Hungary', 'wpforms' ),
796
  'IS' => esc_html__( 'Iceland', 'wpforms' ),
797
  'IN' => esc_html__( 'India', 'wpforms' ),
798
  'ID' => esc_html__( 'Indonesia', 'wpforms' ),
799
- 'IR' => esc_html__( 'Iran', 'wpforms' ),
800
  'IQ' => esc_html__( 'Iraq', 'wpforms' ),
801
- 'IE' => esc_html__( 'Ireland', 'wpforms' ),
802
  'IM' => esc_html__( 'Isle of Man', 'wpforms' ),
803
  'IL' => esc_html__( 'Israel', 'wpforms' ),
804
  'IT' => esc_html__( 'Italy', 'wpforms' ),
@@ -809,10 +802,11 @@ function wpforms_countries() {
809
  'KZ' => esc_html__( 'Kazakhstan', 'wpforms' ),
810
  'KE' => esc_html__( 'Kenya', 'wpforms' ),
811
  'KI' => esc_html__( 'Kiribati', 'wpforms' ),
812
- 'XK' => esc_html__( 'Kosovo', 'wpforms' ),
 
813
  'KW' => esc_html__( 'Kuwait', 'wpforms' ),
814
  'KG' => esc_html__( 'Kyrgyzstan', 'wpforms' ),
815
- 'LA' => esc_html__( 'Laos', 'wpforms' ),
816
  'LV' => esc_html__( 'Latvia', 'wpforms' ),
817
  'LB' => esc_html__( 'Lebanon', 'wpforms' ),
818
  'LS' => esc_html__( 'Lesotho', 'wpforms' ),
@@ -821,8 +815,8 @@ function wpforms_countries() {
821
  'LI' => esc_html__( 'Liechtenstein', 'wpforms' ),
822
  'LT' => esc_html__( 'Lithuania', 'wpforms' ),
823
  'LU' => esc_html__( 'Luxembourg', 'wpforms' ),
824
- 'MO' => esc_html__( 'Macau', 'wpforms' ),
825
- 'MK' => esc_html__( 'Macedonia (FYROM)', 'wpforms' ),
826
  'MG' => esc_html__( 'Madagascar', 'wpforms' ),
827
  'MW' => esc_html__( 'Malawi', 'wpforms' ),
828
  'MY' => esc_html__( 'Malaysia', 'wpforms' ),
@@ -835,8 +829,8 @@ function wpforms_countries() {
835
  'MU' => esc_html__( 'Mauritius', 'wpforms' ),
836
  'YT' => esc_html__( 'Mayotte', 'wpforms' ),
837
  'MX' => esc_html__( 'Mexico', 'wpforms' ),
838
- 'FM' => esc_html__( 'Micronesia', 'wpforms' ),
839
- 'MD' => esc_html__( 'Moldova', 'wpforms' ),
840
  'MC' => esc_html__( 'Monaco', 'wpforms' ),
841
  'MN' => esc_html__( 'Mongolia', 'wpforms' ),
842
  'ME' => esc_html__( 'Montenegro', 'wpforms' ),
@@ -856,88 +850,86 @@ function wpforms_countries() {
856
  'NU' => esc_html__( 'Niue', 'wpforms' ),
857
  'NF' => esc_html__( 'Norfolk Island', 'wpforms' ),
858
  'MP' => esc_html__( 'Northern Mariana Islands', 'wpforms' ),
859
- 'KP' => esc_html__( 'North Korea', 'wpforms' ),
860
  'NO' => esc_html__( 'Norway', 'wpforms' ),
861
  'OM' => esc_html__( 'Oman', 'wpforms' ),
862
  'PK' => esc_html__( 'Pakistan', 'wpforms' ),
863
  'PW' => esc_html__( 'Palau', 'wpforms' ),
864
- 'PS' => esc_html__( 'Palestine', 'wpforms' ),
865
  'PA' => esc_html__( 'Panama', 'wpforms' ),
866
  'PG' => esc_html__( 'Papua New Guinea', 'wpforms' ),
867
  'PY' => esc_html__( 'Paraguay', 'wpforms' ),
868
  'PE' => esc_html__( 'Peru', 'wpforms' ),
869
  'PH' => esc_html__( 'Philippines', 'wpforms' ),
870
- 'PN' => esc_html__( 'Pitcairn Islands', 'wpforms' ),
871
  'PL' => esc_html__( 'Poland', 'wpforms' ),
872
  'PT' => esc_html__( 'Portugal', 'wpforms' ),
873
  'PR' => esc_html__( 'Puerto Rico', 'wpforms' ),
874
  'QA' => esc_html__( 'Qatar', 'wpforms' ),
875
  'RE' => esc_html__( 'Réunion', 'wpforms' ),
876
  'RO' => esc_html__( 'Romania', 'wpforms' ),
877
- 'RU' => esc_html__( 'Russia', 'wpforms' ),
878
  'RW' => esc_html__( 'Rwanda', 'wpforms' ),
879
  'BL' => esc_html__( 'Saint Barthélemy', 'wpforms' ),
880
- 'SH' => esc_html__( 'Saint Helena', 'wpforms' ),
881
  'KN' => esc_html__( 'Saint Kitts and Nevis', 'wpforms' ),
882
  'LC' => esc_html__( 'Saint Lucia', 'wpforms' ),
883
- 'MF' => esc_html__( 'Saint Martin', 'wpforms' ),
884
  'PM' => esc_html__( 'Saint Pierre and Miquelon', 'wpforms' ),
 
885
  'WS' => esc_html__( 'Samoa', 'wpforms' ),
886
  'SM' => esc_html__( 'San Marino', 'wpforms' ),
887
- 'ST' => esc_html__( 'São Tomé and Príncipe', 'wpforms' ),
888
  'SA' => esc_html__( 'Saudi Arabia', 'wpforms' ),
889
  'SN' => esc_html__( 'Senegal', 'wpforms' ),
890
  'RS' => esc_html__( 'Serbia', 'wpforms' ),
891
  'SC' => esc_html__( 'Seychelles', 'wpforms' ),
892
  'SL' => esc_html__( 'Sierra Leone', 'wpforms' ),
893
  'SG' => esc_html__( 'Singapore', 'wpforms' ),
894
- 'SX' => esc_html__( 'Sint Maarten', 'wpforms' ),
895
  'SK' => esc_html__( 'Slovakia', 'wpforms' ),
896
  'SI' => esc_html__( 'Slovenia', 'wpforms' ),
897
  'SB' => esc_html__( 'Solomon Islands', 'wpforms' ),
898
  'SO' => esc_html__( 'Somalia', 'wpforms' ),
899
  'ZA' => esc_html__( 'South Africa', 'wpforms' ),
900
- 'GS' => esc_html__( 'South Georgia & South Sandwich Islands', 'wpforms' ),
901
- 'KR' => esc_html__( 'South Korea', 'wpforms' ),
902
  'SS' => esc_html__( 'South Sudan', 'wpforms' ),
903
  'ES' => esc_html__( 'Spain', 'wpforms' ),
904
  'LK' => esc_html__( 'Sri Lanka', 'wpforms' ),
905
- 'VC' => esc_html__( 'St. Vincent & Grenadines', 'wpforms' ),
906
  'SD' => esc_html__( 'Sudan', 'wpforms' ),
907
  'SR' => esc_html__( 'Suriname', 'wpforms' ),
908
  'SJ' => esc_html__( 'Svalbard and Jan Mayen', 'wpforms' ),
909
  'SZ' => esc_html__( 'Swaziland', 'wpforms' ),
910
  'SE' => esc_html__( 'Sweden', 'wpforms' ),
911
  'CH' => esc_html__( 'Switzerland', 'wpforms' ),
912
- 'SY' => esc_html__( 'Syria', 'wpforms' ),
913
- 'TW' => esc_html__( 'Taiwan', 'wpforms' ),
914
  'TJ' => esc_html__( 'Tajikistan', 'wpforms' ),
915
- 'TZ' => esc_html__( 'Tanzania', 'wpforms' ),
916
  'TH' => esc_html__( 'Thailand', 'wpforms' ),
917
  'TL' => esc_html__( 'Timor-Leste', 'wpforms' ),
918
  'TG' => esc_html__( 'Togo', 'wpforms' ),
919
  'TK' => esc_html__( 'Tokelau', 'wpforms' ),
920
  'TO' => esc_html__( 'Tonga', 'wpforms' ),
921
  'TT' => esc_html__( 'Trinidad and Tobago', 'wpforms' ),
922
- 'TA' => esc_html__( 'Tristan da Cunha', 'wpforms' ),
923
  'TN' => esc_html__( 'Tunisia', 'wpforms' ),
924
  'TR' => esc_html__( 'Turkey', 'wpforms' ),
925
  'TM' => esc_html__( 'Turkmenistan', 'wpforms' ),
926
  'TC' => esc_html__( 'Turks and Caicos Islands', 'wpforms' ),
927
  'TV' => esc_html__( 'Tuvalu', 'wpforms' ),
928
- 'UM' => esc_html__( 'U.S. Outlying Islands', 'wpforms' ),
929
- 'VI' => esc_html__( 'U.S. Virgin Islands', 'wpforms' ),
930
  'UG' => esc_html__( 'Uganda', 'wpforms' ),
931
  'UA' => esc_html__( 'Ukraine', 'wpforms' ),
932
  'AE' => esc_html__( 'United Arab Emirates', 'wpforms' ),
933
- 'GB' => esc_html__( 'United Kingdom', 'wpforms' ),
934
- 'US' => esc_html__( 'United States', 'wpforms' ),
 
935
  'UY' => esc_html__( 'Uruguay', 'wpforms' ),
936
  'UZ' => esc_html__( 'Uzbekistan', 'wpforms' ),
937
  'VU' => esc_html__( 'Vanuatu', 'wpforms' ),
938
- 'VA' => esc_html__( 'Vatican City', 'wpforms' ),
939
- 'VE' => esc_html__( 'Venezuela', 'wpforms' ),
940
- 'VN' => esc_html__( 'Vietnam', 'wpforms' ),
 
 
941
  'WF' => esc_html__( 'Wallis and Futuna', 'wpforms' ),
942
  'EH' => esc_html__( 'Western Sahara', 'wpforms' ),
943
  'YE' => esc_html__( 'Yemen', 'wpforms' ),
@@ -1559,3 +1551,72 @@ add_filter( 'wpforms_email_message', 'wpforms_decode_string' );
1559
  function wpforms_get_min_suffix() {
1560
  return wpforms_debug() ? '' : '.min';
1561
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  *
154
  * @since 1.0.5
155
  *
156
+ * @param array|string $type
157
  * @param array $form
158
  * @param bool $multiple
159
  *
390
  *
391
  * @since 1.2.1
392
  *
393
+ * @param array|string $classes
394
  * @param bool $convert True will convert strings to array and vice versa.
395
  *
396
  * @return string|array
632
  'DE' => esc_html__( 'Delaware', 'wpforms' ),
633
  'DC' => esc_html__( 'District of Columbia', 'wpforms' ),
634
  'FL' => esc_html__( 'Florida', 'wpforms' ),
635
+ 'GA' => esc_html_x( 'Georgia', 'US State', 'wpforms' ),
636
  'HI' => esc_html__( 'Hawaii', 'wpforms' ),
637
  'ID' => esc_html__( 'Idaho', 'wpforms' ),
638
  'IL' => esc_html__( 'Illinois', 'wpforms' ),
688
 
689
  $countries = array(
690
  'AF' => esc_html__( 'Afghanistan', 'wpforms' ),
691
+ 'AX' => esc_html__( 'Åland Islands', 'wpforms' ),
692
  'AL' => esc_html__( 'Albania', 'wpforms' ),
693
  'DZ' => esc_html__( 'Algeria', 'wpforms' ),
694
  'AS' => esc_html__( 'American Samoa', 'wpforms' ),
700
  'AR' => esc_html__( 'Argentina', 'wpforms' ),
701
  'AM' => esc_html__( 'Armenia', 'wpforms' ),
702
  'AW' => esc_html__( 'Aruba', 'wpforms' ),
 
703
  'AU' => esc_html__( 'Australia', 'wpforms' ),
704
  'AT' => esc_html__( 'Austria', 'wpforms' ),
705
  'AZ' => esc_html__( 'Azerbaijan', 'wpforms' ),
713
  'BJ' => esc_html__( 'Benin', 'wpforms' ),
714
  'BM' => esc_html__( 'Bermuda', 'wpforms' ),
715
  'BT' => esc_html__( 'Bhutan', 'wpforms' ),
716
+ 'BO' => esc_html__( 'Bolivia (Plurinational State of)', 'wpforms' ),
717
  'BA' => esc_html__( 'Bosnia and Herzegovina', 'wpforms' ),
718
  'BW' => esc_html__( 'Botswana', 'wpforms' ),
719
  'BV' => esc_html__( 'Bouvet Island', 'wpforms' ),
720
  'BR' => esc_html__( 'Brazil', 'wpforms' ),
721
  'IO' => esc_html__( 'British Indian Ocean Territory', 'wpforms' ),
722
+ 'BN' => esc_html__( 'Brunei Darussalam', 'wpforms' ),
 
723
  'BG' => esc_html__( 'Bulgaria', 'wpforms' ),
724
  'BF' => esc_html__( 'Burkina Faso', 'wpforms' ),
725
  'BI' => esc_html__( 'Burundi', 'wpforms' ),
726
+ 'CV' => esc_html__( 'Cabo Verde', 'wpforms' ),
727
  'KH' => esc_html__( 'Cambodia', 'wpforms' ),
728
  'CM' => esc_html__( 'Cameroon', 'wpforms' ),
729
  'CA' => esc_html__( 'Canada', 'wpforms' ),
 
 
 
730
  'KY' => esc_html__( 'Cayman Islands', 'wpforms' ),
731
  'CF' => esc_html__( 'Central African Republic', 'wpforms' ),
 
732
  'TD' => esc_html__( 'Chad', 'wpforms' ),
733
  'CL' => esc_html__( 'Chile', 'wpforms' ),
734
  'CN' => esc_html__( 'China', 'wpforms' ),
735
  'CX' => esc_html__( 'Christmas Island', 'wpforms' ),
 
736
  'CC' => esc_html__( 'Cocos (Keeling) Islands', 'wpforms' ),
737
  'CO' => esc_html__( 'Colombia', 'wpforms' ),
738
  'KM' => esc_html__( 'Comoros', 'wpforms' ),
739
+ 'CG' => esc_html__( 'Congo', 'wpforms' ),
740
+ 'CD' => esc_html__( 'Congo (Democratic Republic of the)', 'wpforms' ),
741
  'CK' => esc_html__( 'Cook Islands', 'wpforms' ),
742
  'CR' => esc_html__( 'Costa Rica', 'wpforms' ),
743
+ 'CI' => esc_html__( 'Côte d\'Ivoire', 'wpforms' ),
744
  'HR' => esc_html__( 'Croatia', 'wpforms' ),
745
  'CU' => esc_html__( 'Cuba', 'wpforms' ),
746
  'CW' => esc_html__( 'Curaçao', 'wpforms' ),
747
  'CY' => esc_html__( 'Cyprus', 'wpforms' ),
748
  'CZ' => esc_html__( 'Czech Republic', 'wpforms' ),
749
+ 'DK' => esc_html__( 'Denmark', 'wpforms' ),
 
750
  'DJ' => esc_html__( 'Djibouti', 'wpforms' ),
751
  'DM' => esc_html__( 'Dominica', 'wpforms' ),
752
  'DO' => esc_html__( 'Dominican Republic', 'wpforms' ),
757
  'ER' => esc_html__( 'Eritrea', 'wpforms' ),
758
  'EE' => esc_html__( 'Estonia', 'wpforms' ),
759
  'ET' => esc_html__( 'Ethiopia', 'wpforms' ),
760
+ 'FK' => esc_html__( 'Falkland Islands (Malvinas)', 'wpforms' ),
761
  'FO' => esc_html__( 'Faroe Islands', 'wpforms' ),
762
  'FJ' => esc_html__( 'Fiji', 'wpforms' ),
763
  'FI' => esc_html__( 'Finland', 'wpforms' ),
767
  'TF' => esc_html__( 'French Southern Territories', 'wpforms' ),
768
  'GA' => esc_html__( 'Gabon', 'wpforms' ),
769
  'GM' => esc_html__( 'Gambia', 'wpforms' ),
770
+ 'GE' => esc_html_x( 'Georgia', 'Country', 'wpforms' ),
771
  'DE' => esc_html__( 'Germany', 'wpforms' ),
772
  'GH' => esc_html__( 'Ghana', 'wpforms' ),
773
  'GI' => esc_html__( 'Gibraltar', 'wpforms' ),
782
  'GW' => esc_html__( 'Guinea-Bissau', 'wpforms' ),
783
  'GY' => esc_html__( 'Guyana', 'wpforms' ),
784
  'HT' => esc_html__( 'Haiti', 'wpforms' ),
785
+ 'HM' => esc_html__( 'Heard Island and McDonald Islands', 'wpforms' ),
786
  'HN' => esc_html__( 'Honduras', 'wpforms' ),
787
  'HK' => esc_html__( 'Hong Kong', 'wpforms' ),
788
  'HU' => esc_html__( 'Hungary', 'wpforms' ),
789
  'IS' => esc_html__( 'Iceland', 'wpforms' ),
790
  'IN' => esc_html__( 'India', 'wpforms' ),
791
  'ID' => esc_html__( 'Indonesia', 'wpforms' ),
792
+ 'IR' => esc_html__( 'Iran (Islamic Republic of)', 'wpforms' ),
793
  'IQ' => esc_html__( 'Iraq', 'wpforms' ),
794
+ 'IE' => esc_html__( 'Ireland (Republic of)', 'wpforms' ),
795
  'IM' => esc_html__( 'Isle of Man', 'wpforms' ),
796
  'IL' => esc_html__( 'Israel', 'wpforms' ),
797
  'IT' => esc_html__( 'Italy', 'wpforms' ),
802
  'KZ' => esc_html__( 'Kazakhstan', 'wpforms' ),
803
  'KE' => esc_html__( 'Kenya', 'wpforms' ),
804
  'KI' => esc_html__( 'Kiribati', 'wpforms' ),
805
+ 'KP' => esc_html__( 'Korea (Democratic People\'s Republic of)', 'wpforms' ),
806
+ 'KR' => esc_html__( 'Korea (Republic of)', 'wpforms' ),
807
  'KW' => esc_html__( 'Kuwait', 'wpforms' ),
808
  'KG' => esc_html__( 'Kyrgyzstan', 'wpforms' ),
809
+ 'LA' => esc_html__( 'Lao People\'s Democratic Republic', 'wpforms' ),
810
  'LV' => esc_html__( 'Latvia', 'wpforms' ),
811
  'LB' => esc_html__( 'Lebanon', 'wpforms' ),
812
  'LS' => esc_html__( 'Lesotho', 'wpforms' ),
815
  'LI' => esc_html__( 'Liechtenstein', 'wpforms' ),
816
  'LT' => esc_html__( 'Lithuania', 'wpforms' ),
817
  'LU' => esc_html__( 'Luxembourg', 'wpforms' ),
818
+ 'MO' => esc_html__( 'Macao', 'wpforms' ),
819
+ 'MK' => esc_html__( 'Macedonia (Republic of)', 'wpforms' ),
820
  'MG' => esc_html__( 'Madagascar', 'wpforms' ),
821
  'MW' => esc_html__( 'Malawi', 'wpforms' ),
822
  'MY' => esc_html__( 'Malaysia', 'wpforms' ),
829
  'MU' => esc_html__( 'Mauritius', 'wpforms' ),
830
  'YT' => esc_html__( 'Mayotte', 'wpforms' ),
831
  'MX' => esc_html__( 'Mexico', 'wpforms' ),
832
+ 'FM' => esc_html__( 'Micronesia (Federated States of)', 'wpforms' ),
833
+ 'MD' => esc_html__( 'Moldova (Republic of)', 'wpforms' ),
834
  'MC' => esc_html__( 'Monaco', 'wpforms' ),
835
  'MN' => esc_html__( 'Mongolia', 'wpforms' ),
836
  'ME' => esc_html__( 'Montenegro', 'wpforms' ),
850
  'NU' => esc_html__( 'Niue', 'wpforms' ),
851
  'NF' => esc_html__( 'Norfolk Island', 'wpforms' ),
852
  'MP' => esc_html__( 'Northern Mariana Islands', 'wpforms' ),
 
853
  'NO' => esc_html__( 'Norway', 'wpforms' ),
854
  'OM' => esc_html__( 'Oman', 'wpforms' ),
855
  'PK' => esc_html__( 'Pakistan', 'wpforms' ),
856
  'PW' => esc_html__( 'Palau', 'wpforms' ),
857
+ 'PS' => esc_html__( 'Palestine (State of)', 'wpforms' ),
858
  'PA' => esc_html__( 'Panama', 'wpforms' ),
859
  'PG' => esc_html__( 'Papua New Guinea', 'wpforms' ),
860
  'PY' => esc_html__( 'Paraguay', 'wpforms' ),
861
  'PE' => esc_html__( 'Peru', 'wpforms' ),
862
  'PH' => esc_html__( 'Philippines', 'wpforms' ),
863
+ 'PN' => esc_html__( 'Pitcairn', 'wpforms' ),
864
  'PL' => esc_html__( 'Poland', 'wpforms' ),
865
  'PT' => esc_html__( 'Portugal', 'wpforms' ),
866
  'PR' => esc_html__( 'Puerto Rico', 'wpforms' ),
867
  'QA' => esc_html__( 'Qatar', 'wpforms' ),
868
  'RE' => esc_html__( 'Réunion', 'wpforms' ),
869
  'RO' => esc_html__( 'Romania', 'wpforms' ),
870
+ 'RU' => esc_html__( 'Russian Federation', 'wpforms' ),
871
  'RW' => esc_html__( 'Rwanda', 'wpforms' ),
872
  'BL' => esc_html__( 'Saint Barthélemy', 'wpforms' ),
873
+ 'SH' => esc_html__( 'Saint Helena, Ascension and Tristan da Cunha', 'wpforms' ),
874
  'KN' => esc_html__( 'Saint Kitts and Nevis', 'wpforms' ),
875
  'LC' => esc_html__( 'Saint Lucia', 'wpforms' ),
876
+ 'MF' => esc_html__( 'Saint Martin (French part)', 'wpforms' ),
877
  'PM' => esc_html__( 'Saint Pierre and Miquelon', 'wpforms' ),
878
+ 'VC' => esc_html__( 'Saint Vincent and the Grenadines', 'wpforms' ),
879
  'WS' => esc_html__( 'Samoa', 'wpforms' ),
880
  'SM' => esc_html__( 'San Marino', 'wpforms' ),
881
+ 'ST' => esc_html__( 'Sao Tome and Principe', 'wpforms' ),
882
  'SA' => esc_html__( 'Saudi Arabia', 'wpforms' ),
883
  'SN' => esc_html__( 'Senegal', 'wpforms' ),
884
  'RS' => esc_html__( 'Serbia', 'wpforms' ),
885
  'SC' => esc_html__( 'Seychelles', 'wpforms' ),
886
  'SL' => esc_html__( 'Sierra Leone', 'wpforms' ),
887
  'SG' => esc_html__( 'Singapore', 'wpforms' ),
888
+ 'SX' => esc_html__( 'Sint Maarten (Dutch part)', 'wpforms' ),
889
  'SK' => esc_html__( 'Slovakia', 'wpforms' ),
890
  'SI' => esc_html__( 'Slovenia', 'wpforms' ),
891
  'SB' => esc_html__( 'Solomon Islands', 'wpforms' ),
892
  'SO' => esc_html__( 'Somalia', 'wpforms' ),
893
  'ZA' => esc_html__( 'South Africa', 'wpforms' ),
894
+ 'GS' => esc_html__( 'South Georgia and the South Sandwich Islands', 'wpforms' ),
 
895
  'SS' => esc_html__( 'South Sudan', 'wpforms' ),
896
  'ES' => esc_html__( 'Spain', 'wpforms' ),
897
  'LK' => esc_html__( 'Sri Lanka', 'wpforms' ),
 
898
  'SD' => esc_html__( 'Sudan', 'wpforms' ),
899
  'SR' => esc_html__( 'Suriname', 'wpforms' ),
900
  'SJ' => esc_html__( 'Svalbard and Jan Mayen', 'wpforms' ),
901
  'SZ' => esc_html__( 'Swaziland', 'wpforms' ),
902
  'SE' => esc_html__( 'Sweden', 'wpforms' ),
903
  'CH' => esc_html__( 'Switzerland', 'wpforms' ),
904
+ 'SY' => esc_html__( 'Syrian Arab Republic', 'wpforms' ),
905
+ 'TW' => esc_html__( 'Taiwan, Province of China', 'wpforms' ),
906
  'TJ' => esc_html__( 'Tajikistan', 'wpforms' ),
907
+ 'TZ' => esc_html__( 'Tanzania (United Republic of)', 'wpforms' ),
908
  'TH' => esc_html__( 'Thailand', 'wpforms' ),
909
  'TL' => esc_html__( 'Timor-Leste', 'wpforms' ),
910
  'TG' => esc_html__( 'Togo', 'wpforms' ),
911
  'TK' => esc_html__( 'Tokelau', 'wpforms' ),
912
  'TO' => esc_html__( 'Tonga', 'wpforms' ),
913
  'TT' => esc_html__( 'Trinidad and Tobago', 'wpforms' ),
 
914
  'TN' => esc_html__( 'Tunisia', 'wpforms' ),
915
  'TR' => esc_html__( 'Turkey', 'wpforms' ),
916
  'TM' => esc_html__( 'Turkmenistan', 'wpforms' ),
917
  'TC' => esc_html__( 'Turks and Caicos Islands', 'wpforms' ),
918
  'TV' => esc_html__( 'Tuvalu', 'wpforms' ),
 
 
919
  'UG' => esc_html__( 'Uganda', 'wpforms' ),
920
  'UA' => esc_html__( 'Ukraine', 'wpforms' ),
921
  'AE' => esc_html__( 'United Arab Emirates', 'wpforms' ),
922
+ 'GB' => esc_html__( 'United Kingdom of Great Britain and Northern Ireland', 'wpforms' ),
923
+ 'US' => esc_html__( 'United States of America', 'wpforms' ),
924
+ 'UM' => esc_html__( 'United States Minor Outlying Islands', 'wpforms' ),
925
  'UY' => esc_html__( 'Uruguay', 'wpforms' ),
926
  'UZ' => esc_html__( 'Uzbekistan', 'wpforms' ),
927
  'VU' => esc_html__( 'Vanuatu', 'wpforms' ),
928
+ 'VA' => esc_html__( 'Vatican City State', 'wpforms' ),
929
+ 'VE' => esc_html__( 'Venezuela (Bolivarian Republic of)', 'wpforms' ),
930
+ 'VN' => esc_html__( 'Viet Nam', 'wpforms' ),
931
+ 'VG' => esc_html__( 'Virgin Islands (British)', 'wpforms' ),
932
+ 'VI' => esc_html__( 'Virgin Islands (U.S.)', 'wpforms' ),
933
  'WF' => esc_html__( 'Wallis and Futuna', 'wpforms' ),
934
  'EH' => esc_html__( 'Western Sahara', 'wpforms' ),
935
  'YE' => esc_html__( 'Yemen', 'wpforms' ),
1551
  function wpforms_get_min_suffix() {
1552
  return wpforms_debug() ? '' : '.min';
1553
  }
1554
+
1555
+ /**
1556
+ * Get the required label text, with a filter.
1557
+ *
1558
+ * @since 1.4.4
1559
+ *
1560
+ * @return string
1561
+ */
1562
+ function wpforms_get_required_label() {
1563
+ return apply_filters( 'wpforms_required_label', esc_html__( 'This field is required.', 'wpforms' ) );
1564
+ }
1565
+
1566
+ /**
1567
+ * Get the default capability to manage everything for WPForms.
1568
+ *
1569
+ * @since 1.4.4
1570
+ *
1571
+ * @return string
1572
+ */
1573
+ function wpforms_get_capability_manage_options() {
1574
+ return apply_filters( 'wpforms_manage_cap', 'manage_options' );
1575
+ }
1576
+
1577
+ /**
1578
+ * Check permissions for currently logged in user.
1579
+ *
1580
+ * @since 1.4.4
1581
+ *
1582
+ * @return bool
1583
+ */
1584
+ function wpforms_current_user_can() {
1585
+
1586
+ $capability = wpforms_get_capability_manage_options();
1587
+
1588
+ return apply_filters( 'wpforms_current_user_can', current_user_can( $capability ), $capability );
1589
+ }
1590
+
1591
+ /**
1592
+ * Get the certain date of a specified day in a specified format.
1593
+ *
1594
+ * @since 1.4.4
1595
+ *
1596
+ * @param string $period Supported values: start, end.
1597
+ * @param string $timestamp Default is the current timestamp, if left empty.
1598
+ * @param string $format Default is a MySQL format.
1599
+ *
1600
+ * @return string
1601
+ */
1602
+ function wpforms_get_day_period_date( $period, $timestamp = '', $format = 'Y-m-d H:i:s' ) {
1603
+
1604
+ $date = '';
1605
+
1606
+ if ( empty( $timestamp ) ) {
1607
+ $timestamp = time();
1608
+ }
1609
+
1610
+ switch ( $period ) {
1611
+ case 'start_of_day':
1612
+ $date = date( $format, strtotime( 'today', $timestamp ) );
1613
+ break;
1614
+
1615
+ case 'end_of_day':
1616
+ $date = date( $format, strtotime( 'tomorrow', $timestamp ) - 1 );
1617
+ break;
1618
+
1619
+ }
1620
+
1621
+ return $date;
1622
+ }
includes/integrations.php CHANGED
@@ -29,44 +29,44 @@ function wpforms_visual_composer_shortcode() {
29
 
30
  if ( ! empty( $wpf ) ) {
31
  $forms = array(
32
- __( 'Select a form to display', 'wpforms' ) => '',
33
  );
34
  foreach ( $wpf as $form ) {
35
  $forms[ $form->post_title ] = $form->ID;
36
  }
37
  } else {
38
  $forms = array(
39
- __( 'No forms found', 'wpforms' ) => '',
40
  );
41
  }
42
 
43
  vc_map(
44
  array(
45
- 'name' => __( 'WPForms', 'wpforms' ),
46
  'base' => 'wpforms',
47
  'icon' => WPFORMS_PLUGIN_URL . 'assets/images/sullie-vc.png',
48
- 'category' => __( 'Content', 'wpforms' ),
49
- 'description' => __( 'Add your form', 'wpforms' ),
50
  'params' => array(
51
  array(
52
  'type' => 'dropdown',
53
- 'heading' => __( 'Form', 'wpforms' ),
54
  'param_name' => 'id',
55
  'value' => $forms,
56
  'save_always' => true,
57
- 'description' => __( 'Select a form to add it to your post or page.', 'wpforms' ),
58
  'admin_label' => true,
59
  ),
60
  array(
61
  'type' => 'dropdown',
62
- 'heading' => __( 'Display Form Name', 'wpforms' ),
63
  'param_name' => 'title',
64
  'value' => array(
65
- __( 'No', 'wpforms' ) => 'false',
66
- __( 'Yes', 'wpforms' ) => 'true',
67
  ),
68
  'save_always' => true,
69
- 'description' => __( 'Would you like to display the forms name?', 'wpforms' ),
70
  'dependency' => array(
71
  'element' => 'id',
72
  'not_empty' => true,
@@ -74,14 +74,14 @@ function wpforms_visual_composer_shortcode() {
74
  ),
75
  array(
76
  'type' => 'dropdown',
77
- 'heading' => __( 'Display Form Description', 'wpforms' ),
78
  'param_name' => 'description',
79
  'value' => array(
80
- __( 'No', 'wpforms' ) => 'false',
81
- __( 'Yes', 'wpforms' ) => 'true',
82
  ),
83
  'save_always' => true,
84
- 'description' => __( 'Would you like to display the forms description?', 'wpforms' ),
85
  'dependency' => array(
86
  'element' => 'id',
87
  'not_empty' => true,
29
 
30
  if ( ! empty( $wpf ) ) {
31
  $forms = array(
32
+ esc_html__( 'Select a form to display', 'wpforms' ) => '',
33
  );
34
  foreach ( $wpf as $form ) {
35
  $forms[ $form->post_title ] = $form->ID;
36
  }
37
  } else {
38
  $forms = array(
39
+ esc_html__( 'No forms found', 'wpforms' ) => '',
40
  );
41
  }
42
 
43
  vc_map(
44
  array(
45
+ 'name' => esc_html__( 'WPForms', 'wpforms' ),
46
  'base' => 'wpforms',
47
  'icon' => WPFORMS_PLUGIN_URL . 'assets/images/sullie-vc.png',
48
+ 'category' => esc_html__( 'Content', 'wpforms' ),
49
+ 'description' => esc_html__( 'Add your form', 'wpforms' ),
50
  'params' => array(
51
  array(
52
  'type' => 'dropdown',
53
+ 'heading' => esc_html__( 'Form', 'wpforms' ),
54
  'param_name' => 'id',
55
  'value' => $forms,
56
  'save_always' => true,
57
+ 'description' => esc_html__( 'Select a form to add it to your post or page.', 'wpforms' ),
58
  'admin_label' => true,
59
  ),
60
  array(
61
  'type' => 'dropdown',
62
+ 'heading' => esc_html__( 'Display Form Name', 'wpforms' ),
63
  'param_name' => 'title',
64
  'value' => array(
65
+ esc_html__( 'No', 'wpforms' ) => 'false',
66
+ esc_html__( 'Yes', 'wpforms' ) => 'true',
67
  ),
68
  'save_always' => true,
69
+ 'description' => esc_html__( 'Would you like to display the forms name?', 'wpforms' ),
70
  'dependency' => array(
71
  'element' => 'id',
72
  'not_empty' => true,
74
  ),
75
  array(
76
  'type' => 'dropdown',
77
+ 'heading' => esc_html__( 'Display Form Description', 'wpforms' ),
78
  'param_name' => 'description',
79
  'value' => array(
80
+ esc_html__( 'No', 'wpforms' ) => 'false',
81
+ esc_html__( 'Yes', 'wpforms' ) => 'true',
82
  ),
83
  'save_always' => true,
84
+ 'description' => esc_html__( 'Would you like to display the forms description?', 'wpforms' ),
85
  'dependency' => array(
86
  'element' => 'id',
87
  'not_empty' => true,
includes/providers/class-base.php CHANGED
@@ -90,35 +90,35 @@ abstract class WPForms_Provider {
90
  */
91
  public function __construct() {
92
 
93
- $this->type = __( 'Connection', 'wpforms' );
94
 
95
  $this->init();
96
 
97
- // Add to list of available providers
98
  add_filter( 'wpforms_providers_available', array( $this, 'register_provider' ), $this->priority, 1 );
99
 
100
- // Process builder AJAX requests
101
  add_action( "wp_ajax_wpforms_provider_ajax_{$this->slug}", array( $this, 'process_ajax' ) );
102
 
103
- // Process entry
104
  add_action( 'wpforms_process_complete', array( $this, 'process_entry' ), 5, 4 );
105
 
106
- // Fetch and store the current form data when in the builder
107
  add_action( 'wpforms_builder_init', array( $this, 'builder_form_data' ) );
108
 
109
- // Output builder sidebar
110
  add_action( 'wpforms_providers_panel_sidebar', array( $this, 'builder_sidebar' ), $this->priority );
111
 
112
- // Output builder content
113
  add_action( 'wpforms_providers_panel_content', array( $this, 'builder_output' ), $this->priority );
114
 
115
- // Remove provider from Settings Integrations tab
116
  add_action( 'wp_ajax_wpforms_settings_provider_disconnect', array( $this, 'integrations_tab_disconnect' ) );
117
 
118
- // Add new provider from Settings Integrations tab
119
  add_action( 'wp_ajax_wpforms_settings_provider_add', array( $this, 'integrations_tab_add' ) );
120
 
121
- // Add providers sections to the Settings Integrations tab
122
  add_action( 'wpforms_settings_providers', array( $this, 'integrations_tab_options' ), $this->priority, 2 );
123
  }
124
 
@@ -157,17 +157,17 @@ abstract class WPForms_Provider {
157
  check_ajax_referer( 'wpforms-builder', 'nonce' );
158
 
159
  // Check for permissions.
160
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
161
  wp_send_json_error(
162
  array(
163
- 'error' => __( 'You do not have permission', 'wpforms' ),
164
  )
165
  );
166
  }
167
 
168
- // --------------------------------------------------------------------//
169
- // Create new connection.
170
- // --------------------------------------------------------------------//
171
 
172
  if ( 'new_connection' === $_POST['task'] ) {
173
 
@@ -185,9 +185,9 @@ abstract class WPForms_Provider {
185
  );
186
  }
187
 
188
- // --------------------------------------------------------------------//
189
- // Create new Provider account.
190
- // --------------------------------------------------------------------//
191
 
192
  if ( 'new_account' === $_POST['task'] ) {
193
 
@@ -217,9 +217,9 @@ abstract class WPForms_Provider {
217
  }
218
  }
219
 
220
- // --------------------------------------------------------------------//
221
- // Select/Toggle Provider accounts.
222
- // --------------------------------------------------------------------//
223
 
224
  if ( 'select_account' === $_POST['task'] ) {
225
 
@@ -248,9 +248,9 @@ abstract class WPForms_Provider {
248
  }
249
  }
250
 
251
- // --------------------------------------------------------------------//
252
- // Select/Toggle Provider account lists.
253
- // --------------------------------------------------------------------//
254
 
255
  if ( 'select_list' === $_POST['task'] ) {
256
 
@@ -464,7 +464,11 @@ abstract class WPForms_Provider {
464
  'type' => $form_field['type'],
465
  'subtype' => '',
466
  'provider_type' => $form_field_type,
467
- 'label' => sprintf( _x( '%s (Full)', 'Name field label', 'wpforms'), $form_field['label'] ),
 
 
 
 
468
  );
469
 
470
  // First Name.
@@ -475,7 +479,11 @@ abstract class WPForms_Provider {
475
  'type' => $form_field['type'],
476
  'subtype' => 'first',
477
  'provider_type' => $form_field_type,
478
- 'label' => sprintf( _x( '%s (First)', 'Name field label', 'wpforms'), $form_field['label'] ),
 
 
 
 
479
  );
480
  }
481
 
@@ -487,7 +495,11 @@ abstract class WPForms_Provider {
487
  'type' => $form_field['type'],
488
  'subtype' => 'middle',
489
  'provider_type' => $form_field_type,
490
- 'label' => sprintf( _x( '%s (Middle)', 'Name field label', 'wpforms'), $form_field['label'] ),
 
 
 
 
491
  );
492
  }
493
 
@@ -499,7 +511,11 @@ abstract class WPForms_Provider {
499
  'type' => $form_field['type'],
500
  'subtype' => 'last',
501
  'provider_type' => $form_field_type,
502
- 'label' => sprintf( _x( '%s (Last)', 'Name field label', 'wpforms'), $form_field['label'] ),
 
 
 
 
503
  );
504
  }
505
  } else {
@@ -518,11 +534,9 @@ abstract class WPForms_Provider {
518
  return $formatted;
519
  }
520
 
521
- // ************************************************************************//
522
- //
523
- // API methods - these methods interact directly with the provider API.
524
- //
525
- // ************************************************************************//
526
 
527
  /**
528
  * Authenticate with the provider API.
@@ -531,6 +545,7 @@ abstract class WPForms_Provider {
531
  *
532
  * @param array $data
533
  * @param string $form_id
 
534
  * @return mixed id or error object
535
  */
536
  public function api_auth( $data = array(), $form_id = '' ) {
@@ -542,6 +557,7 @@ abstract class WPForms_Provider {
542
  * @since 1.0.0
543
  *
544
  * @param string $account_id
 
545
  * @return mixed array or error object
546
  */
547
  public function api_connect( $account_id ) {
@@ -554,6 +570,7 @@ abstract class WPForms_Provider {
554
  *
555
  * @param string $connection_id
556
  * @param string $account_id
 
557
  * @return mixed array or error object
558
  */
559
  public function api_lists( $connection_id = '', $account_id = '' ) {
@@ -567,6 +584,8 @@ abstract class WPForms_Provider {
567
  * @param string $connection_id
568
  * @param string $account_id
569
  * @param string $list_id
 
 
570
  */
571
  public function api_groups( $connection_id = '', $account_id = '', $list_id = '' ) {
572
  }
@@ -579,15 +598,15 @@ abstract class WPForms_Provider {
579
  * @param string $connection_id
580
  * @param string $account_id
581
  * @param string $list_id
 
 
582
  */
583
  public function api_fields( $connection_id = '', $account_id = '', $list_id = '' ) {
584
  }
585
 
586
- // ************************************************************************//
587
- //
588
- // Output methods - these methods generally return HTML for the builder.
589
- //
590
- // ************************************************************************//
591
 
592
  /**
593
  * Connection HTML.
@@ -670,6 +689,8 @@ abstract class WPForms_Provider {
670
  * Provider account authorize fields HTML.
671
  *
672
  * @since 1.0.0
 
 
673
  */
674
  public function output_auth() {
675
  }
@@ -698,7 +719,7 @@ abstract class WPForms_Provider {
698
 
699
  $output = '<div class="wpforms-provider-accounts wpforms-connection-block">';
700
 
701
- $output .= sprintf( '<h4>%s</h4>', __( 'Select Account', 'wpforms' ) );
702
 
703
  $output .= sprintf( '<select name="providers[%s][%s][account_id]">', $this->slug, $connection_id );
704
  foreach ( $providers[ $this->slug ] as $key => $provider_details ) {
@@ -710,7 +731,7 @@ abstract class WPForms_Provider {
710
  esc_html( $provider_details['label'] )
711
  );
712
  }
713
- $output .= sprintf( '<option value="">%s</a>', __( 'Add New Account', 'wpforms' ) );
714
  $output .= '</select>';
715
 
716
  $output .= '</div>';
@@ -743,7 +764,7 @@ abstract class WPForms_Provider {
743
 
744
  $output = '<div class="wpforms-provider-lists wpforms-connection-block">';
745
 
746
- $output .= sprintf( '<h4>%s</h4>', __( 'Select List', 'wpforms' ) );
747
 
748
  $output .= sprintf( '<select name="providers[%s][%s][list_id]">', $this->slug, $connection_id );
749
 
@@ -789,9 +810,9 @@ abstract class WPForms_Provider {
789
 
790
  $output = '<div class="wpforms-provider-groups wpforms-connection-block">';
791
 
792
- $output .= sprintf( '<h4>%s</h4>', __( 'Select Groups', 'wpforms' ) );
793
 
794
- $output .= sprintf( '<p>%s</p>', __( 'We also noticed that you have some segments in your list. You can select specific list segments below if needed. This is optional.', 'wpforms' ) );
795
 
796
  $output .= '<div class="wpforms-provider-groups-list">';
797
 
@@ -851,12 +872,12 @@ abstract class WPForms_Provider {
851
 
852
  $output = '<div class="wpforms-provider-fields wpforms-connection-block">';
853
 
854
- $output .= sprintf( '<h4>%s</h4>', __( 'List Fields', 'wpforms' ) );
855
 
856
- // Table with all the fields
857
  $output .= '<table>';
858
 
859
- $output .= sprintf( '<thead><tr><th>%s</th><th>%s</th></thead>', __( 'List Fields', 'wpforms' ), __( 'Available Form Fields', 'wpforms' ) );
860
 
861
  $output .= '<tbody>';
862
 
@@ -930,11 +951,11 @@ abstract class WPForms_Provider {
930
  'parent' => 'providers',
931
  'subsection' => $connection_id,
932
  'actions' => array(
933
- 'go' => __( 'Process', 'wpforms' ),
934
- 'stop' => __( 'Don\'t process', 'wpforms' ),
935
  ),
936
- 'action_desc' => __( 'this connection if', 'wpforms' ),
937
- 'reference' => __( 'Marketing provider connection', 'wpforms' ),
938
  ),
939
  false
940
  );
@@ -954,11 +975,9 @@ abstract class WPForms_Provider {
954
  public function output_options( $connection_id = '', $connection = array() ) {
955
  }
956
 
957
- // ************************************************************************//
958
- //
959
- // Builder methods - these methods _build_ the Builder.
960
- //
961
- // ************************************************************************//
962
 
963
  /**
964
  * Fetch and store the current form data when in the builder.
@@ -1015,7 +1034,7 @@ abstract class WPForms_Provider {
1015
  $configured = ! empty( $form_data['providers'][ $this->slug ] ) ? 'configured' : '';
1016
  $configured = apply_filters( 'wpforms_providers_' . $this->slug . '_configured', $configured );
1017
 
1018
- echo '<a href="#" class="wpforms-panel-sidebar-section icon ' . $configured . ' wpforms-panel-sidebar-section-' . esc_attr( $this->slug ) . '" data-section="' . esc_attr( $this->slug ) . '">';
1019
 
1020
  echo '<img src="' . esc_url( $this->icon ) . '">';
1021
 
@@ -1038,7 +1057,7 @@ abstract class WPForms_Provider {
1038
  public function builder_output() {
1039
  ?>
1040
  <div class="wpforms-panel-content-section wpforms-panel-content-section-<?php echo esc_attr( $this->slug ); ?>"
1041
- id="<?php echo esc_attr( $this->slug ); ?>-provider">
1042
 
1043
  <?php $this->builder_output_before(); ?>
1044
 
@@ -1047,8 +1066,16 @@ abstract class WPForms_Provider {
1047
  <?php echo $this->name; ?>
1048
 
1049
  <button class="wpforms-provider-connections-add" data-form_id="<?php echo absint( $_GET['form_id'] ); ?>"
1050
- data-provider="<?php echo esc_attr( $this->slug ); ?>"
1051
- data-type="<?php echo esc_attr( strtolower( $this->type ) ); ?>"><?php printf( _x( 'Add New %s', 'Provider Type', 'wpforms' ), esc_html( $this->type ) ); ?></button>
 
 
 
 
 
 
 
 
1052
 
1053
  </div>
1054
 
@@ -1084,11 +1111,9 @@ abstract class WPForms_Provider {
1084
  public function builder_output_after() {
1085
  }
1086
 
1087
- // ************************************************************************//
1088
- //
1089
- // Integrations tab methods - these methods relate to the settings page.
1090
- //
1091
- // ************************************************************************//
1092
 
1093
  /**
1094
  * Form fields to add a new provider account.
@@ -1105,14 +1130,14 @@ abstract class WPForms_Provider {
1105
  */
1106
  public function integrations_tab_disconnect() {
1107
 
1108
- // Run a security check
1109
  check_ajax_referer( 'wpforms-admin', 'nonce' );
1110
 
1111
- // Check for permissions
1112
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
1113
  wp_send_json_error(
1114
  array(
1115
- 'error' => __( 'You do not have permission', 'wpforms' ),
1116
  )
1117
  );
1118
  }
@@ -1120,7 +1145,7 @@ abstract class WPForms_Provider {
1120
  if ( empty( $_POST['provider'] ) || empty( $_POST['key'] ) ) {
1121
  wp_send_json_error(
1122
  array(
1123
- 'error' => __( 'Missing data', 'wpforms' ),
1124
  )
1125
  );
1126
  }
@@ -1136,7 +1161,7 @@ abstract class WPForms_Provider {
1136
  } else {
1137
  wp_send_json_error(
1138
  array(
1139
- 'error' => __( 'Connection missing', 'wpforms' ),
1140
  )
1141
  );
1142
  }
@@ -1153,14 +1178,14 @@ abstract class WPForms_Provider {
1153
  return;
1154
  }
1155
 
1156
- // Run a security check
1157
  check_ajax_referer( 'wpforms-admin', 'nonce' );
1158
 
1159
- // Check for permissions
1160
- if ( ! current_user_can( apply_filters( 'wpforms_manage_cap', 'manage_options' ) ) ) {
1161
  wp_send_json_error(
1162
  array(
1163
- 'error' => __( 'You do not have permission', 'wpforms' ),
1164
  )
1165
  );
1166
  }
@@ -1168,7 +1193,7 @@ abstract class WPForms_Provider {
1168
  if ( empty( $_POST['data'] ) ) {
1169
  wp_send_json_error(
1170
  array(
1171
- 'error' => __( 'Missing data', 'wpforms' ),
1172
  )
1173
  );
1174
  }
@@ -1180,17 +1205,18 @@ abstract class WPForms_Provider {
1180
 
1181
  wp_send_json_error(
1182
  array(
1183
- 'error' => __( 'Could not connect to the provider.', 'wpforms' ),
1184
  'error_msg' => $auth->get_error_message(),
1185
  )
1186
  );
1187
 
1188
  } else {
1189
 
1190
- $account = '<li>';
1191
  $account .= '<span class="label">' . sanitize_text_field( $data['label'] ) . '</span>';
1192
- $account .= '<span class="date">' . sprintf( _x( 'Connected on: %s', 'Connection date', 'wpforms' ), date_i18n( get_option( 'date_format', time() ) ) ) . '</span>';
1193
- $account .= '<a href="#" data-provider="' . $this->slug . '" data-key="' . esc_attr( $auth ) . '">' . __( 'Disconnect', 'wpforms' ) . '</a>';
 
1194
  $account .= '</li>';
1195
 
1196
  wp_send_json_success(
@@ -1202,7 +1228,7 @@ abstract class WPForms_Provider {
1202
  }
1203
 
1204
  /**
1205
- * Add provider to the Settings Integrations tab
1206
  *
1207
  * @since 1.0.0
1208
  *
@@ -1218,13 +1244,13 @@ abstract class WPForms_Provider {
1218
  $class = $connected && $accounts ? 'connected' : '';
1219
  $arrow = 'right';
1220
  /* translators: %s - provider name. */
1221
- $title_connect_to = sprintf( __( 'Connect to %s', 'wpforms'), $name );
1222
 
1223
- // This lets us highlight a specific service by a special link
1224
  if ( ! empty( $_GET['wpforms-integration'] ) ) {
1225
  if ( $this->slug === $_GET['wpforms-integration'] ) {
1226
  $class .= ' focus-in';
1227
- $arrow = 'down';
1228
  } else {
1229
  $class .= ' focus-out';
1230
  }
@@ -1245,10 +1271,10 @@ abstract class WPForms_Provider {
1245
  <p>
1246
  <?php
1247
  /* translators: %s - provider name. */
1248
- printf( __( 'Integrate %s with WPForms', 'wpforms' ), $name );
1249
  ?>
1250
  </p>
1251
- <span class="connected-indicator green"><i class="fa fa-check-circle-o"></i>&nbsp;<?php _e( 'Connected', 'wpforms' ); ?></span>
1252
  </div>
1253
 
1254
  </div>
@@ -1262,8 +1288,9 @@ abstract class WPForms_Provider {
1262
  foreach ( $accounts as $key => $account ) {
1263
  echo '<li class="wpforms-clear">';
1264
  echo '<span class="label">' . esc_html( $account['label'] ) . '</span>';
1265
- echo '<span class="date">' . sprintf( _x( 'Connected on: %s', 'Connection date', 'wpforms' ), date_i18n( get_option( 'date_format' ), $account['date'] ) ) . '</span>';
1266
- echo '<span class="remove"><a href="#" data-provider="' . $slug . '" data-key="' . $key . '">' . __( 'Disconnect', 'wpforms' ) . '</a><span>';
 
1267
  echo '</li>';
1268
  }
1269
  }
@@ -1273,20 +1300,21 @@ abstract class WPForms_Provider {
1273
 
1274
  <p class="wpforms-settings-provider-accounts-toggle">
1275
  <a class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey" href="#" data-provider="<?php echo $slug; ?>">
1276
- <i class="fa fa-plus"></i> <?php _ex( 'Add New Account', 'New Provider Account', 'wpforms' ); ?>
1277
  </a>
1278
  </p>
1279
 
1280
  <div class="wpforms-settings-provider-accounts-connect">
1281
 
1282
  <form>
1283
- <p><?php _e( 'Please fill out all of the fields below to add your new provider account.', 'wpforms' ); ?></span></p>
1284
 
1285
  <p class="wpforms-settings-provider-accounts-connect-fields">
1286
  <?php $this->integrations_tab_new_form(); ?>
1287
  </p>
1288
 
1289
- <button type="submit" class="wpforms-btn wpforms-btn-md wpforms-btn-orange wpforms-settings-provider-connect" data-provider="<?php echo $slug; ?>" title="<?php echo esc_attr( $title_connect_to ); ?>">
 
1290
  <?php echo $title_connect_to; ?>
1291
  </button>
1292
  </form>
90
  */
91
  public function __construct() {
92
 
93
+ $this->type = esc_html__( 'Connection', 'wpforms' );
94
 
95
  $this->init();
96
 
97
+ // Add to list of available providers.
98
  add_filter( 'wpforms_providers_available', array( $this, 'register_provider' ), $this->priority, 1 );
99
 
100
+ // Process builder AJAX requests.
101
  add_action( "wp_ajax_wpforms_provider_ajax_{$this->slug}", array( $this, 'process_ajax' ) );
102
 
103
+ // Process entry.
104
  add_action( 'wpforms_process_complete', array( $this, 'process_entry' ), 5, 4 );
105
 
106
+ // Fetch and store the current form data when in the builder.
107
  add_action( 'wpforms_builder_init', array( $this, 'builder_form_data' ) );
108
 
109
+ // Output builder sidebar.
110
  add_action( 'wpforms_providers_panel_sidebar', array( $this, 'builder_sidebar' ), $this->priority );
111
 
112
+ // Output builder content.
113
  add_action( 'wpforms_providers_panel_content', array( $this, 'builder_output' ), $this->priority );
114
 
115
+ // Remove provider from Settings Integrations tab.
116
  add_action( 'wp_ajax_wpforms_settings_provider_disconnect', array( $this, 'integrations_tab_disconnect' ) );
117
 
118
+ // Add new provider from Settings Integrations tab.
119
  add_action( 'wp_ajax_wpforms_settings_provider_add', array( $this, 'integrations_tab_add' ) );
120
 
121
+ // Add providers sections to the Settings Integrations tab.
122
  add_action( 'wpforms_settings_providers', array( $this, 'integrations_tab_options' ), $this->priority, 2 );
123
  }
124
 
157
  check_ajax_referer( 'wpforms-builder', 'nonce' );
158
 
159
  // Check for permissions.
160
+ if ( ! wpforms_current_user_can() ) {
161
  wp_send_json_error(
162
  array(
163
+ 'error' => esc_html__( 'You do not have permission', 'wpforms' ),
164
  )
165
  );
166
  }
167
 
168
+ /*
169
+ * Create new connection.
170
+ */
171
 
172
  if ( 'new_connection' === $_POST['task'] ) {
173
 
185
  );
186
  }
187
 
188
+ /*
189
+ * Create new Provider account.
190
+ */
191
 
192
  if ( 'new_account' === $_POST['task'] ) {
193
 
217
  }
218
  }
219
 
220
+ /*
221
+ * Select/Toggle Provider accounts.
222
+ */
223
 
224
  if ( 'select_account' === $_POST['task'] ) {
225
 
248
  }
249
  }
250
 
251
+ /*
252
+ * Select/Toggle Provider account lists.
253
+ */
254
 
255
  if ( 'select_list' === $_POST['task'] ) {
256
 
464
  'type' => $form_field['type'],
465
  'subtype' => '',
466
  'provider_type' => $form_field_type,
467
+ 'label' => sprintf(
468
+ /* translators: %s - Name field label. */
469
+ esc_html__( '%s (Full)', 'wpforms' ),
470
+ $form_field['label']
471
+ ),
472
  );
473
 
474
  // First Name.
479
  'type' => $form_field['type'],
480
  'subtype' => 'first',
481
  'provider_type' => $form_field_type,
482
+ 'label' => sprintf(
483
+ /* translators: %s - Name field label. */
484
+ esc_html__( '%s (First)', 'wpforms' ),
485
+ $form_field['label']
486
+ ),
487
  );
488
  }
489
 
495
  'type' => $form_field['type'],
496
  'subtype' => 'middle',
497
  'provider_type' => $form_field_type,
498
+ 'label' => sprintf(
499
+ /* translators: %s - Name field label. */
500
+ esc_html__( '%s (Middle)', 'wpforms' ),
501
+ $form_field['label']
502
+ ),
503
  );
504
  }
505
 
511
  'type' => $form_field['type'],
512
  'subtype' => 'last',
513
  'provider_type' => $form_field_type,
514
+ 'label' => sprintf(
515
+ /* translators: %s - Name field label. */
516
+ esc_html__( '%s (Last)', 'wpforms' ),
517
+ $form_field['label']
518
+ ),
519
  );
520
  }
521
  } else {
534
  return $formatted;
535
  }
536
 
537
+ /************************************************************************
538
+ * API methods - these methods interact directly with the provider API. *
539
+ ************************************************************************/
 
 
540
 
541
  /**
542
  * Authenticate with the provider API.
545
  *
546
  * @param array $data
547
  * @param string $form_id
548
+ *
549
  * @return mixed id or error object
550
  */
551
  public function api_auth( $data = array(), $form_id = '' ) {
557
  * @since 1.0.0
558
  *
559
  * @param string $account_id
560
+ *
561
  * @return mixed array or error object
562
  */
563
  public function api_connect( $account_id ) {
570
  *
571
  * @param string $connection_id
572
  * @param string $account_id
573
+ *
574
  * @return mixed array or error object
575
  */
576
  public function api_lists( $connection_id = '', $account_id = '' ) {
584
  * @param string $connection_id
585
  * @param string $account_id
586
  * @param string $list_id
587
+ *
588
+ * @return mixed array or error object
589
  */
590
  public function api_groups( $connection_id = '', $account_id = '', $list_id = '' ) {
591
  }
598
  * @param string $connection_id
599
  * @param string $account_id
600
  * @param string $list_id
601
+ *
602
+ * @return mixed array or error object
603
  */
604
  public function api_fields( $connection_id = '', $account_id = '', $list_id = '' ) {
605
  }
606
 
607
+ /*************************************************************************
608
+ * Output methods - these methods generally return HTML for the builder. *
609
+ *************************************************************************/
 
 
610
 
611
  /**
612
  * Connection HTML.
689
  * Provider account authorize fields HTML.
690
  *
691
  * @since 1.0.0
692
+ *
693
+ * @return mixed
694
  */
695
  public function output_auth() {
696
  }
719
 
720
  $output = '<div class="wpforms-provider-accounts wpforms-connection-block">';
721
 
722
+ $output .= sprintf( '<h4>%s</h4>', esc_html__( 'Select Account', 'wpforms' ) );
723
 
724
  $output .= sprintf( '<select name="providers[%s][%s][account_id]">', $this->slug, $connection_id );
725
  foreach ( $providers[ $this->slug ] as $key => $provider_details ) {
731
  esc_html( $provider_details['label'] )
732
  );
733
  }
734
+ $output .= sprintf( '<option value="">%s</a>', esc_html__( 'Add New Account', 'wpforms' ) );
735
  $output .= '</select>';
736
 
737
  $output .= '</div>';
764
 
765
  $output = '<div class="wpforms-provider-lists wpforms-connection-block">';
766
 
767
+ $output .= sprintf( '<h4>%s</h4>', esc_html__( 'Select List', 'wpforms' ) );
768
 
769
  $output .= sprintf( '<select name="providers[%s][%s][list_id]">', $this->slug, $connection_id );
770
 
810
 
811
  $output = '<div class="wpforms-provider-groups wpforms-connection-block">';
812
 
813
+ $output .= sprintf( '<h4>%s</h4>', esc_html__( 'Select Groups', 'wpforms' ) );
814
 
815
+ $output .= sprintf( '<p>%s</p>', esc_html__( 'We also noticed that you have some segments in your list. You can select specific list segments below if needed. This is optional.', 'wpforms' ) );
816
 
817
  $output .= '<div class="wpforms-provider-groups-list">';
818
 
872
 
873
  $output = '<div class="wpforms-provider-fields wpforms-connection-block">';
874
 
875
+ $output .= sprintf( '<h4>%s</h4>', esc_html__( 'List Fields', 'wpforms' ) );
876
 
877
+ // Table with all the fields.
878
  $output .= '<table>';
879
 
880
+ $output .= sprintf( '<thead><tr><th>%s</th><th>%s</th></thead>', esc_html__( 'List Fields', 'wpforms' ), esc_html__( 'Available Form Fields', 'wpforms' ) );
881
 
882
  $output .= '<tbody>';
883
 
951
  'parent' => 'providers',
952
  'subsection' => $connection_id,
953
  'actions' => array(
954
+ 'go' => esc_html__( 'Process', 'wpforms' ),
955
+ 'stop' => esc_html__( 'Don\'t process', 'wpforms' ),
956
  ),
957
+ 'action_desc' => esc_html__( 'this connection if', 'wpforms' ),
958
+ 'reference' => esc_html__( 'Marketing provider connection', 'wpforms' ),
959
  ),
960
  false
961
  );
975
  public function output_options( $connection_id = '', $connection = array() ) {
976
  }
977
 
978
+ /********************************************************
979
+ * Builder methods - these methods _build_ the Builder. *
980
+ ********************************************************/
 
 
981
 
982
  /**
983
  * Fetch and store the current form data when in the builder.
1034
  $configured = ! empty( $form_data['providers'][ $this->slug ] ) ? 'configured' : '';
1035
  $configured = apply_filters( 'wpforms_providers_' . $this->slug . '_configured', $configured );
1036
 
1037
+ echo '<a href="#" class="wpforms-panel-sidebar-section icon ' . esc_attr( $configured ) . ' wpforms-panel-sidebar-section-' . esc_attr( $this->slug ) . '" data-section="' . esc_attr( $this->slug ) . '">';
1038
 
1039
  echo '<img src="' . esc_url( $this->icon ) . '">';
1040
 
1057
  public function builder_output() {
1058
  ?>
1059
  <div class="wpforms-panel-content-section wpforms-panel-content-section-<?php echo esc_attr( $this->slug ); ?>"
1060
+ id="<?php echo esc_attr( $this->slug ); ?>-provider">
1061
 
1062
  <?php $this->builder_output_before(); ?>
1063
 
1066
  <?php echo $this->name; ?>
1067
 
1068
  <button class="wpforms-provider-connections-add" data-form_id="<?php echo absint( $_GET['form_id'] ); ?>"
1069
+ data-provider="<?php echo esc_attr( $this->slug ); ?>"
1070
+ data-type="<?php echo esc_attr( strtolower( $this->type ) ); ?>">
1071
+ <?php
1072
+ printf(
1073
+ /* translators: %s - Provider type. */
1074
+ esc_html__( 'Add New %s', 'wpforms' ),
1075
+ esc_html( $this->type )
1076
+ );
1077
+ ?>
1078
+ </button>
1079
 
1080
  </div>
1081
 
1111
  public function builder_output_after() {
1112
  }
1113
 
1114
+ /*************************************************************************
1115
+ * Integrations tab methods - these methods relate to the settings page. *
1116
+ *************************************************************************/
 
 
1117
 
1118
  /**
1119
  * Form fields to add a new provider account.
1130
  */
1131
  public function integrations_tab_disconnect() {
1132
 
1133
+ // Run a security check.
1134
  check_ajax_referer( 'wpforms-admin', 'nonce' );
1135
 
1136
+ // Check for permissions.
1137
+ if ( ! wpforms_current_user_can() ) {
1138
  wp_send_json_error(
1139
  array(
1140
+ 'error' => esc_html__( 'You do not have permission', 'wpforms' ),
1141
  )
1142
  );
1143
  }
1145
  if ( empty( $_POST['provider'] ) || empty( $_POST['key'] ) ) {
1146
  wp_send_json_error(
1147
  array(
1148
+ 'error' => esc_html__( 'Missing data', 'wpforms' ),
1149
  )
1150
  );
1151
  }
1161
  } else {
1162
  wp_send_json_error(
1163
  array(
1164
+ 'error' => esc_html__( 'Connection missing', 'wpforms' ),
1165
  )
1166
  );
1167
  }
1178
  return;
1179
  }
1180
 
1181
+ // Run a security check.
1182
  check_ajax_referer( 'wpforms-admin', 'nonce' );
1183
 
1184
+ // Check for permissions.
1185
+ if ( ! wpforms_current_user_can() ) {
1186
  wp_send_json_error(
1187
  array(
1188
+ 'error' => esc_html__( 'You do not have permission', 'wpforms' ),
1189
  )
1190
  );
1191
  }
1193
  if ( empty( $_POST['data'] ) ) {
1194
  wp_send_json_error(
1195
  array(
1196
+ 'error' => esc_html__( 'Missing data', 'wpforms' ),
1197
  )
1198
  );
1199
  }
1205
 
1206
  wp_send_json_error(
1207
  array(
1208
+ 'error' => esc_html__( 'Could not connect to the provider.', 'wpforms' ),
1209
  'error_msg' => $auth->get_error_message(),
1210
  )
1211
  );
1212
 
1213
  } else {
1214
 
1215
+ $account = '<li>';
1216
  $account .= '<span class="label">' . sanitize_text_field( $data['label'] ) . '</span>';
1217
+ /* translators: %s - Connection date. */
1218
+ $account .= '<span class="date">' . sprintf( esc_html__( 'Connected on: %s', 'wpforms' ), date_i18n( get_option( 'date_format', time() ) ) ) . '</span>';
1219
+ $account .= '<a href="#" data-provider="' . $this->slug . '" data-key="' . esc_attr( $auth ) . '">' . esc_html__( 'Disconnect', 'wpforms' ) . '</a>';
1220
  $account .= '</li>';
1221
 
1222
  wp_send_json_success(
1228
  }
1229
 
1230
  /**
1231
+ * Add provider to the Settings Integrations tab.
1232
  *
1233
  * @since 1.0.0
1234
  *
1244
  $class = $connected && $accounts ? 'connected' : '';
1245
  $arrow = 'right';
1246
  /* translators: %s - provider name. */
1247
+ $title_connect_to = sprintf( esc_html__( 'Connect to %s', 'wpforms' ), $name );
1248
 
1249
+ // This lets us highlight a specific service by a special link.
1250
  if ( ! empty( $_GET['wpforms-integration'] ) ) {
1251
  if ( $this->slug === $_GET['wpforms-integration'] ) {
1252
  $class .= ' focus-in';
1253
+ $arrow = 'down';
1254
  } else {
1255
  $class .= ' focus-out';
1256
  }
1271
  <p>
1272
  <?php
1273
  /* translators: %s - provider name. */
1274
+ printf( esc_html__( 'Integrate %s with WPForms', 'wpforms' ), $name );
1275
  ?>
1276
  </p>
1277
+ <span class="connected-indicator green"><i class="fa fa-check-circle-o"></i>&nbsp;<?php esc_html_e( 'Connected', 'wpforms' ); ?></span>
1278
  </div>
1279
 
1280
  </div>
1288
  foreach ( $accounts as $key => $account ) {
1289
  echo '<li class="wpforms-clear">';
1290
  echo '<span class="label">' . esc_html( $account['label'] ) . '</span>';
1291
+ /* translators: %s - Connection date. */
1292
+ echo '<span class="date">' . sprintf( esc_html__( 'Connected on: %s', 'wpforms' ), date_i18n( get_option( 'date_format' ), $account['date'] ) ) . '</span>';
1293
+ echo '<span class="remove"><a href="#" data-provider="' . $slug . '" data-key="' . $key . '">' . esc_html__( 'Disconnect', 'wpforms' ) . '</a><span>';
1294
  echo '</li>';
1295
  }
1296
  }
1300
 
1301
  <p class="wpforms-settings-provider-accounts-toggle">
1302
  <a class="wpforms-btn wpforms-btn-md wpforms-btn-light-grey" href="#" data-provider="<?php echo $slug; ?>">
1303
+ <i class="fa fa-plus"></i> <?php esc_html_e( 'Add New Account', 'wpforms' ); ?>
1304
  </a>
1305
  </p>
1306
 
1307
  <div class="wpforms-settings-provider-accounts-connect">
1308
 
1309
  <form>
1310
+ <p><?php esc_html_e( 'Please fill out all of the fields below to add your new provider account.', 'wpforms' ); ?></span></p>
1311
 
1312
  <p class="wpforms-settings-provider-accounts-connect-fields">
1313
  <?php $this->integrations_tab_new_form(); ?>
1314
  </p>
1315
 
1316
+ <button type="submit" class="wpforms-btn wpforms-btn-md wpforms-btn-orange wpforms-settings-provider-connect"
1317
+ data-provider="<?php echo $slug; ?>" title="<?php echo esc_attr( $title_connect_to ); ?>">
1318
  <?php echo $title_connect_to; ?>
1319
  </button>
1320
  </form>
includes/providers/class-constant-contact.php CHANGED
@@ -49,12 +49,12 @@ class WPForms_Constant_Contact extends WPForms_Provider {
49
  $this->icon = WPFORMS_PLUGIN_URL . 'assets/images/icon-provider-constant-contact.png';
50
 
51
  if ( is_admin() ) {
52
- // Admin notice requesting connecting
53
  add_action( 'admin_notices', array( $this, 'connect_request' ) );
54
  add_action( 'wp_ajax_wpforms_constant_contact_dismiss', array( $this, 'connect_dismiss' ) );
55
  add_action( 'wpforms_admin_page', array( $this, 'learn_more_page' ) );
56
 
57
- // Provide option to override sign up link
58
  $sign_up = get_option( 'wpforms_constant_contact_signup', false );
59
  if ( $sign_up ) {
60
  $this->sign_up = esc_html( $sign_up );
@@ -76,44 +76,41 @@ class WPForms_Constant_Contact extends WPForms_Provider {
76
  */
77
  public function process_entry( $fields, $entry, $form_data, $entry_id = 0 ) {
78
 
79
- // Only run if this form has a connections for this provider
80
  if ( empty( $form_data['providers'][ $this->slug ] ) ) {
81
  return;
82
  }
83
 
84
- $providers = get_option( 'wpforms_providers' );
85
- $results = array();
86
-
87
- // Fire for each connection ------------------------------------------//
88
 
89
  foreach ( $form_data['providers'][ $this->slug ] as $connection ) :
90
 
91
- // Before proceeding make sure required fields are configured
92
  if ( empty( $connection['fields']['email'] ) ) {
93
  continue;
94
  }
95
 
96
- // Setup basic data
97
- $full_name = '';
98
  $list_id = $connection['list_id'];
99
  $account_id = $connection['account_id'];
100
  $email_data = explode( '.', $connection['fields']['email'] );
101
  $email_id = $email_data[0];
102
  $email = $fields[ $email_id ]['value'];
103
- $data = array();
104
 
105
  $this->api_connect( $account_id );
106
 
107
- // Email is required and Access token are required
108
  if ( empty( $email ) || empty( $this->access_token ) ) {
109
  continue;
110
  }
111
 
112
- // Check for conditionals
113
  $pass = $this->process_conditionals( $fields, $entry, $form_data, $connection );
114
  if ( ! $pass ) {
115
  wpforms_log(
116
- __( 'Constant Contact Subscription stopped by conditional logic', 'wpforms' ),
117
  $fields,
118
  array(
119
  'type' => array( 'provider', 'conditional_logic' ),
@@ -131,7 +128,7 @@ class WPForms_Constant_Contact extends WPForms_Provider {
131
  // Return early if there was a problem.
132
  if ( isset( $contact['error_key'] ) ) {
133
  wpforms_log(
134
- __( 'Constant Contact API Error', 'wpforms' ),
135
  $contact->get_error_message(),
136
  array(
137
  'type' => array( 'provider', 'error' ),
@@ -142,17 +139,20 @@ class WPForms_Constant_Contact extends WPForms_Provider {
142
  continue;
143
  }
144
 
145
- // Setup Merge Vars ---------------------------------------------//
 
 
 
146
  $merge_vars = array();
147
 
148
  foreach ( $connection['fields'] as $name => $merge_var ) {
149
 
150
- // Don't include Email or Full name fields
151
- if ( 'email' == $name ) {
152
  continue;
153
  }
154
 
155
- // Check if merge var is mapped
156
  if ( empty( $merge_var ) ) {
157
  continue;
158
  }
@@ -160,9 +160,8 @@ class WPForms_Constant_Contact extends WPForms_Provider {
160
  $merge_var = explode( '.', $merge_var );
161
  $id = $merge_var[0];
162
  $key = ! empty( $merge_var[1] ) ? $merge_var[1] : 'value';
163
- $type = ! empty( $merge_var[2] ) ? $merge_var[2] : 'text';
164
 
165
- // Check if mapped form field has a value
166
  if ( empty( $fields[ $id ][ $key ] ) ) {
167
  continue;
168
  }
@@ -171,19 +170,19 @@ class WPForms_Constant_Contact extends WPForms_Provider {
171
 
172
  // Constant Contact doesn't native URL field so it has to be
173
  // stored in a custom field.
174
- if ( 'url' == $name ) {
175
  $merge_vars['custom_fields'] = array(
176
  array(
177
  'name' => 'custom_field_1',
178
  'value' => $value,
179
- )
180
  );
181
  continue;
182
  }
183
 
184
  // Constant Contact stores name in two fields, so we have to
185
  // separate it.
186
- if ( 'full_name' == $name ) {
187
  $names = explode( ' ', $value );
188
  if ( ! empty( $names[0] ) ) {
189
  $merge_vars['first_name'] = $names[0];
@@ -196,15 +195,18 @@ class WPForms_Constant_Contact extends WPForms_Provider {
196
 
197
  // Constant Contact stores address in multiple fields, so we
198
  // have to separate it.
199
- if ( 'address' == $name ) {
200
 
201
- // Only support Address fields
202
- if ( 'address' != $fields[ $id ]['type'] ) {
203
  continue;
204
  }
205
 
206
- // Postal code may be in extended US format
207
- $postal = array( 'code' => '', 'subcode' => '' );
 
 
 
208
  if ( ! empty( $fields[ $id ]['postal'] ) ) {
209
  $p = explode( '-', $fields[ $id ]['postal'] );
210
  $postal['code'] = ! empty( $p[0] ) ? $p[0] : '';
@@ -229,7 +231,9 @@ class WPForms_Constant_Contact extends WPForms_Provider {
229
  $merge_vars[ $name ] = $value;
230
  }
231
 
232
- // Process in API ------------------------------------------------//
 
 
233
 
234
  // If we have a previous contact, only update the list association.
235
  if ( ! empty( $contact['results'] ) ) {
@@ -262,14 +266,14 @@ class WPForms_Constant_Contact extends WPForms_Provider {
262
  );
263
  }
264
 
265
- // Combine merge vars into data before sending
266
  $data = array_merge( $data, $merge_vars );
267
 
268
- // Args to use
269
  $args = array(
270
- 'body' => json_encode( $data ),
271
- 'method' => 'PUT',
272
- 'headers' => array(
273
  'Content-Type' => 'application/json',
274
  ),
275
  );
@@ -284,13 +288,13 @@ class WPForms_Constant_Contact extends WPForms_Provider {
284
  'lists' => array( array( 'id' => $list_id ) ),
285
  );
286
 
287
- // Combine merge vars into data before sending
288
  $data = array_merge( $data, $merge_vars );
289
 
290
- // Args to use
291
  $args = array(
292
- 'body' => json_encode( $data ),
293
- 'headers' => array(
294
  'Content-Type' => 'application/json',
295
  ),
296
  );
@@ -299,10 +303,10 @@ class WPForms_Constant_Contact extends WPForms_Provider {
299
  $res = json_decode( wp_remote_retrieve_body( $add ), true );
300
  }
301
 
302
- // Check for errors
303
  if ( isset( $res['error_key'] ) ) {
304
  wpforms_log(
305
- __( 'Constant Contact API Error', 'wpforms' ),
306
  $res->get_error_message(),
307
  array(
308
  'type' => array( 'provider', 'error' ),
@@ -315,11 +319,9 @@ class WPForms_Constant_Contact extends WPForms_Provider {
315
  endforeach;
316
  }
317
 
318
- // ************************************************************************//
319
- //
320
- // API methods - these methods interact directly with the provider API.
321
- //
322
- // ************************************************************************//
323
 
324
  /**
325
  * Authenticate with the API.
@@ -389,14 +391,14 @@ class WPForms_Constant_Contact extends WPForms_Provider {
389
 
390
  if ( empty( $lists ) ) {
391
  wpforms_log(
392
- __( 'Constant Contact API Error', 'wpforms' ),
393
  '',
394
  array(
395
  'type' => array( 'provider', 'error' ),
396
  )
397
  );
398
 
399
- return $this->error( 'API list error: Constant API error' );
400
  }
401
 
402
  return $lists;
@@ -468,11 +470,9 @@ class WPForms_Constant_Contact extends WPForms_Provider {
468
  }
469
 
470
 
471
- // ************************************************************************//
472
- //
473
- // Output methods - these methods generally return HTML for the builder.
474
- //
475
- // ************************************************************************//
476
 
477
  /**
478
  * Provider account authorize fields HTML.
@@ -487,28 +487,28 @@ class WPForms_Constant_Contact extends WPForms_Provider {
487
 
488
  $output = '<div class="wpforms-provider-account-add ' . $class . ' wpforms-connection-block">';
489
 
490
- $output .= sprintf( '<h4>%s</h4>', __( 'Add New Account', 'wpforms' ) );
491
 
492
  $output .= '<p>';
493
- $output .= __( 'Please fill out all of the fields below to register your new Constant Contact account.', 'wpforms' );
494
  $output .= '<br><a href="https://wpforms.com/docs/how-to-connect-constant-contact-with-wpforms/" target="_blank" rel="noopener noreferrer">';
495
- $output .= __( 'Click here for documentation on connecting WPForms with Constant Contact.', 'wpforms' );
496
  $output .= '</a>';
497
  $output .= '</p>';
498
 
499
  $output .= '<p class="wpforms-alert wpforms-alert-warning">';
500
- $output .= __( 'Because Constant Contact requires external authentication, you will need to register WPForms with Constant Contact before you can proceed.', 'wpforms' );
501
  $output .= '</p>';
502
 
503
  $output .= '<p class=""><strong><a onclick="window.open(this.href,\'\',\'resizable=yes,location=no,width=750,height=500,status\'); return false" href="https://oauth2.constantcontact.com/oauth2/oauth/siteowner/authorize?response_type=code&client_id=c58xq3r27udz59h9rrq7qnvf&redirect_uri=https://wpforms.com/oauth/constant-contact/" class="btn">';
504
- $output .= __( 'Click here to register with Constant Contact', 'wpforms' );
505
  $output .= '</a></strong></p>';
506
 
507
- $output .= sprintf( '<input type="text" data-name="authcode" placeholder="%s %s" class="wpforms-required">', $this->name, __( 'Authorization Code', 'wpforms' ) );
508
 
509
- $output .= sprintf( '<input type="text" data-name="label" placeholder="%s %s" class="wpforms-required">', $this->name, __( 'Account Nickname', 'wpforms' ) );
510
 
511
- $output .= sprintf( '<button data-provider="%s">%s</button>', $this->slug, __( 'Connect', 'wpforms' ) );
512
 
513
  $output .= '</div>';
514
 
@@ -526,8 +526,8 @@ class WPForms_Constant_Contact extends WPForms_Provider {
526
  * @return string
527
  */
528
  public function output_groups( $connection_id = '', $connection = array() ) {
529
- // No groups or segments for this provider
530
- return;
531
  }
532
 
533
  /**
@@ -537,7 +537,7 @@ class WPForms_Constant_Contact extends WPForms_Provider {
537
  */
538
  public function builder_output_after() {
539
 
540
- // Only display if Constant Contact account has not been setup
541
  $providers = get_option( 'wpforms_providers', array() );
542
 
543
  if ( ! empty( $providers[ $this->slug ] ) ) {
@@ -547,19 +547,33 @@ class WPForms_Constant_Contact extends WPForms_Provider {
547
  <div class="wpforms-alert wpforms-alert-info">
548
  <p><?php _e( 'Get the most out of <strong>WPForms</strong> &mdash; use it with an active Constant Contact account.', 'wpforms' ); ?></p>
549
  <p>
550
- <a href="<?php echo $this->sign_up; ?>" style="margin-right: 10px;" class="button-primary" target="_blank"
551
- rel="noopener noreferrer"><?php _e( 'Try Constant Contact for Free', 'wpforms' ); ?></a>
552
- <?php printf( __( 'Learn More about the <a href="%s" target="_blank" rel="noopener noreferrer">power of email marketing</a>', 'wpforms' ), admin_url( 'admin.php?page=wpforms-page&wpforms-page=constant-contact' ) ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
553
  </p>
554
  </div>
555
  <?php
556
  }
557
 
558
- // ************************************************************************//
559
- //
560
- // Integrations tab methods - these methods relate to the settings page.
561
- //
562
- // ************************************************************************//
563
 
564
  /**
565
  * Form fields to add a new provider account.
@@ -568,32 +582,30 @@ class WPForms_Constant_Contact extends WPForms_Provider {
568
  */
569
  public function integrations_tab_new_form() {
570
 
571
- $output = '<p>';
572
  $output .= '<a href="https://wpforms.com/docs/how-to-connect-constant-contact-with-wpforms/" target="_blank" rel="noopener noreferrer">';
573
- $output .= __( 'Click here for documentation on connecting WPForms with Constant Contact.', 'wpforms' );
574
  $output .= '</a>';
575
  $output .= '</p>';
576
 
577
  $output .= '<p class="wpforms-alert wpforms-alert-warning">';
578
- $output .= __( 'Because Constant Contact requires external authentication, you will need to register WPForms with Constant Contact before you can proceed.', 'wpforms' );
579
  $output .= '</p>';
580
 
581
  $output .= '<p class=""><strong><a onclick="window.open(this.href,\'\',\'resizable=yes,location=no,width=800,height=600,status\'); return false" href="https://oauth2.constantcontact.com/oauth2/oauth/siteowner/authorize?response_type=code&client_id=c58xq3r27udz59h9rrq7qnvf&redirect_uri=https://wpforms.com/oauth/constant-contact/" class="btn">';
582
- $output .= __( 'Click here to register with Constant Contact', 'wpforms' );
583
  $output .= '</a></strong></p>';
584
 
585
- $output .= sprintf( '<input type="text" name="authcode" placeholder="%s %s" class="wpforms-required">', $this->name, __( 'Authorization Code', 'wpforms' ) );
586
 
587
- $output .= sprintf( '<input type="text" name="label" placeholder="%s %s" class="wpforms-required">', $this->name, __( 'Account Nickname', 'wpforms' ) );
588
 
589
  echo $output;
590
  }
591
 
592
- // ************************************************************************//
593
- //
594
- // Other functionality.
595
- //
596
- // ************************************************************************//
597
 
598
  /**
599
  * Add admin notices to connect to Constant Contact.
@@ -602,23 +614,23 @@ class WPForms_Constant_Contact extends WPForms_Provider {
602
  */
603
  public function connect_request() {
604
 
605
- // Only consider showing the review request to admin users
606
  if ( ! is_super_admin() ) {
607
  return;
608
  }
609
 
610
- // Don't display on WPForms admin content pages
611
  if ( ! empty( $_GET['wpforms-page'] ) ) {
612
  return;
613
  }
614
 
615
- // Don't display if user is about to connect via Settings page
616
- if ( ! empty( $_GET['wpforms-integration'] ) && $this->slug == $_GET['wpforms-integration'] ) {
617
  return;
618
  }
619
 
620
  // Only display the notice is the Constant Contact option is set and
621
- // there are previous Constant Contact connections created
622
  $cc_notice = get_option( 'wpforms_constant_contact', false );
623
  $providers = get_option( 'wpforms_providers', array() );
624
 
@@ -633,10 +645,26 @@ class WPForms_Constant_Contact extends WPForms_Provider {
633
  <div class="notice notice-info is-dismissible wpforms-constant-contact-notice">
634
  <p><?php _e( 'Get the most out of the <strong>WPForms</strong> plugin &mdash; use it with an active Constant Contact account.', 'wpforms' ); ?></p>
635
  <p>
636
- <a href="<?php echo $this->sign_up; ?>" class="button-primary" target="_blank"
637
- rel="noopener noreferrer"><?php _e( 'Try Constant Contact for Free', 'wpforms' ); ?></a>
638
- <a href="<?php echo $connect; ?>" class="button-secondary"><?php _e( 'Connect your existing account', 'wpforms' ); ?></a>
639
- <?php printf( __( 'Learn More about the <a href="%s">power of email marketing</a>', 'wpforms' ), $learn_more ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640
  </p>
641
  </div>
642
  <style type="text/css">
@@ -659,13 +687,13 @@ class WPForms_Constant_Contact extends WPForms_Provider {
659
  }
660
  </style>
661
  <script type="text/javascript">
662
- jQuery(function ($) {
663
- $(document).on('click', '.wpforms-constant-contact-notice button', function (event) {
664
  event.preventDefault();
665
- $.post(ajaxurl, {action: 'wpforms_constant_contact_dismiss'});
666
- $('.wpforms-constant-contact-notice').remove();
667
- });
668
- });
669
  </script>
670
  <?php
671
  }
@@ -688,70 +716,99 @@ class WPForms_Constant_Contact extends WPForms_Provider {
688
  */
689
  public function learn_more_page() {
690
 
691
- if ( empty( $_GET['page'] ) || empty( $_GET['wpforms-page'] ) || 'wpforms-page' != $_GET['page'] || 'constant-contact' != $_GET['wpforms-page'] ) {
 
 
 
 
 
692
  return;
693
  }
694
  $more = 'http://www.wpbeginner.com/beginners-guide/why-you-should-start-building-your-email-list-right-away';
695
  ?>
696
  <div class="wrap about-wrap">
697
- <h1><?php _e( 'Grow Your Website with WPForms + Email Marketing', 'wpforms' ); ?></h1>
698
- <p><?php _e( 'Wondering if email marketing is really worth your time?', 'wpforms' ); ?></p>
699
- <p><?php _e( 'Email is hands-down the most effective way to nurture leads and turn them into customers, with a return on investment (ROI) of <strong>$44 back for every $1 spent</strong> according to Direct Marketing Association.', 'wpforms' ); ?></p>
700
- <p><?php _e( 'Here are 3 big reasons why every smart business in the world has an email list:', 'wpforms' ); ?></p>
701
- <a href="<?php echo $this->sign_up; ?>" target="_blank" rel="noopener noreferrer"><img
702
- src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-logo.png" class="logo"></a>
 
703
  <ol class="reasons">
704
- <li><?php _e( '<strong>Email is still #1</strong> - At least 91% of consumers check their email on a daily basis. You get direct access to your subscribers, without having to play by social media&#39;s rules and algorithms.', 'wpforms' ); ?></li>
705
- <li><?php _e( '<strong>You own your email list</strong> - Unlike with social media, your list is your property and no one can revoke your access to it.', 'wpforms' ); ?></li>
706
- <li><?php _e( '<strong>Email converts</strong> - People who buy products marketed through email spend 138% more than those who don&#39;t receive email offers.', 'wpforms' ); ?></li>
707
  </ol>
708
- <p><?php _e( 'That&#39;s why it&#39;s crucial to start collecting email addresses and building your list as soon as possible.', 'wpforms' ); ?></p>
709
- <p><?php printf( __( 'For more details, see this guide on <a href="%s" target="_blank" rel="noopener noreferrer">why building your email list is so important</a>.', 'wpforms' ), $more ); ?></p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
710
  <hr/>
711
- <h2><?php _e( 'You&#39;ve Already Started - Here&#39;s the Next Step (It&#39;s Easy)', 'wpforms' ); ?></h2>
712
- <p><?php _e( 'Here are the 3 things you need to build an email list:', 'wpforms' ); ?></p>
713
  <ol>
714
- <li><?php _e( 'A Website or Blog', 'wpforms' ); ?> <span class="dashicons dashicons-yes"></span></li>
715
- <li><?php _e( 'High-Converting Form Builder', 'wpforms' ); ?> <span class="dashicons dashicons-yes"></span></li>
716
- <li><strong><?php _e( 'The Best Email Marketing Service', 'wpforms' ); ?></strong></li>
717
  </ol>
718
- <p><?php _e( 'With a powerful email marketing service like Constant Contact, you can instantly send out mass notifications and beautifully designed newsletters to engage your subscribers.', 'wpforms' ); ?></p>
719
- <p><a href="<?php echo $this->sign_up; ?>" class="button" target="_blank"
720
- rel="noopener noreferrer"><?php _e( 'Get Started with Constant Contact for Free', 'wpforms' ); ?></a></p>
721
- <p><?php _e( 'WPForms plugin makes it fast and easy to capture all kinds of visitor information right from your WordPress site - even if you don&#39;t have a Constant Contact account.', 'wpforms' ); ?></p>
722
- <p><?php _e( 'But when you combine WPForms with Constant Contact, you can nurture your contacts and engage with them even after they leave your website. When you use Constant Contact + WPForms together, you can:', 'wpforms' ); ?></p>
 
 
 
723
  <ul>
724
- <li><?php _e( 'Seamlessly add new contacts to your email list', 'wpforms' ); ?></li>
725
- <li><?php _e( 'Create and send professional email newsletters', 'wpforms' ); ?></li>
726
- <li><?php _e( 'Get expert marketing and support', 'wpforms' ); ?></li>
727
  </ul>
728
- <p><a href="<?php echo $this->sign_up; ?>" target="_blank"
729
- rel="noopener noreferrer"><strong><?php _e( 'Try Constant Contact Today', 'wpforms' ); ?></strong></a></p>
 
 
 
730
  <hr/>
731
- <h2><?php _e( 'WPForms Makes List Building Easy', 'wpforms' ); ?></h2>
732
- <p><?php _e( 'When creating WPForms, our goal was to make a WordPress forms plugin that&#39;s both EASY and POWERFUL.', 'wpforms' ); ?></p>
733
- <p><?php _e( 'We made the form creation process extremely intuitive, so you can create a form to start capturing emails within 5 minutes or less.', 'wpforms' ); ?></p>
734
- <p><?php _e( 'Here&#39;s how it works.', 'wpforms' ); ?></p>
735
  <div class="steps">
736
  <div class="step1 step">
737
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step1.png">
738
- <p><?php _e( '1. Select from our pre-built templates, or create a form from scratch.', 'wpforms' ); ?></p>
739
  </div>
740
  <div class="step2 step">
741
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step2.png">
742
- <p><?php _e( '2. Drag and drop any field you want onto your signup form.', 'wpforms' ); ?></p>
743
  </div>
744
  <div class="step3 step">
745
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step3.png">
746
- <p><?php _e( '3. Connect your Constant Contact email list.', 'wpforms' ); ?></p>
747
  </div>
748
  <div class="step4 step">
749
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step4.png">
750
- <p><?php _e( '4. Add your new form to any post, page, or sidebar.', 'wpforms' ); ?></p>
751
  </div>
752
  </div>
753
- <p><?php _e( 'It doesn&#39;t matter what kind of business you run, what kind of website you have, or what industry you are in - you need to start building your email list today.', 'wpforms' ); ?></p>
754
- <p><?php _e( 'With Constant Contact + WPForms, growing your list is easy.', 'wpforms' ); ?></p>
755
  </div>
756
  <style type="text/css">
757
  .notice {
49
  $this->icon = WPFORMS_PLUGIN_URL . 'assets/images/icon-provider-constant-contact.png';
50
 
51
  if ( is_admin() ) {
52
+ // Admin notice requesting connecting.
53
  add_action( 'admin_notices', array( $this, 'connect_request' ) );
54
  add_action( 'wp_ajax_wpforms_constant_contact_dismiss', array( $this, 'connect_dismiss' ) );
55
  add_action( 'wpforms_admin_page', array( $this, 'learn_more_page' ) );
56
 
57
+ // Provide option to override sign up link.
58
  $sign_up = get_option( 'wpforms_constant_contact_signup', false );
59
  if ( $sign_up ) {
60
  $this->sign_up = esc_html( $sign_up );
76
  */
77
  public function process_entry( $fields, $entry, $form_data, $entry_id = 0 ) {
78
 
79
+ // Only run if this form has a connections for this provider.
80
  if ( empty( $form_data['providers'][ $this->slug ] ) ) {
81
  return;
82
  }
83
 
84
+ /*
85
+ * Fire for each connection.
86
+ */
 
87
 
88
  foreach ( $form_data['providers'][ $this->slug ] as $connection ) :
89
 
90
+ // Before proceeding make sure required fields are configured.
91
  if ( empty( $connection['fields']['email'] ) ) {
92
  continue;
93
  }
94
 
95
+ // Setup basic data.
 
96
  $list_id = $connection['list_id'];
97
  $account_id = $connection['account_id'];
98
  $email_data = explode( '.', $connection['fields']['email'] );
99
  $email_id = $email_data[0];
100
  $email = $fields[ $email_id ]['value'];
 
101
 
102
  $this->api_connect( $account_id );
103
 
104
+ // Email is required and Access token are required.
105
  if ( empty( $email ) || empty( $this->access_token ) ) {
106
  continue;
107
  }
108
 
109
+ // Check for conditionals.
110
  $pass = $this->process_conditionals( $fields, $entry, $form_data, $connection );
111
  if ( ! $pass ) {
112
  wpforms_log(
113
+ esc_html__( 'Constant Contact Subscription stopped by conditional logic', 'wpforms' ),
114
  $fields,
115
  array(
116
  'type' => array( 'provider', 'conditional_logic' ),
128
  // Return early if there was a problem.
129
  if ( isset( $contact['error_key'] ) ) {
130
  wpforms_log(
131
+ esc_html__( 'Constant Contact API Error', 'wpforms' ),
132
  $contact->get_error_message(),
133
  array(
134
  'type' => array( 'provider', 'error' ),
139
  continue;
140
  }
141
 
142
+ /*
143
+ * Setup Merge Vars
144
+ */
145
+
146
  $merge_vars = array();
147
 
148
  foreach ( $connection['fields'] as $name => $merge_var ) {
149
 
150
+ // Don't include Email or Full name fields.
151
+ if ( 'email' === $name ) {
152
  continue;
153
  }
154
 
155
+ // Check if merge var is mapped.
156
  if ( empty( $merge_var ) ) {
157
  continue;
158
  }
160
  $merge_var = explode( '.', $merge_var );
161
  $id = $merge_var[0];
162
  $key = ! empty( $merge_var[1] ) ? $merge_var[1] : 'value';
 
163
 
164
+ // Check if mapped form field has a value.
165
  if ( empty( $fields[ $id ][ $key ] ) ) {
166
  continue;
167
  }
170
 
171
  // Constant Contact doesn't native URL field so it has to be
172
  // stored in a custom field.
173
+ if ( 'url' === $name ) {
174
  $merge_vars['custom_fields'] = array(
175
  array(
176
  'name' => 'custom_field_1',
177
  'value' => $value,
178
+ ),
179
  );
180
  continue;
181
  }
182
 
183
  // Constant Contact stores name in two fields, so we have to
184
  // separate it.
185
+ if ( 'full_name' === $name ) {
186
  $names = explode( ' ', $value );
187
  if ( ! empty( $names[0] ) ) {
188
  $merge_vars['first_name'] = $names[0];
195
 
196
  // Constant Contact stores address in multiple fields, so we
197
  // have to separate it.
198
+ if ( 'address' === $name ) {
199
 
200
+ // Only support Address fields.
201
+ if ( 'address' !== $fields[ $id ]['type'] ) {
202
  continue;
203
  }
204
 
205
+ // Postal code may be in extended US format.
206
+ $postal = array(
207
+ 'code' => '',
208
+ 'subcode' => '',
209
+ );
210
  if ( ! empty( $fields[ $id ]['postal'] ) ) {
211
  $p = explode( '-', $fields[ $id ]['postal'] );
212
  $postal['code'] = ! empty( $p[0] ) ? $p[0] : '';
231
  $merge_vars[ $name ] = $value;
232
  }
233
 
234
+ /*
235
+ * Process in API
236
+ */
237
 
238
  // If we have a previous contact, only update the list association.
239
  if ( ! empty( $contact['results'] ) ) {
266
  );
267
  }
268
 
269
+ // Combine merge vars into data before sending.
270
  $data = array_merge( $data, $merge_vars );
271
 
272
+ // Args to use.
273
  $args = array(
274
+ 'body' => wp_json_encode( $data ),
275
+ 'method' => 'PUT',
276
+ 'headers' => array(
277
  'Content-Type' => 'application/json',
278
  ),
279
  );
288
  'lists' => array( array( 'id' => $list_id ) ),
289
  );
290
 
291
+ // Combine merge vars into data before sending.
292
  $data = array_merge( $data, $merge_vars );
293
 
294
+ // Args to use.
295
  $args = array(
296
+ 'body' => wp_json_encode( $data ),
297
+ 'headers' => array(
298
  'Content-Type' => 'application/json',
299
  ),
300
  );
303
  $res = json_decode( wp_remote_retrieve_body( $add ), true );
304
  }
305
 
306
+ // Check for errors.
307
  if ( isset( $res['error_key'] ) ) {
308
  wpforms_log(
309
+ esc_html__( 'Constant Contact API Error', 'wpforms' ),
310
  $res->get_error_message(),
311
  array(
312
  'type' => array( 'provider', 'error' ),
319
  endforeach;
320
  }
321
 
322
+ /************************************************************************
323
+ * API methods - these methods interact directly with the provider API. *
324
+ ************************************************************************/
 
 
325
 
326
  /**
327
  * Authenticate with the API.
391
 
392
  if ( empty( $lists ) ) {
393
  wpforms_log(
394
+ esc_html__( 'Constant Contact API Error', 'wpforms' ),
395
  '',
396
  array(
397
  'type' => array( 'provider', 'error' ),
398
  )
399
  );
400
 
401
+ return $this->error( esc_html__( 'API list error: Constant API error', 'wpforms' ) );
402
  }
403
 
404
  return $lists;
470
  }
471
 
472
 
473
+ /*************************************************************************
474
+ * Output methods - these methods generally return HTML for the builder. *
475
+ *************************************************************************/
 
 
476
 
477
  /**
478
  * Provider account authorize fields HTML.
487
 
488
  $output = '<div class="wpforms-provider-account-add ' . $class . ' wpforms-connection-block">';
489
 
490
+ $output .= sprintf( '<h4>%s</h4>', esc_html__( 'Add New Account', 'wpforms' ) );
491
 
492
  $output .= '<p>';
493
+ $output .= esc_html__( 'Please fill out all of the fields below to register your new Constant Contact account.', 'wpforms' );
494
  $output .= '<br><a href="https://wpforms.com/docs/how-to-connect-constant-contact-with-wpforms/" target="_blank" rel="noopener noreferrer">';
495
+ $output .= esc_html__( 'Click here for documentation on connecting WPForms with Constant Contact.', 'wpforms' );
496
  $output .= '</a>';
497
  $output .= '</p>';
498
 
499
  $output .= '<p class="wpforms-alert wpforms-alert-warning">';
500
+ $output .= esc_html__( 'Because Constant Contact requires external authentication, you will need to register WPForms with Constant Contact before you can proceed.', 'wpforms' );
501
  $output .= '</p>';
502
 
503
  $output .= '<p class=""><strong><a onclick="window.open(this.href,\'\',\'resizable=yes,location=no,width=750,height=500,status\'); return false" href="https://oauth2.constantcontact.com/oauth2/oauth/siteowner/authorize?response_type=code&client_id=c58xq3r27udz59h9rrq7qnvf&redirect_uri=https://wpforms.com/oauth/constant-contact/" class="btn">';
504
+ $output .= esc_html__( 'Click here to register with Constant Contact', 'wpforms' );
505
  $output .= '</a></strong></p>';
506
 
507
+ $output .= sprintf( '<input type="text" data-name="authcode" placeholder="%s %s" class="wpforms-required">', $this->name, esc_html__( 'Authorization Code', 'wpforms' ) );
508
 
509
+ $output .= sprintf( '<input type="text" data-name="label" placeholder="%s %s" class="wpforms-required">', $this->name, esc_html__( 'Account Nickname', 'wpforms' ) );
510
 
511
+ $output .= sprintf( '<button data-provider="%s">%s</button>', $this->slug, esc_html__( 'Connect', 'wpforms' ) );
512
 
513
  $output .= '</div>';
514
 
526
  * @return string
527
  */
528
  public function output_groups( $connection_id = '', $connection = array() ) {
529
+ // No groups or segments for this provider.
530
+ return '';
531
  }
532
 
533
  /**
537
  */
538
  public function builder_output_after() {
539
 
540
+ // Only display if Constant Contact account has not been setup.
541
  $providers = get_option( 'wpforms_providers', array() );
542
 
543
  if ( ! empty( $providers[ $this->slug ] ) ) {
547
  <div class="wpforms-alert wpforms-alert-info">
548
  <p><?php _e( 'Get the most out of <strong>WPForms</strong> &mdash; use it with an active Constant Contact account.', 'wpforms' ); ?></p>
549
  <p>
550
+ <a href="<?php echo $this->sign_up; ?>" style="margin-right: 10px;" class="button-primary" target="_blank" rel="noopener noreferrer">
551
+ <?php _e( 'Try Constant Contact for Free', 'wpforms' ); ?>
552
+ </a>
553
+ <?php
554
+ printf(
555
+ wp_kses(
556
+ /* translators: %s - WPForms Constant Contact internal URL. */
557
+ __( 'Learn More about the <a href="%s" target="_blank" rel="noopener noreferrer">power of email marketing</a>', 'wpforms' ),
558
+ array(
559
+ 'a' => array(
560
+ 'href' => array(),
561
+ 'target' => array(),
562
+ 'rel' => array(),
563
+ ),
564
+ )
565
+ ),
566
+ admin_url( 'admin.php?page=wpforms-page&wpforms-page=constant-contact' )
567
+ );
568
+ ?>
569
  </p>
570
  </div>
571
  <?php
572
  }
573
 
574
+ /*************************************************************************
575
+ * Integrations tab methods - these methods relate to the settings page. *
576
+ *************************************************************************/
 
 
577
 
578
  /**
579
  * Form fields to add a new provider account.
582
  */
583
  public function integrations_tab_new_form() {
584
 
585
+ $output = '<p>';
586
  $output .= '<a href="https://wpforms.com/docs/how-to-connect-constant-contact-with-wpforms/" target="_blank" rel="noopener noreferrer">';
587
+ $output .= esc_html__( 'Click here for documentation on connecting WPForms with Constant Contact.', 'wpforms' );
588
  $output .= '</a>';
589
  $output .= '</p>';
590
 
591
  $output .= '<p class="wpforms-alert wpforms-alert-warning">';
592
+ $output .= esc_html__( 'Because Constant Contact requires external authentication, you will need to register WPForms with Constant Contact before you can proceed.', 'wpforms' );
593
  $output .= '</p>';
594
 
595
  $output .= '<p class=""><strong><a onclick="window.open(this.href,\'\',\'resizable=yes,location=no,width=800,height=600,status\'); return false" href="https://oauth2.constantcontact.com/oauth2/oauth/siteowner/authorize?response_type=code&client_id=c58xq3r27udz59h9rrq7qnvf&redirect_uri=https://wpforms.com/oauth/constant-contact/" class="btn">';
596
+ $output .= esc_html__( 'Click here to register with Constant Contact', 'wpforms' );
597
  $output .= '</a></strong></p>';
598
 
599
+ $output .= sprintf( '<input type="text" name="authcode" placeholder="%s %s" class="wpforms-required">', $this->name, esc_html__( 'Authorization Code', 'wpforms' ) );
600
 
601
+ $output .= sprintf( '<input type="text" name="label" placeholder="%s %s" class="wpforms-required">', $this->name, esc_html__( 'Account Nickname', 'wpforms' ) );
602
 
603
  echo $output;
604
  }
605
 
606
+ /************************
607
+ * Other functionality. *
608
+ ************************/
 
 
609
 
610
  /**
611
  * Add admin notices to connect to Constant Contact.
614
  */
615
  public function connect_request() {
616
 
617
+ // Only consider showing the review request to admin users.
618
  if ( ! is_super_admin() ) {
619
  return;
620
  }
621
 
622
+ // Don't display on WPForms admin content pages.
623
  if ( ! empty( $_GET['wpforms-page'] ) ) {
624
  return;
625
  }
626
 
627
+ // Don't display if user is about to connect via Settings page.
628
+ if ( ! empty( $_GET['wpforms-integration'] ) && $this->slug === $_GET['wpforms-integration'] ) {
629
  return;
630
  }
631
 
632
  // Only display the notice is the Constant Contact option is set and
633
+ // there are previous Constant Contact connections created.
634
  $cc_notice = get_option( 'wpforms_constant_contact', false );
635
  $providers = get_option( 'wpforms_providers', array() );
636
 
645
  <div class="notice notice-info is-dismissible wpforms-constant-contact-notice">
646
  <p><?php _e( 'Get the most out of the <strong>WPForms</strong> plugin &mdash; use it with an active Constant Contact account.', 'wpforms' ); ?></p>
647
  <p>
648
+ <a href="<?php echo $this->sign_up; ?>" class="button-primary" target="_blank" rel="noopener noreferrer">
649
+ <?php esc_html_e( 'Try Constant Contact for Free', 'wpforms' ); ?>
650
+ </a>
651
+ <a href="<?php echo $connect; ?>" class="button-secondary">
652
+ <?php esc_html_e( 'Connect your existing account', 'wpforms' ); ?>
653
+ </a>
654
+ <?php
655
+ printf(
656
+ wp_kses(
657
+ /* translators: %s - WPForms Constant Contact internal URL. */
658
+ __( 'Learn More about the <a href="%s">power of email marketing</a>', 'wpforms' ),
659
+ array(
660
+ 'a' => array(
661
+ 'href' => array(),
662
+ ),
663
+ )
664
+ ),
665
+ $learn_more
666
+ );
667
+ ?>
668
  </p>
669
  </div>
670
  <style type="text/css">
687
  }
688
  </style>
689
  <script type="text/javascript">
690
+ jQuery( function ( $ ) {
691
+ $( document ).on( 'click', '.wpforms-constant-contact-notice button', function ( event ) {
692
  event.preventDefault();
693
+ $.post( ajaxurl, { action: 'wpforms_constant_contact_dismiss' } );
694
+ $( '.wpforms-constant-contact-notice' ).remove();
695
+ } );
696
+ } );
697
  </script>
698
  <?php
699
  }
716
  */
717
  public function learn_more_page() {
718
 
719
+ if (
720
+ empty( $_GET['page'] ) ||
721
+ empty( $_GET['wpforms-page'] ) ||
722
+ 'wpforms-page' !== $_GET['page'] ||
723
+ 'constant-contact' !== $_GET['wpforms-page']
724
+ ) {
725
  return;
726
  }
727
  $more = 'http://www.wpbeginner.com/beginners-guide/why-you-should-start-building-your-email-list-right-away';
728
  ?>
729
  <div class="wrap about-wrap">
730
+ <h1><?php esc_html_e( 'Grow Your Website with WPForms + Email Marketing', 'wpforms' ); ?></h1>
731
+ <p><?php esc_html_e( 'Wondering if email marketing is really worth your time?', 'wpforms' ); ?></p>
732
+ <p><?php echo wp_kses( __( 'Email is hands-down the most effective way to nurture leads and turn them into customers, with a return on investment (ROI) of <strong>$44 back for every $1 spent</strong> according to Direct Marketing Association.', 'wpforms' ), array( 'strong' => array() ) ); ?></p>
733
+ <p><?php esc_html_e( 'Here are 3 big reasons why every smart business in the world has an email list:', 'wpforms' ); ?></p>
734
+ <a href="<?php echo $this->sign_up; ?>" target="_blank" rel="noopener noreferrer">
735
+ <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-logo.png" class="logo">
736
+ </a>
737
  <ol class="reasons">
738
+ <li><?php echo wp_kses( __( '<strong>Email is still #1</strong> - At least 91% of consumers check their email on a daily basis. You get direct access to your subscribers, without having to play by social media&#39;s rules and algorithms.', 'wpforms' ), array( 'strong' => array() ) ); ?></li>
739
+ <li><?php echo wp_kses( __( '<strong>You own your email list</strong> - Unlike with social media, your list is your property and no one can revoke your access to it.', 'wpforms' ), array( 'strong' => array() ) ); ?></li>
740
+ <li><?php echo wp_kses( __( '<strong>Email converts</strong> - People who buy products marketed through email spend 138% more than those who don&#39;t receive email offers.', 'wpforms' ), array( 'strong' => array() ) ); ?></li>
741
  </ol>
742
+ <p><?php esc_html_e( 'That&#39;s why it&#39;s crucial to start collecting email addresses and building your list as soon as possible.', 'wpforms' ); ?></p>
743
+ <p>
744
+ <?php
745
+ printf(
746
+ wp_kses(
747
+ /* translators: %s - WPBeginners.com Guide to Email Lists URL. */
748
+ __( 'For more details, see this guide on <a href="%s" target="_blank" rel="noopener noreferrer">why building your email list is so important</a>.', 'wpforms' ),
749
+ array(
750
+ 'a' => array(
751
+ 'href' => array(),
752
+ 'target' => array(),
753
+ 'rel' => array(),
754
+ ),
755
+ )
756
+ ),
757
+ $more
758
+ );
759
+ ?>
760
+ </p>
761
  <hr/>
762
+ <h2><?php esc_html_e( 'You&#39;ve Already Started - Here&#39;s the Next Step (It&#39;s Easy)', 'wpforms' ); ?></h2>
763
+ <p><?php esc_html_e( 'Here are the 3 things you need to build an email list:', 'wpforms' ); ?></p>
764
  <ol>
765
+ <li><?php esc_html_e( 'A Website or Blog', 'wpforms' ); ?> <span class="dashicons dashicons-yes"></span></li>
766
+ <li><?php esc_html_e( 'High-Converting Form Builder', 'wpforms' ); ?> <span class="dashicons dashicons-yes"></span></li>
767
+ <li><strong><?php esc_html_e( 'The Best Email Marketing Service', 'wpforms' ); ?></strong></li>
768
  </ol>
769
+ <p><?php esc_html_e( 'With a powerful email marketing service like Constant Contact, you can instantly send out mass notifications and beautifully designed newsletters to engage your subscribers.', 'wpforms' ); ?></p>
770
+ <p>
771
+ <a href="<?php echo $this->sign_up; ?>" class="button" target="_blank" rel="noopener noreferrer">
772
+ <?php esc_html_e( 'Get Started with Constant Contact for Free', 'wpforms' ); ?>
773
+ </a>
774
+ </p>
775
+ <p><?php esc_html_e( 'WPForms plugin makes it fast and easy to capture all kinds of visitor information right from your WordPress site - even if you don&#39;t have a Constant Contact account.', 'wpforms' ); ?></p>
776
+ <p><?php esc_html_e( 'But when you combine WPForms with Constant Contact, you can nurture your contacts and engage with them even after they leave your website. When you use Constant Contact + WPForms together, you can:', 'wpforms' ); ?></p>
777
  <ul>
778
+ <li><?php esc_html_e( 'Seamlessly add new contacts to your email list', 'wpforms' ); ?></li>
779
+ <li><?php esc_html_e( 'Create and send professional email newsletters', 'wpforms' ); ?></li>
780
+ <li><?php esc_html_e( 'Get expert marketing and support', 'wpforms' ); ?></li>
781
  </ul>
782
+ <p>
783
+ <a href="<?php echo $this->sign_up; ?>" target="_blank" rel="noopener noreferrer">
784
+ <strong><?php esc_html_e( 'Try Constant Contact Today', 'wpforms' ); ?></strong>
785
+ </a>
786
+ </p>
787
  <hr/>
788
+ <h2><?php esc_html_e( 'WPForms Makes List Building Easy', 'wpforms' ); ?></h2>
789
+ <p><?php esc_html_e( 'When creating WPForms, our goal was to make a WordPress forms plugin that&#39;s both EASY and POWERFUL.', 'wpforms' ); ?></p>
790
+ <p><?php esc_html_e( 'We made the form creation process extremely intuitive, so you can create a form to start capturing emails within 5 minutes or less.', 'wpforms' ); ?></p>
791
+ <p><?php esc_html_e( 'Here&#39;s how it works.', 'wpforms' ); ?></p>
792
  <div class="steps">
793
  <div class="step1 step">
794
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step1.png">
795
+ <p><?php esc_html_e( '1. Select from our pre-built templates, or create a form from scratch.', 'wpforms' ); ?></p>
796
  </div>
797
  <div class="step2 step">
798
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step2.png">
799
+ <p><?php esc_html_e( '2. Drag and drop any field you want onto your signup form.', 'wpforms' ); ?></p>
800
  </div>
801
  <div class="step3 step">
802
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step3.png">
803
+ <p><?php esc_html_e( '3. Connect your Constant Contact email list.', 'wpforms' ); ?></p>
804
  </div>
805
  <div class="step4 step">
806
  <img src="<?php echo WPFORMS_PLUGIN_URL; ?>assets/images/cc-about-step4.png">
807
+ <p><?php esc_html_e( '4. Add your new form to any post, page, or sidebar.', 'wpforms' ); ?></p>
808
  </div>
809
  </div>
810
+ <p><?php esc_html_e( 'It doesn&#39;t matter what kind of business you run, what kind of website you have, or what industry you are in - you need to start building your email list today.', 'wpforms' ); ?></p>
811
+ <p><?php esc_html_e( 'With Constant Contact + WPForms, growing your list is easy.', 'wpforms' ); ?></p>
812
  </div>
813
  <style type="text/css">
814
  .notice {
includes/templates/class-base.php CHANGED
@@ -90,7 +90,7 @@ abstract class WPForms_Template {
90
  */
91
  public function __construct() {
92
 
93
- // Bootstrap
94
  $this->init();
95
 
96
  $type = $this->core ? '_core' : '';
@@ -118,7 +118,7 @@ abstract class WPForms_Template {
118
  *
119
  * @return array
120
  */
121
- function template_details( $templates ) {
122
 
123
  $templates[] = array(
124
  'name' => $this->name,
@@ -141,7 +141,7 @@ abstract class WPForms_Template {
141
  *
142
  * @return array
143
  */
144
- function template_data( $args, $data ) {
145
 
146
  if ( ! empty( $data ) && ! empty( $data['template'] ) ) {
147
  if ( $data['template'] === $this->slug ) {
@@ -163,7 +163,7 @@ abstract class WPForms_Template {
163
  *
164
  * @return array
165
  */
166
- function template_replace( $form, $data, $args ) {
167
 
168
  if ( ! empty( $args['template'] ) ) {
169
  if ( $args['template'] === $this->slug ) {
@@ -186,7 +186,7 @@ abstract class WPForms_Template {
186
  *
187
  * @return array
188
  */
189
- function template_active( $details, $form ) {
190
 
191
  if ( empty( $form ) ) {
192
  return;
@@ -223,7 +223,7 @@ abstract class WPForms_Template {
223
  *
224
  * @return boolean
225
  */
226
- function template_modal_conditional( $form_data ) {
227
 
228
  return false;
229
  }
90
  */
91
  public function __construct() {
92
 
93
+ // Bootstrap.
94
  $this->init();
95
 
96
  $type = $this->core ? '_core' : '';
118
  *
119
  * @return array
120
  */
121
+ public function template_details( $templates ) {
122
 
123
  $templates[] = array(
124
  'name' => $this->name,
141
  *
142
  * @return array
143
  */
144
+ public function template_data( $args, $data ) {
145
 
146
  if ( ! empty( $data ) && ! empty( $data['template'] ) ) {
147
  if ( $data['template'] === $this->slug ) {
163
  *
164
  * @return array
165
  */
166
+ public function template_replace( $form, $data, $args ) {
167
 
168
  if ( ! empty( $args['template'] ) ) {
169
  if ( $args['template'] === $this->slug ) {
186
  *
187
  * @return array
188
  */
189
+ public function template_active( $details, $form ) {
190
 
191
  if ( empty( $form ) ) {
192
  return;
223
  *
224
  * @return boolean
225
  */
226
+ public function template_modal_conditional( $form_data ) {
227
 
228
  return false;
229
  }
includes/templates/class-blank.php CHANGED
@@ -18,9 +18,9 @@ class WPForms_Template_Blank extends WPForms_Template {
18
  */
19
  public function init() {
20
 
21
- $this->name = __( 'Blank Form', 'wpforms' );
22
  $this->slug = 'blank';
23
- $this->description = __( 'The blank form allows you to create any type of form using our drag & drop builder.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->modal = '';
@@ -31,7 +31,7 @@ class WPForms_Template_Blank extends WPForms_Template {
31
  'settings' => array(
32
  'honeypot' => '1',
33
  'confirmation_message_scroll' => '1',
34
- 'submit_text_processing' => __( 'Sending...', 'wpforms' ),
35
  ),
36
  'meta' => array(
37
  'template' => $this->slug,
18
  */
19
  public function init() {
20
 
21
+ $this->name = esc_html__( 'Blank Form', 'wpforms' );
22
  $this->slug = 'blank';
23
+ $this->description = esc_html__( 'The blank form allows you to create any type of form using our drag & drop builder.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->modal = '';
31
  'settings' => array(
32
  'honeypot' => '1',
33
  'confirmation_message_scroll' => '1',
34
+ 'submit_text_processing' => esc_html__( 'Sending...', 'wpforms' ),
35
  ),
36
  'meta' => array(
37
  'template' => $this->slug,
includes/templates/class-contact.php CHANGED
@@ -18,9 +18,9 @@ class WPForms_Template_Contact extends WPForms_Template {
18
  */
19
  public function init() {
20
 
21
- $this->name = __( 'Simple Contact Form', 'wpforms' );
22
  $this->slug = 'contact';
23
- $this->description = __( 'Allow your users to contact you with this simple contact form. You can add and remove fields as needed.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->modal = '';
@@ -31,21 +31,21 @@ class WPForms_Template_Contact extends WPForms_Template {
31
  '0' => array(
32
  'id' => '0',
33
  'type' => 'name',
34
- 'label' => __( 'Name', 'wpforms' ),
35
  'required' => '1',
36
  'size' => 'medium',
37
  ),
38
  '1' => array(
39
  'id' => '1',
40
  'type' => 'email',
41
- 'label' => __( 'Email', 'wpforms' ),
42
  'required' => '1',
43
  'size' => 'medium',
44
  ),
45
  '2' => array(
46
  'id' => '2',
47
  'type' => 'textarea',
48
- 'label' => __( 'Comment or Message', 'wpforms' ),
49
  'description' => '',
50
  'required' => '1',
51
  'size' => 'medium',
@@ -63,7 +63,7 @@ class WPForms_Template_Contact extends WPForms_Template {
63
  ),
64
  'honeypot' => '1',
65
  'confirmation_message_scroll' => '1',
66
- 'submit_text_processing' => __( 'Sending...', 'wpforms' ),
67
  ),
68
  'meta' => array(
69
  'template' => $this->slug,
18
  */
19
  public function init() {
20
 
21
+ $this->name = esc_html__( 'Simple Contact Form', 'wpforms' );
22
  $this->slug = 'contact';
23
+ $this->description = esc_html__( 'Allow your users to contact you with this simple contact form. You can add and remove fields as needed.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->modal = '';
31
  '0' => array(
32
  'id' => '0',
33
  'type' => 'name',
34
+ 'label' => esc_html__( 'Name', 'wpforms' ),
35
  'required' => '1',
36
  'size' => 'medium',
37
  ),
38
  '1' => array(
39
  'id' => '1',
40
  'type' => 'email',
41
+ 'label' => esc_html__( 'Email', 'wpforms' ),
42
  'required' => '1',
43
  'size' => 'medium',
44
  ),
45
  '2' => array(
46
  'id' => '2',
47
  'type' => 'textarea',
48
+ 'label' => esc_html__( 'Comment or Message', 'wpforms' ),
49
  'description' => '',
50
  'required' => '1',
51
  'size' => 'medium',
63
  ),
64
  'honeypot' => '1',
65
  'confirmation_message_scroll' => '1',
66
+ 'submit_text_processing' => esc_html__( 'Sending...', 'wpforms' ),
67
  ),
68
  'meta' => array(
69
  'template' => $this->slug,
includes/templates/class-subscribe.php CHANGED
@@ -18,15 +18,15 @@ class WPForms_Template_Subscribe extends WPForms_Template {
18
  */
19
  public function init() {
20
 
21
- $this->name = __( 'Newsletter Signup Form', 'wpforms' );
22
  $this->slug = 'subscribe';
23
- $this->description = __( 'Add subscribers and grow your email list with this newsletter signup form. You can add and remove fields as needed.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->core = true;
27
  $this->modal = array(
28
- 'title' => __( 'Don&#39;t Forget', 'wpforms' ),
29
- 'message' => __( 'Click the marketing tab to configure your newsletter service provider', 'wpforms' ),
30
  );
31
  $this->data = array(
32
  'field_id' => '2',
@@ -34,14 +34,14 @@ class WPForms_Template_Subscribe extends WPForms_Template {
34
  '0' => array(
35
  'id' => '0',
36
  'type' => 'name',
37
- 'label' => __( 'Name', 'wpforms' ),
38
  'required' => '1',
39
  'size' => 'medium',
40
  ),
41
  '1' => array(
42
  'id' => '1',
43
  'type' => 'email',
44
- 'label' => __( 'Email', 'wpforms' ),
45
  'required' => '1',
46
  'size' => 'medium',
47
  ),
@@ -49,7 +49,7 @@ class WPForms_Template_Subscribe extends WPForms_Template {
49
  'settings' => array(
50
  'honeypot' => '1',
51
  'confirmation_message_scroll' => '1',
52
- 'submit_text_processing' => __( 'Sending...', 'wpforms' ),
53
  ),
54
  'meta' => array(
55
  'template' => $this->slug,
@@ -67,7 +67,7 @@ class WPForms_Template_Subscribe extends WPForms_Template {
67
  *
68
  * @return boolean
69
  */
70
- function template_modal_conditional( $form_data ) {
71
 
72
  // If we do not have provider data, then we can assume a provider
73
  // method has not yet been configured, so we display the modal to
18
  */
19
  public function init() {
20
 
21
+ $this->name = esc_html__( 'Newsletter Signup Form', 'wpforms' );
22
  $this->slug = 'subscribe';
23
+ $this->description = esc_html__( 'Add subscribers and grow your email list with this newsletter signup form. You can add and remove fields as needed.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->core = true;
27
  $this->modal = array(
28
+ 'title' => esc_html__( 'Don&#39;t Forget', 'wpforms' ),
29
+ 'message' => esc_html__( 'Click the marketing tab to configure your newsletter service provider', 'wpforms' ),
30
  );
31
  $this->data = array(
32
  'field_id' => '2',
34
  '0' => array(
35
  'id' => '0',
36
  'type' => 'name',
37
+ 'label' => esc_html__( 'Name', 'wpforms' ),
38
  'required' => '1',
39
  'size' => 'medium',
40
  ),
41
  '1' => array(
42
  'id' => '1',
43
  'type' => 'email',
44
+ 'label' => esc_html__( 'Email', 'wpforms' ),
45
  'required' => '1',
46
  'size' => 'medium',
47
  ),
49
  'settings' => array(
50
  'honeypot' => '1',
51
  'confirmation_message_scroll' => '1',
52
+ 'submit_text_processing' => esc_html__( 'Sending...', 'wpforms' ),
53
  ),
54
  'meta' => array(
55
  'template' => $this->slug,
67
  *
68
  * @return boolean
69
  */
70
+ public function template_modal_conditional( $form_data ) {
71
 
72
  // If we do not have provider data, then we can assume a provider
73
  // method has not yet been configured, so we display the modal to
includes/templates/class-suggestion.php CHANGED
@@ -18,9 +18,9 @@ class WPForms_Template_Suggestion extends WPForms_Template {
18
  */
19
  public function init() {
20
 
21
- $this->name = __( 'Suggestion Form', 'wpforms' );
22
  $this->slug = 'suggestion';
23
- $this->description = __( 'Ask your users for suggestions with this simple form template. You can add and remove fields as needed.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->modal = '';
@@ -31,34 +31,34 @@ class WPForms_Template_Suggestion extends WPForms_Template {
31
  '0' => array(
32
  'id' => '0',
33
  'type' => 'name',
34
- 'label' => __( 'Name', 'wpforms' ),
35
  'required' => '1',
36
  'size' => 'medium',
37
  ),
38
  '1' => array(
39
  'id' => '1',
40
  'type' => 'email',
41
- 'label' => __( 'Email', 'wpforms' ),
42
- 'description' => __( 'Please enter your email, so we can follow up with you.', 'wpforms' ),
43
  'required' => '1',
44
  'size' => 'medium',
45
  ),
46
  '2' => array(
47
  'id' => '2',
48
  'type' => 'radio',
49
- 'label' => __( 'Which department do you have a suggestion for?', 'wpforms' ),
50
  'choices' => array(
51
  '1' => array(
52
- 'label' => __( 'Sales', 'wpforms' ),
53
  ),
54
  '2' => array(
55
- 'label' => __( 'Customer Support', 'wpforms' ),
56
  ),
57
  '3' => array(
58
- 'label' => __( 'Product Development', 'wpforms' ),
59
  ),
60
  '4' => array(
61
- 'label' => __( 'Other', 'wpforms' ),
62
  ),
63
  ),
64
  'required' => '1',
@@ -66,14 +66,14 @@ class WPForms_Template_Suggestion extends WPForms_Template {
66
  '3' => array(
67
  'id' => '3',
68
  'type' => 'text',
69
- 'label' => __( 'Subject', 'wpforms' ),
70
  'required' => '1',
71
  'size' => 'medium',
72
  ),
73
  '4' => array(
74
  'id' => '4',
75
  'type' => 'textarea',
76
- 'label' => __( 'Message', 'wpforms' ),
77
  'required' => '1',
78
  'size' => 'medium',
79
  ),
@@ -88,7 +88,7 @@ class WPForms_Template_Suggestion extends WPForms_Template {
88
  ),
89
  'honeypot' => '1',
90
  'confirmation_message_scroll' => '1',
91
- 'submit_text_processing' => __( 'Sending...', 'wpforms' ),
92
  ),
93
  'meta' => array(
94
  'template' => $this->slug,
18
  */
19
  public function init() {
20
 
21
+ $this->name = esc_html__( 'Suggestion Form', 'wpforms' );
22
  $this->slug = 'suggestion';
23
+ $this->description = esc_html__( 'Ask your users for suggestions with this simple form template. You can add and remove fields as needed.', 'wpforms' );
24
  $this->includes = '';
25
  $this->icon = '';
26
  $this->modal = '';
31
  '0' => array(
32
  'id' => '0',
33
  'type' => 'name',
34
+ 'label' => esc_html__( 'Name', 'wpforms' ),
35
  'required' => '1',
36
  'size' => 'medium',
37
  ),
38
  '1' => array(
39
  'id' => '1',
40
  'type' => 'email',
41
+ 'label' => esc_html__( 'Email', 'wpforms' ),
42
+ 'description' => esc_html__( 'Please enter your email, so we can follow up with you.', 'wpforms' ),
43
  'required' => '1',
44
  'size' => 'medium',
45
  ),
46
  '2' => array(
47
  'id' => '2',
48
  'type' => 'radio',
49
+ 'label' => esc_html__( 'Which department do you have a suggestion for?', 'wpforms' ),
50
  'choices' => array(
51
  '1' => array(
52
+ 'label' => esc_html__( 'Sales', 'wpforms' ),
53
  ),
54
  '2' => array(
55
+ 'label' => esc_html__( 'Customer Support', 'wpforms' ),
56
  ),
57
  '3' => array(
58
+ 'label' => esc_html__( 'Product Development', 'wpforms' ),
59
  ),
60
  '4' => array(
61
+ 'label' => esc_html__( 'Other', 'wpforms' ),
62
  ),
63
  ),
64
  'required' => '1',
66
  '3' => array(
67
  'id' => '3',
68
  'type' => 'text',
69
+ 'label' => esc_html__( 'Subject', 'wpforms' ),
70
  'required' => '1',
71
  'size' => 'medium',
72
  ),
73
  '4' => array(
74
  'id' => '4',
75
  'type' => 'textarea',
76
+ 'label' => esc_html__( 'Message', 'wpforms' ),
77
  'required' => '1',
78
  'size' => 'medium',
79
  ),
88
  ),
89
  'honeypot' => '1',
90
  'confirmation_message_scroll' => '1',
91
+ 'submit_text_processing' => esc_html__( 'Sending...', 'wpforms' ),
92
  ),
93
  'meta' => array(
94
  'template' => $this->slug,
languages/wpforms-de_DE.mo CHANGED
Binary file
languages/wpforms-de_DE.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WPForms 1.3.8\n"
4
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
5
- "POT-Creation-Date: 2017-10-03 15:15:00+00:00\n"
6
- "PO-Revision-Date: 2017-10-16 17:08+0300\n"
7
  "Last-Translator: rs-nldx <rs@nldx.com>\n"
8
  "Language-Team: German\n"
9
  "Language: de_DE\n"
@@ -11,9 +11,10 @@ msgstr ""
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
- "X-Generator: Poedit 2.0.4\n"
15
 
16
- #: includes/admin/admin.php:128 pro/includes/admin/class-addons.php:241
 
17
  msgid "Activate"
18
  msgstr "Aktivieren "
19
 
@@ -116,36 +117,75 @@ msgstr "Sind Sie sicher, dass Sie dieses Formular duplizieren möchten?"
116
  msgid "Heads up!"
117
  msgstr "Kopf hoch!"
118
 
119
- #: includes/admin/admin.php:151 includes/admin/builder/class-builder.php:288
 
 
 
 
120
  msgid "OK"
121
  msgstr "OK"
122
 
123
- #: includes/admin/admin.php:152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  msgid "Are you sure you want to disconnect this account?"
125
  msgstr ""
126
  "Sind Sie sicher, dass Sie die Verbindung zu diesem Konto trennen möchten?"
127
 
128
- #: includes/admin/admin.php:153
129
  msgid "Could not authenticate with the provider."
130
  msgstr ""
131
 
132
- #: includes/admin/admin.php:154
133
  #, fuzzy
134
  #| msgid "Save and Exit"
135
  msgid "Save and Refresh"
136
  msgstr "Speichern und schließen"
137
 
138
- #: includes/admin/admin.php:155
 
 
 
 
 
 
 
139
  msgid "Upload or Choose Your Image"
140
  msgstr "Eigenes Bild verwenden"
141
 
142
- #: includes/admin/admin.php:156
143
  msgid "Use Image"
144
  msgstr "Bild verwenden"
145
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  #. translators: %1$s - WPForms plugin name; %2$s - opening a link tag; %3$s -
147
  #. closing a link tag.
148
- #: includes/admin/admin.php:351
149
  msgid ""
150
  "Your site is running an outdated version of PHP that is no longer supported "
151
  "and may cause issues with %1$s. %2$sRead more%3$s for additional information."
@@ -313,7 +353,7 @@ msgstr ""
313
  "Mitteilungen."
314
 
315
  #: includes/admin/builder/class-builder.php:305 lite/wpforms-lite.php:84
316
- #: pro/wpforms-pro.php:408
317
  msgid "Default Notification"
318
  msgstr "Standard-Benachrichtigung "
319
 
@@ -415,13 +455,13 @@ msgstr "Dieses Element muss mind. eine Auswahlmöglichkeit enthalten."
415
 
416
  #: includes/admin/builder/class-builder.php:333
417
  #: includes/fields/class-base.php:253 includes/fields/class-base.php:599
418
- #: lite/wpforms-lite.php:76 pro/wpforms-pro.php:401
419
  msgid "Off"
420
  msgstr "Aus"
421
 
422
  #: includes/admin/builder/class-builder.php:334
423
  #: includes/fields/class-base.php:253 lite/wpforms-lite.php:75
424
- #: pro/wpforms-pro.php:400
425
  msgid "On"
426
  msgstr "An"
427
 
@@ -551,11 +591,12 @@ msgid "Now editing"
551
  msgstr "Wird bearbeitet"
552
 
553
  #: includes/admin/builder/class-builder.php:469
554
- #: pro/includes/admin/entries/class-entries-list.php:528
555
  msgid "Preview Form"
556
  msgstr "Vorschau (Formular)"
557
 
558
  #: includes/admin/builder/class-builder.php:471
 
559
  #: includes/admin/overview/class-overview-table.php:182
560
  msgid "Preview"
561
  msgstr "Vorschau"
@@ -596,7 +637,9 @@ msgstr ""
596
  "Sie müssen ihr Formular erst einrichten, bevor Sie Felder verwalten können."
597
 
598
  #: includes/admin/builder/panels/class-fields.php:123
599
- #: includes/admin/builder/panels/class-settings.php:130
 
 
600
  msgid "Submit"
601
  msgstr "Senden"
602
 
@@ -726,12 +769,12 @@ msgid "General"
726
  msgstr "Allgemein"
727
 
728
  #: includes/admin/builder/panels/class-settings.php:58 lite/wpforms-lite.php:61
729
- #: lite/wpforms-lite.php:71 pro/wpforms-pro.php:387 pro/wpforms-pro.php:396
730
  msgid "Notifications"
731
  msgstr "Mitteilungen"
732
 
733
  #: includes/admin/builder/panels/class-settings.php:59
734
- #: includes/admin/builder/panels/class-settings.php:187
735
  msgid "Confirmation"
736
  msgstr "Bestätigung"
737
 
@@ -746,7 +789,7 @@ msgstr ""
746
 
747
  #: includes/admin/builder/panels/class-settings.php:94
748
  #: includes/admin/builder/panels/class-setup.php:55
749
- #: includes/class-smart-tags.php:37
750
  msgid "Form Name"
751
  msgstr "Formularname"
752
 
@@ -755,16 +798,10 @@ msgid "Form Description"
755
  msgstr "Formularbeschreibung"
756
 
757
  #: includes/admin/builder/panels/class-settings.php:111
758
- #, fuzzy
759
- #| msgid "Hide form title and description area"
760
- msgid "Hide form name and description area"
761
- msgstr "Formulartitel und -beschreibung ausblenden"
762
-
763
- #: includes/admin/builder/panels/class-settings.php:118
764
  msgid "Form CSS Class"
765
  msgstr "Formular CSS-Klasse"
766
 
767
- #: includes/admin/builder/panels/class-settings.php:120
768
  msgid ""
769
  "Enter CSS class names for the form wrapper. Multiple class names should be "
770
  "separated with spaces."
@@ -772,15 +809,15 @@ msgstr ""
772
  "Name für CSS-Klasse des Formular-Wrappers eingeben. Mehrere Klassen können "
773
  "mit einem Komma getrennt werden."
774
 
775
- #: includes/admin/builder/panels/class-settings.php:128
776
  msgid "Submit Button Text"
777
  msgstr "Senden-Button Beschriftung"
778
 
779
- #: includes/admin/builder/panels/class-settings.php:138
780
  msgid "Submit Button Processing Text"
781
  msgstr "Senden-Button \"In Arbeit\" Text"
782
 
783
- #: includes/admin/builder/panels/class-settings.php:140
784
  msgid ""
785
  "Enter the submit button text you would like the button display while the "
786
  "form submit is processing."
@@ -788,11 +825,11 @@ msgstr ""
788
  "Geben Sie den Text ein, den der Button anzeigen soll, während das Formular "
789
  "verarbeitet wird."
790
 
791
- #: includes/admin/builder/panels/class-settings.php:148
792
  msgid "Submit Button CSS Class"
793
  msgstr "CSS-Klasse für Senden-Button"
794
 
795
- #: includes/admin/builder/panels/class-settings.php:150
796
  msgid ""
797
  "Enter CSS class names for the form submit button. Multiple names should be "
798
  "separated with spaces."
@@ -800,55 +837,57 @@ msgstr ""
800
  "CSS-Klassennamen eingeben für den Senden-Button. Mehrere CSS-Klassen können "
801
  "mit einem Komma getrennt eingegeben werden."
802
 
803
- #: includes/admin/builder/panels/class-settings.php:158
804
  msgid "Enable anti-spam honeypot"
805
  msgstr "Anti-SPAM \"Honigtopf\" aktivieren"
806
 
807
- #: includes/admin/builder/panels/class-settings.php:169
808
  msgid "Enable Google invisible reCAPTCHA"
809
  msgstr "Googles unsichtbares reCAPTCHA aktivieren"
810
 
811
- #: includes/admin/builder/panels/class-settings.php:169
812
  msgid "Enable Google reCAPTCHA (v2)"
813
  msgstr "Googles reCAPTCHA aktivieren (v2)"
814
 
815
- #: includes/admin/builder/panels/class-settings.php:194
816
  msgid "Confirmation Type"
817
  msgstr "Bestätigungsart"
818
 
819
- #: includes/admin/builder/panels/class-settings.php:198
820
  #: includes/templates/class-suggestion.php:76 lite/wpforms-lite.php:189
821
- #: pro/wpforms-pro.php:542
822
  msgid "Message"
823
  msgstr "Nachricht"
824
 
825
- #: includes/admin/builder/panels/class-settings.php:199
826
  msgid "Show Page"
827
  msgstr "Seite anzeigen"
828
 
829
- #: includes/admin/builder/panels/class-settings.php:200
830
  msgid "Go to URL (Redirect)"
831
  msgstr "Gehe zu URL (Weiterleitung)"
832
 
833
- #: includes/admin/builder/panels/class-settings.php:209
834
  msgid "Confirmation Message"
835
  msgstr "Bestätigungsmitteilung"
836
 
837
- #: includes/admin/builder/panels/class-settings.php:211
 
 
838
  msgid "Thanks for contacting us! We will be in touch with you shortly."
839
  msgstr ""
840
- "Danke für Ihre Kontaktaufnahmen. Wir werden uns umgehend mit Ihnen in "
841
  "Verbindung setzen."
842
 
843
- #: includes/admin/builder/panels/class-settings.php:222
844
  msgid "Automatically scroll to the confirmation message"
845
  msgstr "Automatisch zur Bestätigungsmitteilung scrollen"
846
 
847
- #: includes/admin/builder/panels/class-settings.php:235
848
  msgid "Confirmation Page"
849
  msgstr "Bestätigungsseite"
850
 
851
- #: includes/admin/builder/panels/class-settings.php:245
852
  msgid "Confirmation Redirect URL"
853
  msgstr "URL für Weiterleitung der Bestätigung"
854
 
@@ -954,7 +993,7 @@ msgstr ""
954
  #. Author of the plugin/theme
955
  #: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
956
  #: includes/admin/class-menu.php:51 includes/admin/class-menu.php:103
957
- #: includes/integrations.php:45
958
  msgid "WPForms"
959
  msgstr "WPForms"
960
 
@@ -978,7 +1017,7 @@ msgstr "Formulareinträge"
978
  #: includes/admin/class-menu.php:72
979
  #: includes/admin/overview/class-overview-table.php:174
980
  #: pro/includes/admin/entries/class-entries-list.php:332
981
- #: pro/wpforms-pro.php:322
982
  msgid "Entries"
983
  msgstr "Einträge"
984
 
@@ -1065,14 +1104,14 @@ msgstr "Eintrag erfolgreich gelöscht."
1065
 
1066
  #: includes/admin/class-settings.php:168 includes/admin/class-settings.php:173
1067
  #: includes/admin/class-settings.php:178 includes/admin/class-settings.php:183
1068
- #: pro/wpforms-pro.php:154
1069
  #, fuzzy
1070
  #| msgid "Save General Settings"
1071
  msgid "Save Settings"
1072
  msgstr "Allgemeine Einstellungen speichern"
1073
 
1074
- #: includes/admin/class-settings.php:171 includes/admin/class-settings.php:276
1075
- #: includes/admin/class-settings.php:365 includes/fields/class-email.php:21
1076
  #: includes/fields/class-email.php:68 includes/fields/class-email.php:306
1077
  #: includes/templates/class-contact.php:41
1078
  #: includes/templates/class-subscribe.php:44
@@ -1083,7 +1122,7 @@ msgstr "Allgemeine Einstellungen speichern"
1083
  msgid "Email"
1084
  msgstr "E-Mail-Adresse"
1085
 
1086
- #: includes/admin/class-settings.php:176 includes/admin/class-settings.php:316
1087
  msgid "reCAPTCHA"
1088
  msgstr "reCAPTCHA"
1089
 
@@ -1093,8 +1132,8 @@ msgstr "reCAPTCHA"
1093
  msgid "Validation"
1094
  msgstr "Validierungsnachricht "
1095
 
1096
- #: includes/admin/class-settings.php:186 includes/admin/class-settings.php:386
1097
- #: includes/admin/class-settings.php:393
1098
  msgid "Integrations"
1099
  msgstr "Integrationen"
1100
 
@@ -1196,13 +1235,24 @@ msgstr ""
1196
  "ganzen Website geladen werden. Nur notwendig bei Kompatibilitätsproblemen "
1197
  "oder auf Anweisung unseres Supports hin. "
1198
 
1199
- #: includes/admin/class-settings.php:283
 
 
 
 
 
 
 
 
 
 
 
1200
  #, fuzzy
1201
  #| msgid "template"
1202
  msgid "Template"
1203
  msgstr "Template"
1204
 
1205
- #: includes/admin/class-settings.php:284
1206
  #, fuzzy
1207
  #| msgid "Determines how email notifications will be formatted."
1208
  msgid ""
@@ -1210,25 +1260,25 @@ msgid ""
1210
  "default."
1211
  msgstr "Legt fest, wie E-Mail-Benachrichtungen formatiert werden."
1212
 
1213
- #: includes/admin/class-settings.php:288
1214
  #, fuzzy
1215
  #| msgid "Use Template"
1216
  msgid "HTML Template"
1217
  msgstr "Template verwenden"
1218
 
1219
- #: includes/admin/class-settings.php:289
1220
  #, fuzzy
1221
  #| msgid "Plain Text"
1222
  msgid "Plain text"
1223
  msgstr "Einfacher Text"
1224
 
1225
- #: includes/admin/class-settings.php:294
1226
  #, fuzzy
1227
  #| msgid "Email Header Image "
1228
  msgid "Header Image"
1229
  msgstr "E-Mail-Header Bild"
1230
 
1231
- #: includes/admin/class-settings.php:295
1232
  #, fuzzy
1233
  #| msgid ""
1234
  #| "Upload or choose a logo to be displayed at the top of email notifications."
@@ -1237,23 +1287,23 @@ msgid ""
1237
  "<br>Recommended size is 300x100 or smaller for best support on all devices."
1238
  msgstr "Verwenden Sie Ihr eigenes Logo für E-Mail-Benachrichtungen."
1239
 
1240
- #: includes/admin/class-settings.php:300
1241
  #, fuzzy
1242
  #| msgid "Email Background Color"
1243
  msgid "Background Color"
1244
  msgstr "E-Mail-Hintergrundfarbe"
1245
 
1246
- #: includes/admin/class-settings.php:301
1247
  msgid "Customize the background color of the HTML email template."
1248
  msgstr "Hintergrundfarbe des HTML E-Mail-Templates festlegen."
1249
 
1250
- #: includes/admin/class-settings.php:307
1251
  #, fuzzy
1252
  #| msgid "Email Carbon Copy"
1253
  msgid "Carbon Copy"
1254
  msgstr "E-Mail Carbon Copy (CC)"
1255
 
1256
- #: includes/admin/class-settings.php:308
1257
  msgid ""
1258
  "Check this if you would like to enable the ability to CC: email addresses in "
1259
  "the form notification settings."
@@ -1261,50 +1311,50 @@ msgstr ""
1261
  "Bitte markieren, wenn Sie die Eingabe von \"CC\"-E-Mail-Adressen bei den "
1262
  "Einstellungen der Formularbenachrichtigungen aktivieren möchten. "
1263
 
1264
- #: includes/admin/class-settings.php:323
1265
  #: pro/includes/fields/class-date-time.php:154
1266
  msgid "Type"
1267
  msgstr "Art"
1268
 
1269
- #: includes/admin/class-settings.php:327
1270
  #, fuzzy
1271
  #| msgid "reCAPTCHA"
1272
  msgid "v2 reCAPTCHA"
1273
  msgstr "reCAPTCHA"
1274
 
1275
- #: includes/admin/class-settings.php:328
1276
  #, fuzzy
1277
  #| msgid "Enable Google invisible reCAPTCHA"
1278
  msgid "Invisible reCAPTCHA"
1279
  msgstr "Googles unsichtbares reCAPTCHA aktivieren"
1280
 
1281
- #: includes/admin/class-settings.php:333
1282
  #, fuzzy
1283
  #| msgid "Deactivate Key"
1284
  msgid "Site Key"
1285
  msgstr "Schlüssel deaktivieren"
1286
 
1287
- #: includes/admin/class-settings.php:338
1288
  #, fuzzy
1289
  #| msgid "Refresh Key"
1290
  msgid "Secret Key"
1291
  msgstr "Schlüssel aktualisieren."
1292
 
1293
- #: includes/admin/class-settings.php:346
1294
  msgid "Validation Messages"
1295
  msgstr "Validierungsnachricht "
1296
 
1297
- #: includes/admin/class-settings.php:346
1298
  msgid ""
1299
  "These messages are displayed to the user as they fill out a form in real-"
1300
  "time."
1301
  msgstr ""
1302
 
1303
- #: includes/admin/class-settings.php:353 includes/fields/class-base.php:337
1304
  msgid "Required"
1305
  msgstr "Pflichtfeld"
1306
 
1307
- #: includes/admin/class-settings.php:355 includes/class-frontend.php:1005
1308
  #: includes/fields/class-base.php:901 includes/fields/class-name.php:485
1309
  #: includes/fields/class-number.php:152
1310
  #: pro/includes/fields/class-address.php:767
@@ -1318,48 +1368,48 @@ msgstr "Pflichtfeld"
1318
  msgid "This field is required."
1319
  msgstr "Dies ist ein Pflichtfeld."
1320
 
1321
- #: includes/admin/class-settings.php:359
1322
  msgid "Website URL"
1323
  msgstr "Website URL"
1324
 
1325
- #: includes/admin/class-settings.php:361 includes/class-frontend.php:1006
1326
  #: pro/includes/fields/class-url.php:159
1327
  msgid "Please enter a valid URL."
1328
  msgstr "Bitte eine gültige URL eingeben."
1329
 
1330
- #: includes/admin/class-settings.php:367 includes/class-frontend.php:1007
1331
  msgid "Please enter a valid email address."
1332
  msgstr "Bitte eine gültige E-Mail-Adresse eingeben."
1333
 
1334
- #: includes/admin/class-settings.php:371
1335
  msgid "Number"
1336
  msgstr "Zahl"
1337
 
1338
- #: includes/admin/class-settings.php:373 includes/class-frontend.php:1008
1339
  #: includes/fields/class-number.php:157
1340
  msgid "Please enter a valid number."
1341
  msgstr "Bitte eine gültige Nummer eingeben."
1342
 
1343
- #: includes/admin/class-settings.php:377
1344
  msgid "Confirm Value"
1345
  msgstr "Bestätigungswert"
1346
 
1347
- #: includes/admin/class-settings.php:379 includes/class-frontend.php:1009
1348
  #: pro/includes/fields/class-password.php:394
1349
  msgid "Field values do not match."
1350
  msgstr "Die Felder stimmen nicht überein."
1351
 
1352
- #: includes/admin/class-settings.php:386 includes/admin/class-settings.php:393
1353
  msgid ""
1354
  "Manage integrations with popular providers such as Constant Contact, "
1355
  "MailChimp, Zapier, and more."
1356
  msgstr ""
1357
 
1358
- #: includes/admin/class-settings.php:495
1359
  msgid "Want to better protect your contact forms from spam?"
1360
  msgstr ""
1361
 
1362
- #: includes/admin/class-settings.php:497
1363
  msgid ""
1364
  "WPForms custom captcha addon allows you to add custom questions captcha or "
1365
  "math questions captcha to your WordPress forms. Since we know spam is a huge "
@@ -1367,75 +1417,223 @@ msgid ""
1367
  "your forms."
1368
  msgstr ""
1369
 
1370
- #: includes/admin/class-settings.php:499
1371
  msgid "Click here to Upgrade"
1372
  msgstr ""
1373
 
1374
- #: includes/admin/class-tools.php:89
1375
- msgid "Import/Export"
1376
- msgstr "Import/Export"
 
 
 
 
 
1377
 
1378
  #: includes/admin/class-tools.php:90
1379
  msgid "System Info"
1380
  msgstr "Systeminformation"
1381
 
1382
- #: includes/admin/class-tools.php:99
1383
  msgid ""
1384
  "Import was successfully finished. You can go and <a href=\"%s\">check your "
1385
  "forms</a>."
1386
  msgstr ""
1387
 
1388
- #: includes/admin/class-tools.php:130
1389
- msgid "Form Import"
 
 
1390
  msgstr "Formular-Import"
1391
 
1392
- #: includes/admin/class-tools.php:131
1393
- msgid "Select an export file."
 
 
1394
  msgstr "Eine Exportdatei auswählen."
1395
 
1396
- #: includes/admin/class-tools.php:136
1397
  #, fuzzy
1398
  #| msgid "No field type found"
1399
  msgid "No file chosen"
1400
  msgstr "Kein Formulartyp gefunden"
1401
 
1402
- #: includes/admin/class-tools.php:138
1403
  msgid "Choose a file&hellip;"
1404
  msgstr ""
1405
 
1406
- #: includes/admin/class-tools.php:144
1407
- msgid "Import"
1408
- msgstr "Import"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1409
 
1410
- #: includes/admin/class-tools.php:150
1411
  msgid "Form Export"
1412
  msgstr "Formular-Export"
1413
 
1414
- #: includes/admin/class-tools.php:151
1415
  msgid ""
1416
  "Form exports files can be used to create a backup of your forms or to import "
1417
  "forms into another site."
1418
  msgstr ""
1419
 
1420
- #: includes/admin/class-tools.php:156
1421
  #, fuzzy
1422
  #| msgid "Select Groups"
1423
  msgid "Select form(s)"
1424
  msgstr "Gruppen auswählen"
1425
 
1426
- #: includes/admin/class-tools.php:163
1427
  msgid "You need to create a form before you can use form export."
1428
  msgstr ""
1429
 
1430
- #: includes/admin/class-tools.php:169
1431
- msgid "Export"
1432
- msgstr "Export"
1433
-
1434
- #: includes/admin/class-tools.php:174
1435
  msgid "Form Template Export"
1436
  msgstr "Formular-Template Export"
1437
 
1438
- #: includes/admin/class-tools.php:177
1439
  msgid ""
1440
  "The following code can be used to register your custom form template. Copy "
1441
  "and paste the following code to your theme's functions.php file or include "
@@ -1445,7 +1643,7 @@ msgstr ""
1445
  "Formular-Template zu registrieren. Kopieren Sie diesen Code in die functions."
1446
  "php Ihres Themes oder in eine externe Datei."
1447
 
1448
- #: includes/admin/class-tools.php:178
1449
  #, fuzzy
1450
  #| msgid ""
1451
  #| "For more information <a href=\"%s\" target=\"blank\" rel=\"noopener "
@@ -1457,7 +1655,7 @@ msgstr ""
1457
  "Für nähere Informationen besuchen Sie unsere <a href=\"%s\" target=\"blank\" "
1458
  "rel=\"noopener noreferrer\">Online-Dokumentation</a>."
1459
 
1460
- #: includes/admin/class-tools.php:182
1461
  msgid ""
1462
  "Select a form to generate PHP code that can be used to register a custom "
1463
  "form template."
@@ -1466,32 +1664,32 @@ msgstr ""
1466
  "werden kann, um ein maßgeschneidertes (custom) Formular-Template zu "
1467
  "erstellen."
1468
 
1469
- #: includes/admin/class-tools.php:194
1470
  msgid "You need to create a form before you can generate a template."
1471
  msgstr ""
1472
 
1473
- #: includes/admin/class-tools.php:200
1474
  #, fuzzy
1475
  #| msgid "template"
1476
  msgid "Export Template"
1477
  msgstr "Template"
1478
 
1479
- #: includes/admin/class-tools.php:215
1480
  #, fuzzy
1481
  #| msgid "System Info"
1482
  msgid "System Information"
1483
  msgstr "Systeminformation"
1484
 
1485
- #: includes/admin/class-tools.php:277
1486
  msgid "Please upload a valid .json form export file."
1487
  msgstr "Bitte verwenden Sie ein vailde .json Formular-Export Datei"
1488
 
1489
- #: includes/admin/class-tools.php:278
1490
  #: pro/includes/admin/entries/class-entries-export.php:342
1491
  msgid "Error"
1492
  msgstr "Fehler"
1493
 
1494
- #: includes/admin/class-tools.php:402 includes/admin/class-tools.php:406
1495
  #: pro/includes/admin/entries/class-entries-single.php:733
1496
  #: pro/includes/admin/entries/class-entries-single.php:1087
1497
  msgid "M j, Y @ g:ia"
@@ -1666,7 +1864,7 @@ msgstr ""
1666
  msgid "See All Features"
1667
  msgstr "Alle Features betrachten"
1668
 
1669
- #: includes/admin/class-welcome.php:226 lite/wpforms-lite.php:442
1670
  msgid "Upgrade to PRO"
1671
  msgstr "Auf PRO upgraden"
1672
 
@@ -1725,10 +1923,6 @@ msgstr ""
1725
  msgid "per year"
1726
  msgstr ""
1727
 
1728
- #: includes/admin/class-welcome.php:247 pro/includes/admin/class-addons.php:249
1729
- msgid "Upgrade Now"
1730
- msgstr "Jetzt upgraden"
1731
-
1732
  #: includes/admin/class-welcome.php:258
1733
  msgid "Testimonials"
1734
  msgstr ""
@@ -1749,11 +1943,73 @@ msgid ""
1749
  "investment."
1750
  msgstr ""
1751
 
1752
- #: includes/admin/class-welcome.php:285
 
 
 
 
 
1753
  #, fuzzy
1754
- #| msgid "Upgrade to PRO"
1755
- msgid "Upgrade to WPForms Pro"
1756
- msgstr "Auf PRO upgraden"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1757
 
1758
  #: includes/admin/overview/class-overview-table.php:53
1759
  #: includes/fields/class-name.php:21 includes/fields/class-name.php:276
@@ -1779,10 +2035,6 @@ msgstr "Erstellt"
1779
  msgid "Edit this form"
1780
  msgstr "Formular bearbeiten"
1781
 
1782
- #: includes/admin/overview/class-overview-table.php:160
1783
- msgid "Edit"
1784
- msgstr "Bearbeiten"
1785
-
1786
  #: includes/admin/overview/class-overview-table.php:173
1787
  msgid "View entries"
1788
  msgstr "Einträge aufrufen"
@@ -1868,7 +2120,8 @@ msgstr ""
1868
  #| "noreferrer\">power of email marketing</a>"
1869
  msgid ""
1870
  "To unlock more features consider <a href=\"%s\" target=\"_blank\" rel="
1871
- "\"noopener noreferrer\">upgrading to Pro</a>.</p>"
 
1872
  msgstr "Erfahren Sie mehr über die Möglichkeiten von E-Mail-Marketing."
1873
 
1874
  #: includes/admin/settings-api.php:106
@@ -1934,30 +2187,30 @@ msgstr "Neue Regelgruppe"
1934
  #: includes/class-frontend.php:1010
1935
  #: pro/includes/fields/class-file-upload.php:367
1936
  #: pro/includes/fields/class-file-upload.php:383
1937
- #: pro/includes/fields/class-file-upload.php:400 pro/wpforms-pro.php:187
1938
  msgid "File type is not allowed."
1939
  msgstr "Dateiart ist nicht erlaubt."
1940
 
1941
- #: includes/class-frontend.php:1011 pro/wpforms-pro.php:193
1942
  msgid "File exceeds max size allowed."
1943
  msgstr "Dateigröße überschreitet erlaubtes Maximum."
1944
 
1945
- #: includes/class-frontend.php:1012 pro/wpforms-pro.php:199
1946
  msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
1947
  msgstr ""
1948
  "Bitte geben Sie die Zeit im 12-Stunden Format AP/PM ein (z.B. 8:45 AM)."
1949
 
1950
- #: includes/class-frontend.php:1013 pro/wpforms-pro.php:205
1951
  msgid "Please enter time in 24-hour format (eg 22:45)."
1952
  msgstr ""
1953
  "Bitte geben Sie die Zeit im 24-Stunden Format AP/PM ein (z.B. 22:45 AM)."
1954
 
1955
  #: includes/class-frontend.php:1014
1956
- #: pro/includes/fields/class-payment-total.php:199 pro/wpforms-pro.php:211
1957
  msgid "Payment is required."
1958
  msgstr "Zahlung ist erforderlich."
1959
 
1960
- #: includes/class-frontend.php:1015 pro/wpforms-pro.php:217
1961
  msgid "Please enter a valid credit card number."
1962
  msgstr "Bitte eine gültige Kreditkartennummer eingeben."
1963
 
@@ -2062,6 +2315,10 @@ msgstr ""
2062
  msgid "WPForms Preview"
2063
  msgstr "WPForms Vorschau"
2064
 
 
 
 
 
2065
  #: includes/class-preview.php:375
2066
  msgid "This is a preview of your form. This page is not publicly accessible."
2067
  msgstr ""
@@ -2100,42 +2357,42 @@ msgstr ""
2100
  msgid "WPForms honeypot field triggered."
2101
  msgstr "WPForms honeypot wurde ausgelöst."
2102
 
2103
- #: includes/class-process.php:370 pro/wpforms-pro.php:380
2104
  #, fuzzy
2105
  #| msgid "New %s Entry"
2106
  msgctxt "Form name"
2107
  msgid "New %s Entry"
2108
  msgstr "Neue %s Einträge"
2109
 
2110
- #: includes/class-smart-tags.php:34
2111
  #, fuzzy
2112
  #| msgid "Site Administer Email"
2113
  msgid "Site Administrator Email"
2114
  msgstr "E-Mail-Adresse des Website-Administrators"
2115
 
2116
- #: includes/class-smart-tags.php:35
2117
  msgid "Entry ID"
2118
  msgstr "Eintrag-ID"
2119
 
2120
- #: includes/class-smart-tags.php:36
2121
  msgid "Form ID"
2122
  msgstr "Formular-ID"
2123
 
2124
- #: includes/class-smart-tags.php:38
2125
  msgid "Embedded Post/Page Title"
2126
  msgstr "Eingebetteter Beitrags-/Seitentitel"
2127
 
2128
- #: includes/class-smart-tags.php:39
2129
  #, fuzzy
2130
  #| msgid "Embeded Post Page URL"
2131
  msgid "Embedded Post Page URL"
2132
  msgstr "Eingebettete Beitrags-/Seiten-URL"
2133
 
2134
- #: includes/class-smart-tags.php:40
2135
  msgid "Embedded Post/Page ID"
2136
  msgstr "Eingebettete Beitrags-/Seiten-ID"
2137
 
2138
- #: includes/class-smart-tags.php:41
2139
  #: pro/includes/admin/entries/class-entries-export.php:203
2140
  #: pro/includes/admin/entries/class-entries-list-table.php:165
2141
  #: pro/includes/fields/class-date-time.php:73
@@ -2146,57 +2403,57 @@ msgstr "Eingebettete Beitrags-/Seiten-ID"
2146
  msgid "Date"
2147
  msgstr "Datum"
2148
 
2149
- #: includes/class-smart-tags.php:42
2150
  msgid "Query String Variable"
2151
  msgstr "Query Zeichenkette Variable"
2152
 
2153
- #: includes/class-smart-tags.php:43
2154
  msgid "User IP Address"
2155
  msgstr "Benutzer IP-Adresse"
2156
 
2157
- #: includes/class-smart-tags.php:44
2158
  msgid "User ID"
2159
  msgstr "Benutzer-ID"
2160
 
2161
- #: includes/class-smart-tags.php:45
2162
  msgid "User Name"
2163
  msgstr "Benutzername"
2164
 
2165
- #: includes/class-smart-tags.php:46
2166
  msgid "User Email"
2167
  msgstr "Benutzer E-Mail-Adresse"
2168
 
2169
- #: includes/class-smart-tags.php:47
2170
  msgid "Author ID"
2171
  msgstr "Autor-ID"
2172
 
2173
- #: includes/class-smart-tags.php:48
2174
  msgid "Author Name"
2175
  msgstr "Autorenname"
2176
 
2177
- #: includes/class-smart-tags.php:49
2178
  msgid "Author Email"
2179
  msgstr "Autor E-Mail-Adresse"
2180
 
2181
- #: includes/class-smart-tags.php:50
2182
  #, fuzzy
2183
  #| msgid "Referer URL"
2184
  msgid "Referrer URL"
2185
  msgstr "Referer URL"
2186
 
2187
- #: includes/class-smart-tags.php:51
2188
  msgid "Login URL"
2189
  msgstr "Login URL"
2190
 
2191
- #: includes/class-smart-tags.php:52
2192
  msgid "Logout URL"
2193
  msgstr "Logout URL"
2194
 
2195
- #: includes/class-smart-tags.php:53
2196
  msgid "Register URL"
2197
  msgstr "Registrierung URL"
2198
 
2199
- #: includes/class-smart-tags.php:54
2200
  msgid "Lost Password URL"
2201
  msgstr "Passwort vergessen URL"
2202
 
@@ -2257,16 +2514,20 @@ msgid "Display form description"
2257
  msgstr "Formularbeschreibung anzeigen"
2258
 
2259
  #: includes/emails/class-emails.php:331
 
 
 
 
2260
  msgid ""
2261
  "You cannot send emails with WPForms_WP_Emails until init/admin_init has been "
2262
- "reached"
2263
  msgstr ""
2264
  "Sie können keine E-Mails mit <strong>WPForms_WP_Emails</strong> versenden "
2265
  "bis <strong>init/admin_init</strong> erreicht wurde"
2266
 
2267
  #: includes/emails/class-emails.php:472 includes/emails/class-emails.php:495
2268
- #: includes/fields/class-checkbox.php:193 includes/fields/class-radio.php:193
2269
- #: includes/fields/class-select.php:199
2270
  msgid "(empty)"
2271
  msgstr "(leer)"
2272
 
@@ -2274,7 +2535,7 @@ msgstr "(leer)"
2274
  msgid "Field ID #"
2275
  msgstr "Feld-ID"
2276
 
2277
- #: includes/emails/class-emails.php:505
2278
  msgid "An empty form was submitted."
2279
  msgstr ""
2280
 
@@ -2488,17 +2749,17 @@ msgstr "Zweite Wahl"
2488
  msgid "Third Choice"
2489
  msgstr "Dritte Wahl"
2490
 
2491
- #: includes/fields/class-checkbox.php:89 includes/fields/class-radio.php:89
2492
- #: includes/fields/class-select.php:89
2493
- msgid "Check this to manually set form field values."
2494
- msgstr "Markieren, um die Werte der Felder manuell festzulegen."
2495
-
2496
  #: includes/fields/class-checkbox.php:97 includes/fields/class-radio.php:97
2497
  #: includes/fields/class-select.php:97
2498
  msgid "Show Values"
2499
  msgstr "Werte (Values) anzeigen"
2500
 
2501
- #: includes/fields/class-checkbox.php:211 includes/fields/class-radio.php:211
 
 
 
 
 
2502
  msgid ""
2503
  "Showing the first 20 choices.<br> All %d choices will be displayed when "
2504
  "viewing the form."
@@ -2629,32 +2890,1364 @@ msgstr "Einzeiliger Text"
2629
  msgid "Paragraph Text"
2630
  msgstr "Absatz"
2631
 
2632
- #: includes/integrations.php:32
2633
- msgid "Select a form to display"
2634
- msgstr "Ein Formular auswählen, das angezeigt werden soll."
2635
 
2636
- #: includes/integrations.php:39
2637
- msgid "No forms found"
2638
- msgstr "Keine Formulare vorhanden"
2639
 
2640
- #: includes/integrations.php:48
2641
- msgid "Content"
2642
- msgstr "Inhalt"
2643
 
2644
- #: includes/integrations.php:49
2645
- msgid "Add your form"
2646
- msgstr "Ihr Formular hinzufügen"
2647
 
2648
- #: includes/integrations.php:53
2649
- msgid "Form"
2650
- msgstr "Formular"
2651
 
2652
- #: includes/integrations.php:57
2653
- msgid "Select a form to add it to your post or page."
2654
  msgstr ""
2655
- "Wählen Sie ein Formular, um es Ihrem Beitrag oder Ihrer Seite hinzuzufügen."
2656
 
2657
- #: includes/integrations.php:62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2658
  #, fuzzy
2659
  #| msgid "Display Form Title"
2660
  msgid "Display Form Name"
@@ -2686,8 +4279,8 @@ msgstr "Möchten Sie die Beschreibung des Formulars anzeigen?"
2686
  msgid "Connection"
2687
  msgstr "Verbindung"
2688
 
2689
- #: includes/providers/class-base.php:163 includes/providers/class-base.php:1116
2690
- #: includes/providers/class-base.php:1164
2691
  msgid "You do not have permission"
2692
  msgstr "Sie haben keine Zugriffsrechte"
2693
 
@@ -2719,24 +4312,24 @@ msgctxt "Name field label"
2719
  msgid "%s (Last)"
2720
  msgstr "Vor- Zu-"
2721
 
2722
- #: includes/providers/class-base.php:702
2723
  msgid "Select Account"
2724
  msgstr "Konto auswählen"
2725
 
2726
- #: includes/providers/class-base.php:714
2727
  #: includes/providers/class-constant-contact.php:490
2728
  msgid "Add New Account"
2729
  msgstr "Neues Konto hinzufügen"
2730
 
2731
- #: includes/providers/class-base.php:747
2732
  msgid "Select List"
2733
  msgstr "Liste/Verteiler auswählen"
2734
 
2735
- #: includes/providers/class-base.php:793
2736
  msgid "Select Groups"
2737
  msgstr "Gruppen auswählen"
2738
 
2739
- #: includes/providers/class-base.php:795
2740
  msgid ""
2741
  "We also noticed that you have some segments in your list. You can select "
2742
  "specific list segments below if needed. This is optional."
@@ -2745,89 +4338,89 @@ msgstr ""
2745
  "können spezifische Segmente unterhalb auswählen, wenn nötig. Das ist "
2746
  "optional."
2747
 
2748
- #: includes/providers/class-base.php:855 includes/providers/class-base.php:860
2749
  msgid "List Fields"
2750
  msgstr "Feldlisten"
2751
 
2752
- #: includes/providers/class-base.php:860
2753
  msgid "Available Form Fields"
2754
  msgstr "Verfügbare Formularfelder"
2755
 
2756
- #: includes/providers/class-base.php:934
2757
  msgid "Process"
2758
  msgstr "Verarbeiten"
2759
 
2760
- #: includes/providers/class-base.php:935
2761
  msgid "Don't process"
2762
  msgstr "Nicht verarbeiten"
2763
 
2764
- #: includes/providers/class-base.php:937
2765
  msgid "this connection if"
2766
  msgstr "die Schnittstelle ist"
2767
 
2768
- #: includes/providers/class-base.php:938
2769
  msgid "Marketing provider connection"
2770
  msgstr "Marketing-Provider Schnittstelle"
2771
 
2772
- #: includes/providers/class-base.php:1052
2773
  #, fuzzy
2774
  #| msgid "Add New"
2775
  msgctxt "Provider Type"
2776
  msgid "Add New %s"
2777
  msgstr "Neues erstellen"
2778
 
2779
- #: includes/providers/class-base.php:1124
2780
- #: includes/providers/class-base.php:1172
2781
  msgid "Missing data"
2782
  msgstr "Fehlende Daten"
2783
 
2784
- #: includes/providers/class-base.php:1140
2785
  msgid "Connection missing"
2786
  msgstr "Schnittstelle fehlt"
2787
 
2788
- #: includes/providers/class-base.php:1184
2789
  msgid "Could not connect to the provider."
2790
  msgstr ""
2791
 
2792
- #: includes/providers/class-base.php:1193
2793
- #: includes/providers/class-base.php:1266
2794
  #, fuzzy
2795
  #| msgid "Connected on: "
2796
  msgctxt "Connection date"
2797
  msgid "Connected on: %s"
2798
  msgstr "Verbunden am:"
2799
 
2800
- #: includes/providers/class-base.php:1194
2801
- #: includes/providers/class-base.php:1267
2802
  #, fuzzy
2803
  #| msgid "Disconnect "
2804
  msgid "Disconnect"
2805
  msgstr "Verbindung getrennt"
2806
 
2807
  #. translators: %s - provider name.
2808
- #: includes/providers/class-base.php:1222
2809
  #, fuzzy
2810
  #| msgid "Connect to"
2811
  msgid "Connect to %s"
2812
  msgstr "Verbunden mit"
2813
 
2814
  #. translators: %s - provider name.
2815
- #: includes/providers/class-base.php:1249
2816
  msgid "Integrate %s with WPForms"
2817
  msgstr "Integriert <strong>%s</strong> in WPForms"
2818
 
2819
- #: includes/providers/class-base.php:1252
2820
  msgid "Connected"
2821
  msgstr "Verbunden"
2822
 
2823
- #: includes/providers/class-base.php:1277
2824
  #, fuzzy
2825
  #| msgid "Add New Account"
2826
  msgctxt "New Provider Account"
2827
  msgid "Add New Account"
2828
  msgstr "Neues Konto hinzufügen"
2829
 
2830
- #: includes/providers/class-base.php:1284
2831
  msgid ""
2832
  "Please fill out all of the fields below to add your new provider account."
2833
  msgstr ""
@@ -3147,9 +4740,9 @@ msgstr ""
3147
  "Drag&Drop-Generator zu erstellen."
3148
 
3149
  #: includes/templates/class-blank.php:34
3150
- #: includes/templates/class-contact.php:65
3151
  #: includes/templates/class-subscribe.php:52
3152
- #: includes/templates/class-suggestion.php:90
3153
  #: pro/includes/templates/class-donation.php:66
3154
  #: pro/includes/templates/class-order.php:100
3155
  #: pro/includes/templates/class-request-quote.php:70
@@ -3241,11 +4834,11 @@ msgstr "Betreff"
3241
  msgid "New %s Entry"
3242
  msgstr "Neue %s Einträge"
3243
 
3244
- #: lite/wpforms-lite.php:92 pro/wpforms-pro.php:445
3245
  msgid "Send To Email Address"
3246
  msgstr "Sende an E-Mail-Adresse"
3247
 
3248
- #: lite/wpforms-lite.php:95 pro/wpforms-pro.php:448
3249
  msgid ""
3250
  "Enter the email address to receive form entry notifications. For multiple "
3251
  "notifications, separate email addresses with a comma."
@@ -3254,43 +4847,43 @@ msgstr ""
3254
  "Einträge gesendet werden sollen. Sie können auch mehrere E-Mail-Adressen mit "
3255
  "einem Komma getrennt eingeben."
3256
 
3257
- #: lite/wpforms-lite.php:111 pro/wpforms-pro.php:464
3258
  msgid "CC"
3259
  msgstr "CC"
3260
 
3261
- #: lite/wpforms-lite.php:127 pro/wpforms-pro.php:480
3262
  msgid "Email Subject"
3263
  msgstr "Betreff (E-Mail)"
3264
 
3265
- #: lite/wpforms-lite.php:129 pro/wpforms-pro.php:482
3266
  #, fuzzy
3267
  #| msgid "New Entry: "
3268
  msgctxt "Form name"
3269
  msgid "New Entry: %s"
3270
  msgstr "Neuer Eintrag:"
3271
 
3272
- #: lite/wpforms-lite.php:142 pro/wpforms-pro.php:495
3273
  msgid "From Name"
3274
  msgstr "(From) Name"
3275
 
3276
- #: lite/wpforms-lite.php:158 pro/wpforms-pro.php:511
3277
  msgid "From Email"
3278
  msgstr "(From) E-Mail-Adresse"
3279
 
3280
- #: lite/wpforms-lite.php:174 pro/wpforms-pro.php:527
3281
  msgid "Reply-To"
3282
  msgstr "Reply-To"
3283
 
3284
- #: lite/wpforms-lite.php:199 pro/wpforms-pro.php:552
3285
  msgid ""
3286
  "To display all form fields, use the <code>{all_fields}</code> Smart Tag."
3287
  msgstr "Verwenden Sie den {all_fields} Smart Tag, um alle Felder anzuzeigen."
3288
 
3289
- #: lite/wpforms-lite.php:253 pro/includes/templates/class-request-quote.php:20
3290
  msgid "Request A Quote Form"
3291
  msgstr "Erstellen Sie ein Anfrageformular"
3292
 
3293
- #: lite/wpforms-lite.php:255 pro/includes/templates/class-request-quote.php:22
3294
  msgid ""
3295
  "Start collecting leads with this pre-made Request a quote form. You can add "
3296
  "and remove fields as needed."
@@ -3298,21 +4891,21 @@ msgstr ""
3298
  "Sammeln Sie Leads mit diesem vorgefertigten Anfrageformular. Sie können "
3299
  "Felder hinzufügen oder löschen."
3300
 
3301
- #: lite/wpforms-lite.php:258 pro/includes/templates/class-donation.php:20
3302
  msgid "Donation Form"
3303
  msgstr "Spendenformular"
3304
 
3305
- #: lite/wpforms-lite.php:260 pro/includes/templates/class-donation.php:22
3306
  msgid ""
3307
  "Start collecting donation payments on your website with this ready-made "
3308
  "Donation form. You can add and remove fields as needed."
3309
  msgstr "Sammeln Sie Spenden mit diesem vorgefertigten Spendenformular."
3310
 
3311
- #: lite/wpforms-lite.php:263 pro/includes/templates/class-order.php:20
3312
  msgid "Billing / Order Form"
3313
  msgstr "Bestellformular"
3314
 
3315
- #: lite/wpforms-lite.php:265
3316
  #, fuzzy
3317
  #| msgid ""
3318
  #| "Collect Payments for product and service orders with this ready-made form "
@@ -3324,36 +4917,36 @@ msgstr ""
3324
  "Nehmen Sie Zahlungen an für Produkte oder Dienstleistungen mit diesem "
3325
  "vorgefertigten Formular-Template. Sie können Felder hinzufügen oder löschen."
3326
 
3327
- #: lite/wpforms-lite.php:270
3328
  #, fuzzy
3329
  #| msgid "Unlock More Features..."
3330
  msgid "Unlock Pre-Made Form Templates"
3331
  msgstr "Mehr Features freischalten ..."
3332
 
3333
- #: lite/wpforms-lite.php:270
3334
  #, fuzzy
3335
  #| msgid "Upgrade Now"
3336
  msgid "Upgrade"
3337
  msgstr "Jetzt upgraden"
3338
 
3339
- #: lite/wpforms-lite.php:273
3340
  msgid ""
3341
  "While WPForms Lite allows you to create any type of form, you can speed up "
3342
  "the process by unlocking our other pre-built form templates among other "
3343
  "features, so you never have to start from scratch again..."
3344
  msgstr ""
3345
 
3346
- #: lite/wpforms-lite.php:416
3347
  #: pro/includes/admin/builder/panels/class-payments.php:21
3348
- #: pro/wpforms-pro.php:152 pro/wpforms-pro.php:223
3349
  msgid "Payments"
3350
  msgstr "Zahlungen"
3351
 
3352
- #: lite/wpforms-lite.php:440
3353
  msgid "is a PRO Feature"
3354
  msgstr "ist ein PRO-Feature"
3355
 
3356
- #: lite/wpforms-lite.php:441
3357
  msgid ""
3358
  "We're sorry, %name% is not available on your plan.<br><br>Please upgrade to "
3359
  "the PRO plan to unlock all these awesome features."
@@ -3397,8 +4990,8 @@ msgstr ""
3397
  msgid "Addon installed."
3398
  msgstr "Add-on installiert."
3399
 
3400
- #: pro/includes/admin/ajax-actions.php:225
3401
- #: pro/includes/admin/ajax-actions.php:270
3402
  #, fuzzy
3403
  #| msgid "Please enter a license key to verify."
3404
  msgid "Please enter a license key."
@@ -3508,12 +5101,6 @@ msgstr ""
3508
  "Möchten Sie noch mehr Features? Holen Sie sich das Upgrade für Ihr WPForms "
3509
  "Konto und schalten Sie folgende Erweiterungen frei."
3510
 
3511
- #: pro/includes/admin/class-addons.php:201
3512
- #, fuzzy
3513
- #| msgid "Addon installed."
3514
- msgid "Not Installed"
3515
- msgstr "Add-on installiert."
3516
-
3517
  #: pro/includes/admin/class-addons.php:225
3518
  #: pro/includes/admin/entries/class-entries-list-table.php:162
3519
  msgid "Status"
@@ -3591,6 +5178,55 @@ msgstr ""
3591
  "\"%s\" target=\"_blank\" rel=\"noopener\">hier</a>, um Ihre Lizenz zu "
3592
  "erneuern und weiterhin automatisch Updates zu beziehen."
3593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3594
  #: pro/includes/admin/entries/class-entries-export.php:204
3595
  msgid "Date GMT"
3596
  msgstr "Datum GMT"
@@ -3778,25 +5414,25 @@ msgstr ""
3778
  msgid "Select Form"
3779
  msgstr "Formular speichern"
3780
 
3781
- #: pro/includes/admin/entries/class-entries-list.php:498
3782
  #, fuzzy
3783
  #| msgid "Current form entry"
3784
  msgid "Open form selector"
3785
  msgstr "Aktuelle Formulareintragung"
3786
 
3787
- #: pro/includes/admin/entries/class-entries-list.php:523
3788
  msgid "Edit This Form"
3789
  msgstr "Formular bearbeiten"
3790
 
3791
- #: pro/includes/admin/entries/class-entries-list.php:533
3792
  msgid "Download Export (CSV)"
3793
  msgstr "Export herunterladen (CSV)"
3794
 
3795
- #: pro/includes/admin/entries/class-entries-list.php:538
3796
  msgid "Mark All Read"
3797
  msgstr "Alle als gelesen markieren"
3798
 
3799
- #: pro/includes/admin/entries/class-entries-list.php:543
3800
  #, fuzzy
3801
  #| msgid "Delete rule"
3802
  msgid "Delete All"
@@ -4367,7 +6003,7 @@ msgstr ""
4367
  "Markieren Sie diese Option, um den Besucher aufzufordern, seine E-Mail-"
4368
  "Adresse zweimal einzugeben."
4369
 
4370
- #: pro/includes/fields/class-payment-credit-card.php:21 pro/wpforms-pro.php:215
4371
  msgid "Credit Card"
4372
  msgstr "Kreditkarte "
4373
 
@@ -4633,56 +6269,56 @@ msgstr "Firma / Organisation "
4633
  msgid "Request"
4634
  msgstr "Anfrage"
4635
 
4636
- #: pro/wpforms-pro.php:185
4637
  msgid "File Extension"
4638
  msgstr "Dateierweiterung"
4639
 
4640
- #: pro/wpforms-pro.php:191
4641
  msgid "File Size"
4642
  msgstr "Dateigröße"
4643
 
4644
- #: pro/wpforms-pro.php:197
4645
  msgid "Time (12 hour)"
4646
  msgstr "Uhrzeit (12h)"
4647
 
4648
- #: pro/wpforms-pro.php:203
4649
  msgid "Time (24 hour)"
4650
  msgstr "Uhrzeit (24h)"
4651
 
4652
- #: pro/wpforms-pro.php:209
4653
  msgid "Payment Required"
4654
  msgstr "Zahlung erforderlich"
4655
 
4656
- #: pro/wpforms-pro.php:230
4657
  msgid "Currency"
4658
  msgstr "Währung"
4659
 
4660
- #: pro/wpforms-pro.php:307
4661
  msgid "Disable storing entry information in WordPress"
4662
  msgstr "Deaktiviere das Speichern von Einträgen in WordPress"
4663
 
4664
- #: pro/wpforms-pro.php:388
4665
  msgid "Add New Notification"
4666
  msgstr "Neue Benachrichtigung hinzufügen"
4667
 
4668
- #: pro/wpforms-pro.php:565
4669
  msgid "Send"
4670
  msgstr "Sende"
4671
 
4672
- #: pro/wpforms-pro.php:566
4673
  msgid "Don't send"
4674
  msgstr "Nicht senden"
4675
 
4676
- #: pro/wpforms-pro.php:568
4677
  msgid "this notification if"
4678
  msgstr "diese Benachrichtung ist"
4679
 
4680
- #: pro/wpforms-pro.php:569
4681
  msgid "Email notifications"
4682
  msgstr "E-Mail-Benachrichtigungen"
4683
 
4684
  #. translators: %s - Addons page URL in site admin area.
4685
- #: pro/wpforms-pro.php:573
4686
  #, fuzzy
4687
  #| msgid ""
4688
  #| "Install the <a href=\"%s\">Conditional Logic add-on</a> to enable "
@@ -4695,7 +6331,7 @@ msgstr ""
4695
  "Bedingungslogik für E-Mail-Benachrichtigungen zu aktivieren."
4696
 
4697
  #. translators: %s - URL to an announcement page.
4698
- #: pro/wpforms-pro.php:624
4699
  #, fuzzy
4700
  #| msgid ""
4701
  #| "Conditional logic functionality is now included in the core WPForms "
@@ -4733,6 +6369,14 @@ msgstr ""
4733
  "Einsteigerfreundliches Formular-Plugin für WordPress. Verwenden Sie den "
4734
  "Drag&Drop Builder um Ihr WordPress-Formulare zu erstellen."
4735
 
 
 
 
 
 
 
 
 
4736
  #~ msgid ""
4737
  #~ "You do not have any marketing add-ons activated. You can head over to the "
4738
  #~ "<a href=\"%s\">Add-Ons page</a> to install and activate the add-on for "
@@ -4798,9 +6442,6 @@ msgstr ""
4798
  #~ msgid "E-mail"
4799
  #~ msgstr "E-Mail"
4800
 
4801
- #~ msgid "Settings check failed."
4802
- #~ msgstr "Prüfung der Einstellungen fehlgeschlagen."
4803
-
4804
  #~ msgid "General settings updated."
4805
  #~ msgstr "Allgemeine Einstellungen aktualisiert"
4806
 
2
  msgstr ""
3
  "Project-Id-Version: WPForms 1.3.8\n"
4
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
5
+ "POT-Creation-Date: 2017-12-04 16:24:56+00:00\n"
6
+ "PO-Revision-Date: 2017-12-28 11:51+0200\n"
7
  "Last-Translator: rs-nldx <rs@nldx.com>\n"
8
  "Language-Team: German\n"
9
  "Language: de_DE\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
+ "X-Generator: Poedit 2.0.5\n"
15
 
16
+ #: includes/admin/admin.php:128 includes/admin/admin.php:156
17
+ #: pro/includes/admin/class-addons.php:241
18
  msgid "Activate"
19
  msgstr "Aktivieren "
20
 
117
  msgid "Heads up!"
118
  msgstr "Kopf hoch!"
119
 
120
+ #: includes/admin/admin.php:150
121
+ msgid "Please select at least one form to import."
122
+ msgstr ""
123
+
124
+ #: includes/admin/admin.php:153 includes/admin/builder/class-builder.php:288
125
  msgid "OK"
126
  msgstr "OK"
127
 
128
+ #: includes/admin/admin.php:154
129
+ msgid "Install and Activate"
130
+ msgstr ""
131
+
132
+ #: includes/admin/admin.php:155
133
+ msgid ""
134
+ "needs to be installed and activated to import its forms. Would you like us "
135
+ "to install and activate it for you?"
136
+ msgstr ""
137
+
138
+ #: includes/admin/admin.php:157
139
+ msgid ""
140
+ "needs to be activated to import its forms. Would you like us to activate it "
141
+ "for you?."
142
+ msgstr ""
143
+
144
+ #: includes/admin/admin.php:158
145
  msgid "Are you sure you want to disconnect this account?"
146
  msgstr ""
147
  "Sind Sie sicher, dass Sie die Verbindung zu diesem Konto trennen möchten?"
148
 
149
+ #: includes/admin/admin.php:159
150
  msgid "Could not authenticate with the provider."
151
  msgstr ""
152
 
153
+ #: includes/admin/admin.php:160
154
  #, fuzzy
155
  #| msgid "Save and Exit"
156
  msgid "Save and Refresh"
157
  msgstr "Speichern und schließen"
158
 
159
+ #: includes/admin/admin.php:161
160
+ #, fuzzy
161
+ #| msgid "Form successfully deleted."
162
+ #| msgid_plural "Forms successfully deleted"
163
+ msgid "Upgrade was successfully completed!"
164
+ msgstr "Formular erfolgreich gelöscht."
165
+
166
+ #: includes/admin/admin.php:162
167
  msgid "Upload or Choose Your Image"
168
  msgstr "Eigenes Bild verwenden"
169
 
170
+ #: includes/admin/admin.php:163
171
  msgid "Use Image"
172
  msgstr "Bild verwenden"
173
 
174
+ #. translators: %1$s - opening link tag; %2$s - closing link tag; %3$s -
175
+ #. opening link tag; %4$s - closing link tag.
176
+ #: includes/admin/admin.php:167 lite/wpforms-lite.php:415
177
+ msgid ""
178
+ "<p>Thanks for your interest in WPForms Pro!<br>If you have any questions or "
179
+ "issues just %1$slet us know%2$s.</p><p>After purchasing WPForms Pro, you'll "
180
+ "need to <strong>download and install the Pro version of the plugin</strong>, "
181
+ "and then <strong>remove the free plugin</strong>.<br>(Don't worry, all your "
182
+ "forms and settings will be preserved.)</p><p>Check out %3$sour documentation"
183
+ "%4$s for step-by-step instructions.</p>"
184
+ msgstr ""
185
+
186
  #. translators: %1$s - WPForms plugin name; %2$s - opening a link tag; %3$s -
187
  #. closing a link tag.
188
+ #: includes/admin/admin.php:374
189
  msgid ""
190
  "Your site is running an outdated version of PHP that is no longer supported "
191
  "and may cause issues with %1$s. %2$sRead more%3$s for additional information."
353
  "Mitteilungen."
354
 
355
  #: includes/admin/builder/class-builder.php:305 lite/wpforms-lite.php:84
356
+ #: pro/wpforms-pro.php:434
357
  msgid "Default Notification"
358
  msgstr "Standard-Benachrichtigung "
359
 
455
 
456
  #: includes/admin/builder/class-builder.php:333
457
  #: includes/fields/class-base.php:253 includes/fields/class-base.php:599
458
+ #: lite/wpforms-lite.php:76 pro/wpforms-pro.php:427
459
  msgid "Off"
460
  msgstr "Aus"
461
 
462
  #: includes/admin/builder/class-builder.php:334
463
  #: includes/fields/class-base.php:253 lite/wpforms-lite.php:75
464
+ #: pro/wpforms-pro.php:426
465
  msgid "On"
466
  msgstr "An"
467
 
591
  msgstr "Wird bearbeitet"
592
 
593
  #: includes/admin/builder/class-builder.php:469
594
+ #: pro/includes/admin/entries/class-entries-list.php:532
595
  msgid "Preview Form"
596
  msgstr "Vorschau (Formular)"
597
 
598
  #: includes/admin/builder/class-builder.php:471
599
+ #: includes/admin/class-tools.php:445
600
  #: includes/admin/overview/class-overview-table.php:182
601
  msgid "Preview"
602
  msgstr "Vorschau"
637
  "Sie müssen ihr Formular erst einrichten, bevor Sie Felder verwalten können."
638
 
639
  #: includes/admin/builder/panels/class-fields.php:123
640
+ #: includes/admin/builder/panels/class-settings.php:123
641
+ #: includes/admin/importers/class-contact-form-7.php:106
642
+ #: includes/admin/importers/class-ninja-forms.php:123
643
  msgid "Submit"
644
  msgstr "Senden"
645
 
769
  msgstr "Allgemein"
770
 
771
  #: includes/admin/builder/panels/class-settings.php:58 lite/wpforms-lite.php:61
772
+ #: lite/wpforms-lite.php:71 pro/wpforms-pro.php:413 pro/wpforms-pro.php:422
773
  msgid "Notifications"
774
  msgstr "Mitteilungen"
775
 
776
  #: includes/admin/builder/panels/class-settings.php:59
777
+ #: includes/admin/builder/panels/class-settings.php:180
778
  msgid "Confirmation"
779
  msgstr "Bestätigung"
780
 
789
 
790
  #: includes/admin/builder/panels/class-settings.php:94
791
  #: includes/admin/builder/panels/class-setup.php:55
792
+ #: includes/class-smart-tags.php:38
793
  msgid "Form Name"
794
  msgstr "Formularname"
795
 
798
  msgstr "Formularbeschreibung"
799
 
800
  #: includes/admin/builder/panels/class-settings.php:111
 
 
 
 
 
 
801
  msgid "Form CSS Class"
802
  msgstr "Formular CSS-Klasse"
803
 
804
+ #: includes/admin/builder/panels/class-settings.php:113
805
  msgid ""
806
  "Enter CSS class names for the form wrapper. Multiple class names should be "
807
  "separated with spaces."
809
  "Name für CSS-Klasse des Formular-Wrappers eingeben. Mehrere Klassen können "
810
  "mit einem Komma getrennt werden."
811
 
812
+ #: includes/admin/builder/panels/class-settings.php:121
813
  msgid "Submit Button Text"
814
  msgstr "Senden-Button Beschriftung"
815
 
816
+ #: includes/admin/builder/panels/class-settings.php:131
817
  msgid "Submit Button Processing Text"
818
  msgstr "Senden-Button \"In Arbeit\" Text"
819
 
820
+ #: includes/admin/builder/panels/class-settings.php:133
821
  msgid ""
822
  "Enter the submit button text you would like the button display while the "
823
  "form submit is processing."
825
  "Geben Sie den Text ein, den der Button anzeigen soll, während das Formular "
826
  "verarbeitet wird."
827
 
828
+ #: includes/admin/builder/panels/class-settings.php:141
829
  msgid "Submit Button CSS Class"
830
  msgstr "CSS-Klasse für Senden-Button"
831
 
832
+ #: includes/admin/builder/panels/class-settings.php:143
833
  msgid ""
834
  "Enter CSS class names for the form submit button. Multiple names should be "
835
  "separated with spaces."
837
  "CSS-Klassennamen eingeben für den Senden-Button. Mehrere CSS-Klassen können "
838
  "mit einem Komma getrennt eingegeben werden."
839
 
840
+ #: includes/admin/builder/panels/class-settings.php:151
841
  msgid "Enable anti-spam honeypot"
842
  msgstr "Anti-SPAM \"Honigtopf\" aktivieren"
843
 
844
+ #: includes/admin/builder/panels/class-settings.php:162
845
  msgid "Enable Google invisible reCAPTCHA"
846
  msgstr "Googles unsichtbares reCAPTCHA aktivieren"
847
 
848
+ #: includes/admin/builder/panels/class-settings.php:162
849
  msgid "Enable Google reCAPTCHA (v2)"
850
  msgstr "Googles reCAPTCHA aktivieren (v2)"
851
 
852
+ #: includes/admin/builder/panels/class-settings.php:187
853
  msgid "Confirmation Type"
854
  msgstr "Bestätigungsart"
855
 
856
+ #: includes/admin/builder/panels/class-settings.php:191
857
  #: includes/templates/class-suggestion.php:76 lite/wpforms-lite.php:189
858
+ #: pro/wpforms-pro.php:568
859
  msgid "Message"
860
  msgstr "Nachricht"
861
 
862
+ #: includes/admin/builder/panels/class-settings.php:192
863
  msgid "Show Page"
864
  msgstr "Seite anzeigen"
865
 
866
+ #: includes/admin/builder/panels/class-settings.php:193
867
  msgid "Go to URL (Redirect)"
868
  msgstr "Gehe zu URL (Weiterleitung)"
869
 
870
+ #: includes/admin/builder/panels/class-settings.php:202
871
  msgid "Confirmation Message"
872
  msgstr "Bestätigungsmitteilung"
873
 
874
+ #: includes/admin/builder/panels/class-settings.php:204
875
+ #: includes/admin/importers/class-contact-form-7.php:123
876
+ #: includes/admin/importers/class-ninja-forms.php:140
877
  msgid "Thanks for contacting us! We will be in touch with you shortly."
878
  msgstr ""
879
+ "Danke für Ihre Kontaktaufnahme. Wir werden uns umgehend mit Ihnen in "
880
  "Verbindung setzen."
881
 
882
+ #: includes/admin/builder/panels/class-settings.php:215
883
  msgid "Automatically scroll to the confirmation message"
884
  msgstr "Automatisch zur Bestätigungsmitteilung scrollen"
885
 
886
+ #: includes/admin/builder/panels/class-settings.php:228
887
  msgid "Confirmation Page"
888
  msgstr "Bestätigungsseite"
889
 
890
+ #: includes/admin/builder/panels/class-settings.php:238
891
  msgid "Confirmation Redirect URL"
892
  msgstr "URL für Weiterleitung der Bestätigung"
893
 
993
  #. Author of the plugin/theme
994
  #: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
995
  #: includes/admin/class-menu.php:51 includes/admin/class-menu.php:103
996
+ #: includes/class-form.php:72 includes/integrations.php:45
997
  msgid "WPForms"
998
  msgstr "WPForms"
999
 
1017
  #: includes/admin/class-menu.php:72
1018
  #: includes/admin/overview/class-overview-table.php:174
1019
  #: pro/includes/admin/entries/class-entries-list.php:332
1020
+ #: pro/wpforms-pro.php:347
1021
  msgid "Entries"
1022
  msgstr "Einträge"
1023
 
1104
 
1105
  #: includes/admin/class-settings.php:168 includes/admin/class-settings.php:173
1106
  #: includes/admin/class-settings.php:178 includes/admin/class-settings.php:183
1107
+ #: pro/wpforms-pro.php:158
1108
  #, fuzzy
1109
  #| msgid "Save General Settings"
1110
  msgid "Save Settings"
1111
  msgstr "Allgemeine Einstellungen speichern"
1112
 
1113
+ #: includes/admin/class-settings.php:171 includes/admin/class-settings.php:282
1114
+ #: includes/admin/class-settings.php:371 includes/fields/class-email.php:21
1115
  #: includes/fields/class-email.php:68 includes/fields/class-email.php:306
1116
  #: includes/templates/class-contact.php:41
1117
  #: includes/templates/class-subscribe.php:44
1122
  msgid "Email"
1123
  msgstr "E-Mail-Adresse"
1124
 
1125
+ #: includes/admin/class-settings.php:176 includes/admin/class-settings.php:322
1126
  msgid "reCAPTCHA"
1127
  msgstr "reCAPTCHA"
1128
 
1132
  msgid "Validation"
1133
  msgstr "Validierungsnachricht "
1134
 
1135
+ #: includes/admin/class-settings.php:186 includes/admin/class-settings.php:392
1136
+ #: includes/admin/class-settings.php:399
1137
  msgid "Integrations"
1138
  msgstr "Integrationen"
1139
 
1235
  "ganzen Website geladen werden. Nur notwendig bei Kompatibilitätsproblemen "
1236
  "oder auf Anweisung unseres Supports hin. "
1237
 
1238
+ #: includes/admin/class-settings.php:273
1239
+ #, fuzzy
1240
+ #| msgid "Hide Layouts"
1241
+ msgid "Hide Announcements"
1242
+ msgstr "Layouts verbergen"
1243
+
1244
+ #: includes/admin/class-settings.php:274
1245
+ msgid ""
1246
+ "Check this if you would like to hide plugin announcements and update details."
1247
+ msgstr ""
1248
+
1249
+ #: includes/admin/class-settings.php:289
1250
  #, fuzzy
1251
  #| msgid "template"
1252
  msgid "Template"
1253
  msgstr "Template"
1254
 
1255
+ #: includes/admin/class-settings.php:290
1256
  #, fuzzy
1257
  #| msgid "Determines how email notifications will be formatted."
1258
  msgid ""
1260
  "default."
1261
  msgstr "Legt fest, wie E-Mail-Benachrichtungen formatiert werden."
1262
 
1263
+ #: includes/admin/class-settings.php:294
1264
  #, fuzzy
1265
  #| msgid "Use Template"
1266
  msgid "HTML Template"
1267
  msgstr "Template verwenden"
1268
 
1269
+ #: includes/admin/class-settings.php:295
1270
  #, fuzzy
1271
  #| msgid "Plain Text"
1272
  msgid "Plain text"
1273
  msgstr "Einfacher Text"
1274
 
1275
+ #: includes/admin/class-settings.php:300
1276
  #, fuzzy
1277
  #| msgid "Email Header Image "
1278
  msgid "Header Image"
1279
  msgstr "E-Mail-Header Bild"
1280
 
1281
+ #: includes/admin/class-settings.php:301
1282
  #, fuzzy
1283
  #| msgid ""
1284
  #| "Upload or choose a logo to be displayed at the top of email notifications."
1287
  "<br>Recommended size is 300x100 or smaller for best support on all devices."
1288
  msgstr "Verwenden Sie Ihr eigenes Logo für E-Mail-Benachrichtungen."
1289
 
1290
+ #: includes/admin/class-settings.php:306
1291
  #, fuzzy
1292
  #| msgid "Email Background Color"
1293
  msgid "Background Color"
1294
  msgstr "E-Mail-Hintergrundfarbe"
1295
 
1296
+ #: includes/admin/class-settings.php:307
1297
  msgid "Customize the background color of the HTML email template."
1298
  msgstr "Hintergrundfarbe des HTML E-Mail-Templates festlegen."
1299
 
1300
+ #: includes/admin/class-settings.php:313
1301
  #, fuzzy
1302
  #| msgid "Email Carbon Copy"
1303
  msgid "Carbon Copy"
1304
  msgstr "E-Mail Carbon Copy (CC)"
1305
 
1306
+ #: includes/admin/class-settings.php:314
1307
  msgid ""
1308
  "Check this if you would like to enable the ability to CC: email addresses in "
1309
  "the form notification settings."
1311
  "Bitte markieren, wenn Sie die Eingabe von \"CC\"-E-Mail-Adressen bei den "
1312
  "Einstellungen der Formularbenachrichtigungen aktivieren möchten. "
1313
 
1314
+ #: includes/admin/class-settings.php:329
1315
  #: pro/includes/fields/class-date-time.php:154
1316
  msgid "Type"
1317
  msgstr "Art"
1318
 
1319
+ #: includes/admin/class-settings.php:333
1320
  #, fuzzy
1321
  #| msgid "reCAPTCHA"
1322
  msgid "v2 reCAPTCHA"
1323
  msgstr "reCAPTCHA"
1324
 
1325
+ #: includes/admin/class-settings.php:334
1326
  #, fuzzy
1327
  #| msgid "Enable Google invisible reCAPTCHA"
1328
  msgid "Invisible reCAPTCHA"
1329
  msgstr "Googles unsichtbares reCAPTCHA aktivieren"
1330
 
1331
+ #: includes/admin/class-settings.php:339
1332
  #, fuzzy
1333
  #| msgid "Deactivate Key"
1334
  msgid "Site Key"
1335
  msgstr "Schlüssel deaktivieren"
1336
 
1337
+ #: includes/admin/class-settings.php:344
1338
  #, fuzzy
1339
  #| msgid "Refresh Key"
1340
  msgid "Secret Key"
1341
  msgstr "Schlüssel aktualisieren."
1342
 
1343
+ #: includes/admin/class-settings.php:352
1344
  msgid "Validation Messages"
1345
  msgstr "Validierungsnachricht "
1346
 
1347
+ #: includes/admin/class-settings.php:352
1348
  msgid ""
1349
  "These messages are displayed to the user as they fill out a form in real-"
1350
  "time."
1351
  msgstr ""
1352
 
1353
+ #: includes/admin/class-settings.php:359 includes/fields/class-base.php:337
1354
  msgid "Required"
1355
  msgstr "Pflichtfeld"
1356
 
1357
+ #: includes/admin/class-settings.php:361 includes/class-frontend.php:1005
1358
  #: includes/fields/class-base.php:901 includes/fields/class-name.php:485
1359
  #: includes/fields/class-number.php:152
1360
  #: pro/includes/fields/class-address.php:767
1368
  msgid "This field is required."
1369
  msgstr "Dies ist ein Pflichtfeld."
1370
 
1371
+ #: includes/admin/class-settings.php:365
1372
  msgid "Website URL"
1373
  msgstr "Website URL"
1374
 
1375
+ #: includes/admin/class-settings.php:367 includes/class-frontend.php:1006
1376
  #: pro/includes/fields/class-url.php:159
1377
  msgid "Please enter a valid URL."
1378
  msgstr "Bitte eine gültige URL eingeben."
1379
 
1380
+ #: includes/admin/class-settings.php:373 includes/class-frontend.php:1007
1381
  msgid "Please enter a valid email address."
1382
  msgstr "Bitte eine gültige E-Mail-Adresse eingeben."
1383
 
1384
+ #: includes/admin/class-settings.php:377
1385
  msgid "Number"
1386
  msgstr "Zahl"
1387
 
1388
+ #: includes/admin/class-settings.php:379 includes/class-frontend.php:1008
1389
  #: includes/fields/class-number.php:157
1390
  msgid "Please enter a valid number."
1391
  msgstr "Bitte eine gültige Nummer eingeben."
1392
 
1393
+ #: includes/admin/class-settings.php:383
1394
  msgid "Confirm Value"
1395
  msgstr "Bestätigungswert"
1396
 
1397
+ #: includes/admin/class-settings.php:385 includes/class-frontend.php:1009
1398
  #: pro/includes/fields/class-password.php:394
1399
  msgid "Field values do not match."
1400
  msgstr "Die Felder stimmen nicht überein."
1401
 
1402
+ #: includes/admin/class-settings.php:392 includes/admin/class-settings.php:399
1403
  msgid ""
1404
  "Manage integrations with popular providers such as Constant Contact, "
1405
  "MailChimp, Zapier, and more."
1406
  msgstr ""
1407
 
1408
+ #: includes/admin/class-settings.php:501
1409
  msgid "Want to better protect your contact forms from spam?"
1410
  msgstr ""
1411
 
1412
+ #: includes/admin/class-settings.php:503
1413
  msgid ""
1414
  "WPForms custom captcha addon allows you to add custom questions captcha or "
1415
  "math questions captcha to your WordPress forms. Since we know spam is a huge "
1417
  "your forms."
1418
  msgstr ""
1419
 
1420
+ #: includes/admin/class-settings.php:505
1421
  msgid "Click here to Upgrade"
1422
  msgstr ""
1423
 
1424
+ #: includes/admin/class-tools.php:88 includes/admin/class-tools.php:233
1425
+ #: includes/admin/class-tools.php:273 includes/admin/class-tools.php:336
1426
+ msgid "Import"
1427
+ msgstr "Import"
1428
+
1429
+ #: includes/admin/class-tools.php:89 includes/admin/class-tools.php:516
1430
+ msgid "Export"
1431
+ msgstr "Export"
1432
 
1433
  #: includes/admin/class-tools.php:90
1434
  msgid "System Info"
1435
  msgstr "Systeminformation"
1436
 
1437
+ #: includes/admin/class-tools.php:178
1438
  msgid ""
1439
  "Import was successfully finished. You can go and <a href=\"%s\">check your "
1440
  "forms</a>."
1441
  msgstr ""
1442
 
1443
+ #: includes/admin/class-tools.php:218
1444
+ #, fuzzy
1445
+ #| msgid "Form Import"
1446
+ msgid "WPForms Import"
1447
  msgstr "Formular-Import"
1448
 
1449
+ #: includes/admin/class-tools.php:219
1450
+ #, fuzzy
1451
+ #| msgid "Select an export file."
1452
+ msgid "Select a WPForms export file."
1453
  msgstr "Eine Exportdatei auswählen."
1454
 
1455
+ #: includes/admin/class-tools.php:225
1456
  #, fuzzy
1457
  #| msgid "No field type found"
1458
  msgid "No file chosen"
1459
  msgstr "Kein Formulartyp gefunden"
1460
 
1461
+ #: includes/admin/class-tools.php:227
1462
  msgid "Choose a file&hellip;"
1463
  msgstr ""
1464
 
1465
+ #: includes/admin/class-tools.php:239
1466
+ msgid "Import from Other Form Plugins"
1467
+ msgstr ""
1468
+
1469
+ #: includes/admin/class-tools.php:240
1470
+ msgid "Not happy with other WordPress contact form plugins?"
1471
+ msgstr ""
1472
+
1473
+ #: includes/admin/class-tools.php:241
1474
+ msgid ""
1475
+ "WPForms makes it easy for you to switch by allowing you import your third-"
1476
+ "party forms with a single click."
1477
+ msgstr ""
1478
+
1479
+ #: includes/admin/class-tools.php:245
1480
+ msgid "No form importers are currently enabled."
1481
+ msgstr ""
1482
+
1483
+ #: includes/admin/class-tools.php:250
1484
+ msgid "Select previous contact form plugin..."
1485
+ msgstr ""
1486
+
1487
+ #: includes/admin/class-tools.php:255 pro/includes/admin/class-addons.php:201
1488
+ #, fuzzy
1489
+ #| msgid "Addon installed."
1490
+ msgid "Not Installed"
1491
+ msgstr "Add-on installiert."
1492
+
1493
+ #: includes/admin/class-tools.php:257
1494
+ #, fuzzy
1495
+ #| msgid "Activate"
1496
+ msgid "Not Active"
1497
+ msgstr "Aktivieren "
1498
+
1499
+ #: includes/admin/class-tools.php:294
1500
+ msgid "Form Import"
1501
+ msgstr "Formular-Import"
1502
+
1503
+ #: includes/admin/class-tools.php:300
1504
+ #, fuzzy
1505
+ #| msgid "Select a form below to insert"
1506
+ msgid "Select the forms you would like to import."
1507
+ msgstr "Wählen Sie ein Formular zum Einfügen unterhalb aus "
1508
+
1509
+ #: includes/admin/class-tools.php:304
1510
+ #, fuzzy
1511
+ #| msgid "Available Form Fields"
1512
+ msgid "Available Forms"
1513
+ msgstr "Verfügbare Formularfelder"
1514
+
1515
+ #: includes/admin/class-tools.php:309
1516
+ #, fuzzy
1517
+ #| msgid "No forms found"
1518
+ msgid "No forms found."
1519
+ msgstr "Keine Formulare vorhanden"
1520
+
1521
+ #: includes/admin/class-tools.php:323
1522
+ #, fuzzy
1523
+ #| msgid "Delete rule"
1524
+ msgid "Select All"
1525
+ msgstr "Regel löschen"
1526
+
1527
+ #: includes/admin/class-tools.php:328
1528
+ #, fuzzy
1529
+ #| msgid "Form Import"
1530
+ msgid "Forms to Import"
1531
+ msgstr "Formular-Import"
1532
+
1533
+ #. translators: %1$s - current forms counter; %2$s - total forms counter; %3$s
1534
+ #. - provider name.
1535
+ #: includes/admin/class-tools.php:347
1536
+ msgid "Analyzing %1$s of %2$s forms from %3$s."
1537
+ msgstr ""
1538
+
1539
+ #: includes/admin/class-tools.php:355
1540
+ #, fuzzy
1541
+ #| msgid "Heads up!"
1542
+ msgid "Heads Up!"
1543
+ msgstr "Kopf hoch!"
1544
+
1545
+ #: includes/admin/class-tools.php:356
1546
+ msgid ""
1547
+ "One or more of your forms contain fields that are not available in WPForms "
1548
+ "Lite. To properly impor tthese fields, we recommend upgrading to WPForms Pro."
1549
+ msgstr ""
1550
+
1551
+ #: includes/admin/class-tools.php:357
1552
+ msgid ""
1553
+ "You can continue with the import without upgrading, and we will do our best "
1554
+ "to match the fields. However, some of them will be omitted due to "
1555
+ "compatibility issues."
1556
+ msgstr ""
1557
+
1558
+ #: includes/admin/class-tools.php:359 includes/admin/class-welcome.php:285
1559
+ #, fuzzy
1560
+ #| msgid "Upgrade to PRO"
1561
+ msgid "Upgrade to WPForms Pro"
1562
+ msgstr "Auf PRO upgraden"
1563
+
1564
+ #: includes/admin/class-tools.php:360
1565
+ msgid "Continue Import without Upgrading"
1566
+ msgstr ""
1567
+
1568
+ #: includes/admin/class-tools.php:363
1569
+ msgid "Below are the list of form fields that may be impacted:"
1570
+ msgstr ""
1571
+
1572
+ #. translators: %1$s - current forms counter; %2$s - total forms counter; %3$s
1573
+ #. - provider name.
1574
+ #: includes/admin/class-tools.php:374
1575
+ msgid "Importing %1$s of %2$s forms from %3$s."
1576
+ msgstr ""
1577
+
1578
+ #. translators: %s - number of imported forms.
1579
+ #: includes/admin/class-tools.php:386
1580
+ msgid ""
1581
+ "Congrats, the import process has finished! We have successfully imported %s "
1582
+ "forms. You can review the results below."
1583
+ msgstr ""
1584
+
1585
+ #: includes/admin/class-tools.php:443
1586
+ #: includes/admin/overview/class-overview-table.php:160
1587
+ msgid "Edit"
1588
+ msgstr "Bearbeiten"
1589
+
1590
+ #: includes/admin/class-tools.php:449
1591
+ msgid "The following fields are available in PRO and were not imported:"
1592
+ msgstr ""
1593
+
1594
+ #: includes/admin/class-tools.php:457
1595
+ msgid ""
1596
+ "The following fields are available in PRO and were imported as text fields:"
1597
+ msgstr ""
1598
+
1599
+ #: includes/admin/class-tools.php:465
1600
+ msgid "The following fields are not supported and were not imported:"
1601
+ msgstr ""
1602
+
1603
+ #: includes/admin/class-tools.php:474
1604
+ msgid "Upgrade to the PRO plan to import these fields."
1605
+ msgstr ""
1606
+
1607
+ #: includes/admin/class-tools.php:476 includes/admin/class-welcome.php:247
1608
+ #: pro/includes/admin/class-addons.php:249
1609
+ msgid "Upgrade Now"
1610
+ msgstr "Jetzt upgraden"
1611
 
1612
+ #: includes/admin/class-tools.php:495
1613
  msgid "Form Export"
1614
  msgstr "Formular-Export"
1615
 
1616
+ #: includes/admin/class-tools.php:497
1617
  msgid ""
1618
  "Form exports files can be used to create a backup of your forms or to import "
1619
  "forms into another site."
1620
  msgstr ""
1621
 
1622
+ #: includes/admin/class-tools.php:503
1623
  #, fuzzy
1624
  #| msgid "Select Groups"
1625
  msgid "Select form(s)"
1626
  msgstr "Gruppen auswählen"
1627
 
1628
+ #: includes/admin/class-tools.php:510
1629
  msgid "You need to create a form before you can use form export."
1630
  msgstr ""
1631
 
1632
+ #: includes/admin/class-tools.php:522
 
 
 
 
1633
  msgid "Form Template Export"
1634
  msgstr "Formular-Template Export"
1635
 
1636
+ #: includes/admin/class-tools.php:526
1637
  msgid ""
1638
  "The following code can be used to register your custom form template. Copy "
1639
  "and paste the following code to your theme's functions.php file or include "
1643
  "Formular-Template zu registrieren. Kopieren Sie diesen Code in die functions."
1644
  "php Ihres Themes oder in eine externe Datei."
1645
 
1646
+ #: includes/admin/class-tools.php:527
1647
  #, fuzzy
1648
  #| msgid ""
1649
  #| "For more information <a href=\"%s\" target=\"blank\" rel=\"noopener "
1655
  "Für nähere Informationen besuchen Sie unsere <a href=\"%s\" target=\"blank\" "
1656
  "rel=\"noopener noreferrer\">Online-Dokumentation</a>."
1657
 
1658
+ #: includes/admin/class-tools.php:532
1659
  msgid ""
1660
  "Select a form to generate PHP code that can be used to register a custom "
1661
  "form template."
1664
  "werden kann, um ein maßgeschneidertes (custom) Formular-Template zu "
1665
  "erstellen."
1666
 
1667
+ #: includes/admin/class-tools.php:545
1668
  msgid "You need to create a form before you can generate a template."
1669
  msgstr ""
1670
 
1671
+ #: includes/admin/class-tools.php:551
1672
  #, fuzzy
1673
  #| msgid "template"
1674
  msgid "Export Template"
1675
  msgstr "Template"
1676
 
1677
+ #: includes/admin/class-tools.php:566
1678
  #, fuzzy
1679
  #| msgid "System Info"
1680
  msgid "System Information"
1681
  msgstr "Systeminformation"
1682
 
1683
+ #: includes/admin/class-tools.php:633
1684
  msgid "Please upload a valid .json form export file."
1685
  msgstr "Bitte verwenden Sie ein vailde .json Formular-Export Datei"
1686
 
1687
+ #: includes/admin/class-tools.php:634
1688
  #: pro/includes/admin/entries/class-entries-export.php:342
1689
  msgid "Error"
1690
  msgstr "Fehler"
1691
 
1692
+ #: includes/admin/class-tools.php:760 includes/admin/class-tools.php:764
1693
  #: pro/includes/admin/entries/class-entries-single.php:733
1694
  #: pro/includes/admin/entries/class-entries-single.php:1087
1695
  msgid "M j, Y @ g:ia"
1864
  msgid "See All Features"
1865
  msgstr "Alle Features betrachten"
1866
 
1867
+ #: includes/admin/class-welcome.php:226 lite/wpforms-lite.php:410
1868
  msgid "Upgrade to PRO"
1869
  msgstr "Auf PRO upgraden"
1870
 
1923
  msgid "per year"
1924
  msgstr ""
1925
 
 
 
 
 
1926
  #: includes/admin/class-welcome.php:258
1927
  msgid "Testimonials"
1928
  msgstr ""
1943
  "investment."
1944
  msgstr ""
1945
 
1946
+ #: includes/admin/importers/class-base.php:114
1947
+ msgid "There was an error while creating a new form."
1948
+ msgstr ""
1949
+
1950
+ #: includes/admin/importers/class-contact-form-7.php:107
1951
+ #: includes/admin/importers/class-ninja-forms.php:124
1952
  #, fuzzy
1953
+ #| msgid "Sending..."
1954
+ msgid "Sending"
1955
+ msgstr "Sende..."
1956
+
1957
+ #: includes/admin/importers/class-contact-form-7.php:112
1958
+ #: includes/admin/importers/class-ninja-forms.php:129
1959
+ #, fuzzy
1960
+ #| msgid "Notifications"
1961
+ msgid "Notification 1"
1962
+ msgstr "Mitteilungen"
1963
+
1964
+ #. translators: %s - Contact Form 7 form name.
1965
+ #. translators: %s - Ninja Forms form name.
1966
+ #: includes/admin/importers/class-contact-form-7.php:115
1967
+ #: includes/admin/importers/class-contact-form-7.php:400
1968
+ #: includes/admin/importers/class-ninja-forms.php:132
1969
+ #: includes/admin/importers/class-ninja-forms.php:404
1970
+ #, fuzzy
1971
+ #| msgid "New Entry: "
1972
+ msgid "New Entry: %s"
1973
+ msgstr "Neuer Eintrag:"
1974
+
1975
+ #: includes/admin/importers/class-contact-form-7.php:134
1976
+ #: includes/admin/importers/class-ninja-forms.php:151
1977
+ #, fuzzy
1978
+ #| msgid "No forms found"
1979
+ msgid "No form fields found."
1980
+ msgstr "Keine Formulare vorhanden"
1981
+
1982
+ #: includes/admin/importers/class-contact-form-7.php:302
1983
+ #, fuzzy
1984
+ #| msgid "Delete Field"
1985
+ msgid "Acceptance Field"
1986
+ msgstr "Feld löschen"
1987
+
1988
+ #: includes/admin/importers/class-contact-form-7.php:397
1989
+ #, fuzzy
1990
+ #| msgid "Notifications"
1991
+ msgid "Notification 2"
1992
+ msgstr "Mitteilungen"
1993
+
1994
+ #. translators: %1$s - field type; %2$s - field name if available.
1995
+ #: includes/admin/importers/class-contact-form-7.php:490
1996
+ #, fuzzy
1997
+ #| msgid "List Fields"
1998
+ msgid "%1$s Field%2$s"
1999
+ msgstr "Feldlisten"
2000
+
2001
+ #: includes/admin/importers/class-ninja-forms.php:227
2002
+ #, fuzzy
2003
+ #| msgid "Settings check failed."
2004
+ msgid "Single Checkbox Field"
2005
+ msgstr "Prüfung der Einstellungen fehlgeschlagen."
2006
+
2007
+ #: includes/admin/importers/class-ninja-forms.php:401
2008
+ #: includes/admin/importers/class-ninja-forms.php:417
2009
+ #, fuzzy
2010
+ #| msgid "Notifications"
2011
+ msgid "Notification"
2012
+ msgstr "Mitteilungen"
2013
 
2014
  #: includes/admin/overview/class-overview-table.php:53
2015
  #: includes/fields/class-name.php:21 includes/fields/class-name.php:276
2035
  msgid "Edit this form"
2036
  msgstr "Formular bearbeiten"
2037
 
 
 
 
 
2038
  #: includes/admin/overview/class-overview-table.php:173
2039
  msgid "View entries"
2040
  msgstr "Einträge aufrufen"
2120
  #| "noreferrer\">power of email marketing</a>"
2121
  msgid ""
2122
  "To unlock more features consider <a href=\"%s\" target=\"_blank\" rel="
2123
+ "\"noopener noreferrer\" class=\"wpforms-upgrade-modal\">upgrading to Pro</a>."
2124
+ "</p>"
2125
  msgstr "Erfahren Sie mehr über die Möglichkeiten von E-Mail-Marketing."
2126
 
2127
  #: includes/admin/settings-api.php:106
2187
  #: includes/class-frontend.php:1010
2188
  #: pro/includes/fields/class-file-upload.php:367
2189
  #: pro/includes/fields/class-file-upload.php:383
2190
+ #: pro/includes/fields/class-file-upload.php:400 pro/wpforms-pro.php:191
2191
  msgid "File type is not allowed."
2192
  msgstr "Dateiart ist nicht erlaubt."
2193
 
2194
+ #: includes/class-frontend.php:1011 pro/wpforms-pro.php:197
2195
  msgid "File exceeds max size allowed."
2196
  msgstr "Dateigröße überschreitet erlaubtes Maximum."
2197
 
2198
+ #: includes/class-frontend.php:1012 pro/wpforms-pro.php:203
2199
  msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
2200
  msgstr ""
2201
  "Bitte geben Sie die Zeit im 12-Stunden Format AP/PM ein (z.B. 8:45 AM)."
2202
 
2203
+ #: includes/class-frontend.php:1013 pro/wpforms-pro.php:209
2204
  msgid "Please enter time in 24-hour format (eg 22:45)."
2205
  msgstr ""
2206
  "Bitte geben Sie die Zeit im 24-Stunden Format AP/PM ein (z.B. 22:45 AM)."
2207
 
2208
  #: includes/class-frontend.php:1014
2209
+ #: pro/includes/fields/class-payment-total.php:199 pro/wpforms-pro.php:215
2210
  msgid "Payment is required."
2211
  msgstr "Zahlung ist erforderlich."
2212
 
2213
+ #: includes/class-frontend.php:1015 pro/wpforms-pro.php:221
2214
  msgid "Please enter a valid credit card number."
2215
  msgstr "Bitte eine gültige Kreditkartennummer eingeben."
2216
 
2315
  msgid "WPForms Preview"
2316
  msgstr "WPForms Vorschau"
2317
 
2318
+ #: includes/class-preview.php:373 includes/integrations.php:53
2319
+ msgid "Form"
2320
+ msgstr "Formular"
2321
+
2322
  #: includes/class-preview.php:375
2323
  msgid "This is a preview of your form. This page is not publicly accessible."
2324
  msgstr ""
2357
  msgid "WPForms honeypot field triggered."
2358
  msgstr "WPForms honeypot wurde ausgelöst."
2359
 
2360
+ #: includes/class-process.php:370 pro/wpforms-pro.php:406
2361
  #, fuzzy
2362
  #| msgid "New %s Entry"
2363
  msgctxt "Form name"
2364
  msgid "New %s Entry"
2365
  msgstr "Neue %s Einträge"
2366
 
2367
+ #: includes/class-smart-tags.php:35
2368
  #, fuzzy
2369
  #| msgid "Site Administer Email"
2370
  msgid "Site Administrator Email"
2371
  msgstr "E-Mail-Adresse des Website-Administrators"
2372
 
2373
+ #: includes/class-smart-tags.php:36
2374
  msgid "Entry ID"
2375
  msgstr "Eintrag-ID"
2376
 
2377
+ #: includes/class-smart-tags.php:37
2378
  msgid "Form ID"
2379
  msgstr "Formular-ID"
2380
 
2381
+ #: includes/class-smart-tags.php:39
2382
  msgid "Embedded Post/Page Title"
2383
  msgstr "Eingebetteter Beitrags-/Seitentitel"
2384
 
2385
+ #: includes/class-smart-tags.php:40
2386
  #, fuzzy
2387
  #| msgid "Embeded Post Page URL"
2388
  msgid "Embedded Post Page URL"
2389
  msgstr "Eingebettete Beitrags-/Seiten-URL"
2390
 
2391
+ #: includes/class-smart-tags.php:41
2392
  msgid "Embedded Post/Page ID"
2393
  msgstr "Eingebettete Beitrags-/Seiten-ID"
2394
 
2395
+ #: includes/class-smart-tags.php:42
2396
  #: pro/includes/admin/entries/class-entries-export.php:203
2397
  #: pro/includes/admin/entries/class-entries-list-table.php:165
2398
  #: pro/includes/fields/class-date-time.php:73
2403
  msgid "Date"
2404
  msgstr "Datum"
2405
 
2406
+ #: includes/class-smart-tags.php:43
2407
  msgid "Query String Variable"
2408
  msgstr "Query Zeichenkette Variable"
2409
 
2410
+ #: includes/class-smart-tags.php:44
2411
  msgid "User IP Address"
2412
  msgstr "Benutzer IP-Adresse"
2413
 
2414
+ #: includes/class-smart-tags.php:45
2415
  msgid "User ID"
2416
  msgstr "Benutzer-ID"
2417
 
2418
+ #: includes/class-smart-tags.php:46
2419
  msgid "User Name"
2420
  msgstr "Benutzername"
2421
 
2422
+ #: includes/class-smart-tags.php:47
2423
  msgid "User Email"
2424
  msgstr "Benutzer E-Mail-Adresse"
2425
 
2426
+ #: includes/class-smart-tags.php:48
2427
  msgid "Author ID"
2428
  msgstr "Autor-ID"
2429
 
2430
+ #: includes/class-smart-tags.php:49
2431
  msgid "Author Name"
2432
  msgstr "Autorenname"
2433
 
2434
+ #: includes/class-smart-tags.php:50
2435
  msgid "Author Email"
2436
  msgstr "Autor E-Mail-Adresse"
2437
 
2438
+ #: includes/class-smart-tags.php:51
2439
  #, fuzzy
2440
  #| msgid "Referer URL"
2441
  msgid "Referrer URL"
2442
  msgstr "Referer URL"
2443
 
2444
+ #: includes/class-smart-tags.php:52
2445
  msgid "Login URL"
2446
  msgstr "Login URL"
2447
 
2448
+ #: includes/class-smart-tags.php:53
2449
  msgid "Logout URL"
2450
  msgstr "Logout URL"
2451
 
2452
+ #: includes/class-smart-tags.php:54
2453
  msgid "Register URL"
2454
  msgstr "Registrierung URL"
2455
 
2456
+ #: includes/class-smart-tags.php:55
2457
  msgid "Lost Password URL"
2458
  msgstr "Passwort vergessen URL"
2459
 
2514
  msgstr "Formularbeschreibung anzeigen"
2515
 
2516
  #: includes/emails/class-emails.php:331
2517
+ #, fuzzy
2518
+ #| msgid ""
2519
+ #| "You cannot send emails with WPForms_WP_Emails until init/admin_init has "
2520
+ #| "been reached"
2521
  msgid ""
2522
  "You cannot send emails with WPForms_WP_Emails until init/admin_init has been "
2523
+ "reached."
2524
  msgstr ""
2525
  "Sie können keine E-Mails mit <strong>WPForms_WP_Emails</strong> versenden "
2526
  "bis <strong>init/admin_init</strong> erreicht wurde"
2527
 
2528
  #: includes/emails/class-emails.php:472 includes/emails/class-emails.php:495
2529
+ #: includes/fields/class-checkbox.php:194 includes/fields/class-radio.php:194
2530
+ #: includes/fields/class-select.php:200
2531
  msgid "(empty)"
2532
  msgstr "(leer)"
2533
 
2535
  msgid "Field ID #"
2536
  msgstr "Feld-ID"
2537
 
2538
+ #: includes/emails/class-emails.php:504
2539
  msgid "An empty form was submitted."
2540
  msgstr ""
2541
 
2749
  msgid "Third Choice"
2750
  msgstr "Dritte Wahl"
2751
 
 
 
 
 
 
2752
  #: includes/fields/class-checkbox.php:97 includes/fields/class-radio.php:97
2753
  #: includes/fields/class-select.php:97
2754
  msgid "Show Values"
2755
  msgstr "Werte (Values) anzeigen"
2756
 
2757
+ #: includes/fields/class-checkbox.php:98 includes/fields/class-radio.php:98
2758
+ #: includes/fields/class-select.php:98
2759
+ msgid "Check this to manually set form field values."
2760
+ msgstr "Markieren, um die Werte der Felder manuell festzulegen."
2761
+
2762
+ #: includes/fields/class-checkbox.php:212 includes/fields/class-radio.php:212
2763
  msgid ""
2764
  "Showing the first 20 choices.<br> All %d choices will be displayed when "
2765
  "viewing the form."
2890
  msgid "Paragraph Text"
2891
  msgstr "Absatz"
2892
 
2893
+ #: includes/functions.php:625
2894
+ msgid "Alabama"
2895
+ msgstr ""
2896
 
2897
+ #: includes/functions.php:626
2898
+ msgid "Alaska"
2899
+ msgstr ""
2900
 
2901
+ #: includes/functions.php:627
2902
+ msgid "Arizona"
2903
+ msgstr ""
2904
 
2905
+ #: includes/functions.php:628
2906
+ msgid "Arkansas"
2907
+ msgstr ""
2908
 
2909
+ #: includes/functions.php:629
2910
+ msgid "California"
2911
+ msgstr ""
2912
 
2913
+ #: includes/functions.php:630
2914
+ msgid "Colorado"
2915
  msgstr ""
 
2916
 
2917
+ #: includes/functions.php:631
2918
+ #, fuzzy
2919
+ #| msgid "Connect"
2920
+ msgid "Connecticut"
2921
+ msgstr "Verbinden"
2922
+
2923
+ #: includes/functions.php:632
2924
+ msgid "Delaware"
2925
+ msgstr ""
2926
+
2927
+ #: includes/functions.php:633
2928
+ msgid "District of Columbia"
2929
+ msgstr ""
2930
+
2931
+ #: includes/functions.php:634
2932
+ msgid "Florida"
2933
+ msgstr ""
2934
+
2935
+ #: includes/functions.php:635 includes/functions.php:777
2936
+ msgid "Georgia"
2937
+ msgstr ""
2938
+
2939
+ #: includes/functions.php:636
2940
+ msgid "Hawaii"
2941
+ msgstr ""
2942
+
2943
+ #: includes/functions.php:637
2944
+ msgid "Idaho"
2945
+ msgstr ""
2946
+
2947
+ #: includes/functions.php:638
2948
+ msgid "Illinois"
2949
+ msgstr ""
2950
+
2951
+ #: includes/functions.php:639
2952
+ msgid "Indiana"
2953
+ msgstr ""
2954
+
2955
+ #: includes/functions.php:640
2956
+ msgid "Iowa"
2957
+ msgstr ""
2958
+
2959
+ #: includes/functions.php:641
2960
+ msgid "Kansas"
2961
+ msgstr ""
2962
+
2963
+ #: includes/functions.php:642
2964
+ msgid "Kentucky"
2965
+ msgstr ""
2966
+
2967
+ #: includes/functions.php:643
2968
+ msgid "Louisiana"
2969
+ msgstr ""
2970
+
2971
+ #: includes/functions.php:644
2972
+ msgid "Maine"
2973
+ msgstr ""
2974
+
2975
+ #: includes/functions.php:645
2976
+ msgid "Maryland"
2977
+ msgstr ""
2978
+
2979
+ #: includes/functions.php:646
2980
+ msgid "Massachusetts"
2981
+ msgstr ""
2982
+
2983
+ #: includes/functions.php:647
2984
+ msgid "Michigan"
2985
+ msgstr ""
2986
+
2987
+ #: includes/functions.php:648
2988
+ msgid "Minnesota"
2989
+ msgstr ""
2990
+
2991
+ #: includes/functions.php:649
2992
+ msgid "Mississippi"
2993
+ msgstr ""
2994
+
2995
+ #: includes/functions.php:650
2996
+ msgid "Missouri"
2997
+ msgstr ""
2998
+
2999
+ #: includes/functions.php:651
3000
+ #, fuzzy
3001
+ #| msgid "contains"
3002
+ msgid "Montana"
3003
+ msgstr "enthält"
3004
+
3005
+ #: includes/functions.php:652
3006
+ msgid "Nebraska"
3007
+ msgstr ""
3008
+
3009
+ #: includes/functions.php:653
3010
+ msgid "Nevada"
3011
+ msgstr ""
3012
+
3013
+ #: includes/functions.php:654
3014
+ msgid "New Hampshire"
3015
+ msgstr ""
3016
+
3017
+ #: includes/functions.php:655
3018
+ msgid "New Jersey"
3019
+ msgstr ""
3020
+
3021
+ #: includes/functions.php:656
3022
+ msgid "New Mexico"
3023
+ msgstr ""
3024
+
3025
+ #: includes/functions.php:657
3026
+ msgid "New York"
3027
+ msgstr ""
3028
+
3029
+ #: includes/functions.php:658
3030
+ msgid "North Carolina"
3031
+ msgstr ""
3032
+
3033
+ #: includes/functions.php:659
3034
+ msgid "North Dakota"
3035
+ msgstr ""
3036
+
3037
+ #: includes/functions.php:660
3038
+ msgid "Ohio"
3039
+ msgstr ""
3040
+
3041
+ #: includes/functions.php:661
3042
+ msgid "Oklahoma"
3043
+ msgstr ""
3044
+
3045
+ #: includes/functions.php:662
3046
+ msgid "Oregon"
3047
+ msgstr ""
3048
+
3049
+ #: includes/functions.php:663
3050
+ msgid "Pennsylvania"
3051
+ msgstr ""
3052
+
3053
+ #: includes/functions.php:664
3054
+ msgid "Rhode Island"
3055
+ msgstr ""
3056
+
3057
+ #: includes/functions.php:665
3058
+ #, fuzzy
3059
+ #| msgid "South African Rand"
3060
+ msgid "South Carolina"
3061
+ msgstr "Südafrikanischer Rand"
3062
+
3063
+ #: includes/functions.php:666
3064
+ msgid "South Dakota"
3065
+ msgstr ""
3066
+
3067
+ #: includes/functions.php:667
3068
+ msgid "Tennessee"
3069
+ msgstr ""
3070
+
3071
+ #: includes/functions.php:668
3072
+ msgid "Texas"
3073
+ msgstr ""
3074
+
3075
+ #: includes/functions.php:669
3076
+ msgid "Utah"
3077
+ msgstr ""
3078
+
3079
+ #: includes/functions.php:670
3080
+ msgid "Vermont"
3081
+ msgstr ""
3082
+
3083
+ #: includes/functions.php:671
3084
+ msgid "Virginia"
3085
+ msgstr ""
3086
+
3087
+ #: includes/functions.php:672
3088
+ msgid "Washington"
3089
+ msgstr ""
3090
+
3091
+ #: includes/functions.php:673
3092
+ msgid "West Virginia"
3093
+ msgstr ""
3094
+
3095
+ #: includes/functions.php:674
3096
+ #, fuzzy
3097
+ #| msgid "Disconnect "
3098
+ msgid "Wisconsin"
3099
+ msgstr "Verbindung getrennt"
3100
+
3101
+ #: includes/functions.php:675
3102
+ msgid "Wyoming"
3103
+ msgstr ""
3104
+
3105
+ #: includes/functions.php:690
3106
+ msgid "Afghanistan"
3107
+ msgstr ""
3108
+
3109
+ #: includes/functions.php:691
3110
+ msgid "Aland Islands"
3111
+ msgstr ""
3112
+
3113
+ #: includes/functions.php:692
3114
+ msgid "Albania"
3115
+ msgstr ""
3116
+
3117
+ #: includes/functions.php:693
3118
+ msgid "Algeria"
3119
+ msgstr ""
3120
+
3121
+ #: includes/functions.php:694
3122
+ msgid "American Samoa"
3123
+ msgstr ""
3124
+
3125
+ #: includes/functions.php:695
3126
+ msgid "Andorra"
3127
+ msgstr ""
3128
+
3129
+ #: includes/functions.php:696
3130
+ msgid "Angola"
3131
+ msgstr ""
3132
+
3133
+ #: includes/functions.php:697
3134
+ msgid "Anguilla"
3135
+ msgstr ""
3136
+
3137
+ #: includes/functions.php:698
3138
+ msgid "Antarctica"
3139
+ msgstr ""
3140
+
3141
+ #: includes/functions.php:699
3142
+ msgid "Antigua and Barbuda"
3143
+ msgstr ""
3144
+
3145
+ #: includes/functions.php:700
3146
+ msgid "Argentina"
3147
+ msgstr ""
3148
+
3149
+ #: includes/functions.php:701
3150
+ msgid "Armenia"
3151
+ msgstr ""
3152
+
3153
+ #: includes/functions.php:702
3154
+ msgid "Aruba"
3155
+ msgstr ""
3156
+
3157
+ #: includes/functions.php:703
3158
+ msgid "Ascension Island"
3159
+ msgstr ""
3160
+
3161
+ #: includes/functions.php:704
3162
+ #, fuzzy
3163
+ #| msgid "Australian Dollar"
3164
+ msgid "Australia"
3165
+ msgstr "Australische Dollar"
3166
+
3167
+ #: includes/functions.php:705
3168
+ msgid "Austria"
3169
+ msgstr ""
3170
+
3171
+ #: includes/functions.php:706
3172
+ msgid "Azerbaijan"
3173
+ msgstr ""
3174
+
3175
+ #: includes/functions.php:707
3176
+ msgid "Bahamas"
3177
+ msgstr ""
3178
+
3179
+ #: includes/functions.php:708
3180
+ msgid "Bahrain"
3181
+ msgstr ""
3182
+
3183
+ #: includes/functions.php:709
3184
+ msgid "Bangladesh"
3185
+ msgstr ""
3186
+
3187
+ #: includes/functions.php:710
3188
+ msgid "Barbados"
3189
+ msgstr ""
3190
+
3191
+ #: includes/functions.php:711
3192
+ msgid "Belarus"
3193
+ msgstr ""
3194
+
3195
+ #: includes/functions.php:712
3196
+ msgid "Belgium"
3197
+ msgstr ""
3198
+
3199
+ #: includes/functions.php:713
3200
+ msgid "Belize"
3201
+ msgstr ""
3202
+
3203
+ #: includes/functions.php:714
3204
+ msgid "Benin"
3205
+ msgstr ""
3206
+
3207
+ #: includes/functions.php:715
3208
+ msgid "Bermuda"
3209
+ msgstr ""
3210
+
3211
+ #: includes/functions.php:716
3212
+ msgid "Bhutan"
3213
+ msgstr ""
3214
+
3215
+ #: includes/functions.php:717
3216
+ msgid "Bolivia"
3217
+ msgstr ""
3218
+
3219
+ #: includes/functions.php:718
3220
+ msgid "Bosnia and Herzegovina"
3221
+ msgstr ""
3222
+
3223
+ #: includes/functions.php:719
3224
+ msgid "Botswana"
3225
+ msgstr ""
3226
+
3227
+ #: includes/functions.php:720
3228
+ msgid "Bouvet Island"
3229
+ msgstr ""
3230
+
3231
+ #: includes/functions.php:721
3232
+ #, fuzzy
3233
+ #| msgid "Brazilian Real"
3234
+ msgid "Brazil"
3235
+ msgstr "Real"
3236
+
3237
+ #: includes/functions.php:722
3238
+ msgid "British Indian Ocean Territory"
3239
+ msgstr ""
3240
+
3241
+ #: includes/functions.php:723
3242
+ msgid "British Virgin Islands"
3243
+ msgstr ""
3244
+
3245
+ #: includes/functions.php:724
3246
+ msgid "Brunei"
3247
+ msgstr ""
3248
+
3249
+ #: includes/functions.php:725
3250
+ msgid "Bulgaria"
3251
+ msgstr ""
3252
+
3253
+ #: includes/functions.php:726
3254
+ msgid "Burkina Faso"
3255
+ msgstr ""
3256
+
3257
+ #: includes/functions.php:727
3258
+ msgid "Burundi"
3259
+ msgstr ""
3260
+
3261
+ #: includes/functions.php:728
3262
+ msgid "Cambodia"
3263
+ msgstr ""
3264
+
3265
+ #: includes/functions.php:729
3266
+ msgid "Cameroon"
3267
+ msgstr ""
3268
+
3269
+ #: includes/functions.php:730
3270
+ msgid "Canada"
3271
+ msgstr ""
3272
+
3273
+ #: includes/functions.php:731
3274
+ msgid "Canary Islands"
3275
+ msgstr ""
3276
+
3277
+ #: includes/functions.php:732
3278
+ msgid "Cape Verde"
3279
+ msgstr ""
3280
+
3281
+ #: includes/functions.php:733
3282
+ msgid "Caribbean Netherlands"
3283
+ msgstr ""
3284
+
3285
+ #: includes/functions.php:734
3286
+ msgid "Cayman Islands"
3287
+ msgstr ""
3288
+
3289
+ #: includes/functions.php:735
3290
+ msgid "Central African Republic"
3291
+ msgstr ""
3292
+
3293
+ #: includes/functions.php:736
3294
+ msgid "Ceuta and Melilla"
3295
+ msgstr ""
3296
+
3297
+ #: includes/functions.php:737
3298
+ msgid "Chad"
3299
+ msgstr ""
3300
+
3301
+ #: includes/functions.php:738
3302
+ msgid "Chile"
3303
+ msgstr ""
3304
+
3305
+ #: includes/functions.php:739
3306
+ msgid "China"
3307
+ msgstr ""
3308
+
3309
+ #: includes/functions.php:740
3310
+ msgid "Christmas Island"
3311
+ msgstr ""
3312
+
3313
+ #: includes/functions.php:741
3314
+ msgid "Clipperton Island"
3315
+ msgstr ""
3316
+
3317
+ #: includes/functions.php:742
3318
+ msgid "Cocos (Keeling) Islands"
3319
+ msgstr ""
3320
+
3321
+ #: includes/functions.php:743
3322
+ msgid "Colombia"
3323
+ msgstr ""
3324
+
3325
+ #: includes/functions.php:744
3326
+ msgid "Comoros"
3327
+ msgstr ""
3328
+
3329
+ #: includes/functions.php:745
3330
+ msgid "Congo (DRC)"
3331
+ msgstr ""
3332
+
3333
+ #: includes/functions.php:746
3334
+ msgid "Congo (Republic)"
3335
+ msgstr ""
3336
+
3337
+ #: includes/functions.php:747
3338
+ msgid "Cook Islands"
3339
+ msgstr ""
3340
+
3341
+ #: includes/functions.php:748
3342
+ msgid "Costa Rica"
3343
+ msgstr ""
3344
+
3345
+ #: includes/functions.php:749
3346
+ msgid "Côte d’Ivoire"
3347
+ msgstr ""
3348
+
3349
+ #: includes/functions.php:750
3350
+ msgid "Croatia"
3351
+ msgstr ""
3352
+
3353
+ #: includes/functions.php:751
3354
+ msgid "Cuba"
3355
+ msgstr ""
3356
+
3357
+ #: includes/functions.php:752
3358
+ msgid "Curaçao"
3359
+ msgstr ""
3360
+
3361
+ #: includes/functions.php:753
3362
+ msgid "Cyprus"
3363
+ msgstr ""
3364
+
3365
+ #: includes/functions.php:754
3366
+ msgid "Czech Republic"
3367
+ msgstr ""
3368
+
3369
+ #: includes/functions.php:755
3370
+ msgid "Denmark (Danmark)"
3371
+ msgstr ""
3372
+
3373
+ #: includes/functions.php:756
3374
+ msgid "Diego Garcia"
3375
+ msgstr ""
3376
+
3377
+ #: includes/functions.php:757
3378
+ msgid "Djibouti"
3379
+ msgstr ""
3380
+
3381
+ #: includes/functions.php:758
3382
+ msgid "Dominica"
3383
+ msgstr ""
3384
+
3385
+ #: includes/functions.php:759
3386
+ msgid "Dominican Republic"
3387
+ msgstr ""
3388
+
3389
+ #: includes/functions.php:760
3390
+ msgid "Ecuador"
3391
+ msgstr ""
3392
+
3393
+ #: includes/functions.php:761
3394
+ msgid "Egypt"
3395
+ msgstr ""
3396
+
3397
+ #: includes/functions.php:762
3398
+ msgid "El Salvador"
3399
+ msgstr ""
3400
+
3401
+ #: includes/functions.php:763
3402
+ msgid "Equatorial Guinea"
3403
+ msgstr ""
3404
+
3405
+ #: includes/functions.php:764
3406
+ msgid "Eritrea"
3407
+ msgstr ""
3408
+
3409
+ #: includes/functions.php:765
3410
+ msgid "Estonia"
3411
+ msgstr ""
3412
+
3413
+ #: includes/functions.php:766
3414
+ msgid "Ethiopia"
3415
+ msgstr ""
3416
+
3417
+ #: includes/functions.php:767
3418
+ msgid "Falkland Islands"
3419
+ msgstr ""
3420
+
3421
+ #: includes/functions.php:768
3422
+ msgid "Faroe Islands"
3423
+ msgstr ""
3424
+
3425
+ #: includes/functions.php:769
3426
+ msgid "Fiji"
3427
+ msgstr ""
3428
+
3429
+ #: includes/functions.php:770
3430
+ msgid "Finland"
3431
+ msgstr ""
3432
+
3433
+ #: includes/functions.php:771
3434
+ #, fuzzy
3435
+ #| msgid "Cancel"
3436
+ msgid "France"
3437
+ msgstr "Abbrechen"
3438
+
3439
+ #: includes/functions.php:772
3440
+ msgid "French Guiana"
3441
+ msgstr ""
3442
+
3443
+ #: includes/functions.php:773
3444
+ msgid "French Polynesia"
3445
+ msgstr ""
3446
+
3447
+ #: includes/functions.php:774
3448
+ msgid "French Southern Territories"
3449
+ msgstr ""
3450
+
3451
+ #: includes/functions.php:775
3452
+ msgid "Gabon"
3453
+ msgstr ""
3454
+
3455
+ #: includes/functions.php:776
3456
+ msgid "Gambia"
3457
+ msgstr ""
3458
+
3459
+ #: includes/functions.php:778
3460
+ msgid "Germany"
3461
+ msgstr ""
3462
+
3463
+ #: includes/functions.php:779
3464
+ msgid "Ghana"
3465
+ msgstr ""
3466
+
3467
+ #: includes/functions.php:780
3468
+ msgid "Gibraltar"
3469
+ msgstr ""
3470
+
3471
+ #: includes/functions.php:781
3472
+ msgid "Greece"
3473
+ msgstr ""
3474
+
3475
+ #: includes/functions.php:782
3476
+ msgid "Greenland"
3477
+ msgstr ""
3478
+
3479
+ #: includes/functions.php:783
3480
+ msgid "Grenada"
3481
+ msgstr ""
3482
+
3483
+ #: includes/functions.php:784
3484
+ msgid "Guadeloupe"
3485
+ msgstr ""
3486
+
3487
+ #: includes/functions.php:785
3488
+ msgid "Guam"
3489
+ msgstr ""
3490
+
3491
+ #: includes/functions.php:786
3492
+ msgid "Guatemala"
3493
+ msgstr ""
3494
+
3495
+ #: includes/functions.php:787
3496
+ msgid "Guernsey"
3497
+ msgstr ""
3498
+
3499
+ #: includes/functions.php:788
3500
+ msgid "Guinea"
3501
+ msgstr ""
3502
+
3503
+ #: includes/functions.php:789
3504
+ msgid "Guinea-Bissau"
3505
+ msgstr ""
3506
+
3507
+ #: includes/functions.php:790
3508
+ msgid "Guyana"
3509
+ msgstr ""
3510
+
3511
+ #: includes/functions.php:791
3512
+ msgid "Haiti"
3513
+ msgstr ""
3514
+
3515
+ #: includes/functions.php:792
3516
+ msgid "Heard & McDonald Islands"
3517
+ msgstr ""
3518
+
3519
+ #: includes/functions.php:793
3520
+ msgid "Honduras"
3521
+ msgstr ""
3522
+
3523
+ #: includes/functions.php:794
3524
+ #, fuzzy
3525
+ #| msgid "Hong Kong Dollar"
3526
+ msgid "Hong Kong"
3527
+ msgstr "Hong Kong Dollar"
3528
+
3529
+ #: includes/functions.php:795
3530
+ msgid "Hungary"
3531
+ msgstr ""
3532
+
3533
+ #: includes/functions.php:796
3534
+ msgid "Iceland"
3535
+ msgstr ""
3536
+
3537
+ #: includes/functions.php:797
3538
+ msgid "India"
3539
+ msgstr ""
3540
+
3541
+ #: includes/functions.php:798
3542
+ msgid "Indonesia"
3543
+ msgstr ""
3544
+
3545
+ #: includes/functions.php:799
3546
+ msgid "Iran"
3547
+ msgstr ""
3548
+
3549
+ #: includes/functions.php:800
3550
+ msgid "Iraq"
3551
+ msgstr ""
3552
+
3553
+ #: includes/functions.php:801
3554
+ msgid "Ireland"
3555
+ msgstr ""
3556
+
3557
+ #: includes/functions.php:802
3558
+ msgid "Isle of Man"
3559
+ msgstr ""
3560
+
3561
+ #: includes/functions.php:803
3562
+ msgid "Israel"
3563
+ msgstr ""
3564
+
3565
+ #: includes/functions.php:804
3566
+ msgid "Italy"
3567
+ msgstr ""
3568
+
3569
+ #: includes/functions.php:805
3570
+ msgid "Jamaica"
3571
+ msgstr ""
3572
+
3573
+ #: includes/functions.php:806
3574
+ msgid "Japan"
3575
+ msgstr ""
3576
+
3577
+ #: includes/functions.php:807
3578
+ msgid "Jersey"
3579
+ msgstr ""
3580
+
3581
+ #: includes/functions.php:808
3582
+ msgid "Jordan"
3583
+ msgstr ""
3584
+
3585
+ #: includes/functions.php:809
3586
+ msgid "Kazakhstan"
3587
+ msgstr ""
3588
+
3589
+ #: includes/functions.php:810
3590
+ msgid "Kenya"
3591
+ msgstr ""
3592
+
3593
+ #: includes/functions.php:811
3594
+ msgid "Kiribati"
3595
+ msgstr ""
3596
+
3597
+ #: includes/functions.php:812
3598
+ msgid "Kosovo"
3599
+ msgstr ""
3600
+
3601
+ #: includes/functions.php:813
3602
+ msgid "Kuwait"
3603
+ msgstr ""
3604
+
3605
+ #: includes/functions.php:814
3606
+ msgid "Kyrgyzstan"
3607
+ msgstr ""
3608
+
3609
+ #: includes/functions.php:815
3610
+ msgid "Laos"
3611
+ msgstr ""
3612
+
3613
+ #: includes/functions.php:816
3614
+ msgid "Latvia"
3615
+ msgstr ""
3616
+
3617
+ #: includes/functions.php:817
3618
+ msgid "Lebanon"
3619
+ msgstr ""
3620
+
3621
+ #: includes/functions.php:818
3622
+ msgid "Lesotho"
3623
+ msgstr ""
3624
+
3625
+ #: includes/functions.php:819
3626
+ msgid "Liberia"
3627
+ msgstr ""
3628
+
3629
+ #: includes/functions.php:820
3630
+ msgid "Libya"
3631
+ msgstr ""
3632
+
3633
+ #: includes/functions.php:821
3634
+ msgid "Liechtenstein"
3635
+ msgstr ""
3636
+
3637
+ #: includes/functions.php:822
3638
+ msgid "Lithuania"
3639
+ msgstr ""
3640
+
3641
+ #: includes/functions.php:823
3642
+ msgid "Luxembourg"
3643
+ msgstr ""
3644
+
3645
+ #: includes/functions.php:824
3646
+ msgid "Macau"
3647
+ msgstr ""
3648
+
3649
+ #: includes/functions.php:825
3650
+ msgid "Macedonia (FYROM)"
3651
+ msgstr ""
3652
+
3653
+ #: includes/functions.php:826
3654
+ msgid "Madagascar"
3655
+ msgstr ""
3656
+
3657
+ #: includes/functions.php:827
3658
+ msgid "Malawi"
3659
+ msgstr ""
3660
+
3661
+ #: includes/functions.php:828
3662
+ #, fuzzy
3663
+ #| msgid "Malaysian Ringgit"
3664
+ msgid "Malaysia"
3665
+ msgstr "Malaysischer Ringgit "
3666
+
3667
+ #: includes/functions.php:829
3668
+ msgid "Maldives"
3669
+ msgstr ""
3670
+
3671
+ #: includes/functions.php:830
3672
+ msgid "Mali"
3673
+ msgstr ""
3674
+
3675
+ #: includes/functions.php:831
3676
+ msgid "Malta"
3677
+ msgstr ""
3678
+
3679
+ #: includes/functions.php:832
3680
+ msgid "Marshall Islands"
3681
+ msgstr ""
3682
+
3683
+ #: includes/functions.php:833
3684
+ msgid "Martinique"
3685
+ msgstr ""
3686
+
3687
+ #: includes/functions.php:834
3688
+ msgid "Mauritania"
3689
+ msgstr ""
3690
+
3691
+ #: includes/functions.php:835
3692
+ msgid "Mauritius"
3693
+ msgstr ""
3694
+
3695
+ #: includes/functions.php:836
3696
+ msgid "Mayotte"
3697
+ msgstr ""
3698
+
3699
+ #: includes/functions.php:837
3700
+ #, fuzzy
3701
+ #| msgid "Mexican Peso"
3702
+ msgid "Mexico"
3703
+ msgstr "Mexikanischer Peso"
3704
+
3705
+ #: includes/functions.php:838
3706
+ msgid "Micronesia"
3707
+ msgstr ""
3708
+
3709
+ #: includes/functions.php:839
3710
+ msgid "Moldova"
3711
+ msgstr ""
3712
+
3713
+ #: includes/functions.php:840
3714
+ msgid "Monaco"
3715
+ msgstr ""
3716
+
3717
+ #: includes/functions.php:841
3718
+ msgid "Mongolia"
3719
+ msgstr ""
3720
+
3721
+ #: includes/functions.php:842
3722
+ msgid "Montenegro"
3723
+ msgstr ""
3724
+
3725
+ #: includes/functions.php:843
3726
+ #, fuzzy
3727
+ #| msgid "Months"
3728
+ msgid "Montserrat"
3729
+ msgstr "Monate"
3730
+
3731
+ #: includes/functions.php:844
3732
+ msgid "Morocco"
3733
+ msgstr ""
3734
+
3735
+ #: includes/functions.php:845
3736
+ msgid "Mozambique"
3737
+ msgstr ""
3738
+
3739
+ #: includes/functions.php:846
3740
+ msgid "Myanmar"
3741
+ msgstr ""
3742
+
3743
+ #: includes/functions.php:847
3744
+ msgid "Namibia"
3745
+ msgstr ""
3746
+
3747
+ #: includes/functions.php:848
3748
+ msgid "Nauru"
3749
+ msgstr ""
3750
+
3751
+ #: includes/functions.php:849
3752
+ msgid "Nepal"
3753
+ msgstr ""
3754
+
3755
+ #: includes/functions.php:850
3756
+ msgid "Netherlands"
3757
+ msgstr ""
3758
+
3759
+ #: includes/functions.php:851
3760
+ msgid "New Caledonia"
3761
+ msgstr ""
3762
+
3763
+ #: includes/functions.php:852
3764
+ #, fuzzy
3765
+ #| msgid "New Zealand Dollar"
3766
+ msgid "New Zealand"
3767
+ msgstr "Neuseeländischer Doller"
3768
+
3769
+ #: includes/functions.php:853
3770
+ msgid "Nicaragua"
3771
+ msgstr ""
3772
+
3773
+ #: includes/functions.php:854
3774
+ msgid "Niger"
3775
+ msgstr ""
3776
+
3777
+ #: includes/functions.php:855
3778
+ msgid "Nigeria"
3779
+ msgstr ""
3780
+
3781
+ #: includes/functions.php:856
3782
+ msgid "Niue"
3783
+ msgstr ""
3784
+
3785
+ #: includes/functions.php:857
3786
+ msgid "Norfolk Island"
3787
+ msgstr ""
3788
+
3789
+ #: includes/functions.php:858
3790
+ msgid "Northern Mariana Islands"
3791
+ msgstr ""
3792
+
3793
+ #: includes/functions.php:859
3794
+ msgid "North Korea"
3795
+ msgstr ""
3796
+
3797
+ #: includes/functions.php:860
3798
+ msgid "Norway"
3799
+ msgstr ""
3800
+
3801
+ #: includes/functions.php:861
3802
+ msgid "Oman"
3803
+ msgstr ""
3804
+
3805
+ #: includes/functions.php:862
3806
+ msgid "Pakistan"
3807
+ msgstr ""
3808
+
3809
+ #: includes/functions.php:863
3810
+ msgid "Palau"
3811
+ msgstr ""
3812
+
3813
+ #: includes/functions.php:864
3814
+ msgid "Palestine"
3815
+ msgstr ""
3816
+
3817
+ #: includes/functions.php:865
3818
+ msgid "Panama"
3819
+ msgstr ""
3820
+
3821
+ #: includes/functions.php:866
3822
+ msgid "Papua New Guinea"
3823
+ msgstr ""
3824
+
3825
+ #: includes/functions.php:867
3826
+ msgid "Paraguay"
3827
+ msgstr ""
3828
+
3829
+ #: includes/functions.php:868
3830
+ msgid "Peru"
3831
+ msgstr ""
3832
+
3833
+ #: includes/functions.php:869
3834
+ #, fuzzy
3835
+ #| msgid "Philippine Peso"
3836
+ msgid "Philippines"
3837
+ msgstr "Philippinischer Peso"
3838
+
3839
+ #: includes/functions.php:870
3840
+ msgid "Pitcairn Islands"
3841
+ msgstr ""
3842
+
3843
+ #: includes/functions.php:871
3844
+ msgid "Poland"
3845
+ msgstr ""
3846
+
3847
+ #: includes/functions.php:872
3848
+ msgid "Portugal"
3849
+ msgstr ""
3850
+
3851
+ #: includes/functions.php:873
3852
+ msgid "Puerto Rico"
3853
+ msgstr ""
3854
+
3855
+ #: includes/functions.php:874
3856
+ msgid "Qatar"
3857
+ msgstr ""
3858
+
3859
+ #: includes/functions.php:875
3860
+ msgid "Réunion"
3861
+ msgstr ""
3862
+
3863
+ #: includes/functions.php:876
3864
+ msgid "Romania"
3865
+ msgstr ""
3866
+
3867
+ #: includes/functions.php:877
3868
+ #, fuzzy
3869
+ #| msgid "Russian Ruble"
3870
+ msgid "Russia"
3871
+ msgstr "Russischer Rubel"
3872
+
3873
+ #: includes/functions.php:878
3874
+ msgid "Rwanda"
3875
+ msgstr ""
3876
+
3877
+ #: includes/functions.php:879
3878
+ msgid "Saint Barthélemy"
3879
+ msgstr ""
3880
+
3881
+ #: includes/functions.php:880
3882
+ msgid "Saint Helena"
3883
+ msgstr ""
3884
+
3885
+ #: includes/functions.php:881
3886
+ msgid "Saint Kitts and Nevis"
3887
+ msgstr ""
3888
+
3889
+ #: includes/functions.php:882
3890
+ msgid "Saint Lucia"
3891
+ msgstr ""
3892
+
3893
+ #: includes/functions.php:883
3894
+ msgid "Saint Martin"
3895
+ msgstr ""
3896
+
3897
+ #: includes/functions.php:884
3898
+ msgid "Saint Pierre and Miquelon"
3899
+ msgstr ""
3900
+
3901
+ #: includes/functions.php:885
3902
+ msgid "Samoa"
3903
+ msgstr ""
3904
+
3905
+ #: includes/functions.php:886
3906
+ msgid "San Marino"
3907
+ msgstr ""
3908
+
3909
+ #: includes/functions.php:887
3910
+ msgid "São Tomé and Príncipe"
3911
+ msgstr ""
3912
+
3913
+ #: includes/functions.php:888
3914
+ msgid "Saudi Arabia"
3915
+ msgstr ""
3916
+
3917
+ #: includes/functions.php:889
3918
+ msgid "Senegal"
3919
+ msgstr ""
3920
+
3921
+ #: includes/functions.php:890
3922
+ msgid "Serbia"
3923
+ msgstr ""
3924
+
3925
+ #: includes/functions.php:891
3926
+ msgid "Seychelles"
3927
+ msgstr ""
3928
+
3929
+ #: includes/functions.php:892
3930
+ msgid "Sierra Leone"
3931
+ msgstr ""
3932
+
3933
+ #: includes/functions.php:893
3934
+ #, fuzzy
3935
+ #| msgid "Singapore Dollar"
3936
+ msgid "Singapore"
3937
+ msgstr "Singapur Dollar"
3938
+
3939
+ #: includes/functions.php:894
3940
+ msgid "Sint Maarten"
3941
+ msgstr ""
3942
+
3943
+ #: includes/functions.php:895
3944
+ msgid "Slovakia"
3945
+ msgstr ""
3946
+
3947
+ #: includes/functions.php:896
3948
+ msgid "Slovenia"
3949
+ msgstr ""
3950
+
3951
+ #: includes/functions.php:897
3952
+ msgid "Solomon Islands"
3953
+ msgstr ""
3954
+
3955
+ #: includes/functions.php:898
3956
+ msgid "Somalia"
3957
+ msgstr ""
3958
+
3959
+ #: includes/functions.php:899
3960
+ #, fuzzy
3961
+ #| msgid "South African Rand"
3962
+ msgid "South Africa"
3963
+ msgstr "Südafrikanischer Rand"
3964
+
3965
+ #: includes/functions.php:900
3966
+ msgid "South Georgia & South Sandwich Islands"
3967
+ msgstr ""
3968
+
3969
+ #: includes/functions.php:901
3970
+ msgid "South Korea"
3971
+ msgstr ""
3972
+
3973
+ #: includes/functions.php:902
3974
+ msgid "South Sudan"
3975
+ msgstr ""
3976
+
3977
+ #: includes/functions.php:903
3978
+ msgid "Spain"
3979
+ msgstr ""
3980
+
3981
+ #: includes/functions.php:904
3982
+ msgid "Sri Lanka"
3983
+ msgstr ""
3984
+
3985
+ #: includes/functions.php:905
3986
+ msgid "St. Vincent & Grenadines"
3987
+ msgstr ""
3988
+
3989
+ #: includes/functions.php:906
3990
+ msgid "Sudan"
3991
+ msgstr ""
3992
+
3993
+ #: includes/functions.php:907
3994
+ msgid "Suriname"
3995
+ msgstr ""
3996
+
3997
+ #: includes/functions.php:908
3998
+ msgid "Svalbard and Jan Mayen"
3999
+ msgstr ""
4000
+
4001
+ #: includes/functions.php:909
4002
+ msgid "Swaziland"
4003
+ msgstr ""
4004
+
4005
+ #: includes/functions.php:910
4006
+ msgid "Sweden"
4007
+ msgstr ""
4008
+
4009
+ #: includes/functions.php:911
4010
+ msgid "Switzerland"
4011
+ msgstr ""
4012
+
4013
+ #: includes/functions.php:912
4014
+ msgid "Syria"
4015
+ msgstr ""
4016
+
4017
+ #: includes/functions.php:913
4018
+ msgid "Taiwan"
4019
+ msgstr ""
4020
+
4021
+ #: includes/functions.php:914
4022
+ msgid "Tajikistan"
4023
+ msgstr ""
4024
+
4025
+ #: includes/functions.php:915
4026
+ msgid "Tanzania"
4027
+ msgstr ""
4028
+
4029
+ #: includes/functions.php:916
4030
+ msgid "Thailand"
4031
+ msgstr ""
4032
+
4033
+ #: includes/functions.php:917
4034
+ msgid "Timor-Leste"
4035
+ msgstr ""
4036
+
4037
+ #: includes/functions.php:918
4038
+ msgid "Togo"
4039
+ msgstr ""
4040
+
4041
+ #: includes/functions.php:919
4042
+ msgid "Tokelau"
4043
+ msgstr ""
4044
+
4045
+ #: includes/functions.php:920
4046
+ msgid "Tonga"
4047
+ msgstr ""
4048
+
4049
+ #: includes/functions.php:921
4050
+ msgid "Trinidad and Tobago"
4051
+ msgstr ""
4052
+
4053
+ #: includes/functions.php:922
4054
+ msgid "Tristan da Cunha"
4055
+ msgstr ""
4056
+
4057
+ #: includes/functions.php:923
4058
+ msgid "Tunisia"
4059
+ msgstr ""
4060
+
4061
+ #: includes/functions.php:924
4062
+ msgid "Turkey"
4063
+ msgstr ""
4064
+
4065
+ #: includes/functions.php:925
4066
+ msgid "Turkmenistan"
4067
+ msgstr ""
4068
+
4069
+ #: includes/functions.php:926
4070
+ msgid "Turks and Caicos Islands"
4071
+ msgstr ""
4072
+
4073
+ #: includes/functions.php:927
4074
+ msgid "Tuvalu"
4075
+ msgstr ""
4076
+
4077
+ #: includes/functions.php:928
4078
+ msgid "U.S. Outlying Islands"
4079
+ msgstr ""
4080
+
4081
+ #: includes/functions.php:929
4082
+ msgid "U.S. Virgin Islands"
4083
+ msgstr ""
4084
+
4085
+ #: includes/functions.php:930
4086
+ msgid "Uganda"
4087
+ msgstr ""
4088
+
4089
+ #: includes/functions.php:931
4090
+ msgid "Ukraine"
4091
+ msgstr ""
4092
+
4093
+ #: includes/functions.php:932
4094
+ msgid "United Arab Emirates"
4095
+ msgstr ""
4096
+
4097
+ #: includes/functions.php:933
4098
+ msgid "United Kingdom"
4099
+ msgstr ""
4100
+
4101
+ #: includes/functions.php:934
4102
+ #, fuzzy
4103
+ #| msgid "States"
4104
+ msgid "United States"
4105
+ msgstr "Bundesländer"
4106
+
4107
+ #: includes/functions.php:935
4108
+ msgid "Uruguay"
4109
+ msgstr ""
4110
+
4111
+ #: includes/functions.php:936
4112
+ msgid "Uzbekistan"
4113
+ msgstr ""
4114
+
4115
+ #: includes/functions.php:937
4116
+ msgid "Vanuatu"
4117
+ msgstr ""
4118
+
4119
+ #: includes/functions.php:938
4120
+ msgid "Vatican City"
4121
+ msgstr ""
4122
+
4123
+ #: includes/functions.php:939
4124
+ msgid "Venezuela"
4125
+ msgstr ""
4126
+
4127
+ #: includes/functions.php:940
4128
+ msgid "Vietnam"
4129
+ msgstr ""
4130
+
4131
+ #: includes/functions.php:941
4132
+ msgid "Wallis and Futuna"
4133
+ msgstr ""
4134
+
4135
+ #: includes/functions.php:942
4136
+ msgid "Western Sahara"
4137
+ msgstr ""
4138
+
4139
+ #: includes/functions.php:943
4140
+ msgid "Yemen"
4141
+ msgstr ""
4142
+
4143
+ #: includes/functions.php:944
4144
+ msgid "Zambia"
4145
+ msgstr ""
4146
+
4147
+ #: includes/functions.php:945
4148
+ msgid "Zimbabwe"
4149
+ msgstr ""
4150
+
4151
+ #: includes/functions.php:960
4152
+ msgid "January"
4153
+ msgstr ""
4154
+
4155
+ #: includes/functions.php:961
4156
+ msgid "February"
4157
+ msgstr ""
4158
+
4159
+ #: includes/functions.php:962
4160
+ msgid "March"
4161
+ msgstr ""
4162
+
4163
+ #: includes/functions.php:963
4164
+ msgid "April"
4165
+ msgstr ""
4166
+
4167
+ #: includes/functions.php:964
4168
+ msgid "May"
4169
+ msgstr ""
4170
+
4171
+ #: includes/functions.php:965
4172
+ msgid "June"
4173
+ msgstr ""
4174
+
4175
+ #: includes/functions.php:966
4176
+ msgid "July"
4177
+ msgstr ""
4178
+
4179
+ #: includes/functions.php:967
4180
+ msgid "August"
4181
+ msgstr ""
4182
+
4183
+ #: includes/functions.php:968
4184
+ msgid "September"
4185
+ msgstr ""
4186
+
4187
+ #: includes/functions.php:969
4188
+ msgid "October"
4189
+ msgstr ""
4190
+
4191
+ #: includes/functions.php:970
4192
+ #, fuzzy
4193
+ #| msgid "Number"
4194
+ msgid "November"
4195
+ msgstr "Zahl"
4196
+
4197
+ #: includes/functions.php:971
4198
+ msgid "December"
4199
+ msgstr ""
4200
+
4201
+ #: includes/functions.php:986
4202
+ msgid "Sunday"
4203
+ msgstr ""
4204
+
4205
+ #: includes/functions.php:987
4206
+ msgid "Monday"
4207
+ msgstr ""
4208
+
4209
+ #: includes/functions.php:988
4210
+ msgid "Tuesday"
4211
+ msgstr ""
4212
+
4213
+ #: includes/functions.php:989
4214
+ msgid "Wednesday"
4215
+ msgstr ""
4216
+
4217
+ #: includes/functions.php:990
4218
+ msgid "Thursday"
4219
+ msgstr ""
4220
+
4221
+ #: includes/functions.php:991
4222
+ msgid "Friday"
4223
+ msgstr ""
4224
+
4225
+ #: includes/functions.php:992
4226
+ msgid "Saturday"
4227
+ msgstr ""
4228
+
4229
+ #: includes/integrations.php:32
4230
+ msgid "Select a form to display"
4231
+ msgstr "Ein Formular auswählen, das angezeigt werden soll."
4232
+
4233
+ #: includes/integrations.php:39
4234
+ msgid "No forms found"
4235
+ msgstr "Keine Formulare vorhanden"
4236
+
4237
+ #: includes/integrations.php:48
4238
+ msgid "Content"
4239
+ msgstr "Inhalt"
4240
+
4241
+ #: includes/integrations.php:49
4242
+ msgid "Add your form"
4243
+ msgstr "Ihr Formular hinzufügen"
4244
+
4245
+ #: includes/integrations.php:57
4246
+ msgid "Select a form to add it to your post or page."
4247
+ msgstr ""
4248
+ "Wählen Sie ein Formular, um es Ihrem Beitrag oder Ihrer Seite hinzuzufügen."
4249
+
4250
+ #: includes/integrations.php:62
4251
  #, fuzzy
4252
  #| msgid "Display Form Title"
4253
  msgid "Display Form Name"
4279
  msgid "Connection"
4280
  msgstr "Verbindung"
4281
 
4282
+ #: includes/providers/class-base.php:163 includes/providers/class-base.php:1115
4283
+ #: includes/providers/class-base.php:1163
4284
  msgid "You do not have permission"
4285
  msgstr "Sie haben keine Zugriffsrechte"
4286
 
4312
  msgid "%s (Last)"
4313
  msgstr "Vor- Zu-"
4314
 
4315
+ #: includes/providers/class-base.php:701
4316
  msgid "Select Account"
4317
  msgstr "Konto auswählen"
4318
 
4319
+ #: includes/providers/class-base.php:713
4320
  #: includes/providers/class-constant-contact.php:490
4321
  msgid "Add New Account"
4322
  msgstr "Neues Konto hinzufügen"
4323
 
4324
+ #: includes/providers/class-base.php:746
4325
  msgid "Select List"
4326
  msgstr "Liste/Verteiler auswählen"
4327
 
4328
+ #: includes/providers/class-base.php:792
4329
  msgid "Select Groups"
4330
  msgstr "Gruppen auswählen"
4331
 
4332
+ #: includes/providers/class-base.php:794
4333
  msgid ""
4334
  "We also noticed that you have some segments in your list. You can select "
4335
  "specific list segments below if needed. This is optional."
4338
  "können spezifische Segmente unterhalb auswählen, wenn nötig. Das ist "
4339
  "optional."
4340
 
4341
+ #: includes/providers/class-base.php:854 includes/providers/class-base.php:859
4342
  msgid "List Fields"
4343
  msgstr "Feldlisten"
4344
 
4345
+ #: includes/providers/class-base.php:859
4346
  msgid "Available Form Fields"
4347
  msgstr "Verfügbare Formularfelder"
4348
 
4349
+ #: includes/providers/class-base.php:933
4350
  msgid "Process"
4351
  msgstr "Verarbeiten"
4352
 
4353
+ #: includes/providers/class-base.php:934
4354
  msgid "Don't process"
4355
  msgstr "Nicht verarbeiten"
4356
 
4357
+ #: includes/providers/class-base.php:936
4358
  msgid "this connection if"
4359
  msgstr "die Schnittstelle ist"
4360
 
4361
+ #: includes/providers/class-base.php:937
4362
  msgid "Marketing provider connection"
4363
  msgstr "Marketing-Provider Schnittstelle"
4364
 
4365
+ #: includes/providers/class-base.php:1051
4366
  #, fuzzy
4367
  #| msgid "Add New"
4368
  msgctxt "Provider Type"
4369
  msgid "Add New %s"
4370
  msgstr "Neues erstellen"
4371
 
4372
+ #: includes/providers/class-base.php:1123
4373
+ #: includes/providers/class-base.php:1171
4374
  msgid "Missing data"
4375
  msgstr "Fehlende Daten"
4376
 
4377
+ #: includes/providers/class-base.php:1139
4378
  msgid "Connection missing"
4379
  msgstr "Schnittstelle fehlt"
4380
 
4381
+ #: includes/providers/class-base.php:1183
4382
  msgid "Could not connect to the provider."
4383
  msgstr ""
4384
 
4385
+ #: includes/providers/class-base.php:1192
4386
+ #: includes/providers/class-base.php:1265
4387
  #, fuzzy
4388
  #| msgid "Connected on: "
4389
  msgctxt "Connection date"
4390
  msgid "Connected on: %s"
4391
  msgstr "Verbunden am:"
4392
 
4393
+ #: includes/providers/class-base.php:1193
4394
+ #: includes/providers/class-base.php:1266
4395
  #, fuzzy
4396
  #| msgid "Disconnect "
4397
  msgid "Disconnect"
4398
  msgstr "Verbindung getrennt"
4399
 
4400
  #. translators: %s - provider name.
4401
+ #: includes/providers/class-base.php:1221
4402
  #, fuzzy
4403
  #| msgid "Connect to"
4404
  msgid "Connect to %s"
4405
  msgstr "Verbunden mit"
4406
 
4407
  #. translators: %s - provider name.
4408
+ #: includes/providers/class-base.php:1248
4409
  msgid "Integrate %s with WPForms"
4410
  msgstr "Integriert <strong>%s</strong> in WPForms"
4411
 
4412
+ #: includes/providers/class-base.php:1251
4413
  msgid "Connected"
4414
  msgstr "Verbunden"
4415
 
4416
+ #: includes/providers/class-base.php:1276
4417
  #, fuzzy
4418
  #| msgid "Add New Account"
4419
  msgctxt "New Provider Account"
4420
  msgid "Add New Account"
4421
  msgstr "Neues Konto hinzufügen"
4422
 
4423
+ #: includes/providers/class-base.php:1283
4424
  msgid ""
4425
  "Please fill out all of the fields below to add your new provider account."
4426
  msgstr ""
4740
  "Drag&Drop-Generator zu erstellen."
4741
 
4742
  #: includes/templates/class-blank.php:34
4743
+ #: includes/templates/class-contact.php:66
4744
  #: includes/templates/class-subscribe.php:52
4745
+ #: includes/templates/class-suggestion.php:91
4746
  #: pro/includes/templates/class-donation.php:66
4747
  #: pro/includes/templates/class-order.php:100
4748
  #: pro/includes/templates/class-request-quote.php:70
4834
  msgid "New %s Entry"
4835
  msgstr "Neue %s Einträge"
4836
 
4837
+ #: lite/wpforms-lite.php:92 pro/wpforms-pro.php:471
4838
  msgid "Send To Email Address"
4839
  msgstr "Sende an E-Mail-Adresse"
4840
 
4841
+ #: lite/wpforms-lite.php:95 pro/wpforms-pro.php:474
4842
  msgid ""
4843
  "Enter the email address to receive form entry notifications. For multiple "
4844
  "notifications, separate email addresses with a comma."
4847
  "Einträge gesendet werden sollen. Sie können auch mehrere E-Mail-Adressen mit "
4848
  "einem Komma getrennt eingeben."
4849
 
4850
+ #: lite/wpforms-lite.php:111 pro/wpforms-pro.php:490
4851
  msgid "CC"
4852
  msgstr "CC"
4853
 
4854
+ #: lite/wpforms-lite.php:127 pro/wpforms-pro.php:506
4855
  msgid "Email Subject"
4856
  msgstr "Betreff (E-Mail)"
4857
 
4858
+ #: lite/wpforms-lite.php:129 pro/wpforms-pro.php:508
4859
  #, fuzzy
4860
  #| msgid "New Entry: "
4861
  msgctxt "Form name"
4862
  msgid "New Entry: %s"
4863
  msgstr "Neuer Eintrag:"
4864
 
4865
+ #: lite/wpforms-lite.php:142 pro/wpforms-pro.php:521
4866
  msgid "From Name"
4867
  msgstr "(From) Name"
4868
 
4869
+ #: lite/wpforms-lite.php:158 pro/wpforms-pro.php:537
4870
  msgid "From Email"
4871
  msgstr "(From) E-Mail-Adresse"
4872
 
4873
+ #: lite/wpforms-lite.php:174 pro/wpforms-pro.php:553
4874
  msgid "Reply-To"
4875
  msgstr "Reply-To"
4876
 
4877
+ #: lite/wpforms-lite.php:199 pro/wpforms-pro.php:578
4878
  msgid ""
4879
  "To display all form fields, use the <code>{all_fields}</code> Smart Tag."
4880
  msgstr "Verwenden Sie den {all_fields} Smart Tag, um alle Felder anzuzeigen."
4881
 
4882
+ #: lite/wpforms-lite.php:215 pro/includes/templates/class-request-quote.php:20
4883
  msgid "Request A Quote Form"
4884
  msgstr "Erstellen Sie ein Anfrageformular"
4885
 
4886
+ #: lite/wpforms-lite.php:217 pro/includes/templates/class-request-quote.php:22
4887
  msgid ""
4888
  "Start collecting leads with this pre-made Request a quote form. You can add "
4889
  "and remove fields as needed."
4891
  "Sammeln Sie Leads mit diesem vorgefertigten Anfrageformular. Sie können "
4892
  "Felder hinzufügen oder löschen."
4893
 
4894
+ #: lite/wpforms-lite.php:220 pro/includes/templates/class-donation.php:20
4895
  msgid "Donation Form"
4896
  msgstr "Spendenformular"
4897
 
4898
+ #: lite/wpforms-lite.php:222 pro/includes/templates/class-donation.php:22
4899
  msgid ""
4900
  "Start collecting donation payments on your website with this ready-made "
4901
  "Donation form. You can add and remove fields as needed."
4902
  msgstr "Sammeln Sie Spenden mit diesem vorgefertigten Spendenformular."
4903
 
4904
+ #: lite/wpforms-lite.php:225 pro/includes/templates/class-order.php:20
4905
  msgid "Billing / Order Form"
4906
  msgstr "Bestellformular"
4907
 
4908
+ #: lite/wpforms-lite.php:227
4909
  #, fuzzy
4910
  #| msgid ""
4911
  #| "Collect Payments for product and service orders with this ready-made form "
4917
  "Nehmen Sie Zahlungen an für Produkte oder Dienstleistungen mit diesem "
4918
  "vorgefertigten Formular-Template. Sie können Felder hinzufügen oder löschen."
4919
 
4920
+ #: lite/wpforms-lite.php:232
4921
  #, fuzzy
4922
  #| msgid "Unlock More Features..."
4923
  msgid "Unlock Pre-Made Form Templates"
4924
  msgstr "Mehr Features freischalten ..."
4925
 
4926
+ #: lite/wpforms-lite.php:232 pro/includes/admin/class-upgrades.php:284
4927
  #, fuzzy
4928
  #| msgid "Upgrade Now"
4929
  msgid "Upgrade"
4930
  msgstr "Jetzt upgraden"
4931
 
4932
+ #: lite/wpforms-lite.php:235
4933
  msgid ""
4934
  "While WPForms Lite allows you to create any type of form, you can speed up "
4935
  "the process by unlocking our other pre-built form templates among other "
4936
  "features, so you never have to start from scratch again..."
4937
  msgstr ""
4938
 
4939
+ #: lite/wpforms-lite.php:384
4940
  #: pro/includes/admin/builder/panels/class-payments.php:21
4941
+ #: pro/wpforms-pro.php:156 pro/wpforms-pro.php:227
4942
  msgid "Payments"
4943
  msgstr "Zahlungen"
4944
 
4945
+ #: lite/wpforms-lite.php:408
4946
  msgid "is a PRO Feature"
4947
  msgstr "ist ein PRO-Feature"
4948
 
4949
+ #: lite/wpforms-lite.php:409
4950
  msgid ""
4951
  "We're sorry, %name% is not available on your plan.<br><br>Please upgrade to "
4952
  "the PRO plan to unlock all these awesome features."
4990
  msgid "Addon installed."
4991
  msgstr "Add-on installiert."
4992
 
4993
+ #: pro/includes/admin/ajax-actions.php:224
4994
+ #: pro/includes/admin/ajax-actions.php:269
4995
  #, fuzzy
4996
  #| msgid "Please enter a license key to verify."
4997
  msgid "Please enter a license key."
5101
  "Möchten Sie noch mehr Features? Holen Sie sich das Upgrade für Ihr WPForms "
5102
  "Konto und schalten Sie folgende Erweiterungen frei."
5103
 
 
 
 
 
 
 
5104
  #: pro/includes/admin/class-addons.php:225
5105
  #: pro/includes/admin/entries/class-entries-list-table.php:162
5106
  msgid "Status"
5178
  "\"%s\" target=\"_blank\" rel=\"noopener\">hier</a>, um Ihre Lizenz zu "
5179
  "erneuern und weiterhin automatisch Updates zu beziehen."
5180
 
5181
+ #. translators: %1$s - opening link tag; %2$s - closing link tag.
5182
+ #: pro/includes/admin/class-upgrades.php:247
5183
+ msgid ""
5184
+ "WPForms needs to upgrade the database, click %1$shere%2$s to start the "
5185
+ "upgrade."
5186
+ msgstr ""
5187
+
5188
+ #. translators: %1$s - opening link tag; %2$s - closing link tag.
5189
+ #: pro/includes/admin/class-upgrades.php:251
5190
+ msgid "WPForms database upgrade is incomplete, click %1$shere%2$s to resume."
5191
+ msgstr ""
5192
+
5193
+ #: pro/includes/admin/class-upgrades.php:274
5194
+ msgid "WPForms needs to upgrade the database, click the button below to begin."
5195
+ msgstr ""
5196
+
5197
+ #: pro/includes/admin/class-upgrades.php:275
5198
+ #, fuzzy
5199
+ #| msgid "Upgrade Now"
5200
+ msgid "Run Upgrade"
5201
+ msgstr "Jetzt upgraden"
5202
+
5203
+ #: pro/includes/admin/class-upgrades.php:278
5204
+ msgid ""
5205
+ "WPForms database upgrade is incomplete, click the button below to resume."
5206
+ msgstr ""
5207
+
5208
+ #: pro/includes/admin/class-upgrades.php:279
5209
+ #, fuzzy
5210
+ #| msgid "Upgrade Now"
5211
+ msgid "Resume Upgrade"
5212
+ msgstr "Jetzt upgraden"
5213
+
5214
+ #: pro/includes/admin/class-upgrades.php:286
5215
+ msgid ""
5216
+ "Please do not leave this page or close the browser while the upgrade is in "
5217
+ "progress."
5218
+ msgstr ""
5219
+
5220
+ #. translators: %1$s - total number of entries upgraded; %2$s - total number of
5221
+ #. entries on site.
5222
+ #: pro/includes/admin/class-upgrades.php:295
5223
+ msgid "Updated %1$s of %2$s entries."
5224
+ msgstr ""
5225
+
5226
+ #: pro/includes/admin/class-upgrades.php:310
5227
+ msgid "No updates are currently needed."
5228
+ msgstr ""
5229
+
5230
  #: pro/includes/admin/entries/class-entries-export.php:204
5231
  msgid "Date GMT"
5232
  msgstr "Datum GMT"
5414
  msgid "Select Form"
5415
  msgstr "Formular speichern"
5416
 
5417
+ #: pro/includes/admin/entries/class-entries-list.php:502
5418
  #, fuzzy
5419
  #| msgid "Current form entry"
5420
  msgid "Open form selector"
5421
  msgstr "Aktuelle Formulareintragung"
5422
 
5423
+ #: pro/includes/admin/entries/class-entries-list.php:527
5424
  msgid "Edit This Form"
5425
  msgstr "Formular bearbeiten"
5426
 
5427
+ #: pro/includes/admin/entries/class-entries-list.php:537
5428
  msgid "Download Export (CSV)"
5429
  msgstr "Export herunterladen (CSV)"
5430
 
5431
+ #: pro/includes/admin/entries/class-entries-list.php:542
5432
  msgid "Mark All Read"
5433
  msgstr "Alle als gelesen markieren"
5434
 
5435
+ #: pro/includes/admin/entries/class-entries-list.php:547
5436
  #, fuzzy
5437
  #| msgid "Delete rule"
5438
  msgid "Delete All"
6003
  "Markieren Sie diese Option, um den Besucher aufzufordern, seine E-Mail-"
6004
  "Adresse zweimal einzugeben."
6005
 
6006
+ #: pro/includes/fields/class-payment-credit-card.php:21 pro/wpforms-pro.php:219
6007
  msgid "Credit Card"
6008
  msgstr "Kreditkarte "
6009
 
6269
  msgid "Request"
6270
  msgstr "Anfrage"
6271
 
6272
+ #: pro/wpforms-pro.php:189
6273
  msgid "File Extension"
6274
  msgstr "Dateierweiterung"
6275
 
6276
+ #: pro/wpforms-pro.php:195
6277
  msgid "File Size"
6278
  msgstr "Dateigröße"
6279
 
6280
+ #: pro/wpforms-pro.php:201
6281
  msgid "Time (12 hour)"
6282
  msgstr "Uhrzeit (12h)"
6283
 
6284
+ #: pro/wpforms-pro.php:207
6285
  msgid "Time (24 hour)"
6286
  msgstr "Uhrzeit (24h)"
6287
 
6288
+ #: pro/wpforms-pro.php:213
6289
  msgid "Payment Required"
6290
  msgstr "Zahlung erforderlich"
6291
 
6292
+ #: pro/wpforms-pro.php:234
6293
  msgid "Currency"
6294
  msgstr "Währung"
6295
 
6296
+ #: pro/wpforms-pro.php:332
6297
  msgid "Disable storing entry information in WordPress"
6298
  msgstr "Deaktiviere das Speichern von Einträgen in WordPress"
6299
 
6300
+ #: pro/wpforms-pro.php:414
6301
  msgid "Add New Notification"
6302
  msgstr "Neue Benachrichtigung hinzufügen"
6303
 
6304
+ #: pro/wpforms-pro.php:591
6305
  msgid "Send"
6306
  msgstr "Sende"
6307
 
6308
+ #: pro/wpforms-pro.php:592
6309
  msgid "Don't send"
6310
  msgstr "Nicht senden"
6311
 
6312
+ #: pro/wpforms-pro.php:594
6313
  msgid "this notification if"
6314
  msgstr "diese Benachrichtung ist"
6315
 
6316
+ #: pro/wpforms-pro.php:595
6317
  msgid "Email notifications"
6318
  msgstr "E-Mail-Benachrichtigungen"
6319
 
6320
  #. translators: %s - Addons page URL in site admin area.
6321
+ #: pro/wpforms-pro.php:599
6322
  #, fuzzy
6323
  #| msgid ""
6324
  #| "Install the <a href=\"%s\">Conditional Logic add-on</a> to enable "
6331
  "Bedingungslogik für E-Mail-Benachrichtigungen zu aktivieren."
6332
 
6333
  #. translators: %s - URL to an announcement page.
6334
+ #: pro/wpforms-pro.php:650
6335
  #, fuzzy
6336
  #| msgid ""
6337
  #| "Conditional logic functionality is now included in the core WPForms "
6369
  "Einsteigerfreundliches Formular-Plugin für WordPress. Verwenden Sie den "
6370
  "Drag&Drop Builder um Ihr WordPress-Formulare zu erstellen."
6371
 
6372
+ #, fuzzy
6373
+ #~| msgid "Hide form title and description area"
6374
+ #~ msgid "Hide form name and description area"
6375
+ #~ msgstr "Formulartitel und -beschreibung ausblenden"
6376
+
6377
+ #~ msgid "Import/Export"
6378
+ #~ msgstr "Import/Export"
6379
+
6380
  #~ msgid ""
6381
  #~ "You do not have any marketing add-ons activated. You can head over to the "
6382
  #~ "<a href=\"%s\">Add-Ons page</a> to install and activate the add-on for "
6442
  #~ msgid "E-mail"
6443
  #~ msgstr "E-Mail"
6444
 
 
 
 
6445
  #~ msgid "General settings updated."
6446
  #~ msgstr "Allgemeine Einstellungen aktualisiert"
6447
 
languages/wpforms-fr_FR.mo CHANGED
Binary file
languages/wpforms-fr_FR.po CHANGED
@@ -4,15 +4,15 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: WPForms 1.0.4\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
7
- "POT-Creation-Date: 2016-03-18 21:52+0100\n"
8
- "PO-Revision-Date: 2016-03-18 22:42+0100\n"
9
  "Last-Translator: Nicolas Maillard <nicolas@absoluteweb.net>\n"
10
  "Language-Team: \n"
11
  "Language: fr_FR\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.8.7\n"
16
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
17
  "X-Poedit-KeywordsList: __;_e;_x;_n\n"
18
  "X-Poedit-Basepath: ..\n"
@@ -20,104 +20,414 @@ msgstr ""
20
  "X-Poedit-SearchPathExcluded-0: assets\n"
21
  "X-Poedit-SearchPathExcluded-1: languages\n"
22
 
23
- #: includes/admin/ajax-actions.php:25 includes/fields/class-base.php:438
24
- msgid "You do no have permission."
25
- msgstr "Vous n&rsquo;avez pas d&rsquo;autorisation."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
  #: includes/admin/ajax-actions.php:29
28
  msgid "No data provided"
29
  msgstr "Aucune donnée fournie"
30
 
31
- #: includes/admin/ajax-actions.php:35
32
- msgid "An error occured and the form could not be saved"
 
 
33
  msgstr ""
34
  "Une erreur s&rsquo;est produite et le formulaire ne peut pas être enregistrée"
35
 
36
- #: includes/admin/ajax-actions.php:59
37
- msgid "No form title provided"
38
- msgstr "Aucun titre de formulaire fourni"
 
 
39
 
40
- #: includes/admin/ajax-actions.php:77
41
  msgid "Error creating form"
42
  msgstr "Erreur lors de la création du formulaire"
43
 
44
- #: includes/admin/ajax-actions.php:94
45
  msgid "No form ID provided"
46
  msgstr "Aucun ID de formulaire fourni"
47
 
48
- #: includes/admin/ajax-actions.php:106
49
  msgid "Error updating form template"
50
  msgstr "Erreur lors de la mise à jour du modèle de formulaire"
51
 
52
- #: includes/admin/ajax-actions.php:123
53
- msgid "Addon deactivated."
54
- msgstr "Extension désactivée."
55
 
56
- #: includes/admin/ajax-actions.php:125
57
- msgid "Could not deactivate addon. Please deacticate from the Plugins page."
58
  msgstr ""
59
- "Impossible de désactiver l&rsquo;extension. Veuillez la désactiver depuis la "
60
- "page des extensions."
61
 
62
- #: includes/admin/ajax-actions.php:145
63
- msgid "Addon activated."
64
- msgstr "Extension activée."
 
65
 
66
- #: includes/admin/ajax-actions.php:149
67
- msgid "Could not activate addon. Please activate from the Plugins page."
 
 
 
 
 
 
 
68
  msgstr ""
69
- "Impossible d&rsquo;activer l&rsquo;extension. Veuillez l&rsquo;activer "
70
- "depuis la page des extensions."
71
 
72
- #: includes/admin/ajax-actions.php:164 includes/admin/ajax-actions.php:178
73
- #: includes/admin/ajax-actions.php:181 includes/admin/ajax-actions.php:205
 
 
 
 
 
 
 
 
 
74
  msgid ""
75
- "Could not install addon. Please download from wpforms.com and install "
76
- "manually."
 
77
  msgstr ""
78
- "Impossible d&rsquo;installer l&rsquo;extension. Veuillez la télécharger "
79
- "depuis wpforms.com et l&rsquo;installer manuellement."
80
 
81
- #: includes/admin/ajax-actions.php:200
82
- msgid "Addon installed."
83
- msgstr "Extension installée."
 
 
 
 
 
 
84
 
85
- #: includes/admin/builder/class-builder.php:240
86
- #: includes/admin/entries/class-entries-table.php:133
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  msgid "Field"
88
  msgstr "Champ"
89
 
90
- #: includes/admin/builder/class-builder.php:241
 
 
 
 
 
 
 
 
 
 
91
  msgid "Available Fields"
92
  msgstr "Champs disponibles"
93
 
94
- #: includes/admin/builder/class-builder.php:242
95
  msgid "No fields available"
96
  msgstr "Aucun champ disponible"
97
 
98
- #: includes/admin/builder/class-builder.php:244
99
- #: includes/admin/class-settings.php:115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  msgid "Saving ..."
101
  msgstr "Sauvegarde…"
102
 
103
- #: includes/admin/builder/class-builder.php:245
104
  msgid "Saved!"
105
  msgstr "Enregistré&nbsp;!"
106
 
107
- #: includes/admin/builder/class-builder.php:246
108
  msgid "Save and Exit"
109
  msgstr "Sauvegarder et quitter"
110
 
111
- #: includes/admin/builder/class-builder.php:247
112
- #: includes/admin/builder/class-builder.php:295
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  msgid "Loading"
114
  msgstr "Chargement en cours"
115
 
116
- #: includes/admin/builder/class-builder.php:253
117
  msgid "Use Template"
118
  msgstr "Utiliser un modèle"
119
 
120
- #: includes/admin/builder/class-builder.php:254
121
  msgid ""
122
  "Changing templates on an existing form will DELETE existing form fields. Are "
123
  "you sure you want apply the new template?"
@@ -125,45 +435,237 @@ msgstr ""
125
  "Changer les modèles sur un formulaire existant va SUPPRIMER les champs "
126
  "existants. Êtes-vous certain de vouloir appliquer le nouveau modèle&nbsp;?"
127
 
128
- #: includes/admin/builder/class-builder.php:255
129
- #: includes/admin/builder/class-builder.php:335
 
 
 
 
 
 
 
 
 
 
130
  msgid "Exit"
131
  msgstr "Quitter"
132
 
133
- #: includes/admin/builder/class-builder.php:257
134
  msgid "If you exit without saving, your changes will be lost."
135
  msgstr "Si vous quittez sans sauvegarder, vos modifications seront perdues."
136
 
137
- #: includes/admin/builder/class-builder.php:258
138
  msgid "Are you sure you want to delete this field?"
139
  msgstr "Êtes-vous certain de vouloir supprimer ce champ&nbsp;?"
140
 
141
- #: includes/admin/builder/class-builder.php:259
142
- msgid "Please enter a form title."
 
 
 
 
 
 
 
 
 
 
 
 
143
  msgstr "Veuillez saisir un titre de formulaire."
144
 
145
- #: includes/admin/builder/class-builder.php:260
146
  msgid "This item must contain at least one choice."
147
  msgstr "Cet élément doit contenir au moins un choix."
148
 
149
- #: includes/admin/builder/class-builder.php:262
150
- #: includes/admin/builder/functions.php:162 includes/fields/class-base.php:299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  msgid "Show Smart Tags"
152
  msgstr "Afficher les balises intelligentes"
153
 
154
- #: includes/admin/builder/class-builder.php:263
155
  msgid "Hide Smart Tags"
156
  msgstr "Masquer les balises intelligentes"
157
 
158
- #: includes/admin/builder/class-builder.php:318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  msgid "Now editing"
160
  msgstr "Modification en cours de"
161
 
162
- #: includes/admin/builder/class-builder.php:328
163
- #: includes/admin/builder/class-builder.php:330
164
- #: includes/admin/class-settings.php:350
165
- msgid "Save"
166
- msgstr "Enregistrer"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
 
168
  #: includes/admin/builder/panels/class-fields.php:21
169
  msgid "Fields"
@@ -185,99 +687,57 @@ msgstr ""
185
  "Vous devez <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
186
  "\">configurer votre formulaire</a> avant de pouvoir gérer les champs."
187
 
188
- #: includes/admin/builder/panels/class-fields.php:120
189
- #: includes/admin/builder/panels/class-settings.php:118
190
- #: includes/class-frontend.php:338 includes/fields/class-page-break.php:51
191
- #: includes/fields/class-page-break.php:76
192
- #: includes/fields/class-page-break.php:103
193
- msgid "Previous"
194
- msgstr "Précédente"
195
-
196
- #: includes/admin/builder/panels/class-fields.php:130
197
- #: includes/admin/builder/panels/class-settings.php:126
198
  msgid "Submit"
199
  msgstr "Envoyer"
200
 
201
- #: includes/admin/builder/panels/class-fields.php:150
202
  msgid "Standard Fields"
203
  msgstr "Champs standards"
204
 
205
- #: includes/admin/builder/panels/class-fields.php:154
206
  msgid "Fancy Fields"
207
  msgstr "Champs avancés"
208
 
209
- #: includes/admin/builder/panels/class-fields.php:158
210
  msgid "Payment Fields"
211
  msgstr "Champs de paiement"
212
 
213
- #: includes/admin/builder/panels/class-fields.php:208
214
  msgid "You don't have any fields yet."
215
  msgstr "Vous n&rsquo;avez pas encore de champ."
216
 
217
- #: includes/admin/builder/panels/class-fields.php:237
218
  msgid "You don't have any fields yet. Add some!"
219
  msgstr "Vous n&rsquo;avez pas encore de champ. Ajoutez-en&nbsp;!"
220
 
221
  #: includes/admin/builder/panels/class-fields.php:252
222
- #: includes/fields/class-base.php:469
223
- msgid "Delete Field"
 
 
224
  msgstr "Supprimer le champ"
225
 
226
  #: includes/admin/builder/panels/class-fields.php:254
227
- #: includes/fields/class-base.php:470
 
 
 
 
 
228
  msgid "Click to edit. Drag to reorder."
229
  msgstr "Cliquer pour modifier. Glisser pour réordonner."
230
 
231
- #: includes/admin/builder/panels/class-payments.php:21
232
- msgid "Payments"
233
- msgstr "Paiements"
234
 
235
- #: includes/admin/builder/panels/class-payments.php:97
236
- #: includes/admin/builder/panels/class-providers.php:97
237
  msgid ""
238
- "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
239
- "\">setup your form</a> before you can manage these options."
240
- msgstr ""
241
- "Vous devez <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
242
- "\">configurer votre formulaire</a> avant de pouvoir gérer ces options."
243
-
244
- #: includes/admin/builder/panels/class-payments.php:106
245
- msgid "Install Your Payment Integration"
246
- msgstr "Installer votre intégration de paiement"
247
-
248
- #: includes/admin/builder/panels/class-payments.php:107
249
- #, php-format
250
- msgid ""
251
- "It seems you do not have any payment add-ons activated. You can head over to "
252
- "the <a href=\"%s\">Add-Ons page</a> to install and activate the add-on for "
253
- "your payment service."
254
- msgstr ""
255
- "Il semble que vous n&rsquo;avez aucun module de paiement activé. Vous pouvez "
256
- "vous rendre sur la <a href=\"%s\">page Extensions</a> pour installer et "
257
- "activer l&rsquo;extension pour votre service de paiement."
258
-
259
- #: includes/admin/builder/panels/class-payments.php:113
260
- msgid "Select Your Payment Integration"
261
- msgstr "Sélectionner votre intégration de paiement"
262
-
263
- #: includes/admin/builder/panels/class-payments.php:114
264
- msgid ""
265
- "Select your email payment provider provider from the options on the left. If "
266
- "you don't see your payment service listed, then let us know and we'll do our "
267
- "best to get it added as fast as possible"
268
- msgstr ""
269
- "Sélectionner votre fournisseur d&rsquo;e-mail de paiement depuis les options "
270
- "sur la gauche. Si vous ne voyez pas votre service de paiement listé, faites "
271
- "le nous savoir et nous ferons de notre mieux pour l&rsquo;ajouter aussi "
272
- "rapidement que possible"
273
-
274
- #: includes/admin/builder/panels/class-providers.php:21
275
- msgid "Marketing"
276
- msgstr "Marketing"
277
-
278
- #: includes/admin/builder/panels/class-providers.php:55
279
- msgid ""
280
- "We need to save your progress to continue to the Marketing panel. Is that OK?"
281
  msgstr ""
282
  "Nous avons besoin de sauvegarder votre progression pour continuer sur le "
283
  "panneau Marketing. Êtes-vous d&rsquo;accord&nbsp;?"
@@ -287,7 +747,9 @@ msgid "Are you sure you want to delete this connecton?"
287
  msgstr "Êtes-vous certain de vouloir supprimer cette connexion&nbsp;?"
288
 
289
  #: includes/admin/builder/panels/class-providers.php:57
290
- msgid "Enter a connection nickname"
 
 
291
  msgstr "Saisir un pseudo de connexion"
292
 
293
  #: includes/admin/builder/panels/class-providers.php:58
@@ -302,30 +764,52 @@ msgstr "Vous devez fournir un pseudo de connexion"
302
  msgid "Field required"
303
  msgstr "Champ obligatoire"
304
 
305
- #: includes/admin/builder/panels/class-providers.php:106
 
 
 
 
 
 
 
 
 
 
 
 
 
306
  msgid "Install Your Marketing Integration"
307
  msgstr "Installer votre intégration marketing"
308
 
309
- #: includes/admin/builder/panels/class-providers.php:107
310
- #, php-format
 
 
 
 
311
  msgid ""
312
- "It seems you do not have any marketing add-ons activated. You can head over "
313
- "to the <a href=\"%s\">Add-Ons page</a> to install and activate the add-on "
314
- "for your provider."
315
  msgstr ""
316
  "Il semble que vous n&rsquo;avez aucune extension marketing activée. Vous "
317
  "pouvez vous rendre sur la <a href=\"%s\">page Extensions</a> pour installer "
318
  "et activer l&rsquo;extension pour votre fournisseur."
319
 
320
- #: includes/admin/builder/panels/class-providers.php:113
321
  msgid "Select Your Marketing Integration"
322
  msgstr "Sélectionner votre intégration marketing"
323
 
324
- #: includes/admin/builder/panels/class-providers.php:114
 
 
 
 
 
325
  msgid ""
326
  "Select your email marketing service provider or CRM from the options on the "
327
  "left. If you don't see your email marketing service listed, then let us know "
328
- "and we'll do our best to get it added as fast as possible"
329
  msgstr ""
330
  "Sélectionner votre fournisseur d&rsquo;e-mail marketing ou CRM depuis les "
331
  "options sur la gauche. Si vous ne voyez pas votre service d&rsquo;e-mail "
@@ -333,22 +817,23 @@ msgstr ""
333
  "l&rsquo;ajouter aussi rapidement que possible"
334
 
335
  #: includes/admin/builder/panels/class-settings.php:21
336
- #: includes/admin/class-menu.php:81 includes/admin/class-settings.php:426
337
  msgid "Settings"
338
  msgstr "Réglages"
339
 
340
  #: includes/admin/builder/panels/class-settings.php:57
341
  #: includes/admin/builder/panels/class-settings.php:87
342
- #: includes/admin/class-settings.php:134
343
  msgid "General"
344
  msgstr "Général"
345
 
346
- #: includes/admin/builder/panels/class-settings.php:58
347
- msgid "Notification"
348
- msgstr "Notification"
 
349
 
350
  #: includes/admin/builder/panels/class-settings.php:59
351
- #: includes/admin/builder/panels/class-settings.php:236
352
  msgid "Confirmation"
353
  msgstr "Confirmation"
354
 
@@ -361,105 +846,121 @@ msgstr ""
361
  "\">configurer votre formulaire</a> avant de pouvoir gérer les réglages."
362
 
363
  #: includes/admin/builder/panels/class-settings.php:94
364
- msgid "Form Title"
365
- msgstr "Titre du formulaire"
 
 
366
 
367
- #: includes/admin/builder/panels/class-settings.php:102
368
  msgid "Form Description"
369
  msgstr "Description du formulaire"
370
 
371
- #: includes/admin/builder/panels/class-settings.php:109
372
- msgid "Hide form title and description area"
373
- msgstr "Masquer la zone de titre et de description du formulaire"
 
 
374
 
375
- #: includes/admin/builder/panels/class-settings.php:117
376
- msgid "Last Previous Label"
377
- msgstr "Libellé dernière précédente"
 
 
 
 
 
 
 
 
378
 
379
- #: includes/admin/builder/panels/class-settings.php:125
380
  msgid "Submit Button Text"
381
  msgstr "Texte du bouton de soumission"
382
 
383
- #: includes/admin/builder/panels/class-settings.php:133
384
- msgid "Enable anti-spam honeypot"
385
- msgstr "Activer honeypot anti-spam"
386
-
387
- #: includes/admin/builder/panels/class-settings.php:144
388
- msgid "Enable reCAPTCHA"
389
- msgstr "Activer reCAPTCHA"
390
-
391
- #: includes/admin/builder/panels/class-settings.php:155
392
- #: includes/admin/builder/panels/class-settings.php:162
393
- msgid "Notifications"
394
- msgstr "Notifications"
395
-
396
- #: includes/admin/builder/panels/class-settings.php:166
397
- msgid "On"
398
- msgstr "Activer"
399
 
400
- #: includes/admin/builder/panels/class-settings.php:167
401
- msgid "Off"
402
- msgstr "Désactiver"
 
 
403
 
404
- #: includes/admin/builder/panels/class-settings.php:176
405
- msgid "Send To Email Address"
406
- msgstr "Envoyer à l&rsquo;adresse de messagerie"
 
 
407
 
408
- #: includes/admin/builder/panels/class-settings.php:179
 
 
 
 
409
  msgid ""
410
- "Enter the email address to receive form entry notifications. For multiple "
411
- "notifications, seperate email addresses with a comma."
412
  msgstr ""
413
- "Saisisser l&rsquo;adresse de messagerie pour recevoir des notifications "
414
- "d&rsquo;entrée de formulaire. Pour les notifications multiples, séparez les "
415
- "adresses de messagerie par une virgule."
416
-
417
- #: includes/admin/builder/panels/class-settings.php:191
418
- msgid "Email Subject"
419
- msgstr "Sujet de l&rsquo;e-mail"
420
 
421
- #: includes/admin/builder/panels/class-settings.php:193
422
- msgid "New Entry: "
423
- msgstr "Nouvelle entrée&nbsp;:"
424
 
425
- #: includes/admin/builder/panels/class-settings.php:205
426
- msgid "From Name"
427
- msgstr "&laquo;&nbsp;Depuis&nbsp;&raquo; nom"
 
 
428
 
429
- #: includes/admin/builder/panels/class-settings.php:219
430
- msgid "Reply-To"
431
- msgstr "&laquo;&nbsp;Répondre à&nbsp;&raquo;"
 
 
432
 
433
- #: includes/admin/builder/panels/class-settings.php:243
434
  msgid "Confirmation Type"
435
  msgstr "Type de confirmation"
436
 
437
- #: includes/admin/builder/panels/class-settings.php:247
 
 
438
  msgid "Message"
439
  msgstr "Message"
440
 
441
- #: includes/admin/builder/panels/class-settings.php:248
442
  msgid "Show Page"
443
  msgstr "Afficher la page"
444
 
445
- #: includes/admin/builder/panels/class-settings.php:249
446
  msgid "Go to URL (Redirect)"
447
  msgstr "Aller à l&rsquo;URL (redirection)"
448
 
449
- #: includes/admin/builder/panels/class-settings.php:258
450
  msgid "Confirmation Message"
451
  msgstr "Message de confirmation"
452
 
453
- #: includes/admin/builder/panels/class-settings.php:260
 
 
454
  msgid "Thanks for contacting us! We will be in touch with you shortly."
455
  msgstr ""
456
  "Merci de nous avoir contacté&nbsp;! Nous reviendrons vers vous rapidement."
457
 
458
- #: includes/admin/builder/panels/class-settings.php:277
 
 
 
 
459
  msgid "Confirmation Page"
460
  msgstr "Page de confirmation"
461
 
462
- #: includes/admin/builder/panels/class-settings.php:285
463
  msgid "Confirmation Redirect URL"
464
  msgstr "URL de redirection de confirmation"
465
 
@@ -467,19 +968,15 @@ msgstr "URL de redirection de confirmation"
467
  msgid "Setup"
468
  msgstr "Configuration"
469
 
470
- #: includes/admin/builder/panels/class-setup.php:54
471
- msgid "Form Name"
472
- msgstr "Nom du formulaire"
473
-
474
  #: includes/admin/builder/panels/class-setup.php:56
475
  msgid "Enter your form name here&hellip;"
476
  msgstr "Saisir votre nom de formulaire ici&hellip;"
477
 
478
- #: includes/admin/builder/panels/class-setup.php:61
479
  msgid "Select a Template"
480
  msgstr "Sélectionner un modèle"
481
 
482
- #: includes/admin/builder/panels/class-setup.php:65
483
  msgid ""
484
  "To speed up the process, you can select from one of our pre-made templates "
485
  "or start with a <strong><a href=\"#\" class=\"wpforms-trigger-blank\">blank "
@@ -489,1094 +986,4895 @@ msgstr ""
489
  "prédéfinis ou commencer par un <strong><a href=\"#\" class=\"wpforms-trigger-"
490
  "blank\">formulaire vierge</a>.</strong>"
491
 
492
- #: includes/admin/builder/panels/class-setup.php:89
493
- msgid "Selected"
494
- msgstr "Sélectionné"
495
-
496
- #: includes/admin/builder/panels/class-setup.php:97
497
- msgid "template"
498
- msgstr "modèle"
499
-
500
- #: includes/admin/builder/panels/class-setup.php:97
501
- #, php-format
502
- msgid "Create a %s"
503
- msgstr "Créer un %s"
504
-
505
- #: includes/admin/class-addons.php:85 includes/admin/class-addons.php:242
506
- msgid "Install Addon"
507
- msgstr "Installer une extension"
508
-
509
- #: includes/admin/class-addons.php:86 includes/admin/class-addons.php:238
510
- msgid "Deactivate"
511
- msgstr "Désactiver"
512
-
513
- #: includes/admin/class-addons.php:87 includes/admin/class-addons.php:240
514
- msgid "Activate"
515
- msgstr "Activer"
516
-
517
- #: includes/admin/class-addons.php:108
518
- msgid "Refresh Addons"
519
- msgstr "Actualiser les extensions"
520
-
521
- #: includes/admin/class-addons.php:114
522
- msgid ""
523
- "There was an issue retrieving the addons for this site. Please click on the "
524
- "button above the refresh the addons data."
525
- msgstr ""
526
- "Il y a eu un problème en récupérant les extensions pour ce site. Cliquer sur "
527
- "le bouton ci-dessous pour actualiser les données des extensions."
528
-
529
- #: includes/admin/class-addons.php:120
530
- msgid ""
531
- "In order to get access to Addons, you need to resolve your license key "
532
- "errors."
533
  msgstr ""
534
- "Afin d&rsquo;avoir accès aux extensions, vous devez résoudre vos erreurs de "
535
- "clé de licence."
536
 
537
- #: includes/admin/class-addons.php:126
 
 
538
  msgid ""
539
- "In order to get access to Addons, you need to verify your license key for "
540
- "WPForms."
541
  msgstr ""
542
- "Afin d&rsquo;avoir accès aux extensions, vous devez vérifier votre clé de "
543
- "licence pour WPForms."
544
 
545
- #: includes/admin/class-addons.php:131
546
- msgid ""
547
- "Improve your forms with our premium addons. Missing an addon that you think "
548
- "you should be able to see? Click the Refresh Addons button above."
549
  msgstr ""
550
- "Développer vos formulaires avec nos extensions premium. Il manque une "
551
- "extension que vous pensez être en mesure de voir&nbsp;? Cliquez le bouton "
552
- "Actualiser les extensions ci-dessous."
553
-
554
- #: includes/admin/class-addons.php:136
555
- msgid "Addons have successfully been refreshed."
556
- msgstr "Les extensions ont correctement été actualisées."
557
 
558
- #: includes/admin/class-addons.php:144
559
- msgid "No Addons Available for WPForms Basic License"
560
- msgstr "Aucune extension disponible pour la licence basique de WPForms"
561
-
562
- #: includes/admin/class-addons.php:145
563
  msgid ""
564
- "WPForms Basic license does not come with premium extensions at this point. "
565
- "Please upgrade your account to unlock the features below."
566
  msgstr ""
567
- "La licence basique de WPForms ne comporte pas d&rsquo;extensions premium à "
568
- "ce stade. Veuillez mettre à jour votre compte pour déverrouiller les "
569
- "fonctionnalités ci-dessous."
570
 
571
- #: includes/admin/class-addons.php:183
572
- msgid "Unlock More Features..."
573
- msgstr "Débloquer plus de fonctionnalités..."
574
 
575
- #: includes/admin/class-addons.php:184
576
- msgid ""
577
- "Want to get even more features? Upgrade your WPForms account and unlock the "
578
- "following extensions."
579
- msgstr ""
580
- "Vous voulez davantage de fonctionnalités&nbsp;? Actualisez votre compte "
581
- "WPForms et débloquez les extensions suivantes."
582
 
583
- #: includes/admin/class-addons.php:244
584
- msgid "Upgrade Now"
585
- msgstr "Mise à niveau"
 
 
 
586
 
587
- #: includes/admin/class-editor.php:45 includes/admin/class-editor.php:97
 
588
  msgid "Add Form"
589
  msgstr "Ajouter un formulaire"
590
 
591
- #: includes/admin/class-editor.php:69
592
  msgid "Insert Form"
593
  msgstr "Insérer un formulaire"
594
 
595
- #: includes/admin/class-editor.php:70
596
- msgid "Close"
597
- msgstr "Fermer"
598
-
599
- #: includes/admin/class-editor.php:78
600
  msgid "Select a form below to insert"
601
  msgstr "Sélectionner un formulaire à insérer ci-dessous"
602
 
603
- #: includes/admin/class-editor.php:84
604
- msgid "Show form title"
 
 
605
  msgstr "Afficher le titre du formulaire"
606
 
607
- #: includes/admin/class-editor.php:85
608
  msgid "Show form description"
609
  msgstr "Voir la description du formulaire"
610
 
611
- #: includes/admin/class-editor.php:87
612
- msgid "There are no active forms."
613
- msgstr "Il n&rsquo;y a pas de formulaire actif."
614
-
615
- #: includes/admin/class-editor.php:94
616
- msgid "Cancel"
617
- msgstr "Annuler"
618
-
619
- #: includes/admin/class-license.php:93 includes/admin/class-license.php:163
620
- #: includes/admin/class-license.php:236
621
- msgid ""
622
- "There was an error connecting to the remote key API. Please try again later."
623
- msgstr ""
624
- "Il y a eu une erreur de connexion distante à la clé API. Veuillez réessayer "
625
- "ultérieurement."
626
-
627
- #: includes/admin/class-license.php:110
628
- msgid "Congratulations! This site is now receiving automatic updates."
629
- msgstr ""
630
- "Félicitations&nbsp;! Ce site reçoit maintenant les mises à jour automatiques."
631
-
632
- #: includes/admin/class-license.php:205
633
- msgid "Your key has been refreshed successfully."
634
- msgstr "Votre clé a été actualisée avec succès."
635
-
636
- #: includes/admin/class-license.php:247
637
- msgid "You have deactivated the key from this site successfully."
638
- msgstr "Vous avez désactivé la clé de ce site avec succès."
639
-
640
- #: includes/admin/class-license.php:279
641
- #, php-format
642
- msgid ""
643
- "Please <a href=\"%s\">enter and activate</a> your license key for WPForms to "
644
- "enable automatic updates."
645
- msgstr ""
646
- "Veuillez <a href=\"%s\">saisir et activer</a> votre clé de licence WPForms "
647
- "pour permettre les mises à jour automatiques."
648
-
649
- #: includes/admin/class-license.php:288
650
- #, php-format
651
- msgid ""
652
- "Your license key for WPForms has expired. <a href=\"%s\" target=\"_blank"
653
- "\">Please click here to renew your license key and continue receiving "
654
- "automatic updates.</a>"
655
- msgstr ""
656
- "Votre clé de licence pour WPForms a expiré. <a href=\"%s\" target=\"_blank"
657
- "\">Veuillez cliquer ici pour renouveler votre clé de licence et continuer à "
658
- "recevoir les mises à jour automatiques.</a>"
659
-
660
- #: includes/admin/class-license.php:297
661
- msgid ""
662
- "Your license key for WPForms has been disabled. Please use a different key "
663
- "to continue receiving automatic updates."
664
- msgstr ""
665
- "Votre clé de licence pour WPForms a été désactivée. Veuillez utiliser une "
666
- "clé différente pour continuer à recevoir les mises à jour automatiques."
667
-
668
- #: includes/admin/class-license.php:306
669
  msgid ""
670
- "Your license key for WPForms is invalid. The key no longer exists or the "
671
- "user associated with the key has been deleted. Please use a different key to "
672
- "continue receiving automatic updates."
673
  msgstr ""
674
- "Votre clé de licence pour WPForms n&rsquo;est pas valide. La clé n&rsquo;"
675
- "existe plus ou l&rsquo;utilisateur associé à la clé a été supprimé. Veuillez "
676
- "utiliser une clé différente pour continuer à recevoir les mises à jour "
677
- "automatiques."
678
 
679
- #: includes/admin/class-menu.php:36 includes/admin/class-menu.php:37
680
- #: includes/admin/class-menu.php:48
 
 
 
681
  msgid "WPForms"
682
  msgstr "WPForms"
683
 
684
- #: includes/admin/class-menu.php:49
685
  msgid "All Forms"
686
  msgstr "Tous les formulaires"
687
 
688
- #: includes/admin/class-menu.php:58
689
  msgid "WPForms Builder"
690
  msgstr "Constructeur WPForms"
691
 
692
- #: includes/admin/class-menu.php:59
693
- #: includes/admin/overview/class-overview.php:144
694
  msgid "Add New"
695
  msgstr "Nouveau"
696
 
697
- #: includes/admin/class-menu.php:68
698
  msgid "Form Entries"
699
  msgstr "Entrées de formulaire"
700
 
701
- #: includes/admin/class-menu.php:69
702
- #: includes/admin/entries/class-entries.php:202
703
- #: includes/admin/entries/class-entries.php:242
704
- #: includes/admin/overview/class-overview-table.php:57
705
- #: includes/admin/overview/class-overview-table.php:158
706
  msgid "Entries"
707
  msgstr "Entrées"
708
 
709
- #: includes/admin/class-menu.php:80
710
  msgid "WPForms Settings"
711
  msgstr "Réglages de WPForms"
712
 
713
- #: includes/admin/class-menu.php:90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
714
  msgid "WPForms Addons"
715
  msgstr "Extensions WPForms"
716
 
717
- #: includes/admin/class-menu.php:91
718
  msgid "Addons"
719
  msgstr "Extensions"
720
 
721
- #: includes/admin/class-settings.php:116
722
- msgid "Are you sure you want to disconnect this account?"
723
- msgstr "Êtes-vous certain de vouloir déconnecter ce compte&nbsp;?"
 
 
 
724
 
725
- #: includes/admin/class-settings.php:135
726
- msgid "Advanced"
727
- msgstr "Avancé"
728
 
729
- #: includes/admin/class-settings.php:136
730
- msgid "Integrations"
731
- msgstr "Intégrations"
732
 
733
- #: includes/admin/class-settings.php:159 includes/admin/class-settings.php:308
734
- msgid "Settings check failed."
735
- msgstr "Échec de la vérification des réglages."
736
 
737
- #: includes/admin/class-settings.php:175
738
- msgid "General settings updated."
739
- msgstr "Réglages généraux enregistrés."
740
 
741
- #: includes/admin/class-settings.php:182
742
- msgid "Please enter a license key to verify."
743
- msgstr "Veuillez saisir une clé de licence pour vérification."
 
 
 
744
 
745
- #: includes/admin/class-settings.php:212
746
- msgid "License"
747
- msgstr "Licence"
 
 
 
 
748
 
749
- #: includes/admin/class-settings.php:213
750
- msgid "Your license key provides access to updates and Add-ons. "
751
- msgstr "Votre clé de licence donne accès aux mises à jour et aux extensions."
 
 
752
 
753
- #: includes/admin/class-settings.php:218
754
- msgid "License Key"
755
- msgstr "Clé de licence"
 
 
 
 
756
 
757
- #: includes/admin/class-settings.php:222
758
- msgid "Verify Key"
759
- msgstr "Vérifier la clé"
 
 
 
 
 
 
 
 
760
 
761
- #: includes/admin/class-settings.php:224
762
- msgid "Deactivate Key"
763
- msgstr "Désactiver la clé"
764
 
765
- #: includes/admin/class-settings.php:232
766
- msgid "License Key Type"
767
- msgstr "Type de clé de licence"
768
 
769
- #: includes/admin/class-settings.php:235
770
- #, php-format
771
- msgid "Your license key type for this site is <strong>%s.</strong>"
772
- msgstr "Votre type de clé de licence pour ce site est <strong>%s</strong>."
773
 
774
- #: includes/admin/class-settings.php:236
775
- msgid "Refresh Key"
776
- msgstr "Actualiser la clé"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
777
 
778
- #: includes/admin/class-settings.php:237
779
  msgid ""
780
- "If your license has been upgraded or is incorrect, you may force a refresh."
 
 
 
 
 
781
  msgstr ""
782
- "Si votre licence a été mise à niveau ou est incorrecte, vous pouvez forcer "
783
- "une actualisation."
784
 
785
- #: includes/admin/class-settings.php:249
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
786
  msgid "Include Form Styling"
787
  msgstr "Inclure la mise en forme du formulaire"
788
 
789
- #: includes/admin/class-settings.php:253
 
 
 
 
790
  msgid "Base and form theme styling"
791
  msgstr "Mise en forme de base et thème de formulaire"
792
 
793
- #: includes/admin/class-settings.php:254
794
  msgid "Base styling only"
795
  msgstr "Mise en forme de base uniquement"
796
 
797
- #: includes/admin/class-settings.php:255
798
- msgid "None"
799
- msgstr "Aucune"
800
-
801
- #: includes/admin/class-settings.php:257
802
- msgid "Determines which CSS files to load for the site."
803
- msgstr "Détermine les fichiers CSS à charger pour le site."
804
 
805
- #: includes/admin/class-settings.php:263
806
- msgid "reCAPTCHA"
807
- msgstr "reCAPTCHA"
808
 
809
- #: includes/admin/class-settings.php:264
810
  msgid ""
811
- "reCAPTCHA is a free service anti-spam service from Google. Its goal is to "
812
- "protect your website from spam and abuse while letting real people pass "
813
- "through with ease. <a href=\"http://www.google.com/recaptcha/intro/index.html"
814
- "\" target=\"_blank\">Visit reCAPTCHA</a> to learn more or sign up for a free "
815
- "account."
816
  msgstr ""
817
- "reCAPTCHA est un service gratuit d&rsquo;anti-spam de Google. Son objectif "
818
- "est de protéger votre site Internet des spams et des abus tout en laissant "
819
- "passer les vrais visiteurs avec facilité. Pour en savoir plus ou vous "
820
- "inscrire pour un compte gratuit, <a href=\"http://www.google.com/recaptcha/"
821
- "intro/index.html\" target=\"_blank\">visitez reCAPTCHA</a>."
822
 
823
- #: includes/admin/class-settings.php:269
824
- msgid "reCAPTCHA Site key"
825
- msgstr "Clé du site ReCaptcha"
826
 
827
- #: includes/admin/class-settings.php:277
828
- msgid "reCAPTCHA Secret key"
829
- msgstr "Clé secrète ReCaptcha"
 
830
 
831
- #: includes/admin/class-settings.php:286
832
- msgid "Save General Settings"
833
- msgstr "Enregistrer les réglages généraux"
 
 
834
 
835
- #: includes/admin/class-settings.php:319
836
- msgid "Settings updated."
837
- msgstr "Réglages enregistrés."
 
 
838
 
839
- #: includes/admin/class-settings.php:333
840
- msgid "Currency"
841
- msgstr "Devise"
 
 
842
 
843
- #: includes/admin/class-settings.php:337
844
- msgid "US Dollars (USD)"
845
- msgstr "Dollar US (USD)"
846
 
847
- #: includes/admin/class-settings.php:339
848
- msgid "Determines which currency to use for payments."
849
- msgstr "Détermine quelle devise utiliser pour les paiements."
850
 
851
- #: includes/admin/class-settings.php:370
852
- #, php-format
853
  msgid ""
854
- "You do not have any marketing add-ons activated. You can head over to the <a "
855
- "href=\"%s\">Add-Ons page</a> to install and activate the add-on for your "
856
- "provider."
857
  msgstr ""
858
- "Vous n&rsquo;avez aucune extension marketing activée. Vous pouvez vous "
859
- "rendre sur la <a href=\"%s\">page Extensions</a> pour installer et activer "
860
- "l&rsquo;extension pour votre fournisseur."
861
-
862
- #: includes/admin/class-welcome.php:40 includes/admin/class-welcome.php:41
863
- msgid "Getting started with WPForms"
864
- msgstr "Guide de démarrage de WPForms"
865
-
866
- #: includes/admin/class-welcome.php:83
867
- msgid "Welcome to WPForms"
868
- msgstr "Bienvenue sur WPForms"
869
 
870
- #: includes/admin/class-welcome.php:85
871
- msgid ""
872
- "Thank you for choosing WPForms - the most beginner friendly WordPress "
873
- "contact form plugin. Here's how to get started."
874
  msgstr ""
875
- "Merci d&rsquo;avoir choisi WPForms - l&rsquo;extension de formulaire "
876
- "WordPress la plus accessible aux débutants. Voici comment commencer."
877
 
878
- #: includes/admin/class-welcome.php:93
879
- msgid "Getting Started"
880
- msgstr "Guide de démarrage"
881
 
882
- #: includes/admin/class-welcome.php:96
883
- msgid "What's New"
884
- msgstr "Quoi de neuf"
885
 
886
- #: includes/admin/class-welcome.php:115
887
  msgid ""
888
- "Use the tips below to get started using WPForms. You will be up and running "
889
- "in no time."
890
  msgstr ""
891
- "Utiliser les conseils suivants pour commencer à utiliser WPForms. Vous serez "
892
- "opérationnel en un rien de temps."
893
 
894
- #: includes/admin/class-welcome.php:120
895
- msgid "Creating Your First Form"
896
- msgstr "Création de votre premier formulaire"
 
 
 
897
 
898
- #: includes/admin/class-welcome.php:121
899
- #, php-format
900
- msgid ""
901
- "WPForms make it easy to create forms in WordPress. You can follow the video "
902
- "tutorial on the right or read our how to <a href=\"%s\" target=\"_blank"
903
- "\">create your first form guide</a>."
904
- msgstr ""
905
- "WPForms facilite la création des formulaires dans WordPress. Vous pouvez "
906
- "suivre le tutoriel vidéo sur la droite ou lire notre guide <a href=\"%s\" "
907
- "target=\"_blank\">créer votre premier formulaire</a>."
908
 
909
- #: includes/admin/class-welcome.php:122
910
- #, php-format
911
- msgid ""
912
- "But in reality, the process is so intuitive that you can just start by going "
913
- "to <a href=\"%s\">WPForms - > Add New</a>."
914
- msgstr ""
915
- "Mais en réalité, le processus est si intuitif que vous pouvez simplement "
916
- "commencer en vous rendant sur <a href=\"%s\">WPForms - > Nouveau</a>."
 
 
 
917
 
918
- #: includes/admin/class-welcome.php:133
919
- msgid "See all WPForms Features"
920
- msgstr "Voir toutes les fonctionnalités de WPForms"
 
 
921
 
922
- #: includes/admin/class-welcome.php:134
 
 
 
 
 
 
923
  msgid ""
924
- "WPForms is both easy to use and extremely powerful. We have tons of helpful "
925
- "features that allows us to give you everything you need from a form builder."
926
  msgstr ""
927
- "WPForms est à la fois facile à utiliser et extrêmement puissant. Nous avons "
928
- "des tonnes de fonctionnalités utiles qui nous permettent de vous apporter "
929
- "tout ce dont vous avez attendez d&rsquo;un constructeur de formulaire."
930
-
931
- #: includes/admin/class-welcome.php:135
932
- msgid "See all Features"
933
- msgstr "Voir toutes les fonctionnalités"
934
 
935
- #: includes/admin/entries/class-entries-table.php:111
936
- #: includes/fields/class-date-time.php:48
937
- #: includes/fields/class-date-time.php:77
938
- #: includes/fields/class-date-time.php:155
939
- #: includes/fields/class-date-time.php:214
940
- msgid "Date"
941
- msgstr "Date"
942
 
943
- #: includes/admin/entries/class-entries-table.php:112
944
- msgid "Actions"
945
- msgstr "Actions"
 
 
 
 
 
 
 
 
 
 
 
 
946
 
947
- #: includes/admin/entries/class-entries-table.php:227
948
- msgid "View Form Entry"
949
- msgstr "Afficher l&rsquo;entrée de formulaire"
 
 
950
 
951
- #: includes/admin/entries/class-entries-table.php:228
952
- msgid "View"
953
- msgstr "Afficher"
 
 
 
954
 
955
- #: includes/admin/entries/class-entries-table.php:234
956
- msgid "Delete Form Entry"
957
- msgstr "Supprimer cette entrée de formulaire"
958
 
959
- #: includes/admin/entries/class-entries-table.php:235
960
- #: includes/admin/entries/class-entries-table.php:252
961
- #: includes/admin/overview/class-overview-table.php:165
962
- #: includes/admin/overview/class-overview-table.php:183
963
- msgid "Delete"
964
- msgstr "Supprimer "
965
 
966
- #: includes/admin/entries/class-entries-table.php:284
967
- msgid "Entry successfully deleted."
968
- msgstr "Entrée supprimée avec succès."
 
969
 
970
- #: includes/admin/entries/class-entries-table.php:286
971
- #: includes/admin/overview/class-overview-table.php:216
972
- msgid "Security check failed"
973
- msgstr "Le contrôle de sécurité a échoué."
 
974
 
975
- #: includes/admin/entries/class-entries-table.php:298
976
- msgid "Whoops, it appears you do not have any form entries yet."
 
977
  msgstr ""
978
- "Oups, il semble que vous n&rsquo;avez pas encore d&rsquo;entrée de "
979
- "formulaire."
980
 
981
- #: includes/admin/entries/class-entries.php:86
982
- msgid "Number of entries per page:"
983
- msgstr "Nombre d&rsquo;entrées par page&nbsp;:"
 
 
984
 
985
- #: includes/admin/entries/class-entries.php:140
986
- msgid "Are you sure you want to delete this entry?"
987
- msgstr "Êtes-vous certain de vouloir supprimer cette entrée&nbsp;?"
988
 
989
- #: includes/admin/entries/class-entries.php:206
990
- #: includes/admin/overview/class-overview-table.php:228
991
- #, php-format
992
  msgid ""
993
- "Whoops, you haven't created a form yet. Want to <a href=\"%s\">give it a go</"
994
- "a>?"
 
 
995
  msgstr ""
996
- "Oups, vous n&rsquo;avez pas encore créé de formulaire. Vous voulez <a href="
997
- "\"%s\">essayer</a>&nbsp;?"
998
 
999
- #: includes/admin/entries/class-entries.php:210
1000
- #: includes/admin/entries/class-entries.php:279
1001
- msgid "Select a form to view entries"
1002
- msgstr "Sélectionner un formulaire pour afficher les entrées"
1003
 
1004
- #: includes/admin/entries/class-entries.php:226
1005
- #: includes/admin/entries/class-entries.php:295
1006
- msgid "View Entries"
1007
- msgstr "Afficher les entrées"
1008
 
1009
- #: includes/admin/entries/class-entries.php:261
1010
- msgid "You need to create your first form before you can view the entries."
1011
  msgstr ""
1012
- "Vous avez besoin de créer votre premier formulaire avant de pouvoir "
1013
- "visualiser les entrées."
1014
 
1015
- #: includes/admin/entries/class-entries.php:264 includes/class-process.php:79
1016
- msgid "Invalid form."
1017
- msgstr "Formulaire invalide."
1018
 
1019
- #: includes/admin/entries/class-entries.php:276
1020
- msgid "edit"
1021
- msgstr "modifier"
 
 
1022
 
1023
- #: includes/admin/entries/class-entries.php:328
1024
- msgid "Please select an entry to view."
1025
- msgstr "Veuillez sélectionner une entrée à visualiser."
 
 
1026
 
1027
- #: includes/admin/entries/class-entries.php:338
1028
- msgid "Invalid entry."
1029
- msgstr "Entrée non valide."
 
 
1030
 
1031
- #: includes/admin/entries/class-entries.php:350
1032
- msgid " View Entry"
1033
- msgstr "Afficher l&rsquo;entrée"
 
 
1034
 
1035
- #: includes/admin/entries/class-entries.php:351
1036
- msgid "Back to Entries"
1037
- msgstr "Retour aux entrées"
1038
 
1039
- #: includes/admin/entries/class-entries.php:380
1040
- msgid "empty"
1041
- msgstr "vide"
1042
 
1043
- #: includes/admin/entries/class-entries.php:386
1044
- msgid "No fields to display"
1045
- msgstr "Pas de champs à afficher"
1046
 
1047
- #: includes/admin/overview/class-overview-table.php:54
1048
- #: includes/fields/class-name.php:21 includes/fields/class-name.php:71
1049
- msgid "Name"
1050
- msgstr "Nom"
 
1051
 
1052
- #: includes/admin/overview/class-overview-table.php:55
1053
- msgid "Shortcode"
1054
- msgstr "Code court"
1055
 
1056
- #: includes/admin/overview/class-overview-table.php:56
1057
- msgid "Created"
1058
- msgstr "Créé"
1059
 
1060
- #: includes/admin/overview/class-overview-table.php:140
1061
- #: includes/admin/overview/class-overview-table.php:150
1062
- msgid "Edit this form"
1063
- msgstr "Modifier ce formulaire"
 
1064
 
1065
- #: includes/admin/overview/class-overview-table.php:151
1066
- msgid "Edit"
1067
- msgstr "Modifier"
 
 
1068
 
1069
- #: includes/admin/overview/class-overview-table.php:157
1070
- msgid "View entries"
1071
- msgstr "Afficher les entrées"
 
 
1072
 
1073
- #: includes/admin/overview/class-overview-table.php:164
1074
- msgid "Delete this form"
1075
- msgstr "Supprimer ce formulaire"
 
 
1076
 
1077
- #: includes/admin/overview/class-overview-table.php:214
1078
- msgid "Form successfully deleted."
1079
- msgstr "Formulaire supprimé avec succès."
 
 
1080
 
1081
- #: includes/admin/overview/class-overview.php:73
1082
- msgid "Number of forms per page:"
1083
- msgstr "Nombre de formulaires par page&nbsp;:"
 
 
1084
 
1085
- #: includes/admin/overview/class-overview.php:124
1086
- msgid "Are you sure you want to delete this form?"
1087
- msgstr "Êtes-vous certain de vouloir supprimer ce formulaire&nbsp;?"
 
 
1088
 
1089
- #: includes/admin/overview/class-overview.php:143
1090
- msgid "Forms Overview"
1091
- msgstr "Vue d&rsquo;ensemble des formulaires"
1092
 
1093
- #: includes/class-logging.php:38
1094
- msgid "WPForms Logs"
1095
- msgstr "Journaux WPForms"
 
 
1096
 
1097
- #: includes/class-process.php:73
1098
- msgid "Unable to process the form entry."
1099
- msgstr "Impossible de traiter l&rsquo;entrée de formulaire."
1100
 
1101
- #: includes/class-process.php:113
1102
- msgid "Incorrect reCAPTCHA, please try again."
1103
- msgstr "reCAPTCHA incorrect. Veuillez essayer à nouveau."
 
 
1104
 
1105
- #: includes/class-process.php:120
1106
- msgid "Form has not been submitted, please see the errors below."
 
 
 
1107
  msgstr ""
1108
- "Le formulaire n&rsquo;a pas été soumis, veuillez voir les erreurs ci-dessous."
1109
 
1110
- #: includes/class-process.php:289
1111
- msgid "No name"
1112
- msgstr "Aucun nom"
 
 
1113
 
1114
- #: includes/class-process.php:295
1115
- msgid "(empty)"
1116
- msgstr "(vide)"
1117
 
1118
- #: includes/class-process.php:309
1119
- #, php-format
1120
- msgid "New %s Entry"
1121
- msgstr "Nouvelle entrée %s"
1122
 
1123
- #: includes/class-provider.php:128 includes/class-provider.php:1063
1124
- #: includes/class-provider.php:1098
1125
- msgid "You do not have permission"
1126
- msgstr "Vous n&rsquo;avez pas d&rsquo;autorisation"
 
1127
 
1128
- #: includes/class-provider.php:382
1129
- msgid "Full"
1130
- msgstr "Complet"
 
 
 
1131
 
1132
- #: includes/class-provider.php:393 includes/fields/class-name.php:157
1133
- #: includes/fields/class-name.php:239
1134
- msgid "First"
1135
- msgstr "Prénom"
1136
 
1137
- #: includes/class-provider.php:405 includes/fields/class-name.php:161
1138
- #: includes/fields/class-name.php:257
1139
- msgid "Middle"
1140
- msgstr "Second prénom"
1141
 
1142
- #: includes/class-provider.php:417 includes/fields/class-name.php:165
1143
- #: includes/fields/class-name.php:284
1144
- msgid "Last"
1145
- msgstr "Nom"
1146
 
1147
- #: includes/class-provider.php:604
1148
- msgid "Select Account"
1149
- msgstr "Sélectionner le compte"
1150
 
1151
- #: includes/class-provider.php:616 includes/class-provider.php:1177
1152
- msgid "Add New Account"
1153
- msgstr "Ajouter un nouveau compte"
1154
 
1155
- #: includes/class-provider.php:646
1156
- msgid "Select List"
1157
- msgstr "Sélectionner une liste"
 
1158
 
1159
- #: includes/class-provider.php:686
1160
- msgid "Select Groups"
1161
- msgstr "Sélectionner les groupes"
 
 
1162
 
1163
- #: includes/class-provider.php:688
1164
  msgid ""
1165
- "We also noticed that you have some segments in your list. You can select "
1166
- "specific list segments below if needed. This is optional."
1167
  msgstr ""
1168
- "Nous avons également remarqué que vous avez certains segments dans votre "
1169
- "liste. Vous pouvez sélectionner une liste spécifique de segments ci-dessous "
1170
- "si nécessaire. Ceci est optionnel."
1171
 
1172
- #: includes/class-provider.php:743 includes/class-provider.php:748
1173
- msgid "List Fields"
1174
- msgstr "Liste des champs"
 
 
1175
 
1176
- #: includes/class-provider.php:748
1177
- msgid "Available Form Fields"
1178
- msgstr "Champs de formulaire disponibles"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1179
 
1180
- #: includes/class-provider.php:809
1181
- msgid "Conditional Logic"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1182
  msgstr "Logique conditionnelle"
1183
 
1184
- #: includes/class-provider.php:818
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1185
  msgid "Enable conditional logic"
1186
  msgstr "Activer la logique conditionnelle"
1187
 
1188
- #: includes/class-provider.php:825
1189
- msgid "Process this form if"
1190
- msgstr "Traiter ce formulaire si"
 
 
1191
 
1192
- #: includes/class-provider.php:856
1193
- msgid "-- Select field --"
1194
- msgstr "-- Sélectionner champ --"
 
 
1195
 
1196
- #: includes/class-provider.php:873
1197
- msgid "is"
1198
- msgstr "est"
1199
 
1200
- #: includes/class-provider.php:874
1201
- msgid "is not"
1202
- msgstr "n&rsquo;est pas"
 
 
 
1203
 
1204
- #: includes/class-provider.php:890
1205
- msgid "-- Select Choice --"
1206
- msgstr "-- Sélectionner choix --"
 
 
1207
 
1208
- #: includes/class-provider.php:908
1209
- msgid "AND"
1210
- msgstr "ET"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1211
 
1212
- #: includes/class-provider.php:925
1213
- msgid "Add rule group"
1214
- msgstr "Ajouter un groupe de règles"
1215
 
1216
- #: includes/class-provider.php:1018
1217
- msgid "Add New Connection"
1218
- msgstr "Ajouter une nouvelle connexion"
1219
 
1220
- #: includes/class-provider.php:1067 includes/class-provider.php:1102
1221
- msgid "Missing data"
1222
- msgstr "Donnée manquante"
 
 
1223
 
1224
- #: includes/class-provider.php:1079
1225
- msgid "Connection missing"
1226
- msgstr "Connexion manquante"
1227
 
1228
- #: includes/class-provider.php:1116 includes/class-provider.php:1167
1229
- msgid "Connected on: "
1230
- msgstr "Connecté sur&nbsp;:"
1231
 
1232
- #: includes/class-provider.php:1117 includes/class-provider.php:1168
1233
- msgid "Disconnect "
1234
- msgstr "Déconnecter"
1235
 
1236
- #: includes/class-provider.php:1153
1237
- msgid "Connected"
1238
- msgstr "Connecté"
1239
 
1240
- #: includes/class-provider.php:1183
1241
- msgid ""
1242
- "Please fill out all of the fields below to add your new provider account."
1243
  msgstr ""
1244
- "Veuillez remplir tous les champs ci-dessous pour ajouter votre nouveau "
1245
- "compte de fournisseur."
1246
 
1247
- #: includes/class-provider.php:1189
1248
- msgid "Connect to"
1249
- msgstr "Se connecter à"
 
 
1250
 
1251
- #: includes/class-widget.php:127
1252
- msgid "No forms"
1253
- msgstr "Aucun formulaire"
 
 
1254
 
1255
- #: includes/class-widget.php:134
1256
- msgid "Display form title"
1257
- msgstr "Afficher le titre du formulaire"
1258
 
1259
- #: includes/class-widget.php:137
1260
- msgid "Display form description"
1261
- msgstr "Afficher la description du formulaire"
 
 
1262
 
1263
- #: includes/fields/class-address.php:21
1264
- msgid "Address"
1265
- msgstr "Adresse"
 
 
1266
 
1267
- #: includes/fields/class-address.php:45
1268
- msgid "Select format for the address field."
1269
- msgstr "Sélectionner le format pour le champ adresse."
 
 
1270
 
1271
- #: includes/fields/class-address.php:50 includes/fields/class-date-time.php:51
1272
- #: includes/fields/class-date-time.php:88
1273
- #: includes/fields/class-date-time.php:118 includes/fields/class-name.php:50
1274
- #: includes/fields/class-phone.php:50
1275
- msgid "Format"
1276
- msgstr "Format"
1277
 
1278
- #: includes/fields/class-address.php:71 includes/fields/class-address.php:234
1279
- #: includes/fields/class-address.php:364
1280
- msgid "Address Line 1"
1281
- msgstr "Adresse ligne 1"
 
1282
 
1283
- #: includes/fields/class-address.php:74 includes/fields/class-address.php:90
1284
- #: includes/fields/class-address.php:108 includes/fields/class-address.php:123
1285
- #: includes/fields/class-address.php:145 includes/fields/class-address.php:160
1286
- #: includes/fields/class-address.php:176 includes/fields/class-date-time.php:80
1287
- #: includes/fields/class-date-time.php:110 includes/fields/class-name.php:74
1288
- #: includes/fields/class-name.php:89 includes/fields/class-name.php:104
1289
- #: includes/fields/class-name.php:119
1290
- msgid "Placeholder"
1291
- msgstr "Espace réservé"
1292
 
1293
- #: includes/fields/class-address.php:78 includes/fields/class-address.php:94
1294
- #: includes/fields/class-address.php:112 includes/fields/class-address.php:134
1295
- #: includes/fields/class-address.php:149 includes/fields/class-address.php:164
1296
- #: includes/fields/class-address.php:191 includes/fields/class-base.php:300
1297
- #: includes/fields/class-name.php:78 includes/fields/class-name.php:93
1298
- #: includes/fields/class-name.php:108 includes/fields/class-name.php:123
1299
- msgid "Default Value"
1300
- msgstr "Valeur par défaut"
1301
 
1302
- #: includes/fields/class-address.php:87 includes/fields/class-address.php:240
1303
- #: includes/fields/class-address.php:383
1304
- msgid "Address Line 2"
1305
- msgstr "Adresse ligne 2"
 
 
1306
 
1307
- #: includes/fields/class-address.php:105 includes/fields/class-address.php:248
1308
- #: includes/fields/class-address.php:413
1309
- msgid "City"
1310
- msgstr "Ville"
 
1311
 
1312
- #: includes/fields/class-address.php:120 includes/fields/class-address.php:263
1313
- #: includes/fields/class-address.php:449
1314
- msgid "State"
1315
- msgstr "État"
 
1316
 
1317
- #: includes/fields/class-address.php:142 includes/fields/class-address.php:269
1318
- #: includes/fields/class-address.php:472
1319
- msgid "State / Province / Region"
1320
- msgstr "État / Province / Région"
 
 
1321
 
1322
- #: includes/fields/class-address.php:157
1323
- msgid "ZIP / Postal"
1324
- msgstr "Code postal"
 
 
1325
 
1326
- #: includes/fields/class-address.php:173 includes/fields/class-address.php:299
1327
- #: includes/fields/class-address.php:540
1328
- msgid "Country"
1329
- msgstr "Pays"
 
1330
 
1331
- #: includes/fields/class-address.php:279 includes/fields/class-address.php:504
1332
- msgid "ZIP"
1333
- msgstr "Code postal"
 
 
1334
 
1335
- #: includes/fields/class-address.php:280 includes/fields/class-address.php:504
1336
- msgid "Zip / Postal Code"
1337
- msgstr "Code postal"
 
 
1338
 
1339
- #: includes/fields/class-address.php:564 includes/fields/class-base.php:516
1340
- #: includes/fields/class-date-time.php:289 includes/fields/class-email.php:125
1341
- #: includes/fields/class-file-upload.php:214 includes/fields/class-name.php:308
1342
- #: includes/fields/class-number.php:127
1343
- #: includes/fields/class-payment-multiple.php:172
1344
- #: includes/fields/class-payment-single.php:186
1345
- #: includes/fields/class-url.php:126
1346
- msgid "This field is required"
1347
- msgstr "Champ obligatoire"
1348
 
1349
- #: includes/fields/class-base.php:254
1350
- msgid ""
1351
- "Enter text for the form field label. Field labels are recommended and can be "
1352
- "hidden in the Advanced Settings."
1353
  msgstr ""
1354
- "Saisir du texte pour le libellé de champ de formulaire. Les libellés de "
1355
- "champ sont recommandées et peuvent être cachées dans les paramètres avancés."
1356
 
1357
- #: includes/fields/class-base.php:255
1358
- msgid "Label"
1359
- msgstr "Libellé"
1360
 
1361
- #: includes/fields/class-base.php:263
1362
- msgid "Enter text for the form field description."
1363
- msgstr "Saisir du texte pour le champ description de formulaire."
1364
 
1365
- #: includes/fields/class-base.php:264
1366
- msgid "Description"
1367
- msgstr "Description"
 
 
1368
 
1369
- #: includes/fields/class-base.php:272
1370
- msgid ""
1371
- "Check this option to mark the field required. A form will not submit unless "
1372
- "all required fields are provided."
 
 
 
 
1373
  msgstr ""
1374
- "Cocher cette option pour marquer le champ comme requis. Un formulaire ne "
1375
- "sera pas soumis à moins que tous les champs obligatoires soient fournis."
1376
 
1377
- #: includes/fields/class-base.php:273
1378
- msgid "Required"
1379
- msgstr "Requis"
 
 
1380
 
1381
- #: includes/fields/class-base.php:287
1382
- msgid "Enter code for the form field."
1383
- msgstr "Saisir du code pour le champ de formulaire."
1384
 
1385
- #: includes/fields/class-base.php:288
1386
- msgid "Code"
1387
- msgstr "Code"
 
 
1388
 
1389
- #: includes/fields/class-base.php:298
1390
- msgid "Enter text for the default form field value."
1391
- msgstr "Saisir du texte pour la valeur par défaut du champ de formulaire."
1392
 
1393
- #: includes/fields/class-base.php:309
1394
- msgid "Select the default form field size."
1395
- msgstr "Sélectionner la taille de champ de formulaire par défaut."
 
1396
 
1397
- #: includes/fields/class-base.php:315
1398
- msgid "Field Size"
1399
- msgstr "Taille du champ"
1400
 
1401
- #: includes/fields/class-base.php:327
1402
- msgid "Advanced Options"
1403
- msgstr "Options avancées"
1404
 
1405
- #: includes/fields/class-base.php:337
1406
- msgid "Enter text for the form field placeholder."
1407
- msgstr "Saisir du texte pour l&rsquo;espace réservé de champ de formulaire."
1408
 
1409
- #: includes/fields/class-base.php:338
1410
- msgid "Placeholder Text"
1411
- msgstr "Texte d&rsquo;espace réservé"
 
 
1412
 
1413
- #: includes/fields/class-base.php:346
1414
- msgid ""
1415
- "Enter CSS class names for the form field container. Class names should be "
1416
- "seperated with spaces."
 
 
 
 
1417
  msgstr ""
1418
- "Saisir les noms de classe CSS pour le conteneur de champ de formulaire. Les "
1419
- "noms de classe doivent être séparés par des espaces."
1420
 
1421
- #: includes/fields/class-base.php:348
1422
- msgid "CSS Classes"
1423
- msgstr "Classes CSS"
1424
 
1425
- #: includes/fields/class-base.php:356
1426
- msgid "Check this option to hide the form field label."
1427
- msgstr "Cocher cette option pour masquer le libellé de champ de formulaire."
 
 
1428
 
1429
- #: includes/fields/class-base.php:358
1430
- msgid "Hide Label"
1431
- msgstr "Masquer le libellé"
 
 
 
 
 
 
 
1432
 
1433
- #: includes/fields/class-base.php:365
1434
- msgid "Check this option to hide the form field sib-label."
 
1435
  msgstr ""
1436
- "Cocher cette option pour masquer la sous-libellé de champ de formulaire."
1437
 
1438
- #: includes/fields/class-base.php:367
1439
- msgid "Hide Sub-Labels"
1440
- msgstr "Masquer les sous-libellés"
 
 
1441
 
1442
- #: includes/fields/class-base.php:442
1443
- msgid "No form ID found"
1444
- msgstr "Aucun ID de formulaire trouvé"
 
 
1445
 
1446
- #: includes/fields/class-base.php:446
1447
- msgid "No field type found"
1448
- msgstr "Aucun type de champ trouvé"
 
 
1449
 
1450
- #: includes/fields/class-base.php:455
1451
- msgid "New"
1452
- msgstr "Créer"
 
 
1453
 
1454
- #: includes/fields/class-checkbox.php:21
1455
- msgid "Checkboxes"
1456
- msgstr "Cases à cocher"
1457
 
1458
- #: includes/fields/class-checkbox.php:27 includes/fields/class-radio.php:27
1459
- #: includes/fields/class-select.php:27
1460
- msgid "First Choice"
1461
- msgstr "Premier choix"
 
 
1462
 
1463
- #: includes/fields/class-checkbox.php:32 includes/fields/class-radio.php:32
1464
- #: includes/fields/class-select.php:32
1465
- msgid "Second Choice"
1466
- msgstr "Deuxième choix"
 
1467
 
1468
- #: includes/fields/class-checkbox.php:37 includes/fields/class-radio.php:37
1469
- #: includes/fields/class-select.php:37
1470
- msgid "Third Choice"
1471
- msgstr "Troisième choix"
1472
 
1473
- #: includes/fields/class-checkbox.php:59 includes/fields/class-radio.php:60
1474
- #: includes/fields/class-select.php:60
1475
- msgid "Add choices for the form field."
1476
- msgstr "Ajouter des choix pour le champ de formulaire."
1477
 
1478
- #: includes/fields/class-checkbox.php:62 includes/fields/class-radio.php:63
1479
- #: includes/fields/class-select.php:63
1480
- msgid "Choices"
1481
- msgstr "Choix"
 
1482
 
1483
- #: includes/fields/class-checkbox.php:89 includes/fields/class-select.php:90
1484
- msgid "Check this to manual set form field values."
1485
  msgstr ""
1486
- "Cocher ceci pour définir manuellement les valeurs de champ de formulaire."
1487
 
1488
- #: includes/fields/class-checkbox.php:91 includes/fields/class-radio.php:92
1489
- #: includes/fields/class-select.php:92
1490
- msgid "Show Values"
1491
- msgstr "Afficher les valeurs"
1492
 
1493
- #: includes/fields/class-date-time.php:21
1494
  msgid "Date / Time"
1495
  msgstr "Date / Heure"
1496
 
1497
- #: includes/fields/class-date-time.php:45
1498
  msgid "Select format for the date field."
1499
  msgstr "Sélectionner le format pour le champ date."
1500
 
1501
- #: includes/fields/class-date-time.php:47
1502
  msgid "Date and Time"
1503
  msgstr "Date et heure"
1504
 
1505
- #: includes/fields/class-date-time.php:49
1506
- #: includes/fields/class-date-time.php:107
1507
- #: includes/fields/class-date-time.php:159
1508
- #: includes/fields/class-date-time.php:239
1509
  msgid "Time"
1510
  msgstr "Heure"
1511
 
1512
- #: includes/fields/class-date-time.php:77
1513
  msgid "Advanced date options."
1514
  msgstr "Options avancées de date."
1515
 
1516
- #: includes/fields/class-date-time.php:101
1517
- msgid "1 minute"
1518
- msgstr "1 minute"
 
 
 
 
 
 
 
 
1519
 
1520
- #: includes/fields/class-date-time.php:102
1521
  msgid "15 minutes"
1522
  msgstr "15 minutes"
1523
 
1524
- #: includes/fields/class-date-time.php:103
1525
  msgid "30 minute"
1526
  msgstr "30 minutes"
1527
 
1528
- #: includes/fields/class-date-time.php:104
1529
  msgid "1 hour"
1530
  msgstr "1 heure"
1531
 
1532
- #: includes/fields/class-date-time.php:107
1533
  msgid "Advanced time options"
1534
  msgstr "Options avancées de temps"
1535
 
1536
- #: includes/fields/class-date-time.php:126
1537
  msgid "Interval"
1538
  msgstr "Intervalle"
1539
 
1540
- #: includes/fields/class-divider.php:21
1541
  msgid "Section Divider"
1542
  msgstr "Diviseur de section"
1543
 
1544
- #: includes/fields/class-email.php:21
1545
- msgid "Email"
1546
- msgstr "Adresse de contact"
1547
-
1548
- #: includes/fields/class-email.php:130
1549
- msgid "Please enter a valid email address."
1550
- msgstr "Veuillez saisir une adresse de messagerie valide."
1551
-
1552
- #: includes/fields/class-file-upload.php:29
1553
  msgid "File Upload"
1554
  msgstr "Fichier"
1555
 
1556
- #: includes/fields/class-file-upload.php:57
1557
  msgid "Allowed File Extensions"
1558
  msgstr "Extensions de fichier autorisés"
1559
 
1560
- #: includes/fields/class-file-upload.php:62
 
 
 
 
 
 
 
 
 
 
 
 
1561
  msgid ""
1562
- "Enter the max file size, in megabytyes, to allow. If left blank, the value "
1563
- "defaults to the maximum size the server allows which is "
1564
  msgstr ""
1565
  "Saisir la taille de fichier maximale autorisée, en mégaoctects. Si laissée "
1566
  "vide, la valeur par défaut sera la taille maximale autorisée par le serveur "
1567
  "qui est "
1568
 
1569
- #: includes/fields/class-file-upload.php:63
1570
- msgid "Max File Size"
1571
- msgstr "Taille maximum du fichier"
 
 
 
 
 
 
1572
 
1573
- #: includes/fields/class-file-upload.php:196
1574
  msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
1575
  msgstr ""
1576
  "La taille du fichier envoyé excède celle indiquée dans la directive "
1577
  "<code>upload_max_filesize</code>, dans <code>php.ini</code>."
1578
 
1579
- #: includes/fields/class-file-upload.php:197
1580
  msgid ""
1581
  "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
1582
  "the HTML form."
@@ -1584,211 +5882,326 @@ msgstr ""
1584
  "La taille du fichier envoyé excède celle indiquée dans la directive "
1585
  "<code>MAX_FILE_SIZE</code> du formulaire HTML."
1586
 
1587
- #: includes/fields/class-file-upload.php:198
1588
  msgid "The uploaded file was only partially uploaded."
1589
  msgstr "Le fichier n&rsquo;a été que partiellement envoyé."
1590
 
1591
- #: includes/fields/class-file-upload.php:199
1592
  msgid "No file was uploaded."
1593
  msgstr "Aucun fichier n&rsquo;a été envoyé."
1594
 
1595
- #: includes/fields/class-file-upload.php:201
1596
  msgid "Missing a temporary folder."
1597
  msgstr "Un dossier temporaire est manquant."
1598
 
1599
- #: includes/fields/class-file-upload.php:202
1600
  msgid "Failed to write file to disk."
1601
  msgstr "Échec de l&rsquo;écriture du fichier sur le disque."
1602
 
1603
- #: includes/fields/class-file-upload.php:203
1604
  msgid "File upload stopped by extension."
1605
  msgstr "L&rsquo;envoi de fichier est arrêté par l&rsquo;extension."
1606
 
1607
- #: includes/fields/class-file-upload.php:205
1608
- msgid "File upload error. "
 
 
1609
  msgstr "Erreur lors de l&rsquo;envoi du fichier."
1610
 
1611
- #: includes/fields/class-file-upload.php:224
1612
  msgid "File exceeds max size allowed"
1613
  msgstr "Le fichier dépasse la taille maximale autorisée"
1614
 
1615
- #: includes/fields/class-file-upload.php:242
1616
  msgid "File must have an extension."
1617
  msgstr "Le fichier doit avoir une extension."
1618
 
1619
- #: includes/fields/class-file-upload.php:252
1620
- #: includes/fields/class-file-upload.php:270
1621
- #: includes/fields/class-file-upload.php:290
1622
- msgid "File type is not allowed."
1623
- msgstr "Ce type de fichier n&rsquo;est pas autorisé."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1624
 
1625
- #: includes/fields/class-hidden.php:21
1626
- msgid "Hidden Field"
1627
- msgstr "Champ caché"
1628
 
1629
- #: includes/fields/class-html.php:21
1630
- msgid "HTML"
1631
- msgstr "HTML"
1632
 
1633
- #: includes/fields/class-html.php:60
1634
- msgid "HTML / Code Block"
1635
- msgstr "HTML / Bloc de code"
 
 
1636
 
1637
- #: includes/fields/class-html.php:63
1638
- msgid "Contents of this field are not displayed in the admin area."
1639
  msgstr ""
1640
- "Les contenus de ce champ ne sont pas affichés dans l&rsquo;espace d&rsquo;"
1641
- "administration."
1642
 
1643
- #: includes/fields/class-name.php:44
1644
- msgid "Select format to use for the name form field"
1645
- msgstr "Sélectionner le format à utiliser pour le champ de formulaire nom"
1646
 
1647
- #: includes/fields/class-name.php:46
1648
- msgid "Simple"
1649
- msgstr "Simple"
1650
 
1651
- #: includes/fields/class-name.php:47
1652
- msgid "First Last"
1653
- msgstr "Prénom Nom"
1654
 
1655
- #: includes/fields/class-name.php:48
1656
- msgid "First Middle Last"
1657
- msgstr "Prénom Second prénom Nom"
1658
 
1659
- #: includes/fields/class-name.php:71
1660
- msgid "Name field advanced options."
1661
- msgstr "Options avancées de champ nom."
1662
 
1663
- #: includes/fields/class-name.php:86
1664
- msgid "First Name"
 
 
1665
  msgstr "Prénom"
1666
 
1667
- #: includes/fields/class-name.php:86
1668
- msgid "First name field advanced options."
1669
- msgstr "Options avancées de champ prénom."
 
 
1670
 
1671
- #: includes/fields/class-name.php:101
1672
- msgid "Middle Name"
1673
- msgstr "Second prénom"
 
 
 
1674
 
1675
- #: includes/fields/class-name.php:101
1676
- msgid "Middle name field advanced options."
1677
- msgstr "Options avancées de champ second prénom."
 
 
1678
 
1679
- #: includes/fields/class-name.php:116
1680
- msgid "Last Name"
1681
- msgstr "Nom"
 
 
1682
 
1683
- #: includes/fields/class-name.php:116
1684
- msgid "Last name field advanced options."
1685
- msgstr "Options avancées de champ nom."
1686
 
1687
- #: includes/fields/class-number.php:21
1688
- msgid "Numbers"
 
 
 
1689
  msgstr "Nombres"
1690
 
1691
- #: includes/fields/class-number.php:132
1692
- msgid "Please enter a valid number."
1693
- msgstr "Veuillez saisir un nombre valide."
1694
-
1695
- #: includes/fields/class-page-break.php:21
1696
- msgid "Page Break"
1697
- msgstr "Saut de page"
1698
-
1699
- #: includes/fields/class-page-break.php:43
1700
- msgid "Enter text for Next page button."
1701
- msgstr "Saisir du texte pour le bouton Page suivante."
1702
 
1703
- #: includes/fields/class-page-break.php:44
1704
- #: includes/fields/class-page-break.php:77
1705
- #: includes/fields/class-page-break.php:102
1706
- msgid "Next"
1707
- msgstr "Suivante"
1708
 
1709
- #: includes/fields/class-page-break.php:45
1710
- msgid "Next Label"
1711
- msgstr "Libellé suivant"
 
 
 
1712
 
1713
- #: includes/fields/class-page-break.php:50
1714
- msgid "Enter text for Previous page button."
1715
- msgstr "Saisir du texte pour le bouton Page précédente."
 
 
1716
 
1717
- #: includes/fields/class-page-break.php:52
1718
- msgid "Previous Label"
1719
- msgstr "Libellé précédent"
 
 
1720
 
1721
- #: includes/fields/class-page-break.php:84
1722
- msgid "Page Break "
1723
- msgstr "Saut de page "
 
 
1724
 
1725
- #: includes/fields/class-password.php:21
1726
- msgid "Password"
1727
- msgstr "Mot de Passe"
 
 
1728
 
1729
- #: includes/fields/class-payment-multiple.php:21
1730
- msgid "Multiple Items"
1731
- msgstr "Plusieurs articles"
 
 
1732
 
1733
- #: includes/fields/class-payment-multiple.php:28
 
 
1734
  msgid "First Item"
1735
  msgstr "Premier élément"
1736
 
1737
- #: includes/fields/class-payment-multiple.php:33
 
 
1738
  msgid "Second Item"
1739
  msgstr "Deuxième élément"
1740
 
1741
- #: includes/fields/class-payment-multiple.php:38
 
 
1742
  msgid "Third Item"
1743
  msgstr "Troisième élément"
1744
 
1745
- #: includes/fields/class-payment-multiple.php:61
1746
- msgid "Add item choices for the form field."
1747
- msgstr "Ajouter un élément de choix pour le champ de formulaire."
1748
-
1749
- #: includes/fields/class-payment-multiple.php:64
1750
- msgid "Items"
1751
- msgstr "Articles"
1752
-
1753
- #: includes/fields/class-payment-multiple.php:178
1754
  msgid "Invalid payment option"
1755
  msgstr "Option de paiement non valide"
1756
 
1757
- #: includes/fields/class-payment-single.php:21
1758
- #: includes/fields/class-payment-single.php:58
 
 
 
 
1759
  msgid "Single Item"
1760
  msgstr "Article seul"
1761
 
1762
- #: includes/fields/class-payment-single.php:49
1763
  msgid "Enter the price of the item, without a currency symbol."
1764
  msgstr "Saisir le tarif de l&rsquo;élément, sans symbole de devise."
1765
 
1766
- #: includes/fields/class-payment-single.php:50
1767
  msgid "Item Price"
1768
  msgstr "Élément tarif"
1769
 
1770
- #: includes/fields/class-payment-single.php:56
1771
  msgid "Select the item type."
1772
  msgstr "Sélectionner le type d&rsquo;élément."
1773
 
1774
- #: includes/fields/class-payment-single.php:59
1775
  msgid "User Defined"
1776
  msgstr "Défini par l&rsquo;utilisateur"
1777
 
1778
- #: includes/fields/class-payment-single.php:60
1779
  msgid "Hidden"
1780
  msgstr "Masqué"
1781
 
1782
- #: includes/fields/class-payment-single.php:62
1783
  msgid "Item Type"
1784
  msgstr "Type d&rsquo;élément"
1785
 
1786
- #: includes/fields/class-payment-single.php:96
1787
- #: includes/fields/class-payment-single.php:139
1788
  msgid "Price"
1789
  msgstr "Tarif"
1790
 
1791
- #: includes/fields/class-payment-single.php:102
1792
  msgid ""
1793
  "Note: Item type is set to hidden and will not be visible when viewing the "
1794
  "form."
@@ -1796,165 +6209,375 @@ msgstr ""
1796
  "Remarque&nbsp;: le type d&rsquo;élément est défini à masquer et ne sera pas "
1797
  "visible lorsque le formulaire s&rsquo;affichera."
1798
 
1799
- #: includes/fields/class-payment-single.php:192
1800
- msgid "Please use a valid currency format"
1801
- msgstr "Veuillez saisir un format de devise valide."
1802
-
1803
- #: includes/fields/class-payment-single.php:199
1804
  msgid "Amount mismatch"
1805
  msgstr "Inadéquation du montant"
1806
 
1807
- #: includes/fields/class-payment-total.php:21
1808
- msgid "Total"
1809
- msgstr "Total"
1810
-
1811
- #: includes/fields/class-phone.php:21
1812
  msgid "Phone"
1813
  msgstr "Téléphone"
1814
 
1815
- #: includes/fields/class-phone.php:45
1816
  msgid "Select format for the phone form field"
1817
  msgstr "Sélectionner le format du champ de formulaire de téléphone"
1818
 
1819
- #: includes/fields/class-radio.php:21
1820
- msgid "Multiple Choice"
1821
- msgstr "Choix multiple"
1822
 
1823
- #: includes/fields/class-radio.php:90
1824
- msgid "Check this to manually set form field values."
 
 
 
 
 
 
1825
  msgstr ""
1826
- "Cocher ceci pour définir manuellement les valeurs de champ de formulaire."
1827
 
1828
- #: includes/fields/class-select.php:21
1829
- msgid "Dropdown"
1830
- msgstr "Liste déroulante"
1831
 
1832
- #: includes/fields/class-text.php:21
1833
- msgid "Single Line Text"
1834
- msgstr "Ligne de texte"
1835
 
1836
- #: includes/fields/class-textarea.php:21
1837
- msgid "Paragraph Text"
1838
- msgstr "Paragraphe de texte"
1839
 
1840
- #: includes/fields/class-url.php:21
1841
- msgid "Website / URL"
1842
- msgstr "Site internet / URL"
1843
 
1844
- #: includes/fields/class-url.php:130
1845
- msgid "Please enter a valid URL"
1846
- msgstr "Merci de saisir une URL valide"
1847
 
1848
- #: includes/templates/class-blank.php:20
1849
- msgid "Blank Form"
1850
- msgstr "Formulaire vierge"
1851
 
1852
- #: includes/templates/class-blank.php:22
1853
- msgid ""
1854
- "The blank form allows you to create any type of form using our drag & drop "
1855
- "builder."
1856
  msgstr ""
1857
- "Le formulaire vierge permet de créer n&rsquo;importe quel type de formulaire "
1858
- "à l&rsquo;aide de notre constructeur par glisser / déposer."
1859
 
1860
- #: includes/templates/class-contact.php:20
1861
- msgid "Simple Contact Form"
1862
- msgstr "Formulaire de contact simple"
1863
 
1864
- #: includes/templates/class-contact.php:22
1865
- msgid ""
1866
- "Allow your users to contact you with this simple contact form. You can add "
1867
- "and remove fields as needed."
1868
  msgstr ""
1869
- "Permet à vos visiteurs de vous contacter depuis ce simple formulaire de "
1870
- "contact. Vous pouvez ajouter et supprimer des champs à votre convenance."
1871
 
1872
- #: includes/templates/class-donation.php:20
1873
- msgid "Donation Form"
1874
- msgstr "Formulaire de don"
1875
 
1876
- #: includes/templates/class-donation.php:22
1877
- msgid ""
1878
- "Start collecting donation payments on your website with this ready-made "
1879
- "Donation form. You can add and remove fields as needed."
1880
  msgstr ""
1881
- "Commencer à collecter des paiements de donation sur votre site avec ce "
1882
- "formulaire de donation prêt à l&rsquo;emploi. Vous pouvez ajouter ou "
1883
- "supprimer des champs à votre convenance."
1884
 
1885
- #: includes/templates/class-donation.php:26
1886
- #: includes/templates/class-order.php:26
1887
- #: includes/templates/class-subscribe.php:26
1888
- msgid "Don&#39;t Forget"
1889
- msgstr "Ne pas oublier"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1890
 
1891
- #: includes/templates/class-donation.php:27
 
 
 
 
 
 
 
 
 
1892
  msgid "Click the Payments tab to configure your payment provider"
1893
  msgstr ""
1894
  "Cliquer sur l&rsquo;onglet paiements pour configurer votre prestataire de "
1895
  "paiement"
1896
 
1897
- #: includes/templates/class-order.php:20
1898
- msgid "Billing / Order Form"
1899
- msgstr "Formulaire de facturation / commande"
 
 
1900
 
1901
- #: includes/templates/class-order.php:22
 
 
 
 
1902
  msgid ""
1903
- "Collect payments for product and service orders with this ready-made form "
1904
  "template. You can add and remove fields as needed."
1905
  msgstr ""
1906
  "Encaisser des paiements pour les commandes de produits et de services avec "
1907
  "ce modèle de formulaire prêt à l&rsquo;emploi. Vous pouvez ajouter et "
1908
  "supprimer des champs à votre convenance."
1909
 
1910
- #: includes/templates/class-order.php:27
1911
- msgid "Click the payments tab to configure your payment provider"
 
 
 
 
 
 
1912
  msgstr ""
1913
- "Cliquer sur l&rsquo;onglet paiements pour configurer votre prestataire de "
1914
- "paiement"
1915
 
1916
- #: includes/templates/class-request-quote.php:20
1917
- msgid "Request A Quote Form"
1918
- msgstr "Formulaire de demande de devis"
1919
 
1920
- #: includes/templates/class-request-quote.php:22
1921
- msgid ""
1922
- "Start collecting leads with this pre-made Request a quote form. You can add "
1923
- "and remove fields as needed."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1924
  msgstr ""
1925
- "Collecter des prospects avec ce formulaire de devis prêt à l&rsquo;emploi. "
1926
- "Vous pouvez ajouter et supprimer des champs à votre convenance."
1927
 
1928
- #: includes/templates/class-subscribe.php:20
1929
- msgid "Newsletter Signup Form"
1930
- msgstr "Formulaire d’inscription à une lettre d&rsquo;information"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1931
 
1932
- #: includes/templates/class-subscribe.php:22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1933
  msgid ""
1934
- "Add subscribers and grow your email list with this newsletter signup form. "
1935
- "You can add and remove fields as needed."
1936
  msgstr ""
1937
- "Aquérir des abonnés et faire croître votre liste d&rsquo;e-mails avec ce "
1938
- "formulaire d&rsquo;inscription de lettre d&rsquo;information. Vous pouvez "
1939
- "ajouter et supprimer des champs à votre convenance."
1940
 
1941
- #: includes/templates/class-subscribe.php:27
1942
- msgid "Click the marketing tab to configure your newsletter service provider"
 
 
 
 
 
1943
  msgstr ""
1944
- "Cliquer sur l&rsquo;onglet marketing pour configurer votre fournisseur de "
1945
- "service de lettre d&rsquo;information"
1946
 
1947
- #: wpforms.php:308
1948
- msgid "Please deactivate WPForms Lite before activating WPForms"
 
 
1949
  msgstr "Veuillez désactiver WPForms Lite avant d&rsquo;activer WPForms"
1950
 
1951
- #~ msgid "https://wpforms.com"
1952
- #~ msgstr "https://wpforms.com"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1953
 
1954
  #~ msgid ""
1955
- #~ "Beginner friendly WordPress contact form plugin. Use our Drag & Drop form "
1956
- #~ "builder to create your WordPress forms."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1957
  #~ msgstr ""
1958
- #~ "Extension de formulaire de contact WordPress accessible aux débutants. "
1959
- #~ "Utiliser notre constructeur de formulaire par glisser / déposer pour "
1960
- #~ "créer vos formulaires WordPress."
4
  msgstr ""
5
  "Project-Id-Version: WPForms 1.0.4\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
7
+ "POT-Creation-Date: 2017-12-04 16:24:56+00:00\n"
8
+ "PO-Revision-Date: 2017-12-28 11:50+0200\n"
9
  "Last-Translator: Nicolas Maillard <nicolas@absoluteweb.net>\n"
10
  "Language-Team: \n"
11
  "Language: fr_FR\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 2.0.5\n"
16
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
17
  "X-Poedit-KeywordsList: __;_e;_x;_n\n"
18
  "X-Poedit-Basepath: ..\n"
20
  "X-Poedit-SearchPathExcluded-0: assets\n"
21
  "X-Poedit-SearchPathExcluded-1: languages\n"
22
 
23
+ #: includes/admin/admin.php:128 includes/admin/admin.php:156
24
+ #: pro/includes/admin/class-addons.php:241
25
+ msgid "Activate"
26
+ msgstr "Activer"
27
+
28
+ #: includes/admin/admin.php:129 pro/includes/admin/class-addons.php:198
29
+ #, fuzzy
30
+ #| msgid "Activate"
31
+ msgid "Active"
32
+ msgstr "Activer"
33
+
34
+ #: includes/admin/admin.php:130 pro/includes/admin/class-addons.php:236
35
+ msgid "Deactivate"
36
+ msgstr "Désactiver"
37
+
38
+ #: includes/admin/admin.php:131 pro/includes/admin/class-addons.php:204
39
+ #, fuzzy
40
+ #| msgid "Deactivate"
41
+ msgid "Inactive"
42
+ msgstr "Désactiver"
43
+
44
+ #: includes/admin/admin.php:132 pro/includes/admin/class-addons.php:246
45
+ msgid "Install Addon"
46
+ msgstr "Installer une extension"
47
+
48
+ #: includes/admin/admin.php:134 includes/admin/builder/class-builder.php:287
49
+ #: includes/admin/class-editor.php:97
50
+ #: pro/includes/admin/entries/class-entries-single.php:601
51
+ msgid "Cancel"
52
+ msgstr "Annuler"
53
+
54
+ #: includes/admin/admin.php:135 includes/admin/builder/class-builder.php:289
55
+ #: includes/admin/class-editor.php:71 includes/class-preview.php:160
56
+ msgid "Close"
57
+ msgstr "Fermer"
58
+
59
+ #: includes/admin/admin.php:136
60
+ msgid "Are you sure you want to delete this entry?"
61
+ msgstr "Êtes-vous certain de vouloir supprimer cette entrée&nbsp;?"
62
+
63
+ #: includes/admin/admin.php:137
64
+ #, fuzzy
65
+ #| msgid "Are you sure you want to delete this entry?"
66
+ msgid "Are you sure you want to delete ALL entries?"
67
+ msgstr "Êtes-vous certain de vouloir supprimer cette entrée&nbsp;?"
68
+
69
+ #: includes/admin/admin.php:138
70
+ #: pro/includes/admin/entries/class-entries-single.php:508
71
+ #, fuzzy
72
+ #| msgid "Hidden Field"
73
+ msgid "Hide Empty Fields"
74
+ msgstr "Champ caché"
75
+
76
+ #: includes/admin/admin.php:139
77
+ #: pro/includes/admin/entries/class-entries-single.php:508
78
+ msgid "Show Empty Fields"
79
+ msgstr ""
80
+
81
+ #: includes/admin/admin.php:140
82
+ msgid "Entries Field Columns"
83
+ msgstr ""
84
+
85
+ #: includes/admin/admin.php:141
86
+ #, fuzzy
87
+ #| msgid "Are you sure you want to delete this entry?"
88
+ msgid "Are you sure you want to delete this note?"
89
+ msgstr "Êtes-vous certain de vouloir supprimer cette entrée&nbsp;?"
90
+
91
+ #: includes/admin/admin.php:142
92
+ #: pro/includes/admin/entries/class-entries-list-table.php:364
93
+ #, fuzzy
94
+ #| msgid "Invalid entry."
95
+ msgid "Unstar entry"
96
+ msgstr "Entrée non valide."
97
+
98
+ #: includes/admin/admin.php:143
99
+ #: pro/includes/admin/entries/class-entries-list-table.php:364
100
+ msgid "Star entry"
101
+ msgstr ""
102
+
103
+ #: includes/admin/admin.php:144
104
+ #: pro/includes/admin/entries/class-entries-list-table.php:369
105
+ msgid "Mark entry read"
106
+ msgstr ""
107
+
108
+ #: includes/admin/admin.php:145
109
+ #: pro/includes/admin/entries/class-entries-list-table.php:369
110
+ msgid "Mark entry unread"
111
+ msgstr ""
112
+
113
+ #: includes/admin/admin.php:146
114
+ #, fuzzy
115
+ #| msgid "-- Select field --"
116
+ msgid "Select fields"
117
+ msgstr "-- Sélectionner champ --"
118
+
119
+ #: includes/admin/admin.php:147
120
+ msgid "Are you sure you want to delete this form?"
121
+ msgstr "Êtes-vous certain de vouloir supprimer ce formulaire&nbsp;?"
122
+
123
+ #: includes/admin/admin.php:148
124
+ #, fuzzy
125
+ #| msgid "Are you sure you want to delete this form?"
126
+ msgid "Are you sure you want to duplicate this form?"
127
+ msgstr "Êtes-vous certain de vouloir supprimer ce formulaire&nbsp;?"
128
+
129
+ #: includes/admin/admin.php:149 includes/admin/builder/class-builder.php:297
130
+ msgid "Heads up!"
131
+ msgstr ""
132
+
133
+ #: includes/admin/admin.php:150
134
+ #, fuzzy
135
+ #| msgid "Please select an entry to view."
136
+ msgid "Please select at least one form to import."
137
+ msgstr "Veuillez sélectionner une entrée à visualiser."
138
+
139
+ #: includes/admin/admin.php:153 includes/admin/builder/class-builder.php:288
140
+ msgid "OK"
141
+ msgstr ""
142
+
143
+ #: includes/admin/admin.php:154
144
+ msgid "Install and Activate"
145
+ msgstr ""
146
+
147
+ #: includes/admin/admin.php:155
148
+ msgid ""
149
+ "needs to be installed and activated to import its forms. Would you like us "
150
+ "to install and activate it for you?"
151
+ msgstr ""
152
+
153
+ #: includes/admin/admin.php:157
154
+ msgid ""
155
+ "needs to be activated to import its forms. Would you like us to activate it "
156
+ "for you?."
157
+ msgstr ""
158
+
159
+ #: includes/admin/admin.php:158
160
+ msgid "Are you sure you want to disconnect this account?"
161
+ msgstr "Êtes-vous certain de vouloir déconnecter ce compte&nbsp;?"
162
+
163
+ #: includes/admin/admin.php:159
164
+ msgid "Could not authenticate with the provider."
165
+ msgstr ""
166
+
167
+ #: includes/admin/admin.php:160
168
+ #, fuzzy
169
+ #| msgid "Save and Exit"
170
+ msgid "Save and Refresh"
171
+ msgstr "Sauvegarder et quitter"
172
+
173
+ #: includes/admin/admin.php:161
174
+ #, fuzzy
175
+ #| msgid "Form successfully deleted."
176
+ msgid "Upgrade was successfully completed!"
177
+ msgstr "Formulaire supprimé avec succès."
178
+
179
+ #: includes/admin/admin.php:162
180
+ msgid "Upload or Choose Your Image"
181
+ msgstr ""
182
+
183
+ #: includes/admin/admin.php:163
184
+ #, fuzzy
185
+ #| msgid "Use Template"
186
+ msgid "Use Image"
187
+ msgstr "Utiliser un modèle"
188
+
189
+ #. translators: %1$s - opening link tag; %2$s - closing link tag; %3$s -
190
+ #. opening link tag; %4$s - closing link tag.
191
+ #: includes/admin/admin.php:167 lite/wpforms-lite.php:415
192
+ msgid ""
193
+ "<p>Thanks for your interest in WPForms Pro!<br>If you have any questions or "
194
+ "issues just %1$slet us know%2$s.</p><p>After purchasing WPForms Pro, you'll "
195
+ "need to <strong>download and install the Pro version of the plugin</strong>, "
196
+ "and then <strong>remove the free plugin</strong>.<br>(Don't worry, all your "
197
+ "forms and settings will be preserved.)</p><p>Check out %3$sour documentation"
198
+ "%4$s for step-by-step instructions.</p>"
199
+ msgstr ""
200
+
201
+ #. translators: %1$s - WPForms plugin name; %2$s - opening a link tag; %3$s -
202
+ #. closing a link tag.
203
+ #: includes/admin/admin.php:374
204
+ msgid ""
205
+ "Your site is running an outdated version of PHP that is no longer supported "
206
+ "and may cause issues with %1$s. %2$sRead more%3$s for additional information."
207
+ msgstr ""
208
+
209
+ #: includes/admin/ajax-actions.php:24
210
+ #, fuzzy
211
+ #| msgid "You do not have permission"
212
+ msgid "You do not have permission."
213
+ msgstr "Vous n&rsquo;avez pas d&rsquo;autorisation"
214
 
215
  #: includes/admin/ajax-actions.php:29
216
  msgid "No data provided"
217
  msgstr "Aucune donnée fournie"
218
 
219
+ #: includes/admin/ajax-actions.php:69
220
+ #, fuzzy
221
+ #| msgid "An error occured and the form could not be saved"
222
+ msgid "An error occurred and the form could not be saved"
223
  msgstr ""
224
  "Une erreur s&rsquo;est produite et le formulaire ne peut pas être enregistrée"
225
 
226
+ #: includes/admin/ajax-actions.php:95
227
+ #, fuzzy
228
+ #| msgid "No form ID provided"
229
+ msgid "No form name provided"
230
+ msgstr "Aucun ID de formulaire fourni"
231
 
232
+ #: includes/admin/ajax-actions.php:132
233
  msgid "Error creating form"
234
  msgstr "Erreur lors de la création du formulaire"
235
 
236
+ #: includes/admin/ajax-actions.php:150
237
  msgid "No form ID provided"
238
  msgstr "Aucun ID de formulaire fourni"
239
 
240
+ #: includes/admin/ajax-actions.php:173
241
  msgid "Error updating form template"
242
  msgstr "Erreur lors de la mise à jour du modèle de formulaire"
243
 
244
+ #: includes/admin/ajax-actions.php:281 includes/fields/class-base.php:405
245
+ msgid "post type"
246
+ msgstr ""
247
 
248
+ #: includes/admin/ajax-actions.php:309 includes/fields/class-base.php:412
249
+ msgid "taxonomy"
250
  msgstr ""
 
 
251
 
252
+ #: includes/admin/builder/class-builder.php:274
253
+ #: includes/class-conditional-logic-core.php:445
254
+ msgid "AND"
255
+ msgstr "ET"
256
 
257
+ #: includes/admin/builder/class-builder.php:276
258
+ #, fuzzy
259
+ #| msgid "Add New Connection"
260
+ msgid "Add New Choices"
261
+ msgstr "Ajouter une nouvelle connexion"
262
+
263
+ #: includes/admin/builder/class-builder.php:277
264
+ #: includes/fields/class-base.php:363
265
+ msgid "Bulk Add"
266
  msgstr ""
 
 
267
 
268
+ #: includes/admin/builder/class-builder.php:278
269
+ msgid "Hide Bulk Add"
270
+ msgstr ""
271
+
272
+ #: includes/admin/builder/class-builder.php:279
273
+ #, fuzzy
274
+ #| msgid "Add choices for the form field."
275
+ msgid "Add Choices (one per line)"
276
+ msgstr "Ajouter des choix pour le champ de formulaire."
277
+
278
+ #: includes/admin/builder/class-builder.php:280
279
  msgid ""
280
+ "Blue\n"
281
+ "Red\n"
282
+ "Green"
283
  msgstr ""
 
 
284
 
285
+ #: includes/admin/builder/class-builder.php:281
286
+ #, fuzzy
287
+ #| msgid "Show Values"
288
+ msgid "Show presets"
289
+ msgstr "Afficher les valeurs"
290
+
291
+ #: includes/admin/builder/class-builder.php:282
292
+ msgid "Hide presets"
293
+ msgstr ""
294
 
295
+ #: includes/admin/builder/class-builder.php:286
296
+ msgid ""
297
+ "The {source} {type} contains over {limit} items ({total}). This may make the "
298
+ "field difficult for your vistors to use and/or cause the form to be slow."
299
+ msgstr ""
300
+
301
+ #: includes/admin/builder/class-builder.php:290
302
+ msgid ""
303
+ "Due to form changes, conditional logic rules have been removed or updated:"
304
+ msgstr ""
305
+
306
+ #: includes/admin/builder/class-builder.php:291
307
+ msgid ""
308
+ "Are you sure you want to disable conditional logic? This will remove the "
309
+ "rules for this field or setting."
310
+ msgstr ""
311
+
312
+ #: includes/admin/builder/class-builder.php:292
313
+ #: pro/includes/admin/entries/class-entries-list-table.php:212
314
+ #: pro/includes/admin/entries/class-entries-list-table.php:223
315
+ #: pro/includes/admin/entries/class-entries-list.php:399
316
+ #: pro/includes/admin/entries/class-entries-list.php:413
317
  msgid "Field"
318
  msgstr "Champ"
319
 
320
+ #: includes/admin/builder/class-builder.php:293
321
+ #, fuzzy
322
+ #| msgid "Field Size"
323
+ msgid "Field Locked"
324
+ msgstr "Taille du champ"
325
+
326
+ #: includes/admin/builder/class-builder.php:294
327
+ msgid "This field cannot be deleted or duplicated."
328
+ msgstr ""
329
+
330
+ #: includes/admin/builder/class-builder.php:295
331
  msgid "Available Fields"
332
  msgstr "Champs disponibles"
333
 
334
+ #: includes/admin/builder/class-builder.php:296
335
  msgid "No fields available"
336
  msgstr "Aucun champ disponible"
337
 
338
+ #: includes/admin/builder/class-builder.php:299
339
+ msgid "No email fields"
340
+ msgstr ""
341
+
342
+ #: includes/admin/builder/class-builder.php:300
343
+ #, fuzzy
344
+ #| msgid "Are you sure you want to delete this connecton?"
345
+ msgid "Are you sure you want to delete this notification?"
346
+ msgstr "Êtes-vous certain de vouloir supprimer cette connexion&nbsp;?"
347
+
348
+ #: includes/admin/builder/class-builder.php:301
349
+ #, fuzzy
350
+ #| msgid "Enter a connection nickname"
351
+ msgid "Enter a notification name"
352
+ msgstr "Saisir un pseudo de connexion"
353
+
354
+ #: includes/admin/builder/class-builder.php:302
355
+ #, fuzzy
356
+ #| msgid "Confirmation"
357
+ msgid "Eg: User Confirmation"
358
+ msgstr "Confirmation"
359
+
360
+ #: includes/admin/builder/class-builder.php:303
361
+ #, fuzzy
362
+ #| msgid "You must provide a connection nickname"
363
+ msgid "You must provide a notification name"
364
+ msgstr "Vous devez fournir un pseudo de connexion"
365
+
366
+ #: includes/admin/builder/class-builder.php:304
367
+ msgid ""
368
+ "Form must contain one notification. To disable all notifications use the "
369
+ "Notifications dropdown setting."
370
+ msgstr ""
371
+
372
+ #: includes/admin/builder/class-builder.php:305 lite/wpforms-lite.php:84
373
+ #: pro/wpforms-pro.php:434
374
+ #, fuzzy
375
+ #| msgid "Notification"
376
+ msgid "Default Notification"
377
+ msgstr "Notification"
378
+
379
+ #: includes/admin/builder/class-builder.php:306
380
+ #: includes/admin/builder/class-builder.php:481
381
+ msgid "Save"
382
+ msgstr "Enregistrer"
383
+
384
+ #: includes/admin/builder/class-builder.php:307
385
  msgid "Saving ..."
386
  msgstr "Sauvegarde…"
387
 
388
+ #: includes/admin/builder/class-builder.php:308
389
  msgid "Saved!"
390
  msgstr "Enregistré&nbsp;!"
391
 
392
+ #: includes/admin/builder/class-builder.php:309
393
  msgid "Save and Exit"
394
  msgstr "Sauvegarder et quitter"
395
 
396
+ #: includes/admin/builder/class-builder.php:311
397
+ #: includes/fields/class-base.php:550
398
+ #, fuzzy
399
+ #| msgid "Show Values"
400
+ msgid "Show Layouts"
401
+ msgstr "Afficher les valeurs"
402
+
403
+ #: includes/admin/builder/class-builder.php:312
404
+ #, fuzzy
405
+ #| msgid "Hide Label"
406
+ msgid "Hide Layouts"
407
+ msgstr "Masquer le libellé"
408
+
409
+ #: includes/admin/builder/class-builder.php:313
410
+ #, fuzzy
411
+ #| msgid "Select Groups"
412
+ msgid "Select your layout"
413
+ msgstr "Sélectionner les groupes"
414
+
415
+ #: includes/admin/builder/class-builder.php:314
416
+ #, fuzzy
417
+ #| msgid "Select Account"
418
+ msgid "Select your column"
419
+ msgstr "Sélectionner le compte"
420
+
421
+ #: includes/admin/builder/class-builder.php:315
422
+ #: includes/admin/builder/class-builder.php:436
423
  msgid "Loading"
424
  msgstr "Chargement en cours"
425
 
426
+ #: includes/admin/builder/class-builder.php:321
427
  msgid "Use Template"
428
  msgstr "Utiliser un modèle"
429
 
430
+ #: includes/admin/builder/class-builder.php:322
431
  msgid ""
432
  "Changing templates on an existing form will DELETE existing form fields. Are "
433
  "you sure you want apply the new template?"
435
  "Changer les modèles sur un formulaire existant va SUPPRIMER les champs "
436
  "existants. Êtes-vous certain de vouloir appliquer le nouveau modèle&nbsp;?"
437
 
438
+ #: includes/admin/builder/class-builder.php:323
439
+ msgid ""
440
+ "You are almost done. To embed this form on your site, please paste the "
441
+ "following shortcode inside a post or page."
442
+ msgstr ""
443
+
444
+ #: includes/admin/builder/class-builder.php:324
445
+ msgid "Or you can follow the instructions in this video."
446
+ msgstr ""
447
+
448
+ #: includes/admin/builder/class-builder.php:325
449
+ #: includes/admin/builder/class-builder.php:486
450
  msgid "Exit"
451
  msgstr "Quitter"
452
 
453
+ #: includes/admin/builder/class-builder.php:327
454
  msgid "If you exit without saving, your changes will be lost."
455
  msgstr "Si vous quittez sans sauvegarder, vos modifications seront perdues."
456
 
457
+ #: includes/admin/builder/class-builder.php:328
458
  msgid "Are you sure you want to delete this field?"
459
  msgstr "Êtes-vous certain de vouloir supprimer ce champ&nbsp;?"
460
 
461
+ #: includes/admin/builder/class-builder.php:329
462
+ #, fuzzy
463
+ #| msgid "Are you sure you want to delete this field?"
464
+ msgid "Are you sure you want to duplicate this field?"
465
+ msgstr "Êtes-vous certain de vouloir supprimer ce champ&nbsp;?"
466
+
467
+ #: includes/admin/builder/class-builder.php:330
468
+ msgid "(copy)"
469
+ msgstr ""
470
+
471
+ #: includes/admin/builder/class-builder.php:331
472
+ #, fuzzy
473
+ #| msgid "Please enter a form title."
474
+ msgid "Please enter a form name."
475
  msgstr "Veuillez saisir un titre de formulaire."
476
 
477
+ #: includes/admin/builder/class-builder.php:332
478
  msgid "This item must contain at least one choice."
479
  msgstr "Cet élément doit contenir au moins un choix."
480
 
481
+ #: includes/admin/builder/class-builder.php:333
482
+ #: includes/fields/class-base.php:253 includes/fields/class-base.php:599
483
+ #: lite/wpforms-lite.php:76 pro/wpforms-pro.php:427
484
+ msgid "Off"
485
+ msgstr "Désactiver"
486
+
487
+ #: includes/admin/builder/class-builder.php:334
488
+ #: includes/fields/class-base.php:253 lite/wpforms-lite.php:75
489
+ #: pro/wpforms-pro.php:426
490
+ msgid "On"
491
+ msgstr "Activer"
492
+
493
+ #: includes/admin/builder/class-builder.php:335
494
+ msgid "or"
495
+ msgstr ""
496
+
497
+ #: includes/admin/builder/class-builder.php:336
498
+ #: includes/templates/class-suggestion.php:61
499
+ msgid "Other"
500
+ msgstr ""
501
+
502
+ #: includes/admin/builder/class-builder.php:337
503
+ #: includes/class-conditional-logic-core.php:371
504
+ msgid "is"
505
+ msgstr "est"
506
+
507
+ #: includes/admin/builder/class-builder.php:338
508
+ #: includes/class-conditional-logic-core.php:372
509
+ msgid "is not"
510
+ msgstr "n&rsquo;est pas"
511
+
512
+ #: includes/admin/builder/class-builder.php:339
513
+ #: includes/class-conditional-logic-core.php:373
514
+ msgid "empty"
515
+ msgstr "vide"
516
+
517
+ #: includes/admin/builder/class-builder.php:340
518
+ #: includes/class-conditional-logic-core.php:374
519
+ #, fuzzy
520
+ #| msgid "empty"
521
+ msgid "not empty"
522
+ msgstr "vide"
523
+
524
+ #: includes/admin/builder/class-builder.php:341
525
+ #: includes/class-conditional-logic-core.php:379
526
+ msgid "contains"
527
+ msgstr ""
528
+
529
+ #: includes/admin/builder/class-builder.php:342
530
+ #: includes/class-conditional-logic-core.php:380
531
+ msgid "does not contain"
532
+ msgstr ""
533
+
534
+ #: includes/admin/builder/class-builder.php:343
535
+ #: includes/class-conditional-logic-core.php:381
536
+ msgid "starts with"
537
+ msgstr ""
538
+
539
+ #: includes/admin/builder/class-builder.php:344
540
+ #: includes/class-conditional-logic-core.php:382
541
+ msgid "ends with"
542
+ msgstr ""
543
+
544
+ #: includes/admin/builder/class-builder.php:345
545
+ msgid ""
546
+ "Form entries must be stored to accept payments. Please enable saving form "
547
+ "entries in the General settings first."
548
+ msgstr ""
549
+
550
+ #: includes/admin/builder/class-builder.php:346
551
+ #: pro/includes/fields/class-page-break.php:199
552
+ #: pro/includes/fields/class-page-break.php:521
553
+ msgid "Previous"
554
+ msgstr "Précédente"
555
+
556
+ #: includes/admin/builder/class-builder.php:347
557
+ #: includes/class-conditional-logic-core.php:445
558
+ #, fuzzy
559
+ #| msgid "Create a %s"
560
+ msgid "Create new rule"
561
+ msgstr "Créer un %s"
562
+
563
+ #: includes/admin/builder/class-builder.php:348
564
+ #, fuzzy
565
+ #| msgid "Add rule group"
566
+ msgid "Add new group"
567
+ msgstr "Ajouter un groupe de règles"
568
+
569
+ #: includes/admin/builder/class-builder.php:349
570
+ #: includes/class-conditional-logic-core.php:446
571
+ #, fuzzy
572
+ #| msgid "Delete"
573
+ msgid "Delete rule"
574
+ msgstr "Supprimer "
575
+
576
+ #: includes/admin/builder/class-builder.php:351
577
+ #: includes/admin/builder/functions.php:255 includes/fields/class-base.php:496
578
  msgid "Show Smart Tags"
579
  msgstr "Afficher les balises intelligentes"
580
 
581
+ #: includes/admin/builder/class-builder.php:352
582
  msgid "Hide Smart Tags"
583
  msgstr "Masquer les balises intelligentes"
584
 
585
+ #: includes/admin/builder/class-builder.php:353
586
+ #: includes/class-conditional-logic-core.php:330
587
+ #, fuzzy
588
+ #| msgid "-- Select field --"
589
+ msgid "-- Select Field --"
590
+ msgstr "-- Sélectionner champ --"
591
+
592
+ #: includes/admin/builder/class-builder.php:354
593
+ #: includes/class-conditional-logic-core.php:425
594
+ msgid "-- Select Choice --"
595
+ msgstr "-- Sélectionner choix --"
596
+
597
+ #: includes/admin/builder/class-builder.php:387
598
+ #, fuzzy
599
+ #| msgid "Entries"
600
+ msgid "Countries"
601
+ msgstr "Entrées"
602
+
603
+ #: includes/admin/builder/class-builder.php:391
604
+ #, fuzzy
605
+ #| msgid "Zip / Postal Code"
606
+ msgid "Countries Postal Code"
607
+ msgstr "Code postal"
608
+
609
+ #: includes/admin/builder/class-builder.php:395
610
+ #, fuzzy
611
+ #| msgid "State"
612
+ msgid "States"
613
+ msgstr "État"
614
+
615
+ #: includes/admin/builder/class-builder.php:399
616
+ #, fuzzy
617
+ #| msgid "Zip / Postal Code"
618
+ msgid "States Postal Code"
619
+ msgstr "Code postal"
620
+
621
+ #: includes/admin/builder/class-builder.php:403
622
+ msgid "Months"
623
+ msgstr ""
624
+
625
+ #: includes/admin/builder/class-builder.php:407
626
+ msgid "Days"
627
+ msgstr ""
628
+
629
+ #: includes/admin/builder/class-builder.php:459
630
  msgid "Now editing"
631
  msgstr "Modification en cours de"
632
 
633
+ #: includes/admin/builder/class-builder.php:469
634
+ #: pro/includes/admin/entries/class-entries-list.php:532
635
+ #, fuzzy
636
+ #| msgid "Previous"
637
+ msgid "Preview Form"
638
+ msgstr "Précédente"
639
+
640
+ #: includes/admin/builder/class-builder.php:471
641
+ #: includes/admin/class-tools.php:445
642
+ #: includes/admin/overview/class-overview-table.php:182
643
+ #, fuzzy
644
+ #| msgid "Previous"
645
+ msgid "Preview"
646
+ msgstr "Précédente"
647
+
648
+ #: includes/admin/builder/class-builder.php:474
649
+ #, fuzzy
650
+ #| msgid "Add Form"
651
+ msgid "Embed Form"
652
+ msgstr "Ajouter un formulaire"
653
+
654
+ #: includes/admin/builder/class-builder.php:476
655
+ msgid "Embed"
656
+ msgstr ""
657
+
658
+ #: includes/admin/builder/class-builder.php:479
659
+ #, fuzzy
660
+ #| msgid "Blank Form"
661
+ msgid "Save Form"
662
+ msgstr "Formulaire vierge"
663
+
664
+ #: includes/admin/builder/functions.php:194
665
+ #, fuzzy
666
+ #| msgid "Field"
667
+ msgid "Field #"
668
+ msgstr "Champ"
669
 
670
  #: includes/admin/builder/panels/class-fields.php:21
671
  msgid "Fields"
687
  "Vous devez <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
688
  "\">configurer votre formulaire</a> avant de pouvoir gérer les champs."
689
 
690
+ #: includes/admin/builder/panels/class-fields.php:123
691
+ #: includes/admin/builder/panels/class-settings.php:123
692
+ #: includes/admin/importers/class-contact-form-7.php:106
693
+ #: includes/admin/importers/class-ninja-forms.php:123
 
 
 
 
 
 
694
  msgid "Submit"
695
  msgstr "Envoyer"
696
 
697
+ #: includes/admin/builder/panels/class-fields.php:143
698
  msgid "Standard Fields"
699
  msgstr "Champs standards"
700
 
701
+ #: includes/admin/builder/panels/class-fields.php:147
702
  msgid "Fancy Fields"
703
  msgstr "Champs avancés"
704
 
705
+ #: includes/admin/builder/panels/class-fields.php:151
706
  msgid "Payment Fields"
707
  msgstr "Champs de paiement"
708
 
709
+ #: includes/admin/builder/panels/class-fields.php:201
710
  msgid "You don't have any fields yet."
711
  msgstr "Vous n&rsquo;avez pas encore de champ."
712
 
713
+ #: includes/admin/builder/panels/class-fields.php:232
714
  msgid "You don't have any fields yet. Add some!"
715
  msgstr "Vous n&rsquo;avez pas encore de champ. Ajoutez-en&nbsp;!"
716
 
717
  #: includes/admin/builder/panels/class-fields.php:252
718
+ #: includes/fields/class-base.php:796
719
+ #, fuzzy
720
+ #| msgid "Delete Field"
721
+ msgid "Duplicate Field"
722
  msgstr "Supprimer le champ"
723
 
724
  #: includes/admin/builder/panels/class-fields.php:254
725
+ #: includes/fields/class-base.php:797
726
+ msgid "Delete Field"
727
+ msgstr "Supprimer le champ"
728
+
729
+ #: includes/admin/builder/panels/class-fields.php:256
730
+ #: includes/fields/class-base.php:798
731
  msgid "Click to edit. Drag to reorder."
732
  msgstr "Cliquer pour modifier. Glisser pour réordonner."
733
 
734
+ #: includes/admin/builder/panels/class-providers.php:21
735
+ msgid "Marketing"
736
+ msgstr "Marketing"
737
 
738
+ #: includes/admin/builder/panels/class-providers.php:55
 
739
  msgid ""
740
+ "We need to save your progress to continue to the Marketing panel. Is that OK?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
741
  msgstr ""
742
  "Nous avons besoin de sauvegarder votre progression pour continuer sur le "
743
  "panneau Marketing. Êtes-vous d&rsquo;accord&nbsp;?"
747
  msgstr "Êtes-vous certain de vouloir supprimer cette connexion&nbsp;?"
748
 
749
  #: includes/admin/builder/panels/class-providers.php:57
750
+ #, fuzzy
751
+ #| msgid "Enter a connection nickname"
752
+ msgid "Enter a %type% nickname"
753
  msgstr "Saisir un pseudo de connexion"
754
 
755
  #: includes/admin/builder/panels/class-providers.php:58
764
  msgid "Field required"
765
  msgstr "Champ obligatoire"
766
 
767
+ #: includes/admin/builder/panels/class-providers.php:97
768
+ #: pro/includes/admin/builder/panels/class-payments.php:60
769
+ #, fuzzy
770
+ #| msgid ""
771
+ #| "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel="
772
+ #| "\"setup\">setup your form</a> before you can manage the settings."
773
+ msgid ""
774
+ "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
775
+ "\">setup your form</a> before you can manage these settings."
776
+ msgstr ""
777
+ "Vous devez <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
778
+ "\">configurer votre formulaire</a> avant de pouvoir gérer les réglages."
779
+
780
+ #: includes/admin/builder/panels/class-providers.php:108
781
  msgid "Install Your Marketing Integration"
782
  msgstr "Installer votre intégration marketing"
783
 
784
+ #: includes/admin/builder/panels/class-providers.php:109
785
+ #, fuzzy
786
+ #| msgid ""
787
+ #| "It seems you do not have any marketing add-ons activated. You can head "
788
+ #| "over to the <a href=\"%s\">Add-Ons page</a> to install and activate the "
789
+ #| "add-on for your provider."
790
  msgid ""
791
+ "It seems you do not have any marketing addons activated. You can head over "
792
+ "to the <a href=\"%s\">Addons page</a> to install and activate the addon for "
793
+ "your provider."
794
  msgstr ""
795
  "Il semble que vous n&rsquo;avez aucune extension marketing activée. Vous "
796
  "pouvez vous rendre sur la <a href=\"%s\">page Extensions</a> pour installer "
797
  "et activer l&rsquo;extension pour votre fournisseur."
798
 
799
+ #: includes/admin/builder/panels/class-providers.php:115
800
  msgid "Select Your Marketing Integration"
801
  msgstr "Sélectionner votre intégration marketing"
802
 
803
+ #: includes/admin/builder/panels/class-providers.php:116
804
+ #, fuzzy
805
+ #| msgid ""
806
+ #| "Select your email marketing service provider or CRM from the options on "
807
+ #| "the left. If you don't see your email marketing service listed, then let "
808
+ #| "us know and we'll do our best to get it added as fast as possible"
809
  msgid ""
810
  "Select your email marketing service provider or CRM from the options on the "
811
  "left. If you don't see your email marketing service listed, then let us know "
812
+ "and we'll do our best to get it added as fast as possible."
813
  msgstr ""
814
  "Sélectionner votre fournisseur d&rsquo;e-mail marketing ou CRM depuis les "
815
  "options sur la gauche. Si vous ne voyez pas votre service d&rsquo;e-mail "
817
  "l&rsquo;ajouter aussi rapidement que possible"
818
 
819
  #: includes/admin/builder/panels/class-settings.php:21
820
+ #: includes/admin/class-menu.php:84 includes/admin/class-menu.php:195
821
  msgid "Settings"
822
  msgstr "Réglages"
823
 
824
  #: includes/admin/builder/panels/class-settings.php:57
825
  #: includes/admin/builder/panels/class-settings.php:87
826
+ #: includes/admin/class-settings.php:166 includes/admin/class-settings.php:247
827
  msgid "General"
828
  msgstr "Général"
829
 
830
+ #: includes/admin/builder/panels/class-settings.php:58 lite/wpforms-lite.php:61
831
+ #: lite/wpforms-lite.php:71 pro/wpforms-pro.php:413 pro/wpforms-pro.php:422
832
+ msgid "Notifications"
833
+ msgstr "Notifications"
834
 
835
  #: includes/admin/builder/panels/class-settings.php:59
836
+ #: includes/admin/builder/panels/class-settings.php:180
837
  msgid "Confirmation"
838
  msgstr "Confirmation"
839
 
846
  "\">configurer votre formulaire</a> avant de pouvoir gérer les réglages."
847
 
848
  #: includes/admin/builder/panels/class-settings.php:94
849
+ #: includes/admin/builder/panels/class-setup.php:55
850
+ #: includes/class-smart-tags.php:38
851
+ msgid "Form Name"
852
+ msgstr "Nom du formulaire"
853
 
854
+ #: includes/admin/builder/panels/class-settings.php:104
855
  msgid "Form Description"
856
  msgstr "Description du formulaire"
857
 
858
+ #: includes/admin/builder/panels/class-settings.php:111
859
+ #, fuzzy
860
+ #| msgid "CSS Classes"
861
+ msgid "Form CSS Class"
862
+ msgstr "Classes CSS"
863
 
864
+ #: includes/admin/builder/panels/class-settings.php:113
865
+ #, fuzzy
866
+ #| msgid ""
867
+ #| "Enter CSS class names for the form field container. Class names should be "
868
+ #| "seperated with spaces."
869
+ msgid ""
870
+ "Enter CSS class names for the form wrapper. Multiple class names should be "
871
+ "separated with spaces."
872
+ msgstr ""
873
+ "Saisir les noms de classe CSS pour le conteneur de champ de formulaire. Les "
874
+ "noms de classe doivent être séparés par des espaces."
875
 
876
+ #: includes/admin/builder/panels/class-settings.php:121
877
  msgid "Submit Button Text"
878
  msgstr "Texte du bouton de soumission"
879
 
880
+ #: includes/admin/builder/panels/class-settings.php:131
881
+ #, fuzzy
882
+ #| msgid "Submit Button Text"
883
+ msgid "Submit Button Processing Text"
884
+ msgstr "Texte du bouton de soumission"
 
 
 
 
 
 
 
 
 
 
 
885
 
886
+ #: includes/admin/builder/panels/class-settings.php:133
887
+ msgid ""
888
+ "Enter the submit button text you would like the button display while the "
889
+ "form submit is processing."
890
+ msgstr ""
891
 
892
+ #: includes/admin/builder/panels/class-settings.php:141
893
+ #, fuzzy
894
+ #| msgid "Submit Button Text"
895
+ msgid "Submit Button CSS Class"
896
+ msgstr "Texte du bouton de soumission"
897
 
898
+ #: includes/admin/builder/panels/class-settings.php:143
899
+ #, fuzzy
900
+ #| msgid ""
901
+ #| "Enter CSS class names for the form field container. Class names should be "
902
+ #| "seperated with spaces."
903
  msgid ""
904
+ "Enter CSS class names for the form submit button. Multiple names should be "
905
+ "separated with spaces."
906
  msgstr ""
907
+ "Saisir les noms de classe CSS pour le conteneur de champ de formulaire. Les "
908
+ "noms de classe doivent être séparés par des espaces."
 
 
 
 
 
909
 
910
+ #: includes/admin/builder/panels/class-settings.php:151
911
+ msgid "Enable anti-spam honeypot"
912
+ msgstr "Activer honeypot anti-spam"
913
 
914
+ #: includes/admin/builder/panels/class-settings.php:162
915
+ #, fuzzy
916
+ #| msgid "Enable reCAPTCHA"
917
+ msgid "Enable Google invisible reCAPTCHA"
918
+ msgstr "Activer reCAPTCHA"
919
 
920
+ #: includes/admin/builder/panels/class-settings.php:162
921
+ #, fuzzy
922
+ #| msgid "Enable reCAPTCHA"
923
+ msgid "Enable Google reCAPTCHA (v2)"
924
+ msgstr "Activer reCAPTCHA"
925
 
926
+ #: includes/admin/builder/panels/class-settings.php:187
927
  msgid "Confirmation Type"
928
  msgstr "Type de confirmation"
929
 
930
+ #: includes/admin/builder/panels/class-settings.php:191
931
+ #: includes/templates/class-suggestion.php:76 lite/wpforms-lite.php:189
932
+ #: pro/wpforms-pro.php:568
933
  msgid "Message"
934
  msgstr "Message"
935
 
936
+ #: includes/admin/builder/panels/class-settings.php:192
937
  msgid "Show Page"
938
  msgstr "Afficher la page"
939
 
940
+ #: includes/admin/builder/panels/class-settings.php:193
941
  msgid "Go to URL (Redirect)"
942
  msgstr "Aller à l&rsquo;URL (redirection)"
943
 
944
+ #: includes/admin/builder/panels/class-settings.php:202
945
  msgid "Confirmation Message"
946
  msgstr "Message de confirmation"
947
 
948
+ #: includes/admin/builder/panels/class-settings.php:204
949
+ #: includes/admin/importers/class-contact-form-7.php:123
950
+ #: includes/admin/importers/class-ninja-forms.php:140
951
  msgid "Thanks for contacting us! We will be in touch with you shortly."
952
  msgstr ""
953
  "Merci de nous avoir contacté&nbsp;! Nous reviendrons vers vous rapidement."
954
 
955
+ #: includes/admin/builder/panels/class-settings.php:215
956
+ msgid "Automatically scroll to the confirmation message"
957
+ msgstr ""
958
+
959
+ #: includes/admin/builder/panels/class-settings.php:228
960
  msgid "Confirmation Page"
961
  msgstr "Page de confirmation"
962
 
963
+ #: includes/admin/builder/panels/class-settings.php:238
964
  msgid "Confirmation Redirect URL"
965
  msgstr "URL de redirection de confirmation"
966
 
968
  msgid "Setup"
969
  msgstr "Configuration"
970
 
 
 
 
 
971
  #: includes/admin/builder/panels/class-setup.php:56
972
  msgid "Enter your form name here&hellip;"
973
  msgstr "Saisir votre nom de formulaire ici&hellip;"
974
 
975
+ #: includes/admin/builder/panels/class-setup.php:60
976
  msgid "Select a Template"
977
  msgstr "Sélectionner un modèle"
978
 
979
+ #: includes/admin/builder/panels/class-setup.php:64
980
  msgid ""
981
  "To speed up the process, you can select from one of our pre-made templates "
982
  "or start with a <strong><a href=\"#\" class=\"wpforms-trigger-blank\">blank "
986
  "prédéfinis ou commencer par un <strong><a href=\"#\" class=\"wpforms-trigger-"
987
  "blank\">formulaire vierge</a>.</strong>"
988
 
989
+ #: includes/admin/builder/panels/class-setup.php:70
990
+ msgid "Additional Templates"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
991
  msgstr ""
 
 
992
 
993
+ #. translators: %1$s - opening tag, %2$s - closing tag, %3$s - opening tag,
994
+ #. %4$s - closing tag.
995
+ #: includes/admin/builder/panels/class-setup.php:80
996
  msgid ""
997
+ "Have a suggestion for a new template? %1$sWe'd love to hear it%2$s. Also, "
998
+ "you can %3$screate your own templates%4$s!"
999
  msgstr ""
 
 
1000
 
1001
+ #: includes/admin/builder/panels/class-setup.php:93
1002
+ msgid "Search additional templates..."
 
 
1003
  msgstr ""
 
 
 
 
 
 
 
1004
 
1005
+ #. translators:%1$s - opening a tag, %2$s - close tag, %3$s - opening tag, %4$s
1006
+ #. - close tag.
1007
+ #: includes/admin/builder/panels/class-setup.php:104
 
 
1008
  msgid ""
1009
+ "More are available in the %1$sForm Templates Pack addon%2$s or by "
1010
+ "%3$screating your own%4$s."
1011
  msgstr ""
 
 
 
1012
 
1013
+ #: includes/admin/builder/panels/class-setup.php:147
1014
+ msgid "Selected"
1015
+ msgstr "Sélectionné"
1016
 
1017
+ #: includes/admin/builder/panels/class-setup.php:157
1018
+ #, fuzzy
1019
+ #| msgid "template"
1020
+ msgctxt "Template name"
1021
+ msgid "%s template"
1022
+ msgstr "modèle"
 
1023
 
1024
+ #: includes/admin/builder/panels/class-setup.php:157
1025
+ #, fuzzy
1026
+ #| msgid "Create a %s"
1027
+ msgctxt "Template name"
1028
+ msgid "Create a %s"
1029
+ msgstr "Créer un %s"
1030
 
1031
+ #: includes/admin/class-editor.php:44 includes/admin/class-editor.php:46
1032
+ #: includes/admin/class-editor.php:101
1033
  msgid "Add Form"
1034
  msgstr "Ajouter un formulaire"
1035
 
1036
+ #: includes/admin/class-editor.php:70
1037
  msgid "Insert Form"
1038
  msgstr "Insérer un formulaire"
1039
 
1040
+ #: includes/admin/class-editor.php:79
 
 
 
 
1041
  msgid "Select a form below to insert"
1042
  msgstr "Sélectionner un formulaire à insérer ci-dessous"
1043
 
1044
+ #: includes/admin/class-editor.php:85
1045
+ #, fuzzy
1046
+ #| msgid "Show form title"
1047
+ msgid "Show form name"
1048
  msgstr "Afficher le titre du formulaire"
1049
 
1050
+ #: includes/admin/class-editor.php:86
1051
  msgid "Show form description"
1052
  msgstr "Voir la description du formulaire"
1053
 
1054
+ #: includes/admin/class-editor.php:89
1055
+ #: includes/admin/overview/class-overview-table.php:333
1056
+ #: pro/includes/admin/entries/class-entries-list.php:311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1057
  msgid ""
1058
+ "Whoops, you haven't created a form yet. Want to <a href=\"%s\">give it a go</"
1059
+ "a>?"
 
1060
  msgstr ""
1061
+ "Oups, vous n&rsquo;avez pas encore créé de formulaire. Vous voulez <a href="
1062
+ "\"%s\">essayer</a>&nbsp;?"
 
 
1063
 
1064
+ #. Plugin Name of the plugin/theme
1065
+ #. Author of the plugin/theme
1066
+ #: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
1067
+ #: includes/admin/class-menu.php:51 includes/admin/class-menu.php:103
1068
+ #: includes/class-form.php:72 includes/integrations.php:45
1069
  msgid "WPForms"
1070
  msgstr "WPForms"
1071
 
1072
+ #: includes/admin/class-menu.php:52
1073
  msgid "All Forms"
1074
  msgstr "Tous les formulaires"
1075
 
1076
+ #: includes/admin/class-menu.php:61
1077
  msgid "WPForms Builder"
1078
  msgstr "Constructeur WPForms"
1079
 
1080
+ #: includes/admin/class-menu.php:62
1081
+ #: includes/admin/overview/class-overview.php:124
1082
  msgid "Add New"
1083
  msgstr "Nouveau"
1084
 
1085
+ #: includes/admin/class-menu.php:71
1086
  msgid "Form Entries"
1087
  msgstr "Entrées de formulaire"
1088
 
1089
+ #: includes/admin/class-menu.php:72
1090
+ #: includes/admin/overview/class-overview-table.php:174
1091
+ #: pro/includes/admin/entries/class-entries-list.php:332
1092
+ #: pro/wpforms-pro.php:347
 
1093
  msgid "Entries"
1094
  msgstr "Entrées"
1095
 
1096
+ #: includes/admin/class-menu.php:83
1097
  msgid "WPForms Settings"
1098
  msgstr "Réglages de WPForms"
1099
 
1100
+ #: includes/admin/class-menu.php:93
1101
+ #, fuzzy
1102
+ #| msgid "WPForms Logs"
1103
+ msgid "WPForms Tools"
1104
+ msgstr "Journaux WPForms"
1105
+
1106
+ #: includes/admin/class-menu.php:94
1107
+ msgid "Tools"
1108
+ msgstr ""
1109
+
1110
+ #: includes/admin/class-menu.php:104
1111
+ msgid "Info"
1112
+ msgstr ""
1113
+
1114
+ #: includes/admin/class-menu.php:113 pro/includes/admin/class-addons.php:83
1115
  msgid "WPForms Addons"
1116
  msgstr "Extensions WPForms"
1117
 
1118
+ #: includes/admin/class-menu.php:114
1119
  msgid "Addons"
1120
  msgstr "Extensions"
1121
 
1122
+ #: includes/admin/class-review.php:92
1123
+ msgid ""
1124
+ "Hey, I noticed you collected over 50 entries from WPForms - that’s awesome! "
1125
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress "
1126
+ "to help us spread the word and boost our motivation?"
1127
+ msgstr ""
1128
 
1129
+ #: includes/admin/class-review.php:93 includes/admin/class-review.php:150
1130
+ msgid "~ Syed Balkhi<br>Co-Founder of WPForms"
1131
+ msgstr ""
1132
 
1133
+ #: includes/admin/class-review.php:95 includes/admin/class-review.php:152
1134
+ msgid "Ok, you deserve it"
1135
+ msgstr ""
1136
 
1137
+ #: includes/admin/class-review.php:96 includes/admin/class-review.php:153
1138
+ msgid "Nope, maybe later"
1139
+ msgstr ""
1140
 
1141
+ #: includes/admin/class-review.php:97 includes/admin/class-review.php:154
1142
+ msgid "I already did"
1143
+ msgstr ""
1144
 
1145
+ #: includes/admin/class-review.php:149
1146
+ msgid ""
1147
+ "Hey, I noticed you created a contact form with WPForms - that’s awesome! "
1148
+ "Could you please do me a BIG favor and give it a 5-star rating on WordPress "
1149
+ "to help us spread the word and boost our motivation?"
1150
+ msgstr ""
1151
 
1152
+ #: includes/admin/class-review.php:202
1153
+ msgid ""
1154
+ "Please rate <strong>WPForms</strong> <a href=\"%s\" target=\"_blank\" rel="
1155
+ "\"noopener\">&#9733;&#9733;&#9733;&#9733;&#9733;</a> on <a href=\"%s\" "
1156
+ "target=\"_blank\">WordPress.org</a> to help us spread the word. Thank you "
1157
+ "from the WPForms team!"
1158
+ msgstr ""
1159
 
1160
+ #: includes/admin/class-settings.php:142
1161
+ #, fuzzy
1162
+ #| msgid "Entry successfully deleted."
1163
+ msgid "Settings were successfully saved."
1164
+ msgstr "Entrée supprimée avec succès."
1165
 
1166
+ #: includes/admin/class-settings.php:168 includes/admin/class-settings.php:173
1167
+ #: includes/admin/class-settings.php:178 includes/admin/class-settings.php:183
1168
+ #: pro/wpforms-pro.php:158
1169
+ #, fuzzy
1170
+ #| msgid "Save General Settings"
1171
+ msgid "Save Settings"
1172
+ msgstr "Enregistrer les réglages généraux"
1173
 
1174
+ #: includes/admin/class-settings.php:171 includes/admin/class-settings.php:282
1175
+ #: includes/admin/class-settings.php:371 includes/fields/class-email.php:21
1176
+ #: includes/fields/class-email.php:68 includes/fields/class-email.php:306
1177
+ #: includes/templates/class-contact.php:41
1178
+ #: includes/templates/class-subscribe.php:44
1179
+ #: includes/templates/class-suggestion.php:41
1180
+ #: pro/includes/templates/class-donation.php:43
1181
+ #: pro/includes/templates/class-order.php:43
1182
+ #: pro/includes/templates/class-request-quote.php:47
1183
+ msgid "Email"
1184
+ msgstr "Adresse de contact"
1185
 
1186
+ #: includes/admin/class-settings.php:176 includes/admin/class-settings.php:322
1187
+ msgid "reCAPTCHA"
1188
+ msgstr "reCAPTCHA"
1189
 
1190
+ #: includes/admin/class-settings.php:181
1191
+ msgid "Validation"
1192
+ msgstr ""
1193
 
1194
+ #: includes/admin/class-settings.php:186 includes/admin/class-settings.php:392
1195
+ #: includes/admin/class-settings.php:399
1196
+ msgid "Integrations"
1197
+ msgstr "Intégrations"
1198
 
1199
+ #: includes/admin/class-settings.php:225
1200
+ #, fuzzy
1201
+ #| msgid ""
1202
+ #| "reCAPTCHA is a free service anti-spam service from Google. Its goal is to "
1203
+ #| "protect your website from spam and abuse while letting real people pass "
1204
+ #| "through with ease. <a href=\"http://www.google.com/recaptcha/intro/index."
1205
+ #| "html\" target=\"_blank\">Visit reCAPTCHA</a> to learn more or sign up for "
1206
+ #| "a free account."
1207
+ msgid ""
1208
+ "reCAPTCHA is a free anti-spam service from Google which helps to protect "
1209
+ "your website from spam and abuse while letting real people pass through with "
1210
+ "ease."
1211
+ msgstr ""
1212
+ "reCAPTCHA est un service gratuit d&rsquo;anti-spam de Google. Son objectif "
1213
+ "est de protéger votre site Internet des spams et des abus tout en laissant "
1214
+ "passer les vrais visiteurs avec facilité. Pour en savoir plus ou vous "
1215
+ "inscrire pour un compte gratuit, <a href=\"http://www.google.com/recaptcha/"
1216
+ "intro/index.html\" target=\"_blank\">visitez reCAPTCHA</a>."
1217
 
1218
+ #: includes/admin/class-settings.php:226
1219
  msgid ""
1220
+ "Google's original <a href=\"https://www.google.com/recaptcha/intro/\" target="
1221
+ "\"_blank\" rel=\"noopener noreferrer\">v2 reCAPTCHA</a> prompts users to "
1222
+ "check a box to prove they're human, whereas <a href=\"https://www.google.com/"
1223
+ "recaptcha/intro/invisible.html\" target=\"_blank\" rel=\"noopener noreferrer"
1224
+ "\">Invisible reCAPTCHA</a> uses advanced technology to detect real users "
1225
+ "without requiring any input."
1226
  msgstr ""
 
 
1227
 
1228
+ #: includes/admin/class-settings.php:227
1229
+ msgid ""
1230
+ "Sites already using v2 reCAPTCHA will need to create new site keys before "
1231
+ "switching to the Invisible reCAPTCHA."
1232
+ msgstr ""
1233
+
1234
+ #: includes/admin/class-settings.php:228
1235
+ msgid ""
1236
+ "<a href=\"%s\" rel=\"noopener noreferrer\" target=\"_blank\">Read our walk "
1237
+ "through</a> to learn more and for step-by-step directions."
1238
+ msgstr ""
1239
+
1240
+ #: includes/admin/class-settings.php:235
1241
+ msgid "License"
1242
+ msgstr "Licence"
1243
+
1244
+ #: includes/admin/class-settings.php:235
1245
+ #, fuzzy
1246
+ #| msgid "Your license key provides access to updates and Add-ons. "
1247
+ msgid "Your license key provides access to updates and addons."
1248
+ msgstr "Votre clé de licence donne accès aux mises à jour et aux extensions."
1249
+
1250
+ #: includes/admin/class-settings.php:242
1251
+ msgid "License Key"
1252
+ msgstr "Clé de licence"
1253
+
1254
+ #: includes/admin/class-settings.php:254
1255
  msgid "Include Form Styling"
1256
  msgstr "Inclure la mise en forme du formulaire"
1257
 
1258
+ #: includes/admin/class-settings.php:255
1259
+ msgid "Determines which CSS files to load for the site."
1260
+ msgstr "Détermine les fichiers CSS à charger pour le site."
1261
+
1262
+ #: includes/admin/class-settings.php:260
1263
  msgid "Base and form theme styling"
1264
  msgstr "Mise en forme de base et thème de formulaire"
1265
 
1266
+ #: includes/admin/class-settings.php:261
1267
  msgid "Base styling only"
1268
  msgstr "Mise en forme de base uniquement"
1269
 
1270
+ #: includes/admin/class-settings.php:262
1271
+ msgid "No styling"
1272
+ msgstr ""
 
 
 
 
1273
 
1274
+ #: includes/admin/class-settings.php:267
1275
+ msgid "Load Assets Globally"
1276
+ msgstr ""
1277
 
1278
+ #: includes/admin/class-settings.php:268
1279
  msgid ""
1280
+ "Check this if you would like to load WPForms assets site-wide. Only check if "
1281
+ "your site is having compatibility issues or instructed to by support."
 
 
 
1282
  msgstr ""
 
 
 
 
 
1283
 
1284
+ #: includes/admin/class-settings.php:273
1285
+ msgid "Hide Announcements"
1286
+ msgstr ""
1287
 
1288
+ #: includes/admin/class-settings.php:274
1289
+ msgid ""
1290
+ "Check this if you would like to hide plugin announcements and update details."
1291
+ msgstr ""
1292
 
1293
+ #: includes/admin/class-settings.php:289
1294
+ #, fuzzy
1295
+ #| msgid "template"
1296
+ msgid "Template"
1297
+ msgstr "modèle"
1298
 
1299
+ #: includes/admin/class-settings.php:290
1300
+ msgid ""
1301
+ "Determines how email notifications will be formatted. HTML Templates are the "
1302
+ "default."
1303
+ msgstr ""
1304
 
1305
+ #: includes/admin/class-settings.php:294
1306
+ #, fuzzy
1307
+ #| msgid "Use Template"
1308
+ msgid "HTML Template"
1309
+ msgstr "Utiliser un modèle"
1310
 
1311
+ #: includes/admin/class-settings.php:295
1312
+ msgid "Plain text"
1313
+ msgstr ""
1314
 
1315
+ #: includes/admin/class-settings.php:300
1316
+ msgid "Header Image"
1317
+ msgstr ""
1318
 
1319
+ #: includes/admin/class-settings.php:301
 
1320
  msgid ""
1321
+ "Upload or choose a logo to be displayed at the top of email notifications."
1322
+ "<br>Recommended size is 300x100 or smaller for best support on all devices."
 
1323
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
1324
 
1325
+ #: includes/admin/class-settings.php:306
1326
+ msgid "Background Color"
 
 
1327
  msgstr ""
 
 
1328
 
1329
+ #: includes/admin/class-settings.php:307
1330
+ msgid "Customize the background color of the HTML email template."
1331
+ msgstr ""
1332
 
1333
+ #: includes/admin/class-settings.php:313
1334
+ msgid "Carbon Copy"
1335
+ msgstr ""
1336
 
1337
+ #: includes/admin/class-settings.php:314
1338
  msgid ""
1339
+ "Check this if you would like to enable the ability to CC: email addresses in "
1340
+ "the form notification settings."
1341
  msgstr ""
 
 
1342
 
1343
+ #: includes/admin/class-settings.php:329
1344
+ #: pro/includes/fields/class-date-time.php:154
1345
+ #, fuzzy
1346
+ #| msgid "Item Type"
1347
+ msgid "Type"
1348
+ msgstr "Type d&rsquo;élément"
1349
 
1350
+ #: includes/admin/class-settings.php:333
1351
+ #, fuzzy
1352
+ #| msgid "reCAPTCHA"
1353
+ msgid "v2 reCAPTCHA"
1354
+ msgstr "reCAPTCHA"
 
 
 
 
 
1355
 
1356
+ #: includes/admin/class-settings.php:334
1357
+ #, fuzzy
1358
+ #| msgid "Enable reCAPTCHA"
1359
+ msgid "Invisible reCAPTCHA"
1360
+ msgstr "Activer reCAPTCHA"
1361
+
1362
+ #: includes/admin/class-settings.php:339
1363
+ #, fuzzy
1364
+ #| msgid "Deactivate Key"
1365
+ msgid "Site Key"
1366
+ msgstr "Désactiver la clé"
1367
 
1368
+ #: includes/admin/class-settings.php:344
1369
+ #, fuzzy
1370
+ #| msgid "Refresh Key"
1371
+ msgid "Secret Key"
1372
+ msgstr "Actualiser la clé"
1373
 
1374
+ #: includes/admin/class-settings.php:352
1375
+ #, fuzzy
1376
+ #| msgid "Confirmation Message"
1377
+ msgid "Validation Messages"
1378
+ msgstr "Message de confirmation"
1379
+
1380
+ #: includes/admin/class-settings.php:352
1381
  msgid ""
1382
+ "These messages are displayed to the user as they fill out a form in real-"
1383
+ "time."
1384
  msgstr ""
 
 
 
 
 
 
 
1385
 
1386
+ #: includes/admin/class-settings.php:359 includes/fields/class-base.php:337
1387
+ msgid "Required"
1388
+ msgstr "Requis"
 
 
 
 
1389
 
1390
+ #: includes/admin/class-settings.php:361 includes/class-frontend.php:1005
1391
+ #: includes/fields/class-base.php:901 includes/fields/class-name.php:485
1392
+ #: includes/fields/class-number.php:152
1393
+ #: pro/includes/fields/class-address.php:767
1394
+ #: pro/includes/fields/class-date-time.php:563
1395
+ #: pro/includes/fields/class-file-upload.php:332
1396
+ #: pro/includes/fields/class-password.php:371
1397
+ #: pro/includes/fields/class-payment-dropdown.php:208
1398
+ #: pro/includes/fields/class-payment-multiple.php:175
1399
+ #: pro/includes/fields/class-payment-single.php:189
1400
+ #: pro/includes/fields/class-url.php:154
1401
+ #, fuzzy
1402
+ #| msgid "This field is required"
1403
+ msgid "This field is required."
1404
+ msgstr "Champ obligatoire"
1405
 
1406
+ #: includes/admin/class-settings.php:365
1407
+ #, fuzzy
1408
+ #| msgid "Website / URL"
1409
+ msgid "Website URL"
1410
+ msgstr "Site internet / URL"
1411
 
1412
+ #: includes/admin/class-settings.php:367 includes/class-frontend.php:1006
1413
+ #: pro/includes/fields/class-url.php:159
1414
+ #, fuzzy
1415
+ #| msgid "Please enter a valid URL"
1416
+ msgid "Please enter a valid URL."
1417
+ msgstr "Merci de saisir une URL valide"
1418
 
1419
+ #: includes/admin/class-settings.php:373 includes/class-frontend.php:1007
1420
+ msgid "Please enter a valid email address."
1421
+ msgstr "Veuillez saisir une adresse de messagerie valide."
1422
 
1423
+ #: includes/admin/class-settings.php:377
1424
+ #, fuzzy
1425
+ #| msgid "Numbers"
1426
+ msgid "Number"
1427
+ msgstr "Nombres"
 
1428
 
1429
+ #: includes/admin/class-settings.php:379 includes/class-frontend.php:1008
1430
+ #: includes/fields/class-number.php:157
1431
+ msgid "Please enter a valid number."
1432
+ msgstr "Veuillez saisir un nombre valide."
1433
 
1434
+ #: includes/admin/class-settings.php:383
1435
+ #, fuzzy
1436
+ #| msgid "Confirmation Page"
1437
+ msgid "Confirm Value"
1438
+ msgstr "Page de confirmation"
1439
 
1440
+ #: includes/admin/class-settings.php:385 includes/class-frontend.php:1009
1441
+ #: pro/includes/fields/class-password.php:394
1442
+ msgid "Field values do not match."
1443
  msgstr ""
 
 
1444
 
1445
+ #: includes/admin/class-settings.php:392 includes/admin/class-settings.php:399
1446
+ msgid ""
1447
+ "Manage integrations with popular providers such as Constant Contact, "
1448
+ "MailChimp, Zapier, and more."
1449
+ msgstr ""
1450
 
1451
+ #: includes/admin/class-settings.php:501
1452
+ msgid "Want to better protect your contact forms from spam?"
1453
+ msgstr ""
1454
 
1455
+ #: includes/admin/class-settings.php:503
 
 
1456
  msgid ""
1457
+ "WPForms custom captcha addon allows you to add custom questions captcha or "
1458
+ "math questions captcha to your WordPress forms. Since we know spam is a huge "
1459
+ "problem for contact forms, WPForms goes above and beyond to help you protect "
1460
+ "your forms."
1461
  msgstr ""
 
 
1462
 
1463
+ #: includes/admin/class-settings.php:505
1464
+ msgid "Click here to Upgrade"
1465
+ msgstr ""
 
1466
 
1467
+ #: includes/admin/class-tools.php:88 includes/admin/class-tools.php:233
1468
+ #: includes/admin/class-tools.php:273 includes/admin/class-tools.php:336
1469
+ msgid "Import"
1470
+ msgstr ""
1471
 
1472
+ #: includes/admin/class-tools.php:89 includes/admin/class-tools.php:516
1473
+ msgid "Export"
1474
  msgstr ""
 
 
1475
 
1476
+ #: includes/admin/class-tools.php:90
1477
+ msgid "System Info"
1478
+ msgstr ""
1479
 
1480
+ #: includes/admin/class-tools.php:178
1481
+ msgid ""
1482
+ "Import was successfully finished. You can go and <a href=\"%s\">check your "
1483
+ "forms</a>."
1484
+ msgstr ""
1485
 
1486
+ #: includes/admin/class-tools.php:218
1487
+ #, fuzzy
1488
+ #| msgid "WPForms Logs"
1489
+ msgid "WPForms Import"
1490
+ msgstr "Journaux WPForms"
1491
 
1492
+ #: includes/admin/class-tools.php:219
1493
+ #, fuzzy
1494
+ #| msgid "Select a form below to insert"
1495
+ msgid "Select a WPForms export file."
1496
+ msgstr "Sélectionner un formulaire à insérer ci-dessous"
1497
 
1498
+ #: includes/admin/class-tools.php:225
1499
+ #, fuzzy
1500
+ #| msgid "No field type found"
1501
+ msgid "No file chosen"
1502
+ msgstr "Aucun type de champ trouvé"
1503
 
1504
+ #: includes/admin/class-tools.php:227
1505
+ msgid "Choose a file&hellip;"
1506
+ msgstr ""
1507
 
1508
+ #: includes/admin/class-tools.php:239
1509
+ msgid "Import from Other Form Plugins"
1510
+ msgstr ""
1511
 
1512
+ #: includes/admin/class-tools.php:240
1513
+ msgid "Not happy with other WordPress contact form plugins?"
1514
+ msgstr ""
1515
 
1516
+ #: includes/admin/class-tools.php:241
1517
+ msgid ""
1518
+ "WPForms makes it easy for you to switch by allowing you import your third-"
1519
+ "party forms with a single click."
1520
+ msgstr ""
1521
 
1522
+ #: includes/admin/class-tools.php:245
1523
+ msgid "No form importers are currently enabled."
1524
+ msgstr ""
1525
 
1526
+ #: includes/admin/class-tools.php:250
1527
+ msgid "Select previous contact form plugin..."
1528
+ msgstr ""
1529
 
1530
+ #: includes/admin/class-tools.php:255 pro/includes/admin/class-addons.php:201
1531
+ #, fuzzy
1532
+ #| msgid "Addon installed."
1533
+ msgid "Not Installed"
1534
+ msgstr "Extension installée."
1535
 
1536
+ #: includes/admin/class-tools.php:257
1537
+ #, fuzzy
1538
+ #| msgid "Activate"
1539
+ msgid "Not Active"
1540
+ msgstr "Activer"
1541
 
1542
+ #: includes/admin/class-tools.php:294
1543
+ #, fuzzy
1544
+ #| msgid "Form Name"
1545
+ msgid "Form Import"
1546
+ msgstr "Nom du formulaire"
1547
 
1548
+ #: includes/admin/class-tools.php:300
1549
+ #, fuzzy
1550
+ #| msgid "Select a form below to insert"
1551
+ msgid "Select the forms you would like to import."
1552
+ msgstr "Sélectionner un formulaire à insérer ci-dessous"
1553
 
1554
+ #: includes/admin/class-tools.php:304
1555
+ #, fuzzy
1556
+ #| msgid "Available Form Fields"
1557
+ msgid "Available Forms"
1558
+ msgstr "Champs de formulaire disponibles"
1559
 
1560
+ #: includes/admin/class-tools.php:309
1561
+ #, fuzzy
1562
+ #| msgid "No form ID found"
1563
+ msgid "No forms found."
1564
+ msgstr "Aucun ID de formulaire trouvé"
1565
 
1566
+ #: includes/admin/class-tools.php:323
1567
+ #, fuzzy
1568
+ #| msgid "Select Account"
1569
+ msgid "Select All"
1570
+ msgstr "Sélectionner le compte"
1571
 
1572
+ #: includes/admin/class-tools.php:328
1573
+ msgid "Forms to Import"
1574
+ msgstr ""
1575
 
1576
+ #. translators: %1$s - current forms counter; %2$s - total forms counter; %3$s
1577
+ #. - provider name.
1578
+ #: includes/admin/class-tools.php:347
1579
+ msgid "Analyzing %1$s of %2$s forms from %3$s."
1580
+ msgstr ""
1581
 
1582
+ #: includes/admin/class-tools.php:355
1583
+ msgid "Heads Up!"
1584
+ msgstr ""
1585
 
1586
+ #: includes/admin/class-tools.php:356
1587
+ msgid ""
1588
+ "One or more of your forms contain fields that are not available in WPForms "
1589
+ "Lite. To properly impor tthese fields, we recommend upgrading to WPForms Pro."
1590
+ msgstr ""
1591
 
1592
+ #: includes/admin/class-tools.php:357
1593
+ msgid ""
1594
+ "You can continue with the import without upgrading, and we will do our best "
1595
+ "to match the fields. However, some of them will be omitted due to "
1596
+ "compatibility issues."
1597
  msgstr ""
 
1598
 
1599
+ #: includes/admin/class-tools.php:359 includes/admin/class-welcome.php:285
1600
+ #, fuzzy
1601
+ #| msgid "Welcome to WPForms"
1602
+ msgid "Upgrade to WPForms Pro"
1603
+ msgstr "Bienvenue sur WPForms"
1604
 
1605
+ #: includes/admin/class-tools.php:360
1606
+ msgid "Continue Import without Upgrading"
1607
+ msgstr ""
1608
 
1609
+ #: includes/admin/class-tools.php:363
1610
+ msgid "Below are the list of form fields that may be impacted:"
1611
+ msgstr ""
 
1612
 
1613
+ #. translators: %1$s - current forms counter; %2$s - total forms counter; %3$s
1614
+ #. - provider name.
1615
+ #: includes/admin/class-tools.php:374
1616
+ msgid "Importing %1$s of %2$s forms from %3$s."
1617
+ msgstr ""
1618
 
1619
+ #. translators: %s - number of imported forms.
1620
+ #: includes/admin/class-tools.php:386
1621
+ msgid ""
1622
+ "Congrats, the import process has finished! We have successfully imported %s "
1623
+ "forms. You can review the results below."
1624
+ msgstr ""
1625
 
1626
+ #: includes/admin/class-tools.php:443
1627
+ #: includes/admin/overview/class-overview-table.php:160
1628
+ msgid "Edit"
1629
+ msgstr "Modifier"
1630
 
1631
+ #: includes/admin/class-tools.php:449
1632
+ msgid "The following fields are available in PRO and were not imported:"
1633
+ msgstr ""
 
1634
 
1635
+ #: includes/admin/class-tools.php:457
1636
+ msgid ""
1637
+ "The following fields are available in PRO and were imported as text fields:"
1638
+ msgstr ""
1639
 
1640
+ #: includes/admin/class-tools.php:465
1641
+ msgid "The following fields are not supported and were not imported:"
1642
+ msgstr ""
1643
 
1644
+ #: includes/admin/class-tools.php:474
1645
+ msgid "Upgrade to the PRO plan to import these fields."
1646
+ msgstr ""
1647
 
1648
+ #: includes/admin/class-tools.php:476 includes/admin/class-welcome.php:247
1649
+ #: pro/includes/admin/class-addons.php:249
1650
+ msgid "Upgrade Now"
1651
+ msgstr "Mise à niveau"
1652
 
1653
+ #: includes/admin/class-tools.php:495
1654
+ #, fuzzy
1655
+ #| msgid "Form Entries"
1656
+ msgid "Form Export"
1657
+ msgstr "Entrées de formulaire"
1658
 
1659
+ #: includes/admin/class-tools.php:497
1660
  msgid ""
1661
+ "Form exports files can be used to create a backup of your forms or to import "
1662
+ "forms into another site."
1663
  msgstr ""
 
 
 
1664
 
1665
+ #: includes/admin/class-tools.php:503
1666
+ #, fuzzy
1667
+ #| msgid "Select Groups"
1668
+ msgid "Select form(s)"
1669
+ msgstr "Sélectionner les groupes"
1670
 
1671
+ #: includes/admin/class-tools.php:510
1672
+ #, fuzzy
1673
+ #| msgid "You need to create your first form before you can view the entries."
1674
+ msgid "You need to create a form before you can use form export."
1675
+ msgstr ""
1676
+ "Vous avez besoin de créer votre premier formulaire avant de pouvoir "
1677
+ "visualiser les entrées."
1678
+
1679
+ #: includes/admin/class-tools.php:522
1680
+ msgid "Form Template Export"
1681
+ msgstr ""
1682
+
1683
+ #: includes/admin/class-tools.php:526
1684
+ msgid ""
1685
+ "The following code can be used to register your custom form template. Copy "
1686
+ "and paste the following code to your theme's functions.php file or include "
1687
+ "it within an external file."
1688
+ msgstr ""
1689
+
1690
+ #: includes/admin/class-tools.php:527
1691
+ msgid ""
1692
+ "For more information <a href=\"%s\" target=\"blank\" rel=\"noopener "
1693
+ "noreferrer\">see our documentation</a>."
1694
+ msgstr ""
1695
+
1696
+ #: includes/admin/class-tools.php:532
1697
+ msgid ""
1698
+ "Select a form to generate PHP code that can be used to register a custom "
1699
+ "form template."
1700
+ msgstr ""
1701
+
1702
+ #: includes/admin/class-tools.php:545
1703
+ #, fuzzy
1704
+ #| msgid "You need to create your first form before you can view the entries."
1705
+ msgid "You need to create a form before you can generate a template."
1706
+ msgstr ""
1707
+ "Vous avez besoin de créer votre premier formulaire avant de pouvoir "
1708
+ "visualiser les entrées."
1709
+
1710
+ #: includes/admin/class-tools.php:551
1711
+ #, fuzzy
1712
+ #| msgid "template"
1713
+ msgid "Export Template"
1714
+ msgstr "modèle"
1715
+
1716
+ #: includes/admin/class-tools.php:566
1717
+ #, fuzzy
1718
+ #| msgid "Confirmation"
1719
+ msgid "System Information"
1720
+ msgstr "Confirmation"
1721
+
1722
+ #: includes/admin/class-tools.php:633
1723
+ #, fuzzy
1724
+ #| msgid "Please use a valid currency format"
1725
+ msgid "Please upload a valid .json form export file."
1726
+ msgstr "Veuillez saisir un format de devise valide."
1727
+
1728
+ #: includes/admin/class-tools.php:634
1729
+ #: pro/includes/admin/entries/class-entries-export.php:342
1730
+ msgid "Error"
1731
+ msgstr ""
1732
+
1733
+ #: includes/admin/class-tools.php:760 includes/admin/class-tools.php:764
1734
+ #: pro/includes/admin/entries/class-entries-single.php:733
1735
+ #: pro/includes/admin/entries/class-entries-single.php:1087
1736
+ msgid "M j, Y @ g:ia"
1737
+ msgstr ""
1738
+
1739
+ #: includes/admin/class-welcome.php:39 includes/admin/class-welcome.php:40
1740
+ #: includes/admin/class-welcome.php:117
1741
+ msgid "Welcome to WPForms"
1742
+ msgstr "Bienvenue sur WPForms"
1743
+
1744
+ #: includes/admin/class-welcome.php:113
1745
+ msgid "Sullie the WPForms mascot"
1746
+ msgstr ""
1747
+
1748
+ #: includes/admin/class-welcome.php:118
1749
+ #, fuzzy
1750
+ #| msgid ""
1751
+ #| "Thank you for choosing WPForms - the most beginner friendly WordPress "
1752
+ #| "contact form plugin. Here's how to get started."
1753
+ msgid ""
1754
+ "Thank you for choosing WPForms - the most powerful drag & drop WordPress "
1755
+ "form builder in the market."
1756
+ msgstr ""
1757
+ "Merci d&rsquo;avoir choisi WPForms - l&rsquo;extension de formulaire "
1758
+ "WordPress la plus accessible aux débutants. Voici comment commencer."
1759
+
1760
+ #: includes/admin/class-welcome.php:121 includes/admin/class-welcome.php:122
1761
+ msgid "Watch how to create your first form"
1762
+ msgstr ""
1763
+
1764
+ #: includes/admin/class-welcome.php:127
1765
+ #, fuzzy
1766
+ #| msgid ""
1767
+ #| "WPForms make it easy to create forms in WordPress. You can follow the "
1768
+ #| "video tutorial on the right or read our how to <a href=\"%s\" target="
1769
+ #| "\"_blank\">create your first form guide</a>."
1770
+ msgid ""
1771
+ "WPForms makes it easy to create forms in WordPress. You can watch the video "
1772
+ "tutorial or read our guide on how create your first form."
1773
+ msgstr ""
1774
+ "WPForms facilite la création des formulaires dans WordPress. Vous pouvez "
1775
+ "suivre le tutoriel vidéo sur la droite ou lire notre guide <a href=\"%s\" "
1776
+ "target=\"_blank\">créer votre premier formulaire</a>."
1777
+
1778
+ #: includes/admin/class-welcome.php:131 includes/admin/class-welcome.php:282
1779
+ #, fuzzy
1780
+ #| msgid "Creating Your First Form"
1781
+ msgid "Create Your First Form"
1782
+ msgstr "Création de votre premier formulaire"
1783
+
1784
+ #: includes/admin/class-welcome.php:134
1785
+ msgid "Read the Full Guide"
1786
+ msgstr ""
1787
+
1788
+ #: includes/admin/class-welcome.php:146
1789
+ msgid "Welcome Features &amp; Addons"
1790
+ msgstr ""
1791
+
1792
+ #: includes/admin/class-welcome.php:147
1793
+ #, fuzzy
1794
+ #| msgid ""
1795
+ #| "WPForms is both easy to use and extremely powerful. We have tons of "
1796
+ #| "helpful features that allows us to give you everything you need from a "
1797
+ #| "form builder."
1798
+ msgid ""
1799
+ "WPForms is both easy to use and extremely powerful. We have tons of helpful "
1800
+ "features that allow us to give you everything you need from a form builder."
1801
+ msgstr ""
1802
+ "WPForms est à la fois facile à utiliser et extrêmement puissant. Nous avons "
1803
+ "des tonnes de fonctionnalités utiles qui nous permettent de vous apporter "
1804
+ "tout ce dont vous avez attendez d&rsquo;un constructeur de formulaire."
1805
+
1806
+ #: includes/admin/class-welcome.php:153
1807
+ msgid "Drag &amp; Drop Form Builder"
1808
+ msgstr ""
1809
+
1810
+ #: includes/admin/class-welcome.php:154
1811
+ msgid ""
1812
+ "Easily create an amazing form in just a few minutes without writing any code."
1813
+ msgstr ""
1814
+
1815
+ #: includes/admin/class-welcome.php:159
1816
+ #, fuzzy
1817
+ #| msgid "Use Template"
1818
+ msgid "Form Templates"
1819
+ msgstr "Utiliser un modèle"
1820
 
1821
+ #: includes/admin/class-welcome.php:160
1822
+ msgid "Start with pre-built form templates to save even more time."
1823
+ msgstr ""
1824
+
1825
+ #: includes/admin/class-welcome.php:165
1826
+ msgid "Responsive Mobile Friendly"
1827
+ msgstr ""
1828
+
1829
+ #: includes/admin/class-welcome.php:166
1830
+ msgid ""
1831
+ "WPForms is 100% responsive meaning it works on mobile, tablets & desktop."
1832
+ msgstr ""
1833
+
1834
+ #: includes/admin/class-welcome.php:171
1835
+ #, fuzzy
1836
+ #| msgid "Conditional Logic"
1837
+ msgid "Smart Conditional Logic"
1838
  msgstr "Logique conditionnelle"
1839
 
1840
+ #: includes/admin/class-welcome.php:172
1841
+ msgid "Easily create high performance forms with our smart conditional logic."
1842
+ msgstr ""
1843
+
1844
+ #: includes/admin/class-welcome.php:177
1845
+ #, fuzzy
1846
+ #| msgid "Notifications"
1847
+ msgid "Instant Notifications"
1848
+ msgstr "Notifications"
1849
+
1850
+ #: includes/admin/class-welcome.php:178
1851
+ msgid ""
1852
+ "Respond to leads quickly with our instant form notification feature for your "
1853
+ "team."
1854
+ msgstr ""
1855
+
1856
+ #: includes/admin/class-welcome.php:183
1857
+ msgid "Entry Management"
1858
+ msgstr ""
1859
+
1860
+ #: includes/admin/class-welcome.php:184
1861
+ msgid "View all your leads in one place to streamline your workflow."
1862
+ msgstr ""
1863
+
1864
+ #: includes/admin/class-welcome.php:189
1865
+ #, fuzzy
1866
+ #| msgid "Payment Fields"
1867
+ msgid "Payments Made Easy"
1868
+ msgstr "Champs de paiement"
1869
+
1870
+ #: includes/admin/class-welcome.php:190
1871
+ msgid ""
1872
+ "Easily collect payments, donations, and online orders without hiring a "
1873
+ "developer."
1874
+ msgstr ""
1875
+
1876
+ #: includes/admin/class-welcome.php:195
1877
+ msgid "Marketing &amp; Subscriptions"
1878
+ msgstr ""
1879
+
1880
+ #: includes/admin/class-welcome.php:196
1881
+ msgid ""
1882
+ "Create subscription forms and connect with your email marketing service."
1883
+ msgstr ""
1884
+
1885
+ #: includes/admin/class-welcome.php:201
1886
+ msgid "Easy to Embed"
1887
+ msgstr ""
1888
+
1889
+ #: includes/admin/class-welcome.php:202
1890
+ msgid ""
1891
+ "Easily embed your forms in blog posts, pages, sidebar widgets, footer, etc."
1892
+ msgstr ""
1893
+
1894
+ #: includes/admin/class-welcome.php:207
1895
+ msgid "Spam Protection"
1896
+ msgstr ""
1897
+
1898
+ #: includes/admin/class-welcome.php:208
1899
+ msgid "Our smart captcha and honeypot automatically prevent spam submissions."
1900
+ msgstr ""
1901
+
1902
+ #: includes/admin/class-welcome.php:214
1903
+ #, fuzzy
1904
+ #| msgid "See all Features"
1905
+ msgid "See All Features"
1906
+ msgstr "Voir toutes les fonctionnalités"
1907
+
1908
+ #: includes/admin/class-welcome.php:226 lite/wpforms-lite.php:410
1909
+ #, fuzzy
1910
+ #| msgid "Upgrade Now"
1911
+ msgid "Upgrade to PRO"
1912
+ msgstr "Mise à niveau"
1913
+
1914
+ #: includes/admin/class-welcome.php:228
1915
+ msgid "PayPal"
1916
+ msgstr ""
1917
+
1918
+ #: includes/admin/class-welcome.php:229
1919
+ msgid "Post Submissions"
1920
+ msgstr ""
1921
+
1922
+ #: includes/admin/class-welcome.php:230
1923
+ #: pro/includes/admin/entries/class-entries-single.php:843
1924
+ msgid "Stripe"
1925
+ msgstr ""
1926
+
1927
+ #: includes/admin/class-welcome.php:231
1928
+ msgid "Signatures"
1929
+ msgstr ""
1930
+
1931
+ #: includes/admin/class-welcome.php:232
1932
+ msgid "User Registration"
1933
+ msgstr ""
1934
+
1935
+ #: includes/admin/class-welcome.php:233
1936
+ #, fuzzy
1937
+ #| msgid "Form Name"
1938
+ msgid "Form Abandonment"
1939
+ msgstr "Nom du formulaire"
1940
+
1941
+ #: includes/admin/class-welcome.php:234
1942
+ #, fuzzy
1943
+ #| msgid "Notification"
1944
+ msgid "Geolocation"
1945
+ msgstr "Notification"
1946
+
1947
+ #: includes/admin/class-welcome.php:235
1948
+ msgid "Unlimited Sites"
1949
+ msgstr ""
1950
+
1951
+ #: includes/admin/class-welcome.php:236
1952
+ msgid "Zapier"
1953
+ msgstr ""
1954
+
1955
+ #: includes/admin/class-welcome.php:237
1956
+ msgid "Priority Support"
1957
+ msgstr ""
1958
+
1959
+ #: includes/admin/class-welcome.php:242
1960
+ msgid "PRO"
1961
+ msgstr ""
1962
+
1963
+ #: includes/admin/class-welcome.php:245
1964
+ msgid "per year"
1965
+ msgstr ""
1966
+
1967
+ #: includes/admin/class-welcome.php:258
1968
+ msgid "Testimonials"
1969
+ msgstr ""
1970
+
1971
+ #: includes/admin/class-welcome.php:262
1972
+ msgid ""
1973
+ "WPForms is by far the easiest form plugin to use. My clients love it – it’s "
1974
+ "one of the few plugins they can use without any training. As a developer I "
1975
+ "appreciate how fast, modern, clean and extensible it is."
1976
+ msgstr ""
1977
+
1978
+ #: includes/admin/class-welcome.php:268
1979
+ msgid ""
1980
+ "As a business owner, time is my most valuable asset. WPForms allow me to "
1981
+ "create smart online forms with just a few clicks. With their pre-built form "
1982
+ "templates and the drag & drop builder, I can create a new form that works in "
1983
+ "less than 2 minutes without writing a single line of code. Well worth the "
1984
+ "investment."
1985
+ msgstr ""
1986
+
1987
+ #: includes/admin/importers/class-base.php:114
1988
+ msgid "There was an error while creating a new form."
1989
+ msgstr ""
1990
+
1991
+ #: includes/admin/importers/class-contact-form-7.php:107
1992
+ #: includes/admin/importers/class-ninja-forms.php:124
1993
+ msgid "Sending"
1994
+ msgstr ""
1995
+
1996
+ #: includes/admin/importers/class-contact-form-7.php:112
1997
+ #: includes/admin/importers/class-ninja-forms.php:129
1998
+ #, fuzzy
1999
+ #| msgid "Notification"
2000
+ msgid "Notification 1"
2001
+ msgstr "Notification"
2002
+
2003
+ #. translators: %s - Contact Form 7 form name.
2004
+ #. translators: %s - Ninja Forms form name.
2005
+ #: includes/admin/importers/class-contact-form-7.php:115
2006
+ #: includes/admin/importers/class-contact-form-7.php:400
2007
+ #: includes/admin/importers/class-ninja-forms.php:132
2008
+ #: includes/admin/importers/class-ninja-forms.php:404
2009
+ #, fuzzy
2010
+ #| msgid "New Entry: "
2011
+ msgid "New Entry: %s"
2012
+ msgstr "Nouvelle entrée&nbsp;:"
2013
+
2014
+ #: includes/admin/importers/class-contact-form-7.php:134
2015
+ #: includes/admin/importers/class-ninja-forms.php:151
2016
+ #, fuzzy
2017
+ #| msgid "No form ID found"
2018
+ msgid "No form fields found."
2019
+ msgstr "Aucun ID de formulaire trouvé"
2020
+
2021
+ #: includes/admin/importers/class-contact-form-7.php:302
2022
+ #, fuzzy
2023
+ #| msgid "Delete Field"
2024
+ msgid "Acceptance Field"
2025
+ msgstr "Supprimer le champ"
2026
+
2027
+ #: includes/admin/importers/class-contact-form-7.php:397
2028
+ #, fuzzy
2029
+ #| msgid "Notification"
2030
+ msgid "Notification 2"
2031
+ msgstr "Notification"
2032
+
2033
+ #. translators: %1$s - field type; %2$s - field name if available.
2034
+ #: includes/admin/importers/class-contact-form-7.php:490
2035
+ #, fuzzy
2036
+ #| msgid "List Fields"
2037
+ msgid "%1$s Field%2$s"
2038
+ msgstr "Liste des champs"
2039
+
2040
+ #: includes/admin/importers/class-ninja-forms.php:227
2041
+ #, fuzzy
2042
+ #| msgid "Settings check failed."
2043
+ msgid "Single Checkbox Field"
2044
+ msgstr "Échec de la vérification des réglages."
2045
+
2046
+ #: includes/admin/importers/class-ninja-forms.php:401
2047
+ #: includes/admin/importers/class-ninja-forms.php:417
2048
+ msgid "Notification"
2049
+ msgstr "Notification"
2050
+
2051
+ #: includes/admin/overview/class-overview-table.php:53
2052
+ #: includes/fields/class-name.php:21 includes/fields/class-name.php:276
2053
+ #: includes/templates/class-contact.php:34
2054
+ #: includes/templates/class-subscribe.php:37
2055
+ #: includes/templates/class-suggestion.php:34
2056
+ #: pro/includes/templates/class-donation.php:36
2057
+ #: pro/includes/templates/class-order.php:36
2058
+ #: pro/includes/templates/class-request-quote.php:33
2059
+ msgid "Name"
2060
+ msgstr "Nom"
2061
+
2062
+ #: includes/admin/overview/class-overview-table.php:54
2063
+ msgid "Shortcode"
2064
+ msgstr "Code court"
2065
+
2066
+ #: includes/admin/overview/class-overview-table.php:55
2067
+ msgid "Created"
2068
+ msgstr "Créé"
2069
+
2070
+ #: includes/admin/overview/class-overview-table.php:142
2071
+ #: includes/admin/overview/class-overview-table.php:159
2072
+ msgid "Edit this form"
2073
+ msgstr "Modifier ce formulaire"
2074
+
2075
+ #: includes/admin/overview/class-overview-table.php:173
2076
+ msgid "View entries"
2077
+ msgstr "Afficher les entrées"
2078
+
2079
+ #: includes/admin/overview/class-overview-table.php:181
2080
+ #, fuzzy
2081
+ #| msgid "View Entries"
2082
+ msgid "View preview"
2083
+ msgstr "Afficher les entrées"
2084
+
2085
+ #: includes/admin/overview/class-overview-table.php:198
2086
+ #, fuzzy
2087
+ #| msgid "Delete this form"
2088
+ msgid "Duplicate this form"
2089
+ msgstr "Supprimer ce formulaire"
2090
+
2091
+ #: includes/admin/overview/class-overview-table.php:199
2092
+ msgid "Duplicate"
2093
+ msgstr ""
2094
+
2095
+ #: includes/admin/overview/class-overview-table.php:215
2096
+ msgid "Delete this form"
2097
+ msgstr "Supprimer ce formulaire"
2098
+
2099
+ #: includes/admin/overview/class-overview-table.php:216
2100
+ #: includes/admin/overview/class-overview-table.php:235
2101
+ #: pro/includes/admin/entries/class-entries-list-table.php:418
2102
+ #: pro/includes/admin/entries/class-entries-list-table.php:439
2103
+ msgid "Delete"
2104
+ msgstr "Supprimer "
2105
+
2106
+ #: includes/admin/overview/class-overview-table.php:275
2107
+ #, fuzzy
2108
+ #| msgid "Form successfully deleted."
2109
+ msgid "Form was successfully deleted."
2110
+ msgstr "Formulaire supprimé avec succès."
2111
+
2112
+ #: includes/admin/overview/class-overview-table.php:277
2113
+ #, fuzzy
2114
+ #| msgid "Form successfully deleted."
2115
+ msgid "Forms were successfully deleted."
2116
+ msgstr "Formulaire supprimé avec succès."
2117
+
2118
+ #: includes/admin/overview/class-overview-table.php:287
2119
+ #: includes/admin/overview/class-overview-table.php:318
2120
+ #, fuzzy
2121
+ #| msgid "Security check failed"
2122
+ msgid "Security check failed. Please try again."
2123
+ msgstr "Le contrôle de sécurité a échoué."
2124
+
2125
+ #: includes/admin/overview/class-overview-table.php:306
2126
+ #, fuzzy
2127
+ #| msgid "Form successfully deleted."
2128
+ msgid "Form was successfully duplicated."
2129
+ msgstr "Formulaire supprimé avec succès."
2130
+
2131
+ #: includes/admin/overview/class-overview-table.php:308
2132
+ #, fuzzy
2133
+ #| msgid "Form successfully deleted."
2134
+ msgid "Forms were successfully duplicated."
2135
+ msgstr "Formulaire supprimé avec succès."
2136
+
2137
+ #: includes/admin/overview/class-overview.php:76
2138
+ msgid "Number of forms per page:"
2139
+ msgstr "Nombre de formulaires par page&nbsp;:"
2140
+
2141
+ #: includes/admin/overview/class-overview.php:123
2142
+ msgid "Forms Overview"
2143
+ msgstr "Vue d&rsquo;ensemble des formulaires"
2144
+
2145
+ #: includes/admin/settings-api.php:69
2146
+ msgid "The callback function used for the %s setting is missing."
2147
+ msgstr ""
2148
+
2149
+ #: includes/admin/settings-api.php:97
2150
+ msgid "You're using WPForms Lite - no license needed. Enjoy!"
2151
+ msgstr ""
2152
+
2153
+ #: includes/admin/settings-api.php:98
2154
+ msgid ""
2155
+ "To unlock more features consider <a href=\"%s\" target=\"_blank\" rel="
2156
+ "\"noopener noreferrer\" class=\"wpforms-upgrade-modal\">upgrading to Pro</a>."
2157
+ "</p>"
2158
+ msgstr ""
2159
+
2160
+ #: includes/admin/settings-api.php:106
2161
+ msgid "Verify Key"
2162
+ msgstr "Vérifier la clé"
2163
+
2164
+ #: includes/admin/settings-api.php:110
2165
+ msgid "Deactivate Key"
2166
+ msgstr "Désactiver la clé"
2167
+
2168
+ #: includes/admin/settings-api.php:114
2169
+ #, fuzzy
2170
+ #| msgid "Your license key type for this site is <strong>%s.</strong>"
2171
+ msgid "Your license key type is %s."
2172
+ msgstr "Votre type de clé de licence pour ce site est <strong>%s</strong>."
2173
+
2174
+ #: includes/admin/settings-api.php:115
2175
+ #, fuzzy
2176
+ #| msgid ""
2177
+ #| "If your license has been upgraded or is incorrect, you may force a "
2178
+ #| "refresh."
2179
+ msgid ""
2180
+ "If your license has been upgraded or is incorrect, <a href=\"#\" id="
2181
+ "\"wpforms-setting-license-key-refresh\">click here to force a refresh</a>."
2182
+ msgstr ""
2183
+ "Si votre licence a été mise à niveau ou est incorrecte, vous pouvez forcer "
2184
+ "une actualisation."
2185
+
2186
+ #: includes/admin/settings-api.php:253
2187
+ msgid "Upload Image"
2188
+ msgstr ""
2189
+
2190
+ #: includes/class-conditional-logic-core.php:162
2191
+ #, fuzzy
2192
+ #| msgid "This field is required"
2193
+ msgid "this field if"
2194
+ msgstr "Champ obligatoire"
2195
+
2196
+ #: includes/class-conditional-logic-core.php:169
2197
+ #, fuzzy
2198
+ #| msgid "Show Page"
2199
+ msgid "Show"
2200
+ msgstr "Afficher la page"
2201
+
2202
+ #: includes/class-conditional-logic-core.php:170
2203
+ msgid "Hide"
2204
+ msgstr ""
2205
+
2206
+ #: includes/class-conditional-logic-core.php:205
2207
+ #: includes/class-conditional-logic-core.php:262
2208
  msgid "Enable conditional logic"
2209
  msgstr "Activer la logique conditionnelle"
2210
 
2211
+ #: includes/class-conditional-logic-core.php:206
2212
+ #, fuzzy
2213
+ #| msgid "Check this option to hide the form field label."
2214
+ msgid "Check this option to enable conditional logic on this field."
2215
+ msgstr "Cocher cette option pour masquer le libellé de champ de formulaire."
2216
 
2217
+ #: includes/class-conditional-logic-core.php:264
2218
+ #, fuzzy
2219
+ #| msgid "Enable conditional logic"
2220
+ msgid "Check this option to enable conditional logic."
2221
+ msgstr "Activer la logique conditionnelle"
2222
 
2223
+ #: includes/class-conditional-logic-core.php:461
2224
+ msgid "Add rule group"
2225
+ msgstr "Ajouter un groupe de règles"
2226
 
2227
+ #: includes/class-frontend.php:1010
2228
+ #: pro/includes/fields/class-file-upload.php:367
2229
+ #: pro/includes/fields/class-file-upload.php:383
2230
+ #: pro/includes/fields/class-file-upload.php:400 pro/wpforms-pro.php:191
2231
+ msgid "File type is not allowed."
2232
+ msgstr "Ce type de fichier n&rsquo;est pas autorisé."
2233
 
2234
+ #: includes/class-frontend.php:1011 pro/wpforms-pro.php:197
2235
+ #, fuzzy
2236
+ #| msgid "File exceeds max size allowed"
2237
+ msgid "File exceeds max size allowed."
2238
+ msgstr "Le fichier dépasse la taille maximale autorisée"
2239
 
2240
+ #: includes/class-frontend.php:1012 pro/wpforms-pro.php:203
2241
+ msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
2242
+ msgstr ""
2243
+
2244
+ #: includes/class-frontend.php:1013 pro/wpforms-pro.php:209
2245
+ msgid "Please enter time in 24-hour format (eg 22:45)."
2246
+ msgstr ""
2247
+
2248
+ #: includes/class-frontend.php:1014
2249
+ #: pro/includes/fields/class-payment-total.php:199 pro/wpforms-pro.php:215
2250
+ #, fuzzy
2251
+ #| msgid "Payment Fields"
2252
+ msgid "Payment is required."
2253
+ msgstr "Champs de paiement"
2254
+
2255
+ #: includes/class-frontend.php:1015 pro/wpforms-pro.php:221
2256
+ #, fuzzy
2257
+ #| msgid "Please enter a valid number."
2258
+ msgid "Please enter a valid credit card number."
2259
+ msgstr "Veuillez saisir un nombre valide."
2260
+
2261
+ #: includes/class-frontend.php:1078
2262
+ msgid "<a href=\"%s\">Go to the full page</a> to view and submit the form."
2263
+ msgstr ""
2264
+
2265
+ #: includes/class-logging.php:38
2266
+ msgid "WPForms Logs"
2267
+ msgstr "Journaux WPForms"
2268
+
2269
+ #: includes/class-logging.php:38
2270
+ msgid "Logs"
2271
+ msgstr ""
2272
+
2273
+ #: includes/class-preview.php:123
2274
+ #, fuzzy
2275
+ #| msgid "Hidden Field"
2276
+ msgid "Hide empty fields"
2277
+ msgstr "Champ caché"
2278
+
2279
+ #: includes/class-preview.php:125 includes/class-preview.php:165
2280
+ msgid "Show empty fields"
2281
+ msgstr ""
2282
+
2283
+ #: includes/class-preview.php:134
2284
+ #, fuzzy
2285
+ #| msgid "is not"
2286
+ msgid "Hide notes"
2287
+ msgstr "n&rsquo;est pas"
2288
+
2289
+ #: includes/class-preview.php:136 includes/class-preview.php:166
2290
+ #, fuzzy
2291
+ #| msgid "Show Values"
2292
+ msgid "Show notes"
2293
+ msgstr "Afficher les valeurs"
2294
+
2295
+ #: includes/class-preview.php:145
2296
+ #, fuzzy
2297
+ #| msgid "Forms Overview"
2298
+ msgid "Normal view"
2299
+ msgstr "Vue d&rsquo;ensemble des formulaires"
2300
+
2301
+ #: includes/class-preview.php:147 includes/class-preview.php:167
2302
+ msgid "Compact view"
2303
+ msgstr ""
2304
+
2305
+ #: includes/class-preview.php:158
2306
+ #, fuzzy
2307
+ #| msgid "New Entry: "
2308
+ msgid "Entry #%d"
2309
+ msgstr "Nouvelle entrée&nbsp;:"
2310
+
2311
+ #: includes/class-preview.php:161
2312
+ #: pro/includes/admin/entries/class-entries-single.php:987
2313
+ msgid "Print"
2314
+ msgstr ""
2315
+
2316
+ #: includes/class-preview.php:175
2317
+ #: pro/includes/admin/entries/class-entries-single.php:520
2318
+ #, fuzzy
2319
+ #| msgid "You don't have any fields yet."
2320
+ msgid "This entry does not have any fields"
2321
+ msgstr "Vous n&rsquo;avez pas encore de champ."
2322
+
2323
+ #. translators: %d - field ID
2324
+ #: includes/class-preview.php:192
2325
+ #: pro/includes/admin/entries/class-entries-single.php:536
2326
+ msgid "Field ID #%d"
2327
+ msgstr ""
2328
+
2329
+ #: includes/class-preview.php:196
2330
+ #: pro/includes/admin/entries/class-entries-single.php:541
2331
+ #, fuzzy
2332
+ #| msgid "empty"
2333
+ msgid "Empty"
2334
+ msgstr "vide"
2335
+
2336
+ #: includes/class-preview.php:207
2337
+ #: pro/includes/admin/entries/class-entries-single.php:578
2338
+ msgid "Notes"
2339
+ msgstr ""
2340
+
2341
+ #. translators: %1$s - user name; %2$s - date
2342
+ #: includes/class-preview.php:221
2343
+ msgid "Added by %1$s on %2$s"
2344
+ msgstr ""
2345
+
2346
+ #: includes/class-preview.php:266
2347
+ msgid ""
2348
+ "This is the WPForms preview page. All your form previews will be handled on "
2349
+ "this page."
2350
+ msgstr ""
2351
+
2352
+ #: includes/class-preview.php:267
2353
+ msgid ""
2354
+ "The page is set to private, so it is not publicly accessible. Please do not "
2355
+ "delete this page :) ."
2356
+ msgstr ""
2357
+
2358
+ #: includes/class-preview.php:272
2359
+ #, fuzzy
2360
+ #| msgid "Forms Overview"
2361
+ msgid "WPForms Preview"
2362
+ msgstr "Vue d&rsquo;ensemble des formulaires"
2363
+
2364
+ #: includes/class-preview.php:373 includes/integrations.php:53
2365
+ #, fuzzy
2366
+ #| msgid "Format"
2367
+ msgid "Form"
2368
+ msgstr "Format"
2369
+
2370
+ #: includes/class-preview.php:375
2371
+ msgid "This is a preview of your form. This page is not publicly accessible."
2372
+ msgstr ""
2373
+
2374
+ #: includes/class-preview.php:377
2375
+ msgid "Close this window"
2376
+ msgstr ""
2377
+
2378
+ #: includes/class-preview.php:379
2379
+ msgctxt "Form name"
2380
+ msgid "%s Preview"
2381
+ msgstr ""
2382
+
2383
+ #: includes/class-process.php:80
2384
+ msgid "Invalid form."
2385
+ msgstr "Formulaire invalide."
2386
+
2387
+ #: includes/class-process.php:117
2388
+ msgid "Incorrect reCAPTCHA, please try again."
2389
+ msgstr "reCAPTCHA incorrect. Veuillez essayer à nouveau."
2390
+
2391
+ #: includes/class-process.php:120
2392
+ #, fuzzy
2393
+ #| msgid "reCAPTCHA Site key"
2394
+ msgid "reCAPTCHA is required."
2395
+ msgstr "Clé du site ReCaptcha"
2396
+
2397
+ #: includes/class-process.php:132 includes/class-process.php:182
2398
+ msgid "Form has not been submitted, please see the errors below."
2399
+ msgstr ""
2400
+ "Le formulaire n&rsquo;a pas été soumis, veuillez voir les erreurs ci-dessous."
2401
+
2402
+ #: includes/class-process.php:144
2403
+ msgid "WPForms honeypot field triggered."
2404
+ msgstr ""
2405
+
2406
+ #: includes/class-process.php:370 pro/wpforms-pro.php:406
2407
+ #, fuzzy
2408
+ #| msgid "New %s Entry"
2409
+ msgctxt "Form name"
2410
+ msgid "New %s Entry"
2411
+ msgstr "Nouvelle entrée %s"
2412
+
2413
+ #: includes/class-smart-tags.php:35
2414
+ msgid "Site Administrator Email"
2415
+ msgstr ""
2416
+
2417
+ #: includes/class-smart-tags.php:36
2418
+ #, fuzzy
2419
+ #| msgid "New Entry: "
2420
+ msgid "Entry ID"
2421
+ msgstr "Nouvelle entrée&nbsp;:"
2422
+
2423
+ #: includes/class-smart-tags.php:37
2424
+ #, fuzzy
2425
+ #| msgid "Form Name"
2426
+ msgid "Form ID"
2427
+ msgstr "Nom du formulaire"
2428
+
2429
+ #: includes/class-smart-tags.php:39
2430
+ msgid "Embedded Post/Page Title"
2431
+ msgstr ""
2432
+
2433
+ #: includes/class-smart-tags.php:40
2434
+ msgid "Embedded Post Page URL"
2435
+ msgstr ""
2436
+
2437
+ #: includes/class-smart-tags.php:41
2438
+ msgid "Embedded Post/Page ID"
2439
+ msgstr ""
2440
+
2441
+ #: includes/class-smart-tags.php:42
2442
+ #: pro/includes/admin/entries/class-entries-export.php:203
2443
+ #: pro/includes/admin/entries/class-entries-list-table.php:165
2444
+ #: pro/includes/fields/class-date-time.php:73
2445
+ #: pro/includes/fields/class-date-time.php:130
2446
+ #: pro/includes/fields/class-date-time.php:269
2447
+ #: pro/includes/fields/class-date-time.php:277
2448
+ #: pro/includes/fields/class-date-time.php:368
2449
+ msgid "Date"
2450
+ msgstr "Date"
2451
+
2452
+ #: includes/class-smart-tags.php:43
2453
+ msgid "Query String Variable"
2454
+ msgstr ""
2455
+
2456
+ #: includes/class-smart-tags.php:44
2457
+ #, fuzzy
2458
+ #| msgid "Address"
2459
+ msgid "User IP Address"
2460
+ msgstr "Adresse"
2461
+
2462
+ #: includes/class-smart-tags.php:45
2463
+ #, fuzzy
2464
+ #| msgid "User Defined"
2465
+ msgid "User ID"
2466
+ msgstr "Défini par l&rsquo;utilisateur"
2467
+
2468
+ #: includes/class-smart-tags.php:46
2469
+ #, fuzzy
2470
+ #| msgid "From Name"
2471
+ msgid "User Name"
2472
+ msgstr "&laquo;&nbsp;Depuis&nbsp;&raquo; nom"
2473
+
2474
+ #: includes/class-smart-tags.php:47
2475
+ #, fuzzy
2476
+ #| msgid "Email"
2477
+ msgid "User Email"
2478
+ msgstr "Adresse de contact"
2479
+
2480
+ #: includes/class-smart-tags.php:48
2481
+ msgid "Author ID"
2482
+ msgstr ""
2483
+
2484
+ #: includes/class-smart-tags.php:49
2485
+ #, fuzzy
2486
+ #| msgid "Form Name"
2487
+ msgid "Author Name"
2488
+ msgstr "Nom du formulaire"
2489
+
2490
+ #: includes/class-smart-tags.php:50
2491
+ msgid "Author Email"
2492
+ msgstr ""
2493
+
2494
+ #: includes/class-smart-tags.php:51
2495
+ msgid "Referrer URL"
2496
+ msgstr ""
2497
+
2498
+ #: includes/class-smart-tags.php:52
2499
+ msgid "Login URL"
2500
+ msgstr ""
2501
+
2502
+ #: includes/class-smart-tags.php:53
2503
+ msgid "Logout URL"
2504
+ msgstr ""
2505
+
2506
+ #: includes/class-smart-tags.php:54
2507
+ #, fuzzy
2508
+ #| msgid "Website / URL"
2509
+ msgid "Register URL"
2510
+ msgstr "Site internet / URL"
2511
+
2512
+ #: includes/class-smart-tags.php:55
2513
+ #, fuzzy
2514
+ #| msgid "Password"
2515
+ msgid "Lost Password URL"
2516
+ msgstr "Mot de Passe"
2517
+
2518
+ #: includes/class-widget.php:43
2519
+ #, fuzzy
2520
+ #| msgid "Display form title"
2521
+ msgctxt "Widget"
2522
+ msgid "Display a form."
2523
+ msgstr "Afficher le titre du formulaire"
2524
+
2525
+ #: includes/class-widget.php:52
2526
+ #, fuzzy
2527
+ #| msgid "WPForms"
2528
+ msgctxt "Widget"
2529
+ msgid "WPForms"
2530
+ msgstr "WPForms"
2531
+
2532
+ #: includes/class-widget.php:120
2533
+ #, fuzzy
2534
+ #| msgid "Form Title"
2535
+ msgctxt "Widget"
2536
+ msgid "Title:"
2537
+ msgstr "Titre du formulaire"
2538
+
2539
+ #: includes/class-widget.php:129
2540
+ #, fuzzy
2541
+ #| msgid "Format"
2542
+ msgctxt "Widget"
2543
+ msgid "Form:"
2544
+ msgstr "Format"
2545
+
2546
+ #: includes/class-widget.php:135
2547
+ #, fuzzy
2548
+ #| msgid "Delete this form"
2549
+ msgctxt "Widget"
2550
+ msgid "Select your form"
2551
+ msgstr "Supprimer ce formulaire"
2552
+
2553
+ #: includes/class-widget.php:141
2554
+ #, fuzzy
2555
+ #| msgid "No forms"
2556
+ msgctxt "Widget"
2557
+ msgid "No forms"
2558
+ msgstr "Aucun formulaire"
2559
+
2560
+ #: includes/class-widget.php:149
2561
+ #, fuzzy
2562
+ #| msgid "Display form title"
2563
+ msgctxt "Widget"
2564
+ msgid "Display form name"
2565
+ msgstr "Afficher le titre du formulaire"
2566
+
2567
+ #: includes/class-widget.php:153
2568
+ #, fuzzy
2569
+ #| msgid "Display form description"
2570
+ msgctxt "Widget"
2571
+ msgid "Display form description"
2572
+ msgstr "Afficher la description du formulaire"
2573
+
2574
+ #: includes/emails/class-emails.php:331
2575
+ msgid ""
2576
+ "You cannot send emails with WPForms_WP_Emails until init/admin_init has been "
2577
+ "reached."
2578
+ msgstr ""
2579
+
2580
+ #: includes/emails/class-emails.php:472 includes/emails/class-emails.php:495
2581
+ #: includes/fields/class-checkbox.php:194 includes/fields/class-radio.php:194
2582
+ #: includes/fields/class-select.php:200
2583
+ msgid "(empty)"
2584
+ msgstr "(vide)"
2585
+
2586
+ #: includes/emails/class-emails.php:473 includes/emails/class-emails.php:496
2587
+ #, fuzzy
2588
+ #| msgid "Field"
2589
+ msgid "Field ID #"
2590
+ msgstr "Champ"
2591
+
2592
+ #: includes/emails/class-emails.php:504
2593
+ msgid "An empty form was submitted."
2594
+ msgstr ""
2595
+
2596
+ #. translators: %s - link to a site.
2597
+ #: includes/emails/templates/footer-default.php:41
2598
+ msgid "Sent from %s"
2599
+ msgstr ""
2600
+
2601
+ #: includes/fields/class-base.php:315
2602
+ msgid ""
2603
+ "Enter text for the form field label. Field labels are recommended and can be "
2604
+ "hidden in the Advanced Settings."
2605
+ msgstr ""
2606
+ "Saisir du texte pour le libellé de champ de formulaire. Les libellés de "
2607
+ "champ sont recommandées et peuvent être cachées dans les paramètres avancés."
2608
+
2609
+ #: includes/fields/class-base.php:316
2610
+ msgid "Label"
2611
+ msgstr "Libellé"
2612
+
2613
+ #: includes/fields/class-base.php:325
2614
+ msgid "Enter text for the form field description."
2615
+ msgstr "Saisir du texte pour le champ description de formulaire."
2616
+
2617
+ #: includes/fields/class-base.php:326
2618
+ msgid "Description"
2619
+ msgstr "Description"
2620
+
2621
+ #: includes/fields/class-base.php:336
2622
+ msgid ""
2623
+ "Check this option to mark the field required. A form will not submit unless "
2624
+ "all required fields are provided."
2625
+ msgstr ""
2626
+ "Cocher cette option pour marquer le champ comme requis. Un formulaire ne "
2627
+ "sera pas soumis à moins que tous les champs obligatoires soient fournis."
2628
+
2629
+ #: includes/fields/class-base.php:353
2630
+ msgid "Enter code for the form field."
2631
+ msgstr "Saisir du code pour le champ de formulaire."
2632
+
2633
+ #: includes/fields/class-base.php:354
2634
+ msgid "Code"
2635
+ msgstr "Code"
2636
+
2637
+ #: includes/fields/class-base.php:362 includes/fields/class-base.php:444
2638
+ msgid "Add choices for the form field."
2639
+ msgstr "Ajouter des choix pour le champ de formulaire."
2640
+
2641
+ #: includes/fields/class-base.php:375
2642
+ msgid "Choices"
2643
+ msgstr "Choix"
2644
+
2645
+ #. translators: %1$s - source name; %2$s - type name.
2646
+ #: includes/fields/class-base.php:421
2647
+ msgid "Choices are dynamically populated from the %1$s %2$s"
2648
+ msgstr ""
2649
+
2650
+ #: includes/fields/class-base.php:453
2651
+ msgid "Items"
2652
+ msgstr "Articles"
2653
+
2654
+ #: includes/fields/class-base.php:495
2655
+ msgid "Enter text for the default form field value."
2656
+ msgstr "Saisir du texte pour la valeur par défaut du champ de formulaire."
2657
+
2658
+ #: includes/fields/class-base.php:497 includes/fields/class-name.php:283
2659
+ #: includes/fields/class-name.php:298 includes/fields/class-name.php:313
2660
+ #: includes/fields/class-name.php:328 pro/includes/fields/class-address.php:329
2661
+ #: pro/includes/fields/class-address.php:348
2662
+ #: pro/includes/fields/class-address.php:369
2663
+ #: pro/includes/fields/class-address.php:387
2664
+ #: pro/includes/fields/class-address.php:407
2665
+ #: pro/includes/fields/class-address.php:431
2666
+ msgid "Default Value"
2667
+ msgstr "Valeur par défaut"
2668
+
2669
+ #: includes/fields/class-base.php:507
2670
+ msgid "Select the default form field size."
2671
+ msgstr "Sélectionner la taille de champ de formulaire par défaut."
2672
+
2673
+ #: includes/fields/class-base.php:509
2674
+ msgid "Small"
2675
+ msgstr ""
2676
+
2677
+ #: includes/fields/class-base.php:510
2678
+ msgid "Medium"
2679
+ msgstr ""
2680
+
2681
+ #: includes/fields/class-base.php:511
2682
+ msgid "Large"
2683
+ msgstr ""
2684
+
2685
+ #: includes/fields/class-base.php:513
2686
+ msgid "Field Size"
2687
+ msgstr "Taille du champ"
2688
+
2689
+ #: includes/fields/class-base.php:526
2690
+ msgid "Advanced Options"
2691
+ msgstr "Options avancées"
2692
+
2693
+ #: includes/fields/class-base.php:537
2694
+ msgid "Enter text for the form field placeholder."
2695
+ msgstr "Saisir du texte pour l&rsquo;espace réservé de champ de formulaire."
2696
+
2697
+ #: includes/fields/class-base.php:538
2698
+ msgid "Placeholder Text"
2699
+ msgstr "Texte d&rsquo;espace réservé"
2700
+
2701
+ #: includes/fields/class-base.php:548
2702
+ #, fuzzy
2703
+ #| msgid ""
2704
+ #| "Enter CSS class names for the form field container. Class names should be "
2705
+ #| "seperated with spaces."
2706
+ msgid ""
2707
+ "Enter CSS class names for the form field container. Class names should be "
2708
+ "separated with spaces."
2709
+ msgstr ""
2710
+ "Saisir les noms de classe CSS pour le conteneur de champ de formulaire. Les "
2711
+ "noms de classe doivent être séparés par des espaces."
2712
+
2713
+ #: includes/fields/class-base.php:553
2714
+ msgid "CSS Classes"
2715
+ msgstr "Classes CSS"
2716
+
2717
+ #: includes/fields/class-base.php:562
2718
+ msgid "Check this option to hide the form field label."
2719
+ msgstr "Cocher cette option pour masquer le libellé de champ de formulaire."
2720
+
2721
+ #: includes/fields/class-base.php:564
2722
+ msgid "Hide Label"
2723
+ msgstr "Masquer le libellé"
2724
+
2725
+ #: includes/fields/class-base.php:572
2726
+ #, fuzzy
2727
+ #| msgid "Check this option to hide the form field sib-label."
2728
+ msgid "Check this option to hide the form field sub-label."
2729
+ msgstr ""
2730
+ "Cocher cette option pour masquer la sous-libellé de champ de formulaire."
2731
+
2732
+ #: includes/fields/class-base.php:574
2733
+ msgid "Hide Sub-Labels"
2734
+ msgstr "Masquer les sous-libellés"
2735
+
2736
+ #: includes/fields/class-base.php:582
2737
+ #, fuzzy
2738
+ #| msgid "Select the default form field size."
2739
+ msgid "Select the layout for displaying field choices."
2740
+ msgstr "Sélectionner la taille de champ de formulaire par défaut."
2741
+
2742
+ #: includes/fields/class-base.php:584
2743
+ msgid "One Column"
2744
+ msgstr ""
2745
+
2746
+ #: includes/fields/class-base.php:585
2747
+ msgid "Two Columns"
2748
+ msgstr ""
2749
+
2750
+ #: includes/fields/class-base.php:586
2751
+ msgid "Three Columns"
2752
+ msgstr ""
2753
+
2754
+ #: includes/fields/class-base.php:588
2755
+ #, fuzzy
2756
+ #| msgid "Choices"
2757
+ msgid "Choice Layout"
2758
+ msgstr "Choix"
2759
+
2760
+ #: includes/fields/class-base.php:597
2761
+ msgid "Select auto-populate method to use."
2762
+ msgstr ""
2763
+
2764
+ #: includes/fields/class-base.php:600 includes/fields/class-base.php:621
2765
+ #, fuzzy
2766
+ #| msgid "Item Type"
2767
+ msgid "Post Type"
2768
+ msgstr "Type d&rsquo;élément"
2769
+
2770
+ #: includes/fields/class-base.php:601 includes/fields/class-base.php:632
2771
+ msgid "Taxonomy"
2772
+ msgstr ""
2773
+
2774
+ #: includes/fields/class-base.php:603
2775
+ #, fuzzy
2776
+ #| msgid "Choices"
2777
+ msgid "Dynamic Choices"
2778
+ msgstr "Choix"
2779
+
2780
+ #: includes/fields/class-base.php:642
2781
+ msgid "Select %s to use for auto-populating field choices."
2782
+ msgstr ""
2783
+
2784
+ #: includes/fields/class-base.php:643
2785
+ msgid "Dynamic %s Source"
2786
+ msgstr ""
2787
+
2788
+ #: includes/fields/class-base.php:757
2789
+ msgid "You do no have permission."
2790
+ msgstr "Vous n&rsquo;avez pas d&rsquo;autorisation."
2791
+
2792
+ #: includes/fields/class-base.php:762
2793
+ msgid "No form ID found"
2794
+ msgstr "Aucun ID de formulaire trouvé"
2795
+
2796
+ #: includes/fields/class-base.php:767
2797
+ msgid "No field type found"
2798
+ msgstr "Aucun type de champ trouvé"
2799
+
2800
+ #: includes/fields/class-checkbox.php:21
2801
+ msgid "Checkboxes"
2802
+ msgstr "Cases à cocher"
2803
+
2804
+ #: includes/fields/class-checkbox.php:27 includes/fields/class-radio.php:27
2805
+ #: includes/fields/class-select.php:27
2806
+ msgid "First Choice"
2807
+ msgstr "Premier choix"
2808
+
2809
+ #: includes/fields/class-checkbox.php:32 includes/fields/class-radio.php:32
2810
+ #: includes/fields/class-select.php:32
2811
+ msgid "Second Choice"
2812
+ msgstr "Deuxième choix"
2813
+
2814
+ #: includes/fields/class-checkbox.php:37 includes/fields/class-radio.php:37
2815
+ #: includes/fields/class-select.php:37
2816
+ msgid "Third Choice"
2817
+ msgstr "Troisième choix"
2818
+
2819
+ #: includes/fields/class-checkbox.php:97 includes/fields/class-radio.php:97
2820
+ #: includes/fields/class-select.php:97
2821
+ msgid "Show Values"
2822
+ msgstr "Afficher les valeurs"
2823
+
2824
+ #: includes/fields/class-checkbox.php:98 includes/fields/class-radio.php:98
2825
+ #: includes/fields/class-select.php:98
2826
+ msgid "Check this to manually set form field values."
2827
+ msgstr ""
2828
+ "Cocher ceci pour définir manuellement les valeurs de champ de formulaire."
2829
+
2830
+ #: includes/fields/class-checkbox.php:212 includes/fields/class-radio.php:212
2831
+ #, fuzzy
2832
+ #| msgid ""
2833
+ #| "Note: Item type is set to hidden and will not be visible when viewing the "
2834
+ #| "form."
2835
+ msgid ""
2836
+ "Showing the first 20 choices.<br> All %d choices will be displayed when "
2837
+ "viewing the form."
2838
+ msgstr ""
2839
+ "Remarque&nbsp;: le type d&rsquo;élément est défini à masquer et ne sera pas "
2840
+ "visible lorsque le formulaire s&rsquo;affichera."
2841
+
2842
+ #: includes/fields/class-email.php:91 includes/fields/class-email.php:311
2843
+ #, fuzzy
2844
+ #| msgid "Confirmation"
2845
+ msgid "Confirm Email"
2846
+ msgstr "Confirmation"
2847
+
2848
+ #: includes/fields/class-email.php:207
2849
+ #, fuzzy
2850
+ #| msgid "Confirmation"
2851
+ msgid "Enable Email Confirmation"
2852
+ msgstr "Confirmation"
2853
+
2854
+ #: includes/fields/class-email.php:208
2855
+ msgid "Check this option to ask users to provide an email address twice."
2856
+ msgstr ""
2857
+
2858
+ #: includes/fields/class-email.php:246
2859
+ #: pro/includes/fields/class-password.php:227
2860
+ #, fuzzy
2861
+ #| msgid "Placeholder Text"
2862
+ msgid "Confirmation Placeholder Text"
2863
+ msgstr "Texte d&rsquo;espace réservé"
2864
+
2865
+ #: includes/fields/class-email.php:247
2866
+ #: pro/includes/fields/class-password.php:228
2867
+ #, fuzzy
2868
+ #| msgid "Enter text for the form field placeholder."
2869
+ msgid "Enter text for the confirmation field placeholder."
2870
+ msgstr "Saisir du texte pour l&rsquo;espace réservé de champ de formulaire."
2871
+
2872
+ #: includes/fields/class-name.php:82 includes/fields/class-name.php:377
2873
+ msgid "First"
2874
+ msgstr "Prénom"
2875
+
2876
+ #: includes/fields/class-name.php:103 includes/fields/class-name.php:382
2877
+ msgid "Middle"
2878
+ msgstr "Second prénom"
2879
+
2880
+ #: includes/fields/class-name.php:124 includes/fields/class-name.php:387
2881
+ msgid "Last"
2882
+ msgstr "Nom"
2883
+
2884
+ #: includes/fields/class-name.php:220
2885
+ #: pro/includes/fields/class-date-time.php:60
2886
+ #: pro/includes/fields/class-date-time.php:147
2887
+ #: pro/includes/fields/class-date-time.php:187
2888
+ #: pro/includes/fields/class-phone.php:78
2889
+ msgid "Format"
2890
+ msgstr "Format"
2891
+
2892
+ #: includes/fields/class-name.php:221
2893
+ msgid "Select format to use for the name form field"
2894
+ msgstr "Sélectionner le format à utiliser pour le champ de formulaire nom"
2895
+
2896
+ #: includes/fields/class-name.php:232
2897
+ msgid "Simple"
2898
+ msgstr "Simple"
2899
+
2900
+ #: includes/fields/class-name.php:233
2901
+ msgid "First Last"
2902
+ msgstr "Prénom Nom"
2903
+
2904
+ #: includes/fields/class-name.php:234
2905
+ msgid "First Middle Last"
2906
+ msgstr "Prénom Second prénom Nom"
2907
+
2908
+ #: includes/fields/class-name.php:276
2909
+ msgid "Name field advanced options."
2910
+ msgstr "Options avancées de champ nom."
2911
+
2912
+ #: includes/fields/class-name.php:279 includes/fields/class-name.php:294
2913
+ #: includes/fields/class-name.php:309 includes/fields/class-name.php:324
2914
+ #: pro/includes/fields/class-address.php:325
2915
+ #: pro/includes/fields/class-address.php:344
2916
+ #: pro/includes/fields/class-address.php:365
2917
+ #: pro/includes/fields/class-address.php:383
2918
+ #: pro/includes/fields/class-address.php:403
2919
+ #: pro/includes/fields/class-address.php:427
2920
+ #: pro/includes/fields/class-date-time.php:135
2921
+ #: pro/includes/fields/class-date-time.php:179
2922
+ msgid "Placeholder"
2923
+ msgstr "Espace réservé"
2924
+
2925
+ #: includes/fields/class-name.php:291
2926
+ msgid "First Name"
2927
+ msgstr "Prénom"
2928
+
2929
+ #: includes/fields/class-name.php:291
2930
+ msgid "First name field advanced options."
2931
+ msgstr "Options avancées de champ prénom."
2932
+
2933
+ #: includes/fields/class-name.php:306
2934
+ msgid "Middle Name"
2935
+ msgstr "Second prénom"
2936
+
2937
+ #: includes/fields/class-name.php:306
2938
+ msgid "Middle name field advanced options."
2939
+ msgstr "Options avancées de champ second prénom."
2940
+
2941
+ #: includes/fields/class-name.php:321
2942
+ msgid "Last Name"
2943
+ msgstr "Nom"
2944
+
2945
+ #: includes/fields/class-name.php:321
2946
+ msgid "Last name field advanced options."
2947
+ msgstr "Options avancées de champ nom."
2948
+
2949
+ #: includes/fields/class-number.php:21
2950
+ msgid "Numbers"
2951
+ msgstr "Nombres"
2952
+
2953
+ #: includes/fields/class-radio.php:21
2954
+ msgid "Multiple Choice"
2955
+ msgstr "Choix multiple"
2956
+
2957
+ #: includes/fields/class-select.php:21
2958
+ msgid "Dropdown"
2959
+ msgstr "Liste déroulante"
2960
+
2961
+ #: includes/fields/class-text.php:21
2962
+ msgid "Single Line Text"
2963
+ msgstr "Ligne de texte"
2964
+
2965
+ #: includes/fields/class-textarea.php:21
2966
+ msgid "Paragraph Text"
2967
+ msgstr "Paragraphe de texte"
2968
+
2969
+ #: includes/functions.php:625
2970
+ msgid "Alabama"
2971
+ msgstr ""
2972
+
2973
+ #: includes/functions.php:626
2974
+ msgid "Alaska"
2975
+ msgstr ""
2976
+
2977
+ #: includes/functions.php:627
2978
+ msgid "Arizona"
2979
+ msgstr ""
2980
+
2981
+ #: includes/functions.php:628
2982
+ msgid "Arkansas"
2983
+ msgstr ""
2984
+
2985
+ #: includes/functions.php:629
2986
+ msgid "California"
2987
+ msgstr ""
2988
+
2989
+ #: includes/functions.php:630
2990
+ msgid "Colorado"
2991
+ msgstr ""
2992
+
2993
+ #: includes/functions.php:631
2994
+ #, fuzzy
2995
+ #| msgid "Connect to"
2996
+ msgid "Connecticut"
2997
+ msgstr "Se connecter à"
2998
+
2999
+ #: includes/functions.php:632
3000
+ msgid "Delaware"
3001
+ msgstr ""
3002
+
3003
+ #: includes/functions.php:633
3004
+ msgid "District of Columbia"
3005
+ msgstr ""
3006
+
3007
+ #: includes/functions.php:634
3008
+ msgid "Florida"
3009
+ msgstr ""
3010
+
3011
+ #: includes/functions.php:635 includes/functions.php:777
3012
+ msgid "Georgia"
3013
+ msgstr ""
3014
+
3015
+ #: includes/functions.php:636
3016
+ msgid "Hawaii"
3017
+ msgstr ""
3018
+
3019
+ #: includes/functions.php:637
3020
+ msgid "Idaho"
3021
+ msgstr ""
3022
+
3023
+ #: includes/functions.php:638
3024
+ msgid "Illinois"
3025
+ msgstr ""
3026
+
3027
+ #: includes/functions.php:639
3028
+ msgid "Indiana"
3029
+ msgstr ""
3030
+
3031
+ #: includes/functions.php:640
3032
+ msgid "Iowa"
3033
+ msgstr ""
3034
+
3035
+ #: includes/functions.php:641
3036
+ msgid "Kansas"
3037
+ msgstr ""
3038
+
3039
+ #: includes/functions.php:642
3040
+ msgid "Kentucky"
3041
+ msgstr ""
3042
+
3043
+ #: includes/functions.php:643
3044
+ msgid "Louisiana"
3045
+ msgstr ""
3046
+
3047
+ #: includes/functions.php:644
3048
+ msgid "Maine"
3049
+ msgstr ""
3050
+
3051
+ #: includes/functions.php:645
3052
+ msgid "Maryland"
3053
+ msgstr ""
3054
+
3055
+ #: includes/functions.php:646
3056
+ msgid "Massachusetts"
3057
+ msgstr ""
3058
+
3059
+ #: includes/functions.php:647
3060
+ msgid "Michigan"
3061
+ msgstr ""
3062
+
3063
+ #: includes/functions.php:648
3064
+ msgid "Minnesota"
3065
+ msgstr ""
3066
+
3067
+ #: includes/functions.php:649
3068
+ msgid "Mississippi"
3069
+ msgstr ""
3070
+
3071
+ #: includes/functions.php:650
3072
+ msgid "Missouri"
3073
+ msgstr ""
3074
+
3075
+ #: includes/functions.php:651
3076
+ msgid "Montana"
3077
+ msgstr ""
3078
+
3079
+ #: includes/functions.php:652
3080
+ msgid "Nebraska"
3081
+ msgstr ""
3082
+
3083
+ #: includes/functions.php:653
3084
+ msgid "Nevada"
3085
+ msgstr ""
3086
+
3087
+ #: includes/functions.php:654
3088
+ msgid "New Hampshire"
3089
+ msgstr ""
3090
+
3091
+ #: includes/functions.php:655
3092
+ msgid "New Jersey"
3093
+ msgstr ""
3094
+
3095
+ #: includes/functions.php:656
3096
+ msgid "New Mexico"
3097
+ msgstr ""
3098
+
3099
+ #: includes/functions.php:657
3100
+ msgid "New York"
3101
+ msgstr ""
3102
+
3103
+ #: includes/functions.php:658
3104
+ msgid "North Carolina"
3105
+ msgstr ""
3106
+
3107
+ #: includes/functions.php:659
3108
+ msgid "North Dakota"
3109
+ msgstr ""
3110
+
3111
+ #: includes/functions.php:660
3112
+ msgid "Ohio"
3113
+ msgstr ""
3114
+
3115
+ #: includes/functions.php:661
3116
+ msgid "Oklahoma"
3117
+ msgstr ""
3118
+
3119
+ #: includes/functions.php:662
3120
+ msgid "Oregon"
3121
+ msgstr ""
3122
+
3123
+ #: includes/functions.php:663
3124
+ msgid "Pennsylvania"
3125
+ msgstr ""
3126
+
3127
+ #: includes/functions.php:664
3128
+ msgid "Rhode Island"
3129
+ msgstr ""
3130
+
3131
+ #: includes/functions.php:665
3132
+ msgid "South Carolina"
3133
+ msgstr ""
3134
+
3135
+ #: includes/functions.php:666
3136
+ msgid "South Dakota"
3137
+ msgstr ""
3138
+
3139
+ #: includes/functions.php:667
3140
+ msgid "Tennessee"
3141
+ msgstr ""
3142
+
3143
+ #: includes/functions.php:668
3144
+ msgid "Texas"
3145
+ msgstr ""
3146
+
3147
+ #: includes/functions.php:669
3148
+ msgid "Utah"
3149
+ msgstr ""
3150
+
3151
+ #: includes/functions.php:670
3152
+ msgid "Vermont"
3153
+ msgstr ""
3154
+
3155
+ #: includes/functions.php:671
3156
+ msgid "Virginia"
3157
+ msgstr ""
3158
+
3159
+ #: includes/functions.php:672
3160
+ msgid "Washington"
3161
+ msgstr ""
3162
+
3163
+ #: includes/functions.php:673
3164
+ msgid "West Virginia"
3165
+ msgstr ""
3166
+
3167
+ #: includes/functions.php:674
3168
+ #, fuzzy
3169
+ #| msgid "Disconnect "
3170
+ msgid "Wisconsin"
3171
+ msgstr "Déconnecter"
3172
+
3173
+ #: includes/functions.php:675
3174
+ msgid "Wyoming"
3175
+ msgstr ""
3176
+
3177
+ #: includes/functions.php:690
3178
+ msgid "Afghanistan"
3179
+ msgstr ""
3180
+
3181
+ #: includes/functions.php:691
3182
+ msgid "Aland Islands"
3183
+ msgstr ""
3184
+
3185
+ #: includes/functions.php:692
3186
+ msgid "Albania"
3187
+ msgstr ""
3188
+
3189
+ #: includes/functions.php:693
3190
+ msgid "Algeria"
3191
+ msgstr ""
3192
+
3193
+ #: includes/functions.php:694
3194
+ msgid "American Samoa"
3195
+ msgstr ""
3196
+
3197
+ #: includes/functions.php:695
3198
+ msgid "Andorra"
3199
+ msgstr ""
3200
+
3201
+ #: includes/functions.php:696
3202
+ msgid "Angola"
3203
+ msgstr ""
3204
+
3205
+ #: includes/functions.php:697
3206
+ msgid "Anguilla"
3207
+ msgstr ""
3208
+
3209
+ #: includes/functions.php:698
3210
+ msgid "Antarctica"
3211
+ msgstr ""
3212
+
3213
+ #: includes/functions.php:699
3214
+ msgid "Antigua and Barbuda"
3215
+ msgstr ""
3216
+
3217
+ #: includes/functions.php:700
3218
+ msgid "Argentina"
3219
+ msgstr ""
3220
+
3221
+ #: includes/functions.php:701
3222
+ msgid "Armenia"
3223
+ msgstr ""
3224
+
3225
+ #: includes/functions.php:702
3226
+ msgid "Aruba"
3227
+ msgstr ""
3228
+
3229
+ #: includes/functions.php:703
3230
+ msgid "Ascension Island"
3231
+ msgstr ""
3232
+
3233
+ #: includes/functions.php:704
3234
+ msgid "Australia"
3235
+ msgstr ""
3236
+
3237
+ #: includes/functions.php:705
3238
+ msgid "Austria"
3239
+ msgstr ""
3240
+
3241
+ #: includes/functions.php:706
3242
+ msgid "Azerbaijan"
3243
+ msgstr ""
3244
+
3245
+ #: includes/functions.php:707
3246
+ msgid "Bahamas"
3247
+ msgstr ""
3248
+
3249
+ #: includes/functions.php:708
3250
+ msgid "Bahrain"
3251
+ msgstr ""
3252
+
3253
+ #: includes/functions.php:709
3254
+ msgid "Bangladesh"
3255
+ msgstr ""
3256
+
3257
+ #: includes/functions.php:710
3258
+ msgid "Barbados"
3259
+ msgstr ""
3260
+
3261
+ #: includes/functions.php:711
3262
+ msgid "Belarus"
3263
+ msgstr ""
3264
+
3265
+ #: includes/functions.php:712
3266
+ msgid "Belgium"
3267
+ msgstr ""
3268
+
3269
+ #: includes/functions.php:713
3270
+ msgid "Belize"
3271
+ msgstr ""
3272
+
3273
+ #: includes/functions.php:714
3274
+ msgid "Benin"
3275
+ msgstr ""
3276
+
3277
+ #: includes/functions.php:715
3278
+ msgid "Bermuda"
3279
+ msgstr ""
3280
+
3281
+ #: includes/functions.php:716
3282
+ msgid "Bhutan"
3283
+ msgstr ""
3284
+
3285
+ #: includes/functions.php:717
3286
+ msgid "Bolivia"
3287
+ msgstr ""
3288
+
3289
+ #: includes/functions.php:718
3290
+ msgid "Bosnia and Herzegovina"
3291
+ msgstr ""
3292
+
3293
+ #: includes/functions.php:719
3294
+ msgid "Botswana"
3295
+ msgstr ""
3296
+
3297
+ #: includes/functions.php:720
3298
+ msgid "Bouvet Island"
3299
+ msgstr ""
3300
+
3301
+ #: includes/functions.php:721
3302
+ msgid "Brazil"
3303
+ msgstr ""
3304
+
3305
+ #: includes/functions.php:722
3306
+ msgid "British Indian Ocean Territory"
3307
+ msgstr ""
3308
+
3309
+ #: includes/functions.php:723
3310
+ msgid "British Virgin Islands"
3311
+ msgstr ""
3312
+
3313
+ #: includes/functions.php:724
3314
+ msgid "Brunei"
3315
+ msgstr ""
3316
+
3317
+ #: includes/functions.php:725
3318
+ msgid "Bulgaria"
3319
+ msgstr ""
3320
+
3321
+ #: includes/functions.php:726
3322
+ msgid "Burkina Faso"
3323
+ msgstr ""
3324
+
3325
+ #: includes/functions.php:727
3326
+ msgid "Burundi"
3327
+ msgstr ""
3328
+
3329
+ #: includes/functions.php:728
3330
+ msgid "Cambodia"
3331
+ msgstr ""
3332
+
3333
+ #: includes/functions.php:729
3334
+ msgid "Cameroon"
3335
+ msgstr ""
3336
+
3337
+ #: includes/functions.php:730
3338
+ msgid "Canada"
3339
+ msgstr ""
3340
+
3341
+ #: includes/functions.php:731
3342
+ msgid "Canary Islands"
3343
+ msgstr ""
3344
+
3345
+ #: includes/functions.php:732
3346
+ msgid "Cape Verde"
3347
+ msgstr ""
3348
+
3349
+ #: includes/functions.php:733
3350
+ msgid "Caribbean Netherlands"
3351
+ msgstr ""
3352
+
3353
+ #: includes/functions.php:734
3354
+ msgid "Cayman Islands"
3355
+ msgstr ""
3356
+
3357
+ #: includes/functions.php:735
3358
+ msgid "Central African Republic"
3359
+ msgstr ""
3360
+
3361
+ #: includes/functions.php:736
3362
+ msgid "Ceuta and Melilla"
3363
+ msgstr ""
3364
+
3365
+ #: includes/functions.php:737
3366
+ msgid "Chad"
3367
+ msgstr ""
3368
+
3369
+ #: includes/functions.php:738
3370
+ msgid "Chile"
3371
+ msgstr ""
3372
+
3373
+ #: includes/functions.php:739
3374
+ msgid "China"
3375
+ msgstr ""
3376
+
3377
+ #: includes/functions.php:740
3378
+ msgid "Christmas Island"
3379
+ msgstr ""
3380
+
3381
+ #: includes/functions.php:741
3382
+ msgid "Clipperton Island"
3383
+ msgstr ""
3384
+
3385
+ #: includes/functions.php:742
3386
+ msgid "Cocos (Keeling) Islands"
3387
+ msgstr ""
3388
+
3389
+ #: includes/functions.php:743
3390
+ msgid "Colombia"
3391
+ msgstr ""
3392
+
3393
+ #: includes/functions.php:744
3394
+ msgid "Comoros"
3395
+ msgstr ""
3396
+
3397
+ #: includes/functions.php:745
3398
+ msgid "Congo (DRC)"
3399
+ msgstr ""
3400
+
3401
+ #: includes/functions.php:746
3402
+ msgid "Congo (Republic)"
3403
+ msgstr ""
3404
+
3405
+ #: includes/functions.php:747
3406
+ msgid "Cook Islands"
3407
+ msgstr ""
3408
+
3409
+ #: includes/functions.php:748
3410
+ msgid "Costa Rica"
3411
+ msgstr ""
3412
+
3413
+ #: includes/functions.php:749
3414
+ msgid "Côte d’Ivoire"
3415
+ msgstr ""
3416
+
3417
+ #: includes/functions.php:750
3418
+ msgid "Croatia"
3419
+ msgstr ""
3420
+
3421
+ #: includes/functions.php:751
3422
+ msgid "Cuba"
3423
+ msgstr ""
3424
+
3425
+ #: includes/functions.php:752
3426
+ msgid "Curaçao"
3427
+ msgstr ""
3428
+
3429
+ #: includes/functions.php:753
3430
+ msgid "Cyprus"
3431
+ msgstr ""
3432
+
3433
+ #: includes/functions.php:754
3434
+ msgid "Czech Republic"
3435
+ msgstr ""
3436
+
3437
+ #: includes/functions.php:755
3438
+ msgid "Denmark (Danmark)"
3439
+ msgstr ""
3440
+
3441
+ #: includes/functions.php:756
3442
+ msgid "Diego Garcia"
3443
+ msgstr ""
3444
+
3445
+ #: includes/functions.php:757
3446
+ msgid "Djibouti"
3447
+ msgstr ""
3448
+
3449
+ #: includes/functions.php:758
3450
+ msgid "Dominica"
3451
+ msgstr ""
3452
+
3453
+ #: includes/functions.php:759
3454
+ msgid "Dominican Republic"
3455
+ msgstr ""
3456
+
3457
+ #: includes/functions.php:760
3458
+ msgid "Ecuador"
3459
+ msgstr ""
3460
+
3461
+ #: includes/functions.php:761
3462
+ msgid "Egypt"
3463
+ msgstr ""
3464
+
3465
+ #: includes/functions.php:762
3466
+ msgid "El Salvador"
3467
+ msgstr ""
3468
+
3469
+ #: includes/functions.php:763
3470
+ msgid "Equatorial Guinea"
3471
+ msgstr ""
3472
+
3473
+ #: includes/functions.php:764
3474
+ msgid "Eritrea"
3475
+ msgstr ""
3476
+
3477
+ #: includes/functions.php:765
3478
+ msgid "Estonia"
3479
+ msgstr ""
3480
+
3481
+ #: includes/functions.php:766
3482
+ msgid "Ethiopia"
3483
+ msgstr ""
3484
+
3485
+ #: includes/functions.php:767
3486
+ msgid "Falkland Islands"
3487
+ msgstr ""
3488
+
3489
+ #: includes/functions.php:768
3490
+ msgid "Faroe Islands"
3491
+ msgstr ""
3492
+
3493
+ #: includes/functions.php:769
3494
+ msgid "Fiji"
3495
+ msgstr ""
3496
+
3497
+ #: includes/functions.php:770
3498
+ msgid "Finland"
3499
+ msgstr ""
3500
+
3501
+ #: includes/functions.php:771
3502
+ #, fuzzy
3503
+ #| msgid "Cancel"
3504
+ msgid "France"
3505
+ msgstr "Annuler"
3506
+
3507
+ #: includes/functions.php:772
3508
+ msgid "French Guiana"
3509
+ msgstr ""
3510
+
3511
+ #: includes/functions.php:773
3512
+ msgid "French Polynesia"
3513
+ msgstr ""
3514
+
3515
+ #: includes/functions.php:774
3516
+ msgid "French Southern Territories"
3517
+ msgstr ""
3518
+
3519
+ #: includes/functions.php:775
3520
+ msgid "Gabon"
3521
+ msgstr ""
3522
+
3523
+ #: includes/functions.php:776
3524
+ msgid "Gambia"
3525
+ msgstr ""
3526
+
3527
+ #: includes/functions.php:778
3528
+ msgid "Germany"
3529
+ msgstr ""
3530
+
3531
+ #: includes/functions.php:779
3532
+ msgid "Ghana"
3533
+ msgstr ""
3534
+
3535
+ #: includes/functions.php:780
3536
+ msgid "Gibraltar"
3537
+ msgstr ""
3538
+
3539
+ #: includes/functions.php:781
3540
+ msgid "Greece"
3541
+ msgstr ""
3542
+
3543
+ #: includes/functions.php:782
3544
+ msgid "Greenland"
3545
+ msgstr ""
3546
+
3547
+ #: includes/functions.php:783
3548
+ msgid "Grenada"
3549
+ msgstr ""
3550
+
3551
+ #: includes/functions.php:784
3552
+ msgid "Guadeloupe"
3553
+ msgstr ""
3554
+
3555
+ #: includes/functions.php:785
3556
+ msgid "Guam"
3557
+ msgstr ""
3558
+
3559
+ #: includes/functions.php:786
3560
+ msgid "Guatemala"
3561
+ msgstr ""
3562
+
3563
+ #: includes/functions.php:787
3564
+ msgid "Guernsey"
3565
+ msgstr ""
3566
+
3567
+ #: includes/functions.php:788
3568
+ msgid "Guinea"
3569
+ msgstr ""
3570
+
3571
+ #: includes/functions.php:789
3572
+ msgid "Guinea-Bissau"
3573
+ msgstr ""
3574
+
3575
+ #: includes/functions.php:790
3576
+ msgid "Guyana"
3577
+ msgstr ""
3578
+
3579
+ #: includes/functions.php:791
3580
+ msgid "Haiti"
3581
+ msgstr ""
3582
+
3583
+ #: includes/functions.php:792
3584
+ msgid "Heard & McDonald Islands"
3585
+ msgstr ""
3586
+
3587
+ #: includes/functions.php:793
3588
+ msgid "Honduras"
3589
+ msgstr ""
3590
+
3591
+ #: includes/functions.php:794
3592
+ msgid "Hong Kong"
3593
+ msgstr ""
3594
+
3595
+ #: includes/functions.php:795
3596
+ msgid "Hungary"
3597
+ msgstr ""
3598
+
3599
+ #: includes/functions.php:796
3600
+ msgid "Iceland"
3601
+ msgstr ""
3602
+
3603
+ #: includes/functions.php:797
3604
+ msgid "India"
3605
+ msgstr ""
3606
+
3607
+ #: includes/functions.php:798
3608
+ msgid "Indonesia"
3609
+ msgstr ""
3610
+
3611
+ #: includes/functions.php:799
3612
+ msgid "Iran"
3613
+ msgstr ""
3614
+
3615
+ #: includes/functions.php:800
3616
+ msgid "Iraq"
3617
+ msgstr ""
3618
+
3619
+ #: includes/functions.php:801
3620
+ msgid "Ireland"
3621
+ msgstr ""
3622
+
3623
+ #: includes/functions.php:802
3624
+ msgid "Isle of Man"
3625
+ msgstr ""
3626
+
3627
+ #: includes/functions.php:803
3628
+ msgid "Israel"
3629
+ msgstr ""
3630
+
3631
+ #: includes/functions.php:804
3632
+ msgid "Italy"
3633
+ msgstr ""
3634
+
3635
+ #: includes/functions.php:805
3636
+ msgid "Jamaica"
3637
+ msgstr ""
3638
+
3639
+ #: includes/functions.php:806
3640
+ msgid "Japan"
3641
+ msgstr ""
3642
+
3643
+ #: includes/functions.php:807
3644
+ msgid "Jersey"
3645
+ msgstr ""
3646
+
3647
+ #: includes/functions.php:808
3648
+ msgid "Jordan"
3649
+ msgstr ""
3650
+
3651
+ #: includes/functions.php:809
3652
+ msgid "Kazakhstan"
3653
+ msgstr ""
3654
+
3655
+ #: includes/functions.php:810
3656
+ msgid "Kenya"
3657
+ msgstr ""
3658
+
3659
+ #: includes/functions.php:811
3660
+ msgid "Kiribati"
3661
+ msgstr ""
3662
+
3663
+ #: includes/functions.php:812
3664
+ msgid "Kosovo"
3665
+ msgstr ""
3666
+
3667
+ #: includes/functions.php:813
3668
+ msgid "Kuwait"
3669
+ msgstr ""
3670
+
3671
+ #: includes/functions.php:814
3672
+ msgid "Kyrgyzstan"
3673
+ msgstr ""
3674
+
3675
+ #: includes/functions.php:815
3676
+ msgid "Laos"
3677
+ msgstr ""
3678
+
3679
+ #: includes/functions.php:816
3680
+ msgid "Latvia"
3681
+ msgstr ""
3682
+
3683
+ #: includes/functions.php:817
3684
+ msgid "Lebanon"
3685
+ msgstr ""
3686
+
3687
+ #: includes/functions.php:818
3688
+ msgid "Lesotho"
3689
+ msgstr ""
3690
+
3691
+ #: includes/functions.php:819
3692
+ msgid "Liberia"
3693
+ msgstr ""
3694
+
3695
+ #: includes/functions.php:820
3696
+ msgid "Libya"
3697
+ msgstr ""
3698
+
3699
+ #: includes/functions.php:821
3700
+ msgid "Liechtenstein"
3701
+ msgstr ""
3702
+
3703
+ #: includes/functions.php:822
3704
+ msgid "Lithuania"
3705
+ msgstr ""
3706
+
3707
+ #: includes/functions.php:823
3708
+ msgid "Luxembourg"
3709
+ msgstr ""
3710
+
3711
+ #: includes/functions.php:824
3712
+ msgid "Macau"
3713
+ msgstr ""
3714
+
3715
+ #: includes/functions.php:825
3716
+ msgid "Macedonia (FYROM)"
3717
+ msgstr ""
3718
+
3719
+ #: includes/functions.php:826
3720
+ msgid "Madagascar"
3721
+ msgstr ""
3722
+
3723
+ #: includes/functions.php:827
3724
+ msgid "Malawi"
3725
+ msgstr ""
3726
+
3727
+ #: includes/functions.php:828
3728
+ msgid "Malaysia"
3729
+ msgstr ""
3730
+
3731
+ #: includes/functions.php:829
3732
+ msgid "Maldives"
3733
+ msgstr ""
3734
+
3735
+ #: includes/functions.php:830
3736
+ msgid "Mali"
3737
+ msgstr ""
3738
+
3739
+ #: includes/functions.php:831
3740
+ msgid "Malta"
3741
+ msgstr ""
3742
+
3743
+ #: includes/functions.php:832
3744
+ msgid "Marshall Islands"
3745
+ msgstr ""
3746
+
3747
+ #: includes/functions.php:833
3748
+ msgid "Martinique"
3749
+ msgstr ""
3750
+
3751
+ #: includes/functions.php:834
3752
+ msgid "Mauritania"
3753
+ msgstr ""
3754
+
3755
+ #: includes/functions.php:835
3756
+ msgid "Mauritius"
3757
+ msgstr ""
3758
+
3759
+ #: includes/functions.php:836
3760
+ msgid "Mayotte"
3761
+ msgstr ""
3762
+
3763
+ #: includes/functions.php:837
3764
+ msgid "Mexico"
3765
+ msgstr ""
3766
+
3767
+ #: includes/functions.php:838
3768
+ msgid "Micronesia"
3769
+ msgstr ""
3770
+
3771
+ #: includes/functions.php:839
3772
+ msgid "Moldova"
3773
+ msgstr ""
3774
+
3775
+ #: includes/functions.php:840
3776
+ msgid "Monaco"
3777
+ msgstr ""
3778
+
3779
+ #: includes/functions.php:841
3780
+ msgid "Mongolia"
3781
+ msgstr ""
3782
+
3783
+ #: includes/functions.php:842
3784
+ msgid "Montenegro"
3785
+ msgstr ""
3786
+
3787
+ #: includes/functions.php:843
3788
+ msgid "Montserrat"
3789
+ msgstr ""
3790
+
3791
+ #: includes/functions.php:844
3792
+ msgid "Morocco"
3793
+ msgstr ""
3794
+
3795
+ #: includes/functions.php:845
3796
+ msgid "Mozambique"
3797
+ msgstr ""
3798
+
3799
+ #: includes/functions.php:846
3800
+ msgid "Myanmar"
3801
+ msgstr ""
3802
+
3803
+ #: includes/functions.php:847
3804
+ msgid "Namibia"
3805
+ msgstr ""
3806
+
3807
+ #: includes/functions.php:848
3808
+ msgid "Nauru"
3809
+ msgstr ""
3810
+
3811
+ #: includes/functions.php:849
3812
+ msgid "Nepal"
3813
+ msgstr ""
3814
+
3815
+ #: includes/functions.php:850
3816
+ msgid "Netherlands"
3817
+ msgstr ""
3818
+
3819
+ #: includes/functions.php:851
3820
+ msgid "New Caledonia"
3821
+ msgstr ""
3822
+
3823
+ #: includes/functions.php:852
3824
+ msgid "New Zealand"
3825
+ msgstr ""
3826
+
3827
+ #: includes/functions.php:853
3828
+ msgid "Nicaragua"
3829
+ msgstr ""
3830
+
3831
+ #: includes/functions.php:854
3832
+ msgid "Niger"
3833
+ msgstr ""
3834
+
3835
+ #: includes/functions.php:855
3836
+ msgid "Nigeria"
3837
+ msgstr ""
3838
+
3839
+ #: includes/functions.php:856
3840
+ msgid "Niue"
3841
+ msgstr ""
3842
+
3843
+ #: includes/functions.php:857
3844
+ msgid "Norfolk Island"
3845
+ msgstr ""
3846
+
3847
+ #: includes/functions.php:858
3848
+ msgid "Northern Mariana Islands"
3849
+ msgstr ""
3850
+
3851
+ #: includes/functions.php:859
3852
+ msgid "North Korea"
3853
+ msgstr ""
3854
+
3855
+ #: includes/functions.php:860
3856
+ msgid "Norway"
3857
+ msgstr ""
3858
+
3859
+ #: includes/functions.php:861
3860
+ msgid "Oman"
3861
+ msgstr ""
3862
+
3863
+ #: includes/functions.php:862
3864
+ msgid "Pakistan"
3865
+ msgstr ""
3866
+
3867
+ #: includes/functions.php:863
3868
+ msgid "Palau"
3869
+ msgstr ""
3870
+
3871
+ #: includes/functions.php:864
3872
+ msgid "Palestine"
3873
+ msgstr ""
3874
+
3875
+ #: includes/functions.php:865
3876
+ msgid "Panama"
3877
+ msgstr ""
3878
+
3879
+ #: includes/functions.php:866
3880
+ msgid "Papua New Guinea"
3881
+ msgstr ""
3882
+
3883
+ #: includes/functions.php:867
3884
+ msgid "Paraguay"
3885
+ msgstr ""
3886
+
3887
+ #: includes/functions.php:868
3888
+ msgid "Peru"
3889
+ msgstr ""
3890
+
3891
+ #: includes/functions.php:869
3892
+ msgid "Philippines"
3893
+ msgstr ""
3894
+
3895
+ #: includes/functions.php:870
3896
+ msgid "Pitcairn Islands"
3897
+ msgstr ""
3898
+
3899
+ #: includes/functions.php:871
3900
+ msgid "Poland"
3901
+ msgstr ""
3902
+
3903
+ #: includes/functions.php:872
3904
+ msgid "Portugal"
3905
+ msgstr ""
3906
+
3907
+ #: includes/functions.php:873
3908
+ msgid "Puerto Rico"
3909
+ msgstr ""
3910
+
3911
+ #: includes/functions.php:874
3912
+ msgid "Qatar"
3913
+ msgstr ""
3914
+
3915
+ #: includes/functions.php:875
3916
+ msgid "Réunion"
3917
+ msgstr ""
3918
+
3919
+ #: includes/functions.php:876
3920
+ msgid "Romania"
3921
+ msgstr ""
3922
+
3923
+ #: includes/functions.php:877
3924
+ msgid "Russia"
3925
+ msgstr ""
3926
+
3927
+ #: includes/functions.php:878
3928
+ msgid "Rwanda"
3929
+ msgstr ""
3930
+
3931
+ #: includes/functions.php:879
3932
+ msgid "Saint Barthélemy"
3933
+ msgstr ""
3934
+
3935
+ #: includes/functions.php:880
3936
+ msgid "Saint Helena"
3937
+ msgstr ""
3938
+
3939
+ #: includes/functions.php:881
3940
+ msgid "Saint Kitts and Nevis"
3941
+ msgstr ""
3942
+
3943
+ #: includes/functions.php:882
3944
+ msgid "Saint Lucia"
3945
+ msgstr ""
3946
+
3947
+ #: includes/functions.php:883
3948
+ msgid "Saint Martin"
3949
+ msgstr ""
3950
+
3951
+ #: includes/functions.php:884
3952
+ msgid "Saint Pierre and Miquelon"
3953
+ msgstr ""
3954
+
3955
+ #: includes/functions.php:885
3956
+ msgid "Samoa"
3957
+ msgstr ""
3958
+
3959
+ #: includes/functions.php:886
3960
+ msgid "San Marino"
3961
+ msgstr ""
3962
+
3963
+ #: includes/functions.php:887
3964
+ msgid "São Tomé and Príncipe"
3965
+ msgstr ""
3966
+
3967
+ #: includes/functions.php:888
3968
+ msgid "Saudi Arabia"
3969
+ msgstr ""
3970
+
3971
+ #: includes/functions.php:889
3972
+ msgid "Senegal"
3973
+ msgstr ""
3974
+
3975
+ #: includes/functions.php:890
3976
+ msgid "Serbia"
3977
+ msgstr ""
3978
+
3979
+ #: includes/functions.php:891
3980
+ msgid "Seychelles"
3981
+ msgstr ""
3982
+
3983
+ #: includes/functions.php:892
3984
+ msgid "Sierra Leone"
3985
+ msgstr ""
3986
+
3987
+ #: includes/functions.php:893
3988
+ msgid "Singapore"
3989
+ msgstr ""
3990
+
3991
+ #: includes/functions.php:894
3992
+ msgid "Sint Maarten"
3993
+ msgstr ""
3994
+
3995
+ #: includes/functions.php:895
3996
+ msgid "Slovakia"
3997
+ msgstr ""
3998
+
3999
+ #: includes/functions.php:896
4000
+ msgid "Slovenia"
4001
+ msgstr ""
4002
+
4003
+ #: includes/functions.php:897
4004
+ msgid "Solomon Islands"
4005
+ msgstr ""
4006
+
4007
+ #: includes/functions.php:898
4008
+ msgid "Somalia"
4009
+ msgstr ""
4010
+
4011
+ #: includes/functions.php:899
4012
+ msgid "South Africa"
4013
+ msgstr ""
4014
+
4015
+ #: includes/functions.php:900
4016
+ msgid "South Georgia & South Sandwich Islands"
4017
+ msgstr ""
4018
+
4019
+ #: includes/functions.php:901
4020
+ msgid "South Korea"
4021
+ msgstr ""
4022
+
4023
+ #: includes/functions.php:902
4024
+ msgid "South Sudan"
4025
+ msgstr ""
4026
+
4027
+ #: includes/functions.php:903
4028
+ msgid "Spain"
4029
+ msgstr ""
4030
+
4031
+ #: includes/functions.php:904
4032
+ msgid "Sri Lanka"
4033
+ msgstr ""
4034
+
4035
+ #: includes/functions.php:905
4036
+ msgid "St. Vincent & Grenadines"
4037
+ msgstr ""
4038
+
4039
+ #: includes/functions.php:906
4040
+ msgid "Sudan"
4041
+ msgstr ""
4042
+
4043
+ #: includes/functions.php:907
4044
+ msgid "Suriname"
4045
+ msgstr ""
4046
+
4047
+ #: includes/functions.php:908
4048
+ msgid "Svalbard and Jan Mayen"
4049
+ msgstr ""
4050
+
4051
+ #: includes/functions.php:909
4052
+ msgid "Swaziland"
4053
+ msgstr ""
4054
+
4055
+ #: includes/functions.php:910
4056
+ msgid "Sweden"
4057
+ msgstr ""
4058
+
4059
+ #: includes/functions.php:911
4060
+ msgid "Switzerland"
4061
+ msgstr ""
4062
+
4063
+ #: includes/functions.php:912
4064
+ msgid "Syria"
4065
+ msgstr ""
4066
+
4067
+ #: includes/functions.php:913
4068
+ msgid "Taiwan"
4069
+ msgstr ""
4070
+
4071
+ #: includes/functions.php:914
4072
+ msgid "Tajikistan"
4073
+ msgstr ""
4074
+
4075
+ #: includes/functions.php:915
4076
+ msgid "Tanzania"
4077
+ msgstr ""
4078
+
4079
+ #: includes/functions.php:916
4080
+ msgid "Thailand"
4081
+ msgstr ""
4082
+
4083
+ #: includes/functions.php:917
4084
+ msgid "Timor-Leste"
4085
+ msgstr ""
4086
+
4087
+ #: includes/functions.php:918
4088
+ msgid "Togo"
4089
+ msgstr ""
4090
+
4091
+ #: includes/functions.php:919
4092
+ msgid "Tokelau"
4093
+ msgstr ""
4094
+
4095
+ #: includes/functions.php:920
4096
+ msgid "Tonga"
4097
+ msgstr ""
4098
+
4099
+ #: includes/functions.php:921
4100
+ msgid "Trinidad and Tobago"
4101
+ msgstr ""
4102
+
4103
+ #: includes/functions.php:922
4104
+ msgid "Tristan da Cunha"
4105
+ msgstr ""
4106
+
4107
+ #: includes/functions.php:923
4108
+ msgid "Tunisia"
4109
+ msgstr ""
4110
+
4111
+ #: includes/functions.php:924
4112
+ msgid "Turkey"
4113
+ msgstr ""
4114
+
4115
+ #: includes/functions.php:925
4116
+ msgid "Turkmenistan"
4117
+ msgstr ""
4118
+
4119
+ #: includes/functions.php:926
4120
+ msgid "Turks and Caicos Islands"
4121
+ msgstr ""
4122
+
4123
+ #: includes/functions.php:927
4124
+ msgid "Tuvalu"
4125
+ msgstr ""
4126
+
4127
+ #: includes/functions.php:928
4128
+ msgid "U.S. Outlying Islands"
4129
+ msgstr ""
4130
+
4131
+ #: includes/functions.php:929
4132
+ msgid "U.S. Virgin Islands"
4133
+ msgstr ""
4134
+
4135
+ #: includes/functions.php:930
4136
+ msgid "Uganda"
4137
+ msgstr ""
4138
+
4139
+ #: includes/functions.php:931
4140
+ msgid "Ukraine"
4141
+ msgstr ""
4142
+
4143
+ #: includes/functions.php:932
4144
+ msgid "United Arab Emirates"
4145
+ msgstr ""
4146
+
4147
+ #: includes/functions.php:933
4148
+ msgid "United Kingdom"
4149
+ msgstr ""
4150
+
4151
+ #: includes/functions.php:934
4152
+ msgid "United States"
4153
+ msgstr ""
4154
+
4155
+ #: includes/functions.php:935
4156
+ msgid "Uruguay"
4157
+ msgstr ""
4158
+
4159
+ #: includes/functions.php:936
4160
+ msgid "Uzbekistan"
4161
+ msgstr ""
4162
+
4163
+ #: includes/functions.php:937
4164
+ msgid "Vanuatu"
4165
+ msgstr ""
4166
+
4167
+ #: includes/functions.php:938
4168
+ msgid "Vatican City"
4169
+ msgstr ""
4170
+
4171
+ #: includes/functions.php:939
4172
+ msgid "Venezuela"
4173
+ msgstr ""
4174
+
4175
+ #: includes/functions.php:940
4176
+ msgid "Vietnam"
4177
+ msgstr ""
4178
+
4179
+ #: includes/functions.php:941
4180
+ msgid "Wallis and Futuna"
4181
+ msgstr ""
4182
+
4183
+ #: includes/functions.php:942
4184
+ msgid "Western Sahara"
4185
+ msgstr ""
4186
+
4187
+ #: includes/functions.php:943
4188
+ msgid "Yemen"
4189
+ msgstr ""
4190
+
4191
+ #: includes/functions.php:944
4192
+ msgid "Zambia"
4193
+ msgstr ""
4194
+
4195
+ #: includes/functions.php:945
4196
+ msgid "Zimbabwe"
4197
+ msgstr ""
4198
+
4199
+ #: includes/functions.php:960
4200
+ msgid "January"
4201
+ msgstr ""
4202
+
4203
+ #: includes/functions.php:961
4204
+ msgid "February"
4205
+ msgstr ""
4206
+
4207
+ #: includes/functions.php:962
4208
+ msgid "March"
4209
+ msgstr ""
4210
+
4211
+ #: includes/functions.php:963
4212
+ msgid "April"
4213
+ msgstr ""
4214
+
4215
+ #: includes/functions.php:964
4216
+ msgid "May"
4217
+ msgstr ""
4218
+
4219
+ #: includes/functions.php:965
4220
+ msgid "June"
4221
+ msgstr ""
4222
+
4223
+ #: includes/functions.php:966
4224
+ msgid "July"
4225
+ msgstr ""
4226
+
4227
+ #: includes/functions.php:967
4228
+ msgid "August"
4229
+ msgstr ""
4230
+
4231
+ #: includes/functions.php:968
4232
+ msgid "September"
4233
+ msgstr ""
4234
+
4235
+ #: includes/functions.php:969
4236
+ msgid "October"
4237
+ msgstr ""
4238
+
4239
+ #: includes/functions.php:970
4240
+ #, fuzzy
4241
+ #| msgid "Numbers"
4242
+ msgid "November"
4243
+ msgstr "Nombres"
4244
+
4245
+ #: includes/functions.php:971
4246
+ msgid "December"
4247
+ msgstr ""
4248
+
4249
+ #: includes/functions.php:986
4250
+ msgid "Sunday"
4251
+ msgstr ""
4252
+
4253
+ #: includes/functions.php:987
4254
+ msgid "Monday"
4255
+ msgstr ""
4256
+
4257
+ #: includes/functions.php:988
4258
+ msgid "Tuesday"
4259
+ msgstr ""
4260
+
4261
+ #: includes/functions.php:989
4262
+ msgid "Wednesday"
4263
+ msgstr ""
4264
+
4265
+ #: includes/functions.php:990
4266
+ msgid "Thursday"
4267
+ msgstr ""
4268
+
4269
+ #: includes/functions.php:991
4270
+ msgid "Friday"
4271
+ msgstr ""
4272
+
4273
+ #: includes/functions.php:992
4274
+ msgid "Saturday"
4275
+ msgstr ""
4276
+
4277
+ #: includes/integrations.php:32
4278
+ #, fuzzy
4279
+ #| msgid "Select a form to view entries"
4280
+ msgid "Select a form to display"
4281
+ msgstr "Sélectionner un formulaire pour afficher les entrées"
4282
+
4283
+ #: includes/integrations.php:39
4284
+ #, fuzzy
4285
+ #| msgid "No form ID found"
4286
+ msgid "No forms found"
4287
+ msgstr "Aucun ID de formulaire trouvé"
4288
+
4289
+ #: includes/integrations.php:48
4290
+ msgid "Content"
4291
+ msgstr ""
4292
+
4293
+ #: includes/integrations.php:49
4294
+ #, fuzzy
4295
+ #| msgid "Add Form"
4296
+ msgid "Add your form"
4297
+ msgstr "Ajouter un formulaire"
4298
+
4299
+ #: includes/integrations.php:57
4300
+ msgid "Select a form to add it to your post or page."
4301
+ msgstr ""
4302
+
4303
+ #: includes/integrations.php:62
4304
+ #, fuzzy
4305
+ #| msgid "Display form title"
4306
+ msgid "Display Form Name"
4307
+ msgstr "Afficher le titre du formulaire"
4308
+
4309
+ #: includes/integrations.php:65 includes/integrations.php:80
4310
+ #, fuzzy
4311
+ #| msgid "None"
4312
+ msgid "No"
4313
+ msgstr "Aucune"
4314
+
4315
+ #: includes/integrations.php:66 includes/integrations.php:81
4316
+ msgid "Yes"
4317
+ msgstr ""
4318
+
4319
+ #: includes/integrations.php:69
4320
+ msgid "Would you like to display the forms name?"
4321
+ msgstr ""
4322
+
4323
+ #: includes/integrations.php:77
4324
+ #, fuzzy
4325
+ #| msgid "Display form description"
4326
+ msgid "Display Form Description"
4327
+ msgstr "Afficher la description du formulaire"
4328
+
4329
+ #: includes/integrations.php:84
4330
+ #, fuzzy
4331
+ #| msgid "Display form description"
4332
+ msgid "Would you like to display the forms description?"
4333
+ msgstr "Afficher la description du formulaire"
4334
+
4335
+ #: includes/providers/class-base.php:93
4336
+ #, fuzzy
4337
+ #| msgid "Connect to"
4338
+ msgid "Connection"
4339
+ msgstr "Se connecter à"
4340
+
4341
+ #: includes/providers/class-base.php:163 includes/providers/class-base.php:1115
4342
+ #: includes/providers/class-base.php:1163
4343
+ msgid "You do not have permission"
4344
+ msgstr "Vous n&rsquo;avez pas d&rsquo;autorisation"
4345
+
4346
+ #: includes/providers/class-base.php:467
4347
+ #, fuzzy
4348
+ #| msgid "Full"
4349
+ msgctxt "Name field label"
4350
+ msgid "%s (Full)"
4351
+ msgstr "Complet"
4352
+
4353
+ #: includes/providers/class-base.php:478
4354
+ #, fuzzy
4355
+ #| msgid "First"
4356
+ msgctxt "Name field label"
4357
+ msgid "%s (First)"
4358
+ msgstr "Prénom"
4359
+
4360
+ #: includes/providers/class-base.php:490
4361
+ #, fuzzy
4362
+ #| msgid "Middle"
4363
+ msgctxt "Name field label"
4364
+ msgid "%s (Middle)"
4365
+ msgstr "Second prénom"
4366
+
4367
+ #: includes/providers/class-base.php:502
4368
+ #, fuzzy
4369
+ #| msgid "First Last"
4370
+ msgctxt "Name field label"
4371
+ msgid "%s (Last)"
4372
+ msgstr "Prénom Nom"
4373
+
4374
+ #: includes/providers/class-base.php:701
4375
+ msgid "Select Account"
4376
+ msgstr "Sélectionner le compte"
4377
+
4378
+ #: includes/providers/class-base.php:713
4379
+ #: includes/providers/class-constant-contact.php:490
4380
+ msgid "Add New Account"
4381
+ msgstr "Ajouter un nouveau compte"
4382
+
4383
+ #: includes/providers/class-base.php:746
4384
+ msgid "Select List"
4385
+ msgstr "Sélectionner une liste"
4386
+
4387
+ #: includes/providers/class-base.php:792
4388
+ msgid "Select Groups"
4389
+ msgstr "Sélectionner les groupes"
4390
+
4391
+ #: includes/providers/class-base.php:794
4392
+ msgid ""
4393
+ "We also noticed that you have some segments in your list. You can select "
4394
+ "specific list segments below if needed. This is optional."
4395
+ msgstr ""
4396
+ "Nous avons également remarqué que vous avez certains segments dans votre "
4397
+ "liste. Vous pouvez sélectionner une liste spécifique de segments ci-dessous "
4398
+ "si nécessaire. Ceci est optionnel."
4399
+
4400
+ #: includes/providers/class-base.php:854 includes/providers/class-base.php:859
4401
+ msgid "List Fields"
4402
+ msgstr "Liste des champs"
4403
+
4404
+ #: includes/providers/class-base.php:859
4405
+ msgid "Available Form Fields"
4406
+ msgstr "Champs de formulaire disponibles"
4407
+
4408
+ #: includes/providers/class-base.php:933
4409
+ msgid "Process"
4410
+ msgstr ""
4411
+
4412
+ #: includes/providers/class-base.php:934
4413
+ msgid "Don't process"
4414
+ msgstr ""
4415
+
4416
+ #: includes/providers/class-base.php:936
4417
+ #, fuzzy
4418
+ #| msgid "Disconnect "
4419
+ msgid "this connection if"
4420
+ msgstr "Déconnecter"
4421
+
4422
+ #: includes/providers/class-base.php:937
4423
+ msgid "Marketing provider connection"
4424
+ msgstr ""
4425
+
4426
+ #: includes/providers/class-base.php:1051
4427
+ #, fuzzy
4428
+ #| msgid "Add New"
4429
+ msgctxt "Provider Type"
4430
+ msgid "Add New %s"
4431
+ msgstr "Nouveau"
4432
+
4433
+ #: includes/providers/class-base.php:1123
4434
+ #: includes/providers/class-base.php:1171
4435
+ msgid "Missing data"
4436
+ msgstr "Donnée manquante"
4437
+
4438
+ #: includes/providers/class-base.php:1139
4439
+ msgid "Connection missing"
4440
+ msgstr "Connexion manquante"
4441
+
4442
+ #: includes/providers/class-base.php:1183
4443
+ msgid "Could not connect to the provider."
4444
+ msgstr ""
4445
+
4446
+ #: includes/providers/class-base.php:1192
4447
+ #: includes/providers/class-base.php:1265
4448
+ #, fuzzy
4449
+ #| msgid "Connected on: "
4450
+ msgctxt "Connection date"
4451
+ msgid "Connected on: %s"
4452
+ msgstr "Connecté sur&nbsp;:"
4453
+
4454
+ #: includes/providers/class-base.php:1193
4455
+ #: includes/providers/class-base.php:1266
4456
+ #, fuzzy
4457
+ #| msgid "Disconnect "
4458
+ msgid "Disconnect"
4459
+ msgstr "Déconnecter"
4460
+
4461
+ #. translators: %s - provider name.
4462
+ #: includes/providers/class-base.php:1221
4463
+ #, fuzzy
4464
+ #| msgid "Connect to"
4465
+ msgid "Connect to %s"
4466
+ msgstr "Se connecter à"
4467
+
4468
+ #. translators: %s - provider name.
4469
+ #: includes/providers/class-base.php:1248
4470
+ #, fuzzy
4471
+ #| msgid "Getting started with WPForms"
4472
+ msgid "Integrate %s with WPForms"
4473
+ msgstr "Guide de démarrage de WPForms"
4474
+
4475
+ #: includes/providers/class-base.php:1251
4476
+ msgid "Connected"
4477
+ msgstr "Connecté"
4478
+
4479
+ #: includes/providers/class-base.php:1276
4480
+ #, fuzzy
4481
+ #| msgid "Add New Account"
4482
+ msgctxt "New Provider Account"
4483
+ msgid "Add New Account"
4484
+ msgstr "Ajouter un nouveau compte"
4485
+
4486
+ #: includes/providers/class-base.php:1283
4487
+ msgid ""
4488
+ "Please fill out all of the fields below to add your new provider account."
4489
+ msgstr ""
4490
+ "Veuillez remplir tous les champs ci-dessous pour ajouter votre nouveau "
4491
+ "compte de fournisseur."
4492
+
4493
+ #: includes/providers/class-constant-contact.php:116
4494
+ msgid "Constant Contact Subscription stopped by conditional logic"
4495
+ msgstr ""
4496
+
4497
+ #: includes/providers/class-constant-contact.php:134
4498
+ #: includes/providers/class-constant-contact.php:305
4499
+ #: includes/providers/class-constant-contact.php:392
4500
+ msgid "Constant Contact API Error"
4501
+ msgstr ""
4502
+
4503
+ #: includes/providers/class-constant-contact.php:493
4504
+ #, fuzzy
4505
+ #| msgid ""
4506
+ #| "Please fill out all of the fields below to add your new provider account."
4507
+ msgid ""
4508
+ "Please fill out all of the fields below to register your new Constant "
4509
+ "Contact account."
4510
+ msgstr ""
4511
+ "Veuillez remplir tous les champs ci-dessous pour ajouter votre nouveau "
4512
+ "compte de fournisseur."
4513
+
4514
+ #: includes/providers/class-constant-contact.php:495
4515
+ #: includes/providers/class-constant-contact.php:573
4516
+ msgid ""
4517
+ "Click here for documentation on connecting WPForms with Constant Contact."
4518
+ msgstr ""
4519
+
4520
+ #: includes/providers/class-constant-contact.php:500
4521
+ #: includes/providers/class-constant-contact.php:578
4522
+ msgid ""
4523
+ "Because Constant Contact requires external authentication, you will need to "
4524
+ "register WPForms with Constant Contact before you can proceed."
4525
+ msgstr ""
4526
+
4527
+ #: includes/providers/class-constant-contact.php:504
4528
+ #: includes/providers/class-constant-contact.php:582
4529
+ msgid "Click here to register with Constant Contact"
4530
+ msgstr ""
4531
+
4532
+ #: includes/providers/class-constant-contact.php:507
4533
+ #: includes/providers/class-constant-contact.php:585
4534
+ msgid "Authorization Code"
4535
+ msgstr ""
4536
+
4537
+ #: includes/providers/class-constant-contact.php:509
4538
+ #: includes/providers/class-constant-contact.php:587
4539
+ msgid "Account Nickname"
4540
+ msgstr ""
4541
+
4542
+ #: includes/providers/class-constant-contact.php:511
4543
+ #, fuzzy
4544
+ #| msgid "Connected"
4545
+ msgid "Connect"
4546
+ msgstr "Connecté"
4547
+
4548
+ #: includes/providers/class-constant-contact.php:548
4549
+ msgid ""
4550
+ "Get the most out of <strong>WPForms</strong> &mdash; use it with an active "
4551
+ "Constant Contact account."
4552
+ msgstr ""
4553
+
4554
+ #: includes/providers/class-constant-contact.php:551
4555
+ #: includes/providers/class-constant-contact.php:637
4556
+ msgid "Try Constant Contact for Free"
4557
+ msgstr ""
4558
+
4559
+ #: includes/providers/class-constant-contact.php:552
4560
+ msgid ""
4561
+ "Learn More about the <a href=\"%s\" target=\"_blank\" rel=\"noopener "
4562
+ "noreferrer\">power of email marketing</a>"
4563
+ msgstr ""
4564
+
4565
+ #: includes/providers/class-constant-contact.php:634
4566
+ msgid ""
4567
+ "Get the most out of the <strong>WPForms</strong> plugin &mdash; use it with "
4568
+ "an active Constant Contact account."
4569
+ msgstr ""
4570
+
4571
+ #: includes/providers/class-constant-contact.php:638
4572
+ msgid "Connect your existing account"
4573
+ msgstr ""
4574
+
4575
+ #: includes/providers/class-constant-contact.php:639
4576
+ msgid "Learn More about the <a href=\"%s\">power of email marketing</a>"
4577
+ msgstr ""
4578
+
4579
+ #: includes/providers/class-constant-contact.php:697
4580
+ msgid "Grow Your Website with WPForms + Email Marketing"
4581
+ msgstr ""
4582
+
4583
+ #: includes/providers/class-constant-contact.php:698
4584
+ msgid "Wondering if email marketing is really worth your time?"
4585
+ msgstr ""
4586
+
4587
+ #: includes/providers/class-constant-contact.php:699
4588
+ msgid ""
4589
+ "Email is hands-down the most effective way to nurture leads and turn them "
4590
+ "into customers, with a return on investment (ROI) of <strong>$44 back for "
4591
+ "every $1 spent</strong> according to Direct Marketing Association."
4592
+ msgstr ""
4593
+
4594
+ #: includes/providers/class-constant-contact.php:700
4595
+ msgid ""
4596
+ "Here are 3 big reasons why every smart business in the world has an email "
4597
+ "list:"
4598
+ msgstr ""
4599
+
4600
+ #: includes/providers/class-constant-contact.php:704
4601
+ msgid ""
4602
+ "<strong>Email is still #1</strong> - At least 91% of consumers check their "
4603
+ "email on a daily basis. You get direct access to your subscribers, without "
4604
+ "having to play by social media&#39;s rules and algorithms."
4605
+ msgstr ""
4606
+
4607
+ #: includes/providers/class-constant-contact.php:705
4608
+ msgid ""
4609
+ "<strong>You own your email list</strong> - Unlike with social media, your "
4610
+ "list is your property and no one can revoke your access to it."
4611
+ msgstr ""
4612
+
4613
+ #: includes/providers/class-constant-contact.php:706
4614
+ msgid ""
4615
+ "<strong>Email converts</strong> - People who buy products marketed through "
4616
+ "email spend 138% more than those who don&#39;t receive email offers."
4617
+ msgstr ""
4618
+
4619
+ #: includes/providers/class-constant-contact.php:708
4620
+ msgid ""
4621
+ "That&#39;s why it&#39;s crucial to start collecting email addresses and "
4622
+ "building your list as soon as possible."
4623
+ msgstr ""
4624
+
4625
+ #: includes/providers/class-constant-contact.php:709
4626
+ msgid ""
4627
+ "For more details, see this guide on <a href=\"%s\" target=\"_blank\" rel="
4628
+ "\"noopener noreferrer\">why building your email list is so important</a>."
4629
+ msgstr ""
4630
+
4631
+ #: includes/providers/class-constant-contact.php:711
4632
+ msgid "You&#39;ve Already Started - Here&#39;s the Next Step (It&#39;s Easy)"
4633
+ msgstr ""
4634
+
4635
+ #: includes/providers/class-constant-contact.php:712
4636
+ msgid "Here are the 3 things you need to build an email list:"
4637
+ msgstr ""
4638
+
4639
+ #: includes/providers/class-constant-contact.php:714
4640
+ #, fuzzy
4641
+ #| msgid "Website / URL"
4642
+ msgid "A Website or Blog"
4643
+ msgstr "Site internet / URL"
4644
+
4645
+ #: includes/providers/class-constant-contact.php:715
4646
+ msgid "High-Converting Form Builder"
4647
+ msgstr ""
4648
+
4649
+ #: includes/providers/class-constant-contact.php:716
4650
+ msgid "The Best Email Marketing Service"
4651
+ msgstr ""
4652
+
4653
+ #: includes/providers/class-constant-contact.php:718
4654
+ msgid ""
4655
+ "With a powerful email marketing service like Constant Contact, you can "
4656
+ "instantly send out mass notifications and beautifully designed newsletters "
4657
+ "to engage your subscribers."
4658
+ msgstr ""
4659
+
4660
+ #: includes/providers/class-constant-contact.php:720
4661
+ msgid "Get Started with Constant Contact for Free"
4662
+ msgstr ""
4663
+
4664
+ #: includes/providers/class-constant-contact.php:721
4665
+ msgid ""
4666
+ "WPForms plugin makes it fast and easy to capture all kinds of visitor "
4667
+ "information right from your WordPress site - even if you don&#39;t have a "
4668
+ "Constant Contact account."
4669
+ msgstr ""
4670
+
4671
+ #: includes/providers/class-constant-contact.php:722
4672
+ msgid ""
4673
+ "But when you combine WPForms with Constant Contact, you can nurture your "
4674
+ "contacts and engage with them even after they leave your website. When you "
4675
+ "use Constant Contact + WPForms together, you can:"
4676
+ msgstr ""
4677
+
4678
+ #: includes/providers/class-constant-contact.php:724
4679
+ msgid "Seamlessly add new contacts to your email list"
4680
+ msgstr ""
4681
+
4682
+ #: includes/providers/class-constant-contact.php:725
4683
+ msgid "Create and send professional email newsletters"
4684
+ msgstr ""
4685
+
4686
+ #: includes/providers/class-constant-contact.php:726
4687
+ msgid "Get expert marketing and support"
4688
+ msgstr ""
4689
+
4690
+ #: includes/providers/class-constant-contact.php:729
4691
+ msgid "Try Constant Contact Today"
4692
+ msgstr ""
4693
+
4694
+ #: includes/providers/class-constant-contact.php:731
4695
+ msgid "WPForms Makes List Building Easy"
4696
+ msgstr ""
4697
+
4698
+ #: includes/providers/class-constant-contact.php:732
4699
+ msgid ""
4700
+ "When creating WPForms, our goal was to make a WordPress forms plugin "
4701
+ "that&#39;s both EASY and POWERFUL."
4702
+ msgstr ""
4703
+
4704
+ #: includes/providers/class-constant-contact.php:733
4705
+ msgid ""
4706
+ "We made the form creation process extremely intuitive, so you can create a "
4707
+ "form to start capturing emails within 5 minutes or less."
4708
+ msgstr ""
4709
+
4710
+ #: includes/providers/class-constant-contact.php:734
4711
+ msgid "Here&#39;s how it works."
4712
+ msgstr ""
4713
+
4714
+ #: includes/providers/class-constant-contact.php:738
4715
+ msgid "1. Select from our pre-built templates, or create a form from scratch."
4716
+ msgstr ""
4717
+
4718
+ #: includes/providers/class-constant-contact.php:742
4719
+ msgid "2. Drag and drop any field you want onto your signup form."
4720
+ msgstr ""
4721
+
4722
+ #: includes/providers/class-constant-contact.php:746
4723
+ msgid "3. Connect your Constant Contact email list."
4724
+ msgstr ""
4725
+
4726
+ #: includes/providers/class-constant-contact.php:750
4727
+ msgid "4. Add your new form to any post, page, or sidebar."
4728
+ msgstr ""
4729
+
4730
+ #: includes/providers/class-constant-contact.php:753
4731
+ msgid ""
4732
+ "It doesn&#39;t matter what kind of business you run, what kind of website "
4733
+ "you have, or what industry you are in - you need to start building your "
4734
+ "email list today."
4735
+ msgstr ""
4736
+
4737
+ #: includes/providers/class-constant-contact.php:754
4738
+ msgid "With Constant Contact + WPForms, growing your list is easy."
4739
+ msgstr ""
4740
+
4741
+ #: includes/templates/class-blank.php:21
4742
+ msgid "Blank Form"
4743
+ msgstr "Formulaire vierge"
4744
+
4745
+ #: includes/templates/class-blank.php:23
4746
+ msgid ""
4747
+ "The blank form allows you to create any type of form using our drag & drop "
4748
+ "builder."
4749
+ msgstr ""
4750
+ "Le formulaire vierge permet de créer n&rsquo;importe quel type de formulaire "
4751
+ "à l&rsquo;aide de notre constructeur par glisser / déposer."
4752
+
4753
+ #: includes/templates/class-blank.php:34
4754
+ #: includes/templates/class-contact.php:66
4755
+ #: includes/templates/class-subscribe.php:52
4756
+ #: includes/templates/class-suggestion.php:91
4757
+ #: pro/includes/templates/class-donation.php:66
4758
+ #: pro/includes/templates/class-order.php:100
4759
+ #: pro/includes/templates/class-request-quote.php:70
4760
+ msgid "Sending..."
4761
+ msgstr ""
4762
+
4763
+ #: includes/templates/class-contact.php:21
4764
+ msgid "Simple Contact Form"
4765
+ msgstr "Formulaire de contact simple"
4766
+
4767
+ #: includes/templates/class-contact.php:23
4768
+ msgid ""
4769
+ "Allow your users to contact you with this simple contact form. You can add "
4770
+ "and remove fields as needed."
4771
+ msgstr ""
4772
+ "Permet à vos visiteurs de vous contacter depuis ce simple formulaire de "
4773
+ "contact. Vous pouvez ajouter et supprimer des champs à votre convenance."
4774
+
4775
+ #: includes/templates/class-contact.php:48
4776
+ #: pro/includes/templates/class-donation.php:58
4777
+ #: pro/includes/templates/class-order.php:92
4778
+ #, fuzzy
4779
+ #| msgid "Confirmation Message"
4780
+ msgid "Comment or Message"
4781
+ msgstr "Message de confirmation"
4782
+
4783
+ #: includes/templates/class-subscribe.php:21
4784
+ msgid "Newsletter Signup Form"
4785
+ msgstr "Formulaire d’inscription à une lettre d&rsquo;information"
4786
+
4787
+ #: includes/templates/class-subscribe.php:23
4788
+ msgid ""
4789
+ "Add subscribers and grow your email list with this newsletter signup form. "
4790
+ "You can add and remove fields as needed."
4791
+ msgstr ""
4792
+ "Aquérir des abonnés et faire croître votre liste d&rsquo;e-mails avec ce "
4793
+ "formulaire d&rsquo;inscription de lettre d&rsquo;information. Vous pouvez "
4794
+ "ajouter et supprimer des champs à votre convenance."
4795
+
4796
+ #: includes/templates/class-subscribe.php:28
4797
+ #: pro/includes/templates/class-donation.php:27
4798
+ #: pro/includes/templates/class-order.php:27
4799
+ msgid "Don&#39;t Forget"
4800
+ msgstr "Ne pas oublier"
4801
+
4802
+ #: includes/templates/class-subscribe.php:29
4803
+ msgid "Click the marketing tab to configure your newsletter service provider"
4804
+ msgstr ""
4805
+ "Cliquer sur l&rsquo;onglet marketing pour configurer votre fournisseur de "
4806
+ "service de lettre d&rsquo;information"
4807
+
4808
+ #: includes/templates/class-suggestion.php:21
4809
+ #, fuzzy
4810
+ #| msgid "Donation Form"
4811
+ msgid "Suggestion Form"
4812
+ msgstr "Formulaire de don"
4813
+
4814
+ #: includes/templates/class-suggestion.php:23
4815
+ #, fuzzy
4816
+ #| msgid ""
4817
+ #| "Allow your users to contact you with this simple contact form. You can "
4818
+ #| "add and remove fields as needed."
4819
+ msgid ""
4820
+ "Ask your users for suggestions with this simple form template. You can add "
4821
+ "and remove fields as needed."
4822
+ msgstr ""
4823
+ "Permet à vos visiteurs de vous contacter depuis ce simple formulaire de "
4824
+ "contact. Vous pouvez ajouter et supprimer des champs à votre convenance."
4825
+
4826
+ #: includes/templates/class-suggestion.php:42
4827
+ msgid "Please enter your email, so we can follow up with you."
4828
+ msgstr ""
4829
+
4830
+ #: includes/templates/class-suggestion.php:49
4831
+ msgid "Which department do you have a suggestion for?"
4832
+ msgstr ""
4833
+
4834
+ #: includes/templates/class-suggestion.php:52
4835
+ msgid "Sales"
4836
+ msgstr ""
4837
+
4838
+ #: includes/templates/class-suggestion.php:55
4839
+ msgid "Customer Support"
4840
+ msgstr ""
4841
+
4842
+ #: includes/templates/class-suggestion.php:58
4843
+ msgid "Product Development"
4844
+ msgstr ""
4845
+
4846
+ #: includes/templates/class-suggestion.php:69
4847
+ #, fuzzy
4848
+ #| msgid "Email Subject"
4849
+ msgid "Subject"
4850
+ msgstr "Sujet de l&rsquo;e-mail"
4851
+
4852
+ #: lite/wpforms-lite.php:53
4853
+ msgid "New %s Entry"
4854
+ msgstr "Nouvelle entrée %s"
4855
+
4856
+ #: lite/wpforms-lite.php:92 pro/wpforms-pro.php:471
4857
+ msgid "Send To Email Address"
4858
+ msgstr "Envoyer à l&rsquo;adresse de messagerie"
4859
+
4860
+ #: lite/wpforms-lite.php:95 pro/wpforms-pro.php:474
4861
+ #, fuzzy
4862
+ #| msgid ""
4863
+ #| "Enter the email address to receive form entry notifications. For multiple "
4864
+ #| "notifications, seperate email addresses with a comma."
4865
+ msgid ""
4866
+ "Enter the email address to receive form entry notifications. For multiple "
4867
+ "notifications, separate email addresses with a comma."
4868
+ msgstr ""
4869
+ "Saisisser l&rsquo;adresse de messagerie pour recevoir des notifications "
4870
+ "d&rsquo;entrée de formulaire. Pour les notifications multiples, séparez les "
4871
+ "adresses de messagerie par une virgule."
4872
+
4873
+ #: lite/wpforms-lite.php:111 pro/wpforms-pro.php:490
4874
+ msgid "CC"
4875
+ msgstr ""
4876
+
4877
+ #: lite/wpforms-lite.php:127 pro/wpforms-pro.php:506
4878
+ msgid "Email Subject"
4879
+ msgstr "Sujet de l&rsquo;e-mail"
4880
+
4881
+ #: lite/wpforms-lite.php:129 pro/wpforms-pro.php:508
4882
+ #, fuzzy
4883
+ #| msgid "New Entry: "
4884
+ msgctxt "Form name"
4885
+ msgid "New Entry: %s"
4886
+ msgstr "Nouvelle entrée&nbsp;:"
4887
+
4888
+ #: lite/wpforms-lite.php:142 pro/wpforms-pro.php:521
4889
+ msgid "From Name"
4890
+ msgstr "&laquo;&nbsp;Depuis&nbsp;&raquo; nom"
4891
+
4892
+ #: lite/wpforms-lite.php:158 pro/wpforms-pro.php:537
4893
+ #, fuzzy
4894
+ #| msgid "Email"
4895
+ msgid "From Email"
4896
+ msgstr "Adresse de contact"
4897
+
4898
+ #: lite/wpforms-lite.php:174 pro/wpforms-pro.php:553
4899
+ msgid "Reply-To"
4900
+ msgstr "&laquo;&nbsp;Répondre à&nbsp;&raquo;"
4901
+
4902
+ #: lite/wpforms-lite.php:199 pro/wpforms-pro.php:578
4903
+ msgid ""
4904
+ "To display all form fields, use the <code>{all_fields}</code> Smart Tag."
4905
+ msgstr ""
4906
+
4907
+ #: lite/wpforms-lite.php:215 pro/includes/templates/class-request-quote.php:20
4908
+ msgid "Request A Quote Form"
4909
+ msgstr "Formulaire de demande de devis"
4910
+
4911
+ #: lite/wpforms-lite.php:217 pro/includes/templates/class-request-quote.php:22
4912
+ msgid ""
4913
+ "Start collecting leads with this pre-made Request a quote form. You can add "
4914
+ "and remove fields as needed."
4915
+ msgstr ""
4916
+ "Collecter des prospects avec ce formulaire de devis prêt à l&rsquo;emploi. "
4917
+ "Vous pouvez ajouter et supprimer des champs à votre convenance."
4918
+
4919
+ #: lite/wpforms-lite.php:220 pro/includes/templates/class-donation.php:20
4920
+ msgid "Donation Form"
4921
+ msgstr "Formulaire de don"
4922
+
4923
+ #: lite/wpforms-lite.php:222 pro/includes/templates/class-donation.php:22
4924
+ msgid ""
4925
+ "Start collecting donation payments on your website with this ready-made "
4926
+ "Donation form. You can add and remove fields as needed."
4927
+ msgstr ""
4928
+ "Commencer à collecter des paiements de donation sur votre site avec ce "
4929
+ "formulaire de donation prêt à l&rsquo;emploi. Vous pouvez ajouter ou "
4930
+ "supprimer des champs à votre convenance."
4931
+
4932
+ #: lite/wpforms-lite.php:225 pro/includes/templates/class-order.php:20
4933
+ msgid "Billing / Order Form"
4934
+ msgstr "Formulaire de facturation / commande"
4935
+
4936
+ #: lite/wpforms-lite.php:227
4937
+ msgid ""
4938
+ "Collect payments for product and service orders with this ready-made form "
4939
+ "template. You can add and remove fields as needed."
4940
+ msgstr ""
4941
+ "Encaisser des paiements pour les commandes de produits et de services avec "
4942
+ "ce modèle de formulaire prêt à l&rsquo;emploi. Vous pouvez ajouter et "
4943
+ "supprimer des champs à votre convenance."
4944
+
4945
+ #: lite/wpforms-lite.php:232
4946
+ #, fuzzy
4947
+ #| msgid "Unlock More Features..."
4948
+ msgid "Unlock Pre-Made Form Templates"
4949
+ msgstr "Débloquer plus de fonctionnalités..."
4950
+
4951
+ #: lite/wpforms-lite.php:232 pro/includes/admin/class-upgrades.php:284
4952
+ #, fuzzy
4953
+ #| msgid "Upgrade Now"
4954
+ msgid "Upgrade"
4955
+ msgstr "Mise à niveau"
4956
+
4957
+ #: lite/wpforms-lite.php:235
4958
+ msgid ""
4959
+ "While WPForms Lite allows you to create any type of form, you can speed up "
4960
+ "the process by unlocking our other pre-built form templates among other "
4961
+ "features, so you never have to start from scratch again..."
4962
+ msgstr ""
4963
+
4964
+ #: lite/wpforms-lite.php:384
4965
+ #: pro/includes/admin/builder/panels/class-payments.php:21
4966
+ #: pro/wpforms-pro.php:156 pro/wpforms-pro.php:227
4967
+ msgid "Payments"
4968
+ msgstr "Paiements"
4969
+
4970
+ #: lite/wpforms-lite.php:408
4971
+ #, fuzzy
4972
+ #| msgid "See all Features"
4973
+ msgid "is a PRO Feature"
4974
+ msgstr "Voir toutes les fonctionnalités"
4975
+
4976
+ #: lite/wpforms-lite.php:409
4977
+ msgid ""
4978
+ "We're sorry, %name% is not available on your plan.<br><br>Please upgrade to "
4979
+ "the PRO plan to unlock all these awesome features."
4980
+ msgstr ""
4981
+
4982
+ #: pro/includes/admin/ajax-actions.php:24
4983
+ msgid "Addon deactivated."
4984
+ msgstr "Extension désactivée."
4985
+
4986
+ #: pro/includes/admin/ajax-actions.php:26
4987
+ msgid "Could not deactivate addon. Please deacticate from the Plugins page."
4988
+ msgstr ""
4989
+ "Impossible de désactiver l&rsquo;extension. Veuillez la désactiver depuis la "
4990
+ "page des extensions."
4991
+
4992
+ #: pro/includes/admin/ajax-actions.php:47
4993
+ msgid "Addon activated."
4994
+ msgstr "Extension activée."
4995
+
4996
+ #: pro/includes/admin/ajax-actions.php:51
4997
+ msgid "Could not activate addon. Please activate from the Plugins page."
4998
+ msgstr ""
4999
+ "Impossible d&rsquo;activer l&rsquo;extension. Veuillez l&rsquo;activer "
5000
+ "depuis la page des extensions."
5001
+
5002
+ #: pro/includes/admin/ajax-actions.php:67
5003
+ #: pro/includes/admin/ajax-actions.php:86
5004
+ #: pro/includes/admin/ajax-actions.php:89
5005
+ #: pro/includes/admin/ajax-actions.php:115
5006
+ msgid ""
5007
+ "Could not install addon. Please download from wpforms.com and install "
5008
+ "manually."
5009
+ msgstr ""
5010
+ "Impossible d&rsquo;installer l&rsquo;extension. Veuillez la télécharger "
5011
+ "depuis wpforms.com et l&rsquo;installer manuellement."
5012
+
5013
+ #: pro/includes/admin/ajax-actions.php:109
5014
+ msgid "Addon installed."
5015
+ msgstr "Extension installée."
5016
+
5017
+ #: pro/includes/admin/ajax-actions.php:224
5018
+ #: pro/includes/admin/ajax-actions.php:269
5019
+ #, fuzzy
5020
+ #| msgid "Please enter a license key to verify."
5021
+ msgid "Please enter a license key."
5022
+ msgstr "Veuillez saisir une clé de licence pour vérification."
5023
+
5024
+ #: pro/includes/admin/builder/panels/class-payments.php:71
5025
+ msgid "Install Your Payment Integration"
5026
+ msgstr "Installer votre intégration de paiement"
5027
+
5028
+ #: pro/includes/admin/builder/panels/class-payments.php:72
5029
+ #, fuzzy
5030
+ #| msgid ""
5031
+ #| "It seems you do not have any payment add-ons activated. You can head over "
5032
+ #| "to the <a href=\"%s\">Add-Ons page</a> to install and activate the add-on "
5033
+ #| "for your payment service."
5034
+ msgid ""
5035
+ "It seems you do not have any payment addons activated. You can head over to "
5036
+ "the <a href=\"%s\">Addons page</a> to install and activate the addon for "
5037
+ "your payment service."
5038
+ msgstr ""
5039
+ "Il semble que vous n&rsquo;avez aucun module de paiement activé. Vous pouvez "
5040
+ "vous rendre sur la <a href=\"%s\">page Extensions</a> pour installer et "
5041
+ "activer l&rsquo;extension pour votre service de paiement."
5042
+
5043
+ #: pro/includes/admin/builder/panels/class-payments.php:78
5044
+ msgid "Select Your Payment Integration"
5045
+ msgstr "Sélectionner votre intégration de paiement"
5046
+
5047
+ #: pro/includes/admin/builder/panels/class-payments.php:79
5048
+ #, fuzzy
5049
+ #| msgid ""
5050
+ #| "Select your email payment provider provider from the options on the left. "
5051
+ #| "If you don't see your payment service listed, then let us know and we'll "
5052
+ #| "do our best to get it added as fast as possible"
5053
+ msgid ""
5054
+ "Select your payment provider from the options on the left. If you don't see "
5055
+ "your payment service listed, then let us know and we'll do our best to get "
5056
+ "it added as fast as possible."
5057
+ msgstr ""
5058
+ "Sélectionner votre fournisseur d&rsquo;e-mail de paiement depuis les options "
5059
+ "sur la gauche. Si vous ne voyez pas votre service de paiement listé, faites "
5060
+ "le nous savoir et nous ferons de notre mieux pour l&rsquo;ajouter aussi "
5061
+ "rapidement que possible"
5062
+
5063
+ #: pro/includes/admin/class-addons.php:84
5064
+ msgid "Refresh Addons"
5065
+ msgstr "Actualiser les extensions"
5066
+
5067
+ #: pro/includes/admin/class-addons.php:90
5068
+ msgid ""
5069
+ "There was an issue retrieving the addons for this site. Please click on the "
5070
+ "button above the refresh the addons data."
5071
+ msgstr ""
5072
+ "Il y a eu un problème en récupérant les extensions pour ce site. Cliquer sur "
5073
+ "le bouton ci-dessous pour actualiser les données des extensions."
5074
+
5075
+ #: pro/includes/admin/class-addons.php:96
5076
+ msgid ""
5077
+ "In order to get access to Addons, you need to resolve your license key "
5078
+ "errors."
5079
+ msgstr ""
5080
+ "Afin d&rsquo;avoir accès aux extensions, vous devez résoudre vos erreurs de "
5081
+ "clé de licence."
5082
+
5083
+ #: pro/includes/admin/class-addons.php:102
5084
+ msgid ""
5085
+ "In order to get access to Addons, you need to verify your license key for "
5086
+ "WPForms."
5087
+ msgstr ""
5088
+ "Afin d&rsquo;avoir accès aux extensions, vous devez vérifier votre clé de "
5089
+ "licence pour WPForms."
5090
+
5091
+ #: pro/includes/admin/class-addons.php:110
5092
+ msgid "Addons have successfully been refreshed."
5093
+ msgstr "Les extensions ont correctement été actualisées."
5094
+
5095
+ #: pro/includes/admin/class-addons.php:118
5096
+ #, fuzzy
5097
+ #| msgid ""
5098
+ #| "Improve your forms with our premium addons. Missing an addon that you "
5099
+ #| "think you should be able to see? Click the Refresh Addons button above."
5100
+ msgid ""
5101
+ "Improve your forms with our premium addons. Missing an addon that you think "
5102
+ "you should be able to see? Click the <a href=\"%s\">Refresh Addons</a> "
5103
+ "button above."
5104
+ msgstr ""
5105
+ "Développer vos formulaires avec nos extensions premium. Il manque une "
5106
+ "extension que vous pensez être en mesure de voir&nbsp;? Cliquez le bouton "
5107
+ "Actualiser les extensions ci-dessous."
5108
+
5109
+ #: pro/includes/admin/class-addons.php:121
5110
+ #, fuzzy
5111
+ #| msgid "Available Fields"
5112
+ msgid "Available Addons"
5113
+ msgstr "Champs disponibles"
5114
+
5115
+ #: pro/includes/admin/class-addons.php:166
5116
+ msgid "Unlock More Features..."
5117
+ msgstr "Débloquer plus de fonctionnalités..."
5118
+
5119
+ #: pro/includes/admin/class-addons.php:167
5120
+ #, fuzzy
5121
+ #| msgid ""
5122
+ #| "Want to get even more features? Upgrade your WPForms account and unlock "
5123
+ #| "the following extensions."
5124
+ msgid ""
5125
+ "Want to get even more features? <a href=\"%s\" target=\"_blank\" rel="
5126
+ "\"noopener noreferrer\">Upgrade your WPForms account</a> and unlock the "
5127
+ "following extensions."
5128
+ msgstr ""
5129
+ "Vous voulez davantage de fonctionnalités&nbsp;? Actualisez votre compte "
5130
+ "WPForms et débloquez les extensions suivantes."
5131
+
5132
+ #: pro/includes/admin/class-addons.php:225
5133
+ #: pro/includes/admin/entries/class-entries-list-table.php:162
5134
+ #, fuzzy
5135
+ #| msgid "State"
5136
+ msgid "Status"
5137
+ msgstr "État"
5138
+
5139
+ #: pro/includes/admin/class-license.php:93
5140
+ #: pro/includes/admin/class-license.php:181
5141
+ #: pro/includes/admin/class-license.php:270
5142
+ msgid ""
5143
+ "There was an error connecting to the remote key API. Please try again later."
5144
+ msgstr ""
5145
+ "Il y a eu une erreur de connexion distante à la clé API. Veuillez réessayer "
5146
+ "ultérieurement."
5147
+
5148
+ #: pro/includes/admin/class-license.php:112
5149
+ msgid "Congratulations! This site is now receiving automatic updates."
5150
+ msgstr ""
5151
+ "Félicitations&nbsp;! Ce site reçoit maintenant les mises à jour automatiques."
5152
+
5153
+ #: pro/includes/admin/class-license.php:200
5154
+ #: pro/includes/admin/class-license.php:354
5155
+ msgid ""
5156
+ "Your license key for WPForms is invalid. The key no longer exists or the "
5157
+ "user associated with the key has been deleted. Please use a different key to "
5158
+ "continue receiving automatic updates."
5159
+ msgstr ""
5160
+ "Votre clé de licence pour WPForms n&rsquo;est pas valide. La clé n&rsquo;"
5161
+ "existe plus ou l&rsquo;utilisateur associé à la clé a été supprimé. Veuillez "
5162
+ "utiliser une clé différente pour continuer à recevoir les mises à jour "
5163
+ "automatiques."
5164
+
5165
+ #: pro/includes/admin/class-license.php:213
5166
+ #, fuzzy
5167
+ #| msgid ""
5168
+ #| "Your license key for WPForms has been disabled. Please use a different "
5169
+ #| "key to continue receiving automatic updates."
5170
+ msgid ""
5171
+ "Your license key for WPForms has expired. Please renew your license key on "
5172
+ "WPForms.com to continue receiving automatic updates."
5173
+ msgstr ""
5174
+ "Votre clé de licence pour WPForms a été désactivée. Veuillez utiliser une "
5175
+ "clé différente pour continuer à recevoir les mises à jour automatiques."
5176
+
5177
+ #: pro/includes/admin/class-license.php:226
5178
+ #: pro/includes/admin/class-license.php:345
5179
+ msgid ""
5180
+ "Your license key for WPForms has been disabled. Please use a different key "
5181
+ "to continue receiving automatic updates."
5182
+ msgstr ""
5183
+ "Votre clé de licence pour WPForms a été désactivée. Veuillez utiliser une "
5184
+ "clé différente pour continuer à recevoir les mises à jour automatiques."
5185
+
5186
+ #: pro/includes/admin/class-license.php:241
5187
+ msgid "Your key has been refreshed successfully."
5188
+ msgstr "Votre clé a été actualisée avec succès."
5189
+
5190
+ #: pro/includes/admin/class-license.php:290
5191
+ msgid "You have deactivated the key from this site successfully."
5192
+ msgstr "Vous avez désactivé la clé de ce site avec succès."
5193
+
5194
+ #: pro/includes/admin/class-license.php:327
5195
+ msgid ""
5196
+ "Please <a href=\"%s\">enter and activate</a> your license key for WPForms to "
5197
+ "enable automatic updates."
5198
+ msgstr ""
5199
+ "Veuillez <a href=\"%s\">saisir et activer</a> votre clé de licence WPForms "
5200
+ "pour permettre les mises à jour automatiques."
5201
+
5202
+ #: pro/includes/admin/class-license.php:336
5203
+ #, fuzzy
5204
+ #| msgid ""
5205
+ #| "Your license key for WPForms has expired. <a href=\"%s\" target=\"_blank"
5206
+ #| "\">Please click here to renew your license key and continue receiving "
5207
+ #| "automatic updates.</a>"
5208
+ msgid ""
5209
+ "Your license key for WPForms has expired. <a href=\"%s\" target=\"_blank\" "
5210
+ "rel=\"noopener\">Please click here to renew your license key and continue "
5211
+ "receiving automatic updates.</a>"
5212
+ msgstr ""
5213
+ "Votre clé de licence pour WPForms a expiré. <a href=\"%s\" target=\"_blank"
5214
+ "\">Veuillez cliquer ici pour renouveler votre clé de licence et continuer à "
5215
+ "recevoir les mises à jour automatiques.</a>"
5216
+
5217
+ #. translators: %1$s - opening link tag; %2$s - closing link tag.
5218
+ #: pro/includes/admin/class-upgrades.php:247
5219
+ msgid ""
5220
+ "WPForms needs to upgrade the database, click %1$shere%2$s to start the "
5221
+ "upgrade."
5222
+ msgstr ""
5223
+
5224
+ #. translators: %1$s - opening link tag; %2$s - closing link tag.
5225
+ #: pro/includes/admin/class-upgrades.php:251
5226
+ msgid "WPForms database upgrade is incomplete, click %1$shere%2$s to resume."
5227
+ msgstr ""
5228
+
5229
+ #: pro/includes/admin/class-upgrades.php:274
5230
+ msgid "WPForms needs to upgrade the database, click the button below to begin."
5231
+ msgstr ""
5232
+
5233
+ #: pro/includes/admin/class-upgrades.php:275
5234
+ #, fuzzy
5235
+ #| msgid "Upgrade Now"
5236
+ msgid "Run Upgrade"
5237
+ msgstr "Mise à niveau"
5238
+
5239
+ #: pro/includes/admin/class-upgrades.php:278
5240
+ msgid ""
5241
+ "WPForms database upgrade is incomplete, click the button below to resume."
5242
+ msgstr ""
5243
+
5244
+ #: pro/includes/admin/class-upgrades.php:279
5245
+ msgid "Resume Upgrade"
5246
+ msgstr ""
5247
+
5248
+ #: pro/includes/admin/class-upgrades.php:286
5249
+ msgid ""
5250
+ "Please do not leave this page or close the browser while the upgrade is in "
5251
+ "progress."
5252
+ msgstr ""
5253
+
5254
+ #. translators: %1$s - total number of entries upgraded; %2$s - total number of
5255
+ #. entries on site.
5256
+ #: pro/includes/admin/class-upgrades.php:295
5257
+ msgid "Updated %1$s of %2$s entries."
5258
+ msgstr ""
5259
+
5260
+ #: pro/includes/admin/class-upgrades.php:310
5261
+ msgid "No updates are currently needed."
5262
+ msgstr ""
5263
+
5264
+ #: pro/includes/admin/entries/class-entries-export.php:204
5265
+ #, fuzzy
5266
+ #| msgid "Date"
5267
+ msgid "Date GMT"
5268
+ msgstr "Date"
5269
+
5270
+ #: pro/includes/admin/entries/class-entries-export.php:205
5271
+ msgid "ID"
5272
+ msgstr ""
5273
+
5274
+ #: pro/includes/admin/entries/class-entries-export.php:341
5275
+ #, fuzzy
5276
+ #| msgid "You do not have permission"
5277
+ msgid "You do not have permission to export entries."
5278
+ msgstr "Vous n&rsquo;avez pas d&rsquo;autorisation"
5279
+
5280
+ #: pro/includes/admin/entries/class-entries-list-table.php:129
5281
+ msgid "All"
5282
+ msgstr ""
5283
+
5284
+ #: pro/includes/admin/entries/class-entries-list-table.php:130
5285
+ msgid "Unread"
5286
+ msgstr ""
5287
+
5288
+ #: pro/includes/admin/entries/class-entries-list-table.php:131
5289
+ msgid "Starred"
5290
+ msgstr ""
5291
+
5292
+ #: pro/includes/admin/entries/class-entries-list-table.php:156
5293
+ #: pro/includes/fields/class-payment-total.php:21
5294
+ msgid "Total"
5295
+ msgstr "Total"
5296
+
5297
+ #: pro/includes/admin/entries/class-entries-list-table.php:167
5298
+ #: pro/includes/admin/entries/class-entries-single.php:1019
5299
+ msgid "Actions"
5300
+ msgstr "Actions"
5301
+
5302
+ #: pro/includes/admin/entries/class-entries-list-table.php:168
5303
+ #, fuzzy
5304
+ #| msgid "No fields to display"
5305
+ msgid "Change columns to display"
5306
+ msgstr "Pas de champs à afficher"
5307
+
5308
+ #: pro/includes/admin/entries/class-entries-list-table.php:318
5309
+ #: pro/includes/admin/entries/class-entries-single.php:833
5310
+ msgid "Unknown"
5311
+ msgstr ""
5312
+
5313
+ #: pro/includes/admin/entries/class-entries-list-table.php:325
5314
+ #: pro/includes/admin/entries/class-entries-single.php:776
5315
+ msgid "Completed"
5316
+ msgstr ""
5317
+
5318
+ #: pro/includes/admin/entries/class-entries-list-table.php:399
5319
+ msgid "View Form Entry"
5320
+ msgstr "Afficher l&rsquo;entrée de formulaire"
5321
+
5322
+ #: pro/includes/admin/entries/class-entries-list-table.php:400
5323
+ msgid "View"
5324
+ msgstr "Afficher"
5325
+
5326
+ #: pro/includes/admin/entries/class-entries-list-table.php:417
5327
+ msgid "Delete Form Entry"
5328
+ msgstr "Supprimer cette entrée de formulaire"
5329
+
5330
+ #: pro/includes/admin/entries/class-entries-list-table.php:434
5331
+ msgid "Mark Read"
5332
+ msgstr ""
5333
+
5334
+ #: pro/includes/admin/entries/class-entries-list-table.php:435
5335
+ #: pro/includes/admin/entries/class-entries-single.php:1003
5336
+ msgid "Mark Unread"
5337
+ msgstr ""
5338
+
5339
+ #: pro/includes/admin/entries/class-entries-list-table.php:436
5340
+ #: pro/includes/admin/entries/class-entries-single.php:968
5341
+ msgid "Star"
5342
+ msgstr ""
5343
+
5344
+ #: pro/includes/admin/entries/class-entries-list-table.php:437
5345
+ #: pro/includes/admin/entries/class-entries-single.php:968
5346
+ msgid "Unstar"
5347
+ msgstr ""
5348
+
5349
+ #: pro/includes/admin/entries/class-entries-list-table.php:438
5350
+ msgid "----------"
5351
+ msgstr ""
5352
+
5353
+ #: pro/includes/admin/entries/class-entries-list-table.php:496
5354
+ #, fuzzy
5355
+ #| msgid "Entry successfully deleted."
5356
+ msgid "Entry was successfully marked as read."
5357
+ msgstr "Entrée supprimée avec succès."
5358
+
5359
+ #: pro/includes/admin/entries/class-entries-list-table.php:498
5360
+ #, fuzzy
5361
+ #| msgid "Entry successfully deleted."
5362
+ msgid "Entries were successfully marked as read."
5363
+ msgstr "Entrée supprimée avec succès."
5364
+
5365
+ #: pro/includes/admin/entries/class-entries-list-table.php:522
5366
+ #, fuzzy
5367
+ #| msgid "Entry successfully deleted."
5368
+ msgid "Entry was successfully marked as unread."
5369
+ msgstr "Entrée supprimée avec succès."
5370
+
5371
+ #: pro/includes/admin/entries/class-entries-list-table.php:524
5372
+ #, fuzzy
5373
+ #| msgid "Entry successfully deleted."
5374
+ msgid "Entries were successfully marked as unread."
5375
+ msgstr "Entrée supprimée avec succès."
5376
+
5377
+ #: pro/includes/admin/entries/class-entries-list-table.php:548
5378
+ #, fuzzy
5379
+ #| msgid "Entry successfully deleted."
5380
+ msgid "Entry was successfully starred."
5381
+ msgstr "Entrée supprimée avec succès."
5382
+
5383
+ #: pro/includes/admin/entries/class-entries-list-table.php:550
5384
+ #, fuzzy
5385
+ #| msgid "Entry successfully deleted."
5386
+ msgid "Entries were successfully starred."
5387
+ msgstr "Entrée supprimée avec succès."
5388
+
5389
+ #: pro/includes/admin/entries/class-entries-list-table.php:574
5390
+ #, fuzzy
5391
+ #| msgid "Entry successfully deleted."
5392
+ msgid "Entry was successfully unstarred."
5393
+ msgstr "Entrée supprimée avec succès."
5394
+
5395
+ #: pro/includes/admin/entries/class-entries-list-table.php:576
5396
+ #, fuzzy
5397
+ #| msgid "Entry successfully deleted."
5398
+ msgid "Entries were successfully unstarred."
5399
+ msgstr "Entrée supprimée avec succès."
5400
+
5401
+ #: pro/includes/admin/entries/class-entries-list-table.php:595
5402
+ #, fuzzy
5403
+ #| msgid "Entry successfully deleted."
5404
+ msgid "Entry was successfully deleted."
5405
+ msgstr "Entrée supprimée avec succès."
5406
+
5407
+ #: pro/includes/admin/entries/class-entries-list-table.php:597
5408
+ #, fuzzy
5409
+ #| msgid "Entry successfully deleted."
5410
+ msgid "Entries were successfully deleted."
5411
+ msgstr "Entrée supprimée avec succès."
5412
+
5413
+ #: pro/includes/admin/entries/class-entries-list-table.php:613
5414
+ msgid "Whoops, it appears you do not have any form entries yet."
5415
+ msgstr ""
5416
+ "Oups, il semble que vous n&rsquo;avez pas encore d&rsquo;entrée de "
5417
+ "formulaire."
5418
+
5419
+ #: pro/includes/admin/entries/class-entries-list.php:142
5420
+ msgid "Number of entries per page:"
5421
+ msgstr "Nombre d&rsquo;entrées par page&nbsp;:"
5422
+
5423
+ #: pro/includes/admin/entries/class-entries-list.php:226
5424
+ msgid "All entries marked as read."
5425
+ msgstr ""
5426
+
5427
+ #: pro/includes/admin/entries/class-entries-list.php:283
5428
+ msgid "All entries for the currently selected form were successfully deleted."
5429
+ msgstr ""
5430
+
5431
+ #: pro/includes/admin/entries/class-entries-list.php:386
5432
+ msgid "Select the fields to show when viewing the entries list for this form."
5433
+ msgstr ""
5434
+
5435
+ #: pro/includes/admin/entries/class-entries-list.php:388
5436
+ msgid ""
5437
+ "Currently columns have not been configured, so we're showing the first 3 "
5438
+ "fields."
5439
+ msgstr ""
5440
+
5441
+ #: pro/includes/admin/entries/class-entries-list.php:492
5442
+ #, fuzzy
5443
+ #| msgid "Select Groups"
5444
+ msgid "Select Form"
5445
+ msgstr "Sélectionner les groupes"
5446
+
5447
+ #: pro/includes/admin/entries/class-entries-list.php:502
5448
+ msgid "Open form selector"
5449
+ msgstr ""
5450
+
5451
+ #: pro/includes/admin/entries/class-entries-list.php:527
5452
+ #, fuzzy
5453
+ #| msgid "Edit this form"
5454
+ msgid "Edit This Form"
5455
+ msgstr "Modifier ce formulaire"
5456
 
5457
+ #: pro/includes/admin/entries/class-entries-list.php:537
5458
+ msgid "Download Export (CSV)"
5459
+ msgstr ""
5460
 
5461
+ #: pro/includes/admin/entries/class-entries-list.php:542
5462
+ msgid "Mark All Read"
5463
+ msgstr ""
5464
 
5465
+ #: pro/includes/admin/entries/class-entries-list.php:547
5466
+ #, fuzzy
5467
+ #| msgid "Delete"
5468
+ msgid "Delete All"
5469
+ msgstr "Supprimer "
5470
 
5471
+ #: pro/includes/admin/entries/class-entries-single.php:164
5472
+ msgid "This entry has been starred."
5473
+ msgstr ""
5474
 
5475
+ #: pro/includes/admin/entries/class-entries-single.php:181
5476
+ msgid "This entry has been unstarred."
5477
+ msgstr ""
5478
 
5479
+ #: pro/includes/admin/entries/class-entries-single.php:214
5480
+ msgid "This entry has been marked unread."
5481
+ msgstr ""
5482
 
5483
+ #: pro/includes/admin/entries/class-entries-single.php:241
5484
+ msgid "Note deleted."
5485
+ msgstr ""
5486
 
5487
+ #: pro/includes/admin/entries/class-entries-single.php:277
5488
+ msgid "Note added."
 
5489
  msgstr ""
 
 
5490
 
5491
+ #: pro/includes/admin/entries/class-entries-single.php:311
5492
+ #, fuzzy
5493
+ #| msgid "Notifications"
5494
+ msgid "Notifications sent!"
5495
+ msgstr "Notifications"
5496
 
5497
+ #: pro/includes/admin/entries/class-entries-single.php:329
5498
+ #, fuzzy
5499
+ #| msgid "Invalid entry."
5500
+ msgid "Invalid entry ID."
5501
+ msgstr "Entrée non valide."
5502
 
5503
+ #: pro/includes/admin/entries/class-entries-single.php:342
5504
+ msgid "Entry not found."
5505
+ msgstr ""
5506
 
5507
+ #: pro/includes/admin/entries/class-entries-single.php:355
5508
+ #, fuzzy
5509
+ #| msgid "No form ID found"
5510
+ msgid "Form not found."
5511
+ msgstr "Aucun ID de formulaire trouvé"
5512
 
5513
+ #: pro/includes/admin/entries/class-entries-single.php:439
5514
+ #, fuzzy
5515
+ #| msgid " View Entry"
5516
+ msgid "View Entry"
5517
+ msgstr "Afficher l&rsquo;entrée"
5518
 
5519
+ #: pro/includes/admin/entries/class-entries-single.php:441
5520
+ #, fuzzy
5521
+ #| msgid "Back to Entries"
5522
+ msgid "Back to All Entries"
5523
+ msgstr "Retour aux entrées"
5524
 
5525
+ #: pro/includes/admin/entries/class-entries-single.php:445
5526
+ msgid "Entry %1$s of %2$s"
5527
+ msgstr ""
 
 
 
5528
 
5529
+ #: pro/includes/admin/entries/class-entries-single.php:448
5530
+ #, fuzzy
5531
+ #| msgid "Previous Label"
5532
+ msgid "Previous form entry"
5533
+ msgstr "Libellé précédent"
5534
 
5535
+ #: pro/includes/admin/entries/class-entries-single.php:452
5536
+ #, fuzzy
5537
+ #| msgid "Delete Form Entry"
5538
+ msgid "Current form entry"
5539
+ msgstr "Supprimer cette entrée de formulaire"
 
 
 
 
5540
 
5541
+ #: pro/includes/admin/entries/class-entries-single.php:454
5542
+ #, fuzzy
5543
+ #| msgid "Delete Form Entry"
5544
+ msgid "Next form entry"
5545
+ msgstr "Supprimer cette entrée de formulaire"
 
 
 
5546
 
5547
+ #: pro/includes/admin/entries/class-entries-single.php:585
5548
+ #: pro/includes/admin/entries/class-entries-single.php:600
5549
+ #, fuzzy
5550
+ #| msgid "Add New"
5551
+ msgid "Add Note"
5552
+ msgstr "Nouveau"
5553
 
5554
+ #: pro/includes/admin/entries/class-entries-single.php:609
5555
+ #, fuzzy
5556
+ #| msgid "No name"
5557
+ msgid "No notes."
5558
+ msgstr "Aucun nom"
5559
 
5560
+ #. translators: %1$s - user link; %2$s - date; %3$s - separator; %4$s - link to
5561
+ #. delete a note
5562
+ #: pro/includes/admin/entries/class-entries-single.php:646
5563
+ msgid "Added by %1$s on %2$s %3$s %4$s"
5564
+ msgstr ""
5565
 
5566
+ #: pro/includes/admin/entries/class-entries-single.php:650
5567
+ #, fuzzy
5568
+ #| msgid "Delete"
5569
+ msgctxt "Entry: note"
5570
+ msgid "Delete"
5571
+ msgstr "Supprimer "
5572
 
5573
+ #: pro/includes/admin/entries/class-entries-single.php:688
5574
+ #, fuzzy
5575
+ #| msgid "Confirmation"
5576
+ msgid "Debug Information"
5577
+ msgstr "Confirmation"
5578
 
5579
+ #: pro/includes/admin/entries/class-entries-single.php:717
5580
+ #, fuzzy
5581
+ #| msgid "Entries"
5582
+ msgid "Entry Details"
5583
+ msgstr "Entrées"
5584
 
5585
+ #: pro/includes/admin/entries/class-entries-single.php:726
5586
+ #, fuzzy
5587
+ #| msgid "New Entry: "
5588
+ msgid "Entry ID:"
5589
+ msgstr "Nouvelle entrée&nbsp;:"
5590
 
5591
+ #: pro/includes/admin/entries/class-entries-single.php:732
5592
+ #, fuzzy
5593
+ #| msgid "Submit"
5594
+ msgid "Submitted:"
5595
+ msgstr "Envoyer"
5596
 
5597
+ #: pro/includes/admin/entries/class-entries-single.php:739
5598
+ msgid "Modified:"
5599
+ msgstr ""
 
 
 
 
 
 
5600
 
5601
+ #: pro/includes/admin/entries/class-entries-single.php:740
5602
+ msgid "M j, Y @ H:i"
 
 
5603
  msgstr ""
 
 
5604
 
5605
+ #: pro/includes/admin/entries/class-entries-single.php:748
5606
+ msgid "User:"
5607
+ msgstr ""
5608
 
5609
+ #: pro/includes/admin/entries/class-entries-single.php:767
5610
+ msgid "User IP:"
5611
+ msgstr ""
5612
 
5613
+ #: pro/includes/admin/entries/class-entries-single.php:775
5614
+ #, fuzzy
5615
+ #| msgid "State"
5616
+ msgid "Status:"
5617
+ msgstr "État"
5618
 
5619
+ #: pro/includes/admin/entries/class-entries-single.php:801
5620
+ #, fuzzy
5621
+ #| msgid "Delete Form Entry"
5622
+ msgid "Delete Entry"
5623
+ msgstr "Supprimer cette entrée de formulaire"
5624
+
5625
+ #: pro/includes/admin/entries/class-entries-single.php:849
5626
+ msgid "PayPal Standard"
5627
  msgstr ""
 
 
5628
 
5629
+ #: pro/includes/admin/entries/class-entries-single.php:862
5630
+ #, fuzzy
5631
+ #| msgid "Payment Fields"
5632
+ msgid "Payment Details"
5633
+ msgstr "Champs de paiement"
5634
 
5635
+ #: pro/includes/admin/entries/class-entries-single.php:870
5636
+ msgid "Status: %s"
5637
+ msgstr ""
5638
 
5639
+ #: pro/includes/admin/entries/class-entries-single.php:874
5640
+ #, fuzzy
5641
+ #| msgid "Total"
5642
+ msgid "Total: %s"
5643
+ msgstr "Total"
5644
 
5645
+ #: pro/includes/admin/entries/class-entries-single.php:879
5646
+ msgid "Gateway: %s"
5647
+ msgstr ""
5648
 
5649
+ #: pro/includes/admin/entries/class-entries-single.php:881
5650
+ msgctxt "Gateway mode"
5651
+ msgid "Test"
5652
+ msgstr ""
5653
 
5654
+ #: pro/includes/admin/entries/class-entries-single.php:887
5655
+ msgid "Transaction ID:"
5656
+ msgstr ""
5657
 
5658
+ #: pro/includes/admin/entries/class-entries-single.php:892
5659
+ msgid "Note:"
5660
+ msgstr ""
5661
 
5662
+ #: pro/includes/admin/entries/class-entries-single.php:992
5663
+ msgid "Export (CSV)"
5664
+ msgstr ""
5665
 
5666
+ #: pro/includes/admin/entries/class-entries-single.php:997
5667
+ #, fuzzy
5668
+ #| msgid "Notifications"
5669
+ msgid "Resend Notifications"
5670
+ msgstr "Notifications"
5671
 
5672
+ #: pro/includes/admin/entries/class-entries-single.php:1068
5673
+ #, fuzzy
5674
+ #| msgid "View Entries"
5675
+ msgid "Related Entries"
5676
+ msgstr "Afficher les entrées"
5677
+
5678
+ #: pro/includes/admin/entries/class-entries-single.php:1073
5679
+ msgid "The user who created this entry also submitted the entries below."
5680
  msgstr ""
 
 
5681
 
5682
+ #: pro/includes/admin/entries/class-entries-single.php:1088
5683
+ msgid "(Abandoned)"
5684
+ msgstr ""
5685
 
5686
+ #: pro/includes/class-conditional-logic-fields.php:95
5687
+ #, fuzzy
5688
+ #| msgid "Conditional Logic"
5689
+ msgid "Conditionals"
5690
+ msgstr "Logique conditionnelle"
5691
 
5692
+ #: pro/includes/class-conditional-logic-fields.php:364
5693
+ #, fuzzy
5694
+ #| msgid "Enable conditional logic"
5695
+ msgid "Entry Notification stopped by conditional logic."
5696
+ msgstr "Activer la logique conditionnelle"
5697
+
5698
+ #: pro/includes/fields/class-address.php:29
5699
+ #: pro/includes/templates/class-order.php:58
5700
+ msgid "Address"
5701
+ msgstr "Adresse"
5702
 
5703
+ #: pro/includes/fields/class-address.php:38
5704
+ #: pro/includes/fields/class-phone.php:90
5705
+ msgid "US"
5706
  msgstr ""
 
5707
 
5708
+ #: pro/includes/fields/class-address.php:39
5709
+ #: pro/includes/fields/class-address.php:48
5710
+ #: pro/includes/fields/class-address.php:321
5711
+ msgid "Address Line 1"
5712
+ msgstr "Adresse ligne 1"
5713
 
5714
+ #: pro/includes/fields/class-address.php:40
5715
+ #: pro/includes/fields/class-address.php:49
5716
+ #: pro/includes/fields/class-address.php:340
5717
+ msgid "Address Line 2"
5718
+ msgstr "Adresse ligne 2"
5719
 
5720
+ #: pro/includes/fields/class-address.php:41
5721
+ #: pro/includes/fields/class-address.php:50
5722
+ #: pro/includes/fields/class-address.php:361
5723
+ msgid "City"
5724
+ msgstr "Ville"
5725
 
5726
+ #: pro/includes/fields/class-address.php:42
5727
+ #, fuzzy
5728
+ #| msgid "Code"
5729
+ msgid "Zip Code"
5730
+ msgstr "Code"
5731
 
5732
+ #: pro/includes/fields/class-address.php:43
5733
+ msgid "State"
5734
+ msgstr "État"
5735
 
5736
+ #: pro/includes/fields/class-address.php:47
5737
+ #: pro/includes/fields/class-phone.php:91
5738
+ #, fuzzy
5739
+ #| msgid "Integrations"
5740
+ msgid "International"
5741
+ msgstr "Intégrations"
5742
 
5743
+ #: pro/includes/fields/class-address.php:51
5744
+ #, fuzzy
5745
+ #| msgid "Zip / Postal Code"
5746
+ msgid "Postal Code"
5747
+ msgstr "Code postal"
5748
 
5749
+ #: pro/includes/fields/class-address.php:52
5750
+ #: pro/includes/fields/class-address.php:379
5751
+ msgid "State / Province / Region"
5752
+ msgstr "État / Province / Région"
5753
 
5754
+ #: pro/includes/fields/class-address.php:54
5755
+ #: pro/includes/fields/class-address.php:423
5756
+ msgid "Country"
5757
+ msgstr "Pays"
5758
 
5759
+ #: pro/includes/fields/class-address.php:272
5760
+ #, fuzzy
5761
+ #| msgid "Select format for the address field."
5762
+ msgid "Select scheme format for the address field."
5763
+ msgstr "Sélectionner le format pour le champ adresse."
5764
 
5765
+ #: pro/includes/fields/class-address.php:279
5766
+ msgid "Scheme"
5767
  msgstr ""
 
5768
 
5769
+ #: pro/includes/fields/class-address.php:399
5770
+ msgid "ZIP / Postal"
5771
+ msgstr "Code postal"
 
5772
 
5773
+ #: pro/includes/fields/class-date-time.php:22
5774
  msgid "Date / Time"
5775
  msgstr "Date / Heure"
5776
 
5777
+ #: pro/includes/fields/class-date-time.php:61
5778
  msgid "Select format for the date field."
5779
  msgstr "Sélectionner le format pour le champ date."
5780
 
5781
+ #: pro/includes/fields/class-date-time.php:72
5782
  msgid "Date and Time"
5783
  msgstr "Date et heure"
5784
 
5785
+ #: pro/includes/fields/class-date-time.php:74
5786
+ #: pro/includes/fields/class-date-time.php:174
5787
+ #: pro/includes/fields/class-date-time.php:284
5788
+ #: pro/includes/fields/class-date-time.php:394
5789
  msgid "Time"
5790
  msgstr "Heure"
5791
 
5792
+ #: pro/includes/fields/class-date-time.php:131
5793
  msgid "Advanced date options."
5794
  msgstr "Options avancées de date."
5795
 
5796
+ #: pro/includes/fields/class-date-time.php:151
5797
+ #, fuzzy
5798
+ #| msgid "Date / Time"
5799
+ msgid "Date Picker"
5800
+ msgstr "Date / Heure"
5801
+
5802
+ #: pro/includes/fields/class-date-time.php:152
5803
+ #, fuzzy
5804
+ #| msgid "Dropdown"
5805
+ msgid "Date Dropdown"
5806
+ msgstr "Liste déroulante"
5807
 
5808
+ #: pro/includes/fields/class-date-time.php:167
5809
  msgid "15 minutes"
5810
  msgstr "15 minutes"
5811
 
5812
+ #: pro/includes/fields/class-date-time.php:168
5813
  msgid "30 minute"
5814
  msgstr "30 minutes"
5815
 
5816
+ #: pro/includes/fields/class-date-time.php:169
5817
  msgid "1 hour"
5818
  msgstr "1 heure"
5819
 
5820
+ #: pro/includes/fields/class-date-time.php:175
5821
  msgid "Advanced time options"
5822
  msgstr "Options avancées de temps"
5823
 
5824
+ #: pro/includes/fields/class-date-time.php:195
5825
  msgid "Interval"
5826
  msgstr "Intervalle"
5827
 
5828
+ #: pro/includes/fields/class-divider.php:21
5829
  msgid "Section Divider"
5830
  msgstr "Diviseur de section"
5831
 
5832
+ #: pro/includes/fields/class-file-upload.php:29
 
 
 
 
 
 
 
 
5833
  msgid "File Upload"
5834
  msgstr "Fichier"
5835
 
5836
+ #: pro/includes/fields/class-file-upload.php:152
5837
  msgid "Allowed File Extensions"
5838
  msgstr "Extensions de fichier autorisés"
5839
 
5840
+ #: pro/includes/fields/class-file-upload.php:153
5841
+ msgid "Enter the extensions you would like to allow, comma separated."
5842
+ msgstr ""
5843
+
5844
+ #: pro/includes/fields/class-file-upload.php:178
5845
+ msgid "Max File Size"
5846
+ msgstr "Taille maximum du fichier"
5847
+
5848
+ #: pro/includes/fields/class-file-upload.php:179
5849
+ #, fuzzy
5850
+ #| msgid ""
5851
+ #| "Enter the max file size, in megabytyes, to allow. If left blank, the "
5852
+ #| "value defaults to the maximum size the server allows which is "
5853
  msgid ""
5854
+ "Enter the max file size, in megabytes, to allow. If left blank, the value "
5855
+ "defaults to the maximum size the server allows which is %s."
5856
  msgstr ""
5857
  "Saisir la taille de fichier maximale autorisée, en mégaoctects. Si laissée "
5858
  "vide, la valeur par défaut sera la taille maximale autorisée par le serveur "
5859
  "qui est "
5860
 
5861
+ #: pro/includes/fields/class-file-upload.php:227
5862
+ msgid "Store file in WordPress Media Library"
5863
+ msgstr ""
5864
+
5865
+ #: pro/includes/fields/class-file-upload.php:228
5866
+ msgid ""
5867
+ "Check this option to store the final uploaded file in the WordPress Media "
5868
+ "Library"
5869
+ msgstr ""
5870
 
5871
+ #: pro/includes/fields/class-file-upload.php:314
5872
  msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
5873
  msgstr ""
5874
  "La taille du fichier envoyé excède celle indiquée dans la directive "
5875
  "<code>upload_max_filesize</code>, dans <code>php.ini</code>."
5876
 
5877
+ #: pro/includes/fields/class-file-upload.php:315
5878
  msgid ""
5879
  "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
5880
  "the HTML form."
5882
  "La taille du fichier envoyé excède celle indiquée dans la directive "
5883
  "<code>MAX_FILE_SIZE</code> du formulaire HTML."
5884
 
5885
+ #: pro/includes/fields/class-file-upload.php:316
5886
  msgid "The uploaded file was only partially uploaded."
5887
  msgstr "Le fichier n&rsquo;a été que partiellement envoyé."
5888
 
5889
+ #: pro/includes/fields/class-file-upload.php:317
5890
  msgid "No file was uploaded."
5891
  msgstr "Aucun fichier n&rsquo;a été envoyé."
5892
 
5893
+ #: pro/includes/fields/class-file-upload.php:319
5894
  msgid "Missing a temporary folder."
5895
  msgstr "Un dossier temporaire est manquant."
5896
 
5897
+ #: pro/includes/fields/class-file-upload.php:320
5898
  msgid "Failed to write file to disk."
5899
  msgstr "Échec de l&rsquo;écriture du fichier sur le disque."
5900
 
5901
+ #: pro/includes/fields/class-file-upload.php:321
5902
  msgid "File upload stopped by extension."
5903
  msgstr "L&rsquo;envoi de fichier est arrêté par l&rsquo;extension."
5904
 
5905
+ #: pro/includes/fields/class-file-upload.php:323
5906
+ #, fuzzy
5907
+ #| msgid "File upload error. "
5908
+ msgid "File upload error. %s"
5909
  msgstr "Erreur lors de l&rsquo;envoi du fichier."
5910
 
5911
+ #: pro/includes/fields/class-file-upload.php:342
5912
  msgid "File exceeds max size allowed"
5913
  msgstr "Le fichier dépasse la taille maximale autorisée"
5914
 
5915
+ #: pro/includes/fields/class-file-upload.php:358
5916
  msgid "File must have an extension."
5917
  msgstr "Le fichier doit avoir une extension."
5918
 
5919
+ #: pro/includes/fields/class-hidden.php:21
5920
+ msgid "Hidden Field"
5921
+ msgstr "Champ caché"
5922
+
5923
+ #: pro/includes/fields/class-html.php:21
5924
+ msgid "HTML"
5925
+ msgstr "HTML"
5926
+
5927
+ #: pro/includes/fields/class-html.php:116
5928
+ msgid "HTML / Code Block"
5929
+ msgstr "HTML / Bloc de code"
5930
+
5931
+ #: pro/includes/fields/class-html.php:117
5932
+ msgid "Contents of this field are not displayed in the admin area."
5933
+ msgstr ""
5934
+ "Les contenus de ce champ ne sont pas affichés dans l&rsquo;espace d&rsquo;"
5935
+ "administration."
5936
+
5937
+ #: pro/includes/fields/class-page-break.php:25
5938
+ #: pro/includes/fields/class-page-break.php:528
5939
+ msgid "Page Break"
5940
+ msgstr "Saut de page"
5941
+
5942
+ #. translators: %1$s - current step in multi-page form; %2$d - total number of
5943
+ #. pages.
5944
+ #: pro/includes/fields/class-page-break.php:145
5945
+ msgid "Step %1$s of %2$d"
5946
+ msgstr ""
5947
+
5948
+ #: pro/includes/fields/class-page-break.php:284
5949
+ msgid "Progress Bar"
5950
+ msgstr ""
5951
+
5952
+ #: pro/includes/fields/class-page-break.php:285
5953
+ msgid "Circles"
5954
+ msgstr ""
5955
+
5956
+ #: pro/includes/fields/class-page-break.php:286
5957
+ #, fuzzy
5958
+ #| msgid "Connect to"
5959
+ msgid "Connector"
5960
+ msgstr "Se connecter à"
5961
+
5962
+ #: pro/includes/fields/class-page-break.php:287
5963
+ msgid "None"
5964
+ msgstr "Aucune"
5965
+
5966
+ #: pro/includes/fields/class-page-break.php:294
5967
+ msgid "Progress Indicator"
5968
+ msgstr ""
5969
+
5970
+ #: pro/includes/fields/class-page-break.php:295
5971
+ msgid ""
5972
+ "Select theme for Page Indicator which is displayed at the top of the form."
5973
+ msgstr ""
5974
+
5975
+ #: pro/includes/fields/class-page-break.php:320
5976
+ msgid "Page Indicator Color"
5977
+ msgstr ""
5978
+
5979
+ #: pro/includes/fields/class-page-break.php:321
5980
+ msgid "Select the primary color for the Page Indicator theme."
5981
+ msgstr ""
5982
+
5983
+ #: pro/includes/fields/class-page-break.php:349
5984
+ #, fuzzy
5985
+ #| msgid "Form Title"
5986
+ msgid "Page Title"
5987
+ msgstr "Titre du formulaire"
5988
+
5989
+ #: pro/includes/fields/class-page-break.php:350
5990
+ #, fuzzy
5991
+ #| msgid "Enter text for Next page button."
5992
+ msgid "Enter text for the page title."
5993
+ msgstr "Saisir du texte pour le bouton Page suivante."
5994
+
5995
+ #: pro/includes/fields/class-page-break.php:376
5996
+ msgid "Next Label"
5997
+ msgstr "Libellé suivant"
5998
+
5999
+ #: pro/includes/fields/class-page-break.php:377
6000
+ #, fuzzy
6001
+ #| msgid "Enter text for Next page button."
6002
+ msgid "Enter text for Next page navigation button."
6003
+ msgstr "Saisir du texte pour le bouton Page suivante."
6004
+
6005
+ #: pro/includes/fields/class-page-break.php:386
6006
+ #: pro/includes/fields/class-page-break.php:523
6007
+ msgid "Next"
6008
+ msgstr "Suivante"
6009
+
6010
+ #: pro/includes/fields/class-page-break.php:405
6011
+ #, fuzzy
6012
+ #| msgid "Previous"
6013
+ msgid "Display Previous"
6014
+ msgstr "Précédente"
6015
 
6016
+ #: pro/includes/fields/class-page-break.php:406
6017
+ msgid "Toggle displaying the Previous page navigation button."
6018
+ msgstr ""
6019
 
6020
+ #: pro/includes/fields/class-page-break.php:430
6021
+ msgid "Previous Label"
6022
+ msgstr "Libellé précédent"
6023
 
6024
+ #: pro/includes/fields/class-page-break.php:431
6025
+ #, fuzzy
6026
+ #| msgid "Enter text for Previous page button."
6027
+ msgid "Enter text for Previous page navigation button."
6028
+ msgstr "Saisir du texte pour le bouton Page précédente."
6029
 
6030
+ #: pro/includes/fields/class-page-break.php:476
6031
+ msgid "Page Navigation Alignment"
6032
  msgstr ""
 
 
6033
 
6034
+ #: pro/includes/fields/class-page-break.php:477
6035
+ msgid "Select the alignment for the Next/Previous page navigation buttons"
6036
+ msgstr ""
6037
 
6038
+ #: pro/includes/fields/class-page-break.php:487
6039
+ msgid "Left"
6040
+ msgstr ""
6041
 
6042
+ #: pro/includes/fields/class-page-break.php:488
6043
+ msgid "Right"
6044
+ msgstr ""
6045
 
6046
+ #: pro/includes/fields/class-page-break.php:489
6047
+ msgid "Center"
6048
+ msgstr ""
6049
 
6050
+ #: pro/includes/fields/class-page-break.php:490
6051
+ msgid "Split"
6052
+ msgstr ""
6053
 
6054
+ #: pro/includes/fields/class-page-break.php:527
6055
+ #, fuzzy
6056
+ #| msgid "First Name"
6057
+ msgid "First Page"
6058
  msgstr "Prénom"
6059
 
6060
+ #: pro/includes/fields/class-password.php:21
6061
+ #: pro/includes/fields/class-password.php:66
6062
+ #: pro/includes/fields/class-password.php:286
6063
+ msgid "Password"
6064
+ msgstr "Mot de Passe"
6065
 
6066
+ #: pro/includes/fields/class-password.php:89
6067
+ #: pro/includes/fields/class-password.php:291
6068
+ #, fuzzy
6069
+ #| msgid "Password"
6070
+ msgid "Confirm Password"
6071
+ msgstr "Mot de Passe"
6072
 
6073
+ #: pro/includes/fields/class-password.php:188
6074
+ #, fuzzy
6075
+ #| msgid "Confirmation"
6076
+ msgid "Enable Password Confirmation"
6077
+ msgstr "Confirmation"
6078
 
6079
+ #: pro/includes/fields/class-password.php:189
6080
+ #, fuzzy
6081
+ #| msgid "Check this option to hide the form field label."
6082
+ msgid "Check this option to ask users to provide their password twice."
6083
+ msgstr "Cocher cette option pour masquer le libellé de champ de formulaire."
6084
 
6085
+ #: pro/includes/fields/class-payment-credit-card.php:21 pro/wpforms-pro.php:219
6086
+ msgid "Credit Card"
6087
+ msgstr ""
6088
 
6089
+ #: pro/includes/fields/class-payment-credit-card.php:73
6090
+ #: pro/includes/fields/class-payment-credit-card.php:300
6091
+ #, fuzzy
6092
+ #| msgid "Numbers"
6093
+ msgid "Card Number"
6094
  msgstr "Nombres"
6095
 
6096
+ #: pro/includes/fields/class-payment-credit-card.php:96
6097
+ #: pro/includes/fields/class-payment-credit-card.php:305
6098
+ msgid "Security Code"
6099
+ msgstr ""
 
 
 
 
 
 
 
6100
 
6101
+ #: pro/includes/fields/class-payment-credit-card.php:117
6102
+ #: pro/includes/fields/class-payment-credit-card.php:312
6103
+ msgid "Name on Card"
6104
+ msgstr ""
 
6105
 
6106
+ #: pro/includes/fields/class-payment-credit-card.php:131
6107
+ #: pro/includes/fields/class-payment-credit-card.php:317
6108
+ #, fuzzy
6109
+ #| msgid "Confirmation"
6110
+ msgid "Expiration"
6111
+ msgstr "Confirmation"
6112
 
6113
+ #: pro/includes/fields/class-payment-credit-card.php:239
6114
+ #, fuzzy
6115
+ #| msgid "Placeholder Text"
6116
+ msgid "Card Number Placeholder Text"
6117
+ msgstr "Texte d&rsquo;espace réservé"
6118
 
6119
+ #: pro/includes/fields/class-payment-credit-card.php:248
6120
+ #, fuzzy
6121
+ #| msgid "Placeholder Text"
6122
+ msgid "Security Code Placeholder Text"
6123
+ msgstr "Texte d&rsquo;espace réservé"
6124
 
6125
+ #: pro/includes/fields/class-payment-credit-card.php:257
6126
+ #, fuzzy
6127
+ #| msgid "Placeholder Text"
6128
+ msgid "Name on Card Placeholder Text"
6129
+ msgstr "Texte d&rsquo;espace réservé"
6130
 
6131
+ #: pro/includes/fields/class-payment-credit-card.php:355
6132
+ msgid ""
6133
+ "This page is insecure. Credit Card field should be used for testing purposes "
6134
+ "only."
6135
+ msgstr ""
6136
 
6137
+ #: pro/includes/fields/class-payment-dropdown.php:21
6138
+ #, fuzzy
6139
+ #| msgid "Dropdown"
6140
+ msgid "Dropdown Items"
6141
+ msgstr "Liste déroulante"
6142
 
6143
+ #: pro/includes/fields/class-payment-dropdown.php:28
6144
+ #: pro/includes/fields/class-payment-multiple.php:28
6145
+ #: pro/includes/templates/class-order.php:71
6146
  msgid "First Item"
6147
  msgstr "Premier élément"
6148
 
6149
+ #: pro/includes/fields/class-payment-dropdown.php:33
6150
+ #: pro/includes/fields/class-payment-multiple.php:33
6151
+ #: pro/includes/templates/class-order.php:75
6152
  msgid "Second Item"
6153
  msgstr "Deuxième élément"
6154
 
6155
+ #: pro/includes/fields/class-payment-dropdown.php:38
6156
+ #: pro/includes/fields/class-payment-multiple.php:38
6157
+ #: pro/includes/templates/class-order.php:79
6158
  msgid "Third Item"
6159
  msgstr "Troisième élément"
6160
 
6161
+ #: pro/includes/fields/class-payment-dropdown.php:214
6162
+ #: pro/includes/fields/class-payment-multiple.php:180
 
 
 
 
 
 
 
6163
  msgid "Invalid payment option"
6164
  msgstr "Option de paiement non valide"
6165
 
6166
+ #: pro/includes/fields/class-payment-multiple.php:21
6167
+ msgid "Multiple Items"
6168
+ msgstr "Plusieurs articles"
6169
+
6170
+ #: pro/includes/fields/class-payment-single.php:21
6171
+ #: pro/includes/fields/class-payment-single.php:58
6172
  msgid "Single Item"
6173
  msgstr "Article seul"
6174
 
6175
+ #: pro/includes/fields/class-payment-single.php:49
6176
  msgid "Enter the price of the item, without a currency symbol."
6177
  msgstr "Saisir le tarif de l&rsquo;élément, sans symbole de devise."
6178
 
6179
+ #: pro/includes/fields/class-payment-single.php:50
6180
  msgid "Item Price"
6181
  msgstr "Élément tarif"
6182
 
6183
+ #: pro/includes/fields/class-payment-single.php:56
6184
  msgid "Select the item type."
6185
  msgstr "Sélectionner le type d&rsquo;élément."
6186
 
6187
+ #: pro/includes/fields/class-payment-single.php:59
6188
  msgid "User Defined"
6189
  msgstr "Défini par l&rsquo;utilisateur"
6190
 
6191
+ #: pro/includes/fields/class-payment-single.php:60
6192
  msgid "Hidden"
6193
  msgstr "Masqué"
6194
 
6195
+ #: pro/includes/fields/class-payment-single.php:62
6196
  msgid "Item Type"
6197
  msgstr "Type d&rsquo;élément"
6198
 
6199
+ #: pro/includes/fields/class-payment-single.php:98
6200
+ #: pro/includes/fields/class-payment-single.php:142
6201
  msgid "Price"
6202
  msgstr "Tarif"
6203
 
6204
+ #: pro/includes/fields/class-payment-single.php:104
6205
  msgid ""
6206
  "Note: Item type is set to hidden and will not be visible when viewing the "
6207
  "form."
6209
  "Remarque&nbsp;: le type d&rsquo;élément est défini à masquer et ne sera pas "
6210
  "visible lorsque le formulaire s&rsquo;affichera."
6211
 
6212
+ #: pro/includes/fields/class-payment-single.php:199
 
 
 
 
6213
  msgid "Amount mismatch"
6214
  msgstr "Inadéquation du montant"
6215
 
6216
+ #: pro/includes/fields/class-phone.php:21
6217
+ #: pro/includes/templates/class-order.php:50
6218
+ #: pro/includes/templates/class-request-quote.php:54
 
 
6219
  msgid "Phone"
6220
  msgstr "Téléphone"
6221
 
6222
+ #: pro/includes/fields/class-phone.php:79
6223
  msgid "Select format for the phone form field"
6224
  msgstr "Sélectionner le format du champ de formulaire de téléphone"
6225
 
6226
+ #: pro/includes/fields/class-url.php:22
6227
+ msgid "Website / URL"
6228
+ msgstr "Site internet / URL"
6229
 
6230
+ #: pro/includes/payments/functions.php:22
6231
+ #, fuzzy
6232
+ #| msgid "US Dollars (USD)"
6233
+ msgid "U.S. Dollar"
6234
+ msgstr "Dollar US (USD)"
6235
+
6236
+ #: pro/includes/payments/functions.php:30
6237
+ msgid "Pound Sterling"
6238
  msgstr ""
 
6239
 
6240
+ #: pro/includes/payments/functions.php:38
6241
+ msgid "Euro"
6242
+ msgstr ""
6243
 
6244
+ #: pro/includes/payments/functions.php:46
6245
+ msgid "Australian Dollar"
6246
+ msgstr ""
6247
 
6248
+ #: pro/includes/payments/functions.php:54
6249
+ msgid "Brazilian Real"
6250
+ msgstr ""
6251
 
6252
+ #: pro/includes/payments/functions.php:62
6253
+ msgid "Canadian Dollar"
6254
+ msgstr ""
6255
 
6256
+ #: pro/includes/payments/functions.php:70
6257
+ msgid "Czech Koruna"
6258
+ msgstr ""
6259
 
6260
+ #: pro/includes/payments/functions.php:78
6261
+ msgid "Danish Krone"
6262
+ msgstr ""
6263
 
6264
+ #: pro/includes/payments/functions.php:86
6265
+ msgid "Hong Kong Dollar"
 
 
6266
  msgstr ""
 
 
6267
 
6268
+ #: pro/includes/payments/functions.php:94
6269
+ msgid "Hungarian Forint"
6270
+ msgstr ""
6271
 
6272
+ #: pro/includes/payments/functions.php:102
6273
+ msgid "Israeli New Sheqel"
 
 
6274
  msgstr ""
 
 
6275
 
6276
+ #: pro/includes/payments/functions.php:110
6277
+ msgid "Malaysian Ringgit"
6278
+ msgstr ""
6279
 
6280
+ #: pro/includes/payments/functions.php:118
6281
+ msgid "Mexican Peso"
 
 
6282
  msgstr ""
 
 
 
6283
 
6284
+ #: pro/includes/payments/functions.php:126
6285
+ msgid "Norwegian Krone"
6286
+ msgstr ""
6287
+
6288
+ #: pro/includes/payments/functions.php:134
6289
+ msgid "New Zealand Dollar"
6290
+ msgstr ""
6291
+
6292
+ #: pro/includes/payments/functions.php:142
6293
+ msgid "Philippine Peso"
6294
+ msgstr ""
6295
+
6296
+ #: pro/includes/payments/functions.php:150
6297
+ msgid "Polish Zloty"
6298
+ msgstr ""
6299
+
6300
+ #: pro/includes/payments/functions.php:158
6301
+ msgid "Russian Ruble"
6302
+ msgstr ""
6303
+
6304
+ #: pro/includes/payments/functions.php:166
6305
+ msgid "Singapore Dollar"
6306
+ msgstr ""
6307
+
6308
+ #: pro/includes/payments/functions.php:174
6309
+ msgid "South African Rand"
6310
+ msgstr ""
6311
+
6312
+ #: pro/includes/payments/functions.php:182
6313
+ msgid "Swedish Krona"
6314
+ msgstr ""
6315
+
6316
+ #: pro/includes/payments/functions.php:190
6317
+ msgid "Swiss Franc"
6318
+ msgstr ""
6319
 
6320
+ #: pro/includes/payments/functions.php:198
6321
+ msgid "Taiwan New Dollar"
6322
+ msgstr ""
6323
+
6324
+ #: pro/includes/payments/functions.php:206
6325
+ msgid "Thai Baht"
6326
+ msgstr ""
6327
+
6328
+ #: pro/includes/templates/class-donation.php:28
6329
+ #: pro/includes/templates/class-order.php:28
6330
  msgid "Click the Payments tab to configure your payment provider"
6331
  msgstr ""
6332
  "Cliquer sur l&rsquo;onglet paiements pour configurer votre prestataire de "
6333
  "paiement"
6334
 
6335
+ #: pro/includes/templates/class-donation.php:50
6336
+ #, fuzzy
6337
+ #| msgid "Donation Form"
6338
+ msgid "Donation Amount"
6339
+ msgstr "Formulaire de don"
6340
 
6341
+ #: pro/includes/templates/class-order.php:22
6342
+ #, fuzzy
6343
+ #| msgid ""
6344
+ #| "Collect payments for product and service orders with this ready-made form "
6345
+ #| "template. You can add and remove fields as needed."
6346
  msgid ""
6347
+ "Collect Payments for product and service orders with this ready-made form "
6348
  "template. You can add and remove fields as needed."
6349
  msgstr ""
6350
  "Encaisser des paiements pour les commandes de produits et de services avec "
6351
  "ce modèle de formulaire prêt à l&rsquo;emploi. Vous pouvez ajouter et "
6352
  "supprimer des champs à votre convenance."
6353
 
6354
+ #: pro/includes/templates/class-order.php:67
6355
+ #, fuzzy
6356
+ #| msgid "Available Fields"
6357
+ msgid "Available Items"
6358
+ msgstr "Champs disponibles"
6359
+
6360
+ #: pro/includes/templates/class-order.php:87
6361
+ msgid "Total Amount"
6362
  msgstr ""
 
 
6363
 
6364
+ #: pro/includes/templates/class-request-quote.php:40
6365
+ msgid "Business / Organization"
6366
+ msgstr ""
6367
 
6368
+ #: pro/includes/templates/class-request-quote.php:62
6369
+ #, fuzzy
6370
+ #| msgid "Required"
6371
+ msgid "Request"
6372
+ msgstr "Requis"
6373
+
6374
+ #: pro/wpforms-pro.php:189
6375
+ #, fuzzy
6376
+ #| msgid "Allowed File Extensions"
6377
+ msgid "File Extension"
6378
+ msgstr "Extensions de fichier autorisés"
6379
+
6380
+ #: pro/wpforms-pro.php:195
6381
+ #, fuzzy
6382
+ #| msgid "Field Size"
6383
+ msgid "File Size"
6384
+ msgstr "Taille du champ"
6385
+
6386
+ #: pro/wpforms-pro.php:201
6387
+ #, fuzzy
6388
+ #| msgid "1 hour"
6389
+ msgid "Time (12 hour)"
6390
+ msgstr "1 heure"
6391
+
6392
+ #: pro/wpforms-pro.php:207
6393
+ msgid "Time (24 hour)"
6394
  msgstr ""
 
 
6395
 
6396
+ #: pro/wpforms-pro.php:213
6397
+ #, fuzzy
6398
+ #| msgid "Payment Fields"
6399
+ msgid "Payment Required"
6400
+ msgstr "Champs de paiement"
6401
+
6402
+ #: pro/wpforms-pro.php:234
6403
+ msgid "Currency"
6404
+ msgstr "Devise"
6405
+
6406
+ #: pro/wpforms-pro.php:332
6407
+ msgid "Disable storing entry information in WordPress"
6408
+ msgstr ""
6409
+
6410
+ #: pro/wpforms-pro.php:414
6411
+ #, fuzzy
6412
+ #| msgid "Notification"
6413
+ msgid "Add New Notification"
6414
+ msgstr "Notification"
6415
+
6416
+ #: pro/wpforms-pro.php:591
6417
+ msgid "Send"
6418
+ msgstr ""
6419
 
6420
+ #: pro/wpforms-pro.php:592
6421
+ msgid "Don't send"
6422
+ msgstr ""
6423
+
6424
+ #: pro/wpforms-pro.php:594
6425
+ #, fuzzy
6426
+ #| msgid "Notification"
6427
+ msgid "this notification if"
6428
+ msgstr "Notification"
6429
+
6430
+ #: pro/wpforms-pro.php:595
6431
+ #, fuzzy
6432
+ #| msgid "Notifications"
6433
+ msgid "Email notifications"
6434
+ msgstr "Notifications"
6435
+
6436
+ #. translators: %s - Addons page URL in site admin area.
6437
+ #: pro/wpforms-pro.php:599
6438
  msgid ""
6439
+ "Install the <a href=\"%s\">Conditional Logic addon</a> to enable conditional "
6440
+ "logic for Email Notifications."
6441
  msgstr ""
 
 
 
6442
 
6443
+ #. translators: %s - URL to an announcement page.
6444
+ #: pro/wpforms-pro.php:650
6445
+ msgid ""
6446
+ "Conditional logic functionality is now included in the core WPForms plugin! "
6447
+ "The WPForms Conditional Logic addon can be removed without affecting your "
6448
+ "forms. For more details <a href=\"%s\" target=\"_blank\" rel=\"noopener "
6449
+ "noreferrer\">read our announcement</a>."
6450
  msgstr ""
 
 
6451
 
6452
+ #: wpforms.php:58
6453
+ #, fuzzy
6454
+ #| msgid "Please deactivate WPForms Lite before activating WPForms"
6455
+ msgid "Please deactivate WPForms Lite before activating WPForms."
6456
  msgstr "Veuillez désactiver WPForms Lite avant d&rsquo;activer WPForms"
6457
 
6458
+ #. Plugin URI of the plugin/theme
6459
+ #. Author URI of the plugin/theme
6460
+ msgid "https://wpforms.com"
6461
+ msgstr "https://wpforms.com"
6462
+
6463
+ #. Description of the plugin/theme
6464
+ msgid ""
6465
+ "Beginner friendly WordPress contact form plugin. Use our Drag & Drop form "
6466
+ "builder to create your WordPress forms."
6467
+ msgstr ""
6468
+ "Extension de formulaire de contact WordPress accessible aux débutants. "
6469
+ "Utiliser notre constructeur de formulaire par glisser / déposer pour créer "
6470
+ "vos formulaires WordPress."
6471
+
6472
+ #~ msgid "No form title provided"
6473
+ #~ msgstr "Aucun titre de formulaire fourni"
6474
+
6475
+ #~ msgid ""
6476
+ #~ "You need to <a href=\"#\" class=\"wpforms-panel-switch\" data-panel="
6477
+ #~ "\"setup\">setup your form</a> before you can manage these options."
6478
+ #~ msgstr ""
6479
+ #~ "Vous devez <a href=\"#\" class=\"wpforms-panel-switch\" data-panel=\"setup"
6480
+ #~ "\">configurer votre formulaire</a> avant de pouvoir gérer ces options."
6481
+
6482
+ #~ msgid "Hide form title and description area"
6483
+ #~ msgstr "Masquer la zone de titre et de description du formulaire"
6484
+
6485
+ #~ msgid "Last Previous Label"
6486
+ #~ msgstr "Libellé dernière précédente"
6487
+
6488
+ #~ msgid "No Addons Available for WPForms Basic License"
6489
+ #~ msgstr "Aucune extension disponible pour la licence basique de WPForms"
6490
+
6491
+ #~ msgid ""
6492
+ #~ "WPForms Basic license does not come with premium extensions at this "
6493
+ #~ "point. Please upgrade your account to unlock the features below."
6494
+ #~ msgstr ""
6495
+ #~ "La licence basique de WPForms ne comporte pas d&rsquo;extensions premium "
6496
+ #~ "à ce stade. Veuillez mettre à jour votre compte pour déverrouiller les "
6497
+ #~ "fonctionnalités ci-dessous."
6498
+
6499
+ #~ msgid "There are no active forms."
6500
+ #~ msgstr "Il n&rsquo;y a pas de formulaire actif."
6501
+
6502
+ #~ msgid "Advanced"
6503
+ #~ msgstr "Avancé"
6504
+
6505
+ #~ msgid "General settings updated."
6506
+ #~ msgstr "Réglages généraux enregistrés."
6507
+
6508
+ #~ msgid "License Key Type"
6509
+ #~ msgstr "Type de clé de licence"
6510
+
6511
+ #~ msgid "reCAPTCHA Secret key"
6512
+ #~ msgstr "Clé secrète ReCaptcha"
6513
+
6514
+ #~ msgid "Settings updated."
6515
+ #~ msgstr "Réglages enregistrés."
6516
+
6517
+ #~ msgid "Determines which currency to use for payments."
6518
+ #~ msgstr "Détermine quelle devise utiliser pour les paiements."
6519
+
6520
+ #~ msgid ""
6521
+ #~ "You do not have any marketing add-ons activated. You can head over to the "
6522
+ #~ "<a href=\"%s\">Add-Ons page</a> to install and activate the add-on for "
6523
+ #~ "your provider."
6524
+ #~ msgstr ""
6525
+ #~ "Vous n&rsquo;avez aucune extension marketing activée. Vous pouvez vous "
6526
+ #~ "rendre sur la <a href=\"%s\">page Extensions</a> pour installer et "
6527
+ #~ "activer l&rsquo;extension pour votre fournisseur."
6528
+
6529
+ #~ msgid "Getting Started"
6530
+ #~ msgstr "Guide de démarrage"
6531
+
6532
+ #~ msgid "What's New"
6533
+ #~ msgstr "Quoi de neuf"
6534
 
6535
  #~ msgid ""
6536
+ #~ "Use the tips below to get started using WPForms. You will be up and "
6537
+ #~ "running in no time."
6538
+ #~ msgstr ""
6539
+ #~ "Utiliser les conseils suivants pour commencer à utiliser WPForms. Vous "
6540
+ #~ "serez opérationnel en un rien de temps."
6541
+
6542
+ #~ msgid ""
6543
+ #~ "But in reality, the process is so intuitive that you can just start by "
6544
+ #~ "going to <a href=\"%s\">WPForms - > Add New</a>."
6545
+ #~ msgstr ""
6546
+ #~ "Mais en réalité, le processus est si intuitif que vous pouvez simplement "
6547
+ #~ "commencer en vous rendant sur <a href=\"%s\">WPForms - > Nouveau</a>."
6548
+
6549
+ #~ msgid "See all WPForms Features"
6550
+ #~ msgstr "Voir toutes les fonctionnalités de WPForms"
6551
+
6552
+ #~ msgid "edit"
6553
+ #~ msgstr "modifier"
6554
+
6555
+ #~ msgid "Unable to process the form entry."
6556
+ #~ msgstr "Impossible de traiter l&rsquo;entrée de formulaire."
6557
+
6558
+ #~ msgid "Process this form if"
6559
+ #~ msgstr "Traiter ce formulaire si"
6560
+
6561
+ #~ msgid "ZIP"
6562
+ #~ msgstr "Code postal"
6563
+
6564
+ #~ msgid "New"
6565
+ #~ msgstr "Créer"
6566
+
6567
+ #~ msgid "Check this to manual set form field values."
6568
+ #~ msgstr ""
6569
+ #~ "Cocher ceci pour définir manuellement les valeurs de champ de formulaire."
6570
+
6571
+ #~ msgid "1 minute"
6572
+ #~ msgstr "1 minute"
6573
+
6574
+ #~ msgid "Page Break "
6575
+ #~ msgstr "Saut de page "
6576
+
6577
+ #~ msgid "Add item choices for the form field."
6578
+ #~ msgstr "Ajouter un élément de choix pour le champ de formulaire."
6579
+
6580
+ #~ msgid "Click the payments tab to configure your payment provider"
6581
  #~ msgstr ""
6582
+ #~ "Cliquer sur l&rsquo;onglet paiements pour configurer votre prestataire de "
6583
+ #~ "paiement"
 
languages/wpforms-ru_RU.mo CHANGED
Binary file
languages/wpforms-ru_RU.po CHANGED
@@ -1,22 +1,24 @@
1
- # Copyright (C) 2017 WPForms
2
- # This file is distributed under the same license as the WPForms package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WPForms 1.4.0.1\n"
 
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
7
- "POT-Creation-Date: 2017-09-26 15:04:59+00:00\n"
8
- "PO-Revision-Date: 2017-09-28 16:22+0300\n"
9
  "Last-Translator: \n"
10
  "Language-Team: \n"
11
- "Language: ru_RU\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 2.0.4\n"
16
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
17
  "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
18
 
19
- #: includes/admin/admin.php:128 pro/includes/admin/class-addons.php:241
 
20
  msgid "Activate"
21
  msgstr "Активировать"
22
 
@@ -36,13 +38,13 @@ msgstr "Неактивный"
36
  msgid "Install Addon"
37
  msgstr "Установить"
38
 
39
- #: includes/admin/admin.php:134 includes/admin/builder/class-builder.php:297
40
  #: includes/admin/class-editor.php:97
41
  #: pro/includes/admin/entries/class-entries-single.php:601
42
  msgid "Cancel"
43
  msgstr "Отменить"
44
 
45
- #: includes/admin/admin.php:135 includes/admin/builder/class-builder.php:299
46
  #: includes/admin/class-editor.php:71 includes/class-preview.php:160
47
  msgid "Close"
48
  msgstr "Закрыть"
@@ -105,37 +107,83 @@ msgstr "Вы действительно хотите удалить эту фо
105
  msgid "Are you sure you want to duplicate this form?"
106
  msgstr "Вы действительно хотите создать дубликат этой формы?"
107
 
108
- #: includes/admin/admin.php:149 includes/admin/builder/class-builder.php:307
109
  msgid "Heads up!"
110
  msgstr "Осторожно!"
111
 
112
- #: includes/admin/admin.php:151 includes/admin/builder/class-builder.php:298
 
 
 
 
113
  msgid "OK"
114
  msgstr "OK"
115
 
116
- #: includes/admin/admin.php:152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  msgid "Are you sure you want to disconnect this account?"
118
  msgstr "Вы действительно хотите отключить эту учетную запись?"
119
 
120
- #: includes/admin/admin.php:153
121
  msgid "Could not authenticate with the provider."
122
  msgstr "Не удалось выполнить аутентификацию с поставщиком."
123
 
124
- #: includes/admin/admin.php:154
125
  msgid "Save and Refresh"
126
  msgstr "Сохранить и обновить"
127
 
128
- #: includes/admin/admin.php:155
 
 
 
 
129
  msgid "Upload or Choose Your Image"
130
  msgstr "Загрузить или выбрать изображение"
131
 
132
- #: includes/admin/admin.php:156
133
  msgid "Use Image"
134
  msgstr "Использовать изображение"
135
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  #. translators: %1$s - WPForms plugin name; %2$s - opening a link tag; %3$s -
137
  #. closing a link tag.
138
- #: includes/admin/admin.php:351
139
  msgid ""
140
  "Your site is running an outdated version of PHP that is no longer supported "
141
  "and may cause issues with %1$s. %2$sRead more%3$s for additional information."
@@ -180,29 +228,29 @@ msgstr "тип записи"
180
  msgid "taxonomy"
181
  msgstr "таксономия"
182
 
183
- #: includes/admin/builder/class-builder.php:284
184
- #: includes/class-conditional-logic-core.php:441
185
  msgid "AND"
186
  msgstr "И"
187
 
188
- #: includes/admin/builder/class-builder.php:286
189
  msgid "Add New Choices"
190
  msgstr "Добавить новые варианты"
191
 
192
- #: includes/admin/builder/class-builder.php:287
193
  #: includes/fields/class-base.php:363
194
  msgid "Bulk Add"
195
  msgstr "Массово добавить"
196
 
197
- #: includes/admin/builder/class-builder.php:288
198
  msgid "Hide Bulk Add"
199
  msgstr "Спрятать массовое добавление"
200
 
201
- #: includes/admin/builder/class-builder.php:289
202
  msgid "Add Choices (one per line)"
203
  msgstr "Добавить варианты (по одной в строке)"
204
 
205
- #: includes/admin/builder/class-builder.php:290
206
  msgid ""
207
  "Blue\n"
208
  "Red\n"
@@ -212,15 +260,15 @@ msgstr ""
212
  "Красный\n"
213
  "Зеленый"
214
 
215
- #: includes/admin/builder/class-builder.php:291
216
  msgid "Show presets"
217
  msgstr "Показать пресеты"
218
 
219
- #: includes/admin/builder/class-builder.php:292
220
  msgid "Hide presets"
221
  msgstr "Скрыть пресеты"
222
 
223
- #: includes/admin/builder/class-builder.php:296
224
  msgid ""
225
  "The {source} {type} contains over {limit} items ({total}). This may make the "
226
  "field difficult for your vistors to use and/or cause the form to be slow."
@@ -229,13 +277,13 @@ msgstr ""
229
  "затруднить использование вашими посетителями поля и/или привести к "
230
  "замедлению формы."
231
 
232
- #: includes/admin/builder/class-builder.php:300
233
  msgid ""
234
  "Due to form changes, conditional logic rules have been removed or updated:"
235
  msgstr ""
236
  "Из-за изменений формы, правила условной логики были удалены или обновлены:"
237
 
238
- #: includes/admin/builder/class-builder.php:301
239
  msgid ""
240
  "Are you sure you want to disable conditional logic? This will remove the "
241
  "rules for this field or setting."
@@ -243,7 +291,7 @@ msgstr ""
243
  "Вы уверены, что хотите отключить условную логику? Это действие удалит все "
244
  "правила для этого поля или настройки."
245
 
246
- #: includes/admin/builder/class-builder.php:302
247
  #: pro/includes/admin/entries/class-entries-list-table.php:212
248
  #: pro/includes/admin/entries/class-entries-list-table.php:223
249
  #: pro/includes/admin/entries/class-entries-list.php:399
@@ -251,43 +299,43 @@ msgstr ""
251
  msgid "Field"
252
  msgstr "Поле"
253
 
254
- #: includes/admin/builder/class-builder.php:303
255
  msgid "Field Locked"
256
  msgstr "Поле заблокировано"
257
 
258
- #: includes/admin/builder/class-builder.php:304
259
  msgid "This field cannot be deleted or duplicated."
260
  msgstr "Это поле нельзя удалить или дублировать."
261
 
262
- #: includes/admin/builder/class-builder.php:305
263
  msgid "Available Fields"
264
  msgstr "Доступные поля"
265
 
266
- #: includes/admin/builder/class-builder.php:306
267
  msgid "No fields available"
268
  msgstr "Нет доступных полей"
269
 
270
- #: includes/admin/builder/class-builder.php:309
271
  msgid "No email fields"
272
  msgstr "Нет полей электронной почты"
273
 
274
- #: includes/admin/builder/class-builder.php:310
275
  msgid "Are you sure you want to delete this notification?"
276
  msgstr "Вы уверены, что хотите удалить это уведомление?"
277
 
278
- #: includes/admin/builder/class-builder.php:311
279
  msgid "Enter a notification name"
280
  msgstr "Введите название уведомления"
281
 
282
- #: includes/admin/builder/class-builder.php:312
283
  msgid "Eg: User Confirmation"
284
  msgstr "Например: Подтверждение пользователя"
285
 
286
- #: includes/admin/builder/class-builder.php:313
287
  msgid "You must provide a notification name"
288
  msgstr "Вы должны указать название уведомления"
289
 
290
- #: includes/admin/builder/class-builder.php:314
291
  msgid ""
292
  "Form must contain one notification. To disable all notifications use the "
293
  "Notifications dropdown setting."
@@ -295,55 +343,55 @@ msgstr ""
295
  "Форма должна содержать как минимум одно уведомление. Чтобы отключить все "
296
  "уведомления, используйте настройку включения/отключения уведомлений."
297
 
298
- #: includes/admin/builder/class-builder.php:315 lite/wpforms-lite.php:84
299
- #: pro/wpforms-pro.php:408
300
  msgid "Default Notification"
301
  msgstr "Стандартное уведомление"
302
 
303
- #: includes/admin/builder/class-builder.php:316
304
- #: includes/admin/builder/class-builder.php:491
305
  msgid "Save"
306
  msgstr "Сохранить"
307
 
308
- #: includes/admin/builder/class-builder.php:317
309
  msgid "Saving ..."
310
  msgstr "Сохранение ..."
311
 
312
- #: includes/admin/builder/class-builder.php:318
313
  msgid "Saved!"
314
  msgstr "Сохранено!"
315
 
316
- #: includes/admin/builder/class-builder.php:319
317
  msgid "Save and Exit"
318
  msgstr "Сохранить и выйти"
319
 
320
- #: includes/admin/builder/class-builder.php:321
321
  #: includes/fields/class-base.php:550
322
  msgid "Show Layouts"
323
  msgstr "Показать макеты"
324
 
325
- #: includes/admin/builder/class-builder.php:322
326
  msgid "Hide Layouts"
327
  msgstr "Скрыть макеты"
328
 
329
- #: includes/admin/builder/class-builder.php:323
330
  msgid "Select your layout"
331
  msgstr "Выберите ваш макет"
332
 
333
- #: includes/admin/builder/class-builder.php:324
334
  msgid "Select your column"
335
  msgstr "Выберите вашу колонку"
336
 
337
- #: includes/admin/builder/class-builder.php:325
338
- #: includes/admin/builder/class-builder.php:446
339
  msgid "Loading"
340
  msgstr "Загрузка"
341
 
342
- #: includes/admin/builder/class-builder.php:331
343
  msgid "Use Template"
344
  msgstr "Использовать шаблон"
345
 
346
- #: includes/admin/builder/class-builder.php:332
347
  msgid ""
348
  "Changing templates on an existing form will DELETE existing form fields. Are "
349
  "you sure you want apply the new template?"
@@ -351,7 +399,7 @@ msgstr ""
351
  "Изменение шаблонов в существующей форме УДАЛИТ существующие поля формы. Вы "
352
  "уверены, что хотите применить новый шаблон?"
353
 
354
- #: includes/admin/builder/class-builder.php:333
355
  msgid ""
356
  "You are almost done. To embed this form on your site, please paste the "
357
  "following shortcode inside a post or page."
@@ -359,101 +407,101 @@ msgstr ""
359
  "Вы почти закончили. Чтобы внедрить эту форму на сайт, пожалуйста, вставьте "
360
  "следующий шорткод внутри записи или страницы."
361
 
362
- #: includes/admin/builder/class-builder.php:334
363
  msgid "Or you can follow the instructions in this video."
364
  msgstr "Или вы можете следовать инструкциям в этом видео."
365
 
366
- #: includes/admin/builder/class-builder.php:335
367
- #: includes/admin/builder/class-builder.php:496
368
  msgid "Exit"
369
  msgstr "Выход"
370
 
371
- #: includes/admin/builder/class-builder.php:337
372
  msgid "If you exit without saving, your changes will be lost."
373
  msgstr "Если не сохранитесь, внесённые изменения будут утеряны."
374
 
375
- #: includes/admin/builder/class-builder.php:338
376
  msgid "Are you sure you want to delete this field?"
377
  msgstr "Вы уверены, что хотите удалить это поле?"
378
 
379
- #: includes/admin/builder/class-builder.php:339
380
  msgid "Are you sure you want to duplicate this field?"
381
  msgstr "Вы уверено, что хотите создать дубликат этого поля?"
382
 
383
- #: includes/admin/builder/class-builder.php:340
384
  msgid "(copy)"
385
  msgstr "(копия)"
386
 
387
- #: includes/admin/builder/class-builder.php:341
388
  msgid "Please enter a form name."
389
  msgstr "Пожалуйста, введите название формы."
390
 
391
- #: includes/admin/builder/class-builder.php:342
392
  msgid "This item must contain at least one choice."
393
  msgstr "Этот элемент должен содержать по крайней мере один вариант."
394
 
395
- #: includes/admin/builder/class-builder.php:343
396
  #: includes/fields/class-base.php:253 includes/fields/class-base.php:599
397
- #: lite/wpforms-lite.php:76 pro/wpforms-pro.php:401
398
  msgid "Off"
399
  msgstr "Выкл"
400
 
401
- #: includes/admin/builder/class-builder.php:344
402
  #: includes/fields/class-base.php:253 lite/wpforms-lite.php:75
403
- #: pro/wpforms-pro.php:400
404
  msgid "On"
405
  msgstr "Вкл"
406
 
407
- #: includes/admin/builder/class-builder.php:345
408
  msgid "or"
409
  msgstr "или"
410
 
411
- #: includes/admin/builder/class-builder.php:346
412
  #: includes/templates/class-suggestion.php:61
413
  msgid "Other"
414
  msgstr "Другое"
415
 
416
- #: includes/admin/builder/class-builder.php:347
417
- #: includes/class-conditional-logic-core.php:367
418
  msgid "is"
419
  msgstr "является"
420
 
421
- #: includes/admin/builder/class-builder.php:348
422
- #: includes/class-conditional-logic-core.php:368
423
  msgid "is not"
424
  msgstr "не является"
425
 
426
- #: includes/admin/builder/class-builder.php:349
427
- #: includes/class-conditional-logic-core.php:369
428
  msgid "empty"
429
  msgstr "пусто"
430
 
431
- #: includes/admin/builder/class-builder.php:350
432
- #: includes/class-conditional-logic-core.php:370
433
  msgid "not empty"
434
  msgstr "не пусто"
435
 
436
- #: includes/admin/builder/class-builder.php:351
437
- #: includes/class-conditional-logic-core.php:375
438
  msgid "contains"
439
  msgstr "содержит"
440
 
441
- #: includes/admin/builder/class-builder.php:352
442
- #: includes/class-conditional-logic-core.php:376
443
  msgid "does not contain"
444
  msgstr "не содержит"
445
 
446
- #: includes/admin/builder/class-builder.php:353
447
- #: includes/class-conditional-logic-core.php:377
448
  msgid "starts with"
449
  msgstr "начинается с"
450
 
451
- #: includes/admin/builder/class-builder.php:354
452
- #: includes/class-conditional-logic-core.php:378
453
  msgid "ends with"
454
  msgstr "заканчивается на"
455
 
456
- #: includes/admin/builder/class-builder.php:355
457
  msgid ""
458
  "Form entries must be stored to accept payments. Please enable saving form "
459
  "entries in the General settings first."
@@ -461,92 +509,93 @@ msgstr ""
461
  "Записи формы должны храниться для принятия платежей. Сначала включите "
462
  "сохранение записей в основных настройках формы."
463
 
464
- #: includes/admin/builder/class-builder.php:356
465
  #: pro/includes/fields/class-page-break.php:199
466
  #: pro/includes/fields/class-page-break.php:521
467
  msgid "Previous"
468
  msgstr "Предыдущий"
469
 
470
- #: includes/admin/builder/class-builder.php:357
471
- #: includes/class-conditional-logic-core.php:441
472
  msgid "Create new rule"
473
  msgstr "Создать новое правило"
474
 
475
- #: includes/admin/builder/class-builder.php:358
476
  msgid "Add new group"
477
  msgstr "Добавить новую группу"
478
 
479
- #: includes/admin/builder/class-builder.php:359
480
- #: includes/class-conditional-logic-core.php:442
481
  msgid "Delete rule"
482
  msgstr "Удалить правило"
483
 
484
- #: includes/admin/builder/class-builder.php:361
485
  #: includes/admin/builder/functions.php:255 includes/fields/class-base.php:496
486
  msgid "Show Smart Tags"
487
  msgstr "Показать смарт-теги"
488
 
489
- #: includes/admin/builder/class-builder.php:362
490
  msgid "Hide Smart Tags"
491
  msgstr "Скрыть смарт-теги"
492
 
493
- #: includes/admin/builder/class-builder.php:363
494
- #: includes/class-conditional-logic-core.php:326
495
  msgid "-- Select Field --"
496
  msgstr "-- Выбрать поле --"
497
 
498
- #: includes/admin/builder/class-builder.php:364
499
- #: includes/class-conditional-logic-core.php:421
500
  msgid "-- Select Choice --"
501
  msgstr "-- Выбрать вариант --"
502
 
503
- #: includes/admin/builder/class-builder.php:397
504
  msgid "Countries"
505
  msgstr "Страны"
506
 
507
- #: includes/admin/builder/class-builder.php:401
508
  msgid "Countries Postal Code"
509
  msgstr "Почтовый индекс стран"
510
 
511
- #: includes/admin/builder/class-builder.php:405
512
  msgid "States"
513
  msgstr "Штаты"
514
 
515
- #: includes/admin/builder/class-builder.php:409
516
  msgid "States Postal Code"
517
  msgstr "Почтовый индекс штатов"
518
 
519
- #: includes/admin/builder/class-builder.php:413
520
  msgid "Months"
521
  msgstr "Месяцы"
522
 
523
- #: includes/admin/builder/class-builder.php:417
524
  msgid "Days"
525
  msgstr "Дни"
526
 
527
- #: includes/admin/builder/class-builder.php:469
528
  msgid "Now editing"
529
  msgstr "Сейчас редактируется"
530
 
531
- #: includes/admin/builder/class-builder.php:479
532
- #: pro/includes/admin/entries/class-entries-list.php:528
533
  msgid "Preview Form"
534
  msgstr "Предпросмотр формы"
535
 
536
- #: includes/admin/builder/class-builder.php:481
 
537
  #: includes/admin/overview/class-overview-table.php:182
538
  msgid "Preview"
539
  msgstr "Предпросмотр"
540
 
541
- #: includes/admin/builder/class-builder.php:484
542
  msgid "Embed Form"
543
  msgstr "Встроить форму"
544
 
545
- #: includes/admin/builder/class-builder.php:486
546
  msgid "Embed"
547
  msgstr "Шорткод"
548
 
549
- #: includes/admin/builder/class-builder.php:489
550
  msgid "Save Form"
551
  msgstr "Сохранить форму"
552
 
@@ -575,7 +624,9 @@ msgstr ""
575
  "\">настроить вашу форм</a>, прежде чем вы cможете управлять полями."
576
 
577
  #: includes/admin/builder/panels/class-fields.php:123
578
- #: includes/admin/builder/panels/class-settings.php:130
 
 
579
  msgid "Submit"
580
  msgstr "Отправить"
581
 
@@ -695,12 +746,12 @@ msgid "General"
695
  msgstr "Общие"
696
 
697
  #: includes/admin/builder/panels/class-settings.php:58 lite/wpforms-lite.php:61
698
- #: lite/wpforms-lite.php:71 pro/wpforms-pro.php:387 pro/wpforms-pro.php:396
699
  msgid "Notifications"
700
  msgstr "Уведомления"
701
 
702
  #: includes/admin/builder/panels/class-settings.php:59
703
- #: includes/admin/builder/panels/class-settings.php:187
704
  msgid "Confirmation"
705
  msgstr "Подтверждение"
706
 
@@ -714,7 +765,7 @@ msgstr ""
714
 
715
  #: includes/admin/builder/panels/class-settings.php:94
716
  #: includes/admin/builder/panels/class-setup.php:55
717
- #: includes/class-smart-tags.php:37
718
  msgid "Form Name"
719
  msgstr "Название формы"
720
 
@@ -723,14 +774,10 @@ msgid "Form Description"
723
  msgstr "Описание формы"
724
 
725
  #: includes/admin/builder/panels/class-settings.php:111
726
- msgid "Hide form name and description area"
727
- msgstr "Скрыть имя и описание формы"
728
-
729
- #: includes/admin/builder/panels/class-settings.php:118
730
  msgid "Form CSS Class"
731
  msgstr "CSS класс формы"
732
 
733
- #: includes/admin/builder/panels/class-settings.php:120
734
  msgid ""
735
  "Enter CSS class names for the form wrapper. Multiple class names should be "
736
  "separated with spaces."
@@ -738,15 +785,15 @@ msgstr ""
738
  "Введите имена классов CSS для обертки формы. Имена классов должны быть "
739
  "разделены пробелами."
740
 
741
- #: includes/admin/builder/panels/class-settings.php:128
742
  msgid "Submit Button Text"
743
  msgstr "Текст кнопки Отправить"
744
 
745
- #: includes/admin/builder/panels/class-settings.php:138
746
  msgid "Submit Button Processing Text"
747
  msgstr "Текст на кнопке во время отправки"
748
 
749
- #: includes/admin/builder/panels/class-settings.php:140
750
  msgid ""
751
  "Enter the submit button text you would like the button display while the "
752
  "form submit is processing."
@@ -754,11 +801,11 @@ msgstr ""
754
  "Введите текст для кнопки Отправить, который вы хотите, чтобы отображался на "
755
  "кнопке во время отправки формы."
756
 
757
- #: includes/admin/builder/panels/class-settings.php:148
758
  msgid "Submit Button CSS Class"
759
  msgstr "CSS класс кнопки отправки формы"
760
 
761
- #: includes/admin/builder/panels/class-settings.php:150
762
  msgid ""
763
  "Enter CSS class names for the form submit button. Multiple names should be "
764
  "separated with spaces."
@@ -766,53 +813,55 @@ msgstr ""
766
  "Введите имена классов CSS для кнопки отправки формы. Несколько имен следует "
767
  "разделять пробелами."
768
 
769
- #: includes/admin/builder/panels/class-settings.php:158
770
  msgid "Enable anti-spam honeypot"
771
  msgstr "Включить анти-спам"
772
 
773
- #: includes/admin/builder/panels/class-settings.php:169
774
  msgid "Enable Google invisible reCAPTCHA"
775
  msgstr "Включить невидимую Google reCAPTCHA"
776
 
777
- #: includes/admin/builder/panels/class-settings.php:169
778
  msgid "Enable Google reCAPTCHA (v2)"
779
  msgstr "Включить Google reCAPTCHA (v2)"
780
 
781
- #: includes/admin/builder/panels/class-settings.php:194
782
  msgid "Confirmation Type"
783
  msgstr "Тип подтверждения"
784
 
785
- #: includes/admin/builder/panels/class-settings.php:198
786
  #: includes/templates/class-suggestion.php:76 lite/wpforms-lite.php:189
787
- #: pro/wpforms-pro.php:542
788
  msgid "Message"
789
  msgstr "Сообщение"
790
 
791
- #: includes/admin/builder/panels/class-settings.php:199
792
  msgid "Show Page"
793
  msgstr "Показать страницу"
794
 
795
- #: includes/admin/builder/panels/class-settings.php:200
796
  msgid "Go to URL (Redirect)"
797
  msgstr "Перенаправить на URL (редирект)"
798
 
799
- #: includes/admin/builder/panels/class-settings.php:209
800
  msgid "Confirmation Message"
801
  msgstr "Подтверждающее сообщение"
802
 
803
- #: includes/admin/builder/panels/class-settings.php:211
 
 
804
  msgid "Thanks for contacting us! We will be in touch with you shortly."
805
  msgstr "Спасибо, что написали нам! Мы скоро свяжемся с вами."
806
 
807
- #: includes/admin/builder/panels/class-settings.php:222
808
  msgid "Automatically scroll to the confirmation message"
809
  msgstr "Автоматически прокрутить к сообщению подтверждения"
810
 
811
- #: includes/admin/builder/panels/class-settings.php:235
812
  msgid "Confirmation Page"
813
  msgstr "Страница подтверждения"
814
 
815
- #: includes/admin/builder/panels/class-settings.php:245
816
  msgid "Confirmation Redirect URL"
817
  msgstr "URL-адрес перенаправления подтверждения"
818
 
@@ -913,7 +962,7 @@ msgstr ""
913
  #. Author of the plugin/theme
914
  #: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
915
  #: includes/admin/class-menu.php:51 includes/admin/class-menu.php:103
916
- #: includes/integrations.php:45
917
  msgid "WPForms"
918
  msgstr "WPForms"
919
 
@@ -937,7 +986,7 @@ msgstr "Записи формы"
937
  #: includes/admin/class-menu.php:72
938
  #: includes/admin/overview/class-overview-table.php:174
939
  #: pro/includes/admin/entries/class-entries-list.php:332
940
- #: pro/wpforms-pro.php:322
941
  msgid "Entries"
942
  msgstr "Записи"
943
 
@@ -1019,12 +1068,12 @@ msgstr "Настройки успешно сохранены."
1019
 
1020
  #: includes/admin/class-settings.php:168 includes/admin/class-settings.php:173
1021
  #: includes/admin/class-settings.php:178 includes/admin/class-settings.php:183
1022
- #: pro/wpforms-pro.php:154
1023
  msgid "Save Settings"
1024
  msgstr "Сохранить настройки"
1025
 
1026
- #: includes/admin/class-settings.php:171 includes/admin/class-settings.php:276
1027
- #: includes/admin/class-settings.php:365 includes/fields/class-email.php:21
1028
  #: includes/fields/class-email.php:68 includes/fields/class-email.php:306
1029
  #: includes/templates/class-contact.php:41
1030
  #: includes/templates/class-subscribe.php:44
@@ -1035,7 +1084,7 @@ msgstr "Сохранить настройки"
1035
  msgid "Email"
1036
  msgstr "Email"
1037
 
1038
- #: includes/admin/class-settings.php:176 includes/admin/class-settings.php:316
1039
  msgid "reCAPTCHA"
1040
  msgstr "reCAPTCHA"
1041
 
@@ -1043,8 +1092,8 @@ msgstr "reCAPTCHA"
1043
  msgid "Validation"
1044
  msgstr "Валидация"
1045
 
1046
- #: includes/admin/class-settings.php:186 includes/admin/class-settings.php:386
1047
- #: includes/admin/class-settings.php:393
1048
  msgid "Integrations"
1049
  msgstr "Интеграции"
1050
 
@@ -1135,11 +1184,22 @@ msgstr ""
1135
  "всему сайту. Актуально только если у вашего сайта проблемы с совместимостью "
1136
  "или вам сказала это сделать служба поддержки."
1137
 
1138
- #: includes/admin/class-settings.php:283
 
 
 
 
 
 
 
 
 
 
 
1139
  msgid "Template"
1140
  msgstr "Шаблон"
1141
 
1142
- #: includes/admin/class-settings.php:284
1143
  msgid ""
1144
  "Determines how email notifications will be formatted. HTML Templates are the "
1145
  "default."
@@ -1147,19 +1207,19 @@ msgstr ""
1147
  "Определяет способ форматирования уведомлений по электронной почте. Шаблон "
1148
  "HTML выбран по умолчанию."
1149
 
1150
- #: includes/admin/class-settings.php:288
1151
  msgid "HTML Template"
1152
  msgstr "HTML шаблон"
1153
 
1154
- #: includes/admin/class-settings.php:289
1155
  msgid "Plain text"
1156
  msgstr "Простой текст"
1157
 
1158
- #: includes/admin/class-settings.php:294
1159
  msgid "Header Image"
1160
  msgstr "Картинка шапки"
1161
 
1162
- #: includes/admin/class-settings.php:295
1163
  msgid ""
1164
  "Upload or choose a logo to be displayed at the top of email notifications."
1165
  "<br>Recommended size is 300x100 or smaller for best support on all devices."
@@ -1168,19 +1228,19 @@ msgstr ""
1168
  "email уведомлений. <br>Рекомендуемый размер 300x100 или меньше для лучшей "
1169
  "поддержки на всех устройствах."
1170
 
1171
- #: includes/admin/class-settings.php:300
1172
  msgid "Background Color"
1173
  msgstr "Цвет фона"
1174
 
1175
- #: includes/admin/class-settings.php:301
1176
  msgid "Customize the background color of the HTML email template."
1177
  msgstr "Настройте цвет фона HTML шаблона электронной почты."
1178
 
1179
- #: includes/admin/class-settings.php:307
1180
  msgid "Carbon Copy"
1181
  msgstr "Копия письма"
1182
 
1183
- #: includes/admin/class-settings.php:308
1184
  msgid ""
1185
  "Check this if you would like to enable the ability to CC: email addresses in "
1186
  "the form notification settings."
@@ -1188,32 +1248,32 @@ msgstr ""
1188
  "Установите этот флажок, если вы хотите включить возможность использования "
1189
  "CC: email адресов в настройках уведомлений формы."
1190
 
1191
- #: includes/admin/class-settings.php:323
1192
  #: pro/includes/fields/class-date-time.php:154
1193
  msgid "Type"
1194
  msgstr "Тип"
1195
 
1196
- #: includes/admin/class-settings.php:327
1197
  msgid "v2 reCAPTCHA"
1198
  msgstr "v2 reCAPTCHA"
1199
 
1200
- #: includes/admin/class-settings.php:328
1201
  msgid "Invisible reCAPTCHA"
1202
  msgstr "Невидимая reCAPTCHA"
1203
 
1204
- #: includes/admin/class-settings.php:333
1205
  msgid "Site Key"
1206
  msgstr "Ключ сайта"
1207
 
1208
- #: includes/admin/class-settings.php:338
1209
  msgid "Secret Key"
1210
  msgstr "Секретный ключ"
1211
 
1212
- #: includes/admin/class-settings.php:346
1213
  msgid "Validation Messages"
1214
  msgstr "Сообщения о валидации"
1215
 
1216
- #: includes/admin/class-settings.php:346
1217
  msgid ""
1218
  "These messages are displayed to the user as they fill out a form in real-"
1219
  "time."
@@ -1221,11 +1281,11 @@ msgstr ""
1221
  "Эти сообщения отображаются пользователям в режиме реального времени, пока "
1222
  "они заполняют форму."
1223
 
1224
- #: includes/admin/class-settings.php:353 includes/fields/class-base.php:337
1225
  msgid "Required"
1226
  msgstr "Обязательное поле"
1227
 
1228
- #: includes/admin/class-settings.php:355 includes/class-frontend.php:1005
1229
  #: includes/fields/class-base.php:901 includes/fields/class-name.php:485
1230
  #: includes/fields/class-number.php:152
1231
  #: pro/includes/fields/class-address.php:767
@@ -1239,38 +1299,38 @@ msgstr "Обязательное поле"
1239
  msgid "This field is required."
1240
  msgstr "Это поле обязательное."
1241
 
1242
- #: includes/admin/class-settings.php:359
1243
  msgid "Website URL"
1244
  msgstr "Адрес сайта"
1245
 
1246
- #: includes/admin/class-settings.php:361 includes/class-frontend.php:1006
1247
  #: pro/includes/fields/class-url.php:159
1248
  msgid "Please enter a valid URL."
1249
  msgstr "Пожалуйста, введите действующий URL."
1250
 
1251
- #: includes/admin/class-settings.php:367 includes/class-frontend.php:1007
1252
  msgid "Please enter a valid email address."
1253
  msgstr "Пожалуйста, введите правильный email адрес."
1254
 
1255
- #: includes/admin/class-settings.php:371
1256
  msgid "Number"
1257
  msgstr "Число"
1258
 
1259
- #: includes/admin/class-settings.php:373 includes/class-frontend.php:1008
1260
  #: includes/fields/class-number.php:157
1261
  msgid "Please enter a valid number."
1262
  msgstr "Введите корректное число."
1263
 
1264
- #: includes/admin/class-settings.php:377
1265
  msgid "Confirm Value"
1266
  msgstr "Подтвердить значение"
1267
 
1268
- #: includes/admin/class-settings.php:379 includes/class-frontend.php:1009
1269
  #: pro/includes/fields/class-password.php:394
1270
  msgid "Field values do not match."
1271
  msgstr "Значения полей не совпадают."
1272
 
1273
- #: includes/admin/class-settings.php:386 includes/admin/class-settings.php:393
1274
  msgid ""
1275
  "Manage integrations with popular providers such as Constant Contact, "
1276
  "MailChimp, Zapier, and more."
@@ -1278,11 +1338,11 @@ msgstr ""
1278
  "Управляйте интеграцией с популярными поставщиками, такими как Constant "
1279
  "Contact, MailChimp, Zapier и другими."
1280
 
1281
- #: includes/admin/class-settings.php:495
1282
  msgid "Want to better protect your contact forms from spam?"
1283
  msgstr "Хотите лучше защитить свои контактные формы от спама?"
1284
 
1285
- #: includes/admin/class-settings.php:497
1286
  msgid ""
1287
  "WPForms custom captcha addon allows you to add custom questions captcha or "
1288
  "math questions captcha to your WordPress forms. Since we know spam is a huge "
@@ -1294,19 +1354,24 @@ msgstr ""
1294
  "знаем, что спам - это огромная проблема для контактных форм, WPForms идет "
1295
  "дальше, чтобы помочь вам защитить ваши формы."
1296
 
1297
- #: includes/admin/class-settings.php:499
1298
  msgid "Click here to Upgrade"
1299
  msgstr "Нажмите здесь для Обновления"
1300
 
1301
- #: includes/admin/class-tools.php:89
1302
- msgid "Import/Export"
1303
- msgstr "Импорт/Экспорт"
 
 
 
 
 
1304
 
1305
  #: includes/admin/class-tools.php:90
1306
  msgid "System Info"
1307
  msgstr "Информация о системе"
1308
 
1309
- #: includes/admin/class-tools.php:99
1310
  msgid ""
1311
  "Import was successfully finished. You can go and <a href=\"%s\">check your "
1312
  "forms</a>."
@@ -1314,31 +1379,168 @@ msgstr ""
1314
  "Импорт успешно завершен. Вы можете пойти и <a href=\"%s\">проверить ваши "
1315
  "формы</a>."
1316
 
1317
- #: includes/admin/class-tools.php:130
1318
- msgid "Form Import"
1319
- msgstr "Импорт формы"
1320
 
1321
- #: includes/admin/class-tools.php:131
1322
- msgid "Select an export file."
1323
- msgstr "Выберите файл экспорта."
1324
 
1325
- #: includes/admin/class-tools.php:136
1326
  msgid "No file chosen"
1327
  msgstr "Файл не выбран"
1328
 
1329
- #: includes/admin/class-tools.php:138
1330
  msgid "Choose a file&hellip;"
1331
  msgstr "Выберите файл&hellip;"
1332
 
1333
- #: includes/admin/class-tools.php:144
1334
- msgid "Import"
1335
- msgstr "Импорт"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1336
 
1337
- #: includes/admin/class-tools.php:150
1338
  msgid "Form Export"
1339
  msgstr "Экспорт формы"
1340
 
1341
- #: includes/admin/class-tools.php:151
1342
  msgid ""
1343
  "Form exports files can be used to create a backup of your forms or to import "
1344
  "forms into another site."
@@ -1346,25 +1548,21 @@ msgstr ""
1346
  "Файлы экспорта форм могут использоваться для создания резервной копии ваших "
1347
  "форм или для импорта форм на другой сайт."
1348
 
1349
- #: includes/admin/class-tools.php:156
1350
  msgid "Select form(s)"
1351
  msgstr "Выберите форму(ы)"
1352
 
1353
- #: includes/admin/class-tools.php:163
1354
  msgid "You need to create a form before you can use form export."
1355
  msgstr ""
1356
  "Вам необходимо создать форму, прежде чем вы сможете использовать экспорт "
1357
  "формы."
1358
 
1359
- #: includes/admin/class-tools.php:169
1360
- msgid "Export"
1361
- msgstr "Экспорт"
1362
-
1363
- #: includes/admin/class-tools.php:174
1364
  msgid "Form Template Export"
1365
  msgstr "Шаблон формы"
1366
 
1367
- #: includes/admin/class-tools.php:177
1368
  msgid ""
1369
  "The following code can be used to register your custom form template. Copy "
1370
  "and paste the following code to your theme's functions.php file or include "
@@ -1374,7 +1572,7 @@ msgstr ""
1374
  "шаблона форм. Скопируйте и вставьте следующий код в файл functions.php вашей "
1375
  "темы или включите его во внешний файл."
1376
 
1377
- #: includes/admin/class-tools.php:178
1378
  msgid ""
1379
  "For more information <a href=\"%s\" target=\"blank\" rel=\"noopener "
1380
  "noreferrer\">see our documentation</a>."
@@ -1382,7 +1580,7 @@ msgstr ""
1382
  "Для получения дополнительной информации <a href=\"%s\" target=\"blank\" rel="
1383
  "\"noopener noreferrer\">почитайте нашу документацию</a>."
1384
 
1385
- #: includes/admin/class-tools.php:182
1386
  msgid ""
1387
  "Select a form to generate PHP code that can be used to register a custom "
1388
  "form template."
@@ -1390,28 +1588,28 @@ msgstr ""
1390
  "Выберите форму для генерации PHP-кода, который можно использовать для "
1391
  "регистрации пользовательского шаблона формы."
1392
 
1393
- #: includes/admin/class-tools.php:194
1394
  msgid "You need to create a form before you can generate a template."
1395
  msgstr "Вам нужно создать форму, прежде чем вы сможете сгенерировать шаблон."
1396
 
1397
- #: includes/admin/class-tools.php:200
1398
  msgid "Export Template"
1399
  msgstr "Экспорт шаблона"
1400
 
1401
- #: includes/admin/class-tools.php:215
1402
  msgid "System Information"
1403
  msgstr "Системная информация"
1404
 
1405
- #: includes/admin/class-tools.php:277
1406
  msgid "Please upload a valid .json form export file."
1407
  msgstr "Пожалуйста, загрузите корректный файл .json экспорта."
1408
 
1409
- #: includes/admin/class-tools.php:278
1410
- #: pro/includes/admin/entries/class-entries-export.php:340
1411
  msgid "Error"
1412
  msgstr "Ошибка"
1413
 
1414
- #: includes/admin/class-tools.php:402 includes/admin/class-tools.php:406
1415
  #: pro/includes/admin/entries/class-entries-single.php:733
1416
  #: pro/includes/admin/entries/class-entries-single.php:1087
1417
  msgid "M j, Y @ g:ia"
@@ -1576,7 +1774,7 @@ msgstr ""
1576
  msgid "See All Features"
1577
  msgstr "Все возможности"
1578
 
1579
- #: includes/admin/class-welcome.php:226 lite/wpforms-lite.php:442
1580
  msgid "Upgrade to PRO"
1581
  msgstr "Обновить до PRO"
1582
 
@@ -1629,10 +1827,6 @@ msgstr "PRO"
1629
  msgid "per year"
1630
  msgstr "в год"
1631
 
1632
- #: includes/admin/class-welcome.php:247 pro/includes/admin/class-addons.php:249
1633
- msgid "Upgrade Now"
1634
- msgstr "Обновить сейчас"
1635
-
1636
  #: includes/admin/class-welcome.php:258
1637
  msgid "Testimonials"
1638
  msgstr "Отзывы"
@@ -1662,9 +1856,55 @@ msgstr ""
1662
  "действительно работают, меньше чем за 2 минуты, не прикасаясь к коду. Это "
1663
  "очень даже стоит инвестиций."
1664
 
1665
- #: includes/admin/class-welcome.php:285
1666
- msgid "Upgrade to WPForms Pro"
1667
- msgstr "Обновиться до WPForms Pro"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1668
 
1669
  #: includes/admin/overview/class-overview-table.php:53
1670
  #: includes/fields/class-name.php:21 includes/fields/class-name.php:276
@@ -1690,10 +1930,6 @@ msgstr "Создано"
1690
  msgid "Edit this form"
1691
  msgstr "Редактировать форму"
1692
 
1693
- #: includes/admin/overview/class-overview-table.php:160
1694
- msgid "Edit"
1695
- msgstr "Изменить"
1696
-
1697
  #: includes/admin/overview/class-overview-table.php:173
1698
  msgid "View entries"
1699
  msgstr "Посмотреть записи"
@@ -1761,10 +1997,12 @@ msgstr "Вы используете WPForms Lite - лицензия не тре
1761
  #: includes/admin/settings-api.php:98
1762
  msgid ""
1763
  "To unlock more features consider <a href=\"%s\" target=\"_blank\" rel="
1764
- "\"noopener noreferrer\">upgrading to Pro</a>.</p>"
 
1765
  msgstr ""
1766
- "Чтобы разблокировать больше функций, рассмотрите возможность <a href=\"%s\" "
1767
- "target=\"_blank\" rel=\"noopener noreferrer\">обновления до Pro</a>.</p>"
 
1768
 
1769
  #: includes/admin/settings-api.php:106
1770
  msgid "Verify Key"
@@ -1791,60 +2029,60 @@ msgstr ""
1791
  msgid "Upload Image"
1792
  msgstr "Загрузить изображение"
1793
 
1794
- #: includes/class-conditional-logic-core.php:158
1795
  msgid "this field if"
1796
  msgstr "это поле, если"
1797
 
1798
- #: includes/class-conditional-logic-core.php:165
1799
  msgid "Show"
1800
  msgstr "Показать"
1801
 
1802
- #: includes/class-conditional-logic-core.php:166
1803
  msgid "Hide"
1804
  msgstr "Спрятать"
1805
 
1806
- #: includes/class-conditional-logic-core.php:201
1807
- #: includes/class-conditional-logic-core.php:258
1808
  msgid "Enable conditional logic"
1809
  msgstr "Включить условную логику"
1810
 
1811
- #: includes/class-conditional-logic-core.php:202
1812
  msgid "Check this option to enable conditional logic on this field."
1813
  msgstr "Установите этот флажок, чтобы включить условную логику в этом поле."
1814
 
1815
- #: includes/class-conditional-logic-core.php:260
1816
  msgid "Check this option to enable conditional logic."
1817
  msgstr "Установите этот флажок, чтобы включить условную логику."
1818
 
1819
- #: includes/class-conditional-logic-core.php:457
1820
  msgid "Add rule group"
1821
  msgstr "Добавить группу правил"
1822
 
1823
  #: includes/class-frontend.php:1010
1824
  #: pro/includes/fields/class-file-upload.php:367
1825
  #: pro/includes/fields/class-file-upload.php:383
1826
- #: pro/includes/fields/class-file-upload.php:400 pro/wpforms-pro.php:187
1827
  msgid "File type is not allowed."
1828
  msgstr "Тип файла не разрешается."
1829
 
1830
- #: includes/class-frontend.php:1011 pro/wpforms-pro.php:193
1831
  msgid "File exceeds max size allowed."
1832
  msgstr "Размер файла превышает максимально разрешенный размер."
1833
 
1834
- #: includes/class-frontend.php:1012 pro/wpforms-pro.php:199
1835
  msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
1836
  msgstr "Введите время в 12-часовом формате AM / PM (например, 8:45 AM)."
1837
 
1838
- #: includes/class-frontend.php:1013 pro/wpforms-pro.php:205
1839
  msgid "Please enter time in 24-hour format (eg 22:45)."
1840
  msgstr "Введите время в 24-часовом формате (например, 22:45)."
1841
 
1842
  #: includes/class-frontend.php:1014
1843
- #: pro/includes/fields/class-payment-total.php:199 pro/wpforms-pro.php:211
1844
  msgid "Payment is required."
1845
  msgstr "Оплата обязательна."
1846
 
1847
- #: includes/class-frontend.php:1015 pro/wpforms-pro.php:217
1848
  msgid "Please enter a valid credit card number."
1849
  msgstr "Укажите действительный номер карты."
1850
 
@@ -1941,6 +2179,10 @@ msgstr ""
1941
  msgid "WPForms Preview"
1942
  msgstr "Предпросмотр WPForms"
1943
 
 
 
 
 
1944
  #: includes/class-preview.php:375
1945
  msgid "This is a preview of your form. This page is not publicly accessible."
1946
  msgstr ""
@@ -1956,56 +2198,56 @@ msgctxt "Form name"
1956
  msgid "%s Preview"
1957
  msgstr "Просмотр %s"
1958
 
1959
- #: includes/class-process.php:79
1960
  msgid "Invalid form."
1961
  msgstr "Неверная форма."
1962
 
1963
- #: includes/class-process.php:111
1964
  msgid "Incorrect reCAPTCHA, please try again."
1965
  msgstr "Ошибка reCAPTCHA, пожалуйста, попробуйте еще раз."
1966
 
1967
- #: includes/class-process.php:114
1968
  msgid "reCAPTCHA is required."
1969
  msgstr "reCAPTCHA обязательна."
1970
 
1971
- #: includes/class-process.php:126 includes/class-process.php:174
1972
  msgid "Form has not been submitted, please see the errors below."
1973
  msgstr "Форма не была отправлена, пожалуйста, проверьте ошибки."
1974
 
1975
- #: includes/class-process.php:135
1976
  msgid "WPForms honeypot field triggered."
1977
  msgstr "Сработало анти-спам поле WPForms."
1978
 
1979
- #: includes/class-process.php:354 pro/wpforms-pro.php:380
1980
  msgctxt "Form name"
1981
  msgid "New %s Entry"
1982
  msgstr "Новая запись: %s"
1983
 
1984
- #: includes/class-smart-tags.php:34
1985
  msgid "Site Administrator Email"
1986
  msgstr "Электронная почта администратора"
1987
 
1988
- #: includes/class-smart-tags.php:35
1989
  msgid "Entry ID"
1990
  msgstr "ID Записи"
1991
 
1992
- #: includes/class-smart-tags.php:36
1993
  msgid "Form ID"
1994
  msgstr "ID формы"
1995
 
1996
- #: includes/class-smart-tags.php:38
1997
  msgid "Embedded Post/Page Title"
1998
  msgstr "Заголовок записи, где встроено"
1999
 
2000
- #: includes/class-smart-tags.php:39
2001
  msgid "Embedded Post Page URL"
2002
  msgstr "URL записи, где встроено"
2003
 
2004
- #: includes/class-smart-tags.php:40
2005
  msgid "Embedded Post/Page ID"
2006
  msgstr "ID записи, где встроено"
2007
 
2008
- #: includes/class-smart-tags.php:41
2009
  #: pro/includes/admin/entries/class-entries-export.php:203
2010
  #: pro/includes/admin/entries/class-entries-list-table.php:165
2011
  #: pro/includes/fields/class-date-time.php:73
@@ -2016,55 +2258,55 @@ msgstr "ID записи, где встроено"
2016
  msgid "Date"
2017
  msgstr "Дата"
2018
 
2019
- #: includes/class-smart-tags.php:42
2020
  msgid "Query String Variable"
2021
  msgstr "Переменная строка запроса"
2022
 
2023
- #: includes/class-smart-tags.php:43
2024
  msgid "User IP Address"
2025
  msgstr "IP адрес пользователя"
2026
 
2027
- #: includes/class-smart-tags.php:44
2028
  msgid "User ID"
2029
  msgstr "ID пользователя"
2030
 
2031
- #: includes/class-smart-tags.php:45
2032
  msgid "User Name"
2033
  msgstr "Имя пользователя"
2034
 
2035
- #: includes/class-smart-tags.php:46
2036
  msgid "User Email"
2037
  msgstr "Email пользователя"
2038
 
2039
- #: includes/class-smart-tags.php:47
2040
  msgid "Author ID"
2041
  msgstr "ID автора"
2042
 
2043
- #: includes/class-smart-tags.php:48
2044
  msgid "Author Name"
2045
  msgstr "Имя автора"
2046
 
2047
- #: includes/class-smart-tags.php:49
2048
  msgid "Author Email"
2049
  msgstr "Email автора"
2050
 
2051
- #: includes/class-smart-tags.php:50
2052
  msgid "Referrer URL"
2053
  msgstr "URL отправителя"
2054
 
2055
- #: includes/class-smart-tags.php:51
2056
  msgid "Login URL"
2057
  msgstr "URL логина"
2058
 
2059
- #: includes/class-smart-tags.php:52
2060
  msgid "Logout URL"
2061
  msgstr "Страница выхода"
2062
 
2063
- #: includes/class-smart-tags.php:53
2064
  msgid "Register URL"
2065
  msgstr "URL страницы регистрации"
2066
 
2067
- #: includes/class-smart-tags.php:54
2068
  msgid "Lost Password URL"
2069
  msgstr "URL-адрес страницы восстановления пароля"
2070
 
@@ -2111,14 +2353,14 @@ msgstr "Показывать описание формы"
2111
  #: includes/emails/class-emails.php:331
2112
  msgid ""
2113
  "You cannot send emails with WPForms_WP_Emails until init/admin_init has been "
2114
- "reached"
2115
  msgstr ""
2116
- "Вы не можете отправлять email с WPForms пока не дошло дело до хука init/"
2117
- "admin_init"
2118
 
2119
  #: includes/emails/class-emails.php:472 includes/emails/class-emails.php:495
2120
- #: includes/fields/class-checkbox.php:193 includes/fields/class-radio.php:193
2121
- #: includes/fields/class-select.php:199
2122
  msgid "(empty)"
2123
  msgstr "(пусто)"
2124
 
@@ -2126,7 +2368,7 @@ msgstr "(пусто)"
2126
  msgid "Field ID #"
2127
  msgstr "ID поля #"
2128
 
2129
- #: includes/emails/class-emails.php:505
2130
  msgid "An empty form was submitted."
2131
  msgstr "Была отправлена пустая форма."
2132
 
@@ -2340,17 +2582,17 @@ msgstr "Второй вариант"
2340
  msgid "Third Choice"
2341
  msgstr "Третий вариант"
2342
 
2343
- #: includes/fields/class-checkbox.php:89 includes/fields/class-radio.php:89
2344
- #: includes/fields/class-select.php:89
2345
- msgid "Check this to manually set form field values."
2346
- msgstr "Установите этот флажок для ручного ввода данных формы."
2347
-
2348
  #: includes/fields/class-checkbox.php:97 includes/fields/class-radio.php:97
2349
  #: includes/fields/class-select.php:97
2350
  msgid "Show Values"
2351
  msgstr "Показать значения"
2352
 
2353
- #: includes/fields/class-checkbox.php:211 includes/fields/class-radio.php:211
 
 
 
 
 
2354
  msgid ""
2355
  "Showing the first 20 choices.<br> All %d choices will be displayed when "
2356
  "viewing the form."
@@ -2443,41 +2685,1341 @@ msgstr "Имя"
2443
  msgid "First name field advanced options."
2444
  msgstr "Дополнительные опции поля имени."
2445
 
2446
- #: includes/fields/class-name.php:306
2447
- msgid "Middle Name"
2448
- msgstr "Отчество"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2449
 
2450
- #: includes/fields/class-name.php:306
2451
- msgid "Middle name field advanced options."
2452
- msgstr "Дополнительные опции поля отчества."
2453
 
2454
- #: includes/fields/class-name.php:321
2455
- msgid "Last Name"
2456
- msgstr "Фамилия"
2457
 
2458
- #: includes/fields/class-name.php:321
2459
- msgid "Last name field advanced options."
2460
- msgstr "Дополнительные опции поля фамилии."
2461
 
2462
- #: includes/fields/class-number.php:21
2463
- msgid "Numbers"
2464
- msgstr "Числа"
2465
 
2466
- #: includes/fields/class-radio.php:21
2467
- msgid "Multiple Choice"
2468
- msgstr "Радио-кнопки"
2469
 
2470
- #: includes/fields/class-select.php:21
2471
- msgid "Dropdown"
2472
- msgstr "Список"
2473
 
2474
- #: includes/fields/class-text.php:21
2475
- msgid "Single Line Text"
2476
- msgstr "Строка текста"
2477
 
2478
- #: includes/fields/class-textarea.php:21
2479
- msgid "Paragraph Text"
2480
- msgstr "Текст"
 
 
 
 
2481
 
2482
  #: includes/integrations.php:32
2483
  msgid "Select a form to display"
@@ -2495,10 +4037,6 @@ msgstr "Содержание"
2495
  msgid "Add your form"
2496
  msgstr "Добавить вашу форму"
2497
 
2498
- #: includes/integrations.php:53
2499
- msgid "Form"
2500
- msgstr "Форма"
2501
-
2502
  #: includes/integrations.php:57
2503
  msgid "Select a form to add it to your post or page."
2504
  msgstr "Выберите форму для добавления на вашу страницу или запись."
@@ -2531,8 +4069,8 @@ msgstr "Хотите показывать описание формы?"
2531
  msgid "Connection"
2532
  msgstr "Подключение"
2533
 
2534
- #: includes/providers/class-base.php:163 includes/providers/class-base.php:1116
2535
- #: includes/providers/class-base.php:1164
2536
  msgid "You do not have permission"
2537
  msgstr "У вас нет доступа"
2538
 
@@ -2556,24 +4094,24 @@ msgctxt "Name field label"
2556
  msgid "%s (Last)"
2557
  msgstr "%s (Фамилия)"
2558
 
2559
- #: includes/providers/class-base.php:702
2560
  msgid "Select Account"
2561
  msgstr "Выберите учетную запись"
2562
 
2563
- #: includes/providers/class-base.php:714
2564
- #: includes/providers/class-constant-contact.php:492
2565
  msgid "Add New Account"
2566
  msgstr "Добавить новую учётную запись"
2567
 
2568
- #: includes/providers/class-base.php:747
2569
  msgid "Select List"
2570
  msgstr "Выберите список"
2571
 
2572
- #: includes/providers/class-base.php:793
2573
  msgid "Select Groups"
2574
  msgstr "Выберите группы"
2575
 
2576
- #: includes/providers/class-base.php:795
2577
  msgid ""
2578
  "We also noticed that you have some segments in your list. You can select "
2579
  "specific list segments below if needed. This is optional."
@@ -2582,79 +4120,79 @@ msgstr ""
2582
  "необходимости можно выбрать определенный список сегментов ниже. Это не "
2583
  "обязательно."
2584
 
2585
- #: includes/providers/class-base.php:855 includes/providers/class-base.php:860
2586
  msgid "List Fields"
2587
  msgstr "Список полей"
2588
 
2589
- #: includes/providers/class-base.php:860
2590
  msgid "Available Form Fields"
2591
  msgstr "Доступные поля формы"
2592
 
2593
- #: includes/providers/class-base.php:934
2594
  msgid "Process"
2595
  msgstr "Обработать"
2596
 
2597
- #: includes/providers/class-base.php:935
2598
  msgid "Don't process"
2599
  msgstr "Не обрабатывать"
2600
 
2601
- #: includes/providers/class-base.php:937
2602
  msgid "this connection if"
2603
  msgstr "это подключение если"
2604
 
2605
- #: includes/providers/class-base.php:938
2606
  msgid "Marketing provider connection"
2607
  msgstr "Подключение поставщика услуг маркетинга"
2608
 
2609
- #: includes/providers/class-base.php:1052
2610
  msgctxt "Provider Type"
2611
  msgid "Add New %s"
2612
  msgstr "Добавить: %s"
2613
 
2614
- #: includes/providers/class-base.php:1124
2615
- #: includes/providers/class-base.php:1172
2616
  msgid "Missing data"
2617
  msgstr "Данные отсутствуют"
2618
 
2619
- #: includes/providers/class-base.php:1140
2620
  msgid "Connection missing"
2621
  msgstr "Отсутствует соединение"
2622
 
2623
- #: includes/providers/class-base.php:1184
2624
  msgid "Could not connect to the provider."
2625
  msgstr "Не удалось выполнить подключение к поставщику."
2626
 
2627
- #: includes/providers/class-base.php:1193
2628
- #: includes/providers/class-base.php:1266
2629
  msgctxt "Connection date"
2630
  msgid "Connected on: %s"
2631
  msgstr "Подключено: %s"
2632
 
2633
- #: includes/providers/class-base.php:1194
2634
- #: includes/providers/class-base.php:1267
2635
  msgid "Disconnect"
2636
  msgstr "Отключить"
2637
 
2638
  #. translators: %s - provider name.
2639
- #: includes/providers/class-base.php:1222
2640
  msgid "Connect to %s"
2641
  msgstr "Подключить к %s"
2642
 
2643
  #. translators: %s - provider name.
2644
- #: includes/providers/class-base.php:1249
2645
  msgid "Integrate %s with WPForms"
2646
  msgstr "Интегрируйте %s с WPForms"
2647
 
2648
- #: includes/providers/class-base.php:1252
2649
  msgid "Connected"
2650
  msgstr "Активно"
2651
 
2652
- #: includes/providers/class-base.php:1277
2653
  msgctxt "New Provider Account"
2654
  msgid "Add New Account"
2655
  msgstr "Добавить новую учётную запись"
2656
 
2657
- #: includes/providers/class-base.php:1284
2658
  msgid ""
2659
  "Please fill out all of the fields below to add your new provider account."
2660
  msgstr ""
@@ -2666,12 +4204,12 @@ msgid "Constant Contact Subscription stopped by conditional logic"
2666
  msgstr "Подписка Constant Contact остановлена условной логикой"
2667
 
2668
  #: includes/providers/class-constant-contact.php:134
2669
- #: includes/providers/class-constant-contact.php:307
2670
- #: includes/providers/class-constant-contact.php:394
2671
  msgid "Constant Contact API Error"
2672
  msgstr "Ошибка API Constant Contact"
2673
 
2674
- #: includes/providers/class-constant-contact.php:495
2675
  msgid ""
2676
  "Please fill out all of the fields below to register your new Constant "
2677
  "Contact account."
@@ -2679,16 +4217,16 @@ msgstr ""
2679
  "Пожалуйста, заполните все поля ниже, чтобы зарегистрировать новую учетную "
2680
  "запись Constant Contact."
2681
 
2682
- #: includes/providers/class-constant-contact.php:497
2683
- #: includes/providers/class-constant-contact.php:575
2684
  msgid ""
2685
  "Click here for documentation on connecting WPForms with Constant Contact."
2686
  msgstr ""
2687
  "Нажмите здесь для получения документации по подключению WPForms с Constant "
2688
  "Contact."
2689
 
2690
- #: includes/providers/class-constant-contact.php:502
2691
- #: includes/providers/class-constant-contact.php:580
2692
  msgid ""
2693
  "Because Constant Contact requires external authentication, you will need to "
2694
  "register WPForms with Constant Contact before you can proceed."
@@ -2697,26 +4235,26 @@ msgstr ""
2697
  "необходимо будет зарегистрировать WPForms с Constant Contact, прежде чем вы "
2698
  "сможете продолжить."
2699
 
2700
- #: includes/providers/class-constant-contact.php:506
2701
- #: includes/providers/class-constant-contact.php:584
2702
  msgid "Click here to register with Constant Contact"
2703
  msgstr "Нажмите здесь, чтобы зарегистрироваться в Constant Contact"
2704
 
2705
- #: includes/providers/class-constant-contact.php:509
2706
- #: includes/providers/class-constant-contact.php:587
2707
  msgid "Authorization Code"
2708
  msgstr "Код авторизации"
2709
 
2710
- #: includes/providers/class-constant-contact.php:511
2711
- #: includes/providers/class-constant-contact.php:589
2712
  msgid "Account Nickname"
2713
  msgstr "Псевдоним учетной записи"
2714
 
2715
- #: includes/providers/class-constant-contact.php:513
2716
  msgid "Connect"
2717
  msgstr "Подключить"
2718
 
2719
- #: includes/providers/class-constant-contact.php:550
2720
  msgid ""
2721
  "Get the most out of <strong>WPForms</strong> &mdash; use it with an active "
2722
  "Constant Contact account."
@@ -2724,12 +4262,12 @@ msgstr ""
2724
  "Получите максимальную отдачу от <strong>WPForms</strong> - используйте его с "
2725
  "активной учетной записью Constant Contact."
2726
 
2727
- #: includes/providers/class-constant-contact.php:553
2728
- #: includes/providers/class-constant-contact.php:639
2729
  msgid "Try Constant Contact for Free"
2730
  msgstr "Попробуйте Constant Contact бесплатно"
2731
 
2732
- #: includes/providers/class-constant-contact.php:554
2733
  msgid ""
2734
  "Learn More about the <a href=\"%s\" target=\"_blank\" rel=\"noopener "
2735
  "noreferrer\">power of email marketing</a>"
@@ -2737,7 +4275,7 @@ msgstr ""
2737
  "Узнайте больше о <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer"
2738
  "\">возможностях электронного маркетинга</a>"
2739
 
2740
- #: includes/providers/class-constant-contact.php:636
2741
  msgid ""
2742
  "Get the most out of the <strong>WPForms</strong> plugin &mdash; use it with "
2743
  "an active Constant Contact account."
@@ -2745,26 +4283,26 @@ msgstr ""
2745
  "Получите максимальную отдачу от плагина <strong>WPForms</strong> - "
2746
  "используйте его с активной учетной записью Constant Contact."
2747
 
2748
- #: includes/providers/class-constant-contact.php:640
2749
  msgid "Connect your existing account"
2750
  msgstr "Подключить вашу существующую учетную запись"
2751
 
2752
- #: includes/providers/class-constant-contact.php:641
2753
  msgid "Learn More about the <a href=\"%s\">power of email marketing</a>"
2754
  msgstr ""
2755
  "Узнайте больше о <a href=\"%s\">возможностях электронного маркетинга</a>"
2756
 
2757
- #: includes/providers/class-constant-contact.php:699
2758
  msgid "Grow Your Website with WPForms + Email Marketing"
2759
  msgstr "Развивайте свой сайт с помощью WPForms и email маркетинга"
2760
 
2761
- #: includes/providers/class-constant-contact.php:700
2762
  msgid "Wondering if email marketing is really worth your time?"
2763
  msgstr ""
2764
  "Хотите узнать, действительно ли маркетинг электронной почты стоит вашего "
2765
  "времени?"
2766
 
2767
- #: includes/providers/class-constant-contact.php:701
2768
  msgid ""
2769
  "Email is hands-down the most effective way to nurture leads and turn them "
2770
  "into customers, with a return on investment (ROI) of <strong>$44 back for "
@@ -2775,7 +4313,7 @@ msgstr ""
2775
  "инвестиций (ROI) в <strong>размере 44 доллара США за каждый потраченный 1 "
2776
  "доллар США</strong>, согласно Direct Marketing Association."
2777
 
2778
- #: includes/providers/class-constant-contact.php:702
2779
  msgid ""
2780
  "Here are 3 big reasons why every smart business in the world has an email "
2781
  "list:"
@@ -2783,7 +4321,7 @@ msgstr ""
2783
  "Вот 3 большие причины, по которым каждый умный бизнес в мире имеет список "
2784
  "адресов электронной почты:"
2785
 
2786
- #: includes/providers/class-constant-contact.php:706
2787
  msgid ""
2788
  "<strong>Email is still #1</strong> - At least 91% of consumers check their "
2789
  "email on a daily basis. You get direct access to your subscribers, without "
@@ -2794,7 +4332,7 @@ msgstr ""
2794
  "доступ к своим подписчикам, без необходимости играть по правилам и "
2795
  "алгоритмам социальных сетей."
2796
 
2797
- #: includes/providers/class-constant-contact.php:707
2798
  msgid ""
2799
  "<strong>You own your email list</strong> - Unlike with social media, your "
2800
  "list is your property and no one can revoke your access to it."
@@ -2803,7 +4341,7 @@ msgstr ""
2803
  "сетей, ваш список является вашей собственностью, и никто не может отменить "
2804
  "ваш доступ к нему."
2805
 
2806
- #: includes/providers/class-constant-contact.php:708
2807
  msgid ""
2808
  "<strong>Email converts</strong> - People who buy products marketed through "
2809
  "email spend 138% more than those who don&#39;t receive email offers."
@@ -2812,7 +4350,7 @@ msgstr ""
2812
  "продаваемые по электронной почте, тратят на 138% больше, чем те, кто не "
2813
  "получает такие предложения."
2814
 
2815
- #: includes/providers/class-constant-contact.php:710
2816
  msgid ""
2817
  "That&#39;s why it&#39;s crucial to start collecting email addresses and "
2818
  "building your list as soon as possible."
@@ -2820,7 +4358,7 @@ msgstr ""
2820
  "Вот почему очень важно начать собирать адреса электронной почты и создавать "
2821
  "свой контактный список как можно скорее."
2822
 
2823
- #: includes/providers/class-constant-contact.php:711
2824
  msgid ""
2825
  "For more details, see this guide on <a href=\"%s\" target=\"_blank\" rel="
2826
  "\"noopener noreferrer\">why building your email list is so important</a>."
@@ -2829,28 +4367,28 @@ msgstr ""
2829
  "href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">почему создание "
2830
  "списка адресов электронной почты так важно</a>."
2831
 
2832
- #: includes/providers/class-constant-contact.php:713
2833
  msgid "You&#39;ve Already Started - Here&#39;s the Next Step (It&#39;s Easy)"
2834
  msgstr "Вы уже начали - вот следующий шаг (это легко)"
2835
 
2836
- #: includes/providers/class-constant-contact.php:714
2837
  msgid "Here are the 3 things you need to build an email list:"
2838
  msgstr ""
2839
  "Вот 3 вещи, которые вам нужны для создания списка адресов электронной почты:"
2840
 
2841
- #: includes/providers/class-constant-contact.php:716
2842
  msgid "A Website or Blog"
2843
  msgstr "Веб-сайт или блог"
2844
 
2845
- #: includes/providers/class-constant-contact.php:717
2846
  msgid "High-Converting Form Builder"
2847
  msgstr "Конструктор форм для высокопроизводительных форм"
2848
 
2849
- #: includes/providers/class-constant-contact.php:718
2850
  msgid "The Best Email Marketing Service"
2851
  msgstr "Лучшая служба электронного маркетинга"
2852
 
2853
- #: includes/providers/class-constant-contact.php:720
2854
  msgid ""
2855
  "With a powerful email marketing service like Constant Contact, you can "
2856
  "instantly send out mass notifications and beautifully designed newsletters "
@@ -2860,11 +4398,11 @@ msgstr ""
2860
  "Contact, вы можете мгновенно отправлять массовые уведомления и красиво "
2861
  "оформленные информационные бюллетени, чтобы привлечь ваших подписчиков."
2862
 
2863
- #: includes/providers/class-constant-contact.php:722
2864
  msgid "Get Started with Constant Contact for Free"
2865
  msgstr "Начните работать с Constant Contact бесплатно"
2866
 
2867
- #: includes/providers/class-constant-contact.php:723
2868
  msgid ""
2869
  "WPForms plugin makes it fast and easy to capture all kinds of visitor "
2870
  "information right from your WordPress site - even if you don&#39;t have a "
@@ -2874,7 +4412,7 @@ msgstr ""
2874
  "посетителях прямо с вашего WordPress сайта - даже если у вас нет учетной "
2875
  "записи Constant Contact."
2876
 
2877
- #: includes/providers/class-constant-contact.php:724
2878
  msgid ""
2879
  "But when you combine WPForms with Constant Contact, you can nurture your "
2880
  "contacts and engage with them even after they leave your website. When you "
@@ -2884,28 +4422,28 @@ msgstr ""
2884
  "контакты и общаться с ними даже после того, как они покинут ваш сайт. Когда "
2885
  "вы используете Constant Contact + WPForms вместе, вы можете:"
2886
 
2887
- #: includes/providers/class-constant-contact.php:726
2888
  msgid "Seamlessly add new contacts to your email list"
2889
  msgstr "Лешко добавляйте новые контакты в список рассылки"
2890
 
2891
- #: includes/providers/class-constant-contact.php:727
2892
  msgid "Create and send professional email newsletters"
2893
  msgstr ""
2894
  "Создавайте и отправляйте профессиональные рассылки по электронной почте"
2895
 
2896
- #: includes/providers/class-constant-contact.php:728
2897
  msgid "Get expert marketing and support"
2898
  msgstr "Получить экспертный маркетинг и поддержку"
2899
 
2900
- #: includes/providers/class-constant-contact.php:731
2901
  msgid "Try Constant Contact Today"
2902
  msgstr "Попробуйте Constant Contact сегодня"
2903
 
2904
- #: includes/providers/class-constant-contact.php:733
2905
  msgid "WPForms Makes List Building Easy"
2906
  msgstr "WPForms делает создание списков email простым"
2907
 
2908
- #: includes/providers/class-constant-contact.php:734
2909
  msgid ""
2910
  "When creating WPForms, our goal was to make a WordPress forms plugin "
2911
  "that&#39;s both EASY and POWERFUL."
@@ -2913,7 +4451,7 @@ msgstr ""
2913
  "При создании WPForms наша цель состояла в том, чтобы сделать плагин форм для "
2914
  "WordPress, который является одновременно ЛЕГКИМ и МОЩНЫМ."
2915
 
2916
- #: includes/providers/class-constant-contact.php:735
2917
  msgid ""
2918
  "We made the form creation process extremely intuitive, so you can create a "
2919
  "form to start capturing emails within 5 minutes or less."
@@ -2922,32 +4460,32 @@ msgstr ""
2922
  "создать форму, чтобы начать получать электронные письма, в течение 5 минут "
2923
  "или даже меньше."
2924
 
2925
- #: includes/providers/class-constant-contact.php:736
2926
  msgid "Here&#39;s how it works."
2927
  msgstr "Вот как это работает."
2928
 
2929
- #: includes/providers/class-constant-contact.php:740
2930
  msgid "1. Select from our pre-built templates, or create a form from scratch."
2931
  msgstr ""
2932
  "1. Выберите из наших предварительно построенных шаблонов или создайте форму "
2933
  "с нуля."
2934
 
2935
- #: includes/providers/class-constant-contact.php:744
2936
  msgid "2. Drag and drop any field you want onto your signup form."
2937
  msgstr ""
2938
  "2. Перетащите любое поле, которое вы хотите, в свою регистрационную форму."
2939
 
2940
- #: includes/providers/class-constant-contact.php:748
2941
  msgid "3. Connect your Constant Contact email list."
2942
  msgstr "3. Подключите свой email список из Constant Contact."
2943
 
2944
- #: includes/providers/class-constant-contact.php:752
2945
  msgid "4. Add your new form to any post, page
1
+ # Translation of Plugins - Contact Form by WPForms &#8211; Drag &amp; Drop Form Builder for WordPress - Development (trunk) in Russian
2
+ # This file is distributed under the same license as the Plugins - Contact Form by WPForms &#8211; Drag &amp; Drop Form Builder for WordPress - Development (trunk) package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Plugins - Contact Form by WPForms &#8211; Drag &amp; "
6
+ "Drop Form Builder for WordPress - Development (trunk)\n"
7
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
8
+ "POT-Creation-Date: 2017-12-04 16:24:56+00:00\n"
9
+ "PO-Revision-Date: 2017-12-28 11:50+0200\n"
10
  "Last-Translator: \n"
11
  "Language-Team: \n"
12
+ "Language: ru\n"
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
 
16
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
17
  "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
18
+ "X-Generator: Poedit 2.0.5\n"
19
 
20
+ #: includes/admin/admin.php:128 includes/admin/admin.php:156
21
+ #: pro/includes/admin/class-addons.php:241
22
  msgid "Activate"
23
  msgstr "Активировать"
24
 
38
  msgid "Install Addon"
39
  msgstr "Установить"
40
 
41
+ #: includes/admin/admin.php:134 includes/admin/builder/class-builder.php:287
42
  #: includes/admin/class-editor.php:97
43
  #: pro/includes/admin/entries/class-entries-single.php:601
44
  msgid "Cancel"
45
  msgstr "Отменить"
46
 
47
+ #: includes/admin/admin.php:135 includes/admin/builder/class-builder.php:289
48
  #: includes/admin/class-editor.php:71 includes/class-preview.php:160
49
  msgid "Close"
50
  msgstr "Закрыть"
107
  msgid "Are you sure you want to duplicate this form?"
108
  msgstr "Вы действительно хотите создать дубликат этой формы?"
109
 
110
+ #: includes/admin/admin.php:149 includes/admin/builder/class-builder.php:297
111
  msgid "Heads up!"
112
  msgstr "Осторожно!"
113
 
114
+ #: includes/admin/admin.php:150
115
+ msgid "Please select at least one form to import."
116
+ msgstr "Пожалуйста, выберите хотя бы одну форму для импорта."
117
+
118
+ #: includes/admin/admin.php:153 includes/admin/builder/class-builder.php:288
119
  msgid "OK"
120
  msgstr "OK"
121
 
122
+ #: includes/admin/admin.php:154
123
+ msgid "Install and Activate"
124
+ msgstr "Установить и активировать"
125
+
126
+ #: includes/admin/admin.php:155
127
+ msgid ""
128
+ "needs to be installed and activated to import its forms. Would you like us "
129
+ "to install and activate it for you?"
130
+ msgstr ""
131
+ "должен быть установлен и активирован для импорта своих форм. Вы хотите, "
132
+ "чтобы мы установили и актививароли его вместо вас?"
133
+
134
+ #: includes/admin/admin.php:157
135
+ msgid ""
136
+ "needs to be activated to import its forms. Would you like us to activate it "
137
+ "for you?."
138
+ msgstr ""
139
+ "должен быть активирован для импорта своих форм. Вы хотите, чтобы мы "
140
+ "актививароли его вместо вас?"
141
+
142
+ #: includes/admin/admin.php:158
143
  msgid "Are you sure you want to disconnect this account?"
144
  msgstr "Вы действительно хотите отключить эту учетную запись?"
145
 
146
+ #: includes/admin/admin.php:159
147
  msgid "Could not authenticate with the provider."
148
  msgstr "Не удалось выполнить аутентификацию с поставщиком."
149
 
150
+ #: includes/admin/admin.php:160
151
  msgid "Save and Refresh"
152
  msgstr "Сохранить и обновить"
153
 
154
+ #: includes/admin/admin.php:161
155
+ msgid "Upgrade was successfully completed!"
156
+ msgstr "Обновление было успешно завершено!"
157
+
158
+ #: includes/admin/admin.php:162
159
  msgid "Upload or Choose Your Image"
160
  msgstr "Загрузить или выбрать изображение"
161
 
162
+ #: includes/admin/admin.php:163
163
  msgid "Use Image"
164
  msgstr "Использовать изображение"
165
 
166
+ #. translators: %1$s - opening link tag; %2$s - closing link tag; %3$s -
167
+ #. opening link tag; %4$s - closing link tag.
168
+ #: includes/admin/admin.php:167 lite/wpforms-lite.php:415
169
+ msgid ""
170
+ "<p>Thanks for your interest in WPForms Pro!<br>If you have any questions or "
171
+ "issues just %1$slet us know%2$s.</p><p>After purchasing WPForms Pro, you'll "
172
+ "need to <strong>download and install the Pro version of the plugin</strong>, "
173
+ "and then <strong>remove the free plugin</strong>.<br>(Don't worry, all your "
174
+ "forms and settings will be preserved.)</p><p>Check out %3$sour documentation"
175
+ "%4$s for step-by-step instructions.</p>"
176
+ msgstr ""
177
+ "<p>Спасибо за ваш интерес к WPForms Pro!<br>Если у вас есть любые вопросы "
178
+ "или проблемы, просто %1$sдайте нам знать%2$s.</p><p>После покупки WPForms "
179
+ "Pro, вам нужно <strong>скачать и установить Pro версию плагина</strong>, а "
180
+ "затем <strong>удалить бесплатный плагин</strong>.<br>(Не беспокойтесь, все "
181
+ "ваши формы и настройки будут сохранены).</p><p>Прочитайте %3$sнашу "
182
+ "документацию%4$s для получения пошаговой инструкции.</p>"
183
+
184
  #. translators: %1$s - WPForms plugin name; %2$s - opening a link tag; %3$s -
185
  #. closing a link tag.
186
+ #: includes/admin/admin.php:374
187
  msgid ""
188
  "Your site is running an outdated version of PHP that is no longer supported "
189
  "and may cause issues with %1$s. %2$sRead more%3$s for additional information."
228
  msgid "taxonomy"
229
  msgstr "таксономия"
230
 
231
+ #: includes/admin/builder/class-builder.php:274
232
+ #: includes/class-conditional-logic-core.php:445
233
  msgid "AND"
234
  msgstr "И"
235
 
236
+ #: includes/admin/builder/class-builder.php:276
237
  msgid "Add New Choices"
238
  msgstr "Добавить новые варианты"
239
 
240
+ #: includes/admin/builder/class-builder.php:277
241
  #: includes/fields/class-base.php:363
242
  msgid "Bulk Add"
243
  msgstr "Массово добавить"
244
 
245
+ #: includes/admin/builder/class-builder.php:278
246
  msgid "Hide Bulk Add"
247
  msgstr "Спрятать массовое добавление"
248
 
249
+ #: includes/admin/builder/class-builder.php:279
250
  msgid "Add Choices (one per line)"
251
  msgstr "Добавить варианты (по одной в строке)"
252
 
253
+ #: includes/admin/builder/class-builder.php:280
254
  msgid ""
255
  "Blue\n"
256
  "Red\n"
260
  "Красный\n"
261
  "Зеленый"
262
 
263
+ #: includes/admin/builder/class-builder.php:281
264
  msgid "Show presets"
265
  msgstr "Показать пресеты"
266
 
267
+ #: includes/admin/builder/class-builder.php:282
268
  msgid "Hide presets"
269
  msgstr "Скрыть пресеты"
270
 
271
+ #: includes/admin/builder/class-builder.php:286
272
  msgid ""
273
  "The {source} {type} contains over {limit} items ({total}). This may make the "
274
  "field difficult for your vistors to use and/or cause the form to be slow."
277
  "затруднить использование вашими посетителями поля и/или привести к "
278
  "замедлению формы."
279
 
280
+ #: includes/admin/builder/class-builder.php:290
281
  msgid ""
282
  "Due to form changes, conditional logic rules have been removed or updated:"
283
  msgstr ""
284
  "Из-за изменений формы, правила условной логики были удалены или обновлены:"
285
 
286
+ #: includes/admin/builder/class-builder.php:291
287
  msgid ""
288
  "Are you sure you want to disable conditional logic? This will remove the "
289
  "rules for this field or setting."
291
  "Вы уверены, что хотите отключить условную логику? Это действие удалит все "
292
  "правила для этого поля или настройки."
293
 
294
+ #: includes/admin/builder/class-builder.php:292
295
  #: pro/includes/admin/entries/class-entries-list-table.php:212
296
  #: pro/includes/admin/entries/class-entries-list-table.php:223
297
  #: pro/includes/admin/entries/class-entries-list.php:399
299
  msgid "Field"
300
  msgstr "Поле"
301
 
302
+ #: includes/admin/builder/class-builder.php:293
303
  msgid "Field Locked"
304
  msgstr "Поле заблокировано"
305
 
306
+ #: includes/admin/builder/class-builder.php:294
307
  msgid "This field cannot be deleted or duplicated."
308
  msgstr "Это поле нельзя удалить или дублировать."
309
 
310
+ #: includes/admin/builder/class-builder.php:295
311
  msgid "Available Fields"
312
  msgstr "Доступные поля"
313
 
314
+ #: includes/admin/builder/class-builder.php:296
315
  msgid "No fields available"
316
  msgstr "Нет доступных полей"
317
 
318
+ #: includes/admin/builder/class-builder.php:299
319
  msgid "No email fields"
320
  msgstr "Нет полей электронной почты"
321
 
322
+ #: includes/admin/builder/class-builder.php:300
323
  msgid "Are you sure you want to delete this notification?"
324
  msgstr "Вы уверены, что хотите удалить это уведомление?"
325
 
326
+ #: includes/admin/builder/class-builder.php:301
327
  msgid "Enter a notification name"
328
  msgstr "Введите название уведомления"
329
 
330
+ #: includes/admin/builder/class-builder.php:302
331
  msgid "Eg: User Confirmation"
332
  msgstr "Например: Подтверждение пользователя"
333
 
334
+ #: includes/admin/builder/class-builder.php:303
335
  msgid "You must provide a notification name"
336
  msgstr "Вы должны указать название уведомления"
337
 
338
+ #: includes/admin/builder/class-builder.php:304
339
  msgid ""
340
  "Form must contain one notification. To disable all notifications use the "
341
  "Notifications dropdown setting."
343
  "Форма должна содержать как минимум одно уведомление. Чтобы отключить все "
344
  "уведомления, используйте настройку включения/отключения уведомлений."
345
 
346
+ #: includes/admin/builder/class-builder.php:305 lite/wpforms-lite.php:84
347
+ #: pro/wpforms-pro.php:434
348
  msgid "Default Notification"
349
  msgstr "Стандартное уведомление"
350
 
351
+ #: includes/admin/builder/class-builder.php:306
352
+ #: includes/admin/builder/class-builder.php:481
353
  msgid "Save"
354
  msgstr "Сохранить"
355
 
356
+ #: includes/admin/builder/class-builder.php:307
357
  msgid "Saving ..."
358
  msgstr "Сохранение ..."
359
 
360
+ #: includes/admin/builder/class-builder.php:308
361
  msgid "Saved!"
362
  msgstr "Сохранено!"
363
 
364
+ #: includes/admin/builder/class-builder.php:309
365
  msgid "Save and Exit"
366
  msgstr "Сохранить и выйти"
367
 
368
+ #: includes/admin/builder/class-builder.php:311
369
  #: includes/fields/class-base.php:550
370
  msgid "Show Layouts"
371
  msgstr "Показать макеты"
372
 
373
+ #: includes/admin/builder/class-builder.php:312
374
  msgid "Hide Layouts"
375
  msgstr "Скрыть макеты"
376
 
377
+ #: includes/admin/builder/class-builder.php:313
378
  msgid "Select your layout"
379
  msgstr "Выберите ваш макет"
380
 
381
+ #: includes/admin/builder/class-builder.php:314
382
  msgid "Select your column"
383
  msgstr "Выберите вашу колонку"
384
 
385
+ #: includes/admin/builder/class-builder.php:315
386
+ #: includes/admin/builder/class-builder.php:436
387
  msgid "Loading"
388
  msgstr "Загрузка"
389
 
390
+ #: includes/admin/builder/class-builder.php:321
391
  msgid "Use Template"
392
  msgstr "Использовать шаблон"
393
 
394
+ #: includes/admin/builder/class-builder.php:322
395
  msgid ""
396
  "Changing templates on an existing form will DELETE existing form fields. Are "
397
  "you sure you want apply the new template?"
399
  "Изменение шаблонов в существующей форме УДАЛИТ существующие поля формы. Вы "
400
  "уверены, что хотите применить новый шаблон?"
401
 
402
+ #: includes/admin/builder/class-builder.php:323
403
  msgid ""
404
  "You are almost done. To embed this form on your site, please paste the "
405
  "following shortcode inside a post or page."
407
  "Вы почти закончили. Чтобы внедрить эту форму на сайт, пожалуйста, вставьте "
408
  "следующий шорткод внутри записи или страницы."
409
 
410
+ #: includes/admin/builder/class-builder.php:324
411
  msgid "Or you can follow the instructions in this video."
412
  msgstr "Или вы можете следовать инструкциям в этом видео."
413
 
414
+ #: includes/admin/builder/class-builder.php:325
415
+ #: includes/admin/builder/class-builder.php:486
416
  msgid "Exit"
417
  msgstr "Выход"
418
 
419
+ #: includes/admin/builder/class-builder.php:327
420
  msgid "If you exit without saving, your changes will be lost."
421
  msgstr "Если не сохранитесь, внесённые изменения будут утеряны."
422
 
423
+ #: includes/admin/builder/class-builder.php:328
424
  msgid "Are you sure you want to delete this field?"
425
  msgstr "Вы уверены, что хотите удалить это поле?"
426
 
427
+ #: includes/admin/builder/class-builder.php:329
428
  msgid "Are you sure you want to duplicate this field?"
429
  msgstr "Вы уверено, что хотите создать дубликат этого поля?"
430
 
431
+ #: includes/admin/builder/class-builder.php:330
432
  msgid "(copy)"
433
  msgstr "(копия)"
434
 
435
+ #: includes/admin/builder/class-builder.php:331
436
  msgid "Please enter a form name."
437
  msgstr "Пожалуйста, введите название формы."
438
 
439
+ #: includes/admin/builder/class-builder.php:332
440
  msgid "This item must contain at least one choice."
441
  msgstr "Этот элемент должен содержать по крайней мере один вариант."
442
 
443
+ #: includes/admin/builder/class-builder.php:333
444
  #: includes/fields/class-base.php:253 includes/fields/class-base.php:599
445
+ #: lite/wpforms-lite.php:76 pro/wpforms-pro.php:427
446
  msgid "Off"
447
  msgstr "Выкл"
448
 
449
+ #: includes/admin/builder/class-builder.php:334
450
  #: includes/fields/class-base.php:253 lite/wpforms-lite.php:75
451
+ #: pro/wpforms-pro.php:426
452
  msgid "On"
453
  msgstr "Вкл"
454
 
455
+ #: includes/admin/builder/class-builder.php:335
456
  msgid "or"
457
  msgstr "или"
458
 
459
+ #: includes/admin/builder/class-builder.php:336
460
  #: includes/templates/class-suggestion.php:61
461
  msgid "Other"
462
  msgstr "Другое"
463
 
464
+ #: includes/admin/builder/class-builder.php:337
465
+ #: includes/class-conditional-logic-core.php:371
466
  msgid "is"
467
  msgstr "является"
468
 
469
+ #: includes/admin/builder/class-builder.php:338
470
+ #: includes/class-conditional-logic-core.php:372
471
  msgid "is not"
472
  msgstr "не является"
473
 
474
+ #: includes/admin/builder/class-builder.php:339
475
+ #: includes/class-conditional-logic-core.php:373
476
  msgid "empty"
477
  msgstr "пусто"
478
 
479
+ #: includes/admin/builder/class-builder.php:340
480
+ #: includes/class-conditional-logic-core.php:374
481
  msgid "not empty"
482
  msgstr "не пусто"
483
 
484
+ #: includes/admin/builder/class-builder.php:341
485
+ #: includes/class-conditional-logic-core.php:379
486
  msgid "contains"
487
  msgstr "содержит"
488
 
489
+ #: includes/admin/builder/class-builder.php:342
490
+ #: includes/class-conditional-logic-core.php:380
491
  msgid "does not contain"
492
  msgstr "не содержит"
493
 
494
+ #: includes/admin/builder/class-builder.php:343
495
+ #: includes/class-conditional-logic-core.php:381
496
  msgid "starts with"
497
  msgstr "начинается с"
498
 
499
+ #: includes/admin/builder/class-builder.php:344
500
+ #: includes/class-conditional-logic-core.php:382
501
  msgid "ends with"
502
  msgstr "заканчивается на"
503
 
504
+ #: includes/admin/builder/class-builder.php:345
505
  msgid ""
506
  "Form entries must be stored to accept payments. Please enable saving form "
507
  "entries in the General settings first."
509
  "Записи формы должны храниться для принятия платежей. Сначала включите "
510
  "сохранение записей в основных настройках формы."
511
 
512
+ #: includes/admin/builder/class-builder.php:346
513
  #: pro/includes/fields/class-page-break.php:199
514
  #: pro/includes/fields/class-page-break.php:521
515
  msgid "Previous"
516
  msgstr "Предыдущий"
517
 
518
+ #: includes/admin/builder/class-builder.php:347
519
+ #: includes/class-conditional-logic-core.php:445
520
  msgid "Create new rule"
521
  msgstr "Создать новое правило"
522
 
523
+ #: includes/admin/builder/class-builder.php:348
524
  msgid "Add new group"
525
  msgstr "Добавить новую группу"
526
 
527
+ #: includes/admin/builder/class-builder.php:349
528
+ #: includes/class-conditional-logic-core.php:446
529
  msgid "Delete rule"
530
  msgstr "Удалить правило"
531
 
532
+ #: includes/admin/builder/class-builder.php:351
533
  #: includes/admin/builder/functions.php:255 includes/fields/class-base.php:496
534
  msgid "Show Smart Tags"
535
  msgstr "Показать смарт-теги"
536
 
537
+ #: includes/admin/builder/class-builder.php:352
538
  msgid "Hide Smart Tags"
539
  msgstr "Скрыть смарт-теги"
540
 
541
+ #: includes/admin/builder/class-builder.php:353
542
+ #: includes/class-conditional-logic-core.php:330
543
  msgid "-- Select Field --"
544
  msgstr "-- Выбрать поле --"
545
 
546
+ #: includes/admin/builder/class-builder.php:354
547
+ #: includes/class-conditional-logic-core.php:425
548
  msgid "-- Select Choice --"
549
  msgstr "-- Выбрать вариант --"
550
 
551
+ #: includes/admin/builder/class-builder.php:387
552
  msgid "Countries"
553
  msgstr "Страны"
554
 
555
+ #: includes/admin/builder/class-builder.php:391
556
  msgid "Countries Postal Code"
557
  msgstr "Почтовый индекс стран"
558
 
559
+ #: includes/admin/builder/class-builder.php:395
560
  msgid "States"
561
  msgstr "Штаты"
562
 
563
+ #: includes/admin/builder/class-builder.php:399
564
  msgid "States Postal Code"
565
  msgstr "Почтовый индекс штатов"
566
 
567
+ #: includes/admin/builder/class-builder.php:403
568
  msgid "Months"
569
  msgstr "Месяцы"
570
 
571
+ #: includes/admin/builder/class-builder.php:407
572
  msgid "Days"
573
  msgstr "Дни"
574
 
575
+ #: includes/admin/builder/class-builder.php:459
576
  msgid "Now editing"
577
  msgstr "Сейчас редактируется"
578
 
579
+ #: includes/admin/builder/class-builder.php:469
580
+ #: pro/includes/admin/entries/class-entries-list.php:532
581
  msgid "Preview Form"
582
  msgstr "Предпросмотр формы"
583
 
584
+ #: includes/admin/builder/class-builder.php:471
585
+ #: includes/admin/class-tools.php:445
586
  #: includes/admin/overview/class-overview-table.php:182
587
  msgid "Preview"
588
  msgstr "Предпросмотр"
589
 
590
+ #: includes/admin/builder/class-builder.php:474
591
  msgid "Embed Form"
592
  msgstr "Встроить форму"
593
 
594
+ #: includes/admin/builder/class-builder.php:476
595
  msgid "Embed"
596
  msgstr "Шорткод"
597
 
598
+ #: includes/admin/builder/class-builder.php:479
599
  msgid "Save Form"
600
  msgstr "Сохранить форму"
601
 
624
  "\">настроить вашу форм</a>, прежде чем вы cможете управлять полями."
625
 
626
  #: includes/admin/builder/panels/class-fields.php:123
627
+ #: includes/admin/builder/panels/class-settings.php:123
628
+ #: includes/admin/importers/class-contact-form-7.php:106
629
+ #: includes/admin/importers/class-ninja-forms.php:123
630
  msgid "Submit"
631
  msgstr "Отправить"
632
 
746
  msgstr "Общие"
747
 
748
  #: includes/admin/builder/panels/class-settings.php:58 lite/wpforms-lite.php:61
749
+ #: lite/wpforms-lite.php:71 pro/wpforms-pro.php:413 pro/wpforms-pro.php:422
750
  msgid "Notifications"
751
  msgstr "Уведомления"
752
 
753
  #: includes/admin/builder/panels/class-settings.php:59
754
+ #: includes/admin/builder/panels/class-settings.php:180
755
  msgid "Confirmation"
756
  msgstr "Подтверждение"
757
 
765
 
766
  #: includes/admin/builder/panels/class-settings.php:94
767
  #: includes/admin/builder/panels/class-setup.php:55
768
+ #: includes/class-smart-tags.php:38
769
  msgid "Form Name"
770
  msgstr "Название формы"
771
 
774
  msgstr "Описание формы"
775
 
776
  #: includes/admin/builder/panels/class-settings.php:111
 
 
 
 
777
  msgid "Form CSS Class"
778
  msgstr "CSS класс формы"
779
 
780
+ #: includes/admin/builder/panels/class-settings.php:113
781
  msgid ""
782
  "Enter CSS class names for the form wrapper. Multiple class names should be "
783
  "separated with spaces."
785
  "Введите имена классов CSS для обертки формы. Имена классов должны быть "
786
  "разделены пробелами."
787
 
788
+ #: includes/admin/builder/panels/class-settings.php:121
789
  msgid "Submit Button Text"
790
  msgstr "Текст кнопки Отправить"
791
 
792
+ #: includes/admin/builder/panels/class-settings.php:131
793
  msgid "Submit Button Processing Text"
794
  msgstr "Текст на кнопке во время отправки"
795
 
796
+ #: includes/admin/builder/panels/class-settings.php:133
797
  msgid ""
798
  "Enter the submit button text you would like the button display while the "
799
  "form submit is processing."
801
  "Введите текст для кнопки Отправить, который вы хотите, чтобы отображался на "
802
  "кнопке во время отправки формы."
803
 
804
+ #: includes/admin/builder/panels/class-settings.php:141
805
  msgid "Submit Button CSS Class"
806
  msgstr "CSS класс кнопки отправки формы"
807
 
808
+ #: includes/admin/builder/panels/class-settings.php:143
809
  msgid ""
810
  "Enter CSS class names for the form submit button. Multiple names should be "
811
  "separated with spaces."
813
  "Введите имена классов CSS для кнопки отправки формы. Несколько имен следует "
814
  "разделять пробелами."
815
 
816
+ #: includes/admin/builder/panels/class-settings.php:151
817
  msgid "Enable anti-spam honeypot"
818
  msgstr "Включить анти-спам"
819
 
820
+ #: includes/admin/builder/panels/class-settings.php:162
821
  msgid "Enable Google invisible reCAPTCHA"
822
  msgstr "Включить невидимую Google reCAPTCHA"
823
 
824
+ #: includes/admin/builder/panels/class-settings.php:162
825
  msgid "Enable Google reCAPTCHA (v2)"
826
  msgstr "Включить Google reCAPTCHA (v2)"
827
 
828
+ #: includes/admin/builder/panels/class-settings.php:187
829
  msgid "Confirmation Type"
830
  msgstr "Тип подтверждения"
831
 
832
+ #: includes/admin/builder/panels/class-settings.php:191
833
  #: includes/templates/class-suggestion.php:76 lite/wpforms-lite.php:189
834
+ #: pro/wpforms-pro.php:568
835
  msgid "Message"
836
  msgstr "Сообщение"
837
 
838
+ #: includes/admin/builder/panels/class-settings.php:192
839
  msgid "Show Page"
840
  msgstr "Показать страницу"
841
 
842
+ #: includes/admin/builder/panels/class-settings.php:193
843
  msgid "Go to URL (Redirect)"
844
  msgstr "Перенаправить на URL (редирект)"
845
 
846
+ #: includes/admin/builder/panels/class-settings.php:202
847
  msgid "Confirmation Message"
848
  msgstr "Подтверждающее сообщение"
849
 
850
+ #: includes/admin/builder/panels/class-settings.php:204
851
+ #: includes/admin/importers/class-contact-form-7.php:123
852
+ #: includes/admin/importers/class-ninja-forms.php:140
853
  msgid "Thanks for contacting us! We will be in touch with you shortly."
854
  msgstr "Спасибо, что написали нам! Мы скоро свяжемся с вами."
855
 
856
+ #: includes/admin/builder/panels/class-settings.php:215
857
  msgid "Automatically scroll to the confirmation message"
858
  msgstr "Автоматически прокрутить к сообщению подтверждения"
859
 
860
+ #: includes/admin/builder/panels/class-settings.php:228
861
  msgid "Confirmation Page"
862
  msgstr "Страница подтверждения"
863
 
864
+ #: includes/admin/builder/panels/class-settings.php:238
865
  msgid "Confirmation Redirect URL"
866
  msgstr "URL-адрес перенаправления подтверждения"
867
 
962
  #. Author of the plugin/theme
963
  #: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
964
  #: includes/admin/class-menu.php:51 includes/admin/class-menu.php:103
965
+ #: includes/class-form.php:72 includes/integrations.php:45
966
  msgid "WPForms"
967
  msgstr "WPForms"
968
 
986
  #: includes/admin/class-menu.php:72
987
  #: includes/admin/overview/class-overview-table.php:174
988
  #: pro/includes/admin/entries/class-entries-list.php:332
989
+ #: pro/wpforms-pro.php:347
990
  msgid "Entries"
991
  msgstr "Записи"
992
 
1068
 
1069
  #: includes/admin/class-settings.php:168 includes/admin/class-settings.php:173
1070
  #: includes/admin/class-settings.php:178 includes/admin/class-settings.php:183
1071
+ #: pro/wpforms-pro.php:158
1072
  msgid "Save Settings"
1073
  msgstr "Сохранить настройки"
1074
 
1075
+ #: includes/admin/class-settings.php:171 includes/admin/class-settings.php:282
1076
+ #: includes/admin/class-settings.php:371 includes/fields/class-email.php:21
1077
  #: includes/fields/class-email.php:68 includes/fields/class-email.php:306
1078
  #: includes/templates/class-contact.php:41
1079
  #: includes/templates/class-subscribe.php:44
1084
  msgid "Email"
1085
  msgstr "Email"
1086
 
1087
+ #: includes/admin/class-settings.php:176 includes/admin/class-settings.php:322
1088
  msgid "reCAPTCHA"
1089
  msgstr "reCAPTCHA"
1090
 
1092
  msgid "Validation"
1093
  msgstr "Валидация"
1094
 
1095
+ #: includes/admin/class-settings.php:186 includes/admin/class-settings.php:392
1096
+ #: includes/admin/class-settings.php:399
1097
  msgid "Integrations"
1098
  msgstr "Интеграции"
1099
 
1184
  "всему сайту. Актуально только если у вашего сайта проблемы с совместимостью "
1185
  "или вам сказала это сделать служба поддержки."
1186
 
1187
+ #: includes/admin/class-settings.php:273
1188
+ msgid "Hide Announcements"
1189
+ msgstr "Скрыть объявления"
1190
+
1191
+ #: includes/admin/class-settings.php:274
1192
+ msgid ""
1193
+ "Check this if you would like to hide plugin announcements and update details."
1194
+ msgstr ""
1195
+ "Отметьте флажок, если вы хотите спрятать уведомления плагина и информацию о "
1196
+ "будущих релизах."
1197
+
1198
+ #: includes/admin/class-settings.php:289
1199
  msgid "Template"
1200
  msgstr "Шаблон"
1201
 
1202
+ #: includes/admin/class-settings.php:290
1203
  msgid ""
1204
  "Determines how email notifications will be formatted. HTML Templates are the "
1205
  "default."
1207
  "Определяет способ форматирования уведомлений по электронной почте. Шаблон "
1208
  "HTML выбран по умолчанию."
1209
 
1210
+ #: includes/admin/class-settings.php:294
1211
  msgid "HTML Template"
1212
  msgstr "HTML шаблон"
1213
 
1214
+ #: includes/admin/class-settings.php:295
1215
  msgid "Plain text"
1216
  msgstr "Простой текст"
1217
 
1218
+ #: includes/admin/class-settings.php:300
1219
  msgid "Header Image"
1220
  msgstr "Картинка шапки"
1221
 
1222
+ #: includes/admin/class-settings.php:301
1223
  msgid ""
1224
  "Upload or choose a logo to be displayed at the top of email notifications."
1225
  "<br>Recommended size is 300x100 or smaller for best support on all devices."
1228
  "email уведомлений. <br>Рекомендуемый размер 300x100 или меньше для лучшей "
1229
  "поддержки на всех устройствах."
1230
 
1231
+ #: includes/admin/class-settings.php:306
1232
  msgid "Background Color"
1233
  msgstr "Цвет фона"
1234
 
1235
+ #: includes/admin/class-settings.php:307
1236
  msgid "Customize the background color of the HTML email template."
1237
  msgstr "Настройте цвет фона HTML шаблона электронной почты."
1238
 
1239
+ #: includes/admin/class-settings.php:313
1240
  msgid "Carbon Copy"
1241
  msgstr "Копия письма"
1242
 
1243
+ #: includes/admin/class-settings.php:314
1244
  msgid ""
1245
  "Check this if you would like to enable the ability to CC: email addresses in "
1246
  "the form notification settings."
1248
  "Установите этот флажок, если вы хотите включить возможность использования "
1249
  "CC: email адресов в настройках уведомлений формы."
1250
 
1251
+ #: includes/admin/class-settings.php:329
1252
  #: pro/includes/fields/class-date-time.php:154
1253
  msgid "Type"
1254
  msgstr "Тип"
1255
 
1256
+ #: includes/admin/class-settings.php:333
1257
  msgid "v2 reCAPTCHA"
1258
  msgstr "v2 reCAPTCHA"
1259
 
1260
+ #: includes/admin/class-settings.php:334
1261
  msgid "Invisible reCAPTCHA"
1262
  msgstr "Невидимая reCAPTCHA"
1263
 
1264
+ #: includes/admin/class-settings.php:339
1265
  msgid "Site Key"
1266
  msgstr "Ключ сайта"
1267
 
1268
+ #: includes/admin/class-settings.php:344
1269
  msgid "Secret Key"
1270
  msgstr "Секретный ключ"
1271
 
1272
+ #: includes/admin/class-settings.php:352
1273
  msgid "Validation Messages"
1274
  msgstr "Сообщения о валидации"
1275
 
1276
+ #: includes/admin/class-settings.php:352
1277
  msgid ""
1278
  "These messages are displayed to the user as they fill out a form in real-"
1279
  "time."
1281
  "Эти сообщения отображаются пользователям в режиме реального времени, пока "
1282
  "они заполняют форму."
1283
 
1284
+ #: includes/admin/class-settings.php:359 includes/fields/class-base.php:337
1285
  msgid "Required"
1286
  msgstr "Обязательное поле"
1287
 
1288
+ #: includes/admin/class-settings.php:361 includes/class-frontend.php:1005
1289
  #: includes/fields/class-base.php:901 includes/fields/class-name.php:485
1290
  #: includes/fields/class-number.php:152
1291
  #: pro/includes/fields/class-address.php:767
1299
  msgid "This field is required."
1300
  msgstr "Это поле обязательное."
1301
 
1302
+ #: includes/admin/class-settings.php:365
1303
  msgid "Website URL"
1304
  msgstr "Адрес сайта"
1305
 
1306
+ #: includes/admin/class-settings.php:367 includes/class-frontend.php:1006
1307
  #: pro/includes/fields/class-url.php:159
1308
  msgid "Please enter a valid URL."
1309
  msgstr "Пожалуйста, введите действующий URL."
1310
 
1311
+ #: includes/admin/class-settings.php:373 includes/class-frontend.php:1007
1312
  msgid "Please enter a valid email address."
1313
  msgstr "Пожалуйста, введите правильный email адрес."
1314
 
1315
+ #: includes/admin/class-settings.php:377
1316
  msgid "Number"
1317
  msgstr "Число"
1318
 
1319
+ #: includes/admin/class-settings.php:379 includes/class-frontend.php:1008
1320
  #: includes/fields/class-number.php:157
1321
  msgid "Please enter a valid number."
1322
  msgstr "Введите корректное число."
1323
 
1324
+ #: includes/admin/class-settings.php:383
1325
  msgid "Confirm Value"
1326
  msgstr "Подтвердить значение"
1327
 
1328
+ #: includes/admin/class-settings.php:385 includes/class-frontend.php:1009
1329
  #: pro/includes/fields/class-password.php:394
1330
  msgid "Field values do not match."
1331
  msgstr "Значения полей не совпадают."
1332
 
1333
+ #: includes/admin/class-settings.php:392 includes/admin/class-settings.php:399
1334
  msgid ""
1335
  "Manage integrations with popular providers such as Constant Contact, "
1336
  "MailChimp, Zapier, and more."
1338
  "Управляйте интеграцией с популярными поставщиками, такими как Constant "
1339
  "Contact, MailChimp, Zapier и другими."
1340
 
1341
+ #: includes/admin/class-settings.php:501
1342
  msgid "Want to better protect your contact forms from spam?"
1343
  msgstr "Хотите лучше защитить свои контактные формы от спама?"
1344
 
1345
+ #: includes/admin/class-settings.php:503
1346
  msgid ""
1347
  "WPForms custom captcha addon allows you to add custom questions captcha or "
1348
  "math questions captcha to your WordPress forms. Since we know spam is a huge "
1354
  "знаем, что спам - это огромная проблема для контактных форм, WPForms идет "
1355
  "дальше, чтобы помочь вам защитить ваши формы."
1356
 
1357
+ #: includes/admin/class-settings.php:505
1358
  msgid "Click here to Upgrade"
1359
  msgstr "Нажмите здесь для Обновления"
1360
 
1361
+ #: includes/admin/class-tools.php:88 includes/admin/class-tools.php:233
1362
+ #: includes/admin/class-tools.php:273 includes/admin/class-tools.php:336
1363
+ msgid "Import"
1364
+ msgstr "Импорт"
1365
+
1366
+ #: includes/admin/class-tools.php:89 includes/admin/class-tools.php:516
1367
+ msgid "Export"
1368
+ msgstr "Экспорт"
1369
 
1370
  #: includes/admin/class-tools.php:90
1371
  msgid "System Info"
1372
  msgstr "Информация о системе"
1373
 
1374
+ #: includes/admin/class-tools.php:178
1375
  msgid ""
1376
  "Import was successfully finished. You can go and <a href=\"%s\">check your "
1377
  "forms</a>."
1379
  "Импорт успешно завершен. Вы можете пойти и <a href=\"%s\">проверить ваши "
1380
  "формы</a>."
1381
 
1382
+ #: includes/admin/class-tools.php:218
1383
+ msgid "WPForms Import"
1384
+ msgstr "Импорт WPForms"
1385
 
1386
+ #: includes/admin/class-tools.php:219
1387
+ msgid "Select a WPForms export file."
1388
+ msgstr "Выберите файл экспорта WPForms."
1389
 
1390
+ #: includes/admin/class-tools.php:225
1391
  msgid "No file chosen"
1392
  msgstr "Файл не выбран"
1393
 
1394
+ #: includes/admin/class-tools.php:227
1395
  msgid "Choose a file&hellip;"
1396
  msgstr "Выберите файл&hellip;"
1397
 
1398
+ #: includes/admin/class-tools.php:239
1399
+ msgid "Import from Other Form Plugins"
1400
+ msgstr "Импортировать из других плагинов форм"
1401
+
1402
+ #: includes/admin/class-tools.php:240
1403
+ msgid "Not happy with other WordPress contact form plugins?"
1404
+ msgstr "Недовольны другими плагинами контактных форм для WordPress?"
1405
+
1406
+ #: includes/admin/class-tools.php:241
1407
+ msgid ""
1408
+ "WPForms makes it easy for you to switch by allowing you import your third-"
1409
+ "party forms with a single click."
1410
+ msgstr ""
1411
+ "WPForms позволяет вас с легкостью перейти на него, давая возможность "
1412
+ "импортировать формы других плагинов с помощью одного щелчка мышки."
1413
+
1414
+ #: includes/admin/class-tools.php:245
1415
+ msgid "No form importers are currently enabled."
1416
+ msgstr "Импортеры форм не включены."
1417
+
1418
+ #: includes/admin/class-tools.php:250
1419
+ msgid "Select previous contact form plugin..."
1420
+ msgstr "Выберите ваш старый плагин форм..."
1421
+
1422
+ #: includes/admin/class-tools.php:255 pro/includes/admin/class-addons.php:201
1423
+ msgid "Not Installed"
1424
+ msgstr "Не установлено"
1425
+
1426
+ #: includes/admin/class-tools.php:257
1427
+ msgid "Not Active"
1428
+ msgstr "Не активно"
1429
+
1430
+ #: includes/admin/class-tools.php:294
1431
+ msgid "Form Import"
1432
+ msgstr "Импорт формы"
1433
+
1434
+ #: includes/admin/class-tools.php:300
1435
+ msgid "Select the forms you would like to import."
1436
+ msgstr "Выберите формы, которые вы хотите импортировать."
1437
+
1438
+ #: includes/admin/class-tools.php:304
1439
+ msgid "Available Forms"
1440
+ msgstr "Доступные формы"
1441
+
1442
+ #: includes/admin/class-tools.php:309
1443
+ msgid "No forms found."
1444
+ msgstr "Формы не найдены."
1445
+
1446
+ #: includes/admin/class-tools.php:323
1447
+ msgid "Select All"
1448
+ msgstr "Выбрать все"
1449
+
1450
+ #: includes/admin/class-tools.php:328
1451
+ msgid "Forms to Import"
1452
+ msgstr "Формы для импорта"
1453
+
1454
+ #. translators: %1$s - current forms counter; %2$s - total forms counter; %3$s
1455
+ #. - provider name.
1456
+ #: includes/admin/class-tools.php:347
1457
+ msgid "Analyzing %1$s of %2$s forms from %3$s."
1458
+ msgstr "Анализируется %1$s из %2$s форм для %3$s."
1459
+
1460
+ #: includes/admin/class-tools.php:355
1461
+ msgid "Heads Up!"
1462
+ msgstr "Осторожно!"
1463
+
1464
+ #: includes/admin/class-tools.php:356
1465
+ msgid ""
1466
+ "One or more of your forms contain fields that are not available in WPForms "
1467
+ "Lite. To properly impor tthese fields, we recommend upgrading to WPForms Pro."
1468
+ msgstr ""
1469
+ "Одна или более из ваших форм содержат поля, которые недоступны в WPForms "
1470
+ "Lite. Для правильного импорта этих полей мы рекомендуем обновиться до "
1471
+ "WPForms Pro."
1472
+
1473
+ #: includes/admin/class-tools.php:357
1474
+ msgid ""
1475
+ "You can continue with the import without upgrading, and we will do our best "
1476
+ "to match the fields. However, some of them will be omitted due to "
1477
+ "compatibility issues."
1478
+ msgstr ""
1479
+ "Вы можете продолжить импорт без обновления, и мы постараемся правильно все "
1480
+ "сделать. Однако некоторые из них будут пропущены из-за проблем с "
1481
+ "совместимостью."
1482
+
1483
+ #: includes/admin/class-tools.php:359 includes/admin/class-welcome.php:285
1484
+ msgid "Upgrade to WPForms Pro"
1485
+ msgstr "Обновиться до WPForms Pro"
1486
+
1487
+ #: includes/admin/class-tools.php:360
1488
+ msgid "Continue Import without Upgrading"
1489
+ msgstr "Продолжить импорт без Обновления"
1490
+
1491
+ #: includes/admin/class-tools.php:363
1492
+ msgid "Below are the list of form fields that may be impacted:"
1493
+ msgstr "Ниже представлен список полей формы, которые могут быть затронуты:"
1494
+
1495
+ #. translators: %1$s - current forms counter; %2$s - total forms counter; %3$s
1496
+ #. - provider name.
1497
+ #: includes/admin/class-tools.php:374
1498
+ msgid "Importing %1$s of %2$s forms from %3$s."
1499
+ msgstr "Импортируется %1$s из %2$s форм для %3$s."
1500
+
1501
+ #. translators: %s - number of imported forms.
1502
+ #: includes/admin/class-tools.php:386
1503
+ msgid ""
1504
+ "Congrats, the import process has finished! We have successfully imported %s "
1505
+ "forms. You can review the results below."
1506
+ msgstr ""
1507
+ "Поздравляем, процесс импорта завершен. Мы успешно импортировали %s форм. Вы "
1508
+ "можете просмотреть результаты ниже."
1509
+
1510
+ #: includes/admin/class-tools.php:443
1511
+ #: includes/admin/overview/class-overview-table.php:160
1512
+ msgid "Edit"
1513
+ msgstr "Изменить"
1514
+
1515
+ #: includes/admin/class-tools.php:449
1516
+ msgid "The following fields are available in PRO and were not imported:"
1517
+ msgstr "Следующие поля доступны в Pro и не были импортированы:"
1518
+
1519
+ #: includes/admin/class-tools.php:457
1520
+ msgid ""
1521
+ "The following fields are available in PRO and were imported as text fields:"
1522
+ msgstr ""
1523
+ "Следующие поля доступны в Pro и были импортированы как обычные текстовые "
1524
+ "поля:"
1525
+
1526
+ #: includes/admin/class-tools.php:465
1527
+ msgid "The following fields are not supported and were not imported:"
1528
+ msgstr "Следующие поля не поддерживаются и не были импортированы:"
1529
+
1530
+ #: includes/admin/class-tools.php:474
1531
+ msgid "Upgrade to the PRO plan to import these fields."
1532
+ msgstr "Обновитель до плана PRO для импорта этих полей."
1533
+
1534
+ #: includes/admin/class-tools.php:476 includes/admin/class-welcome.php:247
1535
+ #: pro/includes/admin/class-addons.php:249
1536
+ msgid "Upgrade Now"
1537
+ msgstr "Обновить сейчас"
1538
 
1539
+ #: includes/admin/class-tools.php:495
1540
  msgid "Form Export"
1541
  msgstr "Экспорт формы"
1542
 
1543
+ #: includes/admin/class-tools.php:497
1544
  msgid ""
1545
  "Form exports files can be used to create a backup of your forms or to import "
1546
  "forms into another site."
1548
  "Файлы экспорта форм могут использоваться для создания резервной копии ваших "
1549
  "форм или для импорта форм на другой сайт."
1550
 
1551
+ #: includes/admin/class-tools.php:503
1552
  msgid "Select form(s)"
1553
  msgstr "Выберите форму(ы)"
1554
 
1555
+ #: includes/admin/class-tools.php:510
1556
  msgid "You need to create a form before you can use form export."
1557
  msgstr ""
1558
  "Вам необходимо создать форму, прежде чем вы сможете использовать экспорт "
1559
  "формы."
1560
 
1561
+ #: includes/admin/class-tools.php:522
 
 
 
 
1562
  msgid "Form Template Export"
1563
  msgstr "Шаблон формы"
1564
 
1565
+ #: includes/admin/class-tools.php:526
1566
  msgid ""
1567
  "The following code can be used to register your custom form template. Copy "
1568
  "and paste the following code to your theme's functions.php file or include "
1572
  "шаблона форм. Скопируйте и вставьте следующий код в файл functions.php вашей "
1573
  "темы или включите его во внешний файл."
1574
 
1575
+ #: includes/admin/class-tools.php:527
1576
  msgid ""
1577
  "For more information <a href=\"%s\" target=\"blank\" rel=\"noopener "
1578
  "noreferrer\">see our documentation</a>."
1580
  "Для получения дополнительной информации <a href=\"%s\" target=\"blank\" rel="
1581
  "\"noopener noreferrer\">почитайте нашу документацию</a>."
1582
 
1583
+ #: includes/admin/class-tools.php:532
1584
  msgid ""
1585
  "Select a form to generate PHP code that can be used to register a custom "
1586
  "form template."
1588
  "Выберите форму для генерации PHP-кода, который можно использовать для "
1589
  "регистрации пользовательского шаблона формы."
1590
 
1591
+ #: includes/admin/class-tools.php:545
1592
  msgid "You need to create a form before you can generate a template."
1593
  msgstr "Вам нужно создать форму, прежде чем вы сможете сгенерировать шаблон."
1594
 
1595
+ #: includes/admin/class-tools.php:551
1596
  msgid "Export Template"
1597
  msgstr "Экспорт шаблона"
1598
 
1599
+ #: includes/admin/class-tools.php:566
1600
  msgid "System Information"
1601
  msgstr "Системная информация"
1602
 
1603
+ #: includes/admin/class-tools.php:633
1604
  msgid "Please upload a valid .json form export file."
1605
  msgstr "Пожалуйста, загрузите корректный файл .json экспорта."
1606
 
1607
+ #: includes/admin/class-tools.php:634
1608
+ #: pro/includes/admin/entries/class-entries-export.php:342
1609
  msgid "Error"
1610
  msgstr "Ошибка"
1611
 
1612
+ #: includes/admin/class-tools.php:760 includes/admin/class-tools.php:764
1613
  #: pro/includes/admin/entries/class-entries-single.php:733
1614
  #: pro/includes/admin/entries/class-entries-single.php:1087
1615
  msgid "M j, Y @ g:ia"
1774
  msgid "See All Features"
1775
  msgstr "Все возможности"
1776
 
1777
+ #: includes/admin/class-welcome.php:226 lite/wpforms-lite.php:410
1778
  msgid "Upgrade to PRO"
1779
  msgstr "Обновить до PRO"
1780
 
1827
  msgid "per year"
1828
  msgstr "в год"
1829
 
 
 
 
 
1830
  #: includes/admin/class-welcome.php:258
1831
  msgid "Testimonials"
1832
  msgstr "Отзывы"
1856
  "действительно работают, меньше чем за 2 минуты, не прикасаясь к коду. Это "
1857
  "очень даже стоит инвестиций."
1858
 
1859
+ #: includes/admin/importers/class-base.php:114
1860
+ msgid "There was an error while creating a new form."
1861
+ msgstr "Во время создания формы произошла ошибка."
1862
+
1863
+ #: includes/admin/importers/class-contact-form-7.php:107
1864
+ #: includes/admin/importers/class-ninja-forms.php:124
1865
+ msgid "Sending"
1866
+ msgstr "Отправка"
1867
+
1868
+ #: includes/admin/importers/class-contact-form-7.php:112
1869
+ #: includes/admin/importers/class-ninja-forms.php:129
1870
+ msgid "Notification 1"
1871
+ msgstr "Уведомление 1"
1872
+
1873
+ #. translators: %s - Contact Form 7 form name.
1874
+ #. translators: %s - Ninja Forms form name.
1875
+ #: includes/admin/importers/class-contact-form-7.php:115
1876
+ #: includes/admin/importers/class-contact-form-7.php:400
1877
+ #: includes/admin/importers/class-ninja-forms.php:132
1878
+ #: includes/admin/importers/class-ninja-forms.php:404
1879
+ msgid "New Entry: %s"
1880
+ msgstr "Новая запись: %s"
1881
+
1882
+ #: includes/admin/importers/class-contact-form-7.php:134
1883
+ #: includes/admin/importers/class-ninja-forms.php:151
1884
+ msgid "No form fields found."
1885
+ msgstr "Поля формы не найдены."
1886
+
1887
+ #: includes/admin/importers/class-contact-form-7.php:302
1888
+ msgid "Acceptance Field"
1889
+ msgstr "Поле согласия"
1890
+
1891
+ #: includes/admin/importers/class-contact-form-7.php:397
1892
+ msgid "Notification 2"
1893
+ msgstr "Уведомление 2"
1894
+
1895
+ #. translators: %1$s - field type; %2$s - field name if available.
1896
+ #: includes/admin/importers/class-contact-form-7.php:490
1897
+ msgid "%1$s Field%2$s"
1898
+ msgstr "Поле (%1$s)%2$s"
1899
+
1900
+ #: includes/admin/importers/class-ninja-forms.php:227
1901
+ msgid "Single Checkbox Field"
1902
+ msgstr "Поле с одним чекбоксом"
1903
+
1904
+ #: includes/admin/importers/class-ninja-forms.php:401
1905
+ #: includes/admin/importers/class-ninja-forms.php:417
1906
+ msgid "Notification"
1907
+ msgstr "Уведомление"
1908
 
1909
  #: includes/admin/overview/class-overview-table.php:53
1910
  #: includes/fields/class-name.php:21 includes/fields/class-name.php:276
1930
  msgid "Edit this form"
1931
  msgstr "Редактировать форму"
1932
 
 
 
 
 
1933
  #: includes/admin/overview/class-overview-table.php:173
1934
  msgid "View entries"
1935
  msgstr "Посмотреть записи"
1997
  #: includes/admin/settings-api.php:98
1998
  msgid ""
1999
  "To unlock more features consider <a href=\"%s\" target=\"_blank\" rel="
2000
+ "\"noopener noreferrer\" class=\"wpforms-upgrade-modal\">upgrading to Pro</a>."
2001
+ "</p>"
2002
  msgstr ""
2003
+ "Для получения доступа к дополнительным возможностям <a href=\"%s\" target="
2004
+ "\"_blank\" rel=\"noopener noreferrer\" class=\"wpforms-upgrade-modal"
2005
+ "\">обновитесь до Pro</a>.</p>"
2006
 
2007
  #: includes/admin/settings-api.php:106
2008
  msgid "Verify Key"
2029
  msgid "Upload Image"
2030
  msgstr "Загрузить изображение"
2031
 
2032
+ #: includes/class-conditional-logic-core.php:162
2033
  msgid "this field if"
2034
  msgstr "это поле, если"
2035
 
2036
+ #: includes/class-conditional-logic-core.php:169
2037
  msgid "Show"
2038
  msgstr "Показать"
2039
 
2040
+ #: includes/class-conditional-logic-core.php:170
2041
  msgid "Hide"
2042
  msgstr "Спрятать"
2043
 
2044
+ #: includes/class-conditional-logic-core.php:205
2045
+ #: includes/class-conditional-logic-core.php:262
2046
  msgid "Enable conditional logic"
2047
  msgstr "Включить условную логику"
2048
 
2049
+ #: includes/class-conditional-logic-core.php:206
2050
  msgid "Check this option to enable conditional logic on this field."
2051
  msgstr "Установите этот флажок, чтобы включить условную логику в этом поле."
2052
 
2053
+ #: includes/class-conditional-logic-core.php:264
2054
  msgid "Check this option to enable conditional logic."
2055
  msgstr "Установите этот флажок, чтобы включить условную логику."
2056
 
2057
+ #: includes/class-conditional-logic-core.php:461
2058
  msgid "Add rule group"
2059
  msgstr "Добавить группу правил"
2060
 
2061
  #: includes/class-frontend.php:1010
2062
  #: pro/includes/fields/class-file-upload.php:367
2063
  #: pro/includes/fields/class-file-upload.php:383
2064
+ #: pro/includes/fields/class-file-upload.php:400 pro/wpforms-pro.php:191
2065
  msgid "File type is not allowed."
2066
  msgstr "Тип файла не разрешается."
2067
 
2068
+ #: includes/class-frontend.php:1011 pro/wpforms-pro.php:197
2069
  msgid "File exceeds max size allowed."
2070
  msgstr "Размер файла превышает максимально разрешенный размер."
2071
 
2072
+ #: includes/class-frontend.php:1012 pro/wpforms-pro.php:203
2073
  msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
2074
  msgstr "Введите время в 12-часовом формате AM / PM (например, 8:45 AM)."
2075
 
2076
+ #: includes/class-frontend.php:1013 pro/wpforms-pro.php:209
2077
  msgid "Please enter time in 24-hour format (eg 22:45)."
2078
  msgstr "Введите время в 24-часовом формате (например, 22:45)."
2079
 
2080
  #: includes/class-frontend.php:1014
2081
+ #: pro/includes/fields/class-payment-total.php:199 pro/wpforms-pro.php:215
2082
  msgid "Payment is required."
2083
  msgstr "Оплата обязательна."
2084
 
2085
+ #: includes/class-frontend.php:1015 pro/wpforms-pro.php:221
2086
  msgid "Please enter a valid credit card number."
2087
  msgstr "Укажите действительный номер карты."
2088
 
2179
  msgid "WPForms Preview"
2180
  msgstr "Предпросмотр WPForms"
2181
 
2182
+ #: includes/class-preview.php:373 includes/integrations.php:53
2183
+ msgid "Form"
2184
+ msgstr "Форма"
2185
+
2186
  #: includes/class-preview.php:375
2187
  msgid "This is a preview of your form. This page is not publicly accessible."
2188
  msgstr ""
2198
  msgid "%s Preview"
2199
  msgstr "Просмотр %s"
2200
 
2201
+ #: includes/class-process.php:80
2202
  msgid "Invalid form."
2203
  msgstr "Неверная форма."
2204
 
2205
+ #: includes/class-process.php:117
2206
  msgid "Incorrect reCAPTCHA, please try again."
2207
  msgstr "Ошибка reCAPTCHA, пожалуйста, попробуйте еще раз."
2208
 
2209
+ #: includes/class-process.php:120
2210
  msgid "reCAPTCHA is required."
2211
  msgstr "reCAPTCHA обязательна."
2212
 
2213
+ #: includes/class-process.php:132 includes/class-process.php:182
2214
  msgid "Form has not been submitted, please see the errors below."
2215
  msgstr "Форма не была отправлена, пожалуйста, проверьте ошибки."
2216
 
2217
+ #: includes/class-process.php:144
2218
  msgid "WPForms honeypot field triggered."
2219
  msgstr "Сработало анти-спам поле WPForms."
2220
 
2221
+ #: includes/class-process.php:370 pro/wpforms-pro.php:406
2222
  msgctxt "Form name"
2223
  msgid "New %s Entry"
2224
  msgstr "Новая запись: %s"
2225
 
2226
+ #: includes/class-smart-tags.php:35
2227
  msgid "Site Administrator Email"
2228
  msgstr "Электронная почта администратора"
2229
 
2230
+ #: includes/class-smart-tags.php:36
2231
  msgid "Entry ID"
2232
  msgstr "ID Записи"
2233
 
2234
+ #: includes/class-smart-tags.php:37
2235
  msgid "Form ID"
2236
  msgstr "ID формы"
2237
 
2238
+ #: includes/class-smart-tags.php:39
2239
  msgid "Embedded Post/Page Title"
2240
  msgstr "Заголовок записи, где встроено"
2241
 
2242
+ #: includes/class-smart-tags.php:40
2243
  msgid "Embedded Post Page URL"
2244
  msgstr "URL записи, где встроено"
2245
 
2246
+ #: includes/class-smart-tags.php:41
2247
  msgid "Embedded Post/Page ID"
2248
  msgstr "ID записи, где встроено"
2249
 
2250
+ #: includes/class-smart-tags.php:42
2251
  #: pro/includes/admin/entries/class-entries-export.php:203
2252
  #: pro/includes/admin/entries/class-entries-list-table.php:165
2253
  #: pro/includes/fields/class-date-time.php:73
2258
  msgid "Date"
2259
  msgstr "Дата"
2260
 
2261
+ #: includes/class-smart-tags.php:43
2262
  msgid "Query String Variable"
2263
  msgstr "Переменная строка запроса"
2264
 
2265
+ #: includes/class-smart-tags.php:44
2266
  msgid "User IP Address"
2267
  msgstr "IP адрес пользователя"
2268
 
2269
+ #: includes/class-smart-tags.php:45
2270
  msgid "User ID"
2271
  msgstr "ID пользователя"
2272
 
2273
+ #: includes/class-smart-tags.php:46
2274
  msgid "User Name"
2275
  msgstr "Имя пользователя"
2276
 
2277
+ #: includes/class-smart-tags.php:47
2278
  msgid "User Email"
2279
  msgstr "Email пользователя"
2280
 
2281
+ #: includes/class-smart-tags.php:48
2282
  msgid "Author ID"
2283
  msgstr "ID автора"
2284
 
2285
+ #: includes/class-smart-tags.php:49
2286
  msgid "Author Name"
2287
  msgstr "Имя автора"
2288
 
2289
+ #: includes/class-smart-tags.php:50
2290
  msgid "Author Email"
2291
  msgstr "Email автора"
2292
 
2293
+ #: includes/class-smart-tags.php:51
2294
  msgid "Referrer URL"
2295
  msgstr "URL отправителя"
2296
 
2297
+ #: includes/class-smart-tags.php:52
2298
  msgid "Login URL"
2299
  msgstr "URL логина"
2300
 
2301
+ #: includes/class-smart-tags.php:53
2302
  msgid "Logout URL"
2303
  msgstr "Страница выхода"
2304
 
2305
+ #: includes/class-smart-tags.php:54
2306
  msgid "Register URL"
2307
  msgstr "URL страницы регистрации"
2308
 
2309
+ #: includes/class-smart-tags.php:55
2310
  msgid "Lost Password URL"
2311
  msgstr "URL-адрес страницы восстановления пароля"
2312
 
2353
  #: includes/emails/class-emails.php:331
2354
  msgid ""
2355
  "You cannot send emails with WPForms_WP_Emails until init/admin_init has been "
2356
+ "reached."
2357
  msgstr ""
2358
+ "Вы не можете отправлять письма, используя WPForms_WP_Emails, пока не дошло "
2359
+ "дело до хука init/admin_init."
2360
 
2361
  #: includes/emails/class-emails.php:472 includes/emails/class-emails.php:495
2362
+ #: includes/fields/class-checkbox.php:194 includes/fields/class-radio.php:194
2363
+ #: includes/fields/class-select.php:200
2364
  msgid "(empty)"
2365
  msgstr "(пусто)"
2366
 
2368
  msgid "Field ID #"
2369
  msgstr "ID поля #"
2370
 
2371
+ #: includes/emails/class-emails.php:504
2372
  msgid "An empty form was submitted."
2373
  msgstr "Была отправлена пустая форма."
2374
 
2582
  msgid "Third Choice"
2583
  msgstr "Третий вариант"
2584
 
 
 
 
 
 
2585
  #: includes/fields/class-checkbox.php:97 includes/fields/class-radio.php:97
2586
  #: includes/fields/class-select.php:97
2587
  msgid "Show Values"
2588
  msgstr "Показать значения"
2589
 
2590
+ #: includes/fields/class-checkbox.php:98 includes/fields/class-radio.php:98
2591
+ #: includes/fields/class-select.php:98
2592
+ msgid "Check this to manually set form field values."
2593
+ msgstr "Установите этот флажок для ручного ввода данных формы."
2594
+
2595
+ #: includes/fields/class-checkbox.php:212 includes/fields/class-radio.php:212
2596
  msgid ""
2597
  "Showing the first 20 choices.<br> All %d choices will be displayed when "
2598
  "viewing the form."
2685
  msgid "First name field advanced options."
2686
  msgstr "Дополнительные опции поля имени."
2687
 
2688
+ #: includes/fields/class-name.php:306
2689
+ msgid "Middle Name"
2690
+ msgstr "Отчество"
2691
+
2692
+ #: includes/fields/class-name.php:306
2693
+ msgid "Middle name field advanced options."
2694
+ msgstr "Дополнительные опции поля отчества."
2695
+
2696
+ #: includes/fields/class-name.php:321
2697
+ msgid "Last Name"
2698
+ msgstr "Фамилия"
2699
+
2700
+ #: includes/fields/class-name.php:321
2701
+ msgid "Last name field advanced options."
2702
+ msgstr "Дополнительные опции поля фамилии."
2703
+
2704
+ #: includes/fields/class-number.php:21
2705
+ msgid "Numbers"
2706
+ msgstr "Числа"
2707
+
2708
+ #: includes/fields/class-radio.php:21
2709
+ msgid "Multiple Choice"
2710
+ msgstr "Радио-кнопки"
2711
+
2712
+ #: includes/fields/class-select.php:21
2713
+ msgid "Dropdown"
2714
+ msgstr "Список"
2715
+
2716
+ #: includes/fields/class-text.php:21
2717
+ msgid "Single Line Text"
2718
+ msgstr "Строка текста"
2719
+
2720
+ #: includes/fields/class-textarea.php:21
2721
+ msgid "Paragraph Text"
2722
+ msgstr "Текст"
2723
+
2724
+ #: includes/functions.php:625
2725
+ msgid "Alabama"
2726
+ msgstr "Алабама"
2727
+
2728
+ #: includes/functions.php:626
2729
+ msgid "Alaska"
2730
+ msgstr "Аляска"
2731
+
2732
+ #: includes/functions.php:627
2733
+ msgid "Arizona"
2734
+ msgstr "Аризона"
2735
+
2736
+ #: includes/functions.php:628
2737
+ msgid "Arkansas"
2738
+ msgstr "Арканзас"
2739
+
2740
+ #: includes/functions.php:629
2741
+ msgid "California"
2742
+ msgstr "Калифорния"
2743
+
2744
+ #: includes/functions.php:630
2745
+ msgid "Colorado"
2746
+ msgstr "Колорадо"
2747
+
2748
+ #: includes/functions.php:631
2749
+ msgid "Connecticut"
2750
+ msgstr "Коннектикут"
2751
+
2752
+ #: includes/functions.php:632
2753
+ msgid "Delaware"
2754
+ msgstr "Делавер"
2755
+
2756
+ #: includes/functions.php:633
2757
+ msgid "District of Columbia"
2758
+ msgstr "Округ Колумбия"
2759
+
2760
+ #: includes/functions.php:634
2761
+ msgid "Florida"
2762
+ msgstr "Флорида"
2763
+
2764
+ #: includes/functions.php:635 includes/functions.php:777
2765
+ msgid "Georgia"
2766
+ msgstr "Грузия"
2767
+
2768
+ #: includes/functions.php:636
2769
+ msgid "Hawaii"
2770
+ msgstr "Гавайи"
2771
+
2772
+ #: includes/functions.php:637
2773
+ msgid "Idaho"
2774
+ msgstr "Айдахо"
2775
+
2776
+ #: includes/functions.php:638
2777
+ msgid "Illinois"
2778
+ msgstr "Иллинойс"
2779
+
2780
+ #: includes/functions.php:639
2781
+ msgid "Indiana"
2782
+ msgstr "Индиана"
2783
+
2784
+ #: includes/functions.php:640
2785
+ msgid "Iowa"
2786
+ msgstr "Айова"
2787
+
2788
+ #: includes/functions.php:641
2789
+ msgid "Kansas"
2790
+ msgstr "Канзас"
2791
+
2792
+ #: includes/functions.php:642
2793
+ msgid "Kentucky"
2794
+ msgstr "Кентукки"
2795
+
2796
+ #: includes/functions.php:643
2797
+ msgid "Louisiana"
2798
+ msgstr "Луизиана"
2799
+
2800
+ #: includes/functions.php:644
2801
+ msgid "Maine"
2802
+ msgstr "Мэн"
2803
+
2804
+ #: includes/functions.php:645
2805
+ msgid "Maryland"
2806
+ msgstr "Мэриленд"
2807
+
2808
+ #: includes/functions.php:646
2809
+ msgid "Massachusetts"
2810
+ msgstr "Массачусетс"
2811
+
2812
+ #: includes/functions.php:647
2813
+ msgid "Michigan"
2814
+ msgstr "Мичиган"
2815
+
2816
+ #: includes/functions.php:648
2817
+ msgid "Minnesota"
2818
+ msgstr "Миннесота"
2819
+
2820
+ #: includes/functions.php:649
2821
+ msgid "Mississippi"
2822
+ msgstr "Миссисипи"
2823
+
2824
+ #: includes/functions.php:650
2825
+ msgid "Missouri"
2826
+ msgstr "Миссури"
2827
+
2828
+ #: includes/functions.php:651
2829
+ msgid "Montana"
2830
+ msgstr "Монтана"
2831
+
2832
+ #: includes/functions.php:652
2833
+ msgid "Nebraska"
2834
+ msgstr "Небраска"
2835
+
2836
+ #: includes/functions.php:653
2837
+ msgid "Nevada"
2838
+ msgstr "Невада"
2839
+
2840
+ #: includes/functions.php:654
2841
+ msgid "New Hampshire"
2842
+ msgstr "Нью-Гемпшир"
2843
+
2844
+ #: includes/functions.php:655
2845
+ msgid "New Jersey"
2846
+ msgstr "Нью-Джерси"
2847
+
2848
+ #: includes/functions.php:656
2849
+ msgid "New Mexico"
2850
+ msgstr "Нью-Мексико"
2851
+
2852
+ #: includes/functions.php:657
2853
+ msgid "New York"
2854
+ msgstr "Нью-Йорк"
2855
+
2856
+ #: includes/functions.php:658
2857
+ msgid "North Carolina"
2858
+ msgstr "Северная Каролина"
2859
+
2860
+ #: includes/functions.php:659
2861
+ msgid "North Dakota"
2862
+ msgstr "Северная Дакота"
2863
+
2864
+ #: includes/functions.php:660
2865
+ msgid "Ohio"
2866
+ msgstr "Огайо"
2867
+
2868
+ #: includes/functions.php:661
2869
+ msgid "Oklahoma"
2870
+ msgstr "Оклахома"
2871
+
2872
+ #: includes/functions.php:662
2873
+ msgid "Oregon"
2874
+ msgstr "Орегон"
2875
+
2876
+ #: includes/functions.php:663
2877
+ msgid "Pennsylvania"
2878
+ msgstr "Пенсильвания"
2879
+
2880
+ #: includes/functions.php:664
2881
+ msgid "Rhode Island"
2882
+ msgstr "Род-Айленд"
2883
+
2884
+ #: includes/functions.php:665
2885
+ msgid "South Carolina"
2886
+ msgstr "Южная Каролина"
2887
+
2888
+ #: includes/functions.php:666
2889
+ msgid "South Dakota"
2890
+ msgstr "Южная Дакота"
2891
+
2892
+ #: includes/functions.php:667
2893
+ msgid "Tennessee"
2894
+ msgstr "Теннесси"
2895
+
2896
+ #: includes/functions.php:668
2897
+ msgid "Texas"
2898
+ msgstr "Техас"
2899
+
2900
+ #: includes/functions.php:669
2901
+ msgid "Utah"
2902
+ msgstr "Юта"
2903
+
2904
+ #: includes/functions.php:670
2905
+ msgid "Vermont"
2906
+ msgstr "Вермонт"
2907
+
2908
+ #: includes/functions.php:671
2909
+ msgid "Virginia"
2910
+ msgstr "Виргиния"
2911
+
2912
+ #: includes/functions.php:672
2913
+ msgid "Washington"
2914
+ msgstr "Вашингтон"
2915
+
2916
+ #: includes/functions.php:673
2917
+ msgid "West Virginia"
2918
+ msgstr "Западная Виргиния"
2919
+
2920
+ #: includes/functions.php:674
2921
+ msgid "Wisconsin"
2922
+ msgstr "Висконсин"
2923
+
2924
+ #: includes/functions.php:675
2925
+ msgid "Wyoming"
2926
+ msgstr "Вайоминг"
2927
+
2928
+ #: includes/functions.php:690
2929
+ msgid "Afghanistan"
2930
+ msgstr "Афганистан"
2931
+
2932
+ #: includes/functions.php:691
2933
+ msgid "Aland Islands"
2934
+ msgstr "Аландские острова"
2935
+
2936
+ #: includes/functions.php:692
2937
+ msgid "Albania"
2938
+ msgstr "Албания"
2939
+
2940
+ #: includes/functions.php:693
2941
+ msgid "Algeria"
2942
+ msgstr "Алжир"
2943
+
2944
+ #: includes/functions.php:694
2945
+ msgid "American Samoa"
2946
+ msgstr "Американское Самоа"
2947
+
2948
+ #: includes/functions.php:695
2949
+ msgid "Andorra"
2950
+ msgstr "Андорра"
2951
+
2952
+ #: includes/functions.php:696
2953
+ msgid "Angola"
2954
+ msgstr "Ангола"
2955
+
2956
+ #: includes/functions.php:697
2957
+ msgid "Anguilla"
2958
+ msgstr "Ангилья"
2959
+
2960
+ #: includes/functions.php:698
2961
+ msgid "Antarctica"
2962
+ msgstr "Антарктида"
2963
+
2964
+ #: includes/functions.php:699
2965
+ msgid "Antigua and Barbuda"
2966
+ msgstr "Антигуа и Барбуда"
2967
+
2968
+ #: includes/functions.php:700
2969
+ msgid "Argentina"
2970
+ msgstr "Аргентина"
2971
+
2972
+ #: includes/functions.php:701
2973
+ msgid "Armenia"
2974
+ msgstr "Армения"
2975
+
2976
+ #: includes/functions.php:702
2977
+ msgid "Aruba"
2978
+ msgstr "Аруба"
2979
+
2980
+ #: includes/functions.php:703
2981
+ msgid "Ascension Island"
2982
+ msgstr "Остров Вознесения"
2983
+
2984
+ #: includes/functions.php:704
2985
+ msgid "Australia"
2986
+ msgstr "Австралия"
2987
+
2988
+ #: includes/functions.php:705
2989
+ msgid "Austria"
2990
+ msgstr "Австрия"
2991
+
2992
+ #: includes/functions.php:706
2993
+ msgid "Azerbaijan"
2994
+ msgstr "Азербайджан"
2995
+
2996
+ #: includes/functions.php:707
2997
+ msgid "Bahamas"
2998
+ msgstr "Багамские острова"
2999
+
3000
+ #: includes/functions.php:708
3001
+ msgid "Bahrain"
3002
+ msgstr "Бахрейн"
3003
+
3004
+ #: includes/functions.php:709
3005
+ msgid "Bangladesh"
3006
+ msgstr "Бангладеш"
3007
+
3008
+ #: includes/functions.php:710
3009
+ msgid "Barbados"
3010
+ msgstr "Барбадос"
3011
+
3012
+ #: includes/functions.php:711
3013
+ msgid "Belarus"
3014
+ msgstr "Беларусь"
3015
+
3016
+ #: includes/functions.php:712
3017
+ msgid "Belgium"
3018
+ msgstr "Бельгия"
3019
+
3020
+ #: includes/functions.php:713
3021
+ msgid "Belize"
3022
+ msgstr "Белиз"
3023
+
3024
+ #: includes/functions.php:714
3025
+ msgid "Benin"
3026
+ msgstr "Бенин"
3027
+
3028
+ #: includes/functions.php:715
3029
+ msgid "Bermuda"
3030
+ msgstr "Бермудские острова"
3031
+
3032
+ #: includes/functions.php:716
3033
+ msgid "Bhutan"
3034
+ msgstr "Бутан"
3035
+
3036
+ #: includes/functions.php:717
3037
+ msgid "Bolivia"
3038
+ msgstr "Боливия"
3039
+
3040
+ #: includes/functions.php:718
3041
+ msgid "Bosnia and Herzegovina"
3042
+ msgstr "Босния и Герцеговина"
3043
+
3044
+ #: includes/functions.php:719
3045
+ msgid "Botswana"
3046
+ msgstr "Ботсвана"
3047
+
3048
+ #: includes/functions.php:720
3049
+ msgid "Bouvet Island"
3050
+ msgstr "Остров Буве"
3051
+
3052
+ #: includes/functions.php:721
3053
+ msgid "Brazil"
3054
+ msgstr "Бразилия"
3055
+
3056
+ #: includes/functions.php:722
3057
+ msgid "British Indian Ocean Territory"
3058
+ msgstr "Британская территория Индийского океана"
3059
+
3060
+ #: includes/functions.php:723
3061
+ msgid "British Virgin Islands"
3062
+ msgstr "Британские Виргинские острова"
3063
+
3064
+ #: includes/functions.php:724
3065
+ msgid "Brunei"
3066
+ msgstr "Бруней"
3067
+
3068
+ #: includes/functions.php:725
3069
+ msgid "Bulgaria"
3070
+ msgstr "Болгария"
3071
+
3072
+ #: includes/functions.php:726
3073
+ msgid "Burkina Faso"
3074
+ msgstr "Буркина-Фасо"
3075
+
3076
+ #: includes/functions.php:727
3077
+ msgid "Burundi"
3078
+ msgstr "Бурунди"
3079
+
3080
+ #: includes/functions.php:728
3081
+ msgid "Cambodia"
3082
+ msgstr "Камбоджа"
3083
+
3084
+ #: includes/functions.php:729
3085
+ msgid "Cameroon"
3086
+ msgstr "Камерун"
3087
+
3088
+ #: includes/functions.php:730
3089
+ msgid "Canada"
3090
+ msgstr "Канада"
3091
+
3092
+ #: includes/functions.php:731
3093
+ msgid "Canary Islands"
3094
+ msgstr "Канарские острова"
3095
+
3096
+ #: includes/functions.php:732
3097
+ msgid "Cape Verde"
3098
+ msgstr "Кабо-Верде"
3099
+
3100
+ #: includes/functions.php:733
3101
+ msgid "Caribbean Netherlands"
3102
+ msgstr "Карибские Нидерланды"
3103
+
3104
+ #: includes/functions.php:734
3105
+ msgid "Cayman Islands"
3106
+ msgstr "Каймановы острова"
3107
+
3108
+ #: includes/functions.php:735
3109
+ msgid "Central African Republic"
3110
+ msgstr "Центрально-Африканская Республика"
3111
+
3112
+ #: includes/functions.php:736
3113
+ msgid "Ceuta and Melilla"
3114
+ msgstr "Сеута и Мелилья"
3115
+
3116
+ #: includes/functions.php:737
3117
+ msgid "Chad"
3118
+ msgstr "Чад"
3119
+
3120
+ #: includes/functions.php:738
3121
+ msgid "Chile"
3122
+ msgstr "Чили"
3123
+
3124
+ #: includes/functions.php:739
3125
+ msgid "China"
3126
+ msgstr "Китай"
3127
+
3128
+ #: includes/functions.php:740
3129
+ msgid "Christmas Island"
3130
+ msgstr "Остров Рождества"
3131
+
3132
+ #: includes/functions.php:741
3133
+ msgid "Clipperton Island"
3134
+ msgstr "Остров Клиппертон"
3135
+
3136
+ #: includes/functions.php:742
3137
+ msgid "Cocos (Keeling) Islands"
3138
+ msgstr "Кокосовые (Килинг) острова"
3139
+
3140
+ #: includes/functions.php:743
3141
+ msgid "Colombia"
3142
+ msgstr "Колумбия"
3143
+
3144
+ #: includes/functions.php:744
3145
+ msgid "Comoros"
3146
+ msgstr "Коморские острова"
3147
+
3148
+ #: includes/functions.php:745
3149
+ msgid "Congo (DRC)"
3150
+ msgstr "Конго (ДРК)"
3151
+
3152
+ #: includes/functions.php:746
3153
+ msgid "Congo (Republic)"
3154
+ msgstr "Конго (Республика)"
3155
+
3156
+ #: includes/functions.php:747
3157
+ msgid "Cook Islands"
3158
+ msgstr "Острова Кука"
3159
+
3160
+ #: includes/functions.php:748
3161
+ msgid "Costa Rica"
3162
+ msgstr "Коста-Рика"
3163
+
3164
+ #: includes/functions.php:749
3165
+ msgid "Côte d’Ivoire"
3166
+ msgstr "Берег Слоновой Кости"
3167
+
3168
+ #: includes/functions.php:750
3169
+ msgid "Croatia"
3170
+ msgstr "Хорватия"
3171
+
3172
+ #: includes/functions.php:751
3173
+ msgid "Cuba"
3174
+ msgstr "Куба"
3175
+
3176
+ #: includes/functions.php:752
3177
+ msgid "Curaçao"
3178
+ msgstr "Кюрасао"
3179
+
3180
+ #: includes/functions.php:753
3181
+ msgid "Cyprus"
3182
+ msgstr "Кипр"
3183
+
3184
+ #: includes/functions.php:754
3185
+ msgid "Czech Republic"
3186
+ msgstr "Чехия"
3187
+
3188
+ #: includes/functions.php:755
3189
+ msgid "Denmark (Danmark)"
3190
+ msgstr "Дания"
3191
+
3192
+ #: includes/functions.php:756
3193
+ msgid "Diego Garcia"
3194
+ msgstr "Диего Гарсия"
3195
+
3196
+ #: includes/functions.php:757
3197
+ msgid "Djibouti"
3198
+ msgstr "Джибути"
3199
+
3200
+ #: includes/functions.php:758
3201
+ msgid "Dominica"
3202
+ msgstr "Доминика"
3203
+
3204
+ #: includes/functions.php:759
3205
+ msgid "Dominican Republic"
3206
+ msgstr "Доминиканская Республика"
3207
+
3208
+ #: includes/functions.php:760
3209
+ msgid "Ecuador"
3210
+ msgstr "Эквадор"
3211
+
3212
+ #: includes/functions.php:761
3213
+ msgid "Egypt"
3214
+ msgstr "Египет"
3215
+
3216
+ #: includes/functions.php:762
3217
+ msgid "El Salvador"
3218
+ msgstr "Сальвадор"
3219
+
3220
+ #: includes/functions.php:763
3221
+ msgid "Equatorial Guinea"
3222
+ msgstr "Экваториальная Гвинея"
3223
+
3224
+ #: includes/functions.php:764
3225
+ msgid "Eritrea"
3226
+ msgstr "Эритрея"
3227
+
3228
+ #: includes/functions.php:765
3229
+ msgid "Estonia"
3230
+ msgstr "Эстония"
3231
+
3232
+ #: includes/functions.php:766
3233
+ msgid "Ethiopia"
3234
+ msgstr "Эфиопия"
3235
+
3236
+ #: includes/functions.php:767
3237
+ msgid "Falkland Islands"
3238
+ msgstr "Фолклендские Острова"
3239
+
3240
+ #: includes/functions.php:768
3241
+ msgid "Faroe Islands"
3242
+ msgstr "Фарерские острова"
3243
+
3244
+ #: includes/functions.php:769
3245
+ msgid "Fiji"
3246
+ msgstr "Фиджи"
3247
+
3248
+ #: includes/functions.php:770
3249
+ msgid "Finland"
3250
+ msgstr "Финляндия"
3251
+
3252
+ #: includes/functions.php:771
3253
+ msgid "France"
3254
+ msgstr "Франция"
3255
+
3256
+ #: includes/functions.php:772
3257
+ msgid "French Guiana"
3258
+ msgstr "Французская Гвиана"
3259
+
3260
+ #: includes/functions.php:773
3261
+ msgid "French Polynesia"
3262
+ msgstr "Французская Полинезия"
3263
+
3264
+ #: includes/functions.php:774
3265
+ msgid "French Southern Territories"
3266
+ msgstr "Южные Французские Территории"
3267
+
3268
+ #: includes/functions.php:775
3269
+ msgid "Gabon"
3270
+ msgstr "Габон"
3271
+
3272
+ #: includes/functions.php:776
3273
+ msgid "Gambia"
3274
+ msgstr "Гамбия"
3275
+
3276
+ #: includes/functions.php:778
3277
+ msgid "Germany"
3278
+ msgstr "Германия"
3279
+
3280
+ #: includes/functions.php:779
3281
+ msgid "Ghana"
3282
+ msgstr "Гана"
3283
+
3284
+ #: includes/functions.php:780
3285
+ msgid "Gibraltar"
3286
+ msgstr "Гибралтар"
3287
+
3288
+ #: includes/functions.php:781
3289
+ msgid "Greece"
3290
+ msgstr "Греция"
3291
+
3292
+ #: includes/functions.php:782
3293
+ msgid "Greenland"
3294
+ msgstr "Гренландия"
3295
+
3296
+ #: includes/functions.php:783
3297
+ msgid "Grenada"
3298
+ msgstr "Гренада"
3299
+
3300
+ #: includes/functions.php:784
3301
+ msgid "Guadeloupe"
3302
+ msgstr "Гваделупа"
3303
+
3304
+ #: includes/functions.php:785
3305
+ msgid "Guam"
3306
+ msgstr "Гуам"
3307
+
3308
+ #: includes/functions.php:786
3309
+ msgid "Guatemala"
3310
+ msgstr "Гватемала"
3311
+
3312
+ #: includes/functions.php:787
3313
+ msgid "Guernsey"
3314
+ msgstr "Гернси"
3315
+
3316
+ #: includes/functions.php:788
3317
+ msgid "Guinea"
3318
+ msgstr "Гвинея"
3319
+
3320
+ #: includes/functions.php:789
3321
+ msgid "Guinea-Bissau"
3322
+ msgstr "Гвинея-Бисау"
3323
+
3324
+ #: includes/functions.php:790
3325
+ msgid "Guyana"
3326
+ msgstr "Гайана"
3327
+
3328
+ #: includes/functions.php:791
3329
+ msgid "Haiti"
3330
+ msgstr "Гаити"
3331
+
3332
+ #: includes/functions.php:792
3333
+ msgid "Heard & McDonald Islands"
3334
+ msgstr "Остров Херд и острова Макдональд"
3335
+
3336
+ #: includes/functions.php:793
3337
+ msgid "Honduras"
3338
+ msgstr "Гондурас"
3339
+
3340
+ #: includes/functions.php:794
3341
+ msgid "Hong Kong"
3342
+ msgstr "Гонконг"
3343
+
3344
+ #: includes/functions.php:795
3345
+ msgid "Hungary"
3346
+ msgstr "Венгрия"
3347
+
3348
+ #: includes/functions.php:796
3349
+ msgid "Iceland"
3350
+ msgstr "Исландия"
3351
+
3352
+ #: includes/functions.php:797
3353
+ msgid "India"
3354
+ msgstr "Индия"
3355
+
3356
+ #: includes/functions.php:798
3357
+ msgid "Indonesia"
3358
+ msgstr "Индонезия"
3359
+
3360
+ #: includes/functions.php:799
3361
+ msgid "Iran"
3362
+ msgstr "Иран"
3363
+
3364
+ #: includes/functions.php:800
3365
+ msgid "Iraq"
3366
+ msgstr "Ирак"
3367
+
3368
+ #: includes/functions.php:801
3369
+ msgid "Ireland"
3370
+ msgstr "Ирландия"
3371
+
3372
+ #: includes/functions.php:802
3373
+ msgid "Isle of Man"
3374
+ msgstr "Остров Мэн"
3375
+
3376
+ #: includes/functions.php:803
3377
+ msgid "Israel"
3378
+ msgstr "Израиль"
3379
+
3380
+ #: includes/functions.php:804
3381
+ msgid "Italy"
3382
+ msgstr "Италия"
3383
+
3384
+ #: includes/functions.php:805
3385
+ msgid "Jamaica"
3386
+ msgstr "Ямайка"
3387
+
3388
+ #: includes/functions.php:806
3389
+ msgid "Japan"
3390
+ msgstr "Япония"
3391
+
3392
+ #: includes/functions.php:807
3393
+ msgid "Jersey"
3394
+ msgstr "Джерси"
3395
+
3396
+ #: includes/functions.php:808
3397
+ msgid "Jordan"
3398
+ msgstr "Иордания"
3399
+
3400
+ #: includes/functions.php:809
3401
+ msgid "Kazakhstan"
3402
+ msgstr "Казахстан"
3403
+
3404
+ #: includes/functions.php:810
3405
+ msgid "Kenya"
3406
+ msgstr "Кения"
3407
+
3408
+ #: includes/functions.php:811
3409
+ msgid "Kiribati"
3410
+ msgstr "Кирибати"
3411
+
3412
+ #: includes/functions.php:812
3413
+ msgid "Kosovo"
3414
+ msgstr "Косово"
3415
+
3416
+ #: includes/functions.php:813
3417
+ msgid "Kuwait"
3418
+ msgstr "Кувейт"
3419
+
3420
+ #: includes/functions.php:814
3421
+ msgid "Kyrgyzstan"
3422
+ msgstr "Киргизтан"
3423
+
3424
+ #: includes/functions.php:815
3425
+ msgid "Laos"
3426
+ msgstr "Лаос"
3427
+
3428
+ #: includes/functions.php:816
3429
+ msgid "Latvia"
3430
+ msgstr "Латвия"
3431
+
3432
+ #: includes/functions.php:817
3433
+ msgid "Lebanon"
3434
+ msgstr "Ливан"
3435
+
3436
+ #: includes/functions.php:818
3437
+ msgid "Lesotho"
3438
+ msgstr "Лесото"
3439
+
3440
+ #: includes/functions.php:819
3441
+ msgid "Liberia"
3442
+ msgstr "Либерия"
3443
+
3444
+ #: includes/functions.php:820
3445
+ msgid "Libya"
3446
+ msgstr "Ливия"
3447
+
3448
+ #: includes/functions.php:821
3449
+ msgid "Liechtenstein"
3450
+ msgstr "Лихтенштейн"
3451
+
3452
+ #: includes/functions.php:822
3453
+ msgid "Lithuania"
3454
+ msgstr "Литва"
3455
+
3456
+ #: includes/functions.php:823
3457
+ msgid "Luxembourg"
3458
+ msgstr "Люксембург"
3459
+
3460
+ #: includes/functions.php:824
3461
+ msgid "Macau"
3462
+ msgstr "Макао"
3463
+
3464
+ #: includes/functions.php:825
3465
+ msgid "Macedonia (FYROM)"
3466
+ msgstr "Македония"
3467
+
3468
+ #: includes/functions.php:826
3469
+ msgid "Madagascar"
3470
+ msgstr "Мадагаскар"
3471
+
3472
+ #: includes/functions.php:827
3473
+ msgid "Malawi"
3474
+ msgstr "Малави"
3475
+
3476
+ #: includes/functions.php:828
3477
+ msgid "Malaysia"
3478
+ msgstr "Малайзия"
3479
+
3480
+ #: includes/functions.php:829
3481
+ msgid "Maldives"
3482
+ msgstr "Мальдивы"
3483
+
3484
+ #: includes/functions.php:830
3485
+ msgid "Mali"
3486
+ msgstr "Мали"
3487
+
3488
+ #: includes/functions.php:831
3489
+ msgid "Malta"
3490
+ msgstr "Мальта"
3491
+
3492
+ #: includes/functions.php:832
3493
+ msgid "Marshall Islands"
3494
+ msgstr "Маршалловы острова"
3495
+
3496
+ #: includes/functions.php:833
3497
+ msgid "Martinique"
3498
+ msgstr "Мартиника"
3499
+
3500
+ #: includes/functions.php:834
3501
+ msgid "Mauritania"
3502
+ msgstr "Мавритания"
3503
+
3504
+ #: includes/functions.php:835
3505
+ msgid "Mauritius"
3506
+ msgstr "Маврикий"
3507
+
3508
+ #: includes/functions.php:836
3509
+ msgid "Mayotte"
3510
+ msgstr "Майотта"
3511
+
3512
+ #: includes/functions.php:837
3513
+ msgid "Mexico"
3514
+ msgstr "Мексика"
3515
+
3516
+ #: includes/functions.php:838
3517
+ msgid "Micronesia"
3518
+ msgstr "Микронезия"
3519
+
3520
+ #: includes/functions.php:839
3521
+ msgid "Moldova"
3522
+ msgstr "Молдова"
3523
+
3524
+ #: includes/functions.php:840
3525
+ msgid "Monaco"
3526
+ msgstr "Монако"
3527
+
3528
+ #: includes/functions.php:841
3529
+ msgid "Mongolia"
3530
+ msgstr "Монголия"
3531
+
3532
+ #: includes/functions.php:842
3533
+ msgid "Montenegro"
3534
+ msgstr "Черногория"
3535
+
3536
+ #: includes/functions.php:843
3537
+ msgid "Montserrat"
3538
+ msgstr "Монтсеррат"
3539
+
3540
+ #: includes/functions.php:844
3541
+ msgid "Morocco"
3542
+ msgstr "Марокко"
3543
+
3544
+ #: includes/functions.php:845
3545
+ msgid "Mozambique"
3546
+ msgstr "Мозамбик"
3547
+
3548
+ #: includes/functions.php:846
3549
+ msgid "Myanmar"
3550
+ msgstr "Мьянма"
3551
+
3552
+ #: includes/functions.php:847
3553
+ msgid "Namibia"
3554
+ msgstr "Намибия"
3555
+
3556
+ #: includes/functions.php:848
3557
+ msgid "Nauru"
3558
+ msgstr "Науру"
3559
+
3560
+ #: includes/functions.php:849
3561
+ msgid "Nepal"
3562
+ msgstr "Непал"
3563
+
3564
+ #: includes/functions.php:850
3565
+ msgid "Netherlands"
3566
+ msgstr "Нидерланды"
3567
+
3568
+ #: includes/functions.php:851
3569
+ msgid "New Caledonia"
3570
+ msgstr "Новая Каледония"
3571
+
3572
+ #: includes/functions.php:852
3573
+ msgid "New Zealand"
3574
+ msgstr "Новая Зеландия"
3575
+
3576
+ #: includes/functions.php:853
3577
+ msgid "Nicaragua"
3578
+ msgstr "Никарагуа"
3579
+
3580
+ #: includes/functions.php:854
3581
+ msgid "Niger"
3582
+ msgstr "Нигер"
3583
+
3584
+ #: includes/functions.php:855
3585
+ msgid "Nigeria"
3586
+ msgstr "Нигерия"
3587
+
3588
+ #: includes/functions.php:856
3589
+ msgid "Niue"
3590
+ msgstr "Ниуэ"
3591
+
3592
+ #: includes/functions.php:857
3593
+ msgid "Norfolk Island"
3594
+ msgstr "Остров Норфолк"
3595
+
3596
+ #: includes/functions.php:858
3597
+ msgid "Northern Mariana Islands"
3598
+ msgstr "Северные Марианские Острова"
3599
+
3600
+ #: includes/functions.php:859
3601
+ msgid "North Korea"
3602
+ msgstr "Северная Корея"
3603
+
3604
+ #: includes/functions.php:860
3605
+ msgid "Norway"
3606
+ msgstr "Норвегия"
3607
+
3608
+ #: includes/functions.php:861
3609
+ msgid "Oman"
3610
+ msgstr "Оман"
3611
+
3612
+ #: includes/functions.php:862
3613
+ msgid "Pakistan"
3614
+ msgstr "Пакистан"
3615
+
3616
+ #: includes/functions.php:863
3617
+ msgid "Palau"
3618
+ msgstr "Палау"
3619
+
3620
+ #: includes/functions.php:864
3621
+ msgid "Palestine"
3622
+ msgstr "Палестина"
3623
+
3624
+ #: includes/functions.php:865
3625
+ msgid "Panama"
3626
+ msgstr "Панама"
3627
+
3628
+ #: includes/functions.php:866
3629
+ msgid "Papua New Guinea"
3630
+ msgstr "Папуа Новая Гвинея"
3631
+
3632
+ #: includes/functions.php:867
3633
+ msgid "Paraguay"
3634
+ msgstr "Парагвай"
3635
+
3636
+ #: includes/functions.php:868
3637
+ msgid "Peru"
3638
+ msgstr "Перу"
3639
+
3640
+ #: includes/functions.php:869
3641
+ msgid "Philippines"
3642
+ msgstr "Филиппины"
3643
+
3644
+ #: includes/functions.php:870
3645
+ msgid "Pitcairn Islands"
3646
+ msgstr "Острова Питкэрн"
3647
+
3648
+ #: includes/functions.php:871
3649
+ msgid "Poland"
3650
+ msgstr "Польша"
3651
+
3652
+ #: includes/functions.php:872
3653
+ msgid "Portugal"
3654
+ msgstr "Португалия"
3655
+
3656
+ #: includes/functions.php:873
3657
+ msgid "Puerto Rico"
3658
+ msgstr "Пуэрто-Рико"
3659
+
3660
+ #: includes/functions.php:874
3661
+ msgid "Qatar"
3662
+ msgstr "Катар"
3663
+
3664
+ #: includes/functions.php:875
3665
+ msgid "Réunion"
3666
+ msgstr "Реюньон"
3667
+
3668
+ #: includes/functions.php:876
3669
+ msgid "Romania"
3670
+ msgstr "Румыния"
3671
+
3672
+ #: includes/functions.php:877
3673
+ msgid "Russia"
3674
+ msgstr "Россия"
3675
+
3676
+ #: includes/functions.php:878
3677
+ msgid "Rwanda"
3678
+ msgstr "Руанда"
3679
+
3680
+ #: includes/functions.php:879
3681
+ msgid "Saint Barthélemy"
3682
+ msgstr "Сен-Бартелеми"
3683
+
3684
+ #: includes/functions.php:880
3685
+ msgid "Saint Helena"
3686
+ msgstr "Остров Святой Елены"
3687
+
3688
+ #: includes/functions.php:881
3689
+ msgid "Saint Kitts and Nevis"
3690
+ msgstr "Сент-Китс и Невис"
3691
+
3692
+ #: includes/functions.php:882
3693
+ msgid "Saint Lucia"
3694
+ msgstr "Сент-Люсия"
3695
+
3696
+ #: includes/functions.php:883
3697
+ msgid "Saint Martin"
3698
+ msgstr "Сен-Мартен"
3699
+
3700
+ #: includes/functions.php:884
3701
+ msgid "Saint Pierre and Miquelon"
3702
+ msgstr "Сен-Пьер и Микелон"
3703
+
3704
+ #: includes/functions.php:885
3705
+ msgid "Samoa"
3706
+ msgstr "Самоа"
3707
+
3708
+ #: includes/functions.php:886
3709
+ msgid "San Marino"
3710
+ msgstr "Сан-Марино"
3711
+
3712
+ #: includes/functions.php:887
3713
+ msgid "São Tomé and Príncipe"
3714
+ msgstr "Сан-Томе и Принсипи"
3715
+
3716
+ #: includes/functions.php:888
3717
+ msgid "Saudi Arabia"
3718
+ msgstr "Саудовская Аравия"
3719
+
3720
+ #: includes/functions.php:889
3721
+ msgid "Senegal"
3722
+ msgstr "Сенегал"
3723
+
3724
+ #: includes/functions.php:890
3725
+ msgid "Serbia"
3726
+ msgstr "Сербия"
3727
+
3728
+ #: includes/functions.php:891
3729
+ msgid "Seychelles"
3730
+ msgstr "Сейшельские острова"
3731
+
3732
+ #: includes/functions.php:892
3733
+ msgid "Sierra Leone"
3734
+ msgstr "Сьерра-Леоне"
3735
+
3736
+ #: includes/functions.php:893
3737
+ msgid "Singapore"
3738
+ msgstr "Сингапур"
3739
+
3740
+ #: includes/functions.php:894
3741
+ msgid "Sint Maarten"
3742
+ msgstr "Синт-Маартен"
3743
+
3744
+ #: includes/functions.php:895
3745
+ msgid "Slovakia"
3746
+ msgstr "Словакия"
3747
+
3748
+ #: includes/functions.php:896
3749
+ msgid "Slovenia"
3750
+ msgstr "Словения"
3751
+
3752
+ #: includes/functions.php:897
3753
+ msgid "Solomon Islands"
3754
+ msgstr "Соломоновы острова"
3755
+
3756
+ #: includes/functions.php:898
3757
+ msgid "Somalia"
3758
+ msgstr "Сомали"
3759
+
3760
+ #: includes/functions.php:899
3761
+ msgid "South Africa"
3762
+ msgstr "Южная Африка"
3763
+
3764
+ #: includes/functions.php:900
3765
+ msgid "South Georgia & South Sandwich Islands"
3766
+ msgstr "Южная Джорджия и Южные Сандвичевы острова"
3767
+
3768
+ #: includes/functions.php:901
3769
+ msgid "South Korea"
3770
+ msgstr "Южная Корея"
3771
+
3772
+ #: includes/functions.php:902
3773
+ msgid "South Sudan"
3774
+ msgstr "Южный Судан"
3775
+
3776
+ #: includes/functions.php:903
3777
+ msgid "Spain"
3778
+ msgstr "Испания"
3779
+
3780
+ #: includes/functions.php:904
3781
+ msgid "Sri Lanka"
3782
+ msgstr "Шри Ланка"
3783
+
3784
+ #: includes/functions.php:905
3785
+ msgid "St. Vincent & Grenadines"
3786
+ msgstr "Сент-Винсент и Гренадины"
3787
+
3788
+ #: includes/functions.php:906
3789
+ msgid "Sudan"
3790
+ msgstr "Судан"
3791
+
3792
+ #: includes/functions.php:907
3793
+ msgid "Suriname"
3794
+ msgstr "Суринам"
3795
+
3796
+ #: includes/functions.php:908
3797
+ msgid "Svalbard and Jan Mayen"
3798
+ msgstr "Шпицберген и Ян-Майен"
3799
+
3800
+ #: includes/functions.php:909
3801
+ msgid "Swaziland"
3802
+ msgstr "Свазиленд"
3803
+
3804
+ #: includes/functions.php:910
3805
+ msgid "Sweden"
3806
+ msgstr "Швеция"
3807
+
3808
+ #: includes/functions.php:911
3809
+ msgid "Switzerland"
3810
+ msgstr "Швейцария"
3811
+
3812
+ #: includes/functions.php:912
3813
+ msgid "Syria"
3814
+ msgstr "Сирия"
3815
+
3816
+ #: includes/functions.php:913
3817
+ msgid "Taiwan"
3818
+ msgstr "Тайвань"
3819
+
3820
+ #: includes/functions.php:914
3821
+ msgid "Tajikistan"
3822
+ msgstr "Таджикистан"
3823
+
3824
+ #: includes/functions.php:915
3825
+ msgid "Tanzania"
3826
+ msgstr "Танзания"
3827
+
3828
+ #: includes/functions.php:916
3829
+ msgid "Thailand"
3830
+ msgstr "Таиланд"
3831
+
3832
+ #: includes/functions.php:917
3833
+ msgid "Timor-Leste"
3834
+ msgstr "Восточный Тимор"
3835
+
3836
+ #: includes/functions.php:918
3837
+ msgid "Togo"
3838
+ msgstr "Того"
3839
+
3840
+ #: includes/functions.php:919
3841
+ msgid "Tokelau"
3842
+ msgstr "Токелау"
3843
+
3844
+ #: includes/functions.php:920
3845
+ msgid "Tonga"
3846
+ msgstr "Тонга"
3847
+
3848
+ #: includes/functions.php:921
3849
+ msgid "Trinidad and Tobago"
3850
+ msgstr "Тринидад и Тобаго"
3851
+
3852
+ #: includes/functions.php:922
3853
+ msgid "Tristan da Cunha"
3854
+ msgstr "Тристан-да-Кунья"
3855
+
3856
+ #: includes/functions.php:923
3857
+ msgid "Tunisia"
3858
+ msgstr "Тунис"
3859
+
3860
+ #: includes/functions.php:924
3861
+ msgid "Turkey"
3862
+ msgstr "Турция"
3863
+
3864
+ #: includes/functions.php:925
3865
+ msgid "Turkmenistan"
3866
+ msgstr "Туркменистан"
3867
+
3868
+ #: includes/functions.php:926
3869
+ msgid "Turks and Caicos Islands"
3870
+ msgstr "Острова Теркс и Кайкос"
3871
+
3872
+ #: includes/functions.php:927
3873
+ msgid "Tuvalu"
3874
+ msgstr "Тувалу"
3875
+
3876
+ #: includes/functions.php:928
3877
+ msgid "U.S. Outlying Islands"
3878
+ msgstr "Внешние малые острова США"
3879
+
3880
+ #: includes/functions.php:929
3881
+ msgid "U.S. Virgin Islands"
3882
+ msgstr "Виргинские острова США"
3883
+
3884
+ #: includes/functions.php:930
3885
+ msgid "Uganda"
3886
+ msgstr "Уганда"
3887
+
3888
+ #: includes/functions.php:931
3889
+ msgid "Ukraine"
3890
+ msgstr "Украина"
3891
+
3892
+ #: includes/functions.php:932
3893
+ msgid "United Arab Emirates"
3894
+ msgstr "Объединённые Арабские Эмираты"
3895
+
3896
+ #: includes/functions.php:933
3897
+ msgid "United Kingdom"
3898
+ msgstr "Великобритания"
3899
+
3900
+ #: includes/functions.php:934
3901
+ msgid "United States"
3902
+ msgstr "Соединенные Штаты"
3903
+
3904
+ #: includes/functions.php:935
3905
+ msgid "Uruguay"
3906
+ msgstr "Уругвай"
3907
+
3908
+ #: includes/functions.php:936
3909
+ msgid "Uzbekistan"
3910
+ msgstr "Узбекистан"
3911
+
3912
+ #: includes/functions.php:937
3913
+ msgid "Vanuatu"
3914
+ msgstr "Вануату"
3915
+
3916
+ #: includes/functions.php:938
3917
+ msgid "Vatican City"
3918
+ msgstr "Ватикан"
3919
+
3920
+ #: includes/functions.php:939
3921
+ msgid "Venezuela"
3922
+ msgstr "Венесуэлла"
3923
+
3924
+ #: includes/functions.php:940
3925
+ msgid "Vietnam"
3926
+ msgstr "Вьетнам"
3927
+
3928
+ #: includes/functions.php:941
3929
+ msgid "Wallis and Futuna"
3930
+ msgstr "Уоллис и Футуна"
3931
+
3932
+ #: includes/functions.php:942
3933
+ msgid "Western Sahara"
3934
+ msgstr "Западная Сахара"
3935
+
3936
+ #: includes/functions.php:943
3937
+ msgid "Yemen"
3938
+ msgstr "Йемен"
3939
+
3940
+ #: includes/functions.php:944
3941
+ msgid "Zambia"
3942
+ msgstr "Замбия"
3943
+
3944
+ #: includes/functions.php:945
3945
+ msgid "Zimbabwe"
3946
+ msgstr "Зимбабве"
3947
+
3948
+ #: includes/functions.php:960
3949
+ msgid "January"
3950
+ msgstr "Январь"
3951
+
3952
+ #: includes/functions.php:961
3953
+ msgid "February"
3954
+ msgstr "Февраль"
3955
+
3956
+ #: includes/functions.php:962
3957
+ msgid "March"
3958
+ msgstr "Март"
3959
+
3960
+ #: includes/functions.php:963
3961
+ msgid "April"
3962
+ msgstr "Апрель"
3963
+
3964
+ #: includes/functions.php:964
3965
+ msgid "May"
3966
+ msgstr "Май"
3967
+
3968
+ #: includes/functions.php:965
3969
+ msgid "June"
3970
+ msgstr "Июнь"
3971
+
3972
+ #: includes/functions.php:966
3973
+ msgid "July"
3974
+ msgstr "Июль"
3975
+
3976
+ #: includes/functions.php:967
3977
+ msgid "August"
3978
+ msgstr "Август"
3979
+
3980
+ #: includes/functions.php:968
3981
+ msgid "September"
3982
+ msgstr "Сентябрь"
3983
+
3984
+ #: includes/functions.php:969
3985
+ msgid "October"
3986
+ msgstr "Октябрь"
3987
 
3988
+ #: includes/functions.php:970
3989
+ msgid "November"
3990
+ msgstr "Ноябрь"
3991
 
3992
+ #: includes/functions.php:971
3993
+ msgid "December"
3994
+ msgstr "Декабрь"
3995
 
3996
+ #: includes/functions.php:986
3997
+ msgid "Sunday"
3998
+ msgstr "Воскресенье"
3999
 
4000
+ #: includes/functions.php:987
4001
+ msgid "Monday"
4002
+ msgstr "Понедельник"
4003
 
4004
+ #: includes/functions.php:988
4005
+ msgid "Tuesday"
4006
+ msgstr "Вторник"
4007
 
4008
+ #: includes/functions.php:989
4009
+ msgid "Wednesday"
4010
+ msgstr "Среда"
4011
 
4012
+ #: includes/functions.php:990
4013
+ msgid "Thursday"
4014
+ msgstr "Четверг"
4015
 
4016
+ #: includes/functions.php:991
4017
+ msgid "Friday"
4018
+ msgstr "Пятница"
4019
+
4020
+ #: includes/functions.php:992
4021
+ msgid "Saturday"
4022
+ msgstr "Суббота"
4023
 
4024
  #: includes/integrations.php:32
4025
  msgid "Select a form to display"
4037
  msgid "Add your form"
4038
  msgstr "Добавить вашу форму"
4039
 
 
 
 
 
4040
  #: includes/integrations.php:57
4041
  msgid "Select a form to add it to your post or page."
4042
  msgstr "Выберите форму для добавления на вашу страницу или запись."
4069
  msgid "Connection"
4070
  msgstr "Подключение"
4071
 
4072
+ #: includes/providers/class-base.php:163 includes/providers/class-base.php:1115
4073
+ #: includes/providers/class-base.php:1163
4074
  msgid "You do not have permission"
4075
  msgstr "У вас нет доступа"
4076
 
4094
  msgid "%s (Last)"
4095
  msgstr "%s (Фамилия)"
4096
 
4097
+ #: includes/providers/class-base.php:701
4098
  msgid "Select Account"
4099
  msgstr "Выберите учетную запись"
4100
 
4101
+ #: includes/providers/class-base.php:713
4102
+ #: includes/providers/class-constant-contact.php:490
4103
  msgid "Add New Account"
4104
  msgstr "Добавить новую учётную запись"
4105
 
4106
+ #: includes/providers/class-base.php:746
4107
  msgid "Select List"
4108
  msgstr "Выберите список"
4109
 
4110
+ #: includes/providers/class-base.php:792
4111
  msgid "Select Groups"
4112
  msgstr "Выберите группы"
4113
 
4114
+ #: includes/providers/class-base.php:794
4115
  msgid ""
4116
  "We also noticed that you have some segments in your list. You can select "
4117
  "specific list segments below if needed. This is optional."
4120
  "необходимости можно выбрать определенный список сегментов ниже. Это не "
4121
  "обязательно."
4122
 
4123
+ #: includes/providers/class-base.php:854 includes/providers/class-base.php:859
4124
  msgid "List Fields"
4125
  msgstr "Список полей"
4126
 
4127
+ #: includes/providers/class-base.php:859
4128
  msgid "Available Form Fields"
4129
  msgstr "Доступные поля формы"
4130
 
4131
+ #: includes/providers/class-base.php:933
4132
  msgid "Process"
4133
  msgstr "Обработать"
4134
 
4135
+ #: includes/providers/class-base.php:934
4136
  msgid "Don't process"
4137
  msgstr "Не обрабатывать"
4138
 
4139
+ #: includes/providers/class-base.php:936
4140
  msgid "this connection if"
4141
  msgstr "это подключение если"
4142
 
4143
+ #: includes/providers/class-base.php:937
4144
  msgid "Marketing provider connection"
4145
  msgstr "Подключение поставщика услуг маркетинга"
4146
 
4147
+ #: includes/providers/class-base.php:1051
4148
  msgctxt "Provider Type"
4149
  msgid "Add New %s"
4150
  msgstr "Добавить: %s"
4151
 
4152
+ #: includes/providers/class-base.php:1123
4153
+ #: includes/providers/class-base.php:1171
4154
  msgid "Missing data"
4155
  msgstr "Данные отсутствуют"
4156
 
4157
+ #: includes/providers/class-base.php:1139
4158
  msgid "Connection missing"
4159
  msgstr "Отсутствует соединение"
4160
 
4161
+ #: includes/providers/class-base.php:1183
4162
  msgid "Could not connect to the provider."
4163
  msgstr "Не удалось выполнить подключение к поставщику."
4164
 
4165
+ #: includes/providers/class-base.php:1192
4166
+ #: includes/providers/class-base.php:1265
4167
  msgctxt "Connection date"
4168
  msgid "Connected on: %s"
4169
  msgstr "Подключено: %s"
4170
 
4171
+ #: includes/providers/class-base.php:1193
4172
+ #: includes/providers/class-base.php:1266
4173
  msgid "Disconnect"
4174
  msgstr "Отключить"
4175
 
4176
  #. translators: %s - provider name.
4177
+ #: includes/providers/class-base.php:1221
4178
  msgid "Connect to %s"
4179
  msgstr "Подключить к %s"
4180
 
4181
  #. translators: %s - provider name.
4182
+ #: includes/providers/class-base.php:1248
4183
  msgid "Integrate %s with WPForms"
4184
  msgstr "Интегрируйте %s с WPForms"
4185
 
4186
+ #: includes/providers/class-base.php:1251
4187
  msgid "Connected"
4188
  msgstr "Активно"
4189
 
4190
+ #: includes/providers/class-base.php:1276
4191
  msgctxt "New Provider Account"
4192
  msgid "Add New Account"
4193
  msgstr "Добавить новую учётную запись"
4194
 
4195
+ #: includes/providers/class-base.php:1283
4196
  msgid ""
4197
  "Please fill out all of the fields below to add your new provider account."
4198
  msgstr ""
4204
  msgstr "Подписка Constant Contact остановлена условной логикой"
4205
 
4206
  #: includes/providers/class-constant-contact.php:134
4207
+ #: includes/providers/class-constant-contact.php:305
4208
+ #: includes/providers/class-constant-contact.php:392
4209
  msgid "Constant Contact API Error"
4210
  msgstr "Ошибка API Constant Contact"
4211
 
4212
+ #: includes/providers/class-constant-contact.php:493
4213
  msgid ""
4214
  "Please fill out all of the fields below to register your new Constant "
4215
  "Contact account."
4217
  "Пожалуйста, заполните все поля ниже, чтобы зарегистрировать новую учетную "
4218
  "запись Constant Contact."
4219
 
4220
+ #: includes/providers/class-constant-contact.php:495
4221
+ #: includes/providers/class-constant-contact.php:573
4222
  msgid ""
4223
  "Click here for documentation on connecting WPForms with Constant Contact."
4224
  msgstr ""
4225
  "Нажмите здесь для получения документации по подключению WPForms с Constant "
4226
  "Contact."
4227
 
4228
+ #: includes/providers/class-constant-contact.php:500
4229
+ #: includes/providers/class-constant-contact.php:578
4230
  msgid ""
4231
  "Because Constant Contact requires external authentication, you will need to "
4232
  "register WPForms with Constant Contact before you can proceed."
4235
  "необходимо будет зарегистрировать WPForms с Constant Contact, прежде чем вы "
4236
  "сможете продолжить."
4237
 
4238
+ #: includes/providers/class-constant-contact.php:504
4239
+ #: includes/providers/class-constant-contact.php:582
4240
  msgid "Click here to register with Constant Contact"
4241
  msgstr "Нажмите здесь, чтобы зарегистрироваться в Constant Contact"
4242
 
4243
+ #: includes/providers/class-constant-contact.php:507
4244
+ #: includes/providers/class-constant-contact.php:585
4245
  msgid "Authorization Code"
4246
  msgstr "Код авторизации"
4247
 
4248
+ #: includes/providers/class-constant-contact.php:509
4249
+ #: includes/providers/class-constant-contact.php:587
4250
  msgid "Account Nickname"
4251
  msgstr "Псевдоним учетной записи"
4252
 
4253
+ #: includes/providers/class-constant-contact.php:511
4254
  msgid "Connect"
4255
  msgstr "Подключить"
4256
 
4257
+ #: includes/providers/class-constant-contact.php:548
4258
  msgid ""
4259
  "Get the most out of <strong>WPForms</strong> &mdash; use it with an active "
4260
  "Constant Contact account."
4262
  "Получите максимальную отдачу от <strong>WPForms</strong> - используйте его с "
4263
  "активной учетной записью Constant Contact."
4264
 
4265
+ #: includes/providers/class-constant-contact.php:551
4266
+ #: includes/providers/class-constant-contact.php:637
4267
  msgid "Try Constant Contact for Free"
4268
  msgstr "Попробуйте Constant Contact бесплатно"
4269
 
4270
+ #: includes/providers/class-constant-contact.php:552
4271
  msgid ""
4272
  "Learn More about the <a href=\"%s\" target=\"_blank\" rel=\"noopener "
4273
  "noreferrer\">power of email marketing</a>"
4275
  "Узнайте больше о <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer"
4276
  "\">возможностях электронного маркетинга</a>"
4277
 
4278
+ #: includes/providers/class-constant-contact.php:634
4279
  msgid ""
4280
  "Get the most out of the <strong>WPForms</strong> plugin &mdash; use it with "
4281
  "an active Constant Contact account."
4283
  "Получите максимальную отдачу от плагина <strong>WPForms</strong> - "
4284
  "используйте его с активной учетной записью Constant Contact."
4285
 
4286
+ #: includes/providers/class-constant-contact.php:638
4287
  msgid "Connect your existing account"
4288
  msgstr "Подключить вашу существующую учетную запись"
4289
 
4290
+ #: includes/providers/class-constant-contact.php:639
4291
  msgid "Learn More about the <a href=\"%s\">power of email marketing</a>"
4292
  msgstr ""
4293
  "Узнайте больше о <a href=\"%s\">возможностях электронного маркетинга</a>"
4294
 
4295
+ #: includes/providers/class-constant-contact.php:697
4296
  msgid "Grow Your Website with WPForms + Email Marketing"
4297
  msgstr "Развивайте свой сайт с помощью WPForms и email маркетинга"
4298
 
4299
+ #: includes/providers/class-constant-contact.php:698
4300
  msgid "Wondering if email marketing is really worth your time?"
4301
  msgstr ""
4302
  "Хотите узнать, действительно ли маркетинг электронной почты стоит вашего "
4303
  "времени?"
4304
 
4305
+ #: includes/providers/class-constant-contact.php:699
4306
  msgid ""
4307
  "Email is hands-down the most effective way to nurture leads and turn them "
4308
  "into customers, with a return on investment (ROI) of <strong>$44 back for "
4313
  "инвестиций (ROI) в <strong>размере 44 доллара США за каждый потраченный 1 "
4314
  "доллар США</strong>, согласно Direct Marketing Association."
4315
 
4316
+ #: includes/providers/class-constant-contact.php:700
4317
  msgid ""
4318
  "Here are 3 big reasons why every smart business in the world has an email "
4319
  "list:"
4321
  "Вот 3 большие причины, по которым каждый умный бизнес в мире имеет список "
4322
  "адресов электронной почты:"
4323
 
4324
+ #: includes/providers/class-constant-contact.php:704
4325
  msgid ""
4326
  "<strong>Email is still #1</strong> - At least 91% of consumers check their "
4327
  "email on a daily basis. You get direct access to your subscribers, without "
4332
  "доступ к своим подписчикам, без необходимости играть по правилам и "
4333
  "алгоритмам социальных сетей."
4334
 
4335
+ #: includes/providers/class-constant-contact.php:705
4336
  msgid ""
4337
  "<strong>You own your email list</strong> - Unlike with social media, your "
4338
  "list is your property and no one can revoke your access to it."
4341
  "сетей, ваш список является вашей собственностью, и никто не может отменить "
4342
  "ваш доступ к нему."
4343
 
4344
+ #: includes/providers/class-constant-contact.php:706
4345
  msgid ""
4346
  "<strong>Email converts</strong> - People who buy products marketed through "
4347
  "email spend 138% more than those who don&#39;t receive email offers."
4350
  "продаваемые по электронной почте, тратят на 138% больше, чем те, кто не "
4351
  "получает такие предложения."
4352
 
4353
+ #: includes/providers/class-constant-contact.php:708
4354
  msgid ""
4355
  "That&#39;s why it&#39;s crucial to start collecting email addresses and "
4356
  "building your list as soon as possible."
4358
  "Вот почему очень важно начать собирать адреса электронной почты и создавать "
4359
  "свой контактный список как можно скорее."
4360
 
4361
+ #: includes/providers/class-constant-contact.php:709
4362
  msgid ""
4363
  "For more details, see this guide on <a href=\"%s\" target=\"_blank\" rel="
4364
  "\"noopener noreferrer\">why building your email list is so important</a>."
4367
  "href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">почему создание "
4368
  "списка адресов электронной почты так важно</a>."
4369
 
4370
+ #: includes/providers/class-constant-contact.php:711
4371
  msgid "You&#39;ve Already Started - Here&#39;s the Next Step (It&#39;s Easy)"
4372
  msgstr "Вы уже начали - вот следующий шаг (это легко)"
4373
 
4374
+ #: includes/providers/class-constant-contact.php:712
4375
  msgid "Here are the 3 things you need to build an email list:"
4376
  msgstr ""
4377
  "Вот 3 вещи, которые вам нужны для создания списка адресов электронной почты:"
4378
 
4379
+ #: includes/providers/class-constant-contact.php:714
4380
  msgid "A Website or Blog"
4381
  msgstr "Веб-сайт или блог"
4382
 
4383
+ #: includes/providers/class-constant-contact.php:715
4384
  msgid "High-Converting Form Builder"
4385
  msgstr "Конструктор форм для высокопроизводительных форм"
4386
 
4387
+ #: includes/providers/class-constant-contact.php:716
4388
  msgid "The Best Email Marketing Service"
4389
  msgstr "Лучшая служба электронного маркетинга"
4390
 
4391
+ #: includes/providers/class-constant-contact.php:718
4392
  msgid ""
4393
  "With a powerful email marketing service like Constant Contact, you can "
4394
  "instantly send out mass notifications and beautifully designed newsletters "
4398
  "Contact, вы можете мгновенно отправлять массовые уведомления и красиво "
4399
  "оформленные информационные бюллетени, чтобы привлечь ваших подписчиков."
4400
 
4401
+ #: includes/providers/class-constant-contact.php:720
4402
  msgid "Get Started with Constant Contact for Free"
4403
  msgstr "Начните работать с Constant Contact бесплатно"
4404
 
4405
+ #: includes/providers/class-constant-contact.php:721
4406
  msgid ""
4407
  "WPForms plugin makes it fast and easy to capture all kinds of visitor "
4408
  "information right from your WordPress site - even if you don&#39;t have a "
4412
  "посетителях прямо с вашего WordPress сайта - даже если у вас нет учетной "
4413
  "записи Constant Contact."
4414
 
4415
+ #: includes/providers/class-constant-contact.php:722
4416
  msgid ""
4417
  "But when you combine WPForms with Constant Contact, you can nurture your "
4418
  "contacts and engage with them even after they leave your website. When you "
4422
  "контакты и общаться с ними даже после того, как они покинут ваш сайт. Когда "
4423
  "вы используете Constant Contact + WPForms вместе, вы можете:"
4424
 
4425
+ #: includes/providers/class-constant-contact.php:724
4426
  msgid "Seamlessly add new contacts to your email list"
4427
  msgstr "Лешко добавляйте новые контакты в список рассылки"
4428
 
4429
+ #: includes/providers/class-constant-contact.php:725
4430
  msgid "Create and send professional email newsletters"
4431
  msgstr ""
4432
  "Создавайте и отправляйте профессиональные рассылки по электронной почте"
4433
 
4434
+ #: includes/providers/class-constant-contact.php:726
4435
  msgid "Get expert marketing and support"
4436
  msgstr "Получить экспертный маркетинг и поддержку"
4437
 
4438
+ #: includes/providers/class-constant-contact.php:729
4439
  msgid "Try Constant Contact Today"
4440
  msgstr "Попробуйте Constant Contact сегодня"
4441
 
4442
+ #: includes/providers/class-constant-contact.php:731
4443
  msgid "WPForms Makes List Building Easy"
4444
  msgstr "WPForms делает создание списков email простым"
4445
 
4446
+ #: includes/providers/class-constant-contact.php:732
4447
  msgid ""
4448
  "When creating WPForms, our goal was to make a WordPress forms plugin "
4449
  "that&#39;s both EASY and POWERFUL."
4451
  "При создании WPForms наша цель состояла в том, чтобы сделать плагин форм для "
4452
  "WordPress, который является одновременно ЛЕГКИМ и МОЩНЫМ."
4453
 
4454
+ #: includes/providers/class-constant-contact.php:733
4455
  msgid ""
4456
  "We made the form creation process extremely intuitive, so you can create a "
4457
  "form to start capturing emails within 5 minutes or less."
4460
  "создать форму, чтобы начать получать электронные письма, в течение 5 минут "
4461
  "или даже меньше."
4462
 
4463
+ #: includes/providers/class-constant-contact.php:734
4464
  msgid "Here&#39;s how it works."
4465
  msgstr "Вот как это работает."
4466
 
4467
+ #: includes/providers/class-constant-contact.php:738
4468
  msgid "1. Select from our pre-built templates, or create a form from scratch."
4469
  msgstr ""
4470
  "1. Выберите из наших предварительно построенных шаблонов или создайте форму "
4471
  "с нуля."
4472
 
4473
+ #: includes/providers/class-constant-contact.php:742
4474
  msgid "2. Drag and drop any field you want onto your signup form."
4475
  msgstr ""
4476
  "2. Перетащите любое поле, которое вы хотите, в свою регистрационную форму."
4477
 
4478
+ #: includes/providers/class-constant-contact.php:746
4479
  msgid "3. Connect your Constant Contact email list."
4480
  msgstr "3. Подключите свой email список из Constant Contact."
4481
 
4482
+ #: includes/providers/class-constant-contact.php:750
4483
  msgid "4. Add your new form to any post, page