From 1eb4ab7ea0e781d0e1f3e435d1e2cad56c74af8a Mon Sep 17 00:00:00 2001 From: Sarai Acevedo Date: Fri, 11 Oct 2024 01:45:23 -0400 Subject: [PATCH 1/2] Update freemius sdk to the latest version. --- .DS_Store | Bin 0 -> 6148 bytes freemius/.DS_Store | Bin 0 -> 6148 bytes freemius/README.md | 4 + freemius/assets/css/admin/account.css | 2 +- freemius/assets/css/admin/add-ons.css | 2 +- freemius/assets/css/admin/affiliation.css | 2 +- freemius/assets/css/admin/checkout.css | 2 +- .../assets/css/admin/clone-resolution.css | 2 +- freemius/assets/css/admin/common.css | 2 +- freemius/assets/css/admin/connect.css | 2 +- freemius/assets/css/admin/debug.css | 2 +- freemius/assets/css/admin/dialog-boxes.css | 2 +- .../assets/css/admin/gdpr-optin-notice.css | 2 +- freemius/assets/css/admin/optout.css | 2 +- freemius/assets/css/admin/plugins.css | 2 +- freemius/assets/css/customizer.css | 2 +- freemius/assets/js/nojquery.ba-postmessage.js | 114 +- .../assets/js/nojquery.ba-postmessage.min.js | 12 - freemius/assets/js/postmessage.js | 136 +- freemius/includes/class-freemius.php | 750 ++++------- freemius/includes/class-fs-api.php | 7 +- .../includes/class-fs-garbage-collector.php | 439 +++++++ freemius/includes/class-fs-logger.php | 17 +- freemius/includes/class-fs-plugin-updater.php | 70 +- freemius/includes/class-fs-storage.php | 2 + .../debug/class-fs-debug-bar-panel.php | 90 +- .../entities/class-fs-plugin-license.php | 4 + .../entities/class-fs-plugin-plan.php | 12 + freemius/includes/entities/class-fs-site.php | 6 +- freemius/includes/fs-core-functions.php | 50 +- freemius/includes/fs-essential-functions.php | 408 +++--- .../includes/fs-html-escaping-functions.php | 2 + freemius/includes/fs-plugin-info-dialog.php | 8 +- .../managers/class-fs-clone-manager.php | 2 +- .../managers/class-fs-debug-manager.php | 508 ++++++++ .../managers/class-fs-plan-manager.php | 49 +- freemius/includes/sdk/FreemiusWordPress.php | 8 +- freemius/languages/freemius-cs_CZ.mo | Bin 36563 -> 36388 bytes freemius/languages/freemius-da_DK.mo | Bin 69088 -> 31821 bytes freemius/languages/freemius-de_DE.mo | Bin 73551 -> 69290 bytes freemius/languages/freemius-en.mo | Bin 68519 -> 0 bytes freemius/languages/freemius-es_ES.mo | Bin 72032 -> 52957 bytes freemius/languages/freemius-fr_FR.mo | Bin 49369 -> 46836 bytes freemius/languages/freemius-he_IL.mo | Bin 40497 -> 38272 bytes freemius/languages/freemius-hu_HU.mo | Bin 26759 -> 24994 bytes freemius/languages/freemius-it_IT.mo | Bin 59634 -> 58452 bytes freemius/languages/freemius-ja.mo | Bin 48367 -> 46050 bytes freemius/languages/freemius-nl_NL.mo | Bin 47831 -> 45298 bytes freemius/languages/freemius-ru_RU.mo | Bin 49143 -> 47106 bytes freemius/languages/freemius-ta.mo | Bin 77216 -> 74201 bytes freemius/languages/freemius-zh_CN.mo | Bin 55459 -> 61924 bytes freemius/languages/freemius.pot | 1133 +++++++++-------- freemius/require.php | 3 + freemius/start.php | 30 +- freemius/templates/account.php | 6 +- freemius/templates/account/partials/addon.php | 18 +- freemius/templates/checkout.php | 2 +- freemius/templates/clone-resolution-js.php | 18 +- freemius/templates/connect.php | 1 - freemius/templates/contact.php | 2 +- freemius/templates/debug.php | 65 +- freemius/templates/forms/affiliation.php | 11 +- .../templates/forms/license-activation.php | 41 +- .../forms/subscription-cancellation.php | 6 +- freemius/templates/powered-by.php | 2 +- freemius/templates/pricing.php | 2 +- 66 files changed, 2405 insertions(+), 1659 deletions(-) create mode 100644 .DS_Store create mode 100644 freemius/.DS_Store mode change 100644 => 100755 freemius/assets/css/admin/account.css mode change 100644 => 100755 freemius/assets/css/admin/add-ons.css mode change 100644 => 100755 freemius/assets/css/admin/common.css delete mode 100755 freemius/assets/js/nojquery.ba-postmessage.min.js create mode 100755 freemius/includes/class-fs-garbage-collector.php create mode 100644 freemius/includes/managers/class-fs-debug-manager.php delete mode 100644 freemius/languages/freemius-en.mo diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..c6ba26ab93682e112721237d1161c16137ade222 GIT binary patch literal 6148 zcmeHKyKVw85S&dYPD(?W(!Y>Dun_rz{6ItiDH0J<5dBs8u6$Z%9|h<_2MwA%t;b&P z_;gcvZvoiixPAfV00z1vetejk@4HXzp&~}4^NcTi;)uig@Ufd@{~vJffGxhU;d8=Y z?e{z1lt}?8AO)m=6p#W}RiMi2@O0Hvb(j>80{5VR-w%!M*bB$RxH>pQ3qYJP9L9O{ z62#^KVlNyM8KGHHiAl9;F)Znfx612QsCAK`~jrN6|DdO literal 0 HcmV?d00001 diff --git a/freemius/.DS_Store b/freemius/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..df37fdf29e1194a17157ec8470d0982650e3ca28 GIT binary patch literal 6148 zcmeHKIc~#13?v;DHr%*$xnIZ+7J~8ue;|qFPJseA=~ek%ep-eHf(UY&0B(XIK+Z13 z(PF0%MG?{VvwsxXiO3pmC>IM$v*+duTV+OpaJ*xX7x|Erocr^l`gX#&8|S>q`%nIH zcpb;#Hi=m(Kn17(6`%rC;Li$J?}e?mfs9mu3Q&P>1?>A!;D$AE3iMA0f{y^e25C2} zeU<nqNaSC)g@=gcxXTWr!QGt6a@C6Jc6{r9J literal 0 HcmV?d00001 diff --git a/freemius/README.md b/freemius/README.md index 8260aff..cd292dd 100644 --- a/freemius/README.md +++ b/freemius/README.md @@ -280,3 +280,7 @@ The free version is the one that you should give your users to download. Therefo Copyright (c) Freemius®, Inc. Licensed under the GNU general public license (version 3). + +## Contributing + +Please see our [contributing guide](CONTRIBUTING.md). diff --git a/freemius/assets/css/admin/account.css b/freemius/assets/css/admin/account.css old mode 100644 new mode 100755 index b24edda..6e0feb4 --- a/freemius/assets/css/admin/account.css +++ b/freemius/assets/css/admin/account.css @@ -1 +1 @@ -label.fs-tag,span.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,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.fs-notice[data-id=license_not_whitelabeled].success,.fs-notice[data-id=license_whitelabeled].success{color:inherit;border-left-color:#00a0d2}.fs-notice[data-id=license_not_whitelabeled].success label.fs-plugin-title,.fs-notice[data-id=license_whitelabeled].success label.fs-plugin-title{display:none}#fs_account .postbox,#fs_account .widefat{max-width:800px}#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 h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .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 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}.fs-field-beta_program label{margin-left:7px}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_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:gray;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#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%}@media screen and (max-width: 639px){#fs_account .fs-header-actions{position:static;padding:0 15px 12px 15px;margin:0 0 12px 0}#fs_account .fs-header-actions li{float:none;display:inline-block}#fs_account #fs_account_details{display:block}#fs_account #fs_account_details tbody,#fs_account #fs_account_details tr,#fs_account #fs_account_details td,#fs_account #fs_account_details th{display:block}#fs_account #fs_account_details tr td:first-child{text-align:left}#fs_account #fs_account_details tr td:nth-child(2){padding:0 12px}#fs_account #fs_account_details tr td:nth-child(2) code{margin:0;padding:0}#fs_account #fs_account_details tr td:nth-child(2) label{margin-left:0}#fs_account #fs_account_details tr td:nth-child(3){text-align:left}#fs_account #fs_account_details tr.fs-field-plan td:nth-child(2) .button-group{float:none;margin:12px 0}} +label.fs-tag,span.fs-tag{background:#ffba00;border-radius:3px;color:#fff;display:inline-block;font-size:11px;line-height:11px;padding:5px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.fs-notice[data-id=license_not_whitelabeled].success,.fs-notice[data-id=license_whitelabeled].success{border-left-color:#00a0d2;color:inherit}.fs-notice[data-id=license_not_whitelabeled].success label.fs-plugin-title,.fs-notice[data-id=license_whitelabeled].success label.fs-plugin-title{display:none}#fs_account .postbox,#fs_account .widefat{max-width:800px}#fs_account h3{border-bottom:1px solid #f1f1f1;font-size:1.3em;line-height:1.4;margin:0 0 12px;padding:12px 15px}#fs_account h3 .dashicons{font-size:1.3em;height:26px;width:26px}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{font-size:.9em;position:absolute;right:15px;top:17px}#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:700}.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 code,.fs-key-value-table input[type=text],.fs-key-value-table var{background:none;color:#0073aa;font-size:16px}.fs-key-value-table input[type=text]{font-weight:700;width:100%}.fs-field-beta_program label{margin-left:7px}label.fs-tag{border-radius:3px;color:#fff;display:inline-block;font-size:11px;line-height:11px;padding:5px;vertical-align:baseline}label.fs-tag,label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{border:1px solid #e5e5e5;max-height:200px;overflow:auto}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none!important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{color:gray;text-align:right;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{white-space:nowrap;width:1px}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#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{font-weight:700;text-align:left}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:700}#fs_billing_address{width:100%}#fs_billing_address tr td{padding:5px;width:50%}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:700}#fs_billing_address input,#fs_billing_address select{display:block;margin-top:5px;width:100%}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent}#fs_billing_address input::placeholder,#fs_billing_address select::placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{background:none;border-color:transparent;border-bottom:1px dashed #ccc;color:#777;padding-left: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{background:none;border-color:transparent;border-bottom:1px dashed #ccc;color:#777;padding-left:0}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::placeholder,#fs_billing_address.fs-read-mode select::placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}@media screen and (max-width:639px){#fs_account .fs-header-actions{margin:0 0 12px;padding:0 15px 12px;position:static}#fs_account .fs-header-actions li{display:inline-block;float:none}#fs_account #fs_account_details,#fs_account #fs_account_details tbody,#fs_account #fs_account_details td,#fs_account #fs_account_details th,#fs_account #fs_account_details tr{display:block}#fs_account #fs_account_details tr td:first-child{text-align:left}#fs_account #fs_account_details tr td:nth-child(2){padding:0 12px}#fs_account #fs_account_details tr td:nth-child(2) code{margin:0;padding:0}#fs_account #fs_account_details tr td:nth-child(2) label{margin-left:0}#fs_account #fs_account_details tr td:nth-child(3){text-align:left}#fs_account #fs_account_details tr.fs-field-plan td:nth-child(2) .button-group{float:none;margin:12px 0}} \ No newline at end of file diff --git a/freemius/assets/css/admin/add-ons.css b/freemius/assets/css/admin/add-ons.css old mode 100644 new mode 100755 index dd71813..cce528f --- a/freemius/assets/css/admin/add-ons.css +++ b/freemius/assets/css/admin/add-ons.css @@ -1 +1 @@ -.fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:#fff;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.3);box-shadow:0 2px 1px -1px rgba(0,0,0,.3)}#fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner>ul{-moz-transition:all,.15s;-o-transition:all,.15s;-ms-transition:all,.15s;-webkit-transition:all,.15s;transition:all,.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner>ul>li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,.15s;-o-transition:all,.15s;-ms-transition:all,.15s;-webkit-transition:all,.15s;transition:all,.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner .fs-badge.fs-installed-addon-badge{font-size:1.02em;line-height:1.3em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0px;background:#adff2f;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.3);box-shadow:1px 1px 1px rgba(0,0,0,.3);text-transform:uppercase;font-size:.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button,#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button-group{position:absolute;top:112px;right:10px}@media screen and (min-width: 960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}}#TB_window,#TB_window iframe{width:821px !important}#plugin-information .fyi{width:266px !important}#plugin-information #section-holder{margin-right:299px;clear:none}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description iframe{max-width:100%}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:#adff2f;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid #006400;padding:2px;text-align:center;font-size:.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#f3f3f3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:#adff2f}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button,#plugin-information .fs-dropdown .button-group .button{position:relative;width:auto;top:0;right:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button:focus,#plugin-information .fs-dropdown .button-group .button:focus{z-index:10}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .fs-dropdown-arrow,#plugin-information .fs-dropdown .button-group .fs-dropdown-arrow{border-top:6px solid #fff;border-right:4px solid transparent;border-left:4px solid transparent;top:12px;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button){border-bottom-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button{border-bottom-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button){border-top-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active.up .fs-dropdown-arrow-button{border-top-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list,#plugin-information .fs-dropdown .fs-dropdown-list{position:absolute;right:-1px;top:100%;margin-left:auto;padding:3px 0;border:1px solid #bfbfbf;background-color:#fff;z-index:1;width:230px;text-align:left;-moz-box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);-webkit-box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12);box-shadow:0px 2px 4px -1px rgba(0,0,0,.2),0px 4px 5px 0px rgba(0,0,0,.14),0px 1px 10px 0px rgba(0,0,0,.12)}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li,#plugin-information .fs-dropdown .fs-dropdown-list li{margin:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li a,#plugin-information .fs-dropdown .fs-dropdown-list li a{display:block;padding:5px 10px;text-decoration:none;text-shadow:none}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover,#plugin-information .fs-dropdown .fs-dropdown-list li:hover{background-color:#0074a3;color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover a,#plugin-information .fs-dropdown .fs-dropdown-list li:hover a{color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown:not(.up) .fs-dropdown-list,#plugin-information .fs-dropdown:not(.up) .fs-dropdown-list{-moz-border-radius:3px 0 3px 3px;-webkit-border-radius:3px 0 3px 3px;border-radius:3px 0 3px 3px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.up .fs-dropdown-list,#plugin-information .fs-dropdown.up .fs-dropdown-list{-moz-border-radius:3px 3px 0 3px;-webkit-border-radius:3px 3px 0 3px;border-radius:3px 3px 0 3px}#plugin-information .fs-dropdown .button-group{width:100%}#plugin-information .fs-dropdown .button-group .button{float:none;font-size:14px;font-weight:normal;text-transform:none}#plugin-information .fs-dropdown .fs-dropdown-list{margin-top:1px}#plugin-information .fs-dropdown.up .fs-dropdown-list{top:auto;bottom:100%;margin-bottom:2px}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group{text-align:center;display:table}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button{display:table-cell}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button:not(.fs-dropdown-arrow-button){left:1px;width:100%}#plugin-information-footer>.button,#plugin-information-footer .fs-dropdown{position:relative;top:3px}#plugin-information-footer>.button.left,#plugin-information-footer .fs-dropdown.left{float:left}#plugin-information-footer>.right,#plugin-information-footer .fs-dropdown{float:right}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}} +.fs-badge{background:#71ae00;border-radius:3px 0 0 3px;border-right:0;box-shadow:0 2px 1px -1px rgba(0,0,0,.3);color:#fff;font-weight:700;padding:5px 10px;position:absolute;right:0;text-transform:uppercase;top:10px}#fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{border:1px solid #ddd;cursor:pointer;float:left;font-size:14px;height:152px;list-style:none;margin:0 0 30px 30px;padding:0;position:relative;width:310px}#fs_addons .fs-cards-list .fs-card .fs-overlay{bottom:0;left:0;position:absolute;right:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;height:100%;overflow:hidden;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner>ul{left:0;position:absolute;right:0;top:0;transition:all,.15s}#fs_addons .fs-cards-list .fs-card .fs-inner>ul>li{box-sizing:border-box;display:block;line-height:18px;list-style:none;padding:0 15px;width:100%}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{background-repeat:repeat-x;background-size:100% 100%;display:block;height:100px;line-height:0;margin:0;padding:0;transition:all,.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner .fs-badge.fs-installed-addon-badge{font-size:1.02em;line-height:1.3em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{color:#000;font-weight:700;height:18px;margin:10px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;border-top:1px solid #eee;color:#777;margin:0 0 10px;padding:10px 15px 100px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{background:#adff2f;box-shadow:1px 1px 1px rgba(0,0,0,.3);display:block;font-size:.9em;font-weight:700;padding:2px 10px;position:absolute;right:0;text-transform:uppercase;top:10px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button,#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button-group{position:absolute;right:10px;top:112px}@media screen and (min-width:960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title{color:#29abe1}}#TB_window,#TB_window iframe{width:821px!important}#plugin-information .fyi{width:266px!important}#plugin-information #section-holder{clear:none;margin-right:299px}#plugin-information #section-description b,#plugin-information #section-description blockquote,#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description i,#plugin-information #section-description li,#plugin-information #section-description ol,#plugin-information #section-description p,#plugin-information #section-description ul{clear:none}#plugin-information #section-description iframe{max-width:100%}#plugin-information #section-description .fs-selling-points{border-bottom:1px solid #ddd;padding-bottom:10px}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{list-style:none outside none;padding:0}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;float:left;font-size:3em;line-height:30px;margin:0 0 0 -15px;vertical-align:middle}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px!important}#plugin-information #section-description .fs-screenshots:after{clear:both;content:"";display:table}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{box-sizing:content-box;float:left;height:225px;margin-bottom:20px;width:225px}#plugin-information #section-description .fs-screenshots ul li a{background-size:cover;border:1px solid;box-shadow:1px 1px 1px rgba(0,0,0,.2);display:block;height:100%;width:100%}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{border-bottom:1px solid #ddd;margin:-16px}#plugin-information .plugin-information-pricing .fs-plan h3{font-size:16px;margin-top:0;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;font-size:.9em;padding:0 10px;position:relative}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{background:#adff2f;border:1px solid #006400;bottom:100%;color:green;font-size:.9em;left:-1px;line-height:1em;padding:2px;position:absolute;right:-1px;text-align:center;text-transform:uppercase}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{background:#fffeec;border-bottom-color:#fffeec;cursor:default}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;color:#0073aa;margin:0;padding-bottom:0}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{font-size:1.1em;font-weight:700;text-align:center;text-transform:uppercase;width:100%}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount,#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency{background:#f3f3f3;border:1px solid #ccc;display:block;font-weight:700;margin-bottom:10px;padding:2px;text-align:center;text-transform:uppercase}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{background:#adff2f;color:green;text-transform:none}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{border-collapse:separate;border-spacing:0;width:100%}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;display:block;font-weight:400;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;color:#71ae00;padding:10px 0;text-align:center;width:100px}#plugin-information #section-features table tbody td:first-child{color:inherit;padding-left:26px;text-align:left;width:auto}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{font-size:30px;height:30px;width:30px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button,#plugin-information .fs-dropdown .button-group .button{position:relative;right:0;top:0;width:auto}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button:focus,#plugin-information .fs-dropdown .button-group .button:focus{z-index:10}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .fs-dropdown-arrow,#plugin-information .fs-dropdown .button-group .fs-dropdown-arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #fff;position:relative;top:12px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button){border-bottom-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button{border-bottom-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button){border-top-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active.up .fs-dropdown-arrow-button{border-top-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list,#plugin-information .fs-dropdown .fs-dropdown-list{background-color:#fff;border:1px solid #bfbfbf;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:auto;padding:3px 0;position:absolute;right:-1px;text-align:left;top:100%;width:230px;z-index:1}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li,#plugin-information .fs-dropdown .fs-dropdown-list li{margin:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li a,#plugin-information .fs-dropdown .fs-dropdown-list li a{display:block;padding:5px 10px;text-decoration:none;text-shadow:none}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover,#plugin-information .fs-dropdown .fs-dropdown-list li:hover{background-color:#0074a3;color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover a,#plugin-information .fs-dropdown .fs-dropdown-list li:hover a{color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown:not(.up) .fs-dropdown-list,#plugin-information .fs-dropdown:not(.up) .fs-dropdown-list{border-radius:3px 0 3px 3px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.up .fs-dropdown-list,#plugin-information .fs-dropdown.up .fs-dropdown-list{border-radius:3px 3px 0 3px}#plugin-information .fs-dropdown .button-group{width:100%}#plugin-information .fs-dropdown .button-group .button{float:none;font-size:14px;font-weight:400;text-transform:none}#plugin-information .fs-dropdown .fs-dropdown-list{margin-top:1px}#plugin-information .fs-dropdown.up .fs-dropdown-list{bottom:100%;margin-bottom:2px;top:auto}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group{display:table;text-align:center}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button{display:table-cell}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button:not(.fs-dropdown-arrow-button){left:1px;width:100%}#plugin-information-footer .fs-dropdown,#plugin-information-footer>.button{position:relative;top:3px}#plugin-information-footer .fs-dropdown.left,#plugin-information-footer>.button.left{float:left}#plugin-information-footer .fs-dropdown,#plugin-information-footer>.right{float:right}@media screen and (max-width:961px){#fs_addons .fs-cards-list .fs-card{height:265px}} \ No newline at end of file diff --git a/freemius/assets/css/admin/affiliation.css b/freemius/assets/css/admin/affiliation.css index aae31ed..86c9250 100644 --- a/freemius/assets/css/admin/affiliation.css +++ b/freemius/assets/css/admin/affiliation.css @@ -1 +1 @@ -#fs_affiliation_content_wrapper #messages{margin-top:25px}#fs_affiliation_content_wrapper h3{font-size:24px;padding:0;margin-left:0}#fs_affiliation_content_wrapper ul li{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;list-style-type:none}#fs_affiliation_content_wrapper ul li:before{content:"✓";margin-right:10px;font-weight:bold}#fs_affiliation_content_wrapper p:not(.description),#fs_affiliation_content_wrapper li,#fs_affiliation_content_wrapper label{font-size:16px !important;line-height:26px !important}#fs_affiliation_content_wrapper .button{margin-top:20px;margin-bottom:7px;line-height:35px;height:40px;font-size:16px}#fs_affiliation_content_wrapper .button#cancel_button{margin-right:5px}#fs_affiliation_content_wrapper form .input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form .input-container .input-label{font-weight:bold;display:block;width:100%}#fs_affiliation_content_wrapper form .input-container.input-container-text label,#fs_affiliation_content_wrapper form .input-container.input-container-text input,#fs_affiliation_content_wrapper form .input-container.input-container-text textarea{display:block}#fs_affiliation_content_wrapper form .input-container #add_domain,#fs_affiliation_content_wrapper form .input-container .remove-domain{text-decoration:none;display:inline-block;margin-top:3px}#fs_affiliation_content_wrapper form .input-container #add_domain:focus,#fs_affiliation_content_wrapper form .input-container .remove-domain:focus{box-shadow:none}#fs_affiliation_content_wrapper form .input-container #add_domain.disabled,#fs_affiliation_content_wrapper form .input-container .remove-domain.disabled{color:#aaa;cursor:default}#fs_affiliation_content_wrapper form #extra_domains_container .description{margin-top:0;position:relative;top:-4px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain{display:inline-block;margin-right:5px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain:last-of-type{margin-bottom:0} +#fs_affiliation_content_wrapper #messages{margin-top:25px}#fs_affiliation_content_wrapper h3{font-size:24px;margin-left:0;padding:0}#fs_affiliation_content_wrapper ul li{box-sizing:border-box;list-style-type:none}#fs_affiliation_content_wrapper ul li:before{content:"✓";font-weight:700;margin-right:10px}#fs_affiliation_content_wrapper label,#fs_affiliation_content_wrapper li,#fs_affiliation_content_wrapper p:not(.description){font-size:16px!important;line-height:26px!important}#fs_affiliation_content_wrapper .button{font-size:16px;height:40px;line-height:35px;margin-bottom:7px;margin-top:20px}#fs_affiliation_content_wrapper .button#cancel_button{margin-right:5px}#fs_affiliation_content_wrapper form .input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form .input-container .input-label{display:block;font-weight:700;width:100%}#fs_affiliation_content_wrapper form .input-container.input-container-text input,#fs_affiliation_content_wrapper form .input-container.input-container-text label,#fs_affiliation_content_wrapper form .input-container.input-container-text textarea{display:block}#fs_affiliation_content_wrapper form .input-container #add_domain,#fs_affiliation_content_wrapper form .input-container .remove-domain{display:inline-block;margin-top:3px;text-decoration:none}#fs_affiliation_content_wrapper form .input-container #add_domain:focus,#fs_affiliation_content_wrapper form .input-container .remove-domain:focus{box-shadow:none}#fs_affiliation_content_wrapper form .input-container #add_domain.disabled,#fs_affiliation_content_wrapper form .input-container .remove-domain.disabled{color:#aaa;cursor:default}#fs_affiliation_content_wrapper form #extra_domains_container .description{margin-top:0;position:relative;top:-4px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container{margin-bottom:15px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain{display:inline-block;margin-right:5px}#fs_affiliation_content_wrapper form #extra_domains_container .extra-domain-input-container .domain:last-of-type{margin-bottom:0} \ No newline at end of file diff --git a/freemius/assets/css/admin/checkout.css b/freemius/assets/css/admin/checkout.css index 56515d2..26d74ca 100644 --- a/freemius/assets/css/admin/checkout.css +++ b/freemius/assets/css/admin/checkout.css @@ -1 +1 @@ -@media screen and (max-width: 782px){#wpbody-content{padding-bottom:0 !important}} +@media screen and (max-width:782px){#wpbody-content{padding-bottom:0!important}} \ No newline at end of file diff --git a/freemius/assets/css/admin/clone-resolution.css b/freemius/assets/css/admin/clone-resolution.css index 8f48326..bb4b2f4 100644 --- a/freemius/assets/css/admin/clone-resolution.css +++ b/freemius/assets/css/admin/clone-resolution.css @@ -1 +1 @@ -.fs-notice[data-id^=clone_resolution_options_notice]{padding:0;color:inherit !important}.fs-notice[data-id^=clone_resolution_options_notice] .fs-notice-body{padding:0;margin-bottom:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-notice-header{padding:5px 10px}.fs-notice[data-id^=clone_resolution_options_notice] ol{margin-top:0;margin-bottom:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-options-container{display:flex;flex-direction:row;padding:0 10px 10px}@media(max-width: 750px){.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-options-container{flex-direction:column}}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option{border:1px solid #ccc;padding:10px 10px 15px 10px;flex:auto;margin:5px}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option:first-child{margin-left:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option:last-child{margin-right:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option strong{font-size:1.2em;padding:2px;line-height:1.5em}.fs-notice[data-id^=clone_resolution_options_notice] a{text-decoration:none}.fs-notice[data-id^=clone_resolution_options_notice] .button{margin-right:10px}.rtl .fs-notice[data-id^=clone_resolution_options_notice] .button{margin-right:0;margin-left:10px}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-documentation-container{padding:0 10px 15px}.fs-notice[data-id=temporary_duplicate_notice] #fs_clone_resolution_error_message{border:1px solid #d3135a;background:#fee;color:#d3135a;padding:10px}.fs-notice[data-id=temporary_duplicate_notice] ol{margin-top:0} +.fs-notice[data-id^=clone_resolution_options_notice]{color:inherit!important;padding:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-notice-body{margin-bottom:0;padding:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-notice-header{padding:5px 10px}.fs-notice[data-id^=clone_resolution_options_notice] ol{margin-bottom:0;margin-top:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-options-container{display:flex;flex-direction:row;padding:0 10px 10px}@media(max-width:750px){.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-options-container{flex-direction:column}}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option{border:1px solid #ccc;flex:auto;margin:5px;padding:10px 10px 15px}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option:first-child{margin-left:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option:last-child{margin-right:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-resolution-option strong{font-size:1.2em;line-height:1.5em;padding:2px}.fs-notice[data-id^=clone_resolution_options_notice] a{text-decoration:none}.fs-notice[data-id^=clone_resolution_options_notice] .button{margin-right:10px}.rtl .fs-notice[data-id^=clone_resolution_options_notice] .button{margin-left:10px;margin-right:0}.fs-notice[data-id^=clone_resolution_options_notice] .fs-clone-documentation-container{padding:0 10px 15px}.fs-notice[data-id=temporary_duplicate_notice] #fs_clone_resolution_error_message{background:#fee;border:1px solid #d3135a;color:#d3135a;padding:10px}.fs-notice[data-id=temporary_duplicate_notice] ol{margin-top:0}.fs-notice[data-id=temporary_duplicate_notice] a{position:relative}.fs-notice[data-id=temporary_duplicate_notice] a:focus{box-shadow:none}.fs-notice[data-id=temporary_duplicate_notice] a.disabled{color:gray}.fs-notice[data-id=temporary_duplicate_notice] a .fs-ajax-spinner{bottom:0;left:8px;margin-left:100%;position:absolute;right:0;top:-1px} \ No newline at end of file diff --git a/freemius/assets/css/admin/common.css b/freemius/assets/css/admin/common.css old mode 100644 new mode 100755 index 900103a..a005ed4 --- a/freemius/assets/css/admin/common.css +++ b/freemius/assets/css/admin/common.css @@ -1 +1 @@ -.fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:#fff;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.3);box-shadow:0 2px 1px -1px rgba(0,0,0,.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,.1),inset 0 1px 3px 0 rgba(0,0,0,.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,.5);z-index:999;-moz-transition:.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}body.fs-loading,body.fs-loading *{cursor:wait !important}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media(max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}.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:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}#fs_connect .fs-error ol,#fs_connect .fs-error .fs-api-request-error-show-details-link,#fs_connect .fs-error .fs-api-request-error-details,.fs-modal .notice-error ol,.fs-modal .notice-error .fs-api-request-error-show-details-link,.fs-modal .notice-error .fs-api-request-error-details,.fs-notice.error ol,.fs-notice.error .fs-api-request-error-show-details-link,.fs-notice.error .fs-api-request-error-details{text-align:left}#fs_connect .fs-error ol,.fs-modal .notice-error ol,.fs-notice.error ol{list-style-type:disc}#fs_connect .fs-error .fs-api-request-error-show-details-link,.fs-modal .notice-error .fs-api-request-error-show-details-link,.fs-notice.error .fs-api-request-error-show-details-link{text-decoration:none;color:#2271b1;box-shadow:none}#fs_connect .fs-error .fs-api-request-error-details,.fs-modal .notice-error .fs-api-request-error-details,.fs-notice.error .fs-api-request-error-details{border:1px solid #ccc;padding:5px;overflow:auto;max-height:150px}.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;-moz-box-shadow:0 2px 2px rgba(6,113,6,.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,.3);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)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 1250px){#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:"↳";padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:"↲"}.fs-submenu-item.pricing.upgrade-mode{color:#adff2f}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px} +.fs-badge{background:#71ae00;border-radius:3px 0 0 3px;border-right:0;box-shadow:0 2px 1px -1px rgba(0,0,0,.3);color:#fff;font-weight:700;padding:5px 10px;position:absolute;right:0;text-transform:uppercase;top:10px}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{margin-top:10px;position:relative;text-align:center;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{background:#ececec;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);box-shadow:0 0 4px rgba(0,0,0,.1),inset 0 1px 3px 0 rgba(0,0,0,.1);color:#ccc;cursor:pointer;display:inline-block;height:18px;padding:6px 6px 5px;position:relative;text-shadow:0 1px 1px hsla(0,0%,100%,.8)}.fs-switch span{display:inline-block;text-transform:uppercase;width:35px}.fs-switch .fs-toggle{background-color:#fff;background-image:linear-gradient(180deg,#ececec,#fff);border:1px solid rgba(0,0,0,.3);border-radius:4px;box-shadow:inset 0 1px 0 0 hsla(0,0%,100%,.5);height:25px;position:absolute;top:1px;transition:.4s cubic-bezier(.54,1.6,.5,1);width:37px;z-index:999}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{border-radius:24px;padding:4px 25px;top:8px}.fs-switch.fs-round .fs-toggle{border-radius:24px;height:24px;top:0;width:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{border-radius:18px;height:18px;top:0;width:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}body.fs-loading,body.fs-loading *{cursor:wait!important}#fs_frame{font-size:0;line-height:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media(max-width:600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}.fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px!important}.fs-notice.success{color:green}.fs-notice.promotion{background-color:#f2fcff!important;border-color:#00a0d2!important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{color:#aaa;cursor:pointer;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{display:inline-block;margin-top:7px}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,.3);border-radius:0 0 3px 3px;bottom:auto;color:#fff;cursor:auto;font-size:12px;font-weight:700;left:10px;padding:2px 10px;position:absolute;right:auto;top:100%}div.fs-notice.promotion,div.fs-notice.success,div.fs-notice.updated{display:block!important}#fs_connect .fs-error .fs-api-request-error-details,#fs_connect .fs-error .fs-api-request-error-show-details-link,#fs_connect .fs-error ol,.fs-modal .notice-error .fs-api-request-error-details,.fs-modal .notice-error .fs-api-request-error-show-details-link,.fs-modal .notice-error ol,.fs-notice.error .fs-api-request-error-details,.fs-notice.error .fs-api-request-error-show-details-link,.fs-notice.error ol{text-align:left}#fs_connect .fs-error ol,.fs-modal .notice-error ol,.fs-notice.error ol{list-style-type:disc}#fs_connect .fs-error .fs-api-request-error-show-details-link,.fs-modal .notice-error .fs-api-request-error-show-details-link,.fs-notice.error .fs-api-request-error-show-details-link{box-shadow:none;color:#2271b1;text-decoration:none}#fs_connect .fs-error .fs-api-request-error-details,.fs-modal .notice-error .fs-api-request-error-details,.fs-notice.error .fs-api-request-error-details{border:1px solid #ccc;max-height:150px;overflow:auto;padding:5px}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{background:#ebfdeb;box-shadow:0 2px 2px rgba(6,113,6,.3);color:green;left:160px;opacity:.95;padding:10px 20px;position:fixed;right:0;top:32px;z-index:9989}.fs-secure-notice:hover{opacity:1}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width:960px){.fs-secure-notice{left:36px}}@media screen and (max-width:600px){.fs-secure-notice{display:none}}@media screen and (max-width:1250px){#fs_promo_tab{display:none}}@media screen and (max-width:782px){.fs-secure-notice{left:0;text-align:center;top:46px}}span.fs-submenu-item.fs-sub:before{content:"↳";padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:"↲"}.fs-submenu-item.pricing.upgrade-mode{color:#adff2f}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{background:url(/wp-admin/images/wpspin_light-2x.gif);background-size:contain;border:0;display:inline-block;height:20px;margin-bottom:-2px;margin-right:5px;vertical-align:sub;width:20px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{background-color:#d54e21;border:0;color:#f9f9f9;margin-top:10px;padding:10px} \ No newline at end of file diff --git a/freemius/assets/css/admin/connect.css b/freemius/assets/css/admin/connect.css index 47a75d8..c73ec87 100755 --- a/freemius/assets/css/admin/connect.css +++ b/freemius/assets/css/admin/connect.css @@ -1 +1 @@ -.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .dashicons{float:none !important}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;background:rgba(0,0,0,.8);color:#fff !important;font-family:"arial",serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:-17px;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2);line-height:1.3em;font-weight:bold;text-align:left;text-transform:none !important}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right;left:auto;right:-17px}.fs-tooltip-trigger .fs-tooltip::after{content:" ";display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_connect{width:484px;margin:60px auto 20px auto}#fs_connect a{color:inherit}#fs_connect a:not(.button){text-decoration:underline}#fs_connect .fs-box-container{box-shadow:0 1px 2px rgba(0,0,0,.3);border-radius:3px;overflow:hidden;padding-top:40px;background:#f0f0f1}@media screen and (max-width: 483px){#fs_connect{width:auto;margin:30px 0 0 -10px}#fs_connect .fs-box-container{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}}#fs_connect .fs-content{background:#fff;padding:30px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content h2{line-height:1.5em}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-content{padding-bottom:10px}#fs_connect.require-license-key .fs-actions{border-top:none}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#fff;border-width:1px 0;border-style:solid;border-color:#f1f1f1}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:" ➜"}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:""}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#fff;-moz-transition:background .5s ease;-o-transition:background .5s ease;-ms-transition:background .5s ease;-webkit-transition:background .5s ease;transition:background .5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions>.fs-trigger{font-size:.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions>.fs-trigger .fs-arrow::after{content:"→";width:20px;display:inline-block}#fs_connect .fs-permissions.fs-open>.fs-trigger .fs-arrow::after{content:"↓" !important}#fs_connect .fs-permissions ul li{padding-left:0;padding-right:0}@media screen and (max-width: 483px){#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:inherit;text-decoration:underline}#fs_connect .fs-header{padding:0;line-height:0;height:0;position:relative}#fs_connect .fs-header .fs-site-icon,#fs_connect .fs-header .fs-connect-logo{position:absolute;top:-8px;border-radius:50%}#fs_connect .fs-header .fs-site-icon{left:152px}#fs_connect .fs-header .fs-connect-logo{right:152px}#fs_connect .fs-header .fs-site-icon,#fs_connect .fs-header img,#fs_connect .fs-header object{width:50px;height:50px;border-radius:50%}#fs_connect .fs-header .fs-plugin-icon{position:absolute;overflow:hidden;top:-23px;left:50%;margin-left:-44px;border-radius:50%;z-index:1}#fs_connect .fs-header .fs-plugin-icon,#fs_connect .fs-header .fs-plugin-icon img{width:80px;height:80px}#fs_connect .fs-header .dashicons-wordpress-alt{font-size:40px;background:#01749a;color:#fff;width:40px;height:40px;padding:5px;border-radius:50%}#fs_connect .fs-header .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-header .dashicons-plus.fs-first{left:28%}#fs_connect .fs-header .dashicons-plus.fs-second{left:65%}#fs_connect .fs-header .fs-plugin-icon,#fs_connect .fs-header .fs-connect-logo,#fs_connect .fs-header .fs-site-icon{border:1px solid #efefef;padding:3px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:.85em;padding:10px 5px}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:20px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect{border-radius:3px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#c0c7ca}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:" »"}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:""}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-header .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-header .fs-connect-logo{right:auto;left:20px}.rtl #fs_connect .fs-permissions>.fs-trigger .fs-arrow::after{content:"←"}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:#fff;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:0;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}#license_issues_link{display:block;text-align:center;font-size:.9em;margin-top:10px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .dashicons{float:none !important}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;background:rgba(0,0,0,.8);color:#fff !important;font-family:"arial",serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:-17px;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2);line-height:1.3em;font-weight:bold;text-align:left;text-transform:none !important}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right;left:auto;right:-17px}.fs-tooltip-trigger .fs-tooltip::after{content:" ";display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}.fs-permissions .fs-permission.fs-disabled{color:#aaa}.fs-permissions .fs-permission.fs-disabled .fs-permission-description span{color:#aaa}.fs-permissions .fs-permission .fs-switch-feedback{position:absolute;right:15px;top:52px}.fs-permissions ul{height:0;overflow:hidden;margin:0}.fs-permissions ul li{padding:17px 15px;margin:0;position:relative}.fs-permissions ul li>i.dashicons{float:left;font-size:30px;width:30px;height:30px;padding:5px}.fs-permissions ul li .fs-switch{float:right}.fs-permissions ul li .fs-permission-description{margin-left:55px}.fs-permissions ul li .fs-permission-description span{font-size:14px;font-weight:500;color:#23282d}.fs-permissions ul li .fs-permission-description .fs-tooltip{font-size:13px;font-weight:bold}.fs-permissions ul li .fs-permission-description .fs-tooltip-trigger .dashicons{margin:-1px 2px 0 2px}.fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}.fs-permissions.fs-open{background:#fff}.fs-permissions.fs-open ul{overflow:initial;height:auto;margin:20px 0 10px 0}.fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-right:10px}.fs-permissions .fs-switch-feedback.success{color:#71ae00}.rtl .fs-permissions .fs-switch-feedback{right:auto;left:15px}.rtl .fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-left:10px;margin-right:0}.rtl .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl .fs-permissions ul li .fs-switch{float:left}.rtl .fs-permissions ul li i.dashicons{float:right} +#fs_connect{margin:60px auto 20px;width:484px}#fs_connect a{color:inherit}#fs_connect a:not(.button){text-decoration:underline}#fs_connect .fs-box-container{background:#f0f0f1;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.3);overflow:hidden;padding-top:40px}@media screen and (max-width:483px){#fs_connect{margin:30px 0 0 -10px;width:auto}#fs_connect .fs-box-container{box-shadow:none}}#fs_connect .fs-content{background:#fff;padding:30px 20px}#fs_connect .fs-content .fs-error{background:snow;border:1px solid #d3135a;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);color:#d3135a;margin-bottom:10px;padding:5px;text-align:center}#fs_connect .fs-content h2{line-height:1.5em}#fs_connect .fs-content p{font-size:1.2em;margin:0;padding:0}#fs_connect .fs-license-key-container{margin:10px auto 0;position:relative;width:280px}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;right:5px;top:5px}#fs_connect.require-license-key .fs-content{padding-bottom:10px}#fs_connect.require-license-key .fs-actions{border-top:none}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{border-bottom:1px dashed;float:right;font-weight:700;height:26px;line-height:37px;margin-right:15px;text-decoration:none;vertical-align:middle}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{background:#fff;border-color:#f1f1f1;border-style:solid;border-width:1px 0;padding:10px 20px}#fs_connect .fs-actions .button{font-size:16px;height:37px;line-height:35px;margin-bottom:0;padding:0 10px 1px}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-left:15px;padding-right:15px}#fs_connect .fs-actions .button.button-primary:after{content:" ➜"}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:""}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{background:#fff;padding:10px 20px;transition:background .5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{margin-top:0;text-align:center}#fs_connect .fs-permissions>.fs-trigger{display:block;font-size:.9em;text-align:center;text-decoration:none}#fs_connect .fs-permissions>.fs-trigger .fs-arrow:after{content:"→";display:inline-block;width:20px}#fs_connect .fs-permissions.fs-open>.fs-trigger .fs-arrow:after{content:"↓"!important}#fs_connect .fs-permissions ul li{padding-left:0;padding-right:0}@media screen and (max-width:483px){#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{background:#777;color:#fff;padding:8px}#fs_connect .fs-freemium-licensing p{display:block;margin:0;padding:0;text-align:center}#fs_connect .fs-freemium-licensing a{color:inherit;text-decoration:underline}#fs_connect .fs-header{height:0;line-height:0;padding:0;position:relative}#fs_connect .fs-header .fs-connect-logo,#fs_connect .fs-header .fs-site-icon{border-radius:50%;position:absolute;top:-8px}#fs_connect .fs-header .fs-site-icon{left:152px}#fs_connect .fs-header .fs-connect-logo{right:152px}#fs_connect .fs-header .fs-site-icon,#fs_connect .fs-header img,#fs_connect .fs-header object{border-radius:50%;height:50px;width:50px}#fs_connect .fs-header .fs-plugin-icon{border-radius:50%;left:50%;margin-left:-44px;overflow:hidden;position:absolute;top:-23px;z-index:1}#fs_connect .fs-header .fs-plugin-icon,#fs_connect .fs-header .fs-plugin-icon img{height:80px;width:80px}#fs_connect .fs-header .dashicons-wordpress-alt{background:#01749a;border-radius:50%;color:#fff;font-size:40px;height:40px;padding:5px;width:40px}#fs_connect .fs-header .dashicons-plus{color:#bbb;font-size:30px;margin-top:-10px;position:absolute;top:50%}#fs_connect .fs-header .dashicons-plus.fs-first{left:28%}#fs_connect .fs-header .dashicons-plus.fs-second{left:65%}#fs_connect .fs-header .fs-connect-logo,#fs_connect .fs-header .fs-plugin-icon,#fs_connect .fs-header .fs-site-icon{background:#fff;border:1px solid #efefef;padding:3px}#fs_connect .fs-terms{font-size:.85em;padding:10px 5px;text-align:center}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{border:1px solid #ccc;margin-top:20px;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:700}.fs-multisite-options-container.fs-apply-on-all-sites{border:0;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}#fs_marketing_optin{border:1px solid #ccc;display:none;line-height:1.5em;margin-top:10px;padding:10px}#fs_marketing_optin .fs-message{display:block;font-size:1.05em;font-weight:600;margin-bottom:5px}#fs_marketing_optin.error{background:#fee;border:1px solid #d3135a}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{display:block;margin-top:5px}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect{border-radius:3px}.rtl #fs_connect .fs-actions{background:#c0c7ca;padding:10px 20px}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:" »"}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:""}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-header .fs-site-icon{left:auto;right:20px}.rtl #fs_connect .fs-header .fs-connect-logo{left:20px;right:auto}.rtl #fs_connect .fs-permissions>.fs-trigger .fs-arrow:after{content:"←"}#fs_theme_connect_wrapper{background:rgba(0,0,0,.75);height:100%;overflow-y:auto;position:fixed;text-align:center;top:0;width:100%;z-index:99990}#fs_theme_connect_wrapper:before{content:"";display:inline-block;height:100%;vertical-align:middle}#fs_theme_connect_wrapper>button.close{background-color:transparent;border:0;color:#fff;cursor:pointer;height:40px;position:absolute;right:0;top:32px;width:40px}#fs_theme_connect_wrapper #fs_connect{display:inline-block;margin-bottom:20px;margin-top:0;text-align:left;top:0;vertical-align:middle}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{box-shadow:none;margin:0}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}#license_issues_link{display:block;font-size:.9em;margin-top:10px;text-align:center}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .dashicons{float:none!important}.fs-tooltip-trigger .fs-tooltip{background:rgba(0,0,0,.8);border-radius:5px;bottom:100%;box-shadow:1px 1px 1px rgba(0,0,0,.2);color:#fff!important;font-family:arial,serif;font-size:12px;font-weight:700;left:-17px;line-height:1.3em;margin-bottom:5px;opacity:0;padding:10px;position:absolute;right:0;text-align:left;text-transform:none!important;transition:opacity .3s ease-in-out;visibility:hidden;z-index:999999}.rtl .fs-tooltip-trigger .fs-tooltip{left:auto;right:-17px;text-align:right}.fs-tooltip-trigger .fs-tooltip:after{border-color:rgba(0,0,0,.8) transparent transparent;border-style:solid;border-width:5px 5px 0;content:" ";display:block;height:0;left:21px;position:absolute;top:100%;width:0}.rtl .fs-tooltip-trigger .fs-tooltip:after{left:auto;right:21px}.fs-tooltip-trigger:hover .fs-tooltip{opacity:1;visibility:visible}.fs-permissions .fs-permission.fs-disabled,.fs-permissions .fs-permission.fs-disabled .fs-permission-description span{color:#aaa}.fs-permissions .fs-permission .fs-switch-feedback{position:absolute;right:15px;top:52px}.fs-permissions ul{height:0;margin:0;overflow:hidden}.fs-permissions ul li{margin:0;padding:17px 15px;position:relative}.fs-permissions ul li>i.dashicons{float:left;font-size:30px;height:30px;padding:5px;width:30px}.fs-permissions ul li .fs-switch{float:right}.fs-permissions ul li .fs-permission-description{margin-left:55px}.fs-permissions ul li .fs-permission-description span{color:#23282d;font-size:14px;font-weight:500}.fs-permissions ul li .fs-permission-description .fs-tooltip{font-size:13px;font-weight:700}.fs-permissions ul li .fs-permission-description .fs-tooltip-trigger .dashicons{margin:-1px 2px 0}.fs-permissions ul li .fs-permission-description p{margin:2px 0 0}.fs-permissions.fs-open{background:#fff}.fs-permissions.fs-open ul{height:auto;margin:20px 0 10px;overflow:initial}.fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-right:10px}.fs-permissions .fs-switch-feedback.success{color:#71ae00}.rtl .fs-permissions .fs-switch-feedback{left:15px;right:auto}.rtl .fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-left:10px;margin-right:0}.rtl .fs-permissions ul li .fs-permission-description{margin-left:0;margin-right:55px}.rtl .fs-permissions ul li .fs-switch{float:left}.rtl .fs-permissions ul li i.dashicons{float:right} \ No newline at end of file diff --git a/freemius/assets/css/admin/debug.css b/freemius/assets/css/admin/debug.css index 3a2aadf..84d9404 100644 --- a/freemius/assets/css/admin/debug.css +++ b/freemius/assets/css/admin/debug.css @@ -1 +1 @@ -label.fs-tag,span.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,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be} +label.fs-tag,span.fs-tag{background:#ffba00;border-radius:3px;color:#fff;display:inline-block;font-size:11px;line-height:11px;padding:5px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:700}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac!important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be} \ No newline at end of file diff --git a/freemius/assets/css/admin/dialog-boxes.css b/freemius/assets/css/admin/dialog-boxes.css index de7f829..562b7bb 100644 --- a/freemius/assets/css/admin/dialog-boxes.css +++ b/freemius/assets/css/admin/dialog-boxes.css @@ -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)}@media(min-width: 961px){.fs-modal{padding-left:160px}.rtl .fs-modal{padding-left:0;padding-right:160px}}.fs-modal .dashicons{vertical-align:middle}.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-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.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:bold;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-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.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:#eee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:last-of-type{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}.rtl .fs-modal .fs-modal-footer{text-align:left}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,.fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:left;line-height:30px}.rtl .fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label,.rtl .fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:right}.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-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{width:100%;border-collapse:collapse}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type=radio]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{width:1%;padding-left:3px;padding-right:3px}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:20px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media(max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .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}.fs-modal.fs-modal-email-address-update .fs-modal-body input[type=text]{width:100%}.fs-modal.fs-modal-email-address-update p{margin-bottom:0}.fs-modal.fs-modal-email-address-update ul{margin:1em .5em}.fs-modal.fs-modal-email-address-update ul li label span{float:left;margin-top:0}.fs-modal.fs-modal-email-address-update ul li label span:last-child{display:block;float:none;margin-left:20px}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:.3;-o-transform:.3;-ms-transform:.3;-webkit-transform:.3;transform:.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,.1) !important} +.fs-modal{background:rgba(0,0,0,.6);display:none;height:100%;overflow:auto;position:fixed;top:0;width:100%;z-index:100000}@media(min-width:961px){.fs-modal{padding-left:160px}.rtl .fs-modal{padding-left:0;padding-right:160px}}.fs-modal .dashicons{vertical-align:middle}.fs-modal .fs-modal-dialog{background:transparent;left:50%;margin-left:-298px;padding-bottom:30px;position:absolute;top:-100%;width:596px;z-index:100001}@media(max-width:650px){.fs-modal .fs-modal-dialog{box-sizing:border-box;margin-left:-50%;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-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{background:#fefefe;border:0;padding:20px}.fs-modal .fs-modal-header{background:#fbfbfb;border-bottom:1px solid #eee;margin-bottom:-10px;padding:15px 20px;position:relative}.fs-modal .fs-modal-header h4{color:#cacaca;font-size:1.2em;font-weight:700;letter-spacing:.6px;margin:0;padding:0;text-shadow:1px 1px 1px #fff;text-transform:uppercase;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{border-radius:20px;color:#bbb;cursor:pointer;padding:3px;position:absolute;right:10px;top:12px;transition:all .2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{background:#aaa;color:#fff}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.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-size:20px;font-weight:700;margin-top:0}.fs-modal .fs-modal-footer{border-top:1px solid #eee;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:last-of-type{margin:0}.fs-modal .fs-modal-panel>.notice.inline{display:none;margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{left:20px;right:auto}.rtl .fs-modal .fs-modal-footer{text-align:left}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 .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{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;display:none;padding:7px}@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,.fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:left;line-height:30px}.rtl .fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label,.rtl .fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:right}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0!important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{font-size:16px;line-height:1.5em;margin-bottom:0;margin-top:10px}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:700;margin-bottom:0;padding:0 25px}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;position:relative;top:5px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-license-options-container table,.fs-license-options-container table .fs-available-license-key,.fs-license-options-container table select,.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{float:left;margin-right:5px;position:relative;top:6px}.fs-license-options-container table .fs-other-license-key-container div{display:block;height:30px;overflow:hidden;position:relative;top:2px;width:auto}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{border-collapse:collapse;width:100%}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type=radio]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{padding-left:3px;padding-right:3px;width:1%}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key,.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-multisite-options-container{border:1px solid #ccc;margin-top:20px;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:700}.fs-multisite-options-container.fs-apply-on-all-sites{border:0;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media(max-width:650px){.fs-modal.fs-modal-license-key-resend.fs-premium .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-left:0;margin-right:7px}a.show-license-resend-modal{display:inline-block;margin-top:4px}.fs-modal.fs-modal-email-address-update .fs-modal-body input[type=text]{width:100%}.fs-modal.fs-modal-email-address-update p{margin-bottom:0}.fs-modal.fs-modal-email-address-update ul{margin:1em .5em}.fs-modal.fs-modal-email-address-update ul li label span{float:left;margin-top:0}.fs-modal.fs-modal-email-address-update ul li label span:last-child{display:block;float:none;margin-left:20px}.fs-ajax-loader{height:20px;margin:auto;position:relative;width:170px}.fs-ajax-loader .fs-ajax-loader-bar{animation-direction:normal;animation-duration:1.5s;animation-iteration-count:infinite;animation-name:bounce_ajaxLoader;background-color:#0074a3;height:20px;position:absolute;top:0;transform:scale(.3);width:20px}.fs-ajax-loader .fs-ajax-loader-bar-1{animation-delay:.6s;left:0}.fs-ajax-loader .fs-ajax-loader-bar-2{animation-delay:.75s;left:19px}.fs-ajax-loader .fs-ajax-loader-bar-3{animation-delay:.9s;left:38px}.fs-ajax-loader .fs-ajax-loader-bar-4{animation-delay:1.05s;left:57px}.fs-ajax-loader .fs-ajax-loader-bar-5{animation-delay:1.2s;left:76px}.fs-ajax-loader .fs-ajax-loader-bar-6{animation-delay:1.35s;left:95px}.fs-ajax-loader .fs-ajax-loader-bar-7{animation-delay:1.5s;left:114px}.fs-ajax-loader .fs-ajax-loader-bar-8{animation-delay:1.65s;left:133px}@keyframes bounce_ajaxLoader{0%{background-color:#0074a3;transform:scale(1)}to{background-color:#fff;transform:scale(.3)}}.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons,.fs-modal-auto-install #request-filesystem-credentials-form h2{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;max-width:100%;padding:10px 10px 5px;width:300px}.fs-modal-auto-install #request-filesystem-credentials-form fieldset,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form>div{display:block;margin:0 auto;max-width:100%;width:300px}.button-primary.warn{background:#f56a48;border-color:#ec6544 #d2593c #d2593c;box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{background:#e76444!important;border-color:#d85e40!important;color:#f5b3a1!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important} \ No newline at end of file diff --git a/freemius/assets/css/admin/gdpr-optin-notice.css b/freemius/assets/css/admin/gdpr-optin-notice.css index fb934ff..836dcd1 100644 --- a/freemius/assets/css/admin/gdpr-optin-notice.css +++ b/freemius/assets/css/admin/gdpr-optin-notice.css @@ -1 +1 @@ -.fs-notice[data-id^=gdpr_optin_actions] .underlined{text-decoration:underline}.fs-notice[data-id^=gdpr_optin_actions] ul .button,.fs-notice[data-id^=gdpr_optin_actions] ul .action-description{vertical-align:middle}.fs-notice[data-id^=gdpr_optin_actions] ul .action-description{display:inline-block;margin-left:3px} +.fs-notice[data-id^=gdpr_optin_actions] .underlined{text-decoration:underline}.fs-notice[data-id^=gdpr_optin_actions] ul .action-description,.fs-notice[data-id^=gdpr_optin_actions] ul .button{vertical-align:middle}.fs-notice[data-id^=gdpr_optin_actions] ul .action-description{display:inline-block;margin-left:3px} \ No newline at end of file diff --git a/freemius/assets/css/admin/optout.css b/freemius/assets/css/admin/optout.css index 6b0d5e2..922c181 100644 --- a/freemius/assets/css/admin/optout.css +++ b/freemius/assets/css/admin/optout.css @@ -1 +1 @@ -.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .dashicons{float:none !important}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;background:rgba(0,0,0,.8);color:#fff !important;font-family:"arial",serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:-17px;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2);line-height:1.3em;font-weight:bold;text-align:left;text-transform:none !important}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right;left:auto;right:-17px}.fs-tooltip-trigger .fs-tooltip::after{content:" ";display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}.fs-permissions .fs-permission.fs-disabled{color:#aaa}.fs-permissions .fs-permission.fs-disabled .fs-permission-description span{color:#aaa}.fs-permissions .fs-permission .fs-switch-feedback{position:absolute;right:15px;top:52px}.fs-permissions ul{height:0;overflow:hidden;margin:0}.fs-permissions ul li{padding:17px 15px;margin:0;position:relative}.fs-permissions ul li>i.dashicons{float:left;font-size:30px;width:30px;height:30px;padding:5px}.fs-permissions ul li .fs-switch{float:right}.fs-permissions ul li .fs-permission-description{margin-left:55px}.fs-permissions ul li .fs-permission-description span{font-size:14px;font-weight:500;color:#23282d}.fs-permissions ul li .fs-permission-description .fs-tooltip{font-size:13px;font-weight:bold}.fs-permissions ul li .fs-permission-description .fs-tooltip-trigger .dashicons{margin:-1px 2px 0 2px}.fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}.fs-permissions.fs-open{background:#fff}.fs-permissions.fs-open ul{overflow:initial;height:auto;margin:20px 0 10px 0}.fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-right:10px}.fs-permissions .fs-switch-feedback.success{color:#71ae00}.rtl .fs-permissions .fs-switch-feedback{right:auto;left:15px}.rtl .fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-left:10px;margin-right:0}.rtl .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl .fs-permissions ul li .fs-switch{float:left}.rtl .fs-permissions ul li i.dashicons{float:right}.fs-modal-opt-out .fs-modal-footer .fs-opt-out-button{line-height:30px;margin-right:10px}.fs-modal-opt-out .fs-permissions{margin-top:0 !important}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header .fs-group-opt-out-button{float:right;line-height:1.1em}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header .fs-switch-feedback{float:right;line-height:1.1em;margin-right:10px}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header .fs-switch-feedback .fs-ajax-spinner{margin:-2px 0 0}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header-title{font-size:1.1em;font-weight:600;text-transform:uppercase;display:block;line-height:1.1em;margin:.5em 0}.fs-modal-opt-out .fs-permissions .fs-permissions-section--desc{margin-top:0}.fs-modal-opt-out .fs-permissions hr{border:0;border-top:#eee solid 1px;margin:25px 0 20px 0}.fs-modal-opt-out .fs-permissions ul{border:1px solid #c3c4c7;border-radius:3px;margin:10px 0 0 0;box-shadow:0 1px 1px rgba(0,0,0,.04)}.fs-modal-opt-out .fs-permissions ul li{border-bottom:1px solid #d7dde1;border-left:4px solid #72aee6}.rtl .fs-modal-opt-out .fs-permissions ul li{border-left:none;border-right:4px solid #72aee6}.fs-modal-opt-out .fs-permissions ul li.fs-disabled{border-left-color:rgba(114,174,230,0)}.fs-modal-opt-out .fs-permissions ul li:last-child{border-bottom:none} +.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .dashicons{float:none!important}.fs-tooltip-trigger .fs-tooltip{background:rgba(0,0,0,.8);border-radius:5px;bottom:100%;box-shadow:1px 1px 1px rgba(0,0,0,.2);color:#fff!important;font-family:arial,serif;font-size:12px;font-weight:700;left:-17px;line-height:1.3em;margin-bottom:5px;opacity:0;padding:10px;position:absolute;right:0;text-align:left;text-transform:none!important;transition:opacity .3s ease-in-out;visibility:hidden;z-index:999999}.rtl .fs-tooltip-trigger .fs-tooltip{left:auto;right:-17px;text-align:right}.fs-tooltip-trigger .fs-tooltip:after{border-color:rgba(0,0,0,.8) transparent transparent;border-style:solid;border-width:5px 5px 0;content:" ";display:block;height:0;left:21px;position:absolute;top:100%;width:0}.rtl .fs-tooltip-trigger .fs-tooltip:after{left:auto;right:21px}.fs-tooltip-trigger:hover .fs-tooltip{opacity:1;visibility:visible}.fs-permissions .fs-permission.fs-disabled,.fs-permissions .fs-permission.fs-disabled .fs-permission-description span{color:#aaa}.fs-permissions .fs-permission .fs-switch-feedback{position:absolute;right:15px;top:52px}.fs-permissions ul{height:0;margin:0;overflow:hidden}.fs-permissions ul li{margin:0;padding:17px 15px;position:relative}.fs-permissions ul li>i.dashicons{float:left;font-size:30px;height:30px;padding:5px;width:30px}.fs-permissions ul li .fs-switch{float:right}.fs-permissions ul li .fs-permission-description{margin-left:55px}.fs-permissions ul li .fs-permission-description span{color:#23282d;font-size:14px;font-weight:500}.fs-permissions ul li .fs-permission-description .fs-tooltip{font-size:13px;font-weight:700}.fs-permissions ul li .fs-permission-description .fs-tooltip-trigger .dashicons{margin:-1px 2px 0}.fs-permissions ul li .fs-permission-description p{margin:2px 0 0}.fs-permissions.fs-open{background:#fff}.fs-permissions.fs-open ul{height:auto;margin:20px 0 10px;overflow:initial}.fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-right:10px}.fs-permissions .fs-switch-feedback.success{color:#71ae00}.rtl .fs-permissions .fs-switch-feedback{left:15px;right:auto}.rtl .fs-permissions .fs-switch-feedback .fs-ajax-spinner{margin-left:10px;margin-right:0}.rtl .fs-permissions ul li .fs-permission-description{margin-left:0;margin-right:55px}.rtl .fs-permissions ul li .fs-switch{float:left}.rtl .fs-permissions ul li i.dashicons{float:right}.fs-modal-opt-out .fs-modal-footer .fs-opt-out-button{line-height:30px;margin-right:10px}.fs-modal-opt-out .fs-permissions{margin-top:0!important}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header .fs-group-opt-out-button{float:right;line-height:1.1em}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header .fs-switch-feedback{float:right;line-height:1.1em;margin-right:10px}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header .fs-switch-feedback .fs-ajax-spinner{margin:-2px 0 0}.fs-modal-opt-out .fs-permissions .fs-permissions-section--header-title{display:block;font-size:1.1em;font-weight:600;line-height:1.1em;margin:.5em 0;text-transform:uppercase}.fs-modal-opt-out .fs-permissions .fs-permissions-section--desc{margin-top:0}.fs-modal-opt-out .fs-permissions hr{border:0;border-top:1px solid #eee;margin:25px 0 20px}.fs-modal-opt-out .fs-permissions ul{border:1px solid #c3c4c7;border-radius:3px;box-shadow:0 1px 1px rgba(0,0,0,.04);margin:10px 0 0}.fs-modal-opt-out .fs-permissions ul li{border-bottom:1px solid #d7dde1;border-left:4px solid #72aee6}.rtl .fs-modal-opt-out .fs-permissions ul li{border-left:none;border-right:4px solid #72aee6}.fs-modal-opt-out .fs-permissions ul li.fs-disabled{border-left-color:rgba(114,174,230,0)}.fs-modal-opt-out .fs-permissions ul li:last-child{border-bottom:none} \ No newline at end of file diff --git a/freemius/assets/css/admin/plugins.css b/freemius/assets/css/admin/plugins.css index 8d76fa3..a24b481 100644 --- a/freemius/assets/css/admin/plugins.css +++ b/freemius/assets/css/admin/plugins.css @@ -1 +1 @@ -label.fs-tag,span.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,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.wp-list-table.plugins .plugin-title span.fs-tag{display:inline-block;margin-left:5px;line-height:10px} +label.fs-tag,span.fs-tag{background:#ffba00;border-radius:3px;color:#fff;display:inline-block;font-size:11px;line-height:11px;padding:5px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.wp-list-table.plugins .plugin-title span.fs-tag{display:inline-block;line-height:10px;margin-left:5px} \ No newline at end of file diff --git a/freemius/assets/css/customizer.css b/freemius/assets/css/customizer.css index d59b381..a317b5b 100644 --- a/freemius/assets/css/customizer.css +++ b/freemius/assets/css/customizer.css @@ -1 +1 @@ -#fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:"arial",serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:" ";display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}#customize-theme-controls #accordion-section-freemius_upsell{border-top:1px solid #0085ba !important;border-bottom:1px solid #0085ba !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title{color:#fff;background-color:#0085ba;border-left:4px solid #0085ba;transition:.15s background-color ease-in-out,.15s border-color ease-in-out;outline:none;border-bottom:none !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:hover{background-color:#008ec2;border-left-color:#0073aa}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:after{color:#fff}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title{border-left:none;border-right:4px solid #0085ba}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title:hover{border-right-color:#0073aa} +#fs_customizer_upsell .fs-customizer-plan{background:#fff;border-radius:3px;padding:10px 20px 20px}#fs_customizer_upsell .fs-customizer-plan h2{line-height:2em;margin:0;position:relative;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;margin-left:-7px;margin-right:10px;vertical-align:bottom}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{background:#000;border-radius:5px;bottom:100%;box-shadow:1px 1px 1px rgba(0,0,0,.2);color:#fff;font-family:arial,serif;font-size:12px;font-weight:700;left:0;line-height:1.3em;margin-bottom:5px;opacity:0;padding:10px;position:absolute;right:0;text-align:left;transition:opacity .3s ease-in-out;visibility:hidden;z-index:999999}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc:after{border-color:#000 transparent transparent;border-style:solid;border-width:5px 5px 0;content:" ";display:block;height:0;left:21px;position:absolute;top:100%;width:0}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc:after{left:auto;right:21px}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{opacity:1;visibility:visible}#fs_customizer_upsell .button-primary{display:block;margin-top:10px;text-align:center}#fs_customizer_support{display:block!important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{display:block;margin-top:10px;width:100%}#fs_customizer_support .button-group .button{float:none;text-align:center;width:50%}#customize-theme-controls #accordion-section-freemius_upsell{border-bottom:1px solid #0085ba!important;border-top:1px solid #0085ba!important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title{background-color:#0085ba;border-bottom:none!important;border-left:4px solid #0085ba;color:#fff;outline:none;transition:background-color .15s ease-in-out,border-color .15s ease-in-out}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:hover{background-color:#008ec2;border-left-color:#0073aa}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:after{color:#fff}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title{border-left:none;border-right:4px solid #0085ba}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title:hover{border-right-color:#0073aa} \ No newline at end of file diff --git a/freemius/assets/js/nojquery.ba-postmessage.js b/freemius/assets/js/nojquery.ba-postmessage.js index aedbd81..d3414ff 100755 --- a/freemius/assets/js/nojquery.ba-postmessage.js +++ b/freemius/assets/js/nojquery.ba-postmessage.js @@ -25,116 +25,4 @@ * 5. The use of `$.isFunction` is replaced by a functionally-identical check. * 6. The `$:nomunge` YUI option is no longer necessary. */ - -function NoJQueryPostMessageMixin(postBinding, receiveBinding) { - - var setMessageCallback, unsetMessageCallback, currentMsgCallback, - intervalId, lastHash, cacheBust = 1; - - if (window.postMessage) { - - if (window.addEventListener) { - setMessageCallback = function(callback) { - window.addEventListener('message', callback, false); - } - - unsetMessageCallback = function(callback) { - window.removeEventListener('message', callback, false); - } - } else { - setMessageCallback = function(callback) { - window.attachEvent('onmessage', callback); - } - - unsetMessageCallback = function(callback) { - window.detachEvent('onmessage', callback); - } - } - - this[postBinding] = function(message, targetUrl, target) { - if (!targetUrl) { - return; - } - - // The browser supports window.postMessage, so call it with a targetOrigin - // set appropriately, based on the targetUrl parameter. - target.postMessage( message, targetUrl.replace( /([^:]+:\/\/[^\/]+).*/, '$1' ) ); - } - - // Since the browser supports window.postMessage, the callback will be - // bound to the actual event associated with window.postMessage. - this[receiveBinding] = function(callback, sourceOrigin, delay) { - // Unbind an existing callback if it exists. - if (currentMsgCallback) { - unsetMessageCallback(currentMsgCallback); - currentMsgCallback = null; - } - - if (!callback) { - return false; - } - - // Bind the callback. A reference to the callback is stored for ease of - // unbinding. - currentMsgCallback = setMessageCallback(function(e) { - switch(Object.prototype.toString.call(sourceOrigin)) { - case '[object String]': - if (sourceOrigin !== e.origin) { - return false; - } - break; - case '[object Function]': - if (sourceOrigin(e.origin)) { - return false; - } - break; - } - - callback(e); - }); - }; - - } else { - - this[postBinding] = function(message, targetUrl, target) { - if (!targetUrl) { - return; - } - - // The browser does not support window.postMessage, so set the location - // of the target to targetUrl#message. A bit ugly, but it works! A cache - // bust parameter is added to ensure that repeat messages trigger the - // callback. - target.location = targetUrl.replace( /#.*$/, '' ) + '#' + (+new Date) + (cacheBust++) + '&' + message; - } - - // Since the browser sucks, a polling loop will be started, and the - // callback will be called whenever the location.hash changes. - this[receiveBinding] = function(callback, sourceOrigin, delay) { - if (intervalId) { - clearInterval(intervalId); - intervalId = null; - } - - if (callback) { - delay = typeof sourceOrigin === 'number' - ? sourceOrigin - : typeof delay === 'number' - ? delay - : 100; - - intervalId = setInterval(function(){ - var hash = document.location.hash, - re = /^#?\d+&/; - if ( hash !== lastHash && re.test( hash ) ) { - lastHash = hash; - callback({ data: hash.replace( re, '' ) }); - } - }, delay ); - } - }; - - } - - return this; -} \ No newline at end of file +function NoJQueryPostMessageMixin(n,e){var t,i,o,s,a,r=1;return window.postMessage?(window.addEventListener?(t=function(n){window.addEventListener("message",n,!1)},i=function(n){window.removeEventListener("message",n,!1)}):(t=function(n){window.attachEvent("onmessage",n)},i=function(n){window.detachEvent("onmessage",n)}),this[n]=function(n,e,t){e&&t.postMessage(n,e.replace(/([^:]+:\/\/[^\/]+).*/,"$1"))},this[e]=function(n,e,s){if(o&&(i(o),o=null),!n)return!1;o=t((function(t){switch(Object.prototype.toString.call(e)){case"[object String]":if(e!==t.origin)return!1;break;case"[object Function]":if(e(t.origin))return!1}n(t)}))}):(this[n]=function(n,e,t){e&&(t.location=e.replace(/#.*$/,"")+"#"+ +new Date+r+++"&"+n)},this[e]=function(n,e,t){s&&(clearInterval(s),s=null),n&&(t="number"==typeof e?e:"number"==typeof t?t:100,s=setInterval((function(){var e=document.location.hash,t=/^#?\d+&/;e!==a&&t.test(e)&&(a=e,n({data:e.replace(t,"")}))}),t))}),this} \ No newline at end of file diff --git a/freemius/assets/js/nojquery.ba-postmessage.min.js b/freemius/assets/js/nojquery.ba-postmessage.min.js deleted file mode 100755 index ae542d4..0000000 --- a/freemius/assets/js/nojquery.ba-postmessage.min.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * nojquery-postmessage by Jeff Lee - * a non-jQuery fork of: - * - * jQuery postMessage - v0.5 - 9/11/2009 - * http://benalman.com/projects/jquery-postmessage-plugin/ - * - * Copyright (c) 2009 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -function NoJQueryPostMessageMixin(g,a){var b,h,e,d,f,c=1;if(window.postMessage){if(window.addEventListener){b=function(i){window.addEventListener("message",i,false)};h=function(i){window.removeEventListener("message",i,false)}}else{b=function(i){window.attachEvent("onmessage",i)};h=function(i){window.detachEvent("onmessage",i)}}this[g]=function(i,k,j){if(!k){return}j.postMessage(i,k.replace(/([^:]+:\/\/[^\/]+).*/,"$1"))};this[a]=function(k,j,i){if(e){h(e);e=null}if(!k){return false}e=b(function(l){switch(Object.prototype.toString.call(j)){case"[object String]":if(j!==l.origin){return false}break;case"[object Function]":if(j(l.origin)){return false}break}k(l)})}}else{this[g]=function(i,k,j){if(!k){return}j.location=k.replace(/#.*$/,"")+"#"+(+new Date)+(c++)+"&"+i};this[a]=function(k,j,i){if(d){clearInterval(d);d=null}if(k){i=typeof j==="number"?j:typeof i==="number"?i:100;d=setInterval(function(){var m=document.location.hash,l=/^#?\d+&/;if(m!==f&&l.test(m)){f=m;k({data:m.replace(l,"")})}},i)}}}return this}; \ No newline at end of file diff --git a/freemius/assets/js/postmessage.js b/freemius/assets/js/postmessage.js index 9ec5d12..609cbee 100755 --- a/freemius/assets/js/postmessage.js +++ b/freemius/assets/js/postmessage.js @@ -1,135 +1 @@ -(function ($, undef) { - var global = this; - - // Namespace. - global.FS = global.FS || {}; - - global.FS.PostMessage = function () - { - var - _is_child = false, - _postman = new NoJQueryPostMessageMixin('postMessage', 'receiveMessage'), - _callbacks = {}, - _base_url, - _parent_url = decodeURIComponent(document.location.hash.replace(/^#/, '')), - _parent_subdomain = _parent_url.substring(0, _parent_url.indexOf('/', ('https://' === _parent_url.substring(0, ('https://').length)) ? 8 : 7)), - _init = function () { - _postman.receiveMessage(function (e) { - var data = JSON.parse(e.data); - - if (_callbacks[data.type]) { - for (var i = 0; i < _callbacks[data.type].length; i++) { - // Execute type callbacks. - _callbacks[data.type][i](data.data); - } - } - }, _base_url); - }, - _hasParent = ('' !== _parent_url), - $window = $(window), - $html = $('html'); - - return { - init : function (url, iframes) - { - _base_url = url; - _init(); - - // Automatically receive forward messages. - FS.PostMessage.receiveOnce('forward', function (data){ - window.location = data.url; - }); - - iframes = iframes || []; - - if (iframes.length > 0) { - $window.on('scroll', function () { - for (var i = 0; i < iframes.length; i++) { - FS.PostMessage.postScroll(iframes[i]); - } - }); - } - }, - init_child : function () - { - this.init(_parent_subdomain); - - _is_child = true; - - // Post height of a child right after window is loaded. - $(window).bind('load', function () { - FS.PostMessage.postHeight(); - - // Post message that window was loaded. - FS.PostMessage.post('loaded'); - }); - }, - hasParent : function () - { - return _hasParent; - }, - postHeight : function (diff, wrapper) { - diff = diff || 0; - wrapper = wrapper || '#wrap_section'; - this.post('height', { - height: diff + $(wrapper).outerHeight(true) - }); - }, - postScroll : function (iframe) { - this.post('scroll', { - top: $window.scrollTop(), - height: ($window.height() - parseFloat($html.css('paddingTop')) - parseFloat($html.css('marginTop'))) - }, iframe); - }, - post : function (type, data, iframe) - { - console.debug('PostMessage.post', type); - - if (iframe) - { - // Post to iframe. - _postman.postMessage(JSON.stringify({ - type: type, - data: data - }), iframe.src, iframe.contentWindow); - } - else { - // Post to parent. - _postman.postMessage(JSON.stringify({ - type: type, - data: data - }), _parent_url, window.parent); - } - }, - receive: function (type, callback) - { - console.debug('PostMessage.receive', type); - - if (undef === _callbacks[type]) - _callbacks[type] = []; - - _callbacks[type].push(callback); - }, - receiveOnce: function (type, callback) - { - if (this.is_set(type)) - return; - - this.receive(type, callback); - }, - // Check if any callbacks assigned to a specified message type. - is_set: function (type) - { - return (undef != _callbacks[type]); - }, - parent_url: function () - { - return _parent_url; - }, - parent_subdomain: function () - { - return _parent_subdomain; - } - }; - }(); -})(jQuery); \ No newline at end of file +!function(e,t){var s,n,o,i,r,a,c,p,u=this;u.FS=u.FS||{},u.FS.PostMessage=(n=new NoJQueryPostMessageMixin("postMessage","receiveMessage"),o={},i=decodeURIComponent(document.location.hash.replace(/^#/,"")),r=i.substring(0,i.indexOf("/","https://"===i.substring(0,8)?8:7)),a=""!==i,c=e(window),p=e("html"),{init:function(e,t){s=e,n.receiveMessage((function(e){var t=JSON.parse(e.data);if(o[t.type])for(var s=0;s0&&c.on("scroll",(function(){for(var e=0;e_storage = FS_Storage::instance( $this->_module_type, $this->_slug ); + // If not set or 24 hours have already passed from the last time it's set, set the last load timestamp to the current time. + if ( + ! isset( $this->_storage->last_load_timestamp ) || + $this->_storage->last_load_timestamp < ( time() - ( WP_FS__TIME_24_HOURS_IN_SEC ) ) + ) { + $this->_storage->last_load_timestamp = time(); + } + $this->_cache = FS_Cache_Manager::get_manager( WP_FS___OPTION_PREFIX . "cache_{$module_id}" ); $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $this->get_unique_affix(), WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK ); @@ -1249,7 +1257,7 @@ private static function migrate_accounts_to_network() { * * @return bool */ - private static function set_network_upgrade_mode( FS_Storage $storage ) { + public static function set_network_upgrade_mode( FS_Storage $storage ) { return $storage->is_network_activation = true; } @@ -1348,6 +1356,29 @@ function _plugins_loaded() { } } + function _run_garbage_collector() { + if ( true !== fs_get_optional_constant( 'WP_FS__ENABLE_GARBAGE_COLLECTOR', true ) ) { + return; + } + + if ( ! $this->is_user_in_admin() ) { + return; + } + + require_once WP_FS__DIR_INCLUDES . '/class-fs-lock.php'; + + $lock = new FS_Lock( 'garbage_collection' ); + + if ( $lock->is_locked() ) { + return; + } + + // Create a 1-day lock. + $lock->lock( WP_FS__TIME_24_HOURS_IN_SEC ); + + FS_Garbage_Collector::instance()->clean(); + } + /** * Opens the support forum subemenu item in a new browser page. * @@ -1443,6 +1474,8 @@ private function register_constructor_hooks() { } } + add_action( 'plugins_loaded', array( &$this, '_run_garbage_collector' ) ); + if ( ! self::is_ajax() ) { if ( ! $this->is_addon() ) { add_action( 'init', array( &$this, '_add_default_submenu_items' ), WP_FS__LOWEST_PRIORITY ); @@ -1531,8 +1564,8 @@ private function register_constructor_hooks() { ); $this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) ); - add_action( 'admin_init', array( &$this, '_add_trial_notice' ) ); - add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) ); + add_action( 'admin_init', array( &$this, '_add_trial_notice' ) ); // @phpstan-ignore-line + add_action( 'admin_init', array( &$this, '_add_affiliate_program_notice' ) ); // @phpstan-ignore-line add_action( 'admin_enqueue_scripts', array( &$this, '_enqueue_common_css' ) ); /** @@ -1550,6 +1583,8 @@ private function register_constructor_hooks() { ) { add_action( 'admin_init', array( &$this, 'connect_again' ) ); } + + FS_DebugManager::register_hooks(); } /** @@ -1642,7 +1677,7 @@ static function _remove_fs_updates_from_plugin_install_page( $updates, $transien * @author Leo Fajardo (@leorw) * @since 2.2.3 * - * @return string + * @return void */ static function _prepend_fs_allow_updater_and_dialog_flag_url_param() { $slug_basename_map = array(); @@ -2668,7 +2703,7 @@ static function is_deactivation_snoozed() { * @author Vova Feldman (@svovaf) * @since 2.4.3 */ - private static function reset_deactivation_snoozing( $period = 0 ) { + public static function reset_deactivation_snoozing( $period = 0 ) { $value = ( 0 === $period ) ? null : 'true'; if ( ! is_multisite() || fs_is_network_admin() ) { @@ -3089,11 +3124,8 @@ private function is_matching_url( $sub_url, $url = '' ) { return false; } - $url_params = array(); - parse_str( parse_url( $url, PHP_URL_QUERY ), $url_params ); - - $sub_url_params = array(); - parse_str( parse_url( $sub_url, PHP_URL_QUERY ), $sub_url_params ); + $url_params = fs_parse_url_params( $url ); + $sub_url_params = fs_parse_url_params( $sub_url ); foreach ( $sub_url_params as $key => $val ) { if ( ! isset( $url_params[ $key ] ) || $val != $url_params[ $key ] ) { @@ -3388,20 +3420,7 @@ private static function _load_required_static() { self::$_global_admin_notices = FS_Admin_Notices::instance( 'global' ); - if ( ! WP_FS__DEMO_MODE ) { - add_action( ( fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu', array( - 'Freemius', - '_add_debug_section' - ) ); - } - - add_action( "wp_ajax_fs_toggle_debug_mode", array( 'Freemius', '_toggle_debug_mode' ) ); - - self::add_ajax_action_static( 'get_debug_log', array( 'Freemius', '_get_debug_log' ) ); - - self::add_ajax_action_static( 'get_db_option', array( 'Freemius', '_get_db_option' ) ); - - self::add_ajax_action_static( 'set_db_option', array( 'Freemius', '_set_db_option' ) ); + FS_DebugManager::load_required_static(); if ( 0 == did_action( 'plugins_loaded' ) ) { add_action( 'plugins_loaded', array( 'Freemius', '_load_textdomain' ), 1 ); @@ -3428,6 +3447,14 @@ private static function _load_required_static() { self::$_statics_loaded = true; } + public static function get_static_logger() { + return self::$_static_logger; + } + + public static function get_accounts() { + return self::$_accounts; + } + #-------------------------------------------------------------------------------- #region Clone #-------------------------------------------------------------------------------- @@ -3492,6 +3519,28 @@ function is_clone( $only_if_manual_resolution_is_not_hidden = false ) { * @return string */ static function get_unfiltered_site_url( $blog_id = null, $strip_protocol = false, $add_trailing_slash = false ) { + $url = ( ! is_multisite() && defined( 'WP_SITEURL' ) ) ? WP_SITEURL : self::get_site_url_from_wp_option( $blog_id ); + + if ( $strip_protocol ) { + $url = fs_strip_url_protocol( $url ); + } + + if ( $add_trailing_slash ) { + $url = trailingslashit( $url ); + } + + return $url; + } + + /** + * @author Leo Fajardo (@leorw) + * @since 2.6.0 + * + * @param int|null $blog_id + * + * @return string + */ + private static function get_site_url_from_wp_option( $blog_id = null ) { global $wp_filter; $site_url_filters = array( @@ -3518,14 +3567,6 @@ static function get_unfiltered_site_url( $blog_id = null, $strip_protocol = fals } } - if ( $strip_protocol ) { - $url = fs_strip_url_protocol( $url ); - } - - if ( $add_trailing_slash ) { - $url = trailingslashit( $url ); - } - return $url; } @@ -3582,7 +3623,7 @@ function _handle_long_term_duplicate() { * * @since 2.1.3 */ - private static function migrate_options_to_network() { + public static function migrate_options_to_network() { self::migrate_accounts_to_network(); // Migrate API options from site level to network level. @@ -3622,325 +3663,6 @@ static function _load_textdomain() { #endregion - #---------------------------------------------------------------------------------- - #region Debugging - #---------------------------------------------------------------------------------- - - /** - * @author Vova Feldman (@svovaf) - * @since 1.0.8 - */ - static function _add_debug_section() { - if ( ! is_super_admin() ) { - // Add debug page only for super-admins. - return; - } - - self::$_static_logger->entrance(); - - $title = sprintf( '%s [v.%s]', fs_text_inline( 'Freemius Debug' ), WP_FS__SDK_VERSION ); - - if ( WP_FS__DEV_MODE ) { - // Add top-level debug menu item. - $hook = FS_Admin_Menu_Manager::add_page( - $title, - $title, - 'manage_options', - 'freemius', - array( 'Freemius', '_debug_page_render' ) - ); - } else { - // Add hidden debug page. - $hook = FS_Admin_Menu_Manager::add_subpage( - '', - $title, - $title, - 'manage_options', - 'freemius', - array( 'Freemius', '_debug_page_render' ) - ); - } - - if ( ! empty( $hook ) ) { - add_action( "load-$hook", array( 'Freemius', '_debug_page_actions' ) ); - } - } - - /** - * @author Vova Feldman (@svovaf) - * @since 1.1.7.3 - */ - static function _toggle_debug_mode() { - check_admin_referer( 'fs_toggle_debug_mode' ); - - if ( ! is_super_admin() ) { - return; - } - - $is_on = fs_request_get( 'is_on', false, 'post' ); - - if ( fs_request_is_post() && in_array( $is_on, array( 0, 1 ) ) ) { - update_option( 'fs_debug_mode', $is_on ); - - // Turn on/off storage logging. - FS_Logger::_set_storage_logging( ( 1 == $is_on ) ); - } - - exit; - } - - /** - * @author Vova Feldman (@svovaf) - * @since 1.2.1.6 - */ - static function _get_debug_log() { - check_admin_referer( 'fs_get_debug_log' ); - - if ( ! is_super_admin() ) { - return; - } - - $limit = min( ! empty( $_POST['limit'] ) ? absint( $_POST['limit'] ) : 200, 200 ); - $offset = min( ! empty( $_POST['offset'] ) ? absint( $_POST['offset'] ) : 200, 200 ); - - $logs = FS_Logger::load_db_logs( - fs_request_get( 'filters', false, 'post' ), - $limit, - $offset - ); - - self::shoot_ajax_success( $logs ); - } - - /** - * @author Vova Feldman (@svovaf) - * @since 1.2.1.7 - */ - static function _get_db_option() { - check_admin_referer( 'fs_get_db_option' ); - - $option_name = fs_request_get( 'option_name' ); - - if ( ! is_super_admin() || - ! fs_starts_with( $option_name, 'fs_' ) - ) { - self::shoot_ajax_failure(); - } - - $value = get_option( $option_name ); - - $result = array( - 'name' => $option_name, - ); - - if ( false !== $value ) { - if ( ! is_string( $value ) ) { - $value = json_encode( $value ); - } - - $result['value'] = $value; - } - - self::shoot_ajax_success( $result ); - } - - /** - * @author Vova Feldman (@svovaf) - * @since 1.2.1.7 - */ - static function _set_db_option() { - check_admin_referer( 'fs_set_db_option' ); - - $option_name = fs_request_get( 'option_name' ); - - if ( ! is_super_admin() || - ! fs_starts_with( $option_name, 'fs_' ) - ) { - self::shoot_ajax_failure(); - } - - $option_value = fs_request_get_raw( 'option_value' ); - - if ( ! empty( $option_value ) ) { - update_option( $option_name, $option_value ); - } - - self::shoot_ajax_success(); - } - - /** - * @author Vova Feldman (@svovaf) - * @since 1.0.8 - */ - static function _debug_page_actions() { - self::_clean_admin_content_section(); - - if ( fs_request_is_action( 'restart_freemius' ) ) { - check_admin_referer( 'restart_freemius' ); - - if ( ! is_multisite() ) { - // Clear accounts data. - self::$_accounts->clear( null, true ); - } else { - $sites = self::get_sites(); - foreach ( $sites as $site ) { - $blog_id = self::get_site_blog_id( $site ); - self::$_accounts->clear( $blog_id, true ); - } - - // Clear network level storage. - self::$_accounts->clear( true, true ); - } - - // Clear SDK reference cache. - delete_option( 'fs_active_plugins' ); - } else if ( fs_request_is_action( 'clear_updates_data' ) ) { - check_admin_referer( 'clear_updates_data' ); - - if ( ! is_multisite() ) { - set_site_transient( 'update_plugins', null ); - set_site_transient( 'update_themes', null ); - } else { - $current_blog_id = get_current_blog_id(); - - $sites = self::get_sites(); - foreach ( $sites as $site ) { - switch_to_blog( self::get_site_blog_id( $site ) ); - - set_site_transient( 'update_plugins', null ); - set_site_transient( 'update_themes', null ); - } - - switch_to_blog( $current_blog_id ); - } - } else if ( fs_request_is_action( 'reset_deactivation_snoozing' ) ) { - check_admin_referer( 'reset_deactivation_snoozing' ); - - self::reset_deactivation_snoozing(); - } else if ( fs_request_is_action( 'simulate_trial' ) ) { - check_admin_referer( 'simulate_trial' ); - - $fs = freemius( fs_request_get( 'module_id' ) ); - - // Update SDK install to at least 24 hours before. - $fs->_storage->install_timestamp = ( time() - WP_FS__TIME_24_HOURS_IN_SEC ); - // Unset the trial shown timestamp. - unset( $fs->_storage->trial_promotion_shown ); - } else if ( fs_request_is_action( 'simulate_network_upgrade' ) ) { - check_admin_referer( 'simulate_network_upgrade' ); - - $fs = freemius( fs_request_get( 'module_id' ) ); - - self::set_network_upgrade_mode( $fs->_storage ); - } else if ( fs_request_is_action( 'delete_install' ) ) { - check_admin_referer( 'delete_install' ); - - self::_delete_site_by_slug( - fs_request_get( 'slug' ), - fs_request_get( 'module_type' ), - true, - fs_request_get( 'blog_id', null ) - ); - } else if ( fs_request_is_action( 'delete_user' ) ) { - check_admin_referer( 'delete_user' ); - - self::delete_user( fs_request_get( 'user_id' ) ); - } else if ( fs_request_is_action( 'download_logs' ) ) { - check_admin_referer( 'download_logs' ); - - $download_url = FS_Logger::download_db_logs( - fs_request_get( 'filters', false, 'post' ) - ); - - if ( false === $download_url ) { - wp_die( 'Oops... there was an error while generating the logs download file. Please try again and if it doesn\'t work contact support@freemius.com.' ); - } - - fs_redirect( $download_url ); - } else if ( fs_request_is_action( 'migrate_options_to_network' ) ) { - check_admin_referer( 'migrate_options_to_network' ); - - self::migrate_options_to_network(); - } - } - - /** - * @author Leo Fajardo (@leorw) - * @since 2.5.0 - * - * @return array - */ - static function get_all_modules_sites() { - self::$_static_logger->entrance(); - - $sites_by_type = array( - WP_FS__MODULE_TYPE_PLUGIN => array(), - WP_FS__MODULE_TYPE_THEME => array(), - ); - - $module_types = array_keys( $sites_by_type ); - - if ( ! is_multisite() ) { - foreach ( $module_types as $type ) { - $sites_by_type[ $type ] = self::get_all_sites( $type ); - - foreach ( $sites_by_type[ $type ] as $slug => $install ) { - $sites_by_type[ $type ][ $slug ] = array( $install ); - } - } - } else { - $sites = self::get_sites(); - - foreach ( $sites as $site ) { - $blog_id = self::get_site_blog_id( $site ); - - foreach ( $module_types as $type ) { - $installs = self::get_all_sites( $type, $blog_id ); - - foreach ( $installs as $slug => $install ) { - if ( ! isset( $sites_by_type[ $type ][ $slug ] ) ) { - $sites_by_type[ $type ][ $slug ] = array(); - } - - $install->blog_id = $blog_id; - - $sites_by_type[ $type ][ $slug ][] = $install; - } - - } - } - } - - return $sites_by_type; - } - - /** - * @author Vova Feldman (@svovaf) - * @since 1.0.8 - */ - static function _debug_page_render() { - self::$_static_logger->entrance(); - - $all_modules_sites = self::get_all_modules_sites(); - - $licenses_by_module_type = self::get_all_licenses_by_module_type(); - - $vars = array( - 'plugin_sites' => $all_modules_sites[ WP_FS__MODULE_TYPE_PLUGIN ], - 'theme_sites' => $all_modules_sites[ WP_FS__MODULE_TYPE_THEME ], - 'users' => self::get_all_users(), - 'addons' => self::get_all_addons(), - 'account_addons' => self::get_all_account_addons(), - 'plugin_licenses' => $licenses_by_module_type[ WP_FS__MODULE_TYPE_PLUGIN ], - 'theme_licenses' => $licenses_by_module_type[ WP_FS__MODULE_TYPE_THEME ] - ); - - fs_enqueue_local_style( 'fs_debug', '/admin/debug.css' ); - fs_require_once_template( 'debug.php', $vars ); - } - - #endregion - #---------------------------------------------------------------------------------- #region Connectivity Issues #---------------------------------------------------------------------------------- @@ -4080,7 +3802,7 @@ private function should_turn_fs_on( $is_update = true ) { $max = 100; if ( function_exists( 'random_int' ) ) { - $random = random_int( $min, $max ); + $random = random_int( $min, $max ); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.random_intFound } else { $random = rand( $min, $max ); } @@ -4130,13 +3852,17 @@ function has_api_connectivity( $flush_if_no_connectivity = false ) { ! empty( $this->_storage->connectivity_test ) && isset( $this->_storage->connectivity_test['is_active'] ) ) { - $is_active = $this->_storage->connectivity_test['is_active']; + $is_connected = isset( $this->_storage->connectivity_test['is_connected'] ) ? + $this->_storage->connectivity_test['is_connected'] : + null; + $is_active = ( $this->_storage->connectivity_test['is_active'] || is_object( $this->_site ) ); } else { - $is_active = $this->should_turn_fs_on( $this->apply_filters( 'is_plugin_update', $this->is_plugin_update() ) ); - - $this->store_connectivity_info( (object) array( 'is_active' => $is_active ), null ); + $is_connected = null; + $is_active = $this->should_turn_fs_on( $this->apply_filters( 'is_plugin_update', $this->is_plugin_update() ) ); } + $this->store_connectivity_info( (object) array( 'is_active' => $is_active ), $is_connected ); + if ( $is_active ) { $this->_is_on = true; } @@ -4399,7 +4125,22 @@ static function is_valid_email( $email ) { } // Get the UTF encoded domain name. - $domain = idn_to_ascii( $parts[1] ) . '.'; + /** + * @note - The check of `defined('...')` is there to account for PHP servers compiled with some older version of ICU where the constants are not defined. + * @author - @swashata + */ + $is_new_idn_available = ( + version_compare( PHP_VERSION, '5.6.40') > 0 && + defined( 'IDNA_DEFAULT' ) && + defined( 'INTL_IDNA_VARIANT_UTS46' ) + ); + if ( $is_new_idn_available ) { + $domain = idn_to_ascii( $parts[1], IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46 ); + } else { + $domain = idn_to_ascii( $parts[1] ); // phpcs:ignore PHPCompatibility.ParameterValues.NewIDNVariantDefault.NotSet + } + + $domain = $domain . '.'; return ( checkdnsrr( $domain, 'MX' ) || checkdnsrr( $domain, 'A' ) ); } @@ -5425,7 +5166,12 @@ private function parse_settings( &$plugin_info ) { 'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ), 'bundle_id' => $this->get_option( $plugin_info, 'bundle_id', null ), 'bundle_public_key' => $this->get_option( $plugin_info, 'bundle_public_key', null ), - 'opt_in_moderation' => $this->get_option( $plugin_info, 'opt_in', null ), + 'opt_in_moderation' => $this->get_option( + $plugin_info, + 'opt_in', + // For backward compatibility, we support both parameter names: opt_in and opt_in_moderation. + $this->get_option( $plugin_info, 'opt_in_moderation', null ) + ), ) ); if ( $plugin->is_updated() ) { @@ -5615,19 +5361,17 @@ function _after_code_type_change() { $this->_cache->expire( 'tabs_stylesheets' ); } - if ( $this->is_registered() ) { - if ( ! $this->is_addon() ) { - add_action( - is_admin() ? 'admin_init' : 'init', - array( &$this, '_plugin_code_type_changed' ) - ); - } + if ( ! $this->is_addon() ) { + add_action( + is_admin() ? 'admin_init' : 'init', + array( &$this, '_plugin_code_type_changed' ) + ); + } - if ( $this->is_premium() ) { - // Purge cached payments after switching to the premium version. - // @todo This logic doesn't handle purging the cache for serviceware module upgrade. - $this->get_api_user_scope()->purge_cache( "/plugins/{$this->_module_id}/payments.json?include_addons=true" ); - } + if ( $this->is_registered() && $this->is_premium() ) { + // Purge cached payments after switching to the premium version. + // @todo This logic doesn't handle purging the cache for serviceware module upgrade. + $this->get_api_user_scope()->purge_cache( "/plugins/{$this->_module_id}/payments.json?include_addons=true" ); } } @@ -5691,8 +5435,10 @@ function _plugin_code_type_changed() { } } - // Schedule code type changes event. - $this->schedule_install_sync(); + if ( $this->is_registered() ) { + // Schedule code type changes event. + $this->schedule_install_sync(); + } /** * Unregister the uninstall hook for the other version of the plugin (with different code type) to avoid @@ -7275,7 +7021,7 @@ function _enqueue_connect_essentials() { wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'json2' ); - fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.js' ); fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); } @@ -7414,31 +7160,6 @@ static function _delete_site_by_slug( $slug, $module_type, $store = true, $blog_ return $install_id; } - /** - * Delete user. - * - * @author Vova Feldman (@svovaf) - * @since 2.0.0 - * - * @param number $user_id - * @param bool $store - * - * @return false|int The user ID if deleted. Otherwise, FALSE (when install not exist). - */ - private static function delete_user( $user_id, $store = true ) { - $users = self::get_all_users(); - - if ( ! is_array( $users ) || ! isset( $users[ $user_id ] ) ) { - return false; - } - - unset( $users[ $user_id ] ); - - self::$_accounts->set_option( 'users', $users, $store ); - - return $user_id; - } - /** * Delete plugin's plans information. * @@ -9990,7 +9711,7 @@ function _uninstall_plugin_event( $check_user = true ) { * @param string $is_premium * @param string $caller * - * @return string + * @return void */ function set_basename( $is_premium, $caller ) { $basename = plugin_basename( $caller ); @@ -10574,7 +10295,7 @@ static function get_all_users() { * * @return array[string]FS_Site */ - private static function get_all_sites( + public static function get_all_sites( $module_type = WP_FS__MODULE_TYPE_PLUGIN, $blog_id = null, $is_backup = false @@ -10603,7 +10324,7 @@ private static function get_all_sites( * * @return mixed */ - private static function get_account_option( $option_name, $module_type = null, $network_level_or_blog_id = null ) { + public static function get_account_option( $option_name, $module_type = null, $network_level_or_blog_id = null ) { if ( ! is_null( $module_type ) && WP_FS__MODULE_TYPE_PLUGIN !== $module_type ) { $option_name = $module_type . '_' . $option_name; } @@ -10734,36 +10455,6 @@ private static function get_all_licenses( $module_id = null ) { return $licenses; } - /** - * @author Leo Fajardo (@leorw) - * @since 2.0.0 - * - * @return array - */ - private static function get_all_licenses_by_module_type() { - $licenses = self::get_account_option( 'all_licenses' ); - - $licenses_by_module_type = array( - WP_FS__MODULE_TYPE_PLUGIN => array(), - WP_FS__MODULE_TYPE_THEME => array() - ); - - if ( ! is_array( $licenses ) ) { - return $licenses_by_module_type; - } - - foreach ( $licenses as $module_id => $module_licenses ) { - $fs = self::get_instance_by_id( $module_id ); - if ( false === $fs ) { - continue; - } - - $licenses_by_module_type[ $fs->_module_type ] = array_merge( $licenses_by_module_type[ $fs->_module_type ], $module_licenses ); - } - - return $licenses_by_module_type; - } - /** * @author Leo Fajardo (@leorw) * @since 2.0.0 @@ -10906,7 +10597,7 @@ private static function get_all_updates() { * * @return array|false */ - private static function get_all_addons() { + public static function get_all_addons() { $addons = self::maybe_get_entities_account_option( 'addons', array() ); if ( ! is_array( $addons ) ) { @@ -10922,7 +10613,7 @@ private static function get_all_addons() { * * @return number[]|false */ - private static function get_all_account_addons() { + public static function get_all_account_addons() { $addons = self::$_accounts->get_option( 'account_addons', array() ); if ( ! is_array( $addons ) ) { @@ -11039,6 +10730,16 @@ function get_site() { return $this->_site; } + /** + * @author Daniele Alessandra (@danielealessandra) + * @return FS_Storage + * @since 2.6.2 + * + */ + public function get_storage() { + return $this->_storage; + } + /** * @author Leo Fajardo (@leorw) * @since 2.5.0 @@ -12416,7 +12117,7 @@ private function activate_license_on_many_installs( $install_2_blog_map = array(); foreach ( $blog_2_install_map as $blog_id => $install ) { - $params[] = array( 'id' => $install->id ); + $params[] = array( 'id' => $install->id, 'url' => $install->url ); $install_2_blog_map[ $install->id ] = $blog_id; } @@ -13676,6 +13377,18 @@ function _activate_license_ajax_action() { $license_key = trim( fs_request_get_raw( 'license_key' ) ); + if ( empty( $license_key ) ) { + $license_id = trim( fs_request_get_raw( 'license_id' ) ); + + if ( FS_Plugin_License::is_valid_id( $license_id ) ) { + $license = $this->_get_license_by_id( $license_id, false ); + + if ( is_object( $license ) ) { + $license_key = $license->secret_key; + } + } + } + if ( empty( $license_key ) ) { exit; } @@ -14080,15 +13793,21 @@ private function activate_license( } } + $is_connected = null; + if ( true !== $result && ! FS_Api::is_api_result_entity( $result ) ) { if ( FS_Api::is_blocked( $result ) ) { $result->error->message = $this->generate_api_blocked_notice_message_from_result( $result ); + + $is_connected = false; } $error = FS_Api::is_api_error_object( $result ) ? $result->error->message : var_export( $result, true ); } else { + $is_connected = true; + $fs->network_upgrade_mode_completed(); $fs->_user = $user; @@ -14105,6 +13824,8 @@ private function activate_license( $fs->get_parent_instance()->get_account_url() : $fs->get_after_activation_url( 'after_connect_url' ); } + + $fs->update_connectivity_info( $is_connected ); } else { $next_page = $fs->opt_in( false, @@ -14762,9 +14483,15 @@ function _submit_affiliate_application() { } if ( ! $this->is_registered() ) { + $email_address = isset( $affiliate['email'] ) ? $affiliate['email'] : ''; + + if ( ! is_email( $email_address ) ) { + self::shoot_ajax_failure('Invalid email address.'); + } + // Opt in but don't track usage. $next_page = $this->opt_in( - false, + $email_address, false, false, false, @@ -14947,6 +14674,20 @@ function pricing_url( $billing_cycle = WP_FS__PERIOD_ANNUALLY, $is_trial = false $this->_parent->addon_url( $this->_slug ) : $this->_get_admin_page_url( 'pricing', $params ); + return $this->get_pricing_url_with_filter( $url ); + } + + /** + * Retrieves the filtered pricing URL. + * + * @author Leo Fajardo (@leorw) + * @since 2.7.4 + * + * @param string $url + * + * @return string + */ + private function get_pricing_url_with_filter( $url ) { return $this->apply_filters( 'pricing_url', $url ); } @@ -16697,7 +16438,7 @@ private static function decrypt_entity( FS_Entity $entity ) { * * @return FS_User|false */ - static function _get_user_by_email( $email ) { + public static function _get_user_by_email( $email ) { self::$_static_logger->entrance(); $email = trim( strtolower( $email ) ); @@ -17871,7 +17612,7 @@ private function install_with_new_user( * @param bool $trial_plan_id * @param bool $redirect * - * @return string If redirect is `false`, returns the next page the user should be redirected to. + * @return void */ private function install_many_pending_with_user( $user_id, @@ -19073,18 +18814,34 @@ private function add_submenu_items() { } } - // Add upgrade/pricing page. - $this->add_submenu_item( - $pricing_cta_text . '  ' . ( is_rtl() ? $this->get_text_x_inline( '←', 'ASCII arrow left icon', 'symbol_arrow-left' ) : $this->get_text_x_inline( '➤', 'ASCII arrow right icon', 'symbol_arrow-right' ) ), - array( &$this, '_pricing_page_render' ), - $this->get_plugin_name() . ' – ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ), - 'manage_options', - 'pricing', - 'Freemius::_clean_admin_content_section', - WP_FS__LOWEST_PRIORITY, - ( $add_submenu_items && $show_pricing ), - $pricing_class - ); + $custom_pricing_url = $this->get_pricing_url_with_filter( null ); + $pricing_menu_title = $pricing_cta_text . '  ' . ( is_rtl() ? $this->get_text_x_inline( '←', 'ASCII arrow left icon', 'symbol_arrow-left' ) : $this->get_text_x_inline( '➤', 'ASCII arrow right icon', 'symbol_arrow-right' ) ); + $show_pricing_submenu_item = ( $add_submenu_items && $show_pricing ); + + // Add upgrade/pricing submenu item. + if ( ! is_null( $custom_pricing_url ) ) { + $this->add_submenu_link_item( + $pricing_menu_title, + $custom_pricing_url, + 'pricing', + 'manage_options', + WP_FS__LOWEST_PRIORITY, + $show_pricing_submenu_item, + $pricing_class + ); + } else { + $this->add_submenu_item( + $pricing_menu_title, + array( &$this, '_pricing_page_render' ), + $this->get_plugin_name() . ' – ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ), + 'manage_options', + 'pricing', + 'Freemius::_clean_admin_content_section', + WP_FS__LOWEST_PRIORITY, + $show_pricing_submenu_item, + $pricing_class + ); + } } } @@ -19373,6 +19130,7 @@ function add_submenu_item( * @param string $capability * @param int $priority * @param bool $show_submenu + * @param string $class */ function add_submenu_link_item( $menu_title, @@ -19380,7 +19138,8 @@ function add_submenu_link_item( $menu_slug = false, $capability = 'read', $priority = WP_FS__DEFAULT_PRIORITY, - $show_submenu = true + $show_submenu = true, + $class = '' ) { $this->_logger->entrance( 'Title = ' . $menu_title . '; Url = ' . $url ); @@ -19394,7 +19153,8 @@ function add_submenu_link_item( $menu_slug, $capability, $priority, - $show_submenu + $show_submenu, + $class ); return; @@ -19414,6 +19174,7 @@ function add_submenu_link_item( 'render_function' => 'fs_dummy', 'before_render_function' => '', 'show_submenu' => $show_submenu, + 'class' => $class, ); } @@ -20730,7 +20491,7 @@ private function _fetch_newer_version( $plugin_id = false, $flush = true, $expir * * @return bool|FS_Plugin_Tag */ - function get_update( $plugin_id = false, $flush = true, $expiration = WP_FS__TIME_24_HOURS_IN_SEC, $newer_than = false ) { + function get_update( $plugin_id = false, $flush = true, $expiration = FS_Plugin_Updater::UPDATES_CHECK_CACHE_EXPIRATION, $newer_than = false ) { $this->_logger->entrance(); if ( ! is_numeric( $plugin_id ) ) { @@ -21262,7 +21023,9 @@ private function _sync_plugin_license( /** * Sync licenses. Pass the site's license ID so that the foreign licenses will be fetched if the license * associated with that ID is not included in the user's licenses collection. + * Save previous value to manage remote license renewals. */ + $was_license_expired_before_sync = is_object( $this->_license ) && $this->_license->is_expired(); $this->_sync_licenses( $site->license_id, ( $is_context_single_site ? @@ -21396,6 +21159,14 @@ private function _sync_plugin_license( $plan_change = 'expired'; } } + } else if ( $was_license_expired_before_sync ) { + /** + * If license was expired but it is not anymore. + * + * + * @author Daniele Alessandra (@danielealessandra) + */ + $plan_change = 'extended'; } } @@ -21473,6 +21244,12 @@ private function _sync_plugin_license( 'license_expired', ) ); break; + case 'extended': + $this->_admin_notices->remove_sticky( array( + 'trial_expired', + 'license_expired', + ) ); + break; case 'changed': $this->_admin_notices->add_sticky( sprintf( @@ -22383,7 +22160,7 @@ private function check_updates( $background = false, $plugin_id = false, $flush = true, - $expiration = WP_FS__TIME_24_HOURS_IN_SEC, + $expiration = FS_Plugin_Updater::UPDATES_CHECK_CACHE_EXPIRATION, $newer_than = false ) { $this->_logger->entrance(); @@ -22691,7 +22468,7 @@ private function complete_change_owner() { $this->_set_account( $user, $this->_site ); $remove_user = true; - $all_modules_sites = self::get_all_modules_sites(); + $all_modules_sites = FS_DebugManager::get_all_modules_sites(); foreach ( $all_modules_sites as $sites_by_module_type ) { foreach ( $sites_by_module_type as $sites_by_slug ) { @@ -23264,6 +23041,18 @@ private function _handle_account_edits() { } } + /** + * Adds CSS classes for the body tag in the admin. + * + * @param string $classes Space-separated string of class names. + * + * @return string $classes FS Admin body tag class names. + */ + public function fs_addons_body_class( $classes ) { + $classes .= ' plugins-php'; + return $classes; + } + /** * Account page resources load. * @@ -23280,14 +23069,7 @@ function _account_page_load() { if ( $this->has_addons() ) { wp_enqueue_script( 'plugin-install' ); add_thickbox(); - - function fs_addons_body_class( $classes ) { - $classes .= ' plugins-php'; - - return $classes; - } - - add_filter( 'admin_body_class', 'fs_addons_body_class' ); + add_filter( 'admin_body_class', array( $this, 'fs_addons_body_class' ) ); } if ( $this->has_paid_plan() && @@ -23422,14 +23204,7 @@ function _addons_page_load() { wp_enqueue_script( 'plugin-install' ); add_thickbox(); - - function fs_addons_body_class( $classes ) { - $classes .= ' plugins-php'; - - return $classes; - } - - add_filter( 'admin_body_class', 'fs_addons_body_class' ); + add_filter( 'admin_body_class', array( $this, 'fs_addons_body_class' ) ); if ( ! $this->is_registered() && $this->is_org_repo_compliant() ) { $this->_admin_notices->add( @@ -24027,7 +23802,7 @@ function _add_trial_notice() { if ( $this->is_registered() ) { // If opted-in, override trial with up to date data from API. - $trial_plans = FS_Plan_Manager::instance()->get_trial_plans( $this->_plans ); + $trial_plans = FS_Plan_Manager::instance()->get_visible_trial_plans( $this->_plans ); $trial_plans_count = count( $trial_plans ); if ( 0 === $trial_plans_count ) { @@ -24776,27 +24551,6 @@ private function add_after_plan_activation_or_upgrade_instructions_notice( $is_u ); } - /** - * @author Leo Fajardo (@leorw) - * @since 2.1.0 - * - * @param string $url - * @param array $request - */ - private static function enrich_request_for_debug( &$url, &$request ) { - if ( WP_FS__DEBUG_SDK || isset( $_COOKIE['XDEBUG_SESSION'] ) ) { - $url = add_query_arg( 'XDEBUG_SESSION_START', rand( 0, 9999999 ), $url ); - $url = add_query_arg( 'XDEBUG_SESSION', 'PHPSTORM', $url ); - - $request['cookies'] = array( - new WP_Http_Cookie( array( - 'name' => 'XDEBUG_SESSION', - 'value' => 'PHPSTORM', - ) ) - ); - } - } - /** * @author Leo Fajardo (@leorw) * @since 2.1.0 @@ -24826,7 +24580,7 @@ static function safe_remote_post( if ( false === $response ) { if ( $maybe_enrich_request_for_debug ) { - self::enrich_request_for_debug( $url, $request ); + FS_DebugManager::enrich_request_for_debug( $url, $request ); } if ( ! isset( $request['method'] ) ) { @@ -25397,6 +25151,12 @@ function _add_tabs_before_content() { return false; } + $tabs_html = $this->get_tabs_html(); + + if ( empty( $tabs_html ) ) { + return false; + } + /** * Enqueue the original stylesheets that are included in the * theme settings page. That way, if the theme settings has @@ -25411,7 +25171,7 @@ function _add_tabs_before_content() { } // Cut closing tag. - echo substr( trim( $this->get_tabs_html() ), 0, - 6 ); + echo substr( trim( $tabs_html ), 0, - 6 ); return true; } diff --git a/freemius/includes/class-fs-api.php b/freemius/includes/class-fs-api.php index ef56fad..62fae1c 100755 --- a/freemius/includes/class-fs-api.php +++ b/freemius/includes/class-fs-api.php @@ -318,9 +318,12 @@ function get( $path = '/', $flush = false, $expiration = WP_FS__TIME_24_HOURS_IN $flush = true; } - $cached_result = self::$_cache->get( $cache_key ); + $has_valid_cache = self::$_cache->has_valid( $cache_key, $expiration ); + $cached_result = $has_valid_cache ? + self::$_cache->get( $cache_key ) : + null; - if ( $flush || ! self::$_cache->has_valid( $cache_key, $expiration ) ) { + if ( $flush || is_null( $cached_result ) ) { $result = $this->call( $path ); if ( ! is_object( $result ) || isset( $result->error ) ) { diff --git a/freemius/includes/class-fs-garbage-collector.php b/freemius/includes/class-fs-garbage-collector.php new file mode 100755 index 0000000..a161170 --- /dev/null +++ b/freemius/includes/class-fs-garbage-collector.php @@ -0,0 +1,439 @@ + Map of product slugs to their last load timestamp, only for products that are not active. + */ + private $_gc_timestamp; + + /** + * @var array> Map of product slugs to their data, as stored by the primary storage of `Freemius` class. + */ + private $_storage_data; + + function __construct( FS_Options $_accounts, $option_names, $type ) { + $this->_accounts = $_accounts; + $this->_options_names = $option_names; + $this->_type = $type; + $this->_plural_type = ( $type . 's' ); + } + + function clean() { + $this->_gc_timestamp = $this->_accounts->get_option( 'gc_timestamp', array() ); + $this->_storage_data = $this->_accounts->get_option( $this->_type . '_data', array() ); + + $options = $this->load_options(); + $has_updated_option = false; + + $filtered_products = $this->get_filtered_products(); + $products_to_clean = $filtered_products['products_to_clean']; + $active_products_by_id_map = $filtered_products['active_products_by_id_map']; + + foreach( $products_to_clean as $product ) { + $slug = $product->slug; + + // Clear the product's data. + foreach( $options as $option_name => $option ) { + $updated = false; + + /** + * We expect to deal with only array like options here. + * @todo - Refactor this to create dedicated GC classes for every option, then we can make the code mode predictable. + * For example, depending on data integrity of `plugins` we can still miss something entirely in the `plugin_data` or vice-versa. + * A better algorithm is to iterate over all options individually in separate classes and check against primary storage to see if those can be garbage collected. + * But given the chance of data integrity issue is very low, we let this run for now and gather feedback. + */ + if ( ! is_array( $option ) ) { + continue; + } + + if ( array_key_exists( $slug, $option ) ) { + unset( $option[ $slug ] ); + $updated = true; + } else if ( array_key_exists( "{$slug}:{$this->_type}", $option ) ) { /* admin_notices */ + unset( $option[ "{$slug}:{$this->_type}" ] ); + $updated = true; + } else if ( isset( $product->id ) && array_key_exists( $product->id, $option ) ) { /* all_licenses, add-ons, and id_slug_type_path_map */ + $is_inactive_by_id = ! isset( $active_products_by_id_map[ $product->id ] ); + $is_inactive_by_slug = ( + 'id_slug_type_path_map' === $option_name && + ( + ! isset( $option[ $product->id ]['slug'] ) || + $slug === $option[ $product->id ]['slug'] + ) + ); + + if ( $is_inactive_by_id || $is_inactive_by_slug ) { + unset( $option[ $product->id ] ); + $updated = true; + } + } else if ( /* file_slug_map */ + isset( $product->file ) && + array_key_exists( $product->file, $option ) && + $slug === $option[ $product->file ] + ) { + unset( $option[ $product->file ] ); + $updated = true; + } + + if ( $updated ) { + $this->_accounts->set_option( $option_name, $option ); + + $options[ $option_name ] = $option; + + $has_updated_option = true; + } + } + + // Clear the product's data from the primary storage. + if ( isset( $this->_storage_data[ $slug ] ) ) { + unset( $this->_storage_data[ $slug ] ); + $has_updated_option = true; + } + + // Clear from GC timestamp. + // @todo - This perhaps needs a separate garbage collector for all expired products. But the chance of left-over is very slim. + if ( isset( $this->_gc_timestamp[ $slug ] ) ) { + unset( $this->_gc_timestamp[ $slug ] ); + $has_updated_option = true; + } + } + + $this->_accounts->set_option( 'gc_timestamp', $this->_gc_timestamp ); + $this->_accounts->set_option( $this->_type . '_data', $this->_storage_data ); + + return $has_updated_option; + } + + private function get_all_option_names() { + return array_merge( + array( + 'admin_notices', + 'updates', + 'all_licenses', + 'addons', + 'id_slug_type_path_map', + 'file_slug_map', + ), + $this->_options_names + ); + } + + private function get_products() { + $products = $this->_accounts->get_option( $this->_plural_type, array() ); + + // Fill any missing product found in the primary storage. + // @todo - This wouldn't be needed if we use dedicated GC design for every options. The options themselves would provide such information. + foreach( $this->_storage_data as $slug => $product_data ) { + if ( ! isset( $products[ $slug ] ) ) { + $products[ $slug ] = (object) $product_data; + } + + // This is needed to handle a scenario in which there are duplicate sets of data for the same product, but one of them needs to be removed. + $products[ $slug ] = clone $products[ $slug ]; + + // The reason for having the line above. This also handles a scenario in which the slug is either empty or not empty but incorrect. + $products[ $slug ]->slug = $slug; + } + + $this->update_gc_timestamp( $products ); + + return $products; + } + + private function get_filtered_products() { + $products_to_clean = array(); + $active_products_by_id_map = array(); + + $products = $this->get_products(); + + foreach ( $products as $slug => $product_data ) { + if ( ! is_object( $product_data ) ) { + continue; + } + + if ( $this->is_product_active( $slug ) ) { + $active_products_by_id_map[ $product_data->id ] = true; + continue; + } + + $is_addon = ( ! empty( $product_data->parent_plugin_id ) ); + + if ( ! $is_addon ) { + $products_to_clean[] = $product_data; + } else { + /** + * If add-on, add to the beginning of the array so that add-ons are removed before their parent. This is to prevent an unexpected issue when an add-on exists but its parent was already removed. + */ + array_unshift( $products_to_clean, $product_data ); + } + } + + return array( + 'products_to_clean' => $products_to_clean, + 'active_products_by_id_map' => $active_products_by_id_map, + ); + } + + /** + * @param string $slug + * + * @return bool + */ + private function is_product_active( $slug ) { + $instances = Freemius::_get_all_instances(); + + foreach ( $instances as $instance ) { + if ( $instance->get_slug() === $slug ) { + return true; + } + } + + $expiration_time = fs_get_optional_constant( 'WP_FS__GARBAGE_COLLECTOR_EXPIRATION_TIME_SECS', ( WP_FS__TIME_WEEK_IN_SEC * 4 ) ); + + if ( $this->get_last_load_timestamp( $slug ) > ( time() - $expiration_time ) ) { + // Last activation was within the last 4 weeks. + return true; + } + + return false; + } + + private function load_options() { + $options = array(); + $option_names = $this->get_all_option_names(); + + foreach ( $option_names as $option_name ) { + $options[ $option_name ] = $this->_accounts->get_option( $option_name, array() ); + } + + return $options; + } + + /** + * Updates the garbage collector timestamp, only if it was not already set by the product's primary storage. + * + * @param array $products + * + * @return void + */ + private function update_gc_timestamp( $products ) { + foreach ($products as $slug => $product_data) { + if ( ! is_object( $product_data ) && ! is_array( $product_data ) ) { + continue; + } + + + // If the product is active, we don't need to update the gc_timestamp. + if ( isset( $this->_storage_data[ $slug ]['last_load_timestamp'] ) ) { + continue; + } + + // First try to check if the product is present in the primary storage. If so update that. + if ( isset( $this->_storage_data[ $slug ] ) ) { + $this->_storage_data[ $slug ]['last_load_timestamp'] = time(); + } else if ( ! isset( $this->_gc_timestamp[ $slug ] ) ) { + // If not, fallback to the gc_timestamp, but we don't want to update it more than once. + $this->_gc_timestamp[ $slug ] = time(); + } + } + } + + private function get_last_load_timestamp( $slug ) { + if ( isset( $this->_storage_data[ $slug ]['last_load_timestamp'] ) ) { + return $this->_storage_data[ $slug ]['last_load_timestamp']; + } + + return isset( $this->_gc_timestamp[ $slug ] ) ? + $this->_gc_timestamp[ $slug ] : + // This should never happen, but if it does, let's assume the product is not expired. + time(); + } + } + + class FS_User_Garbage_Collector implements FS_I_Garbage_Collector { + private $_accounts; + + private $_types; + + function __construct( FS_Options $_accounts, array $types ) { + $this->_accounts = $_accounts; + $this->_types = $types; + } + + function clean() { + $users = Freemius::get_all_users(); + + $user_has_install_map = $this->get_user_has_install_map(); + + if ( count( $users ) === count( $user_has_install_map ) ) { + return false; + } + + $products_user_id_license_ids_map = $this->_accounts->get_option( 'user_id_license_ids_map', array() ); + + $has_updated_option = false; + + foreach ( $users as $user_id => $user ) { + if ( ! isset( $user_has_install_map[ $user_id ] ) ) { + unset( $users[ $user_id ] ); + + foreach( $products_user_id_license_ids_map as $product_id => $user_id_license_ids_map ) { + unset( $user_id_license_ids_map[ $user_id ] ); + + if ( empty( $user_id_license_ids_map ) ) { + unset( $products_user_id_license_ids_map[ $product_id ] ); + } else { + $products_user_id_license_ids_map[ $product_id ] = $user_id_license_ids_map; + } + } + + $this->_accounts->set_option( 'users', $users ); + $this->_accounts->set_option( 'user_id_license_ids_map', $products_user_id_license_ids_map ); + + $has_updated_option = true; + } + } + + return $has_updated_option; + } + + private function get_user_has_install_map() { + $user_has_install_map = array(); + + foreach ( $this->_types as $product_type ) { + $option_name = ( WP_FS__MODULE_TYPE_PLUGIN !== $product_type ) ? + "{$product_type}_sites" : + 'sites'; + + $installs = $this->_accounts->get_option( $option_name, array() ); + + foreach ( $installs as $install ) { + $user_has_install_map[ $install->user_id ] = true; + } + } + + return $user_has_install_map; + } + } + + // Main entry-level class. + class FS_Garbage_Collector implements FS_I_Garbage_Collector { + /** + * @var FS_Garbage_Collector + * @since 2.6.0 + */ + private static $_instance; + + /** + * @return FS_Garbage_Collector + */ + static function instance() { + if ( ! isset( self::$_instance ) ) { + self::$_instance = new self(); + } + + return self::$_instance; + } + + #endregion + + private function __construct() { + } + + function clean() { + $_accounts = FS_Options::instance( WP_FS__ACCOUNTS_OPTION_NAME, true ); + + $products_cleaners = $this->get_product_cleaners( $_accounts ); + + $has_cleaned = false; + + foreach ( $products_cleaners as $products_cleaner ) { + if ( $products_cleaner->clean() ) { + $has_cleaned = true; + } + } + + if ( $has_cleaned ) { + $user_cleaner = new FS_User_Garbage_Collector( + $_accounts, + array_keys( $products_cleaners ) + ); + + $user_cleaner->clean(); + } + + // @todo - We need a garbage collector for `all_plugins` and `active_plugins` (and variants of themes). + + // Always store regardless of whether there were cleaned products or not since during the process, the logic may set the last load timestamp of some products. + $_accounts->store(); + } + + /** + * @param FS_Options $_accounts + * + * @return FS_I_Garbage_Collector[] + */ + private function get_product_cleaners( FS_Options $_accounts ) { + /** + * @var FS_I_Garbage_Collector[] $products_cleaners + */ + $products_cleaners = array(); + + $products_cleaners[ WP_FS__MODULE_TYPE_PLUGIN ] = new FS_Product_Garbage_Collector( + $_accounts, + array( + 'sites', + 'plans', + 'plugins', + ), + WP_FS__MODULE_TYPE_PLUGIN + ); + + $products_cleaners[ WP_FS__MODULE_TYPE_THEME ] = new FS_Product_Garbage_Collector( + $_accounts, + array( + 'theme_sites', + 'theme_plans', + 'themes', + ), + WP_FS__MODULE_TYPE_THEME + ); + + return $products_cleaners; + } + } \ No newline at end of file diff --git a/freemius/includes/class-fs-logger.php b/freemius/includes/class-fs-logger.php index 6dde8aa..c5f0c52 100644 --- a/freemius/includes/class-fs-logger.php +++ b/freemius/includes/class-fs-logger.php @@ -32,6 +32,9 @@ class FS_Logger { */ private static $_abspathLength; + /** + * @var FS_Logger[] $LOGGERS + */ private static $LOGGERS = array(); private static $LOG = array(); private static $CNT = 0; @@ -124,7 +127,6 @@ function on() { self::hook_footer(); } - function echo_on() { $this->on(); @@ -320,6 +322,11 @@ public static function _set_storage_logging( $is_on = true ) { $table = "{$wpdb->prefix}fs_logger"; + /** + * Drop logging table in any case. + */ + $result = $wpdb->query( "DROP TABLE IF EXISTS $table;" ); + if ( $is_on ) { /** * Create logging table. @@ -329,7 +336,7 @@ public static function _set_storage_logging( $is_on = true ) { * * @link https://core.trac.wordpress.org/ticket/2695 */ - $result = $wpdb->query( "CREATE TABLE {$table} ( + $result = $wpdb->query( "CREATE TABLE IF NOT EXISTS {$table} ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `process_id` INT UNSIGNED NOT NULL, `user_name` VARCHAR(64) NOT NULL, @@ -348,15 +355,11 @@ public static function _set_storage_logging( $is_on = true ) { KEY `process_logger` (`process_id` ASC, `logger` ASC), KEY `function` (`function` ASC), KEY `type` (`type` ASC))" ); - } else { - /** - * Drop logging table. - */ - $result = $wpdb->query( "DROP TABLE IF EXISTS $table;" ); } if ( false !== $result ) { update_option( 'fs_storage_logger', ( $is_on ? 1 : 0 ) ); + self::$_isStorageLoggingOn = $is_on; } return ( false !== $result ); diff --git a/freemius/includes/class-fs-plugin-updater.php b/freemius/includes/class-fs-plugin-updater.php index e904a08..b348935 100755 --- a/freemius/includes/class-fs-plugin-updater.php +++ b/freemius/includes/class-fs-plugin-updater.php @@ -37,6 +37,8 @@ class FS_Plugin_Updater { private static $_upgrade_basename = null; + const UPDATES_CHECK_CACHE_EXPIRATION = ( WP_FS__TIME_24_HOURS_IN_SEC / 24 ); + #-------------------------------------------------------------------------------- #region Singleton #-------------------------------------------------------------------------------- @@ -104,6 +106,8 @@ private function filters() { if ( ! $this->_fs->has_any_active_valid_license() ) { add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) ); + } else { + add_action( 'admin_footer', array( &$this, '_add_fs_allow_updater_and_dialog_request_param' ) ); } if ( ! WP_FS__IS_PRODUCTION_MODE ) { @@ -127,15 +131,48 @@ private function filters() { } } + /** + * @author Leo Fajardo (@leorw) + * @since 2.7.4 + */ + function _add_fs_allow_updater_and_dialog_request_param() { + if ( ! $this->is_plugin_information_dialog_for_plugin() ) { + return; + } + ?> + + _fs->get_slug() === fs_request_get_raw( 'plugin', false ) + ); + } + /** * @author Leo Fajardo (@leorw) * @since 2.1.4 */ function catch_plugin_information_dialog_contents() { - if ( - 'plugin-information' !== fs_request_get( 'tab', false ) || - $this->_fs->get_slug() !== fs_request_get_raw( 'plugin', false ) - ) { + if ( ! $this->is_plugin_information_dialog_for_plugin() ) { return; } @@ -530,7 +567,7 @@ function pre_set_site_transient_update_plugins_filter( $transient_data ) { $new_version = $this->_fs->get_update( false, fs_request_get_bool( 'force-check' ), - WP_FS__TIME_24_HOURS_IN_SEC / 24, + FS_Plugin_Updater::UPDATES_CHECK_CACHE_EXPIRATION, $current_plugin_version ); @@ -614,7 +651,7 @@ function pre_set_site_transient_update_plugins_filter( $transient_data ) { $slug = $this->_fs->get_slug(); - if ( $this->_fs->is_org_repo_compliant() && $this->_fs->is_freemium() ) { + if ( $this->can_fetch_data_from_wp_org() ) { if ( ! isset( $this->_translation_updates ) ) { $this->_translation_updates = array(); @@ -709,12 +746,7 @@ function get_update_details( FS_Plugin_Tag $new_version ) { * @return bool */ private function is_new_version_premium( FS_Plugin_Tag $new_version ) { - $query_str = parse_url( $new_version->url, PHP_URL_QUERY ); - if ( empty( $query_str ) ) { - return false; - } - - parse_str( $query_str, $params ); + $params = fs_parse_url_params( $new_version->url ); return ( isset( $params['is_premium'] ) && 'true' == $params['is_premium'] ); } @@ -876,6 +908,16 @@ static function _fetch_plugin_info_from_repository( $action, $args ) { return $res; } + /** + * Returns true if the product can fetch data from WordPress.org. + * + * @author Leo Fajardo (@leorw) + * @since 2.7.4 + */ + private function can_fetch_data_from_wp_org() { + return ( $this->_fs->is_org_repo_compliant() && $this->_fs->is_freemium() ); + } + /** * Fetches module translation updates from wordpress.org. * @@ -1060,7 +1102,7 @@ function plugins_api_filter( $data, $action = '', $args = null ) { } $plugin_in_repo = false; - if ( ! $is_addon ) { + if ( ! $is_addon && $this->can_fetch_data_from_wp_org() ) { // Try to fetch info from .org repository. $data = self::_fetch_plugin_info_from_repository( $action, $args ); @@ -1193,7 +1235,7 @@ private static function get_tested_wp_version( $tested_up_to ) { * @return object */ private function get_latest_download_details( $addon_id = false, $newer_than = false, $fetch_readme = true ) { - return $this->_fs->_fetch_latest_version( $addon_id, true, WP_FS__TIME_24_HOURS_IN_SEC, $newer_than, $fetch_readme ); + return $this->_fs->_fetch_latest_version( $addon_id, true, FS_Plugin_Updater::UPDATES_CHECK_CACHE_EXPIRATION, $newer_than, $fetch_readme ); } /** diff --git a/freemius/includes/class-fs-storage.php b/freemius/includes/class-fs-storage.php index c89f473..6567a63 100644 --- a/freemius/includes/class-fs-storage.php +++ b/freemius/includes/class-fs-storage.php @@ -20,6 +20,7 @@ * @property bool|null $is_extensions_tracking_allowed * @property bool|null $is_diagnostic_tracking_allowed * @property object $sync_cron + * @property bool|int $install_timestamp */ class FS_Storage { /** @@ -359,6 +360,7 @@ private static function load_network_options_map() { 'is_network_activated' => self::OPTION_LEVEL_NETWORK, 'is_on' => self::OPTION_LEVEL_NETWORK, 'is_plugin_new_install' => self::OPTION_LEVEL_NETWORK, + 'last_load_timestamp' => self::OPTION_LEVEL_NETWORK, 'network_install_blog_id' => self::OPTION_LEVEL_NETWORK, 'pending_sites_info' => self::OPTION_LEVEL_NETWORK, 'plugin_last_version' => self::OPTION_LEVEL_NETWORK, diff --git a/freemius/includes/debug/class-fs-debug-bar-panel.php b/freemius/includes/debug/class-fs-debug-bar-panel.php index 0b7969d..c325561 100644 --- a/freemius/includes/debug/class-fs-debug-bar-panel.php +++ b/freemius/includes/debug/class-fs-debug-bar-panel.php @@ -10,55 +10,59 @@ exit; } - /** - * Extends Debug Bar plugin by adding a panel to show all Freemius API requests. - * - * @author Vova Feldman (@svovaf) - * @since 1.1.7.3 - * - * Class Freemius_Debug_Bar_Panel - */ - class Freemius_Debug_Bar_Panel extends Debug_Bar_Panel { - function init() { - $this->title( 'Freemius' ); - } + if ( class_exists( 'Debug_Bar_Panel' ) ) { - static function requests_count() { - if ( class_exists( 'Freemius_Api_WordPress' ) ) { - $logger = Freemius_Api_WordPress::GetLogger(); - } else { - $logger = array(); + /** + * Extends Debug Bar plugin by adding a panel to show all Freemius API requests. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.7.3 + * + * Class Freemius_Debug_Bar_Panel + */ + class Freemius_Debug_Bar_Panel extends Debug_Bar_Panel { + + public function init() { + $this->title( 'Freemius' ); // @phpstan-ignore-line } - return number_format( count( $logger ) ); - } + public static function requests_count() { + if ( class_exists( 'Freemius_Api_WordPress' ) ) { + $logger = Freemius_Api_WordPress::GetLogger(); + } else { + $logger = array(); + } - static function total_time() { - if ( class_exists( 'Freemius_Api_WordPress' ) ) { - $logger = Freemius_Api_WordPress::GetLogger(); - } else { - $logger = array(); + return number_format( count( $logger ) ); } - $total_time = .0; - foreach ( $logger as $l ) { - $total_time += $l['total']; - } + public static function total_time() { + if ( class_exists( 'Freemius_Api_WordPress' ) ) { + $logger = Freemius_Api_WordPress::GetLogger(); + } else { + $logger = array(); + } - return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' ); - } + $total_time = .0; + foreach ( $logger as $l ) { + $total_time += $l['total']; + } + + return number_format( 100 * $total_time, 2 ) . ' ' . fs_text_x_inline( 'ms', 'milliseconds' ); + } - function render() { - ?> -
- -
- -
- -
- -
- +
+ +
+ +
+ +
+ +
+ is_lifetime() ) { + return false; + } + return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->expiration ) - strtotime( $this->created ) ); } diff --git a/freemius/includes/entities/class-fs-plugin-plan.php b/freemius/includes/entities/class-fs-plugin-plan.php index 00a0d74..e89e2bc 100755 --- a/freemius/includes/entities/class-fs-plugin-plan.php +++ b/freemius/includes/entities/class-fs-plugin-plan.php @@ -88,6 +88,18 @@ class FS_Plugin_Plan extends FS_Entity { * @var bool Is featured plan. */ public $is_featured; + /** + * @var bool Is hidden plan. + */ + public $is_hidden; + /** + * @var FS_Pricing[] + */ + public $pricing; + /** + * @var object[] + */ + public $features; #endregion Properties diff --git a/freemius/includes/entities/class-fs-site.php b/freemius/includes/entities/class-fs-site.php index 19cca04..e8049ba 100755 --- a/freemius/includes/entities/class-fs-site.php +++ b/freemius/includes/entities/class-fs-site.php @@ -13,6 +13,7 @@ /** * @property int $blog_id */ + #[AllowDynamicProperties] class FS_Site extends FS_Scope_Entity { /** * @var number @@ -181,6 +182,7 @@ static function is_localhost_by_address( $url ) { fs_ends_with( $subdomain, '.staging.wpengine.com' ) || fs_ends_with( $subdomain, '.dev.wpengine.com' ) || fs_ends_with( $subdomain, '.wpengine.com' ) || + fs_ends_with( $subdomain, '.wpenginepowered.com' ) || // Pantheon ( fs_ends_with( $subdomain, 'pantheonsite.io' ) && ( fs_starts_with( $subdomain, 'test-' ) || fs_starts_with( $subdomain, 'dev-' ) ) ) || @@ -200,7 +202,9 @@ static function is_localhost_by_address( $url ) { // Vendasta ( fs_ends_with( $subdomain, '.websitepro-staging.com' ) || fs_ends_with( $subdomain, '.websitepro.hosting' ) ) || // InstaWP - fs_ends_with( $subdomain, '.instawp.xyz' ) + fs_ends_with( $subdomain, '.instawp.xyz' ) || + // 10Web Hosting + ( fs_ends_with( $subdomain, '-dev.10web.site' ) || fs_ends_with( $subdomain, '-dev.10web.cloud' ) ) ); } diff --git a/freemius/includes/fs-core-functions.php b/freemius/includes/fs-core-functions.php index 3dddb40..d02dd3c 100755 --- a/freemius/includes/fs-core-functions.php +++ b/freemius/includes/fs-core-functions.php @@ -118,7 +118,7 @@ function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, } if ( ! function_exists( 'fs_enqueue_local_script' ) ) { - function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) { + function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = true ) { wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer ); } } @@ -588,6 +588,33 @@ function fs_nonce_url( $actionurl, $action = - 1, $name = '_wpnonce' ) { } } + if ( ! function_exists( 'fs_parse_url_params' ) ) { + /** + * Returns the query parameters of the given URL if there are any. + * + * @param string $url + * @param bool $html_entity_decode + * + * @return array Key value pair where key represents the parameter name and value represents the parameter value. + */ + function fs_parse_url_params( $url, $html_entity_decode = false ) { + $query_str = parse_url( $url, PHP_URL_QUERY ); + $url_params = array(); + + if ( empty( $query_str ) ) { + return $url_params; + } + + if ( $html_entity_decode ) { + $query_str = html_entity_decode( $query_str ); + } + + parse_str( $query_str, $url_params ); + + return $url_params; + } + } + if ( ! function_exists( 'fs_starts_with' ) ) { /** * Check if string starts with. @@ -1204,7 +1231,7 @@ function fs_esc_js_x_inline( $text, $context, $key = '', $slug = 'freemius' ) { * @param string $key String key for overrides. * @param string $slug Module slug for overrides. * - * @return string + * @return void */ function fs_esc_js_echo_x_inline( $text, $context, $key = '', $slug = 'freemius' ) { echo esc_js( _fs_text_x_inline( $text, $context, $key, $slug ) ); @@ -1458,4 +1485,21 @@ function fs_apply_filter( $module_unique_affix, $tag, $value ) { array_slice( $args, 2 ) ) ); } - } \ No newline at end of file + } + + if ( ! function_exists( 'fs_get_optional_constant' ) ) { + /** + * Gets the value of an optional constant. If the constant is not defined, the default value will be returned. + * + * @author Swashata Ghosh (@swashata) + * @since 2.5.12.5 + * + * @param string $constant_name + * @param mixed $default_value + * + * @return mixed + */ + function fs_get_optional_constant( $constant_name, $default_value = null ) { + return defined( $constant_name ) ? constant( $constant_name ) : $default_value; + } + } diff --git a/freemius/includes/fs-essential-functions.php b/freemius/includes/fs-essential-functions.php index c744306..f463a0f 100644 --- a/freemius/includes/fs-essential-functions.php +++ b/freemius/includes/fs-essential-functions.php @@ -167,244 +167,252 @@ function fs_get_ip() { } } - /** - * Leverage backtrace to find caller plugin main file path. - * - * @author Vova Feldman (@svovaf) - * @since 1.0.6 - * - * @return string - */ - function fs_find_caller_plugin_file() { - /** - * All the code below will be executed once on activation. - * If the user changes the main plugin's file name, the file_exists() - * will catch it. - */ - if ( ! function_exists( 'get_plugins' ) ) { - require_once ABSPATH . 'wp-admin/includes/plugin.php'; - } + if ( ! function_exists( 'fs_find_caller_plugin_file' ) ) { + /** + * Leverage backtrace to find caller plugin main file path. + * + * @author Vova Feldman (@svovaf) + * @since 1.0.6 + * + * @return string + */ + function fs_find_caller_plugin_file() { + /** + * All the code below will be executed once on activation. + * If the user changes the main plugin's file name, the file_exists() + * will catch it. + */ + if ( ! function_exists( 'get_plugins' ) ) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } - $all_plugins = fs_get_plugins( true ); - $all_plugins_paths = array(); + $all_plugins = fs_get_plugins( true ); + $all_plugins_paths = array(); - // Get active plugin's main files real full names (might be symlinks). - foreach ( $all_plugins as $relative_path => $data ) { - $all_plugins_paths[] = fs_normalize_path( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ); - } + // Get active plugin's main files real full names (might be symlinks). + foreach ( $all_plugins as $relative_path => $data ) { + $all_plugins_paths[] = fs_normalize_path( realpath( WP_PLUGIN_DIR . '/' . $relative_path ) ); + } - $plugin_file = null; - for ( $i = 1, $bt = debug_backtrace(), $len = count( $bt ); $i < $len; $i ++ ) { - if ( empty( $bt[ $i ]['file'] ) ) { - continue; - } + $plugin_file = null; + for ( $i = 1, $bt = debug_backtrace(), $len = count( $bt ); $i < $len; $i ++ ) { + if ( empty( $bt[ $i ]['file'] ) ) { + continue; + } - if ( in_array( fs_normalize_path( $bt[ $i ]['file'] ), $all_plugins_paths ) ) { - $plugin_file = $bt[ $i ]['file']; - break; - } - } + if ( in_array( fs_normalize_path( $bt[ $i ]['file'] ), $all_plugins_paths ) ) { + $plugin_file = $bt[ $i ]['file']; + break; + } + } - if ( is_null( $plugin_file ) ) { - // Throw an error to the developer in case of some edge case dev environment. - wp_die( - 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.', - 'Error', - array( 'back_link' => true ) - ); - } + if ( is_null( $plugin_file ) ) { + // Throw an error to the developer in case of some edge case dev environment. + wp_die( + 'Freemius SDK couldn\'t find the plugin\'s main file. Please contact sdk@freemius.com with the current error.', + 'Error', + array( 'back_link' => true ) + ); + } - return $plugin_file; - } + return $plugin_file; + } + } require_once dirname( __FILE__ ) . '/supplements/fs-essential-functions-1.1.7.1.php'; - /** - * Update SDK newest version reference. - * - * @author Vova Feldman (@svovaf) - * @since 1.1.6 - * - * @param string $sdk_relative_path - * @param string|bool $plugin_file - * - * @global $fs_active_plugins - */ - function fs_update_sdk_newest_version( $sdk_relative_path, $plugin_file = false ) { - /** - * If there is a plugin running an older version of FS (1.2.1 or below), the `fs_update_sdk_newest_version()` - * function in the older version will be used instead of this one. But since the older version is using - * the `is_plugin_active` function to check if a plugin is active, passing the theme's `plugin_path` to the - * `is_plugin_active` function will return false since the path is not a plugin path, so `in_activation` will be - * `true` for theme modules and the upgrading of the SDK version to 1.2.2 or newer version will work fine. - * - * Future versions that will call this function will use the proper logic here instead of just relying on the - * `is_plugin_active` function to fail for themes. - * - * @author Leo Fajardo (@leorw) - * @since 1.2.2 - */ - - global $fs_active_plugins; - - $newest_sdk = $fs_active_plugins->plugins[ $sdk_relative_path ]; - - if ( ! is_string( $plugin_file ) ) { - $plugin_file = plugin_basename( fs_find_caller_plugin_file() ); - } - - if ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) { - if ( ! function_exists( 'is_plugin_active' ) ) { - require_once ABSPATH . 'wp-admin/includes/plugin.php'; + if ( ! function_exists( 'fs_update_sdk_newest_version' ) ) { + /** + * Update SDK newest version reference. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @param string $sdk_relative_path + * @param string|bool $plugin_file + * + * @global $fs_active_plugins + */ + function fs_update_sdk_newest_version( $sdk_relative_path, $plugin_file = false ) { + /** + * If there is a plugin running an older version of FS (1.2.1 or below), the `fs_update_sdk_newest_version()` + * function in the older version will be used instead of this one. But since the older version is using + * the `is_plugin_active` function to check if a plugin is active, passing the theme's `plugin_path` to the + * `is_plugin_active` function will return false since the path is not a plugin path, so `in_activation` will be + * `true` for theme modules and the upgrading of the SDK version to 1.2.2 or newer version will work fine. + * + * Future versions that will call this function will use the proper logic here instead of just relying on the + * `is_plugin_active` function to fail for themes. + * + * @author Leo Fajardo (@leorw) + * @since 1.2.2 + */ + + global $fs_active_plugins; + + $newest_sdk = $fs_active_plugins->plugins[ $sdk_relative_path ]; + + if ( ! is_string( $plugin_file ) ) { + $plugin_file = plugin_basename( fs_find_caller_plugin_file() ); } - $in_activation = ( ! is_plugin_active( $plugin_file ) ); - } else { - $theme = wp_get_theme(); - $in_activation = ( $newest_sdk->plugin_path == $theme->stylesheet ); - } + if ( ! isset( $newest_sdk->type ) || 'theme' !== $newest_sdk->type ) { + if ( ! function_exists( 'is_plugin_active' ) ) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } - $fs_active_plugins->newest = (object) array( - 'plugin_path' => $plugin_file, - 'sdk_path' => $sdk_relative_path, - 'version' => $newest_sdk->version, - 'in_activation' => $in_activation, - 'timestamp' => time(), - ); + $in_activation = ( ! is_plugin_active( $plugin_file ) ); + } else { + $theme = wp_get_theme(); + $in_activation = ( $newest_sdk->plugin_path == $theme->stylesheet ); + } - // Update DB with latest SDK version and path. - update_option( 'fs_active_plugins', $fs_active_plugins ); - } + $fs_active_plugins->newest = (object) array( + 'plugin_path' => $plugin_file, + 'sdk_path' => $sdk_relative_path, + 'version' => $newest_sdk->version, + 'in_activation' => $in_activation, + 'timestamp' => time(), + ); - /** - * Reorder the plugins load order so the plugin with the newest Freemius SDK is loaded first. - * - * @author Vova Feldman (@svovaf) - * @since 1.1.6 - * - * @return bool Was plugin order changed. Return false if plugin was loaded first anyways. - * - * @global $fs_active_plugins - */ - function fs_newest_sdk_plugin_first() { - global $fs_active_plugins; + // Update DB with latest SDK version and path. + update_option( 'fs_active_plugins', $fs_active_plugins ); + } + } + if ( ! function_exists( 'fs_newest_sdk_plugin_first' ) ) { /** - * @todo Multi-site network activated plugin are always loaded prior to site plugins so if there's a plugin activated in the network mode that has an older version of the SDK of another plugin which is site activated that has new SDK version, the fs-essential-functions.php will be loaded from the older SDK. Same thing about MU plugins (loaded even before network activated plugins). + * Reorder the plugins load order so the plugin with the newest Freemius SDK is loaded first. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @return bool Was plugin order changed. Return false if plugin was loaded first anyways. * - * @link https://github.com/Freemius/wordpress-sdk/issues/26 + * @global $fs_active_plugins */ + function fs_newest_sdk_plugin_first() { + global $fs_active_plugins; - $newest_sdk_plugin_path = $fs_active_plugins->newest->plugin_path; + /** + * @todo Multi-site network activated plugin are always loaded prior to site plugins so if there's a plugin activated in the network mode that has an older version of the SDK of another plugin which is site activated that has new SDK version, the fs-essential-functions.php will be loaded from the older SDK. Same thing about MU plugins (loaded even before network activated plugins). + * + * @link https://github.com/Freemius/wordpress-sdk/issues/26 + */ - $active_plugins = get_option( 'active_plugins', array() ); - $updated_active_plugins = array( $newest_sdk_plugin_path ); + $newest_sdk_plugin_path = $fs_active_plugins->newest->plugin_path; - $plugin_found = false; - $is_first_path = true; + $active_plugins = get_option( 'active_plugins', array() ); + $updated_active_plugins = array( $newest_sdk_plugin_path ); - foreach ( $active_plugins as $key => $plugin_path ) { - if ( $plugin_path === $newest_sdk_plugin_path ) { - if ( $is_first_path ) { - // if it's the first plugin already, no need to continue - return false; - } + $plugin_found = false; + $is_first_path = true; - $plugin_found = true; + foreach ( $active_plugins as $key => $plugin_path ) { + if ( $plugin_path === $newest_sdk_plugin_path ) { + if ( $is_first_path ) { + // if it's the first plugin already, no need to continue + return false; + } - // Skip the plugin (it is already added as the 1st item of $updated_active_plugins). - continue; - } + $plugin_found = true; - $updated_active_plugins[] = $plugin_path; + // Skip the plugin (it is already added as the 1st item of $updated_active_plugins). + continue; + } + + $updated_active_plugins[] = $plugin_path; - if ( $is_first_path ) { - $is_first_path = false; + if ( $is_first_path ) { + $is_first_path = false; + } } - } - if ( $plugin_found ) { - update_option( 'active_plugins', $updated_active_plugins ); + if ( $plugin_found ) { + update_option( 'active_plugins', $updated_active_plugins ); - return true; - } + return true; + } - if ( is_multisite() ) { - // Plugin is network active. - $network_active_plugins = get_site_option( 'active_sitewide_plugins', array() ); + if ( is_multisite() ) { + // Plugin is network active. + $network_active_plugins = get_site_option( 'active_sitewide_plugins', array() ); - if ( isset( $network_active_plugins[ $newest_sdk_plugin_path ] ) ) { - reset( $network_active_plugins ); - if ( $newest_sdk_plugin_path === key( $network_active_plugins ) ) { - // Plugin is already activated first on the network level. - return false; - } else { - $time = $network_active_plugins[ $newest_sdk_plugin_path ]; + if ( isset( $network_active_plugins[ $newest_sdk_plugin_path ] ) ) { + reset( $network_active_plugins ); + if ( $newest_sdk_plugin_path === key( $network_active_plugins ) ) { + // Plugin is already activated first on the network level. + return false; + } else { + $time = $network_active_plugins[ $newest_sdk_plugin_path ]; - // Remove plugin from its current position. - unset( $network_active_plugins[ $newest_sdk_plugin_path ] ); + // Remove plugin from its current position. + unset( $network_active_plugins[ $newest_sdk_plugin_path ] ); - // Set it to be included first. - $network_active_plugins = array( $newest_sdk_plugin_path => $time ) + $network_active_plugins; + // Set it to be included first. + $network_active_plugins = array( $newest_sdk_plugin_path => $time ) + $network_active_plugins; - update_site_option( 'active_sitewide_plugins', $network_active_plugins ); + update_site_option( 'active_sitewide_plugins', $network_active_plugins ); - return true; + return true; + } } } - } - return false; + return false; + } } - /** - * Go over all Freemius SDKs in the system and find and "remember" - * the newest SDK which is associated with an active plugin. - * - * @author Vova Feldman (@svovaf) - * @since 1.1.6 - * - * @global $fs_active_plugins - */ - function fs_fallback_to_newest_active_sdk() { - global $fs_active_plugins; - - /** - * @var object $newest_sdk_data - */ - $newest_sdk_data = null; - $newest_sdk_path = null; - - foreach ( $fs_active_plugins->plugins as $sdk_relative_path => $data ) { - if ( is_null( $newest_sdk_data ) || version_compare( $data->version, $newest_sdk_data->version, '>' ) - ) { - // If plugin inactive or SDK starter file doesn't exist, remove SDK reference. - if ( 'plugin' === $data->type ) { - $is_module_active = is_plugin_active( $data->plugin_path ); - } else { - $active_theme = wp_get_theme(); - $is_module_active = ( $data->plugin_path === $active_theme->get_template() ); - } - - $is_sdk_exists = file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $sdk_relative_path . '/start.php' ) ); - - if ( ! $is_module_active || ! $is_sdk_exists ) { - unset( $fs_active_plugins->plugins[ $sdk_relative_path ] ); - - // No need to store the data since it will be stored in fs_update_sdk_newest_version() - // or explicitly with update_option(). - } else { - $newest_sdk_data = $data; - $newest_sdk_path = $sdk_relative_path; - } - } - } + if ( ! function_exists( 'fs_fallback_to_newest_active_sdk' ) ) { + /** + * Go over all Freemius SDKs in the system and find and "remember" + * the newest SDK which is associated with an active plugin. + * + * @author Vova Feldman (@svovaf) + * @since 1.1.6 + * + * @global $fs_active_plugins + */ + function fs_fallback_to_newest_active_sdk() { + global $fs_active_plugins; + + /** + * @var object $newest_sdk_data + */ + $newest_sdk_data = null; + $newest_sdk_path = null; + + foreach ( $fs_active_plugins->plugins as $sdk_relative_path => $data ) { + if ( is_null( $newest_sdk_data ) || version_compare( $data->version, $newest_sdk_data->version, '>' ) + ) { + // If plugin inactive or SDK starter file doesn't exist, remove SDK reference. + if ( 'plugin' === $data->type ) { + $is_module_active = is_plugin_active( $data->plugin_path ); + } else { + $active_theme = wp_get_theme(); + $is_module_active = ( $data->plugin_path === $active_theme->get_template() ); + } + + $is_sdk_exists = file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $sdk_relative_path . '/start.php' ) ); + + if ( ! $is_module_active || ! $is_sdk_exists ) { + unset( $fs_active_plugins->plugins[ $sdk_relative_path ] ); + + // No need to store the data since it will be stored in fs_update_sdk_newest_version() + // or explicitly with update_option(). + } else { + $newest_sdk_data = $data; + $newest_sdk_path = $sdk_relative_path; + } + } + } - if ( is_null( $newest_sdk_data ) ) { - // Couldn't find any SDK reference. - $fs_active_plugins = new stdClass(); - update_option( 'fs_active_plugins', $fs_active_plugins ); - } else { - fs_update_sdk_newest_version( $newest_sdk_path, $newest_sdk_data->plugin_path ); - } - } \ No newline at end of file + if ( is_null( $newest_sdk_data ) ) { + // Couldn't find any SDK reference. + $fs_active_plugins = new stdClass(); + update_option( 'fs_active_plugins', $fs_active_plugins ); + } else { + fs_update_sdk_newest_version( $newest_sdk_path, $newest_sdk_data->plugin_path ); + } + } + } \ No newline at end of file diff --git a/freemius/includes/fs-html-escaping-functions.php b/freemius/includes/fs-html-escaping-functions.php index 29f30da..9384b59 100644 --- a/freemius/includes/fs-html-escaping-functions.php +++ b/freemius/includes/fs-html-escaping-functions.php @@ -17,6 +17,7 @@ */ function fs_html_get_allowed_kses_list() { $common_attributes = array( + 'id' => true, 'class' => true, 'style' => true, 'data-*' => true, @@ -48,6 +49,7 @@ function fs_html_get_allowed_kses_list() { 'strong' => $common_attributes, 'u' => $common_attributes, 'b' => $common_attributes, + 'i' => $common_attributes, 'hr' => $common_attributes, 'span' => $common_attributes, 'p' => $common_attributes, diff --git a/freemius/includes/fs-plugin-info-dialog.php b/freemius/includes/fs-plugin-info-dialog.php index 3fbd113..8a79aff 100755 --- a/freemius/includes/fs-plugin-info-dialog.php +++ b/freemius/includes/fs-plugin-info-dialog.php @@ -238,7 +238,7 @@ function _get_addon_info_filter( $data, $action = '', $args = null ) { $latest = $this->_fs->_fetch_latest_version( $selected_addon->id, true, - WP_FS__TIME_24_HOURS_IN_SEC, + FS_Plugin_Updater::UPDATES_CHECK_CACHE_EXPIRATION, $current_addon_version ); @@ -838,12 +838,8 @@ private static function get_blog_status_url( $blog_id, $network_status_url, $sta 'install-plugin' : 'upgrade-plugin'; - $query = parse_url( $network_status_url, PHP_URL_QUERY ); - if ( empty( $query ) ) { - return $network_status_url; - } + $url_params = fs_parse_url_params( $network_status_url, true ); - parse_str( html_entity_decode( $query ), $url_params ); if ( empty( $url_params ) || ! isset( $url_params['plugin'] ) ) { return $network_status_url; } diff --git a/freemius/includes/managers/class-fs-clone-manager.php b/freemius/includes/managers/class-fs-clone-manager.php index e992ef1..d1f5cf2 100644 --- a/freemius/includes/managers/class-fs-clone-manager.php +++ b/freemius/includes/managers/class-fs-clone-manager.php @@ -333,7 +333,7 @@ private function find_network_subsite_clone_install( Freemius $instance ) { } if ( ! isset( $this->all_installs ) ) { - $this->all_installs = Freemius::get_all_modules_sites(); + $this->all_installs = FS_DebugManager::get_all_modules_sites(); } // Check if there's another blog that has the same site. diff --git a/freemius/includes/managers/class-fs-debug-manager.php b/freemius/includes/managers/class-fs-debug-manager.php new file mode 100644 index 0000000..5364712 --- /dev/null +++ b/freemius/includes/managers/class-fs-debug-manager.php @@ -0,0 +1,508 @@ +entrance(); + + $title = sprintf( '%s [v.%s]', fs_text_inline( 'Freemius Debug' ), WP_FS__SDK_VERSION ); + + if ( WP_FS__DEV_MODE ) { + // Add top-level debug menu item. + $hook = FS_Admin_Menu_Manager::add_page( + $title, + $title, + 'manage_options', + 'freemius', + array( self::class, '_debug_page_render' ) + ); + } else { + // Add hidden debug page. + $hook = FS_Admin_Menu_Manager::add_subpage( + '', + $title, + $title, + 'manage_options', + 'freemius', + array( self::class, '_debug_page_render' ) + ); + } + + if ( ! empty( $hook ) ) { + add_action( "load-$hook", array( self::class, '_debug_page_actions' ) ); + } + } + + /** + * @author Vova Feldman (@svovaf) + * Moved from Freemius + * + * @since 1.0.8 + */ + static function _debug_page_actions() { + Freemius::_clean_admin_content_section(); + + if ( fs_request_is_action( 'restart_freemius' ) ) { + check_admin_referer( 'restart_freemius' ); + + if ( ! is_multisite() ) { + // Clear accounts data. + Freemius::get_accounts()->clear( null, true ); + } else { + $sites = Freemius::get_sites(); + foreach ( $sites as $site ) { + $blog_id = Freemius::get_site_blog_id( $site ); + Freemius::get_accounts()->clear( $blog_id, true ); + } + + // Clear network level storage. + Freemius::get_accounts()->clear( true, true ); + } + + // Clear SDK reference cache. + delete_option( 'fs_active_plugins' ); + } else if ( fs_request_is_action( 'clear_updates_data' ) ) { + check_admin_referer( 'clear_updates_data' ); + + if ( ! is_multisite() ) { + set_site_transient( 'update_plugins', null ); + set_site_transient( 'update_themes', null ); + } else { + $current_blog_id = get_current_blog_id(); + + $sites = Freemius::get_sites(); + foreach ( $sites as $site ) { + switch_to_blog( Freemius::get_site_blog_id( $site ) ); + + set_site_transient( 'update_plugins', null ); + set_site_transient( 'update_themes', null ); + } + + switch_to_blog( $current_blog_id ); + } + } else if ( fs_request_is_action( 'reset_deactivation_snoozing' ) ) { + check_admin_referer( 'reset_deactivation_snoozing' ); + + Freemius::reset_deactivation_snoozing(); + } else if ( fs_request_is_action( 'simulate_trial' ) ) { + check_admin_referer( 'simulate_trial' ); + + $fs = freemius( fs_request_get( 'module_id' ) ); + + // Update SDK install to at least 24 hours before. + $fs->get_storage()->install_timestamp = ( time() - WP_FS__TIME_24_HOURS_IN_SEC ); + // Unset the trial shown timestamp. + unset( $fs->get_storage()->trial_promotion_shown ); + } else if ( fs_request_is_action( 'simulate_network_upgrade' ) ) { + check_admin_referer( 'simulate_network_upgrade' ); + + $fs = freemius( fs_request_get( 'module_id' ) ); + + Freemius::set_network_upgrade_mode( $fs->get_storage() ); + } else if ( fs_request_is_action( 'delete_install' ) ) { + check_admin_referer( 'delete_install' ); + + Freemius::_delete_site_by_slug( + fs_request_get( 'slug' ), + fs_request_get( 'module_type' ), + true, + fs_request_get( 'blog_id', null ) + ); + } else if ( fs_request_is_action( 'delete_user' ) ) { + check_admin_referer( 'delete_user' ); + + self::delete_user( fs_request_get( 'user_id' ) ); + } else if ( fs_request_is_action( 'download_logs' ) ) { + check_admin_referer( 'download_logs' ); + + $download_url = FS_Logger::download_db_logs( + fs_request_get( 'filters', false, 'post' ) + ); + + if ( false === $download_url ) { + wp_die( 'Oops... there was an error while generating the logs download file. Please try again and if it doesn\'t work contact support@freemius.com.' ); + } + + fs_redirect( $download_url ); + } else if ( fs_request_is_action( 'migrate_options_to_network' ) ) { + check_admin_referer( 'migrate_options_to_network' ); + + Freemius::migrate_options_to_network(); + } + } + + /** + * @author Vova Feldman (@svovaf) + * Moved from Freemius + * + * @since 1.0.8 + */ + static function _debug_page_render() { + Freemius::get_static_logger()->entrance(); + + $all_modules_sites = self::get_all_modules_sites(); + + $licenses_by_module_type = self::get_all_licenses_by_module_type(); + + $vars = array( + 'plugin_sites' => $all_modules_sites[ WP_FS__MODULE_TYPE_PLUGIN ], + 'theme_sites' => $all_modules_sites[ WP_FS__MODULE_TYPE_THEME ], + 'users' => Freemius::get_all_users(), + 'addons' => Freemius::get_all_addons(), + 'account_addons' => Freemius::get_all_account_addons(), + 'plugin_licenses' => $licenses_by_module_type[ WP_FS__MODULE_TYPE_PLUGIN ], + 'theme_licenses' => $licenses_by_module_type[ WP_FS__MODULE_TYPE_THEME ], + ); + + fs_enqueue_local_style( 'fs_debug', '/admin/debug.css' ); + fs_require_once_template( 'debug.php', $vars ); + } + + /** + * @author Vova Feldman (@svovaf) + * Moved from Freemius + * + * @since 1.2.1.6 + */ + static function _get_debug_log() { + check_admin_referer( 'fs_get_debug_log' ); + + if ( ! is_super_admin() ) { + return; + } + + if (!FS_Logger::is_storage_logging_on()) { + return; + } + + $limit = min( ! empty( $_POST['limit'] ) ? absint( $_POST['limit'] ) : 200, 200 ); + $offset = min( ! empty( $_POST['offset'] ) ? absint( $_POST['offset'] ) : 200, 200 ); + + $logs = FS_Logger::load_db_logs( + fs_request_get( 'filters', false, 'post' ), + $limit, + $offset + ); + + Freemius::shoot_ajax_success( $logs ); + } + + /** + * @author Vova Feldman (@svovaf) + * Moved from Freemius + * + * @since 1.2.1.7 + */ + static function _get_db_option() { + check_admin_referer( 'fs_get_db_option' ); + + $option_name = fs_request_get( 'option_name' ); + + if ( ! is_super_admin() || + ! fs_starts_with( $option_name, 'fs_' ) + ) { + Freemius::shoot_ajax_failure(); + } + + $value = get_option( $option_name ); + + $result = array( + 'name' => $option_name, + ); + + if ( false !== $value ) { + if ( ! is_string( $value ) ) { + $value = json_encode( $value ); + } + + $result['value'] = $value; + } + + Freemius::shoot_ajax_success( $result ); + } + + /** + * @author Vova Feldman (@svovaf) + * Moved from Freemius + * + * @since 1.2.1.7 + */ + static function _set_db_option() { + check_admin_referer( 'fs_set_db_option' ); + + $option_name = fs_request_get( 'option_name' ); + + if ( ! is_super_admin() || + ! fs_starts_with( $option_name, 'fs_' ) + ) { + Freemius::shoot_ajax_failure(); + } + + $option_value = fs_request_get_raw( 'option_value' ); + + if ( ! empty( $option_value ) ) { + update_option( $option_name, $option_value ); + } + + Freemius::shoot_ajax_success(); + } + + /** + * @author Vova Feldman (@svovaf) + * Moved from Freemius + * + * @since 1.1.7.3 + */ + static function _toggle_debug_mode() { + check_admin_referer( 'fs_toggle_debug_mode' ); + + if ( ! is_super_admin() ) { + return; + } + + $is_on = fs_request_get( 'is_on', false, 'post' ); + + if ( fs_request_is_post() && in_array( $is_on, array( 0, 1 ) ) ) { + if ( $is_on ) { + self::_turn_on_debug_mode(); + } else { + self::_turn_off_debug_mode(); + } + + // Logic to turn debugging off automatically + if ( 1 == $is_on ) { + // Plan a single event triggering after 24 hours to turn debugging off. + wp_schedule_single_event( time() + 24 * HOUR_IN_SECONDS, 'fs_debug_turn_off_logging_hook' ); + } else { + // Cancels any planned event when debugging is turned off manually. + $timestamp = wp_next_scheduled( 'fs_debug_turn_off_logging_hook' ); + if ( $timestamp ) { + wp_unschedule_event( $timestamp, 'fs_debug_turn_off_logging_hook' ); + } + } + } + + exit; + } + + /** + * @author Daniele Alessandra (@danielealessandra) + * @since 2.6.2 + * + */ + static function _turn_off_debug_mode() { + self::update_debug_mode_option( 0 ); + FS_Logger::_set_storage_logging( false ); + } + + /** + * @author Daniele Alessandra (@danielealessandra) + * @since 2.6.2 + * + */ + static function _turn_on_debug_mode() { + self::update_debug_mode_option( 1 ); + FS_Logger::_set_storage_logging(); + } + + /** + * @author Leo Fajardo (@leorw) + * Moved from Freemius + * + * @param string $url + * @param array $request + * + * @since 2.1.0 + * + */ + public static function enrich_request_for_debug( &$url, &$request ) { + if ( WP_FS__DEBUG_SDK || isset( $_COOKIE['XDEBUG_SESSION'] ) ) { + $url = add_query_arg( 'XDEBUG_SESSION_START', rand( 0, 9999999 ), $url ); + $url = add_query_arg( 'XDEBUG_SESSION', 'PHPSTORM', $url ); + + $request['cookies'] = array( + new WP_Http_Cookie( array( + 'name' => 'XDEBUG_SESSION', + 'value' => 'PHPSTORM', + ) ), + ); + } + } + + /** + * @author Leo Fajardo (@leorw) + * Moved from Freemius + * + * @return array + * + * @since 2.0.0 + * + */ + private static function get_all_licenses_by_module_type() { + $licenses = Freemius::get_account_option( 'all_licenses' ); + + $licenses_by_module_type = array( + WP_FS__MODULE_TYPE_PLUGIN => array(), + WP_FS__MODULE_TYPE_THEME => array(), + ); + + if ( ! is_array( $licenses ) ) { + return $licenses_by_module_type; + } + + foreach ( $licenses as $module_id => $module_licenses ) { + $fs = Freemius::get_instance_by_id( $module_id ); + if ( false === $fs ) { + continue; + } + + $licenses_by_module_type[ $fs->get_module_type() ] = array_merge( $licenses_by_module_type[ $fs->get_module_type() ], + $module_licenses ); + } + + return $licenses_by_module_type; + } + + /** + * Moved from the Freemius class. + * + * @author Leo Fajardo (@leorw) + * + * @return array + * + * @since 2.5.0 + */ + static function get_all_modules_sites() { + Freemius::get_static_logger()->entrance(); + + $sites_by_type = array( + WP_FS__MODULE_TYPE_PLUGIN => array(), + WP_FS__MODULE_TYPE_THEME => array(), + ); + + $module_types = array_keys( $sites_by_type ); + + if ( ! is_multisite() ) { + foreach ( $module_types as $type ) { + $sites_by_type[ $type ] = Freemius::get_all_sites( $type ); + + foreach ( $sites_by_type[ $type ] as $slug => $install ) { + $sites_by_type[ $type ][ $slug ] = array( $install ); + } + } + } else { + $sites = Freemius::get_sites(); + + foreach ( $sites as $site ) { + $blog_id = Freemius::get_site_blog_id( $site ); + + foreach ( $module_types as $type ) { + $installs = Freemius::get_all_sites( $type, $blog_id ); + + foreach ( $installs as $slug => $install ) { + if ( ! isset( $sites_by_type[ $type ][ $slug ] ) ) { + $sites_by_type[ $type ][ $slug ] = array(); + } + + $install->blog_id = $blog_id; + + $sites_by_type[ $type ][ $slug ][] = $install; + } + } + } + } + + return $sites_by_type; + } + + /** + * Delete user. + * + * @author Vova Feldman (@svovaf) + * + * @param number $user_id + * @param bool $store + * + * @return false|int The user ID if deleted. Otherwise, FALSE (when install not exist). + * @since 2.0.0 + * + */ + public static function delete_user( $user_id, $store = true ) { + $users = Freemius::get_all_users(); + + if ( ! is_array( $users ) || ! isset( $users[ $user_id ] ) ) { + return false; + } + + unset( $users[ $user_id ] ); + + self::$_accounts->set_option( 'users', $users, $store ); + + return $user_id; + } + + /** + * @author Daniele Alessandra (@danielealessandra) + * + * @return void + * @since 2.6.2 + * + */ + public static function load_required_static() { + if ( ! WP_FS__DEMO_MODE ) { + add_action( ( fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu', array( + self::class, + '_add_debug_section', + ) ); + } + + add_action( "wp_ajax_fs_toggle_debug_mode", array( self::class, '_toggle_debug_mode' ) ); + + Freemius::add_ajax_action_static( 'get_debug_log', array( self::class, '_get_debug_log' ) ); + Freemius::add_ajax_action_static( 'get_db_option', array( self::class, '_get_db_option' ) ); + Freemius::add_ajax_action_static( 'set_db_option', array( self::class, '_set_db_option' ) ); + } + + /** + * @author Daniele Alessandra (@danielealessandra) + * + * @return void + * + * @since 2.6.2 + */ + public static function register_hooks() { + add_action( 'fs_debug_turn_off_logging_hook', array( self::class, '_turn_off_debug_mode' ) ); + } + + /** + * @author Daniele Alessandra (@danielealessandra) + * + * @param int $is_on + * + * @return void + * + * @since 2.6.2 + */ + private static function update_debug_mode_option( $is_on ) { + update_option( 'fs_debug_mode', $is_on ); + } + + } diff --git a/freemius/includes/managers/class-fs-plan-manager.php b/freemius/includes/managers/class-fs-plan-manager.php index 639de43..9beccea 100755 --- a/freemius/includes/managers/class-fs-plan-manager.php +++ b/freemius/includes/managers/class-fs-plan-manager.php @@ -108,6 +108,7 @@ function has_free_plan( $plans ) { /** * Find all plans that have trial. + * Since 2.6.2 call get_filtered_plan * * @author Vova Feldman (@svovaf) * @since 1.0.9 @@ -117,20 +118,50 @@ function has_free_plan( $plans ) { * @return FS_Plugin_Plan[] */ function get_trial_plans( $plans ) { - $trial_plans = array(); + return $this->get_filtered_plans( $plans, true ); + } - if ( is_array( $plans ) && 0 < count( $plans ) ) { - /** - * @var FS_Plugin_Plan[] $plans - */ - for ( $i = 0, $len = count( $plans ); $i < $len; $i ++ ) { - if ( $plans[ $i ]->has_trial() ) { - $trial_plans[] = $plans[ $i ]; + /** + * Find all plans that are not hidden and have trial. + * + * @author Daniele Alessandra (@danielealessandra) + * + * @param FS_Plugin_Plan[] $plans + * + * @return FS_Plugin_Plan[] + * @since 2.6.3 + * + */ + function get_visible_trial_plans( $plans ) { + return $this->get_filtered_plans( $plans, true, true ); + } + + /** + * Find all plans filtered by trial or visibility. + * + * @author Daniele Alessandra (@danielealessandra) + * + * @param FS_Plugin_Plan[] $plans + * @param boolean $should_have_trials + * @param boolean $should_be_visible + * + * @return FS_Plugin_Plan[] + * @since 2.6.3 + * + */ + function get_filtered_plans( $plans, $should_have_trials = false, $should_be_visible = false ) { + $filtered_plans = array(); + + if ( is_array( $plans ) && count( $plans ) > 0 ) { + foreach ( $plans as $plan ) { + if ( ( $should_have_trials && ! $plan->has_trial() ) || ( $should_be_visible && $plan->is_hidden ) ) { + continue; } + $filtered_plans[] = $plan; } } - return $trial_plans; + return $filtered_plans; } /** diff --git a/freemius/includes/sdk/FreemiusWordPress.php b/freemius/includes/sdk/FreemiusWordPress.php index efb9e0d..2403c90 100755 --- a/freemius/includes/sdk/FreemiusWordPress.php +++ b/freemius/includes/sdk/FreemiusWordPress.php @@ -473,8 +473,12 @@ private static function MakeStaticRequest( */ if ( filter_var( $matches[1], FILTER_VALIDATE_IP ) ) { if ( strlen( inet_pton( $matches[1] ) ) === 16 ) { -// error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.'); - // Hook to an action triggered just before cURL is executed to resolve the IP version to v4. + /** + * error_log('Invalid IPv6 configuration on server, Please disable or get native IPv6 on your server.'); + * Hook to an action triggered just before cURL is executed to resolve the IP version to v4. + * + * @phpstan-ignore-next-line + */ add_action( 'http_api_curl', 'Freemius_Api_WordPress::CurlResolveToIPv4', 10, 1 ); // Re-run request. diff --git a/freemius/languages/freemius-cs_CZ.mo b/freemius/languages/freemius-cs_CZ.mo index 8dd3c06700bb3b0f13c99ef0d0ff75ef8ffd06fc..dc311a4e7852680e600920b0cf1b794277a02427 100644 GIT binary patch delta 11696 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 delta 11825 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 diff --git a/freemius/languages/freemius-da_DK.mo b/freemius/languages/freemius-da_DK.mo index 07ffb83ffb3c636cb7d4405fe266139173aa16c6..c0b9378006fafe58f9caf132d1134b4113f7aba4 100644 GIT binary patch delta 9680 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 literal 69088 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 diff --git a/freemius/languages/freemius-de_DE.mo b/freemius/languages/freemius-de_DE.mo index 2d951e98adae3c53d5ff5b0d3b04d4911a1e0d89..dd8555048c427727e84c720edcc88f075afe5878 100644 GIT binary patch delta 13718 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 QRpUzKTXCg7*Y*B?06T$FJ^%m! delta 17019 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 RuTCuQ$?>c{81MP~e*kY*JSG4D diff --git a/freemius/languages/freemius-en.mo b/freemius/languages/freemius-en.mo deleted file mode 100644 index cecd3e5d587e4dc43d74a4039ed3e3f7fa022251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68519 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 T(}F>MtsuV;s`9xO2>Sm321YV( diff --git a/freemius/languages/freemius-es_ES.mo b/freemius/languages/freemius-es_ES.mo index 445e10db060d2e214ce97f9f2289029792da21ea..963dfe3fac621f21292ba746d22d88ee0fc4780c 100644 GIT binary patch delta 10540 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 J!{zO*{|BrMI+FkZ delta 28484 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 diff --git a/freemius/languages/freemius-fr_FR.mo b/freemius/languages/freemius-fr_FR.mo index bc2889ccc8b8a88ef020b5aae1df2e67b93323a6..de90270c18e637954e14aa4b69f050fbb5e799c6 100644 GIT binary patch delta 8684 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 QJR)_`(1v^N4)t&QKh*Zf3;+NC diff --git a/freemius/languages/freemius-he_IL.mo b/freemius/languages/freemius-he_IL.mo index 5b4b235504b3b7a094a397e1e0576b39e3311479..e84832723d890801fa17e082f74d71b7b7ea11bc 100644 GIT binary patch delta 7863 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 aDlME=Qc+o2mG2vQUH{DP+c%di>-is(7cSob delta 10105 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 PE+3iSV(YH_SKIst(Rc(K delta 8343 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 diff --git a/freemius/languages/freemius-it_IT.mo b/freemius/languages/freemius-it_IT.mo index 66469075a6e3bf522002f346610846ff038ddb4f..4348785a6429fc164577751811fde83546cd11d1 100644 GIT binary patch delta 12399 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 Y35=&oUp4WqtFQcE)Tvl?cygov0Y1qcGynhq delta 13616 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
diff --git a/freemius/templates/contact.php b/freemius/templates/contact.php index 5fdd6e3..79495ef 100755 --- a/freemius/templates/contact.php +++ b/freemius/templates/contact.php @@ -39,7 +39,7 @@ wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'json2' ); - fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.js' ); fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); fs_enqueue_local_style( 'fs_checkout', '/admin/common.css' ); diff --git a/freemius/templates/debug.php b/freemius/templates/debug.php index 4626f64..0427c08 100644 --- a/freemius/templates/debug.php +++ b/freemius/templates/debug.php @@ -17,19 +17,26 @@ $off_text = fs_text_x_inline( 'Off', 'as turned off' ); $on_text = fs_text_x_inline( 'On', 'as turned on' ); + // For some reason css was missing + fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); + $has_any_active_clone = false; $is_multisite = is_multisite(); + + $auto_off_timestamp = wp_next_scheduled( 'fs_debug_turn_off_logging_hook' ) * 1000; ?>

