NextGEN Gallery – WordPress Gallery Plugin - Version 2.2.2

Version Description

  • 04.04.2017 =
  • Fixed: Hyperlinks in image descriptions
  • Fixed: WordPress SEO sitemap image count
  • Fixed: Removed id parameter in shortcodes
  • Fixed: Fatal error in Freemius code
Download this release

Release Info

Developer photocrati
Plugin Icon 128x128 NextGEN Gallery – WordPress Gallery Plugin
Version 2.2.2
Comparing to
See all releases

Code changes from version 2.2.1 to 2.2.2

Files changed (68) hide show
  1. changelog.txt +6 -0
  2. freemius/LICENSE.txt +0 -0
  3. freemius/assets/css/admin/account.css +1 -1
  4. freemius/assets/css/admin/account.min.css +1 -1
  5. freemius/assets/css/admin/common.css +1 -1
  6. freemius/assets/css/admin/common.min.css +1 -1
  7. freemius/assets/css/admin/dialog-boxes.css +1 -1
  8. freemius/assets/css/admin/dialog-boxes.min.css +1 -1
  9. freemius/assets/scss/_mixins.scss +11 -0
  10. freemius/assets/scss/admin/_modal-common.scss +2 -0
  11. freemius/assets/scss/admin/account.scss +66 -0
  12. freemius/assets/scss/admin/common.scss +20 -0
  13. freemius/config.php +132 -60
  14. freemius/includes/class-freemius-abstract.php +86 -12
  15. freemius/includes/class-freemius.php +1293 -371
  16. freemius/includes/class-fs-api.php +83 -7
  17. freemius/includes/class-fs-logger.php +27 -1
  18. freemius/includes/entities/class-fs-billing.php +95 -0
  19. freemius/includes/entities/class-fs-plugin.php +4 -0
  20. freemius/includes/entities/class-fs-site.php +21 -0
  21. freemius/includes/fs-core-functions.php +56 -14
  22. freemius/includes/fs-essential-functions.php +23 -5
  23. freemius/includes/fs-plugin-info-dialog.php +3 -3
  24. freemius/includes/i18n.php +353 -209
  25. freemius/includes/managers/class-fs-admin-menu-manager.php +23 -1
  26. freemius/includes/managers/class-fs-admin-notice-manager.php +3 -0
  27. freemius/includes/sdk/Exceptions/ArgumentNotExistException.php +4 -1
  28. freemius/includes/sdk/Exceptions/EmptyArgumentException.php +4 -1
  29. freemius/includes/sdk/Exceptions/Exception.php +66 -67
  30. freemius/includes/sdk/Exceptions/InvalidArgumentException.php +3 -1
  31. freemius/includes/sdk/Exceptions/OAuthException.php +7 -7
  32. freemius/includes/sdk/Freemius.php +15 -8
  33. freemius/includes/sdk/FreemiusBase.php +14 -4
  34. freemius/includes/supplements/fs-essential-functions-1.1.7.1.php +4 -2
  35. freemius/languages/freemius-da_DK.mo +0 -0
  36. freemius/languages/freemius-da_DK.po +1661 -0
  37. freemius/languages/freemius-en.mo +0 -0
  38. freemius/languages/freemius-en.po +430 -304
  39. freemius/languages/freemius-he.mo +0 -0
  40. freemius/languages/freemius-he.po +1661 -0
  41. freemius/languages/freemius-it_IT.mo +0 -0
  42. freemius/languages/freemius-it_IT.po +465 -318
  43. freemius/languages/freemius.pot +427 -301
  44. freemius/start.php +3 -7
  45. freemius/templates/account.php +32 -7
  46. freemius/templates/add-trial-to-pricing.php +31 -0
  47. freemius/templates/billing.php +401 -4
  48. freemius/templates/checkout.php +32 -54
  49. freemius/templates/connect.php +74 -18
  50. freemius/templates/debug.php +76 -5
  51. freemius/templates/debug/logger.php +2 -2
  52. freemius/templates/forms/deactivation/form.php +2 -1
  53. freemius/templates/forms/deactivation/retry-skip.php +1 -1
  54. freemius/templates/forms/license-activation.php +9 -26
  55. freemius/templates/forms/optout.php +211 -0
  56. freemius/templates/forms/resend-key.php +1 -1
  57. freemius/templates/forms/trial-start.php +174 -0
  58. freemius/templates/plugin-icon.php +54 -23
  59. freemius/templates/pricing.php +21 -10
  60. nggallery.php +3 -3
  61. products/photocrati_nextgen/modules/attach_to_post/static/display_tab.js +3 -1
  62. products/photocrati_nextgen/modules/attach_to_post/static/display_tab.min.js +1 -1
  63. products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.po +2 -2
  64. products/photocrati_nextgen/modules/i18n/lang/nggallery.po +2 -2
  65. products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php +1 -1
  66. products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php +2 -2
  67. products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php +59 -5
  68. readme.txt +8 -2
changelog.txt CHANGED
@@ -1,6 +1,12 @@
1
  NextGEN Gallery
2
  by Imagely
3
 
 
 
 
 
 
 
4
  = V2.2.1 - 03.13.2017 =
5
  * NEW: Template mechanism for all display types
6
  * NEW: Review notices
1
  NextGEN Gallery
2
  by Imagely
3
 
4
+ = V2.2.2 - 04.04.2017 =
5
+ * Fixed: Hyperlinks in image descriptions
6
+ * Fixed: WordPress SEO sitemap image count
7
+ * Fixed: Removed id parameter in shortcodes
8
+ * Fixed: Fatal error in Freemius code
9
+
10
  = V2.2.1 - 03.13.2017 =
11
  * NEW: Template mechanism for all display types
12
  * NEW: Review notices
freemius/LICENSE.txt CHANGED
File without changes
freemius/assets/css/admin/account.css CHANGED
@@ -1 +1 @@
1
- #fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}
1
+ #fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
freemius/assets/css/admin/account.min.css CHANGED
@@ -1 +1 @@
1
- #fs_account .fs-header-actions li form,.fs-key-value-table form{display:inline-block}#fs_addons td:last-child,#fs_addons th:last-child,.fs-key-value-table tr td.fs-right,.fs-key-value-table tr td:first-child{text-align:right}#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table tr td:first-child nobr{font-weight:700}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table code,.fs-key-value-table input[type=text],.fs-key-value-table var{color:#0073AA;font-size:16px;background:0 0}label.fs-tag,label.fs-tag.fs-warn{background:#ffba00}.fs-key-value-table input[type=text]{width:100%;font-weight:700}label.fs-tag{color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:700}#fs_addons th{font-weight:700}
1
+ #fs_account .fs-header-actions li form,.fs-key-value-table form{display:inline-block}#fs_addons td:last-child,#fs_addons th:last-child,.fs-key-value-table tr td.fs-right,.fs-key-value-table tr td:first-child{text-align:right}#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table tr td:first-child nobr{font-weight:700}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table code,.fs-key-value-table input[type=text],.fs-key-value-table var{color:#0073AA;font-size:16px;background:0 0}label.fs-tag,label.fs-tag.fs-warn{background:#ffba00}.fs-key-value-table input[type=text]{width:100%;font-weight:700}label.fs-tag{color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:700}#fs_addons th,#fs_billing_address span{font-weight:700}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:0 0}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:0 0}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
freemius/assets/css/admin/common.css CHANGED
@@ -1 +1 @@
1
- .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;box-shadow:0px 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}
1
+ .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;box-shadow:0px 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}
freemius/assets/css/admin/common.min.css CHANGED
@@ -1 +1 @@
1
- .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px!important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2!important;background-color:#f2fcff!important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:700;cursor:auto}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;box-shadow:0 2px 2px rgba(6,113,6,.3);opacity:.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}@media screen and (max-width:960px){.fs-secure-notice{left:36px}}@media screen and (max-width:500px){#fs_promo_tab{display:none}}@media screen and (max-width:782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}
1
+ .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px!important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2!important;background-color:#f2fcff!important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:700;cursor:auto}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;box-shadow:0 2px 2px rgba(6,113,6,.3);opacity:.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}@media screen and (max-width:960px){.fs-secure-notice{left:36px}}@media screen and (max-width:500px){#fs_promo_tab{display:none}}@media screen and (max-width:782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:#adff2f}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}
freemius/assets/css/admin/dialog-boxes.css CHANGED
@@ -1,2 +1,2 @@
1
- .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-license-activation .fs-modal-body input.license_key{width:100%}.fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend .fs-modal-body input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}
1
+ .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-license-activation .fs-modal-body input.license_key{width:100%}.fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend .fs-modal-body input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}
freemius/assets/css/admin/dialog-boxes.min.css CHANGED
@@ -1 +1 @@
1
- .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,.6)}.fs-modal .fs-modal-dialog{background:0 0;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea,.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-license-activation .fs-modal-body input.license_key,.fs-modal.fs-modal-license-key-resend .fs-modal-body input.email-address{width:100%}@media (max-width:650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active,.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:700;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:700;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .internal-message,.fs-modal.fs-modal-deactivation-feedback .reason-input{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width:650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0!important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:right;margin-left:7px}@media (max-width:650px){.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{margin-top:2px}}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}
1
+ .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,.6)}.fs-modal .fs-modal-dialog{background:0 0;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea,.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-license-activation .fs-modal-body input.license_key,.fs-modal.fs-modal-license-key-resend .fs-modal-body input.email-address{width:100%}@media (max-width:650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active,.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:700;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:700;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .internal-message,.fs-modal.fs-modal-deactivation-feedback .reason-input{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width:650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0!important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:right;margin-left:7px}@media (max-width:650px){.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{margin-top:2px}}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}
freemius/assets/scss/_mixins.scss CHANGED
@@ -213,4 +213,15 @@ $useIEFilters: 0;
213
  display: table;
214
  clear: both;
215
  }
 
 
 
 
 
 
 
 
 
 
 
216
  }
213
  display: table;
214
  clear: both;
215
  }
216
+ }
217
+
218
+ // Placeholder text
219
+ @mixin placeholder($color: $input-color-placeholder) {
220
+ // Firefox
221
+ &::-moz-placeholder {
222
+ color: $color;
223
+ opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
224
+ }
225
+ &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
226
+ &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
227
  }
freemius/assets/scss/admin/_modal-common.scss CHANGED
@@ -58,6 +58,7 @@
58
  background: #fbfbfb;
59
  padding: 15px 20px;
60
  position: relative;
 
61
  // z-index: 2;
62
 
63
  h4 {
@@ -98,6 +99,7 @@
98
 
99
  h2 {
100
  font-size: 20px;
 
101
  }
102
 
103
  > div {
58
  background: #fbfbfb;
59
  padding: 15px 20px;
60
  position: relative;
61
+ margin-bottom: -10px;
62
  // z-index: 2;
63
 
64
  h4 {
99
 
100
  h2 {
101
  font-size: 20px;
102
+ line-height: 1.5em;
103
  }
104
 
105
  > div {
freemius/assets/scss/admin/account.scss CHANGED
@@ -1,3 +1,5 @@
 
 
1
  #fs_account
2
  {
3
  .postbox,
@@ -166,6 +168,10 @@ label.fs-tag
166
  vertical-align: middle;
167
  }
168
 
 
 
 
 
169
  td:first-child,
170
  th:first-child
171
  {
@@ -181,4 +187,64 @@ label.fs-tag
181
  {
182
  font-weight: bold;
183
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  }
1
+ @import "../start";
2
+
3
  #fs_account
4
  {
5
  .postbox,
168
  vertical-align: middle;
169
  }
170
 
171
+ thead {
172
+ white-space: nowrap;
173
+ }
174
+
175
  td:first-child,
176
  th:first-child
177
  {
187
  {
188
  font-weight: bold;
189
  }
190
+ }
191
+
192
+ #fs_billing_address {
193
+ width: 100%;
194
+
195
+ tr {
196
+ td {
197
+ width: 50%;
198
+ padding: 5px;
199
+ }
200
+
201
+ &:first-of-type {
202
+ td {
203
+ padding-top: 0;
204
+ }
205
+ }
206
+ }
207
+
208
+ @mixin read-mode {
209
+ border-color: transparent;
210
+ color: #777;
211
+ border-bottom: 1px dashed #ccc;
212
+ padding-left: 0;
213
+ background: none;
214
+ }
215
+
216
+ span {
217
+ font-weight: bold;
218
+ }
219
+
220
+ input, select {
221
+ @include placeholder(transparent);
222
+
223
+ display: block;
224
+ width: 100%;
225
+ margin-top: 5px;
226
+
227
+ &.fs-read-mode {
228
+ @include read-mode();
229
+ }
230
+ }
231
+
232
+
233
+ &.fs-read-mode {
234
+ td span {
235
+ display: none;
236
+ }
237
+
238
+ input, select
239
+ {
240
+ @include read-mode();
241
+ @include placeholder(#ccc);
242
+ }
243
+ }
244
+
245
+
246
+ button {
247
+ display: block;
248
+ width: 100%;
249
+ }
250
  }
freemius/assets/scss/admin/common.scss CHANGED
@@ -137,4 +137,24 @@ span.fs-submenu-item.fs-sub:before
137
  // Add small RTL arrow.
138
  content: '\21B2';
139
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  }
137
  // Add small RTL arrow.
138
  content: '\21B2';
139
  }
140
+ }
141
+
142
+ .fs-submenu-item
143
+ {
144
+ &.pricing
145
+ {
146
+ &.upgrade-mode
147
+ {
148
+ color: greenyellow;
149
+ }
150
+
151
+ &.trial-mode
152
+ {
153
+ color: #83e2ff;
154
+ }
155
+ }
156
+ }
157
+
158
+ #adminmenu .update-plugins.fs-trial {
159
+ background-color: #00b9eb;
160
  }
freemius/config.php CHANGED
@@ -10,14 +10,17 @@
10
  exit;
11
  }
12
 
13
- define( 'WP_FS__SLUG', 'freemius' );
 
 
14
  if ( ! defined( 'WP_FS__DEV_MODE' ) ) {
15
  define( 'WP_FS__DEV_MODE', false );
16
  }
17
 
18
- /**
19
- * API Connectivity Simulation
20
- */
 
21
  if ( ! defined( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY' ) ) {
22
  define( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY', false );
23
  }
@@ -40,6 +43,8 @@
40
  define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL', true );
41
  }
42
 
 
 
43
  if ( ! defined( 'WP_FS__SIMULATE_FREEMIUS_OFF' ) ) {
44
  define( 'WP_FS__SIMULATE_FREEMIUS_OFF', false );
45
  }
@@ -87,18 +92,36 @@
87
  }
88
 
89
 
90
- /**
91
- * Directories
92
- */
93
- define( 'WP_FS__DIR', dirname( __FILE__ ) );
94
- define( 'WP_FS__DIR_INCLUDES', WP_FS__DIR . '/includes' );
95
- define( 'WP_FS__DIR_TEMPLATES', WP_FS__DIR . '/templates' );
96
- define( 'WP_FS__DIR_ASSETS', WP_FS__DIR . '/assets' );
97
- define( 'WP_FS__DIR_CSS', WP_FS__DIR_ASSETS . '/css' );
98
- define( 'WP_FS__DIR_JS', WP_FS__DIR_ASSETS . '/js' );
99
- define( 'WP_FS__DIR_IMG', WP_FS__DIR_ASSETS . '/img' );
100
- define( 'WP_FS__DIR_SDK', WP_FS__DIR_INCLUDES . '/sdk' );
101
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
  /**
104
  * Domain / URL / Address
@@ -117,42 +140,87 @@
117
  define( 'WP_FS__TESTING_DOMAIN', 'fswp' );
118
  }
119
 
120
- if ( ! defined( 'WP_FS__API_ADDRESS_LOCALHOST' ) ) {
121
- define( 'WP_FS__API_ADDRESS_LOCALHOST', 'http://api.freemius:8080' );
 
 
 
 
122
  }
123
- if ( ! defined( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST' ) ) {
124
- define( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST', 'http://sandbox-api.freemius:8080' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  }
126
 
127
- define( 'WP_FS__IS_HTTP_REQUEST', isset( $_SERVER['HTTP_HOST'] ) );
128
- define( 'WP_FS__REMOTE_ADDR', fs_get_ip() );
129
 
130
  if ( ! defined( 'WP_FS__IS_PRODUCTION_MODE' ) ) {
131
  // By default, run with Freemius production servers.
132
  define( 'WP_FS__IS_PRODUCTION_MODE', true );
133
  }
134
 
135
- define( 'WP_FS__ADDRESS', ( WP_FS__IS_PRODUCTION_MODE ? WP_FS__ADDRESS_PRODUCTION : WP_FS__ADDRESS_LOCALHOST ) );
136
-
137
- if ( defined( 'WP_FS__LOCALHOST_IP' ) ) {
138
- define( 'WP_FS__IS_LOCALHOST', ( WP_FS__LOCALHOST_IP === WP_FS__REMOTE_ADDR ) );
139
- } else {
140
- define( 'WP_FS__IS_LOCALHOST', WP_FS__IS_HTTP_REQUEST &&
141
- is_string( WP_FS__REMOTE_ADDR ) &&
142
- ( substr( WP_FS__REMOTE_ADDR, 0, 4 ) === '127.' ||
143
- WP_FS__REMOTE_ADDR === '::1' )
144
- );
145
  }
146
 
147
- define( 'WP_FS__IS_LOCALHOST_FOR_SERVER', ( ! WP_FS__IS_HTTP_REQUEST ||
148
- false !== strpos( $_SERVER['HTTP_HOST'], 'localhost' ) ) );
 
 
 
 
 
 
 
 
 
149
 
150
  // Set API address for local testing.
151
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
152
- define( 'FS_API__ADDRESS', WP_FS__API_ADDRESS_LOCALHOST );
153
- define( 'FS_API__SANDBOX_ADDRESS', WP_FS__API_SANDBOX_ADDRESS_LOCALHOST );
 
 
 
 
154
  }
155
 
 
 
156
  define( 'WP_FS___OPTION_PREFIX', 'fs' . ( WP_FS__IS_PRODUCTION_MODE ? '' : '_dbg' ) . '_' );
157
 
158
  if ( ! defined( 'WP_FS__ACCOUNTS_OPTION_NAME' ) ) {
@@ -163,17 +231,6 @@
163
  }
164
  define( 'WP_FS__OPTIONS_OPTION_NAME', WP_FS___OPTION_PREFIX . 'options' );
165
 
166
- define( 'WP_FS__IS_HTTPS', ( WP_FS__IS_HTTP_REQUEST &&
167
- // Checks if CloudFlare's HTTPS (Flexible SSL support).
168
- isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === strtolower( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) ||
169
- // Check if HTTPS request.
170
- ( isset( $_SERVER['HTTPS'] ) && 'on' == $_SERVER['HTTPS'] ) ||
171
- ( isset( $_SERVER['SERVER_PORT'] ) && 443 == $_SERVER['SERVER_PORT'] )
172
- );
173
-
174
- define( 'WP_FS__IS_POST_REQUEST', ( WP_FS__IS_HTTP_REQUEST &&
175
- strtoupper( $_SERVER['REQUEST_METHOD'] ) == 'POST' ) );
176
-
177
  /**
178
  * Billing Frequencies
179
  */
@@ -191,14 +248,21 @@
191
  /**
192
  * Times in seconds
193
  */
194
- define( 'WP_FS__TIME_5_MIN_IN_SEC', 300 );
195
- define( 'WP_FS__TIME_10_MIN_IN_SEC', 600 );
 
 
 
 
196
  // define( 'WP_FS__TIME_15_MIN_IN_SEC', 900 );
197
- define( 'WP_FS__TIME_24_HOURS_IN_SEC', 86400 );
 
 
 
 
 
 
198
 
199
- /**
200
- * Debugging
201
- */
202
  if ( ! defined( 'WP_FS__DEBUG_SDK' ) ) {
203
  $debug_mode = get_option( 'fs_debug_mode', null );
204
 
@@ -210,20 +274,28 @@
210
  define( 'WP_FS__DEBUG_SDK', is_numeric( $debug_mode ) ? ( 0 < $debug_mode ) : WP_FS__DEV_MODE );
211
  }
212
 
213
- define( 'WP_FS__ECHO_DEBUG_SDK', WP_FS__DEV_MODE && ! empty( $_GET['fs_dbg_echo'] ) );
214
- define( 'WP_FS__LOG_DATETIME_FORMAT', 'Y-n-d H:i:s' );
 
 
 
 
215
  if ( ! defined( 'FS_API__LOGGER_ON' ) ) {
216
  define( 'FS_API__LOGGER_ON', WP_FS__DEBUG_SDK );
217
  }
218
 
219
  if ( WP_FS__ECHO_DEBUG_SDK ) {
220
  error_reporting( E_ALL );
221
- ini_set( 'error_reporting', E_ALL );
222
- ini_set( 'display_errors', true );
223
- ini_set( 'html_errors', true );
224
  }
225
 
 
226
 
227
- define( 'WP_FS__SCRIPT_START_TIME', time() );
228
- define( 'WP_FS__DEFAULT_PRIORITY', 10 );
229
- define( 'WP_FS__LOWEST_PRIORITY', 999999999 );
 
 
 
 
 
 
10
  exit;
11
  }
12
 
13
+ if ( ! defined( 'WP_FS__SLUG' ) ) {
14
+ define( 'WP_FS__SLUG', 'freemius' );
15
+ }
16
  if ( ! defined( 'WP_FS__DEV_MODE' ) ) {
17
  define( 'WP_FS__DEV_MODE', false );
18
  }
19
 
20
+ #--------------------------------------------------------------------------------
21
+ #region API Connectivity Issues Simulation
22
+ #--------------------------------------------------------------------------------
23
+
24
  if ( ! defined( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY' ) ) {
25
  define( 'WP_FS__SIMULATE_NO_API_CONNECTIVITY', false );
26
  }
43
  define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL', true );
44
  }
45
 
46
+ #endregion
47
+
48
  if ( ! defined( 'WP_FS__SIMULATE_FREEMIUS_OFF' ) ) {
49
  define( 'WP_FS__SIMULATE_FREEMIUS_OFF', false );
50
  }
92
  }
93
 
94
 
95
+ #--------------------------------------------------------------------------------
96
+ #region Directories
97
+ #--------------------------------------------------------------------------------
 
 
 
 
 
 
 
 
98
 
99
+ if ( ! defined( 'WP_FS__DIR' ) ) {
100
+ define( 'WP_FS__DIR', dirname( __FILE__ ) );
101
+ }
102
+ if ( ! defined( 'WP_FS__DIR_INCLUDES' ) ) {
103
+ define( 'WP_FS__DIR_INCLUDES', WP_FS__DIR . '/includes' );
104
+ }
105
+ if ( ! defined( 'WP_FS__DIR_TEMPLATES' ) ) {
106
+ define( 'WP_FS__DIR_TEMPLATES', WP_FS__DIR . '/templates' );
107
+ }
108
+ if ( ! defined( 'WP_FS__DIR_ASSETS' ) ) {
109
+ define( 'WP_FS__DIR_ASSETS', WP_FS__DIR . '/assets' );
110
+ }
111
+ if ( ! defined( 'WP_FS__DIR_CSS' ) ) {
112
+ define( 'WP_FS__DIR_CSS', WP_FS__DIR_ASSETS . '/css' );
113
+ }
114
+ if ( ! defined( 'WP_FS__DIR_JS' ) ) {
115
+ define( 'WP_FS__DIR_JS', WP_FS__DIR_ASSETS . '/js' );
116
+ }
117
+ if ( ! defined( 'WP_FS__DIR_IMG' ) ) {
118
+ define( 'WP_FS__DIR_IMG', WP_FS__DIR_ASSETS . '/img' );
119
+ }
120
+ if ( ! defined( 'WP_FS__DIR_SDK' ) ) {
121
+ define( 'WP_FS__DIR_SDK', WP_FS__DIR_INCLUDES . '/sdk' );
122
+ }
123
+
124
+ #endregion
125
 
126
  /**
127
  * Domain / URL / Address
140
  define( 'WP_FS__TESTING_DOMAIN', 'fswp' );
141
  }
142
 
143
+ #--------------------------------------------------------------------------------
144
+ #region HTTP
145
+ #--------------------------------------------------------------------------------
146
+
147
+ if ( ! defined( 'WP_FS__IS_HTTP_REQUEST' ) ) {
148
+ define( 'WP_FS__IS_HTTP_REQUEST', isset( $_SERVER['HTTP_HOST'] ) );
149
  }
150
+
151
+ if ( ! defined( 'WP_FS__IS_HTTPS' ) ) {
152
+ define( 'WP_FS__IS_HTTPS', ( WP_FS__IS_HTTP_REQUEST &&
153
+ // Checks if CloudFlare's HTTPS (Flexible SSL support).
154
+ isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) &&
155
+ 'https' === strtolower( $_SERVER['HTTP_X_FORWARDED_PROTO'] )
156
+ ) ||
157
+ // Check if HTTPS request.
158
+ ( isset( $_SERVER['HTTPS'] ) && 'on' == $_SERVER['HTTPS'] ) ||
159
+ ( isset( $_SERVER['SERVER_PORT'] ) && 443 == $_SERVER['SERVER_PORT'] )
160
+ );
161
+ }
162
+
163
+ if ( ! defined( 'WP_FS__IS_POST_REQUEST' ) ) {
164
+ define( 'WP_FS__IS_POST_REQUEST', ( WP_FS__IS_HTTP_REQUEST &&
165
+ strtoupper( $_SERVER['REQUEST_METHOD'] ) == 'POST' ) );
166
+ }
167
+
168
+ if ( ! defined( 'WP_FS__REMOTE_ADDR' ) ) {
169
+ define( 'WP_FS__REMOTE_ADDR', fs_get_ip() );
170
+ }
171
+
172
+ if ( ! defined( 'WP_FS__IS_LOCALHOST' ) ) {
173
+ if ( defined( 'WP_FS__LOCALHOST_IP' ) ) {
174
+ define( 'WP_FS__IS_LOCALHOST', ( WP_FS__LOCALHOST_IP === WP_FS__REMOTE_ADDR ) );
175
+ } else {
176
+ define( 'WP_FS__IS_LOCALHOST', WP_FS__IS_HTTP_REQUEST &&
177
+ is_string( WP_FS__REMOTE_ADDR ) &&
178
+ ( substr( WP_FS__REMOTE_ADDR, 0, 4 ) === '127.' ||
179
+ WP_FS__REMOTE_ADDR === '::1' )
180
+ );
181
+ }
182
+ }
183
+
184
+ if ( ! defined( 'WP_FS__IS_LOCALHOST_FOR_SERVER' ) ) {
185
+ define( 'WP_FS__IS_LOCALHOST_FOR_SERVER', ( ! WP_FS__IS_HTTP_REQUEST ||
186
+ false !== strpos( $_SERVER['HTTP_HOST'], 'localhost' ) ) );
187
  }
188
 
189
+ #endregion
 
190
 
191
  if ( ! defined( 'WP_FS__IS_PRODUCTION_MODE' ) ) {
192
  // By default, run with Freemius production servers.
193
  define( 'WP_FS__IS_PRODUCTION_MODE', true );
194
  }
195
 
196
+ if ( ! defined( 'WP_FS__ADDRESS' ) ) {
197
+ define( 'WP_FS__ADDRESS', ( WP_FS__IS_PRODUCTION_MODE ? WP_FS__ADDRESS_PRODUCTION : WP_FS__ADDRESS_LOCALHOST ) );
 
 
 
 
 
 
 
 
198
  }
199
 
200
+
201
+ #--------------------------------------------------------------------------------
202
+ #region API
203
+ #--------------------------------------------------------------------------------
204
+
205
+ if ( ! defined( 'WP_FS__API_ADDRESS_LOCALHOST' ) ) {
206
+ define( 'WP_FS__API_ADDRESS_LOCALHOST', 'http://api.freemius:8080' );
207
+ }
208
+ if ( ! defined( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST' ) ) {
209
+ define( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST', 'http://sandbox-api.freemius:8080' );
210
+ }
211
 
212
  // Set API address for local testing.
213
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
214
+ if ( ! defined( 'FS_API__ADDRESS' ) ) {
215
+ define( 'FS_API__ADDRESS', WP_FS__API_ADDRESS_LOCALHOST );
216
+ }
217
+ if ( ! defined( 'FS_API__SANDBOX_ADDRESS' ) ) {
218
+ define( 'FS_API__SANDBOX_ADDRESS', WP_FS__API_SANDBOX_ADDRESS_LOCALHOST );
219
+ }
220
  }
221
 
222
+ #endregion
223
+
224
  define( 'WP_FS___OPTION_PREFIX', 'fs' . ( WP_FS__IS_PRODUCTION_MODE ? '' : '_dbg' ) . '_' );
225
 
226
  if ( ! defined( 'WP_FS__ACCOUNTS_OPTION_NAME' ) ) {
231
  }
232
  define( 'WP_FS__OPTIONS_OPTION_NAME', WP_FS___OPTION_PREFIX . 'options' );
233
 
 
 
 
 
 
 
 
 
 
 
 
234
  /**
235
  * Billing Frequencies
236
  */
248
  /**
249
  * Times in seconds
250
  */
251
+ if ( ! defined( 'WP_FS__TIME_5_MIN_IN_SEC' ) ) {
252
+ define( 'WP_FS__TIME_5_MIN_IN_SEC', 300 );
253
+ }
254
+ if ( ! defined( 'WP_FS__TIME_10_MIN_IN_SEC' ) ) {
255
+ define( 'WP_FS__TIME_10_MIN_IN_SEC', 600 );
256
+ }
257
  // define( 'WP_FS__TIME_15_MIN_IN_SEC', 900 );
258
+ if ( ! defined( 'WP_FS__TIME_24_HOURS_IN_SEC' ) ) {
259
+ define( 'WP_FS__TIME_24_HOURS_IN_SEC', 86400 );
260
+ }
261
+
262
+ #--------------------------------------------------------------------------------
263
+ #region Debugging
264
+ #--------------------------------------------------------------------------------
265
 
 
 
 
266
  if ( ! defined( 'WP_FS__DEBUG_SDK' ) ) {
267
  $debug_mode = get_option( 'fs_debug_mode', null );
268
 
274
  define( 'WP_FS__DEBUG_SDK', is_numeric( $debug_mode ) ? ( 0 < $debug_mode ) : WP_FS__DEV_MODE );
275
  }
276
 
277
+ if ( ! defined( 'WP_FS__ECHO_DEBUG_SDK' ) ) {
278
+ define( 'WP_FS__ECHO_DEBUG_SDK', WP_FS__DEV_MODE && ! empty( $_GET['fs_dbg_echo'] ) );
279
+ }
280
+ if ( ! defined( 'WP_FS__LOG_DATETIME_FORMAT' ) ) {
281
+ define( 'WP_FS__LOG_DATETIME_FORMAT', 'Y-m-d H:i:s' );
282
+ }
283
  if ( ! defined( 'FS_API__LOGGER_ON' ) ) {
284
  define( 'FS_API__LOGGER_ON', WP_FS__DEBUG_SDK );
285
  }
286
 
287
  if ( WP_FS__ECHO_DEBUG_SDK ) {
288
  error_reporting( E_ALL );
 
 
 
289
  }
290
 
291
+ #endregion
292
 
293
+ if ( ! defined( 'WP_FS__SCRIPT_START_TIME' ) ) {
294
+ define( 'WP_FS__SCRIPT_START_TIME', time() );
295
+ }
296
+ if ( ! defined( 'WP_FS__DEFAULT_PRIORITY' ) ) {
297
+ define( 'WP_FS__DEFAULT_PRIORITY', 10 );
298
+ }
299
+ if ( ! defined( 'WP_FS__LOWEST_PRIORITY' ) ) {
300
+ define( 'WP_FS__LOWEST_PRIORITY', 999999999 );
301
+ }
freemius/includes/class-freemius-abstract.php CHANGED
@@ -22,7 +22,9 @@
22
  */
23
  abstract class Freemius_Abstract {
24
 
25
- #region Identity ------------------------------------------------------------------
 
 
26
 
27
  /**
28
  * Check if user registered with Freemius by connecting his account.
@@ -50,9 +52,73 @@
50
  */
51
  abstract function is_activation_mode();
52
 
53
- #endregion Identity ------------------------------------------------------------------
54
 
55
- #region Permissions ------------------------------------------------------------------
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
57
  /**
58
  * Check if plugin must be WordPress.org compliant.
@@ -75,7 +141,7 @@
75
  return ( $this->is_premium() || ! $this->is_org_repo_compliant() );
76
  }
77
 
78
- #endregion Permissions ------------------------------------------------------------------
79
 
80
  /**
81
  * Check if user in trial or in free plan (not paying).
@@ -119,7 +185,9 @@
119
  */
120
  abstract function can_use_premium_code();
121
 
122
- #region Premium Only ------------------------------------------------------------------
 
 
123
 
124
  /**
125
  * All logic wrapped in methods with "__premium_only()" suffix will be only
@@ -225,9 +293,11 @@
225
  return $this->is_premium() && $this->can_use_premium_code();
226
  }
227
 
228
- #endregion Premium Only ------------------------------------------------------------------
229
 
230
- #region Trial ------------------------------------------------------------------
 
 
231
 
232
  /**
233
  * Check if the user in a trial.
@@ -247,9 +317,11 @@
247
  */
248
  abstract function is_trial_utilized();
249
 
250
- #endregion Trial ------------------------------------------------------------------
251
 
252
- #region Plans ------------------------------------------------------------------
 
 
253
 
254
  /**
255
  * Check if plugin using the free plan.
@@ -344,7 +416,7 @@
344
  $this->has_free_plan();
345
  }
346
 
347
- #endregion Plans ------------------------------------------------------------------
348
 
349
  /**
350
  * Check if running payments in sandbox mode.
@@ -407,7 +479,9 @@
407
  */
408
  abstract function is_plugin_new_install();
409
 
410
- #region Marketing ------------------------------------------------------------------
 
 
411
 
412
  /**
413
  * Check if current user purchased any other plugins before.
@@ -449,5 +523,5 @@
449
  */
450
  abstract function is_business();
451
 
452
- #endregion ------------------------------------------------------------------
453
  }
22
  */
23
  abstract class Freemius_Abstract {
24
 
25
+ #----------------------------------------------------------------------------------
26
+ #region Identity
27
+ #----------------------------------------------------------------------------------
28
 
29
  /**
30
  * Check if user registered with Freemius by connecting his account.
52
  */
53
  abstract function is_activation_mode();
54
 
55
+ #endregion
56
 
57
+ #----------------------------------------------------------------------------------
58
+ #region Usage Tracking
59
+ #----------------------------------------------------------------------------------
60
+
61
+ /**
62
+ * Returns TRUE if the user opted-in and didn't disconnect (opt-out).
63
+ *
64
+ * @author Leo Fajardo (@leorw)
65
+ * @since 1.2.1.5
66
+ *
67
+ * @return bool
68
+ */
69
+ abstract function is_tracking_allowed();
70
+
71
+ /**
72
+ * Returns TRUE if the user never opted-in or manually opted-out.
73
+ *
74
+ * @author Vova Feldman (@svovaf)
75
+ * @since 1.2.1.5
76
+ *
77
+ * @return bool
78
+ */
79
+ function is_tracking_prohibited() {
80
+ return ! $this->is_registered() || ! $this->is_tracking_allowed();
81
+ }
82
+
83
+ /**
84
+ * Opt-out from usage tracking.
85
+ *
86
+ * Note: This will not delete the account information but will stop all tracking.
87
+ *
88
+ * Returns:
89
+ * 1. FALSE - If the user never opted-in.
90
+ * 2. TRUE - If successfully opted-out.
91
+ * 3. object - API Result on failure.
92
+ *
93
+ * @author Leo Fajardo (@leorw)
94
+ * @since 1.2.1.5
95
+ *
96
+ * @return bool|object
97
+ */
98
+ abstract function stop_tracking();
99
+
100
+ /**
101
+ * Opt-in back into usage tracking.
102
+ *
103
+ * Note: This will only work if the user opted-in previously.
104
+ *
105
+ * Returns:
106
+ * 1. FALSE - If the user never opted-in.
107
+ * 2. TRUE - If successfully opted-in back to usage tracking.
108
+ * 3. object - API result on failure.
109
+ *
110
+ * @author Leo Fajardo (@leorw)
111
+ * @since 1.2.1.5
112
+ *
113
+ * @return bool|object
114
+ */
115
+ abstract function allow_tracking();
116
+
117
+ #endregion
118
+
119
+ #----------------------------------------------------------------------------------
120
+ #region Permissions
121
+ #----------------------------------------------------------------------------------
122
 
123
  /**
124
  * Check if plugin must be WordPress.org compliant.
141
  return ( $this->is_premium() || ! $this->is_org_repo_compliant() );
142
  }
143
 
144
+ #endregion
145
 
146
  /**
147
  * Check if user in trial or in free plan (not paying).
185
  */
186
  abstract function can_use_premium_code();
187
 
188
+ #----------------------------------------------------------------------------------
189
+ #region Premium Only
190
+ #----------------------------------------------------------------------------------
191
 
192
  /**
193
  * All logic wrapped in methods with "__premium_only()" suffix will be only
293
  return $this->is_premium() && $this->can_use_premium_code();
294
  }
295
 
296
+ #endregion
297
 
298
+ #----------------------------------------------------------------------------------
299
+ #region Trial
300
+ #----------------------------------------------------------------------------------
301
 
302
  /**
303
  * Check if the user in a trial.
317
  */
318
  abstract function is_trial_utilized();
319
 
320
+ #endregion
321
 
322
+ #----------------------------------------------------------------------------------
323
+ #region Plans
324
+ #----------------------------------------------------------------------------------
325
 
326
  /**
327
  * Check if plugin using the free plan.
416
  $this->has_free_plan();
417
  }
418
 
419
+ #endregion
420
 
421
  /**
422
  * Check if running payments in sandbox mode.
479
  */
480
  abstract function is_plugin_new_install();
481
 
482
+ #----------------------------------------------------------------------------------
483
+ #region Marketing
484
+ #----------------------------------------------------------------------------------
485
 
486
  /**
487
  * Check if current user purchased any other plugins before.
523
  */
524
  abstract function is_business();
525
 
526
+ #endregion
527
  }
freemius/includes/class-freemius.php CHANGED
@@ -114,6 +114,19 @@
114
  */
115
  private $_has_paid_plans;
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  /**
118
  * @since 1.0.7
119
  * @var bool Hints the SDK if the plugin is WordPress.org compliant.
@@ -227,7 +240,8 @@
227
  */
228
  private static $_instances = array();
229
 
230
- // Reason IDs
 
231
  const REASON_NO_LONGER_NEEDED = 1;
232
  const REASON_FOUND_A_BETTER_PLUGIN = 2;
233
  const REASON_NEEDED_FOR_A_SHORT_PERIOD = 3;
@@ -244,6 +258,8 @@
244
  const REASON_DIDNT_WORK_AS_EXPECTED = 14;
245
  const REASON_TEMPORARY_DEACTIVATION = 15;
246
 
 
 
247
  /* Ctor
248
  ------------------------------------------------------------------------------------------------------------------*/
249
 
@@ -447,12 +463,25 @@
447
  * @since 1.0.9
448
  */
449
  private function _register_hooks() {
 
 
450
  if ( is_admin() ) {
451
- // Hook to plugin activation
452
- register_activation_hook( $this->_plugin_main_file_path, array(
453
- &$this,
454
- '_activate_plugin_event_hook'
455
- ) );
 
 
 
 
 
 
 
 
 
 
 
456
 
457
  /**
458
  * Part of the mechanism to identify new plugin install vs. plugin update.
@@ -481,9 +510,29 @@
481
 
482
  add_action( 'init', array( &$this, '_redirect_on_clicked_menu_link' ), WP_FS__LOWEST_PRIORITY );
483
 
 
 
 
 
 
484
  $this->add_action( 'after_plans_sync', array( &$this, '_check_for_trial_plans' ) );
485
 
486
  $this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
487
  }
488
 
489
  /**
@@ -514,11 +563,15 @@
514
  return;
515
  }
516
 
 
 
517
  // Store cached path (2nd layer cache).
518
- $this->_storage->plugin_main_file->prev_path = $this->_storage->plugin_main_file->path;
519
 
520
  // Clear cached path.
521
- unset( $this->_storage->plugin_main_file->path );
 
 
522
  }
523
 
524
  /**
@@ -527,21 +580,6 @@
527
  */
528
  private function _register_account_hooks() {
529
  if ( is_admin() ) {
530
- if ( ! $this->is_ajax() ) {
531
- if ( $this->apply_filters( 'show_trial', true ) && $this->has_trial_plan() ) {
532
- $last_time_trial_promotion_shown = $this->_storage->get( 'trial_promotion_shown', false );
533
- if ( ! $this->_site->is_trial_utilized() &&
534
- (
535
- // Show promotion if never shown it yet and 24 hours after initial activation.
536
- ( false === $last_time_trial_promotion_shown && $this->_storage->activation_timestamp < ( time() - WP_FS__TIME_24_HOURS_IN_SEC ) ) ||
537
- // Show promotion in every 30 days.
538
- ( is_numeric( $last_time_trial_promotion_shown ) && 30 * WP_FS__TIME_24_HOURS_IN_SEC < time() - $last_time_trial_promotion_shown ) )
539
- ) {
540
- $this->add_action( 'after_init_plugin_registered', array( &$this, '_add_trial_notice' ) );
541
- }
542
- }
543
- }
544
-
545
  // If user is paying or in trial and have the free version installed,
546
  // assume that the deactivation is for the upgrade process.
547
  if ( ! $this->is_paying_or_trial() || $this->is_premium() ) {
@@ -550,8 +588,7 @@
550
  array( &$this, '_submit_uninstall_reason_action' )
551
  );
552
 
553
- global $pagenow;
554
- if ( 'plugins.php' === $pagenow ) {
555
  add_action( 'admin_footer', array( &$this, '_add_deactivation_feedback_dialog_box' ) );
556
  }
557
  }
@@ -579,7 +616,8 @@
579
  private function _find_caller_plugin_file( $is_init = false ) {
580
  // Try to load the cached value of the file path.
581
  if ( isset( $this->_storage->plugin_main_file ) ) {
582
- if ( file_exists( $this->_storage->plugin_main_file->path ) ) {
 
583
  return $this->_storage->plugin_main_file->path;
584
  }
585
  }
@@ -627,7 +665,9 @@
627
  }
628
 
629
 
630
- #region Deactivation Feedback Form ------------------------------------------------------------------
 
 
631
 
632
  /**
633
  * Displays a confirmation and feedback dialog box when the user clicks on the "Deactivate" link on the plugins
@@ -873,9 +913,11 @@
873
  exit;
874
  }
875
 
876
- #endregion Deactivation Feedback Form ------------------------------------------------------------------
877
 
878
- #region Instance ------------------------------------------------------------------
 
 
879
 
880
  /**
881
  * Main singleton instance.
@@ -1164,6 +1206,10 @@
1164
  self::$_statics_loaded = true;
1165
  }
1166
 
 
 
 
 
1167
  /**
1168
  * Load framework's text domain.
1169
  *
@@ -1186,7 +1232,11 @@
1186
  // @todo Load for themes.
1187
  }
1188
 
1189
- #region Debugging ------------------------------------------------------------------
 
 
 
 
1190
 
1191
  /**
1192
  * @author Vova Feldman (@svovaf)
@@ -1247,10 +1297,22 @@
1247
  if ( fs_request_is_action( 'restart_freemius' ) ) {
1248
  check_admin_referer( 'restart_freemius' );
1249
 
 
1250
  self::$_accounts->clear( true );
1251
 
 
 
 
 
1252
 
1253
- return;
 
 
 
 
 
 
 
1254
  }
1255
  }
1256
 
@@ -1282,9 +1344,11 @@
1282
  fs_require_once_template( 'debug.php', $vars );
1283
  }
1284
 
1285
- #endregion ------------------------------------------------------------------
1286
 
1287
- #region Connectivity Issues ------------------------------------------------------------------
 
 
1288
 
1289
  /**
1290
  * Check if Freemius should be turned on for the current plugin install.
@@ -1427,8 +1491,11 @@
1427
  $this->_has_api_connection = $this->_storage->connectivity_test['is_connected'];
1428
  /**
1429
  * @since 1.1.6 During dev mode, if there's connectivity - turn Freemius on regardless the configuration.
 
 
1430
  */
1431
  $this->_is_on = $this->_storage->connectivity_test['is_active'] ||
 
1432
  ( WP_FS__DEV_MODE && $this->_has_api_connection && ! WP_FS__SIMULATE_FREEMIUS_OFF );
1433
 
1434
  return $this->_has_api_connection;
@@ -1565,8 +1632,8 @@
1565
  * @param bool $is_first_failure
1566
  */
1567
  function _add_connectivity_issue_message( $api_result, $is_first_failure = true ) {
1568
- if ( $this->_enable_anonymous ) {
1569
- // Don't add message if can run anonymously.
1570
  return;
1571
  }
1572
 
@@ -1879,9 +1946,11 @@
1879
  fs_require_once_template( 'firewall-issues-js.php', $params );
1880
  }
1881
 
1882
- #endregion Connectivity Issues ------------------------------------------------------------------
1883
 
1884
- #region Email ------------------------------------------------------------------
 
 
1885
 
1886
  /**
1887
  * Generates and sends an HTML email with customizable sections.
@@ -2030,9 +2099,11 @@
2030
  return $sections;
2031
  }
2032
 
2033
- #endregion Email ------------------------------------------------------------------
2034
 
2035
- #region Initialization ------------------------------------------------------------------
 
 
2036
 
2037
  /**
2038
  * Init plugin's Freemius instance.
@@ -2086,7 +2157,7 @@
2086
  if ( $this->_admin_notices->has_sticky( 'failed_connect_api_first' ) ||
2087
  $this->_admin_notices->has_sticky( 'failed_connect_api' )
2088
  ) {
2089
- if ( ! $this->_enable_anonymous ) {
2090
  // If anonymous mode is disabled, add firewall admin-notice message.
2091
  add_action( 'admin_footer', array( 'Freemius', '_add_firewall_issues_javascript' ) );
2092
 
@@ -2138,7 +2209,7 @@
2138
  *
2139
  */
2140
  if ( $this->is_registered() ) {
2141
- if ( ! $this->is_sync_cron_on() ) {
2142
  $this->schedule_sync_cron();
2143
  }
2144
  }
@@ -2167,8 +2238,7 @@
2167
  }
2168
 
2169
  if ( $this->is_user_in_admin() ) {
2170
- global $pagenow;
2171
- if ( 'plugins.php' === $pagenow ) {
2172
  $this->hook_plugin_action_links();
2173
  }
2174
 
@@ -2269,26 +2339,168 @@
2269
  $this->do_action( 'after_init_addon_pending_activations' );
2270
  }
2271
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
2272
 
2273
- // Add license activation link and AJAX request handler.
2274
- if ( $this->has_paid_plan() ) {
2275
- global $pagenow;
2276
- if ( 'plugins.php' === $pagenow ) {
2277
- /**
2278
- * @since 1.2.0 Add license action link only on plugins page.
2279
- */
2280
- $this->_add_license_action_link();
2281
- $this->_require_license_activation_dialog();
2282
- }
2283
 
2284
- if ( $this->is_ajax_action( array(
2285
- 'activate_license',
2286
- 'resend_license_key'
2287
- ) )
2288
- ) {
2289
- // Hook license activation and resend AJAX callbacks.
2290
- $this->_require_license_activation_dialog();
2291
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2292
  }
2293
  }
2294
 
@@ -2323,7 +2535,7 @@
2323
  $parent_id = $this->get_numeric_option( $plugin_info['parent'], 'id', null );
2324
  // $parent_slug = $this->get_option( $plugin_info['parent'], 'slug', null );
2325
  // $parent_public_key = $this->get_option( $plugin_info['parent'], 'public_key', null );
2326
- $parent_name = $this->get_option( $plugin_info['parent'], 'name', null );
2327
  }
2328
 
2329
  if ( false === $id ) {
@@ -2382,6 +2594,17 @@
2382
  $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false );
2383
  }
2384
  $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() );
 
 
 
 
 
 
 
 
 
 
 
2385
  }
2386
 
2387
  /**
@@ -2503,11 +2726,9 @@
2503
  function _plugin_code_type_changed() {
2504
  $this->_logger->entrance();
2505
 
2506
- // Schedule code type changes event.
2507
- // $this->sync_install();
2508
- $this->schedule_install_sync();
2509
-
2510
  if ( $this->is_premium() ) {
 
 
2511
  // Activated premium code.
2512
  $this->do_action( 'after_premium_version_activation' );
2513
 
@@ -2516,6 +2737,7 @@
2516
  'trial_started',
2517
  'plan_upgraded',
2518
  'plan_changed',
 
2519
  ) );
2520
 
2521
  $this->_admin_notices->add_sticky(
@@ -2542,6 +2764,9 @@
2542
  }
2543
  }
2544
 
 
 
 
2545
  /**
2546
  * Unregister the uninstall hook for the other version of the plugin (with different code type) to avoid
2547
  * triggering a fatal error when uninstalling that plugin. For example, after deactivating the "free" version
@@ -2559,9 +2784,11 @@
2559
  $this->_storage->prev_is_premium = $this->_plugin->is_premium;
2560
  }
2561
 
2562
- #endregion Initialization ------------------------------------------------------------------
2563
 
2564
- #region Add-ons -------------------------------------------------------------------------
 
 
2565
 
2566
  /**
2567
  * Check if add-on installed and activated on site.
@@ -2758,8 +2985,8 @@
2758
  $this->_parent->_admin_notices->add_sticky(
2759
  sprintf(
2760
  __fs( ( $is_after_trial_cancel ?
2761
- 'addon-trial-cancelled-message' :
2762
- 'addon-no-license-message' ),
2763
  $this->_parent->_slug
2764
  ),
2765
  '<b>' . $this->_plugin->title . '</b>'
@@ -2781,9 +3008,11 @@
2781
  return false;
2782
  }
2783
 
2784
- #endregion ------------------------------------------------------------------
2785
 
2786
- #region Sandbox ------------------------------------------------------------------
 
 
2787
 
2788
  /**
2789
  * Set Freemius into sandbox mode for debugging.
@@ -2812,7 +3041,7 @@
2812
  return ( ! $this->is_live() ) || isset( $this->_plugin->secret_key );
2813
  }
2814
 
2815
- #endregion Sandbox ------------------------------------------------------------------
2816
 
2817
  /**
2818
  * Check if running test vs. live plugin.
@@ -2877,7 +3106,9 @@
2877
  return $this->_is_org_compliant;
2878
  }
2879
 
2880
- #region Daily Sync Cron ------------------------------------------------------------------
 
 
2881
 
2882
  /**
2883
  * @author Vova Feldman (@svovaf)
@@ -3061,7 +3292,9 @@
3061
 
3062
  #endregion Daily Sync Cron ------------------------------------------------------------------
3063
 
3064
- #region Async Install Sync ------------------------------------------------------------------
 
 
3065
 
3066
  /**
3067
  * @author Vova Feldman (@svovaf)
@@ -3186,8 +3419,9 @@
3186
  * @since 1.0.7
3187
  *
3188
  * @param bool|string $email
 
3189
  */
3190
- function _add_pending_activation_notice( $email = false ) {
3191
  if ( ! is_string( $email ) ) {
3192
  $current_user = self::_get_current_wp_user();
3193
  $email = $current_user->user_email;
@@ -3197,7 +3431,8 @@
3197
  sprintf(
3198
  __fs( 'pending-activation-message', $this->_slug ),
3199
  '<b>' . $this->get_plugin_name() . '</b>',
3200
- '<b>' . $email . '</b>'
 
3201
  ),
3202
  'activation_pending',
3203
  'Thanks!'
@@ -3244,9 +3479,7 @@
3244
 
3245
  $this->skip_connection();
3246
 
3247
- if ( fs_redirect( $this->get_after_activation_url( 'after_skip_url' ) ) ) {
3248
- exit();
3249
- }
3250
  }
3251
 
3252
  if ( ! $this->is_addon() && ! $this->is_registered() && ! $this->is_anonymous() ) {
@@ -3335,11 +3568,11 @@
3335
  jQuery(document).ready(function ($) {
3336
  if ('undefined' !== typeof(jQuery().pointer)) {
3337
 
3338
- var element = <?php echo $this->apply_filters('optin_pointer_element', '$("#non_existing_element");') ?>;
3339
 
3340
  if (element.length > 0) {
3341
  var optin = $(element).pointer($.extend(true, {}, {
3342
- content : <?php echo json_encode($pointer_content) ?>,
3343
  position : {
3344
  edge : 'left',
3345
  align: 'center'
@@ -3349,10 +3582,10 @@
3349
  return '';
3350
  },
3351
  pointerWidth: 482
3352
- }, <?php echo $this->apply_filters('optin_pointer_options_json', '{}') ?>));
3353
 
3354
  <?php
3355
- echo $this->apply_filters('optin_pointer_execute', "
3356
 
3357
  optin.pointer('open');
3358
 
@@ -3361,12 +3594,12 @@
3361
  .parents('.wp-pointer.wp-pointer-top')
3362
  .addClass('fs-opt-in-pointer');
3363
 
3364
- ", 'element', 'optin') ?>
3365
  }
3366
  }
3367
  });
3368
  // ]]></script>
3369
- <?php
3370
  }
3371
 
3372
  /**
@@ -3482,6 +3715,18 @@
3482
  $this->_storage->is_plugin_new_install;
3483
  }
3484
 
 
 
 
 
 
 
 
 
 
 
 
 
3485
  /**
3486
  * Plugin activated hook.
3487
  *
@@ -3503,17 +3748,32 @@
3503
  FS_Api::clear_cache();
3504
 
3505
  if ( $this->is_registered() ) {
 
 
3506
  // Schedule re-activation event and sync.
3507
  // $this->sync_install( array(), true );
3508
  $this->schedule_install_sync();
3509
 
 
 
 
 
 
 
 
 
3510
  /**
3511
- * @todo Work on automatic deactivation of the Free plugin version. It doesn't work since the slug of the free & premium versions is identical. Therefore, only one instance of Freemius is created and the activation hook of the premium version is not being added.
 
 
 
3512
  */
3513
- if ( $this->_plugin_basename !== $this->_free_plugin_basename ) {
3514
- // Deactivate Free plugin version on premium plugin activation.
3515
- deactivate_plugins( $this->_free_plugin_basename );
3516
 
 
 
3517
  $this->_admin_notices->add(
3518
  sprintf( __fs( 'successful-version-upgrade-message', $this->_slug ), sprintf( '<b>%s</b>', $this->_plugin->title ) ),
3519
  __fs( 'woot', $this->_slug ) . '!'
@@ -3724,9 +3984,7 @@
3724
 
3725
  $this->reset_anonymous_mode();
3726
 
3727
- if ( fs_redirect( $this->get_activation_url() ) ) {
3728
- exit();
3729
- }
3730
  }
3731
 
3732
  /**
@@ -4052,11 +4310,13 @@
4052
  'language' => get_bloginfo( 'language' ),
4053
  'charset' => get_bloginfo( 'charset' ),
4054
  'platform_version' => get_bloginfo( 'version' ),
 
4055
  'programming_language_version' => phpversion(),
4056
  'title' => get_bloginfo( 'name' ),
4057
  'url' => get_site_url(),
4058
  // Special params.
4059
  'is_active' => true,
 
4060
  'is_uninstalled' => false,
4061
  ), $override );
4062
  }
@@ -4086,7 +4346,7 @@
4086
 
4087
  foreach ( $check_properties as $p => $v ) {
4088
  if ( property_exists( $this->_site, $p ) ) {
4089
- if ( ! empty( $this->_site->{$p} ) &&
4090
  $this->_site->{$p} != $v
4091
  ) {
4092
  $this->_site->{$p} = $v;
@@ -4122,7 +4382,7 @@
4122
  // Send updated values to FS.
4123
  $site = $this->get_api_site_scope()->call( '/', 'put', $params );
4124
 
4125
- if ( ! $this->is_api_error( $site ) ) {
4126
  // I successfully sent install update, clear scheduled sync if exist.
4127
  $this->clear_install_sync_cron();
4128
  }
@@ -4141,8 +4401,6 @@
4141
  *
4142
  * @param string[] string $override
4143
  * @param bool $flush
4144
- *
4145
- * @return false|object|string
4146
  */
4147
  private function sync_install( $override = array(), $flush = false ) {
4148
  $this->_logger->entrance();
@@ -4154,7 +4412,7 @@
4154
  return;
4155
  }
4156
 
4157
- if ( $this->is_api_error( $site ) ) {
4158
  // Failed to sync, don't update locally.
4159
  return;
4160
  }
@@ -4345,7 +4603,9 @@
4345
  }
4346
  }
4347
 
4348
- #region Plugin Information ------------------------------------------------------------------
 
 
4349
 
4350
  /**
4351
  * Load WordPress core plugin.php essential module.
@@ -4355,6 +4615,8 @@
4355
  */
4356
  private static function require_plugin_essentials() {
4357
  if ( ! function_exists( 'get_plugins' ) ) {
 
 
4358
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
4359
  }
4360
  }
@@ -4419,6 +4681,28 @@
4419
  return $this->_plugin->id;
4420
  }
4421
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4422
  /**
4423
  * @author Vova Feldman (@svovaf)
4424
  * @since 1.0.1
@@ -4643,7 +4927,7 @@
4643
  * @author Vova Feldman (@svovaf)
4644
  * @since 1.0.6
4645
  *
4646
- * @return FS_Plugin[]|false
4647
  */
4648
  private static function get_all_addons() {
4649
  $addons = self::$_accounts->get_option( 'addons', array() );
@@ -4682,6 +4966,18 @@
4682
  return is_object( $this->_user );
4683
  }
4684
 
 
 
 
 
 
 
 
 
 
 
 
 
4685
  /**
4686
  * @author Vova Feldman (@svovaf)
4687
  * @since 1.0.4
@@ -4720,16 +5016,18 @@
4720
  *
4721
  * @since 1.1.7.3 If not yet loaded, fetch data from the API.
4722
  *
 
 
4723
  * @return FS_Plugin[]|false
4724
  */
4725
- function get_addons() {
4726
  $this->_logger->entrance();
4727
 
4728
  if ( ! $this->_has_addons ) {
4729
  return false;
4730
  }
4731
 
4732
- $addons = $this->_sync_addons();
4733
 
4734
  return ( ! is_array( $addons ) || empty( $addons ) ) ?
4735
  false :
@@ -4807,12 +5105,14 @@
4807
  *
4808
  * @param string $slug
4809
  *
 
 
4810
  * @return FS_Plugin|false
4811
  */
4812
- function get_addon_by_slug( $slug ) {
4813
  $this->_logger->entrance();
4814
 
4815
- $addons = $this->get_addons();
4816
 
4817
  if ( is_array( $addons ) ) {
4818
  foreach ( $addons as $addon ) {
@@ -4825,7 +5125,9 @@
4825
  return false;
4826
  }
4827
 
4828
- #region Plans & Licensing ------------------------------------------------------------------
 
 
4829
 
4830
  /**
4831
  * Check if running premium plugin code.
@@ -4867,10 +5169,12 @@
4867
  * @author Vova Feldman (@svovaf)
4868
  * @since 1.0.9
4869
  *
4870
- * @return FS_Plugin_Plan
4871
  */
4872
  function get_plan() {
4873
- return is_object( $this->_site->plan ) ? $this->_site->plan : false;
 
 
4874
  }
4875
 
4876
  /**
@@ -5018,7 +5322,7 @@
5018
  * @author Vova Feldman (@svovaf)
5019
  * @since 1.0.5
5020
  *
5021
- * @return FS_Plugin_License
5022
  */
5023
  function _get_available_premium_license() {
5024
  $this->_logger->entrance();
@@ -5048,7 +5352,8 @@
5048
  */
5049
  function _sync_plans() {
5050
  $plans = $this->_fetch_plugin_plans();
5051
- if ( ! $this->is_api_error( $plans ) ) {
 
5052
  $this->_plans = $plans;
5053
  $this->_store_plans();
5054
  }
@@ -5064,7 +5369,7 @@
5064
  *
5065
  * @param number $id
5066
  *
5067
- * @return FS_Plugin_Plan
5068
  */
5069
  function _get_plan_by_id( $id ) {
5070
  $this->_logger->entrance();
@@ -5118,7 +5423,8 @@
5118
  */
5119
  function _sync_licenses( $site_license_id = false ) {
5120
  $licenses = $this->_fetch_licenses( false, $site_license_id );
5121
- if ( ! $this->is_api_error( $licenses ) ) {
 
5122
  $this->_licenses = $licenses;
5123
  $this->_store_licenses();
5124
  }
@@ -5137,7 +5443,7 @@
5137
  *
5138
  * @param number $id
5139
  *
5140
- * @return FS_Plugin_License
5141
  */
5142
  function _get_license_by_id( $id ) {
5143
  $this->_logger->entrance();
@@ -5362,6 +5668,17 @@
5362
  */
5363
  function has_trial_plan() {
5364
  if ( ! $this->is_registered() ) {
 
 
 
 
 
 
 
 
 
 
 
5365
  return false;
5366
  }
5367
 
@@ -5379,9 +5696,7 @@
5379
  * @return bool
5380
  */
5381
  function has_free_plan() {
5382
- return ! $this->is_premium() ||
5383
- ! $this->is_only_premium() ||
5384
- FS_Plan_Manager::instance()->has_free_plan( $this->_plans );
5385
  }
5386
 
5387
  /**
@@ -5401,30 +5716,56 @@
5401
  fs_require_template( 'forms/resend-key.php', $vars );
5402
  }
5403
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5404
  /**
5405
  * Prepare page to include all required UI and logic for the license activation dialog.
5406
  *
5407
  * @author Vova Feldman (@svovaf)
5408
  * @since 1.2.0
5409
  */
5410
- function _require_license_activation_dialog() {
5411
- if ( $this->is_ajax() ) {
5412
- if ( $this->is_ajax_action( 'activate_license' ) ) {
5413
- // Add license activation AJAX callback.
5414
- $this->add_ajax_action( 'activate_license', array( &$this, '_activate_license_ajax_action' ) );
5415
- }
5416
 
5417
- if ( $this->is_ajax_action( 'resend_license_key' ) ) {
5418
- // Add resend license AJAX callback.
5419
- $this->add_ajax_action( 'resend_license_key', array(
5420
- &$this,
5421
- '_resend_license_key_ajax_action'
5422
- ) );
5423
- }
5424
- } else {
5425
- // Inject license activation dialog UI and client side code.
5426
- add_action( 'admin_footer', array( &$this, '_add_license_activation_dialog_box' ) );
 
 
 
 
 
 
5427
  }
 
 
 
 
 
 
5428
  }
5429
 
5430
  /**
@@ -5438,26 +5779,33 @@
5438
  exit;
5439
  }
5440
 
5441
- $slug = $_POST['slug'];
5442
- $fs = ( ( $slug === $this->_slug ) ? $this : self::instance( $slug ) );
5443
- $error = false;
 
5444
 
5445
  if ( $this->is_registered() ) {
5446
  $api = $fs->get_api_site_scope();
5447
- $install = $api->call( '/', 'put',
5448
- array(
5449
- 'license_key' => $license_key
5450
- )
5451
- );
5452
 
5453
  if ( isset( $install->error ) ) {
5454
  $error = $install->error->message;
 
 
 
 
 
 
 
 
5455
  }
5456
  } else {
5457
- $install = $this->opt_in( false, false, false, $license_key );
5458
 
5459
- if ( isset( $install->error ) ) {
5460
- $error = $install->error;
5461
  }
5462
  }
5463
 
@@ -5467,6 +5815,8 @@
5467
 
5468
  if ( false !== $error ) {
5469
  $result['error'] = $error;
 
 
5470
  }
5471
 
5472
  echo json_encode( $result );
@@ -5475,11 +5825,80 @@
5475
  }
5476
 
5477
  /**
5478
- * @author Leo Fajardo (@leorw)
5479
- * @since 1.2.0
 
 
5480
  */
5481
- function _resend_license_key_ajax_action() {
5482
- if ( ! isset( $_POST['email'] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5483
  exit;
5484
  }
5485
 
@@ -5523,7 +5942,23 @@
5523
  exit;
5524
  }
5525
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5526
  #region URL Generators
 
5527
 
5528
  /**
5529
  * Alias to pricing_url().
@@ -5904,7 +6339,7 @@
5904
  self::require_pluggable_essentials();
5905
 
5906
  return ( $add_action_nonce && is_string( $action ) ) ?
5907
- wp_nonce_url( $this->_get_admin_page_url( 'account', $params ), $action ) :
5908
  $this->_get_admin_page_url( 'account', $params );
5909
  }
5910
 
@@ -6099,9 +6534,7 @@
6099
  $this->_set_account( $user, $site, $plans );
6100
 
6101
  // Reload the page with the keys.
6102
- if ( fs_redirect( $this->_get_admin_page_url() ) ) {
6103
- exit();
6104
- }
6105
  }
6106
  }
6107
 
@@ -6129,7 +6562,9 @@
6129
  return false;
6130
  }
6131
 
6132
- #region Account (Loading, Updates & Activation) ------------------------------------------------------------------
 
 
6133
 
6134
  /***
6135
  * Load account information (user + site).
@@ -6171,7 +6606,7 @@
6171
  // Load plans.
6172
  $this->_plans = $plans[ $this->_slug ];
6173
  if ( ! is_array( $this->_plans ) || empty( $this->_plans ) ) {
6174
- $this->_sync_plans( true );
6175
  } else {
6176
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
6177
  if ( $this->_plans[ $i ] instanceof FS_Plugin_Plan ) {
@@ -6240,33 +6675,50 @@
6240
 
6241
  $current_user = self::_get_current_wp_user();
6242
 
6243
- $params = array(
6244
- 'user_firstname' => $current_user->user_firstname,
6245
- 'user_lastname' => $current_user->user_lastname,
6246
- 'user_nickname' => $current_user->user_nicename,
6247
- 'user_email' => $current_user->user_email,
6248
- 'user_ip' => WP_FS__REMOTE_ADDR,
6249
- 'plugin_slug' => $this->_slug,
6250
- 'plugin_id' => $this->get_id(),
6251
- 'plugin_public_key' => $this->get_public_key(),
6252
- 'plugin_version' => $this->get_plugin_version(),
6253
- 'return_url' => wp_nonce_url( $this->_get_admin_page_url(
6254
  '',
6255
- array( 'fs_action' => $this->_slug . '_activate_new' )
6256
- ), $this->_slug . '_activate_new' ),
6257
- 'account_url' => wp_nonce_url( $this->_get_admin_page_url(
 
 
 
 
 
 
 
 
 
 
 
 
6258
  'account',
6259
  array( 'fs_action' => 'sync_user' )
6260
  ), 'sync_user' ),
6261
- 'site_uid' => $this->get_anonymous_id(),
6262
- 'site_url' => get_site_url(),
6263
- 'site_name' => get_bloginfo( 'name' ),
6264
- 'platform_version' => get_bloginfo( 'version' ),
6265
- 'php_version' => phpversion(),
6266
- 'language' => get_bloginfo( 'language' ),
6267
- 'charset' => get_bloginfo( 'charset' ),
 
 
 
 
6268
  );
6269
 
 
 
 
 
 
 
6270
  if ( WP_FS__SKIP_EMAIL_ACTIVATION && $this->has_secret_key() ) {
6271
  // Even though rand() is known for its security issues,
6272
  // the timestamp adds another layer of protection.
@@ -6286,6 +6738,9 @@
6286
  }
6287
 
6288
  /**
 
 
 
6289
  * @author Vova Feldman (@svovaf)
6290
  * @since 1.1.7.4
6291
  *
@@ -6296,9 +6751,9 @@
6296
  * @param bool $is_uninstall If "true", this means that the module is currently being uninstalled.
6297
  * In this case, the user and site info will be sent to the server but no
6298
  * data will be saved to the WP installation's database.
 
6299
  *
6300
- * @return bool Is successful opt-in (or set to pending).
6301
- *
6302
  * @use WP_Error
6303
  */
6304
  function opt_in(
@@ -6306,7 +6761,8 @@
6306
  $first = false,
6307
  $last = false,
6308
  $license_key = false,
6309
- $is_uninstall = false
 
6310
  ) {
6311
  $this->_logger->entrance();
6312
 
@@ -6319,11 +6775,14 @@
6319
  * @since 1.2.1 If activating with license key, ignore the context-user
6320
  * since the user will be automatically loaded from the license.
6321
  */
6322
- if (empty($license_key)) {
 
 
 
6323
  if ( ! $is_uninstall ) {
6324
  $fs_user = Freemius::_get_user_by_email( $email );
6325
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
6326
- return $this->install_with_current_user( false );
6327
  }
6328
  }
6329
  }
@@ -6341,8 +6800,12 @@
6341
 
6342
  $params = $this->get_opt_in_params( $user_info );
6343
 
 
6344
  if ( is_string( $license_key ) ) {
6345
- $params['license_secret_key'] = $license_key;
 
 
 
6346
  }
6347
 
6348
  if ( $is_uninstall ) {
@@ -6368,26 +6831,40 @@
6368
  if ( $response instanceof WP_Error ) {
6369
  if ( 'https://' === substr( $url, 0, 8 ) &&
6370
  isset( $response->errors ) &&
6371
- isset( $response->errors['http_request_failed'] ) &&
6372
- false !== strpos( $response->errors['http_request_failed'][0], 'sslv3 alert handshake' )
6373
  ) {
6374
- // Failed due to old version of cURL or Open SSL (SSLv3 is not supported by CloudFlare).
6375
- $url = 'http://' . substr( $url, 8 );
6376
 
6377
- $response = wp_remote_post( $url, array(
6378
- 'method' => 'POST',
6379
- 'body' => $params,
6380
- 'timeout' => 15,
6381
- ) );
6382
- }
6383
 
6384
- if ( $response instanceof WP_Error ) {
6385
- return false;
 
 
 
 
6386
  }
6387
  }
6388
 
6389
  if ( is_wp_error( $response ) ) {
6390
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6391
  }
6392
 
6393
  // Module is being uninstalled, don't handle the returned data.
@@ -6401,15 +6878,25 @@
6401
  return false;
6402
  }
6403
 
6404
- if ( isset( $decoded->error ) ) {
6405
- return $decoded;
 
 
 
 
 
 
 
6406
  } else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) {
6407
  // Pending activation, add message.
6408
- $this->set_pending_confirmation( false, false );
6409
-
6410
- return true;
 
 
 
6411
  } else if ( isset( $decoded->install_secret_key ) ) {
6412
- $this->install_with_new_user(
6413
  $decoded->user_id,
6414
  $decoded->user_public_key,
6415
  $decoded->user_secret_key,
@@ -6418,8 +6905,6 @@
6418
  $decoded->install_secret_key,
6419
  false
6420
  );
6421
-
6422
- return true;
6423
  }
6424
 
6425
  return $decoded;
@@ -6435,7 +6920,7 @@
6435
  * @param FS_Site $site
6436
  * @param bool $redirect
6437
  *
6438
- * @return bool False if account already set.
6439
  */
6440
  function setup_account( FS_User $user, FS_Site $site, $redirect = true ) {
6441
  $this->_user = $user;
@@ -6470,7 +6955,7 @@
6470
  // Remove plugin from pending activation mode.
6471
  unset( $this->_storage->is_pending_activation );
6472
 
6473
- if ( ! $this->is_paying() ) {
6474
  $this->_admin_notices->add_sticky(
6475
  sprintf( __fs( 'plugin-x-activation-message', $this->_slug ), '<b>' . $this->get_plugin_name() . '</b>' ),
6476
  'activation_complete'
@@ -6478,15 +6963,30 @@
6478
  }
6479
  }
6480
 
6481
- if ( $this->is_paying() && ! $this->is_premium() ) {
6482
- $this->_admin_notices->add_sticky(
6483
- sprintf(
6484
- __fs( 'activation-with-plan-x-message', $this->_slug ),
6485
- $this->_site->plan->title
6486
- ) . $this->get_complete_upgrade_instructions(),
6487
- 'plan_upgraded',
6488
- __fs( 'yee-haw', $this->_slug ) . '!'
6489
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6490
  }
6491
 
6492
  $plugin_id = fs_request_get( 'plugin_id', false );
@@ -6496,14 +6996,12 @@
6496
  $this->_storage->activation_timestamp = WP_FS__SCRIPT_START_TIME;
6497
  }
6498
 
 
 
6499
  if ( is_numeric( $plugin_id ) ) {
6500
  if ( $plugin_id != $this->_plugin->id ) {
6501
  // Add-on was installed - sync license right after install.
6502
- if ( $redirect && fs_redirect( $this->_get_sync_license_url( $plugin_id ) )
6503
- ) {
6504
- exit();
6505
- }
6506
-
6507
  }
6508
  } else {
6509
  /**
@@ -6515,10 +7013,17 @@
6515
  }
6516
 
6517
  // Reload the page with the keys.
6518
- if ( $redirect && fs_redirect( $this->get_after_activation_url( 'after_connect_url' ) ) ) {
6519
- exit();
6520
- }
 
 
 
 
 
6521
  }
 
 
6522
  }
6523
 
6524
  /**
@@ -6565,6 +7070,8 @@
6565
  * @param string $install_public_key
6566
  * @param string $install_secret_key
6567
  * @param bool $redirect
 
 
6568
  */
6569
  private function install_with_new_user(
6570
  $user_id,
@@ -6595,26 +7102,49 @@
6595
  $site = new FS_Site( $site_result );
6596
  $this->_site = $site;
6597
 
6598
- $this->setup_account( $this->_user, $this->_site, $redirect );
6599
  }
6600
 
6601
  /**
6602
  * @author Vova Feldman (@svovaf)
6603
  * @since 1.1.7.4
6604
  *
6605
- * @param bool $email
6606
- * @param bool $redirect
 
 
 
 
6607
  */
6608
- private function set_pending_confirmation( $email = false, $redirect = true ) {
 
 
 
 
 
6609
  // Install must be activated via email since
6610
  // user with the same email already exist.
6611
  $this->_storage->is_pending_activation = true;
6612
- $this->_add_pending_activation_notice( $email );
 
 
 
 
 
 
 
 
 
 
 
 
6613
 
6614
  // Reload the page with with pending activation message.
6615
- if ( $redirect && fs_redirect( $this->get_after_activation_url( 'after_pending_connect_url' ) ) ) {
6616
- exit();
6617
  }
 
 
6618
  }
6619
 
6620
  /**
@@ -6633,7 +7163,13 @@
6633
  if ( fs_request_is_action( $this->_slug . '_activate_existing' ) && fs_request_is_post() ) {
6634
  // check_admin_referer( 'activate_existing_' . $this->_plugin->public_key );
6635
 
6636
- $this->install_with_current_user();
 
 
 
 
 
 
6637
  }
6638
  }
6639
 
@@ -6642,11 +7178,18 @@
6642
  * @author Vova Feldman (@svovaf)
6643
  * @since 1.1.7.4
6644
  *
6645
- * @param bool $redirect
 
 
6646
  *
6647
- * @return object|string
 
6648
  */
6649
- private function install_with_current_user( $redirect = true ) {
 
 
 
 
6650
  // Get current logged WP user.
6651
  $current_user = self::_get_current_wp_user();
6652
 
@@ -6660,24 +7203,30 @@
6660
  'uid' => $this->get_anonymous_id(),
6661
  );
6662
 
6663
- /**
6664
- * @author Vova Feldman (@svovaf)
6665
- * @since 1.1.9 Add license key if given.
6666
- */
6667
- $license_key = fs_request_get( 'license_secret_key' );
6668
-
6669
  if ( ! empty( $license_key ) ) {
6670
- $extra_install_params['license_key'] = $license_key;
 
 
 
6671
  }
6672
 
 
 
6673
  // Install the plugin.
6674
  $install = $this->get_api_user_scope()->call(
6675
  "/plugins/{$this->get_id()}/installs.json",
6676
  'post',
6677
- $this->get_install_data_for_api( $extra_install_params, false, false )
6678
  );
6679
 
6680
- if ( $this->is_api_error($install) ) {
 
 
 
 
 
 
 
6681
  $this->_admin_notices->add(
6682
  sprintf( __fs( 'could-not-activate-x', $this->_slug ), $this->get_plugin_name() ) . ' ' .
6683
  __fs( 'contact-us-with-error-message', $this->_slug ) . ' ' . '<b>' . $install->error->message . '</b>',
@@ -6685,9 +7234,8 @@
6685
  'error'
6686
  );
6687
 
6688
- if ( $redirect && fs_redirect( $this->get_activation_url( array('error' => $install->error->message) ) )
6689
- ) {
6690
- exit();
6691
  }
6692
 
6693
  return $install;
@@ -6695,14 +7243,8 @@
6695
 
6696
  $site = new FS_Site( $install );
6697
  $this->_site = $site;
6698
- // $this->_enrich_site_plan( false );
6699
-
6700
- // $this->_set_account( $user, $site );
6701
- // $this->_sync_plans();
6702
-
6703
- $this->setup_account( $this->_user, $this->_site, $redirect );
6704
 
6705
- return $install;
6706
  }
6707
 
6708
  /**
@@ -6761,9 +7303,11 @@
6761
  $this->_activate_license( true );
6762
  }
6763
 
6764
- #endregion ------------------------------------------------------------------
6765
 
6766
- #region Admin Menu Items ------------------------------------------------------------------
 
 
6767
 
6768
  private $_menu_items = array();
6769
 
@@ -6821,8 +7365,6 @@
6821
  /**
6822
  * @author Vova Feldman (@svovaf)
6823
  * @since 1.0.1
6824
- *
6825
- * @return string
6826
  */
6827
  function _redirect_on_clicked_menu_link() {
6828
  $this->_logger->entrance();
@@ -6834,7 +7376,7 @@
6834
  foreach ( $this->_menu_items as $priority => $items ) {
6835
  foreach ( $items as $item ) {
6836
  if ( isset( $item['url'] ) ) {
6837
- if ( $page === strtolower( $item['menu_slug'] ) ) {
6838
  $this->_logger->log( 'Redirecting to ' . $item['url'] );
6839
 
6840
  fs_redirect( $item['url'] );
@@ -7015,16 +7557,32 @@
7015
  // to support add-ons checkout but don't add the submenu item.
7016
  // || (isset( $_GET['page'] ) && $this->_menu->get_slug( 'pricing' ) == $_GET['page']);
7017
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7018
  // Add upgrade/pricing page.
7019
  $this->add_submenu_item(
7020
- ( $this->is_paying() ? __fs( 'pricing', $this->_slug ) : __fs( 'upgrade', $this->_slug ) . '&nbsp;&nbsp;&#x27a4;' ),
7021
  array( &$this, '_pricing_page_render' ),
7022
  $this->get_plugin_name() . ' &ndash; ' . __fs( 'pricing', $this->_slug ),
7023
  'manage_options',
7024
  'pricing',
7025
  'Freemius::_clean_admin_content_section',
7026
  WP_FS__LOWEST_PRIORITY,
7027
- $show_pricing
 
7028
  );
7029
  }
7030
  }
@@ -7053,8 +7611,8 @@
7053
  */
7054
  private function embed_submenu_items() {
7055
  $item_template = $this->_menu->is_top_level() ?
7056
- '<span class="fs-submenu-item">%s</span>' :
7057
- '<span class="fs-submenu-item fs-sub">%s</span>';
7058
 
7059
  $top_level_menu_capability = $this->get_top_level_menu_capability();
7060
 
@@ -7064,15 +7622,25 @@
7064
  foreach ( $items as $item ) {
7065
  $capability = ( ! empty( $item['capability'] ) ? $item['capability'] : $top_level_menu_capability );
7066
 
 
 
 
 
 
 
 
 
 
 
7067
  if ( ! isset( $item['url'] ) ) {
7068
  $hook = add_submenu_page(
7069
  $item['show_submenu'] ?
7070
  $this->get_top_level_menu_slug() :
7071
  null,
7072
  $item['page_title'],
7073
- sprintf( $item_template, $item['menu_title'] ),
7074
  $capability,
7075
- $item['menu_slug'],
7076
  $item['render_function']
7077
  );
7078
 
@@ -7083,9 +7651,9 @@
7083
  add_submenu_page(
7084
  $this->get_top_level_menu_slug(),
7085
  $item['page_title'],
7086
- sprintf( $item_template, $item['menu_title'] ),
7087
  $capability,
7088
- $item['menu_slug'],
7089
  array( $this, '' )
7090
  );
7091
  }
@@ -7197,6 +7765,7 @@
7197
  * @param bool|callable $before_render_function
7198
  * @param int $priority
7199
  * @param bool $show_submenu
 
7200
  */
7201
  function add_submenu_item(
7202
  $menu_title,
@@ -7206,7 +7775,8 @@
7206
  $menu_slug = false,
7207
  $before_render_function = false,
7208
  $priority = WP_FS__DEFAULT_PRIORITY,
7209
- $show_submenu = true
 
7210
  ) {
7211
  $this->_logger->entrance( 'Title = ' . $menu_title );
7212
 
@@ -7222,7 +7792,8 @@
7222
  $menu_slug,
7223
  $before_render_function,
7224
  $priority,
7225
- $show_submenu
 
7226
  );
7227
 
7228
  return;
@@ -7237,10 +7808,11 @@
7237
  'page_title' => is_string( $page_title ) ? $page_title : $menu_title,
7238
  'menu_title' => $menu_title,
7239
  'capability' => $capability,
7240
- 'menu_slug' => $this->_menu->get_slug( is_string( $menu_slug ) ? $menu_slug : strtolower( $menu_title ) ),
7241
  'render_function' => $render_function,
7242
  'before_render_function' => $before_render_function,
7243
  'show_submenu' => $show_submenu,
 
7244
  );
7245
  }
7246
 
@@ -7287,7 +7859,7 @@
7287
  $this->_menu_items[ $priority ][] = array(
7288
  'menu_title' => $menu_title,
7289
  'capability' => $capability,
7290
- 'menu_slug' => $this->_menu->get_slug( is_string( $menu_slug ) ? $menu_slug : strtolower( $menu_title ) ),
7291
  'url' => $url,
7292
  'page_title' => $menu_title,
7293
  'render_function' => 'fs_dummy',
@@ -7377,11 +7949,62 @@
7377
  * @param int $accepted_args
7378
  *
7379
  * @uses add_action()
 
 
7380
  */
7381
  function add_ajax_action( $tag, $function_to_add, $priority = WP_FS__DEFAULT_PRIORITY, $accepted_args = 1 ) {
7382
  $this->_logger->entrance( $tag );
7383
 
 
 
 
 
7384
  add_action( $this->get_ajax_action_tag( $tag ), $function_to_add, $priority, $accepted_args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7385
  }
7386
 
7387
  /**
@@ -7471,6 +8094,12 @@
7471
  private function _store_site( $store = true ) {
7472
  $this->_logger->entrance();
7473
 
 
 
 
 
 
 
7474
  $encrypted_site = clone $this->_site;
7475
  $encrypted_site->plan = $this->_encrypt_entity( $this->_site->plan );
7476
 
@@ -7542,6 +8171,12 @@
7542
  private function _store_user( $store = true ) {
7543
  $this->_logger->entrance();
7544
 
 
 
 
 
 
 
7545
  $users = self::get_all_users();
7546
  $users[ $this->_user->id ] = $this->_user;
7547
  self::$_accounts->set_option( 'users', $users, $store );
@@ -7705,9 +8340,7 @@
7705
  * @link https://github.com/Freemius/wordpress-sdk/issues/6
7706
  */
7707
  if ( ! $is_menu_item_account_visible ) {
7708
- if ( fs_redirect( $this->_get_admin_page_url() ) ) {
7709
- exit();
7710
- }
7711
  }
7712
  }
7713
  }
@@ -7818,7 +8451,7 @@
7818
 
7819
  $result = $api->get( '/plans.json', true );
7820
 
7821
- if ( ! $this->is_api_error( $result ) ) {
7822
  for ( $i = 0, $len = count( $result->plans ); $i < $len; $i ++ ) {
7823
  $result->plans[ $i ] = new FS_Plugin_Plan( $result->plans[ $i ] );
7824
  }
@@ -7852,7 +8485,11 @@
7852
 
7853
  $is_site_license_synced = false;
7854
 
7855
- if ( ! isset( $result->error ) ) {
 
 
 
 
7856
  for ( $i = 0, $len = count( $result->licenses ); $i < $len; $i ++ ) {
7857
  $result->licenses[ $i ] = new FS_Plugin_License( $result->licenses[ $i ] );
7858
 
@@ -7862,6 +8499,9 @@
7862
  }
7863
 
7864
  $result = $result->licenses;
 
 
 
7865
  }
7866
 
7867
  if ( ! $is_site_license_synced ) {
@@ -7871,24 +8511,41 @@
7871
  // Try to retrieve a foreign license that is linked to the install.
7872
  $api_result = $api->call( '/licenses.json' );
7873
 
7874
- if ( ! isset( $api_result->error ) ) {
 
 
7875
  $licenses = $api_result->licenses;
7876
 
7877
  if ( ! empty( $licenses ) ) {
7878
  $result[] = new FS_Plugin_License( $licenses[0] );
7879
  }
 
 
7880
  }
7881
  } else if ( is_object( $this->_license ) ) {
7882
  // Fetch foreign license by ID and license key.
7883
  $license = $api->get( "/licenses/{$this->_license->id}.json?license_key=" .
7884
  urlencode( $this->_license->secret_key ) );
7885
 
7886
- if ( ! isset( $license->error ) ) {
7887
  $result[] = new FS_Plugin_License( $license );
 
 
7888
  }
7889
  }
7890
  }
7891
 
 
 
 
 
 
 
 
 
 
 
 
7892
  return $result;
7893
  }
7894
 
@@ -7922,6 +8579,25 @@
7922
  return $result;
7923
  }
7924
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7925
  /**
7926
  * @author Vova Feldman (@svovaf)
7927
  * @since 1.0.4
@@ -8136,7 +8812,7 @@
8136
  $licenses = $this->_fetch_licenses( $addon->id );
8137
 
8138
  // Sync add-on licenses.
8139
- if ( ! isset( $licenses->error ) ) {
8140
  $this->_update_licenses( $licenses, $addon->slug );
8141
 
8142
  if ( ! $this->is_addon_installed( $addon->slug ) && FS_License_Manager::has_premium_license( $licenses ) ) {
@@ -8195,7 +8871,7 @@
8195
 
8196
  $plan_change = 'none';
8197
 
8198
- if ( $this->is_api_error( $site ) ) {
8199
  // Show API messages only if not background sync or if paying customer.
8200
  if ( ! $background || $this->is_paying() ) {
8201
  // Try to ping API to see if not blocked.
@@ -8512,19 +9188,19 @@
8512
  $api = $this->get_api_site_scope();
8513
  $license = $api->call( "/licenses/{$premium_license->id}.json", 'put', $api_request_params );
8514
 
8515
- if ( $this->is_api_error( $license ) ) {
8516
  if ( ! $background ) {
8517
  $this->_admin_notices->add( sprintf(
8518
- '%s %s',
8519
- __fs( 'license-activation-failed-message', $this->_slug ),
8520
- ( is_object( $license ) && isset( $license->error ) ?
8521
- $license->error->message :
8522
- sprintf( '%s<br><code>%s</code>',
8523
- __fs( 'server-error-message', $this->_slug ),
8524
- var_export( $license, true )
8525
- )
8526
  )
8527
- ),
 
8528
  __fs( 'hmm', $this->_slug ) . '...',
8529
  'error'
8530
  );
@@ -8537,7 +9213,7 @@
8537
 
8538
  // Updated site plan.
8539
  $site = $this->get_api_site_scope()->get( '/', true );
8540
- if ( ! $this->is_api_error( $site ) ) {
8541
  $this->_site = new FS_Site( $site );
8542
  }
8543
  $this->_update_site_license( $premium_license );
@@ -8637,7 +9313,7 @@
8637
 
8638
  $plan_downgraded = false;
8639
  $plan = false;
8640
- if ( ! isset( $site->error ) ) {
8641
  $prev_plan_id = $this->_site->plan->id;
8642
 
8643
  // Update new site plan id.
@@ -8753,7 +9429,7 @@
8753
  $api = $this->get_api_site_scope();
8754
  $plan = $api->call( "plans/{$plan->id}/trials.json", 'post' );
8755
 
8756
- if ( $this->is_api_error( $plan ) ) {
8757
  // Some API error while trying to start the trial.
8758
  $this->_admin_notices->add(
8759
  __fs( 'unexpected-api-error', $this->_slug ) . ' ' . var_export( $plan, true ),
@@ -8796,7 +9472,7 @@
8796
 
8797
  $trial_cancelled = false;
8798
 
8799
- if ( ! $this->is_api_error( $site ) ) {
8800
  $prev_trial_ends = $this->_site->trial_ends;
8801
 
8802
  if ( $this->is_paid_trial() ) {
@@ -8830,9 +9506,6 @@
8830
  // Store site updates.
8831
  $this->_store_site();
8832
 
8833
- // Clear trial plan information.
8834
- unset( $this->_storage->trial_plan );
8835
-
8836
  if ( ! $this->is_addon() ||
8837
  ! $this->deactivate_premium_only_addon_without_license( true )
8838
  ) {
@@ -8840,6 +9513,9 @@
8840
  sprintf( __fs( 'trial-cancel-message', $this->_slug ), $this->_storage->trial_plan->title )
8841
  );
8842
  }
 
 
 
8843
  } else {
8844
  $this->_admin_notices->add(
8845
  __fs( 'trial-cancel-failure-message', $this->_slug ),
@@ -8936,7 +9612,9 @@
8936
  return ( is_object( $tag ) && isset( $tag->version ) ) ? $tag : false;
8937
  }
8938
 
8939
- #region Download Plugin ------------------------------------------------------------------
 
 
8940
 
8941
  /**
8942
  * Download latest plugin version, based on plan.
@@ -9112,7 +9790,9 @@
9112
  $result = $api->get( '/addons.json?enriched=true', $flush );
9113
 
9114
  $addons = array();
9115
- if ( ! $this->is_api_error( $result ) ) {
 
 
9116
  for ( $i = 0, $len = count( $result->plugins ); $i < $len; $i ++ ) {
9117
  $addons[ $i ] = new FS_Plugin( $result->plugins[ $i ] );
9118
  }
@@ -9159,6 +9839,10 @@
9159
  return $user;
9160
  }
9161
 
 
 
 
 
9162
  /**
9163
  * @author Vova Feldman (@svovaf)
9164
  * @since 1.1.1
@@ -9168,8 +9852,53 @@
9168
  * @return bool Is API result contains an error.
9169
  */
9170
  private function is_api_error( $result ) {
9171
- return ( is_object( $result ) && isset( $result->error ) ) ||
9172
- is_string( $result );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9173
  }
9174
 
9175
  /**
@@ -9311,6 +10040,21 @@
9311
  return $this->apply_filters( 'connect_url', $this->_get_admin_page_url( '', $params ) );
9312
  }
9313
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9314
  /**
9315
  * Get the URL of the page that should be loaded after the user connect or skip in the opt-in screen.
9316
  *
@@ -9321,7 +10065,7 @@
9321
  *
9322
  * @return string
9323
  */
9324
- private function get_after_activation_url( $filter ) {
9325
  $first_time_path = $this->_menu->get_first_time_path();
9326
 
9327
  return $this->apply_filters(
@@ -9358,17 +10102,13 @@
9358
  $this->_site = null;
9359
  $this->_user = null;
9360
 
9361
- if ( fs_redirect( $this->get_activation_url() ) ) {
9362
- exit();
9363
- }
9364
  } else {
9365
  if ( $this->is_addon_activated( $plugin_id ) ) {
9366
  $fs_addon = self::get_instance_by_id( $plugin_id );
9367
  $fs_addon->delete_account_event();
9368
 
9369
- if ( fs_redirect( $this->_get_admin_page_url( 'account' ) ) ) {
9370
- exit();
9371
- }
9372
  }
9373
  }
9374
 
@@ -9376,7 +10116,13 @@
9376
 
9377
  case 'downgrade_account':
9378
  check_admin_referer( $action );
9379
- $this->_downgrade_site();
 
 
 
 
 
 
9380
 
9381
  return;
9382
 
@@ -9584,7 +10330,8 @@
9584
 
9585
  if ( $this->has_paid_plan() &&
9586
  ! $this->has_any_license() &&
9587
- ! $this->is_sync_executed()
 
9588
  ) {
9589
  /**
9590
  * If no licenses found and no sync job was executed during the last 24 hours,
@@ -9694,7 +10441,9 @@
9694
  }
9695
  }
9696
 
9697
- #region Contact Us ------------------------------------------------------------------
 
 
9698
 
9699
  /**
9700
  * Render contact-us page.
@@ -9709,7 +10458,7 @@
9709
  fs_require_once_template( 'contact.php', $vars );
9710
  }
9711
 
9712
- #endregion ------------------------------------------------------------------
9713
 
9714
  /**
9715
  * Hide all admin notices to prevent distractions.
@@ -9857,95 +10606,180 @@
9857
  $this->_storage->has_trial_plan = FS_Plan_Manager::instance()->has_trial_plan( $plans );
9858
  }
9859
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9860
  /**
9861
  * Show trial promotional notice (if any trial exist).
9862
  *
9863
  * @author Vova Feldman (@svovaf)
9864
  * @since 1.0.9
 
 
9865
  */
9866
  function _add_trial_notice() {
9867
- // Check if trial already utilized.
9868
- if ( $this->_site->is_trial_utilized() ) {
9869
- return;
9870
  }
9871
 
9872
- // Check if already paying.
9873
- if ( $this->is_paying() ) {
9874
- return;
9875
  }
9876
 
9877
  // Check if trial message is already shown.
9878
  if ( $this->_admin_notices->has_sticky( 'trial_promotion' ) ) {
9879
- return;
 
 
 
 
9880
  }
9881
 
9882
- $trial_plans = FS_Plan_Manager::instance()->get_trial_plans( $this->_plans );
9883
- $trial_plans_count = count( $trial_plans );
 
 
9884
 
9885
- // Check if any of the plans contains trial.
9886
- if ( 0 === $trial_plans_count ) {
9887
- return;
9888
  }
9889
 
9890
- /**
9891
- * @var FS_Plugin_Plan $paid_plan
9892
- */
9893
- $paid_plan = $trial_plans[0];
9894
- $require_subscription = $paid_plan->is_require_subscription;
9895
- $upgrade_url = $this->get_trial_url();
9896
- $cc_string = $require_subscription ?
9897
- sprintf( __fs( 'no-commitment-for-x-days', $this->_slug ), $paid_plan->trial_period ) :
9898
- __fs( 'no-cc-required', $this->_slug ) . '!';
 
9899
 
 
 
 
 
 
9900
 
9901
- $total_paid_plans = count( $this->_plans ) - ( FS_Plan_Manager::instance()->has_free_plan( $this->_plans ) ? 1 : 0 );
 
 
 
9902
 
9903
- if ( $total_paid_plans === $trial_plans_count ) {
9904
- // All paid plans have trials.
9905
- $message = sprintf(
9906
- __fs( 'hey', $this->_slug ) . '! ' . __fs( 'trial-x-promotion-message', $this->_slug ),
9907
- sprintf( '<b>%s</b>', $this->get_plugin_name() ),
9908
- strtolower( __fs( 'awesome', $this->_slug ) ),
9909
- $paid_plan->trial_period
9910
- );
9911
- } else {
9912
- $plans_string = '';
9913
- for ( $i = 0; $i < $trial_plans_count; $i ++ ) {
9914
- $plans_string .= sprintf( '<a href="%s">%s</a>', $upgrade_url, $trial_plans[ $i ]->title );
9915
-
9916
- if ( $i < $trial_plans_count - 2 ) {
9917
- $plans_string .= ', ';
9918
- } else if ( $i == $trial_plans_count - 2 ) {
9919
- $plans_string .= ' and ';
9920
- }
 
 
 
 
 
 
 
 
 
 
 
 
9921
  }
9922
 
9923
- // Not all paid plans have trials.
9924
- $message = sprintf(
9925
- __fs( 'hey', $this->_slug ) . '! ' . __fs( 'trial-x-promotion-message', $this->_slug ),
9926
- sprintf( '<b>%s</b>', $this->get_plugin_name() ),
9927
- $plans_string,
9928
- $paid_plan->trial_period
9929
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9930
  }
9931
 
9932
- $message .= ' ' . $cc_string;
 
 
 
 
 
 
 
 
 
 
9933
 
9934
- // Add start trial button.
9935
- $message .= ' ' . sprintf(
 
9936
  '<a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
9937
- $upgrade_url,
9938
  __fs( 'start-free-trial', $this->_slug )
9939
  );
9940
 
9941
  $this->_admin_notices->add_sticky(
9942
- $this->apply_filters( 'trial_promotion_message', $message ),
9943
  'trial_promotion',
9944
  '',
9945
  'promotion'
9946
  );
9947
 
9948
  $this->_storage->trial_promotion_shown = WP_FS__SCRIPT_START_TIME;
 
 
 
 
 
 
 
 
 
 
 
 
 
9949
  }
9950
 
9951
  /* Action Links
@@ -10053,6 +10887,11 @@
10053
  return;
10054
  }
10055
 
 
 
 
 
 
10056
  $link_text = __fs(
10057
  $this->is_free_plan() ? 'activate-license' : 'change-license',
10058
  $this->_slug
@@ -10067,6 +10906,77 @@
10067
  );
10068
  }
10069
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10070
  /**
10071
  * Get the URL of the page that should be loaded right after the plugin activation.
10072
  *
@@ -10117,7 +11027,6 @@
10117
 
10118
  if ( is_string( $url ) ) {
10119
  fs_redirect( $url );
10120
- exit();
10121
  }
10122
  }
10123
 
@@ -10229,14 +11138,19 @@
10229
  $plan_title = $this->_site->plan->title;
10230
  }
10231
 
 
 
 
 
 
10232
  return sprintf(
10233
- ' %s: <ol><li>%s.</li><li>%s.</li><li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
10234
  __fs( 'follow-steps-to-complete-upgrade', $this->_slug ),
10235
  $this->_get_latest_download_link( sprintf(
10236
  __fs( 'download-latest-x-version', $this->_slug ),
10237
  $plan_title
10238
  ) ),
10239
- __fs( 'deactivate-free-version', $this->_slug ),
10240
  __fs( 'upload-and-activate', $this->_slug ),
10241
  '//bit.ly/upload-wp-plugin',
10242
  __fs( 'howto-upload-activate', $this->_slug )
@@ -10294,7 +11208,9 @@
10294
  return $update;
10295
  }
10296
 
10297
- #region Versioning ------------------------------------------------------------------
 
 
10298
 
10299
  /**
10300
  * Check if Freemius in SDK upgrade mode.
@@ -10315,8 +11231,6 @@
10315
  *
10316
  * @author Vova Feldman (@svovaf)
10317
  * @since 1.0.9
10318
- *
10319
- * @return bool
10320
  */
10321
  function set_sdk_upgrade_complete() {
10322
  $this->_storage->sdk_upgrade_mode = false;
@@ -10348,9 +11262,11 @@
10348
  $this->_storage->plugin_upgrade_mode = false;
10349
  }
10350
 
10351
- #endregion ------------------------------------------------------------------
10352
 
10353
- #region Permissions ------------------------------------------------------------------
 
 
10354
 
10355
  /**
10356
  * Check if specific permission requested.
@@ -10366,9 +11282,11 @@
10366
  return isset( $this->_permissions[ $permission ] ) && ( true === $this->_permissions[ $permission ] );
10367
  }
10368
 
10369
- #endregion Permissions ------------------------------------------------------------------
10370
 
10371
- #region Marketing ------------------------------------------------------------------
 
 
10372
 
10373
  /**
10374
  * Check if current user purchased any other plugins before.
@@ -10380,6 +11298,7 @@
10380
  */
10381
  function has_purchased_before() {
10382
  // TODO: Implement has_purchased_before() method.
 
10383
  }
10384
 
10385
  /**
@@ -10392,6 +11311,7 @@
10392
  */
10393
  function is_agency() {
10394
  // TODO: Implement is_agency() method.
 
10395
  }
10396
 
10397
  /**
@@ -10404,6 +11324,7 @@
10404
  */
10405
  function is_developer() {
10406
  // TODO: Implement is_developer() method.
 
10407
  }
10408
 
10409
  /**
@@ -10416,7 +11337,8 @@
10416
  */
10417
  function is_business() {
10418
  // TODO: Implement is_business() method.
 
10419
  }
10420
 
10421
- #endregion ------------------------------------------------------------------
10422
- }
114
  */
115
  private $_has_paid_plans;
116
 
117
+ /**
118
+ * @since 1.2.1.5
119
+ * @var int Hints the SDK if the plugin offers a trial period. If negative, no trial, if zero - has a trial but
120
+ * without a specified period, if positive - the number of trial days.
121
+ */
122
+ private $_trial_days = - 1;
123
+
124
+ /**
125
+ * @since 1.2.1.5
126
+ * @var bool Hints the SDK if the trial requires a payment method or not.
127
+ */
128
+ private $_is_trial_require_payment = false;
129
+
130
  /**
131
  * @since 1.0.7
132
  * @var bool Hints the SDK if the plugin is WordPress.org compliant.
240
  */
241
  private static $_instances = array();
242
 
243
+ #region Uninstall Reasons IDs
244
+
245
  const REASON_NO_LONGER_NEEDED = 1;
246
  const REASON_FOUND_A_BETTER_PLUGIN = 2;
247
  const REASON_NEEDED_FOR_A_SHORT_PERIOD = 3;
258
  const REASON_DIDNT_WORK_AS_EXPECTED = 14;
259
  const REASON_TEMPORARY_DEACTIVATION = 15;
260
 
261
+ #endregion
262
+
263
  /* Ctor
264
  ------------------------------------------------------------------------------------------------------------------*/
265
 
463
  * @since 1.0.9
464
  */
465
  private function _register_hooks() {
466
+ $this->_logger->entrance();
467
+
468
  if ( is_admin() ) {
469
+ $plugin_dir = dirname( $this->_plugin_dir_path ) . '/';
470
+
471
+ /**
472
+ * @since 1.2.2
473
+ *
474
+ * Hook to both free and premium version activations to support
475
+ * auto deactivation on the other version activation.
476
+ */
477
+ register_activation_hook(
478
+ $plugin_dir . $this->_free_plugin_basename,
479
+ array( &$this, '_activate_plugin_event_hook' )
480
+ );
481
+ register_activation_hook(
482
+ $plugin_dir . $this->premium_plugin_basename(),
483
+ array( &$this, '_activate_plugin_event_hook' )
484
+ );
485
 
486
  /**
487
  * Part of the mechanism to identify new plugin install vs. plugin update.
510
 
511
  add_action( 'init', array( &$this, '_redirect_on_clicked_menu_link' ), WP_FS__LOWEST_PRIORITY );
512
 
513
+ add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
514
+ add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
515
+ $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
516
+ $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
517
+
518
  $this->add_action( 'after_plans_sync', array( &$this, '_check_for_trial_plans' ) );
519
 
520
  $this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
521
+
522
+ add_action( 'admin_init', array( &$this, '_add_trial_notice' ) );
523
+ add_action( 'admin_init', array( &$this, '_enqueue_common_css' ) );
524
+
525
+ /**
526
+ * Handle request to reset anonymous mode for `get_reconnect_url()`.
527
+ *
528
+ * @author Vova Feldman (@svovaf)
529
+ * @since 1.2.1.5
530
+ */
531
+ if ( fs_request_is_action( 'reset_anonymous_mode' ) &&
532
+ $this->_slug === fs_request_get( 'fs_slug' )
533
+ ) {
534
+ add_action( 'admin_init', array( &$this, 'connect_again' ) );
535
+ }
536
  }
537
 
538
  /**
563
  return;
564
  }
565
 
566
+ $plugin_main_file = clone $this->_storage->plugin_main_file;
567
+
568
  // Store cached path (2nd layer cache).
569
+ $plugin_main_file->prev_path = $plugin_main_file->path;
570
 
571
  // Clear cached path.
572
+ unset( $plugin_main_file->path );
573
+
574
+ $this->_storage->plugin_main_file = $plugin_main_file;
575
  }
576
 
577
  /**
580
  */
581
  private function _register_account_hooks() {
582
  if ( is_admin() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
583
  // If user is paying or in trial and have the free version installed,
584
  // assume that the deactivation is for the upgrade process.
585
  if ( ! $this->is_paying_or_trial() || $this->is_premium() ) {
588
  array( &$this, '_submit_uninstall_reason_action' )
589
  );
590
 
591
+ if ( $this->is_plugins_page() ) {
 
592
  add_action( 'admin_footer', array( &$this, '_add_deactivation_feedback_dialog_box' ) );
593
  }
594
  }
616
  private function _find_caller_plugin_file( $is_init = false ) {
617
  // Try to load the cached value of the file path.
618
  if ( isset( $this->_storage->plugin_main_file ) ) {
619
+ $plugin_main_file = $this->_storage->plugin_main_file;
620
+ if ( isset( $plugin_main_file->path ) && file_exists( $plugin_main_file->path ) ) {
621
  return $this->_storage->plugin_main_file->path;
622
  }
623
  }
665
  }
666
 
667
 
668
+ #----------------------------------------------------------------------------------
669
+ #region Deactivation Feedback Form
670
+ #----------------------------------------------------------------------------------
671
 
672
  /**
673
  * Displays a confirmation and feedback dialog box when the user clicks on the "Deactivate" link on the plugins
913
  exit;
914
  }
915
 
916
+ #endregion
917
 
918
+ #----------------------------------------------------------------------------------
919
+ #region Instance
920
+ #----------------------------------------------------------------------------------
921
 
922
  /**
923
  * Main singleton instance.
1206
  self::$_statics_loaded = true;
1207
  }
1208
 
1209
+ #----------------------------------------------------------------------------------
1210
+ #region Localization
1211
+ #----------------------------------------------------------------------------------
1212
+
1213
  /**
1214
  * Load framework's text domain.
1215
  *
1232
  // @todo Load for themes.
1233
  }
1234
 
1235
+ #endregion
1236
+
1237
+ #----------------------------------------------------------------------------------
1238
+ #region Debugging
1239
+ #----------------------------------------------------------------------------------
1240
 
1241
  /**
1242
  * @author Vova Feldman (@svovaf)
1297
  if ( fs_request_is_action( 'restart_freemius' ) ) {
1298
  check_admin_referer( 'restart_freemius' );
1299
 
1300
+ // Clear accounts data.
1301
  self::$_accounts->clear( true );
1302
 
1303
+ // Clear SDK reference cache.
1304
+ delete_option( 'fs_active_plugins' );
1305
+ } else if ( fs_request_is_action( 'simulate_trial' ) ) {
1306
+ check_admin_referer( 'simulate_trial' );
1307
 
1308
+ $slug = fs_request_get( 'slug' );
1309
+
1310
+ $fs = freemius( $slug );
1311
+
1312
+ // Update SDK install to at least 24 hours before.
1313
+ $fs->_storage->install_timestamp = ( time() - WP_FS__TIME_24_HOURS_IN_SEC );
1314
+ // Unset the trial shown timestamp.
1315
+ unset( $fs->_storage->trial_promotion_shown );
1316
  }
1317
  }
1318
 
1344
  fs_require_once_template( 'debug.php', $vars );
1345
  }
1346
 
1347
+ #endregion
1348
 
1349
+ #----------------------------------------------------------------------------------
1350
+ #region Connectivity Issues
1351
+ #----------------------------------------------------------------------------------
1352
 
1353
  /**
1354
  * Check if Freemius should be turned on for the current plugin install.
1491
  $this->_has_api_connection = $this->_storage->connectivity_test['is_connected'];
1492
  /**
1493
  * @since 1.1.6 During dev mode, if there's connectivity - turn Freemius on regardless the configuration.
1494
+ *
1495
+ * @since 1.2.1.5 If the user running the premium version then ignore the 'is_active' flag and turn Freemius on to enable license key activation.
1496
  */
1497
  $this->_is_on = $this->_storage->connectivity_test['is_active'] ||
1498
+ $this->is_premium() ||
1499
  ( WP_FS__DEV_MODE && $this->_has_api_connection && ! WP_FS__SIMULATE_FREEMIUS_OFF );
1500
 
1501
  return $this->_has_api_connection;
1632
  * @param bool $is_first_failure
1633
  */
1634
  function _add_connectivity_issue_message( $api_result, $is_first_failure = true ) {
1635
+ if ( ! $this->is_premium() && $this->_enable_anonymous ) {
1636
+ // Don't add message if it's the free version and can run anonymously.
1637
  return;
1638
  }
1639
 
1946
  fs_require_once_template( 'firewall-issues-js.php', $params );
1947
  }
1948
 
1949
+ #endregion
1950
 
1951
+ #----------------------------------------------------------------------------------
1952
+ #region Email
1953
+ #----------------------------------------------------------------------------------
1954
 
1955
  /**
1956
  * Generates and sends an HTML email with customizable sections.
2099
  return $sections;
2100
  }
2101
 
2102
+ #endregion
2103
 
2104
+ #----------------------------------------------------------------------------------
2105
+ #region Initialization
2106
+ #----------------------------------------------------------------------------------
2107
 
2108
  /**
2109
  * Init plugin's Freemius instance.
2157
  if ( $this->_admin_notices->has_sticky( 'failed_connect_api_first' ) ||
2158
  $this->_admin_notices->has_sticky( 'failed_connect_api' )
2159
  ) {
2160
+ if ( ! $this->_enable_anonymous || $this->is_premium() ) {
2161
  // If anonymous mode is disabled, add firewall admin-notice message.
2162
  add_action( 'admin_footer', array( 'Freemius', '_add_firewall_issues_javascript' ) );
2163
 
2209
  *
2210
  */
2211
  if ( $this->is_registered() ) {
2212
+ if ( ! $this->is_sync_cron_on() && $this->is_tracking_allowed() ) {
2213
  $this->schedule_sync_cron();
2214
  }
2215
  }
2238
  }
2239
 
2240
  if ( $this->is_user_in_admin() ) {
2241
+ if ( $this->is_plugins_page() ) {
 
2242
  $this->hook_plugin_action_links();
2243
  }
2244
 
2339
  $this->do_action( 'after_init_addon_pending_activations' );
2340
  }
2341
  }
2342
+ }
2343
+
2344
+ /**
2345
+ * @author Leo Fajardo (@leorw)
2346
+ *
2347
+ * @since 1.2.1.5
2348
+ */
2349
+ function _stop_tracking_callback() {
2350
+ $result = $this->stop_tracking();
2351
+
2352
+ if ( true === $result ) {
2353
+ $this->shoot_ajax_success();
2354
+ }
2355
 
2356
+ $this->_logger->api_error( $result );
 
 
 
 
 
 
 
 
 
2357
 
2358
+ $this->shoot_ajax_failure(
2359
+ __fs( 'unexpected-api-error', $this->_slug ) .
2360
+ ( $this->is_api_error( $result ) && isset( $result->error ) ?
2361
+ $result->error->message :
2362
+ var_export( $result, true ) )
2363
+ );
2364
+ }
2365
+
2366
+ /**
2367
+ * @author Leo Fajardo (@leorw)
2368
+ * @since 1.2.1.5
2369
+ */
2370
+ function _allow_tracking_callback() {
2371
+ $result = $this->allow_tracking();
2372
+
2373
+ if ( true === $result ) {
2374
+ $this->shoot_ajax_success();
2375
+ }
2376
+
2377
+ $this->_logger->api_error( $result );
2378
+
2379
+ $this->shoot_ajax_failure(
2380
+ __fs( 'unexpected-api-error', $this->_slug ) .
2381
+ ( $this->is_api_error( $result ) && isset( $result->error ) ?
2382
+ $result->error->message :
2383
+ var_export( $result, true ) )
2384
+ );
2385
+ }
2386
+
2387
+ /**
2388
+ * Opt-out from usage tracking.
2389
+ *
2390
+ * Note: This will not delete the account information but will stop all tracking.
2391
+ *
2392
+ * Returns:
2393
+ * 1. FALSE - If the user never opted-in.
2394
+ * 2. TRUE - If successfully opted-out.
2395
+ * 3. object - API result on failure.
2396
+ *
2397
+ * @author Leo Fajardo (@leorw)
2398
+ * @since 1.2.1.5
2399
+ *
2400
+ * @return bool|object
2401
+ */
2402
+ function stop_tracking() {
2403
+ $this->_logger->entrance();
2404
+
2405
+ if ( ! $this->is_registered() ) {
2406
+ // User never opted-in.
2407
+ return false;
2408
+ }
2409
+
2410
+ if ( $this->is_tracking_prohibited() ) {
2411
+ // Already disconnected.
2412
+ return true;
2413
+ }
2414
+
2415
+ // Send update to FS.
2416
+ $result = $this->get_api_site_scope()->call( '/?fields=is_disconnected', 'put', array(
2417
+ 'is_disconnected' => true
2418
+ ) );
2419
+
2420
+ if ( ! $this->is_api_result_entity( $result ) ||
2421
+ ! isset( $result->is_disconnected ) ||
2422
+ ! $result->is_disconnected
2423
+ ) {
2424
+ $this->_logger->api_error( $result );
2425
+
2426
+ return $result;
2427
+ }
2428
+
2429
+ $this->_site->is_disconnected = $result->is_disconnected;
2430
+ $this->_store_site();
2431
+
2432
+ $this->clear_sync_cron();
2433
+
2434
+ // Successfully disconnected.
2435
+ return true;
2436
+ }
2437
+
2438
+ /**
2439
+ * Opt-in back into usage tracking.
2440
+ *
2441
+ * Note: This will only work if the user opted-in previously.
2442
+ *
2443
+ * Returns:
2444
+ * 1. FALSE - If the user never opted-in.
2445
+ * 2. TRUE - If successfully opted-in back to usage tracking.
2446
+ * 3. object - API result on failure.
2447
+ *
2448
+ * @author Leo Fajardo (@leorw)
2449
+ * @since 1.2.1.5
2450
+ *
2451
+ * @return bool|object
2452
+ */
2453
+ function allow_tracking() {
2454
+ $this->_logger->entrance();
2455
+
2456
+ if ( ! $this->is_registered() ) {
2457
+ // User never opted-in.
2458
+ return false;
2459
+ }
2460
+
2461
+ if ( $this->is_tracking_allowed() ) {
2462
+ // Tracking already allowed.
2463
+ return true;
2464
+ }
2465
+
2466
+ $result = $this->get_api_site_scope()->call( '/?is_disconnected', 'put', array(
2467
+ 'is_disconnected' => false
2468
+ ) );
2469
+
2470
+ if ( ! $this->is_api_result_entity( $result ) ||
2471
+ ! isset( $result->is_disconnected ) ||
2472
+ $result->is_disconnected
2473
+ ) {
2474
+ $this->_logger->api_error( $result );
2475
+
2476
+ return $result;
2477
+ }
2478
+
2479
+ $this->_site->is_disconnected = $result->is_disconnected;
2480
+ $this->_store_site();
2481
+
2482
+ $this->schedule_sync_cron();
2483
+
2484
+ // Successfully reconnected.
2485
+ return true;
2486
+ }
2487
+
2488
+ /**
2489
+ * If user opted-in and later disabled usage-tracking,
2490
+ * re-allow tracking for licensing and updates.
2491
+ *
2492
+ * @author Leo Fajardo (@leorw)
2493
+ *
2494
+ * @since 1.2.1.5
2495
+ */
2496
+ private function reconnect_locally() {
2497
+ $this->_logger->entrance();
2498
+
2499
+ if ( $this->is_tracking_prohibited() &&
2500
+ $this->is_registered()
2501
+ ) {
2502
+ $this->_site->is_disconnected = false;
2503
+ $this->_store_site();
2504
  }
2505
  }
2506
 
2535
  $parent_id = $this->get_numeric_option( $plugin_info['parent'], 'id', null );
2536
  // $parent_slug = $this->get_option( $plugin_info['parent'], 'slug', null );
2537
  // $parent_public_key = $this->get_option( $plugin_info['parent'], 'public_key', null );
2538
+ // $parent_name = $this->get_option( $plugin_info['parent'], 'name', null );
2539
  }
2540
 
2541
  if ( false === $id ) {
2594
  $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false );
2595
  }
2596
  $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() );
2597
+
2598
+ if ( ! empty( $plugin_info['trial'] ) ) {
2599
+ $this->_trial_days = $this->get_numeric_option(
2600
+ $plugin_info['trial'],
2601
+ 'days',
2602
+ // Default to 0 - trial without days specification.
2603
+ 0
2604
+ );
2605
+
2606
+ $this->_is_trial_require_payment = $this->get_bool_option( $plugin_info['trial'], 'is_require_payment', false );
2607
+ }
2608
  }
2609
 
2610
  /**
2726
  function _plugin_code_type_changed() {
2727
  $this->_logger->entrance();
2728
 
 
 
 
 
2729
  if ( $this->is_premium() ) {
2730
+ $this->reconnect_locally();
2731
+
2732
  // Activated premium code.
2733
  $this->do_action( 'after_premium_version_activation' );
2734
 
2737
  'trial_started',
2738
  'plan_upgraded',
2739
  'plan_changed',
2740
+ 'license_activated',
2741
  ) );
2742
 
2743
  $this->_admin_notices->add_sticky(
2764
  }
2765
  }
2766
 
2767
+ // Schedule code type changes event.
2768
+ $this->schedule_install_sync();
2769
+
2770
  /**
2771
  * Unregister the uninstall hook for the other version of the plugin (with different code type) to avoid
2772
  * triggering a fatal error when uninstalling that plugin. For example, after deactivating the "free" version
2784
  $this->_storage->prev_is_premium = $this->_plugin->is_premium;
2785
  }
2786
 
2787
+ #endregion
2788
 
2789
+ #----------------------------------------------------------------------------------
2790
+ #region Add-ons
2791
+ #----------------------------------------------------------------------------------
2792
 
2793
  /**
2794
  * Check if add-on installed and activated on site.
2985
  $this->_parent->_admin_notices->add_sticky(
2986
  sprintf(
2987
  __fs( ( $is_after_trial_cancel ?
2988
+ 'addon-trial-cancelled-message' :
2989
+ 'addon-no-license-message' ),
2990
  $this->_parent->_slug
2991
  ),
2992
  '<b>' . $this->_plugin->title . '</b>'
3008
  return false;
3009
  }
3010
 
3011
+ #endregion
3012
 
3013
+ #----------------------------------------------------------------------------------
3014
+ #region Sandbox
3015
+ #----------------------------------------------------------------------------------
3016
 
3017
  /**
3018
  * Set Freemius into sandbox mode for debugging.
3041
  return ( ! $this->is_live() ) || isset( $this->_plugin->secret_key );
3042
  }
3043
 
3044
+ #endregion
3045
 
3046
  /**
3047
  * Check if running test vs. live plugin.
3106
  return $this->_is_org_compliant;
3107
  }
3108
 
3109
+ #----------------------------------------------------------------------------------
3110
+ #region Daily Sync Cron
3111
+ #----------------------------------------------------------------------------------
3112
 
3113
  /**
3114
  * @author Vova Feldman (@svovaf)
3292
 
3293
  #endregion Daily Sync Cron ------------------------------------------------------------------
3294
 
3295
+ #----------------------------------------------------------------------------------
3296
+ #region Async Install Sync
3297
+ #----------------------------------------------------------------------------------
3298
 
3299
  /**
3300
  * @author Vova Feldman (@svovaf)
3419
  * @since 1.0.7
3420
  *
3421
  * @param bool|string $email
3422
+ * @param bool $is_pending_trial Since 1.2.1.5
3423
  */
3424
+ function _add_pending_activation_notice( $email = false, $is_pending_trial = false ) {
3425
  if ( ! is_string( $email ) ) {
3426
  $current_user = self::_get_current_wp_user();
3427
  $email = $current_user->user_email;
3431
  sprintf(
3432
  __fs( 'pending-activation-message', $this->_slug ),
3433
  '<b>' . $this->get_plugin_name() . '</b>',
3434
+ '<b>' . $email . '</b>',
3435
+ __fs( $is_pending_trial ? 'start-the-trial' : 'complete-the-install', $this->_slug )
3436
  ),
3437
  'activation_pending',
3438
  'Thanks!'
3479
 
3480
  $this->skip_connection();
3481
 
3482
+ fs_redirect( $this->get_after_activation_url( 'after_skip_url' ) );
 
 
3483
  }
3484
 
3485
  if ( ! $this->is_addon() && ! $this->is_registered() && ! $this->is_anonymous() ) {
3568
  jQuery(document).ready(function ($) {
3569
  if ('undefined' !== typeof(jQuery().pointer)) {
3570
 
3571
+ var element = <?php echo $this->apply_filters( 'optin_pointer_element', '$("#non_existing_element");' ) ?>;
3572
 
3573
  if (element.length > 0) {
3574
  var optin = $(element).pointer($.extend(true, {}, {
3575
+ content : <?php echo json_encode( $pointer_content ) ?>,
3576
  position : {
3577
  edge : 'left',
3578
  align: 'center'
3582
  return '';
3583
  },
3584
  pointerWidth: 482
3585
+ }, <?php echo $this->apply_filters( 'optin_pointer_options_json', '{}' ) ?>));
3586
 
3587
  <?php
3588
+ echo $this->apply_filters( 'optin_pointer_execute', "
3589
 
3590
  optin.pointer('open');
3591
 
3594
  .parents('.wp-pointer.wp-pointer-top')
3595
  .addClass('fs-opt-in-pointer');
3596
 
3597
+ ", 'element', 'optin' ) ?>
3598
  }
3599
  }
3600
  });
3601
  // ]]></script>
3602
+ <?php
3603
  }
3604
 
3605
  /**
3715
  $this->_storage->is_plugin_new_install;
3716
  }
3717
 
3718
+ /**
3719
+ * Check if it's the first plugin release that is running Freemius.
3720
+ *
3721
+ * @author Vova Feldman (@svovaf)
3722
+ * @since 1.2.1.5
3723
+ *
3724
+ * @return bool
3725
+ */
3726
+ function is_first_freemius_powered_version() {
3727
+ return empty( $this->_storage->plugin_last_version );
3728
+ }
3729
+
3730
  /**
3731
  * Plugin activated hook.
3732
  *
3748
  FS_Api::clear_cache();
3749
 
3750
  if ( $this->is_registered() ) {
3751
+ $this->reconnect_locally();
3752
+
3753
  // Schedule re-activation event and sync.
3754
  // $this->sync_install( array(), true );
3755
  $this->schedule_install_sync();
3756
 
3757
+ $is_premium_version_activation = ( current_filter() !== ( 'activate_' . $this->_free_plugin_basename ) );
3758
+
3759
+ // 1. If running in the activation of the FREE module, get the basename of the PREMIUM.
3760
+ // 2. If running in the activation of the PREMIUM module, get the basename of the FREE.
3761
+ $other_version_basename = $is_premium_version_activation ?
3762
+ $this->_free_plugin_basename :
3763
+ $this->premium_plugin_basename();
3764
+
3765
  /**
3766
+ * If the other module version is activate, deactivate it.
3767
+ *
3768
+ * @author Leo Fajardo (@leorw)
3769
+ * @since 1.2.2
3770
  */
3771
+ if ( is_plugin_active( $other_version_basename ) ) {
3772
+ deactivate_plugins( $other_version_basename );
3773
+ }
3774
 
3775
+ // If activating the premium module version, add an admin noitce to congratulate for an upgrade completion.
3776
+ if ( $is_premium_version_activation ) {
3777
  $this->_admin_notices->add(
3778
  sprintf( __fs( 'successful-version-upgrade-message', $this->_slug ), sprintf( '<b>%s</b>', $this->_plugin->title ) ),
3779
  __fs( 'woot', $this->_slug ) . '!'
3984
 
3985
  $this->reset_anonymous_mode();
3986
 
3987
+ fs_redirect( $this->get_activation_url() );
 
 
3988
  }
3989
 
3990
  /**
4310
  'language' => get_bloginfo( 'language' ),
4311
  'charset' => get_bloginfo( 'charset' ),
4312
  'platform_version' => get_bloginfo( 'version' ),
4313
+ 'sdk_version' => $this->version,
4314
  'programming_language_version' => phpversion(),
4315
  'title' => get_bloginfo( 'name' ),
4316
  'url' => get_site_url(),
4317
  // Special params.
4318
  'is_active' => true,
4319
+ 'is_disconnected' => $this->is_tracking_prohibited(),
4320
  'is_uninstalled' => false,
4321
  ), $override );
4322
  }
4346
 
4347
  foreach ( $check_properties as $p => $v ) {
4348
  if ( property_exists( $this->_site, $p ) ) {
4349
+ if ( ( is_bool( $this->_site->{$p} ) || ! empty( $this->_site->{$p} ) ) &&
4350
  $this->_site->{$p} != $v
4351
  ) {
4352
  $this->_site->{$p} = $v;
4382
  // Send updated values to FS.
4383
  $site = $this->get_api_site_scope()->call( '/', 'put', $params );
4384
 
4385
+ if ( $this->is_api_result_entity( $site ) ) {
4386
  // I successfully sent install update, clear scheduled sync if exist.
4387
  $this->clear_install_sync_cron();
4388
  }
4401
  *
4402
  * @param string[] string $override
4403
  * @param bool $flush
 
 
4404
  */
4405
  private function sync_install( $override = array(), $flush = false ) {
4406
  $this->_logger->entrance();
4412
  return;
4413
  }
4414
 
4415
+ if ( ! $this->is_api_result_entity( $site ) ) {
4416
  // Failed to sync, don't update locally.
4417
  return;
4418
  }
4603
  }
4604
  }
4605
 
4606
+ #----------------------------------------------------------------------------------
4607
+ #region Plugin Information
4608
+ #----------------------------------------------------------------------------------
4609
 
4610
  /**
4611
  * Load WordPress core plugin.php essential module.
4615
  */
4616
  private static function require_plugin_essentials() {
4617
  if ( ! function_exists( 'get_plugins' ) ) {
4618
+ self::$_static_logger->log( 'Including wp-admin/includes/plugin.php...' );
4619
+
4620
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
4621
  }
4622
  }
4681
  return $this->_plugin->id;
4682
  }
4683
 
4684
+ /**
4685
+ * @author Vova Feldman (@svovaf)
4686
+ * @since 1.2.1.5
4687
+ *
4688
+ * @return string Freemius SDK version
4689
+ */
4690
+ function get_sdk_version() {
4691
+ return $this->version;
4692
+ }
4693
+
4694
+ /**
4695
+ * @author Vova Feldman (@svovaf)
4696
+ * @since 1.2.1.5
4697
+ *
4698
+ * @return number Parent plugin ID (if parent exist).
4699
+ */
4700
+ function get_parent_id() {
4701
+ return $this->is_addon() ?
4702
+ $this->get_parent_instance()->get_id() :
4703
+ $this->_plugin->id;
4704
+ }
4705
+
4706
  /**
4707
  * @author Vova Feldman (@svovaf)
4708
  * @since 1.0.1
4927
  * @author Vova Feldman (@svovaf)
4928
  * @since 1.0.6
4929
  *
4930
+ * @return array<number,FS_Plugin[]>|false
4931
  */
4932
  private static function get_all_addons() {
4933
  $addons = self::$_accounts->get_option( 'addons', array() );
4966
  return is_object( $this->_user );
4967
  }
4968
 
4969
+ /**
4970
+ * Returns TRUE if the user opted-in and didn't disconnect (opt-out).
4971
+ *
4972
+ * @author Leo Fajardo (@leorw)
4973
+ * @since 1.2.1.5
4974
+ *
4975
+ * @return bool
4976
+ */
4977
+ function is_tracking_allowed() {
4978
+ return ( is_object( $this->_site ) && true !== $this->_site->is_disconnected );
4979
+ }
4980
+
4981
  /**
4982
  * @author Vova Feldman (@svovaf)
4983
  * @since 1.0.4
5016
  *
5017
  * @since 1.1.7.3 If not yet loaded, fetch data from the API.
5018
  *
5019
+ * @param bool $flush
5020
+ *
5021
  * @return FS_Plugin[]|false
5022
  */
5023
+ function get_addons( $flush = false ) {
5024
  $this->_logger->entrance();
5025
 
5026
  if ( ! $this->_has_addons ) {
5027
  return false;
5028
  }
5029
 
5030
+ $addons = $this->_sync_addons( $flush );
5031
 
5032
  return ( ! is_array( $addons ) || empty( $addons ) ) ?
5033
  false :
5105
  *
5106
  * @param string $slug
5107
  *
5108
+ * @param bool $flush
5109
+ *
5110
  * @return FS_Plugin|false
5111
  */
5112
+ function get_addon_by_slug( $slug, $flush = false ) {
5113
  $this->_logger->entrance();
5114
 
5115
+ $addons = $this->get_addons( $flush );
5116
 
5117
  if ( is_array( $addons ) ) {
5118
  foreach ( $addons as $addon ) {
5125
  return false;
5126
  }
5127
 
5128
+ #----------------------------------------------------------------------------------
5129
+ #region Plans & Licensing
5130
+ #----------------------------------------------------------------------------------
5131
 
5132
  /**
5133
  * Check if running premium plugin code.
5169
  * @author Vova Feldman (@svovaf)
5170
  * @since 1.0.9
5171
  *
5172
+ * @return FS_Plugin_Plan|false
5173
  */
5174
  function get_plan() {
5175
+ return is_object( $this->_site->plan ) ?
5176
+ $this->_site->plan :
5177
+ false;
5178
  }
5179
 
5180
  /**
5322
  * @author Vova Feldman (@svovaf)
5323
  * @since 1.0.5
5324
  *
5325
+ * @return FS_Plugin_License|false
5326
  */
5327
  function _get_available_premium_license() {
5328
  $this->_logger->entrance();
5352
  */
5353
  function _sync_plans() {
5354
  $plans = $this->_fetch_plugin_plans();
5355
+
5356
+ if ( $this->is_array_instanceof( $plans, 'FS_Plugin_Plan' ) ) {
5357
  $this->_plans = $plans;
5358
  $this->_store_plans();
5359
  }
5369
  *
5370
  * @param number $id
5371
  *
5372
+ * @return FS_Plugin_Plan|false
5373
  */
5374
  function _get_plan_by_id( $id ) {
5375
  $this->_logger->entrance();
5423
  */
5424
  function _sync_licenses( $site_license_id = false ) {
5425
  $licenses = $this->_fetch_licenses( false, $site_license_id );
5426
+
5427
+ if ( $this->is_array_instanceof( $licenses, 'FS_Plugin_License' ) ) {
5428
  $this->_licenses = $licenses;
5429
  $this->_store_licenses();
5430
  }
5443
  *
5444
  * @param number $id
5445
  *
5446
+ * @return FS_Plugin_License|false
5447
  */
5448
  function _get_license_by_id( $id ) {
5449
  $this->_logger->entrance();
5668
  */
5669
  function has_trial_plan() {
5670
  if ( ! $this->is_registered() ) {
5671
+ /**
5672
+ * @author Vova Feldman(@svovaf)
5673
+ * @since 1.2.1.5
5674
+ *
5675
+ * Allow setting a trial from the SDK without calling the API.
5676
+ * But, if the user did opt-in, continue using the real data from the API.
5677
+ */
5678
+ if ( $this->_trial_days >= 0 ) {
5679
+ return true;
5680
+ }
5681
+
5682
  return false;
5683
  }
5684
 
5696
  * @return bool
5697
  */
5698
  function has_free_plan() {
5699
+ return ! $this->is_only_premium();
 
 
5700
  }
5701
 
5702
  /**
5716
  fs_require_template( 'forms/resend-key.php', $vars );
5717
  }
5718
 
5719
+ /**
5720
+ * Displays the opt-out dialog box when the user clicks on the "Opt Out" link on the "Plugins"
5721
+ * page.
5722
+ *
5723
+ * @author Leo Fajardo (@leorw)
5724
+ * @since 1.2.1.5
5725
+ */
5726
+ function _add_optout_dialog() {
5727
+ $vars = array(
5728
+ 'slug' => $this->_slug,
5729
+ );
5730
+
5731
+ fs_require_template( 'forms/optout.php', $vars );
5732
+ }
5733
+
5734
  /**
5735
  * Prepare page to include all required UI and logic for the license activation dialog.
5736
  *
5737
  * @author Vova Feldman (@svovaf)
5738
  * @since 1.2.0
5739
  */
5740
+ function _add_license_activation() {
5741
+ if ( ! current_user_can( 'activate_plugins' ) ) {
5742
+ // Only admins can activate a license.
5743
+ return;
5744
+ }
 
5745
 
5746
+ if ( ! $this->has_paid_plan() ) {
5747
+ // Module doesn't have any paid plans.
5748
+ return;
5749
+ }
5750
+
5751
+ if ( ! $this->is_premium() ) {
5752
+ // Only add license activation logic to the premium version.
5753
+ return;
5754
+ }
5755
+
5756
+ // Add license activation link and AJAX request handler.
5757
+ if ( $this->is_plugins_page() ) {
5758
+ /**
5759
+ * @since 1.2.0 Add license action link only on plugins page.
5760
+ */
5761
+ $this->_add_license_action_link();
5762
  }
5763
+
5764
+ // Add license activation AJAX callback.
5765
+ $this->add_ajax_action( 'activate_license', array( &$this, '_activate_license_ajax_action' ) );
5766
+
5767
+ // Add resend license AJAX callback.
5768
+ $this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
5769
  }
5770
 
5771
  /**
5779
  exit;
5780
  }
5781
 
5782
+ $slug = $_POST['slug'];
5783
+ $fs = ( ( $slug === $this->_slug ) ? $this : self::instance( $slug ) );
5784
+ $error = false;
5785
+ $next_page = false;
5786
 
5787
  if ( $this->is_registered() ) {
5788
  $api = $fs->get_api_site_scope();
5789
+ $install = $api->call( '/', 'put', array(
5790
+ 'license_key' => $this->apply_filters( 'license_key', $license_key )
5791
+ ) );
 
 
5792
 
5793
  if ( isset( $install->error ) ) {
5794
  $error = $install->error->message;
5795
+ } else {
5796
+ $fs = $this->is_addon() ?
5797
+ $this->get_parent_instance() :
5798
+ $this;
5799
+
5800
+ $next_page = $fs->_get_sync_license_url( $this->get_id(), true );
5801
+
5802
+ $this->reconnect_locally();
5803
  }
5804
  } else {
5805
+ $next_page = $this->opt_in( false, false, false, $license_key );
5806
 
5807
+ if ( isset( $next_page->error ) ) {
5808
+ $error = $next_page->error;
5809
  }
5810
  }
5811
 
5815
 
5816
  if ( false !== $error ) {
5817
  $result['error'] = $error;
5818
+ } else {
5819
+ $result['next_page'] = $next_page;
5820
  }
5821
 
5822
  echo json_encode( $result );
5825
  }
5826
 
5827
  /**
5828
+ * Billing update AJAX callback.
5829
+ *
5830
+ * @author Vova Feldman (@svovaf)
5831
+ * @since 1.2.1.5
5832
  */
5833
+ function _update_billing_ajax_action() {
5834
+ check_ajax_referer( $this->get_action_tag( 'update_billing' ), 'security' );
5835
+
5836
+ if ( ! current_user_can( 'activate_plugins' ) ) {
5837
+ // Only for admins.
5838
+ $this->shoot_ajax_failure();
5839
+ }
5840
+
5841
+ $billing = fs_request_get( 'billing' );
5842
+
5843
+ $api = $this->get_api_user_scope();
5844
+ $result = $api->call( '/billing.json', 'put', array_merge( $billing, array(
5845
+ 'plugin_id' => $this->get_parent_id(),
5846
+ ) ) );
5847
+
5848
+ if ( ! $this->is_api_result_entity( $result ) ) {
5849
+ $this->shoot_ajax_failure();
5850
+ }
5851
+
5852
+ // Purge cached billing.
5853
+ $this->get_api_user_scope()->purge_cache( 'billing.json' );
5854
+
5855
+ $this->shoot_ajax_success();
5856
+ }
5857
+
5858
+ /**
5859
+ * Trial start for anonymous users (AJAX callback).
5860
+ *
5861
+ * @author Vova Feldman (@svovaf)
5862
+ * @since 1.2.1.5
5863
+ */
5864
+ function _start_trial_ajax_action() {
5865
+ check_ajax_referer( $this->get_action_tag( 'start_trial' ), 'security' );
5866
+
5867
+ if ( ! current_user_can( 'activate_plugins' ) ) {
5868
+ // Only for admins.
5869
+ $this->shoot_ajax_failure();
5870
+ }
5871
+
5872
+ $trial_data = fs_request_get( 'trial' );
5873
+
5874
+ $next_page = $this->opt_in(
5875
+ false,
5876
+ false,
5877
+ false,
5878
+ false,
5879
+ false,
5880
+ $trial_data['plan_id']
5881
+ );
5882
+
5883
+ if ( is_object( $next_page ) && $this->is_api_error( $next_page ) ) {
5884
+ $this->shoot_ajax_failure(
5885
+ isset( $next_page->error ) ?
5886
+ $next_page->error->message :
5887
+ var_export( $next_page, true )
5888
+ );
5889
+ }
5890
+
5891
+ $this->shoot_ajax_success( array(
5892
+ 'next_page' => $next_page,
5893
+ ) );
5894
+ }
5895
+
5896
+ /**
5897
+ * @author Leo Fajardo (@leorw)
5898
+ * @since 1.2.0
5899
+ */
5900
+ function _resend_license_key_ajax_action() {
5901
+ if ( ! isset( $_POST['email'] ) ) {
5902
  exit;
5903
  }
5904
 
5942
  exit;
5943
  }
5944
 
5945
+ /**
5946
+ * Helper method to check if user in the plugins page.
5947
+ *
5948
+ * @author Vova Feldman (@svovaf)
5949
+ * @since 1.2.1.5
5950
+ *
5951
+ * @return bool
5952
+ */
5953
+ private function is_plugins_page() {
5954
+ global $pagenow;
5955
+
5956
+ return ( 'plugins.php' === $pagenow );
5957
+ }
5958
+
5959
+ #----------------------------------------------------------------------------------
5960
  #region URL Generators
5961
+ #----------------------------------------------------------------------------------
5962
 
5963
  /**
5964
  * Alias to pricing_url().
6339
  self::require_pluggable_essentials();
6340
 
6341
  return ( $add_action_nonce && is_string( $action ) ) ?
6342
+ fs_nonce_url( $this->_get_admin_page_url( 'account', $params ), $action ) :
6343
  $this->_get_admin_page_url( 'account', $params );
6344
  }
6345
 
6534
  $this->_set_account( $user, $site, $plans );
6535
 
6536
  // Reload the page with the keys.
6537
+ fs_redirect( $this->_get_admin_page_url() );
 
 
6538
  }
6539
  }
6540
 
6562
  return false;
6563
  }
6564
 
6565
+ #----------------------------------------------------------------------------------
6566
+ #region Account (Loading, Updates & Activation)
6567
+ #----------------------------------------------------------------------------------
6568
 
6569
  /***
6570
  * Load account information (user + site).
6606
  // Load plans.
6607
  $this->_plans = $plans[ $this->_slug ];
6608
  if ( ! is_array( $this->_plans ) || empty( $this->_plans ) ) {
6609
+ $this->_sync_plans();
6610
  } else {
6611
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
6612
  if ( $this->_plans[ $i ] instanceof FS_Plugin_Plan ) {
6675
 
6676
  $current_user = self::_get_current_wp_user();
6677
 
6678
+ $activation_action = $this->_slug . '_activate_new';
6679
+ $return_url = $this->is_anonymous() ?
6680
+ // If skipped already, then return to the account page.
6681
+ $this->get_account_url( $activation_action, array(), false ) :
6682
+ // Return to the module's main page.
6683
+ $this->_get_admin_page_url(
 
 
 
 
 
6684
  '',
6685
+ array( 'fs_action' => $activation_action )
6686
+ );
6687
+
6688
+ $params = array(
6689
+ 'user_firstname' => $current_user->user_firstname,
6690
+ 'user_lastname' => $current_user->user_lastname,
6691
+ 'user_nickname' => $current_user->user_nicename,
6692
+ 'user_email' => $current_user->user_email,
6693
+ 'user_ip' => WP_FS__REMOTE_ADDR,
6694
+ 'plugin_slug' => $this->_slug,
6695
+ 'plugin_id' => $this->get_id(),
6696
+ 'plugin_public_key' => $this->get_public_key(),
6697
+ 'plugin_version' => $this->get_plugin_version(),
6698
+ 'return_url' => fs_nonce_url( $return_url, $activation_action ),
6699
+ 'account_url' => fs_nonce_url( $this->_get_admin_page_url(
6700
  'account',
6701
  array( 'fs_action' => 'sync_user' )
6702
  ), 'sync_user' ),
6703
+ 'site_uid' => $this->get_anonymous_id(),
6704
+ 'site_url' => get_site_url(),
6705
+ 'site_name' => get_bloginfo( 'name' ),
6706
+ 'platform_version' => get_bloginfo( 'version' ),
6707
+ 'sdk_version' => $this->version,
6708
+ 'programming_language_version' => phpversion(),
6709
+ 'language' => get_bloginfo( 'language' ),
6710
+ 'charset' => get_bloginfo( 'charset' ),
6711
+ 'is_premium' => $this->is_premium(),
6712
+ 'is_active' => true,
6713
+ 'is_uninstalled' => false,
6714
  );
6715
 
6716
+ if ( $this->is_pending_activation() &&
6717
+ ! empty( $this->_storage->pending_license_key )
6718
+ ) {
6719
+ $params['license_key'] = $this->_storage->pending_license_key;
6720
+ }
6721
+
6722
  if ( WP_FS__SKIP_EMAIL_ACTIVATION && $this->has_secret_key() ) {
6723
  // Even though rand() is known for its security issues,
6724
  // the timestamp adds another layer of protection.
6738
  }
6739
 
6740
  /**
6741
+ * 1. If successful opt-in or pending activation returns the next page that the user should be redirected to.
6742
+ * 2. If there was an API error, return the API result.
6743
+ *
6744
  * @author Vova Feldman (@svovaf)
6745
  * @since 1.1.7.4
6746
  *
6751
  * @param bool $is_uninstall If "true", this means that the module is currently being uninstalled.
6752
  * In this case, the user and site info will be sent to the server but no
6753
  * data will be saved to the WP installation's database.
6754
+ * @param number|bool $trial_plan_id
6755
  *
6756
+ * @return string|object
 
6757
  * @use WP_Error
6758
  */
6759
  function opt_in(
6761
  $first = false,
6762
  $last = false,
6763
  $license_key = false,
6764
+ $is_uninstall = false,
6765
+ $trial_plan_id = false
6766
  ) {
6767
  $this->_logger->entrance();
6768
 
6775
  * @since 1.2.1 If activating with license key, ignore the context-user
6776
  * since the user will be automatically loaded from the license.
6777
  */
6778
+ if ( empty( $license_key ) ) {
6779
+ // Clean up pending license if opt-ing in again.
6780
+ $this->_storage->remove( 'pending_license_key' );
6781
+
6782
  if ( ! $is_uninstall ) {
6783
  $fs_user = Freemius::_get_user_by_email( $email );
6784
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
6785
+ return $this->install_with_current_user( false, $trial_plan_id );
6786
  }
6787
  }
6788
  }
6800
 
6801
  $params = $this->get_opt_in_params( $user_info );
6802
 
6803
+ $filtered_license_key = false;
6804
  if ( is_string( $license_key ) ) {
6805
+ $filtered_license_key = $this->apply_filters( 'license_key', $license_key );
6806
+ $params['license_key'] = $filtered_license_key;
6807
+ } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
6808
+ $params['trial_plan_id'] = $trial_plan_id;
6809
  }
6810
 
6811
  if ( $is_uninstall ) {
6831
  if ( $response instanceof WP_Error ) {
6832
  if ( 'https://' === substr( $url, 0, 8 ) &&
6833
  isset( $response->errors ) &&
6834
+ isset( $response->errors['http_request_failed'] )
 
6835
  ) {
6836
+ $http_error = strtolower( $response->errors['http_request_failed'][0] );
 
6837
 
6838
+ if ( false !== strpos( $http_error, 'ssl' ) ) {
6839
+ // Failed due to old version of cURL or Open SSL (SSLv3 is not supported by CloudFlare).
6840
+ $url = 'http://' . substr( $url, 8 );
 
 
 
6841
 
6842
+ $response = wp_remote_post( $url, array(
6843
+ 'method' => 'POST',
6844
+ 'body' => $params,
6845
+ 'timeout' => 15,
6846
+ ) );
6847
+ }
6848
  }
6849
  }
6850
 
6851
  if ( is_wp_error( $response ) ) {
6852
+ /**
6853
+ * @var WP_Error $response
6854
+ */
6855
+ $result = new stdClass();
6856
+
6857
+ $error_code = $response->get_error_code();
6858
+ $error_type = str_replace( ' ', '', ucwords( str_replace( '_', ' ', $error_code ) ) );
6859
+
6860
+ $result->error = (object) array(
6861
+ 'type' => $error_type,
6862
+ 'message' => $response->get_error_message(),
6863
+ 'code' => $error_code,
6864
+ 'http' => 402
6865
+ );
6866
+
6867
+ return $result;
6868
  }
6869
 
6870
  // Module is being uninstalled, don't handle the returned data.
6878
  return false;
6879
  }
6880
 
6881
+ if ( ! $this->is_api_result_object( $decoded ) ) {
6882
+ if ( ! empty( $params['license_key'] ) ) {
6883
+ // Pass the fully entered license key to the failure handler.
6884
+ $params['license_key'] = $license_key;
6885
+ }
6886
+
6887
+ return $is_uninstall ?
6888
+ $decoded :
6889
+ $this->apply_filters( 'after_install_failure', $decoded, $params );
6890
  } else if ( isset( $decoded->pending_activation ) && $decoded->pending_activation ) {
6891
  // Pending activation, add message.
6892
+ return $this->set_pending_confirmation(
6893
+ true,
6894
+ false,
6895
+ $filtered_license_key,
6896
+ ! empty( $params['trial_plan_id'] )
6897
+ );
6898
  } else if ( isset( $decoded->install_secret_key ) ) {
6899
+ return $this->install_with_new_user(
6900
  $decoded->user_id,
6901
  $decoded->user_public_key,
6902
  $decoded->user_secret_key,
6905
  $decoded->install_secret_key,
6906
  false
6907
  );
 
 
6908
  }
6909
 
6910
  return $decoded;
6920
  * @param FS_Site $site
6921
  * @param bool $redirect
6922
  *
6923
+ * @return string If redirect is `false`, returns the next page the user should be redirected to.
6924
  */
6925
  function setup_account( FS_User $user, FS_Site $site, $redirect = true ) {
6926
  $this->_user = $user;
6955
  // Remove plugin from pending activation mode.
6956
  unset( $this->_storage->is_pending_activation );
6957
 
6958
+ if ( ! $this->is_paying_or_trial() ) {
6959
  $this->_admin_notices->add_sticky(
6960
  sprintf( __fs( 'plugin-x-activation-message', $this->_slug ), '<b>' . $this->get_plugin_name() . '</b>' ),
6961
  'activation_complete'
6963
  }
6964
  }
6965
 
6966
+ if ( $this->is_paying_or_trial() && ! $this->is_premium() ) {
6967
+ if ( $this->is_paying() ) {
6968
+ $this->_admin_notices->add_sticky(
6969
+ sprintf(
6970
+ __fs( 'activation-with-plan-x-message', $this->_slug ),
6971
+ $this->_site->plan->title
6972
+ ) . $this->get_complete_upgrade_instructions(),
6973
+ 'plan_upgraded',
6974
+ __fs( 'yee-haw', $this->_slug ) . '!'
6975
+ );
6976
+ } else {
6977
+ $this->_admin_notices->add_sticky(
6978
+ sprintf(
6979
+ __fs( 'trial-started-message', $this->_slug ),
6980
+ '<i>' . $this->get_plugin_name() . '</i>'
6981
+ ) . $this->get_complete_upgrade_instructions( $this->_storage->trial_plan->title ),
6982
+ 'trial_started',
6983
+ __fs( 'yee-haw', $this->_slug ) . '!'
6984
+ );
6985
+ }
6986
+
6987
+ $this->_admin_notices->remove_sticky( array(
6988
+ 'trial_promotion',
6989
+ ) );
6990
  }
6991
 
6992
  $plugin_id = fs_request_get( 'plugin_id', false );
6996
  $this->_storage->activation_timestamp = WP_FS__SCRIPT_START_TIME;
6997
  }
6998
 
6999
+ $next_page = '';
7000
+
7001
  if ( is_numeric( $plugin_id ) ) {
7002
  if ( $plugin_id != $this->_plugin->id ) {
7003
  // Add-on was installed - sync license right after install.
7004
+ $next_page = $this->_get_sync_license_url( $plugin_id );
 
 
 
 
7005
  }
7006
  } else {
7007
  /**
7013
  }
7014
 
7015
  // Reload the page with the keys.
7016
+ $next_page = $this->is_anonymous() ?
7017
+ // If user previously skipped, redirect to account page.
7018
+ $this->get_account_url() :
7019
+ $this->get_after_activation_url( 'after_connect_url' );
7020
+ }
7021
+
7022
+ if ( ! empty( $next_page ) && $redirect ) {
7023
+ fs_redirect( $next_page );
7024
  }
7025
+
7026
+ return $next_page;
7027
  }
7028
 
7029
  /**
7070
  * @param string $install_public_key
7071
  * @param string $install_secret_key
7072
  * @param bool $redirect
7073
+ *
7074
+ * @return string If redirect is `false`, returns the next page the user should be redirected to.
7075
  */
7076
  private function install_with_new_user(
7077
  $user_id,
7102
  $site = new FS_Site( $site_result );
7103
  $this->_site = $site;
7104
 
7105
+ return $this->setup_account( $this->_user, $this->_site, $redirect );
7106
  }
7107
 
7108
  /**
7109
  * @author Vova Feldman (@svovaf)
7110
  * @since 1.1.7.4
7111
  *
7112
+ * @param string|bool $email
7113
+ * @param bool $redirect
7114
+ * @param string|bool $license_key Since 1.2.1.5
7115
+ * @param bool $is_pending_trial Since 1.2.1.5
7116
+ *
7117
+ * @return string Since 1.2.1.5 if $redirect is `false`, return the pending activation page.
7118
  */
7119
+ private function set_pending_confirmation(
7120
+ $email = false,
7121
+ $redirect = true,
7122
+ $license_key = false,
7123
+ $is_pending_trial = false
7124
+ ) {
7125
  // Install must be activated via email since
7126
  // user with the same email already exist.
7127
  $this->_storage->is_pending_activation = true;
7128
+ $this->_add_pending_activation_notice( $email, $is_pending_trial );
7129
+
7130
+ if ( ! empty( $license_key ) ) {
7131
+ $this->_storage->pending_license_key = $license_key;
7132
+ }
7133
+
7134
+ // Remove the opt-in sticky notice.
7135
+ $this->_admin_notices->remove_sticky( array(
7136
+ 'connect_account',
7137
+ 'trial_promotion',
7138
+ ) );
7139
+
7140
+ $next_page = $this->get_after_activation_url( 'after_pending_connect_url' );
7141
 
7142
  // Reload the page with with pending activation message.
7143
+ if ( $redirect ) {
7144
+ fs_redirect( $next_page );
7145
  }
7146
+
7147
+ return $next_page;
7148
  }
7149
 
7150
  /**
7163
  if ( fs_request_is_action( $this->_slug . '_activate_existing' ) && fs_request_is_post() ) {
7164
  // check_admin_referer( 'activate_existing_' . $this->_plugin->public_key );
7165
 
7166
+ /**
7167
+ * @author Vova Feldman (@svovaf)
7168
+ * @since 1.1.9 Add license key if given.
7169
+ */
7170
+ $license_key = fs_request_get( 'license_secret_key' );
7171
+
7172
+ $this->install_with_current_user( $license_key );
7173
  }
7174
  }
7175
 
7178
  * @author Vova Feldman (@svovaf)
7179
  * @since 1.1.7.4
7180
  *
7181
+ * @param string|bool $license_key
7182
+ * @param number|bool $trial_plan_id
7183
+ * @param bool $redirect
7184
  *
7185
+ * @return string|object If redirect is `false`, returns the next page the user should be redirected to, or the
7186
+ * API error object if failed to install.
7187
  */
7188
+ private function install_with_current_user(
7189
+ $license_key = false,
7190
+ $trial_plan_id = false,
7191
+ $redirect = true
7192
+ ) {
7193
  // Get current logged WP user.
7194
  $current_user = self::_get_current_wp_user();
7195
 
7203
  'uid' => $this->get_anonymous_id(),
7204
  );
7205
 
 
 
 
 
 
 
7206
  if ( ! empty( $license_key ) ) {
7207
+ $filtered_license_key = $this->apply_filters( 'license_key', $license_key );
7208
+ $extra_install_params['license_key'] = $filtered_license_key;
7209
+ } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
7210
+ $extra_install_params['trial_plan_id'] = $trial_plan_id;
7211
  }
7212
 
7213
+ $args = $this->get_install_data_for_api( $extra_install_params, false, false );
7214
+
7215
  // Install the plugin.
7216
  $install = $this->get_api_user_scope()->call(
7217
  "/plugins/{$this->get_id()}/installs.json",
7218
  'post',
7219
+ $args
7220
  );
7221
 
7222
+ if ( ! $this->is_api_result_entity( $install ) ) {
7223
+ if ( ! empty( $args['license_key'] ) ) {
7224
+ // Pass full the fully entered license key to the failure handler.
7225
+ $args['license_key'] = $license_key;
7226
+ }
7227
+
7228
+ $install = $this->apply_filters( 'after_install_failure', $install, $args );
7229
+
7230
  $this->_admin_notices->add(
7231
  sprintf( __fs( 'could-not-activate-x', $this->_slug ), $this->get_plugin_name() ) . ' ' .
7232
  __fs( 'contact-us-with-error-message', $this->_slug ) . ' ' . '<b>' . $install->error->message . '</b>',
7234
  'error'
7235
  );
7236
 
7237
+ if ( $redirect ) {
7238
+ fs_redirect( $this->get_activation_url( array( 'error' => $install->error->message ) ) );
 
7239
  }
7240
 
7241
  return $install;
7243
 
7244
  $site = new FS_Site( $install );
7245
  $this->_site = $site;
 
 
 
 
 
 
7246
 
7247
+ return $this->setup_account( $this->_user, $this->_site, $redirect );
7248
  }
7249
 
7250
  /**
7303
  $this->_activate_license( true );
7304
  }
7305
 
7306
+ #endregion
7307
 
7308
+ #----------------------------------------------------------------------------------
7309
+ #region Admin Menu Items
7310
+ #----------------------------------------------------------------------------------
7311
 
7312
  private $_menu_items = array();
7313
 
7365
  /**
7366
  * @author Vova Feldman (@svovaf)
7367
  * @since 1.0.1
 
 
7368
  */
7369
  function _redirect_on_clicked_menu_link() {
7370
  $this->_logger->entrance();
7376
  foreach ( $this->_menu_items as $priority => $items ) {
7377
  foreach ( $items as $item ) {
7378
  if ( isset( $item['url'] ) ) {
7379
+ if ( $page === $this->_menu->get_slug( strtolower( $item['menu_slug'] ) ) ) {
7380
  $this->_logger->log( 'Redirecting to ' . $item['url'] );
7381
 
7382
  fs_redirect( $item['url'] );
7557
  // to support add-ons checkout but don't add the submenu item.
7558
  // || (isset( $_GET['page'] ) && $this->_menu->get_slug( 'pricing' ) == $_GET['page']);
7559
 
7560
+ $pricing_cta_slug = 'upgrade';
7561
+ $pricing_class = 'upgrade-mode';
7562
+ if ( $show_pricing ) {
7563
+ if ( $this->_admin_notices->has_sticky( 'trial_promotion' ) &&
7564
+ ! $this->is_paying_or_trial()
7565
+ ) {
7566
+ // If running a trial promotion, modify the pricing to load the trial.
7567
+ $pricing_cta_slug = 'start-trial';
7568
+ $pricing_class = 'trial-mode';
7569
+ } else if ( $this->is_paying() ) {
7570
+ $pricing_cta_slug = 'pricing';
7571
+ $pricing_class = '';
7572
+ }
7573
+ }
7574
+
7575
  // Add upgrade/pricing page.
7576
  $this->add_submenu_item(
7577
+ __fs( $pricing_cta_slug, $this->_slug ) . '&nbsp;&nbsp;&#x27a4;',
7578
  array( &$this, '_pricing_page_render' ),
7579
  $this->get_plugin_name() . ' &ndash; ' . __fs( 'pricing', $this->_slug ),
7580
  'manage_options',
7581
  'pricing',
7582
  'Freemius::_clean_admin_content_section',
7583
  WP_FS__LOWEST_PRIORITY,
7584
+ $show_pricing,
7585
+ $pricing_class
7586
  );
7587
  }
7588
  }
7611
  */
7612
  private function embed_submenu_items() {
7613
  $item_template = $this->_menu->is_top_level() ?
7614
+ '<span class="fs-submenu-item %s %s %s">%s</span>' :
7615
+ '<span class="fs-submenu-item fs-sub %s %s %s">%s</span>';
7616
 
7617
  $top_level_menu_capability = $this->get_top_level_menu_capability();
7618
 
7622
  foreach ( $items as $item ) {
7623
  $capability = ( ! empty( $item['capability'] ) ? $item['capability'] : $top_level_menu_capability );
7624
 
7625
+ $menu_item = sprintf(
7626
+ $item_template,
7627
+ $this->_slug,
7628
+ $item['menu_slug'],
7629
+ ! empty( $item['class'] ) ? $item['class'] : '',
7630
+ $item['menu_title']
7631
+ );
7632
+
7633
+ $menu_slug = $this->_menu->get_slug( $item['menu_slug'] );
7634
+
7635
  if ( ! isset( $item['url'] ) ) {
7636
  $hook = add_submenu_page(
7637
  $item['show_submenu'] ?
7638
  $this->get_top_level_menu_slug() :
7639
  null,
7640
  $item['page_title'],
7641
+ $menu_item,
7642
  $capability,
7643
+ $menu_slug,
7644
  $item['render_function']
7645
  );
7646
 
7651
  add_submenu_page(
7652
  $this->get_top_level_menu_slug(),
7653
  $item['page_title'],
7654
+ $menu_item,
7655
  $capability,
7656
+ $menu_slug,
7657
  array( $this, '' )
7658
  );
7659
  }
7765
  * @param bool|callable $before_render_function
7766
  * @param int $priority
7767
  * @param bool $show_submenu
7768
+ * @param string $class Since 1.2.1.5 can add custom classes to menu items.
7769
  */
7770
  function add_submenu_item(
7771
  $menu_title,
7775
  $menu_slug = false,
7776
  $before_render_function = false,
7777
  $priority = WP_FS__DEFAULT_PRIORITY,
7778
+ $show_submenu = true,
7779
+ $class = ''
7780
  ) {
7781
  $this->_logger->entrance( 'Title = ' . $menu_title );
7782
 
7792
  $menu_slug,
7793
  $before_render_function,
7794
  $priority,
7795
+ $show_submenu,
7796
+ $class
7797
  );
7798
 
7799
  return;
7808
  'page_title' => is_string( $page_title ) ? $page_title : $menu_title,
7809
  'menu_title' => $menu_title,
7810
  'capability' => $capability,
7811
+ 'menu_slug' => is_string( $menu_slug ) ? $menu_slug : strtolower( $menu_title ),
7812
  'render_function' => $render_function,
7813
  'before_render_function' => $before_render_function,
7814
  'show_submenu' => $show_submenu,
7815
+ 'class' => $class,
7816
  );
7817
  }
7818
 
7859
  $this->_menu_items[ $priority ][] = array(
7860
  'menu_title' => $menu_title,
7861
  'capability' => $capability,
7862
+ 'menu_slug' => is_string( $menu_slug ) ? $menu_slug : strtolower( $menu_title ),
7863
  'url' => $url,
7864
  'page_title' => $menu_title,
7865
  'render_function' => 'fs_dummy',
7949
  * @param int $accepted_args
7950
  *
7951
  * @uses add_action()
7952
+ *
7953
+ * @return bool True if action added, false if no need to add the action since the AJAX call isn't matching.
7954
  */
7955
  function add_ajax_action( $tag, $function_to_add, $priority = WP_FS__DEFAULT_PRIORITY, $accepted_args = 1 ) {
7956
  $this->_logger->entrance( $tag );
7957
 
7958
+ if ( ! $this->is_ajax_action( $tag ) ) {
7959
+ return false;
7960
+ }
7961
+
7962
  add_action( $this->get_ajax_action_tag( $tag ), $function_to_add, $priority, $accepted_args );
7963
+
7964
+ $this->_logger->info( "$tag AJAX callback action added." );
7965
+
7966
+ return true;
7967
+ }
7968
+
7969
+ /**
7970
+ * Send a JSON response back to an Ajax request.
7971
+ *
7972
+ * @author Vova Feldman (@svovaf)
7973
+ * @since 1.2.1.5
7974
+ *
7975
+ * @param mixed $response
7976
+ */
7977
+ function shoot_ajax_response( $response ) {
7978
+ wp_send_json( $response );
7979
+ }
7980
+
7981
+ /**
7982
+ * Send a JSON response back to an Ajax request, indicating success.
7983
+ *
7984
+ * @author Vova Feldman (@svovaf)
7985
+ * @since 1.2.1.5
7986
+ *
7987
+ * @param mixed $data Data to encode as JSON, then print and exit.
7988
+ */
7989
+ function shoot_ajax_success( $data = null ) {
7990
+ wp_send_json_success( $data );
7991
+ }
7992
+
7993
+ /**
7994
+ * Send a JSON response back to an Ajax request, indicating failure.
7995
+ *
7996
+ * @author Vova Feldman (@svovaf)
7997
+ * @since 1.2.1.5
7998
+ *
7999
+ * @param mixed $error Optional error message.
8000
+ */
8001
+ function shoot_ajax_failure( $error = '' ) {
8002
+ $result = array( 'success' => false );
8003
+ if ( ! empty( $error ) ) {
8004
+ $result['error'] = $error;
8005
+ }
8006
+
8007
+ wp_send_json( $result );
8008
  }
8009
 
8010
  /**
8094
  private function _store_site( $store = true ) {
8095
  $this->_logger->entrance();
8096
 
8097
+ if ( empty( $this->_site->id ) ) {
8098
+ $this->_logger->error( "Empty install ID, can't store site." );
8099
+
8100
+ return;
8101
+ }
8102
+
8103
  $encrypted_site = clone $this->_site;
8104
  $encrypted_site->plan = $this->_encrypt_entity( $this->_site->plan );
8105
 
8171
  private function _store_user( $store = true ) {
8172
  $this->_logger->entrance();
8173
 
8174
+ if ( empty( $this->_user->id ) ) {
8175
+ $this->_logger->error( "Empty user ID, can't store user." );
8176
+
8177
+ return;
8178
+ }
8179
+
8180
  $users = self::get_all_users();
8181
  $users[ $this->_user->id ] = $this->_user;
8182
  self::$_accounts->set_option( 'users', $users, $store );
8340
  * @link https://github.com/Freemius/wordpress-sdk/issues/6
8341
  */
8342
  if ( ! $is_menu_item_account_visible ) {
8343
+ fs_redirect( $this->_get_admin_page_url() );
 
 
8344
  }
8345
  }
8346
  }
8451
 
8452
  $result = $api->get( '/plans.json', true );
8453
 
8454
+ if ( $this->is_api_result_object( $result, 'plans' ) && is_array( $result->plans ) ) {
8455
  for ( $i = 0, $len = count( $result->plans ); $i < $len; $i ++ ) {
8456
  $result->plans[ $i ] = new FS_Plugin_Plan( $result->plans[ $i ] );
8457
  }
8485
 
8486
  $is_site_license_synced = false;
8487
 
8488
+ $api_errors = array();
8489
+
8490
+ if ( $this->is_api_result_object( $result, 'licenses' ) &&
8491
+ is_array( $result->licenses )
8492
+ ) {
8493
  for ( $i = 0, $len = count( $result->licenses ); $i < $len; $i ++ ) {
8494
  $result->licenses[ $i ] = new FS_Plugin_License( $result->licenses[ $i ] );
8495
 
8499
  }
8500
 
8501
  $result = $result->licenses;
8502
+ } else {
8503
+ $api_errors[] = $result;
8504
+ $result = array();
8505
  }
8506
 
8507
  if ( ! $is_site_license_synced ) {
8511
  // Try to retrieve a foreign license that is linked to the install.
8512
  $api_result = $api->call( '/licenses.json' );
8513
 
8514
+ if ( $this->is_api_result_object( $api_result, 'licenses' ) &&
8515
+ is_array( $api_result->licenses )
8516
+ ) {
8517
  $licenses = $api_result->licenses;
8518
 
8519
  if ( ! empty( $licenses ) ) {
8520
  $result[] = new FS_Plugin_License( $licenses[0] );
8521
  }
8522
+ } else {
8523
+ $api_errors[] = $api_result;
8524
  }
8525
  } else if ( is_object( $this->_license ) ) {
8526
  // Fetch foreign license by ID and license key.
8527
  $license = $api->get( "/licenses/{$this->_license->id}.json?license_key=" .
8528
  urlencode( $this->_license->secret_key ) );
8529
 
8530
+ if ( $this->is_api_result_entity( $license ) ) {
8531
  $result[] = new FS_Plugin_License( $license );
8532
+ } else {
8533
+ $api_errors[] = $license;
8534
  }
8535
  }
8536
  }
8537
 
8538
+ if ( is_array( $result ) && 0 < count( $result ) ) {
8539
+ // If found at least one license, return license collection even if there are errors.
8540
+ return $result;
8541
+ }
8542
+
8543
+ if ( ! empty( $api_errors ) ) {
8544
+ // If found any errors and no licenses, return first error.
8545
+ return $api_errors[0];
8546
+ }
8547
+
8548
+ // Fallback to empty licenses list.
8549
  return $result;
8550
  }
8551
 
8579
  return $result;
8580
  }
8581
 
8582
+ /**
8583
+ * @author Vova Feldman (@svovaf)
8584
+ * @since 1.2.1.5
8585
+ * @uses FS_Api
8586
+ *
8587
+ * @return \FS_Billing|mixed
8588
+ */
8589
+ function _fetch_billing() {
8590
+ require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-billing.php';
8591
+
8592
+ $billing = $this->get_api_user_scope()->call( 'billing.json' );
8593
+
8594
+ if ( $this->is_api_result_entity( $billing ) ) {
8595
+ $billing = new FS_Billing( $billing );
8596
+ }
8597
+
8598
+ return $billing;
8599
+ }
8600
+
8601
  /**
8602
  * @author Vova Feldman (@svovaf)
8603
  * @since 1.0.4
8812
  $licenses = $this->_fetch_licenses( $addon->id );
8813
 
8814
  // Sync add-on licenses.
8815
+ if ( $this->is_array_instanceof( $licenses, 'FS_Plugin_License' ) ) {
8816
  $this->_update_licenses( $licenses, $addon->slug );
8817
 
8818
  if ( ! $this->is_addon_installed( $addon->slug ) && FS_License_Manager::has_premium_license( $licenses ) ) {
8871
 
8872
  $plan_change = 'none';
8873
 
8874
+ if ( ! $this->is_api_result_entity( $site ) ) {
8875
  // Show API messages only if not background sync or if paying customer.
8876
  if ( ! $background || $this->is_paying() ) {
8877
  // Try to ping API to see if not blocked.
9188
  $api = $this->get_api_site_scope();
9189
  $license = $api->call( "/licenses/{$premium_license->id}.json", 'put', $api_request_params );
9190
 
9191
+ if ( ! $this->is_api_result_entity( $license ) ) {
9192
  if ( ! $background ) {
9193
  $this->_admin_notices->add( sprintf(
9194
+ '%s %s',
9195
+ __fs( 'license-activation-failed-message', $this->_slug ),
9196
+ ( is_object( $license ) && isset( $license->error ) ?
9197
+ $license->error->message :
9198
+ sprintf( '%s<br><code>%s</code>',
9199
+ __fs( 'server-error-message', $this->_slug ),
9200
+ var_export( $license, true )
 
9201
  )
9202
+ )
9203
+ ),
9204
  __fs( 'hmm', $this->_slug ) . '...',
9205
  'error'
9206
  );
9213
 
9214
  // Updated site plan.
9215
  $site = $this->get_api_site_scope()->get( '/', true );
9216
+ if ( $this->is_api_result_entity( $site ) ) {
9217
  $this->_site = new FS_Site( $site );
9218
  }
9219
  $this->_update_site_license( $premium_license );
9313
 
9314
  $plan_downgraded = false;
9315
  $plan = false;
9316
+ if ( $this->is_api_result_entity( $site ) ) {
9317
  $prev_plan_id = $this->_site->plan->id;
9318
 
9319
  // Update new site plan id.
9429
  $api = $this->get_api_site_scope();
9430
  $plan = $api->call( "plans/{$plan->id}/trials.json", 'post' );
9431
 
9432
+ if ( ! $this->is_api_result_entity( $plan ) ) {
9433
  // Some API error while trying to start the trial.
9434
  $this->_admin_notices->add(
9435
  __fs( 'unexpected-api-error', $this->_slug ) . ' ' . var_export( $plan, true ),
9472
 
9473
  $trial_cancelled = false;
9474
 
9475
+ if ( $this->is_api_result_entity( $site ) ) {
9476
  $prev_trial_ends = $this->_site->trial_ends;
9477
 
9478
  if ( $this->is_paid_trial() ) {
9506
  // Store site updates.
9507
  $this->_store_site();
9508
 
 
 
 
9509
  if ( ! $this->is_addon() ||
9510
  ! $this->deactivate_premium_only_addon_without_license( true )
9511
  ) {
9513
  sprintf( __fs( 'trial-cancel-message', $this->_slug ), $this->_storage->trial_plan->title )
9514
  );
9515
  }
9516
+
9517
+ // Clear trial plan information.
9518
+ unset( $this->_storage->trial_plan );
9519
  } else {
9520
  $this->_admin_notices->add(
9521
  __fs( 'trial-cancel-failure-message', $this->_slug ),
9612
  return ( is_object( $tag ) && isset( $tag->version ) ) ? $tag : false;
9613
  }
9614
 
9615
+ #----------------------------------------------------------------------------------
9616
+ #region Download Plugin
9617
+ #----------------------------------------------------------------------------------
9618
 
9619
  /**
9620
  * Download latest plugin version, based on plan.
9790
  $result = $api->get( '/addons.json?enriched=true', $flush );
9791
 
9792
  $addons = array();
9793
+ if ( $this->is_api_result_object( $result, 'plugins' ) &&
9794
+ is_array( $result->plugins )
9795
+ ) {
9796
  for ( $i = 0, $len = count( $result->plugins ); $i < $len; $i ++ ) {
9797
  $addons[ $i ] = new FS_Plugin( $result->plugins[ $i ] );
9798
  }
9839
  return $user;
9840
  }
9841
 
9842
+ #----------------------------------------------------------------------------------
9843
+ #region API Error Handling
9844
+ #----------------------------------------------------------------------------------
9845
+
9846
  /**
9847
  * @author Vova Feldman (@svovaf)
9848
  * @since 1.1.1
9852
  * @return bool Is API result contains an error.
9853
  */
9854
  private function is_api_error( $result ) {
9855
+ return FS_Api::is_api_error( $result );
9856
+ }
9857
+
9858
+ /**
9859
+ * Checks if given API result is a non-empty and not an error object.
9860
+ *
9861
+ * @author Vova Feldman (@svovaf)
9862
+ * @since 1.2.1.5
9863
+ *
9864
+ * @param mixed $result
9865
+ * @param string|null $required_property Optional property we want to verify that is set.
9866
+ *
9867
+ * @return bool
9868
+ */
9869
+ function is_api_result_object( $result, $required_property = null ) {
9870
+ return FS_Api::is_api_result_object( $result, $required_property );
9871
+ }
9872
+
9873
+ /**
9874
+ * Checks if given API result is a non-empty entity object with non-empty ID.
9875
+ *
9876
+ * @author Vova Feldman (@svovaf)
9877
+ * @since 1.2.1.5
9878
+ *
9879
+ * @param mixed $result
9880
+ *
9881
+ * @return bool
9882
+ */
9883
+ private function is_api_result_entity( $result ) {
9884
+ return FS_Api::is_api_result_entity( $result );
9885
+ }
9886
+
9887
+ #endregion
9888
+
9889
+ /**
9890
+ * Make sure a given argument is an array of a specific type.
9891
+ *
9892
+ * @author Vova Feldman (@svovaf)
9893
+ * @since 1.2.1.5
9894
+ *
9895
+ * @param mixed $array
9896
+ * @param string $class
9897
+ *
9898
+ * @return bool
9899
+ */
9900
+ private function is_array_instanceof( $array, $class ) {
9901
+ return ( is_array( $array ) && ( empty( $array ) || $array[0] instanceof $class ) );
9902
  }
9903
 
9904
  /**
10040
  return $this->apply_filters( 'connect_url', $this->_get_admin_page_url( '', $params ) );
10041
  }
10042
 
10043
+ /**
10044
+ * @author Vova Feldman (@svovaf)
10045
+ * @since 1.2.1.5
10046
+ *
10047
+ * @param array $params
10048
+ *
10049
+ * @return string
10050
+ */
10051
+ function get_reconnect_url( $params = array() ) {
10052
+ $params['fs_action'] = 'reset_anonymous_mode';
10053
+ $params['fs_slug'] = $this->_slug;
10054
+
10055
+ return $this->apply_filters( 'connect_url', $this->_get_admin_page_url( '', $params ) );
10056
+ }
10057
+
10058
  /**
10059
  * Get the URL of the page that should be loaded after the user connect or skip in the opt-in screen.
10060
  *
10065
  *
10066
  * @return string
10067
  */
10068
+ function get_after_activation_url( $filter ) {
10069
  $first_time_path = $this->_menu->get_first_time_path();
10070
 
10071
  return $this->apply_filters(
10102
  $this->_site = null;
10103
  $this->_user = null;
10104
 
10105
+ fs_redirect( $this->get_activation_url() );
 
 
10106
  } else {
10107
  if ( $this->is_addon_activated( $plugin_id ) ) {
10108
  $fs_addon = self::get_instance_by_id( $plugin_id );
10109
  $fs_addon->delete_account_event();
10110
 
10111
+ fs_redirect( $this->_get_admin_page_url( 'account' ) );
 
 
10112
  }
10113
  }
10114
 
10116
 
10117
  case 'downgrade_account':
10118
  check_admin_referer( $action );
10119
+
10120
+ if ( $plugin_id == $this->get_id() ) {
10121
+ $this->_downgrade_site();
10122
+ } else if ( $this->is_addon_activated( $plugin_id ) ) {
10123
+ $fs_addon = self::get_instance_by_id( $plugin_id );
10124
+ $fs_addon->_downgrade_site();
10125
+ }
10126
 
10127
  return;
10128
 
10330
 
10331
  if ( $this->has_paid_plan() &&
10332
  ! $this->has_any_license() &&
10333
+ ! $this->is_sync_executed() &&
10334
+ $this->is_tracking_allowed()
10335
  ) {
10336
  /**
10337
  * If no licenses found and no sync job was executed during the last 24 hours,
10441
  }
10442
  }
10443
 
10444
+ #----------------------------------------------------------------------------------
10445
+ #region Contact Us
10446
+ #----------------------------------------------------------------------------------
10447
 
10448
  /**
10449
  * Render contact-us page.
10458
  fs_require_once_template( 'contact.php', $vars );
10459
  }
10460
 
10461
+ #endregion ------------------------------------------------------------------------
10462
 
10463
  /**
10464
  * Hide all admin notices to prevent distractions.
10606
  $this->_storage->has_trial_plan = FS_Plan_Manager::instance()->has_trial_plan( $plans );
10607
  }
10608
 
10609
+ /**
10610
+ * During trial promotion the "upgrade" submenu item turns to
10611
+ * "start trial" to encourage the trial. Since we want to keep
10612
+ * the same menu item handler and there's no robust way to
10613
+ * add new arguments to the menu item link's querystring,
10614
+ * use JavaScript to find the menu item and update the href of
10615
+ * the link.
10616
+ *
10617
+ * @author Vova Feldman (@svovaf)
10618
+ * @since 1.2.1.5
10619
+ */
10620
+ function _fix_start_trial_menu_item_url() {
10621
+ $template_args = array( 'slug' => $this->_slug );
10622
+ fs_require_template( 'add-trial-to-pricing.php', $template_args );
10623
+ }
10624
+
10625
  /**
10626
  * Show trial promotional notice (if any trial exist).
10627
  *
10628
  * @author Vova Feldman (@svovaf)
10629
  * @since 1.0.9
10630
+ *
10631
+ * @return bool If trial notice added.
10632
  */
10633
  function _add_trial_notice() {
10634
+ if ( ! current_user_can( 'activate_plugins' ) ) {
10635
+ return false;
 
10636
  }
10637
 
10638
+ if ( ! $this->is_user_in_admin() ) {
10639
+ return false;
 
10640
  }
10641
 
10642
  // Check if trial message is already shown.
10643
  if ( $this->_admin_notices->has_sticky( 'trial_promotion' ) ) {
10644
+ add_action( 'admin_footer', array( &$this, '_fix_start_trial_menu_item_url' ) );
10645
+
10646
+ $this->_menu->add_counter_to_menu_item( 1, 'fs-trial' );
10647
+
10648
+ return false;
10649
  }
10650
 
10651
+ if ( $this->is_premium() && ! WP_FS__DEV_MODE ) {
10652
+ // Don't show trial if running the premium code, unless running in DEV mode.
10653
+ return false;
10654
+ }
10655
 
10656
+ if ( ! $this->has_trial_plan() ) {
10657
+ // No plans with trial.
10658
+ return false;
10659
  }
10660
 
10661
+ if ( ! $this->apply_filters( 'show_trial', true ) ) {
10662
+ // Developer explicitly asked not to show the trial promo.
10663
+ return false;
10664
+ }
10665
+
10666
+ if ( $this->is_registered() ) {
10667
+ // Check if trial already utilized.
10668
+ if ( $this->_site->is_trial_utilized() ) {
10669
+ return false;
10670
+ }
10671
 
10672
+ if ( $this->is_paying_or_trial() ) {
10673
+ // Don't show trial if paying or already in trial.
10674
+ return false;
10675
+ }
10676
+ }
10677
 
10678
+ if ( $this->is_activation_mode() || $this->is_pending_activation() ) {
10679
+ // If not yet opted-in/skipped, or pending activation, don't show trial.
10680
+ return false;
10681
+ }
10682
 
10683
+ $last_time_trial_promotion_shown = $this->_storage->get( 'trial_promotion_shown', false );
10684
+ $was_promotion_shown_before = ( false !== $last_time_trial_promotion_shown );
10685
+
10686
+ // Show promotion if never shown before and 24 hours after initial activation with FS.
10687
+ if ( ! $was_promotion_shown_before &&
10688
+ $this->_storage->install_timestamp > ( time() - WP_FS__TIME_24_HOURS_IN_SEC )
10689
+ ) {
10690
+ return false;
10691
+ }
10692
+
10693
+ // OR if promotion was shown before, try showing it every 30 days.
10694
+ if ( $was_promotion_shown_before &&
10695
+ 30 * WP_FS__TIME_24_HOURS_IN_SEC > time() - $last_time_trial_promotion_shown
10696
+ ) {
10697
+ return false;
10698
+ }
10699
+
10700
+ $trial_period = $this->_trial_days;
10701
+ $require_payment = $this->_is_trial_require_payment;
10702
+ $trial_url = $this->get_trial_url();
10703
+ $plans_string = strtolower( __fs( 'awesome', $this->_slug ) );
10704
+
10705
+ if ( $this->is_registered() ) {
10706
+ // If opted-in, override trial with up to date data from API.
10707
+ $trial_plans = FS_Plan_Manager::instance()->get_trial_plans( $this->_plans );
10708
+ $trial_plans_count = count( $trial_plans );
10709
+
10710
+ if ( 0 === $trial_plans_count ) {
10711
+ // If there's no plans with a trial just exit.
10712
+ return false;
10713
  }
10714
 
10715
+ /**
10716
+ * @var FS_Plugin_Plan $paid_plan
10717
+ */
10718
+ $paid_plan = $trial_plans[0];
10719
+ $require_payment = $paid_plan->is_require_subscription;
10720
+ $trial_period = $paid_plan->trial_period;
10721
+
10722
+ $total_paid_plans = count( $this->_plans ) - ( FS_Plan_Manager::instance()->has_free_plan( $this->_plans ) ? 1 : 0 );
10723
+
10724
+ if ( $total_paid_plans !== $trial_plans_count ) {
10725
+ // Not all paid plans have a trial - generate a string of those that have it.
10726
+ for ( $i = 0; $i < $trial_plans_count; $i ++ ) {
10727
+ $plans_string .= sprintf(
10728
+ '<a href="%s">%s</a>',
10729
+ $trial_url,
10730
+ $trial_plans[ $i ]->title
10731
+ );
10732
+
10733
+ if ( $i < $trial_plans_count - 2 ) {
10734
+ $plans_string .= ', ';
10735
+ } else if ( $i == $trial_plans_count - 2 ) {
10736
+ $plans_string .= ' and ';
10737
+ }
10738
+ }
10739
+ }
10740
  }
10741
 
10742
+ $message = sprintf(
10743
+ __fs( 'hey', $this->_slug ) . '! ' . __fs( 'trial-x-promotion-message', $this->_slug ),
10744
+ sprintf( '<b>%s</b>', $this->get_plugin_name() ),
10745
+ $plans_string,
10746
+ $trial_period
10747
+ );
10748
+
10749
+ // "No Credit-Card Required" or "No Commitment for N Days".
10750
+ $cc_string = $require_payment ?
10751
+ sprintf( __fs( 'no-commitment-for-x-days', $this->_slug ), $trial_period ) :
10752
+ __fs( 'no-cc-required', $this->_slug ) . '!';
10753
 
10754
+
10755
+ // Start trial button.
10756
+ $button = ' ' . sprintf(
10757
  '<a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
10758
+ $trial_url,
10759
  __fs( 'start-free-trial', $this->_slug )
10760
  );
10761
 
10762
  $this->_admin_notices->add_sticky(
10763
+ $this->apply_filters( 'trial_promotion_message', "{$message} {$cc_string} {$button}" ),
10764
  'trial_promotion',
10765
  '',
10766
  'promotion'
10767
  );
10768
 
10769
  $this->_storage->trial_promotion_shown = WP_FS__SCRIPT_START_TIME;
10770
+
10771
+ return true;
10772
+ }
10773
+
10774
+ /**
10775
+ * @author Vova Feldman (@svovaf)
10776
+ * @since 1.2.1.5
10777
+ */
10778
+ function _enqueue_common_css() {
10779
+ if ( $this->has_paid_plan() && ! $this->is_paying() ) {
10780
+ // Add basic CSS for admin-notices and menu-item colors.
10781
+ fs_enqueue_local_style( 'fs_common', '/admin/common.css' );
10782
+ }
10783
  }
10784
 
10785
  /* Action Links
10887
  return;
10888
  }
10889
 
10890
+ if ( ! $this->is_ajax() ) {
10891
+ // Inject license activation dialog UI and client side code.
10892
+ add_action( 'admin_footer', array( &$this, '_add_license_activation_dialog_box' ) );
10893
+ }
10894
+
10895
  $link_text = __fs(
10896
  $this->is_free_plan() ? 'activate-license' : 'change-license',
10897
  $this->_slug
10906
  );
10907
  }
10908
 
10909
+ /**
10910
+ * Adds "Opt in" or "Opt out" link to the main "Plugins" page link actions collection.
10911
+ *
10912
+ * @author Leo Fajardo (@leorw)
10913
+ * @since 1.2.1.5
10914
+ */
10915
+ function _add_tracking_links() {
10916
+ if ( ! current_user_can( 'activate_plugins' ) ) {
10917
+ return;
10918
+ }
10919
+
10920
+ $this->_logger->entrance();
10921
+
10922
+ if ( ! $this->is_enable_anonymous() ) {
10923
+ // Don't allow to opt-out if anonymous mode is disabled.
10924
+ return;
10925
+ }
10926
+
10927
+ if ( ! $this->is_free_plan() ) {
10928
+ // Don't allow to opt-out if running in paid plan.
10929
+ return;
10930
+ }
10931
+
10932
+ if ( $this->add_ajax_action( 'stop_tracking', array( &$this, '_stop_tracking_callback' ) ) ) {
10933
+ return;
10934
+ }
10935
+
10936
+ if ( $this->add_ajax_action( 'allow_tracking', array( &$this, '_allow_tracking_callback' ) ) ) {
10937
+ return;
10938
+ }
10939
+
10940
+ if ( fs_request_is_action_secure( $this->_slug . '_reconnect' ) ) {
10941
+ if ( ! $this->is_registered() && $this->is_anonymous() ) {
10942
+ $this->connect_again();
10943
+
10944
+ return;
10945
+ }
10946
+ }
10947
+
10948
+ $url = '#';
10949
+
10950
+ if ( $this->is_registered() ) {
10951
+ if ( $this->is_tracking_allowed() ) {
10952
+ $link_text_id = 'opt-out';
10953
+ } else {
10954
+ $link_text_id = 'opt-in';
10955
+ }
10956
+
10957
+ add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
10958
+ } else {
10959
+ $link_text_id = 'opt-in';
10960
+
10961
+ $params = ! $this->is_anonymous() ?
10962
+ array() :
10963
+ array(
10964
+ 'nonce' => wp_create_nonce( $this->_slug . '_reconnect' ),
10965
+ 'fs_action' => ( $this->_slug . '_reconnect' ),
10966
+ );
10967
+
10968
+ $url = $this->get_activation_url( $params );
10969
+ }
10970
+
10971
+ $this->add_plugin_action_link(
10972
+ __fs( $link_text_id, $this->_slug ),
10973
+ $url,
10974
+ false,
10975
+ 13,
10976
+ "opt-in-or-opt-out {$this->_slug}"
10977
+ );
10978
+ }
10979
+
10980
  /**
10981
  * Get the URL of the page that should be loaded right after the plugin activation.
10982
  *
11027
 
11028
  if ( is_string( $url ) ) {
11029
  fs_redirect( $url );
 
11030
  }
11031
  }
11032
 
11138
  $plan_title = $this->_site->plan->title;
11139
  }
11140
 
11141
+ // @since 1.2.1.5 The free version is auto deactivated.
11142
+ $deactivation_step = version_compare( $this->version, '1.2.1.5', '<' ) ?
11143
+ ( '<li>' . __fs( 'deactivate-free-version', $this->_slug ) . '.</li>' ) :
11144
+ '';
11145
+
11146
  return sprintf(
11147
+ ' %s: <ol><li>%s.</li>%s<li>%s (<a href="%s" target="_blank">%s</a>).</li></ol>',
11148
  __fs( 'follow-steps-to-complete-upgrade', $this->_slug ),
11149
  $this->_get_latest_download_link( sprintf(
11150
  __fs( 'download-latest-x-version', $this->_slug ),
11151
  $plan_title
11152
  ) ),
11153
+ $deactivation_step,
11154
  __fs( 'upload-and-activate', $this->_slug ),
11155
  '//bit.ly/upload-wp-plugin',
11156
  __fs( 'howto-upload-activate', $this->_slug )
11208
  return $update;
11209
  }
11210
 
11211
+ #----------------------------------------------------------------------------------
11212
+ #region Versioning
11213
+ #----------------------------------------------------------------------------------
11214
 
11215
  /**
11216
  * Check if Freemius in SDK upgrade mode.
11231
  *
11232
  * @author Vova Feldman (@svovaf)
11233
  * @since 1.0.9
 
 
11234
  */
11235
  function set_sdk_upgrade_complete() {
11236
  $this->_storage->sdk_upgrade_mode = false;
11262
  $this->_storage->plugin_upgrade_mode = false;
11263
  }
11264
 
11265
+ #endregion
11266
 
11267
+ #----------------------------------------------------------------------------------
11268
+ #region Permissions
11269
+ #----------------------------------------------------------------------------------
11270
 
11271
  /**
11272
  * Check if specific permission requested.
11282
  return isset( $this->_permissions[ $permission ] ) && ( true === $this->_permissions[ $permission ] );
11283
  }
11284
 
11285
+ #endregion
11286
 
11287
+ #----------------------------------------------------------------------------------
11288
+ #region Marketing
11289
+ #----------------------------------------------------------------------------------
11290
 
11291
  /**
11292
  * Check if current user purchased any other plugins before.
11298
  */
11299
  function has_purchased_before() {
11300
  // TODO: Implement has_purchased_before() method.
11301
+ throw new Exception( 'not implemented' );
11302
  }
11303
 
11304
  /**
11311
  */
11312
  function is_agency() {
11313
  // TODO: Implement is_agency() method.
11314
+ throw new Exception( 'not implemented' );
11315
  }
11316
 
11317
  /**
11324
  */
11325
  function is_developer() {
11326
  // TODO: Implement is_developer() method.
11327
+ throw new Exception( 'not implemented' );
11328
  }
11329
 
11330
  /**
11337
  */
11338
  function is_business() {
11339
  // TODO: Implement is_business() method.
11340
+ throw new Exception( 'not implemented' );
11341
  }
11342
 
11343
+ #endregion
11344
+ }
freemius/includes/class-fs-api.php CHANGED
@@ -180,9 +180,9 @@
180
  }
181
  }
182
 
183
- if ( null !== $result && isset( $result->error ) && isset( $result->error->message ) ) {
184
  // Log API errors.
185
- $this->_logger->error( $result->error->message );
186
  }
187
 
188
  return $result;
@@ -243,6 +243,10 @@
243
  // If there was an error during a newer data fetch,
244
  // fallback to older data version.
245
  $result = $cached_result;
 
 
 
 
246
  } else {
247
  // If no older data version, return result without
248
  // caching the error.
@@ -253,6 +257,8 @@
253
  self::$_cache->set( $cache_key, $result, $expiration );
254
 
255
  $cached_result = $result;
 
 
256
  }
257
 
258
  return $cached_result;
@@ -270,13 +276,30 @@
270
  *
271
  * @return bool
272
  */
273
- function is_cached( $path, $method = 'GET', $params = array() )
274
- {
275
  $cache_key = $this->get_cache_key( $path, $method, $params );
276
 
277
  return self::$_cache->has_valid( $cache_key );
278
  }
279
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
280
  /**
281
  * @param string $path
282
  * @param string $method
@@ -289,7 +312,7 @@
289
  $canonized = $this->_api->CanonizePath( $path );
290
  // $exploded = explode('/', $canonized);
291
  // return $method . '_' . array_pop($exploded) . '_' . md5($canonized . json_encode($params));
292
- return strtolower($method . ':' . $canonized) . ( ! empty( $params ) ? '#' . md5( json_encode( $params ) ) : '' );
293
  }
294
 
295
  /**
@@ -361,7 +384,7 @@
361
  */
362
  private function get_temporary_unavailable_error() {
363
  return (object) array(
364
- 'error' => array(
365
  'type' => 'TemporaryUnavailable',
366
  'message' => 'API is temporary unavailable, please retry in ' . ( self::$_cache->get_record_expiration( 'ping_test' ) - WP_FS__SCRIPT_START_TIME ) . ' sec.',
367
  'code' => 'temporary_unavailable',
@@ -477,6 +500,59 @@
477
  self::_init();
478
 
479
  self::$_cache = FS_Cache_Manager::get_manager( WP_FS__API_CACHE_OPTION_NAME );
480
- self::$_cache->clear( true );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
481
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
482
  }
180
  }
181
  }
182
 
183
+ if ( $this->_logger->is_on() && self::is_api_error( $result ) ) {
184
  // Log API errors.
185
+ $this->_logger->api_error( $result );
186
  }
187
 
188
  return $result;
243
  // If there was an error during a newer data fetch,
244
  // fallback to older data version.
245
  $result = $cached_result;
246
+
247
+ if ( $this->_logger->is_on() ) {
248
+ $this->_logger->warn( 'Fallback to cached API result: ' . var_export( $cached_result, true ) );
249
+ }
250
  } else {
251
  // If no older data version, return result without
252
  // caching the error.
257
  self::$_cache->set( $cache_key, $result, $expiration );
258
 
259
  $cached_result = $result;
260
+ } else {
261
+ $this->_logger->log( 'Using cached API result.' );
262
  }
263
 
264
  return $cached_result;
276
  *
277
  * @return bool
278
  */
279
+ function is_cached( $path, $method = 'GET', $params = array() ) {
 
280
  $cache_key = $this->get_cache_key( $path, $method, $params );
281
 
282
  return self::$_cache->has_valid( $cache_key );
283
  }
284
 
285
+ /**
286
+ * Invalidate a cached version of the API request.
287
+ *
288
+ * @author Vova Feldman (@svovaf)
289
+ * @since 1.2.1.5
290
+ *
291
+ * @param string $path
292
+ * @param string $method
293
+ * @param array $params
294
+ */
295
+ function purge_cache( $path, $method = 'GET', $params = array() ) {
296
+ $this->_logger->entrance( "{$method}:{$path}" );
297
+
298
+ $cache_key = $this->get_cache_key( $path, $method, $params );
299
+
300
+ self::$_cache->purge( $cache_key );
301
+ }
302
+
303
  /**
304
  * @param string $path
305
  * @param string $method
312
  $canonized = $this->_api->CanonizePath( $path );
313
  // $exploded = explode('/', $canonized);
314
  // return $method . '_' . array_pop($exploded) . '_' . md5($canonized . json_encode($params));
315
+ return strtolower( $method . ':' . $canonized ) . ( ! empty( $params ) ? '#' . md5( json_encode( $params ) ) : '' );
316
  }
317
 
318
  /**
384
  */
385
  private function get_temporary_unavailable_error() {
386
  return (object) array(
387
+ 'error' => (object) array(
388
  'type' => 'TemporaryUnavailable',
389
  'message' => 'API is temporary unavailable, please retry in ' . ( self::$_cache->get_record_expiration( 'ping_test' ) - WP_FS__SCRIPT_START_TIME ) . ' sec.',
390
  'code' => 'temporary_unavailable',
500
  self::_init();
501
 
502
  self::$_cache = FS_Cache_Manager::get_manager( WP_FS__API_CACHE_OPTION_NAME );
503
+ self::$_cache->clear();
504
+ }
505
+
506
+ #----------------------------------------------------------------------------------
507
+ #region Error Handling
508
+ #----------------------------------------------------------------------------------
509
+
510
+ /**
511
+ * @author Vova Feldman (@svovaf)
512
+ * @since 1.2.1.5
513
+ *
514
+ * @param mixed $result
515
+ *
516
+ * @return bool Is API result contains an error.
517
+ */
518
+ static function is_api_error( $result ) {
519
+ return ( is_object( $result ) && isset( $result->error ) ) ||
520
+ is_string( $result );
521
+ }
522
+
523
+ /**
524
+ * Checks if given API result is a non-empty and not an error object.
525
+ *
526
+ * @author Vova Feldman (@svovaf)
527
+ * @since 1.2.1.5
528
+ *
529
+ * @param mixed $result
530
+ * @param string|null $required_property Optional property we want to verify that is set.
531
+ *
532
+ * @return bool
533
+ */
534
+ static function is_api_result_object( $result, $required_property = null ) {
535
+ return (
536
+ is_object( $result ) &&
537
+ ! isset( $result->error ) &&
538
+ ( empty( $required_property ) || isset( $result->{$required_property} ) )
539
+ );
540
  }
541
+
542
+ /**
543
+ * Checks if given API result is a non-empty entity object with non-empty ID.
544
+ *
545
+ * @author Vova Feldman (@svovaf)
546
+ * @since 1.2.1.5
547
+ *
548
+ * @param mixed $result
549
+ *
550
+ * @return bool
551
+ */
552
+ static function is_api_result_entity( $result ) {
553
+ return self::is_api_result_object( $result, 'id' ) &&
554
+ FS_Entity::is_valid_id( $result->id );
555
+ }
556
+
557
+ #endregion
558
  }
freemius/includes/class-fs-logger.php CHANGED
@@ -138,6 +138,32 @@
138
  $this->_log( $message, 'error', $wrapper );
139
  }
140
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  function entrance( $message = '', $wrapper = false ) {
142
  $msg = 'Entrance' . ( empty( $message ) ? '' : ' > ' ) . $message;
143
 
@@ -155,7 +181,7 @@
155
  }
156
 
157
  private static function format_html( $log ) {
158
- return '<div style="font-size: 11px; padding: 3px; background: #ccc; margin-bottom: 3px;">[' . $log['cnt'] . '] [' . $log['logger']->_id . '] [' . $log['type'] . '] <b><code style="color: blue;">' . $log['function'] . '</code> >> <b style="color: darkorange;">' . $log['msg'] . '</b></b>' . ( isset( $log['file'] ) ? ' (' . substr( $log['file'], $log['logger']->_file_start ) . ' ' . $log['line'] . ')' : '' ) . ' [' . $log['timestamp'] . ']</div>';
159
  }
160
 
161
  static function dump() {
138
  $this->_log( $message, 'error', $wrapper );
139
  }
140
 
141
+ /**
142
+ * Log API error.
143
+ *
144
+ * @author Vova Feldman (@svovaf)
145
+ * @since 1.2.1.5
146
+ *
147
+ * @param mixed $api_result
148
+ * @param bool $wrapper
149
+ */
150
+ function api_error( $api_result, $wrapper = false ) {
151
+ $message = '';
152
+ if ( is_object( $api_result ) && isset( $api_result->error ) ) {
153
+ $message = $api_result->error->message;
154
+ } else if ( is_object( $api_result ) ) {
155
+ $message = var_export( $api_result, true );
156
+ } else if ( is_string( $api_result ) ) {
157
+ $message = $api_result;
158
+ } else if ( empty( $api_result ) ) {
159
+ $message = 'Empty API result.';
160
+ }
161
+
162
+ $message = 'API Error: ' . $message;
163
+
164
+ $this->_log( $message, 'error', $wrapper );
165
+ }
166
+
167
  function entrance( $message = '', $wrapper = false ) {
168
  $msg = 'Entrance' . ( empty( $message ) ? '' : ' > ' ) . $message;
169
 
181
  }
182
 
183
  private static function format_html( $log ) {
184
+ return '<div style="font-size: 13px; font-family: monospace; color: #7da767; padding: 8px 3px; background: #000; border-bottom: 1px solid #555;">[' . $log['cnt'] . '] [' . $log['logger']->_id . '] [' . $log['type'] . '] <b><code style="color: #c4b1e0;">' . $log['function'] . '</code> >> <b style="color: #f59330;">' . esc_html($log['msg']) . '</b></b>' . ( isset( $log['file'] ) ? ' (' . substr( $log['file'], $log['logger']->_file_start ) . ' ' . $log['line'] . ')' : '' ) . ' [' . $log['timestamp'] . ']</div>';
185
  }
186
 
187
  static function dump() {
freemius/includes/entities/class-fs-billing.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Freemius for EDD Add-On
4
+ * @copyright Copyright (c) 2016, Freemius, Inc.
5
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
6
+ * @since 1.0.0
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ class FS_Billing extends FS_Entity {
14
+
15
+ #region Properties
16
+
17
+ /**
18
+ * @var int
19
+ */
20
+ public $entity_id;
21
+ /**
22
+ * @var string (Enum) Linked entity type. One of: developer, plugin, user, install
23
+ */
24
+ public $entity_type;
25
+ /**
26
+ * @var string
27
+ */
28
+ public $business_name;
29
+ /**
30
+ * @var string
31
+ */
32
+ public $first;
33
+ /**
34
+ * @var string
35
+ */
36
+ public $last;
37
+ /**
38
+ * @var string
39
+ */
40
+ public $email;
41
+ /**
42
+ * @var string
43
+ */
44
+ public $phone;
45
+ /**
46
+ * @var string
47
+ */
48
+ public $website;
49
+ /**
50
+ * @var string Tax or VAT ID.
51
+ */
52
+ public $tax_id;
53
+ /**
54
+ * @var string
55
+ */
56
+ public $address_street;
57
+ /**
58
+ * @var string
59
+ */
60
+ public $address_apt;
61
+ /**
62
+ * @var string
63
+ */
64
+ public $address_city;
65
+ /**
66
+ * @var string
67
+ */
68
+ public $address_country;
69
+ /**
70
+ * @var string Two chars country code.
71
+ */
72
+ public $address_country_code;
73
+ /**
74
+ * @var string
75
+ */
76
+ public $address_state;
77
+ /**
78
+ * @var number Numeric ZIP code (cab be with leading zeros).
79
+ */
80
+ public $address_zip;
81
+
82
+ #endregion Properties
83
+
84
+
85
+ /**
86
+ * @param object|bool $event
87
+ */
88
+ function __construct( $event = false ) {
89
+ parent::__construct( $event );
90
+ }
91
+
92
+ static function get_type() {
93
+ return 'billing';
94
+ }
95
+ }
freemius/includes/entities/class-fs-plugin.php CHANGED
@@ -24,6 +24,10 @@
24
  * @var string
25
  */
26
  public $slug;
 
 
 
 
27
 
28
  #region Install Specific Properties
29
 
24
  * @var string
25
  */
26
  public $slug;
27
+ /**
28
+ * @var string 'plugin' or 'theme'
29
+ */
30
+ public $type;
31
 
32
  #region Install Specific Properties
33
 
freemius/includes/entities/class-fs-site.php CHANGED
@@ -51,6 +51,15 @@
51
  * @var string Platform version (e.g WordPress version).
52
  */
53
  public $platform_version;
 
 
 
 
 
 
 
 
 
54
  /**
55
  * @var string Programming language version (e.g PHP version).
56
  */
@@ -77,6 +86,14 @@
77
  * @var bool
78
  */
79
  public $is_premium = false;
 
 
 
 
 
 
 
 
80
 
81
  /**
82
  * @param stdClass|bool $site
@@ -89,6 +106,10 @@
89
  if ( is_object( $site ) ) {
90
  $this->plan->id = $site->plan_id;
91
  }
 
 
 
 
92
  }
93
 
94
  static function get_type() {
51
  * @var string Platform version (e.g WordPress version).
52
  */
53
  public $platform_version;
54
+ /**
55
+ * Freemius SDK version
56
+ *
57
+ * @author Leo Fajardo (@leorw)
58
+ * @since 1.2.2
59
+ *
60
+ * @var string SDK version (e.g.: 1.2.2)
61
+ */
62
+ public $sdk_version;
63
  /**
64
  * @var string Programming language version (e.g PHP version).
65
  */
86
  * @var bool
87
  */
88
  public $is_premium = false;
89
+ /**
90
+ * @author Leo Fajardo (@leorw)
91
+ *
92
+ * @since 1.2.1.5
93
+ *
94
+ * @var bool
95
+ */
96
+ public $is_disconnected = false;
97
 
98
  /**
99
  * @param stdClass|bool $site
106
  if ( is_object( $site ) ) {
107
  $this->plan->id = $site->plan_id;
108
  }
109
+
110
+ if ( ! is_bool( $this->is_disconnected ) ) {
111
+ $this->is_disconnected = false;
112
+ }
113
  }
114
 
115
  static function get_type() {
freemius/includes/fs-core-functions.php CHANGED
@@ -19,14 +19,6 @@
19
  }
20
  }
21
 
22
- if ( ! function_exists( 'starts_with' ) ) {
23
- function starts_with( $haystack, $needle ) {
24
- $length = strlen( $needle );
25
-
26
- return ( substr( $haystack, 0, $length ) === $needle );
27
- }
28
- }
29
-
30
  /* Url.
31
  --------------------------------------------------------------------------------------------*/
32
  function fs_get_url_daily_cache_killer() {
@@ -64,7 +56,7 @@
64
  ob_start();
65
 
66
  $VARS = &$params;
67
- require_once( fs_get_template_path( $path ) );
68
 
69
  return ob_get_clean();
70
  }
@@ -158,6 +150,40 @@
158
  return ( strtolower( $action ) === fs_get_action( $action_key ) );
159
  }
160
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  function fs_is_plugin_page( $menu_slug ) {
162
  return ( is_admin() && $_REQUEST['page'] === $menu_slug );
163
  }
@@ -287,9 +313,26 @@
287
 
288
  set_error_handler('fs_error_handler');*/
289
 
290
- function fs_nonce_url( $actionurl, $action = - 1, $name = '_wpnonce' ) {
291
- // $actionurl = str_replace( '&amp;', '&', $actionurl );
292
- return add_query_arg( $name, wp_create_nonce( $action ), $actionurl );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
293
  }
294
 
295
  if ( ! function_exists( 'fs_starts_with' ) ) {
@@ -373,7 +416,7 @@
373
 
374
  // Skip ignore params.
375
  if ( in_array( $lower_param, $ignore_params ) ||
376
- ( false !== $params_prefix && starts_with( $lower_param, $params_prefix ) )
377
  ) {
378
  continue;
379
  }
@@ -460,4 +503,3 @@
460
  // If both have priority return the winner.
461
  return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
462
  }
463
-
19
  }
20
  }
21
 
 
 
 
 
 
 
 
 
22
  /* Url.
23
  --------------------------------------------------------------------------------------------*/
24
  function fs_get_url_daily_cache_killer() {
56
  ob_start();
57
 
58
  $VARS = &$params;
59
+ require( fs_get_template_path( $path ) );
60
 
61
  return ob_get_clean();
62
  }
150
  return ( strtolower( $action ) === fs_get_action( $action_key ) );
151
  }
152
 
153
+ /**
154
+ * @author Vova Feldman (@svovaf)
155
+ * @since 1.0.0
156
+ *
157
+ * @since 1.2.1.5 Allow nonce verification.
158
+ *
159
+ * @param string $action
160
+ * @param string $action_key
161
+ * @param string $nonce_key
162
+ *
163
+ * @return bool
164
+ */
165
+ function fs_request_is_action_secure(
166
+ $action,
167
+ $action_key = 'action',
168
+ $nonce_key = 'nonce'
169
+ ) {
170
+ if ( strtolower( $action ) !== fs_get_action( $action_key ) ) {
171
+ return false;
172
+ }
173
+
174
+ $nonce = ! empty( $_REQUEST[ $nonce_key ] ) ?
175
+ $_REQUEST[ $nonce_key ] :
176
+ '';
177
+
178
+ if ( empty( $nonce ) ||
179
+ ( false === wp_verify_nonce( $nonce, $action ) )
180
+ ) {
181
+ return false;
182
+ }
183
+
184
+ return true;
185
+ }
186
+
187
  function fs_is_plugin_page( $menu_slug ) {
188
  return ( is_admin() && $_REQUEST['page'] === $menu_slug );
189
  }
313
 
314
  set_error_handler('fs_error_handler');*/
315
 
316
+ if ( ! function_exists( 'fs_nonce_url' ) ) {
317
+ /**
318
+ * Retrieve URL with nonce added to URL query.
319
+ *
320
+ * Originally was using `wp_nonce_url()` but the new version
321
+ * changed the return value to escaped URL, that's not the expected
322
+ * behaviour.
323
+ *
324
+ * @author Vova Feldman (@svovaf)
325
+ * @since ~1.1.3
326
+ *
327
+ * @param string $actionurl URL to add nonce action.
328
+ * @param int|string $action Optional. Nonce action name. Default -1.
329
+ * @param string $name Optional. Nonce name. Default '_wpnonce'.
330
+ *
331
+ * @return string Escaped URL with nonce action added.
332
+ */
333
+ function fs_nonce_url( $actionurl, $action = - 1, $name = '_wpnonce' ) {
334
+ return add_query_arg( $name, wp_create_nonce( $action ), $actionurl );
335
+ }
336
  }
337
 
338
  if ( ! function_exists( 'fs_starts_with' ) ) {
416
 
417
  // Skip ignore params.
418
  if ( in_array( $lower_param, $ignore_params ) ||
419
+ ( false !== $params_prefix && fs_starts_with( $lower_param, $params_prefix ) )
420
  ) {
421
  continue;
422
  }
503
  // If both have priority return the winner.
504
  return ( $a['priority'] < $b['priority'] ) ? - 1 : 1;
505
  }
 
freemius/includes/fs-essential-functions.php CHANGED
@@ -41,15 +41,29 @@
41
  * @since 1.5.1
42
  * @uses apply_filters() Calls 'wp_redirect' hook on $location and $status.
43
  *
44
- * @param string $location The path to redirect to
45
- * @param int $status Status code to use
 
46
  *
47
  * @return bool False if $location is not set
48
  */
49
- function fs_redirect( $location, $status = 302 ) {
50
  global $is_IIS;
51
 
52
- if ( headers_sent() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  return false;
54
  }
55
 
@@ -69,6 +83,10 @@
69
  header( "Location: $location" );
70
  }
71
 
 
 
 
 
72
  return true;
73
  }
74
 
@@ -407,7 +425,7 @@
407
  $args = func_get_args();
408
 
409
  return call_user_func_array( 'apply_filters', array_merge(
410
- array( 'fs_' . $tag . '_' . $slug ),
411
  array_slice( $args, 2 ) )
412
  );
413
  }
41
  * @since 1.5.1
42
  * @uses apply_filters() Calls 'wp_redirect' hook on $location and $status.
43
  *
44
+ * @param string $location The path to redirect to.
45
+ * @param bool $exit If true, exit after redirect (Since 1.2.1.5).
46
+ * @param int $status Status code to use.
47
  *
48
  * @return bool False if $location is not set
49
  */
50
+ function fs_redirect( $location, $exit = true, $status = 302 ) {
51
  global $is_IIS;
52
 
53
+ $file = '';
54
+ $line = '';
55
+ if ( headers_sent($file, $line) ) {
56
+ if ( WP_FS__DEBUG_SDK && class_exists( 'FS_Admin_Notice_Manager' ) ) {
57
+ $notices = FS_Admin_Notice_Manager::instance( 'global' );
58
+
59
+ $notices->add( "Freemius failed to redirect the page because the headers have been already sent from line <b><code>{$line}</code></b> in file <b><code>{$file}</code></b>. If it's unexpected, it usually happens due to invalid space and/or EOL character(s).", 'Oops...', 'error' );
60
+ }
61
+
62
+ return false;
63
+ }
64
+
65
+ if ( defined( 'DOING_AJAX' ) ) {
66
+ // Don't redirect on AJAX calls.
67
  return false;
68
  }
69
 
83
  header( "Location: $location" );
84
  }
85
 
86
+ if ( $exit ) {
87
+ exit();
88
+ }
89
+
90
  return true;
91
  }
92
 
425
  $args = func_get_args();
426
 
427
  return call_user_func_array( 'apply_filters', array_merge(
428
+ array( "fs_{$tag}_{$slug}" ),
429
  array_slice( $args, 2 ) )
430
  );
431
  }
freemius/includes/fs-plugin-info-dialog.php CHANGED
@@ -74,7 +74,7 @@
74
  }
75
 
76
  // Find add-on by slug.
77
- $selected_addon = $this->_fs->get_addon_by_slug($args->slug);
78
 
79
  if ( false === $selected_addon ) {
80
  return $data;
@@ -99,7 +99,7 @@
99
  $has_pricing = false;
100
  $has_features = false;
101
  $plans = false;
102
- $plans_result = $this->_fs->get_api_site_or_plugin_scope()->get( "/addons/{$selected_addon->id}/plans.json" );
103
  if ( ! isset( $plans_result->error ) ) {
104
  $plans = $plans_result->plans;
105
  if ( is_array( $plans ) ) {
@@ -597,7 +597,7 @@
597
  }
598
  ?>
599
  <a class="nav-tab" data-billing-cycle="<?php echo $cycle ?>"
600
- data-pricing="<?php esc_attr_e( json_encode( $prices ) ) ?>">
601
  <?php if ( $is_featured ) : ?>
602
  <label>&#9733; <?php _efs( 'best', $api->slug ) ?> &#9733;</label>
603
  <?php endif ?>
74
  }
75
 
76
  // Find add-on by slug.
77
+ $selected_addon = $this->_fs->get_addon_by_slug($args->slug, WP_FS__DEV_MODE);
78
 
79
  if ( false === $selected_addon ) {
80
  return $data;
99
  $has_pricing = false;
100
  $has_features = false;
101
  $plans = false;
102
+ $plans_result = $this->_fs->get_api_site_or_plugin_scope()->get( "/addons/{$selected_addon->id}/plans.json?type=visible" );
103
  if ( ! isset( $plans_result->error ) ) {
104
  $plans = $plans_result->plans;
105
  if ( is_array( $plans ) ) {
597
  }
598
  ?>
599
  <a class="nav-tab" data-billing-cycle="<?php echo $cycle ?>"
600
+ data-pricing="<?php echo esc_attr( json_encode( $prices ) ) ?>">
601
  <?php if ( $is_featured ) : ?>
602
  <label>&#9733; <?php _efs( 'best', $api->slug ) ?> &#9733;</label>
603
  <?php endif ?>
freemius/includes/i18n.php CHANGED
@@ -32,191 +32,223 @@
32
  global $fs_text;
33
 
34
  $fs_text = array(
35
- 'account' => __( 'Account', 'freemius' ),
36
- 'addon' => __( 'Add On', 'freemius' ),
37
- 'contact-us' => __( 'Contact Us', 'freemius' ),
38
- 'contact-support' => __( 'Contact Support', 'freemius' ),
39
- 'change-ownership' => __( 'Change Ownership', 'freemius' ),
40
- 'support' => __( 'Support', 'freemius' ),
41
- 'support-forum' => __( 'Support Forum', 'freemius' ),
42
- 'add-ons' => __( 'Add Ons', 'freemius' ),
43
- 'upgrade' => _x( 'Upgrade', 'verb', 'freemius' ),
44
- 'awesome' => __( 'Awesome', 'freemius' ),
45
- 'pricing' => _x( 'Pricing', 'noun', 'freemius' ),
46
- 'price' => _x( 'Price', 'noun', 'freemius' ),
47
- 'unlimited-updates' => __( 'Unlimited Updates', 'freemius' ),
48
- 'downgrade' => _x( 'Downgrade', 'verb', 'freemius' ),
49
- 'cancel-trial' => __( 'Cancel Trial', 'freemius' ),
50
- 'free-trial' => __( 'Free Trial', 'freemius' ),
51
- 'start-free-x' => __( 'Start my free %s', 'freemius' ),
52
- 'no-commitment-x' => __( 'No commitment for %s - cancel anytime', 'freemius' ),
53
- 'after-x-pay-as-little-y' => __( 'After your free %s, pay as little as %s', 'freemius' ),
54
- 'details' => __( 'Details', 'freemius' ),
55
- 'account-details' => __( 'Account Details', 'freemius' ),
56
- 'delete' => _x( 'Delete', 'verb', 'freemius' ),
57
- 'show' => _x( 'Show', 'verb', 'freemius' ),
58
- 'hide' => _x( 'Hide', 'verb', 'freemius' ),
59
- 'edit' => _x( 'Edit', 'verb', 'freemius' ),
60
- 'date' => __( 'Date', 'freemius' ),
61
- 'amount' => __( 'Amount', 'freemius' ),
62
- 'invoice' => __( 'Invoice', 'freemius' ),
63
- 'billing' => __( 'Billing', 'freemius' ),
64
- 'payments' => __( 'Payments', 'freemius' ),
65
- 'delete-account' => __( 'Delete Account', 'freemius' ),
66
- 'dismiss' => _x( 'Dismiss', 'as close a window', 'freemius' ),
67
- 'plan' => _x( 'Plan', 'as product pricing plan', 'freemius' ),
68
- 'change-plan' => __( 'Change Plan', 'freemius' ),
69
- 'download-x-version' => _x( 'Download %s Version', 'as download professional version', 'freemius' ),
70
- 'download-x-version-now' => _x( 'Download %s version now', 'as download professional version now', 'freemius' ),
71
- 'download-latest' => _x( 'Download Latest', 'as download latest version', 'freemius' ),
72
- 'you-have-x-license' => _x( 'You have a %s license.', 'E.g. you have a professional license.', 'freemius' ),
73
- 'new' => __( 'New', 'freemius' ),
74
- 'free' => __( 'Free', 'freemius' ),
75
- 'trial' => _x( 'Trial', 'as trial plan', 'freemius' ),
76
- 'purchase' => _x( 'Purchase', 'verb', 'freemius' ),
77
- 'purchase-license' => __( 'Purchase License', 'freemius' ),
78
- 'buy' => _x( 'Buy', 'verb', 'freemius' ),
79
- 'buy-license' => __( 'Buy License', 'freemius' ),
80
- 'license-single-site' => __( 'Single Site License', 'freemius' ),
81
- 'license-unlimited' => __( 'Unlimited Licenses', 'freemius' ),
82
- 'license-x-sites' => __( 'Up to %s Sites', 'freemius' ),
83
- 'renew-license-now' => __( '%sRenew your license now%s to access version %s features and support.', 'freemius' ),
84
- 'ask-for-upgrade-email-address' => __( "Enter the email address you've used for the upgrade below and we will resend you the license key.", 'freemius' ),
85
- 'x-plan' => _x( '%s Plan', 'e.g. Professional Plan', 'freemius' ),
86
- 'you-are-step-away' => __( 'You are just one step away - %s', 'freemius' ),
87
- 'activate-x-now' => _x( 'Complete "%s" Activation Now', '%s - plugin name. As complete "Jetpack" activation now', 'freemius' ),
88
- 'few-plugin-tweaks' => __( 'We made a few tweaks to the plugin, %s', 'freemius' ),
89
- 'optin-x-now' => __( 'Opt-in to make "%s" Better!', 'freemius' ),
90
- 'error' => __( 'Error', 'freemius' ),
91
- 'failed-finding-main-path' => __( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.', 'freemius' ),
 
 
 
 
 
 
 
 
92
  #region Account
93
 
94
- 'expiration' => _x( 'Expiration', 'as expiration date', 'freemius' ),
95
- 'license' => _x( 'License', 'as software license', 'freemius' ),
96
- 'not-verified' => __( 'not verified', 'freemius' ),
97
- 'verify-email' => __( 'Verify Email', 'freemius' ),
98
- 'expires-in' => _x( 'Expires in %s', 'e.g. expires in 2 months', 'freemius' ),
99
- 'renews-in' => _x( 'Auto renews in %s', 'e.g. auto renews in 2 months', 'freemius' ),
100
- 'no-expiration' => __( 'No expiration', 'freemius' ),
101
- 'expired' => __( 'Expired', 'freemius' ),
102
- 'cancelled' => __( 'Cancelled', 'freemius' ),
103
- 'in-x' => _x( 'In %s', 'e.g. In 2 hours', 'freemius' ),
104
- 'x-ago' => _x( '%s ago', 'e.g. 2 min ago', 'freemius' ),
105
- 'version' => _x( 'Version', 'as plugin version', 'freemius' ),
106
- 'name' => __( 'Name', 'freemius' ),
107
- 'email' => __( 'Email', 'freemius' ),
108
- 'email-address' => __( 'Email address', 'freemius' ),
109
- 'verified' => __( 'Verified', 'freemius' ),
110
- 'plugin' => __( 'Plugin', 'freemius' ),
111
- 'plugins' => __( 'Plugins', 'freemius' ),
112
- 'themes' => __( 'Themes', 'freemius' ),
113
- 'path' => _x( 'Path', 'as file/folder path', 'freemius' ),
114
- 'title' => __( 'Title', 'freemius' ),
115
- 'free-version' => __( 'Free version', 'freemius' ),
116
- 'premium-version' => __( 'Premium version', 'freemius' ),
117
- 'slug' => _x( 'Slug', 'as WP plugin slug', 'freemius' ),
118
- 'id' => __( 'ID', 'freemius' ),
119
- 'users' => __( 'Users', 'freemius' ),
120
- 'plugin-installs' => __( 'Plugin Installs', 'freemius' ),
121
- 'sites' => _x( 'Sites', 'like websites', 'freemius' ),
122
- 'user-id' => __( 'User ID', 'freemius' ),
123
- 'site-id' => __( 'Site ID', 'freemius' ),
124
- 'public-key' => __( 'Public Key', 'freemius' ),
125
- 'secret-key' => __( 'Secret Key', 'freemius' ),
126
- 'no-secret' => _x( 'No Secret', 'as secret encryption key missing', 'freemius' ),
127
- 'no-id' => __( 'No ID', 'freemius' ),
128
- 'sync-license' => _x( 'Sync License', 'as synchronize license', 'freemius' ),
129
- 'sync' => _x( 'Sync', 'as synchronize', 'freemius' ),
130
- 'activate-license' => __( 'Activate License', 'freemius' ),
131
- 'activate-free-version' => __( 'Activate Free Version', 'freemius' ),
132
- 'activate-license-message' => __( 'Please enter the license key that you received in the email right after the purchase:', 'freemius' ),
133
- 'activating-license' => __( 'Activating license...', 'freemius' ),
134
- 'change-license' => __( 'Change License', 'freemius' ),
135
- 'update-license' => __( 'Update License', 'freemius' ),
136
- 'deactivate-license' => __( 'Deactivate License', 'freemius' ),
137
- 'activate' => __( 'Activate', 'freemius' ),
138
- 'deactivate' => __( 'Deactivate', 'freemius' ),
139
- 'skip-deactivate' => __( 'Skip & Deactivate', 'freemius' ),
140
- 'no-deactivate' => __( 'No - just deactivate', 'freemius' ),
141
- 'yes-do-your-thing' => __( 'Yes - do your thing', 'freemius' ),
142
- 'active' => _x( 'Active', 'active mode', 'freemius' ),
143
- 'is-active' => _x( 'Is Active', 'is active mode?', 'freemius' ),
144
- 'install-now' => __( 'Install Now', 'freemius' ),
145
- 'install-update-now' => __( 'Install Update Now', 'freemius' ),
146
- 'more-information-about-x' => __( 'More information about %s', 'freemius' ),
147
- 'localhost' => __( 'Localhost', 'freemius' ),
148
- 'activate-x-plan' => _x( 'Activate %s Plan', 'as activate Professional plan', 'freemius' ),
149
- 'x-left' => _x( '%s left', 'as 5 licenses left', 'freemius' ),
150
- 'last-license' => __( 'Last license', 'freemius' ),
151
- 'what-is-your-x' => __( 'What is your %s?', 'freemius' ),
152
- 'activate-this-addon' => __( 'Activate this add-on', 'freemius' ),
153
- 'deactivate-license-confirm' => __( 'Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?', 'freemius' ),
154
- 'delete-account-x-confirm' => __( 'Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the "Cancel" button, and first "Downgrade" your account. Are you sure you would like to continue with the deletion?', 'freemius' ),
155
- 'delete-account-confirm' => __( 'Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?', 'freemius' ),
156
- 'downgrade-x-confirm' => __( 'Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s.', 'freemius' ),
157
- 'cancel-trial-confirm' => __( 'Cancelling the trial will immediately block access to all premium features. Are you sure?', 'freemius' ),
158
- 'after-downgrade-non-blocking' => __( 'You can still enjoy all %s features but you will not have access to plugin updates and support.', 'freemius' ),
159
- 'after-downgrade-blocking' => __( 'Once your license expire you can still use the Free version but you will NOT have access to the %s features.', 'freemius' ),
160
- 'proceed-confirmation' => __( 'Are you sure you want to proceed?', 'freemius' ),
 
 
 
 
 
 
 
 
161
  #endregion Account
162
 
163
  'add-ons-for-x' => __( 'Add Ons for %s', 'freemius' ),
164
- 'add-ons-missing' => __( 'We could\'nt load the add-ons list. It\'s probably an issue on our side, please try to come back in few minutes.', 'freemius' ),
 
165
  #region Plugin Deactivation
166
  'anonymous-feedback' => __( 'Anonymous feedback', 'freemius' ),
167
  'quick-feedback' => __( 'Quick feedback', 'freemius' ),
168
- 'deactivation-share-reason' => __( 'If you have a moment, please let us know why you are deactivating', 'freemius' ),
 
169
  'deactivation-modal-button-confirm' => __( 'Yes - Deactivate', 'freemius' ),
170
  'deactivation-modal-button-submit' => __( 'Submit & Deactivate', 'freemius' ),
171
- 'deactivation-modal-button-cancel' => _x( 'Cancel', 'the text of the cancel button of the plugin deactivation dialog box.', 'freemius' ),
172
  'reason-no-longer-needed' => __( 'I no longer need the plugin', 'freemius' ),
173
  'reason-found-a-better-plugin' => __( 'I found a better plugin', 'freemius' ),
174
  'reason-needed-for-a-short-period' => __( 'I only needed the plugin for a short period', 'freemius' ),
175
  'reason-broke-my-site' => __( 'The plugin broke my site', 'freemius' ),
176
  'reason-suddenly-stopped-working' => __( 'The plugin suddenly stopped working', 'freemius' ),
177
  'reason-cant-pay-anymore' => __( "I can't pay for it anymore", 'freemius' ),
178
- 'reason-temporary-deactivation' => __( "It's a temporary deactivation. I'm just debugging an issue.", 'freemius' ),
179
- 'reason-other' => _x( 'Other', 'the text of the "other" reason for deactivating the plugin that is shown in the modal box.', 'freemius' ),
 
 
180
  'ask-for-reason-message' => __( 'Kindly tell us the reason so we can improve.', 'freemius' ),
181
  'placeholder-plugin-name' => __( "What's the plugin's name?", 'freemius' ),
182
  'placeholder-comfortable-price' => __( 'What price would you feel comfortable paying?', 'freemius' ),
183
  'reason-couldnt-make-it-work' => __( "I couldn't understand how to make it work", 'freemius' ),
184
- 'reason-great-but-need-specific-feature' => __( "The plugin is great, but I need specific feature that you don't support", 'freemius' ),
 
185
  'reason-not-working' => __( 'The plugin is not working', 'freemius' ),
186
  'reason-not-what-i-was-looking-for' => __( "It's not what I was looking for", 'freemius' ),
187
  'reason-didnt-work-as-expected' => __( "The plugin didn't work as expected", 'freemius' ),
188
  'placeholder-feature' => __( 'What feature?', 'freemius' ),
189
- 'placeholder-share-what-didnt-work' => __( "Kindly share what didn't work so we can fix it for future users...", 'freemius' ),
 
190
  'placeholder-what-youve-been-looking-for' => __( "What you've been looking for?", 'freemius' ),
191
  'placeholder-what-did-you-expect' => __( "What did you expect?", 'freemius' ),
192
  'reason-didnt-work' => __( "The plugin didn't work", 'freemius' ),
193
  'reason-dont-like-to-share-my-information' => __( "I don't like to share my information with you", 'freemius' ),
194
- 'dont-have-to-share-any-data' => __( "You might have missed it, but you don't have to share any data and can just %s the opt-in.", 'freemius' ),
 
195
  #endregion Plugin Deactivation
196
 
197
  #region Connect
198
  'hey-x' => _x( 'Hey %s,', 'greeting', 'freemius' ),
199
  'thanks-x' => _x( 'Thanks %s!', 'a greeting. E.g. Thanks John!', 'freemius' ),
200
- 'connect-message' => __( 'In order to enjoy all our features and functionality, %s needs to connect your user, %s at %s, to %s', 'freemius' ),
201
- 'connect-message_on-update' => __( 'Please help us improve %2$s! If you opt-in, some data about your usage of %2$s will be sent to %5$s. If you skip this, that\'s okay! %2$s will still work just fine.', 'freemius' ),
202
- 'pending-activation-message' => __( 'You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to complete the install.', 'freemius' ),
203
- 'thanks-for-purchasing' => __( 'Thanks for purchasing %s! To get started, please enter your license key:', 'freemius' ),
204
- 'license-sync-disclaimer' => __( 'The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license.', 'freemius' ),
 
 
 
 
 
 
205
  'what-permissions' => __( 'What permissions are being granted?', 'freemius' ),
206
  'permissions-profile' => __( 'Your Profile Overview', 'freemius' ),
207
  'permissions-profile_desc' => __( 'Name and email address', 'freemius' ),
208
  'permissions-site' => __( 'Your Site Overview', 'freemius' ),
209
- 'permissions-site_desc' => __( 'Site URL, WP version, PHP info, plugins & themes', 'freemius' ),
 
210
  'permissions-events' => __( 'Current Plugin Events', 'freemius' ),
211
  'permissions-events_desc' => __( 'Activation, deactivation and uninstall', 'freemius' ),
212
  'permissions-plugins_themes' => __( 'Plugins & Themes', 'freemius' ),
213
  'permissions-plugins_themes_desc' => __( 'Titles, versions and state.', 'freemius' ),
 
214
  'permissions-newsletter' => __( 'Newsletter', 'freemius' ),
215
  'permissions-newsletter_desc' => __( 'Updates, announcements, marketing, no spam', 'freemius' ),
216
  'privacy-policy' => __( 'Privacy Policy', 'freemius' ),
217
  'tos' => __( 'Terms of Service', 'freemius' ),
218
  'activating' => _x( 'Activating', 'as activating plugin', 'freemius' ),
219
- 'sending-email' => _x( 'Sending email', 'as in the process of sending an email', 'freemius' ),
 
220
  'opt-in-connect' => _x( 'Allow & Continue', 'button label', 'freemius' ),
221
  'agree-activate-license' => _x( 'Agree & Activate License', 'button label', 'freemius' ),
222
  'skip' => _x( 'Skip', 'verb', 'freemius' ),
@@ -228,8 +260,22 @@
228
  'have-license-key' => __( 'Have a license key?', 'freemius' ),
229
  'dont-have-license-key' => __( 'Don\'t have a license key?', 'freemius' ),
230
  'cant-find-license-key' => __( "Can't find your license key?", 'freemius' ),
231
- 'email-not-found' => __( "We couldn't find your email address in the system, are you sure it's the right address?" ),
232
- 'no-active-licenses' => __( "We can't see any active licenses associated with that email address, are you sure it's the right address?" ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
  #endregion Connect
234
 
235
  #region Screenshots
@@ -247,11 +293,13 @@
247
  'blocked' => _x( 'Blocked', 'as connection blocked', 'freemius' ),
248
  'api' => _x( 'API', 'as application program interface', 'freemius' ),
249
  'sdk' => _x( 'SDK', 'as software development kit versions', 'freemius' ),
250
- 'sdk-versions' => _x( 'SDK Versions', 'as software development kit versions', 'freemius' ),
 
251
  'plugin-path' => _x( 'Plugin Path', 'as plugin folder path', 'freemius' ),
252
  'sdk-path' => _x( 'SDK Path', 'as sdk path', 'freemius' ),
253
  'addons-of-x' => __( 'Add Ons of Plugin %s', 'freemius' ),
254
- 'delete-all-confirm' => __( 'Are you sure you want to delete all Freemius data?', 'freemius' ),
 
255
  'actions' => __( 'Actions', 'freemius' ),
256
  'delete-all-accounts' => __( 'Delete All Accounts', 'freemius' ),
257
  'start-fresh' => __( 'Start Fresh', 'freemius' ),
@@ -264,117 +312,189 @@
264
  #region Expressions
265
  'congrats' => _x( 'Congrats', 'as congratulations', 'freemius' ),
266
  'oops' => _x( 'Oops', 'exclamation', 'freemius' ),
267
- 'yee-haw' => _x( 'Yee-haw', 'interjection expressing joy or exuberance', 'freemius' ),
268
- 'woot' => _x( 'W00t', '(especially in electronic communication) used to express elation, enthusiasm, or triumph.', 'freemius' ),
 
 
269
  'right-on' => _x( 'Right on', 'a positive response', 'freemius' ),
270
- 'hmm' => _x( 'Hmm', 'something somebody says when they are thinking about what you have just said. ', 'freemius' ),
 
271
  'ok' => __( 'O.K', 'freemius' ),
272
  'hey' => _x( 'Hey', 'exclamation', 'freemius' ),
273
- 'heads-up' => _x( 'Heads up', 'advance notice of something that will need attention.', 'freemius' ),
 
274
  #endregion Expressions
275
 
276
  #region Admin Notices
277
  'you-have-latest' => __( 'Seems like you got the latest release.', 'freemius' ),
278
  'you-are-good' => __( 'You are all good!', 'freemius' ),
279
- 'user-exist-message' => __( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'freemius' ),
280
- 'user-exist-message_ownership' => __( 'If you would like to give up the ownership of the plugin\'s account to %s click the Change Ownership button.', 'freemius' ),
281
- 'email-updated-message' => __( 'Your email was successfully updated. You should receive an email with confirmation instructions in few moments.', 'freemius' ),
 
 
 
282
  'name-updated-message' => __( 'Your name was successfully updated.', 'freemius' ),
283
  'x-updated' => __( 'You have successfully updated your %s.', 'freemius' ),
284
  'name-update-failed-message' => __( 'Please provide your full name.', 'freemius' ),
285
- 'verification-email-sent-message' => __( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.', 'freemius' ),
286
- 'addons-info-external-message' => __( 'Just letting you know that the add-ons information of %s is being pulled from an external server.', 'freemius' ),
 
 
287
  'no-cc-required' => __( 'No credit card required', 'freemius' ),
288
- 'premium-activated-message' => __( 'Premium plugin version was successfully activated.', 'freemius' ),
 
289
  'successful-version-upgrade-message' => __( 'The upgrade of %s was successfully completed.', 'freemius' ),
290
- 'activation-with-plan-x-message' => __( 'Your account was successfully activated with the %s plan.', 'freemius' ),
 
291
  'download-latest-x-version-now' => __( 'Download the latest %s version now', 'freemius' ),
292
- 'follow-steps-to-complete-upgrade' => __( 'Please follow these steps to complete the upgrade', 'freemius' ),
 
293
  'download-latest-x-version' => __( 'Download the latest %s version', 'freemius' ),
 
294
  'deactivate-free-version' => __( 'Deactivate the free version', 'freemius' ),
295
  'upload-and-activate' => __( 'Upload and activate the downloaded version', 'freemius' ),
296
  'howto-upload-activate' => __( 'How to upload and activate?', 'freemius' ),
297
- 'addon-successfully-purchased-message' => _x( '%s Add-on was successfully purchased.', '%s - product name, e.g. Facebook add-on was successfully...', 'freemius' ),
298
- 'addon-successfully-upgraded-message' => __( 'Your %s Add-on plan was successfully upgraded.', 'freemius' ),
299
- 'email-verified-message' => __( 'Your email has been successfully verified - you are AWESOME!', 'freemius' ),
 
 
 
300
  'plan-upgraded-message' => __( 'Your plan was successfully upgraded.', 'freemius' ),
301
  'plan-changed-to-x-message' => __( 'Your plan was successfully changed to %s.', 'freemius' ),
302
- 'license-expired-blocking-message' => __( 'Your license has expired. You can still continue using the free plugin forever.', 'freemius' ),
303
- 'license-cancelled' => __( 'Your license has been cancelled. If you think it\'s a mistake, please contact support.', 'freemius' ),
 
 
304
  'trial-started-message' => __( 'Your trial has been successfully started.', 'freemius' ),
305
  'license-activated-message' => __( 'Your license was successfully activated.', 'freemius' ),
306
- 'no-active-license-message' => __( 'It looks like your site currently doesn\'t have an active license.', 'freemius' ),
307
- 'license-deactivation-message' => __( 'Your license was successfully deactivated, you are back to the %s plan.', 'freemius' ),
308
- 'license-deactivation-failed-message' => __( 'It looks like the license deactivation failed.', 'freemius' ),
309
- 'license-activation-failed-message' => __( 'It looks like the license could not be activated.', 'freemius' ),
 
 
 
 
310
  'server-error-message' => __( 'Error received from the server:', 'freemius' ),
311
- 'trial-expired-message' => __( 'Your trial has expired. You can still continue using all our free features.', 'freemius' ),
312
- 'plan-x-downgraded-message' => __( 'Your plan was successfully downgraded. Your %s plan license will expire in %s.', 'freemius' ),
313
- 'plan-downgraded-failure-message' => __( 'Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes.', 'freemius' ),
314
- 'trial-cancel-no-trial-message' => __( 'It looks like you are not in trial mode anymore so there\'s nothing to cancel :)', 'freemius' ),
315
- 'trial-cancel-message' => __( 'Your %s free trial was successfully cancelled.', 'freemius' ),
316
- 'version-x-released' => _x( 'Version %s was released.', '%s - numeric version number', 'freemius' ),
 
 
 
 
 
 
317
  'please-download-x' => __( 'Please download %s.', 'freemius' ),
318
- 'latest-x-version' => _x( 'the latest %s version here', '%s - plan name, as the latest professional version here', 'freemius' ),
319
- 'trial-x-promotion-message' => __( 'How do you like %s so far? Test all our %s premium features with a %d-day free trial.', 'freemius' ),
 
 
320
  'start-free-trial' => _x( 'Start free trial', 'call to action', 'freemius' ),
321
- 'trial-cancel-failure-message' => __( 'Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes.', 'freemius' ),
 
 
 
322
  'trial-utilized' => __( 'You already utilized a trial before.', 'freemius' ),
323
- 'in-trial-mode' => __( 'You are already running the plugin in a trial mode.', 'freemius' ),
324
- 'trial-plan-x-not-exist' => __( 'Plan %s do not exist, therefore, can\'t start a trial.', 'freemius' ),
 
 
325
  'plan-x-no-trial' => __( 'Plan %s does not support a trial period.', 'freemius' ),
326
- 'no-trials' => __( 'None of the plugin\'s plans supports a trial period.', 'freemius' ),
327
- 'unexpected-api-error' => __( 'Unexpected API error. Please contact the plugin\'s author with the following error.', 'freemius' ),
 
 
328
  'no-commitment-for-x-days' => __( 'No commitment for %s days - cancel anytime!', 'freemius' ),
329
- 'license-expired-non-blocking-message' => __( 'Your license has expired. You can still continue using all the %s features, but you\'ll need to renew your license to continue getting updates and support.', 'freemius' ),
 
330
  'could-not-activate-x' => __( 'Couldn\'t activate %s.', 'freemius' ),
331
  'contact-us-with-error-message' => __( 'Please contact us with the following message:', 'freemius' ),
332
- 'plan-did-not-change-message' => __( 'It looks like you are still on the %s plan. If you did upgrade or change your plan, it\'s probably an issue on our side - sorry.', 'freemius' ),
 
333
  'contact-us-here' => __( 'Please contact us here', 'freemius' ),
334
- 'plan-did-not-change-email-message' => __( 'I have upgraded my account but when I try to Sync the License, the plan remains %s.', 'freemius' ),
 
335
  #endregion Admin Notices
336
  #region Connectivity Issues
337
- 'connectivity-test-fails-message' => __( 'From unknown reason, the API connectivity test failed.', 'freemius' ),
338
- 'connectivity-test-maybe-temporary' => __( 'It\'s probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?', 'freemius' ),
339
- 'curl-missing-message' => __( 'We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server.', 'freemius' ),
340
- 'cloudflare-blocks-connection-message' => __( 'From unknown reason, CloudFlare, the firewall we use, blocks the connection.', 'freemius' ),
341
- 'x-requires-access-to-api' => _x( '%s requires an access to our API.', 'as pluginX requires an access to our API', 'freemius' ),
342
- 'squid-blocks-connection-message' => __( 'It looks like your server is using Squid ACL (access control lists), which blocks the connection.', 'freemius' ),
 
 
 
 
 
 
343
  'squid-no-clue-title' => __( 'I don\'t know what is Squid or ACL, help me!', 'freemius' ),
344
- 'squid-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'freemius' ),
 
345
  'sysadmin-title' => __( 'I\'m a system administrator', 'freemius' ),
346
- 'squid-sysadmin-desc' => __( 'Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again.', 'freemius' ),
347
- 'curl-missing-no-clue-title' => __( 'I don\'t know what is cURL or how to install it, help me!', 'freemius' ),
348
- 'curl-missing-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'freemius' ),
349
- 'curl-missing-sysadmin-desc' => __( 'Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use \'phpinfo()\'. Once activated, deactivate the plugin and reactivate it back again.', 'freemius' ),
350
- 'happy-to-resolve-issue-asap' => __( 'We are sure it\'s an issue on our side and more than happy to resolve it for you ASAP if you give us a chance.', 'freemius' ),
351
- 'contact-support-before-deactivation' => __( 'Sorry for the inconvenience and we are here to help if you give us a chance.', 'freemius' ),
 
 
 
 
 
 
352
  'fix-issue-title' => __( 'Yes - I\'m giving you a chance to fix it', 'freemius' ),
353
- 'fix-issue-desc' => __( 'We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update.', 'freemius' ),
 
354
  'install-previous-title' => __( 'Let\'s try your previous version', 'freemius' ),
355
- 'install-previous-desc' => __( 'Uninstall this version and install the previous one.', 'freemius' ),
 
356
  'deactivate-plugin-title' => __( 'That\'s exhausting, please deactivate', 'freemius' ),
357
- 'deactivate-plugin-desc' => __( 'We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future.', 'freemius' ),
358
- 'fix-request-sent-message' => __( 'Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience.', 'freemius' ),
359
- 'server-blocking-access' => _x( 'Your server is blocking the access to Freemius\' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s', '%1s - plugin title, %2s - API domain', 'freemius' ),
360
- 'wrong-authentication-param-message' => __( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'freemius' ),
 
 
 
 
361
  #endregion Connectivity Issues
362
  #region Change Owner
363
- 'change-owner-request-sent-x' => __( 'Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder.', 'freemius' ),
364
- 'change-owner-request_owner-confirmed' => __( 'Thanks for confirming the ownership change. An email was just sent to %s for final approval.', 'freemius' ),
 
 
365
  'change-owner-request_candidate-confirmed' => __( '%s is the new owner of the account.', 'freemius' ),
366
  #endregion Change Owner
367
- 'addon-x-cannot-run-without-y' => _x( '%s cannot run without %s.', 'addonX cannot run without pluginY', 'freemius' ),
368
- 'addon-x-cannot-run-without-parent' => _x( '%s cannot run without the plugin.', 'addonX cannot run...', 'freemius' ),
369
- 'plugin-x-activation-message' => _x( '%s activation was successfully completed.', 'pluginX activation was successfully...', 'freemius' ),
370
- 'features-and-pricing' => _x( 'Features & Pricing', 'Plugin installer section title', 'freemius' ),
371
- 'free-addon-not-deployed' => __( 'Add-on must be deployed to WordPress.org or Freemius.', 'freemius' ),
 
 
 
 
 
372
  'paid-addon-not-deployed' => __( 'Paid add-on must be deployed to Freemius.', 'freemius' ),
 
373
  #region Add-On Licensing
374
- 'addon-no-license-message' => __( '%s is a premium only add-on. You have to purchase a license first before activating the plugin.', 'freemius' ),
375
- 'addon-trial-cancelled-message' => __( '%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you\'ll have to purchase a license.', 'freemius' ),
376
- #endregion Add-On Licensing
 
 
 
 
377
  #region Billing Cycles
 
378
  'monthly' => _x( 'Monthly', 'as every month', 'freemius' ),
379
  'mo' => _x( 'mo', 'as monthly period', 'freemius' ),
380
  'annual' => _x( 'Annual', 'as once a year', 'freemius' ),
@@ -387,4 +507,28 @@
387
  'save-x' => _x( 'Save %s', 'as a discount of $5 or 10%', 'freemius' ),
388
  #endregion Billing Cycles
389
  'view-details' => __( 'View details', 'freemius' ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
390
  );
32
  global $fs_text;
33
 
34
  $fs_text = array(
35
+ 'account' => __( 'Account', 'freemius' ),
36
+ 'addon' => __( 'Add On', 'freemius' ),
37
+ 'contact-us' => __( 'Contact Us', 'freemius' ),
38
+ 'contact-support' => __( 'Contact Support', 'freemius' ),
39
+ 'change-ownership' => __( 'Change Ownership', 'freemius' ),
40
+ 'support' => __( 'Support', 'freemius' ),
41
+ 'support-forum' => __( 'Support Forum', 'freemius' ),
42
+ 'add-ons' => __( 'Add Ons', 'freemius' ),
43
+ 'upgrade' => _x( 'Upgrade', 'verb', 'freemius' ),
44
+ 'awesome' => __( 'Awesome', 'freemius' ),
45
+ 'pricing' => _x( 'Pricing', 'noun', 'freemius' ),
46
+ 'price' => _x( 'Price', 'noun', 'freemius' ),
47
+ 'unlimited-updates' => __( 'Unlimited Updates', 'freemius' ),
48
+ 'downgrade' => _x( 'Downgrade', 'verb', 'freemius' ),
49
+ 'cancel-trial' => __( 'Cancel Trial', 'freemius' ),
50
+ 'free-trial' => __( 'Free Trial', 'freemius' ),
51
+ 'start-free-x' => __( 'Start my free %s', 'freemius' ),
52
+ 'no-commitment-x' => __( 'No commitment for %s - cancel anytime', 'freemius' ),
53
+ 'after-x-pay-as-little-y' => __( 'After your free %s, pay as little as %s', 'freemius' ),
54
+ 'details' => __( 'Details', 'freemius' ),
55
+ 'account-details' => __( 'Account Details', 'freemius' ),
56
+ 'delete' => _x( 'Delete', 'verb', 'freemius' ),
57
+ 'show' => _x( 'Show', 'verb', 'freemius' ),
58
+ 'hide' => _x( 'Hide', 'verb', 'freemius' ),
59
+ 'edit' => _x( 'Edit', 'verb', 'freemius' ),
60
+ 'update' => _x( 'Update', 'verb', 'freemius' ),
61
+ 'date' => __( 'Date', 'freemius' ),
62
+ 'amount' => __( 'Amount', 'freemius' ),
63
+ 'invoice' => __( 'Invoice', 'freemius' ),
64
+ 'billing' => __( 'Billing', 'freemius' ),
65
+ 'payments' => __( 'Payments', 'freemius' ),
66
+ 'delete-account' => __( 'Delete Account', 'freemius' ),
67
+ 'dismiss' => _x( 'Dismiss', 'as close a window', 'freemius' ),
68
+ 'plan' => _x( 'Plan', 'as product pricing plan', 'freemius' ),
69
+ 'change-plan' => __( 'Change Plan', 'freemius' ),
70
+ 'download-x-version' => _x( 'Download %s Version', 'as download professional version', 'freemius' ),
71
+ 'download-x-version-now' => _x( 'Download %s version now', 'as download professional version now',
72
+ 'freemius' ),
73
+ 'download-latest' => _x( 'Download Latest', 'as download latest version', 'freemius' ),
74
+ 'you-have-x-license' => _x( 'You have a %s license.', 'E.g. you have a professional license.',
75
+ 'freemius' ),
76
+ 'new' => __( 'New', 'freemius' ),
77
+ 'free' => __( 'Free', 'freemius' ),
78
+ 'trial' => _x( 'Trial', 'as trial plan', 'freemius' ),
79
+ 'start-trial' => _x( 'Start Trial', 'as starting a trial plan', 'freemius' ),
80
+ 'purchase' => _x( 'Purchase', 'verb', 'freemius' ),
81
+ 'purchase-license' => __( 'Purchase License', 'freemius' ),
82
+ 'buy' => _x( 'Buy', 'verb', 'freemius' ),
83
+ 'buy-license' => __( 'Buy License', 'freemius' ),
84
+ 'license-single-site' => __( 'Single Site License', 'freemius' ),
85
+ 'license-unlimited' => __( 'Unlimited Licenses', 'freemius' ),
86
+ 'license-x-sites' => __( 'Up to %s Sites', 'freemius' ),
87
+ 'renew-license-now' => __( '%sRenew your license now%s to access version %s features and support.',
88
+ 'freemius' ),
89
+ 'ask-for-upgrade-email-address' => __( "Enter the email address you've used for the upgrade below and we will resend you the license key.",
90
+ 'freemius' ),
91
+ 'x-plan' => _x( '%s Plan', 'e.g. Professional Plan', 'freemius' ),
92
+ 'you-are-step-away' => __( 'You are just one step away - %s', 'freemius' ),
93
+ 'activate-x-now' => _x( 'Complete "%s" Activation Now',
94
+ '%s - plugin name. As complete "Jetpack" activation now', 'freemius' ),
95
+ 'few-plugin-tweaks' => __( 'We made a few tweaks to the plugin, %s', 'freemius' ),
96
+ 'optin-x-now' => __( 'Opt-in to make "%s" Better!', 'freemius' ),
97
+ 'error' => __( 'Error', 'freemius' ),
98
+ 'failed-finding-main-path' => __( 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.',
99
+ 'freemius' ),
100
  #region Account
101
 
102
+ 'expiration' => _x( 'Expiration', 'as expiration date', 'freemius' ),
103
+ 'license' => _x( 'License', 'as software license', 'freemius' ),
104
+ 'not-verified' => __( 'not verified', 'freemius' ),
105
+ 'verify-email' => __( 'Verify Email', 'freemius' ),
106
+ 'expires-in' => _x( 'Expires in %s', 'e.g. expires in 2 months', 'freemius' ),
107
+ 'renews-in' => _x( 'Auto renews in %s', 'e.g. auto renews in 2 months', 'freemius' ),
108
+ 'no-expiration' => __( 'No expiration', 'freemius' ),
109
+ 'expired' => __( 'Expired', 'freemius' ),
110
+ 'cancelled' => __( 'Cancelled', 'freemius' ),
111
+ 'in-x' => _x( 'In %s', 'e.g. In 2 hours', 'freemius' ),
112
+ 'x-ago' => _x( '%s ago', 'e.g. 2 min ago', 'freemius' ),
113
+ 'version' => _x( 'Version', 'as plugin version', 'freemius' ),
114
+ 'name' => __( 'Name', 'freemius' ),
115
+ 'email' => __( 'Email', 'freemius' ),
116
+ 'email-address' => __( 'Email address', 'freemius' ),
117
+ 'verified' => __( 'Verified', 'freemius' ),
118
+ 'plugin' => __( 'Plugin', 'freemius' ),
119
+ 'plugins' => __( 'Plugins', 'freemius' ),
120
+ 'themes' => __( 'Themes', 'freemius' ),
121
+ 'path' => _x( 'Path', 'as file/folder path', 'freemius' ),
122
+ 'title' => __( 'Title', 'freemius' ),
123
+ 'free-version' => __( 'Free version', 'freemius' ),
124
+ 'premium-version' => __( 'Premium version', 'freemius' ),
125
+ 'slug' => _x( 'Slug', 'as WP plugin slug', 'freemius' ),
126
+ 'id' => __( 'ID', 'freemius' ),
127
+ 'users' => __( 'Users', 'freemius' ),
128
+ 'plugin-installs' => __( 'Plugin Installs', 'freemius' ),
129
+ 'sites' => _x( 'Sites', 'like websites', 'freemius' ),
130
+ 'user-id' => __( 'User ID', 'freemius' ),
131
+ 'site-id' => __( 'Site ID', 'freemius' ),
132
+ 'public-key' => __( 'Public Key', 'freemius' ),
133
+ 'secret-key' => __( 'Secret Key', 'freemius' ),
134
+ 'no-secret' => _x( 'No Secret', 'as secret encryption key missing', 'freemius' ),
135
+ 'no-id' => __( 'No ID', 'freemius' ),
136
+ 'sync-license' => _x( 'Sync License', 'as synchronize license', 'freemius' ),
137
+ 'sync' => _x( 'Sync', 'as synchronize', 'freemius' ),
138
+ 'activate-license' => __( 'Activate License', 'freemius' ),
139
+ 'activate-free-version' => __( 'Activate Free Version', 'freemius' ),
140
+ 'activate-license-message' => __( 'Please enter the license key that you received in the email right after the purchase:',
141
+ 'freemius' ),
142
+ 'activating-license' => __( 'Activating license...', 'freemius' ),
143
+ 'change-license' => __( 'Change License', 'freemius' ),
144
+ 'update-license' => __( 'Update License', 'freemius' ),
145
+ 'deactivate-license' => __( 'Deactivate License', 'freemius' ),
146
+ 'activate' => __( 'Activate', 'freemius' ),
147
+ 'deactivate' => __( 'Deactivate', 'freemius' ),
148
+ 'skip-deactivate' => __( 'Skip & Deactivate', 'freemius' ),
149
+ 'no-deactivate' => __( 'No - just deactivate', 'freemius' ),
150
+ 'yes-do-your-thing' => __( 'Yes - do your thing', 'freemius' ),
151
+ 'active' => _x( 'Active', 'active mode', 'freemius' ),
152
+ 'is-active' => _x( 'Is Active', 'is active mode?', 'freemius' ),
153
+ 'install-now' => __( 'Install Now', 'freemius' ),
154
+ 'install-update-now' => __( 'Install Update Now', 'freemius' ),
155
+ 'more-information-about-x' => __( 'More information about %s', 'freemius' ),
156
+ 'localhost' => __( 'Localhost', 'freemius' ),
157
+ 'activate-x-plan' => _x( 'Activate %s Plan', 'as activate Professional plan', 'freemius' ),
158
+ 'x-left' => _x( '%s left', 'as 5 licenses left', 'freemius' ),
159
+ 'last-license' => __( 'Last license', 'freemius' ),
160
+ 'what-is-your-x' => __( 'What is your %s?', 'freemius' ),
161
+ 'activate-this-addon' => __( 'Activate this add-on', 'freemius' ),
162
+ 'deactivate-license-confirm' => __( 'Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?',
163
+ 'freemius' ),
164
+ 'delete-account-x-confirm' => __( 'Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the "Cancel" button, and first "Downgrade" your account. Are you sure you would like to continue with the deletion?',
165
+ 'freemius' ),
166
+ 'delete-account-confirm' => __( 'Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?',
167
+ 'freemius' ),
168
+ 'downgrade-x-confirm' => __( 'Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s.',
169
+ 'freemius' ),
170
+ 'cancel-trial-confirm' => __( 'Cancelling the trial will immediately block access to all premium features. Are you sure?',
171
+ 'freemius' ),
172
+ 'after-downgrade-non-blocking' => __( 'You can still enjoy all %s features but you will not have access to plugin updates and support.',
173
+ 'freemius' ),
174
+ 'after-downgrade-blocking' => __( 'Once your license expire you can still use the Free version but you will NOT have access to the %s features.',
175
+ 'freemius' ),
176
+ 'proceed-confirmation' => __( 'Are you sure you want to proceed?', 'freemius' ),
177
  #endregion Account
178
 
179
  'add-ons-for-x' => __( 'Add Ons for %s', 'freemius' ),
180
+ 'add-ons-missing' => __( 'We could\'nt load the add-ons list. It\'s probably an issue on our side, please try to come back in few minutes.',
181
+ 'freemius' ),
182
  #region Plugin Deactivation
183
  'anonymous-feedback' => __( 'Anonymous feedback', 'freemius' ),
184
  'quick-feedback' => __( 'Quick feedback', 'freemius' ),
185
+ 'deactivation-share-reason' => __( 'If you have a moment, please let us know why you are deactivating',
186
+ 'freemius' ),
187
  'deactivation-modal-button-confirm' => __( 'Yes - Deactivate', 'freemius' ),
188
  'deactivation-modal-button-submit' => __( 'Submit & Deactivate', 'freemius' ),
189
+ 'cancel' => __( 'Cancel', 'freemius' ),
190
  'reason-no-longer-needed' => __( 'I no longer need the plugin', 'freemius' ),
191
  'reason-found-a-better-plugin' => __( 'I found a better plugin', 'freemius' ),
192
  'reason-needed-for-a-short-period' => __( 'I only needed the plugin for a short period', 'freemius' ),
193
  'reason-broke-my-site' => __( 'The plugin broke my site', 'freemius' ),
194
  'reason-suddenly-stopped-working' => __( 'The plugin suddenly stopped working', 'freemius' ),
195
  'reason-cant-pay-anymore' => __( "I can't pay for it anymore", 'freemius' ),
196
+ 'reason-temporary-deactivation' => __( "It's a temporary deactivation. I'm just debugging an issue.",
197
+ 'freemius' ),
198
+ 'reason-other' => _x( 'Other',
199
+ 'the text of the "other" reason for deactivating the plugin that is shown in the modal box.', 'freemius' ),
200
  'ask-for-reason-message' => __( 'Kindly tell us the reason so we can improve.', 'freemius' ),
201
  'placeholder-plugin-name' => __( "What's the plugin's name?", 'freemius' ),
202
  'placeholder-comfortable-price' => __( 'What price would you feel comfortable paying?', 'freemius' ),
203
  'reason-couldnt-make-it-work' => __( "I couldn't understand how to make it work", 'freemius' ),
204
+ 'reason-great-but-need-specific-feature' => __( "The plugin is great, but I need specific feature that you don't support",
205
+ 'freemius' ),
206
  'reason-not-working' => __( 'The plugin is not working', 'freemius' ),
207
  'reason-not-what-i-was-looking-for' => __( "It's not what I was looking for", 'freemius' ),
208
  'reason-didnt-work-as-expected' => __( "The plugin didn't work as expected", 'freemius' ),
209
  'placeholder-feature' => __( 'What feature?', 'freemius' ),
210
+ 'placeholder-share-what-didnt-work' => __( "Kindly share what didn't work so we can fix it for future users...",
211
+ 'freemius' ),
212
  'placeholder-what-youve-been-looking-for' => __( "What you've been looking for?", 'freemius' ),
213
  'placeholder-what-did-you-expect' => __( "What did you expect?", 'freemius' ),
214
  'reason-didnt-work' => __( "The plugin didn't work", 'freemius' ),
215
  'reason-dont-like-to-share-my-information' => __( "I don't like to share my information with you", 'freemius' ),
216
+ 'dont-have-to-share-any-data' => __( "You might have missed it, but you don't have to share any data and can just %s the opt-in.",
217
+ 'freemius' ),
218
  #endregion Plugin Deactivation
219
 
220
  #region Connect
221
  'hey-x' => _x( 'Hey %s,', 'greeting', 'freemius' ),
222
  'thanks-x' => _x( 'Thanks %s!', 'a greeting. E.g. Thanks John!', 'freemius' ),
223
+ 'connect-message' => __( 'Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s.',
224
+ 'freemius' ),
225
+ 'connect-message_on-update' => __( 'Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that\'s okay! %1$s will still work just fine.',
226
+ 'freemius' ),
227
+ 'pending-activation-message' => __( 'You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s.', 'freemius' ),
228
+ 'complete-the-install' => __( 'complete the install', 'freemius' ),
229
+ 'start-the-trial' => __( 'start the trial', 'freemius' ),
230
+ 'thanks-for-purchasing' => __( 'Thanks for purchasing %s! To get started, please enter your license key:',
231
+ 'freemius' ),
232
+ 'license-sync-disclaimer' => __( 'The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license.',
233
+ 'freemius' ),
234
  'what-permissions' => __( 'What permissions are being granted?', 'freemius' ),
235
  'permissions-profile' => __( 'Your Profile Overview', 'freemius' ),
236
  'permissions-profile_desc' => __( 'Name and email address', 'freemius' ),
237
  'permissions-site' => __( 'Your Site Overview', 'freemius' ),
238
+ 'permissions-site_desc' => __( 'Site URL, WP version, PHP info, plugins & themes',
239
+ 'freemius' ),
240
  'permissions-events' => __( 'Current Plugin Events', 'freemius' ),
241
  'permissions-events_desc' => __( 'Activation, deactivation and uninstall', 'freemius' ),
242
  'permissions-plugins_themes' => __( 'Plugins & Themes', 'freemius' ),
243
  'permissions-plugins_themes_desc' => __( 'Titles, versions and state.', 'freemius' ),
244
+ 'permissions-admin-notices' => __( 'Admin Notices', 'freemius' ),
245
  'permissions-newsletter' => __( 'Newsletter', 'freemius' ),
246
  'permissions-newsletter_desc' => __( 'Updates, announcements, marketing, no spam', 'freemius' ),
247
  'privacy-policy' => __( 'Privacy Policy', 'freemius' ),
248
  'tos' => __( 'Terms of Service', 'freemius' ),
249
  'activating' => _x( 'Activating', 'as activating plugin', 'freemius' ),
250
+ 'sending-email' => _x( 'Sending email', 'as in the process of sending an email',
251
+ 'freemius' ),
252
  'opt-in-connect' => _x( 'Allow & Continue', 'button label', 'freemius' ),
253
  'agree-activate-license' => _x( 'Agree & Activate License', 'button label', 'freemius' ),
254
  'skip' => _x( 'Skip', 'verb', 'freemius' ),
260
  'have-license-key' => __( 'Have a license key?', 'freemius' ),
261
  'dont-have-license-key' => __( 'Don\'t have a license key?', 'freemius' ),
262
  'cant-find-license-key' => __( "Can't find your license key?", 'freemius' ),
263
+ 'email-not-found' => __( "We couldn't find your email address in the system, are you sure it's the right address?",
264
+ 'freemius' ),
265
+ 'no-active-licenses' => __( "We can't see any active licenses associated with that email address, are you sure it's the right address?",
266
+ 'freemius' ),
267
+ 'opt-in' => __( 'Opt In', 'freemius' ),
268
+ 'opt-out' => __( 'Opt Out', 'freemius' ),
269
+ 'opt-out-cancel' => __( 'On second thought - I want to continue helping',
270
+ 'freemius' ),
271
+ 'opting-out' => __( 'Opting out...', 'freemius' ),
272
+ 'opting-in' => __( 'Opting in...', 'freemius' ),
273
+ 'opt-out-message-appreciation' => __( 'We appreciate your help in making the %s better by letting us track some usage data.',
274
+ 'freemius' ),
275
+ 'opt-out-message-usage-tracking' => __( "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking.",
276
+ 'freemius' ),
277
+ 'opt-out-message-clicking-opt-out' => __( 'By clicking "Opt Out", we will no longer be sending any data from %s to %s.',
278
+ 'freemius' ),
279
  #endregion Connect
280
 
281
  #region Screenshots
293
  'blocked' => _x( 'Blocked', 'as connection blocked', 'freemius' ),
294
  'api' => _x( 'API', 'as application program interface', 'freemius' ),
295
  'sdk' => _x( 'SDK', 'as software development kit versions', 'freemius' ),
296
+ 'sdk-versions' => _x( 'SDK Versions', 'as software development kit versions',
297
+ 'freemius' ),
298
  'plugin-path' => _x( 'Plugin Path', 'as plugin folder path', 'freemius' ),
299
  'sdk-path' => _x( 'SDK Path', 'as sdk path', 'freemius' ),
300
  'addons-of-x' => __( 'Add Ons of Plugin %s', 'freemius' ),
301
+ 'delete-all-confirm' => __( 'Are you sure you want to delete all Freemius data?',
302
+ 'freemius' ),
303
  'actions' => __( 'Actions', 'freemius' ),
304
  'delete-all-accounts' => __( 'Delete All Accounts', 'freemius' ),
305
  'start-fresh' => __( 'Start Fresh', 'freemius' ),
312
  #region Expressions
313
  'congrats' => _x( 'Congrats', 'as congratulations', 'freemius' ),
314
  'oops' => _x( 'Oops', 'exclamation', 'freemius' ),
315
+ 'yee-haw' => _x( 'Yee-haw', 'interjection expressing joy or exuberance',
316
+ 'freemius' ),
317
+ 'woot' => _x( 'W00t',
318
+ '(especially in electronic communication) used to express elation, enthusiasm, or triumph.', 'freemius' ),
319
  'right-on' => _x( 'Right on', 'a positive response', 'freemius' ),
320
+ 'hmm' => _x( 'Hmm',
321
+ 'something somebody says when they are thinking about what you have just said. ', 'freemius' ),
322
  'ok' => __( 'O.K', 'freemius' ),
323
  'hey' => _x( 'Hey', 'exclamation', 'freemius' ),
324
+ 'heads-up' => _x( 'Heads up',
325
+ 'advance notice of something that will need attention.', 'freemius' ),
326
  #endregion Expressions
327
 
328
  #region Admin Notices
329
  'you-have-latest' => __( 'Seems like you got the latest release.', 'freemius' ),
330
  'you-are-good' => __( 'You are all good!', 'freemius' ),
331
+ 'user-exist-message' => __( 'Sorry, we could not complete the email update. Another user with the same email is already registered.',
332
+ 'freemius' ),
333
+ 'user-exist-message_ownership' => __( 'If you would like to give up the ownership of the plugin\'s account to %s click the Change Ownership button.',
334
+ 'freemius' ),
335
+ 'email-updated-message' => __( 'Your email was successfully updated. You should receive an email with confirmation instructions in few moments.',
336
+ 'freemius' ),
337
  'name-updated-message' => __( 'Your name was successfully updated.', 'freemius' ),
338
  'x-updated' => __( 'You have successfully updated your %s.', 'freemius' ),
339
  'name-update-failed-message' => __( 'Please provide your full name.', 'freemius' ),
340
+ 'verification-email-sent-message' => __( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.',
341
+ 'freemius' ),
342
+ 'addons-info-external-message' => __( 'Just letting you know that the add-ons information of %s is being pulled from an external server.',
343
+ 'freemius' ),
344
  'no-cc-required' => __( 'No credit card required', 'freemius' ),
345
+ 'premium-activated-message' => __( 'Premium plugin version was successfully activated.',
346
+ 'freemius' ),
347
  'successful-version-upgrade-message' => __( 'The upgrade of %s was successfully completed.', 'freemius' ),
348
+ 'activation-with-plan-x-message' => __( 'Your account was successfully activated with the %s plan.',
349
+ 'freemius' ),
350
  'download-latest-x-version-now' => __( 'Download the latest %s version now', 'freemius' ),
351
+ 'follow-steps-to-complete-upgrade' => __( 'Please follow these steps to complete the upgrade',
352
+ 'freemius' ),
353
  'download-latest-x-version' => __( 'Download the latest %s version', 'freemius' ),
354
+ 'download-latest-version' => __( 'Download the latest version', 'freemius' ),
355
  'deactivate-free-version' => __( 'Deactivate the free version', 'freemius' ),
356
  'upload-and-activate' => __( 'Upload and activate the downloaded version', 'freemius' ),
357
  'howto-upload-activate' => __( 'How to upload and activate?', 'freemius' ),
358
+ 'addon-successfully-purchased-message' => _x( '%s Add-on was successfully purchased.',
359
+ '%s - product name, e.g. Facebook add-on was successfully...', 'freemius' ),
360
+ 'addon-successfully-upgraded-message' => __( 'Your %s Add-on plan was successfully upgraded.',
361
+ 'freemius' ),
362
+ 'email-verified-message' => __( 'Your email has been successfully verified - you are AWESOME!',
363
+ 'freemius' ),
364
  'plan-upgraded-message' => __( 'Your plan was successfully upgraded.', 'freemius' ),
365
  'plan-changed-to-x-message' => __( 'Your plan was successfully changed to %s.', 'freemius' ),
366
+ 'license-expired-blocking-message' => __( 'Your license has expired. You can still continue using the free plugin forever.',
367
+ 'freemius' ),
368
+ 'license-cancelled' => __( 'Your license has been cancelled. If you think it\'s a mistake, please contact support.',
369
+ 'freemius' ),
370
  'trial-started-message' => __( 'Your trial has been successfully started.', 'freemius' ),
371
  'license-activated-message' => __( 'Your license was successfully activated.', 'freemius' ),
372
+ 'no-active-license-message' => __( 'It looks like your site currently doesn\'t have an active license.',
373
+ 'freemius' ),
374
+ 'license-deactivation-message' => __( 'Your license was successfully deactivated, you are back to the %s plan.',
375
+ 'freemius' ),
376
+ 'license-deactivation-failed-message' => __( 'It looks like the license deactivation failed.',
377
+ 'freemius' ),
378
+ 'license-activation-failed-message' => __( 'It looks like the license could not be activated.',
379
+ 'freemius' ),
380
  'server-error-message' => __( 'Error received from the server:', 'freemius' ),
381
+ 'trial-expired-message' => __( 'Your trial has expired. You can still continue using all our free features.',
382
+ 'freemius' ),
383
+ 'plan-x-downgraded-message' => __( 'Your plan was successfully downgraded. Your %s plan license will expire in %s.',
384
+ 'freemius' ),
385
+ 'plan-downgraded-failure-message' => __( 'Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes.',
386
+ 'freemius' ),
387
+ 'trial-cancel-no-trial-message' => __( 'It looks like you are not in trial mode anymore so there\'s nothing to cancel :)',
388
+ 'freemius' ),
389
+ 'trial-cancel-message' => __( 'Your %s free trial was successfully cancelled.',
390
+ 'freemius' ),
391
+ 'version-x-released' => _x( 'Version %s was released.', '%s - numeric version number',
392
+ 'freemius' ),
393
  'please-download-x' => __( 'Please download %s.', 'freemius' ),
394
+ 'latest-x-version' => _x( 'the latest %s version here',
395
+ '%s - plan name, as the latest professional version here', 'freemius' ),
396
+ 'trial-x-promotion-message' => __( 'How do you like %s so far? Test all our %s premium features with a %d-day free trial.',
397
+ 'freemius' ),
398
  'start-free-trial' => _x( 'Start free trial', 'call to action', 'freemius' ),
399
+ 'starting-trial' => __( 'Starting trial', 'freemius' ),
400
+ 'please-wait' => __( 'Please wait', 'freemius' ),
401
+ 'trial-cancel-failure-message' => __( 'Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes.',
402
+ 'freemius' ),
403
  'trial-utilized' => __( 'You already utilized a trial before.', 'freemius' ),
404
+ 'in-trial-mode' => __( 'You are already running the plugin in a trial mode.',
405
+ 'freemius' ),
406
+ 'trial-plan-x-not-exist' => __( 'Plan %s do not exist, therefore, can\'t start a trial.',
407
+ 'freemius' ),
408
  'plan-x-no-trial' => __( 'Plan %s does not support a trial period.', 'freemius' ),
409
+ 'no-trials' => __( 'None of the plugin\'s plans supports a trial period.',
410
+ 'freemius' ),
411
+ 'unexpected-api-error' => __( 'Unexpected API error. Please contact the plugin\'s author with the following error.',
412
+ 'freemius' ),
413
  'no-commitment-for-x-days' => __( 'No commitment for %s days - cancel anytime!', 'freemius' ),
414
+ 'license-expired-non-blocking-message' => __( 'Your license has expired. You can still continue using all the %s features, but you\'ll need to renew your license to continue getting updates and support.',
415
+ 'freemius' ),
416
  'could-not-activate-x' => __( 'Couldn\'t activate %s.', 'freemius' ),
417
  'contact-us-with-error-message' => __( 'Please contact us with the following message:', 'freemius' ),
418
+ 'plan-did-not-change-message' => __( 'It looks like you are still on the %s plan. If you did upgrade or change your plan, it\'s probably an issue on our side - sorry.',
419
+ 'freemius' ),
420
  'contact-us-here' => __( 'Please contact us here', 'freemius' ),
421
+ 'plan-did-not-change-email-message' => __( 'I have upgraded my account but when I try to Sync the License, the plan remains %s.',
422
+ 'freemius' ),
423
  #endregion Admin Notices
424
  #region Connectivity Issues
425
+ 'connectivity-test-fails-message' => __( 'From unknown reason, the API connectivity test failed.',
426
+ 'freemius' ),
427
+ 'connectivity-test-maybe-temporary' => __( 'It\'s probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?',
428
+ 'freemius' ),
429
+ 'curl-missing-message' => __( 'We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server.',
430
+ 'freemius' ),
431
+ 'cloudflare-blocks-connection-message' => __( 'From unknown reason, CloudFlare, the firewall we use, blocks the connection.',
432
+ 'freemius' ),
433
+ 'x-requires-access-to-api' => _x( '%s requires an access to our API.',
434
+ 'as pluginX requires an access to our API', 'freemius' ),
435
+ 'squid-blocks-connection-message' => __( 'It looks like your server is using Squid ACL (access control lists), which blocks the connection.',
436
+ 'freemius' ),
437
  'squid-no-clue-title' => __( 'I don\'t know what is Squid or ACL, help me!', 'freemius' ),
438
+ 'squid-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.',
439
+ 'freemius' ),
440
  'sysadmin-title' => __( 'I\'m a system administrator', 'freemius' ),
441
+ 'squid-sysadmin-desc' => __( 'Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again.',
442
+ 'freemius' ),
443
+ 'curl-missing-no-clue-title' => __( 'I don\'t know what is cURL or how to install it, help me!',
444
+ 'freemius' ),
445
+ 'curl-missing-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.',
446
+ 'freemius' ),
447
+ 'curl-missing-sysadmin-desc' => __( 'Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use \'phpinfo()\'. Once activated, deactivate the plugin and reactivate it back again.',
448
+ 'freemius' ),
449
+ 'happy-to-resolve-issue-asap' => __( 'We are sure it\'s an issue on our side and more than happy to resolve it for you ASAP if you give us a chance.',
450
+ 'freemius' ),
451
+ 'contact-support-before-deactivation' => __( 'Sorry for the inconvenience and we are here to help if you give us a chance.',
452
+ 'freemius' ),
453
  'fix-issue-title' => __( 'Yes - I\'m giving you a chance to fix it', 'freemius' ),
454
+ 'fix-issue-desc' => __( 'We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update.',
455
+ 'freemius' ),
456
  'install-previous-title' => __( 'Let\'s try your previous version', 'freemius' ),
457
+ 'install-previous-desc' => __( 'Uninstall this version and install the previous one.',
458
+ 'freemius' ),
459
  'deactivate-plugin-title' => __( 'That\'s exhausting, please deactivate', 'freemius' ),
460
+ 'deactivate-plugin-desc' => __( 'We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future.',
461
+ 'freemius' ),
462
+ 'fix-request-sent-message' => __( 'Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience.',
463
+ 'freemius' ),
464
+ 'server-blocking-access' => _x( 'Your server is blocking the access to Freemius\' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s',
465
+ '%1s - plugin title, %2s - API domain', 'freemius' ),
466
+ 'wrong-authentication-param-message' => __( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.',
467
+ 'freemius' ),
468
  #endregion Connectivity Issues
469
  #region Change Owner
470
+ 'change-owner-request-sent-x' => __( 'Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder.',
471
+ 'freemius' ),
472
+ 'change-owner-request_owner-confirmed' => __( 'Thanks for confirming the ownership change. An email was just sent to %s for final approval.',
473
+ 'freemius' ),
474
  'change-owner-request_candidate-confirmed' => __( '%s is the new owner of the account.', 'freemius' ),
475
  #endregion Change Owner
476
+ 'addon-x-cannot-run-without-y' => _x( '%s cannot run without %s.',
477
+ 'addonX cannot run without pluginY', 'freemius' ),
478
+ 'addon-x-cannot-run-without-parent' => _x( '%s cannot run without the plugin.', 'addonX cannot run...',
479
+ 'freemius' ),
480
+ 'plugin-x-activation-message' => _x( '%s activation was successfully completed.',
481
+ 'pluginX activation was successfully...', 'freemius' ),
482
+ 'features-and-pricing' => _x( 'Features & Pricing', 'Plugin installer section title',
483
+ 'freemius' ),
484
+ 'free-addon-not-deployed' => __( 'Add-on must be deployed to WordPress.org or Freemius.',
485
+ 'freemius' ),
486
  'paid-addon-not-deployed' => __( 'Paid add-on must be deployed to Freemius.', 'freemius' ),
487
+ #--------------------------------------------------------------------------------
488
  #region Add-On Licensing
489
+ #--------------------------------------------------------------------------------
490
+ 'addon-no-license-message' => __( '%s is a premium only add-on. You have to purchase a license first before activating the plugin.',
491
+ 'freemius' ),
492
+ 'addon-trial-cancelled-message' => __( '%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you\'ll have to purchase a license.',
493
+ 'freemius' ),
494
+ #endregion
495
+ #--------------------------------------------------------------------------------
496
  #region Billing Cycles
497
+ #--------------------------------------------------------------------------------
498
  'monthly' => _x( 'Monthly', 'as every month', 'freemius' ),
499
  'mo' => _x( 'mo', 'as monthly period', 'freemius' ),
500
  'annual' => _x( 'Annual', 'as once a year', 'freemius' ),
507
  'save-x' => _x( 'Save %s', 'as a discount of $5 or 10%', 'freemius' ),
508
  #endregion Billing Cycles
509
  'view-details' => __( 'View details', 'freemius' ),
510
+ #--------------------------------------------------------------------------------
511
+ #region Trial
512
+ #--------------------------------------------------------------------------------
513
+ 'approve-start-trial' => _x( 'Approve & Start Trial', 'button label', 'freemius' ),
514
+ /* translators: %1$s: Number of trial days; %2$s: Plan name; */
515
+ 'start-trial-prompt-header' => __( 'You are 1-click away from starting your %1$s-day free trial of the %2$s plan.', 'freemius' ),
516
+ /* translators: %s: Link to freemius.com */
517
+ 'start-trial-prompt-message' => __( 'For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt-in with your user and non-sensitive site information, allowing the plugin to periodically send data to %s to check for version updates and to validate your trial.', 'freemius' ),
518
+
519
+ #endregion
520
+ #--------------------------------------------------------------------------------
521
+ #region Billing Details
522
+ #--------------------------------------------------------------------------------
523
+ 'business-name' => __( 'Business name', 'freemius' ),
524
+ 'tax-vat-id' => __( 'Tax / VAT ID', 'freemius' ),
525
+ 'address-line-n' => __( 'Address Line %d', 'freemius' ),
526
+ 'country' => __( 'Country', 'freemius' ),
527
+ 'select-country' => __( 'Select Country', 'freemius' ),
528
+ 'city' => __( 'City', 'freemius' ),
529
+ 'town' => __( 'Town', 'freemius' ),
530
+ 'state' => __( 'State', 'freemius' ),
531
+ 'province' => __( 'Province', 'freemius' ),
532
+ 'zip-postal-code' => __( 'ZIP / Postal Code', 'freemius' ),
533
+ #endregion
534
  );
freemius/includes/managers/class-fs-admin-menu-manager.php CHANGED
@@ -502,7 +502,6 @@
502
  }
503
 
504
  /**
505
- *
506
  * @author Vova Feldman (@svovaf)
507
  * @since 1.1.4
508
  *
@@ -545,5 +544,28 @@
545
  return $hookname;
546
  }
547
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
548
  #endregion Top level menu Override
549
  }
502
  }
503
 
504
  /**
 
505
  * @author Vova Feldman (@svovaf)
506
  * @since 1.1.4
507
  *
544
  return $hookname;
545
  }
546
 
547
+ /**
548
+ * Adds a counter to the module's top level menu item.
549
+ *
550
+ * @author Vova Feldman (@svovaf)
551
+ * @since 1.2.1.5
552
+ *
553
+ * @param int $counter
554
+ * @param string $class
555
+ */
556
+ function add_counter_to_menu_item( $counter = 1, $class = '' ) {
557
+ global $menu;
558
+
559
+ // Find main menu item.
560
+ $found_menu = $this->find_top_level_menu();
561
+
562
+ if ( false === $menu ) {
563
+ return;
564
+ }
565
+
566
+ // Override menu label.
567
+ $menu[ $found_menu['position'] ][0] = $found_menu['menu'][0] . ' <span class="update-plugins ' . $class . ' count-' . $counter . '"><span>' . $counter . '</span></span>';
568
+ }
569
+
570
  #endregion Top level menu Override
571
  }
freemius/includes/managers/class-fs-admin-notice-manager.php CHANGED
@@ -279,6 +279,9 @@
279
  * @param bool $all_admin
280
  */
281
  function add_sticky( $message, $id, $title = '', $type = 'success', $all_admin = false ) {
 
 
 
282
  $this->add( $message, $title, $type, true, $all_admin, $id );
283
  }
284
 
279
  * @param bool $all_admin
280
  */
281
  function add_sticky( $message, $id, $title = '', $type = 'success', $all_admin = false ) {
282
+ $message = fs_apply_filter( $this->_slug, "sticky_message_{$id}", $message );
283
+ $title = fs_apply_filter( $this->_slug, "sticky_title_{$id}", $title );
284
+
285
  $this->add( $message, $title, $type, true, $all_admin, $id );
286
  }
287
 
freemius/includes/sdk/Exceptions/ArgumentNotExistException.php CHANGED
@@ -3,4 +3,7 @@
3
  exit;
4
  }
5
 
6
- class Freemius_ArgumentNotExistException extends Freemius_InvalidArgumentException { }
 
 
 
3
  exit;
4
  }
5
 
6
+ if ( ! class_exists( 'Freemius_ArgumentNotExistException' ) ) {
7
+ class Freemius_ArgumentNotExistException extends Freemius_InvalidArgumentException {
8
+ }
9
+ }
freemius/includes/sdk/Exceptions/EmptyArgumentException.php CHANGED
@@ -3,4 +3,7 @@
3
  exit;
4
  }
5
 
6
- class Freemius_EmptyArgumentException extends Freemius_InvalidArgumentException { }
 
 
 
3
  exit;
4
  }
5
 
6
+ if ( ! class_exists( 'Freemius_EmptyArgumentException' ) ) {
7
+ class Freemius_EmptyArgumentException extends Freemius_InvalidArgumentException {
8
+ }
9
+ }
freemius/includes/sdk/Exceptions/Exception.php CHANGED
@@ -1,75 +1,74 @@
1
  <?php
2
- /**
3
- * Thrown when an API call returns an exception.
4
- *
5
- */
6
- class Freemius_Exception extends Exception
7
- {
8
- protected $_result;
9
- protected $_type;
10
- protected $_code;
11
-
12
- /**
13
- * Make a new API Exception with the given result.
14
- *
15
- * @param array $result The result from the API server.
16
- */
17
- public function __construct($result)
18
- {
19
- $this->_result = $result;
20
 
21
- $code = 0;
22
- $message = 'Unknown error, please check GetResult().';
23
- $type = '';
24
-
25
- if (isset($result['error']) && is_array($result['error']))
26
- {
27
- if (isset($result['error']['code']))
28
- $code = $result['error']['code'];
29
- if (isset($result['error']['message']))
30
- $message = $result['error']['message'];
31
- if (isset($result['error']['type']))
32
- $type = $result['error']['type'];
33
- }
34
 
35
- $this->_type = $type;
36
- $this->_code = $code;
37
-
38
- parent::__construct($message, is_numeric($code) ? $code : 0);
39
- }
40
 
41
- /**
42
- * Return the associated result object returned by the API server.
43
- *
44
- * @return array The result from the API server
45
- */
46
- public function getResult()
47
- {
48
- return $this->_result;
49
- }
 
 
50
 
51
- public function getStringCode()
52
- {
53
- return $this->_code;
54
- }
55
-
56
- public function getType()
57
- {
58
- return $this->_type;
59
- }
60
 
61
- /**
62
- * To make debugging easier.
63
- *
64
- * @return string The string representation of the error
65
- */
66
- public function __toString()
67
- {
68
- $str = $this->getType() . ': ';
69
 
70
- if ($this->code != 0)
71
- $str .= $this->getStringCode() . ': ';
 
 
 
 
 
 
72
 
73
- return $str . $this->getMessage();
74
- }
75
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ if ( ! class_exists( 'Freemius_Exception' ) ) {
3
+ /**
4
+ * Thrown when an API call returns an exception.
5
+ *
6
+ */
7
+ class Freemius_Exception extends Exception {
8
+ protected $_result;
9
+ protected $_type;
10
+ protected $_code;
 
 
 
 
 
 
 
 
 
11
 
12
+ /**
13
+ * Make a new API Exception with the given result.
14
+ *
15
+ * @param array $result The result from the API server.
16
+ */
17
+ public function __construct( $result ) {
18
+ $this->_result = $result;
 
 
 
 
 
 
19
 
20
+ $code = 0;
21
+ $message = 'Unknown error, please check GetResult().';
22
+ $type = '';
 
 
23
 
24
+ if ( isset( $result['error'] ) && is_array( $result['error'] ) ) {
25
+ if ( isset( $result['error']['code'] ) ) {
26
+ $code = $result['error']['code'];
27
+ }
28
+ if ( isset( $result['error']['message'] ) ) {
29
+ $message = $result['error']['message'];
30
+ }
31
+ if ( isset( $result['error']['type'] ) ) {
32
+ $type = $result['error']['type'];
33
+ }
34
+ }
35
 
36
+ $this->_type = $type;
37
+ $this->_code = $code;
 
 
 
 
 
 
 
38
 
39
+ parent::__construct( $message, is_numeric( $code ) ? $code : 0 );
40
+ }
 
 
 
 
 
 
41
 
42
+ /**
43
+ * Return the associated result object returned by the API server.
44
+ *
45
+ * @return array The result from the API server
46
+ */
47
+ public function getResult() {
48
+ return $this->_result;
49
+ }
50
 
51
+ public function getStringCode() {
52
+ return $this->_code;
53
+ }
54
+
55
+ public function getType() {
56
+ return $this->_type;
57
+ }
58
+
59
+ /**
60
+ * To make debugging easier.
61
+ *
62
+ * @return string The string representation of the error
63
+ */
64
+ public function __toString() {
65
+ $str = $this->getType() . ': ';
66
+
67
+ if ( $this->code != 0 ) {
68
+ $str .= $this->getStringCode() . ': ';
69
+ }
70
+
71
+ return $str . $this->getMessage();
72
+ }
73
+ }
74
+ }
freemius/includes/sdk/Exceptions/InvalidArgumentException.php CHANGED
@@ -3,4 +3,6 @@
3
  exit;
4
  }
5
 
6
- class Freemius_InvalidArgumentException extends Freemius_Exception { }
 
 
3
  exit;
4
  }
5
 
6
+ if ( ! class_exists( 'Freemius_InvalidArgumentException' ) ) {
7
+ class Freemius_InvalidArgumentException extends Freemius_Exception { }
8
+ }
freemius/includes/sdk/Exceptions/OAuthException.php CHANGED
@@ -3,10 +3,10 @@
3
  exit;
4
  }
5
 
6
- class Freemius_OAuthException extends Freemius_Exception
7
- {
8
- public function __construct($pResult)
9
- {
10
- parent::__construct($pResult);
11
- }
12
- }
3
  exit;
4
  }
5
 
6
+ if ( ! class_exists( 'Freemius_OAuthException' ) ) {
7
+ class Freemius_OAuthException extends Freemius_Exception {
8
+ public function __construct( $pResult ) {
9
+ parent::__construct( $pResult );
10
+ }
11
+ }
12
+ }
freemius/includes/sdk/Freemius.php CHANGED
@@ -17,7 +17,9 @@
17
 
18
  require_once( dirname( __FILE__ ) . '/FreemiusBase.php' );
19
 
20
- define( 'FS_SDK__USER_AGENT', 'fs-php-' . Freemius_Api_Base::VERSION );
 
 
21
 
22
  if ( ! defined( 'FS_SDK__SIMULATE_NO_CURL' ) ) {
23
  define( 'FS_SDK__SIMULATE_NO_CURL', false );
@@ -31,7 +33,9 @@
31
  define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL', false );
32
  }
33
 
34
- define( 'FS_SDK__HAS_CURL', ! FS_SDK__SIMULATE_NO_CURL && function_exists( 'curl_version' ) );
 
 
35
 
36
  if ( ! FS_SDK__HAS_CURL ) {
37
  $curl_version = array( 'version' => '7.0.0' );
@@ -39,7 +43,9 @@
39
  $curl_version = curl_version();
40
  }
41
 
42
- define( 'FS_API__PROTOCOL', version_compare( $curl_version['version'], '7.37', '>=' ) ? 'https' : 'http' );
 
 
43
 
44
  if ( ! defined( 'FS_API__LOGGER_ON' ) ) {
45
  define( 'FS_API__LOGGER_ON', false );
@@ -52,6 +58,10 @@
52
  define( 'FS_API__SANDBOX_ADDRESS', '://sandbox-api.freemius.com' );
53
  }
54
 
 
 
 
 
55
  class Freemius_Api extends Freemius_Api_Base {
56
  private static $_logger = array();
57
 
@@ -312,12 +322,9 @@
312
  CURLOPT_RETURNTRANSFER => true,
313
  CURLOPT_TIMEOUT => 60,
314
  CURLOPT_USERAGENT => FS_SDK__USER_AGENT,
 
315
  );
316
 
317
- if ( ! isset( $opts[ CURLOPT_HTTPHEADER ] ) || ! is_array( $opts[ CURLOPT_HTTPHEADER ] ) ) {
318
- $opts[ CURLOPT_HTTPHEADER ] = array();
319
- }
320
-
321
  if ( 'POST' === $pMethod || 'PUT' === $pMethod ) {
322
  if ( is_array( $pParams ) && 0 < count( $pParams ) ) {
323
  $opts[ CURLOPT_HTTPHEADER ][] = 'Content-Type: application/json';
@@ -328,7 +335,7 @@
328
  $opts[ CURLOPT_RETURNTRANSFER ] = true;
329
  }
330
 
331
- $request_url = Freemius_Api::GetUrl( $pCanonizedPath, $pIsSandbox );
332
 
333
  $opts[ CURLOPT_URL ] = $request_url;
334
  $opts[ CURLOPT_CUSTOMREQUEST ] = $pMethod;
17
 
18
  require_once( dirname( __FILE__ ) . '/FreemiusBase.php' );
19
 
20
+ if ( ! defined( 'FS_SDK__USER_AGENT' ) ) {
21
+ define( 'FS_SDK__USER_AGENT', 'fs-php-' . Freemius_Api_Base::VERSION );
22
+ }
23
 
24
  if ( ! defined( 'FS_SDK__SIMULATE_NO_CURL' ) ) {
25
  define( 'FS_SDK__SIMULATE_NO_CURL', false );
33
  define( 'FS_SDK__SIMULATE_NO_API_CONNECTIVITY_SQUID_ACL', false );
34
  }
35
 
36
+ if ( ! defined( 'FS_SDK__HAS_CURL' ) ) {
37
+ define( 'FS_SDK__HAS_CURL', ! FS_SDK__SIMULATE_NO_CURL && function_exists( 'curl_version' ) );
38
+ }
39
 
40
  if ( ! FS_SDK__HAS_CURL ) {
41
  $curl_version = array( 'version' => '7.0.0' );
43
  $curl_version = curl_version();
44
  }
45
 
46
+ if ( ! defined( 'FS_API__PROTOCOL' ) ) {
47
+ define( 'FS_API__PROTOCOL', version_compare( $curl_version['version'], '7.37', '>=' ) ? 'https' : 'http' );
48
+ }
49
 
50
  if ( ! defined( 'FS_API__LOGGER_ON' ) ) {
51
  define( 'FS_API__LOGGER_ON', false );
58
  define( 'FS_API__SANDBOX_ADDRESS', '://sandbox-api.freemius.com' );
59
  }
60
 
61
+ if ( class_exists( 'Freemius_Api' ) ) {
62
+ return;
63
+ }
64
+
65
  class Freemius_Api extends Freemius_Api_Base {
66
  private static $_logger = array();
67
 
322
  CURLOPT_RETURNTRANSFER => true,
323
  CURLOPT_TIMEOUT => 60,
324
  CURLOPT_USERAGENT => FS_SDK__USER_AGENT,
325
+ CURLOPT_HTTPHEADER => array(),
326
  );
327
 
 
 
 
 
328
  if ( 'POST' === $pMethod || 'PUT' === $pMethod ) {
329
  if ( is_array( $pParams ) && 0 < count( $pParams ) ) {
330
  $opts[ CURLOPT_HTTPHEADER ][] = 'Content-Type: application/json';
335
  $opts[ CURLOPT_RETURNTRANSFER ] = true;
336
  }
337
 
338
+ $request_url = self::GetUrl( $pCanonizedPath, $pIsSandbox );
339
 
340
  $opts[ CURLOPT_URL ] = $request_url;
341
  $opts[ CURLOPT_CUSTOMREQUEST ] = $pMethod;
freemius/includes/sdk/FreemiusBase.php CHANGED
@@ -15,9 +15,15 @@
15
  * under the License.
16
  */
17
 
18
- define( 'FS_API__VERSION', '1' );
19
- define( 'FS_SDK__PATH', dirname( __FILE__ ) );
20
- define( 'FS_SDK__EXCEPTIONS_PATH', FS_SDK__PATH . '/Exceptions/' );
 
 
 
 
 
 
21
 
22
  if ( ! function_exists( 'json_decode' ) ) {
23
  throw new Exception( 'Freemius needs the JSON PHP extension.' );
@@ -36,6 +42,10 @@
36
  require_once FS_SDK__EXCEPTIONS_PATH . $e . '.php';
37
  }
38
 
 
 
 
 
39
  abstract class Freemius_Api_Base {
40
  const VERSION = '1.0.4';
41
  const FORMAT = 'json';
@@ -47,7 +57,7 @@
47
  protected $_isSandbox;
48
 
49
  /**
50
- * @param string $pScope 'app', 'developer', 'user' or 'install'.
51
  * @param number $pID Element's id.
52
  * @param string $pPublic Public key.
53
  * @param string $pSecret Element's secret key.
15
  * under the License.
16
  */
17
 
18
+ if ( ! defined( 'FS_API__VERSION' ) ) {
19
+ define( 'FS_API__VERSION', '1' );
20
+ }
21
+ if ( ! defined( 'FS_SDK__PATH' ) ) {
22
+ define( 'FS_SDK__PATH', dirname( __FILE__ ) );
23
+ }
24
+ if ( ! defined( 'FS_SDK__EXCEPTIONS_PATH' ) ) {
25
+ define( 'FS_SDK__EXCEPTIONS_PATH', FS_SDK__PATH . '/Exceptions/' );
26
+ }
27
 
28
  if ( ! function_exists( 'json_decode' ) ) {
29
  throw new Exception( 'Freemius needs the JSON PHP extension.' );
42
  require_once FS_SDK__EXCEPTIONS_PATH . $e . '.php';
43
  }
44
 
45
+ if ( class_exists( 'Freemius_Api_Base' ) ) {
46
+ return;
47
+ }
48
+
49
  abstract class Freemius_Api_Base {
50
  const VERSION = '1.0.4';
51
  const FORMAT = 'json';
57
  protected $_isSandbox;
58
 
59
  /**
60
+ * @param string $pScope 'app', 'developer', 'plugin', 'user' or 'install'.
61
  * @param number $pID Element's id.
62
  * @param string $pPublic Public key.
63
  * @param string $pSecret Element's secret key.
freemius/includes/supplements/fs-essential-functions-1.1.7.1.php CHANGED
@@ -37,9 +37,11 @@
37
  // Get active plugin's main files real full names (might be symlinks).
38
  foreach ( $all_plugins as $relative_path => &$data ) {
39
  if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) ) ) ) {
40
- return $relative_path;
 
 
41
  }
42
  }
43
 
44
  return null;
45
- }
37
  // Get active plugin's main files real full names (might be symlinks).
38
  foreach ( $all_plugins as $relative_path => &$data ) {
39
  if ( 0 === strpos( $file_real_path, fs_normalize_path( dirname( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ) ) ) ) {
40
+ if ( '.' !== dirname( trailingslashit( $relative_path ) ) ) {
41
+ return $relative_path;
42
+ }
43
  }
44
  }
45
 
46
  return null;
47
+ }
freemius/languages/freemius-da_DK.mo ADDED
Binary file
freemius/languages/freemius-da_DK.po ADDED
@@ -0,0 +1,1661 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 freemius
2
+ # This file is distributed under the same license as the freemius package.
3
+ # Translators:
4
+ # Joachim Jensen <jv@intox.dk>, 2016
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: WordPress SDK\n"
8
+ "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
+ "PO-Revision-Date: 2016-12-07 01:29+0000\n"
10
+ "Last-Translator: Vova Feldman <vova@freemius.com>\n"
11
+ "Language-Team: Danish (Denmark) (http://www.transifex.com/freemius/wordpress-sdk/language/da_DK/)\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language: da_DK\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-Basepath: ..\n"
18
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
21
+ "X-Poedit-SourceCharset: UTF-8\n"
22
+
23
+ #: includes/i18n.php41, includes/i18n.php:55
24
+ msgid "Yes - I'm in!"
25
+ msgstr "Ja - jeg er med!"
26
+
27
+ #: includes/i18n.php43, includes/i18n.php:57
28
+ msgid "Not today"
29
+ msgstr "Ikke i dag"
30
+
31
+ #: includes/i18n.php:69
32
+ msgid "Account"
33
+ msgstr "Konto"
34
+
35
+ #: includes/i18n.php:71
36
+ msgid "Add On"
37
+ msgstr "Tilføjelse"
38
+
39
+ #: includes/i18n.php:73
40
+ msgid "Contact Us"
41
+ msgstr "Kontakt os"
42
+
43
+ #: includes/i18n.php:75
44
+ msgid "Contact Support"
45
+ msgstr "Kontakt support"
46
+
47
+ #: includes/i18n.php:77
48
+ msgid "Change Ownership"
49
+ msgstr "Skift ejerskab"
50
+
51
+ #: includes/i18n.php:79
52
+ msgid "Support"
53
+ msgstr "Support"
54
+
55
+ #: includes/i18n.php:81
56
+ msgid "Support Forum"
57
+ msgstr "Supportforum"
58
+
59
+ #: includes/i18n.php:83
60
+ msgid "Add Ons"
61
+ msgstr "Tilføjelser"
62
+
63
+ #: includes/i18n.php:85
64
+ msgctxt "verb"
65
+ msgid "Upgrade"
66
+ msgstr "Opgrader"
67
+
68
+ #: includes/i18n.php:87
69
+ msgid "Awesome"
70
+ msgstr "Sejt"
71
+
72
+ #: includes/i18n.php:89
73
+ msgctxt "noun"
74
+ msgid "Pricing"
75
+ msgstr "Priser"
76
+
77
+ #: includes/i18n.php:91
78
+ msgctxt "noun"
79
+ msgid "Price"
80
+ msgstr "Pris"
81
+
82
+ #: includes/i18n.php:93
83
+ msgid "Unlimited Updates"
84
+ msgstr "Ubegrænsede opdateringer"
85
+
86
+ #: includes/i18n.php:95
87
+ msgctxt "verb"
88
+ msgid "Downgrade"
89
+ msgstr "Nedgrader"
90
+
91
+ #: includes/i18n.php:97
92
+ msgid "Cancel Trial"
93
+ msgstr "Annuller prøveperiode"
94
+
95
+ #: includes/i18n.php:99
96
+ msgid "Free Trial"
97
+ msgstr "Gratis prøveperiode"
98
+
99
+ #: includes/i18n.php:101
100
+ msgid "Start my free %s"
101
+ msgstr "Start min gratis %s"
102
+
103
+ #: includes/i18n.php:103
104
+ msgid "No commitment for %s - cancel anytime"
105
+ msgstr "Ingen bindinger ved %s - annuller når som helst"
106
+
107
+ #: includes/i18n.php:105
108
+ msgid "After your free %s, pay as little as %s"
109
+ msgstr "Efter din gratis %s er prisen kun %s"
110
+
111
+ #: includes/i18n.php:107
112
+ msgid "Details"
113
+ msgstr "Detaljer"
114
+
115
+ #: includes/i18n.php:109
116
+ msgid "Account Details"
117
+ msgstr "Kontodetaljer"
118
+
119
+ #: includes/i18n.php:111
120
+ msgctxt "verb"
121
+ msgid "Delete"
122
+ msgstr "Slet"
123
+
124
+ #: includes/i18n.php:113
125
+ msgctxt "verb"
126
+ msgid "Show"
127
+ msgstr "Vis"
128
+
129
+ #: includes/i18n.php:115
130
+ msgctxt "verb"
131
+ msgid "Hide"
132
+ msgstr "Skjul"
133
+
134
+ #: includes/i18n.php:117
135
+ msgctxt "verb"
136
+ msgid "Edit"
137
+ msgstr "Rediger"
138
+
139
+ #: includes/i18n.php:119
140
+ msgctxt "verb"
141
+ msgid "Update"
142
+ msgstr ""
143
+
144
+ #: includes/i18n.php:121
145
+ msgid "Date"
146
+ msgstr "Dato"
147
+
148
+ #: includes/i18n.php:123
149
+ msgid "Amount"
150
+ msgstr "Beløb"
151
+
152
+ #: includes/i18n.php:125
153
+ msgid "Invoice"
154
+ msgstr "Faktura"
155
+
156
+ #: includes/i18n.php:127
157
+ msgid "Billing"
158
+ msgstr "Betaling"
159
+
160
+ #: includes/i18n.php:129
161
+ msgid "Payments"
162
+ msgstr "Betalinger"
163
+
164
+ #: includes/i18n.php:131
165
+ msgid "Delete Account"
166
+ msgstr "Slet konto"
167
+
168
+ #: includes/i18n.php:133
169
+ msgctxt "as close a window"
170
+ msgid "Dismiss"
171
+ msgstr "Fjern"
172
+
173
+ #: includes/i18n.php:135
174
+ msgctxt "as product pricing plan"
175
+ msgid "Plan"
176
+ msgstr "Plan"
177
+
178
+ #: includes/i18n.php:137
179
+ msgid "Change Plan"
180
+ msgstr "Skift plan"
181
+
182
+ #: includes/i18n.php:139
183
+ msgctxt "as download professional version"
184
+ msgid "Download %s Version"
185
+ msgstr ""
186
+
187
+ #: includes/i18n.php:141
188
+ msgctxt "as download professional version now"
189
+ msgid "Download %s version now"
190
+ msgstr ""
191
+
192
+ #: includes/i18n.php:145
193
+ msgctxt "as download latest version"
194
+ msgid "Download Latest"
195
+ msgstr "Download seneste"
196
+
197
+ #: includes/i18n.php:147
198
+ msgctxt "E.g. you have a professional license."
199
+ msgid "You have a %s license."
200
+ msgstr "Du har en %s licens."
201
+
202
+ #: includes/i18n.php:151
203
+ msgid "New"
204
+ msgstr "Ny"
205
+
206
+ #: includes/i18n.php:153
207
+ msgid "Free"
208
+ msgstr "Gratis"
209
+
210
+ #: includes/i18n.php:155
211
+ msgctxt "as trial plan"
212
+ msgid "Trial"
213
+ msgstr "Prøveperiode"
214
+
215
+ #: includes/i18n.php:157
216
+ msgctxt "as starting a trial plan"
217
+ msgid "Start Trial"
218
+ msgstr ""
219
+
220
+ #: includes/i18n.php:159
221
+ msgctxt "verb"
222
+ msgid "Purchase"
223
+ msgstr "Køb"
224
+
225
+ #: includes/i18n.php:161
226
+ msgid "Purchase License"
227
+ msgstr "Køb licens"
228
+
229
+ #: includes/i18n.php:163
230
+ msgctxt "verb"
231
+ msgid "Buy"
232
+ msgstr "Køb"
233
+
234
+ #: includes/i18n.php:165
235
+ msgid "Buy License"
236
+ msgstr "Køb licens"
237
+
238
+ #: includes/i18n.php:167
239
+ msgid "Single Site License"
240
+ msgstr ""
241
+
242
+ #: includes/i18n.php:169
243
+ msgid "Unlimited Licenses"
244
+ msgstr "Ubegrænsede licenser"
245
+
246
+ #: includes/i18n.php:171
247
+ msgid "Up to %s Sites"
248
+ msgstr "Op til %s websteder"
249
+
250
+ #: includes/i18n.php:173
251
+ msgid "%sRenew your license now%s to access version %s features and support."
252
+ msgstr ""
253
+
254
+ #: includes/i18n.php:177
255
+ msgid ""
256
+ "Enter the email address you've used for the upgrade below and we will resend"
257
+ " you the license key."
258
+ msgstr ""
259
+
260
+ #: includes/i18n.php:181
261
+ msgctxt "e.g. Professional Plan"
262
+ msgid "%s Plan"
263
+ msgstr "%s Plan"
264
+
265
+ #: includes/i18n.php:183
266
+ msgid "You are just one step away - %s"
267
+ msgstr "Du mangler kun ét skridt - %s"
268
+
269
+ #: includes/i18n.php:185
270
+ msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
271
+ msgid "Complete \"%s\" Activation Now"
272
+ msgstr "Færdiggør aktivering af \"%s\" nu"
273
+
274
+ #: includes/i18n.php:189
275
+ msgid "We made a few tweaks to the plugin, %s"
276
+ msgstr ""
277
+
278
+ #: includes/i18n.php:191
279
+ msgid "Opt-in to make \"%s\" Better!"
280
+ msgstr ""
281
+
282
+ #: includes/i18n.php:193
283
+ msgid "Error"
284
+ msgstr "Fejl"
285
+
286
+ #: includes/i18n.php:195
287
+ msgid ""
288
+ "Freemius SDK couldn't find the plugin's main file. Please contact "
289
+ "sdk@freemius.com with the current error."
290
+ msgstr ""
291
+
292
+ #: includes/i18n.php:203
293
+ msgctxt "as expiration date"
294
+ msgid "Expiration"
295
+ msgstr ""
296
+
297
+ #: includes/i18n.php:205
298
+ msgctxt "as software license"
299
+ msgid "License"
300
+ msgstr "Licens"
301
+
302
+ #: includes/i18n.php:207
303
+ msgid "not verified"
304
+ msgstr "ikke verificeret"
305
+
306
+ #: includes/i18n.php:209
307
+ msgid "Verify Email"
308
+ msgstr "Verificer e-mail"
309
+
310
+ #: includes/i18n.php:211
311
+ msgctxt "e.g. expires in 2 months"
312
+ msgid "Expires in %s"
313
+ msgstr "Udløber om %s"
314
+
315
+ #: includes/i18n.php:213
316
+ msgctxt "e.g. auto renews in 2 months"
317
+ msgid "Auto renews in %s"
318
+ msgstr ""
319
+
320
+ #: includes/i18n.php:215
321
+ msgid "No expiration"
322
+ msgstr "Udløber ikke"
323
+
324
+ #: includes/i18n.php:217
325
+ msgid "Expired"
326
+ msgstr "Udløbet"
327
+
328
+ #: includes/i18n.php:219
329
+ msgid "Cancelled"
330
+ msgstr "Annulleret"
331
+
332
+ #: includes/i18n.php:221
333
+ msgctxt "e.g. In 2 hours"
334
+ msgid "In %s"
335
+ msgstr "Om %s"
336
+
337
+ #: includes/i18n.php:223
338
+ msgctxt "e.g. 2 min ago"
339
+ msgid "%s ago"
340
+ msgstr "%s siden"
341
+
342
+ #: includes/i18n.php:225
343
+ msgctxt "as plugin version"
344
+ msgid "Version"
345
+ msgstr "Version"
346
+
347
+ #: includes/i18n.php:227
348
+ msgid "Name"
349
+ msgstr "Navn"
350
+
351
+ #: includes/i18n.php:229
352
+ msgid "Email"
353
+ msgstr "E-mail"
354
+
355
+ #: includes/i18n.php:231
356
+ msgid "Email address"
357
+ msgstr "E-mailadresse"
358
+
359
+ #: includes/i18n.php:233
360
+ msgid "Verified"
361
+ msgstr "Verificeret"
362
+
363
+ #: includes/i18n.php:235
364
+ msgid "Plugin"
365
+ msgstr "Plugin"
366
+
367
+ #: includes/i18n.php:237
368
+ msgid "Plugins"
369
+ msgstr "Plugins"
370
+
371
+ #: includes/i18n.php:239
372
+ msgid "Themes"
373
+ msgstr "Temaer"
374
+
375
+ #: includes/i18n.php:241
376
+ msgctxt "as file/folder path"
377
+ msgid "Path"
378
+ msgstr "Sti"
379
+
380
+ #: includes/i18n.php:243
381
+ msgid "Title"
382
+ msgstr "Titel"
383
+
384
+ #: includes/i18n.php:245
385
+ msgid "Free version"
386
+ msgstr "Gratis version"
387
+
388
+ #: includes/i18n.php:247
389
+ msgid "Premium version"
390
+ msgstr ""
391
+
392
+ #: includes/i18n.php:249
393
+ msgctxt "as WP plugin slug"
394
+ msgid "Slug"
395
+ msgstr "Kortnavn"
396
+
397
+ #: includes/i18n.php:251
398
+ msgid "ID"
399
+ msgstr "ID"
400
+
401
+ #: includes/i18n.php:253
402
+ msgid "Users"
403
+ msgstr "Brugere"
404
+
405
+ #: includes/i18n.php:255
406
+ msgid "Plugin Installs"
407
+ msgstr "Plugin-installationer"
408
+
409
+ #: includes/i18n.php:257
410
+ msgctxt "like websites"
411
+ msgid "Sites"
412
+ msgstr "Websteder"
413
+
414
+ #: includes/i18n.php:259
415
+ msgid "User ID"
416
+ msgstr "Bruger-ID"
417
+
418
+ #: includes/i18n.php:261
419
+ msgid "Site ID"
420
+ msgstr "Websteds-ID"
421
+
422
+ #: includes/i18n.php:263
423
+ msgid "Public Key"
424
+ msgstr "Offentlig nøgle"
425
+
426
+ #: includes/i18n.php:265
427
+ msgid "Secret Key"
428
+ msgstr "Privat nøgle"
429
+
430
+ #: includes/i18n.php:267
431
+ msgctxt "as secret encryption key missing"
432
+ msgid "No Secret"
433
+ msgstr "Ingen privat nøgle"
434
+
435
+ #: includes/i18n.php:269
436
+ msgid "No ID"
437
+ msgstr "Intet ID"
438
+
439
+ #: includes/i18n.php:271
440
+ msgctxt "as synchronize license"
441
+ msgid "Sync License"
442
+ msgstr "Synkroniser licens"
443
+
444
+ #: includes/i18n.php:273
445
+ msgctxt "as synchronize"
446
+ msgid "Sync"
447
+ msgstr "Synkroniser"
448
+
449
+ #: includes/i18n.php:275
450
+ msgid "Activate License"
451
+ msgstr "Aktiver licens"
452
+
453
+ #: includes/i18n.php:277
454
+ msgid "Activate Free Version"
455
+ msgstr "Aktiver gratis version"
456
+
457
+ #: includes/i18n.php:279
458
+ msgid ""
459
+ "Please enter the license key that you received in the email right after the "
460
+ "purchase:"
461
+ msgstr ""
462
+
463
+ #: includes/i18n.php:283
464
+ msgid "Activating license..."
465
+ msgstr "Aktiverer licens..."
466
+
467
+ #: includes/i18n.php:285
468
+ msgid "Change License"
469
+ msgstr "Skift licens"
470
+
471
+ #: includes/i18n.php:287
472
+ msgid "Update License"
473
+ msgstr "Opdater licens"
474
+
475
+ #: includes/i18n.php:289
476
+ msgid "Deactivate License"
477
+ msgstr "Deaktiver licens"
478
+
479
+ #: includes/i18n.php:291
480
+ msgid "Activate"
481
+ msgstr "Aktiver"
482
+
483
+ #: includes/i18n.php:293
484
+ msgid "Deactivate"
485
+ msgstr "Deaktiver"
486
+
487
+ #: includes/i18n.php:295
488
+ msgid "Skip & Deactivate"
489
+ msgstr "Spring over & deaktiver"
490
+
491
+ #: includes/i18n.php:297
492
+ msgid "No - just deactivate"
493
+ msgstr "Nej - bare deaktiver"
494
+
495
+ #: includes/i18n.php:299
496
+ msgid "Yes - do your thing"
497
+ msgstr ""
498
+
499
+ #: includes/i18n.php:301
500
+ msgctxt "active mode"
501
+ msgid "Active"
502
+ msgstr "Aktiv"
503
+
504
+ #: includes/i18n.php:303
505
+ msgctxt "is active mode?"
506
+ msgid "Is Active"
507
+ msgstr "Er aktiv"
508
+
509
+ #: includes/i18n.php:305
510
+ msgid "Install Now"
511
+ msgstr "Installer nu"
512
+
513
+ #: includes/i18n.php:307
514
+ msgid "Install Update Now"
515
+ msgstr "Installer opdatering nu"
516
+
517
+ #: includes/i18n.php:309
518
+ msgid "More information about %s"
519
+ msgstr "Mere information om %s"
520
+
521
+ #: includes/i18n.php:311
522
+ msgid "Localhost"
523
+ msgstr "Localhost"
524
+
525
+ #: includes/i18n.php:313
526
+ msgctxt "as activate Professional plan"
527
+ msgid "Activate %s Plan"
528
+ msgstr "Aktiver plan %s"
529
+
530
+ #: includes/i18n.php:315
531
+ msgctxt "as 5 licenses left"
532
+ msgid "%s left"
533
+ msgstr "%s tilbage"
534
+
535
+ #: includes/i18n.php:317
536
+ msgid "Last license"
537
+ msgstr ""
538
+
539
+ #: includes/i18n.php:319
540
+ msgid "What is your %s?"
541
+ msgstr ""
542
+
543
+ #: includes/i18n.php:321
544
+ msgid "Activate this add-on"
545
+ msgstr "Aktiver denne tilføjelse"
546
+
547
+ #: includes/i18n.php:323
548
+ msgid ""
549
+ "Deactivating your license will block all premium features, but will enable "
550
+ "you to activate the license on another site. Are you sure you want to "
551
+ "proceed?"
552
+ msgstr ""
553
+
554
+ #: includes/i18n.php:327
555
+ msgid ""
556
+ "Deleting the account will automatically deactivate your %s plan license so "
557
+ "you can use it on other sites. If you want to terminate the recurring "
558
+ "payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
559
+ "account. Are you sure you would like to continue with the deletion?"
560
+ msgstr ""
561
+
562
+ #: includes/i18n.php:331
563
+ msgid ""
564
+ "Deletion is not temporary. Only delete if you no longer want to use this "
565
+ "plugin anymore. Are you sure you would like to continue with the deletion?"
566
+ msgstr ""
567
+
568
+ #: includes/i18n.php:335
569
+ msgid ""
570
+ "Downgrading your plan will immediately stop all future recurring payments "
571
+ "and your %s plan license will expire in %s."
572
+ msgstr ""
573
+
574
+ #: includes/i18n.php:339
575
+ msgid ""
576
+ "Cancelling the trial will immediately block access to all premium features. "
577
+ "Are you sure?"
578
+ msgstr ""
579
+
580
+ #: includes/i18n.php:343
581
+ msgid ""
582
+ "You can still enjoy all %s features but you will not have access to plugin "
583
+ "updates and support."
584
+ msgstr ""
585
+
586
+ #: includes/i18n.php:347
587
+ msgid ""
588
+ "Once your license expire you can still use the Free version but you will NOT"
589
+ " have access to the %s features."
590
+ msgstr ""
591
+
592
+ #: includes/i18n.php:351
593
+ msgid "Are you sure you want to proceed?"
594
+ msgstr ""
595
+
596
+ #: includes/i18n.php:357
597
+ msgid "Add Ons for %s"
598
+ msgstr "Tilføjelser til %s"
599
+
600
+ #: includes/i18n.php:359
601
+ msgid ""
602
+ "We could'nt load the add-ons list. It's probably an issue on our side, "
603
+ "please try to come back in few minutes."
604
+ msgstr ""
605
+
606
+ #: includes/i18n.php:365
607
+ msgid "Anonymous feedback"
608
+ msgstr "Anonym feedback"
609
+
610
+ #: includes/i18n.php:367
611
+ msgid "Quick feedback"
612
+ msgstr "Hurtig feedback"
613
+
614
+ #: includes/i18n.php:369
615
+ msgid "If you have a moment, please let us know why you are deactivating"
616
+ msgstr ""
617
+
618
+ #: includes/i18n.php:373
619
+ msgid "Yes - Deactivate"
620
+ msgstr "Ja - deaktiver"
621
+
622
+ #: includes/i18n.php:375
623
+ msgid "Submit & Deactivate"
624
+ msgstr "Send & deaktiver"
625
+
626
+ #: includes/i18n.php:377
627
+ msgid "Cancel"
628
+ msgstr "Annuller"
629
+
630
+ #: includes/i18n.php:379
631
+ msgid "I no longer need the plugin"
632
+ msgstr ""
633
+
634
+ #: includes/i18n.php:381
635
+ msgid "I found a better plugin"
636
+ msgstr "Jeg har fundet et bedre plugin"
637
+
638
+ #: includes/i18n.php:383
639
+ msgid "I only needed the plugin for a short period"
640
+ msgstr ""
641
+
642
+ #: includes/i18n.php:385
643
+ msgid "The plugin broke my site"
644
+ msgstr "Pluginnet ødelagde mit websted"
645
+
646
+ #: includes/i18n.php:387
647
+ msgid "The plugin suddenly stopped working"
648
+ msgstr "Pluginnet virker ikke længere"
649
+
650
+ #: includes/i18n.php:389
651
+ msgid "I can't pay for it anymore"
652
+ msgstr "Jeg kan ikke længere betale for det"
653
+
654
+ #: includes/i18n.php:391
655
+ msgid "It's a temporary deactivation. I'm just debugging an issue."
656
+ msgstr ""
657
+
658
+ #: includes/i18n.php:395
659
+ msgctxt ""
660
+ "the text of the \"other\" reason for deactivating the plugin that is shown "
661
+ "in the modal box."
662
+ msgid "Other"
663
+ msgstr "Andet"
664
+
665
+ #: includes/i18n.php:399
666
+ msgid "Kindly tell us the reason so we can improve."
667
+ msgstr ""
668
+
669
+ #: includes/i18n.php:401
670
+ msgid "What's the plugin's name?"
671
+ msgstr ""
672
+
673
+ #: includes/i18n.php:403
674
+ msgid "What price would you feel comfortable paying?"
675
+ msgstr ""
676
+
677
+ #: includes/i18n.php:405
678
+ msgid "I couldn't understand how to make it work"
679
+ msgstr ""
680
+
681
+ #: includes/i18n.php:407
682
+ msgid ""
683
+ "The plugin is great, but I need specific feature that you don't support"
684
+ msgstr ""
685
+
686
+ #: includes/i18n.php:411
687
+ msgid "The plugin is not working"
688
+ msgstr "Pluginnet virker ikke"
689
+
690
+ #: includes/i18n.php:413
691
+ msgid "It's not what I was looking for"
692
+ msgstr ""
693
+
694
+ #: includes/i18n.php:415
695
+ msgid "The plugin didn't work as expected"
696
+ msgstr ""
697
+
698
+ #: includes/i18n.php:417
699
+ msgid "What feature?"
700
+ msgstr ""
701
+
702
+ #: includes/i18n.php:419
703
+ msgid "Kindly share what didn't work so we can fix it for future users..."
704
+ msgstr ""
705
+
706
+ #: includes/i18n.php:423
707
+ msgid "What you've been looking for?"
708
+ msgstr ""
709
+
710
+ #: includes/i18n.php:425
711
+ msgid "What did you expect?"
712
+ msgstr "Hvad forventede du?"
713
+
714
+ #: includes/i18n.php:427
715
+ msgid "The plugin didn't work"
716
+ msgstr "Pluginnet virkede ikke"
717
+
718
+ #: includes/i18n.php:429
719
+ msgid "I don't like to share my information with you"
720
+ msgstr ""
721
+
722
+ #: includes/i18n.php:431
723
+ msgid ""
724
+ "You might have missed it, but you don't have to share any data and can just "
725
+ "%s the opt-in."
726
+ msgstr ""
727
+
728
+ #: includes/i18n.php:441
729
+ msgctxt "greeting"
730
+ msgid "Hey %s,"
731
+ msgstr "Hey %s,"
732
+
733
+ #: includes/i18n.php:443
734
+ msgctxt "a greeting. E.g. Thanks John!"
735
+ msgid "Thanks %s!"
736
+ msgstr "Tak %s!"
737
+
738
+ #: includes/i18n.php:445
739
+ msgid ""
740
+ "Never miss an important update - opt-in to our security and feature updates "
741
+ "notifications, and non-sensitive diagnostic tracking with %4$s."
742
+ msgstr ""
743
+
744
+ #: includes/i18n.php:449
745
+ msgid ""
746
+ "Please help us improve %1$s! If you opt-in, some data about your usage of "
747
+ "%1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still "
748
+ "work just fine."
749
+ msgstr ""
750
+
751
+ #: includes/i18n.php:453
752
+ msgid ""
753
+ "You should receive an activation email for %s to your mailbox at %s. Please "
754
+ "make sure you click the activation button in that email to %s."
755
+ msgstr ""
756
+
757
+ #: includes/i18n.php:455
758
+ msgid "complete the install"
759
+ msgstr ""
760
+
761
+ #: includes/i18n.php:457
762
+ msgid "start the trial"
763
+ msgstr ""
764
+
765
+ #: includes/i18n.php:459
766
+ msgid ""
767
+ "Thanks for purchasing %s! To get started, please enter your license key:"
768
+ msgstr ""
769
+
770
+ #: includes/i18n.php:463
771
+ msgid ""
772
+ "The plugin will be periodically sending data to %s to check for plugin "
773
+ "updates and verify the validity of your license."
774
+ msgstr ""
775
+
776
+ #: includes/i18n.php:467
777
+ msgid "What permissions are being granted?"
778
+ msgstr "Hvilke tilladelser bliver givet?"
779
+
780
+ #: includes/i18n.php:469
781
+ msgid "Your Profile Overview"
782
+ msgstr "Overblik af din profil"
783
+
784
+ #: includes/i18n.php:471
785
+ msgid "Name and email address"
786
+ msgstr "Navn og e-mailadresse"
787
+
788
+ #: includes/i18n.php:473
789
+ msgid "Your Site Overview"
790
+ msgstr "Overblik af dit websted"
791
+
792
+ #: includes/i18n.php:475
793
+ msgid "Site URL, WP version, PHP info, plugins & themes"
794
+ msgstr ""
795
+
796
+ #: includes/i18n.php:479
797
+ msgid "Current Plugin Events"
798
+ msgstr "Nuværende plugin-begivenheder"
799
+
800
+ #: includes/i18n.php:481
801
+ msgid "Activation, deactivation and uninstall"
802
+ msgstr "Aktivering, deaktivering og afinstallering"
803
+
804
+ #: includes/i18n.php:483
805
+ msgid "Plugins & Themes"
806
+ msgstr "Plugins & Temaer"
807
+
808
+ #: includes/i18n.php:485
809
+ msgid "Titles, versions and state."
810
+ msgstr "Titler, versioner og tilstand."
811
+
812
+ #: includes/i18n.php:487
813
+ msgid "Admin Notices"
814
+ msgstr ""
815
+
816
+ #: includes/i18n.php:489
817
+ msgid "Newsletter"
818
+ msgstr "Nyhedsbrev"
819
+
820
+ #: includes/i18n.php:491
821
+ msgid "Updates, announcements, marketing, no spam"
822
+ msgstr ""
823
+
824
+ #: includes/i18n.php:493
825
+ msgid "Privacy Policy"
826
+ msgstr "Privatlivspolitik"
827
+
828
+ #: includes/i18n.php:495
829
+ msgid "Terms of Service"
830
+ msgstr "Servicevilkår"
831
+
832
+ #: includes/i18n.php:497
833
+ msgctxt "as activating plugin"
834
+ msgid "Activating"
835
+ msgstr "Aktiverer"
836
+
837
+ #: includes/i18n.php:499
838
+ msgctxt "as in the process of sending an email"
839
+ msgid "Sending email"
840
+ msgstr "Sender e-mail"
841
+
842
+ #: includes/i18n.php:503
843
+ msgctxt "button label"
844
+ msgid "Allow & Continue"
845
+ msgstr "Tillad & Fortsæt"
846
+
847
+ #: includes/i18n.php:505
848
+ msgctxt "button label"
849
+ msgid "Agree & Activate License"
850
+ msgstr "Accepter & aktiver licens"
851
+
852
+ #: includes/i18n.php:507
853
+ msgctxt "verb"
854
+ msgid "Skip"
855
+ msgstr "Spring over"
856
+
857
+ #: includes/i18n.php:509
858
+ msgid "Click here to use the plugin anonymously"
859
+ msgstr "Klik her for at benytte pluginnet anonymt"
860
+
861
+ #: includes/i18n.php:511
862
+ msgid "Re-send activation email"
863
+ msgstr "Gensend e-mail om aktivering"
864
+
865
+ #: includes/i18n.php:513
866
+ msgid "License key"
867
+ msgstr "Licensnøgle"
868
+
869
+ #: includes/i18n.php:515
870
+ msgid "Send License Key"
871
+ msgstr "Send licensnøgle"
872
+
873
+ #: includes/i18n.php:517
874
+ msgid "Sending license key"
875
+ msgstr "Sender licensnøgle"
876
+
877
+ #: includes/i18n.php:519
878
+ msgid "Have a license key?"
879
+ msgstr "Har du en licensnøgle?"
880
+
881
+ #: includes/i18n.php:521
882
+ msgid "Don't have a license key?"
883
+ msgstr "Har du ikke en licensnøgle?"
884
+
885
+ #: includes/i18n.php:523
886
+ msgid "Can't find your license key?"
887
+ msgstr "Kan du ikke finde din licensnøgle?"
888
+
889
+ #: includes/i18n.php:525
890
+ msgid ""
891
+ "We couldn't find your email address in the system, are you sure it's the "
892
+ "right address?"
893
+ msgstr ""
894
+
895
+ #: includes/i18n.php:529
896
+ msgid ""
897
+ "We can't see any active licenses associated with that email address, are you"
898
+ " sure it's the right address?"
899
+ msgstr ""
900
+
901
+ #: includes/i18n.php:533
902
+ msgid "Opt In"
903
+ msgstr ""
904
+
905
+ #: includes/i18n.php:535
906
+ msgid "Opt Out"
907
+ msgstr ""
908
+
909
+ #: includes/i18n.php:537
910
+ msgid "On second thought - I want to continue helping"
911
+ msgstr ""
912
+
913
+ #: includes/i18n.php:541
914
+ msgid "Opting out..."
915
+ msgstr ""
916
+
917
+ #: includes/i18n.php:543
918
+ msgid "Opting in..."
919
+ msgstr ""
920
+
921
+ #: includes/i18n.php:545
922
+ msgid ""
923
+ "We appreciate your help in making the %s better by letting us track some "
924
+ "usage data."
925
+ msgstr ""
926
+
927
+ #: includes/i18n.php:549
928
+ msgid ""
929
+ "Usage tracking is done in the name of making %s better. Making a better user"
930
+ " experience, prioritizing new features, and more good things. We'd really "
931
+ "appreciate if you'll reconsider letting us continue with the tracking."
932
+ msgstr ""
933
+
934
+ #: includes/i18n.php:553
935
+ msgid ""
936
+ "By clicking \"Opt Out\", we will no longer be sending any data from %s to "
937
+ "%s."
938
+ msgstr ""
939
+
940
+ #: includes/i18n.php:563
941
+ msgid "Screenshots"
942
+ msgstr "Skærmbilleder"
943
+
944
+ #: includes/i18n.php:565
945
+ msgid "Click to view full-size screenshot %d"
946
+ msgstr ""
947
+
948
+ #: includes/i18n.php:573
949
+ msgid "Freemius Debug"
950
+ msgstr "Freemius Debug"
951
+
952
+ #: includes/i18n.php:575
953
+ msgctxt "as turned on"
954
+ msgid "On"
955
+ msgstr "Til"
956
+
957
+ #: includes/i18n.php:577
958
+ msgctxt "as turned off"
959
+ msgid "Off"
960
+ msgstr "Fra"
961
+
962
+ #: includes/i18n.php:579
963
+ msgctxt "as code debugging"
964
+ msgid "Debugging"
965
+ msgstr "Fejlfinding"
966
+
967
+ #: includes/i18n.php:581
968
+ msgid "Freemius State"
969
+ msgstr "Freemius tilstand"
970
+
971
+ #: includes/i18n.php:583
972
+ msgctxt "as connection was successful"
973
+ msgid "Connected"
974
+ msgstr "Forbundet"
975
+
976
+ #: includes/i18n.php:585
977
+ msgctxt "as connection blocked"
978
+ msgid "Blocked"
979
+ msgstr "Blokeret"
980
+
981
+ #: includes/i18n.php:587
982
+ msgctxt "as application program interface"
983
+ msgid "API"
984
+ msgstr "API"
985
+
986
+ #: includes/i18n.php:589
987
+ msgctxt "as software development kit versions"
988
+ msgid "SDK"
989
+ msgstr "SDK"
990
+
991
+ #: includes/i18n.php:591
992
+ msgctxt "as software development kit versions"
993
+ msgid "SDK Versions"
994
+ msgstr "SDK-versioner"
995
+
996
+ #: includes/i18n.php:595
997
+ msgctxt "as plugin folder path"
998
+ msgid "Plugin Path"
999
+ msgstr "Plugin-sti"
1000
+
1001
+ #: includes/i18n.php:597
1002
+ msgctxt "as sdk path"
1003
+ msgid "SDK Path"
1004
+ msgstr "SDK-sti"
1005
+
1006
+ #: includes/i18n.php:599
1007
+ msgid "Add Ons of Plugin %s"
1008
+ msgstr "Tilføjelser til plugin %s"
1009
+
1010
+ #: includes/i18n.php:601
1011
+ msgid "Are you sure you want to delete all Freemius data?"
1012
+ msgstr ""
1013
+
1014
+ #: includes/i18n.php:605
1015
+ msgid "Actions"
1016
+ msgstr "Handlinger"
1017
+
1018
+ #: includes/i18n.php:607
1019
+ msgid "Delete All Accounts"
1020
+ msgstr "Slet alle konti"
1021
+
1022
+ #: includes/i18n.php:609
1023
+ msgid "Start Fresh"
1024
+ msgstr "Start forfra"
1025
+
1026
+ #: includes/i18n.php:611
1027
+ msgid "Clear API Cache"
1028
+ msgstr "Ryd API-cache"
1029
+
1030
+ #: includes/i18n.php:613
1031
+ msgid "Sync Data From Server"
1032
+ msgstr "Synkroniser data fra server"
1033
+
1034
+ #: includes/i18n.php:615
1035
+ msgid "Scheduled Crons"
1036
+ msgstr "Planlagte cron jobs"
1037
+
1038
+ #: includes/i18n.php:617
1039
+ msgid "Plugins & Themes Sync"
1040
+ msgstr "Synkronisering af plugins og temaer"
1041
+
1042
+ #: includes/i18n.php:625
1043
+ msgctxt "as congratulations"
1044
+ msgid "Congrats"
1045
+ msgstr "Tillykke"
1046
+
1047
+ #: includes/i18n.php:627
1048
+ msgctxt "exclamation"
1049
+ msgid "Oops"
1050
+ msgstr "Ups"
1051
+
1052
+ #: includes/i18n.php:629
1053
+ msgctxt "interjection expressing joy or exuberance"
1054
+ msgid "Yee-haw"
1055
+ msgstr ""
1056
+
1057
+ #: includes/i18n.php:633
1058
+ msgctxt ""
1059
+ "(especially in electronic communication) used to express elation, "
1060
+ "enthusiasm, or triumph."
1061
+ msgid "W00t"
1062
+ msgstr ""
1063
+
1064
+ #: includes/i18n.php:637
1065
+ msgctxt "a positive response"
1066
+ msgid "Right on"
1067
+ msgstr "Sådan"
1068
+
1069
+ #: includes/i18n.php:639
1070
+ msgctxt ""
1071
+ "something somebody says when they are thinking about what you have just "
1072
+ "said. "
1073
+ msgid "Hmm"
1074
+ msgstr "Hmm"
1075
+
1076
+ #: includes/i18n.php:643
1077
+ msgid "O.K"
1078
+ msgstr "O.K"
1079
+
1080
+ #: includes/i18n.php:645
1081
+ msgctxt "exclamation"
1082
+ msgid "Hey"
1083
+ msgstr "Hey"
1084
+
1085
+ #: includes/i18n.php:647
1086
+ msgctxt "advance notice of something that will need attention."
1087
+ msgid "Heads up"
1088
+ msgstr "Se her"
1089
+
1090
+ #: includes/i18n.php:657
1091
+ msgid "Seems like you got the latest release."
1092
+ msgstr ""
1093
+
1094
+ #: includes/i18n.php:659
1095
+ msgid "You are all good!"
1096
+ msgstr "Det var det!"
1097
+
1098
+ #: includes/i18n.php:661
1099
+ msgid ""
1100
+ "Sorry, we could not complete the email update. Another user with the same "
1101
+ "email is already registered."
1102
+ msgstr ""
1103
+
1104
+ #: includes/i18n.php:665
1105
+ msgid ""
1106
+ "If you would like to give up the ownership of the plugin's account to %s "
1107
+ "click the Change Ownership button."
1108
+ msgstr ""
1109
+
1110
+ #: includes/i18n.php:669
1111
+ msgid ""
1112
+ "Your email was successfully updated. You should receive an email with "
1113
+ "confirmation instructions in few moments."
1114
+ msgstr ""
1115
+
1116
+ #: includes/i18n.php:673
1117
+ msgid "Your name was successfully updated."
1118
+ msgstr "Dit navn er blevet opdateret."
1119
+
1120
+ #: includes/i18n.php:675
1121
+ msgid "You have successfully updated your %s."
1122
+ msgstr "Opdatering af %s blev gennemført."
1123
+
1124
+ #: includes/i18n.php:677
1125
+ msgid "Please provide your full name."
1126
+ msgstr "Indtast venligst dit fulde navn."
1127
+
1128
+ #: includes/i18n.php:679
1129
+ msgid ""
1130
+ "Verification mail was just sent to %s. If you can't find it after 5 min, "
1131
+ "please check your spam box."
1132
+ msgstr ""
1133
+
1134
+ #: includes/i18n.php:683
1135
+ msgid ""
1136
+ "Just letting you know that the add-ons information of %s is being pulled "
1137
+ "from an external server."
1138
+ msgstr ""
1139
+
1140
+ #: includes/i18n.php:687
1141
+ msgid "No credit card required"
1142
+ msgstr "Betalingskort ikke påkrævet"
1143
+
1144
+ #: includes/i18n.php:689
1145
+ msgid "Premium plugin version was successfully activated."
1146
+ msgstr ""
1147
+
1148
+ #: includes/i18n.php:693
1149
+ msgid "The upgrade of %s was successfully completed."
1150
+ msgstr ""
1151
+
1152
+ #: includes/i18n.php:695
1153
+ msgid "Your account was successfully activated with the %s plan."
1154
+ msgstr ""
1155
+
1156
+ #: includes/i18n.php:699
1157
+ msgid "Download the latest %s version now"
1158
+ msgstr "Download den seneste version af %s nu"
1159
+
1160
+ #: includes/i18n.php:701
1161
+ msgid "Please follow these steps to complete the upgrade"
1162
+ msgstr ""
1163
+
1164
+ #: includes/i18n.php:705
1165
+ msgid "Download the latest %s version"
1166
+ msgstr "Download den seneste version af %s"
1167
+
1168
+ #: includes/i18n.php:707
1169
+ msgid "Deactivate the free version"
1170
+ msgstr "Deaktiver den gratis version"
1171
+
1172
+ #: includes/i18n.php:709
1173
+ msgid "Upload and activate the downloaded version"
1174
+ msgstr "Upload og aktiver den downloadede version"
1175
+
1176
+ #: includes/i18n.php:711
1177
+ msgid "How to upload and activate?"
1178
+ msgstr "Upload og aktivering, hvordan?"
1179
+
1180
+ #: includes/i18n.php:713
1181
+ msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1182
+ msgid "%s Add-on was successfully purchased."
1183
+ msgstr "Betalingen for tilføjelsen %s blev gennemført."
1184
+
1185
+ #: includes/i18n.php:717
1186
+ msgid "Your %s Add-on plan was successfully upgraded."
1187
+ msgstr ""
1188
+
1189
+ #: includes/i18n.php:721
1190
+ msgid "Your email has been successfully verified - you are AWESOME!"
1191
+ msgstr ""
1192
+
1193
+ #: includes/i18n.php:725
1194
+ msgid "Your plan was successfully upgraded."
1195
+ msgstr "Din plan er blevet opgraderet."
1196
+
1197
+ #: includes/i18n.php:727
1198
+ msgid "Your plan was successfully changed to %s."
1199
+ msgstr "Din plan er blevet ændret til %s."
1200
+
1201
+ #: includes/i18n.php:729
1202
+ msgid ""
1203
+ "Your license has expired. You can still continue using the free plugin "
1204
+ "forever."
1205
+ msgstr ""
1206
+
1207
+ #: includes/i18n.php:733
1208
+ msgid ""
1209
+ "Your license has been cancelled. If you think it's a mistake, please contact"
1210
+ " support."
1211
+ msgstr ""
1212
+
1213
+ #: includes/i18n.php:737
1214
+ msgid "Your trial has been successfully started."
1215
+ msgstr "Din prøveperiode er begyndt."
1216
+
1217
+ #: includes/i18n.php:739
1218
+ msgid "Your license was successfully activated."
1219
+ msgstr "Din licens er blevet aktiveret."
1220
+
1221
+ #: includes/i18n.php:741
1222
+ msgid "It looks like your site currently doesn't have an active license."
1223
+ msgstr "Det ser ud til, at dit websted endnu ikke har en aktiv licens."
1224
+
1225
+ #: includes/i18n.php:745
1226
+ msgid ""
1227
+ "Your license was successfully deactivated, you are back to the %s plan."
1228
+ msgstr ""
1229
+
1230
+ #: includes/i18n.php:749
1231
+ msgid "It looks like the license deactivation failed."
1232
+ msgstr "Det ser ud til, at licens-deaktiveringen mislykkedes."
1233
+
1234
+ #: includes/i18n.php:753
1235
+ msgid "It looks like the license could not be activated."
1236
+ msgstr "Det ser ud til, at licensen ikke kunne aktiveres."
1237
+
1238
+ #: includes/i18n.php:757
1239
+ msgid "Error received from the server:"
1240
+ msgstr "Fejl modtager fra serveren:"
1241
+
1242
+ #: includes/i18n.php:759
1243
+ msgid ""
1244
+ "Your trial has expired. You can still continue using all our free features."
1245
+ msgstr "Din prøveperiode er udløbet. Du kan fortsat bruge alle vores gratis funktioner."
1246
+
1247
+ #: includes/i18n.php:763
1248
+ msgid ""
1249
+ "Your plan was successfully downgraded. Your %s plan license will expire in "
1250
+ "%s."
1251
+ msgstr ""
1252
+
1253
+ #: includes/i18n.php:767
1254
+ msgid ""
1255
+ "Seems like we are having some temporary issue with your plan downgrade. "
1256
+ "Please try again in few minutes."
1257
+ msgstr ""
1258
+
1259
+ #: includes/i18n.php:771
1260
+ msgid ""
1261
+ "It looks like you are not in trial mode anymore so there's nothing to cancel"
1262
+ " :)"
1263
+ msgstr ""
1264
+
1265
+ #: includes/i18n.php:775
1266
+ msgid "Your %s free trial was successfully cancelled."
1267
+ msgstr ""
1268
+
1269
+ #: includes/i18n.php:779
1270
+ msgctxt "%s - numeric version number"
1271
+ msgid "Version %s was released."
1272
+ msgstr "Version %s er blevet udgivet."
1273
+
1274
+ #: includes/i18n.php:783
1275
+ msgid "Please download %s."
1276
+ msgstr "Download venligst %s."
1277
+
1278
+ #: includes/i18n.php:785
1279
+ msgctxt "%s - plan name, as the latest professional version here"
1280
+ msgid "the latest %s version here"
1281
+ msgstr "den seneste version af %s her"
1282
+
1283
+ #: includes/i18n.php:789
1284
+ msgid ""
1285
+ "How do you like %s so far? Test all our %s premium features with a %d-day "
1286
+ "free trial."
1287
+ msgstr ""
1288
+
1289
+ #: includes/i18n.php:793
1290
+ msgctxt "call to action"
1291
+ msgid "Start free trial"
1292
+ msgstr "Start gratis prøveperiode"
1293
+
1294
+ #: includes/i18n.php:795
1295
+ msgid "Starting trial"
1296
+ msgstr ""
1297
+
1298
+ #: includes/i18n.php:797
1299
+ msgid "Please wait"
1300
+ msgstr ""
1301
+
1302
+ #: includes/i18n.php:799
1303
+ msgid ""
1304
+ "Seems like we are having some temporary issue with your trial cancellation. "
1305
+ "Please try again in few minutes."
1306
+ msgstr ""
1307
+
1308
+ #: includes/i18n.php:803
1309
+ msgid "You already utilized a trial before."
1310
+ msgstr "Du har allerede brugt din prøveperiode."
1311
+
1312
+ #: includes/i18n.php:805
1313
+ msgid "You are already running the plugin in a trial mode."
1314
+ msgstr ""
1315
+
1316
+ #: includes/i18n.php:809
1317
+ msgid "Plan %s do not exist, therefore, can't start a trial."
1318
+ msgstr ""
1319
+
1320
+ #: includes/i18n.php:813
1321
+ msgid "Plan %s does not support a trial period."
1322
+ msgstr "Plan %s understøtter ikke en prøveperiode."
1323
+
1324
+ #: includes/i18n.php:815
1325
+ msgid "None of the plugin's plans supports a trial period."
1326
+ msgstr ""
1327
+
1328
+ #: includes/i18n.php:819
1329
+ msgid ""
1330
+ "Unexpected API error. Please contact the plugin's author with the following "
1331
+ "error."
1332
+ msgstr ""
1333
+
1334
+ #: includes/i18n.php:823
1335
+ msgid "No commitment for %s days - cancel anytime!"
1336
+ msgstr "Ingen bindinger i %s dage - annuller når som helst!"
1337
+
1338
+ #: includes/i18n.php:825
1339
+ msgid ""
1340
+ "Your license has expired. You can still continue using all the %s features, "
1341
+ "but you'll need to renew your license to continue getting updates and "
1342
+ "support."
1343
+ msgstr ""
1344
+
1345
+ #: includes/i18n.php:829
1346
+ msgid "Couldn't activate %s."
1347
+ msgstr "Kunne ikke aktivere %s."
1348
+
1349
+ #: includes/i18n.php:831
1350
+ msgid "Please contact us with the following message:"
1351
+ msgstr "Kontakt os venligst med følgende besked:"
1352
+
1353
+ #: includes/i18n.php:833
1354
+ msgid ""
1355
+ "It looks like you are still on the %s plan. If you did upgrade or change "
1356
+ "your plan, it's probably an issue on our side - sorry."
1357
+ msgstr ""
1358
+
1359
+ #: includes/i18n.php:837
1360
+ msgid "Please contact us here"
1361
+ msgstr "Kontakt os her"
1362
+
1363
+ #: includes/i18n.php:839
1364
+ msgid ""
1365
+ "I have upgraded my account but when I try to Sync the License, the plan "
1366
+ "remains %s."
1367
+ msgstr ""
1368
+
1369
+ #: includes/i18n.php:847
1370
+ msgid "From unknown reason, the API connectivity test failed."
1371
+ msgstr ""
1372
+
1373
+ #: includes/i18n.php:851
1374
+ msgid ""
1375
+ "It's probably a temporary issue on our end. Just to be sure, with your "
1376
+ "permission, would it be o.k to run another connectivity test?"
1377
+ msgstr ""
1378
+
1379
+ #: includes/i18n.php:855
1380
+ msgid ""
1381
+ "We use PHP cURL library for the API calls, which is a very common library "
1382
+ "and usually installed out of the box. Unfortunately, cURL is not installed "
1383
+ "on your server."
1384
+ msgstr ""
1385
+
1386
+ #: includes/i18n.php:859
1387
+ msgid ""
1388
+ "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1389
+ msgstr ""
1390
+
1391
+ #: includes/i18n.php:863
1392
+ msgctxt "as pluginX requires an access to our API"
1393
+ msgid "%s requires an access to our API."
1394
+ msgstr ""
1395
+
1396
+ #: includes/i18n.php:867
1397
+ msgid ""
1398
+ "It looks like your server is using Squid ACL (access control lists), which "
1399
+ "blocks the connection."
1400
+ msgstr ""
1401
+
1402
+ #: includes/i18n.php:871
1403
+ msgid "I don't know what is Squid or ACL, help me!"
1404
+ msgstr ""
1405
+
1406
+ #: includes/i18n.php873, includes/i18n.php:887
1407
+ msgid ""
1408
+ "We'll make sure to contact your hosting company and resolve the issue. You "
1409
+ "will get a follow-up email to %s once we have an update."
1410
+ msgstr ""
1411
+
1412
+ #: includes/i18n.php:877
1413
+ msgid "I'm a system administrator"
1414
+ msgstr "Jeg er en system-administrator"
1415
+
1416
+ #: includes/i18n.php:879
1417
+ msgid ""
1418
+ "Great, please whitelist the following domains: %s. Once you done, deactivate"
1419
+ " the plugin and activate it again."
1420
+ msgstr ""
1421
+
1422
+ #: includes/i18n.php:883
1423
+ msgid "I don't know what is cURL or how to install it, help me!"
1424
+ msgstr ""
1425
+
1426
+ #: includes/i18n.php:891
1427
+ msgid ""
1428
+ "Great, please install cURL and enable it in your php.ini file. To make sure "
1429
+ "it was successfully activated, use 'phpinfo()'. Once activated, deactivate "
1430
+ "the plugin and reactivate it back again."
1431
+ msgstr ""
1432
+
1433
+ #: includes/i18n.php:895
1434
+ msgid ""
1435
+ "We are sure it's an issue on our side and more than happy to resolve it for "
1436
+ "you ASAP if you give us a chance."
1437
+ msgstr ""
1438
+
1439
+ #: includes/i18n.php:899
1440
+ msgid ""
1441
+ "Sorry for the inconvenience and we are here to help if you give us a chance."
1442
+ msgstr ""
1443
+
1444
+ #: includes/i18n.php:903
1445
+ msgid "Yes - I'm giving you a chance to fix it"
1446
+ msgstr "Ja - jeg giver jer en chance for at rette det"
1447
+
1448
+ #: includes/i18n.php:905
1449
+ msgid ""
1450
+ "We will do our best to whitelist your server and resolve this issue ASAP. "
1451
+ "You will get a follow-up email to %s once we have an update."
1452
+ msgstr ""
1453
+
1454
+ #: includes/i18n.php:909
1455
+ msgid "Let's try your previous version"
1456
+ msgstr "Lad os prøve din forrige version"
1457
+
1458
+ #: includes/i18n.php:911
1459
+ msgid "Uninstall this version and install the previous one."
1460
+ msgstr "Afinstaller denne version og installer den forrige."
1461
+
1462
+ #: includes/i18n.php:915
1463
+ msgid "That's exhausting, please deactivate"
1464
+ msgstr ""
1465
+
1466
+ #: includes/i18n.php:917
1467
+ msgid ""
1468
+ "We feel your frustration and sincerely apologize for the inconvenience. Hope"
1469
+ " to see you again in the future."
1470
+ msgstr ""
1471
+
1472
+ #: includes/i18n.php:921
1473
+ msgid ""
1474
+ "Thank for giving us the chance to fix it! A message was just sent to our "
1475
+ "technical staff. We will get back to you as soon as we have an update to %s."
1476
+ " Appreciate your patience."
1477
+ msgstr ""
1478
+
1479
+ #: includes/i18n.php:925
1480
+ msgctxt "%1s - plugin title, %2s - API domain"
1481
+ msgid ""
1482
+ "Your server is blocking the access to Freemius' API, which is crucial for "
1483
+ "%1s synchronization. Please contact your host to whitelist %2s"
1484
+ msgstr ""
1485
+
1486
+ #: includes/i18n.php:929
1487
+ msgid ""
1488
+ "It seems like one of the authentication parameters is wrong. Update your "
1489
+ "Public Key, Secret Key & User ID, and try again."
1490
+ msgstr ""
1491
+
1492
+ #: includes/i18n.php:937
1493
+ msgid ""
1494
+ "Please check your mailbox, you should receive an email via %s to confirm the"
1495
+ " ownership change. From security reasons, you must confirm the change within"
1496
+ " the next 15 min. If you cannot find the email, please check your spam "
1497
+ "folder."
1498
+ msgstr ""
1499
+
1500
+ #: includes/i18n.php:941
1501
+ msgid ""
1502
+ "Thanks for confirming the ownership change. An email was just sent to %s for"
1503
+ " final approval."
1504
+ msgstr ""
1505
+
1506
+ #: includes/i18n.php:945
1507
+ msgid "%s is the new owner of the account."
1508
+ msgstr "%s er den nye ejer af kontoen."
1509
+
1510
+ #: includes/i18n.php:949
1511
+ msgctxt "addonX cannot run without pluginY"
1512
+ msgid "%s cannot run without %s."
1513
+ msgstr "%s virker ikke uden %s."
1514
+
1515
+ #: includes/i18n.php:953
1516
+ msgctxt "addonX cannot run..."
1517
+ msgid "%s cannot run without the plugin."
1518
+ msgstr "%s virker ikke uden pluginnet."
1519
+
1520
+ #: includes/i18n.php:957
1521
+ msgctxt "pluginX activation was successfully..."
1522
+ msgid "%s activation was successfully completed."
1523
+ msgstr "Aktivering af %s blev gennemført."
1524
+
1525
+ #: includes/i18n.php:961
1526
+ msgctxt "Plugin installer section title"
1527
+ msgid "Features & Pricing"
1528
+ msgstr "Funktioner og priser"
1529
+
1530
+ #: includes/i18n.php:965
1531
+ msgid "Add-on must be deployed to WordPress.org or Freemius."
1532
+ msgstr ""
1533
+
1534
+ #: includes/i18n.php:969
1535
+ msgid "Paid add-on must be deployed to Freemius."
1536
+ msgstr ""
1537
+
1538
+ #: includes/i18n.php:977
1539
+ msgid ""
1540
+ "%s is a premium only add-on. You have to purchase a license first before "
1541
+ "activating the plugin."
1542
+ msgstr ""
1543
+
1544
+ #: includes/i18n.php:981
1545
+ msgid ""
1546
+ "%s free trial was successfully cancelled. Since the add-on is premium only "
1547
+ "it was automatically deactivated. If you like to use it in the future, "
1548
+ "you'll have to purchase a license."
1549
+ msgstr ""
1550
+
1551
+ #: includes/i18n.php:993
1552
+ msgctxt "as every month"
1553
+ msgid "Monthly"
1554
+ msgstr "Månedligt"
1555
+
1556
+ #: includes/i18n.php:995
1557
+ msgctxt "as monthly period"
1558
+ msgid "mo"
1559
+ msgstr "md"
1560
+
1561
+ #: includes/i18n.php:997
1562
+ msgctxt "as once a year"
1563
+ msgid "Annual"
1564
+ msgstr "Årligt"
1565
+
1566
+ #: includes/i18n.php:999
1567
+ msgctxt "as once a year"
1568
+ msgid "Annually"
1569
+ msgstr "Årligt"
1570
+
1571
+ #: includes/i18n.php:1001
1572
+ msgctxt "as once a year"
1573
+ msgid "Once"
1574
+ msgstr "Engangsbeløb"
1575
+
1576
+ #: includes/i18n.php:1003
1577
+ msgctxt "as annual period"
1578
+ msgid "year"
1579
+ msgstr "år"
1580
+
1581
+ #: includes/i18n.php:1005
1582
+ msgid "Lifetime"
1583
+ msgstr ""
1584
+
1585
+ #: includes/i18n.php:1007
1586
+ msgctxt "e.g. the best product"
1587
+ msgid "Best"
1588
+ msgstr "Bedste"
1589
+
1590
+ #: includes/i18n.php:1009
1591
+ msgctxt "e.g. billed monthly"
1592
+ msgid "Billed %s"
1593
+ msgstr ""
1594
+
1595
+ #: includes/i18n.php:1011
1596
+ msgctxt "as a discount of $5 or 10%"
1597
+ msgid "Save %s"
1598
+ msgstr "Spar %s"
1599
+
1600
+ #: includes/i18n.php:1015
1601
+ msgid "View details"
1602
+ msgstr "Vis detaljer"
1603
+
1604
+ #: includes/i18n.php:1023
1605
+ msgctxt "button label"
1606
+ msgid "Approve & Start Trial"
1607
+ msgstr ""
1608
+
1609
+ #: includes/i18n.php:1027
1610
+ msgid ""
1611
+ "You are 1-click away from starting your %1$s-day free trial of the %2$s "
1612
+ "plan."
1613
+ msgstr ""
1614
+
1615
+ #: includes/i18n.php:1031
1616
+ msgid ""
1617
+ "For compliance with the WordPress.org guidelines, before we start the trial "
1618
+ "we ask that you opt-in with your user and non-sensitive site information, "
1619
+ "allowing the plugin to periodically send data to %s to check for version "
1620
+ "updates and to validate your trial."
1621
+ msgstr ""
1622
+
1623
+ #: includes/i18n.php:1043
1624
+ msgid "Business name"
1625
+ msgstr ""
1626
+
1627
+ #: includes/i18n.php:1045
1628
+ msgid "Tax / VAT ID"
1629
+ msgstr ""
1630
+
1631
+ #: includes/i18n.php:1047
1632
+ msgid "Address Line %d"
1633
+ msgstr ""
1634
+
1635
+ #: includes/i18n.php:1049
1636
+ msgid "Country"
1637
+ msgstr ""
1638
+
1639
+ #: includes/i18n.php:1051
1640
+ msgid "Select Country"
1641
+ msgstr ""
1642
+
1643
+ #: includes/i18n.php:1053
1644
+ msgid "City"
1645
+ msgstr ""
1646
+
1647
+ #: includes/i18n.php:1055
1648
+ msgid "Town"
1649
+ msgstr ""
1650
+
1651
+ #: includes/i18n.php:1057
1652
+ msgid "State"
1653
+ msgstr ""
1654
+
1655
+ #: includes/i18n.php:1059
1656
+ msgid "Province"
1657
+ msgstr ""
1658
+
1659
+ #: includes/i18n.php:1061
1660
+ msgid "ZIP / Postal Code"
1661
+ msgstr ""
freemius/languages/freemius-en.mo CHANGED
Binary file
freemius/languages/freemius-en.po CHANGED
@@ -130,1267 +130,1393 @@ msgid "Edit"
130
  msgstr "Edit"
131
 
132
  #: includes/i18n.php:119
 
 
 
 
 
133
  msgid "Date"
134
  msgstr "Date"
135
 
136
- #: includes/i18n.php:121
137
  msgid "Amount"
138
  msgstr "Amount"
139
 
140
- #: includes/i18n.php:123
141
  msgid "Invoice"
142
  msgstr "Invoice"
143
 
144
- #: includes/i18n.php:125
145
  msgid "Billing"
146
  msgstr "Billing"
147
 
148
- #: includes/i18n.php:127
149
  msgid "Payments"
150
  msgstr "Payments"
151
 
152
- #: includes/i18n.php:129
153
  msgid "Delete Account"
154
  msgstr "Delete Account"
155
 
156
- #: includes/i18n.php:131
157
  msgctxt "as close a window"
158
  msgid "Dismiss"
159
  msgstr "Dismiss"
160
 
161
- #: includes/i18n.php:133
162
  msgctxt "as product pricing plan"
163
  msgid "Plan"
164
  msgstr "Plan"
165
 
166
- #: includes/i18n.php:135
167
  msgid "Change Plan"
168
  msgstr "Change Plan"
169
 
170
- #: includes/i18n.php:137
171
  msgctxt "as download professional version"
172
  msgid "Download %s Version"
173
  msgstr "Download %s Version"
174
 
175
- #: includes/i18n.php:139
176
  msgctxt "as download professional version now"
177
  msgid "Download %s version now"
178
  msgstr "Download %s version now"
179
 
180
- #: includes/i18n.php:141
181
  msgctxt "as download latest version"
182
  msgid "Download Latest"
183
  msgstr "Download Latest"
184
 
185
- #: includes/i18n.php:143
186
  msgctxt "E.g. you have a professional license."
187
  msgid "You have a %s license."
188
  msgstr "You have a %s license."
189
 
190
- #: includes/i18n.php:145
191
  msgid "New"
192
  msgstr "New"
193
 
194
- #: includes/i18n.php:147
195
  msgid "Free"
196
  msgstr "Free"
197
 
198
- #: includes/i18n.php:149
199
  msgctxt "as trial plan"
200
  msgid "Trial"
201
  msgstr "Trial"
202
 
203
- #: includes/i18n.php:151
 
 
 
 
 
204
  msgctxt "verb"
205
  msgid "Purchase"
206
  msgstr "Purchase"
207
 
208
- #: includes/i18n.php:153
209
  msgid "Purchase License"
210
  msgstr "Purchase License"
211
 
212
- #: includes/i18n.php:155
213
  msgctxt "verb"
214
  msgid "Buy"
215
  msgstr "Buy"
216
 
217
- #: includes/i18n.php:157
218
  msgid "Buy License"
219
  msgstr "Buy License"
220
 
221
- #: includes/i18n.php:159
222
  msgid "Single Site License"
223
  msgstr "Single Site License"
224
 
225
- #: includes/i18n.php:161
226
  msgid "Unlimited Licenses"
227
  msgstr "Unlimited Licenses"
228
 
229
- #: includes/i18n.php:163
230
  msgid "Up to %s Sites"
231
  msgstr "Up to %s Sites"
232
 
233
- #: includes/i18n.php:165
234
  msgid "%sRenew your license now%s to access version %s features and support."
235
  msgstr "%sRenew your license now%s to access version %s features and support."
236
 
237
- #: includes/i18n.php:167
238
  msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
239
  msgstr "Enter the email address you've used for the upgrade below and we will resend you the license key."
240
 
241
- #: includes/i18n.php:169
242
  msgctxt "e.g. Professional Plan"
243
  msgid "%s Plan"
244
  msgstr "%s Plan"
245
 
246
- #: includes/i18n.php:171
247
  msgid "You are just one step away - %s"
248
  msgstr "You are just one step away - %s"
249
 
250
- #: includes/i18n.php:173
251
  msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
252
  msgid "Complete \"%s\" Activation Now"
253
  msgstr "Complete \"%s\" Activation Now"
254
 
255
- #: includes/i18n.php:175
256
  msgid "We made a few tweaks to the plugin, %s"
257
  msgstr "We made a few tweaks to the plugin, %s"
258
 
259
- #: includes/i18n.php:177
260
  msgid "Opt-in to make \"%s\" Better!"
261
  msgstr "Opt-in to make \"%s\" Better!"
262
 
263
- #: includes/i18n.php:179
264
  msgid "Error"
265
  msgstr "Error"
266
 
267
- #: includes/i18n.php:181
268
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
269
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
270
 
271
- #: includes/i18n.php:187
272
  msgctxt "as expiration date"
273
  msgid "Expiration"
274
  msgstr "Expiration"
275
 
276
- #: includes/i18n.php:189
277
  msgctxt "as software license"
278
  msgid "License"
279
  msgstr "License"
280
 
281
- #: includes/i18n.php:191
282
  msgid "not verified"
283
  msgstr "not verified"
284
 
285
- #: includes/i18n.php:193
286
  msgid "Verify Email"
287
  msgstr "Verify Email"
288
 
289
- #: includes/i18n.php:195
290
  msgctxt "e.g. expires in 2 months"
291
  msgid "Expires in %s"
292
  msgstr "Expires in %s"
293
 
294
- #: includes/i18n.php:197
295
  msgctxt "e.g. auto renews in 2 months"
296
  msgid "Auto renews in %s"
297
  msgstr "Auto renews in %s"
298
 
299
- #: includes/i18n.php:199
300
  msgid "No expiration"
301
  msgstr "No expiration"
302
 
303
- #: includes/i18n.php:201
304
  msgid "Expired"
305
  msgstr "Expired"
306
 
307
- #: includes/i18n.php:203
308
  msgid "Cancelled"
309
  msgstr "Cancelled"
310
 
311
- #: includes/i18n.php:205
312
  msgctxt "e.g. In 2 hours"
313
  msgid "In %s"
314
  msgstr "In %s"
315
 
316
- #: includes/i18n.php:207
317
  msgctxt "e.g. 2 min ago"
318
  msgid "%s ago"
319
  msgstr "%s ago"
320
 
321
- #: includes/i18n.php:209
322
  msgctxt "as plugin version"
323
  msgid "Version"
324
  msgstr "Version"
325
 
326
- #: includes/i18n.php:211
327
  msgid "Name"
328
  msgstr "Name"
329
 
330
- #: includes/i18n.php:213
331
  msgid "Email"
332
  msgstr "Email"
333
 
334
- #: includes/i18n.php:215
335
  msgid "Email address"
336
  msgstr "Email address"
337
 
338
- #: includes/i18n.php:217
339
  msgid "Verified"
340
  msgstr "Verified"
341
 
342
- #: includes/i18n.php:219
343
  msgid "Plugin"
344
  msgstr "Plugin"
345
 
346
- #: includes/i18n.php:221
347
  msgid "Plugins"
348
  msgstr "Plugins"
349
 
350
- #: includes/i18n.php:223
351
  msgid "Themes"
352
  msgstr "Themes"
353
 
354
- #: includes/i18n.php:225
355
  msgctxt "as file/folder path"
356
  msgid "Path"
357
  msgstr "Path"
358
 
359
- #: includes/i18n.php:227
360
  msgid "Title"
361
  msgstr "Title"
362
 
363
- #: includes/i18n.php:229
364
  msgid "Free version"
365
  msgstr "Free version"
366
 
367
- #: includes/i18n.php:231
368
  msgid "Premium version"
369
  msgstr "Premium version"
370
 
371
- #: includes/i18n.php:233
372
  msgctxt "as WP plugin slug"
373
  msgid "Slug"
374
  msgstr "Slug"
375
 
376
- #: includes/i18n.php:235
377
  msgid "ID"
378
  msgstr "ID"
379
 
380
- #: includes/i18n.php:237
381
  msgid "Users"
382
  msgstr "Users"
383
 
384
- #: includes/i18n.php:239
385
  msgid "Plugin Installs"
386
  msgstr "Plugin Installs"
387
 
388
- #: includes/i18n.php:241
389
  msgctxt "like websites"
390
  msgid "Sites"
391
  msgstr "Sites"
392
 
393
- #: includes/i18n.php:243
394
  msgid "User ID"
395
  msgstr "User ID"
396
 
397
- #: includes/i18n.php:245
398
  msgid "Site ID"
399
  msgstr "Site ID"
400
 
401
- #: includes/i18n.php:247
402
  msgid "Public Key"
403
  msgstr "Public Key"
404
 
405
- #: includes/i18n.php:249
406
  msgid "Secret Key"
407
  msgstr "Secret Key"
408
 
409
- #: includes/i18n.php:251
410
  msgctxt "as secret encryption key missing"
411
  msgid "No Secret"
412
  msgstr "No Secret"
413
 
414
- #: includes/i18n.php:253
415
  msgid "No ID"
416
  msgstr "No ID"
417
 
418
- #: includes/i18n.php:255
419
  msgctxt "as synchronize license"
420
  msgid "Sync License"
421
  msgstr "Sync License"
422
 
423
- #: includes/i18n.php:257
424
  msgctxt "as synchronize"
425
  msgid "Sync"
426
  msgstr "Sync"
427
 
428
- #: includes/i18n.php:259
429
  msgid "Activate License"
430
  msgstr "Activate License"
431
 
432
- #: includes/i18n.php:261
433
  msgid "Activate Free Version"
434
  msgstr "Activate Free Version"
435
 
436
- #: includes/i18n.php:263
437
  msgid "Please enter the license key that you received in the email right after the purchase:"
438
  msgstr "Please enter the license key that you received in the email right after the purchase:"
439
 
440
- #: includes/i18n.php:265
441
  msgid "Activating license..."
442
  msgstr "Activating license..."
443
 
444
- #: includes/i18n.php:267
445
  msgid "Change License"
446
  msgstr "Change License"
447
 
448
- #: includes/i18n.php:269
449
  msgid "Update License"
450
  msgstr "Update License"
451
 
452
- #: includes/i18n.php:271
453
  msgid "Deactivate License"
454
  msgstr "Deactivate License"
455
 
456
- #: includes/i18n.php:273
457
  msgid "Activate"
458
  msgstr "Activate"
459
 
460
- #: includes/i18n.php:275
461
  msgid "Deactivate"
462
  msgstr "Deactivate"
463
 
464
- #: includes/i18n.php:277
465
  msgid "Skip & Deactivate"
466
  msgstr "Skip & Deactivate"
467
 
468
- #: includes/i18n.php:279
469
  msgid "No - just deactivate"
470
  msgstr "No - just deactivate"
471
 
472
- #: includes/i18n.php:281
473
  msgid "Yes - do your thing"
474
  msgstr "Yes - do your thing"
475
 
476
- #: includes/i18n.php:283
477
  msgctxt "active mode"
478
  msgid "Active"
479
  msgstr "Active"
480
 
481
- #: includes/i18n.php:285
482
  msgctxt "is active mode?"
483
  msgid "Is Active"
484
  msgstr "Is Active"
485
 
486
- #: includes/i18n.php:287
487
  msgid "Install Now"
488
  msgstr "Install Now"
489
 
490
- #: includes/i18n.php:289
491
  msgid "Install Update Now"
492
  msgstr "Install Update Now"
493
 
494
- #: includes/i18n.php:291
495
  msgid "More information about %s"
496
  msgstr "More information about %s"
497
 
498
- #: includes/i18n.php:293
499
  msgid "Localhost"
500
  msgstr "Localhost"
501
 
502
- #: includes/i18n.php:295
503
  msgctxt "as activate Professional plan"
504
  msgid "Activate %s Plan"
505
  msgstr "Activate %s Plan"
506
 
507
- #: includes/i18n.php:297
508
  msgctxt "as 5 licenses left"
509
  msgid "%s left"
510
  msgstr "%s left"
511
 
512
- #: includes/i18n.php:299
513
  msgid "Last license"
514
  msgstr "Last license"
515
 
516
- #: includes/i18n.php:301
517
  msgid "What is your %s?"
518
  msgstr "What is your %s?"
519
 
520
- #: includes/i18n.php:303
521
  msgid "Activate this add-on"
522
  msgstr "Activate this add-on"
523
 
524
- #: includes/i18n.php:305
525
  msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
526
  msgstr "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
527
 
528
- #: includes/i18n.php:307
529
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
530
  msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
531
 
532
- #: includes/i18n.php:309
533
  msgid "Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?"
534
  msgstr "Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?"
535
 
536
- #: includes/i18n.php:311
537
  msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
538
  msgstr "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
539
 
540
- #: includes/i18n.php:313
541
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
542
  msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
543
 
544
- #: includes/i18n.php:315
545
  msgid "You can still enjoy all %s features but you will not have access to plugin updates and support."
546
  msgstr "You can still enjoy all %s features but you will not have access to plugin updates and support."
547
 
548
- #: includes/i18n.php:317
549
  msgid "Once your license expire you can still use the Free version but you will NOT have access to the %s features."
550
  msgstr "Once your license expire you can still use the Free version but you will NOT have access to the %s features."
551
 
552
- #: includes/i18n.php:319
553
  msgid "Are you sure you want to proceed?"
554
  msgstr "Are you sure you want to proceed?"
555
 
556
- #: includes/i18n.php:325
557
  msgid "Add Ons for %s"
558
  msgstr "Add Ons for %s"
559
 
560
- #: includes/i18n.php:327
561
  msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
562
  msgstr "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
563
 
564
- #: includes/i18n.php:331
565
  msgid "Anonymous feedback"
566
  msgstr "Anonymous feedback"
567
 
568
- #: includes/i18n.php:333
569
  msgid "Quick feedback"
570
  msgstr "Quick feedback"
571
 
572
- #: includes/i18n.php:335
573
  msgid "If you have a moment, please let us know why you are deactivating"
574
  msgstr "If you have a moment, please let us know why you are deactivating"
575
 
576
- #: includes/i18n.php:337
577
  msgid "Yes - Deactivate"
578
  msgstr "Yes - Deactivate"
579
 
580
- #: includes/i18n.php:339
581
  msgid "Submit & Deactivate"
582
  msgstr "Submit & Deactivate"
583
 
584
- #: includes/i18n.php:341
585
- msgctxt "the text of the cancel button of the plugin deactivation dialog box."
586
  msgid "Cancel"
587
  msgstr "Cancel"
588
 
589
- #: includes/i18n.php:343
590
  msgid "I no longer need the plugin"
591
  msgstr "I no longer need the plugin"
592
 
593
- #: includes/i18n.php:345
594
  msgid "I found a better plugin"
595
  msgstr "I found a better plugin"
596
 
597
- #: includes/i18n.php:347
598
  msgid "I only needed the plugin for a short period"
599
  msgstr "I only needed the plugin for a short period"
600
 
601
- #: includes/i18n.php:349
602
  msgid "The plugin broke my site"
603
  msgstr "The plugin broke my site"
604
 
605
- #: includes/i18n.php:351
606
  msgid "The plugin suddenly stopped working"
607
  msgstr "The plugin suddenly stopped working"
608
 
609
- #: includes/i18n.php:353
610
  msgid "I can't pay for it anymore"
611
  msgstr "I can't pay for it anymore"
612
 
613
- #: includes/i18n.php:355
614
  msgid "It's a temporary deactivation. I'm just debugging an issue."
615
  msgstr "It's a temporary deactivation. I'm just debugging an issue."
616
 
617
- #: includes/i18n.php:357
618
  msgctxt "the text of the \"other\" reason for deactivating the plugin that is shown in the modal box."
619
  msgid "Other"
620
  msgstr "Other"
621
 
622
- #: includes/i18n.php:359
623
  msgid "Kindly tell us the reason so we can improve."
624
  msgstr "Kindly tell us the reason so we can improve."
625
 
626
- #: includes/i18n.php:361
627
  msgid "What's the plugin's name?"
628
  msgstr "What's the plugin's name?"
629
 
630
- #: includes/i18n.php:363
631
  msgid "What price would you feel comfortable paying?"
632
  msgstr "What price would you feel comfortable paying?"
633
 
634
- #: includes/i18n.php:365
635
  msgid "I couldn't understand how to make it work"
636
  msgstr "I couldn't understand how to make it work"
637
 
638
- #: includes/i18n.php:367
639
  msgid "The plugin is great, but I need specific feature that you don't support"
640
  msgstr "The plugin is great, but I need specific feature that you don't support"
641
 
642
- #: includes/i18n.php:369
643
  msgid "The plugin is not working"
644
  msgstr "The plugin is not working"
645
 
646
- #: includes/i18n.php:371
647
  msgid "It's not what I was looking for"
648
  msgstr "It's not what I was looking for"
649
 
650
- #: includes/i18n.php:373
651
  msgid "The plugin didn't work as expected"
652
  msgstr "The plugin didn't work as expected"
653
 
654
- #: includes/i18n.php:375
655
  msgid "What feature?"
656
  msgstr "What feature?"
657
 
658
- #: includes/i18n.php:377
659
  msgid "Kindly share what didn't work so we can fix it for future users..."
660
  msgstr "Kindly share what didn't work so we can fix it for future users..."
661
 
662
- #: includes/i18n.php:379
663
  msgid "What you've been looking for?"
664
  msgstr "What you've been looking for?"
665
 
666
- #: includes/i18n.php:381
667
  msgid "What did you expect?"
668
  msgstr "What did you expect?"
669
 
670
- #: includes/i18n.php:383
671
  msgid "The plugin didn't work"
672
  msgstr "The plugin didn't work"
673
 
674
- #: includes/i18n.php:385
675
  msgid "I don't like to share my information with you"
676
  msgstr "I don't like to share my information with you"
677
 
678
- #: includes/i18n.php:387
679
  msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
680
  msgstr "You might have missed it, but you don't have to share any data and can just %s the opt-in."
681
 
682
- #: includes/i18n.php:395
683
  msgctxt "greeting"
684
  msgid "Hey %s,"
685
  msgstr "Hey %s,"
686
 
687
- #: includes/i18n.php:397
688
  msgctxt "a greeting. E.g. Thanks John!"
689
  msgid "Thanks %s!"
690
  msgstr "Thanks %s!"
691
 
692
- #: includes/i18n.php:399
693
- msgid "In order to enjoy all our features and functionality, %s needs to connect your user, %s at %s, to %s"
694
- msgstr "In order to enjoy all our features and functionality, %s needs to connect your user, %s at %s, to %s"
695
 
696
- #: includes/i18n.php:401
697
- msgid "Please help us improve %2$s! If you opt-in, some data about your usage of %2$s will be sent to %5$s. If you skip this, that's okay! %2$s will still work just fine."
698
- msgstr "Please help us improve %2$s! If you opt-in, some data about your usage of %2$s will be sent to %5$s. If you skip this, that's okay! %2$s will still work just fine."
699
 
700
- #: includes/i18n.php:403
701
- msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to complete the install."
702
- msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to complete the install."
703
 
704
- #: includes/i18n.php:405
 
 
 
 
 
 
 
 
705
  msgid "Thanks for purchasing %s! To get started, please enter your license key:"
706
  msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
707
 
708
- #: includes/i18n.php:407
709
  msgid "The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license."
710
  msgstr "The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license."
711
 
712
- #: includes/i18n.php:409
713
  msgid "What permissions are being granted?"
714
  msgstr "What permissions are being granted?"
715
 
716
- #: includes/i18n.php:411
717
  msgid "Your Profile Overview"
718
  msgstr "Your Profile Overview"
719
 
720
- #: includes/i18n.php:413
721
  msgid "Name and email address"
722
  msgstr "Name and email address"
723
 
724
- #: includes/i18n.php:415
725
  msgid "Your Site Overview"
726
  msgstr "Your Site Overview"
727
 
728
- #: includes/i18n.php:417
729
  msgid "Site URL, WP version, PHP info, plugins & themes"
730
  msgstr "Site URL, WP version, PHP info, plugins & themes"
731
 
732
- #: includes/i18n.php:419
733
  msgid "Current Plugin Events"
734
  msgstr "Current Plugin Events"
735
 
736
- #: includes/i18n.php:421
737
  msgid "Activation, deactivation and uninstall"
738
  msgstr "Activation, deactivation and uninstall"
739
 
740
- #: includes/i18n.php:423
741
  msgid "Plugins & Themes"
742
  msgstr "Plugins & Themes"
743
 
744
- #: includes/i18n.php:425
745
  msgid "Titles, versions and state."
746
  msgstr "Titles, versions and state."
747
 
748
- #: includes/i18n.php:427
 
 
 
 
749
  msgid "Newsletter"
750
  msgstr "Newsletter"
751
 
752
- #: includes/i18n.php:429
753
  msgid "Updates, announcements, marketing, no spam"
754
  msgstr "Updates, announcements, marketing, no spam"
755
 
756
- #: includes/i18n.php:431
757
  msgid "Privacy Policy"
758
  msgstr "Privacy Policy"
759
 
760
- #: includes/i18n.php:433
761
  msgid "Terms of Service"
762
  msgstr "Terms of Service"
763
 
764
- #: includes/i18n.php:435
765
  msgctxt "as activating plugin"
766
  msgid "Activating"
767
  msgstr "Activating"
768
 
769
- #: includes/i18n.php:437
770
  msgctxt "as in the process of sending an email"
771
  msgid "Sending email"
772
  msgstr "Sending email"
773
 
774
- #: includes/i18n.php:439
775
  msgctxt "button label"
776
  msgid "Allow & Continue"
777
  msgstr "Allow & Continue"
778
 
779
- #: includes/i18n.php:441
780
  msgctxt "button label"
781
  msgid "Agree & Activate License"
782
  msgstr "Agree & Activate License"
783
 
784
- #: includes/i18n.php:443
785
  msgctxt "verb"
786
  msgid "Skip"
787
  msgstr "Skip"
788
 
789
- #: includes/i18n.php:445
790
  msgid "Click here to use the plugin anonymously"
791
  msgstr "Click here to use the plugin anonymously"
792
 
793
- #: includes/i18n.php:447
794
  msgid "Re-send activation email"
795
  msgstr "Re-send activation email"
796
 
797
- #: includes/i18n.php:449
798
  msgid "License key"
799
  msgstr "License key"
800
 
801
- #: includes/i18n.php:451
802
  msgid "Send License Key"
803
  msgstr "Send License Key"
804
 
805
- #: includes/i18n.php:453
806
  msgid "Sending license key"
807
  msgstr "Sending license key"
808
 
809
- #: includes/i18n.php:455
810
  msgid "Have a license key?"
811
  msgstr "Have a license key?"
812
 
813
- #: includes/i18n.php:457
814
  msgid "Don't have a license key?"
815
  msgstr "Don't have a license key?"
816
 
817
- #: includes/i18n.php:459
818
  msgid "Can't find your license key?"
819
  msgstr "Can't find your license key?"
820
 
821
- #: includes/i18n.php:471
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
822
  msgid "Screenshots"
823
  msgstr "Screenshots"
824
 
825
- #: includes/i18n.php:473
826
  msgid "Click to view full-size screenshot %d"
827
  msgstr "Click to view full-size screenshot %d"
828
 
829
- #: includes/i18n.php:481
830
  msgid "Freemius Debug"
831
  msgstr "Freemius Debug"
832
 
833
- #: includes/i18n.php:483
834
  msgctxt "as turned on"
835
  msgid "On"
836
  msgstr "On"
837
 
838
- #: includes/i18n.php:485
839
  msgctxt "as turned off"
840
  msgid "Off"
841
  msgstr "Off"
842
 
843
- #: includes/i18n.php:487
844
  msgctxt "as code debugging"
845
  msgid "Debugging"
846
  msgstr "Debugging"
847
 
848
- #: includes/i18n.php:489
849
  msgid "Freemius State"
850
  msgstr "Freemius State"
851
 
852
- #: includes/i18n.php:491
853
  msgctxt "as connection was successful"
854
  msgid "Connected"
855
  msgstr "Connected"
856
 
857
- #: includes/i18n.php:493
858
  msgctxt "as connection blocked"
859
  msgid "Blocked"
860
  msgstr "Blocked"
861
 
862
- #: includes/i18n.php:495
863
  msgctxt "as application program interface"
864
  msgid "API"
865
  msgstr "API"
866
 
867
- #: includes/i18n.php:497
868
  msgctxt "as software development kit versions"
869
  msgid "SDK"
870
  msgstr "SDK"
871
 
872
- #: includes/i18n.php:499
873
  msgctxt "as software development kit versions"
874
  msgid "SDK Versions"
875
  msgstr "SDK Versions"
876
 
877
- #: includes/i18n.php:501
878
  msgctxt "as plugin folder path"
879
  msgid "Plugin Path"
880
  msgstr "Plugin Path"
881
 
882
- #: includes/i18n.php:503
883
  msgctxt "as sdk path"
884
  msgid "SDK Path"
885
  msgstr "SDK Path"
886
 
887
- #: includes/i18n.php:505
888
  msgid "Add Ons of Plugin %s"
889
  msgstr "Add Ons of Plugin %s"
890
 
891
- #: includes/i18n.php:507
892
  msgid "Are you sure you want to delete all Freemius data?"
893
  msgstr "Are you sure you want to delete all Freemius data?"
894
 
895
- #: includes/i18n.php:509
896
  msgid "Actions"
897
  msgstr "Actions"
898
 
899
- #: includes/i18n.php:511
900
  msgid "Delete All Accounts"
901
  msgstr "Delete All Accounts"
902
 
903
- #: includes/i18n.php:513
904
  msgid "Start Fresh"
905
  msgstr "Start Fresh"
906
 
907
- #: includes/i18n.php:515
908
  msgid "Clear API Cache"
909
  msgstr "Clear API Cache"
910
 
911
- #: includes/i18n.php:517
912
  msgid "Sync Data From Server"
913
  msgstr "Sync Data From Server"
914
 
915
- #: includes/i18n.php:519
916
  msgid "Scheduled Crons"
917
  msgstr "Scheduled Crons"
918
 
919
- #: includes/i18n.php:521
920
  msgid "Plugins & Themes Sync"
921
  msgstr "Plugins & Themes Sync"
922
 
923
- #: includes/i18n.php:529
924
  msgctxt "as congratulations"
925
  msgid "Congrats"
926
  msgstr "Congrats"
927
 
928
- #: includes/i18n.php:531
929
  msgctxt "exclamation"
930
  msgid "Oops"
931
  msgstr "Oops"
932
 
933
- #: includes/i18n.php:533
934
  msgctxt "interjection expressing joy or exuberance"
935
  msgid "Yee-haw"
936
  msgstr "Yee-haw"
937
 
938
- #: includes/i18n.php:535
939
  msgctxt "(especially in electronic communication) used to express elation, enthusiasm, or triumph."
940
  msgid "W00t"
941
  msgstr "W00t"
942
 
943
- #: includes/i18n.php:537
944
  msgctxt "a positive response"
945
  msgid "Right on"
946
  msgstr "Right on"
947
 
948
- #: includes/i18n.php:539
949
  msgctxt "something somebody says when they are thinking about what you have just said. "
950
  msgid "Hmm"
951
  msgstr "Hmm"
952
 
953
- #: includes/i18n.php:541
954
  msgid "O.K"
955
  msgstr "O.K"
956
 
957
- #: includes/i18n.php:543
958
  msgctxt "exclamation"
959
  msgid "Hey"
960
  msgstr "Hey"
961
 
962
- #: includes/i18n.php:545
963
  msgctxt "advance notice of something that will need attention."
964
  msgid "Heads up"
965
  msgstr "Heads up"
966
 
967
- #: includes/i18n.php:553
968
  msgid "Seems like you got the latest release."
969
  msgstr "Seems like you got the latest release."
970
 
971
- #: includes/i18n.php:555
972
  msgid "You are all good!"
973
  msgstr "You are all good!"
974
 
975
- #: includes/i18n.php:557
976
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
977
  msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
978
 
979
- #: includes/i18n.php:559
980
  msgid "If you would like to give up the ownership of the plugin's account to %s click the Change Ownership button."
981
  msgstr "If you would like to give up the ownership of the plugin's account to %s click the Change Ownership button."
982
 
983
- #: includes/i18n.php:561
984
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
985
  msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
986
 
987
- #: includes/i18n.php:563
988
  msgid "Your name was successfully updated."
989
  msgstr "Your name was successfully updated."
990
 
991
- #: includes/i18n.php:565
992
  msgid "You have successfully updated your %s."
993
  msgstr "You have successfully updated your %s."
994
 
995
- #: includes/i18n.php:567
996
  msgid "Please provide your full name."
997
  msgstr "Please provide your full name."
998
 
999
- #: includes/i18n.php:569
1000
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
1001
  msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
1002
 
1003
- #: includes/i18n.php:571
1004
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
1005
  msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
1006
 
1007
- #: includes/i18n.php:573
1008
  msgid "No credit card required"
1009
  msgstr "No credit card required"
1010
 
1011
- #: includes/i18n.php:575
1012
  msgid "Premium plugin version was successfully activated."
1013
  msgstr "Premium plugin version was successfully activated."
1014
 
1015
- #: includes/i18n.php:577
1016
  msgid "The upgrade of %s was successfully completed."
1017
  msgstr "The upgrade of %s was successfully completed."
1018
 
1019
- #: includes/i18n.php:579
1020
  msgid "Your account was successfully activated with the %s plan."
1021
  msgstr "Your account was successfully activated with the %s plan."
1022
 
1023
- #: includes/i18n.php:581
1024
  msgid "Download the latest %s version now"
1025
  msgstr "Download the latest %s version now"
1026
 
1027
- #: includes/i18n.php:583
1028
  msgid "Please follow these steps to complete the upgrade"
1029
  msgstr "Please follow these steps to complete the upgrade"
1030
 
1031
- #: includes/i18n.php:585
1032
  msgid "Download the latest %s version"
1033
  msgstr "Download the latest %s version"
1034
 
1035
- #: includes/i18n.php:587
 
 
 
 
1036
  msgid "Deactivate the free version"
1037
  msgstr "Deactivate the free version"
1038
 
1039
- #: includes/i18n.php:589
1040
  msgid "Upload and activate the downloaded version"
1041
  msgstr "Upload and activate the downloaded version"
1042
 
1043
- #: includes/i18n.php:591
1044
  msgid "How to upload and activate?"
1045
  msgstr "How to upload and activate?"
1046
 
1047
- #: includes/i18n.php:593
1048
  msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1049
  msgid "%s Add-on was successfully purchased."
1050
  msgstr "%s Add-on was successfully purchased."
1051
 
1052
- #: includes/i18n.php:595
1053
  msgid "Your %s Add-on plan was successfully upgraded."
1054
  msgstr "Your %s Add-on plan was successfully upgraded."
1055
 
1056
- #: includes/i18n.php:597
1057
  msgid "Your email has been successfully verified - you are AWESOME!"
1058
  msgstr "Your email has been successfully verified - you are AWESOME!"
1059
 
1060
- #: includes/i18n.php:599
1061
  msgid "Your plan was successfully upgraded."
1062
  msgstr "Your plan was successfully upgraded."
1063
 
1064
- #: includes/i18n.php:601
1065
  msgid "Your plan was successfully changed to %s."
1066
  msgstr "Your plan was successfully changed to %s."
1067
 
1068
- #: includes/i18n.php:603
1069
  msgid "Your license has expired. You can still continue using the free plugin forever."
1070
  msgstr "Your license has expired. You can still continue using the free plugin forever."
1071
 
1072
- #: includes/i18n.php:605
1073
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
1074
  msgstr "Your license has been cancelled. If you think it's a mistake, please contact support."
1075
 
1076
- #: includes/i18n.php:607
1077
  msgid "Your trial has been successfully started."
1078
  msgstr "Your trial has been successfully started."
1079
 
1080
- #: includes/i18n.php:609
1081
  msgid "Your license was successfully activated."
1082
  msgstr "Your license was successfully activated."
1083
 
1084
- #: includes/i18n.php:611
1085
  msgid "It looks like your site currently doesn't have an active license."
1086
  msgstr "It looks like your site currently doesn't have an active license."
1087
 
1088
- #: includes/i18n.php:613
1089
  msgid "Your license was successfully deactivated, you are back to the %s plan."
1090
  msgstr "Your license was successfully deactivated, you are back to the %s plan."
1091
 
1092
- #: includes/i18n.php:615
1093
  msgid "It looks like the license deactivation failed."
1094
  msgstr "It looks like the license deactivation failed."
1095
 
1096
- #: includes/i18n.php:617
1097
  msgid "It looks like the license could not be activated."
1098
  msgstr "It looks like the license could not be activated."
1099
 
1100
- #: includes/i18n.php:619
1101
  msgid "Error received from the server:"
1102
  msgstr "Error received from the server:"
1103
 
1104
- #: includes/i18n.php:621
1105
  msgid "Your trial has expired. You can still continue using all our free features."
1106
  msgstr "Your trial has expired. You can still continue using all our free features."
1107
 
1108
- #: includes/i18n.php:623
1109
  msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1110
  msgstr "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1111
 
1112
- #: includes/i18n.php:625
1113
  msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1114
  msgstr "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1115
 
1116
- #: includes/i18n.php:627
1117
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1118
  msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1119
 
1120
- #: includes/i18n.php:629
1121
  msgid "Your %s free trial was successfully cancelled."
1122
  msgstr "Your %s free trial was successfully cancelled."
1123
 
1124
- #: includes/i18n.php:631
1125
  msgctxt "%s - numeric version number"
1126
  msgid "Version %s was released."
1127
  msgstr "Version %s was released."
1128
 
1129
- #: includes/i18n.php:633
1130
  msgid "Please download %s."
1131
  msgstr "Please download %s."
1132
 
1133
- #: includes/i18n.php:635
1134
  msgctxt "%s - plan name, as the latest professional version here"
1135
  msgid "the latest %s version here"
1136
  msgstr "the latest %s version here"
1137
 
1138
- #: includes/i18n.php:637
1139
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1140
  msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1141
 
1142
- #: includes/i18n.php:639
1143
  msgctxt "call to action"
1144
  msgid "Start free trial"
1145
  msgstr "Start free trial"
1146
 
1147
- #: includes/i18n.php:641
 
 
 
 
 
 
 
 
1148
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1149
  msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1150
 
1151
- #: includes/i18n.php:643
1152
  msgid "You already utilized a trial before."
1153
  msgstr "You already utilized a trial before."
1154
 
1155
- #: includes/i18n.php:645
1156
  msgid "You are already running the plugin in a trial mode."
1157
  msgstr "You are already running the plugin in a trial mode."
1158
 
1159
- #: includes/i18n.php:647
1160
  msgid "Plan %s do not exist, therefore, can't start a trial."
1161
  msgstr "Plan %s do not exist, therefore, can't start a trial."
1162
 
1163
- #: includes/i18n.php:649
1164
  msgid "Plan %s does not support a trial period."
1165
  msgstr "Plan %s does not support a trial period."
1166
 
1167
- #: includes/i18n.php:651
1168
  msgid "None of the plugin's plans supports a trial period."
1169
  msgstr "None of the plugin's plans supports a trial period."
1170
 
1171
- #: includes/i18n.php:653
1172
  msgid "Unexpected API error. Please contact the plugin's author with the following error."
1173
  msgstr "Unexpected API error. Please contact the plugin's author with the following error."
1174
 
1175
- #: includes/i18n.php:655
1176
  msgid "No commitment for %s days - cancel anytime!"
1177
  msgstr "No commitment for %s days - cancel anytime!"
1178
 
1179
- #: includes/i18n.php:657
1180
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
1181
  msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
1182
 
1183
- #: includes/i18n.php:659
1184
  msgid "Couldn't activate %s."
1185
  msgstr "Couldn't activate %s."
1186
 
1187
- #: includes/i18n.php:661
1188
  msgid "Please contact us with the following message:"
1189
  msgstr "Please contact us with the following message:"
1190
 
1191
- #: includes/i18n.php:663
1192
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
1193
  msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
1194
 
1195
- #: includes/i18n.php:665
1196
  msgid "Please contact us here"
1197
  msgstr "Please contact us here"
1198
 
1199
- #: includes/i18n.php:667
1200
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
1201
  msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
1202
 
1203
- #: includes/i18n.php:673
1204
  msgid "From unknown reason, the API connectivity test failed."
1205
  msgstr "From unknown reason, the API connectivity test failed."
1206
 
1207
- #: includes/i18n.php:675
1208
  msgid "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1209
  msgstr "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1210
 
1211
- #: includes/i18n.php:677
1212
  msgid "We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server."
1213
  msgstr "We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server."
1214
 
1215
- #: includes/i18n.php:679
1216
  msgid "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1217
  msgstr "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1218
 
1219
- #: includes/i18n.php:681
1220
  msgctxt "as pluginX requires an access to our API"
1221
  msgid "%s requires an access to our API."
1222
  msgstr "%s requires an access to our API."
1223
 
1224
- #: includes/i18n.php:683
1225
  msgid "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1226
  msgstr "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1227
 
1228
- #: includes/i18n.php:685
1229
  msgid "I don't know what is Squid or ACL, help me!"
1230
  msgstr "I don't know what is Squid or ACL, help me!"
1231
 
1232
- #: includes/i18n.php:687, includes/i18n.php:695
1233
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
1234
  msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
1235
 
1236
- #: includes/i18n.php:689
1237
  msgid "I'm a system administrator"
1238
  msgstr "I'm a system administrator"
1239
 
1240
- #: includes/i18n.php:691
1241
  msgid "Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again."
1242
  msgstr "Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again."
1243
 
1244
- #: includes/i18n.php:693
1245
  msgid "I don't know what is cURL or how to install it, help me!"
1246
  msgstr "I don't know what is cURL or how to install it, help me!"
1247
 
1248
- #: includes/i18n.php:697
1249
  msgid "Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the plugin and reactivate it back again."
1250
  msgstr "Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the plugin and reactivate it back again."
1251
 
1252
- #: includes/i18n.php:699
1253
  msgid "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1254
  msgstr "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1255
 
1256
- #: includes/i18n.php:701
1257
  msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
1258
  msgstr "Sorry for the inconvenience and we are here to help if you give us a chance."
1259
 
1260
- #: includes/i18n.php:703
1261
  msgid "Yes - I'm giving you a chance to fix it"
1262
  msgstr "Yes - I'm giving you a chance to fix it"
1263
 
1264
- #: includes/i18n.php:705
1265
  msgid "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1266
  msgstr "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1267
 
1268
- #: includes/i18n.php:707
1269
  msgid "Let's try your previous version"
1270
  msgstr "Let's try your previous version"
1271
 
1272
- #: includes/i18n.php:709
1273
  msgid "Uninstall this version and install the previous one."
1274
  msgstr "Uninstall this version and install the previous one."
1275
 
1276
- #: includes/i18n.php:711
1277
  msgid "That's exhausting, please deactivate"
1278
  msgstr "That's exhausting, please deactivate"
1279
 
1280
- #: includes/i18n.php:713
1281
  msgid "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1282
  msgstr "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1283
 
1284
- #: includes/i18n.php:715
1285
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
1286
  msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
1287
 
1288
- #: includes/i18n.php:717
1289
  msgctxt "%1s - plugin title, %2s - API domain"
1290
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1291
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1292
 
1293
- #: includes/i18n.php:719
1294
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1295
  msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1296
 
1297
- #: includes/i18n.php:725
1298
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
1299
  msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
1300
 
1301
- #: includes/i18n.php:727
1302
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
1303
  msgstr "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
1304
 
1305
- #: includes/i18n.php:729
1306
  msgid "%s is the new owner of the account."
1307
  msgstr "%s is the new owner of the account."
1308
 
1309
- #: includes/i18n.php:733
1310
  msgctxt "addonX cannot run without pluginY"
1311
  msgid "%s cannot run without %s."
1312
  msgstr "%s cannot run without %s."
1313
 
1314
- #: includes/i18n.php:735
1315
  msgctxt "addonX cannot run..."
1316
  msgid "%s cannot run without the plugin."
1317
  msgstr "%s cannot run without the plugin."
1318
 
1319
- #: includes/i18n.php:737
1320
  msgctxt "pluginX activation was successfully..."
1321
  msgid "%s activation was successfully completed."
1322
  msgstr "%s activation was successfully completed."
1323
 
1324
- #: includes/i18n.php:739
1325
  msgctxt "Plugin installer section title"
1326
  msgid "Features & Pricing"
1327
  msgstr "Features & Pricing"
1328
 
1329
- #: includes/i18n.php:741
1330
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1331
  msgstr "Add-on must be deployed to WordPress.org or Freemius."
1332
 
1333
- #: includes/i18n.php:743
1334
  msgid "Paid add-on must be deployed to Freemius."
1335
  msgstr "Paid add-on must be deployed to Freemius."
1336
 
1337
- #: includes/i18n.php:747
1338
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1339
  msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1340
 
1341
- #: includes/i18n.php:749
1342
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
1343
  msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
1344
 
1345
- #: includes/i18n.php:755
1346
  msgctxt "as every month"
1347
  msgid "Monthly"
1348
  msgstr "Monthly"
1349
 
1350
- #: includes/i18n.php:757
1351
  msgctxt "as monthly period"
1352
  msgid "mo"
1353
  msgstr "mo"
1354
 
1355
- #: includes/i18n.php:759
1356
  msgctxt "as once a year"
1357
  msgid "Annual"
1358
  msgstr "Annual"
1359
 
1360
- #: includes/i18n.php:761
1361
  msgctxt "as once a year"
1362
  msgid "Annually"
1363
  msgstr "Annually"
1364
 
1365
- #: includes/i18n.php:763
1366
  msgctxt "as once a year"
1367
  msgid "Once"
1368
  msgstr "Once"
1369
 
1370
- #: includes/i18n.php:765
1371
  msgctxt "as annual period"
1372
  msgid "year"
1373
  msgstr "year"
1374
 
1375
- #: includes/i18n.php:767
1376
  msgid "Lifetime"
1377
  msgstr "Lifetime"
1378
 
1379
- #: includes/i18n.php:769
1380
  msgctxt "e.g. the best product"
1381
  msgid "Best"
1382
  msgstr "Best"
1383
 
1384
- #: includes/i18n.php:771
1385
  msgctxt "e.g. billed monthly"
1386
  msgid "Billed %s"
1387
  msgstr "Billed %s"
1388
 
1389
- #: includes/i18n.php:773
1390
  msgctxt "as a discount of $5 or 10%"
1391
  msgid "Save %s"
1392
  msgstr "Save %s"
1393
 
1394
- #: includes/i18n.php:777
1395
  msgid "View details"
1396
  msgstr "View details"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  msgstr "Edit"
131
 
132
  #: includes/i18n.php:119
133
+ msgctxt "verb"
134
+ msgid "Update"
135
+ msgstr "Update"
136
+
137
+ #: includes/i18n.php:121
138
  msgid "Date"
139
  msgstr "Date"
140
 
141
+ #: includes/i18n.php:123
142
  msgid "Amount"
143
  msgstr "Amount"
144
 
145
+ #: includes/i18n.php:125
146
  msgid "Invoice"
147
  msgstr "Invoice"
148
 
149
+ #: includes/i18n.php:127
150
  msgid "Billing"
151
  msgstr "Billing"
152
 
153
+ #: includes/i18n.php:129
154
  msgid "Payments"
155
  msgstr "Payments"
156
 
157
+ #: includes/i18n.php:131
158
  msgid "Delete Account"
159
  msgstr "Delete Account"
160
 
161
+ #: includes/i18n.php:133
162
  msgctxt "as close a window"
163
  msgid "Dismiss"
164
  msgstr "Dismiss"
165
 
166
+ #: includes/i18n.php:135
167
  msgctxt "as product pricing plan"
168
  msgid "Plan"
169
  msgstr "Plan"
170
 
171
+ #: includes/i18n.php:137
172
  msgid "Change Plan"
173
  msgstr "Change Plan"
174
 
175
+ #: includes/i18n.php:139
176
  msgctxt "as download professional version"
177
  msgid "Download %s Version"
178
  msgstr "Download %s Version"
179
 
180
+ #: includes/i18n.php:141
181
  msgctxt "as download professional version now"
182
  msgid "Download %s version now"
183
  msgstr "Download %s version now"
184
 
185
+ #: includes/i18n.php:145
186
  msgctxt "as download latest version"
187
  msgid "Download Latest"
188
  msgstr "Download Latest"
189
 
190
+ #: includes/i18n.php:147
191
  msgctxt "E.g. you have a professional license."
192
  msgid "You have a %s license."
193
  msgstr "You have a %s license."
194
 
195
+ #: includes/i18n.php:151
196
  msgid "New"
197
  msgstr "New"
198
 
199
+ #: includes/i18n.php:153
200
  msgid "Free"
201
  msgstr "Free"
202
 
203
+ #: includes/i18n.php:155
204
  msgctxt "as trial plan"
205
  msgid "Trial"
206
  msgstr "Trial"
207
 
208
+ #: includes/i18n.php:157
209
+ msgctxt "as starting a trial plan"
210
+ msgid "Start Trial"
211
+ msgstr "Start Trial"
212
+
213
+ #: includes/i18n.php:159
214
  msgctxt "verb"
215
  msgid "Purchase"
216
  msgstr "Purchase"
217
 
218
+ #: includes/i18n.php:161
219
  msgid "Purchase License"
220
  msgstr "Purchase License"
221
 
222
+ #: includes/i18n.php:163
223
  msgctxt "verb"
224
  msgid "Buy"
225
  msgstr "Buy"
226
 
227
+ #: includes/i18n.php:165
228
  msgid "Buy License"
229
  msgstr "Buy License"
230
 
231
+ #: includes/i18n.php:167
232
  msgid "Single Site License"
233
  msgstr "Single Site License"
234
 
235
+ #: includes/i18n.php:169
236
  msgid "Unlimited Licenses"
237
  msgstr "Unlimited Licenses"
238
 
239
+ #: includes/i18n.php:171
240
  msgid "Up to %s Sites"
241
  msgstr "Up to %s Sites"
242
 
243
+ #: includes/i18n.php:173
244
  msgid "%sRenew your license now%s to access version %s features and support."
245
  msgstr "%sRenew your license now%s to access version %s features and support."
246
 
247
+ #: includes/i18n.php:177
248
  msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
249
  msgstr "Enter the email address you've used for the upgrade below and we will resend you the license key."
250
 
251
+ #: includes/i18n.php:181
252
  msgctxt "e.g. Professional Plan"
253
  msgid "%s Plan"
254
  msgstr "%s Plan"
255
 
256
+ #: includes/i18n.php:183
257
  msgid "You are just one step away - %s"
258
  msgstr "You are just one step away - %s"
259
 
260
+ #: includes/i18n.php:185
261
  msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
262
  msgid "Complete \"%s\" Activation Now"
263
  msgstr "Complete \"%s\" Activation Now"
264
 
265
+ #: includes/i18n.php:189
266
  msgid "We made a few tweaks to the plugin, %s"
267
  msgstr "We made a few tweaks to the plugin, %s"
268
 
269
+ #: includes/i18n.php:191
270
  msgid "Opt-in to make \"%s\" Better!"
271
  msgstr "Opt-in to make \"%s\" Better!"
272
 
273
+ #: includes/i18n.php:193
274
  msgid "Error"
275
  msgstr "Error"
276
 
277
+ #: includes/i18n.php:195
278
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
279
  msgstr "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
280
 
281
+ #: includes/i18n.php:203
282
  msgctxt "as expiration date"
283
  msgid "Expiration"
284
  msgstr "Expiration"
285
 
286
+ #: includes/i18n.php:205
287
  msgctxt "as software license"
288
  msgid "License"
289
  msgstr "License"
290
 
291
+ #: includes/i18n.php:207
292
  msgid "not verified"
293
  msgstr "not verified"
294
 
295
+ #: includes/i18n.php:209
296
  msgid "Verify Email"
297
  msgstr "Verify Email"
298
 
299
+ #: includes/i18n.php:211
300
  msgctxt "e.g. expires in 2 months"
301
  msgid "Expires in %s"
302
  msgstr "Expires in %s"
303
 
304
+ #: includes/i18n.php:213
305
  msgctxt "e.g. auto renews in 2 months"
306
  msgid "Auto renews in %s"
307
  msgstr "Auto renews in %s"
308
 
309
+ #: includes/i18n.php:215
310
  msgid "No expiration"
311
  msgstr "No expiration"
312
 
313
+ #: includes/i18n.php:217
314
  msgid "Expired"
315
  msgstr "Expired"
316
 
317
+ #: includes/i18n.php:219
318
  msgid "Cancelled"
319
  msgstr "Cancelled"
320
 
321
+ #: includes/i18n.php:221
322
  msgctxt "e.g. In 2 hours"
323
  msgid "In %s"
324
  msgstr "In %s"
325
 
326
+ #: includes/i18n.php:223
327
  msgctxt "e.g. 2 min ago"
328
  msgid "%s ago"
329
  msgstr "%s ago"
330
 
331
+ #: includes/i18n.php:225
332
  msgctxt "as plugin version"
333
  msgid "Version"
334
  msgstr "Version"
335
 
336
+ #: includes/i18n.php:227
337
  msgid "Name"
338
  msgstr "Name"
339
 
340
+ #: includes/i18n.php:229
341
  msgid "Email"
342
  msgstr "Email"
343
 
344
+ #: includes/i18n.php:231
345
  msgid "Email address"
346
  msgstr "Email address"
347
 
348
+ #: includes/i18n.php:233
349
  msgid "Verified"
350
  msgstr "Verified"
351
 
352
+ #: includes/i18n.php:235
353
  msgid "Plugin"
354
  msgstr "Plugin"
355
 
356
+ #: includes/i18n.php:237
357
  msgid "Plugins"
358
  msgstr "Plugins"
359
 
360
+ #: includes/i18n.php:239
361
  msgid "Themes"
362
  msgstr "Themes"
363
 
364
+ #: includes/i18n.php:241
365
  msgctxt "as file/folder path"
366
  msgid "Path"
367
  msgstr "Path"
368
 
369
+ #: includes/i18n.php:243
370
  msgid "Title"
371
  msgstr "Title"
372
 
373
+ #: includes/i18n.php:245
374
  msgid "Free version"
375
  msgstr "Free version"
376
 
377
+ #: includes/i18n.php:247
378
  msgid "Premium version"
379
  msgstr "Premium version"
380
 
381
+ #: includes/i18n.php:249
382
  msgctxt "as WP plugin slug"
383
  msgid "Slug"
384
  msgstr "Slug"
385
 
386
+ #: includes/i18n.php:251
387
  msgid "ID"
388
  msgstr "ID"
389
 
390
+ #: includes/i18n.php:253
391
  msgid "Users"
392
  msgstr "Users"
393
 
394
+ #: includes/i18n.php:255
395
  msgid "Plugin Installs"
396
  msgstr "Plugin Installs"
397
 
398
+ #: includes/i18n.php:257
399
  msgctxt "like websites"
400
  msgid "Sites"
401
  msgstr "Sites"
402
 
403
+ #: includes/i18n.php:259
404
  msgid "User ID"
405
  msgstr "User ID"
406
 
407
+ #: includes/i18n.php:261
408
  msgid "Site ID"
409
  msgstr "Site ID"
410
 
411
+ #: includes/i18n.php:263
412
  msgid "Public Key"
413
  msgstr "Public Key"
414
 
415
+ #: includes/i18n.php:265
416
  msgid "Secret Key"
417
  msgstr "Secret Key"
418
 
419
+ #: includes/i18n.php:267
420
  msgctxt "as secret encryption key missing"
421
  msgid "No Secret"
422
  msgstr "No Secret"
423
 
424
+ #: includes/i18n.php:269
425
  msgid "No ID"
426
  msgstr "No ID"
427
 
428
+ #: includes/i18n.php:271
429
  msgctxt "as synchronize license"
430
  msgid "Sync License"
431
  msgstr "Sync License"
432
 
433
+ #: includes/i18n.php:273
434
  msgctxt "as synchronize"
435
  msgid "Sync"
436
  msgstr "Sync"
437
 
438
+ #: includes/i18n.php:275
439
  msgid "Activate License"
440
  msgstr "Activate License"
441
 
442
+ #: includes/i18n.php:277
443
  msgid "Activate Free Version"
444
  msgstr "Activate Free Version"
445
 
446
+ #: includes/i18n.php:279
447
  msgid "Please enter the license key that you received in the email right after the purchase:"
448
  msgstr "Please enter the license key that you received in the email right after the purchase:"
449
 
450
+ #: includes/i18n.php:283
451
  msgid "Activating license..."
452
  msgstr "Activating license..."
453
 
454
+ #: includes/i18n.php:285
455
  msgid "Change License"
456
  msgstr "Change License"
457
 
458
+ #: includes/i18n.php:287
459
  msgid "Update License"
460
  msgstr "Update License"
461
 
462
+ #: includes/i18n.php:289
463
  msgid "Deactivate License"
464
  msgstr "Deactivate License"
465
 
466
+ #: includes/i18n.php:291
467
  msgid "Activate"
468
  msgstr "Activate"
469
 
470
+ #: includes/i18n.php:293
471
  msgid "Deactivate"
472
  msgstr "Deactivate"
473
 
474
+ #: includes/i18n.php:295
475
  msgid "Skip & Deactivate"
476
  msgstr "Skip & Deactivate"
477
 
478
+ #: includes/i18n.php:297
479
  msgid "No - just deactivate"
480
  msgstr "No - just deactivate"
481
 
482
+ #: includes/i18n.php:299
483
  msgid "Yes - do your thing"
484
  msgstr "Yes - do your thing"
485
 
486
+ #: includes/i18n.php:301
487
  msgctxt "active mode"
488
  msgid "Active"
489
  msgstr "Active"
490
 
491
+ #: includes/i18n.php:303
492
  msgctxt "is active mode?"
493
  msgid "Is Active"
494
  msgstr "Is Active"
495
 
496
+ #: includes/i18n.php:305
497
  msgid "Install Now"
498
  msgstr "Install Now"
499
 
500
+ #: includes/i18n.php:307
501
  msgid "Install Update Now"
502
  msgstr "Install Update Now"
503
 
504
+ #: includes/i18n.php:309
505
  msgid "More information about %s"
506
  msgstr "More information about %s"
507
 
508
+ #: includes/i18n.php:311
509
  msgid "Localhost"
510
  msgstr "Localhost"
511
 
512
+ #: includes/i18n.php:313
513
  msgctxt "as activate Professional plan"
514
  msgid "Activate %s Plan"
515
  msgstr "Activate %s Plan"
516
 
517
+ #: includes/i18n.php:315
518
  msgctxt "as 5 licenses left"
519
  msgid "%s left"
520
  msgstr "%s left"
521
 
522
+ #: includes/i18n.php:317
523
  msgid "Last license"
524
  msgstr "Last license"
525
 
526
+ #: includes/i18n.php:319
527
  msgid "What is your %s?"
528
  msgstr "What is your %s?"
529
 
530
+ #: includes/i18n.php:321
531
  msgid "Activate this add-on"
532
  msgstr "Activate this add-on"
533
 
534
+ #: includes/i18n.php:323
535
  msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
536
  msgstr "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
537
 
538
+ #: includes/i18n.php:327
539
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
540
  msgstr "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
541
 
542
+ #: includes/i18n.php:331
543
  msgid "Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?"
544
  msgstr "Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?"
545
 
546
+ #: includes/i18n.php:335
547
  msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
548
  msgstr "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
549
 
550
+ #: includes/i18n.php:339
551
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
552
  msgstr "Cancelling the trial will immediately block access to all premium features. Are you sure?"
553
 
554
+ #: includes/i18n.php:343
555
  msgid "You can still enjoy all %s features but you will not have access to plugin updates and support."
556
  msgstr "You can still enjoy all %s features but you will not have access to plugin updates and support."
557
 
558
+ #: includes/i18n.php:347
559
  msgid "Once your license expire you can still use the Free version but you will NOT have access to the %s features."
560
  msgstr "Once your license expire you can still use the Free version but you will NOT have access to the %s features."
561
 
562
+ #: includes/i18n.php:351
563
  msgid "Are you sure you want to proceed?"
564
  msgstr "Are you sure you want to proceed?"
565
 
566
+ #: includes/i18n.php:357
567
  msgid "Add Ons for %s"
568
  msgstr "Add Ons for %s"
569
 
570
+ #: includes/i18n.php:359
571
  msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
572
  msgstr "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
573
 
574
+ #: includes/i18n.php:365
575
  msgid "Anonymous feedback"
576
  msgstr "Anonymous feedback"
577
 
578
+ #: includes/i18n.php:367
579
  msgid "Quick feedback"
580
  msgstr "Quick feedback"
581
 
582
+ #: includes/i18n.php:369
583
  msgid "If you have a moment, please let us know why you are deactivating"
584
  msgstr "If you have a moment, please let us know why you are deactivating"
585
 
586
+ #: includes/i18n.php:373
587
  msgid "Yes - Deactivate"
588
  msgstr "Yes - Deactivate"
589
 
590
+ #: includes/i18n.php:375
591
  msgid "Submit & Deactivate"
592
  msgstr "Submit & Deactivate"
593
 
594
+ #: includes/i18n.php:377
 
595
  msgid "Cancel"
596
  msgstr "Cancel"
597
 
598
+ #: includes/i18n.php:379
599
  msgid "I no longer need the plugin"
600
  msgstr "I no longer need the plugin"
601
 
602
+ #: includes/i18n.php:381
603
  msgid "I found a better plugin"
604
  msgstr "I found a better plugin"
605
 
606
+ #: includes/i18n.php:383
607
  msgid "I only needed the plugin for a short period"
608
  msgstr "I only needed the plugin for a short period"
609
 
610
+ #: includes/i18n.php:385
611
  msgid "The plugin broke my site"
612
  msgstr "The plugin broke my site"
613
 
614
+ #: includes/i18n.php:387
615
  msgid "The plugin suddenly stopped working"
616
  msgstr "The plugin suddenly stopped working"
617
 
618
+ #: includes/i18n.php:389
619
  msgid "I can't pay for it anymore"
620
  msgstr "I can't pay for it anymore"
621
 
622
+ #: includes/i18n.php:391
623
  msgid "It's a temporary deactivation. I'm just debugging an issue."
624
  msgstr "It's a temporary deactivation. I'm just debugging an issue."
625
 
626
+ #: includes/i18n.php:395
627
  msgctxt "the text of the \"other\" reason for deactivating the plugin that is shown in the modal box."
628
  msgid "Other"
629
  msgstr "Other"
630
 
631
+ #: includes/i18n.php:399
632
  msgid "Kindly tell us the reason so we can improve."
633
  msgstr "Kindly tell us the reason so we can improve."
634
 
635
+ #: includes/i18n.php:401
636
  msgid "What's the plugin's name?"
637
  msgstr "What's the plugin's name?"
638
 
639
+ #: includes/i18n.php:403
640
  msgid "What price would you feel comfortable paying?"
641
  msgstr "What price would you feel comfortable paying?"
642
 
643
+ #: includes/i18n.php:405
644
  msgid "I couldn't understand how to make it work"
645
  msgstr "I couldn't understand how to make it work"
646
 
647
+ #: includes/i18n.php:407
648
  msgid "The plugin is great, but I need specific feature that you don't support"
649
  msgstr "The plugin is great, but I need specific feature that you don't support"
650
 
651
+ #: includes/i18n.php:411
652
  msgid "The plugin is not working"
653
  msgstr "The plugin is not working"
654
 
655
+ #: includes/i18n.php:413
656
  msgid "It's not what I was looking for"
657
  msgstr "It's not what I was looking for"
658
 
659
+ #: includes/i18n.php:415
660
  msgid "The plugin didn't work as expected"
661
  msgstr "The plugin didn't work as expected"
662
 
663
+ #: includes/i18n.php:417
664
  msgid "What feature?"
665
  msgstr "What feature?"
666
 
667
+ #: includes/i18n.php:419
668
  msgid "Kindly share what didn't work so we can fix it for future users..."
669
  msgstr "Kindly share what didn't work so we can fix it for future users..."
670
 
671
+ #: includes/i18n.php:423
672
  msgid "What you've been looking for?"
673
  msgstr "What you've been looking for?"
674
 
675
+ #: includes/i18n.php:425
676
  msgid "What did you expect?"
677
  msgstr "What did you expect?"
678
 
679
+ #: includes/i18n.php:427
680
  msgid "The plugin didn't work"
681
  msgstr "The plugin didn't work"
682
 
683
+ #: includes/i18n.php:429
684
  msgid "I don't like to share my information with you"
685
  msgstr "I don't like to share my information with you"
686
 
687
+ #: includes/i18n.php:431
688
  msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
689
  msgstr "You might have missed it, but you don't have to share any data and can just %s the opt-in."
690
 
691
+ #: includes/i18n.php:441
692
  msgctxt "greeting"
693
  msgid "Hey %s,"
694
  msgstr "Hey %s,"
695
 
696
+ #: includes/i18n.php:443
697
  msgctxt "a greeting. E.g. Thanks John!"
698
  msgid "Thanks %s!"
699
  msgstr "Thanks %s!"
700
 
701
+ #: includes/i18n.php:445
702
+ msgid "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
703
+ msgstr "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
704
 
705
+ #: includes/i18n.php:449
706
+ msgid "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
707
+ msgstr "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
708
 
709
+ #: includes/i18n.php:453
710
+ msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
711
+ msgstr "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
712
 
713
+ #: includes/i18n.php:455
714
+ msgid "complete the install"
715
+ msgstr "complete the install"
716
+
717
+ #: includes/i18n.php:457
718
+ msgid "start the trial"
719
+ msgstr "start the trial"
720
+
721
+ #: includes/i18n.php:459
722
  msgid "Thanks for purchasing %s! To get started, please enter your license key:"
723
  msgstr "Thanks for purchasing %s! To get started, please enter your license key:"
724
 
725
+ #: includes/i18n.php:463
726
  msgid "The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license."
727
  msgstr "The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license."
728
 
729
+ #: includes/i18n.php:467
730
  msgid "What permissions are being granted?"
731
  msgstr "What permissions are being granted?"
732
 
733
+ #: includes/i18n.php:469
734
  msgid "Your Profile Overview"
735
  msgstr "Your Profile Overview"
736
 
737
+ #: includes/i18n.php:471
738
  msgid "Name and email address"
739
  msgstr "Name and email address"
740
 
741
+ #: includes/i18n.php:473
742
  msgid "Your Site Overview"
743
  msgstr "Your Site Overview"
744
 
745
+ #: includes/i18n.php:475
746
  msgid "Site URL, WP version, PHP info, plugins & themes"
747
  msgstr "Site URL, WP version, PHP info, plugins & themes"
748
 
749
+ #: includes/i18n.php:479
750
  msgid "Current Plugin Events"
751
  msgstr "Current Plugin Events"
752
 
753
+ #: includes/i18n.php:481
754
  msgid "Activation, deactivation and uninstall"
755
  msgstr "Activation, deactivation and uninstall"
756
 
757
+ #: includes/i18n.php:483
758
  msgid "Plugins & Themes"
759
  msgstr "Plugins & Themes"
760
 
761
+ #: includes/i18n.php:485
762
  msgid "Titles, versions and state."
763
  msgstr "Titles, versions and state."
764
 
765
+ #: includes/i18n.php:487
766
+ msgid "Admin Notices"
767
+ msgstr "Admin Notices"
768
+
769
+ #: includes/i18n.php:489
770
  msgid "Newsletter"
771
  msgstr "Newsletter"
772
 
773
+ #: includes/i18n.php:491
774
  msgid "Updates, announcements, marketing, no spam"
775
  msgstr "Updates, announcements, marketing, no spam"
776
 
777
+ #: includes/i18n.php:493
778
  msgid "Privacy Policy"
779
  msgstr "Privacy Policy"
780
 
781
+ #: includes/i18n.php:495
782
  msgid "Terms of Service"
783
  msgstr "Terms of Service"
784
 
785
+ #: includes/i18n.php:497
786
  msgctxt "as activating plugin"
787
  msgid "Activating"
788
  msgstr "Activating"
789
 
790
+ #: includes/i18n.php:499
791
  msgctxt "as in the process of sending an email"
792
  msgid "Sending email"
793
  msgstr "Sending email"
794
 
795
+ #: includes/i18n.php:503
796
  msgctxt "button label"
797
  msgid "Allow & Continue"
798
  msgstr "Allow & Continue"
799
 
800
+ #: includes/i18n.php:505
801
  msgctxt "button label"
802
  msgid "Agree & Activate License"
803
  msgstr "Agree & Activate License"
804
 
805
+ #: includes/i18n.php:507
806
  msgctxt "verb"
807
  msgid "Skip"
808
  msgstr "Skip"
809
 
810
+ #: includes/i18n.php:509
811
  msgid "Click here to use the plugin anonymously"
812
  msgstr "Click here to use the plugin anonymously"
813
 
814
+ #: includes/i18n.php:511
815
  msgid "Re-send activation email"
816
  msgstr "Re-send activation email"
817
 
818
+ #: includes/i18n.php:513
819
  msgid "License key"
820
  msgstr "License key"
821
 
822
+ #: includes/i18n.php:515
823
  msgid "Send License Key"
824
  msgstr "Send License Key"
825
 
826
+ #: includes/i18n.php:517
827
  msgid "Sending license key"
828
  msgstr "Sending license key"
829
 
830
+ #: includes/i18n.php:519
831
  msgid "Have a license key?"
832
  msgstr "Have a license key?"
833
 
834
+ #: includes/i18n.php:521
835
  msgid "Don't have a license key?"
836
  msgstr "Don't have a license key?"
837
 
838
+ #: includes/i18n.php:523
839
  msgid "Can't find your license key?"
840
  msgstr "Can't find your license key?"
841
 
842
+ #: includes/i18n.php:525
843
+ msgid "We couldn't find your email address in the system, are you sure it's the right address?"
844
+ msgstr "We couldn't find your email address in the system, are you sure it's the right address?"
845
+
846
+ #: includes/i18n.php:529
847
+ msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
848
+ msgstr "We can't see any active licenses associated with that email address, are you sure it's the right address?"
849
+
850
+ #: includes/i18n.php:533
851
+ msgid "Opt In"
852
+ msgstr "Opt In"
853
+
854
+ #: includes/i18n.php:535
855
+ msgid "Opt Out"
856
+ msgstr "Opt Out"
857
+
858
+ #: includes/i18n.php:537
859
+ msgid "On second thought - I want to continue helping"
860
+ msgstr "On second thought - I want to continue helping"
861
+
862
+ #: includes/i18n.php:541
863
+ msgid "Opting out..."
864
+ msgstr "Opting out..."
865
+
866
+ #: includes/i18n.php:543
867
+ msgid "Opting in..."
868
+ msgstr "Opting in..."
869
+
870
+ #: includes/i18n.php:545
871
+ msgid "We appreciate your help in making the %s better by letting us track some usage data."
872
+ msgstr "We appreciate your help in making the %s better by letting us track some usage data."
873
+
874
+ #: includes/i18n.php:549
875
+ msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
876
+ msgstr "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
877
+
878
+ #: includes/i18n.php:553
879
+ msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
880
+ msgstr "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
881
+
882
+ #: includes/i18n.php:563
883
  msgid "Screenshots"
884
  msgstr "Screenshots"
885
 
886
+ #: includes/i18n.php:565
887
  msgid "Click to view full-size screenshot %d"
888
  msgstr "Click to view full-size screenshot %d"
889
 
890
+ #: includes/i18n.php:573
891
  msgid "Freemius Debug"
892
  msgstr "Freemius Debug"
893
 
894
+ #: includes/i18n.php:575
895
  msgctxt "as turned on"
896
  msgid "On"
897
  msgstr "On"
898
 
899
+ #: includes/i18n.php:577
900
  msgctxt "as turned off"
901
  msgid "Off"
902
  msgstr "Off"
903
 
904
+ #: includes/i18n.php:579
905
  msgctxt "as code debugging"
906
  msgid "Debugging"
907
  msgstr "Debugging"
908
 
909
+ #: includes/i18n.php:581
910
  msgid "Freemius State"
911
  msgstr "Freemius State"
912
 
913
+ #: includes/i18n.php:583
914
  msgctxt "as connection was successful"
915
  msgid "Connected"
916
  msgstr "Connected"
917
 
918
+ #: includes/i18n.php:585
919
  msgctxt "as connection blocked"
920
  msgid "Blocked"
921
  msgstr "Blocked"
922
 
923
+ #: includes/i18n.php:587
924
  msgctxt "as application program interface"
925
  msgid "API"
926
  msgstr "API"
927
 
928
+ #: includes/i18n.php:589
929
  msgctxt "as software development kit versions"
930
  msgid "SDK"
931
  msgstr "SDK"
932
 
933
+ #: includes/i18n.php:591
934
  msgctxt "as software development kit versions"
935
  msgid "SDK Versions"
936
  msgstr "SDK Versions"
937
 
938
+ #: includes/i18n.php:595
939
  msgctxt "as plugin folder path"
940
  msgid "Plugin Path"
941
  msgstr "Plugin Path"
942
 
943
+ #: includes/i18n.php:597
944
  msgctxt "as sdk path"
945
  msgid "SDK Path"
946
  msgstr "SDK Path"
947
 
948
+ #: includes/i18n.php:599
949
  msgid "Add Ons of Plugin %s"
950
  msgstr "Add Ons of Plugin %s"
951
 
952
+ #: includes/i18n.php:601
953
  msgid "Are you sure you want to delete all Freemius data?"
954
  msgstr "Are you sure you want to delete all Freemius data?"
955
 
956
+ #: includes/i18n.php:605
957
  msgid "Actions"
958
  msgstr "Actions"
959
 
960
+ #: includes/i18n.php:607
961
  msgid "Delete All Accounts"
962
  msgstr "Delete All Accounts"
963
 
964
+ #: includes/i18n.php:609
965
  msgid "Start Fresh"
966
  msgstr "Start Fresh"
967
 
968
+ #: includes/i18n.php:611
969
  msgid "Clear API Cache"
970
  msgstr "Clear API Cache"
971
 
972
+ #: includes/i18n.php:613
973
  msgid "Sync Data From Server"
974
  msgstr "Sync Data From Server"
975
 
976
+ #: includes/i18n.php:615
977
  msgid "Scheduled Crons"
978
  msgstr "Scheduled Crons"
979
 
980
+ #: includes/i18n.php:617
981
  msgid "Plugins & Themes Sync"
982
  msgstr "Plugins & Themes Sync"
983
 
984
+ #: includes/i18n.php:625
985
  msgctxt "as congratulations"
986
  msgid "Congrats"
987
  msgstr "Congrats"
988
 
989
+ #: includes/i18n.php:627
990
  msgctxt "exclamation"
991
  msgid "Oops"
992
  msgstr "Oops"
993
 
994
+ #: includes/i18n.php:629
995
  msgctxt "interjection expressing joy or exuberance"
996
  msgid "Yee-haw"
997
  msgstr "Yee-haw"
998
 
999
+ #: includes/i18n.php:633
1000
  msgctxt "(especially in electronic communication) used to express elation, enthusiasm, or triumph."
1001
  msgid "W00t"
1002
  msgstr "W00t"
1003
 
1004
+ #: includes/i18n.php:637
1005
  msgctxt "a positive response"
1006
  msgid "Right on"
1007
  msgstr "Right on"
1008
 
1009
+ #: includes/i18n.php:639
1010
  msgctxt "something somebody says when they are thinking about what you have just said. "
1011
  msgid "Hmm"
1012
  msgstr "Hmm"
1013
 
1014
+ #: includes/i18n.php:643
1015
  msgid "O.K"
1016
  msgstr "O.K"
1017
 
1018
+ #: includes/i18n.php:645
1019
  msgctxt "exclamation"
1020
  msgid "Hey"
1021
  msgstr "Hey"
1022
 
1023
+ #: includes/i18n.php:647
1024
  msgctxt "advance notice of something that will need attention."
1025
  msgid "Heads up"
1026
  msgstr "Heads up"
1027
 
1028
+ #: includes/i18n.php:657
1029
  msgid "Seems like you got the latest release."
1030
  msgstr "Seems like you got the latest release."
1031
 
1032
+ #: includes/i18n.php:659
1033
  msgid "You are all good!"
1034
  msgstr "You are all good!"
1035
 
1036
+ #: includes/i18n.php:661
1037
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
1038
  msgstr "Sorry, we could not complete the email update. Another user with the same email is already registered."
1039
 
1040
+ #: includes/i18n.php:665
1041
  msgid "If you would like to give up the ownership of the plugin's account to %s click the Change Ownership button."
1042
  msgstr "If you would like to give up the ownership of the plugin's account to %s click the Change Ownership button."
1043
 
1044
+ #: includes/i18n.php:669
1045
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
1046
  msgstr "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
1047
 
1048
+ #: includes/i18n.php:673
1049
  msgid "Your name was successfully updated."
1050
  msgstr "Your name was successfully updated."
1051
 
1052
+ #: includes/i18n.php:675
1053
  msgid "You have successfully updated your %s."
1054
  msgstr "You have successfully updated your %s."
1055
 
1056
+ #: includes/i18n.php:677
1057
  msgid "Please provide your full name."
1058
  msgstr "Please provide your full name."
1059
 
1060
+ #: includes/i18n.php:679
1061
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
1062
  msgstr "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
1063
 
1064
+ #: includes/i18n.php:683
1065
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
1066
  msgstr "Just letting you know that the add-ons information of %s is being pulled from an external server."
1067
 
1068
+ #: includes/i18n.php:687
1069
  msgid "No credit card required"
1070
  msgstr "No credit card required"
1071
 
1072
+ #: includes/i18n.php:689
1073
  msgid "Premium plugin version was successfully activated."
1074
  msgstr "Premium plugin version was successfully activated."
1075
 
1076
+ #: includes/i18n.php:693
1077
  msgid "The upgrade of %s was successfully completed."
1078
  msgstr "The upgrade of %s was successfully completed."
1079
 
1080
+ #: includes/i18n.php:695
1081
  msgid "Your account was successfully activated with the %s plan."
1082
  msgstr "Your account was successfully activated with the %s plan."
1083
 
1084
+ #: includes/i18n.php:699
1085
  msgid "Download the latest %s version now"
1086
  msgstr "Download the latest %s version now"
1087
 
1088
+ #: includes/i18n.php:701
1089
  msgid "Please follow these steps to complete the upgrade"
1090
  msgstr "Please follow these steps to complete the upgrade"
1091
 
1092
+ #: includes/i18n.php:705
1093
  msgid "Download the latest %s version"
1094
  msgstr "Download the latest %s version"
1095
 
1096
+ #: includes/i18n.php:707
1097
+ msgid "Download the latest version"
1098
+ msgstr "Download the latest version"
1099
+
1100
+ #: includes/i18n.php:709
1101
  msgid "Deactivate the free version"
1102
  msgstr "Deactivate the free version"
1103
 
1104
+ #: includes/i18n.php:711
1105
  msgid "Upload and activate the downloaded version"
1106
  msgstr "Upload and activate the downloaded version"
1107
 
1108
+ #: includes/i18n.php:713
1109
  msgid "How to upload and activate?"
1110
  msgstr "How to upload and activate?"
1111
 
1112
+ #: includes/i18n.php:715
1113
  msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1114
  msgid "%s Add-on was successfully purchased."
1115
  msgstr "%s Add-on was successfully purchased."
1116
 
1117
+ #: includes/i18n.php:719
1118
  msgid "Your %s Add-on plan was successfully upgraded."
1119
  msgstr "Your %s Add-on plan was successfully upgraded."
1120
 
1121
+ #: includes/i18n.php:723
1122
  msgid "Your email has been successfully verified - you are AWESOME!"
1123
  msgstr "Your email has been successfully verified - you are AWESOME!"
1124
 
1125
+ #: includes/i18n.php:727
1126
  msgid "Your plan was successfully upgraded."
1127
  msgstr "Your plan was successfully upgraded."
1128
 
1129
+ #: includes/i18n.php:729
1130
  msgid "Your plan was successfully changed to %s."
1131
  msgstr "Your plan was successfully changed to %s."
1132
 
1133
+ #: includes/i18n.php:731
1134
  msgid "Your license has expired. You can still continue using the free plugin forever."
1135
  msgstr "Your license has expired. You can still continue using the free plugin forever."
1136
 
1137
+ #: includes/i18n.php:735
1138
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
1139
  msgstr "Your license has been cancelled. If you think it's a mistake, please contact support."
1140
 
1141
+ #: includes/i18n.php:739
1142
  msgid "Your trial has been successfully started."
1143
  msgstr "Your trial has been successfully started."
1144
 
1145
+ #: includes/i18n.php:741
1146
  msgid "Your license was successfully activated."
1147
  msgstr "Your license was successfully activated."
1148
 
1149
+ #: includes/i18n.php:743
1150
  msgid "It looks like your site currently doesn't have an active license."
1151
  msgstr "It looks like your site currently doesn't have an active license."
1152
 
1153
+ #: includes/i18n.php:747
1154
  msgid "Your license was successfully deactivated, you are back to the %s plan."
1155
  msgstr "Your license was successfully deactivated, you are back to the %s plan."
1156
 
1157
+ #: includes/i18n.php:751
1158
  msgid "It looks like the license deactivation failed."
1159
  msgstr "It looks like the license deactivation failed."
1160
 
1161
+ #: includes/i18n.php:755
1162
  msgid "It looks like the license could not be activated."
1163
  msgstr "It looks like the license could not be activated."
1164
 
1165
+ #: includes/i18n.php:759
1166
  msgid "Error received from the server:"
1167
  msgstr "Error received from the server:"
1168
 
1169
+ #: includes/i18n.php:761
1170
  msgid "Your trial has expired. You can still continue using all our free features."
1171
  msgstr "Your trial has expired. You can still continue using all our free features."
1172
 
1173
+ #: includes/i18n.php:765
1174
  msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1175
  msgstr "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1176
 
1177
+ #: includes/i18n.php:769
1178
  msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1179
  msgstr "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1180
 
1181
+ #: includes/i18n.php:773
1182
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1183
  msgstr "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1184
 
1185
+ #: includes/i18n.php:777
1186
  msgid "Your %s free trial was successfully cancelled."
1187
  msgstr "Your %s free trial was successfully cancelled."
1188
 
1189
+ #: includes/i18n.php:781
1190
  msgctxt "%s - numeric version number"
1191
  msgid "Version %s was released."
1192
  msgstr "Version %s was released."
1193
 
1194
+ #: includes/i18n.php:785
1195
  msgid "Please download %s."
1196
  msgstr "Please download %s."
1197
 
1198
+ #: includes/i18n.php:787
1199
  msgctxt "%s - plan name, as the latest professional version here"
1200
  msgid "the latest %s version here"
1201
  msgstr "the latest %s version here"
1202
 
1203
+ #: includes/i18n.php:791
1204
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1205
  msgstr "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1206
 
1207
+ #: includes/i18n.php:795
1208
  msgctxt "call to action"
1209
  msgid "Start free trial"
1210
  msgstr "Start free trial"
1211
 
1212
+ #: includes/i18n.php:797
1213
+ msgid "Starting trial"
1214
+ msgstr "Starting trial"
1215
+
1216
+ #: includes/i18n.php:799
1217
+ msgid "Please wait"
1218
+ msgstr "Please wait"
1219
+
1220
+ #: includes/i18n.php:801
1221
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1222
  msgstr "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1223
 
1224
+ #: includes/i18n.php:805
1225
  msgid "You already utilized a trial before."
1226
  msgstr "You already utilized a trial before."
1227
 
1228
+ #: includes/i18n.php:807
1229
  msgid "You are already running the plugin in a trial mode."
1230
  msgstr "You are already running the plugin in a trial mode."
1231
 
1232
+ #: includes/i18n.php:811
1233
  msgid "Plan %s do not exist, therefore, can't start a trial."
1234
  msgstr "Plan %s do not exist, therefore, can't start a trial."
1235
 
1236
+ #: includes/i18n.php:815
1237
  msgid "Plan %s does not support a trial period."
1238
  msgstr "Plan %s does not support a trial period."
1239
 
1240
+ #: includes/i18n.php:817
1241
  msgid "None of the plugin's plans supports a trial period."
1242
  msgstr "None of the plugin's plans supports a trial period."
1243
 
1244
+ #: includes/i18n.php:821
1245
  msgid "Unexpected API error. Please contact the plugin's author with the following error."
1246
  msgstr "Unexpected API error. Please contact the plugin's author with the following error."
1247
 
1248
+ #: includes/i18n.php:825
1249
  msgid "No commitment for %s days - cancel anytime!"
1250
  msgstr "No commitment for %s days - cancel anytime!"
1251
 
1252
+ #: includes/i18n.php:827
1253
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
1254
  msgstr "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
1255
 
1256
+ #: includes/i18n.php:831
1257
  msgid "Couldn't activate %s."
1258
  msgstr "Couldn't activate %s."
1259
 
1260
+ #: includes/i18n.php:833
1261
  msgid "Please contact us with the following message:"
1262
  msgstr "Please contact us with the following message:"
1263
 
1264
+ #: includes/i18n.php:835
1265
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
1266
  msgstr "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
1267
 
1268
+ #: includes/i18n.php:839
1269
  msgid "Please contact us here"
1270
  msgstr "Please contact us here"
1271
 
1272
+ #: includes/i18n.php:841
1273
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
1274
  msgstr "I have upgraded my account but when I try to Sync the License, the plan remains %s."
1275
 
1276
+ #: includes/i18n.php:849
1277
  msgid "From unknown reason, the API connectivity test failed."
1278
  msgstr "From unknown reason, the API connectivity test failed."
1279
 
1280
+ #: includes/i18n.php:853
1281
  msgid "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1282
  msgstr "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1283
 
1284
+ #: includes/i18n.php:857
1285
  msgid "We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server."
1286
  msgstr "We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server."
1287
 
1288
+ #: includes/i18n.php:861
1289
  msgid "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1290
  msgstr "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1291
 
1292
+ #: includes/i18n.php:865
1293
  msgctxt "as pluginX requires an access to our API"
1294
  msgid "%s requires an access to our API."
1295
  msgstr "%s requires an access to our API."
1296
 
1297
+ #: includes/i18n.php:869
1298
  msgid "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1299
  msgstr "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1300
 
1301
+ #: includes/i18n.php:873
1302
  msgid "I don't know what is Squid or ACL, help me!"
1303
  msgstr "I don't know what is Squid or ACL, help me!"
1304
 
1305
+ #: includes/i18n.php:875, includes/i18n.php:889
1306
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
1307
  msgstr "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
1308
 
1309
+ #: includes/i18n.php:879
1310
  msgid "I'm a system administrator"
1311
  msgstr "I'm a system administrator"
1312
 
1313
+ #: includes/i18n.php:881
1314
  msgid "Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again."
1315
  msgstr "Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again."
1316
 
1317
+ #: includes/i18n.php:885
1318
  msgid "I don't know what is cURL or how to install it, help me!"
1319
  msgstr "I don't know what is cURL or how to install it, help me!"
1320
 
1321
+ #: includes/i18n.php:893
1322
  msgid "Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the plugin and reactivate it back again."
1323
  msgstr "Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the plugin and reactivate it back again."
1324
 
1325
+ #: includes/i18n.php:897
1326
  msgid "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1327
  msgstr "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1328
 
1329
+ #: includes/i18n.php:901
1330
  msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
1331
  msgstr "Sorry for the inconvenience and we are here to help if you give us a chance."
1332
 
1333
+ #: includes/i18n.php:905
1334
  msgid "Yes - I'm giving you a chance to fix it"
1335
  msgstr "Yes - I'm giving you a chance to fix it"
1336
 
1337
+ #: includes/i18n.php:907
1338
  msgid "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1339
  msgstr "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1340
 
1341
+ #: includes/i18n.php:911
1342
  msgid "Let's try your previous version"
1343
  msgstr "Let's try your previous version"
1344
 
1345
+ #: includes/i18n.php:913
1346
  msgid "Uninstall this version and install the previous one."
1347
  msgstr "Uninstall this version and install the previous one."
1348
 
1349
+ #: includes/i18n.php:917
1350
  msgid "That's exhausting, please deactivate"
1351
  msgstr "That's exhausting, please deactivate"
1352
 
1353
+ #: includes/i18n.php:919
1354
  msgid "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1355
  msgstr "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1356
 
1357
+ #: includes/i18n.php:923
1358
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
1359
  msgstr "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
1360
 
1361
+ #: includes/i18n.php:927
1362
  msgctxt "%1s - plugin title, %2s - API domain"
1363
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1364
  msgstr "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1365
 
1366
+ #: includes/i18n.php:931
1367
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1368
  msgstr "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1369
 
1370
+ #: includes/i18n.php:939
1371
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
1372
  msgstr "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
1373
 
1374
+ #: includes/i18n.php:943
1375
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
1376
  msgstr "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
1377
 
1378
+ #: includes/i18n.php:947
1379
  msgid "%s is the new owner of the account."
1380
  msgstr "%s is the new owner of the account."
1381
 
1382
+ #: includes/i18n.php:951
1383
  msgctxt "addonX cannot run without pluginY"
1384
  msgid "%s cannot run without %s."
1385
  msgstr "%s cannot run without %s."
1386
 
1387
+ #: includes/i18n.php:955
1388
  msgctxt "addonX cannot run..."
1389
  msgid "%s cannot run without the plugin."
1390
  msgstr "%s cannot run without the plugin."
1391
 
1392
+ #: includes/i18n.php:959
1393
  msgctxt "pluginX activation was successfully..."
1394
  msgid "%s activation was successfully completed."
1395
  msgstr "%s activation was successfully completed."
1396
 
1397
+ #: includes/i18n.php:963
1398
  msgctxt "Plugin installer section title"
1399
  msgid "Features & Pricing"
1400
  msgstr "Features & Pricing"
1401
 
1402
+ #: includes/i18n.php:967
1403
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1404
  msgstr "Add-on must be deployed to WordPress.org or Freemius."
1405
 
1406
+ #: includes/i18n.php:971
1407
  msgid "Paid add-on must be deployed to Freemius."
1408
  msgstr "Paid add-on must be deployed to Freemius."
1409
 
1410
+ #: includes/i18n.php:979
1411
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1412
  msgstr "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1413
 
1414
+ #: includes/i18n.php:983
1415
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
1416
  msgstr "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
1417
 
1418
+ #: includes/i18n.php:995
1419
  msgctxt "as every month"
1420
  msgid "Monthly"
1421
  msgstr "Monthly"
1422
 
1423
+ #: includes/i18n.php:997
1424
  msgctxt "as monthly period"
1425
  msgid "mo"
1426
  msgstr "mo"
1427
 
1428
+ #: includes/i18n.php:999
1429
  msgctxt "as once a year"
1430
  msgid "Annual"
1431
  msgstr "Annual"
1432
 
1433
+ #: includes/i18n.php:1001
1434
  msgctxt "as once a year"
1435
  msgid "Annually"
1436
  msgstr "Annually"
1437
 
1438
+ #: includes/i18n.php:1003
1439
  msgctxt "as once a year"
1440
  msgid "Once"
1441
  msgstr "Once"
1442
 
1443
+ #: includes/i18n.php:1005
1444
  msgctxt "as annual period"
1445
  msgid "year"
1446
  msgstr "year"
1447
 
1448
+ #: includes/i18n.php:1007
1449
  msgid "Lifetime"
1450
  msgstr "Lifetime"
1451
 
1452
+ #: includes/i18n.php:1009
1453
  msgctxt "e.g. the best product"
1454
  msgid "Best"
1455
  msgstr "Best"
1456
 
1457
+ #: includes/i18n.php:1011
1458
  msgctxt "e.g. billed monthly"
1459
  msgid "Billed %s"
1460
  msgstr "Billed %s"
1461
 
1462
+ #: includes/i18n.php:1013
1463
  msgctxt "as a discount of $5 or 10%"
1464
  msgid "Save %s"
1465
  msgstr "Save %s"
1466
 
1467
+ #: includes/i18n.php:1017
1468
  msgid "View details"
1469
  msgstr "View details"
1470
+
1471
+ #: includes/i18n.php:1025
1472
+ msgctxt "button label"
1473
+ msgid "Approve & Start Trial"
1474
+ msgstr "Approve & Start Trial"
1475
+
1476
+ #: includes/i18n.php:1029
1477
+ msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1478
+ msgstr "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1479
+
1480
+ #: includes/i18n.php:1033
1481
+ msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt-in with your user and non-sensitive site information, allowing the plugin to periodically send data to %s to check for version updates and to validate your trial."
1482
+ msgstr "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt-in with your user and non-sensitive site information, allowing the plugin to periodically send data to %s to check for version updates and to validate your trial."
1483
+
1484
+ #: includes/i18n.php:1045
1485
+ msgid "Business name"
1486
+ msgstr "Business name"
1487
+
1488
+ #: includes/i18n.php:1047
1489
+ msgid "Tax / VAT ID"
1490
+ msgstr "Tax / VAT ID"
1491
+
1492
+ #: includes/i18n.php:1049
1493
+ msgid "Address Line %d"
1494
+ msgstr "Address Line %d"
1495
+
1496
+ #: includes/i18n.php:1051
1497
+ msgid "Country"
1498
+ msgstr "Country"
1499
+
1500
+ #: includes/i18n.php:1053
1501
+ msgid "Select Country"
1502
+ msgstr "Select Country"
1503
+
1504
+ #: includes/i18n.php:1055
1505
+ msgid "City"
1506
+ msgstr "City"
1507
+
1508
+ #: includes/i18n.php:1057
1509
+ msgid "Town"
1510
+ msgstr "Town"
1511
+
1512
+ #: includes/i18n.php:1059
1513
+ msgid "State"
1514
+ msgstr "State"
1515
+
1516
+ #: includes/i18n.php:1061
1517
+ msgid "Province"
1518
+ msgstr "Province"
1519
+
1520
+ #: includes/i18n.php:1063
1521
+ msgid "ZIP / Postal Code"
1522
+ msgstr "ZIP / Postal Code"
freemius/languages/freemius-he.mo ADDED
Binary file
freemius/languages/freemius-he.po ADDED
@@ -0,0 +1,1661 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 freemius
2
+ # This file is distributed under the same license as the freemius package.
3
+ # Translators:
4
+ # Vova Feldman <vova@freemius.com>, 2016
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: WordPress SDK\n"
8
+ "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
9
+ "PO-Revision-Date: 2016-12-07 01:29+0000\n"
10
+ "Last-Translator: Vova Feldman <vova@freemius.com>\n"
11
+ "Language-Team: Hebrew (http://www.transifex.com/freemius/wordpress-sdk/language/he/)\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Language: he\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+ "X-Poedit-Basepath: ..\n"
18
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
21
+ "X-Poedit-SourceCharset: UTF-8\n"
22
+
23
+ #: includes/i18n.php41, includes/i18n.php:55
24
+ msgid "Yes - I'm in!"
25
+ msgstr ""
26
+
27
+ #: includes/i18n.php43, includes/i18n.php:57
28
+ msgid "Not today"
29
+ msgstr "לא היום"
30
+
31
+ #: includes/i18n.php:69
32
+ msgid "Account"
33
+ msgstr "חשבון"
34
+
35
+ #: includes/i18n.php:71
36
+ msgid "Add On"
37
+ msgstr "תוסף"
38
+
39
+ #: includes/i18n.php:73
40
+ msgid "Contact Us"
41
+ msgstr "יצירת קשר"
42
+
43
+ #: includes/i18n.php:75
44
+ msgid "Contact Support"
45
+ msgstr "צור קשר"
46
+
47
+ #: includes/i18n.php:77
48
+ msgid "Change Ownership"
49
+ msgstr "עדכון בעלות"
50
+
51
+ #: includes/i18n.php:79
52
+ msgid "Support"
53
+ msgstr "תמיכה"
54
+
55
+ #: includes/i18n.php:81
56
+ msgid "Support Forum"
57
+ msgstr "פורום תמיכה"
58
+
59
+ #: includes/i18n.php:83
60
+ msgid "Add Ons"
61
+ msgstr "תוספים"
62
+
63
+ #: includes/i18n.php:85
64
+ msgctxt "verb"
65
+ msgid "Upgrade"
66
+ msgstr "שדרג"
67
+
68
+ #: includes/i18n.php:87
69
+ msgid "Awesome"
70
+ msgstr "אדיר"
71
+
72
+ #: includes/i18n.php:89
73
+ msgctxt "noun"
74
+ msgid "Pricing"
75
+ msgstr "מחירון"
76
+
77
+ #: includes/i18n.php:91
78
+ msgctxt "noun"
79
+ msgid "Price"
80
+ msgstr "מחיר"
81
+
82
+ #: includes/i18n.php:93
83
+ msgid "Unlimited Updates"
84
+ msgstr "עדכונים ללא הגבלה"
85
+
86
+ #: includes/i18n.php:95
87
+ msgctxt "verb"
88
+ msgid "Downgrade"
89
+ msgstr "שנמך"
90
+
91
+ #: includes/i18n.php:97
92
+ msgid "Cancel Trial"
93
+ msgstr "ביט"
94
+
95
+ #: includes/i18n.php:99
96
+ msgid "Free Trial"
97
+ msgstr "ניסיון חינם"
98
+
99
+ #: includes/i18n.php:101
100
+ msgid "Start my free %s"
101
+ msgstr "התחל את %s הניסיון שלי"
102
+
103
+ #: includes/i18n.php:103
104
+ msgid "No commitment for %s - cancel anytime"
105
+ msgstr ""
106
+
107
+ #: includes/i18n.php:105
108
+ msgid "After your free %s, pay as little as %s"
109
+ msgstr ""
110
+
111
+ #: includes/i18n.php:107
112
+ msgid "Details"
113
+ msgstr "פרטים"
114
+
115
+ #: includes/i18n.php:109
116
+ msgid "Account Details"
117
+ msgstr "פרטי חשבון"
118
+
119
+ #: includes/i18n.php:111
120
+ msgctxt "verb"
121
+ msgid "Delete"
122
+ msgstr "מחק"
123
+
124
+ #: includes/i18n.php:113
125
+ msgctxt "verb"
126
+ msgid "Show"
127
+ msgstr "הצג"
128
+
129
+ #: includes/i18n.php:115
130
+ msgctxt "verb"
131
+ msgid "Hide"
132
+ msgstr "הסתר"
133
+
134
+ #: includes/i18n.php:117
135
+ msgctxt "verb"
136
+ msgid "Edit"
137
+ msgstr "ערוך"
138
+
139
+ #: includes/i18n.php:119
140
+ msgctxt "verb"
141
+ msgid "Update"
142
+ msgstr ""
143
+
144
+ #: includes/i18n.php:121
145
+ msgid "Date"
146
+ msgstr "תאריך"
147
+
148
+ #: includes/i18n.php:123
149
+ msgid "Amount"
150
+ msgstr "סכום"
151
+
152
+ #: includes/i18n.php:125
153
+ msgid "Invoice"
154
+ msgstr "חשבונית"
155
+
156
+ #: includes/i18n.php:127
157
+ msgid "Billing"
158
+ msgstr "בילינג"
159
+
160
+ #: includes/i18n.php:129
161
+ msgid "Payments"
162
+ msgstr "תשלומים"
163
+
164
+ #: includes/i18n.php:131
165
+ msgid "Delete Account"
166
+ msgstr "מחיקת חשבון"
167
+
168
+ #: includes/i18n.php:133
169
+ msgctxt "as close a window"
170
+ msgid "Dismiss"
171
+ msgstr "סגירה"
172
+
173
+ #: includes/i18n.php:135
174
+ msgctxt "as product pricing plan"
175
+ msgid "Plan"
176
+ msgstr "חבילה"
177
+
178
+ #: includes/i18n.php:137
179
+ msgid "Change Plan"
180
+ msgstr "שינוי חבילה"
181
+
182
+ #: includes/i18n.php:139
183
+ msgctxt "as download professional version"
184
+ msgid "Download %s Version"
185
+ msgstr ""
186
+
187
+ #: includes/i18n.php:141
188
+ msgctxt "as download professional version now"
189
+ msgid "Download %s version now"
190
+ msgstr ""
191
+
192
+ #: includes/i18n.php:145
193
+ msgctxt "as download latest version"
194
+ msgid "Download Latest"
195
+ msgstr "הורד גרסה אחרונה"
196
+
197
+ #: includes/i18n.php:147
198
+ msgctxt "E.g. you have a professional license."
199
+ msgid "You have a %s license."
200
+ msgstr ""
201
+
202
+ #: includes/i18n.php:151
203
+ msgid "New"
204
+ msgstr "חדש"
205
+
206
+ #: includes/i18n.php:153
207
+ msgid "Free"
208
+ msgstr "חינם"
209
+
210
+ #: includes/i18n.php:155
211
+ msgctxt "as trial plan"
212
+ msgid "Trial"
213
+ msgstr "ניסיון"
214
+
215
+ #: includes/i18n.php:157
216
+ msgctxt "as starting a trial plan"
217
+ msgid "Start Trial"
218
+ msgstr ""
219
+
220
+ #: includes/i18n.php:159
221
+ msgctxt "verb"
222
+ msgid "Purchase"
223
+ msgstr "רכישה"
224
+
225
+ #: includes/i18n.php:161
226
+ msgid "Purchase License"
227
+ msgstr "קניית רישיון"
228
+
229
+ #: includes/i18n.php:163
230
+ msgctxt "verb"
231
+ msgid "Buy"
232
+ msgstr "קנייה"
233
+
234
+ #: includes/i18n.php:165
235
+ msgid "Buy License"
236
+ msgstr "קניית רישיון"
237
+
238
+ #: includes/i18n.php:167
239
+ msgid "Single Site License"
240
+ msgstr "רשיון לאתר אחד"
241
+
242
+ #: includes/i18n.php:169
243
+ msgid "Unlimited Licenses"
244
+ msgstr "רשיונות ללא הגבלה"
245
+
246
+ #: includes/i18n.php:171
247
+ msgid "Up to %s Sites"
248
+ msgstr "עד %s אתרים"
249
+
250
+ #: includes/i18n.php:173
251
+ msgid "%sRenew your license now%s to access version %s features and support."
252
+ msgstr ""
253
+
254
+ #: includes/i18n.php:177
255
+ msgid ""
256
+ "Enter the email address you've used for the upgrade below and we will resend"
257
+ " you the license key."
258
+ msgstr ""
259
+
260
+ #: includes/i18n.php:181
261
+ msgctxt "e.g. Professional Plan"
262
+ msgid "%s Plan"
263
+ msgstr ""
264
+
265
+ #: includes/i18n.php:183
266
+ msgid "You are just one step away - %s"
267
+ msgstr ""
268
+
269
+ #: includes/i18n.php:185
270
+ msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
271
+ msgid "Complete \"%s\" Activation Now"
272
+ msgstr ""
273
+
274
+ #: includes/i18n.php:189
275
+ msgid "We made a few tweaks to the plugin, %s"
276
+ msgstr "ביצענו מספר שינויים לתוסף, %s"
277
+
278
+ #: includes/i18n.php:191
279
+ msgid "Opt-in to make \"%s\" Better!"
280
+ msgstr ""
281
+
282
+ #: includes/i18n.php:193
283
+ msgid "Error"
284
+ msgstr "שגיאה"
285
+
286
+ #: includes/i18n.php:195
287
+ msgid ""
288
+ "Freemius SDK couldn't find the plugin's main file. Please contact "
289
+ "sdk@freemius.com with the current error."
290
+ msgstr ""
291
+
292
+ #: includes/i18n.php:203
293
+ msgctxt "as expiration date"
294
+ msgid "Expiration"
295
+ msgstr "תפוגה"
296
+
297
+ #: includes/i18n.php:205
298
+ msgctxt "as software license"
299
+ msgid "License"
300
+ msgstr "רישיון"
301
+
302
+ #: includes/i18n.php:207
303
+ msgid "not verified"
304
+ msgstr "לא מאומת"
305
+
306
+ #: includes/i18n.php:209
307
+ msgid "Verify Email"
308
+ msgstr "אמת כתובת דוא\"ל"
309
+
310
+ #: includes/i18n.php:211
311
+ msgctxt "e.g. expires in 2 months"
312
+ msgid "Expires in %s"
313
+ msgstr ""
314
+
315
+ #: includes/i18n.php:213
316
+ msgctxt "e.g. auto renews in 2 months"
317
+ msgid "Auto renews in %s"
318
+ msgstr ""
319
+
320
+ #: includes/i18n.php:215
321
+ msgid "No expiration"
322
+ msgstr "ללא תפוגה"
323
+
324
+ #: includes/i18n.php:217
325
+ msgid "Expired"
326
+ msgstr "פג תוקף"
327
+
328
+ #: includes/i18n.php:219
329
+ msgid "Cancelled"
330
+ msgstr "בוטל"
331
+
332
+ #: includes/i18n.php:221
333
+ msgctxt "e.g. In 2 hours"
334
+ msgid "In %s"
335
+ msgstr "בעוד %s"
336
+
337
+ #: includes/i18n.php:223
338
+ msgctxt "e.g. 2 min ago"
339
+ msgid "%s ago"
340
+ msgstr ""
341
+
342
+ #: includes/i18n.php:225
343
+ msgctxt "as plugin version"
344
+ msgid "Version"
345
+ msgstr "גרסה"
346
+
347
+ #: includes/i18n.php:227
348
+ msgid "Name"
349
+ msgstr "שם"
350
+
351
+ #: includes/i18n.php:229
352
+ msgid "Email"
353
+ msgstr "דוא\"ל"
354
+
355
+ #: includes/i18n.php:231
356
+ msgid "Email address"
357
+ msgstr "כתובת דוא\"ל"
358
+
359
+ #: includes/i18n.php:233
360
+ msgid "Verified"
361
+ msgstr "מאומת"
362
+
363
+ #: includes/i18n.php:235
364
+ msgid "Plugin"
365
+ msgstr "תוסף"
366
+
367
+ #: includes/i18n.php:237
368
+ msgid "Plugins"
369
+ msgstr "תוספים"
370
+
371
+ #: includes/i18n.php:239
372
+ msgid "Themes"
373
+ msgstr "תבניות"
374
+
375
+ #: includes/i18n.php:241
376
+ msgctxt "as file/folder path"
377
+ msgid "Path"
378
+ msgstr ""
379
+
380
+ #: includes/i18n.php:243
381
+ msgid "Title"
382
+ msgstr "כותרת"
383
+
384
+ #: includes/i18n.php:245
385
+ msgid "Free version"
386
+ msgstr "גירסה חינאמית"
387
+
388
+ #: includes/i18n.php:247
389
+ msgid "Premium version"
390
+ msgstr "גירסת פרימיום"
391
+
392
+ #: includes/i18n.php:249
393
+ msgctxt "as WP plugin slug"
394
+ msgid "Slug"
395
+ msgstr ""
396
+
397
+ #: includes/i18n.php:251
398
+ msgid "ID"
399
+ msgstr "מזהה"
400
+
401
+ #: includes/i18n.php:253
402
+ msgid "Users"
403
+ msgstr "משתמשים"
404
+
405
+ #: includes/i18n.php:255
406
+ msgid "Plugin Installs"
407
+ msgstr "התקנות תוסף"
408
+
409
+ #: includes/i18n.php:257
410
+ msgctxt "like websites"
411
+ msgid "Sites"
412
+ msgstr "אתרים"
413
+
414
+ #: includes/i18n.php:259
415
+ msgid "User ID"
416
+ msgstr "מזהה משתמש"
417
+
418
+ #: includes/i18n.php:261
419
+ msgid "Site ID"
420
+ msgstr "מזהה אתר"
421
+
422
+ #: includes/i18n.php:263
423
+ msgid "Public Key"
424
+ msgstr "מפתח פומבי"
425
+
426
+ #: includes/i18n.php:265
427
+ msgid "Secret Key"
428
+ msgstr "מפתח סודי"
429
+
430
+ #: includes/i18n.php:267
431
+ msgctxt "as secret encryption key missing"
432
+ msgid "No Secret"
433
+ msgstr "אין מפתח סודי"
434
+
435
+ #: includes/i18n.php:269
436
+ msgid "No ID"
437
+ msgstr "אין מזהה"
438
+
439
+ #: includes/i18n.php:271
440
+ msgctxt "as synchronize license"
441
+ msgid "Sync License"
442
+ msgstr "סינכרן רישיון"
443
+
444
+ #: includes/i18n.php:273
445
+ msgctxt "as synchronize"
446
+ msgid "Sync"
447
+ msgstr "סינכרון"
448
+
449
+ #: includes/i18n.php:275
450
+ msgid "Activate License"
451
+ msgstr "הפעלת רישיון"
452
+
453
+ #: includes/i18n.php:277
454
+ msgid "Activate Free Version"
455
+ msgstr "הפעלת גירסה חינאמית"
456
+
457
+ #: includes/i18n.php:279
458
+ msgid ""
459
+ "Please enter the license key that you received in the email right after the "
460
+ "purchase:"
461
+ msgstr ""
462
+
463
+ #: includes/i18n.php:283
464
+ msgid "Activating license..."
465
+ msgstr "מפעיל רישיון..."
466
+
467
+ #: includes/i18n.php:285
468
+ msgid "Change License"
469
+ msgstr "שינוי רישיון"
470
+
471
+ #: includes/i18n.php:287
472
+ msgid "Update License"
473
+ msgstr "עדכון רישיון"
474
+
475
+ #: includes/i18n.php:289
476
+ msgid "Deactivate License"
477
+ msgstr "שיחרור רישיון"
478
+
479
+ #: includes/i18n.php:291
480
+ msgid "Activate"
481
+ msgstr "הפעלה"
482
+
483
+ #: includes/i18n.php:293
484
+ msgid "Deactivate"
485
+ msgstr "כיבוי"
486
+
487
+ #: includes/i18n.php:295
488
+ msgid "Skip & Deactivate"
489
+ msgstr "דלג והמשך כיבוי"
490
+
491
+ #: includes/i18n.php:297
492
+ msgid "No - just deactivate"
493
+ msgstr "לא - פשוט כבה"
494
+
495
+ #: includes/i18n.php:299
496
+ msgid "Yes - do your thing"
497
+ msgstr "כן - בצעו את מה שצריך"
498
+
499
+ #: includes/i18n.php:301
500
+ msgctxt "active mode"
501
+ msgid "Active"
502
+ msgstr "מופעל"
503
+
504
+ #: includes/i18n.php:303
505
+ msgctxt "is active mode?"
506
+ msgid "Is Active"
507
+ msgstr "האם פעיל"
508
+
509
+ #: includes/i18n.php:305
510
+ msgid "Install Now"
511
+ msgstr "התקן עכשיו"
512
+
513
+ #: includes/i18n.php:307
514
+ msgid "Install Update Now"
515
+ msgstr "התקן עדכון במיידי"
516
+
517
+ #: includes/i18n.php:309
518
+ msgid "More information about %s"
519
+ msgstr ""
520
+
521
+ #: includes/i18n.php:311
522
+ msgid "Localhost"
523
+ msgstr "שרת לוקאלי"
524
+
525
+ #: includes/i18n.php:313
526
+ msgctxt "as activate Professional plan"
527
+ msgid "Activate %s Plan"
528
+ msgstr ""
529
+
530
+ #: includes/i18n.php:315
531
+ msgctxt "as 5 licenses left"
532
+ msgid "%s left"
533
+ msgstr "נשארו %s"
534
+
535
+ #: includes/i18n.php:317
536
+ msgid "Last license"
537
+ msgstr "רישיון אחרון"
538
+
539
+ #: includes/i18n.php:319
540
+ msgid "What is your %s?"
541
+ msgstr ""
542
+
543
+ #: includes/i18n.php:321
544
+ msgid "Activate this add-on"
545
+ msgstr "הפעל את התוסף"
546
+
547
+ #: includes/i18n.php:323
548
+ msgid ""
549
+ "Deactivating your license will block all premium features, but will enable "
550
+ "you to activate the license on another site. Are you sure you want to "
551
+ "proceed?"
552
+ msgstr ""
553
+
554
+ #: includes/i18n.php:327
555
+ msgid ""
556
+ "Deleting the account will automatically deactivate your %s plan license so "
557
+ "you can use it on other sites. If you want to terminate the recurring "
558
+ "payments as well, click the \"Cancel\" button, and first \"Downgrade\" your "
559
+ "account. Are you sure you would like to continue with the deletion?"
560
+ msgstr ""
561
+
562
+ #: includes/i18n.php:331
563
+ msgid ""
564
+ "Deletion is not temporary. Only delete if you no longer want to use this "
565
+ "plugin anymore. Are you sure you would like to continue with the deletion?"
566
+ msgstr ""
567
+
568
+ #: includes/i18n.php:335
569
+ msgid ""
570
+ "Downgrading your plan will immediately stop all future recurring payments "
571
+ "and your %s plan license will expire in %s."
572
+ msgstr ""
573
+
574
+ #: includes/i18n.php:339
575
+ msgid ""
576
+ "Cancelling the trial will immediately block access to all premium features. "
577
+ "Are you sure?"
578
+ msgstr ""
579
+
580
+ #: includes/i18n.php:343
581
+ msgid ""
582
+ "You can still enjoy all %s features but you will not have access to plugin "
583
+ "updates and support."
584
+ msgstr ""
585
+
586
+ #: includes/i18n.php:347
587
+ msgid ""
588
+ "Once your license expire you can still use the Free version but you will NOT"
589
+ " have access to the %s features."
590
+ msgstr ""
591
+
592
+ #: includes/i18n.php:351
593
+ msgid "Are you sure you want to proceed?"
594
+ msgstr "האם את/ה בטוח רוצה להמשיך?"
595
+
596
+ #: includes/i18n.php:357
597
+ msgid "Add Ons for %s"
598
+ msgstr ""
599
+
600
+ #: includes/i18n.php:359
601
+ msgid ""
602
+ "We could'nt load the add-ons list. It's probably an issue on our side, "
603
+ "please try to come back in few minutes."
604
+ msgstr ""
605
+
606
+ #: includes/i18n.php:365
607
+ msgid "Anonymous feedback"
608
+ msgstr "פידבק אנונימי"
609
+
610
+ #: includes/i18n.php:367
611
+ msgid "Quick feedback"
612
+ msgstr "פידבק זריז"
613
+
614
+ #: includes/i18n.php:369
615
+ msgid "If you have a moment, please let us know why you are deactivating"
616
+ msgstr ""
617
+
618
+ #: includes/i18n.php:373
619
+ msgid "Yes - Deactivate"
620
+ msgstr "כן - "
621
+
622
+ #: includes/i18n.php:375
623
+ msgid "Submit & Deactivate"
624
+ msgstr "שלח וכבה"
625
+
626
+ #: includes/i18n.php:377
627
+ msgid "Cancel"
628
+ msgstr "בטל"
629
+
630
+ #: includes/i18n.php:379
631
+ msgid "I no longer need the plugin"
632
+ msgstr "אין לי צורך יותר בתוסף"
633
+
634
+ #: includes/i18n.php:381
635
+ msgid "I found a better plugin"
636
+ msgstr "מצאתי תוסף טוב יותר"
637
+
638
+ #: includes/i18n.php:383
639
+ msgid "I only needed the plugin for a short period"
640
+ msgstr "השתמשתי בתוסף לתקופה קצרה"
641
+
642
+ #: includes/i18n.php:385
643
+ msgid "The plugin broke my site"
644
+ msgstr "התוסף הרס לי את האתר"
645
+
646
+ #: includes/i18n.php:387
647
+ msgid "The plugin suddenly stopped working"
648
+ msgstr "התוסף לפתע הפסיק לעבוד"
649
+
650
+ #: includes/i18n.php:389
651
+ msgid "I can't pay for it anymore"
652
+ msgstr "אני לא יכול/ה להמשיך לשלם על זה"
653
+
654
+ #: includes/i18n.php:391
655
+ msgid "It's a temporary deactivation. I'm just debugging an issue."
656
+ msgstr "כיבוי זמני לשם דיבאג."
657
+
658
+ #: includes/i18n.php:395
659
+ msgctxt ""
660
+ "the text of the \"other\" reason for deactivating the plugin that is shown "
661
+ "in the modal box."
662
+ msgid "Other"
663
+ msgstr "אחר"
664
+
665
+ #: includes/i18n.php:399
666
+ msgid "Kindly tell us the reason so we can improve."
667
+ msgstr "אנא שתף את הסיבה כדי שנוכל להשתפר."
668
+
669
+ #: includes/i18n.php:401
670
+ msgid "What's the plugin's name?"
671
+ msgstr "מהו שם התוסף?"
672
+
673
+ #: includes/i18n.php:403
674
+ msgid "What price would you feel comfortable paying?"
675
+ msgstr "מה המחיר שכן תרגיש\\י בנוח לשלם?"
676
+
677
+ #: includes/i18n.php:405
678
+ msgid "I couldn't understand how to make it work"
679
+ msgstr "לא הצלחתי להבין איך לגרום לזה לעבוד"
680
+
681
+ #: includes/i18n.php:407
682
+ msgid ""
683
+ "The plugin is great, but I need specific feature that you don't support"
684
+ msgstr "התוסף מעולה, אבל אני צריכ\\ה פיצ'ר ספציפי שלא נתמך"
685
+
686
+ #: includes/i18n.php:411
687
+ msgid "The plugin is not working"
688
+ msgstr "התוסף לא עובד"
689
+
690
+ #: includes/i18n.php:413
691
+ msgid "It's not what I was looking for"
692
+ msgstr "חיפשתי משהו אחר"
693
+
694
+ #: includes/i18n.php:415
695
+ msgid "The plugin didn't work as expected"
696
+ msgstr "התוסף לא עבד כמצופה"
697
+
698
+ #: includes/i18n.php:417
699
+ msgid "What feature?"
700
+ msgstr "איזה פיטצ'ר?"
701
+
702
+ #: includes/i18n.php:419
703
+ msgid "Kindly share what didn't work so we can fix it for future users..."
704
+ msgstr "אנא שתפ\\י מה לא עבד כדי שנוכל לתקן זאת עבור משתמשים עתידיים..."
705
+
706
+ #: includes/i18n.php:423
707
+ msgid "What you've been looking for?"
708
+ msgstr "מה חיפשת?"
709
+
710
+ #: includes/i18n.php:425
711
+ msgid "What did you expect?"
712
+ msgstr "למה ציפית?"
713
+
714
+ #: includes/i18n.php:427
715
+ msgid "The plugin didn't work"
716
+ msgstr "התוסף לא עבד"
717
+
718
+ #: includes/i18n.php:429
719
+ msgid "I don't like to share my information with you"
720
+ msgstr "אני לא אוהב את הרעיון של שיתוף מידע איתכם"
721
+
722
+ #: includes/i18n.php:431
723
+ msgid ""
724
+ "You might have missed it, but you don't have to share any data and can just "
725
+ "%s the opt-in."
726
+ msgstr "אולי פספסת את זה אבל אינך חייב\\ת לשתף כל מידע איתנו, ביכולתך %s על שיתוף המידע."
727
+
728
+ #: includes/i18n.php:441
729
+ msgctxt "greeting"
730
+ msgid "Hey %s,"
731
+ msgstr "היי %s,"
732
+
733
+ #: includes/i18n.php:443
734
+ msgctxt "a greeting. E.g. Thanks John!"
735
+ msgid "Thanks %s!"
736
+ msgstr "תודה %s!"
737
+
738
+ #: includes/i18n.php:445
739
+ msgid ""
740
+ "Never miss an important update - opt-in to our security and feature updates "
741
+ "notifications, and non-sensitive diagnostic tracking with %4$s."
742
+ msgstr ""
743
+
744
+ #: includes/i18n.php:449
745
+ msgid ""
746
+ "Please help us improve %1$s! If you opt-in, some data about your usage of "
747
+ "%1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still "
748
+ "work just fine."
749
+ msgstr ""
750
+
751
+ #: includes/i18n.php:453
752
+ msgid ""
753
+ "You should receive an activation email for %s to your mailbox at %s. Please "
754
+ "make sure you click the activation button in that email to %s."
755
+ msgstr ""
756
+
757
+ #: includes/i18n.php:455
758
+ msgid "complete the install"
759
+ msgstr ""
760
+
761
+ #: includes/i18n.php:457
762
+ msgid "start the trial"
763
+ msgstr ""
764
+
765
+ #: includes/i18n.php:459
766
+ msgid ""
767
+ "Thanks for purchasing %s! To get started, please enter your license key:"
768
+ msgstr ""
769
+
770
+ #: includes/i18n.php:463
771
+ msgid ""
772
+ "The plugin will be periodically sending data to %s to check for plugin "
773
+ "updates and verify the validity of your license."
774
+ msgstr ""
775
+
776
+ #: includes/i18n.php:467
777
+ msgid "What permissions are being granted?"
778
+ msgstr "מהן ההרשאות המוענקות?"
779
+
780
+ #: includes/i18n.php:469
781
+ msgid "Your Profile Overview"
782
+ msgstr "פרטים כלליים על הפרופיל"
783
+
784
+ #: includes/i18n.php:471
785
+ msgid "Name and email address"
786
+ msgstr "שם וכתובת דו\"אל"
787
+
788
+ #: includes/i18n.php:473
789
+ msgid "Your Site Overview"
790
+ msgstr "פרטים כלליים על האתר"
791
+
792
+ #: includes/i18n.php:475
793
+ msgid "Site URL, WP version, PHP info, plugins & themes"
794
+ msgstr "כתובת אתר, גרסת וורדפרס, פרטי PHP, תוספים ותבניות"
795
+
796
+ #: includes/i18n.php:479
797
+ msgid "Current Plugin Events"
798
+ msgstr "שינויי מצב בתוסף הנוכחי"
799
+
800
+ #: includes/i18n.php:481
801
+ msgid "Activation, deactivation and uninstall"
802
+ msgstr "הפעלה, כיבוי והסרה"
803
+
804
+ #: includes/i18n.php:483
805
+ msgid "Plugins & Themes"
806
+ msgstr "תוספים ותבניות"
807
+
808
+ #: includes/i18n.php:485
809
+ msgid "Titles, versions and state."
810
+ msgstr "שמות, גרסאות וסטאטוס."
811
+
812
+ #: includes/i18n.php:487
813
+ msgid "Admin Notices"
814
+ msgstr ""
815
+
816
+ #: includes/i18n.php:489
817
+ msgid "Newsletter"
818
+ msgstr "ניוסלטר"
819
+
820
+ #: includes/i18n.php:491
821
+ msgid "Updates, announcements, marketing, no spam"
822
+ msgstr ""
823
+
824
+ #: includes/i18n.php:493
825
+ msgid "Privacy Policy"
826
+ msgstr "מדיניות פרטיות"
827
+
828
+ #: includes/i18n.php:495
829
+ msgid "Terms of Service"
830
+ msgstr "תנאי השירות"
831
+
832
+ #: includes/i18n.php:497
833
+ msgctxt "as activating plugin"
834
+ msgid "Activating"
835
+ msgstr "מפעיל"
836
+
837
+ #: includes/i18n.php:499
838
+ msgctxt "as in the process of sending an email"
839
+ msgid "Sending email"
840
+ msgstr "שולח דוא\"ל"
841
+
842
+ #: includes/i18n.php:503
843
+ msgctxt "button label"
844
+ msgid "Allow & Continue"
845
+ msgstr "אפשר\\י והמשכ\\י"
846
+
847
+ #: includes/i18n.php:505
848
+ msgctxt "button label"
849
+ msgid "Agree & Activate License"
850
+ msgstr "הסכמה והפעלת רישיון"
851
+
852
+ #: includes/i18n.php:507
853
+ msgctxt "verb"
854
+ msgid "Skip"
855
+ msgstr "דלג"
856
+
857
+ #: includes/i18n.php:509
858
+ msgid "Click here to use the plugin anonymously"
859
+ msgstr ""
860
+
861
+ #: includes/i18n.php:511
862
+ msgid "Re-send activation email"
863
+ msgstr "שליחה חוזרת של מייל האקטיבציה"
864
+
865
+ #: includes/i18n.php:513
866
+ msgid "License key"
867
+ msgstr "מפתח רישיון"
868
+
869
+ #: includes/i18n.php:515
870
+ msgid "Send License Key"
871
+ msgstr "שליחת מפתח רישיון"
872
+
873
+ #: includes/i18n.php:517
874
+ msgid "Sending license key"
875
+ msgstr "שולח מפתח רישיון"
876
+
877
+ #: includes/i18n.php:519
878
+ msgid "Have a license key?"
879
+ msgstr "האם ברשותך רישיון?"
880
+
881
+ #: includes/i18n.php:521
882
+ msgid "Don't have a license key?"
883
+ msgstr "האם אין ברשותך מפתח רישיון?"
884
+
885
+ #: includes/i18n.php:523
886
+ msgid "Can't find your license key?"
887
+ msgstr "האם אינך מוצא את מפתח הרישיון?"
888
+
889
+ #: includes/i18n.php:525
890
+ msgid ""
891
+ "We couldn't find your email address in the system, are you sure it's the "
892
+ "right address?"
893
+ msgstr ""
894
+
895
+ #: includes/i18n.php:529
896
+ msgid ""
897
+ "We can't see any active licenses associated with that email address, are you"
898
+ " sure it's the right address?"
899
+ msgstr ""
900
+
901
+ #: includes/i18n.php:533
902
+ msgid "Opt In"
903
+ msgstr ""
904
+
905
+ #: includes/i18n.php:535
906
+ msgid "Opt Out"
907
+ msgstr ""
908
+
909
+ #: includes/i18n.php:537
910
+ msgid "On second thought - I want to continue helping"
911
+ msgstr ""
912
+
913
+ #: includes/i18n.php:541
914
+ msgid "Opting out..."
915
+ msgstr ""
916
+
917
+ #: includes/i18n.php:543
918
+ msgid "Opting in..."
919
+ msgstr ""
920
+
921
+ #: includes/i18n.php:545
922
+ msgid ""
923
+ "We appreciate your help in making the %s better by letting us track some "
924
+ "usage data."
925
+ msgstr ""
926
+
927
+ #: includes/i18n.php:549
928
+ msgid ""
929
+ "Usage tracking is done in the name of making %s better. Making a better user"
930
+ " experience, prioritizing new features, and more good things. We'd really "
931
+ "appreciate if you'll reconsider letting us continue with the tracking."
932
+ msgstr ""
933
+
934
+ #: includes/i18n.php:553
935
+ msgid ""
936
+ "By clicking \"Opt Out\", we will no longer be sending any data from %s to "
937
+ "%s."
938
+ msgstr ""
939
+
940
+ #: includes/i18n.php:563
941
+ msgid "Screenshots"
942
+ msgstr "צילומי מסך"
943
+
944
+ #: includes/i18n.php:565
945
+ msgid "Click to view full-size screenshot %d"
946
+ msgstr ""
947
+
948
+ #: includes/i18n.php:573
949
+ msgid "Freemius Debug"
950
+ msgstr ""
951
+
952
+ #: includes/i18n.php:575
953
+ msgctxt "as turned on"
954
+ msgid "On"
955
+ msgstr "דלוק"
956
+
957
+ #: includes/i18n.php:577
958
+ msgctxt "as turned off"
959
+ msgid "Off"
960
+ msgstr "כבוי"
961
+
962
+ #: includes/i18n.php:579
963
+ msgctxt "as code debugging"
964
+ msgid "Debugging"
965
+ msgstr "דיבוג"
966
+
967
+ #: includes/i18n.php:581
968
+ msgid "Freemius State"
969
+ msgstr ""
970
+
971
+ #: includes/i18n.php:583
972
+ msgctxt "as connection was successful"
973
+ msgid "Connected"
974
+ msgstr "מחובר"
975
+
976
+ #: includes/i18n.php:585
977
+ msgctxt "as connection blocked"
978
+ msgid "Blocked"
979
+ msgstr "חסום"
980
+
981
+ #: includes/i18n.php:587
982
+ msgctxt "as application program interface"
983
+ msgid "API"
984
+ msgstr "API"
985
+
986
+ #: includes/i18n.php:589
987
+ msgctxt "as software development kit versions"
988
+ msgid "SDK"
989
+ msgstr "SDK"
990
+
991
+ #: includes/i18n.php:591
992
+ msgctxt "as software development kit versions"
993
+ msgid "SDK Versions"
994
+ msgstr "גרסאות SDK"
995
+
996
+ #: includes/i18n.php:595
997
+ msgctxt "as plugin folder path"
998
+ msgid "Plugin Path"
999
+ msgstr ""
1000
+
1001
+ #: includes/i18n.php:597
1002
+ msgctxt "as sdk path"
1003
+ msgid "SDK Path"
1004
+ msgstr "מיקום SDK"
1005
+
1006
+ #: includes/i18n.php:599
1007
+ msgid "Add Ons of Plugin %s"
1008
+ msgstr ""
1009
+
1010
+ #: includes/i18n.php:601
1011
+ msgid "Are you sure you want to delete all Freemius data?"
1012
+ msgstr ""
1013
+
1014
+ #: includes/i18n.php:605
1015
+ msgid "Actions"
1016
+ msgstr "פעולות"
1017
+
1018
+ #: includes/i18n.php:607
1019
+ msgid "Delete All Accounts"
1020
+ msgstr "מחיקת כל החשבונות"
1021
+
1022
+ #: includes/i18n.php:609
1023
+ msgid "Start Fresh"
1024
+ msgstr "התחל מחדש"
1025
+
1026
+ #: includes/i18n.php:611
1027
+ msgid "Clear API Cache"
1028
+ msgstr "ניקוי מטמון ה-API"
1029
+
1030
+ #: includes/i18n.php:613
1031
+ msgid "Sync Data From Server"
1032
+ msgstr "סנכרון מידע מהשרת"
1033
+
1034
+ #: includes/i18n.php:615
1035
+ msgid "Scheduled Crons"
1036
+ msgstr ""
1037
+
1038
+ #: includes/i18n.php:617
1039
+ msgid "Plugins & Themes Sync"
1040
+ msgstr ""
1041
+
1042
+ #: includes/i18n.php:625
1043
+ msgctxt "as congratulations"
1044
+ msgid "Congrats"
1045
+ msgstr "מזל טוב"
1046
+
1047
+ #: includes/i18n.php:627
1048
+ msgctxt "exclamation"
1049
+ msgid "Oops"
1050
+ msgstr "אופס"
1051
+
1052
+ #: includes/i18n.php:629
1053
+ msgctxt "interjection expressing joy or exuberance"
1054
+ msgid "Yee-haw"
1055
+ msgstr ""
1056
+
1057
+ #: includes/i18n.php:633
1058
+ msgctxt ""
1059
+ "(especially in electronic communication) used to express elation, "
1060
+ "enthusiasm, or triumph."
1061
+ msgid "W00t"
1062
+ msgstr ""
1063
+
1064
+ #: includes/i18n.php:637
1065
+ msgctxt "a positive response"
1066
+ msgid "Right on"
1067
+ msgstr ""
1068
+
1069
+ #: includes/i18n.php:639
1070
+ msgctxt ""
1071
+ "something somebody says when they are thinking about what you have just "
1072
+ "said. "
1073
+ msgid "Hmm"
1074
+ msgstr "הממ"
1075
+
1076
+ #: includes/i18n.php:643
1077
+ msgid "O.K"
1078
+ msgstr "אוקיי"
1079
+
1080
+ #: includes/i18n.php:645
1081
+ msgctxt "exclamation"
1082
+ msgid "Hey"
1083
+ msgstr "היי"
1084
+
1085
+ #: includes/i18n.php:647
1086
+ msgctxt "advance notice of something that will need attention."
1087
+ msgid "Heads up"
1088
+ msgstr "לתשמות לבך"
1089
+
1090
+ #: includes/i18n.php:657
1091
+ msgid "Seems like you got the latest release."
1092
+ msgstr ""
1093
+
1094
+ #: includes/i18n.php:659
1095
+ msgid "You are all good!"
1096
+ msgstr "את\\ה מסודר!"
1097
+
1098
+ #: includes/i18n.php:661
1099
+ msgid ""
1100
+ "Sorry, we could not complete the email update. Another user with the same "
1101
+ "email is already registered."
1102
+ msgstr ""
1103
+
1104
+ #: includes/i18n.php:665
1105
+ msgid ""
1106
+ "If you would like to give up the ownership of the plugin's account to %s "
1107
+ "click the Change Ownership button."
1108
+ msgstr ""
1109
+
1110
+ #: includes/i18n.php:669
1111
+ msgid ""
1112
+ "Your email was successfully updated. You should receive an email with "
1113
+ "confirmation instructions in few moments."
1114
+ msgstr ""
1115
+
1116
+ #: includes/i18n.php:673
1117
+ msgid "Your name was successfully updated."
1118
+ msgstr "שמך עודכן בהצלחה."
1119
+
1120
+ #: includes/i18n.php:675
1121
+ msgid "You have successfully updated your %s."
1122
+ msgstr ""
1123
+
1124
+ #: includes/i18n.php:677
1125
+ msgid "Please provide your full name."
1126
+ msgstr "נא למלא את שמך המלא."
1127
+
1128
+ #: includes/i18n.php:679
1129
+ msgid ""
1130
+ "Verification mail was just sent to %s. If you can't find it after 5 min, "
1131
+ "please check your spam box."
1132
+ msgstr ""
1133
+
1134
+ #: includes/i18n.php:683
1135
+ msgid ""
1136
+ "Just letting you know that the add-ons information of %s is being pulled "
1137
+ "from an external server."
1138
+ msgstr ""
1139
+
1140
+ #: includes/i18n.php:687
1141
+ msgid "No credit card required"
1142
+ msgstr "לא נדרש כרטיס אשראי"
1143
+
1144
+ #: includes/i18n.php:689
1145
+ msgid "Premium plugin version was successfully activated."
1146
+ msgstr ""
1147
+
1148
+ #: includes/i18n.php:693
1149
+ msgid "The upgrade of %s was successfully completed."
1150
+ msgstr ""
1151
+
1152
+ #: includes/i18n.php:695
1153
+ msgid "Your account was successfully activated with the %s plan."
1154
+ msgstr "חשבונך הופעל בהצלחה עם חבילת ה-%s."
1155
+
1156
+ #: includes/i18n.php:699
1157
+ msgid "Download the latest %s version now"
1158
+ msgstr "הורדת גרסת ה-%s העדכנית - עכשיו"
1159
+
1160
+ #: includes/i18n.php:701
1161
+ msgid "Please follow these steps to complete the upgrade"
1162
+ msgstr "נא לבצע את הצעדים הבאים להשלמת השידרוג"
1163
+
1164
+ #: includes/i18n.php:705
1165
+ msgid "Download the latest %s version"
1166
+ msgstr "הורד\\י את גרסת ה-%s העדכנית"
1167
+
1168
+ #: includes/i18n.php:707
1169
+ msgid "Deactivate the free version"
1170
+ msgstr "כבה\\י את הגרסה החינאמית"
1171
+
1172
+ #: includes/i18n.php:709
1173
+ msgid "Upload and activate the downloaded version"
1174
+ msgstr "העלה\\י והפעיל\\י את הגרסה שהורדת"
1175
+
1176
+ #: includes/i18n.php:711
1177
+ msgid "How to upload and activate?"
1178
+ msgstr "איך להעלות ולהפעיל?"
1179
+
1180
+ #: includes/i18n.php:713
1181
+ msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1182
+ msgid "%s Add-on was successfully purchased."
1183
+ msgstr ""
1184
+
1185
+ #: includes/i18n.php:717
1186
+ msgid "Your %s Add-on plan was successfully upgraded."
1187
+ msgstr ""
1188
+
1189
+ #: includes/i18n.php:721
1190
+ msgid "Your email has been successfully verified - you are AWESOME!"
1191
+ msgstr ""
1192
+
1193
+ #: includes/i18n.php:725
1194
+ msgid "Your plan was successfully upgraded."
1195
+ msgstr "החבילה הופעלה בהצלחה."
1196
+
1197
+ #: includes/i18n.php:727
1198
+ msgid "Your plan was successfully changed to %s."
1199
+ msgstr ""
1200
+
1201
+ #: includes/i18n.php:729
1202
+ msgid ""
1203
+ "Your license has expired. You can still continue using the free plugin "
1204
+ "forever."
1205
+ msgstr "פג תוקפו של הרישיון. עדיין ניתן להמשיך להשתמש בגרסה החינאמית של התוסף ללא מגבלת זמן."
1206
+
1207
+ #: includes/i18n.php:733
1208
+ msgid ""
1209
+ "Your license has been cancelled. If you think it's a mistake, please contact"
1210
+ " support."
1211
+ msgstr "רשיונך בוטל. אם לדעתך זו טעות, נא ליצור קשר עם התמיכה."
1212
+
1213
+ #: includes/i18n.php:737
1214
+ msgid "Your trial has been successfully started."
1215
+ msgstr "הניסיון שלך הופעל בהצלחה."
1216
+
1217
+ #: includes/i18n.php:739
1218
+ msgid "Your license was successfully activated."
1219
+ msgstr "הרישיון הופעל בהצלחה."
1220
+
1221
+ #: includes/i18n.php:741
1222
+ msgid "It looks like your site currently doesn't have an active license."
1223
+ msgstr "נראה לאתר עדיין אין רישיון פעיל."
1224
+
1225
+ #: includes/i18n.php:745
1226
+ msgid ""
1227
+ "Your license was successfully deactivated, you are back to the %s plan."
1228
+ msgstr "רישיונך נותק בהצלחה, חזרת לחבילת ה-%s"
1229
+
1230
+ #: includes/i18n.php:749
1231
+ msgid "It looks like the license deactivation failed."
1232
+ msgstr "נראה שניתוק הרישיון נכשל."
1233
+
1234
+ #: includes/i18n.php:753
1235
+ msgid "It looks like the license could not be activated."
1236
+ msgstr "נראה שלא ניתן להפעיל את הרישיון."
1237
+
1238
+ #: includes/i18n.php:757
1239
+ msgid "Error received from the server:"
1240
+ msgstr "הוחזרה שגיאה מהשרת:"
1241
+
1242
+ #: includes/i18n.php:759
1243
+ msgid ""
1244
+ "Your trial has expired. You can still continue using all our free features."
1245
+ msgstr "תקופת הניסיון נגמרה. ביכולתך להמשיך להשתמש בכל הפיטצ'רים החינאמיים."
1246
+
1247
+ #: includes/i18n.php:763
1248
+ msgid ""
1249
+ "Your plan was successfully downgraded. Your %s plan license will expire in "
1250
+ "%s."
1251
+ msgstr ""
1252
+
1253
+ #: includes/i18n.php:767
1254
+ msgid ""
1255
+ "Seems like we are having some temporary issue with your plan downgrade. "
1256
+ "Please try again in few minutes."
1257
+ msgstr ""
1258
+
1259
+ #: includes/i18n.php:771
1260
+ msgid ""
1261
+ "It looks like you are not in trial mode anymore so there's nothing to cancel"
1262
+ " :)"
1263
+ msgstr ""
1264
+
1265
+ #: includes/i18n.php:775
1266
+ msgid "Your %s free trial was successfully cancelled."
1267
+ msgstr ""
1268
+
1269
+ #: includes/i18n.php:779
1270
+ msgctxt "%s - numeric version number"
1271
+ msgid "Version %s was released."
1272
+ msgstr "גרסה %s הושקה."
1273
+
1274
+ #: includes/i18n.php:783
1275
+ msgid "Please download %s."
1276
+ msgstr ""
1277
+
1278
+ #: includes/i18n.php:785
1279
+ msgctxt "%s - plan name, as the latest professional version here"
1280
+ msgid "the latest %s version here"
1281
+ msgstr "גרסת ה-%s האחרונה כאן"
1282
+
1283
+ #: includes/i18n.php:789
1284
+ msgid ""
1285
+ "How do you like %s so far? Test all our %s premium features with a %d-day "
1286
+ "free trial."
1287
+ msgstr ""
1288
+
1289
+ #: includes/i18n.php:793
1290
+ msgctxt "call to action"
1291
+ msgid "Start free trial"
1292
+ msgstr "התחלת ניסיון חינם"
1293
+
1294
+ #: includes/i18n.php:795
1295
+ msgid "Starting trial"
1296
+ msgstr ""
1297
+
1298
+ #: includes/i18n.php:797
1299
+ msgid "Please wait"
1300
+ msgstr ""
1301
+
1302
+ #: includes/i18n.php:799
1303
+ msgid ""
1304
+ "Seems like we are having some temporary issue with your trial cancellation. "
1305
+ "Please try again in few minutes."
1306
+ msgstr ""
1307
+
1308
+ #: includes/i18n.php:803
1309
+ msgid "You already utilized a trial before."
1310
+ msgstr "הניסיון כבר נוצל בעבר."
1311
+
1312
+ #: includes/i18n.php:805
1313
+ msgid "You are already running the plugin in a trial mode."
1314
+ msgstr "התוסף כבר עכשיו בתקופת ניסיון."
1315
+
1316
+ #: includes/i18n.php:809
1317
+ msgid "Plan %s do not exist, therefore, can't start a trial."
1318
+ msgstr ""
1319
+
1320
+ #: includes/i18n.php:813
1321
+ msgid "Plan %s does not support a trial period."
1322
+ msgstr ""
1323
+
1324
+ #: includes/i18n.php:815
1325
+ msgid "None of the plugin's plans supports a trial period."
1326
+ msgstr "אף אחת מחבילות התוסף מאפשרת תקופת ניסיון."
1327
+
1328
+ #: includes/i18n.php:819
1329
+ msgid ""
1330
+ "Unexpected API error. Please contact the plugin's author with the following "
1331
+ "error."
1332
+ msgstr "שגיאת API בלתי צפוייה. נא לפנות למפתח התוסף עם השגיאה הבאה."
1333
+
1334
+ #: includes/i18n.php:823
1335
+ msgid "No commitment for %s days - cancel anytime!"
1336
+ msgstr ""
1337
+
1338
+ #: includes/i18n.php:825
1339
+ msgid ""
1340
+ "Your license has expired. You can still continue using all the %s features, "
1341
+ "but you'll need to renew your license to continue getting updates and "
1342
+ "support."
1343
+ msgstr ""
1344
+
1345
+ #: includes/i18n.php:829
1346
+ msgid "Couldn't activate %s."
1347
+ msgstr ""
1348
+
1349
+ #: includes/i18n.php:831
1350
+ msgid "Please contact us with the following message:"
1351
+ msgstr "אנא צור איתנו קשר יחד עם ההודעה הבאה:"
1352
+
1353
+ #: includes/i18n.php:833
1354
+ msgid ""
1355
+ "It looks like you are still on the %s plan. If you did upgrade or change "
1356
+ "your plan, it's probably an issue on our side - sorry."
1357
+ msgstr ""
1358
+
1359
+ #: includes/i18n.php:837
1360
+ msgid "Please contact us here"
1361
+ msgstr "אנא צור איתנו קשר כאן"
1362
+
1363
+ #: includes/i18n.php:839
1364
+ msgid ""
1365
+ "I have upgraded my account but when I try to Sync the License, the plan "
1366
+ "remains %s."
1367
+ msgstr "שידרגתי את החשבון שלי אבל כשאני מנסה לבצע סנכרון לרישיון החבילה נשארת %s"
1368
+
1369
+ #: includes/i18n.php:847
1370
+ msgid "From unknown reason, the API connectivity test failed."
1371
+ msgstr "יש בעיית תקשורת ל-API מסיבה בלתי ברורה."
1372
+
1373
+ #: includes/i18n.php:851
1374
+ msgid ""
1375
+ "It's probably a temporary issue on our end. Just to be sure, with your "
1376
+ "permission, would it be o.k to run another connectivity test?"
1377
+ msgstr "ככל הנראה זאת בעיה זמנית בצד שלנו. ברשותך, ורק כדי להיות בטוחים שזאת הבעיה, האם זה יהיה בסדר לבצע בדיקת תקשורת נוספת?"
1378
+
1379
+ #: includes/i18n.php:855
1380
+ msgid ""
1381
+ "We use PHP cURL library for the API calls, which is a very common library "
1382
+ "and usually installed out of the box. Unfortunately, cURL is not installed "
1383
+ "on your server."
1384
+ msgstr ""
1385
+
1386
+ #: includes/i18n.php:859
1387
+ msgid ""
1388
+ "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1389
+ msgstr "מסיבה בלתי ברורה, CloudFlare, חומת האש שאנחנו משתמשים בה, חוסמת את התקשורת."
1390
+
1391
+ #: includes/i18n.php:863
1392
+ msgctxt "as pluginX requires an access to our API"
1393
+ msgid "%s requires an access to our API."
1394
+ msgstr "%s מחייב גישה ל-API שלנו."
1395
+
1396
+ #: includes/i18n.php:867
1397
+ msgid ""
1398
+ "It looks like your server is using Squid ACL (access control lists), which "
1399
+ "blocks the connection."
1400
+ msgstr ""
1401
+
1402
+ #: includes/i18n.php:871
1403
+ msgid "I don't know what is Squid or ACL, help me!"
1404
+ msgstr "אין לי מושג מה זה Squid או ACL - אשמח לעזרה!"
1405
+
1406
+ #: includes/i18n.php873, includes/i18n.php:887
1407
+ msgid ""
1408
+ "We'll make sure to contact your hosting company and resolve the issue. You "
1409
+ "will get a follow-up email to %s once we have an update."
1410
+ msgstr ""
1411
+
1412
+ #: includes/i18n.php:877
1413
+ msgid "I'm a system administrator"
1414
+ msgstr ""
1415
+
1416
+ #: includes/i18n.php:879
1417
+ msgid ""
1418
+ "Great, please whitelist the following domains: %s. Once you done, deactivate"
1419
+ " the plugin and activate it again."
1420
+ msgstr ""
1421
+
1422
+ #: includes/i18n.php:883
1423
+ msgid "I don't know what is cURL or how to install it, help me!"
1424
+ msgstr "אין לי מושג מה זה cURL או איך להתקין אותו - אשמח לעזרה!"
1425
+
1426
+ #: includes/i18n.php:891
1427
+ msgid ""
1428
+ "Great, please install cURL and enable it in your php.ini file. To make sure "
1429
+ "it was successfully activated, use 'phpinfo()'. Once activated, deactivate "
1430
+ "the plugin and reactivate it back again."
1431
+ msgstr ""
1432
+
1433
+ #: includes/i18n.php:895
1434
+ msgid ""
1435
+ "We are sure it's an issue on our side and more than happy to resolve it for "
1436
+ "you ASAP if you give us a chance."
1437
+ msgstr "זו בטח בעיה בצד שלנו ואנחנו נשמח לעזור כדי לפתור את העניין בהקדם האפשר, רק במידה ותאפשר\\י זאת."
1438
+
1439
+ #: includes/i18n.php:899
1440
+ msgid ""
1441
+ "Sorry for the inconvenience and we are here to help if you give us a chance."
1442
+ msgstr "מצטערים על חוסר הנעימות, אנחנו כאן כדי לעזור אם תאפשר\\י זאת."
1443
+
1444
+ #: includes/i18n.php:903
1445
+ msgid "Yes - I'm giving you a chance to fix it"
1446
+ msgstr "כן - אני נותן לך צ'אנס לתקן את זה"
1447
+
1448
+ #: includes/i18n.php:905
1449
+ msgid ""
1450
+ "We will do our best to whitelist your server and resolve this issue ASAP. "
1451
+ "You will get a follow-up email to %s once we have an update."
1452
+ msgstr ""
1453
+
1454
+ #: includes/i18n.php:909
1455
+ msgid "Let's try your previous version"
1456
+ msgstr "בוא ננסה את הגירסה הקודמת"
1457
+
1458
+ #: includes/i18n.php:911
1459
+ msgid "Uninstall this version and install the previous one."
1460
+ msgstr "הסר את הגרסה הנוכחית והתקן את הגרסה קודמת."
1461
+
1462
+ #: includes/i18n.php:915
1463
+ msgid "That's exhausting, please deactivate"
1464
+ msgstr "זה מתיש, אנא לכבות"
1465
+
1466
+ #: includes/i18n.php:917
1467
+ msgid ""
1468
+ "We feel your frustration and sincerely apologize for the inconvenience. Hope"
1469
+ " to see you again in the future."
1470
+ msgstr ""
1471
+
1472
+ #: includes/i18n.php:921
1473
+ msgid ""
1474
+ "Thank for giving us the chance to fix it! A message was just sent to our "
1475
+ "technical staff. We will get back to you as soon as we have an update to %s."
1476
+ " Appreciate your patience."
1477
+ msgstr ""
1478
+
1479
+ #: includes/i18n.php:925
1480
+ msgctxt "%1s - plugin title, %2s - API domain"
1481
+ msgid ""
1482
+ "Your server is blocking the access to Freemius' API, which is crucial for "
1483
+ "%1s synchronization. Please contact your host to whitelist %2s"
1484
+ msgstr ""
1485
+
1486
+ #: includes/i18n.php:929
1487
+ msgid ""
1488
+ "It seems like one of the authentication parameters is wrong. Update your "
1489
+ "Public Key, Secret Key & User ID, and try again."
1490
+ msgstr ""
1491
+
1492
+ #: includes/i18n.php:937
1493
+ msgid ""
1494
+ "Please check your mailbox, you should receive an email via %s to confirm the"
1495
+ " ownership change. From security reasons, you must confirm the change within"
1496
+ " the next 15 min. If you cannot find the email, please check your spam "
1497
+ "folder."
1498
+ msgstr ""
1499
+
1500
+ #: includes/i18n.php:941
1501
+ msgid ""
1502
+ "Thanks for confirming the ownership change. An email was just sent to %s for"
1503
+ " final approval."
1504
+ msgstr "תודה על אישור ביצוע החלפת הבעלות. הרגע נשלח מייל ל-%s כדי לקבל אישור סופי."
1505
+
1506
+ #: includes/i18n.php:945
1507
+ msgid "%s is the new owner of the account."
1508
+ msgstr "%s הינו הבעלים החד של חשבון זה."
1509
+
1510
+ #: includes/i18n.php:949
1511
+ msgctxt "addonX cannot run without pluginY"
1512
+ msgid "%s cannot run without %s."
1513
+ msgstr "%s לא יכול לעבוד ללא %s."
1514
+
1515
+ #: includes/i18n.php:953
1516
+ msgctxt "addonX cannot run..."
1517
+ msgid "%s cannot run without the plugin."
1518
+ msgstr ""
1519
+
1520
+ #: includes/i18n.php:957
1521
+ msgctxt "pluginX activation was successfully..."
1522
+ msgid "%s activation was successfully completed."
1523
+ msgstr ""
1524
+
1525
+ #: includes/i18n.php:961
1526
+ msgctxt "Plugin installer section title"
1527
+ msgid "Features & Pricing"
1528
+ msgstr "פיטצ'רים ומחירים"
1529
+
1530
+ #: includes/i18n.php:965
1531
+ msgid "Add-on must be deployed to WordPress.org or Freemius."
1532
+ msgstr ""
1533
+
1534
+ #: includes/i18n.php:969
1535
+ msgid "Paid add-on must be deployed to Freemius."
1536
+ msgstr ""
1537
+
1538
+ #: includes/i18n.php:977
1539
+ msgid ""
1540
+ "%s is a premium only add-on. You have to purchase a license first before "
1541
+ "activating the plugin."
1542
+ msgstr ""
1543
+
1544
+ #: includes/i18n.php:981
1545
+ msgid ""
1546
+ "%s free trial was successfully cancelled. Since the add-on is premium only "
1547
+ "it was automatically deactivated. If you like to use it in the future, "
1548
+ "you'll have to purchase a license."
1549
+ msgstr ""
1550
+
1551
+ #: includes/i18n.php:993
1552
+ msgctxt "as every month"
1553
+ msgid "Monthly"
1554
+ msgstr "חודשי"
1555
+
1556
+ #: includes/i18n.php:995
1557
+ msgctxt "as monthly period"
1558
+ msgid "mo"
1559
+ msgstr ""
1560
+
1561
+ #: includes/i18n.php:997
1562
+ msgctxt "as once a year"
1563
+ msgid "Annual"
1564
+ msgstr "שנתי"
1565
+
1566
+ #: includes/i18n.php:999
1567
+ msgctxt "as once a year"
1568
+ msgid "Annually"
1569
+ msgstr "שנתי"
1570
+
1571
+ #: includes/i18n.php:1001
1572
+ msgctxt "as once a year"
1573
+ msgid "Once"
1574
+ msgstr "פעם אחת"
1575
+
1576
+ #: includes/i18n.php:1003
1577
+ msgctxt "as annual period"
1578
+ msgid "year"
1579
+ msgstr "שנה"
1580
+
1581
+ #: includes/i18n.php:1005
1582
+ msgid "Lifetime"
1583
+ msgstr "לכל החיים"
1584
+
1585
+ #: includes/i18n.php:1007
1586
+ msgctxt "e.g. the best product"
1587
+ msgid "Best"
1588
+ msgstr "הכי טוב"
1589
+
1590
+ #: includes/i18n.php:1009
1591
+ msgctxt "e.g. billed monthly"
1592
+ msgid "Billed %s"
1593
+ msgstr "מחוייב על בסיס %s"
1594
+
1595
+ #: includes/i18n.php:1011
1596
+ msgctxt "as a discount of $5 or 10%"
1597
+ msgid "Save %s"
1598
+ msgstr "שמירת %s"
1599
+
1600
+ #: includes/i18n.php:1015
1601
+ msgid "View details"
1602
+ msgstr "פרטים נוספים"
1603
+
1604
+ #: includes/i18n.php:1023
1605
+ msgctxt "button label"
1606
+ msgid "Approve & Start Trial"
1607
+ msgstr ""
1608
+
1609
+ #: includes/i18n.php:1027
1610
+ msgid ""
1611
+ "You are 1-click away from starting your %1$s-day free trial of the %2$s "
1612
+ "plan."
1613
+ msgstr ""
1614
+
1615
+ #: includes/i18n.php:1031
1616
+ msgid ""
1617
+ "For compliance with the WordPress.org guidelines, before we start the trial "
1618
+ "we ask that you opt-in with your user and non-sensitive site information, "
1619
+ "allowing the plugin to periodically send data to %s to check for version "
1620
+ "updates and to validate your trial."
1621
+ msgstr ""
1622
+
1623
+ #: includes/i18n.php:1043
1624
+ msgid "Business name"
1625
+ msgstr ""
1626
+
1627
+ #: includes/i18n.php:1045
1628
+ msgid "Tax / VAT ID"
1629
+ msgstr ""
1630
+
1631
+ #: includes/i18n.php:1047
1632
+ msgid "Address Line %d"
1633
+ msgstr ""
1634
+
1635
+ #: includes/i18n.php:1049
1636
+ msgid "Country"
1637
+ msgstr ""
1638
+
1639
+ #: includes/i18n.php:1051
1640
+ msgid "Select Country"
1641
+ msgstr ""
1642
+
1643
+ #: includes/i18n.php:1053
1644
+ msgid "City"
1645
+ msgstr ""
1646
+
1647
+ #: includes/i18n.php:1055
1648
+ msgid "Town"
1649
+ msgstr ""
1650
+
1651
+ #: includes/i18n.php:1057
1652
+ msgid "State"
1653
+ msgstr ""
1654
+
1655
+ #: includes/i18n.php:1059
1656
+ msgid "Province"
1657
+ msgstr ""
1658
+
1659
+ #: includes/i18n.php:1061
1660
+ msgid "ZIP / Postal Code"
1661
+ msgstr ""
freemius/languages/freemius-it_IT.mo CHANGED
Binary file
freemius/languages/freemius-it_IT.po CHANGED
@@ -1,23 +1,28 @@
1
- #
 
2
  # Translators:
3
- # Alessandro Benassi <plasmax@gmail.com>, 2016
4
  # Daniele Scasciafratte Mte90 <mte90net@gmail.com>, 2015
5
- # Vova Feldman <vova@freemius.com>, 2015
 
6
  msgid ""
7
  msgstr ""
8
  "Project-Id-Version: WordPress SDK\n"
9
- "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: \n"
11
- "PO-Revision-Date: 2016-09-13 08:22+0000\n"
12
- "Last-Translator: Alessandro Benassi <plasmax@gmail.com>\n"
13
  "Language-Team: Italian (Italy) (http://www.transifex.com/freemius/wordpress-sdk/language/it_IT/)\n"
 
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
- "Content-Transfer-Encoding: \n"
16
  "Language: it_IT\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 
 
 
 
18
 
19
- # Copyright (C) 2016 freemius
20
- # This file is distributed under the same license as the freemius package.
21
  #: includes/i18n.php41, includes/i18n.php:55
22
  msgid "Yes - I'm in!"
23
  msgstr "Sì, ci sto!"
@@ -135,411 +140,421 @@ msgid "Edit"
135
  msgstr "Modifica"
136
 
137
  #: includes/i18n.php:119
 
 
 
 
 
138
  msgid "Date"
139
  msgstr "Data"
140
 
141
- #: includes/i18n.php:121
142
  msgid "Amount"
143
  msgstr "Importo"
144
 
145
- #: includes/i18n.php:123
146
  msgid "Invoice"
147
  msgstr "Fattura"
148
 
149
- #: includes/i18n.php:125
150
  msgid "Billing"
151
  msgstr "Fatturazione"
152
 
153
- #: includes/i18n.php:127
154
  msgid "Payments"
155
  msgstr "Pagamenti"
156
 
157
- #: includes/i18n.php:129
158
  msgid "Delete Account"
159
  msgstr "Elimina Account"
160
 
161
- #: includes/i18n.php:131
162
  msgctxt "as close a window"
163
  msgid "Dismiss"
164
  msgstr "Chiudi"
165
 
166
- #: includes/i18n.php:133
167
  msgctxt "as product pricing plan"
168
  msgid "Plan"
169
  msgstr "Piano"
170
 
171
- #: includes/i18n.php:135
172
  msgid "Change Plan"
173
  msgstr "Cambia piano"
174
 
175
- #: includes/i18n.php:137
176
  msgctxt "as download professional version"
177
  msgid "Download %s Version"
178
  msgstr "Scarica la versione %s"
179
 
180
- #: includes/i18n.php:139
181
  msgctxt "as download professional version now"
182
  msgid "Download %s version now"
183
  msgstr "Scarica la versione %s ora"
184
 
185
- #: includes/i18n.php:141
186
  msgctxt "as download latest version"
187
  msgid "Download Latest"
188
  msgstr "Scarica l'ultima versione"
189
 
190
- #: includes/i18n.php:143
191
  msgctxt "E.g. you have a professional license."
192
  msgid "You have a %s license."
193
  msgstr "Hai la licenza %s."
194
 
195
- #: includes/i18n.php:145
196
  msgid "New"
197
  msgstr "Nuovo"
198
 
199
- #: includes/i18n.php:147
200
  msgid "Free"
201
  msgstr "Gratuito"
202
 
203
- #: includes/i18n.php:149
204
  msgctxt "as trial plan"
205
  msgid "Trial"
206
  msgstr "Prova gratuita"
207
 
208
- #: includes/i18n.php:151
 
 
 
 
 
209
  msgctxt "verb"
210
  msgid "Purchase"
211
  msgstr "Acquisto"
212
 
213
- #: includes/i18n.php:153
214
  msgid "Purchase License"
215
  msgstr "Acquista licenza"
216
 
217
- #: includes/i18n.php:155
218
  msgctxt "verb"
219
  msgid "Buy"
220
  msgstr "Compra"
221
 
222
- #: includes/i18n.php:157
223
  msgid "Buy License"
224
  msgstr "Compra licenza"
225
 
226
- #: includes/i18n.php:159
227
  msgid "Single Site License"
228
  msgstr "Licenza per sito singolo"
229
 
230
- #: includes/i18n.php:161
231
  msgid "Unlimited Licenses"
232
  msgstr "Licenze illimitate"
233
 
234
- #: includes/i18n.php:163
235
  msgid "Up to %s Sites"
236
  msgstr "Fino a %s siti"
237
 
238
- #: includes/i18n.php:165
239
  msgid "%sRenew your license now%s to access version %s features and support."
240
  msgstr "%sRinnova la tua licenza ora%s per accedere a funzionalità e supporto della versione %s."
241
 
242
- #: includes/i18n.php:167
243
  msgid ""
244
  "Enter the email address you've used for the upgrade below and we will resend"
245
  " you the license key."
246
  msgstr "Inserisci qui sotto l'indirizzo email che hai usato per registrare l'aggiornamento e ti invieremo di nuovo la chiave di licenza."
247
 
248
- #: includes/i18n.php:169
249
  msgctxt "e.g. Professional Plan"
250
  msgid "%s Plan"
251
  msgstr "Piano %s"
252
 
253
- #: includes/i18n.php:171
254
  msgid "You are just one step away - %s"
255
  msgstr "Sei a un passo dalla fine - %s"
256
 
257
- #: includes/i18n.php:173
258
  msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
259
  msgid "Complete \"%s\" Activation Now"
260
  msgstr "Completa l'attivazione di \"%s\" ora"
261
 
262
- #: includes/i18n.php:175
263
  msgid "We made a few tweaks to the plugin, %s"
264
  msgstr "Abbiamo apportato alcune modifiche al plugin, %s"
265
 
266
- #: includes/i18n.php:177
267
  msgid "Opt-in to make \"%s\" Better!"
268
  msgstr "Contribuisci a rendere \"%s\" migliore!"
269
 
270
- #: includes/i18n.php:179
271
  msgid "Error"
272
  msgstr "Errore"
273
 
274
- #: includes/i18n.php:181
275
  msgid ""
276
  "Freemius SDK couldn't find the plugin's main file. Please contact "
277
  "sdk@freemius.com with the current error."
278
  msgstr "L'SDK di Freemius non è riuscito a trovare il file principale del plugin. Per favore contatta sdk@freemius.com riportando l'errore."
279
 
280
- #: includes/i18n.php:187
281
  msgctxt "as expiration date"
282
  msgid "Expiration"
283
  msgstr "Scadenza"
284
 
285
- #: includes/i18n.php:189
286
  msgctxt "as software license"
287
  msgid "License"
288
  msgstr "Licenza"
289
 
290
- #: includes/i18n.php:191
291
  msgid "not verified"
292
  msgstr "non verificato"
293
 
294
- #: includes/i18n.php:193
295
  msgid "Verify Email"
296
  msgstr "Verifica email"
297
 
298
- #: includes/i18n.php:195
299
  msgctxt "e.g. expires in 2 months"
300
  msgid "Expires in %s"
301
  msgstr "Scade in %s"
302
 
303
- #: includes/i18n.php:197
304
  msgctxt "e.g. auto renews in 2 months"
305
  msgid "Auto renews in %s"
306
  msgstr "Rinnovo automatico in %s"
307
 
308
- #: includes/i18n.php:199
309
  msgid "No expiration"
310
  msgstr "Nessuna scadenza"
311
 
312
- #: includes/i18n.php:201
313
  msgid "Expired"
314
  msgstr "Scaduto"
315
 
316
- #: includes/i18n.php:203
317
  msgid "Cancelled"
318
  msgstr "Annullato"
319
 
320
- #: includes/i18n.php:205
321
  msgctxt "e.g. In 2 hours"
322
  msgid "In %s"
323
  msgstr "In %s"
324
 
325
- #: includes/i18n.php:207
326
  msgctxt "e.g. 2 min ago"
327
  msgid "%s ago"
328
  msgstr "%s fa"
329
 
330
- #: includes/i18n.php:209
331
  msgctxt "as plugin version"
332
  msgid "Version"
333
  msgstr "Versione"
334
 
335
- #: includes/i18n.php:211
336
  msgid "Name"
337
  msgstr "Nome"
338
 
339
- #: includes/i18n.php:213
340
  msgid "Email"
341
  msgstr "Email"
342
 
343
- #: includes/i18n.php:215
344
  msgid "Email address"
345
  msgstr "Indirizzo email"
346
 
347
- #: includes/i18n.php:217
348
  msgid "Verified"
349
  msgstr "Verificato"
350
 
351
- #: includes/i18n.php:219
352
  msgid "Plugin"
353
  msgstr "Plugin"
354
 
355
- #: includes/i18n.php:221
356
  msgid "Plugins"
357
  msgstr "Plugin"
358
 
359
- #: includes/i18n.php:223
360
  msgid "Themes"
361
  msgstr "Temi"
362
 
363
- #: includes/i18n.php:225
364
  msgctxt "as file/folder path"
365
  msgid "Path"
366
  msgstr "Percorso"
367
 
368
- #: includes/i18n.php:227
369
  msgid "Title"
370
  msgstr "Titolo"
371
 
372
- #: includes/i18n.php:229
373
  msgid "Free version"
374
  msgstr "Versione gratuita"
375
 
376
- #: includes/i18n.php:231
377
  msgid "Premium version"
378
  msgstr "Versione premium"
379
 
380
- #: includes/i18n.php:233
381
  msgctxt "as WP plugin slug"
382
  msgid "Slug"
383
  msgstr "Slug"
384
 
385
- #: includes/i18n.php:235
386
  msgid "ID"
387
  msgstr "ID"
388
 
389
- #: includes/i18n.php:237
390
  msgid "Users"
391
  msgstr "Utenti"
392
 
393
- #: includes/i18n.php:239
394
  msgid "Plugin Installs"
395
  msgstr "Installazioni Plugin"
396
 
397
- #: includes/i18n.php:241
398
  msgctxt "like websites"
399
  msgid "Sites"
400
  msgstr "Siti"
401
 
402
- #: includes/i18n.php:243
403
  msgid "User ID"
404
  msgstr "ID utente"
405
 
406
- #: includes/i18n.php:245
407
  msgid "Site ID"
408
  msgstr "ID del sito"
409
 
410
- #: includes/i18n.php:247
411
  msgid "Public Key"
412
  msgstr "Chiave pubblica"
413
 
414
- #: includes/i18n.php:249
415
  msgid "Secret Key"
416
  msgstr "Chiave segreta"
417
 
418
- #: includes/i18n.php:251
419
  msgctxt "as secret encryption key missing"
420
  msgid "No Secret"
421
  msgstr "Nessuna chiave"
422
 
423
- #: includes/i18n.php:253
424
  msgid "No ID"
425
  msgstr "Nessun ID"
426
 
427
- #: includes/i18n.php:255
428
  msgctxt "as synchronize license"
429
  msgid "Sync License"
430
  msgstr "Sincronizza la licenza"
431
 
432
- #: includes/i18n.php:257
433
  msgctxt "as synchronize"
434
  msgid "Sync"
435
  msgstr "Sincronizza"
436
 
437
- #: includes/i18n.php:259
438
  msgid "Activate License"
439
  msgstr "Attiva licenza"
440
 
441
- #: includes/i18n.php:261
442
  msgid "Activate Free Version"
443
  msgstr "Attiva versione gratuita"
444
 
445
- #: includes/i18n.php:263
446
  msgid ""
447
  "Please enter the license key that you received in the email right after the "
448
  "purchase:"
449
  msgstr "Per favore inserisci la chiave di licenza che hai ricevuto via mail subito dopo l'acquisto:"
450
 
451
- #: includes/i18n.php:265
452
  msgid "Activating license..."
453
  msgstr "Sto attivando la licenza..."
454
 
455
- #: includes/i18n.php:267
456
  msgid "Change License"
457
  msgstr "Cambia licenza"
458
 
459
- #: includes/i18n.php:269
460
  msgid "Update License"
461
  msgstr "Aggiorna licenza"
462
 
463
- #: includes/i18n.php:271
464
  msgid "Deactivate License"
465
  msgstr "Disattiva licenza"
466
 
467
- #: includes/i18n.php:273
468
  msgid "Activate"
469
  msgstr "Attiva"
470
 
471
- #: includes/i18n.php:275
472
  msgid "Deactivate"
473
  msgstr "Disattiva"
474
 
475
- #: includes/i18n.php:277
476
  msgid "Skip & Deactivate"
477
  msgstr "Salta e disattiva"
478
 
479
- #: includes/i18n.php:279
480
  msgid "No - just deactivate"
481
  msgstr "No - disattiva e basta"
482
 
483
- #: includes/i18n.php:281
484
  msgid "Yes - do your thing"
485
  msgstr "Sì - fai pure"
486
 
487
- #: includes/i18n.php:283
488
  msgctxt "active mode"
489
  msgid "Active"
490
  msgstr "Attiva"
491
 
492
- #: includes/i18n.php:285
493
  msgctxt "is active mode?"
494
  msgid "Is Active"
495
  msgstr "è attiva"
496
 
497
- #: includes/i18n.php:287
498
  msgid "Install Now"
499
  msgstr "Installa ora"
500
 
501
- #: includes/i18n.php:289
502
  msgid "Install Update Now"
503
  msgstr "Installa l'aggiornamento ora"
504
 
505
- #: includes/i18n.php:291
506
  msgid "More information about %s"
507
  msgstr "Ulteriori informazioni su %s"
508
 
509
- #: includes/i18n.php:293
510
  msgid "Localhost"
511
  msgstr "Localhost"
512
 
513
- #: includes/i18n.php:295
514
  msgctxt "as activate Professional plan"
515
  msgid "Activate %s Plan"
516
  msgstr "Attivare il piano %s"
517
 
518
- #: includes/i18n.php:297
519
  msgctxt "as 5 licenses left"
520
  msgid "%s left"
521
  msgstr "%s rimanenti"
522
 
523
- #: includes/i18n.php:299
524
  msgid "Last license"
525
  msgstr "Ultima licenza"
526
 
527
- #: includes/i18n.php:301
528
  msgid "What is your %s?"
529
  msgstr "Qual è il tuo %s?"
530
 
531
- #: includes/i18n.php:303
532
  msgid "Activate this add-on"
533
  msgstr "Attivare questo addon"
534
 
535
- #: includes/i18n.php:305
536
  msgid ""
537
  "Deactivating your license will block all premium features, but will enable "
538
  "you to activate the license on another site. Are you sure you want to "
539
  "proceed?"
540
  msgstr "La disattivazione della licenza bloccherà tutte le funzionalità premium, ma vi permetterà di attivare la licenza su un altro sito. Sei sicuro di voler procedere?"
541
 
542
- #: includes/i18n.php:307
543
  msgid ""
544
  "Deleting the account will automatically deactivate your %s plan license so "
545
  "you can use it on other sites. If you want to terminate the recurring "
@@ -547,868 +562,941 @@ msgid ""
547
  "account. Are you sure you would like to continue with the deletion?"
548
  msgstr "L'eliminazione dell'account disattiva automaticamente la tua licenza del piano %s quindi è possibile utilizzarlo su altri siti. Se si desidera anche terminare i pagamenti ricorrenti, fare clic sul pulsante \"Annulla\" ed effettuare il \"Downgrade\" del tuo account. Sei sicuro di voler continuare con l'eliminazione?"
549
 
550
- #: includes/i18n.php:309
551
  msgid ""
552
  "Deletion is not temporary. Only delete if you no longer want to use this "
553
  "plugin anymore. Are you sure you would like to continue with the deletion?"
554
  msgstr "L'eliminazione non è temporanea. Cancella solo se non si desidera più utilizzare questo plugin. Sei sicuro di voler continuare con l'eliminazione?"
555
 
556
- #: includes/i18n.php:311
557
  msgid ""
558
  "Downgrading your plan will immediately stop all future recurring payments "
559
  "and your %s plan license will expire in %s."
560
  msgstr "Effettuare il downgrade del piano interromperà immediatamente tutti i futuri pagamenti ricorrenti e la licenza del piano %s scadrà in %s."
561
 
562
- #: includes/i18n.php:313
563
  msgid ""
564
  "Cancelling the trial will immediately block access to all premium features. "
565
  "Are you sure?"
566
  msgstr "Cancellando il periodo di prova gratuito bloccherai immediatamente l'accesso a tutte le funzionalità premium. Vuoi continuare?"
567
 
568
- #: includes/i18n.php:315
569
  msgid ""
570
  "You can still enjoy all %s features but you will not have access to plugin "
571
  "updates and support."
572
  msgstr "Puoi ancora sfruttare tutte le funzionalità di %s, ma non avrai accesso al supporto ed agli aggiornamenti del plugin."
573
 
574
- #: includes/i18n.php:317
575
  msgid ""
576
  "Once your license expire you can still use the Free version but you will NOT"
577
  " have access to the %s features."
578
  msgstr "Una volta scaduta la licenza, sarà possibile ancora utilizzare la versione gratuita ma non avrete accesso alle funzionalità di %s."
579
 
580
- #: includes/i18n.php:319
581
  msgid "Are you sure you want to proceed?"
582
  msgstr "Sei sicuro di voler procedere?"
583
 
584
- #: includes/i18n.php:325
585
  msgid "Add Ons for %s"
586
  msgstr "Add-on per %s"
587
 
588
- #: includes/i18n.php:327
589
  msgid ""
590
  "We could'nt load the add-ons list. It's probably an issue on our side, "
591
  "please try to come back in few minutes."
592
  msgstr "Non siamo riusciti a caricare la lista degli add-on. Si tratta probabilmente di un problema nel nostro sistema, per favore riprova tra qualche minuto."
593
 
594
- #: includes/i18n.php:331
595
  msgid "Anonymous feedback"
596
  msgstr "Feedback anonimo"
597
 
598
- #: includes/i18n.php:333
599
  msgid "Quick feedback"
600
  msgstr "Feedback veloce"
601
 
602
- #: includes/i18n.php:335
603
  msgid "If you have a moment, please let us know why you are deactivating"
604
  msgstr "Se hai un momento, potresti dirci perché lo hai disattivato?"
605
 
606
- #: includes/i18n.php:337
607
  msgid "Yes - Deactivate"
608
  msgstr "Si - Disattiva"
609
 
610
- #: includes/i18n.php:339
611
  msgid "Submit & Deactivate"
612
  msgstr "Invia & Disattiva"
613
 
614
- #: includes/i18n.php:341
615
- msgctxt "the text of the cancel button of the plugin deactivation dialog box."
616
  msgid "Cancel"
617
- msgstr "Cancella"
618
 
619
- #: includes/i18n.php:343
620
  msgid "I no longer need the plugin"
621
  msgstr "Non ho piú bisogno di questo plugin"
622
 
623
- #: includes/i18n.php:345
624
  msgid "I found a better plugin"
625
  msgstr "Ho trovato un plugin migliore"
626
 
627
- #: includes/i18n.php:347
628
  msgid "I only needed the plugin for a short period"
629
  msgstr "Avevo bisogno del plugin solo per un breve periodo"
630
 
631
- #: includes/i18n.php:349
632
  msgid "The plugin broke my site"
633
  msgstr "Il plugin ha causato problemi al mio sito"
634
 
635
- #: includes/i18n.php:351
636
  msgid "The plugin suddenly stopped working"
637
  msgstr "Il plugin ha smesso di funzionare"
638
 
639
- #: includes/i18n.php:353
640
  msgid "I can't pay for it anymore"
641
  msgstr "Non posso piú pagarlo"
642
 
643
- #: includes/i18n.php:355
644
  msgid "It's a temporary deactivation. I'm just debugging an issue."
645
  msgstr "È una disattivazione temporanea. Sto solo cercando di risolvere un problema."
646
 
647
- #: includes/i18n.php:357
648
  msgctxt ""
649
  "the text of the \"other\" reason for deactivating the plugin that is shown "
650
  "in the modal box."
651
  msgid "Other"
652
  msgstr "Altro"
653
 
654
- #: includes/i18n.php:359
655
  msgid "Kindly tell us the reason so we can improve."
656
  msgstr "Spiegandoci il motivo ci aiuterai a migliorare."
657
 
658
- #: includes/i18n.php:361
659
  msgid "What's the plugin's name?"
660
  msgstr "Qual è il nome del plugin?"
661
 
662
- #: includes/i18n.php:363
663
  msgid "What price would you feel comfortable paying?"
664
  msgstr "Che prezzo ritieni opportuno pagare?"
665
 
666
- #: includes/i18n.php:365
667
  msgid "I couldn't understand how to make it work"
668
  msgstr "Non capisco come farlo funzionare"
669
 
670
- #: includes/i18n.php:367
671
  msgid ""
672
  "The plugin is great, but I need specific feature that you don't support"
673
  msgstr "Il plugin é ottimo ma ho bisogno di una funzionalitá specifica che non é supportata"
674
 
675
- #: includes/i18n.php:369
676
  msgid "The plugin is not working"
677
  msgstr "Il plugin non funziona"
678
 
679
- #: includes/i18n.php:371
680
  msgid "It's not what I was looking for"
681
  msgstr "Non é quello che stavo cercando"
682
 
683
- #: includes/i18n.php:373
684
  msgid "The plugin didn't work as expected"
685
  msgstr "Il plugin non funziona come mi aspettavo"
686
 
687
- #: includes/i18n.php:375
688
  msgid "What feature?"
689
  msgstr "Quale funzionalitá?"
690
 
691
- #: includes/i18n.php:377
692
  msgid "Kindly share what didn't work so we can fix it for future users..."
693
  msgstr "Condividi cosa non ha funzionato in modo da migliorare il prodotto per gli utenti futuri..."
694
 
695
- #: includes/i18n.php:379
696
  msgid "What you've been looking for?"
697
  msgstr "Che cosa stai cercando?"
698
 
699
- #: includes/i18n.php:381
700
  msgid "What did you expect?"
701
  msgstr "Che cosa ti aspettavi?"
702
 
703
- #: includes/i18n.php:383
704
  msgid "The plugin didn't work"
705
  msgstr "Il plugin non funziona"
706
 
707
- #: includes/i18n.php:385
708
  msgid "I don't like to share my information with you"
709
  msgstr "Non voglio condividere i miei dati con te"
710
 
711
- #: includes/i18n.php:387
712
  msgid ""
713
  "You might have missed it, but you don't have to share any data and can just "
714
  "%s the opt-in."
715
  msgstr "Potresti non averci fatto caso, ma non sei obbligato a condividere i tuoi dati e puoi semplicemente %s la tua partecipazione."
716
 
717
- #: includes/i18n.php:395
718
  msgctxt "greeting"
719
  msgid "Hey %s,"
720
  msgstr "Hey %s,"
721
 
722
- #: includes/i18n.php:397
723
  msgctxt "a greeting. E.g. Thanks John!"
724
  msgid "Thanks %s!"
725
  msgstr "Grazie %s!"
726
 
727
- #: includes/i18n.php:399
728
  msgid ""
729
- "In order to enjoy all our features and functionality, %s needs to connect "
730
- "your user, %s at %s, to %s"
731
- msgstr "Per poter sfruttare tutte le caratteristiche e funzionalità, %s deve connettere il tuo utente, %s a %s su %s"
732
 
733
- #: includes/i18n.php:401
734
  msgid ""
735
- "Please help us improve %2$s! If you opt-in, some data about your usage of "
736
- "%2$s will be sent to %5$s. If you skip this, that's okay! %2$s will still "
737
  "work just fine."
738
- msgstr "Per favore aiutaci a migliorare %2$s! Se decidi di contribuire, alcuni dei tuoi dati di utilizzo inerenti a %2$s verranno inviati a %5$s. Se salti questo passaggio, non c'è problema! %2$s funzionerà comunque perfettamente."
739
 
740
- #: includes/i18n.php:403
741
  msgid ""
742
  "You should receive an activation email for %s to your mailbox at %s. Please "
743
- "make sure you click the activation button in that email to complete the "
744
- "install."
745
- msgstr "Dovresti ricevere un'email di attivazione di %s all'indirizzo %s. Assicurati di fare clic sul pulsante di attivazione nell'email per completare l'installazione."
746
 
747
- #: includes/i18n.php:405
 
 
 
 
 
 
 
 
748
  msgid ""
749
  "Thanks for purchasing %s! To get started, please enter your license key:"
750
  msgstr "Grazie per aver acquistato %s! Per iniziare, per favore inserisci la tua chiave di licenza:"
751
 
752
- #: includes/i18n.php:407
753
  msgid ""
754
  "The plugin will be periodically sending data to %s to check for plugin "
755
  "updates and verify the validity of your license."
756
  msgstr "Il plugin invierà dati periodicamente a %s per controllare l'esistenza di aggiornamenti e verificare la validità della tua licenza."
757
 
758
- #: includes/i18n.php:409
759
  msgid "What permissions are being granted?"
760
  msgstr "Quali autorizzazioni vengono concesse?"
761
 
762
- #: includes/i18n.php:411
763
  msgid "Your Profile Overview"
764
  msgstr "Panoramica del tuo profilo"
765
 
766
- #: includes/i18n.php:413
767
  msgid "Name and email address"
768
  msgstr "Nome ed indirizzo email"
769
 
770
- #: includes/i18n.php:415
771
  msgid "Your Site Overview"
772
  msgstr "Panoramica del tuo sito"
773
 
774
- #: includes/i18n.php:417
775
  msgid "Site URL, WP version, PHP info, plugins & themes"
776
  msgstr "URL del sito, versione di WP, informazioni PHP, plugin e temi"
777
 
778
- #: includes/i18n.php:419
779
  msgid "Current Plugin Events"
780
  msgstr "Eventi correnti del plugin"
781
 
782
- #: includes/i18n.php:421
783
  msgid "Activation, deactivation and uninstall"
784
  msgstr "Attiva, disattivazione e disinstallazione"
785
 
786
- #: includes/i18n.php:423
787
  msgid "Plugins & Themes"
788
  msgstr "Plugin e temi"
789
 
790
- #: includes/i18n.php:425
791
  msgid "Titles, versions and state."
792
  msgstr "Titoli, versioni e stato."
793
 
794
- #: includes/i18n.php:427
 
 
 
 
795
  msgid "Newsletter"
796
  msgstr "Newsletter"
797
 
798
- #: includes/i18n.php:429
799
  msgid "Updates, announcements, marketing, no spam"
800
  msgstr "Aggiornamenti, annunci, marketing, no spam"
801
 
802
- #: includes/i18n.php:431
803
  msgid "Privacy Policy"
804
  msgstr "Politica sulla privacy"
805
 
806
- #: includes/i18n.php:433
807
  msgid "Terms of Service"
808
  msgstr "Termini del Servizio"
809
 
810
- #: includes/i18n.php:435
811
  msgctxt "as activating plugin"
812
  msgid "Activating"
813
  msgstr "Attivazione"
814
 
815
- #: includes/i18n.php:437
816
  msgctxt "as in the process of sending an email"
817
  msgid "Sending email"
818
  msgstr "Invio email"
819
 
820
- #: includes/i18n.php:439
821
  msgctxt "button label"
822
  msgid "Allow & Continue"
823
  msgstr "Consenti & Continua"
824
 
825
- #: includes/i18n.php:441
826
  msgctxt "button label"
827
  msgid "Agree & Activate License"
828
  msgstr "Accetta e attiva la licenza"
829
 
830
- #: includes/i18n.php:443
831
  msgctxt "verb"
832
  msgid "Skip"
833
  msgstr "Salta"
834
 
835
- #: includes/i18n.php:445
836
  msgid "Click here to use the plugin anonymously"
837
  msgstr "Fai clic qui per usare il plugin anonimamente"
838
 
839
- #: includes/i18n.php:447
840
  msgid "Re-send activation email"
841
  msgstr "Invia nuovamente l'email di attivazione"
842
 
843
- #: includes/i18n.php:449
844
  msgid "License key"
845
  msgstr "Chiave di licenza"
846
 
847
- #: includes/i18n.php:451
848
  msgid "Send License Key"
849
  msgstr "Invia chiave di licenza"
850
 
851
- #: includes/i18n.php:453
852
  msgid "Sending license key"
853
  msgstr "Invio chiave di licenza"
854
 
855
- #: includes/i18n.php:455
856
  msgid "Have a license key?"
857
  msgstr "Hai una chiave di licenza?"
858
 
859
- #: includes/i18n.php:457
860
  msgid "Don't have a license key?"
861
  msgstr "Non hai una chiave di licenza?"
862
 
863
- #: includes/i18n.php:459
864
  msgid "Can't find your license key?"
865
  msgstr "Non trovi la tua chiave di licenza?"
866
 
867
- #: includes/i18n.php:471
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
868
  msgid "Screenshots"
869
  msgstr "Screenshots"
870
 
871
- #: includes/i18n.php:473
872
  msgid "Click to view full-size screenshot %d"
873
  msgstr "Fare clic per visualizzare lo screenshot in grandi dimensioni %d"
874
 
875
- #: includes/i18n.php:481
876
  msgid "Freemius Debug"
877
  msgstr "Debug Freemius"
878
 
879
- #: includes/i18n.php:483
880
  msgctxt "as turned on"
881
  msgid "On"
882
  msgstr "Attivo"
883
 
884
- #: includes/i18n.php:485
885
  msgctxt "as turned off"
886
  msgid "Off"
887
  msgstr "Non attivo"
888
 
889
- #: includes/i18n.php:487
890
  msgctxt "as code debugging"
891
  msgid "Debugging"
892
  msgstr "Debugging"
893
 
894
- #: includes/i18n.php:489
895
  msgid "Freemius State"
896
  msgstr "Stato di Freemius"
897
 
898
- #: includes/i18n.php:491
899
  msgctxt "as connection was successful"
900
  msgid "Connected"
901
  msgstr "Connesso"
902
 
903
- #: includes/i18n.php:493
904
  msgctxt "as connection blocked"
905
  msgid "Blocked"
906
  msgstr "Bloccato"
907
 
908
- #: includes/i18n.php:495
909
  msgctxt "as application program interface"
910
  msgid "API"
911
  msgstr "API"
912
 
913
- #: includes/i18n.php:497
914
  msgctxt "as software development kit versions"
915
  msgid "SDK"
916
  msgstr "SDK"
917
 
918
- #: includes/i18n.php:499
919
  msgctxt "as software development kit versions"
920
  msgid "SDK Versions"
921
  msgstr "Versioni SDK"
922
 
923
- #: includes/i18n.php:501
924
  msgctxt "as plugin folder path"
925
  msgid "Plugin Path"
926
  msgstr "Percorso del plugin"
927
 
928
- #: includes/i18n.php:503
929
  msgctxt "as sdk path"
930
  msgid "SDK Path"
931
  msgstr "Percorso SDK"
932
 
933
- #: includes/i18n.php:505
934
  msgid "Add Ons of Plugin %s"
935
  msgstr "Add-on del Plugin %s"
936
 
937
- #: includes/i18n.php:507
938
  msgid "Are you sure you want to delete all Freemius data?"
939
  msgstr "Sei sicuro di voler eliminare tutti i dati di Freemius?"
940
 
941
- #: includes/i18n.php:509
942
  msgid "Actions"
943
  msgstr "Azioni"
944
 
945
- #: includes/i18n.php:511
946
  msgid "Delete All Accounts"
947
  msgstr "Eliminare tutti gli account"
948
 
949
- #: includes/i18n.php:513
950
  msgid "Start Fresh"
951
  msgstr "Inizia da capo"
952
 
953
- #: includes/i18n.php:515
954
  msgid "Clear API Cache"
955
  msgstr "Elimina cache API"
956
 
957
- #: includes/i18n.php:517
958
  msgid "Sync Data From Server"
959
  msgstr "Sincronizza i dati dal server"
960
 
961
- #: includes/i18n.php:519
962
  msgid "Scheduled Crons"
963
  msgstr "Azioni programmate"
964
 
965
- #: includes/i18n.php:521
966
  msgid "Plugins & Themes Sync"
967
  msgstr "Sincronizzazione plugin e temi"
968
 
969
- #: includes/i18n.php:529
970
  msgctxt "as congratulations"
971
  msgid "Congrats"
972
  msgstr "Congratulazioni"
973
 
974
- #: includes/i18n.php:531
975
  msgctxt "exclamation"
976
  msgid "Oops"
977
  msgstr "Ops"
978
 
979
- #: includes/i18n.php:533
980
  msgctxt "interjection expressing joy or exuberance"
981
  msgid "Yee-haw"
982
  msgstr "Evvai"
983
 
984
- #: includes/i18n.php:535
985
  msgctxt ""
986
  "(especially in electronic communication) used to express elation, "
987
  "enthusiasm, or triumph."
988
  msgid "W00t"
989
  msgstr "Forte"
990
 
991
- #: includes/i18n.php:537
992
  msgctxt "a positive response"
993
  msgid "Right on"
994
  msgstr "Sì"
995
 
996
- #: includes/i18n.php:539
997
  msgctxt ""
998
  "something somebody says when they are thinking about what you have just "
999
  "said. "
1000
  msgid "Hmm"
1001
  msgstr "Uhm"
1002
 
1003
- #: includes/i18n.php:541
1004
  msgid "O.K"
1005
  msgstr "OK"
1006
 
1007
- #: includes/i18n.php:543
1008
  msgctxt "exclamation"
1009
  msgid "Hey"
1010
  msgstr "Hey"
1011
 
1012
- #: includes/i18n.php:545
1013
  msgctxt "advance notice of something that will need attention."
1014
  msgid "Heads up"
1015
  msgstr "Attenzione"
1016
 
1017
- #: includes/i18n.php:553
1018
  msgid "Seems like you got the latest release."
1019
  msgstr "Sembra che tu abbia la versione più recente."
1020
 
1021
- #: includes/i18n.php:555
1022
  msgid "You are all good!"
1023
  msgstr "Sei fantastico!"
1024
 
1025
- #: includes/i18n.php:557
1026
  msgid ""
1027
  "Sorry, we could not complete the email update. Another user with the same "
1028
  "email is already registered."
1029
  msgstr "Siamo spiacenti, non siamo riusciti a completare l'aggiornamento via email. Un altro utente con lo stesso indirizzo email è già registrato."
1030
 
1031
- #: includes/i18n.php:559
1032
  msgid ""
1033
  "If you would like to give up the ownership of the plugin's account to %s "
1034
  "click the Change Ownership button."
1035
  msgstr "Se vuoi cedere la proprietá dell'account del plugin a %s clicca su Cambia Proprietà."
1036
 
1037
- #: includes/i18n.php:561
1038
  msgid ""
1039
  "Your email was successfully updated. You should receive an email with "
1040
  "confirmation instructions in few moments."
1041
  msgstr "Il tuo indirizzo email è stato aggiornato correttamente. Riceverai un'email con le istruzioni di conferma in pochi istanti."
1042
 
1043
- #: includes/i18n.php:563
1044
  msgid "Your name was successfully updated."
1045
  msgstr "Il tuo nome è stato aggiornato correttamente."
1046
 
1047
- #: includes/i18n.php:565
1048
  msgid "You have successfully updated your %s."
1049
  msgstr "Hai aggiornato con successo il tuo %s."
1050
 
1051
- #: includes/i18n.php:567
1052
  msgid "Please provide your full name."
1053
  msgstr "Per favore inserisci il tuo nome completo."
1054
 
1055
- #: includes/i18n.php:569
1056
  msgid ""
1057
  "Verification mail was just sent to %s. If you can't find it after 5 min, "
1058
  "please check your spam box."
1059
  msgstr "L'email di verifica è stata inviata a %s. Se dopo 5 minuti non è ancora arrivata, per favore controlla nella tua casella di posta indesiderata."
1060
 
1061
- #: includes/i18n.php:571
1062
  msgid ""
1063
  "Just letting you know that the add-ons information of %s is being pulled "
1064
  "from an external server."
1065
  msgstr "Le informazioni sugli add-on di %s vengono scaricate da un server esterno."
1066
 
1067
- #: includes/i18n.php:573
1068
  msgid "No credit card required"
1069
  msgstr "Nessuna carta di credito richiesta"
1070
 
1071
- #: includes/i18n.php:575
1072
  msgid "Premium plugin version was successfully activated."
1073
  msgstr "La versione Premium del plugin è stata attivata correttamente."
1074
 
1075
- #: includes/i18n.php:577
1076
  msgid "The upgrade of %s was successfully completed."
1077
  msgstr "L'aggiornamento di %s è stato completato con successo."
1078
 
1079
- #: includes/i18n.php:579
1080
  msgid "Your account was successfully activated with the %s plan."
1081
  msgstr "Il tuo account è stato attivato correttamente con il piano %s."
1082
 
1083
- #: includes/i18n.php:581
1084
  msgid "Download the latest %s version now"
1085
  msgstr "Scarica l'ultima versione di %s"
1086
 
1087
- #: includes/i18n.php:583
1088
  msgid "Please follow these steps to complete the upgrade"
1089
  msgstr "Segui i passi seguenti per completare l'aggiornamento"
1090
 
1091
- #: includes/i18n.php:585
1092
  msgid "Download the latest %s version"
1093
  msgstr "Scarica l'ultima versione di %s"
1094
 
1095
- #: includes/i18n.php:587
 
 
 
 
1096
  msgid "Deactivate the free version"
1097
  msgstr "Disattiva la versione gratuita"
1098
 
1099
- #: includes/i18n.php:589
1100
  msgid "Upload and activate the downloaded version"
1101
  msgstr "Carica e attiva la versione scaricata"
1102
 
1103
- #: includes/i18n.php:591
1104
  msgid "How to upload and activate?"
1105
  msgstr "Come faccio a caricare ed attivare?"
1106
 
1107
- #: includes/i18n.php:593
1108
  msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1109
  msgid "%s Add-on was successfully purchased."
1110
  msgstr "L' add-on %s è stato acquistato con successo."
1111
 
1112
- #: includes/i18n.php:595
1113
  msgid "Your %s Add-on plan was successfully upgraded."
1114
  msgstr "Il piano del tuo add-on %s è stato aggiornato con successo."
1115
 
1116
- #: includes/i18n.php:597
1117
  msgid "Your email has been successfully verified - you are AWESOME!"
1118
  msgstr "Il tuo indirizzo email è stato verificato con successo - SEI UN GRANDE!"
1119
 
1120
- #: includes/i18n.php:599
1121
  msgid "Your plan was successfully upgraded."
1122
  msgstr "Il piano è stato aggiornato con successo."
1123
 
1124
- #: includes/i18n.php:601
1125
  msgid "Your plan was successfully changed to %s."
1126
  msgstr "Il piano è stato cambiato con successo a %s."
1127
 
1128
- #: includes/i18n.php:603
1129
  msgid ""
1130
  "Your license has expired. You can still continue using the free plugin "
1131
  "forever."
1132
  msgstr "La licenza è scaduta. È comunque possibile continuare ad utilizzare il plugin gratuito per sempre."
1133
 
1134
- #: includes/i18n.php:605
1135
  msgid ""
1136
  "Your license has been cancelled. If you think it's a mistake, please contact"
1137
  " support."
1138
  msgstr "La tua licenza è stata cancellata. Se credi sia un errore, per favore contatta il supporto."
1139
 
1140
- #: includes/i18n.php:607
1141
  msgid "Your trial has been successfully started."
1142
  msgstr "La versione di prova è stata avviata correttamente."
1143
 
1144
- #: includes/i18n.php:609
1145
  msgid "Your license was successfully activated."
1146
  msgstr "La tua licenza è stata attivata correttamente."
1147
 
1148
- #: includes/i18n.php:611
1149
  msgid "It looks like your site currently doesn't have an active license."
1150
  msgstr "Sembra che il tuo sito non disponga di alcuna licenza attiva."
1151
 
1152
- #: includes/i18n.php:613
1153
  msgid ""
1154
  "Your license was successfully deactivated, you are back to the %s plan."
1155
  msgstr "La tua licenza é stata disattivata con successo, sei tornato al piano %s."
1156
 
1157
- #: includes/i18n.php:615
1158
  msgid "It looks like the license deactivation failed."
1159
  msgstr "Sembra che la disattivazione della licenza non sia riuscita."
1160
 
1161
- #: includes/i18n.php:617
1162
  msgid "It looks like the license could not be activated."
1163
  msgstr "Sembra che la licenza non possa essere attivata."
1164
 
1165
- #: includes/i18n.php:619
1166
  msgid "Error received from the server:"
1167
  msgstr "Errore ricevuto dal server:"
1168
 
1169
- #: includes/i18n.php:621
1170
  msgid ""
1171
  "Your trial has expired. You can still continue using all our free features."
1172
  msgstr "La versione di prova è scaduta. Si può comunque continuare a utilizzare tutte le nostre funzioni gratuite."
1173
 
1174
- #: includes/i18n.php:623
1175
  msgid ""
1176
  "Your plan was successfully downgraded. Your %s plan license will expire in "
1177
  "%s."
1178
  msgstr "Il tuo piano è stato declassato con successo. La licenza del piano %s scadrà in %s."
1179
 
1180
- #: includes/i18n.php:625
1181
  msgid ""
1182
  "Seems like we are having some temporary issue with your plan downgrade. "
1183
  "Please try again in few minutes."
1184
  msgstr "Stiamo avendo qualche problema temporaneo con il downgrade del piano. Riprova tra qualche minuto."
1185
 
1186
- #: includes/i18n.php:627
1187
  msgid ""
1188
  "It looks like you are not in trial mode anymore so there's nothing to cancel"
1189
  " :)"
1190
  msgstr "Sembra che tu non stia più usando la prova gratuita, quindi non c'è niente che tu debba annullare :)"
1191
 
1192
- #: includes/i18n.php:629
1193
  msgid "Your %s free trial was successfully cancelled."
1194
  msgstr "Il tuo periodo di prova gratuito %s è stato annullato con successo."
1195
 
1196
- #: includes/i18n.php:631
1197
  msgctxt "%s - numeric version number"
1198
  msgid "Version %s was released."
1199
  msgstr "La versione %s é stata rilasciata."
1200
 
1201
- #: includes/i18n.php:633
1202
  msgid "Please download %s."
1203
  msgstr "Scarica %s."
1204
 
1205
- #: includes/i18n.php:635
1206
  msgctxt "%s - plan name, as the latest professional version here"
1207
  msgid "the latest %s version here"
1208
  msgstr "l'ultima versione %s é quì"
1209
 
1210
- #: includes/i18n.php:637
1211
  msgid ""
1212
  "How do you like %s so far? Test all our %s premium features with a %d-day "
1213
  "free trial."
1214
  msgstr "Come sta andando con %s? Prova tutte le funzionalità premium di %s con una prova gratuita di %d giorni."
1215
 
1216
- #: includes/i18n.php:639
1217
  msgctxt "call to action"
1218
  msgid "Start free trial"
1219
  msgstr "Inizia il periodo di prova gratuito"
1220
 
1221
- #: includes/i18n.php:641
 
 
 
 
 
 
 
 
1222
  msgid ""
1223
  "Seems like we are having some temporary issue with your trial cancellation. "
1224
  "Please try again in few minutes."
1225
  msgstr "Stiamo avendo qualche problema temporaneo con l'annullamento del periodo di prova. Riprova tra qualche minuto."
1226
 
1227
- #: includes/i18n.php:643
1228
  msgid "You already utilized a trial before."
1229
  msgstr "Hai già utilizzato una prova gratuita in passato."
1230
 
1231
- #: includes/i18n.php:645
1232
  msgid "You are already running the plugin in a trial mode."
1233
  msgstr "Stai già usando il plugin in modalità di prova gratuita."
1234
 
1235
- #: includes/i18n.php:647
1236
  msgid "Plan %s do not exist, therefore, can't start a trial."
1237
  msgstr "Il piano %s non esiste, per questo motivo non è possibile iniziare il periodo di prova."
1238
 
1239
- #: includes/i18n.php:649
1240
  msgid "Plan %s does not support a trial period."
1241
  msgstr "Il piano %s non supporta il periodo di prova."
1242
 
1243
- #: includes/i18n.php:651
1244
  msgid "None of the plugin's plans supports a trial period."
1245
  msgstr "Non esiste alcun piano del plugin che offra il periodo di prova."
1246
 
1247
- #: includes/i18n.php:653
1248
  msgid ""
1249
  "Unexpected API error. Please contact the plugin's author with the following "
1250
  "error."
1251
  msgstr "Errore inaspettato dell'API. Per favore contatta l'autore del plugin riportando il seguente errore."
1252
 
1253
- #: includes/i18n.php:655
1254
  msgid "No commitment for %s days - cancel anytime!"
1255
  msgstr "Nessun impegno per %s giorni - puoi annullare in qualsiasi momento!"
1256
 
1257
- #: includes/i18n.php:657
1258
  msgid ""
1259
  "Your license has expired. You can still continue using all the %s features, "
1260
  "but you'll need to renew your license to continue getting updates and "
1261
  "support."
1262
  msgstr "La licenza è scaduta. È comunque possibile continuare a utilizzare tutte le funzionalità di %s, ma sarà necessario rinnovare la licenza per continuare a ricevere gli aggiornamenti ed il supporto."
1263
 
1264
- #: includes/i18n.php:659
1265
  msgid "Couldn't activate %s."
1266
  msgstr "Non é stato possibile attivare %s."
1267
 
1268
- #: includes/i18n.php:661
1269
  msgid "Please contact us with the following message:"
1270
  msgstr "Contattaci con il seguente messaggio:"
1271
 
1272
- #: includes/i18n.php:663
1273
  msgid ""
1274
  "It looks like you are still on the %s plan. If you did upgrade or change "
1275
  "your plan, it's probably an issue on our side - sorry."
1276
  msgstr "Sembra che tu sia ancora usando il piano %s. Se hai effettuato un upgrade o cambiato il piano, è probabile che ci sia un problema nei nostri sistemi."
1277
 
1278
- #: includes/i18n.php:665
1279
  msgid "Please contact us here"
1280
  msgstr "Contattaci qui"
1281
 
1282
- #: includes/i18n.php:667
1283
  msgid ""
1284
  "I have upgraded my account but when I try to Sync the License, the plan "
1285
  "remains %s."
1286
  msgstr "Ho aggiornato il mio account, ma quando cerco di sincronizzare la licenza, il piano rimane %s."
1287
 
1288
- #: includes/i18n.php:673
1289
  msgid "From unknown reason, the API connectivity test failed."
1290
  msgstr "Il test di connettività dell'API ha fallito per motivi sconosciuti."
1291
 
1292
- #: includes/i18n.php:675
1293
  msgid ""
1294
  "It's probably a temporary issue on our end. Just to be sure, with your "
1295
  "permission, would it be o.k to run another connectivity test?"
1296
  msgstr "Si tratta probabilmente di un problema nei nostri sistemi. Per esserne sicuri, potresti darci il permesso di effettuare un ulteriore test della connettività? "
1297
 
1298
- #: includes/i18n.php:677
1299
  msgid ""
1300
  "We use PHP cURL library for the API calls, which is a very common library "
1301
  "and usually installed out of the box. Unfortunately, cURL is not installed "
1302
  "on your server."
1303
  msgstr "Utilizziamo la libreria PHP cURL per le chiamate alla nostra API. Questa libreria è molto comune ed è installata di base. Sfortunatamente cURL non è presente nel tuo server."
1304
 
1305
- #: includes/i18n.php:679
1306
  msgid ""
1307
  "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1308
  msgstr "Per un motivo sconosciuto, CloudFlare, il firewall che utilizziamo, blocca la connessione."
1309
 
1310
- #: includes/i18n.php:681
1311
  msgctxt "as pluginX requires an access to our API"
1312
  msgid "%s requires an access to our API."
1313
  msgstr "%s richiede un accesso alla nostra API."
1314
 
1315
- #: includes/i18n.php:683
1316
  msgid ""
1317
  "It looks like your server is using Squid ACL (access control lists), which "
1318
  "blocks the connection."
1319
  msgstr "Sembra che il tuo server stia usando Squid ACL (lista per il controllo degli accessi) il quale blocca la connessione."
1320
 
1321
- #: includes/i18n.php:685
1322
  msgid "I don't know what is Squid or ACL, help me!"
1323
  msgstr "Non ho idea di cosa sia Squid o ACL, aiutami!"
1324
 
1325
- #: includes/i18n.php687, includes/i18n.php:695
1326
  msgid ""
1327
  "We'll make sure to contact your hosting company and resolve the issue. You "
1328
  "will get a follow-up email to %s once we have an update."
1329
  msgstr "Contatteremo il tuo hosting e risolveremo il problema. Riceverai un' email a %s non appena ci saranno aggiornamenti."
1330
 
1331
- #: includes/i18n.php:689
1332
  msgid "I'm a system administrator"
1333
  msgstr "Sono un sistemista"
1334
 
1335
- #: includes/i18n.php:691
1336
  msgid ""
1337
  "Great, please whitelist the following domains: %s. Once you done, deactivate"
1338
  " the plugin and activate it again."
1339
  msgstr "Perfetto, aggiungi alla whitelist i seguenti domini: %s. Una volta che hai fatto, disattiva il plugin e attivalo di nuovo."
1340
 
1341
- #: includes/i18n.php:693
1342
  msgid "I don't know what is cURL or how to install it, help me!"
1343
  msgstr "Non ho idea di cosa sia cURL o come installarlo, aiutami!"
1344
 
1345
- #: includes/i18n.php:697
1346
  msgid ""
1347
  "Great, please install cURL and enable it in your php.ini file. To make sure "
1348
  "it was successfully activated, use 'phpinfo()'. Once activated, deactivate "
1349
  "the plugin and reactivate it back again."
1350
  msgstr "Perfetto, installa cURL ed attivalo nel tuo file php.ini. Per essere sicuro di averlo attivato con successo, usa \"phpinfo()\". Una volta attivato disattva il plugin e attivalo di nuovo."
1351
 
1352
- #: includes/i18n.php:699
1353
  msgid ""
1354
  "We are sure it's an issue on our side and more than happy to resolve it for "
1355
  "you ASAP if you give us a chance."
1356
  msgstr "Siamo sicuri che sia un nostro problema e siamo più che felici di risolverlo per te al più presto. Per poter procedere abbiamo bisogno del tuo consenso."
1357
 
1358
- #: includes/i18n.php:701
1359
  msgid ""
1360
  "Sorry for the inconvenience and we are here to help if you give us a chance."
1361
  msgstr "Siamo spiacenti per l'inconveniente e siamo qui per aiutarti con il tuo permesso."
1362
 
1363
- #: includes/i18n.php:703
1364
  msgid "Yes - I'm giving you a chance to fix it"
1365
  msgstr "Sì - sto dandovi la possibilità di risolvere il problema"
1366
 
1367
- #: includes/i18n.php:705
1368
  msgid ""
1369
  "We will do our best to whitelist your server and resolve this issue ASAP. "
1370
  "You will get a follow-up email to %s once we have an update."
1371
  msgstr "Faremo del nostro meglio per mettere il server in whitelist e risolvere il problema il prima possibile. Avrai un aggiornamento dello stato tramite email all'indirizzo %s."
1372
 
1373
- #: includes/i18n.php:707
1374
  msgid "Let's try your previous version"
1375
  msgstr "Proviamo con la versione precedente"
1376
 
1377
- #: includes/i18n.php:709
1378
  msgid "Uninstall this version and install the previous one."
1379
  msgstr "Disinstalla questa versione e installa quella precedente."
1380
 
1381
- #: includes/i18n.php:711
1382
  msgid "That's exhausting, please deactivate"
1383
  msgstr "È estenuante, disattivalo"
1384
 
1385
- #: includes/i18n.php:713
1386
  msgid ""
1387
  "We feel your frustration and sincerely apologize for the inconvenience. Hope"
1388
  " to see you again in the future."
1389
  msgstr "Capiamo la tua frustrazione e ci scusiamo per l'inconveniente. Speriamo di rivederti nuovamente in futuro."
1390
 
1391
- #: includes/i18n.php:715
1392
  msgid ""
1393
  "Thank for giving us the chance to fix it! A message was just sent to our "
1394
  "technical staff. We will get back to you as soon as we have an update to %s."
1395
  " Appreciate your patience."
1396
  msgstr "Grazie per averci dato la possibilità di risolvere il problema! È stato appena inviato un messaggio al nostro staff tecnico. Ti risponderemo non appena avremo un aggiornamento riguardante %s. Grazie per la tua pazienza."
1397
 
1398
- #: includes/i18n.php:717
1399
  msgctxt "%1s - plugin title, %2s - API domain"
1400
  msgid ""
1401
  "Your server is blocking the access to Freemius' API, which is crucial for "
1402
  "%1s synchronization. Please contact your host to whitelist %2s"
1403
  msgstr "Il tuo server sta bloccando l'accesso all'API di Freemius. L'accesso è cruciale per quanto riguarda la la sincronizzazione di %1s. Per favore contatta il tuo host per aggiungere %2s alla whitelist."
1404
 
1405
- #: includes/i18n.php:719
1406
  msgid ""
1407
  "It seems like one of the authentication parameters is wrong. Update your "
1408
  "Public Key, Secret Key & User ID, and try again."
1409
  msgstr "Sembra che uno dei parametri di autenticazione sia sbagliato. Aggiorna la tua chiave pubblica, Secret Key & User ID e riprova."
1410
 
1411
- #: includes/i18n.php:725
1412
  msgid ""
1413
  "Please check your mailbox, you should receive an email via %s to confirm the"
1414
  " ownership change. From security reasons, you must confirm the change within"
@@ -1416,106 +1504,165 @@ msgid ""
1416
  "folder."
1417
  msgstr "Verifica di aver ricevuto l'email da %s per confermare il cambiamento del proprietario. Per ragioni di sicurezza devi confermare il cambiamento entro 15 minuti. Se non trovi l'email controlla nella posta indesiderata."
1418
 
1419
- #: includes/i18n.php:727
1420
  msgid ""
1421
  "Thanks for confirming the ownership change. An email was just sent to %s for"
1422
  " final approval."
1423
  msgstr "Grazie per aver confermato il cambiamento del proprietario. Un' email è stata appena inviata a %s per la conferma finale."
1424
 
1425
- #: includes/i18n.php:729
1426
  msgid "%s is the new owner of the account."
1427
  msgstr "%s è il nuovo proprietario dell'account."
1428
 
1429
- #: includes/i18n.php:733
1430
  msgctxt "addonX cannot run without pluginY"
1431
  msgid "%s cannot run without %s."
1432
  msgstr "%s non può funzionare senza %s."
1433
 
1434
- #: includes/i18n.php:735
1435
  msgctxt "addonX cannot run..."
1436
  msgid "%s cannot run without the plugin."
1437
  msgstr "%s non può funzionare senza il plugin."
1438
 
1439
- #: includes/i18n.php:737
1440
  msgctxt "pluginX activation was successfully..."
1441
  msgid "%s activation was successfully completed."
1442
  msgstr "%s è stato attivato con successo."
1443
 
1444
- #: includes/i18n.php:739
1445
  msgctxt "Plugin installer section title"
1446
  msgid "Features & Pricing"
1447
  msgstr "Caratteristiche & prezzi"
1448
 
1449
- #: includes/i18n.php:741
1450
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1451
  msgstr "L'add-on dev'essere distribuito da WordPress.org o Freemius."
1452
 
1453
- #: includes/i18n.php:743
1454
  msgid "Paid add-on must be deployed to Freemius."
1455
  msgstr "Gli add-on a pagamento devono essere distribuiti da Freemius."
1456
 
1457
- #: includes/i18n.php:747
1458
  msgid ""
1459
  "%s is a premium only add-on. You have to purchase a license first before "
1460
  "activating the plugin."
1461
  msgstr "%s è un add-on premium. Devi comprare una licenza prima di poter attivare il plugin."
1462
 
1463
- #: includes/i18n.php:749
1464
  msgid ""
1465
  "%s free trial was successfully cancelled. Since the add-on is premium only "
1466
  "it was automatically deactivated. If you like to use it in the future, "
1467
  "you'll have to purchase a license."
1468
  msgstr "Il periodo di prova gratuito %s è stato annullato con successo. Siccome l'add-on è premium, è stato disattivato automaticamente. Se vorrai usarlo in futuro, dovrai comprare una licenza."
1469
 
1470
- #: includes/i18n.php:755
1471
  msgctxt "as every month"
1472
  msgid "Monthly"
1473
  msgstr "Mensilmente"
1474
 
1475
- #: includes/i18n.php:757
1476
  msgctxt "as monthly period"
1477
  msgid "mo"
1478
  msgstr "mese"
1479
 
1480
- #: includes/i18n.php:759
1481
  msgctxt "as once a year"
1482
  msgid "Annual"
1483
  msgstr "Annuale"
1484
 
1485
- #: includes/i18n.php:761
1486
  msgctxt "as once a year"
1487
  msgid "Annually"
1488
  msgstr "Annualmente"
1489
 
1490
- #: includes/i18n.php:763
1491
  msgctxt "as once a year"
1492
  msgid "Once"
1493
  msgstr "Una volta"
1494
 
1495
- #: includes/i18n.php:765
1496
  msgctxt "as annual period"
1497
  msgid "year"
1498
  msgstr "anno"
1499
 
1500
- #: includes/i18n.php:767
1501
  msgid "Lifetime"
1502
  msgstr "Tutta la vita"
1503
 
1504
- #: includes/i18n.php:769
1505
  msgctxt "e.g. the best product"
1506
  msgid "Best"
1507
  msgstr "Migliore"
1508
 
1509
- #: includes/i18n.php:771
1510
  msgctxt "e.g. billed monthly"
1511
  msgid "Billed %s"
1512
  msgstr "Fatturato %s"
1513
 
1514
- #: includes/i18n.php:773
1515
  msgctxt "as a discount of $5 or 10%"
1516
  msgid "Save %s"
1517
  msgstr "Risparmia %s"
1518
 
1519
- #: includes/i18n.php:777
1520
  msgid "View details"
1521
  msgstr "Visualizza dettagli"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2016 freemius
2
+ # This file is distributed under the same license as the freemius package.
3
  # Translators:
4
+ # Pelly Benassi <plasmax@gmail.com>, 2016
5
  # Daniele Scasciafratte Mte90 <mte90net@gmail.com>, 2015
6
+ # Pelly Benassi <plasmax@gmail.com>, 2016
7
+ # Vova Feldman <vova@freemius.com>, 2015-2016
8
  msgid ""
9
  msgstr ""
10
  "Project-Id-Version: WordPress SDK\n"
11
+ "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n"
12
+ "PO-Revision-Date: 2016-12-12 02:13+0000\n"
13
+ "Last-Translator: Vova Feldman <vova@freemius.com>\n"
 
14
  "Language-Team: Italian (Italy) (http://www.transifex.com/freemius/wordpress-sdk/language/it_IT/)\n"
15
+ "MIME-Version: 1.0\n"
16
  "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
  "Language: it_IT\n"
19
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
+ "X-Poedit-Basepath: ..\n"
21
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
22
+ "X-Poedit-SearchPath-0: .\n"
23
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
24
+ "X-Poedit-SourceCharset: UTF-8\n"
25
 
 
 
26
  #: includes/i18n.php41, includes/i18n.php:55
27
  msgid "Yes - I'm in!"
28
  msgstr "Sì, ci sto!"
140
  msgstr "Modifica"
141
 
142
  #: includes/i18n.php:119
143
+ msgctxt "verb"
144
+ msgid "Update"
145
+ msgstr "Aggiorna"
146
+
147
+ #: includes/i18n.php:121
148
  msgid "Date"
149
  msgstr "Data"
150
 
151
+ #: includes/i18n.php:123
152
  msgid "Amount"
153
  msgstr "Importo"
154
 
155
+ #: includes/i18n.php:125
156
  msgid "Invoice"
157
  msgstr "Fattura"
158
 
159
+ #: includes/i18n.php:127
160
  msgid "Billing"
161
  msgstr "Fatturazione"
162
 
163
+ #: includes/i18n.php:129
164
  msgid "Payments"
165
  msgstr "Pagamenti"
166
 
167
+ #: includes/i18n.php:131
168
  msgid "Delete Account"
169
  msgstr "Elimina Account"
170
 
171
+ #: includes/i18n.php:133
172
  msgctxt "as close a window"
173
  msgid "Dismiss"
174
  msgstr "Chiudi"
175
 
176
+ #: includes/i18n.php:135
177
  msgctxt "as product pricing plan"
178
  msgid "Plan"
179
  msgstr "Piano"
180
 
181
+ #: includes/i18n.php:137
182
  msgid "Change Plan"
183
  msgstr "Cambia piano"
184
 
185
+ #: includes/i18n.php:139
186
  msgctxt "as download professional version"
187
  msgid "Download %s Version"
188
  msgstr "Scarica la versione %s"
189
 
190
+ #: includes/i18n.php:141
191
  msgctxt "as download professional version now"
192
  msgid "Download %s version now"
193
  msgstr "Scarica la versione %s ora"
194
 
195
+ #: includes/i18n.php:145
196
  msgctxt "as download latest version"
197
  msgid "Download Latest"
198
  msgstr "Scarica l'ultima versione"
199
 
200
+ #: includes/i18n.php:147
201
  msgctxt "E.g. you have a professional license."
202
  msgid "You have a %s license."
203
  msgstr "Hai la licenza %s."
204
 
205
+ #: includes/i18n.php:151
206
  msgid "New"
207
  msgstr "Nuovo"
208
 
209
+ #: includes/i18n.php:153
210
  msgid "Free"
211
  msgstr "Gratuito"
212
 
213
+ #: includes/i18n.php:155
214
  msgctxt "as trial plan"
215
  msgid "Trial"
216
  msgstr "Prova gratuita"
217
 
218
+ #: includes/i18n.php:157
219
+ msgctxt "as starting a trial plan"
220
+ msgid "Start Trial"
221
+ msgstr "Inizia il periodo di prova gratuito"
222
+
223
+ #: includes/i18n.php:159
224
  msgctxt "verb"
225
  msgid "Purchase"
226
  msgstr "Acquisto"
227
 
228
+ #: includes/i18n.php:161
229
  msgid "Purchase License"
230
  msgstr "Acquista licenza"
231
 
232
+ #: includes/i18n.php:163
233
  msgctxt "verb"
234
  msgid "Buy"
235
  msgstr "Compra"
236
 
237
+ #: includes/i18n.php:165
238
  msgid "Buy License"
239
  msgstr "Compra licenza"
240
 
241
+ #: includes/i18n.php:167
242
  msgid "Single Site License"
243
  msgstr "Licenza per sito singolo"
244
 
245
+ #: includes/i18n.php:169
246
  msgid "Unlimited Licenses"
247
  msgstr "Licenze illimitate"
248
 
249
+ #: includes/i18n.php:171
250
  msgid "Up to %s Sites"
251
  msgstr "Fino a %s siti"
252
 
253
+ #: includes/i18n.php:173
254
  msgid "%sRenew your license now%s to access version %s features and support."
255
  msgstr "%sRinnova la tua licenza ora%s per accedere a funzionalità e supporto della versione %s."
256
 
257
+ #: includes/i18n.php:177
258
  msgid ""
259
  "Enter the email address you've used for the upgrade below and we will resend"
260
  " you the license key."
261
  msgstr "Inserisci qui sotto l'indirizzo email che hai usato per registrare l'aggiornamento e ti invieremo di nuovo la chiave di licenza."
262
 
263
+ #: includes/i18n.php:181
264
  msgctxt "e.g. Professional Plan"
265
  msgid "%s Plan"
266
  msgstr "Piano %s"
267
 
268
+ #: includes/i18n.php:183
269
  msgid "You are just one step away - %s"
270
  msgstr "Sei a un passo dalla fine - %s"
271
 
272
+ #: includes/i18n.php:185
273
  msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
274
  msgid "Complete \"%s\" Activation Now"
275
  msgstr "Completa l'attivazione di \"%s\" ora"
276
 
277
+ #: includes/i18n.php:189
278
  msgid "We made a few tweaks to the plugin, %s"
279
  msgstr "Abbiamo apportato alcune modifiche al plugin, %s"
280
 
281
+ #: includes/i18n.php:191
282
  msgid "Opt-in to make \"%s\" Better!"
283
  msgstr "Contribuisci a rendere \"%s\" migliore!"
284
 
285
+ #: includes/i18n.php:193
286
  msgid "Error"
287
  msgstr "Errore"
288
 
289
+ #: includes/i18n.php:195
290
  msgid ""
291
  "Freemius SDK couldn't find the plugin's main file. Please contact "
292
  "sdk@freemius.com with the current error."
293
  msgstr "L'SDK di Freemius non è riuscito a trovare il file principale del plugin. Per favore contatta sdk@freemius.com riportando l'errore."
294
 
295
+ #: includes/i18n.php:203
296
  msgctxt "as expiration date"
297
  msgid "Expiration"
298
  msgstr "Scadenza"
299
 
300
+ #: includes/i18n.php:205
301
  msgctxt "as software license"
302
  msgid "License"
303
  msgstr "Licenza"
304
 
305
+ #: includes/i18n.php:207
306
  msgid "not verified"
307
  msgstr "non verificato"
308
 
309
+ #: includes/i18n.php:209
310
  msgid "Verify Email"
311
  msgstr "Verifica email"
312
 
313
+ #: includes/i18n.php:211
314
  msgctxt "e.g. expires in 2 months"
315
  msgid "Expires in %s"
316
  msgstr "Scade in %s"
317
 
318
+ #: includes/i18n.php:213
319
  msgctxt "e.g. auto renews in 2 months"
320
  msgid "Auto renews in %s"
321
  msgstr "Rinnovo automatico in %s"
322
 
323
+ #: includes/i18n.php:215
324
  msgid "No expiration"
325
  msgstr "Nessuna scadenza"
326
 
327
+ #: includes/i18n.php:217
328
  msgid "Expired"
329
  msgstr "Scaduto"
330
 
331
+ #: includes/i18n.php:219
332
  msgid "Cancelled"
333
  msgstr "Annullato"
334
 
335
+ #: includes/i18n.php:221
336
  msgctxt "e.g. In 2 hours"
337
  msgid "In %s"
338
  msgstr "In %s"
339
 
340
+ #: includes/i18n.php:223
341
  msgctxt "e.g. 2 min ago"
342
  msgid "%s ago"
343
  msgstr "%s fa"
344
 
345
+ #: includes/i18n.php:225
346
  msgctxt "as plugin version"
347
  msgid "Version"
348
  msgstr "Versione"
349
 
350
+ #: includes/i18n.php:227
351
  msgid "Name"
352
  msgstr "Nome"
353
 
354
+ #: includes/i18n.php:229
355
  msgid "Email"
356
  msgstr "Email"
357
 
358
+ #: includes/i18n.php:231
359
  msgid "Email address"
360
  msgstr "Indirizzo email"
361
 
362
+ #: includes/i18n.php:233
363
  msgid "Verified"
364
  msgstr "Verificato"
365
 
366
+ #: includes/i18n.php:235
367
  msgid "Plugin"
368
  msgstr "Plugin"
369
 
370
+ #: includes/i18n.php:237
371
  msgid "Plugins"
372
  msgstr "Plugin"
373
 
374
+ #: includes/i18n.php:239
375
  msgid "Themes"
376
  msgstr "Temi"
377
 
378
+ #: includes/i18n.php:241
379
  msgctxt "as file/folder path"
380
  msgid "Path"
381
  msgstr "Percorso"
382
 
383
+ #: includes/i18n.php:243
384
  msgid "Title"
385
  msgstr "Titolo"
386
 
387
+ #: includes/i18n.php:245
388
  msgid "Free version"
389
  msgstr "Versione gratuita"
390
 
391
+ #: includes/i18n.php:247
392
  msgid "Premium version"
393
  msgstr "Versione premium"
394
 
395
+ #: includes/i18n.php:249
396
  msgctxt "as WP plugin slug"
397
  msgid "Slug"
398
  msgstr "Slug"
399
 
400
+ #: includes/i18n.php:251
401
  msgid "ID"
402
  msgstr "ID"
403
 
404
+ #: includes/i18n.php:253
405
  msgid "Users"
406
  msgstr "Utenti"
407
 
408
+ #: includes/i18n.php:255
409
  msgid "Plugin Installs"
410
  msgstr "Installazioni Plugin"
411
 
412
+ #: includes/i18n.php:257
413
  msgctxt "like websites"
414
  msgid "Sites"
415
  msgstr "Siti"
416
 
417
+ #: includes/i18n.php:259
418
  msgid "User ID"
419
  msgstr "ID utente"
420
 
421
+ #: includes/i18n.php:261
422
  msgid "Site ID"
423
  msgstr "ID del sito"
424
 
425
+ #: includes/i18n.php:263
426
  msgid "Public Key"
427
  msgstr "Chiave pubblica"
428
 
429
+ #: includes/i18n.php:265
430
  msgid "Secret Key"
431
  msgstr "Chiave segreta"
432
 
433
+ #: includes/i18n.php:267
434
  msgctxt "as secret encryption key missing"
435
  msgid "No Secret"
436
  msgstr "Nessuna chiave"
437
 
438
+ #: includes/i18n.php:269
439
  msgid "No ID"
440
  msgstr "Nessun ID"
441
 
442
+ #: includes/i18n.php:271
443
  msgctxt "as synchronize license"
444
  msgid "Sync License"
445
  msgstr "Sincronizza la licenza"
446
 
447
+ #: includes/i18n.php:273
448
  msgctxt "as synchronize"
449
  msgid "Sync"
450
  msgstr "Sincronizza"
451
 
452
+ #: includes/i18n.php:275
453
  msgid "Activate License"
454
  msgstr "Attiva licenza"
455
 
456
+ #: includes/i18n.php:277
457
  msgid "Activate Free Version"
458
  msgstr "Attiva versione gratuita"
459
 
460
+ #: includes/i18n.php:279
461
  msgid ""
462
  "Please enter the license key that you received in the email right after the "
463
  "purchase:"
464
  msgstr "Per favore inserisci la chiave di licenza che hai ricevuto via mail subito dopo l'acquisto:"
465
 
466
+ #: includes/i18n.php:283
467
  msgid "Activating license..."
468
  msgstr "Sto attivando la licenza..."
469
 
470
+ #: includes/i18n.php:285
471
  msgid "Change License"
472
  msgstr "Cambia licenza"
473
 
474
+ #: includes/i18n.php:287
475
  msgid "Update License"
476
  msgstr "Aggiorna licenza"
477
 
478
+ #: includes/i18n.php:289
479
  msgid "Deactivate License"
480
  msgstr "Disattiva licenza"
481
 
482
+ #: includes/i18n.php:291
483
  msgid "Activate"
484
  msgstr "Attiva"
485
 
486
+ #: includes/i18n.php:293
487
  msgid "Deactivate"
488
  msgstr "Disattiva"
489
 
490
+ #: includes/i18n.php:295
491
  msgid "Skip & Deactivate"
492
  msgstr "Salta e disattiva"
493
 
494
+ #: includes/i18n.php:297
495
  msgid "No - just deactivate"
496
  msgstr "No - disattiva e basta"
497
 
498
+ #: includes/i18n.php:299
499
  msgid "Yes - do your thing"
500
  msgstr "Sì - fai pure"
501
 
502
+ #: includes/i18n.php:301
503
  msgctxt "active mode"
504
  msgid "Active"
505
  msgstr "Attiva"
506
 
507
+ #: includes/i18n.php:303
508
  msgctxt "is active mode?"
509
  msgid "Is Active"
510
  msgstr "è attiva"
511
 
512
+ #: includes/i18n.php:305
513
  msgid "Install Now"
514
  msgstr "Installa ora"
515
 
516
+ #: includes/i18n.php:307
517
  msgid "Install Update Now"
518
  msgstr "Installa l'aggiornamento ora"
519
 
520
+ #: includes/i18n.php:309
521
  msgid "More information about %s"
522
  msgstr "Ulteriori informazioni su %s"
523
 
524
+ #: includes/i18n.php:311
525
  msgid "Localhost"
526
  msgstr "Localhost"
527
 
528
+ #: includes/i18n.php:313
529
  msgctxt "as activate Professional plan"
530
  msgid "Activate %s Plan"
531
  msgstr "Attivare il piano %s"
532
 
533
+ #: includes/i18n.php:315
534
  msgctxt "as 5 licenses left"
535
  msgid "%s left"
536
  msgstr "%s rimanenti"
537
 
538
+ #: includes/i18n.php:317
539
  msgid "Last license"
540
  msgstr "Ultima licenza"
541
 
542
+ #: includes/i18n.php:319
543
  msgid "What is your %s?"
544
  msgstr "Qual è il tuo %s?"
545
 
546
+ #: includes/i18n.php:321
547
  msgid "Activate this add-on"
548
  msgstr "Attivare questo addon"
549
 
550
+ #: includes/i18n.php:323
551
  msgid ""
552
  "Deactivating your license will block all premium features, but will enable "
553
  "you to activate the license on another site. Are you sure you want to "
554
  "proceed?"
555
  msgstr "La disattivazione della licenza bloccherà tutte le funzionalità premium, ma vi permetterà di attivare la licenza su un altro sito. Sei sicuro di voler procedere?"
556
 
557
+ #: includes/i18n.php:327
558
  msgid ""
559
  "Deleting the account will automatically deactivate your %s plan license so "
560
  "you can use it on other sites. If you want to terminate the recurring "
562
  "account. Are you sure you would like to continue with the deletion?"
563
  msgstr "L'eliminazione dell'account disattiva automaticamente la tua licenza del piano %s quindi è possibile utilizzarlo su altri siti. Se si desidera anche terminare i pagamenti ricorrenti, fare clic sul pulsante \"Annulla\" ed effettuare il \"Downgrade\" del tuo account. Sei sicuro di voler continuare con l'eliminazione?"
564
 
565
+ #: includes/i18n.php:331
566
  msgid ""
567
  "Deletion is not temporary. Only delete if you no longer want to use this "
568
  "plugin anymore. Are you sure you would like to continue with the deletion?"
569
  msgstr "L'eliminazione non è temporanea. Cancella solo se non si desidera più utilizzare questo plugin. Sei sicuro di voler continuare con l'eliminazione?"
570
 
571
+ #: includes/i18n.php:335
572
  msgid ""
573
  "Downgrading your plan will immediately stop all future recurring payments "
574
  "and your %s plan license will expire in %s."
575
  msgstr "Effettuare il downgrade del piano interromperà immediatamente tutti i futuri pagamenti ricorrenti e la licenza del piano %s scadrà in %s."
576
 
577
+ #: includes/i18n.php:339
578
  msgid ""
579
  "Cancelling the trial will immediately block access to all premium features. "
580
  "Are you sure?"
581
  msgstr "Cancellando il periodo di prova gratuito bloccherai immediatamente l'accesso a tutte le funzionalità premium. Vuoi continuare?"
582
 
583
+ #: includes/i18n.php:343
584
  msgid ""
585
  "You can still enjoy all %s features but you will not have access to plugin "
586
  "updates and support."
587
  msgstr "Puoi ancora sfruttare tutte le funzionalità di %s, ma non avrai accesso al supporto ed agli aggiornamenti del plugin."
588
 
589
+ #: includes/i18n.php:347
590
  msgid ""
591
  "Once your license expire you can still use the Free version but you will NOT"
592
  " have access to the %s features."
593
  msgstr "Una volta scaduta la licenza, sarà possibile ancora utilizzare la versione gratuita ma non avrete accesso alle funzionalità di %s."
594
 
595
+ #: includes/i18n.php:351
596
  msgid "Are you sure you want to proceed?"
597
  msgstr "Sei sicuro di voler procedere?"
598
 
599
+ #: includes/i18n.php:357
600
  msgid "Add Ons for %s"
601
  msgstr "Add-on per %s"
602
 
603
+ #: includes/i18n.php:359
604
  msgid ""
605
  "We could'nt load the add-ons list. It's probably an issue on our side, "
606
  "please try to come back in few minutes."
607
  msgstr "Non siamo riusciti a caricare la lista degli add-on. Si tratta probabilmente di un problema nel nostro sistema, per favore riprova tra qualche minuto."
608
 
609
+ #: includes/i18n.php:365
610
  msgid "Anonymous feedback"
611
  msgstr "Feedback anonimo"
612
 
613
+ #: includes/i18n.php:367
614
  msgid "Quick feedback"
615
  msgstr "Feedback veloce"
616
 
617
+ #: includes/i18n.php:369
618
  msgid "If you have a moment, please let us know why you are deactivating"
619
  msgstr "Se hai un momento, potresti dirci perché lo hai disattivato?"
620
 
621
+ #: includes/i18n.php:373
622
  msgid "Yes - Deactivate"
623
  msgstr "Si - Disattiva"
624
 
625
+ #: includes/i18n.php:375
626
  msgid "Submit & Deactivate"
627
  msgstr "Invia & Disattiva"
628
 
629
+ #: includes/i18n.php:377
 
630
  msgid "Cancel"
631
+ msgstr "Annulla"
632
 
633
+ #: includes/i18n.php:379
634
  msgid "I no longer need the plugin"
635
  msgstr "Non ho piú bisogno di questo plugin"
636
 
637
+ #: includes/i18n.php:381
638
  msgid "I found a better plugin"
639
  msgstr "Ho trovato un plugin migliore"
640
 
641
+ #: includes/i18n.php:383
642
  msgid "I only needed the plugin for a short period"
643
  msgstr "Avevo bisogno del plugin solo per un breve periodo"
644
 
645
+ #: includes/i18n.php:385
646
  msgid "The plugin broke my site"
647
  msgstr "Il plugin ha causato problemi al mio sito"
648
 
649
+ #: includes/i18n.php:387
650
  msgid "The plugin suddenly stopped working"
651
  msgstr "Il plugin ha smesso di funzionare"
652
 
653
+ #: includes/i18n.php:389
654
  msgid "I can't pay for it anymore"
655
  msgstr "Non posso piú pagarlo"
656
 
657
+ #: includes/i18n.php:391
658
  msgid "It's a temporary deactivation. I'm just debugging an issue."
659
  msgstr "È una disattivazione temporanea. Sto solo cercando di risolvere un problema."
660
 
661
+ #: includes/i18n.php:395
662
  msgctxt ""
663
  "the text of the \"other\" reason for deactivating the plugin that is shown "
664
  "in the modal box."
665
  msgid "Other"
666
  msgstr "Altro"
667
 
668
+ #: includes/i18n.php:399
669
  msgid "Kindly tell us the reason so we can improve."
670
  msgstr "Spiegandoci il motivo ci aiuterai a migliorare."
671
 
672
+ #: includes/i18n.php:401
673
  msgid "What's the plugin's name?"
674
  msgstr "Qual è il nome del plugin?"
675
 
676
+ #: includes/i18n.php:403
677
  msgid "What price would you feel comfortable paying?"
678
  msgstr "Che prezzo ritieni opportuno pagare?"
679
 
680
+ #: includes/i18n.php:405
681
  msgid "I couldn't understand how to make it work"
682
  msgstr "Non capisco come farlo funzionare"
683
 
684
+ #: includes/i18n.php:407
685
  msgid ""
686
  "The plugin is great, but I need specific feature that you don't support"
687
  msgstr "Il plugin é ottimo ma ho bisogno di una funzionalitá specifica che non é supportata"
688
 
689
+ #: includes/i18n.php:411
690
  msgid "The plugin is not working"
691
  msgstr "Il plugin non funziona"
692
 
693
+ #: includes/i18n.php:413
694
  msgid "It's not what I was looking for"
695
  msgstr "Non é quello che stavo cercando"
696
 
697
+ #: includes/i18n.php:415
698
  msgid "The plugin didn't work as expected"
699
  msgstr "Il plugin non funziona come mi aspettavo"
700
 
701
+ #: includes/i18n.php:417
702
  msgid "What feature?"
703
  msgstr "Quale funzionalitá?"
704
 
705
+ #: includes/i18n.php:419
706
  msgid "Kindly share what didn't work so we can fix it for future users..."
707
  msgstr "Condividi cosa non ha funzionato in modo da migliorare il prodotto per gli utenti futuri..."
708
 
709
+ #: includes/i18n.php:423
710
  msgid "What you've been looking for?"
711
  msgstr "Che cosa stai cercando?"
712
 
713
+ #: includes/i18n.php:425
714
  msgid "What did you expect?"
715
  msgstr "Che cosa ti aspettavi?"
716
 
717
+ #: includes/i18n.php:427
718
  msgid "The plugin didn't work"
719
  msgstr "Il plugin non funziona"
720
 
721
+ #: includes/i18n.php:429
722
  msgid "I don't like to share my information with you"
723
  msgstr "Non voglio condividere i miei dati con te"
724
 
725
+ #: includes/i18n.php:431
726
  msgid ""
727
  "You might have missed it, but you don't have to share any data and can just "
728
  "%s the opt-in."
729
  msgstr "Potresti non averci fatto caso, ma non sei obbligato a condividere i tuoi dati e puoi semplicemente %s la tua partecipazione."
730
 
731
+ #: includes/i18n.php:441
732
  msgctxt "greeting"
733
  msgid "Hey %s,"
734
  msgstr "Hey %s,"
735
 
736
+ #: includes/i18n.php:443
737
  msgctxt "a greeting. E.g. Thanks John!"
738
  msgid "Thanks %s!"
739
  msgstr "Grazie %s!"
740
 
741
+ #: includes/i18n.php:445
742
  msgid ""
743
+ "Never miss an important update - opt-in to our security and feature updates "
744
+ "notifications, and non-sensitive diagnostic tracking with %4$s."
745
+ msgstr "Non perdere nessun aggiornamento importante - iscriviti per ricevere notifiche su aggiornamenti relativi alla sicurezza e nuove versioni, oltre al tracciamento di diagnostica non sensibile con %4$s."
746
 
747
+ #: includes/i18n.php:449
748
  msgid ""
749
+ "Please help us improve %1$s! If you opt-in, some data about your usage of "
750
+ "%1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still "
751
  "work just fine."
752
+ msgstr "Aiutaci a migliorare %1$s! Se ti iscrivi, alcuni dati riguardanti il tuo utilizzo di %1$s verranno inviati a %4$s. Se salti questo passaggio, non c'è problema! %1$s funzionerà ugualmente."
753
 
754
+ #: includes/i18n.php:453
755
  msgid ""
756
  "You should receive an activation email for %s to your mailbox at %s. Please "
757
+ "make sure you click the activation button in that email to %s."
758
+ msgstr "Dovresti ricevere un'email di attivazione di %s all'indirizzo %s. Assicurati di fare clic sul pulsante di attivazione nell'email per &s."
 
759
 
760
+ #: includes/i18n.php:455
761
+ msgid "complete the install"
762
+ msgstr "completa l'installazione"
763
+
764
+ #: includes/i18n.php:457
765
+ msgid "start the trial"
766
+ msgstr "Inizia il periodo di prova gratuito"
767
+
768
+ #: includes/i18n.php:459
769
  msgid ""
770
  "Thanks for purchasing %s! To get started, please enter your license key:"
771
  msgstr "Grazie per aver acquistato %s! Per iniziare, per favore inserisci la tua chiave di licenza:"
772
 
773
+ #: includes/i18n.php:463
774
  msgid ""
775
  "The plugin will be periodically sending data to %s to check for plugin "
776
  "updates and verify the validity of your license."
777
  msgstr "Il plugin invierà dati periodicamente a %s per controllare l'esistenza di aggiornamenti e verificare la validità della tua licenza."
778
 
779
+ #: includes/i18n.php:467
780
  msgid "What permissions are being granted?"
781
  msgstr "Quali autorizzazioni vengono concesse?"
782
 
783
+ #: includes/i18n.php:469
784
  msgid "Your Profile Overview"
785
  msgstr "Panoramica del tuo profilo"
786
 
787
+ #: includes/i18n.php:471
788
  msgid "Name and email address"
789
  msgstr "Nome ed indirizzo email"
790
 
791
+ #: includes/i18n.php:473
792
  msgid "Your Site Overview"
793
  msgstr "Panoramica del tuo sito"
794
 
795
+ #: includes/i18n.php:475
796
  msgid "Site URL, WP version, PHP info, plugins & themes"
797
  msgstr "URL del sito, versione di WP, informazioni PHP, plugin e temi"
798
 
799
+ #: includes/i18n.php:479
800
  msgid "Current Plugin Events"
801
  msgstr "Eventi correnti del plugin"
802
 
803
+ #: includes/i18n.php:481
804
  msgid "Activation, deactivation and uninstall"
805
  msgstr "Attiva, disattivazione e disinstallazione"
806
 
807
+ #: includes/i18n.php:483
808
  msgid "Plugins & Themes"
809
  msgstr "Plugin e temi"
810
 
811
+ #: includes/i18n.php:485
812
  msgid "Titles, versions and state."
813
  msgstr "Titoli, versioni e stato."
814
 
815
+ #: includes/i18n.php:487
816
+ msgid "Admin Notices"
817
+ msgstr "Avvisi amministratore"
818
+
819
+ #: includes/i18n.php:489
820
  msgid "Newsletter"
821
  msgstr "Newsletter"
822
 
823
+ #: includes/i18n.php:491
824
  msgid "Updates, announcements, marketing, no spam"
825
  msgstr "Aggiornamenti, annunci, marketing, no spam"
826
 
827
+ #: includes/i18n.php:493
828
  msgid "Privacy Policy"
829
  msgstr "Politica sulla privacy"
830
 
831
+ #: includes/i18n.php:495
832
  msgid "Terms of Service"
833
  msgstr "Termini del Servizio"
834
 
835
+ #: includes/i18n.php:497
836
  msgctxt "as activating plugin"
837
  msgid "Activating"
838
  msgstr "Attivazione"
839
 
840
+ #: includes/i18n.php:499
841
  msgctxt "as in the process of sending an email"
842
  msgid "Sending email"
843
  msgstr "Invio email"
844
 
845
+ #: includes/i18n.php:503
846
  msgctxt "button label"
847
  msgid "Allow & Continue"
848
  msgstr "Consenti & Continua"
849
 
850
+ #: includes/i18n.php:505
851
  msgctxt "button label"
852
  msgid "Agree & Activate License"
853
  msgstr "Accetta e attiva la licenza"
854
 
855
+ #: includes/i18n.php:507
856
  msgctxt "verb"
857
  msgid "Skip"
858
  msgstr "Salta"
859
 
860
+ #: includes/i18n.php:509
861
  msgid "Click here to use the plugin anonymously"
862
  msgstr "Fai clic qui per usare il plugin anonimamente"
863
 
864
+ #: includes/i18n.php:511
865
  msgid "Re-send activation email"
866
  msgstr "Invia nuovamente l'email di attivazione"
867
 
868
+ #: includes/i18n.php:513
869
  msgid "License key"
870
  msgstr "Chiave di licenza"
871
 
872
+ #: includes/i18n.php:515
873
  msgid "Send License Key"
874
  msgstr "Invia chiave di licenza"
875
 
876
+ #: includes/i18n.php:517
877
  msgid "Sending license key"
878
  msgstr "Invio chiave di licenza"
879
 
880
+ #: includes/i18n.php:519
881
  msgid "Have a license key?"
882
  msgstr "Hai una chiave di licenza?"
883
 
884
+ #: includes/i18n.php:521
885
  msgid "Don't have a license key?"
886
  msgstr "Non hai una chiave di licenza?"
887
 
888
+ #: includes/i18n.php:523
889
  msgid "Can't find your license key?"
890
  msgstr "Non trovi la tua chiave di licenza?"
891
 
892
+ #: includes/i18n.php:525
893
+ msgid ""
894
+ "We couldn't find your email address in the system, are you sure it's the "
895
+ "right address?"
896
+ msgstr "Non siamo riusciti a trovare il tuo indirizzo email nel sistema, sei sicuro che sia l'indirizzo giusto?"
897
+
898
+ #: includes/i18n.php:529
899
+ msgid ""
900
+ "We can't see any active licenses associated with that email address, are you"
901
+ " sure it's the right address?"
902
+ msgstr "Non siamo riusciti a trovare alcuna licenza attiva associata al tuo indirizzo email, sei sicuro che sia l'indirizzo giusto?"
903
+
904
+ #: includes/i18n.php:533
905
+ msgid "Opt In"
906
+ msgstr "Iscriviti"
907
+
908
+ #: includes/i18n.php:535
909
+ msgid "Opt Out"
910
+ msgstr "Cancella iscrizione"
911
+
912
+ #: includes/i18n.php:537
913
+ msgid "On second thought - I want to continue helping"
914
+ msgstr "Ci ho ripensato, voglio continuare a fornire il mio aiuto"
915
+
916
+ #: includes/i18n.php:541
917
+ msgid "Opting out..."
918
+ msgstr "Cancellamento dell'iscrizione..."
919
+
920
+ #: includes/i18n.php:543
921
+ msgid "Opting in..."
922
+ msgstr "Iscrizione in corso..."
923
+
924
+ #: includes/i18n.php:545
925
+ msgid ""
926
+ "We appreciate your help in making the %s better by letting us track some "
927
+ "usage data."
928
+ msgstr "Ti ringraziamo per averci concesso di tracciare alcuni dati di utilizzo al fine di migliorare %s"
929
+
930
+ #: includes/i18n.php:549
931
+ msgid ""
932
+ "Usage tracking is done in the name of making %s better. Making a better user"
933
+ " experience, prioritizing new features, and more good things. We'd really "
934
+ "appreciate if you'll reconsider letting us continue with the tracking."
935
+ msgstr "Tracciamo l'utilizzo esclusivamente per rendere %s migliore, creando una migliore esperienza utente e dando priorità a nuove funzionalità, oltre a molte altre buone cose. Saremmo veramente felici di vederti cambiare idea e lasciarci continuare con il tracciamento."
936
+
937
+ #: includes/i18n.php:553
938
+ msgid ""
939
+ "By clicking \"Opt Out\", we will no longer be sending any data from %s to "
940
+ "%s."
941
+ msgstr "Cliccando su \"Cancella iscrizione\", non invieremo più nessuna informazione da %s a %s."
942
+
943
+ #: includes/i18n.php:563
944
  msgid "Screenshots"
945
  msgstr "Screenshots"
946
 
947
+ #: includes/i18n.php:565
948
  msgid "Click to view full-size screenshot %d"
949
  msgstr "Fare clic per visualizzare lo screenshot in grandi dimensioni %d"
950
 
951
+ #: includes/i18n.php:573
952
  msgid "Freemius Debug"
953
  msgstr "Debug Freemius"
954
 
955
+ #: includes/i18n.php:575
956
  msgctxt "as turned on"
957
  msgid "On"
958
  msgstr "Attivo"
959
 
960
+ #: includes/i18n.php:577
961
  msgctxt "as turned off"
962
  msgid "Off"
963
  msgstr "Non attivo"
964
 
965
+ #: includes/i18n.php:579
966
  msgctxt "as code debugging"
967
  msgid "Debugging"
968
  msgstr "Debugging"
969
 
970
+ #: includes/i18n.php:581
971
  msgid "Freemius State"
972
  msgstr "Stato di Freemius"
973
 
974
+ #: includes/i18n.php:583
975
  msgctxt "as connection was successful"
976
  msgid "Connected"
977
  msgstr "Connesso"
978
 
979
+ #: includes/i18n.php:585
980
  msgctxt "as connection blocked"
981
  msgid "Blocked"
982
  msgstr "Bloccato"
983
 
984
+ #: includes/i18n.php:587
985
  msgctxt "as application program interface"
986
  msgid "API"
987
  msgstr "API"
988
 
989
+ #: includes/i18n.php:589
990
  msgctxt "as software development kit versions"
991
  msgid "SDK"
992
  msgstr "SDK"
993
 
994
+ #: includes/i18n.php:591
995
  msgctxt "as software development kit versions"
996
  msgid "SDK Versions"
997
  msgstr "Versioni SDK"
998
 
999
+ #: includes/i18n.php:595
1000
  msgctxt "as plugin folder path"
1001
  msgid "Plugin Path"
1002
  msgstr "Percorso del plugin"
1003
 
1004
+ #: includes/i18n.php:597
1005
  msgctxt "as sdk path"
1006
  msgid "SDK Path"
1007
  msgstr "Percorso SDK"
1008
 
1009
+ #: includes/i18n.php:599
1010
  msgid "Add Ons of Plugin %s"
1011
  msgstr "Add-on del Plugin %s"
1012
 
1013
+ #: includes/i18n.php:601
1014
  msgid "Are you sure you want to delete all Freemius data?"
1015
  msgstr "Sei sicuro di voler eliminare tutti i dati di Freemius?"
1016
 
1017
+ #: includes/i18n.php:605
1018
  msgid "Actions"
1019
  msgstr "Azioni"
1020
 
1021
+ #: includes/i18n.php:607
1022
  msgid "Delete All Accounts"
1023
  msgstr "Eliminare tutti gli account"
1024
 
1025
+ #: includes/i18n.php:609
1026
  msgid "Start Fresh"
1027
  msgstr "Inizia da capo"
1028
 
1029
+ #: includes/i18n.php:611
1030
  msgid "Clear API Cache"
1031
  msgstr "Elimina cache API"
1032
 
1033
+ #: includes/i18n.php:613
1034
  msgid "Sync Data From Server"
1035
  msgstr "Sincronizza i dati dal server"
1036
 
1037
+ #: includes/i18n.php:615
1038
  msgid "Scheduled Crons"
1039
  msgstr "Azioni programmate"
1040
 
1041
+ #: includes/i18n.php:617
1042
  msgid "Plugins & Themes Sync"
1043
  msgstr "Sincronizzazione plugin e temi"
1044
 
1045
+ #: includes/i18n.php:625
1046
  msgctxt "as congratulations"
1047
  msgid "Congrats"
1048
  msgstr "Congratulazioni"
1049
 
1050
+ #: includes/i18n.php:627
1051
  msgctxt "exclamation"
1052
  msgid "Oops"
1053
  msgstr "Ops"
1054
 
1055
+ #: includes/i18n.php:629
1056
  msgctxt "interjection expressing joy or exuberance"
1057
  msgid "Yee-haw"
1058
  msgstr "Evvai"
1059
 
1060
+ #: includes/i18n.php:633
1061
  msgctxt ""
1062
  "(especially in electronic communication) used to express elation, "
1063
  "enthusiasm, or triumph."
1064
  msgid "W00t"
1065
  msgstr "Forte"
1066
 
1067
+ #: includes/i18n.php:637
1068
  msgctxt "a positive response"
1069
  msgid "Right on"
1070
  msgstr "Sì"
1071
 
1072
+ #: includes/i18n.php:639
1073
  msgctxt ""
1074
  "something somebody says when they are thinking about what you have just "
1075
  "said. "
1076
  msgid "Hmm"
1077
  msgstr "Uhm"
1078
 
1079
+ #: includes/i18n.php:643
1080
  msgid "O.K"
1081
  msgstr "OK"
1082
 
1083
+ #: includes/i18n.php:645
1084
  msgctxt "exclamation"
1085
  msgid "Hey"
1086
  msgstr "Hey"
1087
 
1088
+ #: includes/i18n.php:647
1089
  msgctxt "advance notice of something that will need attention."
1090
  msgid "Heads up"
1091
  msgstr "Attenzione"
1092
 
1093
+ #: includes/i18n.php:657
1094
  msgid "Seems like you got the latest release."
1095
  msgstr "Sembra che tu abbia la versione più recente."
1096
 
1097
+ #: includes/i18n.php:659
1098
  msgid "You are all good!"
1099
  msgstr "Sei fantastico!"
1100
 
1101
+ #: includes/i18n.php:661
1102
  msgid ""
1103
  "Sorry, we could not complete the email update. Another user with the same "
1104
  "email is already registered."
1105
  msgstr "Siamo spiacenti, non siamo riusciti a completare l'aggiornamento via email. Un altro utente con lo stesso indirizzo email è già registrato."
1106
 
1107
+ #: includes/i18n.php:665
1108
  msgid ""
1109
  "If you would like to give up the ownership of the plugin's account to %s "
1110
  "click the Change Ownership button."
1111
  msgstr "Se vuoi cedere la proprietá dell'account del plugin a %s clicca su Cambia Proprietà."
1112
 
1113
+ #: includes/i18n.php:669
1114
  msgid ""
1115
  "Your email was successfully updated. You should receive an email with "
1116
  "confirmation instructions in few moments."
1117
  msgstr "Il tuo indirizzo email è stato aggiornato correttamente. Riceverai un'email con le istruzioni di conferma in pochi istanti."
1118
 
1119
+ #: includes/i18n.php:673
1120
  msgid "Your name was successfully updated."
1121
  msgstr "Il tuo nome è stato aggiornato correttamente."
1122
 
1123
+ #: includes/i18n.php:675
1124
  msgid "You have successfully updated your %s."
1125
  msgstr "Hai aggiornato con successo il tuo %s."
1126
 
1127
+ #: includes/i18n.php:677
1128
  msgid "Please provide your full name."
1129
  msgstr "Per favore inserisci il tuo nome completo."
1130
 
1131
+ #: includes/i18n.php:679
1132
  msgid ""
1133
  "Verification mail was just sent to %s. If you can't find it after 5 min, "
1134
  "please check your spam box."
1135
  msgstr "L'email di verifica è stata inviata a %s. Se dopo 5 minuti non è ancora arrivata, per favore controlla nella tua casella di posta indesiderata."
1136
 
1137
+ #: includes/i18n.php:683
1138
  msgid ""
1139
  "Just letting you know that the add-ons information of %s is being pulled "
1140
  "from an external server."
1141
  msgstr "Le informazioni sugli add-on di %s vengono scaricate da un server esterno."
1142
 
1143
+ #: includes/i18n.php:687
1144
  msgid "No credit card required"
1145
  msgstr "Nessuna carta di credito richiesta"
1146
 
1147
+ #: includes/i18n.php:689
1148
  msgid "Premium plugin version was successfully activated."
1149
  msgstr "La versione Premium del plugin è stata attivata correttamente."
1150
 
1151
+ #: includes/i18n.php:693
1152
  msgid "The upgrade of %s was successfully completed."
1153
  msgstr "L'aggiornamento di %s è stato completato con successo."
1154
 
1155
+ #: includes/i18n.php:695
1156
  msgid "Your account was successfully activated with the %s plan."
1157
  msgstr "Il tuo account è stato attivato correttamente con il piano %s."
1158
 
1159
+ #: includes/i18n.php:699
1160
  msgid "Download the latest %s version now"
1161
  msgstr "Scarica l'ultima versione di %s"
1162
 
1163
+ #: includes/i18n.php:701
1164
  msgid "Please follow these steps to complete the upgrade"
1165
  msgstr "Segui i passi seguenti per completare l'aggiornamento"
1166
 
1167
+ #: includes/i18n.php:705
1168
  msgid "Download the latest %s version"
1169
  msgstr "Scarica l'ultima versione di %s"
1170
 
1171
+ #: includes/i18n.php:707
1172
+ msgid "Download the latest version"
1173
+ msgstr "Scarica l'ultima versione"
1174
+
1175
+ #: includes/i18n.php:709
1176
  msgid "Deactivate the free version"
1177
  msgstr "Disattiva la versione gratuita"
1178
 
1179
+ #: includes/i18n.php:711
1180
  msgid "Upload and activate the downloaded version"
1181
  msgstr "Carica e attiva la versione scaricata"
1182
 
1183
+ #: includes/i18n.php:713
1184
  msgid "How to upload and activate?"
1185
  msgstr "Come faccio a caricare ed attivare?"
1186
 
1187
+ #: includes/i18n.php:715
1188
  msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1189
  msgid "%s Add-on was successfully purchased."
1190
  msgstr "L' add-on %s è stato acquistato con successo."
1191
 
1192
+ #: includes/i18n.php:719
1193
  msgid "Your %s Add-on plan was successfully upgraded."
1194
  msgstr "Il piano del tuo add-on %s è stato aggiornato con successo."
1195
 
1196
+ #: includes/i18n.php:723
1197
  msgid "Your email has been successfully verified - you are AWESOME!"
1198
  msgstr "Il tuo indirizzo email è stato verificato con successo - SEI UN GRANDE!"
1199
 
1200
+ #: includes/i18n.php:727
1201
  msgid "Your plan was successfully upgraded."
1202
  msgstr "Il piano è stato aggiornato con successo."
1203
 
1204
+ #: includes/i18n.php:729
1205
  msgid "Your plan was successfully changed to %s."
1206
  msgstr "Il piano è stato cambiato con successo a %s."
1207
 
1208
+ #: includes/i18n.php:731
1209
  msgid ""
1210
  "Your license has expired. You can still continue using the free plugin "
1211
  "forever."
1212
  msgstr "La licenza è scaduta. È comunque possibile continuare ad utilizzare il plugin gratuito per sempre."
1213
 
1214
+ #: includes/i18n.php:735
1215
  msgid ""
1216
  "Your license has been cancelled. If you think it's a mistake, please contact"
1217
  " support."
1218
  msgstr "La tua licenza è stata cancellata. Se credi sia un errore, per favore contatta il supporto."
1219
 
1220
+ #: includes/i18n.php:739
1221
  msgid "Your trial has been successfully started."
1222
  msgstr "La versione di prova è stata avviata correttamente."
1223
 
1224
+ #: includes/i18n.php:741
1225
  msgid "Your license was successfully activated."
1226
  msgstr "La tua licenza è stata attivata correttamente."
1227
 
1228
+ #: includes/i18n.php:743
1229
  msgid "It looks like your site currently doesn't have an active license."
1230
  msgstr "Sembra che il tuo sito non disponga di alcuna licenza attiva."
1231
 
1232
+ #: includes/i18n.php:747
1233
  msgid ""
1234
  "Your license was successfully deactivated, you are back to the %s plan."
1235
  msgstr "La tua licenza é stata disattivata con successo, sei tornato al piano %s."
1236
 
1237
+ #: includes/i18n.php:751
1238
  msgid "It looks like the license deactivation failed."
1239
  msgstr "Sembra che la disattivazione della licenza non sia riuscita."
1240
 
1241
+ #: includes/i18n.php:755
1242
  msgid "It looks like the license could not be activated."
1243
  msgstr "Sembra che la licenza non possa essere attivata."
1244
 
1245
+ #: includes/i18n.php:759
1246
  msgid "Error received from the server:"
1247
  msgstr "Errore ricevuto dal server:"
1248
 
1249
+ #: includes/i18n.php:761
1250
  msgid ""
1251
  "Your trial has expired. You can still continue using all our free features."
1252
  msgstr "La versione di prova è scaduta. Si può comunque continuare a utilizzare tutte le nostre funzioni gratuite."
1253
 
1254
+ #: includes/i18n.php:765
1255
  msgid ""
1256
  "Your plan was successfully downgraded. Your %s plan license will expire in "
1257
  "%s."
1258
  msgstr "Il tuo piano è stato declassato con successo. La licenza del piano %s scadrà in %s."
1259
 
1260
+ #: includes/i18n.php:769
1261
  msgid ""
1262
  "Seems like we are having some temporary issue with your plan downgrade. "
1263
  "Please try again in few minutes."
1264
  msgstr "Stiamo avendo qualche problema temporaneo con il downgrade del piano. Riprova tra qualche minuto."
1265
 
1266
+ #: includes/i18n.php:773
1267
  msgid ""
1268
  "It looks like you are not in trial mode anymore so there's nothing to cancel"
1269
  " :)"
1270
  msgstr "Sembra che tu non stia più usando la prova gratuita, quindi non c'è niente che tu debba annullare :)"
1271
 
1272
+ #: includes/i18n.php:777
1273
  msgid "Your %s free trial was successfully cancelled."
1274
  msgstr "Il tuo periodo di prova gratuito %s è stato annullato con successo."
1275
 
1276
+ #: includes/i18n.php:781
1277
  msgctxt "%s - numeric version number"
1278
  msgid "Version %s was released."
1279
  msgstr "La versione %s é stata rilasciata."
1280
 
1281
+ #: includes/i18n.php:785
1282
  msgid "Please download %s."
1283
  msgstr "Scarica %s."
1284
 
1285
+ #: includes/i18n.php:787
1286
  msgctxt "%s - plan name, as the latest professional version here"
1287
  msgid "the latest %s version here"
1288
  msgstr "l'ultima versione %s é quì"
1289
 
1290
+ #: includes/i18n.php:791
1291
  msgid ""
1292
  "How do you like %s so far? Test all our %s premium features with a %d-day "
1293
  "free trial."
1294
  msgstr "Come sta andando con %s? Prova tutte le funzionalità premium di %s con una prova gratuita di %d giorni."
1295
 
1296
+ #: includes/i18n.php:795
1297
  msgctxt "call to action"
1298
  msgid "Start free trial"
1299
  msgstr "Inizia il periodo di prova gratuito"
1300
 
1301
+ #: includes/i18n.php:797
1302
+ msgid "Starting trial"
1303
+ msgstr "Inizio del periodo di prova gratuito"
1304
+
1305
+ #: includes/i18n.php:799
1306
+ msgid "Please wait"
1307
+ msgstr "Attendere"
1308
+
1309
+ #: includes/i18n.php:801
1310
  msgid ""
1311
  "Seems like we are having some temporary issue with your trial cancellation. "
1312
  "Please try again in few minutes."
1313
  msgstr "Stiamo avendo qualche problema temporaneo con l'annullamento del periodo di prova. Riprova tra qualche minuto."
1314
 
1315
+ #: includes/i18n.php:805
1316
  msgid "You already utilized a trial before."
1317
  msgstr "Hai già utilizzato una prova gratuita in passato."
1318
 
1319
+ #: includes/i18n.php:807
1320
  msgid "You are already running the plugin in a trial mode."
1321
  msgstr "Stai già usando il plugin in modalità di prova gratuita."
1322
 
1323
+ #: includes/i18n.php:811
1324
  msgid "Plan %s do not exist, therefore, can't start a trial."
1325
  msgstr "Il piano %s non esiste, per questo motivo non è possibile iniziare il periodo di prova."
1326
 
1327
+ #: includes/i18n.php:815
1328
  msgid "Plan %s does not support a trial period."
1329
  msgstr "Il piano %s non supporta il periodo di prova."
1330
 
1331
+ #: includes/i18n.php:817
1332
  msgid "None of the plugin's plans supports a trial period."
1333
  msgstr "Non esiste alcun piano del plugin che offra il periodo di prova."
1334
 
1335
+ #: includes/i18n.php:821
1336
  msgid ""
1337
  "Unexpected API error. Please contact the plugin's author with the following "
1338
  "error."
1339
  msgstr "Errore inaspettato dell'API. Per favore contatta l'autore del plugin riportando il seguente errore."
1340
 
1341
+ #: includes/i18n.php:825
1342
  msgid "No commitment for %s days - cancel anytime!"
1343
  msgstr "Nessun impegno per %s giorni - puoi annullare in qualsiasi momento!"
1344
 
1345
+ #: includes/i18n.php:827
1346
  msgid ""
1347
  "Your license has expired. You can still continue using all the %s features, "
1348
  "but you'll need to renew your license to continue getting updates and "
1349
  "support."
1350
  msgstr "La licenza è scaduta. È comunque possibile continuare a utilizzare tutte le funzionalità di %s, ma sarà necessario rinnovare la licenza per continuare a ricevere gli aggiornamenti ed il supporto."
1351
 
1352
+ #: includes/i18n.php:831
1353
  msgid "Couldn't activate %s."
1354
  msgstr "Non é stato possibile attivare %s."
1355
 
1356
+ #: includes/i18n.php:833
1357
  msgid "Please contact us with the following message:"
1358
  msgstr "Contattaci con il seguente messaggio:"
1359
 
1360
+ #: includes/i18n.php:835
1361
  msgid ""
1362
  "It looks like you are still on the %s plan. If you did upgrade or change "
1363
  "your plan, it's probably an issue on our side - sorry."
1364
  msgstr "Sembra che tu sia ancora usando il piano %s. Se hai effettuato un upgrade o cambiato il piano, è probabile che ci sia un problema nei nostri sistemi."
1365
 
1366
+ #: includes/i18n.php:839
1367
  msgid "Please contact us here"
1368
  msgstr "Contattaci qui"
1369
 
1370
+ #: includes/i18n.php:841
1371
  msgid ""
1372
  "I have upgraded my account but when I try to Sync the License, the plan "
1373
  "remains %s."
1374
  msgstr "Ho aggiornato il mio account, ma quando cerco di sincronizzare la licenza, il piano rimane %s."
1375
 
1376
+ #: includes/i18n.php:849
1377
  msgid "From unknown reason, the API connectivity test failed."
1378
  msgstr "Il test di connettività dell'API ha fallito per motivi sconosciuti."
1379
 
1380
+ #: includes/i18n.php:853
1381
  msgid ""
1382
  "It's probably a temporary issue on our end. Just to be sure, with your "
1383
  "permission, would it be o.k to run another connectivity test?"
1384
  msgstr "Si tratta probabilmente di un problema nei nostri sistemi. Per esserne sicuri, potresti darci il permesso di effettuare un ulteriore test della connettività? "
1385
 
1386
+ #: includes/i18n.php:857
1387
  msgid ""
1388
  "We use PHP cURL library for the API calls, which is a very common library "
1389
  "and usually installed out of the box. Unfortunately, cURL is not installed "
1390
  "on your server."
1391
  msgstr "Utilizziamo la libreria PHP cURL per le chiamate alla nostra API. Questa libreria è molto comune ed è installata di base. Sfortunatamente cURL non è presente nel tuo server."
1392
 
1393
+ #: includes/i18n.php:861
1394
  msgid ""
1395
  "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1396
  msgstr "Per un motivo sconosciuto, CloudFlare, il firewall che utilizziamo, blocca la connessione."
1397
 
1398
+ #: includes/i18n.php:865
1399
  msgctxt "as pluginX requires an access to our API"
1400
  msgid "%s requires an access to our API."
1401
  msgstr "%s richiede un accesso alla nostra API."
1402
 
1403
+ #: includes/i18n.php:869
1404
  msgid ""
1405
  "It looks like your server is using Squid ACL (access control lists), which "
1406
  "blocks the connection."
1407
  msgstr "Sembra che il tuo server stia usando Squid ACL (lista per il controllo degli accessi) il quale blocca la connessione."
1408
 
1409
+ #: includes/i18n.php:873
1410
  msgid "I don't know what is Squid or ACL, help me!"
1411
  msgstr "Non ho idea di cosa sia Squid o ACL, aiutami!"
1412
 
1413
+ #: includes/i18n.php875, includes/i18n.php:889
1414
  msgid ""
1415
  "We'll make sure to contact your hosting company and resolve the issue. You "
1416
  "will get a follow-up email to %s once we have an update."
1417
  msgstr "Contatteremo il tuo hosting e risolveremo il problema. Riceverai un' email a %s non appena ci saranno aggiornamenti."
1418
 
1419
+ #: includes/i18n.php:879
1420
  msgid "I'm a system administrator"
1421
  msgstr "Sono un sistemista"
1422
 
1423
+ #: includes/i18n.php:881
1424
  msgid ""
1425
  "Great, please whitelist the following domains: %s. Once you done, deactivate"
1426
  " the plugin and activate it again."
1427
  msgstr "Perfetto, aggiungi alla whitelist i seguenti domini: %s. Una volta che hai fatto, disattiva il plugin e attivalo di nuovo."
1428
 
1429
+ #: includes/i18n.php:885
1430
  msgid "I don't know what is cURL or how to install it, help me!"
1431
  msgstr "Non ho idea di cosa sia cURL o come installarlo, aiutami!"
1432
 
1433
+ #: includes/i18n.php:893
1434
  msgid ""
1435
  "Great, please install cURL and enable it in your php.ini file. To make sure "
1436
  "it was successfully activated, use 'phpinfo()'. Once activated, deactivate "
1437
  "the plugin and reactivate it back again."
1438
  msgstr "Perfetto, installa cURL ed attivalo nel tuo file php.ini. Per essere sicuro di averlo attivato con successo, usa \"phpinfo()\". Una volta attivato disattva il plugin e attivalo di nuovo."
1439
 
1440
+ #: includes/i18n.php:897
1441
  msgid ""
1442
  "We are sure it's an issue on our side and more than happy to resolve it for "
1443
  "you ASAP if you give us a chance."
1444
  msgstr "Siamo sicuri che sia un nostro problema e siamo più che felici di risolverlo per te al più presto. Per poter procedere abbiamo bisogno del tuo consenso."
1445
 
1446
+ #: includes/i18n.php:901
1447
  msgid ""
1448
  "Sorry for the inconvenience and we are here to help if you give us a chance."
1449
  msgstr "Siamo spiacenti per l'inconveniente e siamo qui per aiutarti con il tuo permesso."
1450
 
1451
+ #: includes/i18n.php:905
1452
  msgid "Yes - I'm giving you a chance to fix it"
1453
  msgstr "Sì - sto dandovi la possibilità di risolvere il problema"
1454
 
1455
+ #: includes/i18n.php:907
1456
  msgid ""
1457
  "We will do our best to whitelist your server and resolve this issue ASAP. "
1458
  "You will get a follow-up email to %s once we have an update."
1459
  msgstr "Faremo del nostro meglio per mettere il server in whitelist e risolvere il problema il prima possibile. Avrai un aggiornamento dello stato tramite email all'indirizzo %s."
1460
 
1461
+ #: includes/i18n.php:911
1462
  msgid "Let's try your previous version"
1463
  msgstr "Proviamo con la versione precedente"
1464
 
1465
+ #: includes/i18n.php:913
1466
  msgid "Uninstall this version and install the previous one."
1467
  msgstr "Disinstalla questa versione e installa quella precedente."
1468
 
1469
+ #: includes/i18n.php:917
1470
  msgid "That's exhausting, please deactivate"
1471
  msgstr "È estenuante, disattivalo"
1472
 
1473
+ #: includes/i18n.php:919
1474
  msgid ""
1475
  "We feel your frustration and sincerely apologize for the inconvenience. Hope"
1476
  " to see you again in the future."
1477
  msgstr "Capiamo la tua frustrazione e ci scusiamo per l'inconveniente. Speriamo di rivederti nuovamente in futuro."
1478
 
1479
+ #: includes/i18n.php:923
1480
  msgid ""
1481
  "Thank for giving us the chance to fix it! A message was just sent to our "
1482
  "technical staff. We will get back to you as soon as we have an update to %s."
1483
  " Appreciate your patience."
1484
  msgstr "Grazie per averci dato la possibilità di risolvere il problema! È stato appena inviato un messaggio al nostro staff tecnico. Ti risponderemo non appena avremo un aggiornamento riguardante %s. Grazie per la tua pazienza."
1485
 
1486
+ #: includes/i18n.php:927
1487
  msgctxt "%1s - plugin title, %2s - API domain"
1488
  msgid ""
1489
  "Your server is blocking the access to Freemius' API, which is crucial for "
1490
  "%1s synchronization. Please contact your host to whitelist %2s"
1491
  msgstr "Il tuo server sta bloccando l'accesso all'API di Freemius. L'accesso è cruciale per quanto riguarda la la sincronizzazione di %1s. Per favore contatta il tuo host per aggiungere %2s alla whitelist."
1492
 
1493
+ #: includes/i18n.php:931
1494
  msgid ""
1495
  "It seems like one of the authentication parameters is wrong. Update your "
1496
  "Public Key, Secret Key & User ID, and try again."
1497
  msgstr "Sembra che uno dei parametri di autenticazione sia sbagliato. Aggiorna la tua chiave pubblica, Secret Key & User ID e riprova."
1498
 
1499
+ #: includes/i18n.php:939
1500
  msgid ""
1501
  "Please check your mailbox, you should receive an email via %s to confirm the"
1502
  " ownership change. From security reasons, you must confirm the change within"
1504
  "folder."
1505
  msgstr "Verifica di aver ricevuto l'email da %s per confermare il cambiamento del proprietario. Per ragioni di sicurezza devi confermare il cambiamento entro 15 minuti. Se non trovi l'email controlla nella posta indesiderata."
1506
 
1507
+ #: includes/i18n.php:943
1508
  msgid ""
1509
  "Thanks for confirming the ownership change. An email was just sent to %s for"
1510
  " final approval."
1511
  msgstr "Grazie per aver confermato il cambiamento del proprietario. Un' email è stata appena inviata a %s per la conferma finale."
1512
 
1513
+ #: includes/i18n.php:947
1514
  msgid "%s is the new owner of the account."
1515
  msgstr "%s è il nuovo proprietario dell'account."
1516
 
1517
+ #: includes/i18n.php:951
1518
  msgctxt "addonX cannot run without pluginY"
1519
  msgid "%s cannot run without %s."
1520
  msgstr "%s non può funzionare senza %s."
1521
 
1522
+ #: includes/i18n.php:955
1523
  msgctxt "addonX cannot run..."
1524
  msgid "%s cannot run without the plugin."
1525
  msgstr "%s non può funzionare senza il plugin."
1526
 
1527
+ #: includes/i18n.php:959
1528
  msgctxt "pluginX activation was successfully..."
1529
  msgid "%s activation was successfully completed."
1530
  msgstr "%s è stato attivato con successo."
1531
 
1532
+ #: includes/i18n.php:963
1533
  msgctxt "Plugin installer section title"
1534
  msgid "Features & Pricing"
1535
  msgstr "Caratteristiche & prezzi"
1536
 
1537
+ #: includes/i18n.php:967
1538
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1539
  msgstr "L'add-on dev'essere distribuito da WordPress.org o Freemius."
1540
 
1541
+ #: includes/i18n.php:971
1542
  msgid "Paid add-on must be deployed to Freemius."
1543
  msgstr "Gli add-on a pagamento devono essere distribuiti da Freemius."
1544
 
1545
+ #: includes/i18n.php:979
1546
  msgid ""
1547
  "%s is a premium only add-on. You have to purchase a license first before "
1548
  "activating the plugin."
1549
  msgstr "%s è un add-on premium. Devi comprare una licenza prima di poter attivare il plugin."
1550
 
1551
+ #: includes/i18n.php:983
1552
  msgid ""
1553
  "%s free trial was successfully cancelled. Since the add-on is premium only "
1554
  "it was automatically deactivated. If you like to use it in the future, "
1555
  "you'll have to purchase a license."
1556
  msgstr "Il periodo di prova gratuito %s è stato annullato con successo. Siccome l'add-on è premium, è stato disattivato automaticamente. Se vorrai usarlo in futuro, dovrai comprare una licenza."
1557
 
1558
+ #: includes/i18n.php:995
1559
  msgctxt "as every month"
1560
  msgid "Monthly"
1561
  msgstr "Mensilmente"
1562
 
1563
+ #: includes/i18n.php:997
1564
  msgctxt "as monthly period"
1565
  msgid "mo"
1566
  msgstr "mese"
1567
 
1568
+ #: includes/i18n.php:999
1569
  msgctxt "as once a year"
1570
  msgid "Annual"
1571
  msgstr "Annuale"
1572
 
1573
+ #: includes/i18n.php:1001
1574
  msgctxt "as once a year"
1575
  msgid "Annually"
1576
  msgstr "Annualmente"
1577
 
1578
+ #: includes/i18n.php:1003
1579
  msgctxt "as once a year"
1580
  msgid "Once"
1581
  msgstr "Una volta"
1582
 
1583
+ #: includes/i18n.php:1005
1584
  msgctxt "as annual period"
1585
  msgid "year"
1586
  msgstr "anno"
1587
 
1588
+ #: includes/i18n.php:1007
1589
  msgid "Lifetime"
1590
  msgstr "Tutta la vita"
1591
 
1592
+ #: includes/i18n.php:1009
1593
  msgctxt "e.g. the best product"
1594
  msgid "Best"
1595
  msgstr "Migliore"
1596
 
1597
+ #: includes/i18n.php:1011
1598
  msgctxt "e.g. billed monthly"
1599
  msgid "Billed %s"
1600
  msgstr "Fatturato %s"
1601
 
1602
+ #: includes/i18n.php:1013
1603
  msgctxt "as a discount of $5 or 10%"
1604
  msgid "Save %s"
1605
  msgstr "Risparmia %s"
1606
 
1607
+ #: includes/i18n.php:1017
1608
  msgid "View details"
1609
  msgstr "Visualizza dettagli"
1610
+
1611
+ #: includes/i18n.php:1025
1612
+ msgctxt "button label"
1613
+ msgid "Approve & Start Trial"
1614
+ msgstr "Approva e inizia il periodo di prova gratuito"
1615
+
1616
+ #: includes/i18n.php:1029
1617
+ msgid ""
1618
+ "You are 1-click away from starting your %1$s-day free trial of the %2$s "
1619
+ "plan."
1620
+ msgstr "Sei a un clic di distanza dall'iniziare il tuo periodo di prova gratuito di %1$s giorni per il piano %2$s."
1621
+
1622
+ #: includes/i18n.php:1033
1623
+ msgid ""
1624
+ "For compliance with the WordPress.org guidelines, before we start the trial "
1625
+ "we ask that you opt-in with your user and non-sensitive site information, "
1626
+ "allowing the plugin to periodically send data to %s to check for version "
1627
+ "updates and to validate your trial."
1628
+ msgstr "Per seguire le linee guida di WordPress, prima di iniziare il periodo di prova ti chiediamo di iscriverti con il tuo utente e i dati non sensibili inerenti al tuo sito, così da permettere periodicamente al plugin di inviare dati a %s per poter controllare la presenza di nuove versioni e convalidare il tuo periodo di prova gratuito."
1629
+
1630
+ #: includes/i18n.php:1045
1631
+ msgid "Business name"
1632
+ msgstr "Nome della compagnia"
1633
+
1634
+ #: includes/i18n.php:1047
1635
+ msgid "Tax / VAT ID"
1636
+ msgstr "Numero Partita Iva o VAT"
1637
+
1638
+ #: includes/i18n.php:1049
1639
+ msgid "Address Line %d"
1640
+ msgstr "Riga indirizzo %d"
1641
+
1642
+ #: includes/i18n.php:1051
1643
+ msgid "Country"
1644
+ msgstr "Nazione"
1645
+
1646
+ #: includes/i18n.php:1053
1647
+ msgid "Select Country"
1648
+ msgstr "Seleziona Nazione"
1649
+
1650
+ #: includes/i18n.php:1055
1651
+ msgid "City"
1652
+ msgstr "Città"
1653
+
1654
+ #: includes/i18n.php:1057
1655
+ msgid "Town"
1656
+ msgstr "Cittadina"
1657
+
1658
+ #: includes/i18n.php:1059
1659
+ msgid "State"
1660
+ msgstr "Stato"
1661
+
1662
+ #: includes/i18n.php:1061
1663
+ msgid "Province"
1664
+ msgstr "Provincia"
1665
+
1666
+ #: includes/i18n.php:1063
1667
+ msgid "ZIP / Postal Code"
1668
+ msgstr "CAP"
freemius/languages/freemius.pot CHANGED
@@ -133,1267 +133,1393 @@ msgid "Edit"
133
  msgstr ""
134
 
135
  #: includes/i18n.php:119
136
- msgid "Date"
 
137
  msgstr ""
138
 
139
  #: includes/i18n.php:121
140
- msgid "Amount"
141
  msgstr ""
142
 
143
  #: includes/i18n.php:123
144
- msgid "Invoice"
145
  msgstr ""
146
 
147
  #: includes/i18n.php:125
148
- msgid "Billing"
149
  msgstr ""
150
 
151
  #: includes/i18n.php:127
152
- msgid "Payments"
153
  msgstr ""
154
 
155
  #: includes/i18n.php:129
156
- msgid "Delete Account"
157
  msgstr ""
158
 
159
  #: includes/i18n.php:131
 
 
 
 
160
  msgctxt "as close a window"
161
  msgid "Dismiss"
162
  msgstr ""
163
 
164
- #: includes/i18n.php:133
165
  msgctxt "as product pricing plan"
166
  msgid "Plan"
167
  msgstr ""
168
 
169
- #: includes/i18n.php:135
170
  msgid "Change Plan"
171
  msgstr ""
172
 
173
- #: includes/i18n.php:137
174
  msgctxt "as download professional version"
175
  msgid "Download %s Version"
176
  msgstr ""
177
 
178
- #: includes/i18n.php:139
179
  msgctxt "as download professional version now"
180
  msgid "Download %s version now"
181
  msgstr ""
182
 
183
- #: includes/i18n.php:141
184
  msgctxt "as download latest version"
185
  msgid "Download Latest"
186
  msgstr ""
187
 
188
- #: includes/i18n.php:143
189
  msgctxt "E.g. you have a professional license."
190
  msgid "You have a %s license."
191
  msgstr ""
192
 
193
- #: includes/i18n.php:145
194
  msgid "New"
195
  msgstr ""
196
 
197
- #: includes/i18n.php:147
198
  msgid "Free"
199
  msgstr ""
200
 
201
- #: includes/i18n.php:149
202
  msgctxt "as trial plan"
203
  msgid "Trial"
204
  msgstr ""
205
 
206
- #: includes/i18n.php:151
 
 
 
 
 
207
  msgctxt "verb"
208
  msgid "Purchase"
209
  msgstr ""
210
 
211
- #: includes/i18n.php:153
212
  msgid "Purchase License"
213
  msgstr ""
214
 
215
- #: includes/i18n.php:155
216
  msgctxt "verb"
217
  msgid "Buy"
218
  msgstr ""
219
 
220
- #: includes/i18n.php:157
221
  msgid "Buy License"
222
  msgstr ""
223
 
224
- #: includes/i18n.php:159
225
  msgid "Single Site License"
226
  msgstr ""
227
 
228
- #: includes/i18n.php:161
229
  msgid "Unlimited Licenses"
230
  msgstr ""
231
 
232
- #: includes/i18n.php:163
233
  msgid "Up to %s Sites"
234
  msgstr ""
235
 
236
- #: includes/i18n.php:165
237
  msgid "%sRenew your license now%s to access version %s features and support."
238
  msgstr ""
239
 
240
- #: includes/i18n.php:167
241
  msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
242
  msgstr ""
243
 
244
- #: includes/i18n.php:169
245
  msgctxt "e.g. Professional Plan"
246
  msgid "%s Plan"
247
  msgstr ""
248
 
249
- #: includes/i18n.php:171
250
  msgid "You are just one step away - %s"
251
  msgstr ""
252
 
253
- #: includes/i18n.php:173
254
  msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
255
  msgid "Complete \"%s\" Activation Now"
256
  msgstr ""
257
 
258
- #: includes/i18n.php:175
259
  msgid "We made a few tweaks to the plugin, %s"
260
  msgstr ""
261
 
262
- #: includes/i18n.php:177
263
  msgid "Opt-in to make \"%s\" Better!"
264
  msgstr ""
265
 
266
- #: includes/i18n.php:179
267
  msgid "Error"
268
  msgstr ""
269
 
270
- #: includes/i18n.php:181
271
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
272
  msgstr ""
273
 
274
- #: includes/i18n.php:187
275
  msgctxt "as expiration date"
276
  msgid "Expiration"
277
  msgstr ""
278
 
279
- #: includes/i18n.php:189
280
  msgctxt "as software license"
281
  msgid "License"
282
  msgstr ""
283
 
284
- #: includes/i18n.php:191
285
  msgid "not verified"
286
  msgstr ""
287
 
288
- #: includes/i18n.php:193
289
  msgid "Verify Email"
290
  msgstr ""
291
 
292
- #: includes/i18n.php:195
293
  msgctxt "e.g. expires in 2 months"
294
  msgid "Expires in %s"
295
  msgstr ""
296
 
297
- #: includes/i18n.php:197
298
  msgctxt "e.g. auto renews in 2 months"
299
  msgid "Auto renews in %s"
300
  msgstr ""
301
 
302
- #: includes/i18n.php:199
303
  msgid "No expiration"
304
  msgstr ""
305
 
306
- #: includes/i18n.php:201
307
  msgid "Expired"
308
  msgstr ""
309
 
310
- #: includes/i18n.php:203
311
  msgid "Cancelled"
312
  msgstr ""
313
 
314
- #: includes/i18n.php:205
315
  msgctxt "e.g. In 2 hours"
316
  msgid "In %s"
317
  msgstr ""
318
 
319
- #: includes/i18n.php:207
320
  msgctxt "e.g. 2 min ago"
321
  msgid "%s ago"
322
  msgstr ""
323
 
324
- #: includes/i18n.php:209
325
  msgctxt "as plugin version"
326
  msgid "Version"
327
  msgstr ""
328
 
329
- #: includes/i18n.php:211
330
  msgid "Name"
331
  msgstr ""
332
 
333
- #: includes/i18n.php:213
334
  msgid "Email"
335
  msgstr ""
336
 
337
- #: includes/i18n.php:215
338
  msgid "Email address"
339
  msgstr ""
340
 
341
- #: includes/i18n.php:217
342
  msgid "Verified"
343
  msgstr ""
344
 
345
- #: includes/i18n.php:219
346
  msgid "Plugin"
347
  msgstr ""
348
 
349
- #: includes/i18n.php:221
350
  msgid "Plugins"
351
  msgstr ""
352
 
353
- #: includes/i18n.php:223
354
  msgid "Themes"
355
  msgstr ""
356
 
357
- #: includes/i18n.php:225
358
  msgctxt "as file/folder path"
359
  msgid "Path"
360
  msgstr ""
361
 
362
- #: includes/i18n.php:227
363
  msgid "Title"
364
  msgstr ""
365
 
366
- #: includes/i18n.php:229
367
  msgid "Free version"
368
  msgstr ""
369
 
370
- #: includes/i18n.php:231
371
  msgid "Premium version"
372
  msgstr ""
373
 
374
- #: includes/i18n.php:233
375
  msgctxt "as WP plugin slug"
376
  msgid "Slug"
377
  msgstr ""
378
 
379
- #: includes/i18n.php:235
380
  msgid "ID"
381
  msgstr ""
382
 
383
- #: includes/i18n.php:237
384
  msgid "Users"
385
  msgstr ""
386
 
387
- #: includes/i18n.php:239
388
  msgid "Plugin Installs"
389
  msgstr ""
390
 
391
- #: includes/i18n.php:241
392
  msgctxt "like websites"
393
  msgid "Sites"
394
  msgstr ""
395
 
396
- #: includes/i18n.php:243
397
  msgid "User ID"
398
  msgstr ""
399
 
400
- #: includes/i18n.php:245
401
  msgid "Site ID"
402
  msgstr ""
403
 
404
- #: includes/i18n.php:247
405
  msgid "Public Key"
406
  msgstr ""
407
 
408
- #: includes/i18n.php:249
409
  msgid "Secret Key"
410
  msgstr ""
411
 
412
- #: includes/i18n.php:251
413
  msgctxt "as secret encryption key missing"
414
  msgid "No Secret"
415
  msgstr ""
416
 
417
- #: includes/i18n.php:253
418
  msgid "No ID"
419
  msgstr ""
420
 
421
- #: includes/i18n.php:255
422
  msgctxt "as synchronize license"
423
  msgid "Sync License"
424
  msgstr ""
425
 
426
- #: includes/i18n.php:257
427
  msgctxt "as synchronize"
428
  msgid "Sync"
429
  msgstr ""
430
 
431
- #: includes/i18n.php:259
432
  msgid "Activate License"
433
  msgstr ""
434
 
435
- #: includes/i18n.php:261
436
  msgid "Activate Free Version"
437
  msgstr ""
438
 
439
- #: includes/i18n.php:263
440
  msgid "Please enter the license key that you received in the email right after the purchase:"
441
  msgstr ""
442
 
443
- #: includes/i18n.php:265
444
  msgid "Activating license..."
445
  msgstr ""
446
 
447
- #: includes/i18n.php:267
448
  msgid "Change License"
449
  msgstr ""
450
 
451
- #: includes/i18n.php:269
452
  msgid "Update License"
453
  msgstr ""
454
 
455
- #: includes/i18n.php:271
456
  msgid "Deactivate License"
457
  msgstr ""
458
 
459
- #: includes/i18n.php:273
460
  msgid "Activate"
461
  msgstr ""
462
 
463
- #: includes/i18n.php:275
464
  msgid "Deactivate"
465
  msgstr ""
466
 
467
- #: includes/i18n.php:277
468
  msgid "Skip & Deactivate"
469
  msgstr ""
470
 
471
- #: includes/i18n.php:279
472
  msgid "No - just deactivate"
473
  msgstr ""
474
 
475
- #: includes/i18n.php:281
476
  msgid "Yes - do your thing"
477
  msgstr ""
478
 
479
- #: includes/i18n.php:283
480
  msgctxt "active mode"
481
  msgid "Active"
482
  msgstr ""
483
 
484
- #: includes/i18n.php:285
485
  msgctxt "is active mode?"
486
  msgid "Is Active"
487
  msgstr ""
488
 
489
- #: includes/i18n.php:287
490
  msgid "Install Now"
491
  msgstr ""
492
 
493
- #: includes/i18n.php:289
494
  msgid "Install Update Now"
495
  msgstr ""
496
 
497
- #: includes/i18n.php:291
498
  msgid "More information about %s"
499
  msgstr ""
500
 
501
- #: includes/i18n.php:293
502
  msgid "Localhost"
503
  msgstr ""
504
 
505
- #: includes/i18n.php:295
506
  msgctxt "as activate Professional plan"
507
  msgid "Activate %s Plan"
508
  msgstr ""
509
 
510
- #: includes/i18n.php:297
511
  msgctxt "as 5 licenses left"
512
  msgid "%s left"
513
  msgstr ""
514
 
515
- #: includes/i18n.php:299
516
  msgid "Last license"
517
  msgstr ""
518
 
519
- #: includes/i18n.php:301
520
  msgid "What is your %s?"
521
  msgstr ""
522
 
523
- #: includes/i18n.php:303
524
  msgid "Activate this add-on"
525
  msgstr ""
526
 
527
- #: includes/i18n.php:305
528
  msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
529
  msgstr ""
530
 
531
- #: includes/i18n.php:307
532
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
533
  msgstr ""
534
 
535
- #: includes/i18n.php:309
536
  msgid "Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?"
537
  msgstr ""
538
 
539
- #: includes/i18n.php:311
540
  msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
541
  msgstr ""
542
 
543
- #: includes/i18n.php:313
544
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
545
  msgstr ""
546
 
547
- #: includes/i18n.php:315
548
  msgid "You can still enjoy all %s features but you will not have access to plugin updates and support."
549
  msgstr ""
550
 
551
- #: includes/i18n.php:317
552
  msgid "Once your license expire you can still use the Free version but you will NOT have access to the %s features."
553
  msgstr ""
554
 
555
- #: includes/i18n.php:319
556
  msgid "Are you sure you want to proceed?"
557
  msgstr ""
558
 
559
- #: includes/i18n.php:325
560
  msgid "Add Ons for %s"
561
  msgstr ""
562
 
563
- #: includes/i18n.php:327
564
  msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
565
  msgstr ""
566
 
567
- #: includes/i18n.php:331
568
  msgid "Anonymous feedback"
569
  msgstr ""
570
 
571
- #: includes/i18n.php:333
572
  msgid "Quick feedback"
573
  msgstr ""
574
 
575
- #: includes/i18n.php:335
576
  msgid "If you have a moment, please let us know why you are deactivating"
577
  msgstr ""
578
 
579
- #: includes/i18n.php:337
580
  msgid "Yes - Deactivate"
581
  msgstr ""
582
 
583
- #: includes/i18n.php:339
584
  msgid "Submit & Deactivate"
585
  msgstr ""
586
 
587
- #: includes/i18n.php:341
588
- msgctxt "the text of the cancel button of the plugin deactivation dialog box."
589
  msgid "Cancel"
590
  msgstr ""
591
 
592
- #: includes/i18n.php:343
593
  msgid "I no longer need the plugin"
594
  msgstr ""
595
 
596
- #: includes/i18n.php:345
597
  msgid "I found a better plugin"
598
  msgstr ""
599
 
600
- #: includes/i18n.php:347
601
  msgid "I only needed the plugin for a short period"
602
  msgstr ""
603
 
604
- #: includes/i18n.php:349
605
  msgid "The plugin broke my site"
606
  msgstr ""
607
 
608
- #: includes/i18n.php:351
609
  msgid "The plugin suddenly stopped working"
610
  msgstr ""
611
 
612
- #: includes/i18n.php:353
613
  msgid "I can't pay for it anymore"
614
  msgstr ""
615
 
616
- #: includes/i18n.php:355
617
  msgid "It's a temporary deactivation. I'm just debugging an issue."
618
  msgstr ""
619
 
620
- #: includes/i18n.php:357
621
  msgctxt "the text of the \"other\" reason for deactivating the plugin that is shown in the modal box."
622
  msgid "Other"
623
  msgstr ""
624
 
625
- #: includes/i18n.php:359
626
  msgid "Kindly tell us the reason so we can improve."
627
  msgstr ""
628
 
629
- #: includes/i18n.php:361
630
  msgid "What's the plugin's name?"
631
  msgstr ""
632
 
633
- #: includes/i18n.php:363
634
  msgid "What price would you feel comfortable paying?"
635
  msgstr ""
636
 
637
- #: includes/i18n.php:365
638
  msgid "I couldn't understand how to make it work"
639
  msgstr ""
640
 
641
- #: includes/i18n.php:367
642
  msgid "The plugin is great, but I need specific feature that you don't support"
643
  msgstr ""
644
 
645
- #: includes/i18n.php:369
646
  msgid "The plugin is not working"
647
  msgstr ""
648
 
649
- #: includes/i18n.php:371
650
  msgid "It's not what I was looking for"
651
  msgstr ""
652
 
653
- #: includes/i18n.php:373
654
  msgid "The plugin didn't work as expected"
655
  msgstr ""
656
 
657
- #: includes/i18n.php:375
658
  msgid "What feature?"
659
  msgstr ""
660
 
661
- #: includes/i18n.php:377
662
  msgid "Kindly share what didn't work so we can fix it for future users..."
663
  msgstr ""
664
 
665
- #: includes/i18n.php:379
666
  msgid "What you've been looking for?"
667
  msgstr ""
668
 
669
- #: includes/i18n.php:381
670
  msgid "What did you expect?"
671
  msgstr ""
672
 
673
- #: includes/i18n.php:383
674
  msgid "The plugin didn't work"
675
  msgstr ""
676
 
677
- #: includes/i18n.php:385
678
  msgid "I don't like to share my information with you"
679
  msgstr ""
680
 
681
- #: includes/i18n.php:387
682
  msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
683
  msgstr ""
684
 
685
- #: includes/i18n.php:395
686
  msgctxt "greeting"
687
  msgid "Hey %s,"
688
  msgstr ""
689
 
690
- #: includes/i18n.php:397
691
  msgctxt "a greeting. E.g. Thanks John!"
692
  msgid "Thanks %s!"
693
  msgstr ""
694
 
695
- #: includes/i18n.php:399
696
- msgid "In order to enjoy all our features and functionality, %s needs to connect your user, %s at %s, to %s"
697
  msgstr ""
698
 
699
- #: includes/i18n.php:401
700
- msgid "Please help us improve %2$s! If you opt-in, some data about your usage of %2$s will be sent to %5$s. If you skip this, that's okay! %2$s will still work just fine."
701
  msgstr ""
702
 
703
- #: includes/i18n.php:403
704
- msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to complete the install."
705
  msgstr ""
706
 
707
- #: includes/i18n.php:405
 
 
 
 
 
 
 
 
708
  msgid "Thanks for purchasing %s! To get started, please enter your license key:"
709
  msgstr ""
710
 
711
- #: includes/i18n.php:407
712
  msgid "The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license."
713
  msgstr ""
714
 
715
- #: includes/i18n.php:409
716
  msgid "What permissions are being granted?"
717
  msgstr ""
718
 
719
- #: includes/i18n.php:411
720
  msgid "Your Profile Overview"
721
  msgstr ""
722
 
723
- #: includes/i18n.php:413
724
  msgid "Name and email address"
725
  msgstr ""
726
 
727
- #: includes/i18n.php:415
728
  msgid "Your Site Overview"
729
  msgstr ""
730
 
731
- #: includes/i18n.php:417
732
  msgid "Site URL, WP version, PHP info, plugins & themes"
733
  msgstr ""
734
 
735
- #: includes/i18n.php:419
736
  msgid "Current Plugin Events"
737
  msgstr ""
738
 
739
- #: includes/i18n.php:421
740
  msgid "Activation, deactivation and uninstall"
741
  msgstr ""
742
 
743
- #: includes/i18n.php:423
744
  msgid "Plugins & Themes"
745
  msgstr ""
746
 
747
- #: includes/i18n.php:425
748
  msgid "Titles, versions and state."
749
  msgstr ""
750
 
751
- #: includes/i18n.php:427
 
 
 
 
752
  msgid "Newsletter"
753
  msgstr ""
754
 
755
- #: includes/i18n.php:429
756
  msgid "Updates, announcements, marketing, no spam"
757
  msgstr ""
758
 
759
- #: includes/i18n.php:431
760
  msgid "Privacy Policy"
761
  msgstr ""
762
 
763
- #: includes/i18n.php:433
764
  msgid "Terms of Service"
765
  msgstr ""
766
 
767
- #: includes/i18n.php:435
768
  msgctxt "as activating plugin"
769
  msgid "Activating"
770
  msgstr ""
771
 
772
- #: includes/i18n.php:437
773
  msgctxt "as in the process of sending an email"
774
  msgid "Sending email"
775
  msgstr ""
776
 
777
- #: includes/i18n.php:439
778
  msgctxt "button label"
779
  msgid "Allow & Continue"
780
  msgstr ""
781
 
782
- #: includes/i18n.php:441
783
  msgctxt "button label"
784
  msgid "Agree & Activate License"
785
  msgstr ""
786
 
787
- #: includes/i18n.php:443
788
  msgctxt "verb"
789
  msgid "Skip"
790
  msgstr ""
791
 
792
- #: includes/i18n.php:445
793
  msgid "Click here to use the plugin anonymously"
794
  msgstr ""
795
 
796
- #: includes/i18n.php:447
797
  msgid "Re-send activation email"
798
  msgstr ""
799
 
800
- #: includes/i18n.php:449
801
  msgid "License key"
802
  msgstr ""
803
 
804
- #: includes/i18n.php:451
805
  msgid "Send License Key"
806
  msgstr ""
807
 
808
- #: includes/i18n.php:453
809
  msgid "Sending license key"
810
  msgstr ""
811
 
812
- #: includes/i18n.php:455
813
  msgid "Have a license key?"
814
  msgstr ""
815
 
816
- #: includes/i18n.php:457
817
  msgid "Don't have a license key?"
818
  msgstr ""
819
 
820
- #: includes/i18n.php:459
821
  msgid "Can't find your license key?"
822
  msgstr ""
823
 
824
- #: includes/i18n.php:471
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
825
  msgid "Screenshots"
826
  msgstr ""
827
 
828
- #: includes/i18n.php:473
829
  msgid "Click to view full-size screenshot %d"
830
  msgstr ""
831
 
832
- #: includes/i18n.php:481
833
  msgid "Freemius Debug"
834
  msgstr ""
835
 
836
- #: includes/i18n.php:483
837
  msgctxt "as turned on"
838
  msgid "On"
839
  msgstr ""
840
 
841
- #: includes/i18n.php:485
842
  msgctxt "as turned off"
843
  msgid "Off"
844
  msgstr ""
845
 
846
- #: includes/i18n.php:487
847
  msgctxt "as code debugging"
848
  msgid "Debugging"
849
  msgstr ""
850
 
851
- #: includes/i18n.php:489
852
  msgid "Freemius State"
853
  msgstr ""
854
 
855
- #: includes/i18n.php:491
856
  msgctxt "as connection was successful"
857
  msgid "Connected"
858
  msgstr ""
859
 
860
- #: includes/i18n.php:493
861
  msgctxt "as connection blocked"
862
  msgid "Blocked"
863
  msgstr ""
864
 
865
- #: includes/i18n.php:495
866
  msgctxt "as application program interface"
867
  msgid "API"
868
  msgstr ""
869
 
870
- #: includes/i18n.php:497
871
  msgctxt "as software development kit versions"
872
  msgid "SDK"
873
  msgstr ""
874
 
875
- #: includes/i18n.php:499
876
  msgctxt "as software development kit versions"
877
  msgid "SDK Versions"
878
  msgstr ""
879
 
880
- #: includes/i18n.php:501
881
  msgctxt "as plugin folder path"
882
  msgid "Plugin Path"
883
  msgstr ""
884
 
885
- #: includes/i18n.php:503
886
  msgctxt "as sdk path"
887
  msgid "SDK Path"
888
  msgstr ""
889
 
890
- #: includes/i18n.php:505
891
  msgid "Add Ons of Plugin %s"
892
  msgstr ""
893
 
894
- #: includes/i18n.php:507
895
  msgid "Are you sure you want to delete all Freemius data?"
896
  msgstr ""
897
 
898
- #: includes/i18n.php:509
899
  msgid "Actions"
900
  msgstr ""
901
 
902
- #: includes/i18n.php:511
903
  msgid "Delete All Accounts"
904
  msgstr ""
905
 
906
- #: includes/i18n.php:513
907
  msgid "Start Fresh"
908
  msgstr ""
909
 
910
- #: includes/i18n.php:515
911
  msgid "Clear API Cache"
912
  msgstr ""
913
 
914
- #: includes/i18n.php:517
915
  msgid "Sync Data From Server"
916
  msgstr ""
917
 
918
- #: includes/i18n.php:519
919
  msgid "Scheduled Crons"
920
  msgstr ""
921
 
922
- #: includes/i18n.php:521
923
  msgid "Plugins & Themes Sync"
924
  msgstr ""
925
 
926
- #: includes/i18n.php:529
927
  msgctxt "as congratulations"
928
  msgid "Congrats"
929
  msgstr ""
930
 
931
- #: includes/i18n.php:531
932
  msgctxt "exclamation"
933
  msgid "Oops"
934
  msgstr ""
935
 
936
- #: includes/i18n.php:533
937
  msgctxt "interjection expressing joy or exuberance"
938
  msgid "Yee-haw"
939
  msgstr ""
940
 
941
- #: includes/i18n.php:535
942
  msgctxt "(especially in electronic communication) used to express elation, enthusiasm, or triumph."
943
  msgid "W00t"
944
  msgstr ""
945
 
946
- #: includes/i18n.php:537
947
  msgctxt "a positive response"
948
  msgid "Right on"
949
  msgstr ""
950
 
951
- #: includes/i18n.php:539
952
  msgctxt "something somebody says when they are thinking about what you have just said. "
953
  msgid "Hmm"
954
  msgstr ""
955
 
956
- #: includes/i18n.php:541
957
  msgid "O.K"
958
  msgstr ""
959
 
960
- #: includes/i18n.php:543
961
  msgctxt "exclamation"
962
  msgid "Hey"
963
  msgstr ""
964
 
965
- #: includes/i18n.php:545
966
  msgctxt "advance notice of something that will need attention."
967
  msgid "Heads up"
968
  msgstr ""
969
 
970
- #: includes/i18n.php:553
971
  msgid "Seems like you got the latest release."
972
  msgstr ""
973
 
974
- #: includes/i18n.php:555
975
  msgid "You are all good!"
976
  msgstr ""
977
 
978
- #: includes/i18n.php:557
979
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
980
  msgstr ""
981
 
982
- #: includes/i18n.php:559
983
  msgid "If you would like to give up the ownership of the plugin's account to %s click the Change Ownership button."
984
  msgstr ""
985
 
986
- #: includes/i18n.php:561
987
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
988
  msgstr ""
989
 
990
- #: includes/i18n.php:563
991
  msgid "Your name was successfully updated."
992
  msgstr ""
993
 
994
- #: includes/i18n.php:565
995
  msgid "You have successfully updated your %s."
996
  msgstr ""
997
 
998
- #: includes/i18n.php:567
999
  msgid "Please provide your full name."
1000
  msgstr ""
1001
 
1002
- #: includes/i18n.php:569
1003
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
1004
  msgstr ""
1005
 
1006
- #: includes/i18n.php:571
1007
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
1008
  msgstr ""
1009
 
1010
- #: includes/i18n.php:573
1011
  msgid "No credit card required"
1012
  msgstr ""
1013
 
1014
- #: includes/i18n.php:575
1015
  msgid "Premium plugin version was successfully activated."
1016
  msgstr ""
1017
 
1018
- #: includes/i18n.php:577
1019
  msgid "The upgrade of %s was successfully completed."
1020
  msgstr ""
1021
 
1022
- #: includes/i18n.php:579
1023
  msgid "Your account was successfully activated with the %s plan."
1024
  msgstr ""
1025
 
1026
- #: includes/i18n.php:581
1027
  msgid "Download the latest %s version now"
1028
  msgstr ""
1029
 
1030
- #: includes/i18n.php:583
1031
  msgid "Please follow these steps to complete the upgrade"
1032
  msgstr ""
1033
 
1034
- #: includes/i18n.php:585
1035
  msgid "Download the latest %s version"
1036
  msgstr ""
1037
 
1038
- #: includes/i18n.php:587
 
 
 
 
1039
  msgid "Deactivate the free version"
1040
  msgstr ""
1041
 
1042
- #: includes/i18n.php:589
1043
  msgid "Upload and activate the downloaded version"
1044
  msgstr ""
1045
 
1046
- #: includes/i18n.php:591
1047
  msgid "How to upload and activate?"
1048
  msgstr ""
1049
 
1050
- #: includes/i18n.php:593
1051
  msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1052
  msgid "%s Add-on was successfully purchased."
1053
  msgstr ""
1054
 
1055
- #: includes/i18n.php:595
1056
  msgid "Your %s Add-on plan was successfully upgraded."
1057
  msgstr ""
1058
 
1059
- #: includes/i18n.php:597
1060
  msgid "Your email has been successfully verified - you are AWESOME!"
1061
  msgstr ""
1062
 
1063
- #: includes/i18n.php:599
1064
  msgid "Your plan was successfully upgraded."
1065
  msgstr ""
1066
 
1067
- #: includes/i18n.php:601
1068
  msgid "Your plan was successfully changed to %s."
1069
  msgstr ""
1070
 
1071
- #: includes/i18n.php:603
1072
  msgid "Your license has expired. You can still continue using the free plugin forever."
1073
  msgstr ""
1074
 
1075
- #: includes/i18n.php:605
1076
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
1077
  msgstr ""
1078
 
1079
- #: includes/i18n.php:607
1080
  msgid "Your trial has been successfully started."
1081
  msgstr ""
1082
 
1083
- #: includes/i18n.php:609
1084
  msgid "Your license was successfully activated."
1085
  msgstr ""
1086
 
1087
- #: includes/i18n.php:611
1088
  msgid "It looks like your site currently doesn't have an active license."
1089
  msgstr ""
1090
 
1091
- #: includes/i18n.php:613
1092
  msgid "Your license was successfully deactivated, you are back to the %s plan."
1093
  msgstr ""
1094
 
1095
- #: includes/i18n.php:615
1096
  msgid "It looks like the license deactivation failed."
1097
  msgstr ""
1098
 
1099
- #: includes/i18n.php:617
1100
  msgid "It looks like the license could not be activated."
1101
  msgstr ""
1102
 
1103
- #: includes/i18n.php:619
1104
  msgid "Error received from the server:"
1105
  msgstr ""
1106
 
1107
- #: includes/i18n.php:621
1108
  msgid "Your trial has expired. You can still continue using all our free features."
1109
  msgstr ""
1110
 
1111
- #: includes/i18n.php:623
1112
  msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1113
  msgstr ""
1114
 
1115
- #: includes/i18n.php:625
1116
  msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1117
  msgstr ""
1118
 
1119
- #: includes/i18n.php:627
1120
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1121
  msgstr ""
1122
 
1123
- #: includes/i18n.php:629
1124
  msgid "Your %s free trial was successfully cancelled."
1125
  msgstr ""
1126
 
1127
- #: includes/i18n.php:631
1128
  msgctxt "%s - numeric version number"
1129
  msgid "Version %s was released."
1130
  msgstr ""
1131
 
1132
- #: includes/i18n.php:633
1133
  msgid "Please download %s."
1134
  msgstr ""
1135
 
1136
- #: includes/i18n.php:635
1137
  msgctxt "%s - plan name, as the latest professional version here"
1138
  msgid "the latest %s version here"
1139
  msgstr ""
1140
 
1141
- #: includes/i18n.php:637
1142
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1143
  msgstr ""
1144
 
1145
- #: includes/i18n.php:639
1146
  msgctxt "call to action"
1147
  msgid "Start free trial"
1148
  msgstr ""
1149
 
1150
- #: includes/i18n.php:641
 
 
 
 
 
 
 
 
1151
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1152
  msgstr ""
1153
 
1154
- #: includes/i18n.php:643
1155
  msgid "You already utilized a trial before."
1156
  msgstr ""
1157
 
1158
- #: includes/i18n.php:645
1159
  msgid "You are already running the plugin in a trial mode."
1160
  msgstr ""
1161
 
1162
- #: includes/i18n.php:647
1163
  msgid "Plan %s do not exist, therefore, can't start a trial."
1164
  msgstr ""
1165
 
1166
- #: includes/i18n.php:649
1167
  msgid "Plan %s does not support a trial period."
1168
  msgstr ""
1169
 
1170
- #: includes/i18n.php:651
1171
  msgid "None of the plugin's plans supports a trial period."
1172
  msgstr ""
1173
 
1174
- #: includes/i18n.php:653
1175
  msgid "Unexpected API error. Please contact the plugin's author with the following error."
1176
  msgstr ""
1177
 
1178
- #: includes/i18n.php:655
1179
  msgid "No commitment for %s days - cancel anytime!"
1180
  msgstr ""
1181
 
1182
- #: includes/i18n.php:657
1183
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
1184
  msgstr ""
1185
 
1186
- #: includes/i18n.php:659
1187
  msgid "Couldn't activate %s."
1188
  msgstr ""
1189
 
1190
- #: includes/i18n.php:661
1191
  msgid "Please contact us with the following message:"
1192
  msgstr ""
1193
 
1194
- #: includes/i18n.php:663
1195
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
1196
  msgstr ""
1197
 
1198
- #: includes/i18n.php:665
1199
  msgid "Please contact us here"
1200
  msgstr ""
1201
 
1202
- #: includes/i18n.php:667
1203
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
1204
  msgstr ""
1205
 
1206
- #: includes/i18n.php:673
1207
  msgid "From unknown reason, the API connectivity test failed."
1208
  msgstr ""
1209
 
1210
- #: includes/i18n.php:675
1211
  msgid "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1212
  msgstr ""
1213
 
1214
- #: includes/i18n.php:677
1215
  msgid "We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server."
1216
  msgstr ""
1217
 
1218
- #: includes/i18n.php:679
1219
  msgid "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1220
  msgstr ""
1221
 
1222
- #: includes/i18n.php:681
1223
  msgctxt "as pluginX requires an access to our API"
1224
  msgid "%s requires an access to our API."
1225
  msgstr ""
1226
 
1227
- #: includes/i18n.php:683
1228
  msgid "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1229
  msgstr ""
1230
 
1231
- #: includes/i18n.php:685
1232
  msgid "I don't know what is Squid or ACL, help me!"
1233
  msgstr ""
1234
 
1235
- #: includes/i18n.php:687, includes/i18n.php:695
1236
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
1237
  msgstr ""
1238
 
1239
- #: includes/i18n.php:689
1240
  msgid "I'm a system administrator"
1241
  msgstr ""
1242
 
1243
- #: includes/i18n.php:691
1244
  msgid "Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again."
1245
  msgstr ""
1246
 
1247
- #: includes/i18n.php:693
1248
  msgid "I don't know what is cURL or how to install it, help me!"
1249
  msgstr ""
1250
 
1251
- #: includes/i18n.php:697
1252
  msgid "Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the plugin and reactivate it back again."
1253
  msgstr ""
1254
 
1255
- #: includes/i18n.php:699
1256
  msgid "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1257
  msgstr ""
1258
 
1259
- #: includes/i18n.php:701
1260
  msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
1261
  msgstr ""
1262
 
1263
- #: includes/i18n.php:703
1264
  msgid "Yes - I'm giving you a chance to fix it"
1265
  msgstr ""
1266
 
1267
- #: includes/i18n.php:705
1268
  msgid "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1269
  msgstr ""
1270
 
1271
- #: includes/i18n.php:707
1272
  msgid "Let's try your previous version"
1273
  msgstr ""
1274
 
1275
- #: includes/i18n.php:709
1276
  msgid "Uninstall this version and install the previous one."
1277
  msgstr ""
1278
 
1279
- #: includes/i18n.php:711
1280
  msgid "That's exhausting, please deactivate"
1281
  msgstr ""
1282
 
1283
- #: includes/i18n.php:713
1284
  msgid "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1285
  msgstr ""
1286
 
1287
- #: includes/i18n.php:715
1288
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
1289
  msgstr ""
1290
 
1291
- #: includes/i18n.php:717
1292
  msgctxt "%1s - plugin title, %2s - API domain"
1293
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1294
  msgstr ""
1295
 
1296
- #: includes/i18n.php:719
1297
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1298
  msgstr ""
1299
 
1300
- #: includes/i18n.php:725
1301
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
1302
  msgstr ""
1303
 
1304
- #: includes/i18n.php:727
1305
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
1306
  msgstr ""
1307
 
1308
- #: includes/i18n.php:729
1309
  msgid "%s is the new owner of the account."
1310
  msgstr ""
1311
 
1312
- #: includes/i18n.php:733
1313
  msgctxt "addonX cannot run without pluginY"
1314
  msgid "%s cannot run without %s."
1315
  msgstr ""
1316
 
1317
- #: includes/i18n.php:735
1318
  msgctxt "addonX cannot run..."
1319
  msgid "%s cannot run without the plugin."
1320
  msgstr ""
1321
 
1322
- #: includes/i18n.php:737
1323
  msgctxt "pluginX activation was successfully..."
1324
  msgid "%s activation was successfully completed."
1325
  msgstr ""
1326
 
1327
- #: includes/i18n.php:739
1328
  msgctxt "Plugin installer section title"
1329
  msgid "Features & Pricing"
1330
  msgstr ""
1331
 
1332
- #: includes/i18n.php:741
1333
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1334
  msgstr ""
1335
 
1336
- #: includes/i18n.php:743
1337
  msgid "Paid add-on must be deployed to Freemius."
1338
  msgstr ""
1339
 
1340
- #: includes/i18n.php:747
1341
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1342
  msgstr ""
1343
 
1344
- #: includes/i18n.php:749
1345
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
1346
  msgstr ""
1347
 
1348
- #: includes/i18n.php:755
1349
  msgctxt "as every month"
1350
  msgid "Monthly"
1351
  msgstr ""
1352
 
1353
- #: includes/i18n.php:757
1354
  msgctxt "as monthly period"
1355
  msgid "mo"
1356
  msgstr ""
1357
 
1358
- #: includes/i18n.php:759
1359
  msgctxt "as once a year"
1360
  msgid "Annual"
1361
  msgstr ""
1362
 
1363
- #: includes/i18n.php:761
1364
  msgctxt "as once a year"
1365
  msgid "Annually"
1366
  msgstr ""
1367
 
1368
- #: includes/i18n.php:763
1369
  msgctxt "as once a year"
1370
  msgid "Once"
1371
  msgstr ""
1372
 
1373
- #: includes/i18n.php:765
1374
  msgctxt "as annual period"
1375
  msgid "year"
1376
  msgstr ""
1377
 
1378
- #: includes/i18n.php:767
1379
  msgid "Lifetime"
1380
  msgstr ""
1381
 
1382
- #: includes/i18n.php:769
1383
  msgctxt "e.g. the best product"
1384
  msgid "Best"
1385
  msgstr ""
1386
 
1387
- #: includes/i18n.php:771
1388
  msgctxt "e.g. billed monthly"
1389
  msgid "Billed %s"
1390
  msgstr ""
1391
 
1392
- #: includes/i18n.php:773
1393
  msgctxt "as a discount of $5 or 10%"
1394
  msgid "Save %s"
1395
  msgstr ""
1396
 
1397
- #: includes/i18n.php:777
1398
  msgid "View details"
1399
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  msgstr ""
134
 
135
  #: includes/i18n.php:119
136
+ msgctxt "verb"
137
+ msgid "Update"
138
  msgstr ""
139
 
140
  #: includes/i18n.php:121
141
+ msgid "Date"
142
  msgstr ""
143
 
144
  #: includes/i18n.php:123
145
+ msgid "Amount"
146
  msgstr ""
147
 
148
  #: includes/i18n.php:125
149
+ msgid "Invoice"
150
  msgstr ""
151
 
152
  #: includes/i18n.php:127
153
+ msgid "Billing"
154
  msgstr ""
155
 
156
  #: includes/i18n.php:129
157
+ msgid "Payments"
158
  msgstr ""
159
 
160
  #: includes/i18n.php:131
161
+ msgid "Delete Account"
162
+ msgstr ""
163
+
164
+ #: includes/i18n.php:133
165
  msgctxt "as close a window"
166
  msgid "Dismiss"
167
  msgstr ""
168
 
169
+ #: includes/i18n.php:135
170
  msgctxt "as product pricing plan"
171
  msgid "Plan"
172
  msgstr ""
173
 
174
+ #: includes/i18n.php:137
175
  msgid "Change Plan"
176
  msgstr ""
177
 
178
+ #: includes/i18n.php:139
179
  msgctxt "as download professional version"
180
  msgid "Download %s Version"
181
  msgstr ""
182
 
183
+ #: includes/i18n.php:141
184
  msgctxt "as download professional version now"
185
  msgid "Download %s version now"
186
  msgstr ""
187
 
188
+ #: includes/i18n.php:145
189
  msgctxt "as download latest version"
190
  msgid "Download Latest"
191
  msgstr ""
192
 
193
+ #: includes/i18n.php:147
194
  msgctxt "E.g. you have a professional license."
195
  msgid "You have a %s license."
196
  msgstr ""
197
 
198
+ #: includes/i18n.php:151
199
  msgid "New"
200
  msgstr ""
201
 
202
+ #: includes/i18n.php:153
203
  msgid "Free"
204
  msgstr ""
205
 
206
+ #: includes/i18n.php:155
207
  msgctxt "as trial plan"
208
  msgid "Trial"
209
  msgstr ""
210
 
211
+ #: includes/i18n.php:157
212
+ msgctxt "as starting a trial plan"
213
+ msgid "Start Trial"
214
+ msgstr ""
215
+
216
+ #: includes/i18n.php:159
217
  msgctxt "verb"
218
  msgid "Purchase"
219
  msgstr ""
220
 
221
+ #: includes/i18n.php:161
222
  msgid "Purchase License"
223
  msgstr ""
224
 
225
+ #: includes/i18n.php:163
226
  msgctxt "verb"
227
  msgid "Buy"
228
  msgstr ""
229
 
230
+ #: includes/i18n.php:165
231
  msgid "Buy License"
232
  msgstr ""
233
 
234
+ #: includes/i18n.php:167
235
  msgid "Single Site License"
236
  msgstr ""
237
 
238
+ #: includes/i18n.php:169
239
  msgid "Unlimited Licenses"
240
  msgstr ""
241
 
242
+ #: includes/i18n.php:171
243
  msgid "Up to %s Sites"
244
  msgstr ""
245
 
246
+ #: includes/i18n.php:173
247
  msgid "%sRenew your license now%s to access version %s features and support."
248
  msgstr ""
249
 
250
+ #: includes/i18n.php:177
251
  msgid "Enter the email address you've used for the upgrade below and we will resend you the license key."
252
  msgstr ""
253
 
254
+ #: includes/i18n.php:181
255
  msgctxt "e.g. Professional Plan"
256
  msgid "%s Plan"
257
  msgstr ""
258
 
259
+ #: includes/i18n.php:183
260
  msgid "You are just one step away - %s"
261
  msgstr ""
262
 
263
+ #: includes/i18n.php:185
264
  msgctxt "%s - plugin name. As complete \"Jetpack\" activation now"
265
  msgid "Complete \"%s\" Activation Now"
266
  msgstr ""
267
 
268
+ #: includes/i18n.php:189
269
  msgid "We made a few tweaks to the plugin, %s"
270
  msgstr ""
271
 
272
+ #: includes/i18n.php:191
273
  msgid "Opt-in to make \"%s\" Better!"
274
  msgstr ""
275
 
276
+ #: includes/i18n.php:193
277
  msgid "Error"
278
  msgstr ""
279
 
280
+ #: includes/i18n.php:195
281
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
282
  msgstr ""
283
 
284
+ #: includes/i18n.php:203
285
  msgctxt "as expiration date"
286
  msgid "Expiration"
287
  msgstr ""
288
 
289
+ #: includes/i18n.php:205
290
  msgctxt "as software license"
291
  msgid "License"
292
  msgstr ""
293
 
294
+ #: includes/i18n.php:207
295
  msgid "not verified"
296
  msgstr ""
297
 
298
+ #: includes/i18n.php:209
299
  msgid "Verify Email"
300
  msgstr ""
301
 
302
+ #: includes/i18n.php:211
303
  msgctxt "e.g. expires in 2 months"
304
  msgid "Expires in %s"
305
  msgstr ""
306
 
307
+ #: includes/i18n.php:213
308
  msgctxt "e.g. auto renews in 2 months"
309
  msgid "Auto renews in %s"
310
  msgstr ""
311
 
312
+ #: includes/i18n.php:215
313
  msgid "No expiration"
314
  msgstr ""
315
 
316
+ #: includes/i18n.php:217
317
  msgid "Expired"
318
  msgstr ""
319
 
320
+ #: includes/i18n.php:219
321
  msgid "Cancelled"
322
  msgstr ""
323
 
324
+ #: includes/i18n.php:221
325
  msgctxt "e.g. In 2 hours"
326
  msgid "In %s"
327
  msgstr ""
328
 
329
+ #: includes/i18n.php:223
330
  msgctxt "e.g. 2 min ago"
331
  msgid "%s ago"
332
  msgstr ""
333
 
334
+ #: includes/i18n.php:225
335
  msgctxt "as plugin version"
336
  msgid "Version"
337
  msgstr ""
338
 
339
+ #: includes/i18n.php:227
340
  msgid "Name"
341
  msgstr ""
342
 
343
+ #: includes/i18n.php:229
344
  msgid "Email"
345
  msgstr ""
346
 
347
+ #: includes/i18n.php:231
348
  msgid "Email address"
349
  msgstr ""
350
 
351
+ #: includes/i18n.php:233
352
  msgid "Verified"
353
  msgstr ""
354
 
355
+ #: includes/i18n.php:235
356
  msgid "Plugin"
357
  msgstr ""
358
 
359
+ #: includes/i18n.php:237
360
  msgid "Plugins"
361
  msgstr ""
362
 
363
+ #: includes/i18n.php:239
364
  msgid "Themes"
365
  msgstr ""
366
 
367
+ #: includes/i18n.php:241
368
  msgctxt "as file/folder path"
369
  msgid "Path"
370
  msgstr ""
371
 
372
+ #: includes/i18n.php:243
373
  msgid "Title"
374
  msgstr ""
375
 
376
+ #: includes/i18n.php:245
377
  msgid "Free version"
378
  msgstr ""
379
 
380
+ #: includes/i18n.php:247
381
  msgid "Premium version"
382
  msgstr ""
383
 
384
+ #: includes/i18n.php:249
385
  msgctxt "as WP plugin slug"
386
  msgid "Slug"
387
  msgstr ""
388
 
389
+ #: includes/i18n.php:251
390
  msgid "ID"
391
  msgstr ""
392
 
393
+ #: includes/i18n.php:253
394
  msgid "Users"
395
  msgstr ""
396
 
397
+ #: includes/i18n.php:255
398
  msgid "Plugin Installs"
399
  msgstr ""
400
 
401
+ #: includes/i18n.php:257
402
  msgctxt "like websites"
403
  msgid "Sites"
404
  msgstr ""
405
 
406
+ #: includes/i18n.php:259
407
  msgid "User ID"
408
  msgstr ""
409
 
410
+ #: includes/i18n.php:261
411
  msgid "Site ID"
412
  msgstr ""
413
 
414
+ #: includes/i18n.php:263
415
  msgid "Public Key"
416
  msgstr ""
417
 
418
+ #: includes/i18n.php:265
419
  msgid "Secret Key"
420
  msgstr ""
421
 
422
+ #: includes/i18n.php:267
423
  msgctxt "as secret encryption key missing"
424
  msgid "No Secret"
425
  msgstr ""
426
 
427
+ #: includes/i18n.php:269
428
  msgid "No ID"
429
  msgstr ""
430
 
431
+ #: includes/i18n.php:271
432
  msgctxt "as synchronize license"
433
  msgid "Sync License"
434
  msgstr ""
435
 
436
+ #: includes/i18n.php:273
437
  msgctxt "as synchronize"
438
  msgid "Sync"
439
  msgstr ""
440
 
441
+ #: includes/i18n.php:275
442
  msgid "Activate License"
443
  msgstr ""
444
 
445
+ #: includes/i18n.php:277
446
  msgid "Activate Free Version"
447
  msgstr ""
448
 
449
+ #: includes/i18n.php:279
450
  msgid "Please enter the license key that you received in the email right after the purchase:"
451
  msgstr ""
452
 
453
+ #: includes/i18n.php:283
454
  msgid "Activating license..."
455
  msgstr ""
456
 
457
+ #: includes/i18n.php:285
458
  msgid "Change License"
459
  msgstr ""
460
 
461
+ #: includes/i18n.php:287
462
  msgid "Update License"
463
  msgstr ""
464
 
465
+ #: includes/i18n.php:289
466
  msgid "Deactivate License"
467
  msgstr ""
468
 
469
+ #: includes/i18n.php:291
470
  msgid "Activate"
471
  msgstr ""
472
 
473
+ #: includes/i18n.php:293
474
  msgid "Deactivate"
475
  msgstr ""
476
 
477
+ #: includes/i18n.php:295
478
  msgid "Skip & Deactivate"
479
  msgstr ""
480
 
481
+ #: includes/i18n.php:297
482
  msgid "No - just deactivate"
483
  msgstr ""
484
 
485
+ #: includes/i18n.php:299
486
  msgid "Yes - do your thing"
487
  msgstr ""
488
 
489
+ #: includes/i18n.php:301
490
  msgctxt "active mode"
491
  msgid "Active"
492
  msgstr ""
493
 
494
+ #: includes/i18n.php:303
495
  msgctxt "is active mode?"
496
  msgid "Is Active"
497
  msgstr ""
498
 
499
+ #: includes/i18n.php:305
500
  msgid "Install Now"
501
  msgstr ""
502
 
503
+ #: includes/i18n.php:307
504
  msgid "Install Update Now"
505
  msgstr ""
506
 
507
+ #: includes/i18n.php:309
508
  msgid "More information about %s"
509
  msgstr ""
510
 
511
+ #: includes/i18n.php:311
512
  msgid "Localhost"
513
  msgstr ""
514
 
515
+ #: includes/i18n.php:313
516
  msgctxt "as activate Professional plan"
517
  msgid "Activate %s Plan"
518
  msgstr ""
519
 
520
+ #: includes/i18n.php:315
521
  msgctxt "as 5 licenses left"
522
  msgid "%s left"
523
  msgstr ""
524
 
525
+ #: includes/i18n.php:317
526
  msgid "Last license"
527
  msgstr ""
528
 
529
+ #: includes/i18n.php:319
530
  msgid "What is your %s?"
531
  msgstr ""
532
 
533
+ #: includes/i18n.php:321
534
  msgid "Activate this add-on"
535
  msgstr ""
536
 
537
+ #: includes/i18n.php:323
538
  msgid "Deactivating your license will block all premium features, but will enable you to activate the license on another site. Are you sure you want to proceed?"
539
  msgstr ""
540
 
541
+ #: includes/i18n.php:327
542
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
543
  msgstr ""
544
 
545
+ #: includes/i18n.php:331
546
  msgid "Deletion is not temporary. Only delete if you no longer want to use this plugin anymore. Are you sure you would like to continue with the deletion?"
547
  msgstr ""
548
 
549
+ #: includes/i18n.php:335
550
  msgid "Downgrading your plan will immediately stop all future recurring payments and your %s plan license will expire in %s."
551
  msgstr ""
552
 
553
+ #: includes/i18n.php:339
554
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
555
  msgstr ""
556
 
557
+ #: includes/i18n.php:343
558
  msgid "You can still enjoy all %s features but you will not have access to plugin updates and support."
559
  msgstr ""
560
 
561
+ #: includes/i18n.php:347
562
  msgid "Once your license expire you can still use the Free version but you will NOT have access to the %s features."
563
  msgstr ""
564
 
565
+ #: includes/i18n.php:351
566
  msgid "Are you sure you want to proceed?"
567
  msgstr ""
568
 
569
+ #: includes/i18n.php:357
570
  msgid "Add Ons for %s"
571
  msgstr ""
572
 
573
+ #: includes/i18n.php:359
574
  msgid "We could'nt load the add-ons list. It's probably an issue on our side, please try to come back in few minutes."
575
  msgstr ""
576
 
577
+ #: includes/i18n.php:365
578
  msgid "Anonymous feedback"
579
  msgstr ""
580
 
581
+ #: includes/i18n.php:367
582
  msgid "Quick feedback"
583
  msgstr ""
584
 
585
+ #: includes/i18n.php:369
586
  msgid "If you have a moment, please let us know why you are deactivating"
587
  msgstr ""
588
 
589
+ #: includes/i18n.php:373
590
  msgid "Yes - Deactivate"
591
  msgstr ""
592
 
593
+ #: includes/i18n.php:375
594
  msgid "Submit & Deactivate"
595
  msgstr ""
596
 
597
+ #: includes/i18n.php:377
 
598
  msgid "Cancel"
599
  msgstr ""
600
 
601
+ #: includes/i18n.php:379
602
  msgid "I no longer need the plugin"
603
  msgstr ""
604
 
605
+ #: includes/i18n.php:381
606
  msgid "I found a better plugin"
607
  msgstr ""
608
 
609
+ #: includes/i18n.php:383
610
  msgid "I only needed the plugin for a short period"
611
  msgstr ""
612
 
613
+ #: includes/i18n.php:385
614
  msgid "The plugin broke my site"
615
  msgstr ""
616
 
617
+ #: includes/i18n.php:387
618
  msgid "The plugin suddenly stopped working"
619
  msgstr ""
620
 
621
+ #: includes/i18n.php:389
622
  msgid "I can't pay for it anymore"
623
  msgstr ""
624
 
625
+ #: includes/i18n.php:391
626
  msgid "It's a temporary deactivation. I'm just debugging an issue."
627
  msgstr ""
628
 
629
+ #: includes/i18n.php:395
630
  msgctxt "the text of the \"other\" reason for deactivating the plugin that is shown in the modal box."
631
  msgid "Other"
632
  msgstr ""
633
 
634
+ #: includes/i18n.php:399
635
  msgid "Kindly tell us the reason so we can improve."
636
  msgstr ""
637
 
638
+ #: includes/i18n.php:401
639
  msgid "What's the plugin's name?"
640
  msgstr ""
641
 
642
+ #: includes/i18n.php:403
643
  msgid "What price would you feel comfortable paying?"
644
  msgstr ""
645
 
646
+ #: includes/i18n.php:405
647
  msgid "I couldn't understand how to make it work"
648
  msgstr ""
649
 
650
+ #: includes/i18n.php:407
651
  msgid "The plugin is great, but I need specific feature that you don't support"
652
  msgstr ""
653
 
654
+ #: includes/i18n.php:411
655
  msgid "The plugin is not working"
656
  msgstr ""
657
 
658
+ #: includes/i18n.php:413
659
  msgid "It's not what I was looking for"
660
  msgstr ""
661
 
662
+ #: includes/i18n.php:415
663
  msgid "The plugin didn't work as expected"
664
  msgstr ""
665
 
666
+ #: includes/i18n.php:417
667
  msgid "What feature?"
668
  msgstr ""
669
 
670
+ #: includes/i18n.php:419
671
  msgid "Kindly share what didn't work so we can fix it for future users..."
672
  msgstr ""
673
 
674
+ #: includes/i18n.php:423
675
  msgid "What you've been looking for?"
676
  msgstr ""
677
 
678
+ #: includes/i18n.php:425
679
  msgid "What did you expect?"
680
  msgstr ""
681
 
682
+ #: includes/i18n.php:427
683
  msgid "The plugin didn't work"
684
  msgstr ""
685
 
686
+ #: includes/i18n.php:429
687
  msgid "I don't like to share my information with you"
688
  msgstr ""
689
 
690
+ #: includes/i18n.php:431
691
  msgid "You might have missed it, but you don't have to share any data and can just %s the opt-in."
692
  msgstr ""
693
 
694
+ #: includes/i18n.php:441
695
  msgctxt "greeting"
696
  msgid "Hey %s,"
697
  msgstr ""
698
 
699
+ #: includes/i18n.php:443
700
  msgctxt "a greeting. E.g. Thanks John!"
701
  msgid "Thanks %s!"
702
  msgstr ""
703
 
704
+ #: includes/i18n.php:445
705
+ msgid "Never miss an important update - opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
706
  msgstr ""
707
 
708
+ #: includes/i18n.php:449
709
+ msgid "Please help us improve %1$s! If you opt-in, some data about your usage of %1$s will be sent to %4$s. If you skip this, that's okay! %1$s will still work just fine."
710
  msgstr ""
711
 
712
+ #: includes/i18n.php:453
713
+ msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
714
  msgstr ""
715
 
716
+ #: includes/i18n.php:455
717
+ msgid "complete the install"
718
+ msgstr ""
719
+
720
+ #: includes/i18n.php:457
721
+ msgid "start the trial"
722
+ msgstr ""
723
+
724
+ #: includes/i18n.php:459
725
  msgid "Thanks for purchasing %s! To get started, please enter your license key:"
726
  msgstr ""
727
 
728
+ #: includes/i18n.php:463
729
  msgid "The plugin will be periodically sending data to %s to check for plugin updates and verify the validity of your license."
730
  msgstr ""
731
 
732
+ #: includes/i18n.php:467
733
  msgid "What permissions are being granted?"
734
  msgstr ""
735
 
736
+ #: includes/i18n.php:469
737
  msgid "Your Profile Overview"
738
  msgstr ""
739
 
740
+ #: includes/i18n.php:471
741
  msgid "Name and email address"
742
  msgstr ""
743
 
744
+ #: includes/i18n.php:473
745
  msgid "Your Site Overview"
746
  msgstr ""
747
 
748
+ #: includes/i18n.php:475
749
  msgid "Site URL, WP version, PHP info, plugins & themes"
750
  msgstr ""
751
 
752
+ #: includes/i18n.php:479
753
  msgid "Current Plugin Events"
754
  msgstr ""
755
 
756
+ #: includes/i18n.php:481
757
  msgid "Activation, deactivation and uninstall"
758
  msgstr ""
759
 
760
+ #: includes/i18n.php:483
761
  msgid "Plugins & Themes"
762
  msgstr ""
763
 
764
+ #: includes/i18n.php:485
765
  msgid "Titles, versions and state."
766
  msgstr ""
767
 
768
+ #: includes/i18n.php:487
769
+ msgid "Admin Notices"
770
+ msgstr ""
771
+
772
+ #: includes/i18n.php:489
773
  msgid "Newsletter"
774
  msgstr ""
775
 
776
+ #: includes/i18n.php:491
777
  msgid "Updates, announcements, marketing, no spam"
778
  msgstr ""
779
 
780
+ #: includes/i18n.php:493
781
  msgid "Privacy Policy"
782
  msgstr ""
783
 
784
+ #: includes/i18n.php:495
785
  msgid "Terms of Service"
786
  msgstr ""
787
 
788
+ #: includes/i18n.php:497
789
  msgctxt "as activating plugin"
790
  msgid "Activating"
791
  msgstr ""
792
 
793
+ #: includes/i18n.php:499
794
  msgctxt "as in the process of sending an email"
795
  msgid "Sending email"
796
  msgstr ""
797
 
798
+ #: includes/i18n.php:503
799
  msgctxt "button label"
800
  msgid "Allow & Continue"
801
  msgstr ""
802
 
803
+ #: includes/i18n.php:505
804
  msgctxt "button label"
805
  msgid "Agree & Activate License"
806
  msgstr ""
807
 
808
+ #: includes/i18n.php:507
809
  msgctxt "verb"
810
  msgid "Skip"
811
  msgstr ""
812
 
813
+ #: includes/i18n.php:509
814
  msgid "Click here to use the plugin anonymously"
815
  msgstr ""
816
 
817
+ #: includes/i18n.php:511
818
  msgid "Re-send activation email"
819
  msgstr ""
820
 
821
+ #: includes/i18n.php:513
822
  msgid "License key"
823
  msgstr ""
824
 
825
+ #: includes/i18n.php:515
826
  msgid "Send License Key"
827
  msgstr ""
828
 
829
+ #: includes/i18n.php:517
830
  msgid "Sending license key"
831
  msgstr ""
832
 
833
+ #: includes/i18n.php:519
834
  msgid "Have a license key?"
835
  msgstr ""
836
 
837
+ #: includes/i18n.php:521
838
  msgid "Don't have a license key?"
839
  msgstr ""
840
 
841
+ #: includes/i18n.php:523
842
  msgid "Can't find your license key?"
843
  msgstr ""
844
 
845
+ #: includes/i18n.php:525
846
+ msgid "We couldn't find your email address in the system, are you sure it's the right address?"
847
+ msgstr ""
848
+
849
+ #: includes/i18n.php:529
850
+ msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
851
+ msgstr ""
852
+
853
+ #: includes/i18n.php:533
854
+ msgid "Opt In"
855
+ msgstr ""
856
+
857
+ #: includes/i18n.php:535
858
+ msgid "Opt Out"
859
+ msgstr ""
860
+
861
+ #: includes/i18n.php:537
862
+ msgid "On second thought - I want to continue helping"
863
+ msgstr ""
864
+
865
+ #: includes/i18n.php:541
866
+ msgid "Opting out..."
867
+ msgstr ""
868
+
869
+ #: includes/i18n.php:543
870
+ msgid "Opting in..."
871
+ msgstr ""
872
+
873
+ #: includes/i18n.php:545
874
+ msgid "We appreciate your help in making the %s better by letting us track some usage data."
875
+ msgstr ""
876
+
877
+ #: includes/i18n.php:549
878
+ msgid "Usage tracking is done in the name of making %s better. Making a better user experience, prioritizing new features, and more good things. We'd really appreciate if you'll reconsider letting us continue with the tracking."
879
+ msgstr ""
880
+
881
+ #: includes/i18n.php:553
882
+ msgid "By clicking \"Opt Out\", we will no longer be sending any data from %s to %s."
883
+ msgstr ""
884
+
885
+ #: includes/i18n.php:563
886
  msgid "Screenshots"
887
  msgstr ""
888
 
889
+ #: includes/i18n.php:565
890
  msgid "Click to view full-size screenshot %d"
891
  msgstr ""
892
 
893
+ #: includes/i18n.php:573
894
  msgid "Freemius Debug"
895
  msgstr ""
896
 
897
+ #: includes/i18n.php:575
898
  msgctxt "as turned on"
899
  msgid "On"
900
  msgstr ""
901
 
902
+ #: includes/i18n.php:577
903
  msgctxt "as turned off"
904
  msgid "Off"
905
  msgstr ""
906
 
907
+ #: includes/i18n.php:579
908
  msgctxt "as code debugging"
909
  msgid "Debugging"
910
  msgstr ""
911
 
912
+ #: includes/i18n.php:581
913
  msgid "Freemius State"
914
  msgstr ""
915
 
916
+ #: includes/i18n.php:583
917
  msgctxt "as connection was successful"
918
  msgid "Connected"
919
  msgstr ""
920
 
921
+ #: includes/i18n.php:585
922
  msgctxt "as connection blocked"
923
  msgid "Blocked"
924
  msgstr ""
925
 
926
+ #: includes/i18n.php:587
927
  msgctxt "as application program interface"
928
  msgid "API"
929
  msgstr ""
930
 
931
+ #: includes/i18n.php:589
932
  msgctxt "as software development kit versions"
933
  msgid "SDK"
934
  msgstr ""
935
 
936
+ #: includes/i18n.php:591
937
  msgctxt "as software development kit versions"
938
  msgid "SDK Versions"
939
  msgstr ""
940
 
941
+ #: includes/i18n.php:595
942
  msgctxt "as plugin folder path"
943
  msgid "Plugin Path"
944
  msgstr ""
945
 
946
+ #: includes/i18n.php:597
947
  msgctxt "as sdk path"
948
  msgid "SDK Path"
949
  msgstr ""
950
 
951
+ #: includes/i18n.php:599
952
  msgid "Add Ons of Plugin %s"
953
  msgstr ""
954
 
955
+ #: includes/i18n.php:601
956
  msgid "Are you sure you want to delete all Freemius data?"
957
  msgstr ""
958
 
959
+ #: includes/i18n.php:605
960
  msgid "Actions"
961
  msgstr ""
962
 
963
+ #: includes/i18n.php:607
964
  msgid "Delete All Accounts"
965
  msgstr ""
966
 
967
+ #: includes/i18n.php:609
968
  msgid "Start Fresh"
969
  msgstr ""
970
 
971
+ #: includes/i18n.php:611
972
  msgid "Clear API Cache"
973
  msgstr ""
974
 
975
+ #: includes/i18n.php:613
976
  msgid "Sync Data From Server"
977
  msgstr ""
978
 
979
+ #: includes/i18n.php:615
980
  msgid "Scheduled Crons"
981
  msgstr ""
982
 
983
+ #: includes/i18n.php:617
984
  msgid "Plugins & Themes Sync"
985
  msgstr ""
986
 
987
+ #: includes/i18n.php:625
988
  msgctxt "as congratulations"
989
  msgid "Congrats"
990
  msgstr ""
991
 
992
+ #: includes/i18n.php:627
993
  msgctxt "exclamation"
994
  msgid "Oops"
995
  msgstr ""
996
 
997
+ #: includes/i18n.php:629
998
  msgctxt "interjection expressing joy or exuberance"
999
  msgid "Yee-haw"
1000
  msgstr ""
1001
 
1002
+ #: includes/i18n.php:633
1003
  msgctxt "(especially in electronic communication) used to express elation, enthusiasm, or triumph."
1004
  msgid "W00t"
1005
  msgstr ""
1006
 
1007
+ #: includes/i18n.php:637
1008
  msgctxt "a positive response"
1009
  msgid "Right on"
1010
  msgstr ""
1011
 
1012
+ #: includes/i18n.php:639
1013
  msgctxt "something somebody says when they are thinking about what you have just said. "
1014
  msgid "Hmm"
1015
  msgstr ""
1016
 
1017
+ #: includes/i18n.php:643
1018
  msgid "O.K"
1019
  msgstr ""
1020
 
1021
+ #: includes/i18n.php:645
1022
  msgctxt "exclamation"
1023
  msgid "Hey"
1024
  msgstr ""
1025
 
1026
+ #: includes/i18n.php:647
1027
  msgctxt "advance notice of something that will need attention."
1028
  msgid "Heads up"
1029
  msgstr ""
1030
 
1031
+ #: includes/i18n.php:657
1032
  msgid "Seems like you got the latest release."
1033
  msgstr ""
1034
 
1035
+ #: includes/i18n.php:659
1036
  msgid "You are all good!"
1037
  msgstr ""
1038
 
1039
+ #: includes/i18n.php:661
1040
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
1041
  msgstr ""
1042
 
1043
+ #: includes/i18n.php:665
1044
  msgid "If you would like to give up the ownership of the plugin's account to %s click the Change Ownership button."
1045
  msgstr ""
1046
 
1047
+ #: includes/i18n.php:669
1048
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
1049
  msgstr ""
1050
 
1051
+ #: includes/i18n.php:673
1052
  msgid "Your name was successfully updated."
1053
  msgstr ""
1054
 
1055
+ #: includes/i18n.php:675
1056
  msgid "You have successfully updated your %s."
1057
  msgstr ""
1058
 
1059
+ #: includes/i18n.php:677
1060
  msgid "Please provide your full name."
1061
  msgstr ""
1062
 
1063
+ #: includes/i18n.php:679
1064
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
1065
  msgstr ""
1066
 
1067
+ #: includes/i18n.php:683
1068
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
1069
  msgstr ""
1070
 
1071
+ #: includes/i18n.php:687
1072
  msgid "No credit card required"
1073
  msgstr ""
1074
 
1075
+ #: includes/i18n.php:689
1076
  msgid "Premium plugin version was successfully activated."
1077
  msgstr ""
1078
 
1079
+ #: includes/i18n.php:693
1080
  msgid "The upgrade of %s was successfully completed."
1081
  msgstr ""
1082
 
1083
+ #: includes/i18n.php:695
1084
  msgid "Your account was successfully activated with the %s plan."
1085
  msgstr ""
1086
 
1087
+ #: includes/i18n.php:699
1088
  msgid "Download the latest %s version now"
1089
  msgstr ""
1090
 
1091
+ #: includes/i18n.php:701
1092
  msgid "Please follow these steps to complete the upgrade"
1093
  msgstr ""
1094
 
1095
+ #: includes/i18n.php:705
1096
  msgid "Download the latest %s version"
1097
  msgstr ""
1098
 
1099
+ #: includes/i18n.php:707
1100
+ msgid "Download the latest version"
1101
+ msgstr ""
1102
+
1103
+ #: includes/i18n.php:709
1104
  msgid "Deactivate the free version"
1105
  msgstr ""
1106
 
1107
+ #: includes/i18n.php:711
1108
  msgid "Upload and activate the downloaded version"
1109
  msgstr ""
1110
 
1111
+ #: includes/i18n.php:713
1112
  msgid "How to upload and activate?"
1113
  msgstr ""
1114
 
1115
+ #: includes/i18n.php:715
1116
  msgctxt "%s - product name, e.g. Facebook add-on was successfully..."
1117
  msgid "%s Add-on was successfully purchased."
1118
  msgstr ""
1119
 
1120
+ #: includes/i18n.php:719
1121
  msgid "Your %s Add-on plan was successfully upgraded."
1122
  msgstr ""
1123
 
1124
+ #: includes/i18n.php:723
1125
  msgid "Your email has been successfully verified - you are AWESOME!"
1126
  msgstr ""
1127
 
1128
+ #: includes/i18n.php:727
1129
  msgid "Your plan was successfully upgraded."
1130
  msgstr ""
1131
 
1132
+ #: includes/i18n.php:729
1133
  msgid "Your plan was successfully changed to %s."
1134
  msgstr ""
1135
 
1136
+ #: includes/i18n.php:731
1137
  msgid "Your license has expired. You can still continue using the free plugin forever."
1138
  msgstr ""
1139
 
1140
+ #: includes/i18n.php:735
1141
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
1142
  msgstr ""
1143
 
1144
+ #: includes/i18n.php:739
1145
  msgid "Your trial has been successfully started."
1146
  msgstr ""
1147
 
1148
+ #: includes/i18n.php:741
1149
  msgid "Your license was successfully activated."
1150
  msgstr ""
1151
 
1152
+ #: includes/i18n.php:743
1153
  msgid "It looks like your site currently doesn't have an active license."
1154
  msgstr ""
1155
 
1156
+ #: includes/i18n.php:747
1157
  msgid "Your license was successfully deactivated, you are back to the %s plan."
1158
  msgstr ""
1159
 
1160
+ #: includes/i18n.php:751
1161
  msgid "It looks like the license deactivation failed."
1162
  msgstr ""
1163
 
1164
+ #: includes/i18n.php:755
1165
  msgid "It looks like the license could not be activated."
1166
  msgstr ""
1167
 
1168
+ #: includes/i18n.php:759
1169
  msgid "Error received from the server:"
1170
  msgstr ""
1171
 
1172
+ #: includes/i18n.php:761
1173
  msgid "Your trial has expired. You can still continue using all our free features."
1174
  msgstr ""
1175
 
1176
+ #: includes/i18n.php:765
1177
  msgid "Your plan was successfully downgraded. Your %s plan license will expire in %s."
1178
  msgstr ""
1179
 
1180
+ #: includes/i18n.php:769
1181
  msgid "Seems like we are having some temporary issue with your plan downgrade. Please try again in few minutes."
1182
  msgstr ""
1183
 
1184
+ #: includes/i18n.php:773
1185
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
1186
  msgstr ""
1187
 
1188
+ #: includes/i18n.php:777
1189
  msgid "Your %s free trial was successfully cancelled."
1190
  msgstr ""
1191
 
1192
+ #: includes/i18n.php:781
1193
  msgctxt "%s - numeric version number"
1194
  msgid "Version %s was released."
1195
  msgstr ""
1196
 
1197
+ #: includes/i18n.php:785
1198
  msgid "Please download %s."
1199
  msgstr ""
1200
 
1201
+ #: includes/i18n.php:787
1202
  msgctxt "%s - plan name, as the latest professional version here"
1203
  msgid "the latest %s version here"
1204
  msgstr ""
1205
 
1206
+ #: includes/i18n.php:791
1207
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
1208
  msgstr ""
1209
 
1210
+ #: includes/i18n.php:795
1211
  msgctxt "call to action"
1212
  msgid "Start free trial"
1213
  msgstr ""
1214
 
1215
+ #: includes/i18n.php:797
1216
+ msgid "Starting trial"
1217
+ msgstr ""
1218
+
1219
+ #: includes/i18n.php:799
1220
+ msgid "Please wait"
1221
+ msgstr ""
1222
+
1223
+ #: includes/i18n.php:801
1224
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
1225
  msgstr ""
1226
 
1227
+ #: includes/i18n.php:805
1228
  msgid "You already utilized a trial before."
1229
  msgstr ""
1230
 
1231
+ #: includes/i18n.php:807
1232
  msgid "You are already running the plugin in a trial mode."
1233
  msgstr ""
1234
 
1235
+ #: includes/i18n.php:811
1236
  msgid "Plan %s do not exist, therefore, can't start a trial."
1237
  msgstr ""
1238
 
1239
+ #: includes/i18n.php:815
1240
  msgid "Plan %s does not support a trial period."
1241
  msgstr ""
1242
 
1243
+ #: includes/i18n.php:817
1244
  msgid "None of the plugin's plans supports a trial period."
1245
  msgstr ""
1246
 
1247
+ #: includes/i18n.php:821
1248
  msgid "Unexpected API error. Please contact the plugin's author with the following error."
1249
  msgstr ""
1250
 
1251
+ #: includes/i18n.php:825
1252
  msgid "No commitment for %s days - cancel anytime!"
1253
  msgstr ""
1254
 
1255
+ #: includes/i18n.php:827
1256
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
1257
  msgstr ""
1258
 
1259
+ #: includes/i18n.php:831
1260
  msgid "Couldn't activate %s."
1261
  msgstr ""
1262
 
1263
+ #: includes/i18n.php:833
1264
  msgid "Please contact us with the following message:"
1265
  msgstr ""
1266
 
1267
+ #: includes/i18n.php:835
1268
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
1269
  msgstr ""
1270
 
1271
+ #: includes/i18n.php:839
1272
  msgid "Please contact us here"
1273
  msgstr ""
1274
 
1275
+ #: includes/i18n.php:841
1276
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
1277
  msgstr ""
1278
 
1279
+ #: includes/i18n.php:849
1280
  msgid "From unknown reason, the API connectivity test failed."
1281
  msgstr ""
1282
 
1283
+ #: includes/i18n.php:853
1284
  msgid "It's probably a temporary issue on our end. Just to be sure, with your permission, would it be o.k to run another connectivity test?"
1285
  msgstr ""
1286
 
1287
+ #: includes/i18n.php:857
1288
  msgid "We use PHP cURL library for the API calls, which is a very common library and usually installed out of the box. Unfortunately, cURL is not installed on your server."
1289
  msgstr ""
1290
 
1291
+ #: includes/i18n.php:861
1292
  msgid "From unknown reason, CloudFlare, the firewall we use, blocks the connection."
1293
  msgstr ""
1294
 
1295
+ #: includes/i18n.php:865
1296
  msgctxt "as pluginX requires an access to our API"
1297
  msgid "%s requires an access to our API."
1298
  msgstr ""
1299
 
1300
+ #: includes/i18n.php:869
1301
  msgid "It looks like your server is using Squid ACL (access control lists), which blocks the connection."
1302
  msgstr ""
1303
 
1304
+ #: includes/i18n.php:873
1305
  msgid "I don't know what is Squid or ACL, help me!"
1306
  msgstr ""
1307
 
1308
+ #: includes/i18n.php:875, includes/i18n.php:889
1309
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
1310
  msgstr ""
1311
 
1312
+ #: includes/i18n.php:879
1313
  msgid "I'm a system administrator"
1314
  msgstr ""
1315
 
1316
+ #: includes/i18n.php:881
1317
  msgid "Great, please whitelist the following domains: %s. Once you done, deactivate the plugin and activate it again."
1318
  msgstr ""
1319
 
1320
+ #: includes/i18n.php:885
1321
  msgid "I don't know what is cURL or how to install it, help me!"
1322
  msgstr ""
1323
 
1324
+ #: includes/i18n.php:893
1325
  msgid "Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the plugin and reactivate it back again."
1326
  msgstr ""
1327
 
1328
+ #: includes/i18n.php:897
1329
  msgid "We are sure it's an issue on our side and more than happy to resolve it for you ASAP if you give us a chance."
1330
  msgstr ""
1331
 
1332
+ #: includes/i18n.php:901
1333
  msgid "Sorry for the inconvenience and we are here to help if you give us a chance."
1334
  msgstr ""
1335
 
1336
+ #: includes/i18n.php:905
1337
  msgid "Yes - I'm giving you a chance to fix it"
1338
  msgstr ""
1339
 
1340
+ #: includes/i18n.php:907
1341
  msgid "We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update."
1342
  msgstr ""
1343
 
1344
+ #: includes/i18n.php:911
1345
  msgid "Let's try your previous version"
1346
  msgstr ""
1347
 
1348
+ #: includes/i18n.php:913
1349
  msgid "Uninstall this version and install the previous one."
1350
  msgstr ""
1351
 
1352
+ #: includes/i18n.php:917
1353
  msgid "That's exhausting, please deactivate"
1354
  msgstr ""
1355
 
1356
+ #: includes/i18n.php:919
1357
  msgid "We feel your frustration and sincerely apologize for the inconvenience. Hope to see you again in the future."
1358
  msgstr ""
1359
 
1360
+ #: includes/i18n.php:923
1361
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
1362
  msgstr ""
1363
 
1364
+ #: includes/i18n.php:927
1365
  msgctxt "%1s - plugin title, %2s - API domain"
1366
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s"
1367
  msgstr ""
1368
 
1369
+ #: includes/i18n.php:931
1370
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
1371
  msgstr ""
1372
 
1373
+ #: includes/i18n.php:939
1374
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
1375
  msgstr ""
1376
 
1377
+ #: includes/i18n.php:943
1378
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
1379
  msgstr ""
1380
 
1381
+ #: includes/i18n.php:947
1382
  msgid "%s is the new owner of the account."
1383
  msgstr ""
1384
 
1385
+ #: includes/i18n.php:951
1386
  msgctxt "addonX cannot run without pluginY"
1387
  msgid "%s cannot run without %s."
1388
  msgstr ""
1389
 
1390
+ #: includes/i18n.php:955
1391
  msgctxt "addonX cannot run..."
1392
  msgid "%s cannot run without the plugin."
1393
  msgstr ""
1394
 
1395
+ #: includes/i18n.php:959
1396
  msgctxt "pluginX activation was successfully..."
1397
  msgid "%s activation was successfully completed."
1398
  msgstr ""
1399
 
1400
+ #: includes/i18n.php:963
1401
  msgctxt "Plugin installer section title"
1402
  msgid "Features & Pricing"
1403
  msgstr ""
1404
 
1405
+ #: includes/i18n.php:967
1406
  msgid "Add-on must be deployed to WordPress.org or Freemius."
1407
  msgstr ""
1408
 
1409
+ #: includes/i18n.php:971
1410
  msgid "Paid add-on must be deployed to Freemius."
1411
  msgstr ""
1412
 
1413
+ #: includes/i18n.php:979
1414
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
1415
  msgstr ""
1416
 
1417
+ #: includes/i18n.php:983
1418
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
1419
  msgstr ""
1420
 
1421
+ #: includes/i18n.php:995
1422
  msgctxt "as every month"
1423
  msgid "Monthly"
1424
  msgstr ""
1425
 
1426
+ #: includes/i18n.php:997
1427
  msgctxt "as monthly period"
1428
  msgid "mo"
1429
  msgstr ""
1430
 
1431
+ #: includes/i18n.php:999
1432
  msgctxt "as once a year"
1433
  msgid "Annual"
1434
  msgstr ""
1435
 
1436
+ #: includes/i18n.php:1001
1437
  msgctxt "as once a year"
1438
  msgid "Annually"
1439
  msgstr ""
1440
 
1441
+ #: includes/i18n.php:1003
1442
  msgctxt "as once a year"
1443
  msgid "Once"
1444
  msgstr ""
1445
 
1446
+ #: includes/i18n.php:1005
1447
  msgctxt "as annual period"
1448
  msgid "year"
1449
  msgstr ""
1450
 
1451
+ #: includes/i18n.php:1007
1452
  msgid "Lifetime"
1453
  msgstr ""
1454
 
1455
+ #: includes/i18n.php:1009
1456
  msgctxt "e.g. the best product"
1457
  msgid "Best"
1458
  msgstr ""
1459
 
1460
+ #: includes/i18n.php:1011
1461
  msgctxt "e.g. billed monthly"
1462
  msgid "Billed %s"
1463
  msgstr ""
1464
 
1465
+ #: includes/i18n.php:1013
1466
  msgctxt "as a discount of $5 or 10%"
1467
  msgid "Save %s"
1468
  msgstr ""
1469
 
1470
+ #: includes/i18n.php:1017
1471
  msgid "View details"
1472
  msgstr ""
1473
+
1474
+ #: includes/i18n.php:1025
1475
+ msgctxt "button label"
1476
+ msgid "Approve & Start Trial"
1477
+ msgstr ""
1478
+
1479
+ #: includes/i18n.php:1029
1480
+ msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan."
1481
+ msgstr ""
1482
+
1483
+ #: includes/i18n.php:1033
1484
+ msgid "For compliance with the WordPress.org guidelines, before we start the trial we ask that you opt-in with your user and non-sensitive site information, allowing the plugin to periodically send data to %s to check for version updates and to validate your trial."
1485
+ msgstr ""
1486
+
1487
+ #: includes/i18n.php:1045
1488
+ msgid "Business name"
1489
+ msgstr ""
1490
+
1491
+ #: includes/i18n.php:1047
1492
+ msgid "Tax / VAT ID"
1493
+ msgstr ""
1494
+
1495
+ #: includes/i18n.php:1049
1496
+ msgid "Address Line %d"
1497
+ msgstr ""
1498
+
1499
+ #: includes/i18n.php:1051
1500
+ msgid "Country"
1501
+ msgstr ""
1502
+
1503
+ #: includes/i18n.php:1053
1504
+ msgid "Select Country"
1505
+ msgstr ""
1506
+
1507
+ #: includes/i18n.php:1055
1508
+ msgid "City"
1509
+ msgstr ""
1510
+
1511
+ #: includes/i18n.php:1057
1512
+ msgid "Town"
1513
+ msgstr ""
1514
+
1515
+ #: includes/i18n.php:1059
1516
+ msgid "State"
1517
+ msgstr ""
1518
+
1519
+ #: includes/i18n.php:1061
1520
+ msgid "Province"
1521
+ msgstr ""
1522
+
1523
+ #: includes/i18n.php:1063
1524
+ msgid "ZIP / Postal Code"
1525
+ msgstr ""
freemius/start.php CHANGED
@@ -15,7 +15,7 @@
15
  *
16
  * @var string
17
  */
18
- $this_sdk_version = '1.2.1';
19
 
20
  #region SDK Selection Logic --------------------------------------------------------------------
21
 
@@ -84,9 +84,7 @@
84
  }
85
 
86
  // Refresh page.
87
- if ( fs_redirect( $_SERVER['REQUEST_URI'] ) ) {
88
- exit();
89
- }
90
  }
91
  } else {
92
  if ( ! function_exists( 'get_plugins' ) ) {
@@ -144,9 +142,7 @@
144
  if ( fs_newest_sdk_plugin_first() ) {
145
  // Refresh page after re-order to make sure activated plugin loads newest SDK.
146
  if ( class_exists( 'Freemius' ) ) {
147
- if ( fs_redirect( $_SERVER['REQUEST_URI'] ) ) {
148
- exit();
149
- }
150
  }
151
  }
152
  }
15
  *
16
  * @var string
17
  */
18
+ $this_sdk_version = '1.2.1.5';
19
 
20
  #region SDK Selection Logic --------------------------------------------------------------------
21
 
84
  }
85
 
86
  // Refresh page.
87
+ fs_redirect( $_SERVER['REQUEST_URI'] );
 
 
88
  }
89
  } else {
90
  if ( ! function_exists( 'get_plugins' ) ) {
142
  if ( fs_newest_sdk_plugin_first() ) {
143
  // Refresh page after re-order to make sure activated plugin loads newest SDK.
144
  if ( class_exists( 'Freemius' ) ) {
145
+ fs_redirect( $_SERVER['REQUEST_URI'] );
 
 
146
  }
147
  }
148
  }
freemius/templates/account.php CHANGED
@@ -36,7 +36,7 @@
36
  $show_upgrade = ( $fs->has_paid_plan() && ! $is_paying && ! $is_paid_trial );
37
 
38
  if ( $show_upgrade ) {
39
- $fs->_require_license_activation_dialog();
40
  }
41
  ?>
42
  <div class="wrap">
@@ -84,7 +84,7 @@
84
  </li>
85
  <?php if ( $is_paying ) : ?>
86
  <li>
87
- &nbsp;•&nbsp;
88
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
89
  <input type="hidden" name="fs_action" value="deactivate_license">
90
  <?php wp_nonce_field( 'deactivate_license' ) ?>
@@ -98,7 +98,7 @@
98
  $is_active_subscription
99
  ) : ?>
100
  <li>
101
- &nbsp;•&nbsp;
102
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
103
  <input type="hidden" name="fs_action" value="downgrade_account">
104
  <?php wp_nonce_field( 'downgrade_account' ) ?>
@@ -113,13 +113,13 @@
113
  </li>
114
  <?php endif ?>
115
  <li>
116
- &nbsp;•&nbsp;
117
  <a href="<?php echo $fs->get_upgrade_url() ?>"><i
118
  class="dashicons dashicons-grid-view"></i> <?php _efs( 'change-plan', $slug ) ?></a>
119
  </li>
120
  <?php elseif ( $is_paid_trial ) : ?>
121
  <li>
122
- &nbsp;•&nbsp;
123
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
124
  <input type="hidden" name="fs_action" value="cancel_trial">
125
  <?php wp_nonce_field( 'cancel_trial' ) ?>
@@ -130,7 +130,7 @@
130
  </li>
131
  <?php endif ?>
132
  <li>
133
- &nbsp;•&nbsp;
134
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
135
  <input type="hidden" name="fs_action" value="<?php echo $slug ?>_sync_license">
136
  <?php wp_nonce_field( $slug . '_sync_license' ) ?>
@@ -290,7 +290,7 @@
290
  <?php else : ?>
291
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>"
292
  method="POST" class="button-group">
293
- <?php if ($show_upgrade) : ?>
294
  <a class="button activate-license-trigger <?php echo $slug ?>" href="#"><?php _efs( 'activate-license', $slug ) ?></a>
295
  <?php endif ?>
296
  <input type="submit" class="button"
@@ -533,6 +533,31 @@
533
  array( 'plugin_id' => $addon_id ),
534
  false
535
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
  } else if ( $is_paid_trial ) {
537
  $buttons[] = fs_ui_get_action_button(
538
  $slug,
36
  $show_upgrade = ( $fs->has_paid_plan() && ! $is_paying && ! $is_paid_trial );
37
 
38
  if ( $show_upgrade ) {
39
+ $fs->_add_license_activation_dialog_box();
40
  }
41
  ?>
42
  <div class="wrap">
84
  </li>
85
  <?php if ( $is_paying ) : ?>
86
  <li>
87
+ &nbsp;&bull;&nbsp;
88
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
89
  <input type="hidden" name="fs_action" value="deactivate_license">
90
  <?php wp_nonce_field( 'deactivate_license' ) ?>
98
  $is_active_subscription
99
  ) : ?>
100
  <li>
101
+ &nbsp;&bull;&nbsp;
102
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
103
  <input type="hidden" name="fs_action" value="downgrade_account">
104
  <?php wp_nonce_field( 'downgrade_account' ) ?>
113
  </li>
114
  <?php endif ?>
115
  <li>
116
+ &nbsp;&bull;&nbsp;
117
  <a href="<?php echo $fs->get_upgrade_url() ?>"><i
118
  class="dashicons dashicons-grid-view"></i> <?php _efs( 'change-plan', $slug ) ?></a>
119
  </li>
120
  <?php elseif ( $is_paid_trial ) : ?>
121
  <li>
122
+ &nbsp;&bull;&nbsp;
123
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
124
  <input type="hidden" name="fs_action" value="cancel_trial">
125
  <?php wp_nonce_field( 'cancel_trial' ) ?>
130
  </li>
131
  <?php endif ?>
132
  <li>
133
+ &nbsp;&bull;&nbsp;
134
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
135
  <input type="hidden" name="fs_action" value="<?php echo $slug ?>_sync_license">
136
  <?php wp_nonce_field( $slug . '_sync_license' ) ?>
290
  <?php else : ?>
291
  <form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>"
292
  method="POST" class="button-group">
293
+ <?php if ( $show_upgrade && $fs->is_premium() ) : ?>
294
  <a class="button activate-license-trigger <?php echo $slug ?>" href="#"><?php _efs( 'activate-license', $slug ) ?></a>
295
  <?php endif ?>
296
  <input type="submit" class="button"
533
  array( 'plugin_id' => $addon_id ),
534
  false
535
  );
536
+
537
+ $human_readable_license_expiration = human_time_diff( time(), strtotime( $license->expiration ) );
538
+ $downgrade_confirmation_message = sprintf( __fs( 'downgrade-x-confirm', $slug ),
539
+ $plan->title,
540
+ $human_readable_license_expiration );
541
+
542
+ $after_downgrade_message_id = ( ! $license->is_block_features ?
543
+ 'after-downgrade-non-blocking' :
544
+ 'after-downgrade-blocking' );
545
+
546
+ $after_downgrade_message = sprintf( __fs( $after_downgrade_message_id, $slug ), $plan->title );
547
+
548
+ if ( ! $license->is_lifetime() && $is_active_subscription ) {
549
+ $buttons[] = fs_ui_get_action_button(
550
+ $slug,
551
+ 'account',
552
+ 'downgrade_account',
553
+ __fs( 'downgrade', $slug ),
554
+ array( 'plugin_id' => $addon_id ),
555
+ false,
556
+ false,
557
+ ( $downgrade_confirmation_message . ' ' . $after_downgrade_message ),
558
+ 'POST'
559
+ );
560
+ }
561
  } else if ( $is_paid_trial ) {
562
  $buttons[] = fs_ui_get_action_button(
563
  $slug,
freemius/templates/add-trial-to-pricing.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Add "&trial=true" to pricing menu item href when running in trial
4
+ * promotion context.
5
+ *
6
+ * @package Freemius
7
+ * @copyright Copyright (c) 2016, Freemius, Inc.
8
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
+ * @since 1.2.1.5
10
+ */
11
+
12
+ if ( ! defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ }
15
+
16
+ /**
17
+ * @var array $VARS
18
+ */
19
+ $slug = $VARS['slug'];
20
+ ?>
21
+ <script type="text/javascript">
22
+ (function ($) {
23
+ $(document).ready(function () {
24
+ var $pricingMenu = $('.fs-submenu-item.<?php echo $slug ?>.pricing'),
25
+ $pricingMenuLink = $pricingMenu.parents('a');
26
+
27
+ // Add trial querystring param.
28
+ $pricingMenuLink.attr('href', $pricingMenuLink.attr('href') + '&trial=true');
29
+ });
30
+ })(jQuery);
31
+ </script>
freemius/templates/billing.php CHANGED
@@ -34,6 +34,14 @@
34
  $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
35
  $is_paid_trial = $fs->is_paid_trial();
36
  $show_upgrade = ( ! $is_paying && ! $is_paid_trial );
 
 
 
 
 
 
 
 
37
  ?>
38
 
39
  <div id="fs_account" class="wrap">
@@ -57,14 +65,305 @@
57
  </h2>
58
 
59
  <div id="poststuff">
60
- <div>
61
  <div class="has-sidebar has-right-sidebar">
62
  <div class="has-sidebar-content">
63
  <div class="postbox">
64
- <h3><?php _efs( 'payments', $slug ) ?></h3>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
 
66
  <?php
67
- $payments = $fs->_fetch_payments();
68
  ?>
69
 
70
  <div class="inside">
@@ -85,7 +384,8 @@
85
  <td><?php echo $payment->id ?></td>
86
  <td><?php echo date( 'M j, Y', strtotime( $payment->created ) ) ?></td>
87
  <td>$<?php echo $payment->gross ?></td>
88
- <td><a href="<?php echo $fs->_get_invoice_api_url($payment->id) ?>" class="button button-small"
 
89
  target="_blank"><?php _efs( 'invoice', $slug ) ?></a></td>
90
  </tr>
91
  <?php $odd = ! $odd; endforeach ?>
@@ -98,6 +398,103 @@
98
  </div>
99
  </div>
100
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  <?php
102
  $params = array(
103
  'page' => 'account',
34
  $is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
35
  $is_paid_trial = $fs->is_paid_trial();
36
  $show_upgrade = ( ! $is_paying && ! $is_paid_trial );
37
+
38
+ $billing = $fs->_fetch_billing();
39
+ $has_billing = ( $billing instanceof FS_Billing );
40
+ if ( ! $has_billing ) {
41
+ $billing = new FS_Billing();
42
+ }
43
+
44
+ $readonly_attr = $has_billing ? 'readonly' : '';
45
  ?>
46
 
47
  <div id="fs_account" class="wrap">
65
  </h2>
66
 
67
  <div id="poststuff">
68
+ <div id="fs_billing">
69
  <div class="has-sidebar has-right-sidebar">
70
  <div class="has-sidebar-content">
71
  <div class="postbox">
72
+ <h3><span class="dashicons dashicons-businessman"></span> <?php _efs( 'billing', $slug ) ?></h3>
73
+ <table id="fs_billing_address"<?php if ( $has_billing ) {
74
+ echo ' class="fs-read-mode"';
75
+ } ?>>
76
+ <tr>
77
+ <td><label><span><?php _efs( 'business-name', $slug ) ?>:</span> <input id="business_name" value="<?php echo $billing->business_name ?>" placeholder="<?php _efs( 'business-name', $slug ) ?>"></label></td>
78
+ <td><label><span><?php _efs( 'tax-vat-id', $slug ) ?>:</span> <input id="tax_id" value="<?php echo $billing->tax_id ?>" placeholder="<?php _efs( 'tax-vat-id', $slug ) ?>"></label></td>
79
+ </tr>
80
+ <tr>
81
+ <td><label><span><?php printf( __fs( 'address-line-n', $slug ), 1 ) ?>:</span> <input id="address_street" value="<?php echo $billing->address_street ?>" placeholder="<?php printf( __fs( 'address-line-n', $slug ), 1 ) ?>"></label></td>
82
+ <td><label><span><?php printf( __fs( 'address-line-n', $slug ), 2 ) ?>:</span> <input id="address_apt" value="<?php echo $billing->address_apt ?>" placeholder="<?php printf( __fs( 'address-line-n', $slug ), 2 ) ?>"></label></td>
83
+ </tr>
84
+ <tr>
85
+ <td><label><span><?php _efs( 'city', $slug ) ?> / <?php _efs( 'town', $slug ) ?>:</span> <input id="address_city" value="<?php echo $billing->address_city ?>" placeholder="<?php _efs( 'city', $slug ) ?> / <?php _efs( 'town', $slug ) ?>"></label></td>
86
+ <td><label><span><?php _efs( 'zip-postal-code', $slug ) ?>:</span> <input id="address_zip" value="<?php echo $billing->address_zip ?>" placeholder="<?php _efs( 'zip-postal-code', $slug ) ?>"></label></td>
87
+ </tr>
88
+ <tr>
89
+ <?php $countries = array(
90
+ 'AF' => 'Afghanistan',
91
+ 'AX' => 'Aland Islands',
92
+ 'AL' => 'Albania',
93
+ 'DZ' => 'Algeria',
94
+ 'AS' => 'American Samoa',
95
+ 'AD' => 'Andorra',
96
+ 'AO' => 'Angola',
97
+ 'AI' => 'Anguilla',
98
+ 'AQ' => 'Antarctica',
99
+ 'AG' => 'Antigua and Barbuda',
100
+ 'AR' => 'Argentina',
101
+ 'AM' => 'Armenia',
102
+ 'AW' => 'Aruba',
103
+ 'AU' => 'Australia',
104
+ 'AT' => 'Austria',
105
+ 'AZ' => 'Azerbaijan',
106
+ 'BS' => 'Bahamas',
107
+ 'BH' => 'Bahrain',
108
+ 'BD' => 'Bangladesh',
109
+ 'BB' => 'Barbados',
110
+ 'BY' => 'Belarus',
111
+ 'BE' => 'Belgium',
112
+ 'BZ' => 'Belize',
113
+ 'BJ' => 'Benin',
114
+ 'BM' => 'Bermuda',
115
+ 'BT' => 'Bhutan',
116
+ 'BO' => 'Bolivia',
117
+ 'BQ' => 'Bonaire, Saint Eustatius and Saba',
118
+ 'BA' => 'Bosnia and Herzegovina',
119
+ 'BW' => 'Botswana',
120
+ 'BV' => 'Bouvet Island',
121
+ 'BR' => 'Brazil',
122
+ 'IO' => 'British Indian Ocean Territory',
123
+ 'VG' => 'British Virgin Islands',
124
+ 'BN' => 'Brunei',
125
+ 'BG' => 'Bulgaria',
126
+ 'BF' => 'Burkina Faso',
127
+ 'BI' => 'Burundi',
128
+ 'KH' => 'Cambodia',
129
+ 'CM' => 'Cameroon',
130
+ 'CA' => 'Canada',
131
+ 'CV' => 'Cape Verde',
132
+ 'KY' => 'Cayman Islands',
133
+ 'CF' => 'Central African Republic',
134
+ 'TD' => 'Chad',
135
+ 'CL' => 'Chile',
136
+ 'CN' => 'China',
137
+ 'CX' => 'Christmas Island',
138
+ 'CC' => 'Cocos Islands',
139
+ 'CO' => 'Colombia',
140
+ 'KM' => 'Comoros',
141
+ 'CK' => 'Cook Islands',
142
+ 'CR' => 'Costa Rica',
143
+ 'HR' => 'Croatia',
144
+ 'CU' => 'Cuba',
145
+ 'CW' => 'Curacao',
146
+ 'CY' => 'Cyprus',
147
+ 'CZ' => 'Czech Republic',
148
+ 'CD' => 'Democratic Republic of the Congo',
149
+ 'DK' => 'Denmark',
150
+ 'DJ' => 'Djibouti',
151
+ 'DM' => 'Dominica',
152
+ 'DO' => 'Dominican Republic',
153
+ 'TL' => 'East Timor',
154
+ 'EC' => 'Ecuador',
155
+ 'EG' => 'Egypt',
156
+ 'SV' => 'El Salvador',
157
+ 'GQ' => 'Equatorial Guinea',
158
+ 'ER' => 'Eritrea',
159
+ 'EE' => 'Estonia',
160
+ 'ET' => 'Ethiopia',
161
+ 'FK' => 'Falkland Islands',
162
+ 'FO' => 'Faroe Islands',
163
+ 'FJ' => 'Fiji',
164
+ 'FI' => 'Finland',
165
+ 'FR' => 'France',
166
+ 'GF' => 'French Guiana',
167
+ 'PF' => 'French Polynesia',
168
+ 'TF' => 'French Southern Territories',
169
+ 'GA' => 'Gabon',
170
+ 'GM' => 'Gambia',
171
+ 'GE' => 'Georgia',
172
+ 'DE' => 'Germany',
173
+ 'GH' => 'Ghana',
174
+ 'GI' => 'Gibraltar',
175
+ 'GR' => 'Greece',
176
+ 'GL' => 'Greenland',
177
+ 'GD' => 'Grenada',
178
+ 'GP' => 'Guadeloupe',
179
+ 'GU' => 'Guam',
180
+ 'GT' => 'Guatemala',
181
+ 'GG' => 'Guernsey',
182
+ 'GN' => 'Guinea',
183
+ 'GW' => 'Guinea-Bissau',
184
+ 'GY' => 'Guyana',
185
+ 'HT' => 'Haiti',
186
+ 'HM' => 'Heard Island and McDonald Islands',
187
+ 'HN' => 'Honduras',
188
+ 'HK' => 'Hong Kong',
189
+ 'HU' => 'Hungary',
190
+ 'IS' => 'Iceland',
191
+ 'IN' => 'India',
192
+ 'ID' => 'Indonesia',
193
+ 'IR' => 'Iran',
194
+ 'IQ' => 'Iraq',
195
+ 'IE' => 'Ireland',
196
+ 'IM' => 'Isle of Man',
197
+ 'IL' => 'Israel',
198
+ 'IT' => 'Italy',
199
+ 'CI' => 'Ivory Coast',
200
+ 'JM' => 'Jamaica',
201
+ 'JP' => 'Japan',
202
+ 'JE' => 'Jersey',
203
+ 'JO' => 'Jordan',
204
+ 'KZ' => 'Kazakhstan',
205
+ 'KE' => 'Kenya',
206
+ 'KI' => 'Kiribati',
207
+ 'XK' => 'Kosovo',
208
+ 'KW' => 'Kuwait',
209
+ 'KG' => 'Kyrgyzstan',
210
+ 'LA' => 'Laos',
211
+ 'LV' => 'Latvia',
212
+ 'LB' => 'Lebanon',
213
+ 'LS' => 'Lesotho',
214
+ 'LR' => 'Liberia',
215
+ 'LY' => 'Libya',
216
+ 'LI' => 'Liechtenstein',
217
+ 'LT' => 'Lithuania',
218
+ 'LU' => 'Luxembourg',
219
+ 'MO' => 'Macao',
220
+ 'MK' => 'Macedonia',
221
+ 'MG' => 'Madagascar',
222
+ 'MW' => 'Malawi',
223
+ 'MY' => 'Malaysia',
224
+ 'MV' => 'Maldives',
225
+ 'ML' => 'Mali',
226
+ 'MT' => 'Malta',
227
+ 'MH' => 'Marshall Islands',
228
+ 'MQ' => 'Martinique',
229
+ 'MR' => 'Mauritania',
230
+ 'MU' => 'Mauritius',
231
+ 'YT' => 'Mayotte',
232
+ 'MX' => 'Mexico',
233
+ 'FM' => 'Micronesia',
234
+ 'MD' => 'Moldova',
235
+ 'MC' => 'Monaco',
236
+ 'MN' => 'Mongolia',
237
+ 'ME' => 'Montenegro',
238
+ 'MS' => 'Montserrat',
239
+ 'MA' => 'Morocco',
240
+ 'MZ' => 'Mozambique',
241
+ 'MM' => 'Myanmar',
242
+ 'NA' => 'Namibia',
243
+ 'NR' => 'Nauru',
244
+ 'NP' => 'Nepal',
245
+ 'NL' => 'Netherlands',
246
+ 'NC' => 'New Caledonia',
247
+ 'NZ' => 'New Zealand',
248
+ 'NI' => 'Nicaragua',
249
+ 'NE' => 'Niger',
250
+ 'NG' => 'Nigeria',
251
+ 'NU' => 'Niue',
252
+ 'NF' => 'Norfolk Island',
253
+ 'KP' => 'North Korea',
254
+ 'MP' => 'Northern Mariana Islands',
255
+ 'NO' => 'Norway',
256
+ 'OM' => 'Oman',
257
+ 'PK' => 'Pakistan',
258
+ 'PW' => 'Palau',
259
+ 'PS' => 'Palestinian Territory',
260
+ 'PA' => 'Panama',
261
+ 'PG' => 'Papua New Guinea',
262
+ 'PY' => 'Paraguay',
263
+ 'PE' => 'Peru',
264
+ 'PH' => 'Philippines',
265
+ 'PN' => 'Pitcairn',
266
+ 'PL' => 'Poland',
267
+ 'PT' => 'Portugal',
268
+ 'PR' => 'Puerto Rico',
269
+ 'QA' => 'Qatar',
270
+ 'CG' => 'Republic of the Congo',
271
+ 'RE' => 'Reunion',
272
+ 'RO' => 'Romania',
273
+ 'RU' => 'Russia',
274
+ 'RW' => 'Rwanda',
275
+ 'BL' => 'Saint Barthelemy',
276
+ 'SH' => 'Saint Helena',
277
+ 'KN' => 'Saint Kitts and Nevis',
278
+ 'LC' => 'Saint Lucia',
279
+ 'MF' => 'Saint Martin',
280
+ 'PM' => 'Saint Pierre and Miquelon',
281
+ 'VC' => 'Saint Vincent and the Grenadines',
282
+ 'WS' => 'Samoa',
283
+ 'SM' => 'San Marino',
284
+ 'ST' => 'Sao Tome and Principe',
285
+ 'SA' => 'Saudi Arabia',
286
+ 'SN' => 'Senegal',
287
+ 'RS' => 'Serbia',
288
+ 'SC' => 'Seychelles',
289
+ 'SL' => 'Sierra Leone',
290
+ 'SG' => 'Singapore',
291
+ 'SX' => 'Sint Maarten',
292
+ 'SK' => 'Slovakia',
293
+ 'SI' => 'Slovenia',
294
+ 'SB' => 'Solomon Islands',
295
+ 'SO' => 'Somalia',
296
+ 'ZA' => 'South Africa',
297
+ 'GS' => 'South Georgia and the South Sandwich Islands',
298
+ 'KR' => 'South Korea',
299
+ 'SS' => 'South Sudan',
300
+ 'ES' => 'Spain',
301
+ 'LK' => 'Sri Lanka',
302
+ 'SD' => 'Sudan',
303
+ 'SR' => 'Suriname',
304
+ 'SJ' => 'Svalbard and Jan Mayen',
305
+ 'SZ' => 'Swaziland',
306
+ 'SE' => 'Sweden',
307
+ 'CH' => 'Switzerland',
308
+ 'SY' => 'Syria',
309
+ 'TW' => 'Taiwan',
310
+ 'TJ' => 'Tajikistan',
311
+ 'TZ' => 'Tanzania',
312
+ 'TH' => 'Thailand',
313
+ 'TG' => 'Togo',
314
+ 'TK' => 'Tokelau',
315
+ 'TO' => 'Tonga',
316
+ 'TT' => 'Trinidad and Tobago',
317
+ 'TN' => 'Tunisia',
318
+ 'TR' => 'Turkey',
319
+ 'TM' => 'Turkmenistan',
320
+ 'TC' => 'Turks and Caicos Islands',
321
+ 'TV' => 'Tuvalu',
322
+ 'VI' => 'U.S. Virgin Islands',
323
+ 'UG' => 'Uganda',
324
+ 'UA' => 'Ukraine',
325
+ 'AE' => 'United Arab Emirates',
326
+ 'GB' => 'United Kingdom',
327
+ 'US' => 'United States',
328
+ 'UM' => 'United States Minor Outlying Islands',
329
+ 'UY' => 'Uruguay',
330
+ 'UZ' => 'Uzbekistan',
331
+ 'VU' => 'Vanuatu',
332
+ 'VA' => 'Vatican',
333
+ 'VE' => 'Venezuela',
334
+ 'VN' => 'Vietnam',
335
+ 'WF' => 'Wallis and Futuna',
336
+ 'EH' => 'Western Sahara',
337
+ 'YE' => 'Yemen',
338
+ 'ZM' => 'Zambia',
339
+ 'ZW' => 'Zimbabwe',
340
+ ) ?>
341
+ <td><label><span><?php _efs( 'country', $slug ) ?>:</span> <select id="address_country_code">
342
+ <?php if ( empty( $billing->address_country_code ) ) : ?>
343
+ <option value=""
344
+ selected><?php _efs( 'select-country', $slug ) ?></option>
345
+ <?php endif ?>
346
+ <?php foreach ( $countries as $code => $country ) : ?>
347
+ <option
348
+ value="<?php echo $code ?>" <?php selected( $billing->address_country_code, $code ) ?>><?php echo $country ?></option>
349
+ <?php endforeach ?>
350
+ </select></label></td>
351
+ <td><label><span><?php _efs( 'state', $slug ) ?> / <?php _efs( 'province', $slug ) ?>:</span>
352
+ <input id="address_state" value="<?php echo $billing->address_state ?>" placeholder="<?php _efs( 'state', $slug ) ?> / <?php _efs( 'province', $slug ) ?>"></label></td>
353
+ </tr>
354
+ <tr>
355
+ <td colspan="2">
356
+ <button
357
+ class="button"><?php _efs( $has_billing ? 'edit' : 'update', $slug ) ?></button>
358
+ </td>
359
+ </tr>
360
+ </table>
361
+ </div>
362
+ <div class="postbox">
363
+ <h3><span class="dashicons dashicons-paperclip"></span> <?php _efs( 'payments', $slug ) ?></h3>
364
 
365
  <?php
366
+ $payments = $fs->_fetch_payments();
367
  ?>
368
 
369
  <div class="inside">
384
  <td><?php echo $payment->id ?></td>
385
  <td><?php echo date( 'M j, Y', strtotime( $payment->created ) ) ?></td>
386
  <td>$<?php echo $payment->gross ?></td>
387
+ <td><a href="<?php echo $fs->_get_invoice_api_url( $payment->id ) ?>"
388
+ class="button button-small"
389
  target="_blank"><?php _efs( 'invoice', $slug ) ?></a></td>
390
  </tr>
391
  <?php $odd = ! $odd; endforeach ?>
398
  </div>
399
  </div>
400
  </div>
401
+ <script type="text/javascript">
402
+ (function($){
403
+ var $billingAddress = $('#fs_billing_address'),
404
+ $billingInputs = $billingAddress.find('input, select');
405
+
406
+ var setPrevValues = function () {
407
+ $billingInputs.each(function () {
408
+ $(this).attr('data-val', $(this).val());
409
+ });
410
+ };
411
+
412
+ setPrevValues();
413
+
414
+ var hasBillingChanged = function () {
415
+ for (var i = 0, len = $billingInputs.length; i < len; i++){
416
+ var $this = $($billingInputs[i]);
417
+ if ($this.attr('data-val') !== $this.val()) {
418
+ return true;
419
+ }
420
+ }
421
+
422
+ return false;
423
+ };
424
+
425
+ var isEditAllFieldsMode = false;
426
+
427
+ $billingAddress.find('.button').click(function(){
428
+ $billingAddress.toggleClass('fs-read-mode');
429
+
430
+ var isEditMode = !$billingAddress.hasClass('fs-read-mode');
431
+
432
+ $(this)
433
+ .html(isEditMode ? <?php echo json_encode(__fs('update', $slug)) ?> : <?php echo json_encode(__fs('edit', $slug)) ?>)
434
+ .toggleClass('button-primary');
435
+
436
+ if (isEditMode) {
437
+ $('#business_name').focus().select();
438
+ isEditAllFieldsMode = true;
439
+ } else {
440
+ isEditAllFieldsMode = false;
441
+
442
+ if (!hasBillingChanged())
443
+ return;
444
+
445
+ var billing = {};
446
+
447
+ $billingInputs.each(function(){
448
+ if ($(this).attr('data-val') !== $(this).val()) {
449
+ billing[$(this).attr('id')] = $(this).val();
450
+ }
451
+ });
452
+
453
+ $.ajax({
454
+ url : ajaxurl,
455
+ method : 'POST',
456
+ data : {
457
+ action : '<?php echo $fs->get_action_tag( 'update_billing' ) ?>',
458
+ security: '<?php echo wp_create_nonce( $fs->get_action_tag( 'update_billing' ) ) ?>',
459
+ slug : '<?php echo $slug ?>',
460
+ billing : billing
461
+ },
462
+ success: function (resultObj) {
463
+ if (resultObj.success) {
464
+ setPrevValues();
465
+ } else {
466
+ alert(resultObj.error);
467
+ }
468
+ }
469
+ });
470
+ }
471
+ });
472
+
473
+ $billingInputs
474
+ // Get into edit mode upon selection.
475
+ .focus(function () {
476
+ var isEditMode = !$billingAddress.hasClass('fs-read-mode');
477
+
478
+ if (isEditMode) {
479
+ return;
480
+ }
481
+
482
+ $billingAddress.toggleClass('fs-read-mode');
483
+ $billingAddress.find('.button')
484
+ .html(<?php echo json_encode( __fs( 'update', $slug ) ) ?>)
485
+ .toggleClass('button-primary');
486
+ })
487
+ // If blured after editing only one field without changes, exit edit mode.
488
+ .blur(function () {
489
+ if (!isEditAllFieldsMode && !hasBillingChanged()) {
490
+ $billingAddress.toggleClass('fs-read-mode');
491
+ $billingAddress.find('.button')
492
+ .html(<?php echo json_encode( __fs( 'edit', $slug ) ) ?>)
493
+ .toggleClass('button-primary');
494
+ }
495
+ });
496
+ })(jQuery);
497
+ </script>
498
  <?php
499
  $params = array(
500
  'page' => 'account',
freemius/templates/checkout.php CHANGED
@@ -32,13 +32,13 @@
32
 
33
  // Get site context secure params.
34
  if ( $fs->is_registered() ) {
35
- $site = $fs->get_site();
36
  $plugin_id = fs_request_get( 'plugin_id', $fs->get_id() );
37
 
38
- if ($plugin_id != $fs->get_id()) {
39
  if ( $fs->is_addon_activated( $plugin_id ) ) {
40
  $fs_addon = Freemius::get_instance_by_id( $plugin_id );
41
- $site = $fs_addon->get_site();
42
  }
43
  }
44
 
@@ -57,17 +57,7 @@
57
  'user_firstname' => $current_user->user_firstname,
58
  'user_lastname' => $current_user->user_lastname,
59
  'user_email' => $current_user->user_email,
60
- // 'user_nickname' => $current_user->user_nicename,
61
- // 'plugin_slug' => $slug,
62
- // 'site_url' => get_site_url(),
63
- // 'site_name' => get_bloginfo( 'name' ),
64
- // 'platform_version' => get_bloginfo( 'version' ),
65
- // 'language' => get_bloginfo( 'language' ),
66
- // 'charset' => get_bloginfo( 'charset' ),
67
- // 'account_url' => fs_nonce_url( $fs->_get_admin_page_url(
68
- // 'account',
69
- // array( 'fs_action' => 'sync_user' )
70
- // ), 'sync_user' ),
71
  ) );
72
 
73
  $fs_user = Freemius::_get_user_by_email( $current_user->user_email );
@@ -81,8 +71,7 @@
81
  }
82
  }
83
 
84
- if ( $fs->is_payments_sandbox() )
85
- {
86
  // Append plugin secure token for sandbox mode authentication.
87
  $context_params['sandbox'] = FS_Security::instance()->get_secure_token(
88
  $fs->get_plugin(),
@@ -162,16 +151,16 @@
162
  $(function () {
163
 
164
  var
165
- // Keep track of the iframe height.
166
- iframe_height = 800,
167
- base_url = '<?php echo WP_FS__ADDRESS ?>',
168
- // Pass the parent page URL into the Iframe in a meaningful way (this URL could be
169
- // passed via query string or hard coded into the child page, it depends on your needs).
170
- src = base_url + '/checkout/?<?php echo (isset($_REQUEST['XDEBUG_SESSION']) ? 'XDEBUG_SESSION=' . $_REQUEST['XDEBUG_SESSION'] . '&' : '') . http_build_query($query_params) ?>#' + encodeURIComponent(document.location.href),
171
 
172
- // Append the Iframe into the DOM.
173
- iframe = $('<iframe " src="' + src + '" width="100%" height="' + iframe_height + 'px" scrolling="no" frameborder="0" style="background: transparent;"><\/iframe>')
174
- .appendTo('#iframe');
175
 
176
  FS.PostMessage.init(base_url, [iframe[0]]);
177
  FS.PostMessage.receiveOnce('height', function (data) {
@@ -186,10 +175,10 @@
186
 
187
  FS.PostMessage.receiveOnce('install', function (data) {
188
  // Post data to activation URL.
189
- $.form('<?php echo fs_nonce_url($fs->_get_admin_page_url('account', array(
190
  'fs_action' => $slug . '_activate_new',
191
- 'plugin_id' => isset($_GET['plugin_id']) ? $_GET['plugin_id'] : $fs->get_id()
192
- )), $slug . '_activate_new') ?>', {
193
  user_id : data.user.id,
194
  user_secret_key : data.user.secret_key,
195
  user_public_key : data.user.public_key,
@@ -200,11 +189,11 @@
200
  });
201
 
202
  FS.PostMessage.receiveOnce('pending_activation', function (data) {
203
- $.form('<?php echo fs_nonce_url($fs->_get_admin_page_url('account', array(
204
- 'fs_action' => $slug . '_activate_new',
205
- 'plugin_id' => fs_request_get('plugin_id', $fs->get_id()),
206
  'pending_activation' => true,
207
- )), $slug . '_activate_new') ?>', {
208
  user_email: data.user_email
209
  }).submit();
210
  });
@@ -217,28 +206,17 @@
217
  // and then click the purchase button, the context information
218
  // of the user will be shared with Freemius in order to complete the
219
  // purchase workflow and activate the license for the right user.
220
- FS.PostMessage.post('context', {
221
- plugin_id : '<?php echo $fs->get_id() ?>',
222
- plugin_public_key: '<?php echo $fs->get_public_key() ?>',
223
- plugin_version : '<?php echo $fs->get_plugin_version() ?>',
224
- plugin_slug : '<?php echo $slug ?>',
225
- site_name : '<?php echo get_bloginfo('name') ?>',
226
- platform_version : '<?php echo get_bloginfo('version') ?>',
227
- language : '<?php echo get_bloginfo('language') ?>',
228
- charset : '<?php echo get_bloginfo('charset') ?>',
229
- return_url : '<?php echo $return_url ?>',
230
- account_url : '<?php echo fs_nonce_url($fs->_get_admin_page_url(
231
- 'account',
232
- array('fs_action' => 'sync_user')
233
- ), 'sync_user') ?>',
234
- activation_url : '<?php echo fs_nonce_url($fs->_get_admin_page_url('',
235
- array(
236
- 'fs_action' => $slug . '_activate_new',
237
- 'plugin_id' => fs_request_get('plugin_id', $fs->get_id()),
238
-
239
- )),
240
- $slug . '_activate_new') ?>'
241
- }, iframe[0]);
242
  });
243
 
244
  FS.PostMessage.receiveOnce('get_dimensions', function (data) {
32
 
33
  // Get site context secure params.
34
  if ( $fs->is_registered() ) {
35
+ $site = $fs->get_site();
36
  $plugin_id = fs_request_get( 'plugin_id', $fs->get_id() );
37
 
38
+ if ( $plugin_id != $fs->get_id() ) {
39
  if ( $fs->is_addon_activated( $plugin_id ) ) {
40
  $fs_addon = Freemius::get_instance_by_id( $plugin_id );
41
+ $site = $fs_addon->get_site();
42
  }
43
  }
44
 
57
  'user_firstname' => $current_user->user_firstname,
58
  'user_lastname' => $current_user->user_lastname,
59
  'user_email' => $current_user->user_email,
60
+ 'home_url' => home_url(),
 
 
 
 
 
 
 
 
 
 
61
  ) );
62
 
63
  $fs_user = Freemius::_get_user_by_email( $current_user->user_email );
71
  }
72
  }
73
 
74
+ if ( $fs->is_payments_sandbox() ) {
 
75
  // Append plugin secure token for sandbox mode authentication.
76
  $context_params['sandbox'] = FS_Security::instance()->get_secure_token(
77
  $fs->get_plugin(),
151
  $(function () {
152
 
153
  var
154
+ // Keep track of the iframe height.
155
+ iframe_height = 800,
156
+ base_url = '<?php echo WP_FS__ADDRESS ?>',
157
+ // Pass the parent page URL into the Iframe in a meaningful way (this URL could be
158
+ // passed via query string or hard coded into the child page, it depends on your needs).
159
+ src = base_url + '/checkout/?<?php echo ( isset( $_REQUEST['XDEBUG_SESSION'] ) ? 'XDEBUG_SESSION=' . $_REQUEST['XDEBUG_SESSION'] . '&' : '' ) . http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),
160
 
161
+ // Append the Iframe into the DOM.
162
+ iframe = $('<iframe " src="' + src + '" width="100%" height="' + iframe_height + 'px" scrolling="no" frameborder="0" style="background: transparent;"><\/iframe>')
163
+ .appendTo('#iframe');
164
 
165
  FS.PostMessage.init(base_url, [iframe[0]]);
166
  FS.PostMessage.receiveOnce('height', function (data) {
175
 
176
  FS.PostMessage.receiveOnce('install', function (data) {
177
  // Post data to activation URL.
178
+ $.form('<?php echo fs_nonce_url( $fs->_get_admin_page_url( 'account', array(
179
  'fs_action' => $slug . '_activate_new',
180
+ 'plugin_id' => isset( $_GET['plugin_id'] ) ? $_GET['plugin_id'] : $fs->get_id()
181
+ ) ), $slug . '_activate_new' ) ?>', {
182
  user_id : data.user.id,
183
  user_secret_key : data.user.secret_key,
184
  user_public_key : data.user.public_key,
189
  });
190
 
191
  FS.PostMessage.receiveOnce('pending_activation', function (data) {
192
+ $.form('<?php echo fs_nonce_url( $fs->_get_admin_page_url( 'account', array(
193
+ 'fs_action' => $slug . '_activate_new',
194
+ 'plugin_id' => fs_request_get( 'plugin_id', $fs->get_id() ),
195
  'pending_activation' => true,
196
+ ) ), $slug . '_activate_new' ) ?>', {
197
  user_email: data.user_email
198
  }).submit();
199
  });
206
  // and then click the purchase button, the context information
207
  // of the user will be shared with Freemius in order to complete the
208
  // purchase workflow and activate the license for the right user.
209
+ <?php $install_data = array_merge( $fs->get_opt_in_params(),
210
+ array(
211
+ 'activation_url' => fs_nonce_url( $fs->_get_admin_page_url( '',
212
+ array(
213
+ 'fs_action' => $slug . '_activate_new',
214
+ 'plugin_id' => fs_request_get( 'plugin_id', $fs->get_id() ),
215
+
216
+ ) ),
217
+ $slug . '_activate_new' )
218
+ ) ) ?>
219
+ FS.PostMessage.post('context', <?php echo json_encode( $install_data ) ?>, iframe[0]);
 
 
 
 
 
 
 
 
 
 
 
220
  });
221
 
222
  FS.PostMessage.receiveOnce('get_dimensions', function (data) {
freemius/templates/connect.php CHANGED
@@ -58,8 +58,11 @@
58
  }
59
 
60
  if ( $require_license_key ) {
61
- $fs->_require_license_activation_dialog();
62
  }
 
 
 
63
  ?>
64
  <div id="fs_connect"
65
  class="wrap<?php if ( ! $fs->is_enable_anonymous() || $is_pending_activation || $require_license_key ) {
@@ -90,7 +93,8 @@
90
  __fs( 'pending-activation-message', $slug ),
91
  $first_name,
92
  '<b>' . $fs->get_plugin_name() . '</b>',
93
- '<b>' . $current_user->user_email . '</b>'
 
94
  ) );
95
  } else if ( $require_license_key ) {
96
  $button_label = 'agree-activate-license';
@@ -119,10 +123,9 @@
119
  }
120
 
121
  echo $fs->apply_filters( $filter,
 
122
  sprintf(
123
- __fs( 'hey-x', $slug ) . '<br>' .
124
  __fs( $default_optin_message, $slug ),
125
- $first_name,
126
  '<b>' . $fs->get_plugin_name() . '</b>',
127
  '<b>' . $current_user->user_login . '</b>',
128
  '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
@@ -148,12 +151,11 @@
148
  </div>
149
  <div class="fs-actions">
150
  <?php if ( $fs->is_enable_anonymous() && ! $is_pending_activation && ! $require_license_key ) : ?>
151
- <a href="<?php echo wp_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $slug . '_skip_activation' ) ), $slug . '_skip_activation' ) ?>"
152
  class="button button-secondary" tabindex="2"><?php _efs( 'skip', $slug ) ?></a>
153
  <?php endif ?>
154
 
155
- <?php $fs_user = Freemius::_get_user_by_email( $current_user->user_email ) ?>
156
- <?php if ( is_object( $fs_user ) && ! $is_pending_activation ) : ?>
157
  <form action="" method="POST">
158
  <input type="hidden" name="fs_action" value="<?php echo $slug ?>_activate_existing">
159
  <?php wp_nonce_field( 'activate_existing_' . $fs->get_public_key() ) ?>
@@ -190,6 +192,12 @@
190
  'desc' => __fs( 'permissions-site_desc' ),
191
  'priority' => 10,
192
  ),
 
 
 
 
 
 
193
  'events' => array(
194
  'icon-class' => 'dashicons dashicons-admin-plugins',
195
  'label' => __fs( 'permissions-events' ),
@@ -228,14 +236,14 @@
228
  <a class="fs-trigger" href="#" tabindex="1"><?php _efs( 'what-permissions', $slug ) ?></a>
229
  <ul><?php
230
  foreach ( $permissions as $id => $permission ) : ?>
231
- <li id="fs-permission-<?php esc_attr_e( $id ); ?>"
232
- class="fs-permission fs-<?php esc_attr_e( $id ); ?>">
233
- <i class="<?php esc_attr_e( $permission['icon-class'] ); ?>"></i>
234
 
235
  <div>
236
- <span><?php esc_html_e( $permission['label'] ); ?></span>
237
 
238
- <p><?php esc_html_e( $permission['desc'] ); ?></p>
239
  </div>
240
  </li>
241
  <?php endforeach; ?>
@@ -267,12 +275,20 @@
267
  var $primaryCta = $('.fs-actions .button.button-primary'),
268
  $form = $('.fs-actions form'),
269
  requireLicenseKey = <?php echo $require_license_key ? 'true' : 'false' ?>,
 
270
  $licenseSecret,
271
  $licenseKeyInput = $('#fs_license_key');
272
 
273
  $('.fs-actions .button').on('click', function () {
274
  // Set loading mode.
275
  $(document.body).css({'cursor': 'wait'});
 
 
 
 
 
 
 
276
  });
277
 
278
  $form.on('submit', function () {
@@ -281,13 +297,53 @@
281
  * @since 1.1.9
282
  */
283
  if (requireLicenseKey) {
284
- if (null == $licenseSecret) {
285
- $licenseSecret = $('<input type="hidden" name="license_secret_key" value="" />');
286
- $form.append($licenseSecret);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  }
 
 
 
 
 
288
 
289
- // Update secret key if premium only plugin.
290
- $licenseSecret.val($licenseKeyInput.val());
 
291
  }
292
 
293
  return true;
@@ -295,7 +351,7 @@
295
 
296
  $primaryCta.on('click', function () {
297
  $(this).addClass('fs-loading');
298
- $(this).html('<?php _efs( $is_pending_activation ? 'sending-email' : 'activating' , $slug ) ?>...').css({'cursor': 'wait'});
299
  });
300
 
301
  $('.fs-permissions .fs-trigger').on('click', function () {
58
  }
59
 
60
  if ( $require_license_key ) {
61
+ $fs->_add_license_activation_dialog_box();
62
  }
63
+
64
+ $fs_user = Freemius::_get_user_by_email( $current_user->user_email );
65
+ $activate_with_current_user = is_object( $fs_user ) && ! $is_pending_activation;
66
  ?>
67
  <div id="fs_connect"
68
  class="wrap<?php if ( ! $fs->is_enable_anonymous() || $is_pending_activation || $require_license_key ) {
93
  __fs( 'pending-activation-message', $slug ),
94
  $first_name,
95
  '<b>' . $fs->get_plugin_name() . '</b>',
96
+ '<b>' . $current_user->user_email . '</b>',
97
+ __fs( 'complete-the-install', $slug )
98
  ) );
99
  } else if ( $require_license_key ) {
100
  $button_label = 'agree-activate-license';
123
  }
124
 
125
  echo $fs->apply_filters( $filter,
126
+ sprintf( __fs( 'hey-x', $slug ), $first_name ) . '<br>' .
127
  sprintf(
 
128
  __fs( $default_optin_message, $slug ),
 
129
  '<b>' . $fs->get_plugin_name() . '</b>',
130
  '<b>' . $current_user->user_login . '</b>',
131
  '<a href="' . $site_url . '" target="_blank">' . $site_url . '</a>',
151
  </div>
152
  <div class="fs-actions">
153
  <?php if ( $fs->is_enable_anonymous() && ! $is_pending_activation && ! $require_license_key ) : ?>
154
+ <a href="<?php echo fs_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $slug . '_skip_activation' ) ), $slug . '_skip_activation' ) ?>"
155
  class="button button-secondary" tabindex="2"><?php _efs( 'skip', $slug ) ?></a>
156
  <?php endif ?>
157
 
158
+ <?php if ( $activate_with_current_user ) : ?>
 
159
  <form action="" method="POST">
160
  <input type="hidden" name="fs_action" value="<?php echo $slug ?>_activate_existing">
161
  <?php wp_nonce_field( 'activate_existing_' . $fs->get_public_key() ) ?>
192
  'desc' => __fs( 'permissions-site_desc' ),
193
  'priority' => 10,
194
  ),
195
+ 'notices' => array(
196
+ 'icon-class' => 'dashicons dashicons-testimonial',
197
+ 'label' => __fs( 'permissions-admin-notices' ),
198
+ 'desc' => __fs( 'permissions-newsletter_desc' ),
199
+ 'priority' => 13,
200
+ ),
201
  'events' => array(
202
  'icon-class' => 'dashicons dashicons-admin-plugins',
203
  'label' => __fs( 'permissions-events' ),
236
  <a class="fs-trigger" href="#" tabindex="1"><?php _efs( 'what-permissions', $slug ) ?></a>
237
  <ul><?php
238
  foreach ( $permissions as $id => $permission ) : ?>
239
+ <li id="fs-permission-<?php echo esc_attr( $id ); ?>"
240
+ class="fs-permission fs-<?php echo esc_attr( $id ); ?>">
241
+ <i class="<?php echo esc_attr( $permission['icon-class'] ); ?>"></i>
242
 
243
  <div>
244
+ <span><?php echo esc_html( $permission['label'] ); ?></span>
245
 
246
+ <p><?php echo esc_html( $permission['desc'] ); ?></p>
247
  </div>
248
  </li>
249
  <?php endforeach; ?>
275
  var $primaryCta = $('.fs-actions .button.button-primary'),
276
  $form = $('.fs-actions form'),
277
  requireLicenseKey = <?php echo $require_license_key ? 'true' : 'false' ?>,
278
+ hasContextUser = <?php echo $activate_with_current_user ? 'true' : 'false' ?>,
279
  $licenseSecret,
280
  $licenseKeyInput = $('#fs_license_key');
281
 
282
  $('.fs-actions .button').on('click', function () {
283
  // Set loading mode.
284
  $(document.body).css({'cursor': 'wait'});
285
+
286
+ var $this = $(this);
287
+ $this.css({'cursor': 'wait'});
288
+
289
+ setTimeout(function () {
290
+ $this.attr('disabled', 'disabled');
291
+ }, 200);
292
  });
293
 
294
  $form.on('submit', function () {
297
  * @since 1.1.9
298
  */
299
  if (requireLicenseKey) {
300
+ if (!hasContextUser) {
301
+ $('.fs-error').remove();
302
+
303
+ /**
304
+ * Use the AJAX opt-in when license key is required to potentially
305
+ * process the after install failure hook.
306
+ *
307
+ * @author Vova Feldman (@svovaf)
308
+ * @since 1.2.1.5
309
+ */
310
+ $.ajax({
311
+ url : ajaxurl,
312
+ method : 'POST',
313
+ data : {
314
+ action : 'fs_activate_license_<?php echo $slug ?>',
315
+ slug : '<?php echo $slug ?>',
316
+ license_key: $licenseKeyInput.val()
317
+ },
318
+ success: function (result) {
319
+ var resultObj = $.parseJSON(result);
320
+ if (resultObj.success) {
321
+ // Redirect to the "Account" page and sync the license.
322
+ window.location.href = resultObj.next_page;
323
+ } else {
324
+ // Show error.
325
+ $('.fs-content').prepend('<p class="fs-error">' + resultObj.error + '</p>');
326
+
327
+ // Reset loading mode.
328
+ $primaryCta.removeClass('fs-loading').css({'cursor': 'auto'});
329
+ $primaryCta.html(<?php echo json_encode(__fs( $button_label, $slug )) ?>);
330
+ $primaryCta.prop('disabled', false);
331
+ $(document.body).css({'cursor': 'auto'});
332
+ }
333
+ }
334
+ });
335
+
336
+ return false;
337
  }
338
+ else {
339
+ if (null == $licenseSecret) {
340
+ $licenseSecret = $('<input type="hidden" name="license_secret_key" value="" />');
341
+ $form.append($licenseSecret);
342
+ }
343
 
344
+ // Update secret key if premium only plugin.
345
+ $licenseSecret.val($licenseKeyInput.val());
346
+ }
347
  }
348
 
349
  return true;
351
 
352
  $primaryCta.on('click', function () {
353
  $(this).addClass('fs-loading');
354
+ $(this).html(<?php echo json_encode(__fs( $is_pending_activation ? 'sending-email' : 'activating' , $slug )) ?> +'...');
355
  });
356
 
357
  $('.fs-permissions .fs-trigger').on('click', function () {
freemius/templates/debug.php CHANGED
@@ -78,6 +78,58 @@
78
  </tr>
79
  </tbody>
80
  </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  <h2><?php _efs( 'sdk-versions' ) ?></h2>
82
  <table id="fs_sdks" class="widefat">
83
  <thead>
@@ -116,6 +168,7 @@
116
  <th><?php _efs( 'freemius-state' ) ?></th>
117
  <th><?php _efs( 'plugin-path' ) ?></th>
118
  <th><?php _efs( 'public-key' ) ?></th>
 
119
  </tr>
120
  </thead>
121
  <tbody>
@@ -123,24 +176,42 @@
123
  <?php $is_active = is_plugin_active( $data->file ) ?>
124
  <?php $fs = $is_active ? freemius( $slug ) : null ?>
125
  <tr<?php if ( $is_active ) {
126
- echo ' style="background: #E6FFE6; font-weight: bold"';
 
 
 
 
127
  } ?>>
128
  <td><?php echo $data->id ?></td>
129
  <td><?php echo $slug ?></td>
130
  <td><?php echo $data->version ?></td>
131
  <td><?php echo $data->title ?></td>
132
- <td><?php if ( $is_active ) {
 
 
133
  echo $fs->has_api_connectivity() ?
134
  __fs( 'connected' ) :
135
  __fs( 'blocked' );
136
  } ?></td>
137
- <td><?php if ( $is_active ) {
 
 
138
  echo $fs->is_on() ?
139
  __fs( 'on' ) :
140
  __fs( 'off' );
141
  } ?></td>
142
  <td><?php echo $data->file ?></td>
143
  <td><?php echo $data->public_key ?></td>
 
 
 
 
 
 
 
 
 
 
144
  </tr>
145
  <?php endforeach ?>
146
  </tbody>
@@ -148,7 +219,7 @@
148
  <?php endif ?>
149
  <?php
150
  /**
151
- * @var array $VARS
152
  * @var FS_Site[] $sites
153
  */
154
  $sites = $VARS['sites'];
@@ -240,7 +311,7 @@
240
  <tr>
241
  <td><?php echo $user->id ?></td>
242
  <td><?php echo $user->get_name() ?></td>
243
- <td><a href="mailto:<?php esc_attr_e( $user->email ) ?>"><?php echo $user->email ?></a></td>
244
  <td><?php echo json_encode( $user->is_verified ) ?></td>
245
  <td><?php echo $user->public_key ?></td>
246
  <td><?php echo $user->secret_key ?></td>
78
  </tr>
79
  </tbody>
80
  </table>
81
+ <?php
82
+ if ( ! defined( 'FS_API__ADDRESS' ) ) {
83
+ define( 'FS_API__ADDRESS', '://api.freemius.com' );
84
+ }
85
+ if ( ! defined( 'FS_API__SANDBOX_ADDRESS' ) ) {
86
+ define( 'FS_API__SANDBOX_ADDRESS', '://sandbox-api.freemius.com' );
87
+ }
88
+
89
+ $defines = array(
90
+ array(
91
+ 'key' => 'WP_FS__REMOTE_ADDR',
92
+ 'val' => WP_FS__REMOTE_ADDR,
93
+ ),
94
+ array(
95
+ 'key' => 'WP_FS__ADDRESS_PRODUCTION',
96
+ 'val' => WP_FS__ADDRESS_PRODUCTION,
97
+ ),
98
+ array(
99
+ 'key' => 'FS_API__ADDRESS',
100
+ 'val' => FS_API__ADDRESS,
101
+ ),
102
+ array(
103
+ 'key' => 'FS_API__SANDBOX_ADDRESS',
104
+ 'val' => FS_API__SANDBOX_ADDRESS,
105
+ ),
106
+ array(
107
+ 'key' => 'WP_FS__DIR',
108
+ 'val' => WP_FS__DIR,
109
+ ),
110
+ )
111
+ ?>
112
+ <br>
113
+ <table class="widefat">
114
+ <thead>
115
+ <tr>
116
+ <th><?php _efs( 'key' ) ?></th>
117
+ <th><?php _efs( 'value' ) ?></th>
118
+ </tr>
119
+ </thead>
120
+ <tbody>
121
+ <?php $alternate = false;
122
+ foreach ( $defines as $p ) : ?>
123
+ <tr<?php if ( $alternate ) {
124
+ echo ' class="alternate"';
125
+ } ?>>
126
+ <td><?php echo $p['key'] ?></td>
127
+ <td><?php echo $p['val'] ?></td>
128
+ </tr>
129
+ <?php $alternate = ! $alternate ?>
130
+ <?php endforeach ?>
131
+ </tbody>
132
+ </table>
133
  <h2><?php _efs( 'sdk-versions' ) ?></h2>
134
  <table id="fs_sdks" class="widefat">
135
  <thead>
168
  <th><?php _efs( 'freemius-state' ) ?></th>
169
  <th><?php _efs( 'plugin-path' ) ?></th>
170
  <th><?php _efs( 'public-key' ) ?></th>
171
+ <th><?php _efs( 'actions' ) ?></th>
172
  </tr>
173
  </thead>
174
  <tbody>
176
  <?php $is_active = is_plugin_active( $data->file ) ?>
177
  <?php $fs = $is_active ? freemius( $slug ) : null ?>
178
  <tr<?php if ( $is_active ) {
179
+ if ($fs->has_api_connectivity() && $fs->is_on()) {
180
+ echo ' style="background: #E6FFE6; font-weight: bold"';
181
+ }else{
182
+ echo ' style="background: #ffd0d0; font-weight: bold"';
183
+ }
184
  } ?>>
185
  <td><?php echo $data->id ?></td>
186
  <td><?php echo $slug ?></td>
187
  <td><?php echo $data->version ?></td>
188
  <td><?php echo $data->title ?></td>
189
+ <td<?php if ( $is_active && ! $fs->has_api_connectivity() ) {
190
+ echo ' style="color: red; text-transform: uppercase;"';
191
+ } ?>><?php if ( $is_active ) {
192
  echo $fs->has_api_connectivity() ?
193
  __fs( 'connected' ) :
194
  __fs( 'blocked' );
195
  } ?></td>
196
+ <td<?php if ( $is_active && ! $fs->is_on() ) {
197
+ echo ' style="color: red; text-transform: uppercase;"';
198
+ } ?>><?php if ( $is_active ) {
199
  echo $fs->is_on() ?
200
  __fs( 'on' ) :
201
  __fs( 'off' );
202
  } ?></td>
203
  <td><?php echo $data->file ?></td>
204
  <td><?php echo $data->public_key ?></td>
205
+ <td>
206
+ <?php if ($is_active && $fs->has_trial_plan()) : ?>
207
+ <form action="" method="POST">
208
+ <input type="hidden" name="fs_action" value="simulate_trial">
209
+ <input type="hidden" name="slug" value="<?php echo $slug ?>">
210
+ <?php wp_nonce_field( 'simulate_trial' ) ?>
211
+
212
+ <button type="submit" class="button button-primary simulate-trial"><?php _efs( 'Simulate Trial' ) ?></button>
213
+ <?php endif ?>
214
+ </td>
215
  </tr>
216
  <?php endforeach ?>
217
  </tbody>
219
  <?php endif ?>
220
  <?php
221
  /**
222
+ * @var array $VARS
223
  * @var FS_Site[] $sites
224
  */
225
  $sites = $VARS['sites'];
311
  <tr>
312
  <td><?php echo $user->id ?></td>
313
  <td><?php echo $user->get_name() ?></td>
314
+ <td><a href="mailto:<?php echo esc_attr( $user->email ) ?>"><?php echo $user->email ?></a></td>
315
  <td><?php echo json_encode( $user->is_verified ) ?></td>
316
  <td><?php echo $user->public_key ?></td>
317
  <td><?php echo $user->secret_key ?></td>
freemius/templates/debug/logger.php CHANGED
@@ -47,11 +47,11 @@
47
  <?php
48
  printf(
49
  '<a href="#" style="color: darkorange !important;" onclick="jQuery(this).parent().find(\'div\').toggle(); return false;"><nobr>%s</nobr></a>',
50
- substr( $log['msg'], 0, 32 ) . ( 32 < strlen( $log['msg'] ) ? '...' : '' )
51
  );
52
  ?>
53
  <div style="display: none;">
54
- <b style="color: darkorange;"><?php echo $log['msg'] ?></b>
55
  </div>
56
  </td>
57
  <td><?php
47
  <?php
48
  printf(
49
  '<a href="#" style="color: darkorange !important;" onclick="jQuery(this).parent().find(\'div\').toggle(); return false;"><nobr>%s</nobr></a>',
50
+ esc_html( substr( $log['msg'], 0, 32 ) ) . ( 32 < strlen( $log['msg'] ) ? '...' : '' )
51
  );
52
  ?>
53
  <div style="display: none;">
54
+ <b style="color: darkorange;"><?php echo esc_html( $log['msg'] ) ?></b>
55
  </div>
56
  </td>
57
  <td><?php
freemius/templates/forms/deactivation/form.php CHANGED
@@ -77,7 +77,7 @@ HTML;
77
  + ' <div class="fs-modal-footer">'
78
  + ' <?php echo $anonymous_feedback_checkbox_html ?>'
79
  + ' <a href="#" class="button button-secondary button-deactivate"></a>'
80
- + ' <a href="#" class="button button-primary button-close"><?php printf( __fs( 'deactivation-modal-button-cancel' , $slug ) ) ?></a>'
81
  + ' </div>'
82
  + ' </div>'
83
  + '</div>',
@@ -168,6 +168,7 @@ HTML;
168
  method : 'POST',
169
  data : {
170
  'action' : '<?php echo $fs->get_action_tag( 'submit_uninstall_reason' ) ?>',
 
171
  'reason_id' : $radio.val(),
172
  'reason_info' : userReason,
173
  'is_anonymous': isAnonymousFeedback()
77
  + ' <div class="fs-modal-footer">'
78
  + ' <?php echo $anonymous_feedback_checkbox_html ?>'
79
  + ' <a href="#" class="button button-secondary button-deactivate"></a>'
80
+ + ' <a href="#" class="button button-primary button-close"><?php _efs( 'cancel' , $slug ) ?></a>'
81
  + ' </div>'
82
  + ' </div>'
83
  + '</div>',
168
  method : 'POST',
169
  data : {
170
  'action' : '<?php echo $fs->get_action_tag( 'submit_uninstall_reason' ) ?>',
171
+ 'slug' : '<?php echo $slug ?>',
172
  'reason_id' : $radio.val(),
173
  'reason_info' : userReason,
174
  'is_anonymous': isAnonymousFeedback()
freemius/templates/forms/deactivation/retry-skip.php CHANGED
@@ -16,7 +16,7 @@
16
  $slug = $VARS['slug'];
17
  $fs = freemius( $slug );
18
 
19
- $skip_url = wp_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $slug . '_skip_activation' ) ), $slug . '_skip_activation' );
20
  $skip_text = strtolower( __fs( 'skip', $slug ) );
21
  $use_plugin_anonymously_text = __fs( 'click-here-to-use-plugin-anonymously', $slug );
22
 
16
  $slug = $VARS['slug'];
17
  $fs = freemius( $slug );
18
 
19
+ $skip_url = fs_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $slug . '_skip_activation' ) ), $slug . '_skip_activation' );
20
  $skip_text = strtolower( __fs( 'skip', $slug ) );
21
  $use_plugin_anonymously_text = __fs( 'click-here-to-use-plugin-anonymously', $slug );
22
 
freemius/templates/forms/license-activation.php CHANGED
@@ -16,28 +16,6 @@
16
  $slug = $VARS['slug'];
17
  $fs = freemius( $slug );
18
 
19
- if ($fs->is_registered()) {
20
- // The URL to redirect to after successfully activating the license from the "Plugins" page.
21
- if ( $fs->is_addon() ) {
22
- $sync_license_url = $fs->get_parent_instance()->_get_sync_license_url( $fs->get_id(), true );
23
- } else {
24
- $sync_license_url = $fs->_get_sync_license_url( $fs->get_id(), true );
25
- }
26
-
27
- /**
28
- * Trigger license sync after valid license activation.
29
- */
30
- $after_license_activation_url = $sync_license_url;
31
- }
32
- else
33
- {
34
- /**
35
- * If user not yet registered, the license activation triggers
36
- * an opt-in, which automatically sync the license.
37
- */
38
- $after_license_activation_url = $fs->get_account_url();
39
- }
40
-
41
  $cant_find_license_key_text = __fs( 'cant-find-license-key', $slug );
42
  $message_above_input_field = __fs( 'activate-license-message', $slug );
43
  $message_below_input_field = '';
@@ -61,6 +39,12 @@
61
 
62
  $license_key_text = __fs( 'license-key' , $slug );
63
 
 
 
 
 
 
 
64
  $modal_content_html = <<< HTML
65
  <div class="notice notice-error inline license-activation-message"><p></p></div>
66
  <p>{$message_above_input_field}</p>
@@ -86,7 +70,7 @@ HTML;
86
  + ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
87
  + ' </div>'
88
  + ' <div class="fs-modal-footer">'
89
- + ' <button class="button button-secondary button-close" tabindex="4"><?php _efs('deactivation-modal-button-cancel', $slug); ?></button>'
90
  + ' <button class="button button-primary button-activate-license" tabindex="3"><?php echo $activate_button_text; ?></button>'
91
  + ' </div>'
92
  + ' </div>'
@@ -96,8 +80,7 @@ HTML;
96
  $activateLicenseButton = $modal.find('.button-activate-license'),
97
  $licenseKeyInput = $modal.find('input.license_key'),
98
  $licenseActivationMessage = $modal.find( '.license-activation-message' ),
99
- pluginSlug = '<?php echo $slug ?>',
100
- afterActivationUrl = '<?php echo $after_license_activation_url ?>';
101
 
102
  $modal.appendTo($('body'));
103
 
@@ -163,7 +146,7 @@ HTML;
163
  closeModal();
164
 
165
  // Redirect to the "Account" page and sync the license.
166
- window.location.href = afterActivationUrl;
167
  } else {
168
  showError( resultObj.error );
169
  resetActivateLicenseButton();
16
  $slug = $VARS['slug'];
17
  $fs = freemius( $slug );
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  $cant_find_license_key_text = __fs( 'cant-find-license-key', $slug );
20
  $message_above_input_field = __fs( 'activate-license-message', $slug );
21
  $message_below_input_field = '';
39
 
40
  $license_key_text = __fs( 'license-key' , $slug );
41
 
42
+ /**
43
+ * IMPORTANT:
44
+ * DO NOT ADD MAXLENGTH OR LIMIT THE LICENSE KEY LENGTH SINCE
45
+ * WE DO WANT TO ALLOW INPUT OF LONGER KEYS (E.G. WooCommerce Keys)
46
+ * FOR MIGRATED MODULES.
47
+ */
48
  $modal_content_html = <<< HTML
49
  <div class="notice notice-error inline license-activation-message"><p></p></div>
50
  <p>{$message_above_input_field}</p>
70
  + ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
71
  + ' </div>'
72
  + ' <div class="fs-modal-footer">'
73
+ + ' <button class="button button-secondary button-close" tabindex="4"><?php _efs('cancel', $slug); ?></button>'
74
  + ' <button class="button button-primary button-activate-license" tabindex="3"><?php echo $activate_button_text; ?></button>'
75
  + ' </div>'
76
  + ' </div>'
80
  $activateLicenseButton = $modal.find('.button-activate-license'),
81
  $licenseKeyInput = $modal.find('input.license_key'),
82
  $licenseActivationMessage = $modal.find( '.license-activation-message' ),
83
+ pluginSlug = '<?php echo $slug ?>';
 
84
 
85
  $modal.appendTo($('body'));
86
 
146
  closeModal();
147
 
148
  // Redirect to the "Account" page and sync the license.
149
+ window.location.href = resultObj.next_page;
150
  } else {
151
  showError( resultObj.error );
152
  resetActivateLicenseButton();
freemius/templates/forms/optout.php ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Freemius
4
+ * @copyright Copyright (c) 2015, Freemius, Inc.
5
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
6
+ * @since 1.2.1.5
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ /**
14
+ * @var array $VARS
15
+ */
16
+ $slug = $VARS['slug'];
17
+ $fs = freemius( $slug );
18
+
19
+ $action = $fs->is_tracking_allowed() ?
20
+ 'stop_tracking' :
21
+ 'allow_tracking';
22
+
23
+ $plugin_title = "<strong>{$fs->get_plugin()->title}</strong>";
24
+ $opt_out_button_text = __fs( 'opt-out', $slug );
25
+ // @todo Change 'plugin' with module type when migrating with 1.2.2 (themes version).
26
+ $opt_out_message_appreciation = sprintf( __fs( 'opt-out-message-appreciation', $slug ), 'plugin' );
27
+ $opt_out_message_usage_tracking = sprintf( __fs( 'opt-out-message-usage-tracking', $slug ),
28
+ $plugin_title );
29
+ $opt_out_message_clicking_opt_out = sprintf( __fs( 'opt-out-message-clicking-opt-out', $slug ),
30
+ $plugin_title,
31
+ '<a href="http://freemius.com" target="_blank">freemius.com</a>' );
32
+
33
+ $admin_notice_params = array(
34
+ 'id' => '',
35
+ 'slug' => $fs->get_id(),
36
+ 'type' => 'success',
37
+ 'sticky' => false,
38
+ 'plugin' => $fs->get_plugin()->title,
39
+ 'message' => $opt_out_message_appreciation
40
+ );
41
+
42
+ $admin_notice_html = fs_get_template( 'admin-notice.php', $admin_notice_params );
43
+
44
+ $modal_content_html = <<< HTML
45
+ <h2>{$opt_out_message_appreciation}</h2>
46
+ <div class="notice notice-error inline opt-out-error-message"><p></p></div>
47
+ <p>{$opt_out_message_usage_tracking}</p>
48
+ <p>{$opt_out_message_clicking_opt_out}</p>
49
+ HTML;
50
+
51
+ fs_enqueue_local_style( 'dialog-boxes', '/admin/dialog-boxes.css' );
52
+ fs_enqueue_local_style( 'fs_common', '/admin/common.css' );
53
+ ?>
54
+ <script type="text/javascript">
55
+ (function( $ ) {
56
+ $( document ).ready(function() {
57
+ var modalContentHtml = <?php echo json_encode( $modal_content_html ) ?>,
58
+ modalHtml =
59
+ '<div class="fs-modal fs-modal-opt-out">'
60
+ + ' <div class="fs-modal-dialog">'
61
+ + ' <div class="fs-modal-header">'
62
+ + ' <h4><?php echo $opt_out_button_text ?></h4>'
63
+ + ' </div>'
64
+ + ' <div class="fs-modal-body">'
65
+ + ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
66
+ + ' </div>'
67
+ + ' <div class="fs-modal-footer">'
68
+ + ' <button class="button button-secondary button-opt-out" tabindex="1"><?php echo $opt_out_button_text ?></button>'
69
+ + ' <button class="button button-primary button-close" tabindex="2"><?php _efs( 'opt-out-cancel', $slug ) ?></button>'
70
+ + ' </div>'
71
+ + ' </div>'
72
+ + '</div>',
73
+ $modal = $( modalHtml ),
74
+ $adminNotice = $( <?php echo json_encode( $admin_notice_html ) ?> ),
75
+ action = '<?php echo $action ?>',
76
+ optOutActionTag = '<?php echo $fs->get_action_tag( 'stop_tracking' ) ?>',
77
+ optInActionTag = '<?php echo $fs->get_action_tag( 'allow_tracking' ) ?>',
78
+ $actionLink = $( 'span.opt-in-or-opt-out.<?php echo $VARS['slug'] ?> a' ),
79
+ $optOutButton = $modal.find( '.button-opt-out' ),
80
+ $optOutErrorMessage = $modal.find( '.opt-out-error-message' ),
81
+ pluginSlug = '<?php echo $slug ?>';
82
+
83
+ $actionLink.attr( 'data-action', action );
84
+ $modal.appendTo( $( 'body' ) );
85
+
86
+ function registerEventHandlers() {
87
+ $actionLink.click(function( evt ) {
88
+ evt.preventDefault();
89
+
90
+ if ( 'stop_tracking' == $actionLink.attr( 'data-action' ) ) {
91
+ showModal();
92
+ } else {
93
+ optIn();
94
+ }
95
+ });
96
+
97
+ $modal.on( 'click', '.button-opt-out', function( evt ) {
98
+ evt.preventDefault();
99
+
100
+ if ( $( this ).hasClass( 'disabled' ) ) {
101
+ return;
102
+ }
103
+
104
+ disableOptOutButton();
105
+ optOut();
106
+ });
107
+
108
+ // If the user has clicked outside the window, close the modal.
109
+ $modal.on( 'click', '.fs-close, .button-close', function() {
110
+ closeModal();
111
+ return false;
112
+ });
113
+ }
114
+
115
+ registerEventHandlers();
116
+
117
+ function showModal() {
118
+ resetModal();
119
+
120
+ // Display the dialog box.
121
+ $modal.addClass( 'active' );
122
+ $( 'body' ).addClass( 'has-fs-modal' );
123
+ }
124
+
125
+ function closeModal() {
126
+ $modal.removeClass( 'active' );
127
+ $( 'body' ).removeClass( 'has-fs-modal' );
128
+ }
129
+
130
+ function resetOptOutButton() {
131
+ enableOptOutButton();
132
+ $optOutButton.text( '<?php echo $opt_out_button_text; ?>' );
133
+ }
134
+
135
+ function resetModal() {
136
+ hideError();
137
+ resetOptOutButton();
138
+ }
139
+
140
+ function optIn() {
141
+ sendRequest();
142
+ }
143
+
144
+ function optOut() {
145
+ sendRequest();
146
+ }
147
+
148
+ function sendRequest() {
149
+ $.ajax({
150
+ url: ajaxurl,
151
+ method: 'POST',
152
+ data: {
153
+ action: ( 'stop_tracking' == action ? optOutActionTag : optInActionTag ),
154
+ slug : pluginSlug
155
+ },
156
+ beforeSend: function() {
157
+ if ( 'opt-in' == action ) {
158
+ $actionLink.text( '<?php _efs( 'opting-in', $slug ) ?>' )
159
+ } else {
160
+ $optOutButton.text( '<?php _efs( 'opting-out', $slug ) ?>' );
161
+ }
162
+ },
163
+ success: function( resultObj ) {
164
+ if ( resultObj.success ) {
165
+ if ( 'allow_tracking' == action ) {
166
+ action = 'stop_tracking';
167
+ $actionLink.text( '<?php _efs( 'opt-out', $slug ) ?>' );
168
+ showOptInAppreciationMessageAndScrollToTop();
169
+ } else {
170
+ action = 'allow_tracking';
171
+ $actionLink.text( '<?php _efs( 'opt-in', $slug ) ?>' );
172
+ closeModal();
173
+
174
+ if ( $adminNotice.length > 0 ) {
175
+ $adminNotice.remove();
176
+ }
177
+ }
178
+
179
+ $actionLink.attr( 'data-action', action );
180
+ } else {
181
+ showError( resultObj.error );
182
+ resetOptOutButton();
183
+ }
184
+ }
185
+ });
186
+ }
187
+
188
+ function enableOptOutButton() {
189
+ $optOutButton.removeClass( 'disabled' );
190
+ }
191
+
192
+ function disableOptOutButton() {
193
+ $optOutButton.addClass( 'disabled' );
194
+ }
195
+
196
+ function hideError() {
197
+ $optOutErrorMessage.hide();
198
+ }
199
+
200
+ function showOptInAppreciationMessageAndScrollToTop() {
201
+ $adminNotice.insertAfter( $( '#wpbody-content' ).find( ' > .wrap > h1' ) );
202
+ window.scrollTo(0, 0);
203
+ }
204
+
205
+ function showError( msg ) {
206
+ $optOutErrorMessage.find( ' > p' ).html( msg );
207
+ $optOutErrorMessage.show();
208
+ }
209
+ });
210
+ })( jQuery );
211
+ </script>
freemius/templates/forms/resend-key.php CHANGED
@@ -18,7 +18,7 @@
18
 
19
  $message_above_input_field = __fs( 'ask-for-upgrade-email-address', $slug );
20
  $send_button_text = __fs( 'send-license-key', $slug );
21
- $cancel_button_text = __fs( 'deactivation-modal-button-cancel', $slug );
22
  $email_address_placeholder = __fs( 'email-address', $slug );
23
 
24
  $modal_content_html = <<< HTML
18
 
19
  $message_above_input_field = __fs( 'ask-for-upgrade-email-address', $slug );
20
  $send_button_text = __fs( 'send-license-key', $slug );
21
+ $cancel_button_text = __fs( 'cancel', $slug );
22
  $email_address_placeholder = __fs( 'email-address', $slug );
23
 
24
  $modal_content_html = <<< HTML
freemius/templates/forms/trial-start.php ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package Freemius
4
+ * @copyright Copyright (c) 2015, Freemius, Inc.
5
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
6
+ * @since 1.2.0
7
+ */
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ /**
14
+ * @var array $VARS
15
+ */
16
+ $slug = $VARS['slug'];
17
+ $fs = freemius( $slug );
18
+
19
+ $message_header = sprintf(
20
+ __fs( 'start-trial-prompt-header', $slug ),
21
+ '<span class="var-trial_period"></span>',
22
+ '<span class="var-plan_title"></span>'
23
+ );
24
+ $message_content = sprintf(
25
+ __fs( 'start-trial-prompt-message', $slug ),
26
+ '<a href="https://freemius.com" target="_blank">freemius.com</a>'
27
+ );
28
+
29
+ $modal_content_html = <<< HTML
30
+ <div class="notice notice-error inline"><p></p></div>
31
+ <h3>{$message_header}</h3>
32
+ <p>{$message_content}</p>
33
+ HTML;
34
+
35
+ fs_enqueue_local_style( 'dialog-boxes', '/admin/dialog-boxes.css' );
36
+ ?>
37
+ <script type="text/javascript">
38
+ (function ($) {
39
+ $(document).ready(function () {
40
+ var modalContentHtml = <?php echo json_encode( $modal_content_html ); ?>,
41
+ modalHtml =
42
+ '<div class="fs-modal fs-modal-license-key-resend">'
43
+ + ' <div class="fs-modal-dialog">'
44
+ + ' <div class="fs-modal-header">'
45
+ + ' <h4><?php _efs( 'start-free-trial' ) ?></h4>'
46
+ + ' </div>'
47
+ + ' <div class="fs-modal-body">' + modalContentHtml + '</div>'
48
+ + ' <div class="fs-modal-footer">'
49
+ + ' <button class="button button-secondary button-close">' + <?php echo json_encode( __fs( 'cancel', $slug ) ) ?> +'</button>'
50
+ + ' <button class="button button-primary button-connect">' + <?php echo json_encode( __fs( 'approve-start-trial', $slug ) ) ?> +'</button>'
51
+ + ' </div>'
52
+ + ' </div>'
53
+ + '</div>',
54
+ $modal = $(modalHtml),
55
+ moduleSlug = '<?php echo $slug; ?>',
56
+ trialData;
57
+
58
+ $modal.appendTo($('body'));
59
+
60
+ var $errorNotice = $modal.find('.notice-error');
61
+
62
+ registerEventHandlers();
63
+
64
+ function registerEventHandlers() {
65
+ $modal.on('click', '.button-close', function () {
66
+ closeModal();
67
+ return false;
68
+ });
69
+
70
+ $modal.on('click', '.button-connect', function (evt) {
71
+ evt.preventDefault();
72
+
73
+ var $button = $(this);
74
+
75
+ $.ajax({
76
+ url : ajaxurl,
77
+ method : 'POST',
78
+ data : {
79
+ action : '<?php echo $fs->get_action_tag( 'start_trial' ) ?>',
80
+ security: '<?php echo wp_create_nonce( $fs->get_action_tag( 'start_trial' ) ) ?>',
81
+ slug : moduleSlug,
82
+ trial : trialData
83
+ },
84
+ beforeSend: function () {
85
+ // Disable all buttons during trial activation.
86
+ $modal.find('.button').prop('disabled', true);
87
+
88
+ $button.text('<?php _efs( 'starting-trial', $slug ) ?>...');
89
+
90
+ setLoadingMode();
91
+ },
92
+ success : function (resultObj) {
93
+ if (resultObj.success) {
94
+ $button.text('<?php _efs( 'please-wait', $slug ) ?>...');
95
+
96
+ // Redirect to the "Account" page and sync the license.
97
+ window.location.href = resultObj.data.next_page;
98
+ } else {
99
+ $button.text(<?php json_encode( __fs( 'approve-start-trial', $slug ) ) ?>);
100
+
101
+ resetLoadingMode();
102
+ showError(resultObj.error);
103
+ }
104
+ }
105
+ });
106
+ });
107
+ }
108
+
109
+ window.openTrialConfirmationModal = function showModal(data) {
110
+ resetModal();
111
+
112
+ // Display the dialog box.
113
+ $modal.addClass('active');
114
+
115
+ trialData = data;
116
+
117
+ var $modalBody = $modal.find('.fs-modal-body'),
118
+ $var;
119
+
120
+ for (var key in data) {
121
+ if (data.hasOwnProperty(key)) {
122
+ $var = $modalBody.find('.var-' + key);
123
+
124
+ if ($var.length > 0)
125
+ $var.html(data[key]);
126
+ }
127
+ }
128
+
129
+ $('body').addClass('has-fs-modal');
130
+ };
131
+
132
+ function closeModal() {
133
+ $modal.removeClass('active');
134
+
135
+ $('body').removeClass('has-fs-modal');
136
+ }
137
+
138
+ function resetModal() {
139
+ hideError();
140
+ }
141
+
142
+ function hideError() {
143
+ $errorNotice.hide();
144
+ }
145
+
146
+ function setLoadingMode() {
147
+ $modal.find('.button')
148
+ // Re-enable all buttons.
149
+ .prop('disabled', trialData)
150
+ // Stop loading cursor.
151
+ .css({'cursor': 'wait'});
152
+
153
+ // Stop loading cursor.
154
+ $(document.body).css({'cursor': 'wait'});
155
+ }
156
+
157
+ function resetLoadingMode() {
158
+ $modal.find('.button')
159
+ // Re-enable all buttons.
160
+ .prop('disabled', false)
161
+ // Stop loading cursor.
162
+ .css({'cursor': 'initial'});
163
+
164
+ // Stop loading cursor.
165
+ $(document.body).css({'cursor': 'initial'});
166
+ }
167
+
168
+ function showError(msg) {
169
+ $errorNotice.find(' > p').html(msg);
170
+ $errorNotice.show();
171
+ }
172
+ });
173
+ })(jQuery);
174
+ </script>
freemius/templates/plugin-icon.php CHANGED
@@ -29,9 +29,15 @@
29
  $img_dir = WP_FS__DIR_IMG;
30
 
31
  if ( 1 < count( $fs_active_plugins->plugins ) ) {
 
 
32
  foreach ( $fs_active_plugins->plugins as $sdk_path => &$data ) {
33
  if ( $data->plugin_path == $fs->get_plugin_basename() ) {
34
- $img_dir = WP_PLUGIN_DIR . '/' . $sdk_path . '/assets/img';
 
 
 
 
35
  break;
36
  }
37
  }
@@ -39,9 +45,10 @@
39
 
40
  $icons = glob( fs_normalize_path( $img_dir . '/' . $slug . '.*' ) );
41
  if ( ! is_array( $icons ) || 0 === count( $icons ) ) {
42
- $icon_found = false;
43
- $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.png' );
44
- $have_write_permissions = is_writable( fs_normalize_path( $img_dir ) );
 
45
 
46
  if ( WP_FS__IS_LOCALHOST && $fs->is_org_repo_compliant() && $have_write_permissions ) {
47
  /**
@@ -52,24 +59,48 @@
52
  * already exist in the assets folder when the plugin is deployed to
53
  * the repository.
54
  */
55
- $suffixes = array(
56
- '-128x128.png',
57
- '-128x128.jpg',
58
- '-256x256.png',
59
- '-256x256.jpg',
60
- '.svg',
61
- );
62
-
63
- $base_url = 'https://plugins.svn.wordpress.org/' . $slug . '/assets/icon';
64
-
65
- foreach ( $suffixes as $s ) {
66
- $headers = get_headers( $base_url . $s );
67
- if ( strpos( $headers[0], '200' ) ) {
68
- $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.' . substr( $s, strpos( $s, '.' ) + 1 ) );
69
- fs_download_image( $base_url . $s, $local_path );
70
- $icon_found = true;
71
- break;
 
 
 
 
 
 
 
 
 
 
 
72
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  }
74
  }
75
 
@@ -92,5 +123,5 @@
92
  $relative_url = fs_img_url( substr( $icons[0], strlen( $icon_dir ) ), $icon_dir );
93
  ?>
94
  <div class="fs-plugin-icon">
95
- <img src="<?php echo $relative_url ?>" width="80" height="80" />
96
- </div>
29
  $img_dir = WP_FS__DIR_IMG;
30
 
31
  if ( 1 < count( $fs_active_plugins->plugins ) ) {
32
+ $plugin_or_theme_img_dir = WP_PLUGIN_DIR;
33
+
34
  foreach ( $fs_active_plugins->plugins as $sdk_path => &$data ) {
35
  if ( $data->plugin_path == $fs->get_plugin_basename() ) {
36
+ $img_dir = $plugin_or_theme_img_dir
37
+ . '/'
38
+ . str_replace( '../themes/', '', $sdk_path )
39
+ . '/assets/img';
40
+
41
  break;
42
  }
43
  }
45
 
46
  $icons = glob( fs_normalize_path( $img_dir . '/' . $slug . '.*' ) );
47
  if ( ! is_array( $icons ) || 0 === count( $icons ) ) {
48
+ $icon_found = false;
49
+ $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.png' );
50
+
51
+ $have_write_permissions = ( 'direct' === get_filesystem_method( array(), fs_normalize_path( $img_dir ) ) );
52
 
53
  if ( WP_FS__IS_LOCALHOST && $fs->is_org_repo_compliant() && $have_write_permissions ) {
54
  /**
59
  * already exist in the assets folder when the plugin is deployed to
60
  * the repository.
61
  */
62
+ if ( ! function_exists( 'plugins_api' ) ) {
63
+ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
64
+ }
65
+
66
+ $plugin_information = plugins_api( 'plugin_information', array(
67
+ 'slug' => $slug,
68
+ 'fields' => array(
69
+ 'sections' => false,
70
+ 'tags' => false,
71
+ 'icons' => true
72
+ )
73
+ ) );
74
+
75
+ if (
76
+ ! is_wp_error( $plugin_information )
77
+ && isset( $plugin_information->icons )
78
+ && ! empty( $plugin_information->icons )
79
+ ) {
80
+ /**
81
+ * Get the smallest icon.
82
+ *
83
+ * @author Leo Fajardo (@leorw)
84
+ * @since 1.2.2
85
+ */
86
+ $icon = end( $plugin_information->icons );
87
+
88
+ if ( 0 !== strpos( $icon, 'http' ) ) {
89
+ $icon = 'http:' . $icon;
90
  }
91
+
92
+ /**
93
+ * Get a clean file extension, e.g.: "jpg" and not "jpg?rev=1305765".
94
+ *
95
+ * @author Leo Fajardo (@leorw)
96
+ * @since 1.2.2
97
+ */
98
+ $ext = pathinfo( strtok( $icon, '?' ), PATHINFO_EXTENSION );
99
+
100
+ $local_path = fs_normalize_path( $img_dir . '/' . $slug . '.' . $ext );
101
+ fs_download_image( $icon, $local_path );
102
+
103
+ $icon_found = true;
104
  }
105
  }
106
 
123
  $relative_url = fs_img_url( substr( $icons[0], strlen( $icon_dir ) ), $icon_dir );
124
  ?>
125
  <div class="fs-plugin-icon">
126
+ <img src="<?php echo $relative_url ?>" width="80" height="80"/>
127
+ </div>
freemius/templates/pricing.php CHANGED
@@ -35,6 +35,8 @@
35
  $timestamp,
36
  'upgrade'
37
  ) );
 
 
38
  }
39
 
40
  if ( $fs->is_payments_sandbox() ) // Append plugin secure token for sandbox mode authentication.)
@@ -53,7 +55,12 @@
53
  'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
54
  ) );
55
  ?>
56
-
 
 
 
 
 
57
  <div id="fs_pricing" class="wrap" style="margin: 0 0 -65px -20px;">
58
  <div id="iframe"></div>
59
  <form action="" method="POST">
@@ -69,16 +76,16 @@
69
  (function ($, undef) {
70
  $(function () {
71
  var
72
- // Keep track of the iframe height.
73
- iframe_height = 800,
74
- base_url = '<?php echo WP_FS__ADDRESS ?>',
75
- // Pass the parent page URL into the Iframe in a meaningful way (this URL could be
76
- // passed via query string or hard coded into the child page, it depends on your needs).
77
- src = base_url + '/pricing/?<?php echo http_build_query($query_params) ?>#' + encodeURIComponent(document.location.href),
78
 
79
- // Append the Iframe into the DOM.
80
- iframe = $('<iframe " src="' + src + '" width="100%" height="' + iframe_height + 'px" scrolling="no" frameborder="0" style="background: transparent;"><\/iframe>')
81
- .appendTo('#iframe');
82
 
83
  FS.PostMessage.init(base_url);
84
 
@@ -96,6 +103,10 @@
96
  scrollTop: $(document).scrollTop()
97
  }, iframe[0]);
98
  });
 
 
 
 
99
  });
100
  })(jQuery);
101
  </script>
35
  $timestamp,
36
  'upgrade'
37
  ) );
38
+ } else {
39
+ $context_params['home_url'] = home_url();
40
  }
41
 
42
  if ( $fs->is_payments_sandbox() ) // Append plugin secure token for sandbox mode authentication.)
55
  'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
56
  ) );
57
  ?>
58
+ <?php if ( ! $fs->is_registered() ) {
59
+ $template_data = array(
60
+ 'slug' => $slug,
61
+ );
62
+ fs_require_template( 'forms/trial-start.php', $template_data);
63
+ } ?>
64
  <div id="fs_pricing" class="wrap" style="margin: 0 0 -65px -20px;">
65
  <div id="iframe"></div>
66
  <form action="" method="POST">
76
  (function ($, undef) {
77
  $(function () {
78
  var
79
+ // Keep track of the iframe height.
80
+ iframe_height = 800,
81
+ base_url = '<?php echo WP_FS__ADDRESS ?>',
82
+ // Pass the parent page URL into the Iframe in a meaningful way (this URL could be
83
+ // passed via query string or hard coded into the child page, it depends on your needs).
84
+ src = base_url + '/pricing/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),
85
 
86
+ // Append the Iframe into the DOM.
87
+ iframe = $('<iframe " src="' + src + '" width="100%" height="' + iframe_height + 'px" scrolling="no" frameborder="0" style="background: transparent;"><\/iframe>')
88
+ .appendTo('#iframe');
89
 
90
  FS.PostMessage.init(base_url);
91
 
103
  scrollTop: $(document).scrollTop()
104
  }, iframe[0]);
105
  });
106
+
107
+ FS.PostMessage.receive('start_trial', function (data) {
108
+ openTrialConfirmationModal(data);
109
+ });
110
  });
111
  })(jQuery);
112
  </script>
nggallery.php CHANGED
@@ -3,8 +3,8 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
3
 
4
  /**
5
  * Plugin Name: NextGEN Gallery
6
- * Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 16.5 million downloads.
7
- * Version: 2.2.1
8
  * Author: Imagely
9
  * Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/
10
  * Author URI: https://www.imagely.com
@@ -637,7 +637,7 @@ class C_NextGEN_Bootstrap
637
  define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products'));
638
  define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules'));
639
  define('NGG_PLUGIN_STARTED_AT', microtime());
640
- define('NGG_PLUGIN_VERSION', '2.2.1');
641
 
642
  if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
643
  define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax()));
3
 
4
  /**
5
  * Plugin Name: NextGEN Gallery
6
+ * Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 17 million downloads.
7
+ * Version: 2.2.2
8
  * Author: Imagely
9
  * Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/
10
  * Author URI: https://www.imagely.com
637
  define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products'));
638
  define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules'));
639
  define('NGG_PLUGIN_STARTED_AT', microtime());
640
+ define('NGG_PLUGIN_VERSION', '2.2.2');
641
 
642
  if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
643
  define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax()));
products/photocrati_nextgen/modules/attach_to_post/static/display_tab.js CHANGED
@@ -353,7 +353,9 @@ jQuery(function($){
353
  'exclusions',
354
  'sortorder',
355
  '__defaults_set',
356
- 'id_field'
 
 
357
  ];
358
 
359
  if (skipped.indexOf(key) > -1) continue;
353
  'exclusions',
354
  'sortorder',
355
  '__defaults_set',
356
+ 'id_field',
357
+ 'post_category',
358
+ 'ID'
359
  ];
360
 
361
  if (skipped.indexOf(key) > -1) continue;
products/photocrati_nextgen/modules/attach_to_post/static/display_tab.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(e){var t={Models:{},Views:{}};t.Models.SelectableItems=Backbone.Collection.extend({selected:function(){return this.filter(function(e){return 1==e.get("selected")})},deselect_all:function(){this.each(function(e){e.set("selected",!1)})},selected_ids:function(){return _.pluck(this.selected(),"id")},select:function(e){_.isArray(e)||(e=[e]),this.each(function(t){_.indexOf(e,t.id)>=0&&t.set("selected",!0)}),this.trigger("selected")}}),t.Views.SelectTag=Backbone.View.extend({tagName:"select",collection:null,multiple:!1,value_field:"id",text_field:"title",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.collection.on("add",this.render_new_option,this),this.collection.on("remove",this.remove_existing_option,this),this.collection.on("reset",this.empty_list,this)},events:{change:"selection_changed"},empty_list:function(){this.$el.empty()},render_new_option:function(e){this.$el.append(new this.Option({model:e,value_field:this.value_field,text_field:this.text_field}).render().el)},remove_existing_option:function(e){this.$el.find("option[value='"+e.id+"']").remove()},selection_changed:function(){var t=_.map(this.$el.find(":selected"),function(t){return e(t).val()});this.collection.each(function(e){_.indexOf(t,e.id)>=0||_.indexOf(t,e.id.toString())>=0?e.set("selected",!0):e.set("selected",!1)}),this.collection.trigger("selected")},render:function(){return this.$el.empty(),this.options.include_blank&&this.$el.append("<option></option>"),this.collection.each(function(e){var t=new this.Option({model:e,value_field:this.value_field,text_field:this.text_field});this.$el.append(t.render().el)},this),this.multiple&&this.$el.prop("multiple",!0).attr("multiple","multiple"),this.width&&this.$el.width(this.width),this},Option:Backbone.View.extend({tagName:"option",model:null,initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change",this.render,this)},render:function(){var e=this;return this.$el.html(this.model.get(this.text_field).replace(/\\&/g,"&").replace(/\\'/g,"'")),this.$el.prop({value:"id"==this.value_field?this.model.id:this.model.get(this.value_field)}),1==e.model.get("selected")&&this.$el.prop("selected",!0).attr("selected","selected"),this}})}),t.Views.Chosen=Backbone.View.extend({tagName:"span",initialize:function(e){this.options=e||{},this.collection=this.options.collection,this.options.include_blank=!0,this.select_tag=new t.Views.SelectTag(this.options),this.collection.on("change",this.selection_changed,this)},selection_changed:function(e){_.isUndefined(e.changed.selected)&&this.render()},render:function(){if(this.$el.append(this.select_tag.render().$el),this.options.width&&this.select_tag.$el.width(this.options.width),this.select2_opts={placeholder:this.options.placeholder},0==this.$el.parent().length){e("body").append(this.$el),this.select_tag.$el.select2(this.select2_opts);var t=this.select_tag.$el.select2("container").detach();this.$el.append(t),this.$el.detach()}else this.select_tag.$el.select2(this.select2_opts);if(this.options.multiple){var i=[];_.each(this.collection.selected_ids(),function(e){i.push(e.toString())}),0==i.length&&(i=""),this.select_tag.$el.select2("val",i)}return this.$el.find(".select2-input").width(this.options.width-20),this}}),t.DisplayTab={Models:{},Views:{},App:{}},t.Models.Remote_Collection=t.Models.SelectableItems.extend({fetch_limit:5e3,in_progress:!1,fetch_url:photocrati_ajax.url,action:"",extra_data:{},_create_request:function(e,t){var i=_.extend({},igw_data.sec_token,{action:this.action,limit:e?e:this.fetch_limit,offset:t?t:0});for(var s in this.extra_data){var l=this.extra_data[s];"undefined"==typeof i[s]&&(i[s]={}),"undefined"!=typeof l.toJSON&&(l=l.toJSON()),i[s]=_.extend(i[s],l)}return i},_add_item:function(e){this.push(e)},fetch:function(t,i){var s=this;this.in_progress=!0,e.post(this.fetch_url,this._create_request(t,i),function(e){"undefined"!=typeof _&&(_.isObject(e)||(e=JSON.parse(e)),e.items&&(_.each(e.items,function(e){s._add_item(e)}),e.total>=e.limit+e.offset?s.fetch(e.limit,e.offset+e.limit):(s.in_progress=!1,s.trigger("finished_fetching"))))})}}),t.DisplayTab.Models.Displayed_Gallery=Backbone.Model.extend({defaults:{source:null,container_ids:[],entity_ids:[],display_type:null,display_settings:{},exclusions:[],sortorder:[],slug:null},to_shortcode:function(){retval=null;var e=function(e,t){var i=e[t];if(_.isArray(i)&&(i=i.length>0?i.join(","):null),i)return i=i.toString().replace("[","&#91;"),i=i.toString().replace("]","&#93;"),t+'="'+i+'"'},i=t.DisplayTab.instance.display_types.find_by_name_or_alias(this.get("display_type")),s=this.toJSON();s.display_type=i.get_shortcode_value();var l="[ngg_images",n=null;(n=e(s,"source"))&&(l+=" "+n),(n=e(s,"container_ids"))&&(l+=" "+n),(n=e(s,"entity_ids"))&&(l+=" "+n),(n=e(s,"exclusions"))&&(l+=" "+n),(n=e(s,"sortorder"))&&(l+=" "+n);for(var a in s){var o=["source","container_ids","entity_ids","exclusions","sortorder","__defaults_set","id_field"];if(!(o.indexOf(a)>-1))if("display_settings"==a)for(var r in s[a])(n=e(s[a],r))&&(l+=" "+n);else n=e(s,a),n&&(l+=" "+n)}return l+="]"}}),t.DisplayTab.Models.Source=Backbone.Model.extend({idAttribute:"name",defaults:{title:"",name:"",selected:!1}}),t.DisplayTab.Models.Source_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Source,selected_value:function(){var e=null,t=this.selected();return t.length>0&&(e=t[0].get("name")),e},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Gallery=Backbone.Model.extend({idAttribute:igw_data.gallery_primary_key,defaults:{title:"",name:""}}),t.DisplayTab.Models.Gallery_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Gallery,action:"get_existing_galleries"}),t.DisplayTab.Models.Album=Backbone.Model.extend({defaults:{title:"",name:""}}),t.DisplayTab.Models.Album_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Album,action:"get_existing_albums"}),t.DisplayTab.Models.Tag=Backbone.Model.extend({defaults:{title:""}}),t.DisplayTab.Models.Tag_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Tag,action:"get_existing_image_tags"}),t.DisplayTab.Models.Display_Type=Backbone.Model.extend({idAttribute:"name",defaults:{title:""},is_compatible_with_source:function(e){var t=!0;for(index in e.get("returns")){var i=e.get("returns")[index];if(_.indexOf(this.get("entity_types"),i)<0){t=!1;break}}return t},get_shortcode_value:function(){var e=this.id;return e}}),t.DisplayTab.Models.Display_Type_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Display_Type,selected_value:function(){var e=null,t=this.selected();return t.length>0?t[0].get("name"):e},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Entity=Backbone.Model.extend({entity_id:function(){return this.get(this.get("id_field"))},is_excluded:function(){return current_value=this.get("exclude"),!_.isUndefined(current_value)&&(_.isBoolean(current_value)?current_value:0!=parseInt(current_value))},is_included:function(){return!this.is_excluded()},is_gallery:function(){return retval=!1,1==this.get("is_gallery")&&(retval=!0),retval},is_album:function(){return retval=!1,1==this.get("is_album")&&(retval=!0),retval},is_image:function(){return!this.is_album()&&!this.is_gallery()},alttext:function(){return this.is_image()?this.get("alttext"):this.is_gallery()?this.get("title"):this.is_album()?this.get("name"):void 0}}),t.DisplayTab.Models.Entity_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Entity,action:"get_displayed_gallery_entities",_add_item:function(e){e.exclude=1==parseInt(e.exclude),e.is_gallery=1==parseInt(e.is_gallery),e.is_album=1==parseInt(e.is_album),this.push(e)},entity_ids:function(){return this.map(function(e){return e.entity_id()})},included_ids:function(){return _.compact(this.map(function(e){if(e.is_included())return e.entity_id()}))},excluded_ids:function(){return _.compact(this.map(function(e){if(!e.is_included())return e.entity_id()}))}}),t.DisplayTab.Models.SortOrder=Backbone.Model.extend({}),t.DisplayTab.Models.SortOrder_Options=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.SortOrder}),t.DisplayTab.Models.SortDirection=Backbone.Model.extend({}),t.DisplayTab.Models.SortDirection_Options=Backbone.Collection.extend({model:t.DisplayTab.Models.SortDirection}),t.DisplayTab.Models.Slug=Backbone.Model.extend({}),t.DisplayTab.Views.Source_Config=Backbone.View.extend({el:"#source_configuration",selected_view:null,initialize:function(){this.sources=t.DisplayTab.instance.sources,this.sources.on("selected",this.render,this),_.bindAll(this,"render"),this.render()},render:function(){var e=new t.Views.Chosen({id:"source_select",collection:this.sources,placeholder:"Select a source",width:500}),i=_.template('<tr><td><label><%- sources %></label></td><td id="source_column"></td></tr>');this.$el.html(i(igw_data.i18n)),this.$el.find("#source_column").append(e.render().el);var s=this.sources.selected();if(s.length){var l=_.str.capitalize(s.pop().id)+"Source";if("undefined"!=typeof t.DisplayTab.Views[l]){var n=new t.DisplayTab.Views[l];this.$el.append(n.render().el)}}return this}}),t.DisplayTab.Views.Slug_Config=Backbone.View.extend({el:"#slug_configuration",selected_view:null,initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.slug=t.DisplayTab.instance.displayed_gallery.get("slug"),this.render()},render:function(){var t=this,i=e("<input>").prop({type:"text",name:"slug",value:this.slug,placeholder:igw_data.i18n.optional,id:"field_slug"});i.on("input",function(){e(this).val(e(this).val().replace(/\s|\?|\\|\/|&|=|\[|]|#/gm,"-")),t.displayed_gallery.set("slug",e(this).val())}),i.on("change",function(){e(this).val(e(this).val().replace(/^-*/gm,"").replace(/-*$/gm,"")),t.displayed_gallery.set("slug",e(this).val())});var s=_.template('<tr><td id="slug_label"><label for="field_slug" class="tooltip" title="<%- slug_tooltip %><"><<%- slug_label %></label></td><td id="slug_column"></td></tr>');return this.$el.append(s(igw_data.i18n)),this.$el.find("#slug_column").append(i),this}}),t.DisplayTab.Views.Display_Type_Selector=Backbone.View.extend({el:"#display_type_selector",initialize:function(){this.display_types=t.DisplayTab.instance.display_types,this.display_type_order_base=t.DisplayTab.instance.display_type_order_base,this.display_type_order_step=t.DisplayTab.instance.display_type_order_step,this.sources=t.DisplayTab.instance.sources,this.render()},selection_changed:function(t){var i=null;if(this.display_types.each(function(e){e.get("name")==t?(i=e,e.set("selected",!0)):e.set("selected",!1)}),i){var s=this.sources.selected_value(),l=i.get("default_source");l&&s!=l&&(l=this.sources.where({name:l}),l.length>0&&(l=l[0],this.sources.deselect_all(),this.sources.select(l.id)))}e(".display_settings_form").each(function(){$this=e(this),$this.attr("rel")==t?$this.removeClass("hidden"):$this.addClass("hidden")})},render:function(){var t=this.sources.selected(),i=0;t=t.length>0&&t[0],this.$el.empty();var s=this.display_type_order_base,l=this.display_type_order_step;return this.display_types.each(function(n){if(t&&!n.is_compatible_with_source(t)){var a=e("#display_type_tab_content:visible");if(0==a.length)return;if("hidden"==a.css("visibility"))return}var o=new this.DisplayType;o.model=n,o.on("selected",this.selection_changed,this),this.display_types.selected_value()||(n.set("selected",!0),this.selection_changed(n.id));var r=n.get("view_order");r||(r=s);var d=Math.floor(r/l);i>0&&d>i&&this.$el.append('<li class="clear" style="height: 10px" />'),i=d,this.$el.append(o.render().el)},this),this},DisplayType:Backbone.View.extend({className:"display_type_preview",events:{click:"clicked"},clicked:function(e){this.trigger("selected",this.model.get("name"))},render:function(){var t=e('<label style="display: block; cursor: pointer;"/>').addClass("image_container"),i=this.model.get("installed_at_version"),s=photocrati_ajax.wp_plugins_url,l=this.model.get("preview_image_relpath");"undefined"==typeof i&&(s=photocrati_ajax.wp_site_url,s=s.replace(/(.*)\/index\.php$/i,"$1"),0==l.indexOf("/nextgen-gallery")&&(s=photocrati_ajax.wp_plugins_url));var n=e("<img/>").attr({src:s+"/"+l,title:this.model.get("title"),alt:this.model.get("alt")}),a=e("<div/>"),o=e("<input/>").prop({type:"radio",value:this.model.get("name"),title:this.model.get("title"),name:"display_type",checked:this.model.get("selected")});return t.append(a),t.append(n),a.append(o),a.append(this.model.get("title")),this.$el.append(t),this}})}),t.DisplayTab.Views.Preview_Area=Backbone.View.extend({el:"#preview_area",initialize:function(){this.entities=t.DisplayTab.instance.entities,this.sources=t.DisplayTab.instance.sources,this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entity_list=e("<ul/>").attr("id","entity_list").append('<li class="clear"/>'),this.entities.on("add",this.render_entity,this),this.entities.on("remove",this.remove_entity,this),this.entities.on("reset",this.entities_reset,this),this.entities.on("change:sortorder",function(e){this.entities.remove(e,{silent:!0}),this.entities.add(e,{at:e.changed.sortorder,silent:!0}),this.displayed_gallery.set("sortorder",this.entities.entity_ids()),"undefined"!=typeof console&&"undefined"!=typeof console.log&&console.log(this.entities.entity_ids()),this.displayed_gallery.set("order_by","sortorder")},this),this.sources.on("selected",this.render,this),this.render()},events:{opened:"entities_reset"},entities_reset:function(e){this.entities.reset(null,{silent:!0}),this.entity_list.empty().append('<li class="clear"/>'),this.entities.in_progress||this.entities.fetch()},render_entity:function(e){var t=new this.EntityElement({model:e});this.entity_list.find(".clear").before(t.render().$el),t.$el.css("visibility","hidden"),setTimeout(function(){t.$el.css("visibility","visible")},0),1==this.$el.find(".no_entities").length?this.render():this.entities.length>1&&this.entity_list.sortable("refresh")},remove_entity:function(e){var t=this.id=e.get("id_field")+"_"+e.entity_id();this.entity_list.find("#"+t).remove();this.entity_list.sortable("refresh"),0==this.entities.length&&this.render_no_images_notice()},render_no_images_notice:function(){this.$el.empty(),this.$el.append("<p class='no_entities'>"+igw_data.i18n.no_entities+"</p>")},render:function(){return this.$el.empty(),this.entities.length>0&&this.displayed_gallery.get("container_ids").length>0?(this.$el.append(new this.RefreshButton({entities:this.entities}).render().el),this.$el.append(new this.SortButtons({entities:this.entities,displayed_gallery:this.displayed_gallery,sources:this.sources}).render().el),this.$el.append(new this.ExcludeButtons({entities:this.entities}).render().el),this.$el.append(this.entity_list),this.entity_list.sortable({placeholder:"placeholder",forcePlaceholderSize:!0,containment:"parent",opacity:.7,revert:!0,dropOnEmpty:!0,start:function(e,t){return t.placeholder.css({height:t.item.height()}),!0},stop:function(e,t){t.item.trigger("drop",t.item.index())}}),this.entity_list.disableSelection()):this.render_no_images_notice(),this},RefreshButton:Backbone.View.extend({className:"refresh_button",tagName:"input",label:"Refresh",events:{click:"clicked"},clicked:function(){this.entities.reset()},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){return this.$el.attr({value:this.label,type:"button"}),this}}),ExcludeButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){this.$el.empty(),this.$el.append("<strong>Exclude:</strong>");var e=new this.Button({value:!0,text:"All",entities:this.entities});this.$el.append(e.render().el),this.$el.append('<span class="separator">|</span>');var t=new this.Button({value:!1,text:"None",entities:this.entities});return this.$el.append(t.render().el),this},Button:Backbone.View.extend({tagName:"a",value:1,text:"",events:{click:"clicked"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},clicked:function(e){e.preventDefault(),this.entities.each(function(e){e.set("exclude",this.value)},this)},render:function(){return this.$el.text(this.text).attr("href","#"),this}})}),SortButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.sortorder_options=new t.DisplayTab.Models.SortOrder_Options,this.sortorder_options.on("change:selected",this.sortoption_changed,this),this.sortdirection_options=new t.DisplayTab.Models.SortDirection_Options([{value:"ASC",title:"Ascending",selected:"ASC"==this.displayed_gallery.get("order_direction")},{value:"DESC",title:"Descending",selected:"DESC"==this.displayed_gallery.get("order_direction")}]),this.sortdirection_options.on("change:selected",this.sortdirection_changed,this),this.displayed_gallery.on("change:order_by",this.displayed_gallery_order_changed,this),this.displayed_gallery.on("change.order_direction",this.displayed_gallery_order_dir_changed,this)},populate_sorting_fields:function(){var e=this.sources.selected().pop().get("returns");_.indexOf(e,"image")!==-1?this.fill_image_sortorder_options():this.fill_gallery_sortorder_options()},create_sortorder_option:function(e,i){return new t.DisplayTab.Models.SortOrder({name:e,title:i,value:e,selected:this.displayed_gallery.get("order_by")==e})},fill_image_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option(t.DisplayTab.instance.image_key,"Image ID")),this.sortorder_options.push(this.create_sortorder_option("filename","Filename")),this.sortorder_options.push(this.create_sortorder_option("alttext","Alt/Title Text")),this.sortorder_options.push(this.create_sortorder_option("imagedate","Date/Time"))},fill_gallery_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option("name","Name")),this.sortorder_options.push(this.create_sortorder_option("galdesc","Description"))},displayed_gallery_order_changed:function(e){this.sortorder_options.findWhere({value:e.get("order_by")}).set("selected",!0)},displayed_gallery_order_dir_changed:function(e){this.sortdirection_options.findWhere({value:e.get("order_direction")}).set("selected",!0)},sortoption_changed:function(t){this.sortorder_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("sortorder",[]);var i=t.get("value");0==t.get("value").length&&(i="sortorder"),this.displayed_gallery.set("order_by",i),this.entities.reset(),this.$el.find("a.sortorder").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},sortdirection_changed:function(t){this.sortdirection_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("order_direction",t.get("value")),this.entities.reset(),this.$el.find("a.sortdirection").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},render:function(){return this.$el.empty(),this.populate_sorting_fields(),this.$el.append("<strong>Sort By:</strong>"),this.sortorder_options.each(function(e,t){var i=new this.Button({model:e,className:"sortorder"});this.$el.append(i.render().el),this.sortorder_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this.$el.append('<strong style="margin-left: 30px;">Order By:</strong>'),this.sortdirection_options.each(function(e,t){var i=new this.Button({model:e,className:"sortdirection"});this.$el.append(i.render().el),this.sortdirection_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this},Button:Backbone.View.extend({tagName:"a",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},events:{click:"clicked"},clicked:function(e){e.preventDefault(),this.model.set("selected",!0)},render:function(){return this.$el.prop({value:this.model.get("value"),href:"#"}),this.$el.text(this.model.get("title")),this.model.get("selected")&&this.$el.addClass("selected"),this}})}),EntityElement:Backbone.View.extend({tagName:"li",events:{drop:"item_dropped"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.initTime=(new Date).getTime(),this.model.on("change",this.render,this),0==this.model.get("sortorder")&&this.model.set("sortorder",-1,{silent:!0}),this.id=this.model.get("id_field")+"_"+this.model.entity_id()},item_dropped:function(e,i){t.DisplayTab.instance.displayed_gallery.set("order_by","sortorder"),this.model.set("sortorder",i)},render:function(){this.$el.empty();var t=e("<div/>").addClass("preview_item"),i=e("<div/>").addClass("image_container"),s=this.model.alttext().replace(/\\&/g,"&").replace(/\\'/g,"'"),l=this.initTime;i.attr({title:s,style:"background-image: url('"+this.model.get("thumb_url")+"?timestamp"+l+"')"}),this.$el.append(t).addClass("ui-state-default"),t.append(i);var n=e("<div/>").addClass("exclude_container"),a=e("<label/>");a.append(igw_data.i18n.exclude_question);var o=new this.ExcludeCheckbox({model:this.model});return a.append(o.render().el),n.append(a),t.append(n),this},ExcludeCheckbox:Backbone.View.extend({tagName:"input",events:{change:"entity_excluded"},type_set:!1,entity_excluded:function(e){this.model.set("exclude",e.target.checked)},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change:exclude",this.render,this)},render:function(){return this.type_set||(this.$el.attr("type","checkbox"),this.type_set=!0),this.model.is_excluded()?this.$el.prop("checked",!0):this.$el.prop("checked",!1),this}})})}),t.DisplayTab.Views.GalleriesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.galleries=t.DisplayTab.instance.galleries},render:function(){var i=new t.Views.Chosen({collection:this.galleries,placeholder:igw_data.i18n.select_gallery,multiple:!0,width:500}),s=e("<tr><td><label>"+igw_data.i18n.galleries+'</label></td><td class="galleries_column"></td></tr>');return this.$el.empty(),this.$el.append(s),this.$el.find(".galleries_column").append(i.render().el),this}}),t.DisplayTab.Views.AlbumsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.albums=t.DisplayTab.instance.albums},render:function(){var e=new t.Views.Chosen({collection:this.albums,multiple:!0,placeholder:"Select an album",text_field:"name",width:500});return this.$el.empty(),this.$el.append("<tr><td><label>"+igw_data.i18n.albums+'</label></td><td class="albums_column"></td></tr>'),this.$el.find(".albums_column").append(e.render().el),this}}),t.DisplayTab.Views.TagsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.tags=t.DisplayTab.instance.tags},render:function(){var e=new t.Views.Chosen({collection:this.tags,multiple:!0,placeholder:"Select a tag",text_field:"name",width:500});return this.$el.empty(),this.$el.append('<tr><td><label>Tags</label></td><td class="tags_column"></td></tr>'),this.$el.find(".tags_column").append(e.render().el),this}}),t.DisplayTab.Views.Recent_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td><label># of Images To Display</label></td><td class="recent_images_column"></td></tr>'),this.$el.find(".recent_images_column").append(i),this}}),t.DisplayTab.Views.Random_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td><label># of Images To Display</label></td><td class="random_images_column"></td></tr>'),this.$el.find(".random_images_column").append(i),this}}),t.DisplayTab.Views.SaveButton=Backbone.View.extend({el:"#save_displayed_gallery",errors_el:"#errors",displayed_gallery:null,events:{click:"clicked"},initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entities=t.DisplayTab.instance.entities,this.render()},clicked:function(){this.set_display_settings(),insert_into_editor(this.displayed_gallery.to_shortcode(),this.displayed_gallery.id?this.displayed_gallery.id:igw_data.shortcode_ref),close_attach_to_post_window()},set_display_settings:function(){var t=this.displayed_gallery.get("display_type");if(t){var i=e("form[rel='"+t+"']"),s=function(t){var i={};return e.each(t.serializeArray(),function(e,t){for(var s=t.name.split("["),l=i,n=0;n<s.length;n++){var a=s[n].replace(/\]$/,"");l[a]||(n==s.length-1?l[a]=t.value:l[a]={}),l=l[a]}}),i}(i);this.displayed_gallery.set("display_settings",s[t])}},render:function(){return this.$el.css("z-index",1e3),this}}),t.DisplayTab.App=Backbone.View.extend({initialize:function(){if(this.displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.original_displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.galleries=new t.DisplayTab.Models.Gallery_Collection(igw_data.galleries),this.albums=new t.DisplayTab.Models.Album_Collection(igw_data.albums),this.tags=new t.DisplayTab.Models.Tag_Collection(igw_data.tags),this.sources=new t.DisplayTab.Models.Source_Collection(igw_data.sources),this.display_types=new t.DisplayTab.Models.Display_Type_Collection(igw_data.display_types),this.display_type_order_base=igw_data.display_type_priority_base,this.display_type_order_step=igw_data.display_type_priority_step,this.entities=new t.DisplayTab.Models.Entity_Collection,this.entities.extra_data.displayed_gallery=this.displayed_gallery,this.image_key=igw_data.image_primary_key,this.displayed_gallery.get("source")){if(this.displayed_gallery.get("source")){var e=this.sources.find_by_name_or_alias(this.displayed_gallery.get("source"));e&&e.set("selected",!0)}if(this.displayed_gallery.get("container_ids")&&_.each(this.displayed_gallery.get("container_ids"),function(e){var t=this[this.displayed_gallery.get("source")].find(function(t){return t.id==e},this);t&&t.set("selected",!0)},this),this.displayed_gallery.get("display_type")){var i=this.display_types.find_by_name_or_alias(this.displayed_gallery.get("display_type"));i&&(i.set("selected",!0),this.displayed_gallery.set("display_type",i.get("name")))}}if(collections=["galleries","albums","tags"],_.each(collections,function(e){this[e].on("selected",function(){this.update_selected_containers(e)},this)},this),this.display_types.on("change:selected",function(){this.displayed_gallery.set("display_type",this.display_types.selected_value())},this),this.sources.on("selected",function(){this.displayed_gallery.set("source",this.sources.selected_value()),this.sources.selected_value()!=this.original_displayed_gallery.get("source")?this.displayed_gallery.set("exclusions",this.entities.excluded_ids()):this.displayed_gallery.set("exclusions",this.original_displayed_gallery.get("exclusions")),"random_images"!=this.sources.selected_value()&&"recent_images"!=this.sources.selected_value()||this.displayed_gallery.set("maximum_entity_count",20),this.galleries.deselect_all(),this.albums.deselect_all(),this.tags.deselect_all();var e=this.display_types.selected(),t=this.sources.selected();e.length>0&&t.length>0&&(e=e[0],t=t[0],e.is_compatible_with_source(t)||this.display_types.deselect_all(),this.display_type_selector&&this.display_type_selector.render()),this.preview_area&&this.preview_area.render()},this),this.entities.on("change:exclude finished_fetching",function(){this.displayed_gallery.set("exclusions",this.entities.excluded_ids())},this),window.Frame_Event_Publisher){var s=this;Frame_Event_Publisher.listen_for("attach_to_post:new_gallery",function(){s.galleries.reset(),s.galleries.fetch()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_galleries attach_to_post:manage_images",function(e){s.galleries.reset(),s.galleries.fetch();var t=s.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&s.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_album",function(e){s.albums.reset(),s.albums.fetch();var t=s.sources.selected().pop();t&&_.indexOf(t.get("returns"),"album")>=0&&s.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_tags attach_to_post:manage_images",function(e){s.tags.reset(),s.tags.fetch();var t=s.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&s.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:thumbnail_modified",function(e){var t=s.sources.selected().pop(),i=e.image[e.image.id_field];if(t)if(_.indexOf(t.get("returns"),"image")>=0){var l=s.entities.find(function(e){return parseInt(e.entity_id())==parseInt(i)},this);l&&l.set("thumb_url",e.image.thumb_url)}else{var n=s.entities.find(function(e){return parseInt(e.get("previewpic"))==i},this);n&&n.trigger("change")}})}},update_selected_containers:function(e){this.displayed_gallery.set("container_ids",this[e].selected_ids())},render:function(){this.display_type_selector=new t.DisplayTab.Views.Display_Type_Selector,new t.DisplayTab.Views.Source_Config,new t.DisplayTab.Views.Slug_Config,this.preview_area=new t.DisplayTab.Views.Preview_Area,new t.DisplayTab.Views.SaveButton}}),t.DisplayTab.instance=new t.DisplayTab.App,t.DisplayTab.instance.render(),window.Ngg=t,e("span.tooltip, label.tooltip").tooltip()});
1
+ jQuery(function(e){var t={Models:{},Views:{}};t.Models.SelectableItems=Backbone.Collection.extend({selected:function(){return this.filter(function(e){return 1==e.get("selected")})},deselect_all:function(){this.each(function(e){e.set("selected",!1)})},selected_ids:function(){return _.pluck(this.selected(),"id")},select:function(e){_.isArray(e)||(e=[e]),this.each(function(t){_.indexOf(e,t.id)>=0&&t.set("selected",!0)}),this.trigger("selected")}}),t.Views.SelectTag=Backbone.View.extend({tagName:"select",collection:null,multiple:!1,value_field:"id",text_field:"title",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.collection.on("add",this.render_new_option,this),this.collection.on("remove",this.remove_existing_option,this),this.collection.on("reset",this.empty_list,this)},events:{change:"selection_changed"},empty_list:function(){this.$el.empty()},render_new_option:function(e){this.$el.append(new this.Option({model:e,value_field:this.value_field,text_field:this.text_field}).render().el)},remove_existing_option:function(e){this.$el.find("option[value='"+e.id+"']").remove()},selection_changed:function(){var t=_.map(this.$el.find(":selected"),function(t){return e(t).val()});this.collection.each(function(e){_.indexOf(t,e.id)>=0||_.indexOf(t,e.id.toString())>=0?e.set("selected",!0):e.set("selected",!1)}),this.collection.trigger("selected")},render:function(){return this.$el.empty(),this.options.include_blank&&this.$el.append("<option></option>"),this.collection.each(function(e){var t=new this.Option({model:e,value_field:this.value_field,text_field:this.text_field});this.$el.append(t.render().el)},this),this.multiple&&this.$el.prop("multiple",!0).attr("multiple","multiple"),this.width&&this.$el.width(this.width),this},Option:Backbone.View.extend({tagName:"option",model:null,initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change",this.render,this)},render:function(){var e=this;return this.$el.html(this.model.get(this.text_field).replace(/\\&/g,"&").replace(/\\'/g,"'")),this.$el.prop({value:"id"==this.value_field?this.model.id:this.model.get(this.value_field)}),1==e.model.get("selected")&&this.$el.prop("selected",!0).attr("selected","selected"),this}})}),t.Views.Chosen=Backbone.View.extend({tagName:"span",initialize:function(e){this.options=e||{},this.collection=this.options.collection,this.options.include_blank=!0,this.select_tag=new t.Views.SelectTag(this.options),this.collection.on("change",this.selection_changed,this)},selection_changed:function(e){_.isUndefined(e.changed.selected)&&this.render()},render:function(){if(this.$el.append(this.select_tag.render().$el),this.options.width&&this.select_tag.$el.width(this.options.width),this.select2_opts={placeholder:this.options.placeholder},0==this.$el.parent().length){e("body").append(this.$el),this.select_tag.$el.select2(this.select2_opts);var t=this.select_tag.$el.select2("container").detach();this.$el.append(t),this.$el.detach()}else this.select_tag.$el.select2(this.select2_opts);if(this.options.multiple){var i=[];_.each(this.collection.selected_ids(),function(e){i.push(e.toString())}),0==i.length&&(i=""),this.select_tag.$el.select2("val",i)}return this.$el.find(".select2-input").width(this.options.width-20),this}}),t.DisplayTab={Models:{},Views:{},App:{}},t.Models.Remote_Collection=t.Models.SelectableItems.extend({fetch_limit:5e3,in_progress:!1,fetch_url:photocrati_ajax.url,action:"",extra_data:{},_create_request:function(e,t){var i=_.extend({},igw_data.sec_token,{action:this.action,limit:e?e:this.fetch_limit,offset:t?t:0});for(var s in this.extra_data){var l=this.extra_data[s];"undefined"==typeof i[s]&&(i[s]={}),"undefined"!=typeof l.toJSON&&(l=l.toJSON()),i[s]=_.extend(i[s],l)}return i},_add_item:function(e){this.push(e)},fetch:function(t,i){var s=this;this.in_progress=!0,e.post(this.fetch_url,this._create_request(t,i),function(e){"undefined"!=typeof _&&(_.isObject(e)||(e=JSON.parse(e)),e.items&&(_.each(e.items,function(e){s._add_item(e)}),e.total>=e.limit+e.offset?s.fetch(e.limit,e.offset+e.limit):(s.in_progress=!1,s.trigger("finished_fetching"))))})}}),t.DisplayTab.Models.Displayed_Gallery=Backbone.Model.extend({defaults:{source:null,container_ids:[],entity_ids:[],display_type:null,display_settings:{},exclusions:[],sortorder:[],slug:null},to_shortcode:function(){retval=null;var e=function(e,t){var i=e[t];if(_.isArray(i)&&(i=i.length>0?i.join(","):null),i)return i=i.toString().replace("[","&#91;"),i=i.toString().replace("]","&#93;"),t+'="'+i+'"'},i=t.DisplayTab.instance.display_types.find_by_name_or_alias(this.get("display_type")),s=this.toJSON();s.display_type=i.get_shortcode_value();var l="[ngg_images",n=null;(n=e(s,"source"))&&(l+=" "+n),(n=e(s,"container_ids"))&&(l+=" "+n),(n=e(s,"entity_ids"))&&(l+=" "+n),(n=e(s,"exclusions"))&&(l+=" "+n),(n=e(s,"sortorder"))&&(l+=" "+n);for(var a in s){var o=["source","container_ids","entity_ids","exclusions","sortorder","__defaults_set","id_field","post_category","ID"];if(!(o.indexOf(a)>-1))if("display_settings"==a)for(var r in s[a])(n=e(s[a],r))&&(l+=" "+n);else n=e(s,a),n&&(l+=" "+n)}return l+="]"}}),t.DisplayTab.Models.Source=Backbone.Model.extend({idAttribute:"name",defaults:{title:"",name:"",selected:!1}}),t.DisplayTab.Models.Source_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Source,selected_value:function(){var e=null,t=this.selected();return t.length>0&&(e=t[0].get("name")),e},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Gallery=Backbone.Model.extend({idAttribute:igw_data.gallery_primary_key,defaults:{title:"",name:""}}),t.DisplayTab.Models.Gallery_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Gallery,action:"get_existing_galleries"}),t.DisplayTab.Models.Album=Backbone.Model.extend({defaults:{title:"",name:""}}),t.DisplayTab.Models.Album_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Album,action:"get_existing_albums"}),t.DisplayTab.Models.Tag=Backbone.Model.extend({defaults:{title:""}}),t.DisplayTab.Models.Tag_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Tag,action:"get_existing_image_tags"}),t.DisplayTab.Models.Display_Type=Backbone.Model.extend({idAttribute:"name",defaults:{title:""},is_compatible_with_source:function(e){var t=!0;for(index in e.get("returns")){var i=e.get("returns")[index];if(_.indexOf(this.get("entity_types"),i)<0){t=!1;break}}return t},get_shortcode_value:function(){var e=this.id;return e}}),t.DisplayTab.Models.Display_Type_Collection=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.Display_Type,selected_value:function(){var e=null,t=this.selected();return t.length>0?t[0].get("name"):e},find_by_name_or_alias:function(e){return this.find(function(t){return t.get("name")==e||_.isArray(t.get("aliases"))&&t.get("aliases").indexOf(e)>-1})}}),t.DisplayTab.Models.Entity=Backbone.Model.extend({entity_id:function(){return this.get(this.get("id_field"))},is_excluded:function(){return current_value=this.get("exclude"),!_.isUndefined(current_value)&&(_.isBoolean(current_value)?current_value:0!=parseInt(current_value))},is_included:function(){return!this.is_excluded()},is_gallery:function(){return retval=!1,1==this.get("is_gallery")&&(retval=!0),retval},is_album:function(){return retval=!1,1==this.get("is_album")&&(retval=!0),retval},is_image:function(){return!this.is_album()&&!this.is_gallery()},alttext:function(){return this.is_image()?this.get("alttext"):this.is_gallery()?this.get("title"):this.is_album()?this.get("name"):void 0}}),t.DisplayTab.Models.Entity_Collection=t.Models.Remote_Collection.extend({model:t.DisplayTab.Models.Entity,action:"get_displayed_gallery_entities",_add_item:function(e){e.exclude=1==parseInt(e.exclude),e.is_gallery=1==parseInt(e.is_gallery),e.is_album=1==parseInt(e.is_album),this.push(e)},entity_ids:function(){return this.map(function(e){return e.entity_id()})},included_ids:function(){return _.compact(this.map(function(e){if(e.is_included())return e.entity_id()}))},excluded_ids:function(){return _.compact(this.map(function(e){if(!e.is_included())return e.entity_id()}))}}),t.DisplayTab.Models.SortOrder=Backbone.Model.extend({}),t.DisplayTab.Models.SortOrder_Options=t.Models.SelectableItems.extend({model:t.DisplayTab.Models.SortOrder}),t.DisplayTab.Models.SortDirection=Backbone.Model.extend({}),t.DisplayTab.Models.SortDirection_Options=Backbone.Collection.extend({model:t.DisplayTab.Models.SortDirection}),t.DisplayTab.Models.Slug=Backbone.Model.extend({}),t.DisplayTab.Views.Source_Config=Backbone.View.extend({el:"#source_configuration",selected_view:null,initialize:function(){this.sources=t.DisplayTab.instance.sources,this.sources.on("selected",this.render,this),_.bindAll(this,"render"),this.render()},render:function(){var e=new t.Views.Chosen({id:"source_select",collection:this.sources,placeholder:"Select a source",width:500}),i=_.template('<tr><td><label><%- sources %></label></td><td id="source_column"></td></tr>');this.$el.html(i(igw_data.i18n)),this.$el.find("#source_column").append(e.render().el);var s=this.sources.selected();if(s.length){var l=_.str.capitalize(s.pop().id)+"Source";if("undefined"!=typeof t.DisplayTab.Views[l]){var n=new t.DisplayTab.Views[l];this.$el.append(n.render().el)}}return this}}),t.DisplayTab.Views.Slug_Config=Backbone.View.extend({el:"#slug_configuration",selected_view:null,initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.slug=t.DisplayTab.instance.displayed_gallery.get("slug"),this.render()},render:function(){var t=this,i=e("<input>").prop({type:"text",name:"slug",value:this.slug,placeholder:igw_data.i18n.optional,id:"field_slug"});i.on("input",function(){e(this).val(e(this).val().replace(/\s|\?|\\|\/|&|=|\[|]|#/gm,"-")),t.displayed_gallery.set("slug",e(this).val())}),i.on("change",function(){e(this).val(e(this).val().replace(/^-*/gm,"").replace(/-*$/gm,"")),t.displayed_gallery.set("slug",e(this).val())});var s=_.template('<tr><td id="slug_label"><label for="field_slug" class="tooltip" title="<%- slug_tooltip %><"><<%- slug_label %></label></td><td id="slug_column"></td></tr>');return this.$el.append(s(igw_data.i18n)),this.$el.find("#slug_column").append(i),this}}),t.DisplayTab.Views.Display_Type_Selector=Backbone.View.extend({el:"#display_type_selector",initialize:function(){this.display_types=t.DisplayTab.instance.display_types,this.display_type_order_base=t.DisplayTab.instance.display_type_order_base,this.display_type_order_step=t.DisplayTab.instance.display_type_order_step,this.sources=t.DisplayTab.instance.sources,this.render()},selection_changed:function(t){var i=null;if(this.display_types.each(function(e){e.get("name")==t?(i=e,e.set("selected",!0)):e.set("selected",!1)}),i){var s=this.sources.selected_value(),l=i.get("default_source");l&&s!=l&&(l=this.sources.where({name:l}),l.length>0&&(l=l[0],this.sources.deselect_all(),this.sources.select(l.id)))}e(".display_settings_form").each(function(){$this=e(this),$this.attr("rel")==t?$this.removeClass("hidden"):$this.addClass("hidden")})},render:function(){var t=this.sources.selected(),i=0;t=t.length>0&&t[0],this.$el.empty();var s=this.display_type_order_base,l=this.display_type_order_step;return this.display_types.each(function(n){if(t&&!n.is_compatible_with_source(t)){var a=e("#display_type_tab_content:visible");if(0==a.length)return;if("hidden"==a.css("visibility"))return}var o=new this.DisplayType;o.model=n,o.on("selected",this.selection_changed,this),this.display_types.selected_value()||(n.set("selected",!0),this.selection_changed(n.id));var r=n.get("view_order");r||(r=s);var d=Math.floor(r/l);i>0&&d>i&&this.$el.append('<li class="clear" style="height: 10px" />'),i=d,this.$el.append(o.render().el)},this),this},DisplayType:Backbone.View.extend({className:"display_type_preview",events:{click:"clicked"},clicked:function(e){this.trigger("selected",this.model.get("name"))},render:function(){var t=e('<label style="display: block; cursor: pointer;"/>').addClass("image_container"),i=this.model.get("installed_at_version"),s=photocrati_ajax.wp_plugins_url,l=this.model.get("preview_image_relpath");"undefined"==typeof i&&(s=photocrati_ajax.wp_site_url,s=s.replace(/(.*)\/index\.php$/i,"$1"),0==l.indexOf("/nextgen-gallery")&&(s=photocrati_ajax.wp_plugins_url));var n=e("<img/>").attr({src:s+"/"+l,title:this.model.get("title"),alt:this.model.get("alt")}),a=e("<div/>"),o=e("<input/>").prop({type:"radio",value:this.model.get("name"),title:this.model.get("title"),name:"display_type",checked:this.model.get("selected")});return t.append(a),t.append(n),a.append(o),a.append(this.model.get("title")),this.$el.append(t),this}})}),t.DisplayTab.Views.Preview_Area=Backbone.View.extend({el:"#preview_area",initialize:function(){this.entities=t.DisplayTab.instance.entities,this.sources=t.DisplayTab.instance.sources,this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entity_list=e("<ul/>").attr("id","entity_list").append('<li class="clear"/>'),this.entities.on("add",this.render_entity,this),this.entities.on("remove",this.remove_entity,this),this.entities.on("reset",this.entities_reset,this),this.entities.on("change:sortorder",function(e){this.entities.remove(e,{silent:!0}),this.entities.add(e,{at:e.changed.sortorder,silent:!0}),this.displayed_gallery.set("sortorder",this.entities.entity_ids()),"undefined"!=typeof console&&"undefined"!=typeof console.log&&console.log(this.entities.entity_ids()),this.displayed_gallery.set("order_by","sortorder")},this),this.sources.on("selected",this.render,this),this.render()},events:{opened:"entities_reset"},entities_reset:function(e){this.entities.reset(null,{silent:!0}),this.entity_list.empty().append('<li class="clear"/>'),this.entities.in_progress||this.entities.fetch()},render_entity:function(e){var t=new this.EntityElement({model:e});this.entity_list.find(".clear").before(t.render().$el),t.$el.css("visibility","hidden"),setTimeout(function(){t.$el.css("visibility","visible")},0),1==this.$el.find(".no_entities").length?this.render():this.entities.length>1&&this.entity_list.sortable("refresh")},remove_entity:function(e){var t=this.id=e.get("id_field")+"_"+e.entity_id();this.entity_list.find("#"+t).remove();this.entity_list.sortable("refresh"),0==this.entities.length&&this.render_no_images_notice()},render_no_images_notice:function(){this.$el.empty(),this.$el.append("<p class='no_entities'>"+igw_data.i18n.no_entities+"</p>")},render:function(){return this.$el.empty(),this.entities.length>0&&this.displayed_gallery.get("container_ids").length>0?(this.$el.append(new this.RefreshButton({entities:this.entities}).render().el),this.$el.append(new this.SortButtons({entities:this.entities,displayed_gallery:this.displayed_gallery,sources:this.sources}).render().el),this.$el.append(new this.ExcludeButtons({entities:this.entities}).render().el),this.$el.append(this.entity_list),this.entity_list.sortable({placeholder:"placeholder",forcePlaceholderSize:!0,containment:"parent",opacity:.7,revert:!0,dropOnEmpty:!0,start:function(e,t){return t.placeholder.css({height:t.item.height()}),!0},stop:function(e,t){t.item.trigger("drop",t.item.index())}}),this.entity_list.disableSelection()):this.render_no_images_notice(),this},RefreshButton:Backbone.View.extend({className:"refresh_button",tagName:"input",label:"Refresh",events:{click:"clicked"},clicked:function(){this.entities.reset()},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){return this.$el.attr({value:this.label,type:"button"}),this}}),ExcludeButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},render:function(){this.$el.empty(),this.$el.append("<strong>Exclude:</strong>");var e=new this.Button({value:!0,text:"All",entities:this.entities});this.$el.append(e.render().el),this.$el.append('<span class="separator">|</span>');var t=new this.Button({value:!1,text:"None",entities:this.entities});return this.$el.append(t.render().el),this},Button:Backbone.View.extend({tagName:"a",value:1,text:"",events:{click:"clicked"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},clicked:function(e){e.preventDefault(),this.entities.each(function(e){e.set("exclude",this.value)},this)},render:function(){return this.$el.text(this.text).attr("href","#"),this}})}),SortButtons:Backbone.View.extend({className:"header_row",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.sortorder_options=new t.DisplayTab.Models.SortOrder_Options,this.sortorder_options.on("change:selected",this.sortoption_changed,this),this.sortdirection_options=new t.DisplayTab.Models.SortDirection_Options([{value:"ASC",title:"Ascending",selected:"ASC"==this.displayed_gallery.get("order_direction")},{value:"DESC",title:"Descending",selected:"DESC"==this.displayed_gallery.get("order_direction")}]),this.sortdirection_options.on("change:selected",this.sortdirection_changed,this),this.displayed_gallery.on("change:order_by",this.displayed_gallery_order_changed,this),this.displayed_gallery.on("change.order_direction",this.displayed_gallery_order_dir_changed,this)},populate_sorting_fields:function(){var e=this.sources.selected().pop().get("returns");_.indexOf(e,"image")!==-1?this.fill_image_sortorder_options():this.fill_gallery_sortorder_options()},create_sortorder_option:function(e,i){return new t.DisplayTab.Models.SortOrder({name:e,title:i,value:e,selected:this.displayed_gallery.get("order_by")==e})},fill_image_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option(t.DisplayTab.instance.image_key,"Image ID")),this.sortorder_options.push(this.create_sortorder_option("filename","Filename")),this.sortorder_options.push(this.create_sortorder_option("alttext","Alt/Title Text")),this.sortorder_options.push(this.create_sortorder_option("imagedate","Date/Time"))},fill_gallery_sortorder_options:function(){this.sortorder_options.reset(),this.sortorder_options.push(this.create_sortorder_option("","None")),this.sortorder_options.push(this.create_sortorder_option("sortorder","Custom")),this.sortorder_options.push(this.create_sortorder_option("name","Name")),this.sortorder_options.push(this.create_sortorder_option("galdesc","Description"))},displayed_gallery_order_changed:function(e){this.sortorder_options.findWhere({value:e.get("order_by")}).set("selected",!0)},displayed_gallery_order_dir_changed:function(e){this.sortdirection_options.findWhere({value:e.get("order_direction")}).set("selected",!0)},sortoption_changed:function(t){this.sortorder_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("sortorder",[]);var i=t.get("value");0==t.get("value").length&&(i="sortorder"),this.displayed_gallery.set("order_by",i),this.entities.reset(),this.$el.find("a.sortorder").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},sortdirection_changed:function(t){this.sortdirection_options.each(function(e){e.set("selected",t.get("value")==e.get("value"),{silent:!0})}),this.displayed_gallery.set("order_direction",t.get("value")),this.entities.reset(),this.$el.find("a.sortdirection").each(function(){var i=e(this);i.attr("value")==t.get("value")?i.addClass("selected"):i.removeClass("selected")})},render:function(){return this.$el.empty(),this.populate_sorting_fields(),this.$el.append("<strong>Sort By:</strong>"),this.sortorder_options.each(function(e,t){var i=new this.Button({model:e,className:"sortorder"});this.$el.append(i.render().el),this.sortorder_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this.$el.append('<strong style="margin-left: 30px;">Order By:</strong>'),this.sortdirection_options.each(function(e,t){var i=new this.Button({model:e,className:"sortdirection"});this.$el.append(i.render().el),this.sortdirection_options.length-1>t&&this.$el.append('<span class="separator">|</span>')},this),this},Button:Backbone.View.extend({tagName:"a",initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this)},events:{click:"clicked"},clicked:function(e){e.preventDefault(),this.model.set("selected",!0)},render:function(){return this.$el.prop({value:this.model.get("value"),href:"#"}),this.$el.text(this.model.get("title")),this.model.get("selected")&&this.$el.addClass("selected"),this}})}),EntityElement:Backbone.View.extend({tagName:"li",events:{drop:"item_dropped"},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.initTime=(new Date).getTime(),this.model.on("change",this.render,this),0==this.model.get("sortorder")&&this.model.set("sortorder",-1,{silent:!0}),this.id=this.model.get("id_field")+"_"+this.model.entity_id()},item_dropped:function(e,i){t.DisplayTab.instance.displayed_gallery.set("order_by","sortorder"),this.model.set("sortorder",i)},render:function(){this.$el.empty();var t=e("<div/>").addClass("preview_item"),i=e("<div/>").addClass("image_container"),s=this.model.alttext().replace(/\\&/g,"&").replace(/\\'/g,"'"),l=this.initTime;i.attr({title:s,style:"background-image: url('"+this.model.get("thumb_url")+"?timestamp"+l+"')"}),this.$el.append(t).addClass("ui-state-default"),t.append(i);var n=e("<div/>").addClass("exclude_container"),a=e("<label/>");a.append(igw_data.i18n.exclude_question);var o=new this.ExcludeCheckbox({model:this.model});return a.append(o.render().el),n.append(a),t.append(n),this},ExcludeCheckbox:Backbone.View.extend({tagName:"input",events:{change:"entity_excluded"},type_set:!1,entity_excluded:function(e){this.model.set("exclude",e.target.checked)},initialize:function(e){this.options=e||{},_.each(this.options,function(e,t){this[t]=e},this),this.model.on("change:exclude",this.render,this)},render:function(){return this.type_set||(this.$el.attr("type","checkbox"),this.type_set=!0),this.model.is_excluded()?this.$el.prop("checked",!0):this.$el.prop("checked",!1),this}})})}),t.DisplayTab.Views.GalleriesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.galleries=t.DisplayTab.instance.galleries},render:function(){var i=new t.Views.Chosen({collection:this.galleries,placeholder:igw_data.i18n.select_gallery,multiple:!0,width:500}),s=e("<tr><td><label>"+igw_data.i18n.galleries+'</label></td><td class="galleries_column"></td></tr>');return this.$el.empty(),this.$el.append(s),this.$el.find(".galleries_column").append(i.render().el),this}}),t.DisplayTab.Views.AlbumsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.albums=t.DisplayTab.instance.albums},render:function(){var e=new t.Views.Chosen({collection:this.albums,multiple:!0,placeholder:"Select an album",text_field:"name",width:500});return this.$el.empty(),this.$el.append("<tr><td><label>"+igw_data.i18n.albums+'</label></td><td class="albums_column"></td></tr>'),this.$el.find(".albums_column").append(e.render().el),this}}),t.DisplayTab.Views.TagsSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.tags=t.DisplayTab.instance.tags},render:function(){var e=new t.Views.Chosen({collection:this.tags,multiple:!0,placeholder:"Select a tag",text_field:"name",width:500});return this.$el.empty(),this.$el.append('<tr><td><label>Tags</label></td><td class="tags_column"></td></tr>'),this.$el.find(".tags_column").append(e.render().el),this}}),t.DisplayTab.Views.Recent_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td><label># of Images To Display</label></td><td class="recent_images_column"></td></tr>'),this.$el.find(".recent_images_column").append(i),this}}),t.DisplayTab.Views.Random_imagesSource=Backbone.View.extend({tagName:"tbody",initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.maximum_entity_count=t.DisplayTab.instance.displayed_gallery.get("maximum_entity_count"),this.displayed_gallery.set("container_ids",[])},render:function(){var t=this,i=e("<input/>").prop({type:"text",value:this.maximum_entity_count,name:"maximum_entity_count"});return i.change(function(){t.displayed_gallery.set("maximum_entity_count",e(this).val())}),this.$el.empty(),this.$el.append('<tr><td><label># of Images To Display</label></td><td class="random_images_column"></td></tr>'),this.$el.find(".random_images_column").append(i),this}}),t.DisplayTab.Views.SaveButton=Backbone.View.extend({el:"#save_displayed_gallery",errors_el:"#errors",displayed_gallery:null,events:{click:"clicked"},initialize:function(){this.displayed_gallery=t.DisplayTab.instance.displayed_gallery,this.entities=t.DisplayTab.instance.entities,this.render()},clicked:function(){this.set_display_settings(),insert_into_editor(this.displayed_gallery.to_shortcode(),this.displayed_gallery.id?this.displayed_gallery.id:igw_data.shortcode_ref),close_attach_to_post_window()},set_display_settings:function(){var t=this.displayed_gallery.get("display_type");if(t){var i=e("form[rel='"+t+"']"),s=function(t){var i={};return e.each(t.serializeArray(),function(e,t){for(var s=t.name.split("["),l=i,n=0;n<s.length;n++){var a=s[n].replace(/\]$/,"");l[a]||(n==s.length-1?l[a]=t.value:l[a]={}),l=l[a]}}),i}(i);this.displayed_gallery.set("display_settings",s[t])}},render:function(){return this.$el.css("z-index",1e3),this}}),t.DisplayTab.App=Backbone.View.extend({initialize:function(){if(this.displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.original_displayed_gallery=new t.DisplayTab.Models.Displayed_Gallery(igw_data.displayed_gallery),this.galleries=new t.DisplayTab.Models.Gallery_Collection(igw_data.galleries),this.albums=new t.DisplayTab.Models.Album_Collection(igw_data.albums),this.tags=new t.DisplayTab.Models.Tag_Collection(igw_data.tags),this.sources=new t.DisplayTab.Models.Source_Collection(igw_data.sources),this.display_types=new t.DisplayTab.Models.Display_Type_Collection(igw_data.display_types),this.display_type_order_base=igw_data.display_type_priority_base,this.display_type_order_step=igw_data.display_type_priority_step,this.entities=new t.DisplayTab.Models.Entity_Collection,this.entities.extra_data.displayed_gallery=this.displayed_gallery,this.image_key=igw_data.image_primary_key,this.displayed_gallery.get("source")){if(this.displayed_gallery.get("source")){var e=this.sources.find_by_name_or_alias(this.displayed_gallery.get("source"));e&&e.set("selected",!0)}if(this.displayed_gallery.get("container_ids")&&_.each(this.displayed_gallery.get("container_ids"),function(e){var t=this[this.displayed_gallery.get("source")].find(function(t){return t.id==e},this);t&&t.set("selected",!0)},this),this.displayed_gallery.get("display_type")){var i=this.display_types.find_by_name_or_alias(this.displayed_gallery.get("display_type"));i&&(i.set("selected",!0),this.displayed_gallery.set("display_type",i.get("name")))}}if(collections=["galleries","albums","tags"],_.each(collections,function(e){this[e].on("selected",function(){this.update_selected_containers(e)},this)},this),this.display_types.on("change:selected",function(){this.displayed_gallery.set("display_type",this.display_types.selected_value())},this),this.sources.on("selected",function(){this.displayed_gallery.set("source",this.sources.selected_value()),this.sources.selected_value()!=this.original_displayed_gallery.get("source")?this.displayed_gallery.set("exclusions",this.entities.excluded_ids()):this.displayed_gallery.set("exclusions",this.original_displayed_gallery.get("exclusions")),"random_images"!=this.sources.selected_value()&&"recent_images"!=this.sources.selected_value()||this.displayed_gallery.set("maximum_entity_count",20),this.galleries.deselect_all(),this.albums.deselect_all(),this.tags.deselect_all();var e=this.display_types.selected(),t=this.sources.selected();e.length>0&&t.length>0&&(e=e[0],t=t[0],e.is_compatible_with_source(t)||this.display_types.deselect_all(),this.display_type_selector&&this.display_type_selector.render()),this.preview_area&&this.preview_area.render()},this),this.entities.on("change:exclude finished_fetching",function(){this.displayed_gallery.set("exclusions",this.entities.excluded_ids())},this),window.Frame_Event_Publisher){var s=this;Frame_Event_Publisher.listen_for("attach_to_post:new_gallery",function(){s.galleries.reset(),s.galleries.fetch()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_galleries attach_to_post:manage_images",function(e){s.galleries.reset(),s.galleries.fetch();var t=s.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&s.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_album",function(e){s.albums.reset(),s.albums.fetch();var t=s.sources.selected().pop();t&&_.indexOf(t.get("returns"),"album")>=0&&s.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:manage_tags attach_to_post:manage_images",function(e){s.tags.reset(),s.tags.fetch();var t=s.sources.selected().pop();t&&(_.indexOf(t.get("returns"),"image")>=0||_.indexOf(t.get("returns"),"gallery"))&&s.entities.reset()}),Frame_Event_Publisher.listen_for("attach_to_post:thumbnail_modified",function(e){var t=s.sources.selected().pop(),i=e.image[e.image.id_field];if(t)if(_.indexOf(t.get("returns"),"image")>=0){var l=s.entities.find(function(e){return parseInt(e.entity_id())==parseInt(i)},this);l&&l.set("thumb_url",e.image.thumb_url)}else{var n=s.entities.find(function(e){return parseInt(e.get("previewpic"))==i},this);n&&n.trigger("change")}})}},update_selected_containers:function(e){this.displayed_gallery.set("container_ids",this[e].selected_ids())},render:function(){this.display_type_selector=new t.DisplayTab.Views.Display_Type_Selector,new t.DisplayTab.Views.Source_Config,new t.DisplayTab.Views.Slug_Config,this.preview_area=new t.DisplayTab.Views.Preview_Area,new t.DisplayTab.Views.SaveButton}}),t.DisplayTab.instance=new t.DisplayTab.App,t.DisplayTab.instance.render(),window.Ngg=t,e("span.tooltip, label.tooltip").tooltip()});
products/photocrati_nextgen/modules/i18n/lang/nggallery-sv_SE.po CHANGED
@@ -2435,8 +2435,8 @@ msgid "Server Settings"
2435
  msgstr "Serverinställningar"
2436
 
2437
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
2438
- msgid "NextGEN Gallery is one of the most popular WordPress plugins of all time with over 12 million downloads."
2439
- msgstr "NextGEN Gallery är en av de mest populära WordPress-tilläggen genom tiderna med över 12 miljoner nedladdningar."
2440
 
2441
  # Missed by NextGEN, translated string is displayed.
2442
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
2435
  msgstr "Serverinställningar"
2436
 
2437
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
2438
+ msgid "NextGEN Gallery is one of the most popular WordPress plugins of all time with over 17 million downloads."
2439
+ msgstr "NextGEN Gallery är en av de mest populära WordPress-tilläggen genom tiderna med över 17 miljoner nedladdningar."
2440
 
2441
  # Missed by NextGEN, translated string is displayed.
2442
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
products/photocrati_nextgen/modules/i18n/lang/nggallery.po CHANGED
@@ -2450,7 +2450,7 @@ msgid "Server Settings"
2450
  msgstr ""
2451
 
2452
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
2453
- msgid "NextGEN Gallery is one of the most popular WordPress plugins of all time with over 16.5 million downloads."
2454
  msgstr ""
2455
 
2456
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
@@ -3235,7 +3235,7 @@ msgid "https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/"
3235
  msgstr ""
3236
 
3237
  #. Description of the plugin/theme
3238
- msgid "The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 16.5 million downloads."
3239
  msgstr ""
3240
 
3241
  #. Author of the plugin/theme
2450
  msgstr ""
2451
 
2452
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
2453
+ msgid "NextGEN Gallery is one of the most popular WordPress plugins of all time with over 17 million downloads."
2454
  msgstr ""
2455
 
2456
  #: products/photocrati_nextgen/modules/ngglegacy/admin/overview.php:97
3235
  msgstr ""
3236
 
3237
  #. Description of the plugin/theme
3238
+ msgid "The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 17 million downloads."
3239
  msgstr ""
3240
 
3241
  #. Author of the plugin/theme
products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php CHANGED
@@ -121,7 +121,7 @@ class M_NextGen_Data extends C_Base_Module
121
  $retval = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $retval );
122
  $retval= preg_replace('/[\r\n\t ]+/', ' ', $retval);
123
  }
124
- $retval = preg_replace("/\son[^=]+=/", '', $retval);
125
 
126
  return $retval;
127
  }
121
  $retval = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $retval );
122
  $retval= preg_replace('/[\r\n\t ]+/', ' ', $retval);
123
  }
124
+ $retval = preg_replace("/\\son[^\\s=]+=/", '', $retval);
125
 
126
  return $retval;
127
  }
products/photocrati_nextgen/modules/ngglegacy/lib/ngg-db.php CHANGED
@@ -813,7 +813,7 @@ class nggdb
813
  $searchand = ' AND ';
814
  }
815
 
816
- $term = $wpdb->escape($request);
817
  if (count($search_terms) > 1 && $search_terms[0] != $request )
818
  $search .= " OR (title LIKE '{$n}{$term}{$n}') OR (name LIKE '{$n}{$term}{$n}')";
819
 
@@ -861,7 +861,7 @@ class nggdb
861
  $searchand = ' AND ';
862
  }
863
 
864
- $term = $wpdb->escape($request);
865
  if (count($search_terms) > 1 && $search_terms[0] != $request )
866
  $search .= " OR (name LIKE '{$n}{$term}{$n}')";
867
 
813
  $searchand = ' AND ';
814
  }
815
 
816
+ $term = esc_sql($request);
817
  if (count($search_terms) > 1 && $search_terms[0] != $request )
818
  $search .= " OR (title LIKE '{$n}{$term}{$n}') OR (name LIKE '{$n}{$term}{$n}')";
819
 
861
  $searchand = ' AND ';
862
  }
863
 
864
+ $term = esc_sql($request);
865
  if (count($search_terms) > 1 && $search_terms[0] != $request )
866
  $search .= " OR (name LIKE '{$n}{$term}{$n}')";
867
 
products/photocrati_nextgen/modules/third_party_compat/module.third_party_compat.php CHANGED
@@ -1,6 +1,8 @@
1
  <?php
2
  class M_Third_Party_Compat extends C_Base_Module
3
  {
 
 
4
  function define($id = 'pope-module',
5
  $name = 'Pope Module',
6
  $description = '',
@@ -120,6 +122,7 @@ class M_Third_Party_Compat extends C_Base_Module
120
  add_filter('ngg_non_minified_modules', array($this, 'dont_minify_nextgen_pro_cssjs'));
121
  add_filter('ngg_atp_show_display_type', array($this, 'atp_check_pro_albums'), 10, 2);
122
  add_filter('run_ngg_resource_manager', array($this, 'run_ngg_resource_manager'));
 
123
 
124
  // WPML fix
125
  if (class_exists('SitePress')) {
@@ -130,6 +133,61 @@ class M_Third_Party_Compat extends C_Base_Module
130
 
131
  // TODO: Only needed for NGG Pro 1.0.10 and lower
132
  add_action('the_post', array(&$this, 'add_ngg_pro_page_parameter'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  }
134
 
135
  /**
@@ -172,12 +230,8 @@ class M_Third_Party_Compat extends C_Base_Module
172
  */
173
  function excellent_themes_admin()
174
  {
175
- if (is_admin()
176
- && defined('ET_TAXONOMY_META_OPTION_KEY')
177
- && (!empty($_GET['page']) && strpos($_GET['page'], 'et_') == 0))
178
- {
179
  wp_deregister_style('ngg-jquery-ui');
180
- }
181
  }
182
 
183
  function atp_check_pro_albums($available, $display_type)
1
  <?php
2
  class M_Third_Party_Compat extends C_Base_Module
3
  {
4
+ protected $wpseo_images = array();
5
+
6
  function define($id = 'pope-module',
7
  $name = 'Pope Module',
8
  $description = '',
122
  add_filter('ngg_non_minified_modules', array($this, 'dont_minify_nextgen_pro_cssjs'));
123
  add_filter('ngg_atp_show_display_type', array($this, 'atp_check_pro_albums'), 10, 2);
124
  add_filter('run_ngg_resource_manager', array($this, 'run_ngg_resource_manager'));
125
+ add_filter('wpseo_sitemap_urlimages', array($this, 'add_wpseo_xml_sitemap_images'), 10, 2);
126
 
127
  // WPML fix
128
  if (class_exists('SitePress')) {
133
 
134
  // TODO: Only needed for NGG Pro 1.0.10 and lower
135
  add_action('the_post', array(&$this, 'add_ngg_pro_page_parameter'));
136
+
137
+ }
138
+
139
+ /**
140
+ * Filter support for WordPress SEO
141
+ *
142
+ * @param array $images Provided by WPSEO Filter
143
+ * @param int $post ID Provided by WPSEO Filter
144
+ * @return array $image List of a displayed galleries entities
145
+ */
146
+ function add_wpseo_xml_sitemap_images($images, $post_id)
147
+ {
148
+ $this->wpseo_images = $images;
149
+
150
+ $post = get_post($post_id);
151
+
152
+ // Assign our own shortcode handler; ngglegacy and ATP do this same routine for their own
153
+ // legacy and preview image placeholders.
154
+ remove_all_shortcodes();
155
+ C_NextGen_Shortcode_Manager::add('ngg_images', array($this, 'wpseo_shortcode_handler'));
156
+ do_shortcode($post->post_content);
157
+
158
+ return $this->wpseo_images;
159
+ }
160
+
161
+ /**
162
+ * Processes ngg_images shortcode when WordPress SEO is building sitemaps. Adds images belonging to a
163
+ * displayed gallery to $this->wpseo_images for the assigned filter method to return.
164
+ *
165
+ * @param array $params Array of shortcode parameters
166
+ * @param null $inner_content
167
+ */
168
+ function wpseo_shortcode_handler($params, $inner_content = NULL)
169
+ {
170
+ $renderer = C_Displayed_Gallery_Renderer::get_instance();
171
+ $displayed_gallery = $renderer->params_to_displayed_gallery($params);
172
+
173
+ if ($displayed_gallery)
174
+ {
175
+ $gallery_storage = C_Gallery_Storage::get_instance();
176
+ $settings = C_NextGen_Settings::get_instance();
177
+ $source = $displayed_gallery->get_source();
178
+ if (in_array('image', $source->returns))
179
+ {
180
+ foreach ($displayed_gallery->get_entities() as $image) {
181
+ $named_image_size = $settings->imgAutoResize ? 'full' : 'thumb';
182
+ $sitemap_image = array(
183
+ 'src' => $gallery_storage->get_image_url($image, $named_image_size),
184
+ 'alt' => $image->alttext,
185
+ 'title' => $image->description ? $image->description: $image->alttext
186
+ );
187
+ $this->wpseo_images[] = $sitemap_image;
188
+ }
189
+ }
190
+ }
191
  }
192
 
193
  /**
230
  */
231
  function excellent_themes_admin()
232
  {
233
+ if (is_admin() && (!empty($_GET['page']) && strpos($_GET['page'], 'et_') == 0))
 
 
 
234
  wp_deregister_style('ngg-jquery-ui');
 
235
  }
236
 
237
  function atp_check_pro_albums($available, $display_type)
readme.txt CHANGED
@@ -2,11 +2,11 @@
2
  Contributors: photocrati, imagely
3
  Tags: wordpress gallery plugin, gallery, nextgen, nextgen gallery, photo gallery, image gallery, photography, slideshow, images, photo, photo album, watermark
4
  Requires at least: 4.0.0
5
- Stable tag: 2.2.1
6
  Tested up to: 4.7.3
7
  License: GPLv2
8
 
9
- The most popular WordPress gallery plugin and one of the most popular plugins of all time with over 16.5 million downloads.
10
 
11
  == Description ==
12
 
@@ -187,6 +187,12 @@ For more information, feel free to visit the official website for the NextGEN Ga
187
 
188
  == Changelog ==
189
 
 
 
 
 
 
 
190
  = V2.2.1 - 03.13.2017 =
191
  * NEW: Template mechanism for all display types
192
  * NEW: Review notices
2
  Contributors: photocrati, imagely
3
  Tags: wordpress gallery plugin, gallery, nextgen, nextgen gallery, photo gallery, image gallery, photography, slideshow, images, photo, photo album, watermark
4
  Requires at least: 4.0.0
5
+ Stable tag: 2.2.2
6
  Tested up to: 4.7.3
7
  License: GPLv2
8
 
9
+ The most popular WordPress gallery plugin and one of the most popular plugins of all time with over 17 million downloads.
10
 
11
  == Description ==
12
 
187
 
188
  == Changelog ==
189
 
190
+ = V2.2.2 - 04.04.2017 =
191
+ * Fixed: Hyperlinks in image descriptions
192
+ * Fixed: WordPress SEO sitemap image count
193
+ * Fixed: Removed id parameter in shortcodes
194
+ * Fixed: Fatal error in Freemius code
195
+
196
  = V2.2.1 - 03.13.2017 =
197
  * NEW: Template mechanism for all display types
198
  * NEW: Review notices