newest->version ?>

-
+ +
' + ' ' + '
' @@ -194,7 +194,7 @@ function registerEventHandlers() { $modal.find('.fs-price-increase-warning').show(); } else { - $primaryButton.html( ); + $primaryButton.html( ); $modal.find('.fs-price-increase-warning').hide(); } @@ -271,7 +271,7 @@ function showMessage(message) { function updateButtonLabels() { $modal.find('.button-primary').text( ); - $modal.find('.button-secondary').text( ); + $modal.find('.button-secondary').text( ); } })( jQuery ); \ No newline at end of file diff --git a/freemius/templates/powered-by.php b/freemius/templates/powered-by.php index fc10b0b..e925b0c 100755 --- a/freemius/templates/powered-by.php +++ b/freemius/templates/powered-by.php @@ -36,7 +36,7 @@ if ( ! $fs->is_whitelabeled() && ! $fs->apply_filters( 'hide_freemius_powered_by', false ) ) { wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'json2' ); - fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.js' ); fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); ?>
diff --git a/freemius/templates/pricing.php b/freemius/templates/pricing.php index 842e4fe..05879a5 100644 --- a/freemius/templates/pricing.php +++ b/freemius/templates/pricing.php @@ -39,7 +39,7 @@ wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'json2' ); - fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.js' ); fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); From 62e168a2665aa7e677407ed8f48174614a4db298 Mon Sep 17 00:00:00 2001 From: Sarai Acevedo Date: Fri, 11 Oct 2024 01:48:08 -0400 Subject: [PATCH 2/2] Update version and readme. --- readme.txt | 14 ++++++++++---- user-menus.php | 4 ++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/readme.txt b/readme.txt index 00c8f47..4a87b56 100644 --- a/readme.txt +++ b/readme.txt @@ -5,10 +5,10 @@ Plugin URI: https://wordpress.org/plugins/user-menus/ Donate link: https://code-atlantic.com/donate/ Tags: menu, menus, user-menu, logout, nav-menu, nav-menus, user, user-role, user-roles Requires at least: 4.6 -Tested up to: 6.1 -Stable tag: 1.3.2 +Tested up to: 6.6.2 +Stable tag: 1.3.3 Requires PHP: 5.6 -Freemius: 2.4.5 +Freemius: 2.8.1 License: GPLv3 or Any Later Version Show/hide menu items to logged in users, logged out users or specific user roles. Display logged in user details in menu. Add a logout link to menu. @@ -37,7 +37,7 @@ User Menus allows you to do the following: * Show a logged in user’s {first_name} in a menu item * Show a logged in user’s {last_name} in a menu item * Show a logged in user’s {display_name} in a menu item -* Show a logged in user’s nickname} in a menu item +* Show a logged in user’s {nickname} in a menu item * Show a logged in user’s {email} in a menu item * Add a logout link to the menu (optional redirect settings) * Add a register link to the menu (optional redirect settings) @@ -112,6 +112,12 @@ Bugs can be reported either in our support forum or preferably on the [User Menu == Changelog == += v1.3.3 - 10/11/2024= + +* Tweak: Update freemius sdk to the latest version. + +* Update version and readme. + = v1.3.2 - 07/19/2023 = * Security: Fixes from the freemius library, notice can be seen [here](https://freemius.com/blog/freemius-wordpress-sdk-security-vulnerability/) diff --git a/user-menus.php b/user-menus.php index c8bee19..39a53f5 100644 --- a/user-menus.php +++ b/user-menus.php @@ -3,7 +3,7 @@ * Plugin Name: User Menus * Plugin URI: https://wordpress.org/plugins/user-menus/ * Description: Quickly customize your menus with a user's name & avatar, or show items based on user role. - * Version: 1.3.2 + * Version: 1.3.3 * Author: Code Atlantic * Author URI: https://code-atlantic.com/ * License: GPL2 or later @@ -83,7 +83,7 @@ class JP_User_Menus { * * @var string */ - public static $VER = '1.3.2'; + public static $VER = '1.3.3'; /** * Minimum PHP version

GH}-JjyF=Q^i5OHql<-$VWNzTeMR=#oytTL$%iq z6yfZE4e6JNdM+9DTt62NLXA5LRf%kzjd!9FI*ID|=dX9O^Z);oSKs@ekLzjg z|4e+<$iI2|s(ZiYd)39?JYbiYU6NCpH>2$8wZ{F&V*k6tRpa<-3YPhXPCe*LD@^kJ NG__4#Y2m$N{tXL`mQw%# delta 10550 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 diff --git a/freemius/languages/freemius-nl_NL.mo b/freemius/languages/freemius-nl_NL.mo index b3024ef3e2ea50d1430aaf0c758b9fd4b196f123..37c9c5b1227d406a329bf32d1186b6219d128abf 100644 GIT binary patch delta 8684 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 EU!4TVOaK4? delta 11337 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 eiVA3-HXwOWdO$>I?a)gB7I9kZMFStZ5gzb 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 I%wvQ82W?~_OaK4? delta 9382 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 aHm|A^88bH0bL~X5XZyKgyDpCQ-Tr?mrCw72 diff --git a/freemius/languages/freemius-zh_CN.mo b/freemius/languages/freemius-zh_CN.mo index 6ac09184a8cf8253b5a23eeae6fcc69e0fe4d49f..d4f4fda1950f5c572e02489060430d3949d7d773 100644 GIT binary patch delta 19735 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 delta 13887 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 G`u!g!Aoo=O diff --git a/freemius/languages/freemius.pot b/freemius/languages/freemius.pot index 3bdefb1..ff30eda 100644 --- a/freemius/languages/freemius.pot +++ b/freemius/languages/freemius.pot @@ -1,4 +1,4 @@ -# Copyright (C) 2023 freemius +# Copyright (C) 2024 freemius # This file is distributed under the same license as the freemius package. msgid "" msgstr "" @@ -8,873 +8,881 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Freemius Team \n" "Last-Translator: Vova Feldman \n" +"POT-Creation-Date: 2024-04-22 10:16+0000\n" "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n" "X-Poedit-Basepath: ..\n" -"X-Poedit-KeywordsList: get_text_inline;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;get_text_x_inline:1,2c;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n" +"X-Poedit-KeywordsList: get_text_inline;get_text_x_inline:1,2c;$this->get_text_inline;$this->get_text_x_inline:1,2c;$this->_fs->get_text_inline;$this->_fs->get_text_x_inline:1,2c;$this->fs->get_text_inline;$this->fs->get_text_x_inline:1,2c;$fs->get_text_inline;$fs->get_text_x_inline:1,2c;$this->_parent->get_text_inline;$this->_parent->get_text_x_inline:1,2c;fs_text_inline;fs_echo_inline;fs_esc_js_inline;fs_esc_attr_inline;fs_esc_attr_echo_inline;fs_esc_html_inline;fs_esc_html_echo_inline;fs_text_x_inline:1,2c;fs_echo_x_inline:1,2c;fs_esc_attr_x_inline:1,2c;fs_esc_js_x_inline:1,2c;fs_esc_js_echo_x_inline:1,2c;fs_esc_html_x_inline:1,2c;fs_esc_html_echo_x_inline:1,2c\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: *.js\n" "X-Poedit-SourceCharset: UTF-8\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: includes/class-freemius.php:1748, templates/account.php:947 +#: includes/class-freemius.php:1781, templates/account.php:943 msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned." msgstr "" -#: includes/class-freemius.php:1755 +#: includes/class-freemius.php:1788 msgid "Would you like to proceed with the update?" msgstr "" -#: includes/class-freemius.php:1980 +#: includes/class-freemius.php:2013 msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error." msgstr "" -#: includes/class-freemius.php:1982, includes/fs-plugin-info-dialog.php:1517 +#: includes/class-freemius.php:2015, includes/fs-plugin-info-dialog.php:1513 msgid "Error" msgstr "" -#: includes/class-freemius.php:2428 +#: includes/class-freemius.php:2461 msgid "I found a better %s" msgstr "" -#: includes/class-freemius.php:2430 +#: includes/class-freemius.php:2463 msgid "What's the %s's name?" msgstr "" -#: includes/class-freemius.php:2436 +#: includes/class-freemius.php:2469 msgid "It's a temporary %s - I'm troubleshooting an issue" msgstr "" -#: includes/class-freemius.php:2438 +#: includes/class-freemius.php:2471 msgid "Deactivation" msgstr "" -#: includes/class-freemius.php:2439 +#: includes/class-freemius.php:2472 msgid "Theme Switch" msgstr "" -#: includes/class-freemius.php:2448, templates/forms/resend-key.php:24, templates/forms/user-change.php:29 +#: includes/class-freemius.php:2481, templates/forms/resend-key.php:24, templates/forms/user-change.php:29 msgid "Other" msgstr "" -#: includes/class-freemius.php:2456 +#: includes/class-freemius.php:2489 msgid "I no longer need the %s" msgstr "" -#: includes/class-freemius.php:2463 +#: includes/class-freemius.php:2496 msgid "I only needed the %s for a short period" msgstr "" -#: includes/class-freemius.php:2469 +#: includes/class-freemius.php:2502 msgid "The %s broke my site" msgstr "" -#: includes/class-freemius.php:2476 +#: includes/class-freemius.php:2509 msgid "The %s suddenly stopped working" msgstr "" -#: includes/class-freemius.php:2486 +#: includes/class-freemius.php:2519 msgid "I can't pay for it anymore" msgstr "" -#: includes/class-freemius.php:2488 +#: includes/class-freemius.php:2521 msgid "What price would you feel comfortable paying?" msgstr "" -#: includes/class-freemius.php:2494 +#: includes/class-freemius.php:2527 msgid "I don't like to share my information with you" msgstr "" -#: includes/class-freemius.php:2515 +#: includes/class-freemius.php:2548 msgid "The %s didn't work" msgstr "" -#: includes/class-freemius.php:2525 +#: includes/class-freemius.php:2558 msgid "I couldn't understand how to make it work" msgstr "" -#: includes/class-freemius.php:2533 +#: includes/class-freemius.php:2566 msgid "The %s is great, but I need specific feature that you don't support" msgstr "" -#: includes/class-freemius.php:2535 +#: includes/class-freemius.php:2568 msgid "What feature?" msgstr "" -#: includes/class-freemius.php:2539 +#: includes/class-freemius.php:2572 msgid "The %s is not working" msgstr "" -#: includes/class-freemius.php:2541 +#: includes/class-freemius.php:2574 msgid "Kindly share what didn't work so we can fix it for future users..." msgstr "" -#: includes/class-freemius.php:2545 +#: includes/class-freemius.php:2578 msgid "It's not what I was looking for" msgstr "" -#: includes/class-freemius.php:2547 +#: includes/class-freemius.php:2580 msgid "What you've been looking for?" msgstr "" -#: includes/class-freemius.php:2551 +#: includes/class-freemius.php:2584 msgid "The %s didn't work as expected" msgstr "" -#: includes/class-freemius.php:2553 +#: includes/class-freemius.php:2586 msgid "What did you expect?" msgstr "" -#: includes/class-freemius.php:3641, templates/debug.php:24 +#: includes/class-freemius.php:3685, templates/debug.php:24 msgid "Freemius Debug" msgstr "" -#: includes/class-freemius.php:4755 +#. translators: %s: License type (e.g. you have a professional license) +#: includes/class-freemius.php:4828 msgid "You have purchased a %s license." msgstr "" -#: includes/class-freemius.php:4759 +#: includes/class-freemius.php:4832 msgid " The %s's %sdownload link%s, license key, and installation instructions have been sent to %s. If you can't find the email after 5 min, please check your spam box." msgstr "" -#: includes/class-freemius.php:4769, includes/class-freemius.php:21125, includes/class-freemius.php:24783 +#: includes/class-freemius.php:4842, includes/class-freemius.php:21174, includes/class-freemius.php:24859 msgctxt "interjection expressing joy or exuberance" msgid "Yee-haw" msgstr "" -#: includes/class-freemius.php:4783 +#: includes/class-freemius.php:4856 msgctxt "addonX cannot run without pluginY" msgid "%s cannot run without %s." msgstr "" -#: includes/class-freemius.php:4784 +#: includes/class-freemius.php:4857 msgctxt "addonX cannot run..." msgid "%s cannot run without the plugin." msgstr "" -#: includes/class-freemius.php:4786, includes/class-freemius.php:5978, includes/class-freemius.php:13730, includes/class-freemius.php:14469, includes/class-freemius.php:18281, includes/class-freemius.php:18394, includes/class-freemius.php:18571, includes/class-freemius.php:20856, includes/class-freemius.php:21955, includes/class-freemius.php:22971, includes/class-freemius.php:23101, includes/class-freemius.php:23231, templates/add-ons.php:57 +#: includes/class-freemius.php:4859, includes/class-freemius.php:6051, includes/class-freemius.php:13828, includes/class-freemius.php:14575, includes/class-freemius.php:18330, includes/class-freemius.php:18443, includes/class-freemius.php:18620, includes/class-freemius.php:20905, includes/class-freemius.php:22020, includes/class-freemius.php:23036, includes/class-freemius.php:23166, includes/class-freemius.php:23309, templates/add-ons.php:57 msgctxt "exclamation" msgid "Oops" msgstr "" -#: includes/class-freemius.php:5065 +#: includes/class-freemius.php:5138 msgid "There was an unexpected API error while processing your request. Please try again in a few minutes and if it still doesn't work, contact the %s's author with the following:" msgstr "" -#: includes/class-freemius.php:5645 +#. translators: %s: License type (e.g. you have a professional license) +#: includes/class-freemius.php:5743 +msgid "You have a %s license." +msgstr "" + +#: includes/class-freemius.php:5716 msgid "Premium %s version was successfully activated." msgstr "" -#: includes/class-freemius.php:5657, includes/class-freemius.php:7692 +#: includes/class-freemius.php:5728, includes/class-freemius.php:7765 msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)." msgid "W00t" msgstr "" -#: includes/class-freemius.php:5672 -msgid "You have a %s license." -msgstr "" - -#: includes/class-freemius.php:5961 +#: includes/class-freemius.php:6034 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." msgstr "" -#: includes/class-freemius.php:5965 +#: includes/class-freemius.php:6038 msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin." msgstr "" -#: includes/class-freemius.php:5974, templates/add-ons.php:186, templates/account/partials/addon.php:386 +#: includes/class-freemius.php:6047, templates/add-ons.php:186, templates/account/partials/addon.php:386 msgid "More information about %s" msgstr "" -#: includes/class-freemius.php:5975 +#: includes/class-freemius.php:6048 msgid "Purchase License" msgstr "" -#. translators: %3$s: action (e.g.: "start the trial" or "complete the opt-in") -#: includes/class-freemius.php:6971 -msgid "You should receive a confirmation email for %1$s to your mailbox at %2$s. Please make sure you click the button in that email to %3$s." -msgstr "" - -#: includes/class-freemius.php:6974 -msgid "start the trial" -msgstr "" - -#: includes/class-freemius.php:6975, templates/connect.php:218 -msgid "complete the opt-in" -msgstr "" - -#: includes/class-freemius.php:6977 -msgid "Thanks!" -msgstr "" - #. translators: %3$s: What the user is expected to receive via email (e.g.: "the installation instructions" or "a license key") -#: includes/class-freemius.php:6980 +#: includes/class-freemius.php:7053 msgid "You should receive %3$s for %1$s to your mailbox at %2$s in the next 5 minutes." msgstr "" -#: includes/class-freemius.php:6983 -msgctxt "Part of the message telling the user what they should receive via email." -msgid "the installation instructions" -msgstr "" - -#: includes/class-freemius.php:6989 +#: includes/class-freemius.php:7062 msgctxt "Part of the message telling the user what they should receive via email." msgid "a license key" msgstr "" -#: includes/class-freemius.php:6997 +#. translators: %s: activation link (e.g.: Click here) +#: includes/class-freemius.php:7070 msgid "%s to activate the license once you get it." msgstr "" -#: includes/class-freemius.php:7005 +#: includes/class-freemius.php:7078 msgctxt "Part of an activation link message." msgid "Click here" msgstr "" -#: includes/class-freemius.php:7012 +#: includes/class-freemius.php:7056 +msgctxt "Part of the message telling the user what they should receive via email." +msgid "the installation instructions" +msgstr "" + +#: includes/class-freemius.php:7085 msgctxt "Part of the message that tells the user to check their spam folder for a specific email." msgid "the product's support email address" msgstr "" -#: includes/class-freemius.php:7018 +#: includes/class-freemius.php:7091 msgid "If you didn't get the email, try checking your spam folder or search for emails from %4$s." msgstr "" -#: includes/class-freemius.php:7020 +#: includes/class-freemius.php:7093 msgid "Thanks for upgrading." msgstr "" -#: includes/class-freemius.php:7156 +#: includes/class-freemius.php:7044 +msgid "You should receive a confirmation email for %1$s to your mailbox at %2$s. Please make sure you click the button in that email to %3$s." +msgstr "" + +#: includes/class-freemius.php:7047 +msgid "start the trial" +msgstr "" + +#: includes/class-freemius.php:7048, templates/connect.php:209 +msgid "complete the opt-in" +msgstr "" + +#: includes/class-freemius.php:7050 +msgid "Thanks!" +msgstr "" + +#: includes/class-freemius.php:7229 msgid "You are just one step away - %s" msgstr "" -#: includes/class-freemius.php:7159 +#: includes/class-freemius.php:7232 msgctxt "%s - plugin name. As complete \"PluginX\" activation now" msgid "Complete \"%s\" Activation Now" msgstr "" -#: includes/class-freemius.php:7241 +#: includes/class-freemius.php:7314 msgid "We made a few tweaks to the %s, %s" msgstr "" -#: includes/class-freemius.php:7245 +#: includes/class-freemius.php:7318 msgid "Opt in to make \"%s\" better!" msgstr "" -#: includes/class-freemius.php:7691 +#: includes/class-freemius.php:7764 msgid "The upgrade of %s was successfully completed." msgstr "" -#: includes/class-freemius.php:10441, includes/class-fs-plugin-updater.php:1100, includes/class-fs-plugin-updater.php:1315, includes/class-fs-plugin-updater.php:1322, templates/auto-installation.php:32 +#: includes/class-freemius.php:10527, includes/class-fs-plugin-updater.php:1097, includes/class-fs-plugin-updater.php:1319, includes/class-fs-plugin-updater.php:1312, templates/auto-installation.php:32 msgid "Add-On" msgstr "" -#: includes/class-freemius.php:10443, templates/account.php:411, templates/account.php:419, templates/debug.php:399, templates/debug.php:619 +#: includes/class-freemius.php:10529, templates/account.php:407, templates/account.php:415, templates/debug.php:399, templates/debug.php:619 msgid "Plugin" msgstr "" -#: includes/class-freemius.php:10444, templates/account.php:412, templates/account.php:420, templates/debug.php:399, templates/debug.php:619, templates/forms/deactivation/form.php:107 +#: includes/class-freemius.php:10530, templates/account.php:408, templates/account.php:416, templates/debug.php:399, templates/debug.php:619, templates/forms/deactivation/form.php:107 msgid "Theme" msgstr "" -#: includes/class-freemius.php:13549 +#: includes/class-freemius.php:13635 msgid "An unknown error has occurred while trying to toggle the license's white-label mode." msgstr "" -#: includes/class-freemius.php:13563 +#: includes/class-freemius.php:13649 msgid "Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s." msgstr "" -#: includes/class-freemius.php:13568, templates/account/partials/disconnect-button.php:84 +#: includes/class-freemius.php:13654, templates/account/partials/disconnect-button.php:84 msgid "User Dashboard" msgstr "" -#: includes/class-freemius.php:13569 +#: includes/class-freemius.php:13655 msgid "revert it now" msgstr "" -#: includes/class-freemius.php:13627 +#: includes/class-freemius.php:13713 msgid "An unknown error has occurred while trying to set the user's beta mode." msgstr "" -#: includes/class-freemius.php:13701 +#: includes/class-freemius.php:13799 msgid "Invalid new user ID or email address." msgstr "" -#: includes/class-freemius.php:13731 +#: includes/class-freemius.php:13829 msgid "Sorry, we could not complete the email update. Another user with the same email is already registered." msgstr "" -#: includes/class-freemius.php:13732 +#: includes/class-freemius.php:13830 msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button." msgstr "" -#: includes/class-freemius.php:13739 +#: includes/class-freemius.php:13837 msgid "Change Ownership" msgstr "" -#: includes/class-freemius.php:14336 +#: includes/class-freemius.php:14442 msgid "Invalid site details collection." msgstr "" -#: includes/class-freemius.php:14456 -msgid "We couldn't find your email address in the system, are you sure it's the right address?" +#: includes/class-freemius.php:14564 +msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?" msgstr "" -#: includes/class-freemius.php:14458 -msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?" +#: includes/class-freemius.php:14562 +msgid "We couldn't find your email address in the system, are you sure it's the right address?" msgstr "" -#: includes/class-freemius.php:14756 +#: includes/class-freemius.php:14868 msgid "Account is pending activation. Please check your email and click the link to activate your account and then submit the affiliate form again." msgstr "" -#: includes/class-freemius.php:14870, templates/forms/premium-versions-upgrade-handler.php:47 -msgid "Buy a license now" +#: includes/class-freemius.php:14994, templates/forms/premium-versions-upgrade-handler.php:46 +msgid "Renew your license now" msgstr "" -#: includes/class-freemius.php:14882, templates/forms/premium-versions-upgrade-handler.php:46 -msgid "Renew your license now" +#: includes/class-freemius.php:14982, templates/forms/premium-versions-upgrade-handler.php:47 +msgid "Buy a license now" msgstr "" -#: includes/class-freemius.php:14886 +#: includes/class-freemius.php:14998 msgid "%s to access version %s security & feature updates, and support." msgstr "" -#: includes/class-freemius.php:17621 +#: includes/class-freemius.php:17670 msgid "%s opt-in was successfully completed." msgstr "" -#: includes/class-freemius.php:17635 -msgid "Your account was successfully activated with the %s plan." +#: includes/class-freemius.php:17694, includes/class-freemius.php:21631 +msgid "Your trial has been successfully started." msgstr "" -#: includes/class-freemius.php:17645, includes/class-freemius.php:21566 -msgid "Your trial has been successfully started." +#: includes/class-freemius.php:17684 +msgid "Your account was successfully activated with the %s plan." msgstr "" -#: includes/class-freemius.php:18279, includes/class-freemius.php:18392, includes/class-freemius.php:18569 +#: includes/class-freemius.php:18328, includes/class-freemius.php:18441, includes/class-freemius.php:18618 msgid "Couldn't activate %s." msgstr "" -#: includes/class-freemius.php:18280, includes/class-freemius.php:18393, includes/class-freemius.php:18570 +#: includes/class-freemius.php:18329, includes/class-freemius.php:18442, includes/class-freemius.php:18619 msgid "Please contact us with the following message:" msgstr "" -#: includes/class-freemius.php:18389, templates/forms/data-debug-mode.php:162 +#: includes/class-freemius.php:18438, templates/forms/data-debug-mode.php:162 msgid "An unknown error has occurred." msgstr "" -#: includes/class-freemius.php:18931, includes/class-freemius.php:24339 +#: includes/class-freemius.php:18980, includes/class-freemius.php:24415 msgid "Upgrade" msgstr "" -#: includes/class-freemius.php:18937 -msgid "Start Trial" +#: includes/class-freemius.php:18988 +msgid "Pricing" msgstr "" -#: includes/class-freemius.php:18939 -msgid "Pricing" +#: includes/class-freemius.php:18986 +msgid "Start Trial" msgstr "" -#: includes/class-freemius.php:19019, includes/class-freemius.php:19021 +#: includes/class-freemius.php:19068, includes/class-freemius.php:19070 msgid "Affiliation" msgstr "" -#: includes/class-freemius.php:19049, includes/class-freemius.php:19051, templates/account.php:264, templates/debug.php:366 +#: includes/class-freemius.php:19098, includes/class-freemius.php:19100, templates/account.php:260, templates/debug.php:366 msgid "Account" msgstr "" -#: includes/class-freemius.php:19065, includes/class-freemius.php:19067, includes/customizer/class-fs-customizer-support-section.php:60 +#: includes/class-freemius.php:19114, includes/class-freemius.php:19116, includes/customizer/class-fs-customizer-support-section.php:60 msgid "Contact Us" msgstr "" -#: includes/class-freemius.php:19078, includes/class-freemius.php:19080, includes/class-freemius.php:24353, templates/account.php:134, templates/account/partials/addon.php:49 +#: includes/class-freemius.php:19127, includes/class-freemius.php:19129, includes/class-freemius.php:24429, templates/account.php:130, templates/account/partials/addon.php:49 msgid "Add-Ons" msgstr "" -#: includes/class-freemius.php:19114 +#: includes/class-freemius.php:19163 msgctxt "ASCII arrow left icon" msgid "←" msgstr "" -#: includes/class-freemius.php:19114 +#: includes/class-freemius.php:19163 msgctxt "ASCII arrow right icon" msgid "➤" msgstr "" -#: includes/class-freemius.php:19116, templates/pricing.php:110 +#: includes/class-freemius.php:19165, templates/pricing.php:110 msgctxt "noun" msgid "Pricing" msgstr "" -#: includes/class-freemius.php:19329, includes/customizer/class-fs-customizer-support-section.php:67 +#: includes/class-freemius.php:19378, includes/customizer/class-fs-customizer-support-section.php:67 msgid "Support Forum" msgstr "" -#: includes/class-freemius.php:20350 +#: includes/class-freemius.php:20399 msgid "Your email has been successfully verified - you are AWESOME!" msgstr "" -#: includes/class-freemius.php:20351 +#: includes/class-freemius.php:20400 msgctxt "a positive response" msgid "Right on" msgstr "" -#: includes/class-freemius.php:20857 +#: includes/class-freemius.php:20906 msgid "seems like the key you entered doesn't match our records." msgstr "" -#: includes/class-freemius.php:20881 +#: includes/class-freemius.php:20930 msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link." msgstr "" -#: includes/class-freemius.php:21116 +#: includes/class-freemius.php:21165 msgid "Your %s Add-on plan was successfully upgraded." msgstr "" -#: includes/class-freemius.php:21118 +#. translators: %s:product name, e.g. Facebook add-on was successfully... +#: includes/class-freemius.php:21167 msgid "%s Add-on was successfully purchased." msgstr "" -#: includes/class-freemius.php:21121 +#: includes/class-freemius.php:21170 msgid "Download the latest version" msgstr "" -#: includes/class-freemius.php:21239 +#: includes/class-freemius.php:21288 msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again." msgstr "" -#: includes/class-freemius.php:21239, includes/class-freemius.php:21636, includes/class-freemius.php:21737, includes/class-freemius.php:21824 +#: includes/class-freemius.php:21288, includes/class-freemius.php:21701, includes/class-freemius.php:21802, includes/class-freemius.php:21889 msgid "Error received from the server:" msgstr "" -#: includes/class-freemius.php:21470, includes/class-freemius.php:21742, includes/class-freemius.php:21795, includes/class-freemius.php:21902 +#: includes/class-freemius.php:21529, includes/class-freemius.php:21807, includes/class-freemius.php:21860, includes/class-freemius.php:21967 msgctxt "something somebody says when they are thinking about what you have just said." msgid "Hmm" msgstr "" -#: includes/class-freemius.php:21483 +#: includes/class-freemius.php:21542 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." msgstr "" -#: includes/class-freemius.php:21484, templates/account.php:136, templates/add-ons.php:250, templates/account/partials/addon.php:51 +#: includes/class-freemius.php:21543, templates/account.php:132, templates/add-ons.php:250, templates/account/partials/addon.php:51 msgctxt "trial period" msgid "Trial" msgstr "" -#: includes/class-freemius.php:21489 +#: includes/class-freemius.php:21548 msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s." msgstr "" -#: includes/class-freemius.php:21493, includes/class-freemius.php:21545 +#: includes/class-freemius.php:21552, includes/class-freemius.php:21610 msgid "Please contact us here" msgstr "" -#: includes/class-freemius.php:21515 +#: includes/class-freemius.php:21580 msgid "Your plan was successfully changed to %s." msgstr "" -#: includes/class-freemius.php:21531 +#: includes/class-freemius.php:21596 msgid "Your license has expired. You can still continue using the free %s forever." msgstr "" -#: includes/class-freemius.php:21533 +#. translators: %1$s: product title; %2$s, %3$s: wrapping HTML anchor element; %4$s: 'plugin', 'theme', or 'add-on'. +#: includes/class-freemius.php:21598 msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions." msgstr "" -#: includes/class-freemius.php:21541 +#: includes/class-freemius.php:21606 msgid "Your license has been cancelled. If you think it's a mistake, please contact support." msgstr "" -#: includes/class-freemius.php:21554 +#: includes/class-freemius.php:21619 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." msgstr "" -#: includes/class-freemius.php:21580 +#: includes/class-freemius.php:21645 msgid "Your free trial has expired. You can still continue using all our free features." msgstr "" -#: includes/class-freemius.php:21582 +#. translators: %1$s: product title; %2$s, %3$s: wrapping HTML anchor element; %4$s: 'plugin', 'theme', or 'add-on'. +#: includes/class-freemius.php:21647 msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions." msgstr "" -#: includes/class-freemius.php:21628 +#: includes/class-freemius.php:21693 msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist the following domains:%2$s" msgstr "" -#: includes/class-freemius.php:21630 +#: includes/class-freemius.php:21695 msgid "Show error details" msgstr "" -#: includes/class-freemius.php:21733 +#: includes/class-freemius.php:21798 msgid "It looks like the license could not be activated." msgstr "" -#: includes/class-freemius.php:21775 +#: includes/class-freemius.php:21840 msgid "Your license was successfully activated." msgstr "" -#: includes/class-freemius.php:21799 +#: includes/class-freemius.php:21864 msgid "It looks like your site currently doesn't have an active license." msgstr "" -#: includes/class-freemius.php:21823 +#: includes/class-freemius.php:21888 msgid "It looks like the license deactivation failed." msgstr "" -#: includes/class-freemius.php:21852 +#: includes/class-freemius.php:21917 msgid "Your %s license was successfully deactivated." msgstr "" -#: includes/class-freemius.php:21853 +#: includes/class-freemius.php:21918 msgid "Your license was successfully deactivated, you are back to the %s plan." msgstr "" -#: includes/class-freemius.php:21856 +#: includes/class-freemius.php:21921 msgid "O.K" msgstr "" -#: includes/class-freemius.php:21909 +#: includes/class-freemius.php:21974 msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes." msgstr "" -#: includes/class-freemius.php:21918 +#: includes/class-freemius.php:21983 msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s." msgstr "" -#: includes/class-freemius.php:21960 +#: includes/class-freemius.php:22025 msgid "You are already running the %s in a trial mode." msgstr "" -#: includes/class-freemius.php:21971 +#: includes/class-freemius.php:22036 msgid "You already utilized a trial before." msgstr "" -#: includes/class-freemius.php:21985 -msgid "Plan %s do not exist, therefore, can't start a trial." +#: includes/class-freemius.php:22072 +msgid "None of the %s's plans supports a trial period." msgstr "" -#: includes/class-freemius.php:21996 -msgid "Plan %s does not support a trial period." +#: includes/class-freemius.php:22050 +msgid "Plan %s do not exist, therefore, can't start a trial." msgstr "" -#: includes/class-freemius.php:22007 -msgid "None of the %s's plans supports a trial period." +#: includes/class-freemius.php:22061 +msgid "Plan %s does not support a trial period." msgstr "" -#: includes/class-freemius.php:22056 +#: includes/class-freemius.php:22121 msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)" msgstr "" -#: includes/class-freemius.php:22092 +#: includes/class-freemius.php:22157 msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes." msgstr "" -#: includes/class-freemius.php:22111 +#: includes/class-freemius.php:22176 msgid "Your %s free trial was successfully cancelled." msgstr "" -#: includes/class-freemius.php:22438 -msgid "Version %s was released." +#: includes/class-freemius.php:22520 +msgid "Seems like you got the latest release." msgstr "" -#: includes/class-freemius.php:22438 -msgid "Please download %s." +#: includes/class-freemius.php:22521 +msgid "You are all good!" msgstr "" -#: includes/class-freemius.php:22445 -msgid "the latest %s version here" +#: includes/class-freemius.php:22503 +msgid "Version %s was released." msgstr "" -#: includes/class-freemius.php:22450 -msgid "New" +#: includes/class-freemius.php:22503 +msgid "Please download %s." msgstr "" -#: includes/class-freemius.php:22455 -msgid "Seems like you got the latest release." +#: includes/class-freemius.php:22510 +msgid "the latest %s version here" msgstr "" -#: includes/class-freemius.php:22456 -msgid "You are all good!" +#: includes/class-freemius.php:22515 +msgid "New" msgstr "" -#: includes/class-freemius.php:22859 +#: includes/class-freemius.php:22924 msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box." msgstr "" -#: includes/class-freemius.php:22999 +#: includes/class-freemius.php:23064 msgid "Site successfully opted in." msgstr "" -#: includes/class-freemius.php:23000, includes/class-freemius.php:24049 +#: includes/class-freemius.php:23065, includes/class-freemius.php:24125 msgid "Awesome" msgstr "" -#: includes/class-freemius.php:23016 +#: includes/class-freemius.php:23091 +msgid "Diagnostic data will no longer be sent from %s to %s." +msgstr "" + +#: includes/class-freemius.php:23081 msgid "Sharing diagnostic data with %s helps to provide functionality that's more relevant to your website, avoid WordPress or PHP version incompatibilities that can break your website, and recognize which languages & regions the plugin should be translated and tailored to." msgstr "" -#: includes/class-freemius.php:23017 +#: includes/class-freemius.php:23082 msgid "Thank you!" msgstr "" -#: includes/class-freemius.php:23026 -msgid "Diagnostic data will no longer be sent from %s to %s." +#: includes/class-freemius.php:23251 +msgid "A confirmation email was just sent to %s. You must confirm the update within the next 4 hours. If you cannot find the email, please check your spam folder." msgstr "" -#: includes/class-freemius.php:23181 +#: includes/class-freemius.php:23249 msgid "A confirmation email was just sent to %s. The email owner must confirm the update within the next 4 hours." msgstr "" -#: includes/class-freemius.php:23183 -msgid "A confirmation email was just sent to %s. You must confirm the update within the next 4 hours. If you cannot find the email, please check your spam folder." -msgstr "" - -#: includes/class-freemius.php:23190 +#: includes/class-freemius.php:23263 msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval." msgstr "" -#: includes/class-freemius.php:23195 +#: includes/class-freemius.php:23269 msgid "%s is the new owner of the account." msgstr "" -#: includes/class-freemius.php:23197 +#: includes/class-freemius.php:23271 msgctxt "as congratulations" msgid "Congrats" msgstr "" -#: includes/class-freemius.php:23214 -msgid "Please provide your full name." +#: includes/class-freemius.php:23293 +msgid "Your name was successfully updated." msgstr "" -#: includes/class-freemius.php:23219 -msgid "Your name was successfully updated." +#: includes/class-freemius.php:23288 +msgid "Please provide your full name." msgstr "" -#: includes/class-freemius.php:23280 +#. translators: %s: User's account property (e.g. email address, name) +#: includes/class-freemius.php:23358 msgid "You have successfully updated your %s." msgstr "" -#: includes/class-freemius.php:23339 +#: includes/class-freemius.php:23422 msgid "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin." msgstr "" -#: includes/class-freemius.php:23342 +#: includes/class-freemius.php:23425 msgid "Click here" msgstr "" -#: includes/class-freemius.php:23379, includes/class-freemius.php:23376 +#: includes/class-freemius.php:23462 msgid "Bundle" msgstr "" -#: includes/class-freemius.php:23459 +#: includes/class-freemius.php:23535 msgid "Just letting you know that the add-ons information of %s is being pulled from an external server." msgstr "" -#: includes/class-freemius.php:23460 +#: includes/class-freemius.php:23536 msgctxt "advance notice of something that will need attention." msgid "Heads up" msgstr "" -#: includes/class-freemius.php:24089 +#: includes/class-freemius.php:24165 msgctxt "exclamation" msgid "Hey" msgstr "" -#: includes/class-freemius.php:24089 +#: includes/class-freemius.php:24165 msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial." msgstr "" -#: includes/class-freemius.php:24097 +#: includes/class-freemius.php:24173 msgid "No commitment for %s days - cancel anytime!" msgstr "" -#: includes/class-freemius.php:24098 +#: includes/class-freemius.php:24174 msgid "No credit card required" msgstr "" -#: includes/class-freemius.php:24105, templates/forms/trial-start.php:53 +#: includes/class-freemius.php:24181, templates/forms/trial-start.php:53 msgctxt "call to action" msgid "Start free trial" msgstr "" -#: includes/class-freemius.php:24182 +#: includes/class-freemius.php:24258 msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!" msgstr "" -#: includes/class-freemius.php:24191 +#: includes/class-freemius.php:24267 msgid "Learn more" msgstr "" -#: includes/class-freemius.php:24377, templates/account.php:573, templates/account.php:725, templates/connect.php:221, templates/connect.php:447, includes/managers/class-fs-clone-manager.php:1295, templates/forms/license-activation.php:27, templates/account/partials/addon.php:326 +#: includes/class-freemius.php:24453, templates/account.php:569, templates/account.php:721, templates/connect.php:212, templates/connect.php:440, includes/managers/class-fs-clone-manager.php:1295, templates/forms/license-activation.php:27, templates/account/partials/addon.php:326 msgid "Activate License" msgstr "" -#: includes/class-freemius.php:24378, templates/account.php:667, templates/account.php:724, templates/account/partials/addon.php:327, templates/account/partials/site.php:273 +#: includes/class-freemius.php:24454, templates/account.php:663, templates/account.php:720, templates/account/partials/addon.php:327, templates/account/partials/site.php:273 msgid "Change License" msgstr "" -#: includes/class-freemius.php:24485, templates/account/partials/site.php:170 -msgid "Opt Out" -msgstr "" - -#: includes/class-freemius.php:24487, includes/class-freemius.php:24493, templates/account/partials/site.php:49, templates/account/partials/site.php:170 +#: includes/class-freemius.php:24569, includes/class-freemius.php:24563, templates/account/partials/site.php:49, templates/account/partials/site.php:170 msgid "Opt In" msgstr "" -#: includes/class-freemius.php:24728 -msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s" -msgstr "" - -#: includes/class-freemius.php:24738 -msgid "Activate %s features" +#: includes/class-freemius.php:24561, templates/account/partials/site.php:170 +msgid "Opt Out" msgstr "" -#: includes/class-freemius.php:24751 +#: includes/class-freemius.php:24827 msgid "Please follow these steps to complete the upgrade" msgstr "" -#: includes/class-freemius.php:24755 +#. translators: %s: Plan title +#: includes/class-freemius.php:24831 msgid "Download the latest %s version" msgstr "" -#: includes/class-freemius.php:24759 +#: includes/class-freemius.php:24835 msgid "Upload and activate the downloaded version" msgstr "" -#: includes/class-freemius.php:24761 +#: includes/class-freemius.php:24837 msgid "How to upload and activate?" msgstr "" -#: includes/class-freemius.php:24796 +#: includes/class-freemius.php:24804 +msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s" +msgstr "" + +#: includes/class-freemius.php:24814 +msgid "Activate %s features" +msgstr "" + +#: includes/class-freemius.php:24872 msgid "Your plan was successfully upgraded." msgstr "" -#: includes/class-freemius.php:24797 +#: includes/class-freemius.php:24873 msgid "Your plan was successfully activated." msgstr "" -#: includes/class-freemius.php:24927 +#: includes/class-freemius.php:25003 msgid "%sClick here%s to choose the sites where you'd like to activate the license on." msgstr "" -#: includes/class-freemius.php:25096 +#: includes/class-freemius.php:25172 msgid "Auto installation only works for opted-in users." msgstr "" -#: includes/class-freemius.php:25106, includes/class-freemius.php:25139, includes/class-fs-plugin-updater.php:1294, includes/class-fs-plugin-updater.php:1308 +#: includes/class-freemius.php:25182, includes/class-freemius.php:25215, includes/class-fs-plugin-updater.php:1291, includes/class-fs-plugin-updater.php:1305 msgid "Invalid module ID." msgstr "" -#: includes/class-freemius.php:25115, includes/class-fs-plugin-updater.php:1330 +#: includes/class-freemius.php:25223, includes/class-fs-plugin-updater.php:1326 +msgid "Premium add-on version already installed." +msgstr "" + +#: includes/class-freemius.php:25191, includes/class-fs-plugin-updater.php:1327 msgid "Premium version already active." msgstr "" -#: includes/class-freemius.php:25122 +#: includes/class-freemius.php:25198 msgid "You do not have a valid license to access the premium version." msgstr "" -#: includes/class-freemius.php:25129 +#: includes/class-freemius.php:25205 msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version." msgstr "" -#: includes/class-freemius.php:25147, includes/class-fs-plugin-updater.php:1329 -msgid "Premium add-on version already installed." -msgstr "" - -#: includes/class-freemius.php:25501 +#: includes/class-freemius.php:25583 msgid "View paid features" msgstr "" -#: includes/class-freemius.php:25805 -msgid "Thank you so much for using %s and its add-ons!" +#: includes/class-freemius.php:25898 +msgid "Thank you so much for using our products!" msgstr "" -#: includes/class-freemius.php:25806 -msgid "Thank you so much for using %s!" +#: includes/class-freemius.php:25899 +msgid "You've already opted-in to our usage-tracking, which helps us keep improving them." msgstr "" -#: includes/class-freemius.php:25812 -msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s." +#: includes/class-freemius.php:25918 +msgid "%s and its add-ons" msgstr "" -#: includes/class-freemius.php:25816 -msgid "Thank you so much for using our products!" +#: includes/class-freemius.php:25927 +msgid "Products" msgstr "" -#: includes/class-freemius.php:25817 -msgid "You've already opted-in to our usage-tracking, which helps us keep improving them." +#: includes/class-freemius.php:25887 +msgid "Thank you so much for using %s and its add-ons!" msgstr "" -#: includes/class-freemius.php:25836 -msgid "%s and its add-ons" +#: includes/class-freemius.php:25888 +msgid "Thank you so much for using %s!" msgstr "" -#: includes/class-freemius.php:25845 -msgid "Products" +#: includes/class-freemius.php:25894 +msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s." msgstr "" -#: includes/class-freemius.php:25852, templates/connect.php:322 +#: includes/class-freemius.php:25934, templates/connect.php:313 msgid "Yes" msgstr "" -#: includes/class-freemius.php:25853, templates/connect.php:323 +#: includes/class-freemius.php:25935, templates/connect.php:314 msgid "send me security & feature updates, educational content and offers." msgstr "" -#: includes/class-freemius.php:25854, templates/connect.php:328 +#: includes/class-freemius.php:25936, templates/connect.php:319 msgid "No" msgstr "" -#: includes/class-freemius.php:25856, templates/connect.php:330 +#: includes/class-freemius.php:25938, templates/connect.php:321 msgid "do %sNOT%s send me security & feature updates, educational content and offers." msgstr "" -#: includes/class-freemius.php:25866 +#: includes/class-freemius.php:25948 msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)" msgstr "" -#: includes/class-freemius.php:25868, templates/connect.php:337 +#: includes/class-freemius.php:25950, templates/connect.php:328 msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:" msgstr "" -#: includes/class-freemius.php:26158 +#: includes/class-freemius.php:26240 msgid "License key is empty." msgstr "" -#: includes/class-fs-plugin-updater.php:210, templates/forms/premium-versions-upgrade-handler.php:57 +#: includes/class-fs-plugin-updater.php:212, templates/forms/premium-versions-upgrade-handler.php:57 msgid "Renew license" msgstr "" -#: includes/class-fs-plugin-updater.php:215, templates/forms/premium-versions-upgrade-handler.php:58 +#: includes/class-fs-plugin-updater.php:217, templates/forms/premium-versions-upgrade-handler.php:58 msgid "Buy license" msgstr "" -#: includes/class-fs-plugin-updater.php:335, includes/class-fs-plugin-updater.php:368 +#: includes/class-fs-plugin-updater.php:370, includes/class-fs-plugin-updater.php:337 msgid "There is a %s of %s available." msgstr "" -#: includes/class-fs-plugin-updater.php:337, includes/class-fs-plugin-updater.php:373 +#: includes/class-fs-plugin-updater.php:375, includes/class-fs-plugin-updater.php:339 msgid "new Beta version" msgstr "" -#: includes/class-fs-plugin-updater.php:338, includes/class-fs-plugin-updater.php:374 +#: includes/class-fs-plugin-updater.php:376, includes/class-fs-plugin-updater.php:340 msgid "new version" msgstr "" -#: includes/class-fs-plugin-updater.php:397 +#: includes/class-fs-plugin-updater.php:399 msgid "Important Upgrade Notice:" msgstr "" -#: includes/class-fs-plugin-updater.php:1359 +#: includes/class-fs-plugin-updater.php:1356 msgid "Installing plugin: %s" msgstr "" -#: includes/class-fs-plugin-updater.php:1400 +#: includes/class-fs-plugin-updater.php:1397 msgid "Unable to connect to the filesystem. Please confirm your credentials." msgstr "" -#: includes/class-fs-plugin-updater.php:1582 +#: includes/class-fs-plugin-updater.php:1579 msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work." msgstr "" @@ -887,24 +895,25 @@ msgctxt "verb" msgid "Purchase" msgstr "" +#. translators: %s: N-days trial #: includes/fs-plugin-info-dialog.php:547 msgid "Start my free %s" msgstr "" -#: includes/fs-plugin-info-dialog.php:745 -msgid "Install Free Version Update Now" +#: includes/fs-plugin-info-dialog.php:755 +msgid "Install Free Version Now" msgstr "" -#: includes/fs-plugin-info-dialog.php:746, templates/account.php:656 -msgid "Install Update Now" +#: includes/fs-plugin-info-dialog.php:756, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:423, templates/account/partials/addon.php:370 +msgid "Install Now" msgstr "" -#: includes/fs-plugin-info-dialog.php:755 -msgid "Install Free Version Now" +#: includes/fs-plugin-info-dialog.php:745 +msgid "Install Free Version Update Now" msgstr "" -#: includes/fs-plugin-info-dialog.php:756, templates/add-ons.php:323, templates/auto-installation.php:111, templates/account/partials/addon.php:370, templates/account/partials/addon.php:423 -msgid "Install Now" +#: includes/fs-plugin-info-dialog.php:746, templates/account.php:652 +msgid "Install Update Now" msgstr "" #: includes/fs-plugin-info-dialog.php:772 @@ -912,558 +921,569 @@ msgctxt "as download latest version" msgid "Download Latest Free Version" msgstr "" -#: includes/fs-plugin-info-dialog.php:773, templates/account.php:114, templates/add-ons.php:37, templates/account/partials/addon.php:30 +#: includes/fs-plugin-info-dialog.php:773, templates/account.php:110, templates/add-ons.php:37, templates/account/partials/addon.php:30 msgctxt "as download latest version" msgid "Download Latest" msgstr "" -#: includes/fs-plugin-info-dialog.php:788, templates/add-ons.php:329, templates/account/partials/addon.php:361, templates/account/partials/addon.php:417 +#: includes/fs-plugin-info-dialog.php:788, templates/add-ons.php:329, templates/account/partials/addon.php:417, templates/account/partials/addon.php:361 msgid "Activate this add-on" msgstr "" -#: includes/fs-plugin-info-dialog.php:790, templates/connect.php:444 +#: includes/fs-plugin-info-dialog.php:790, templates/connect.php:437 msgid "Activate Free Version" msgstr "" -#: includes/fs-plugin-info-dialog.php:791, templates/account.php:138, templates/add-ons.php:330, templates/account/partials/addon.php:53 +#: includes/fs-plugin-info-dialog.php:791, templates/account.php:134, templates/add-ons.php:330, templates/account/partials/addon.php:53 msgid "Activate" msgstr "" -#: includes/fs-plugin-info-dialog.php:1003 +#: includes/fs-plugin-info-dialog.php:999 msgctxt "Plugin installer section title" msgid "Description" msgstr "" -#: includes/fs-plugin-info-dialog.php:1004 +#: includes/fs-plugin-info-dialog.php:1000 msgctxt "Plugin installer section title" msgid "Installation" msgstr "" -#: includes/fs-plugin-info-dialog.php:1005 +#: includes/fs-plugin-info-dialog.php:1001 msgctxt "Plugin installer section title" msgid "FAQ" msgstr "" -#: includes/fs-plugin-info-dialog.php:1006, templates/plugin-info/description.php:55 +#: includes/fs-plugin-info-dialog.php:1002, templates/plugin-info/description.php:55 msgid "Screenshots" msgstr "" -#: includes/fs-plugin-info-dialog.php:1007 +#: includes/fs-plugin-info-dialog.php:1003 msgctxt "Plugin installer section title" msgid "Changelog" msgstr "" -#: includes/fs-plugin-info-dialog.php:1008 +#: includes/fs-plugin-info-dialog.php:1004 msgctxt "Plugin installer section title" msgid "Reviews" msgstr "" -#: includes/fs-plugin-info-dialog.php:1009 +#: includes/fs-plugin-info-dialog.php:1005 msgctxt "Plugin installer section title" msgid "Other Notes" msgstr "" -#: includes/fs-plugin-info-dialog.php:1024 +#: includes/fs-plugin-info-dialog.php:1020 msgctxt "Plugin installer section title" msgid "Features & Pricing" msgstr "" -#: includes/fs-plugin-info-dialog.php:1034 +#: includes/fs-plugin-info-dialog.php:1030 msgid "Plugin Install" msgstr "" -#: includes/fs-plugin-info-dialog.php:1106 +#: includes/fs-plugin-info-dialog.php:1102 msgctxt "e.g. Professional Plan" msgid "%s Plan" msgstr "" -#: includes/fs-plugin-info-dialog.php:1132 +#: includes/fs-plugin-info-dialog.php:1128 msgctxt "e.g. the best product" msgid "Best" msgstr "" -#: includes/fs-plugin-info-dialog.php:1138, includes/fs-plugin-info-dialog.php:1158 +#: includes/fs-plugin-info-dialog.php:1134, includes/fs-plugin-info-dialog.php:1154 msgctxt "as every month" msgid "Monthly" msgstr "" -#: includes/fs-plugin-info-dialog.php:1141 +#: includes/fs-plugin-info-dialog.php:1137 msgctxt "as once a year" msgid "Annual" msgstr "" -#: includes/fs-plugin-info-dialog.php:1144 +#: includes/fs-plugin-info-dialog.php:1140 msgid "Lifetime" msgstr "" -#: includes/fs-plugin-info-dialog.php:1158, includes/fs-plugin-info-dialog.php:1160, includes/fs-plugin-info-dialog.php:1162 +#: includes/fs-plugin-info-dialog.php:1154, includes/fs-plugin-info-dialog.php:1156, includes/fs-plugin-info-dialog.php:1158 msgctxt "e.g. billed monthly" msgid "Billed %s" msgstr "" -#: includes/fs-plugin-info-dialog.php:1160 +#: includes/fs-plugin-info-dialog.php:1156 msgctxt "as once a year" msgid "Annually" msgstr "" -#: includes/fs-plugin-info-dialog.php:1162 +#: includes/fs-plugin-info-dialog.php:1158 msgctxt "as once a year" msgid "Once" msgstr "" -#: includes/fs-plugin-info-dialog.php:1168 +#: includes/fs-plugin-info-dialog.php:1164 msgid "Single Site License" msgstr "" -#: includes/fs-plugin-info-dialog.php:1170 +#: includes/fs-plugin-info-dialog.php:1166 msgid "Unlimited Licenses" msgstr "" -#: includes/fs-plugin-info-dialog.php:1172 +#: includes/fs-plugin-info-dialog.php:1168 msgid "Up to %s Sites" msgstr "" -#: includes/fs-plugin-info-dialog.php:1182, templates/plugin-info/features.php:82 +#: includes/fs-plugin-info-dialog.php:1178, templates/plugin-info/features.php:82 msgctxt "as monthly period" msgid "mo" msgstr "" -#: includes/fs-plugin-info-dialog.php:1189, templates/plugin-info/features.php:80 +#: includes/fs-plugin-info-dialog.php:1185, templates/plugin-info/features.php:80 msgctxt "as annual period" msgid "year" msgstr "" -#: includes/fs-plugin-info-dialog.php:1243 +#: includes/fs-plugin-info-dialog.php:1239 msgctxt "noun" msgid "Price" msgstr "" -#: includes/fs-plugin-info-dialog.php:1291 +#. translators: %s: Discount (e.g. discount of $5 or 10%) +#: includes/fs-plugin-info-dialog.php:1287 msgid "Save %s" msgstr "" -#: includes/fs-plugin-info-dialog.php:1301 +#: includes/fs-plugin-info-dialog.php:1297 msgid "No commitment for %s - cancel anytime" msgstr "" -#: includes/fs-plugin-info-dialog.php:1304 +#: includes/fs-plugin-info-dialog.php:1300 msgid "After your free %s, pay as little as %s" msgstr "" -#: includes/fs-plugin-info-dialog.php:1315 +#: includes/fs-plugin-info-dialog.php:1311 msgid "Details" msgstr "" -#: includes/fs-plugin-info-dialog.php:1319, templates/account.php:125, templates/debug.php:232, templates/debug.php:269, templates/debug.php:518, templates/account/partials/addon.php:41 +#: includes/fs-plugin-info-dialog.php:1315, templates/account.php:121, templates/debug.php:232, templates/debug.php:269, templates/debug.php:518, templates/account/partials/addon.php:41 msgctxt "product version" msgid "Version" msgstr "" -#: includes/fs-plugin-info-dialog.php:1326 +#: includes/fs-plugin-info-dialog.php:1322 msgctxt "as the plugin author" msgid "Author" msgstr "" -#: includes/fs-plugin-info-dialog.php:1333 +#: includes/fs-plugin-info-dialog.php:1329 msgid "Last Updated" msgstr "" -#: includes/fs-plugin-info-dialog.php:1338, templates/account.php:544 +#. translators: %s: time period (e.g. "2 hours" ago) +#: includes/fs-plugin-info-dialog.php:1334, templates/account.php:540 msgctxt "x-ago" msgid "%s ago" msgstr "" -#: includes/fs-plugin-info-dialog.php:1347 +#: includes/fs-plugin-info-dialog.php:1343 msgid "Requires WordPress Version" msgstr "" -#: includes/fs-plugin-info-dialog.php:1350, includes/fs-plugin-info-dialog.php:1370 +#. translators: %s: Version number. +#: includes/fs-plugin-info-dialog.php:1346, includes/fs-plugin-info-dialog.php:1366 msgid "%s or higher" msgstr "" -#: includes/fs-plugin-info-dialog.php:1358 +#: includes/fs-plugin-info-dialog.php:1354 msgid "Compatible up to" msgstr "" -#: includes/fs-plugin-info-dialog.php:1366 +#: includes/fs-plugin-info-dialog.php:1362 msgid "Requires PHP Version" msgstr "" -#: includes/fs-plugin-info-dialog.php:1379 +#: includes/fs-plugin-info-dialog.php:1375 msgid "Downloaded" msgstr "" -#: includes/fs-plugin-info-dialog.php:1383 +#. translators: %s: 1 or One (Number of times downloaded) +#: includes/fs-plugin-info-dialog.php:1379 msgid "%s time" msgstr "" -#: includes/fs-plugin-info-dialog.php:1385 +#. translators: %s: Number of times downloaded +#: includes/fs-plugin-info-dialog.php:1381 msgid "%s times" msgstr "" -#: includes/fs-plugin-info-dialog.php:1396 +#: includes/fs-plugin-info-dialog.php:1392 msgid "WordPress.org Plugin Page" msgstr "" -#: includes/fs-plugin-info-dialog.php:1405 +#: includes/fs-plugin-info-dialog.php:1401 msgid "Plugin Homepage" msgstr "" -#: includes/fs-plugin-info-dialog.php:1414, includes/fs-plugin-info-dialog.php:1498 +#: includes/fs-plugin-info-dialog.php:1410, includes/fs-plugin-info-dialog.php:1494 msgid "Donate to this plugin" msgstr "" -#: includes/fs-plugin-info-dialog.php:1421 +#: includes/fs-plugin-info-dialog.php:1417 msgid "Average Rating" msgstr "" -#: includes/fs-plugin-info-dialog.php:1428 +#: includes/fs-plugin-info-dialog.php:1424 msgid "based on %s" msgstr "" -#: includes/fs-plugin-info-dialog.php:1432 +#. translators: %s: 1 or One +#: includes/fs-plugin-info-dialog.php:1428 msgid "%s rating" msgstr "" -#: includes/fs-plugin-info-dialog.php:1434 +#. translators: %s: Number larger than 1 +#: includes/fs-plugin-info-dialog.php:1430 msgid "%s ratings" msgstr "" -#: includes/fs-plugin-info-dialog.php:1449 +#. translators: %s: 1 or One +#: includes/fs-plugin-info-dialog.php:1445 msgid "%s star" msgstr "" -#: includes/fs-plugin-info-dialog.php:1451 +#. translators: %s: Number larger than 1 +#: includes/fs-plugin-info-dialog.php:1447 msgid "%s stars" msgstr "" -#: includes/fs-plugin-info-dialog.php:1463 +#. translators: %s: # of stars (e.g. 5 stars) +#: includes/fs-plugin-info-dialog.php:1459 msgid "Click to see reviews that provided a rating of %s" msgstr "" -#: includes/fs-plugin-info-dialog.php:1476 +#: includes/fs-plugin-info-dialog.php:1472 msgid "Contributors" msgstr "" -#: includes/fs-plugin-info-dialog.php:1517 +#: includes/fs-plugin-info-dialog.php:1513 msgid "This plugin requires a newer version of PHP." msgstr "" -#: includes/fs-plugin-info-dialog.php:1526 +#. translators: %s: URL to Update PHP page. +#: includes/fs-plugin-info-dialog.php:1522 msgid "Click here to learn more about updating PHP." msgstr "" -#: includes/fs-plugin-info-dialog.php:1540, includes/fs-plugin-info-dialog.php:1542 +#: includes/fs-plugin-info-dialog.php:1538, includes/fs-plugin-info-dialog.php:1536 msgid "Warning" msgstr "" -#: includes/fs-plugin-info-dialog.php:1540 -msgid "This plugin has not been tested with your current version of WordPress." +#: includes/fs-plugin-info-dialog.php:1538 +msgid "This plugin has not been marked as compatible with your version of WordPress." msgstr "" -#: includes/fs-plugin-info-dialog.php:1542 -msgid "This plugin has not been marked as compatible with your version of WordPress." +#: includes/fs-plugin-info-dialog.php:1536 +msgid "This plugin has not been tested with your current version of WordPress." msgstr "" -#: includes/fs-plugin-info-dialog.php:1561 +#: includes/fs-plugin-info-dialog.php:1557 msgid "Paid add-on must be deployed to Freemius." msgstr "" -#: includes/fs-plugin-info-dialog.php:1562 +#: includes/fs-plugin-info-dialog.php:1558 msgid "Add-on must be deployed to WordPress.org or Freemius." msgstr "" -#: includes/fs-plugin-info-dialog.php:1583 -msgid "Newer Version (%s) Installed" +#: includes/fs-plugin-info-dialog.php:1587 +msgid "Latest Version Installed" msgstr "" -#: includes/fs-plugin-info-dialog.php:1584 -msgid "Newer Free Version (%s) Installed" +#: includes/fs-plugin-info-dialog.php:1588 +msgid "Latest Free Version Installed" msgstr "" -#: includes/fs-plugin-info-dialog.php:1591 -msgid "Latest Version Installed" +#: includes/fs-plugin-info-dialog.php:1579 +msgid "Newer Version (%s) Installed" msgstr "" -#: includes/fs-plugin-info-dialog.php:1592 -msgid "Latest Free Version Installed" +#: includes/fs-plugin-info-dialog.php:1580 +msgid "Newer Free Version (%s) Installed" msgstr "" -#: templates/account.php:115, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:31, templates/account/partials/site.php:313 +#: templates/account.php:111, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:31, templates/account/partials/site.php:313 msgid "Downgrading your plan" msgstr "" -#: templates/account.php:116, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:32, templates/account/partials/site.php:314 +#: templates/account.php:112, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:32, templates/account/partials/site.php:314 msgid "Cancelling the subscription" msgstr "" #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription' -#: templates/account.php:118, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:316 +#: templates/account.php:114, templates/forms/subscription-cancellation.php:99, templates/account/partials/addon.php:34, templates/account/partials/site.php:316 msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s." msgstr "" -#: templates/account.php:119, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:35, templates/account/partials/site.php:317 +#: templates/account.php:115, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:35, templates/account/partials/site.php:317 msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price." msgstr "" -#: templates/account.php:120, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:36 +#: templates/account.php:116, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:36 msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?" msgstr "" -#: templates/account.php:121, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:37, templates/account/partials/site.php:318 +#: templates/account.php:117, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:37, templates/account/partials/site.php:318 msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support." msgstr "" -#: templates/account.php:122, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:38, templates/account/partials/site.php:319 +#: templates/account.php:118, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:38, templates/account/partials/site.php:319 msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features." msgstr "" #. translators: %s: Plan title (e.g. "Professional") -#: templates/account.php:124, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:40 +#: templates/account.php:120, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:40 msgid "Activate %s Plan" msgstr "" #. translators: %s: Time period (e.g. Auto renews in "2 months") -#: templates/account.php:127, templates/account/partials/addon.php:43, templates/account/partials/site.php:293 +#: templates/account.php:123, templates/account/partials/addon.php:43, templates/account/partials/site.php:293 msgid "Auto renews in %s" msgstr "" #. translators: %s: Time period (e.g. Expires in "2 months") -#: templates/account.php:129, templates/account/partials/addon.php:45, templates/account/partials/site.php:295 +#: templates/account.php:125, templates/account/partials/addon.php:45, templates/account/partials/site.php:295 msgid "Expires in %s" msgstr "" -#: templates/account.php:130 +#: templates/account.php:126 msgctxt "as synchronize license" msgid "Sync License" msgstr "" -#: templates/account.php:131, templates/account/partials/addon.php:46 +#: templates/account.php:127, templates/account/partials/addon.php:46 msgid "Cancel Trial" msgstr "" -#: templates/account.php:132, templates/account/partials/addon.php:47 +#: templates/account.php:128, templates/account/partials/addon.php:47 msgid "Change Plan" msgstr "" -#: templates/account.php:133, templates/account/partials/addon.php:48 +#: templates/account.php:129, templates/account/partials/addon.php:48 msgctxt "verb" msgid "Upgrade" msgstr "" -#: templates/account.php:135, templates/account/partials/addon.php:50, templates/account/partials/site.php:320 +#: templates/account.php:131, templates/account/partials/addon.php:50, templates/account/partials/site.php:320 msgctxt "verb" msgid "Downgrade" msgstr "" -#: templates/account.php:137, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:52, templates/account/partials/site.php:33 +#: templates/account.php:133, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:52, templates/account/partials/site.php:33 msgid "Free" msgstr "" -#: templates/account.php:139, templates/debug.php:412, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:54 +#: templates/account.php:135, templates/debug.php:412, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:54 msgctxt "as product pricing plan" msgid "Plan" msgstr "" -#: templates/account.php:140 +#: templates/account.php:136 msgid "Bundle Plan" msgstr "" -#: templates/account.php:272 +#: templates/account.php:268 msgid "Free Trial" msgstr "" -#: templates/account.php:283 +#: templates/account.php:279 msgid "Account Details" msgstr "" -#: templates/account.php:290, templates/forms/data-debug-mode.php:33 -msgid "Start Debug" +#: templates/account.php:288 +msgid "Stop Debug" msgstr "" -#: templates/account.php:292 -msgid "Stop Debug" +#: templates/account.php:286, templates/forms/data-debug-mode.php:33 +msgid "Start Debug" msgstr "" -#: templates/account.php:299 +#: templates/account.php:295 msgid "Billing & Invoices" msgstr "" -#: templates/account.php:322, templates/account/partials/addon.php:236, templates/account/partials/deactivate-license-button.php:35 +#: templates/account.php:318, templates/account/partials/addon.php:236, templates/account/partials/deactivate-license-button.php:35 msgid "Deactivate License" msgstr "" -#: templates/account.php:345, templates/forms/subscription-cancellation.php:125 +#: templates/account.php:341, templates/forms/subscription-cancellation.php:125 msgid "Are you sure you want to proceed?" msgstr "" -#: templates/account.php:345, templates/account/partials/addon.php:260 +#: templates/account.php:341, templates/account/partials/addon.php:260 msgid "Cancel Subscription" msgstr "" -#: templates/account.php:374, templates/account/partials/addon.php:345 +#: templates/account.php:370, templates/account/partials/addon.php:345 msgctxt "as synchronize" msgid "Sync" msgstr "" -#: templates/account.php:389, templates/debug.php:575 +#: templates/account.php:385, templates/debug.php:575 msgid "Name" msgstr "" -#: templates/account.php:395, templates/debug.php:576 +#: templates/account.php:391, templates/debug.php:576 msgid "Email" msgstr "" -#: templates/account.php:402, templates/debug.php:410, templates/debug.php:625 +#: templates/account.php:398, templates/debug.php:410, templates/debug.php:625 msgid "User ID" msgstr "" -#: templates/account.php:420, templates/account.php:738, templates/account.php:789, templates/debug.php:267, templates/debug.php:404, templates/debug.php:515, templates/debug.php:574, templates/debug.php:623, templates/debug.php:702, templates/account/payments.php:35, templates/debug/logger.php:21 +#: templates/account.php:416, templates/account.php:734, templates/account.php:785, templates/debug.php:267, templates/debug.php:404, templates/debug.php:515, templates/debug.php:574, templates/debug.php:623, templates/debug.php:702, templates/account/payments.php:35, templates/debug/logger.php:21 msgid "ID" msgstr "" -#: templates/account.php:427 +#: templates/account.php:423 msgid "Site ID" msgstr "" -#: templates/account.php:430 +#: templates/account.php:426 msgid "No ID" msgstr "" -#: templates/account.php:435, templates/debug.php:274, templates/debug.php:413, templates/debug.php:519, templates/debug.php:578, templates/account/partials/site.php:228 +#: templates/account.php:431, templates/debug.php:274, templates/debug.php:413, templates/debug.php:519, templates/debug.php:578, templates/account/partials/site.php:228 msgid "Public Key" msgstr "" -#: templates/account.php:441, templates/debug.php:414, templates/debug.php:520, templates/debug.php:579, templates/account/partials/site.php:241 +#: templates/account.php:437, templates/debug.php:414, templates/debug.php:520, templates/debug.php:579, templates/account/partials/site.php:241 msgid "Secret Key" msgstr "" -#: templates/account.php:444 +#: templates/account.php:440 msgctxt "as secret encryption key missing" msgid "No Secret" msgstr "" -#: templates/account.php:471, templates/account/partials/site.php:120, templates/account/partials/site.php:122 -msgid "Trial" +#: templates/account.php:494, templates/debug.php:631, templates/account/partials/site.php:262 +msgid "License Key" msgstr "" -#: templates/account.php:498, templates/debug.php:631, templates/account/partials/site.php:262 -msgid "License Key" +#: templates/account.php:467, templates/account/partials/site.php:122, templates/account/partials/site.php:120 +msgid "Trial" msgstr "" -#: templates/account.php:529 +#: templates/account.php:525 msgid "Join the Beta program" msgstr "" -#: templates/account.php:535 +#: templates/account.php:531 msgid "not verified" msgstr "" -#: templates/account.php:544, templates/account/partials/addon.php:195 -msgid "Expired" +#: templates/account.php:600 +msgid "Free version" msgstr "" -#: templates/account.php:602 +#: templates/account.php:598 msgid "Premium version" msgstr "" -#: templates/account.php:604 -msgid "Free version" +#: templates/account.php:540, templates/account/partials/addon.php:195 +msgid "Expired" msgstr "" -#: templates/account.php:616 +#: templates/account.php:612 msgid "Verify Email" msgstr "" -#: templates/account.php:630 -msgid "Download %s Version" +#: templates/account.php:689, templates/forms/user-change.php:27 +msgid "Change User" msgstr "" -#: templates/account.php:646 -msgid "Download Paid Version" +#: templates/account.php:676 +msgid "What is your %s?" msgstr "" -#: templates/account.php:664, templates/account.php:927, templates/account/partials/site.php:250, templates/account/partials/site.php:272 +#: templates/account.php:684, templates/account/billing.php:21 msgctxt "verb" -msgid "Show" +msgid "Edit" msgstr "" -#: templates/account.php:680 -msgid "What is your %s?" +#: templates/account.php:660, templates/account.php:923, templates/account/partials/site.php:250, templates/account/partials/site.php:272 +msgctxt "verb" +msgid "Show" msgstr "" -#: templates/account.php:688, templates/account/billing.php:21 -msgctxt "verb" -msgid "Edit" +#: templates/account.php:626 +msgid "Download %s Version" msgstr "" -#: templates/account.php:693, templates/forms/user-change.php:27 -msgid "Change User" +#: templates/account.php:642 +msgid "Download Paid Version" msgstr "" -#: templates/account.php:717 +#: templates/account.php:713 msgid "Sites" msgstr "" -#: templates/account.php:730 +#: templates/account.php:726 msgid "Search by address" msgstr "" -#: templates/account.php:739, templates/debug.php:407 +#: templates/account.php:735, templates/debug.php:407 msgid "Address" msgstr "" -#: templates/account.php:740 +#: templates/account.php:736 msgid "License" msgstr "" -#: templates/account.php:741 +#: templates/account.php:737 msgid "Plan" msgstr "" -#: templates/account.php:792 +#: templates/account.php:788 msgctxt "as software license" msgid "License" msgstr "" -#: templates/account.php:921 +#: templates/account.php:917 msgctxt "verb" msgid "Hide" msgstr "" -#: templates/account.php:943, templates/forms/data-debug-mode.php:31, templates/forms/deactivation/form.php:358, templates/forms/deactivation/form.php:389 +#: templates/account.php:939, templates/forms/data-debug-mode.php:31, templates/forms/deactivation/form.php:358, templates/forms/deactivation/form.php:389 msgid "Processing" msgstr "" -#: templates/account.php:946 +#: templates/account.php:942 msgid "Get updates for bleeding edge Beta versions of %s." msgstr "" -#: templates/account.php:1004 +#: templates/account.php:1000 msgid "Cancelling %s" msgstr "" -#: templates/account.php:1004, templates/account.php:1021, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:178 +#: templates/account.php:1000, templates/account.php:1017, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:178 msgid "trial" msgstr "" -#: templates/account.php:1019, templates/forms/deactivation/form.php:195 +#: templates/account.php:1015, templates/forms/deactivation/form.php:195 msgid "Cancelling %s..." msgstr "" -#: templates/account.php:1022, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:179 +#: templates/account.php:1018, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:179 msgid "subscription" msgstr "" -#: templates/account.php:1036 +#: templates/account.php:1032 msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?" msgstr "" -#: templates/account.php:1110 +#: templates/account.php:1106 msgid "Disabling white-label mode" msgstr "" -#: templates/account.php:1111 +#: templates/account.php:1107 msgid "Enabling white-label mode" msgstr "" @@ -1489,11 +1509,12 @@ msgctxt "installed add-on" msgid "Installed" msgstr "" -#: templates/admin-notice.php:13, templates/forms/license-activation.php:243, templates/forms/resend-key.php:80 +#: templates/admin-notice.php:17, templates/forms/license-activation.php:245, templates/forms/resend-key.php:80 msgctxt "as close a window" msgid "Dismiss" msgstr "" +#. translators: %s: Number of seconds #: templates/auto-installation.php:45 msgid "%s sec" msgstr "" @@ -1523,143 +1544,144 @@ msgid "PCI compliant" msgstr "" #. translators: %s: name (e.g. Hey John,) -#: templates/connect.php:127 +#: templates/connect.php:118 msgctxt "greeting" msgid "Hey %s," msgstr "" -#: templates/connect.php:187 -msgid "Never miss an important update" +#. translators: %1$s: plugin name (e.g., "Awesome Plugin"); %2$s: version (e.g., "1.2.3") +#: templates/connect.php:186 +msgid "Thank you for updating to %1$s v%2$s!" msgstr "" -#: templates/connect.php:195 -msgid "Thank you for updating to %1$s v%2$s!" +#: templates/connect.php:178 +msgid "Never miss an important update" msgstr "" -#: templates/connect.php:205 +#: templates/connect.php:196 msgid "Allow & Continue" msgstr "" -#: templates/connect.php:209 -msgid "Re-send activation email" +#. translators: %s: module type (plugin, theme, or add-on) +#: templates/connect.php:236 +msgid "We have introduced this opt-in so you never miss an important update and help us make the %s more compatible with your site and better at doing what you need it to." msgstr "" -#: templates/connect.php:213 -msgid "Thanks %s!" +#: templates/connect.php:238 +msgid "Opt in to get email notifications for security & feature updates, educational content, and occasional offers, and to share some basic WordPress environment info." msgstr "" -#: templates/connect.php:214 -msgid "You should receive a confirmation email for %s to your mailbox at %s. Please make sure you click the button in that email to %s." +#: templates/connect.php:241 +msgid "If you skip this, that's okay! %1$s will still work just fine." msgstr "" -#: templates/connect.php:225 -msgid "Welcome to %s! To get started, please enter your license key:" +#: templates/connect.php:227 +msgid "Opt in to get email notifications for security & feature updates, educational content, and occasional offers, and to share some basic WordPress environment info. This will help us make the %s more compatible with your site and better at doing what you need it to." msgstr "" -#: templates/connect.php:236 -msgid "Opt in to get email notifications for security & feature updates, educational content, and occasional offers, and to share some basic WordPress environment info. This will help us make the %s more compatible with your site and better at doing what you need it to." +#: templates/connect.php:216 +msgid "Welcome to %s! To get started, please enter your license key:" msgstr "" -#. translators: %s: module type (plugin, theme, or add-on) -#: templates/connect.php:245 -msgid "We have introduced this opt-in so you never miss an important update and help us make the %s more compatible with your site and better at doing what you need it to." +#: templates/connect.php:200 +msgid "Re-send activation email" msgstr "" -#: templates/connect.php:247 -msgid "Opt in to get email notifications for security & feature updates, educational content, and occasional offers, and to share some basic WordPress environment info." +#: templates/connect.php:204 +msgid "Thanks %s!" msgstr "" -#: templates/connect.php:250 -msgid "If you skip this, that's okay! %1$s will still work just fine." +#: templates/connect.php:205 +msgid "You should receive a confirmation email for %s to your mailbox at %s. Please make sure you click the button in that email to %s." msgstr "" -#: templates/connect.php:280 +#: templates/connect.php:271 msgid "We're excited to introduce the Freemius network-level integration." msgstr "" -#: templates/connect.php:283 +#: templates/connect.php:285 +msgid "During the update process we detected %s site(s) in the network that are still pending your attention." +msgstr "" + +#: templates/connect.php:274 msgid "During the update process we detected %d site(s) that are still pending license activation." msgstr "" -#: templates/connect.php:285 +#: templates/connect.php:276 msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button." msgstr "" -#: templates/connect.php:287 +#: templates/connect.php:278 msgid "%s's paid features" msgstr "" -#: templates/connect.php:292 +#: templates/connect.php:283 msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page." msgstr "" -#: templates/connect.php:294 -msgid "During the update process we detected %s site(s) in the network that are still pending your attention." -msgstr "" - -#: templates/connect.php:303, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:42 +#: templates/connect.php:294, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:42 msgid "License key" msgstr "" -#: templates/connect.php:306, templates/forms/license-activation.php:22 +#: templates/connect.php:297, templates/forms/license-activation.php:22 msgid "Can't find your license key?" msgstr "" -#: templates/connect.php:369, templates/connect.php:693, templates/forms/deactivation/retry-skip.php:20 +#: templates/connect.php:360, templates/connect.php:690, templates/forms/deactivation/retry-skip.php:20 msgctxt "verb" msgid "Skip" msgstr "" -#: templates/connect.php:372 +#: templates/connect.php:363 msgid "Delegate to Site Admins" msgstr "" -#: templates/connect.php:372 +#: templates/connect.php:363 msgid "If you click it, this decision will be delegated to the sites administrators." msgstr "" -#: templates/connect.php:399 +#: templates/connect.php:392 msgid "License issues?" msgstr "" -#: templates/connect.php:423 -msgid "For delivery of security & feature updates, and license management, %s needs to" -msgstr "" - -#: templates/connect.php:428 +#: templates/connect.php:421 msgid "This will allow %s to" msgstr "" -#: templates/connect.php:443 -msgid "Don't have a license key?" +#: templates/connect.php:416 +msgid "For delivery of security & feature updates, and license management, %s needs to" msgstr "" -#: templates/connect.php:446 +#: templates/connect.php:439 msgid "Have a license key?" msgstr "" -#: templates/connect.php:454 +#: templates/connect.php:436 +msgid "Don't have a license key?" +msgstr "" + +#: templates/connect.php:447 msgid "Freemius is our licensing and software updates engine" msgstr "" -#: templates/connect.php:457 +#: templates/connect.php:450 msgid "Privacy Policy" msgstr "" -#: templates/connect.php:459 -msgid "License Agreement" +#: templates/connect.php:455 +msgid "Terms of Service" msgstr "" -#: templates/connect.php:459 -msgid "Terms of Service" +#: templates/connect.php:453 +msgid "License Agreement" msgstr "" -#: templates/connect.php:879 +#: templates/connect.php:876 msgctxt "as in the process of sending an email" msgid "Sending email" msgstr "" -#: templates/connect.php:880 +#: templates/connect.php:877 msgctxt "as activating plugin" msgid "Activating" msgstr "" @@ -1808,6 +1830,7 @@ msgstr "" msgid "Simulate Network Upgrade" msgstr "" +#. translators: %s: 'plugin' or 'theme' #: templates/debug.php:398 msgid "%s Installs" msgstr "" @@ -1919,6 +1942,7 @@ msgstr "" msgid "Timestamp" msgstr "" +#. translators: %s: Page name #: templates/secure-https-header.php:28 msgid "Secure HTTPS %s page, running from an external domain" msgstr "" @@ -1927,7 +1951,7 @@ msgstr "" msgid "Support" msgstr "" -#: includes/debug/class-fs-debug-bar-panel.php:48, templates/debug/api-calls.php:54, templates/debug/logger.php:62 +#: includes/debug/class-fs-debug-bar-panel.php:51, templates/debug/api-calls.php:54, templates/debug/logger.php:62 msgctxt "milliseconds" msgid "ms" msgstr "" @@ -1948,10 +1972,6 @@ msgstr "" msgid "products" msgstr "" -#: includes/managers/class-fs-clone-manager.php:1205 -msgid "%1$s has been placed into safe mode because we noticed that %2$s is an exact copy of %3$s." -msgstr "" - #: includes/managers/class-fs-clone-manager.php:1211 msgid "The products below have been placed into safe mode because we noticed that %2$s is an exact copy of %3$s:%1$s" msgstr "" @@ -1960,6 +1980,10 @@ msgstr "" msgid "The products below have been placed into safe mode because we noticed that %2$s is an exact copy of these sites:%3$s%1$s" msgstr "" +#: includes/managers/class-fs-clone-manager.php:1205 +msgid "%1$s has been placed into safe mode because we noticed that %2$s is an exact copy of %3$s." +msgstr "" + #: includes/managers/class-fs-clone-manager.php:1238 msgid "the above-mentioned sites" msgstr "" @@ -2062,6 +2086,7 @@ msgstr "" msgid "Homepage URL & title, WP & PHP versions, and site language" msgstr "" +#. translators: %s: 'Plugin' or 'Theme' #: includes/managers/class-fs-permission-manager.php:195 msgid "To provide additional functionality that's relevant to your website, avoid WordPress or PHP version incompatibilities that can break your website, and recognize which languages & regions the %s should be translated and tailored to." msgstr "" @@ -2070,6 +2095,7 @@ msgstr "" msgid "View Basic %s Info" msgstr "" +#. translators: %s: 'Plugin' or 'Theme' #: includes/managers/class-fs-permission-manager.php:210 msgid "Current %s & SDK versions, and if active or uninstalled" msgstr "" @@ -2078,9 +2104,7 @@ msgstr "" msgid "View License Essentials" msgstr "" -#: includes/managers/class-fs-permission-manager.php:262 -msgstr "" - +#. translators: %s: 'Plugin' or 'Theme' #: includes/managers/class-fs-permission-manager.php:272 msgid "To let you manage & control where the license is activated and ensure %s security & feature updates are only delivered to websites you authorize." msgstr "" @@ -2089,6 +2113,7 @@ msgstr "" msgid "View %s State" msgstr "" +#. translators: %s: 'Plugin' or 'Theme' #: includes/managers/class-fs-permission-manager.php:287 msgid "Is active, deactivated, or uninstalled" msgstr "" @@ -2109,6 +2134,7 @@ msgstr "" msgid "WordPress & PHP versions, site language & title" msgstr "" +#. translators: %s: 'Plugin' or 'Theme' #: includes/managers/class-fs-permission-manager.php:330 msgid "To avoid breaking your website due to WordPress or PHP version incompatibilities, and recognize which languages & regions the %s should be translated and tailored to." msgstr "" @@ -2308,143 +2334,143 @@ msgstr "" msgid "Next" msgstr "" -#: templates/forms/affiliation.php:83 +#: templates/forms/affiliation.php:86 msgid "Non-expiring" msgstr "" -#: templates/forms/affiliation.php:86 +#: templates/forms/affiliation.php:89 msgid "Apply to become an affiliate" msgstr "" -#: templates/forms/affiliation.php:108 -msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s." +#: templates/forms/affiliation.php:137 +msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support." msgstr "" -#: templates/forms/affiliation.php:123 -msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information." +#: templates/forms/affiliation.php:134 +msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days." msgstr "" -#: templates/forms/affiliation.php:126 +#: templates/forms/affiliation.php:131 msgid "Your affiliation account was temporarily suspended." msgstr "" -#: templates/forms/affiliation.php:129 -msgid "Thank you for applying for our affiliate program, unfortunately, we've decided at this point to reject your application. Please try again in 30 days." +#: templates/forms/affiliation.php:128 +msgid "Thank you for applying for our affiliate program, we'll review your details during the next 14 days and will get back to you with further information." msgstr "" -#: templates/forms/affiliation.php:132 -msgid "Due to violation of our affiliation terms, we decided to temporarily block your affiliation account. If you have any questions, please contact support." +#: templates/forms/affiliation.php:113 +msgid "Your affiliate application for %s has been accepted! Log in to your affiliate area at: %s." msgstr "" -#: templates/forms/affiliation.php:145 +#: templates/forms/affiliation.php:150 msgid "Like the %s? Become our ambassador and earn cash ;-)" msgstr "" -#: templates/forms/affiliation.php:146 +#: templates/forms/affiliation.php:151 msgid "Refer new customers to our %s and earn %s commission on each successful sale you refer!" msgstr "" -#: templates/forms/affiliation.php:149 +#: templates/forms/affiliation.php:154 msgid "Program Summary" msgstr "" -#: templates/forms/affiliation.php:151 +#: templates/forms/affiliation.php:156 msgid "%s commission when a customer purchases a new license." msgstr "" -#: templates/forms/affiliation.php:153 +#: templates/forms/affiliation.php:158 msgid "Get commission for automated subscription renewals." msgstr "" -#: templates/forms/affiliation.php:156 +#: templates/forms/affiliation.php:161 msgid "%s tracking cookie after the first visit to maximize earnings potential." msgstr "" -#: templates/forms/affiliation.php:159 +#: templates/forms/affiliation.php:164 msgid "Unlimited commissions." msgstr "" -#: templates/forms/affiliation.php:161 +#: templates/forms/affiliation.php:166 msgid "%s minimum payout amount." msgstr "" -#: templates/forms/affiliation.php:162 +#: templates/forms/affiliation.php:167 msgid "Payouts are in USD and processed monthly via PayPal." msgstr "" -#: templates/forms/affiliation.php:163 +#: templates/forms/affiliation.php:168 msgid "As we reserve 30 days for potential refunds, we only pay commissions that are older than 30 days." msgstr "" -#: templates/forms/affiliation.php:166 +#: templates/forms/affiliation.php:171 msgid "Affiliate" msgstr "" -#: templates/forms/affiliation.php:169, templates/forms/resend-key.php:23 +#: templates/forms/affiliation.php:174, templates/forms/resend-key.php:23 msgid "Email address" msgstr "" -#: templates/forms/affiliation.php:173 +#: templates/forms/affiliation.php:178 msgid "Full name" msgstr "" -#: templates/forms/affiliation.php:177 +#: templates/forms/affiliation.php:182 msgid "PayPal account email address" msgstr "" -#: templates/forms/affiliation.php:181 +#: templates/forms/affiliation.php:186 msgid "Where are you going to promote the %s?" msgstr "" -#: templates/forms/affiliation.php:183 +#: templates/forms/affiliation.php:188 msgid "Enter the domain of your website or other websites from where you plan to promote the %s." msgstr "" -#: templates/forms/affiliation.php:185 +#: templates/forms/affiliation.php:190 msgid "Add another domain" msgstr "" -#: templates/forms/affiliation.php:189 +#: templates/forms/affiliation.php:194 msgid "Extra Domains" msgstr "" -#: templates/forms/affiliation.php:190 +#: templates/forms/affiliation.php:195 msgid "Extra domains where you will be marketing the product from." msgstr "" -#: templates/forms/affiliation.php:200 +#: templates/forms/affiliation.php:205 msgid "Promotion methods" msgstr "" -#: templates/forms/affiliation.php:203 +#: templates/forms/affiliation.php:208 msgid "Social media (Facebook, Twitter, etc.)" msgstr "" -#: templates/forms/affiliation.php:207 +#: templates/forms/affiliation.php:212 msgid "Mobile apps" msgstr "" -#: templates/forms/affiliation.php:211 +#: templates/forms/affiliation.php:216 msgid "Website, email, and social media statistics (optional)" msgstr "" -#: templates/forms/affiliation.php:214 +#: templates/forms/affiliation.php:219 msgid "Please feel free to provide any relevant website or social media statistics, e.g. monthly unique site visits, number of email subscribers, followers, etc. (we will keep this information confidential)." msgstr "" -#: templates/forms/affiliation.php:218 +#: templates/forms/affiliation.php:223 msgid "How will you promote us?" msgstr "" -#: templates/forms/affiliation.php:221 +#: templates/forms/affiliation.php:226 msgid "Please provide details on how you intend to promote %s (please be as specific as possible)." msgstr "" -#: templates/forms/affiliation.php:233, templates/forms/resend-key.php:22, templates/account/partials/disconnect-button.php:92 +#: templates/forms/affiliation.php:238, templates/forms/resend-key.php:22, templates/forms/subscription-cancellation.php:142, templates/account/partials/disconnect-button.php:92 msgid "Cancel" msgstr "" -#: templates/forms/affiliation.php:235 +#: templates/forms/affiliation.php:240 msgid "Become an affiliate" msgstr "" @@ -2525,10 +2551,14 @@ msgstr "" msgid "Agree & Activate License" msgstr "" -#: templates/forms/license-activation.php:204 +#: templates/forms/license-activation.php:206 msgid "Associate with the license owner's account." msgstr "" +#: templates/forms/optout.php:104 +msgid "Keep automatic updates" +msgstr "" + #: templates/forms/optout.php:44 msgid "Communication" msgstr "" @@ -2549,10 +2579,6 @@ msgstr "" msgid "Extensions" msgstr "" -#: templates/forms/optout.php:104 -msgid "Keep automatic updates" -msgstr "" - #: templates/forms/premium-versions-upgrade-handler.php:40 msgid "There is a new version of %s available." msgstr "" @@ -2614,10 +2640,12 @@ msgstr "" msgid "Cancel %s & Proceed" msgstr "" +#. translators: %1$s: Number of trial days; %2$s: Plan name; #: templates/forms/trial-start.php:22 msgid "You are 1-click away from starting your %1$s-day free trial of the %2$s plan." msgstr "" +#. translators: %s: Link to freemius.com #: templates/forms/trial-start.php:28 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 %s to periodically send data to %s to check for version updates and to validate your trial." msgstr "" @@ -2646,14 +2674,6 @@ msgstr "" msgid "Beta" msgstr "" -#: templates/partials/network-activation.php:32 -msgid "Activate license on all sites in the network." -msgstr "" - -#: templates/partials/network-activation.php:33 -msgid "Apply on all sites in the network." -msgstr "" - #: templates/partials/network-activation.php:36 msgid "Activate license on all pending sites." msgstr "" @@ -2662,6 +2682,14 @@ msgstr "" msgid "Apply on all pending sites." msgstr "" +#: templates/partials/network-activation.php:32 +msgid "Activate license on all sites in the network." +msgstr "" + +#: templates/partials/network-activation.php:33 +msgid "Apply on all sites in the network." +msgstr "" + #: templates/partials/network-activation.php:45, templates/partials/network-activation.php:79 msgid "allow" msgstr "" @@ -2674,7 +2702,7 @@ msgstr "" msgid "skip" msgstr "" -#: templates/plugin-info/description.php:72, templates/plugin-info/screenshots.php:31 +#: templates/plugin-info/description.php:67, templates/plugin-info/screenshots.php:26 msgid "Click to view full-size screenshot %d" msgstr "" @@ -2695,27 +2723,24 @@ msgstr "" msgid "Last license" msgstr "" -#. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription' -#: templates/account/partials/addon.php:34 -msgid "%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s." +#: templates/account/partials/addon.php:200 +msgid "No expiration" msgstr "" #: templates/account/partials/addon.php:190 msgid "Cancelled" msgstr "" -#: templates/account/partials/addon.php:200 -msgid "No expiration" +#. translators: %s is replaced with the website's homepage address. +#: templates/account/partials/disconnect-button.php:78 +msgid "Disconnecting the website will permanently remove %s from your User Dashboard's account." msgstr "" #: templates/account/partials/disconnect-button.php:74 msgid "By disconnecting the website, previously shared diagnostic data about %1$s will be deleted and no longer visible to %2$s." msgstr "" -#: templates/account/partials/disconnect-button.php:78 -msgid "Disconnecting the website will permanently remove %s from your User Dashboard's account." -msgstr "" - +#. translators: %1$s is replaced by the paid plan name, %2$s is replaced with an anchor link with the text "User Dashboard". #: templates/account/partials/disconnect-button.php:84 msgid "If you wish to cancel your %1$s plan's subscription instead, please navigate to the %2$s and cancel it there." msgstr "" diff --git a/freemius/require.php b/freemius/require.php index c1f8366..bff3fc3 100644 --- a/freemius/require.php +++ b/freemius/require.php @@ -19,6 +19,8 @@ require_once WP_FS__DIR_INCLUDES . '/class-fs-logger.php'; require_once WP_FS__DIR_INCLUDES . '/debug/debug-bar-start.php'; + require_once WP_FS__DIR_INCLUDES . '/class-fs-garbage-collector.php'; + // require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-abstract-manager.php'; require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-option-manager.php'; require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-gdpr-manager.php'; @@ -48,6 +50,7 @@ require_once WP_FS__DIR_INCLUDES . '/class-fs-api.php'; require_once WP_FS__DIR_INCLUDES . '/class-fs-plugin-updater.php'; require_once WP_FS__DIR_INCLUDES . '/class-fs-security.php'; + require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-debug-manager.php'; require_once WP_FS__DIR_INCLUDES . '/class-fs-options.php'; require_once WP_FS__DIR_INCLUDES . '/class-fs-storage.php'; require_once WP_FS__DIR_INCLUDES . '/class-fs-admin-notices.php'; diff --git a/freemius/start.php b/freemius/start.php index 096f510..d7b8979 100644 --- a/freemius/start.php +++ b/freemius/start.php @@ -15,7 +15,7 @@ * * @var string */ - $this_sdk_version = '2.5.10'; + $this_sdk_version = '2.8.1'; #region SDK Selection Logic -------------------------------------------------------------------- @@ -46,6 +46,34 @@ */ $file_path = fs_normalize_path( __FILE__ ); $fs_root_path = dirname( $file_path ); + + // @todo: Remove this code after a few months when WP 6.3 usage is low enough. + global $wp_version; + + if ( + ! function_exists( 'wp_get_current_user' ) && + /** + * `get_stylesheet()` will rely on `wp_get_current_user()` when it is being filtered by `theme-previews.php`. That happens only when the site editor is loaded or when the site editor is sending REST requests. + * @see theme-previews.php:wp_get_theme_preview_path() + * + * @todo This behavior is already fixed in the core (WP 6.3.2+), and this code can be removed after a few months when WP 6.3 usage is low enough. + * @since WP 6.3.0 + */ + version_compare( $wp_version, '6.3', '>=' ) && + version_compare( $wp_version, '6.3.1', '<=' ) && + ( + 'site-editor.php' === basename( $_SERVER['SCRIPT_FILENAME'] ) || + ( + function_exists( 'wp_is_json_request' ) && + wp_is_json_request() && + ! empty( $_GET['wp_theme_preview'] ) + ) + ) + ) { + // Requiring this file since the call to get_stylesheet() below can trigger a call to wp_get_current_user() when previewing a theme. + require_once ABSPATH . 'wp-includes/pluggable.php'; + } + /** * Get the themes directory where the active theme is located (not passing the stylesheet will make WordPress * assume that the themes directory is inside `wp-content`. diff --git a/freemius/templates/account.php b/freemius/templates/account.php index ca27d07..ae009d4 100755 --- a/freemius/templates/account.php +++ b/freemius/templates/account.php @@ -22,8 +22,8 @@ * @var FS_Plugin_Tag $update */ $update = $fs->has_release_on_freemius() ? - $fs->get_update( false, false, WP_FS__TIME_24_HOURS_IN_SEC / 24 ) : - null; + $fs->get_update( false, false ) : + null; if ( is_object($update) ) { /** @@ -510,7 +510,7 @@ class="dashicons dashicons-image-rotate"> - + > diff --git a/freemius/templates/account/partials/addon.php b/freemius/templates/account/partials/addon.php index e6d5657..9cc8e27 100644 --- a/freemius/templates/account/partials/addon.php +++ b/freemius/templates/account/partials/addon.php @@ -31,7 +31,7 @@ $downgrading_plan_text = fs_text_inline( 'Downgrading your plan', 'downgrading-plan', $slug ); $cancelling_subscription_text = fs_text_inline( 'Cancelling the subscription', 'cancelling-subscription', $slug ); /* translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription' */ - $downgrade_x_confirm_text = fs_text_inline( '%1$s will immediately stop all future recurring payments and your %s plan license will expire in %s.', 'downgrade-x-confirm', $slug ); + $downgrade_x_confirm_text = fs_text_inline( '%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s.', 'downgrade-x-confirm', $slug ); $prices_increase_text = fs_text_inline( 'Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price.', 'pricing-increase-warning', $slug ); $cancel_trial_confirm_text = fs_text_inline( 'Cancelling the trial will immediately block access to all premium features. Are you sure?', 'cancel-trial-confirm', $slug ); $after_downgrade_non_blocking_text = fs_text_inline( 'You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support.', 'after-downgrade-non-blocking', $slug ); @@ -240,19 +240,19 @@ true ); - $human_readable_license_expiration = human_time_diff( time(), strtotime( $license->expiration ) ); - $downgrade_confirmation_message = sprintf( - $downgrade_x_confirm_text, - ( $fs_addon->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ), - $plan->title, - $human_readable_license_expiration - ); - $after_downgrade_message = ! $license->is_block_features ? sprintf( $after_downgrade_non_blocking_text, $plan->title, $fs_addon->get_module_label( true ) ) : sprintf( $after_downgrade_blocking_text, $plan->title ); if ( ! $license->is_lifetime() && $is_active_subscription ) { + $human_readable_license_expiration = human_time_diff( time(), strtotime( $license->expiration ) ); + $downgrade_confirmation_message = sprintf( + $downgrade_x_confirm_text, + ( $fs_addon->is_only_premium() ? $cancelling_subscription_text : $downgrading_plan_text ), + $plan->title, + $human_readable_license_expiration + ); + $buttons[] = fs_ui_get_action_button( $fs->get_id(), 'account', diff --git a/freemius/templates/checkout.php b/freemius/templates/checkout.php index 3e8da51..e43d842 100755 --- a/freemius/templates/checkout.php +++ b/freemius/templates/checkout.php @@ -39,7 +39,7 @@ wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'json2' ); - fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' ); + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.js' ); fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' ); fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); diff --git a/freemius/templates/clone-resolution-js.php b/freemius/templates/clone-resolution-js.php index e8f4e9b..358a602 100644 --- a/freemius/templates/clone-resolution-js.php +++ b/freemius/templates/clone-resolution-js.php @@ -55,22 +55,32 @@ beforeSend: function() { $body.css( { cursor: 'wait' } ); - $cloneResolutionNotice.find( '.button' ).addClass( 'disabled' ); + $this.addClass( 'disabled' ); + + if ( $this.attr( 'id' ) === 'fs_temporary_duplicate_license_activation_link' ) { + $this.append( '' ); + } $( window ).on( 'beforeunload', beforeUnload ); }, success : function( resultObj ) { $( window ).off( 'beforeunload', beforeUnload ); - if ( resultObj.data.redirect_url && '' !== resultObj.data.redirect_url ) { + if ( + resultObj.data && + resultObj.data.redirect_url && + '' !== resultObj.data.redirect_url + ) { window.location = resultObj.data.redirect_url; } else { window.location.reload(); } }, - error : function() { + complete : function() { $body.css( { cursor: cursor } ); - $cloneResolutionNotice.find( '.button' ).removeClass( 'disabled' ); + $this.removeClass( 'disabled' ); + + $this.parent().find( '.fs-ajax-spinner' ).remove(); } } ); } ); diff --git a/freemius/templates/connect.php b/freemius/templates/connect.php index 3bf4ca3..165f44b 100755 --- a/freemius/templates/connect.php +++ b/freemius/templates/connect.php @@ -161,7 +161,6 @@ class="wrapis_enable_anonymous() fs_require_once_template( 'plugin-icon.php', $vars ); ?> -