Changeset 3245272
- Timestamp:
- 02/23/2025 06:16:37 PM (3 weeks ago)
- Location:
- woo-product-reviews-shortcode
- Files:
-
- 307 added
- 10 deleted
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
woo-product-reviews-shortcode/trunk/README.txt
r3082022 r3245272 5 5 Requires PHP: 7.0 6 6 Requires at least: 5.0 7 Tested up to: 6. 58 Stable tag: 1.01. 77 Tested up to: 6.7 8 Stable tag: 1.01.8 9 9 License: GPLv3 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-3.0.txt … … 125 125 == Changelog == 126 126 127 = 1.01.8 2025.02.23 = 128 129 * Freemius SDK update 130 * Tested working with latest WOO/WP 131 127 132 = 1.01.7 2024.05.06 = 128 133 -
woo-product-reviews-shortcode/trunk/freemius/assets/css/admin/account.css
r3082022 r3245272 1 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 ;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{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;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{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}}1 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}} -
woo-product-reviews-shortcode/trunk/freemius/assets/css/admin/checkout.css
r3082022 r3245272 1 @media screen and (max-width:782px){#wpbody-content{padding-bottom:0!important}}1 .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:#fff;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)}}@media screen and (max-width:782px){#wpbody-content{padding-bottom:0!important}}.fs-checkout-process-redirect{padding:40px;text-align:center} -
woo-product-reviews-shortcode/trunk/freemius/assets/css/admin/common.css
r3082022 r3245272 1 .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;filter:alpha(opacity=95);left:160px;opacity:.95;padding:10px 20px;position:fixed;right:0;top:32px;z-index:9999}.fs-secure-notice:hover{filter:alpha(opacity=100);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}1 .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-notice-body .fs-trial-message-container{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.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} -
woo-product-reviews-shortcode/trunk/freemius/assets/css/admin/dialog-boxes.css
r3082022 r3245272 1 .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{ line-height:1.5em;margin-top:0}#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;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;animation-name:bounce_ajaxLoader;background-color:#0074a3;height:20px;position:absolute;top:0;transform:.3;width:20px}.fs-ajax-loader .fs-ajax-loader-bar-1{animation-delay:.6s;-o-animation-delay:.6s;-ms-animation-delay:.6s;-webkit-animation-delay:.6s;-moz-animation-delay:.6s;left:0}.fs-ajax-loader .fs-ajax-loader-bar-2{animation-delay:.75s;-o-animation-delay:.75s;-ms-animation-delay:.75s;-webkit-animation-delay:.75s;-moz-animation-delay:.75s;left:19px}.fs-ajax-loader .fs-ajax-loader-bar-3{animation-delay:.9s;-o-animation-delay:.9s;-ms-animation-delay:.9s;-webkit-animation-delay:.9s;-moz-animation-delay:.9s;left:38px}.fs-ajax-loader .fs-ajax-loader-bar-4{animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s;left:57px}.fs-ajax-loader .fs-ajax-loader-bar-5{animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s;left:76px}.fs-ajax-loader .fs-ajax-loader-bar-6{animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s;left:95px}.fs-ajax-loader .fs-ajax-loader-bar-7{animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s;left:114px}.fs-ajax-loader .fs-ajax-loader-bar-8{animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-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}1 .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:#fff;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} -
woo-product-reviews-shortcode/trunk/freemius/includes/class-freemius.php
r3082022 r3245272 109 109 */ 110 110 private $_enable_anonymous = true; 111 112 /** 113 * @since 2.9.1 114 * @var string|null Hints the SDK whether the plugin supports parallel activation mode, preventing the auto-deactivation of the free version when the premium version is activated, and vice versa. 115 */ 116 private $_premium_plugin_basename_from_parallel_activation; 111 117 112 118 /** … … 382 388 /** 383 389 * @author Leo Fajardo (@leorw) 384 * @since 2.3.1385 *386 * @var boolean|null387 */388 private $_use_external_pricing = null;389 /**390 * @author Leo Fajardo (@leorw)391 390 * @since 2.4.2 392 391 * … … 1258 1257 * @return bool 1259 1258 */ 1260 p rivatestatic function set_network_upgrade_mode( FS_Storage $storage ) {1259 public static function set_network_upgrade_mode( FS_Storage $storage ) { 1261 1260 return $storage->is_network_activation = true; 1262 1261 } … … 1381 1380 1382 1381 /** 1383 * Opens the support forum subemenu item in a new browser page. 1384 * 1385 * @author Vova Feldman (@svovaf) 1382 * Modifies all external links in the submenu by altering their href, and also opens them in new tab if needed. 1383 * 1384 * @author Vova Feldman (@svovaf) 1385 * @author Swashata Ghosh (@swashata) 1386 1386 * @since 2.1.4 1387 1387 */ 1388 static function _ open_support_forum_in_new_page() {1388 static function _handle_submenu_external_link() { 1389 1389 ?> 1390 1390 <script type="text/javascript"> 1391 (function ($) { 1392 $('.fs-submenu-item.wp-support-forum').parent().attr( { target: '_blank', rel: 'noopener noreferrer' } ); 1393 })(jQuery); 1391 (function ( $ ) { 1392 $( '.fs-submenu-item' ).each( function () { 1393 var $this = $( this ), 1394 $parent = $this.parent(), 1395 externalLink = $this.data( 'fs-external-url' ), 1396 isOpensInNewTab = $this.data( 'fs-new-tab' ); 1397 1398 if ( externalLink ) { 1399 $parent.attr( 'href', externalLink ); 1400 } 1401 1402 if ( isOpensInNewTab ) { 1403 $parent.attr( { target: '_blank', rel: 'noopener noreferrer' } ); 1404 } 1405 } ); 1406 } )( jQuery ); 1394 1407 </script> 1395 1408 <?php … … 1488 1501 1489 1502 add_action( 'init', array( &$this, '_maybe_add_gdpr_optin_ajax_handler') ); 1490 add_action( 'init', array( &$this, '_ maybe_add_pricing_ajax_handler' ) );1503 add_action( 'init', array( &$this, '_add_pricing_ajax_handler' ) ); 1491 1504 } 1492 1505 … … 1584 1597 add_action( 'admin_init', array( &$this, 'connect_again' ) ); 1585 1598 } 1599 1600 FS_DebugManager::register_hooks(); 1586 1601 } 1587 1602 … … 1643 1658 } 1644 1659 } 1660 1661 if ( 1662 $this->is_user_in_admin() && 1663 $this->is_parallel_activation() && 1664 $this->_premium_plugin_basename !== $this->_premium_plugin_basename_from_parallel_activation 1665 ) { 1666 $this->_premium_plugin_basename = $this->_premium_plugin_basename_from_parallel_activation; 1667 1668 register_activation_hook( 1669 dirname( $this->_plugin_dir_path ) . '/' . $this->_premium_plugin_basename, 1670 array( &$this, '_activate_plugin_event_hook' ) 1671 ); 1672 } 1673 } 1674 1675 /** 1676 * Determines if a plugin is running in parallel activation mode. 1677 * 1678 * @author Leo Fajardo (@leorw) 1679 * @since 2.9.1 1680 * 1681 * @return bool 1682 */ 1683 private function is_parallel_activation() { 1684 return ! empty( $this->_premium_plugin_basename_from_parallel_activation ); 1645 1685 } 1646 1686 … … 2702 2742 * @since 2.4.3 2703 2743 */ 2704 p rivatestatic function reset_deactivation_snoozing( $period = 0 ) {2744 public static function reset_deactivation_snoozing( $period = 0 ) { 2705 2745 $value = ( 0 === $period ) ? null : 'true'; 2706 2746 … … 3419 3459 self::$_global_admin_notices = FS_Admin_Notices::instance( 'global' ); 3420 3460 3421 if ( ! WP_FS__DEMO_MODE ) { 3422 add_action( ( fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu', array( 3423 'Freemius', 3424 '_add_debug_section' 3425 ) ); 3426 } 3427 3428 add_action( "wp_ajax_fs_toggle_debug_mode", array( 'Freemius', '_toggle_debug_mode' ) ); 3429 3430 self::add_ajax_action_static( 'get_debug_log', array( 'Freemius', '_get_debug_log' ) ); 3431 3432 self::add_ajax_action_static( 'get_db_option', array( 'Freemius', '_get_db_option' ) ); 3433 3434 self::add_ajax_action_static( 'set_db_option', array( 'Freemius', '_set_db_option' ) ); 3461 FS_DebugManager::load_required_static(); 3435 3462 3436 3463 if ( 0 == did_action( 'plugins_loaded' ) ) { … … 3441 3468 add_action( 'init', array( $clone_manager, '_init' ) ); 3442 3469 3443 add_action( 'admin_footer', array( 'Freemius', '_ open_support_forum_in_new_page' ) );3470 add_action( 'admin_footer', array( 'Freemius', '_handle_submenu_external_link' ) ); 3444 3471 3445 3472 if ( self::is_plugins_page() || self::is_themes_page() ) { … … 3457 3484 3458 3485 self::$_statics_loaded = true; 3486 } 3487 3488 public static function get_static_logger() { 3489 return self::$_static_logger; 3490 } 3491 3492 public static function get_accounts() { 3493 return self::$_accounts; 3459 3494 } 3460 3495 … … 3627 3662 * @since 2.1.3 3628 3663 */ 3629 p rivatestatic function migrate_options_to_network() {3664 public static function migrate_options_to_network() { 3630 3665 self::migrate_accounts_to_network(); 3631 3666 … … 3663 3698 $fs_active_plugins->newest->sdk_path . '/languages/' 3664 3699 ); 3665 }3666 3667 #endregion3668 3669 #----------------------------------------------------------------------------------3670 #region Debugging3671 #----------------------------------------------------------------------------------3672 3673 /**3674 * @author Vova Feldman (@svovaf)3675 * @since 1.0.83676 */3677 static function _add_debug_section() {3678 if ( ! is_super_admin() ) {3679 // Add debug page only for super-admins.3680 return;3681 }3682 3683 self::$_static_logger->entrance();3684 3685 $title = sprintf( '%s [v.%s]', fs_text_inline( 'Freemius Debug' ), WP_FS__SDK_VERSION );3686 3687 if ( WP_FS__DEV_MODE ) {3688 // Add top-level debug menu item.3689 $hook = FS_Admin_Menu_Manager::add_page(3690 $title,3691 $title,3692 'manage_options',3693 'freemius',3694 array( 'Freemius', '_debug_page_render' )3695 );3696 } else {3697 // Add hidden debug page.3698 $hook = FS_Admin_Menu_Manager::add_subpage(3699 '',3700 $title,3701 $title,3702 'manage_options',3703 'freemius',3704 array( 'Freemius', '_debug_page_render' )3705 );3706 }3707 3708 if ( ! empty( $hook ) ) {3709 add_action( "load-$hook", array( 'Freemius', '_debug_page_actions' ) );3710 }3711 }3712 3713 /**3714 * @author Vova Feldman (@svovaf)3715 * @since 1.1.7.33716 */3717 static function _toggle_debug_mode() {3718 check_admin_referer( 'fs_toggle_debug_mode' );3719 3720 if ( ! is_super_admin() ) {3721 return;3722 }3723 3724 $is_on = fs_request_get( 'is_on', false, 'post' );3725 3726 if ( fs_request_is_post() && in_array( $is_on, array( 0, 1 ) ) ) {3727 update_option( 'fs_debug_mode', $is_on );3728 3729 // Turn on/off storage logging.3730 FS_Logger::_set_storage_logging( ( 1 == $is_on ) );3731 }3732 3733 exit;3734 }3735 3736 /**3737 * @author Vova Feldman (@svovaf)3738 * @since 1.2.1.63739 */3740 static function _get_debug_log() {3741 check_admin_referer( 'fs_get_debug_log' );3742 3743 if ( ! is_super_admin() ) {3744 return;3745 }3746 3747 $limit = min( ! empty( $_POST['limit'] ) ? absint( $_POST['limit'] ) : 200, 200 );3748 $offset = min( ! empty( $_POST['offset'] ) ? absint( $_POST['offset'] ) : 200, 200 );3749 3750 $logs = FS_Logger::load_db_logs(3751 fs_request_get( 'filters', false, 'post' ),3752 $limit,3753 $offset3754 );3755 3756 self::shoot_ajax_success( $logs );3757 }3758 3759 /**3760 * @author Vova Feldman (@svovaf)3761 * @since 1.2.1.73762 */3763 static function _get_db_option() {3764 check_admin_referer( 'fs_get_db_option' );3765 3766 $option_name = fs_request_get( 'option_name' );3767 3768 if ( ! is_super_admin() ||3769 ! fs_starts_with( $option_name, 'fs_' )3770 ) {3771 self::shoot_ajax_failure();3772 }3773 3774 $value = get_option( $option_name );3775 3776 $result = array(3777 'name' => $option_name,3778 );3779 3780 if ( false !== $value ) {3781 if ( ! is_string( $value ) ) {3782 $value = json_encode( $value );3783 }3784 3785 $result['value'] = $value;3786 }3787 3788 self::shoot_ajax_success( $result );3789 }3790 3791 /**3792 * @author Vova Feldman (@svovaf)3793 * @since 1.2.1.73794 */3795 static function _set_db_option() {3796 check_admin_referer( 'fs_set_db_option' );3797 3798 $option_name = fs_request_get( 'option_name' );3799 3800 if ( ! is_super_admin() ||3801 ! fs_starts_with( $option_name, 'fs_' )3802 ) {3803 self::shoot_ajax_failure();3804 }3805 3806 $option_value = fs_request_get_raw( 'option_value' );3807 3808 if ( ! empty( $option_value ) ) {3809 update_option( $option_name, $option_value );3810 }3811 3812 self::shoot_ajax_success();3813 }3814 3815 /**3816 * @author Vova Feldman (@svovaf)3817 * @since 1.0.83818 */3819 static function _debug_page_actions() {3820 self::_clean_admin_content_section();3821 3822 if ( fs_request_is_action( 'restart_freemius' ) ) {3823 check_admin_referer( 'restart_freemius' );3824 3825 if ( ! is_multisite() ) {3826 // Clear accounts data.3827 self::$_accounts->clear( null, true );3828 } else {3829 $sites = self::get_sites();3830 foreach ( $sites as $site ) {3831 $blog_id = self::get_site_blog_id( $site );3832 self::$_accounts->clear( $blog_id, true );3833 }3834 3835 // Clear network level storage.3836 self::$_accounts->clear( true, true );3837 }3838 3839 // Clear SDK reference cache.3840 delete_option( 'fs_active_plugins' );3841 } else if ( fs_request_is_action( 'clear_updates_data' ) ) {3842 check_admin_referer( 'clear_updates_data' );3843 3844 if ( ! is_multisite() ) {3845 set_site_transient( 'update_plugins', null );3846 set_site_transient( 'update_themes', null );3847 } else {3848 $current_blog_id = get_current_blog_id();3849 3850 $sites = self::get_sites();3851 foreach ( $sites as $site ) {3852 switch_to_blog( self::get_site_blog_id( $site ) );3853 3854 set_site_transient( 'update_plugins', null );3855 set_site_transient( 'update_themes', null );3856 }3857 3858 switch_to_blog( $current_blog_id );3859 }3860 } else if ( fs_request_is_action( 'reset_deactivation_snoozing' ) ) {3861 check_admin_referer( 'reset_deactivation_snoozing' );3862 3863 self::reset_deactivation_snoozing();3864 } else if ( fs_request_is_action( 'simulate_trial' ) ) {3865 check_admin_referer( 'simulate_trial' );3866 3867 $fs = freemius( fs_request_get( 'module_id' ) );3868 3869 // Update SDK install to at least 24 hours before.3870 $fs->_storage->install_timestamp = ( time() - WP_FS__TIME_24_HOURS_IN_SEC );3871 // Unset the trial shown timestamp.3872 unset( $fs->_storage->trial_promotion_shown );3873 } else if ( fs_request_is_action( 'simulate_network_upgrade' ) ) {3874 check_admin_referer( 'simulate_network_upgrade' );3875 3876 $fs = freemius( fs_request_get( 'module_id' ) );3877 3878 self::set_network_upgrade_mode( $fs->_storage );3879 } else if ( fs_request_is_action( 'delete_install' ) ) {3880 check_admin_referer( 'delete_install' );3881 3882 self::_delete_site_by_slug(3883 fs_request_get( 'slug' ),3884 fs_request_get( 'module_type' ),3885 true,3886 fs_request_get( 'blog_id', null )3887 );3888 } else if ( fs_request_is_action( 'delete_user' ) ) {3889 check_admin_referer( 'delete_user' );3890 3891 self::delete_user( fs_request_get( 'user_id' ) );3892 } else if ( fs_request_is_action( 'download_logs' ) ) {3893 check_admin_referer( 'download_logs' );3894 3895 $download_url = FS_Logger::download_db_logs(3896 fs_request_get( 'filters', false, 'post' )3897 );3898 3899 if ( false === $download_url ) {3900 wp_die( 'Oops... there was an error while generating the logs download file. Please try again and if it doesn\'t work contact [email protected].' );3901 }3902 3903 fs_redirect( $download_url );3904 } else if ( fs_request_is_action( 'migrate_options_to_network' ) ) {3905 check_admin_referer( 'migrate_options_to_network' );3906 3907 self::migrate_options_to_network();3908 }3909 }3910 3911 /**3912 * @author Leo Fajardo (@leorw)3913 * @since 2.5.03914 *3915 * @return array3916 */3917 static function get_all_modules_sites() {3918 self::$_static_logger->entrance();3919 3920 $sites_by_type = array(3921 WP_FS__MODULE_TYPE_PLUGIN => array(),3922 WP_FS__MODULE_TYPE_THEME => array(),3923 );3924 3925 $module_types = array_keys( $sites_by_type );3926 3927 if ( ! is_multisite() ) {3928 foreach ( $module_types as $type ) {3929 $sites_by_type[ $type ] = self::get_all_sites( $type );3930 3931 foreach ( $sites_by_type[ $type ] as $slug => $install ) {3932 $sites_by_type[ $type ][ $slug ] = array( $install );3933 }3934 }3935 } else {3936 $sites = self::get_sites();3937 3938 foreach ( $sites as $site ) {3939 $blog_id = self::get_site_blog_id( $site );3940 3941 foreach ( $module_types as $type ) {3942 $installs = self::get_all_sites( $type, $blog_id );3943 3944 foreach ( $installs as $slug => $install ) {3945 if ( ! isset( $sites_by_type[ $type ][ $slug ] ) ) {3946 $sites_by_type[ $type ][ $slug ] = array();3947 }3948 3949 $install->blog_id = $blog_id;3950 3951 $sites_by_type[ $type ][ $slug ][] = $install;3952 }3953 3954 }3955 }3956 }3957 3958 return $sites_by_type;3959 }3960 3961 /**3962 * @author Vova Feldman (@svovaf)3963 * @since 1.0.83964 */3965 static function _debug_page_render() {3966 self::$_static_logger->entrance();3967 3968 $all_modules_sites = self::get_all_modules_sites();3969 3970 $licenses_by_module_type = self::get_all_licenses_by_module_type();3971 3972 $vars = array(3973 'plugin_sites' => $all_modules_sites[ WP_FS__MODULE_TYPE_PLUGIN ],3974 'theme_sites' => $all_modules_sites[ WP_FS__MODULE_TYPE_THEME ],3975 'users' => self::get_all_users(),3976 'addons' => self::get_all_addons(),3977 'account_addons' => self::get_all_account_addons(),3978 'plugin_licenses' => $licenses_by_module_type[ WP_FS__MODULE_TYPE_PLUGIN ],3979 'theme_licenses' => $licenses_by_module_type[ WP_FS__MODULE_TYPE_THEME ]3980 );3981 3982 fs_enqueue_local_style( 'fs_debug', '/admin/debug.css' );3983 fs_require_once_template( 'debug.php', $vars );3984 3700 } 3985 3701 … … 4175 3891 isset( $this->_storage->connectivity_test['is_active'] ) 4176 3892 ) { 4177 $is_active = $this->_storage->connectivity_test['is_active']; 3893 $is_connected = isset( $this->_storage->connectivity_test['is_connected'] ) ? 3894 $this->_storage->connectivity_test['is_connected'] : 3895 null; 3896 $is_active = ( $this->_storage->connectivity_test['is_active'] || is_object( $this->_site ) ); 4178 3897 } else { 4179 $is_active = $this->should_turn_fs_on( $this->apply_filters( 'is_plugin_update', $this->is_plugin_update() ) ); 4180 4181 $this->store_connectivity_info( (object) array( 'is_active' => $is_active ), null ); 4182 } 3898 $is_connected = null; 3899 $is_active = $this->should_turn_fs_on( $this->apply_filters( 'is_plugin_update', $this->is_plugin_update() ) ); 3900 } 3901 3902 $this->store_connectivity_info( (object) array( 'is_active' => $is_active ), $is_connected ); 4183 3903 4184 3904 if ( $is_active ) { … … 5467 5187 new FS_Plugin(); 5468 5188 5189 $is_premium = $this->get_bool_option( $plugin_info, 'is_premium', true ); 5469 5190 $premium_suffix = $this->get_option( $plugin_info, 'premium_suffix', '(Premium)' ); 5191 5192 $module_type = $this->get_option( $plugin_info, 'type', $this->_module_type ); 5193 5194 $parallel_activation = $this->get_option( $plugin_info, 'parallel_activation' ); 5195 5196 if ( 5197 ! $is_premium && 5198 is_array( $parallel_activation ) && 5199 ( WP_FS__MODULE_TYPE_PLUGIN === $module_type ) && 5200 $this->get_bool_option( $parallel_activation, 'enabled' ) 5201 ) { 5202 $premium_basename = $this->get_option( $parallel_activation, 'premium_version_basename' ); 5203 5204 if ( empty( $premium_basename ) ) { 5205 throw new Exception('You need to specify the premium version basename to enable parallel version activation.'); 5206 } 5207 5208 $this->_premium_plugin_basename_from_parallel_activation = $premium_basename; 5209 5210 if ( is_plugin_active( $premium_basename ) ) { 5211 $is_premium = true; 5212 } 5213 } 5470 5214 5471 5215 $plugin->update( array( 5472 5216 'id' => $id, 5473 'type' => $ this->get_option( $plugin_info, 'type', $this->_module_type ),5217 'type' => $module_type, 5474 5218 'public_key' => $public_key, 5475 5219 'slug' => $this->_slug, … … 5479 5223 'title' => $this->get_plugin_name( $premium_suffix ), 5480 5224 'file' => $this->_plugin_basename, 5481 'is_premium' => $ this->get_bool_option( $plugin_info, 'is_premium', true ),5225 'is_premium' => $is_premium, 5482 5226 'premium_suffix' => $premium_suffix, 5483 5227 'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ), … … 5485 5229 'bundle_id' => $this->get_option( $plugin_info, 'bundle_id', null ), 5486 5230 'bundle_public_key' => $this->get_option( $plugin_info, 'bundle_public_key', null ), 5487 'opt_in_moderation' => $this->get_option( $plugin_info, 'opt_in', null ), 5231 'opt_in_moderation' => $this->get_option( 5232 $plugin_info, 5233 'opt_in', 5234 // For backward compatibility, we support both parameter names: opt_in and opt_in_moderation. 5235 $this->get_option( $plugin_info, 'opt_in_moderation', null ) 5236 ), 5488 5237 ) ); 5489 5238 … … 5543 5292 } else { 5544 5293 $this->_enable_anonymous = $this->get_bool_option( $plugin_info, 'enable_anonymous', true ); 5545 $this->_anonymous_mode = $this->get_bool_option( $plugin_info, 'anonymous_mode', false ); 5294 $this->_anonymous_mode = ( 5295 $this->get_bool_option( $plugin_info, 'anonymous_mode', false ) || 5296 ( 5297 $this->apply_filters( 'playground_anonymous_mode', true ) && 5298 ! empty( $_SERVER['HTTP_HOST'] ) && 5299 FS_Site::is_playground_wp_environment_by_host( $_SERVER['HTTP_HOST'] ) 5300 ) 5301 ); 5546 5302 } 5547 5303 $this->_permissions = $this->get_option( $plugin_info, 'permissions', array() ); … … 5751 5507 if ( $this->is_registered() ) { 5752 5508 // Schedule code type changes event. 5753 $this-> schedule_install_sync();5509 $this->maybe_schedule_install_sync_cron(); 5754 5510 } 5755 5511 … … 6815 6571 6816 6572 /** 6573 * Instead of running blocking install sync event, execute non blocking scheduled cron job. 6574 * 6575 * @param int $except_blog_id Since 2.0.0 when running in a multisite network environment, the cron execution is consolidated. This param allows excluding specified blog ID from being the cron job executor. 6576 * 6577 * @author Leo Fajardo (@leorw) 6578 * @since 2.9.1 6579 */ 6580 private function maybe_schedule_install_sync_cron( $except_blog_id = 0 ) { 6581 if ( ! $this->is_user_in_admin() ) { 6582 return; 6583 } 6584 6585 if ( $this->is_clone() ) { 6586 return; 6587 } 6588 6589 if ( 6590 // The event has been properly scheduled, so no need to reschedule it. 6591 is_numeric( $this->next_install_sync() ) 6592 ) { 6593 return; 6594 } 6595 6596 $this->schedule_cron( 'install_sync', 'install_sync', 'single', WP_FS__SCRIPT_START_TIME, false, $except_blog_id ); 6597 } 6598 6599 /** 6817 6600 * @author Vova Feldman (@svovaf) 6818 6601 * @since 1.1.7.3 … … 6909 6692 private function get_install_sync_cron_blog_id() { 6910 6693 return $this->get_cron_blog_id( 'install_sync' ); 6911 }6912 6913 /**6914 * Instead of running blocking install sync event, execute non blocking scheduled wp-cron.6915 *6916 * @author Vova Feldman (@svovaf)6917 * @since 1.1.7.36918 *6919 * @param int $except_blog_id Since 2.0.0 when running in a multisite network environment, the cron execution is consolidated. This param allows excluding excluded specified blog ID from being the cron executor.6920 */6921 private function schedule_install_sync( $except_blog_id = 0 ) {6922 if ( $this->is_clone() ) {6923 return;6924 }6925 6926 $this->schedule_cron( 'install_sync', 'install_sync', 'single', WP_FS__SCRIPT_START_TIME, false, $except_blog_id );6927 6694 } 6928 6695 … … 7475 7242 7476 7243 /** 7477 * Delete user.7478 *7479 * @author Vova Feldman (@svovaf)7480 * @since 2.0.07481 *7482 * @param number $user_id7483 * @param bool $store7484 *7485 * @return false|int The user ID if deleted. Otherwise, FALSE (when install not exist).7486 */7487 private static function delete_user( $user_id, $store = true ) {7488 $users = self::get_all_users();7489 7490 if ( ! is_array( $users ) || ! isset( $users[ $user_id ] ) ) {7491 return false;7492 }7493 7494 unset( $users[ $user_id ] );7495 7496 self::$_accounts->set_option( 'users', $users, $store );7497 7498 return $user_id;7499 }7500 7501 /**7502 7244 * Delete plugin's plans information. 7503 7245 * … … 7743 7485 if ( 7744 7486 is_plugin_active( $other_version_basename ) && 7745 $this->apply_filters( 'deactivate_on_activation', true)7487 $this->apply_filters( 'deactivate_on_activation', ! $this->is_parallel_activation() ) 7746 7488 ) { 7747 7489 deactivate_plugins( $other_version_basename ); … … 7757 7499 // Schedule re-activation event and sync. 7758 7500 // $this->sync_install( array(), true ); 7759 $this-> schedule_install_sync();7501 $this->maybe_schedule_install_sync_cron(); 7760 7502 7761 7503 // If activating the premium module version, add an admin notice to congratulate for an upgrade completion. … … 8948 8690 } 8949 8691 8950 $this-> schedule_install_sync();8692 $this->maybe_schedule_install_sync_cron(); 8951 8693 // $this->sync_install( array(), true ); 8952 8694 } … … 10634 10376 * @return array[string]FS_Site 10635 10377 */ 10636 p rivatestatic function get_all_sites(10378 public static function get_all_sites( 10637 10379 $module_type = WP_FS__MODULE_TYPE_PLUGIN, 10638 10380 $blog_id = null, … … 10663 10405 * @return mixed 10664 10406 */ 10665 p rivatestatic function get_account_option( $option_name, $module_type = null, $network_level_or_blog_id = null ) {10407 public static function get_account_option( $option_name, $module_type = null, $network_level_or_blog_id = null ) { 10666 10408 if ( ! is_null( $module_type ) && WP_FS__MODULE_TYPE_PLUGIN !== $module_type ) { 10667 10409 $option_name = $module_type . '_' . $option_name; … … 10798 10540 * @since 2.0.0 10799 10541 * 10800 * @return array10801 */10802 private static function get_all_licenses_by_module_type() {10803 $licenses = self::get_account_option( 'all_licenses' );10804 10805 $licenses_by_module_type = array(10806 WP_FS__MODULE_TYPE_PLUGIN => array(),10807 WP_FS__MODULE_TYPE_THEME => array()10808 );10809 10810 if ( ! is_array( $licenses ) ) {10811 return $licenses_by_module_type;10812 }10813 10814 foreach ( $licenses as $module_id => $module_licenses ) {10815 $fs = self::get_instance_by_id( $module_id );10816 if ( false === $fs ) {10817 continue;10818 }10819 10820 $licenses_by_module_type[ $fs->_module_type ] = array_merge( $licenses_by_module_type[ $fs->_module_type ], $module_licenses );10821 }10822 10823 return $licenses_by_module_type;10824 }10825 10826 /**10827 * @author Leo Fajardo (@leorw)10828 * @since 2.0.010829 *10830 10542 * @param number $module_id 10831 10543 * @param number|null $user_id … … 10966 10678 * @return array<number,FS_Plugin[]>|false 10967 10679 */ 10968 p rivatestatic function get_all_addons() {10680 public static function get_all_addons() { 10969 10681 $addons = self::maybe_get_entities_account_option( 'addons', array() ); 10970 10682 … … 10982 10694 * @return number[]|false 10983 10695 */ 10984 p rivatestatic function get_all_account_addons() {10696 public static function get_all_account_addons() { 10985 10697 $addons = self::$_accounts->get_option( 'account_addons', array() ); 10986 10698 … … 11097 10809 function get_site() { 11098 10810 return $this->_site; 10811 } 10812 10813 /** 10814 * @author Daniele Alessandra (@danielealessandra) 10815 * @return FS_Storage 10816 * @since 2.6.2 10817 * 10818 */ 10819 public function get_storage() { 10820 return $this->_storage; 11099 10821 } 11100 10822 … … 13955 13677 function get_pricing_js_path() { 13956 13678 if ( ! isset( $this->_pricing_js_path ) ) { 13957 $pricing_js_path = $this->apply_filters( 'freemius_pricing_js_path', '' ); 13958 13679 $default_path = WP_FS__DIR_JS . '/pricing/freemius-pricing.js'; 13680 13681 $pricing_js_path = $this->apply_filters( 'freemius_pricing_js_path', $default_path ); 13682 13683 // Backward compatibility for people who placed the freemius-pricing inside `includes` directory. Let it take more preference than the default path. 13959 13684 if ( empty( $pricing_js_path ) ) { 13960 13685 global $fs_active_plugins; … … 13975 13700 } 13976 13701 13702 // If it is still empty, load the default pricing JS. 13703 if ( ! file_exists( $pricing_js_path ) ) { 13704 $pricing_js_path = $default_path; 13705 } 13706 13977 13707 $this->_pricing_js_path = $pricing_js_path; 13978 13708 } … … 13985 13715 * @since 2.3.1 13986 13716 * 13717 * @deprecated Since v2.9.0 we have removed the iFrame based pricing. This will always return `false`. 13718 * 13987 13719 * @return bool 13988 13720 */ 13989 13721 function should_use_external_pricing() { 13990 if ( is_null( $this->_use_external_pricing ) ) { 13991 $pricing_js_path = $this->get_pricing_js_path(); 13992 13993 $this->_use_external_pricing = ( empty( $pricing_js_path ) || ! file_exists( $pricing_js_path ) ); 13994 } 13995 13996 return $this->_use_external_pricing; 13722 return false; 13997 13723 } 13998 13724 … … 15033 14759 $this->_get_admin_page_url( 'pricing', $params ); 15034 14760 14761 return $this->get_pricing_url_with_filter( $url ); 14762 } 14763 14764 /** 14765 * Retrieves the filtered pricing URL. 14766 * 14767 * @author Leo Fajardo (@leorw) 14768 * @since 2.7.4 14769 * 14770 * @param string $url 14771 * 14772 * @return string 14773 */ 14774 private function get_pricing_url_with_filter( $url ) { 15035 14775 return $this->apply_filters( 'pricing_url', $url ); 15036 14776 } … … 16308 16048 $context_blog_id == $this->get_install_sync_cron_blog_id() 16309 16049 ) { 16310 $this-> schedule_install_sync( $context_blog_id );16050 $this->maybe_schedule_install_sync_cron( $context_blog_id ); 16311 16051 } 16312 16052 } … … 18344 18084 * @author Leo Fajardo (@leorw) 18345 18085 */ 18086 $user = $this->_user; 18087 18346 18088 $this->_user = null; 18347 18089 18348 18090 fs_redirect( $this->get_activation_url( array( 'error' => $result->error->message ) ) ); 18091 18092 /** 18093 * Restore the user after the redirect, this is relevant when there are cases where the redirect will choose not to do anything. 18094 */ 18095 $this->_user = $user; 18349 18096 } 18350 18097 } … … 19111 18858 if (! WP_FS__DEMO_MODE && ! $this->is_whitelabeled() ) { 19112 18859 // Add contact page. 19113 $this->add_submenu_item( 19114 $this->get_text_inline( 'Contact Us', 'contact-us' ), 19115 array( &$this, '_contact_page_render' ), 19116 $this->get_plugin_name() . ' – ' . $this->get_text_inline( 'Contact Us', 'contact-us' ), 19117 'manage_options', 19118 'contact', 19119 'Freemius::_clean_admin_content_section', 19120 WP_FS__DEFAULT_PRIORITY, 19121 $this->is_submenu_item_visible( 'contact' ) 19122 ); 18860 if ( $this->is_premium() ) { 18861 $this->add_submenu_item( 18862 $this->get_text_inline( 'Contact Us', 'contact-us' ), 18863 array( &$this, '_contact_page_render' ), 18864 $this->get_plugin_name() . ' – ' . $this->get_text_inline( 'Contact Us', 'contact-us' ), 18865 'manage_options', 18866 'contact', 18867 'Freemius::_clean_admin_content_section', 18868 WP_FS__DEFAULT_PRIORITY, 18869 $this->is_submenu_item_visible( 'contact' ) 18870 ); 18871 } else { 18872 $this->add_submenu_link_item( 18873 $this->get_text_inline( 'Contact Us', 'contact-us' ), 18874 FS_Contact_Form_Manager::instance()->get_standalone_link( $this ), 18875 'contact', 18876 'manage_options', 18877 WP_FS__DEFAULT_PRIORITY, 18878 $this->is_submenu_item_visible( 'contact' ), 18879 'fs_external_contact', 18880 true 18881 ); 18882 } 19123 18883 } 19124 18884 … … 19159 18919 } 19160 18920 19161 // Add upgrade/pricing page. 19162 $this->add_submenu_item( 19163 $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' ) ), 19164 array( &$this, '_pricing_page_render' ), 19165 $this->get_plugin_name() . ' – ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ), 19166 'manage_options', 19167 'pricing', 19168 'Freemius::_clean_admin_content_section', 19169 WP_FS__LOWEST_PRIORITY, 19170 ( $add_submenu_items && $show_pricing ), 19171 $pricing_class 19172 ); 18921 $custom_pricing_url = $this->get_pricing_url_with_filter( null ); 18922 $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' ) ); 18923 $show_pricing_submenu_item = ( $add_submenu_items && $show_pricing ); 18924 18925 // Add upgrade/pricing submenu item. 18926 if ( ! is_null( $custom_pricing_url ) ) { 18927 $this->add_submenu_link_item( 18928 $pricing_menu_title, 18929 $custom_pricing_url, 18930 'pricing', 18931 'manage_options', 18932 WP_FS__LOWEST_PRIORITY, 18933 $show_pricing_submenu_item, 18934 $pricing_class 18935 ); 18936 } else { 18937 $this->add_submenu_item( 18938 $pricing_menu_title, 18939 array( &$this, '_pricing_page_render' ), 18940 $this->get_plugin_name() . ' – ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ), 18941 'manage_options', 18942 'pricing', 18943 'Freemius::_clean_admin_content_section', 18944 WP_FS__LOWEST_PRIORITY, 18945 $show_pricing_submenu_item, 18946 $pricing_class 18947 ); 18948 } 19173 18949 } 19174 18950 } … … 19206 18982 */ 19207 18983 private function embed_submenu_items() { 19208 $item_ template = $this->_menu->is_top_level() ?19209 '<span class="fs-submenu-item %s %s %s">%s</span>' : 19210 '<span class="fs-submenu-item fs-sub %s %s %s">%s</span>';18984 $item_classes = $this->_menu->is_top_level() ? 'fs-submenu-item' : 'fs-submenu-item fs-sub'; 18985 18986 $item_template = '<span class="' . $item_classes . ' %1$s %2$s %3$s" data-fs-external-url="%5$s" data-fs-new-tab="%6$s">%4$s</span>'; 19211 18987 19212 18988 $top_level_menu_capability = $this->get_top_level_menu_capability(); … … 19225 19001 $item['menu_slug'], 19226 19002 ! empty( $item['class'] ) ? $item['class'] : '', 19227 $item['menu_title'] 19003 $item['menu_title'], 19004 esc_attr( isset( $item['url'] ) ? $item['url'] : '' ), 19005 esc_attr( isset( $item['new_tab'] ) ? 'true' : 'false' ) 19228 19006 ); 19229 19007 … … 19381 19159 null, 19382 19160 50, 19383 $this->is_submenu_item_visible( 'support' ) 19161 $this->is_submenu_item_visible( 'support' ), 19162 '', 19163 true 19384 19164 ); 19385 19165 } … … 19459 19239 * @param int $priority 19460 19240 * @param bool $show_submenu 19241 * @param string $class 19242 * @param bool $new_tab 19461 19243 */ 19462 19244 function add_submenu_link_item( … … 19466 19248 $capability = 'read', 19467 19249 $priority = WP_FS__DEFAULT_PRIORITY, 19468 $show_submenu = true 19250 $show_submenu = true, 19251 $class = '', 19252 $new_tab = false 19469 19253 ) { 19470 19254 $this->_logger->entrance( 'Title = ' . $menu_title . '; Url = ' . $url ); … … 19480 19264 $capability, 19481 19265 $priority, 19482 $show_submenu 19266 $show_submenu, 19267 $class, 19268 $new_tab 19483 19269 ); 19484 19270 … … 19500 19286 'before_render_function' => '', 19501 19287 'show_submenu' => $show_submenu, 19288 'class' => $class, 19289 'new_tab' => $new_tab, 19502 19290 ); 19503 19291 } … … 22011 21799 * 22012 21800 * @param bool|string $plan_name 21801 * @param bool $add_sticky_notice 22013 21802 * 22014 21803 * @return bool If trial was successfully started. 22015 21804 */ 22016 function start_trial( $plan_name = false ) {21805 function start_trial( $plan_name = false, $add_sticky_notice = false ) { 22017 21806 $this->_logger->entrance(); 22018 21807 … … 22025 21814 sprintf( $this->get_text_inline( 'You are already running the %s in a trial mode.', 'in-trial-mode' ), $this->_module_type ), 22026 21815 $oops_text, 22027 'error' 21816 'error', 21817 $add_sticky_notice 22028 21818 ); 22029 21819 … … 22031 21821 } 22032 21822 22033 if ( $this->_site->is_trial_utilized() ) {21823 if ( $this->_site->is_trial_utilized() && ! $this->is_payments_sandbox() ) { 22034 21824 // Trial was already utilized. 22035 21825 $this->_admin_notices->add( 22036 21826 $this->get_text_inline( 'You already utilized a trial before.', 'trial-utilized' ), 22037 21827 $oops_text, 22038 'error' 21828 'error', 21829 $add_sticky_notice 22039 21830 ); 22040 21831 … … 22050 21841 sprintf( $this->get_text_inline( 'Plan %s do not exist, therefore, can\'t start a trial.', 'trial-plan-x-not-exist' ), $plan_name ), 22051 21842 $oops_text, 22052 'error' 21843 'error', 21844 $add_sticky_notice 22053 21845 ); 22054 21846 … … 22061 21853 sprintf( $this->get_text_inline( 'Plan %s does not support a trial period.', 'plan-x-no-trial' ), $plan_name ), 22062 21854 $oops_text, 22063 'error' 21855 'error', 21856 $add_sticky_notice 22064 21857 ); 22065 21858 … … 22072 21865 sprintf( $this->get_text_inline( 'None of the %s\'s plans supports a trial period.', 'no-trials' ), $this->_module_type ), 22073 21866 $oops_text, 22074 'error' 21867 'error', 21868 $add_sticky_notice 22075 21869 ); 22076 21870 … … 22083 21877 } 22084 21878 22085 $api = $this->get_api_site_scope(); 22086 $plan = $api->call( "plans/{$plan->id}/trials.json", 'post' ); 22087 22088 if ( ! $this->is_api_result_entity( $plan ) ) { 21879 $trial_params = array(); 21880 21881 if ( $this->is_payments_sandbox() ) { 21882 $trial_params['trial_timestamp'] = time(); 21883 $trial_params['trial_token'] = FS_Security::instance()->get_trial_token( 21884 $this->get_plugin(), 21885 $plan, 21886 $trial_params['trial_timestamp'] 21887 ); 21888 } 21889 21890 $api = $this->get_api_site_scope(); 21891 $trial = $api->call( "plans/{$plan->id}/trials.json", 'post', $trial_params ); 21892 21893 if ( ! $this->is_api_result_entity( $trial ) ) { 22089 21894 // Some API error while trying to start the trial. 22090 21895 $this->_admin_notices->add( 22091 $this->get_api_error_message( $ plan),21896 $this->get_api_error_message( $trial ), 22092 21897 $oops_text, 22093 'error' 21898 'error', 21899 $add_sticky_notice 22094 21900 ); 22095 21901 … … 22331 22137 if ( true === $fetch_readme ) { 22332 22138 $latest_version_endpoint = add_query_arg( 'readme', 'true', $latest_version_endpoint ); 22139 22140 // Don't cache the API response when fetching readme information. 22141 $expiration = null; 22333 22142 } 22334 22143 … … 22793 22602 22794 22603 $remove_user = true; 22795 $all_modules_sites = self::get_all_modules_sites();22604 $all_modules_sites = FS_DebugManager::get_all_modules_sites(); 22796 22605 22797 22606 foreach ( $all_modules_sites as $sites_by_module_type ) { … … 23572 23381 $this->_logger->entrance(); 23573 23382 23383 fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); 23384 fs_enqueue_local_style( 'fs_checkout', '/admin/checkout.css' ); 23385 23574 23386 $vars = array( 'id' => $this->_module_id ); 23575 23387 … … 23585 23397 * @since 2.3.1 23586 23398 */ 23587 function _maybe_add_pricing_ajax_handler() { 23588 if ( ! $this->should_use_external_pricing() ) { 23589 $this->add_ajax_action( 'pricing_ajax_action', array( &$this, '_fs_pricing_ajax_action_handler' ) ); 23590 } 23399 function _add_pricing_ajax_handler() { 23400 $this->add_ajax_action( 'pricing_ajax_action', array( &$this, '_fs_pricing_ajax_action_handler' ) ); 23591 23401 } 23592 23402 … … 23638 23448 break; 23639 23449 case 'start_trial': 23640 $result = $this->opt_in( 23641 false, 23642 false, 23643 false, 23644 false, 23645 false, 23646 fs_request_get( 'plan_id' ) 23647 ); 23450 $trial_plan_id = fs_request_get( 'plan_id' ); 23451 23452 if ( $this->is_registered() && $this->is_tracking_allowed() ) { 23453 $plan = $this->_get_plan_by_id( $trial_plan_id ); 23454 23455 if ( ! $plan ) { 23456 $this->shoot_ajax_failure( 'Invalid plan ID.' ); 23457 return; 23458 } 23459 23460 $result = $this->start_trial( $plan->name, true ); 23461 } else { 23462 // @todo - This fails for sandbox trial at the moment if the trial was already utilized. 23463 $result = $this->opt_in( 23464 false, 23465 false, 23466 false, 23467 false, 23468 false, 23469 $trial_plan_id 23470 ); 23471 } 23648 23472 } 23649 23473 … … 24177 24001 // Start trial button. 24178 24002 $button = ' ' . sprintf( 24179 '< a style="margin-left: 10px; vertical-align: super;" href="%s"><button class="button button-primary">%s ➜</button></a>',24003 '<div><a class="button button-primary" href="%s">%s ➜</a></div>', 24180 24004 $trial_url, 24181 24005 $this->get_text_x_inline( 'Start free trial', 'call to action', 'start-free-trial' ) 24182 24006 ); 24183 24007 24008 $message_text = $this->apply_filters( 'trial_promotion_message', "{$message} {$cc_string}" ); 24009 24184 24010 $this->_admin_notices->add_sticky( 24185 $this->apply_filters( 'trial_promotion_message', "{$message} {$cc_string} {$button}" ),24011 "<div class=\"fs-trial-message-container\"><div>{$message_text}</div> {$button}</div>", 24186 24012 'trial_promotion', 24187 24013 '', … … 24880 24706 * @since 2.1.0 24881 24707 * 24882 * @param string $url24883 * @param array $request24884 */24885 private static function enrich_request_for_debug( &$url, &$request ) {24886 if ( WP_FS__DEBUG_SDK || isset( $_COOKIE['XDEBUG_SESSION'] ) ) {24887 $url = add_query_arg( 'XDEBUG_SESSION_START', rand( 0, 9999999 ), $url );24888 $url = add_query_arg( 'XDEBUG_SESSION', 'PHPSTORM', $url );24889 24890 $request['cookies'] = array(24891 new WP_Http_Cookie( array(24892 'name' => 'XDEBUG_SESSION',24893 'value' => 'PHPSTORM',24894 ) )24895 );24896 }24897 }24898 24899 /**24900 * @author Leo Fajardo (@leorw)24901 * @since 2.1.024902 *24903 24708 * @param string $url 24904 24709 * @param array $request … … 24926 24731 if ( false === $response ) { 24927 24732 if ( $maybe_enrich_request_for_debug ) { 24928 self::enrich_request_for_debug( $url, $request );24733 FS_DebugManager::enrich_request_for_debug( $url, $request ); 24929 24734 } 24930 24735 … … 25674 25479 25675 25480 // Locate the main assets folder. 25676 if ( 1 < count( $fs_active_plugins->plugins ) ) {25481 if ( ! empty( $fs_active_plugins->plugins ) ) { 25677 25482 $plugin_or_theme_img_dir = ( $this->is_plugin() ? WP_PLUGIN_DIR : get_theme_root( get_stylesheet() ) ); 25678 25483 -
woo-product-reviews-shortcode/trunk/freemius/includes/class-fs-api.php
r3082022 r3245272 356 356 } 357 357 358 self::$_cache->set( $cache_key, $result, $expiration ); 358 if ( is_numeric( $expiration ) ) { 359 self::$_cache->set( $cache_key, $result, $expiration ); 360 } 359 361 360 362 $cached_result = $result; -
woo-product-reviews-shortcode/trunk/freemius/includes/class-fs-logger.php
r2881642 r3245272 33 33 private static $_abspathLength; 34 34 35 /** 36 * @var FS_Logger[] $LOGGERS 37 */ 35 38 private static $LOGGERS = array(); 36 39 private static $LOG = array(); … … 125 128 self::hook_footer(); 126 129 } 127 128 130 function echo_on() { 129 131 $this->on(); … … 321 323 $table = "{$wpdb->prefix}fs_logger"; 322 324 325 /** 326 * Drop logging table in any case. 327 */ 328 $result = $wpdb->query( "DROP TABLE IF EXISTS $table;" ); 329 323 330 if ( $is_on ) { 324 331 /** … … 330 337 * @link https://core.trac.wordpress.org/ticket/2695 331 338 */ 332 $result = $wpdb->query( "CREATE TABLE {$table} (339 $result = $wpdb->query( "CREATE TABLE IF NOT EXISTS {$table} ( 333 340 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, 334 341 `process_id` INT UNSIGNED NOT NULL, … … 349 356 KEY `function` (`function` ASC), 350 357 KEY `type` (`type` ASC))" ); 351 } else {352 /**353 * Drop logging table.354 */355 $result = $wpdb->query( "DROP TABLE IF EXISTS $table;" );356 358 } 357 359 358 360 if ( false !== $result ) { 359 361 update_option( 'fs_storage_logger', ( $is_on ? 1 : 0 ) ); 362 self::$_isStorageLoggingOn = $is_on; 360 363 } 361 364 -
woo-product-reviews-shortcode/trunk/freemius/includes/class-fs-plugin-updater.php
r3082022 r3245272 107 107 if ( ! $this->_fs->has_any_active_valid_license() ) { 108 108 add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) ); 109 } else { 110 add_action( 'admin_footer', array( &$this, '_add_fs_allow_updater_and_dialog_request_param' ) ); 109 111 } 110 112 … … 132 134 /** 133 135 * @author Leo Fajardo (@leorw) 136 * @since 2.7.4 137 */ 138 function _add_fs_allow_updater_and_dialog_request_param() { 139 if ( ! $this->is_plugin_information_dialog_for_plugin() ) { 140 return; 141 } 142 ?> 143 <script type="text/javascript"> 144 if ( typeof jQuery !== 'undefined' ) { 145 jQuery( document ).on( 'wp-plugin-updating', function( event, args ) { 146 if ( typeof args === 'object' && args.slug && typeof args.slug === 'string' ) { 147 if ( <?php echo json_encode( $this->_fs->get_slug() ) ?> === args.slug ) { 148 args.fs_allow_updater_and_dialog = true; 149 } 150 } 151 } ); 152 } 153 </script> 154 <?php 155 } 156 157 /** 158 * @author Leo Fajardo (@leorw) 159 * @since 2.7.4 160 * 161 * @return bool 162 */ 163 private function is_plugin_information_dialog_for_plugin() { 164 return ( 165 'plugin-information' === fs_request_get( 'tab', false ) && 166 $this->_fs->get_slug() === fs_request_get_raw( 'plugin', false ) 167 ); 168 } 169 170 /** 171 * @author Leo Fajardo (@leorw) 134 172 * @since 2.1.4 135 173 */ 136 174 function catch_plugin_information_dialog_contents() { 137 if ( 138 'plugin-information' !== fs_request_get( 'tab', false ) || 139 $this->_fs->get_slug() !== fs_request_get_raw( 'plugin', false ) 140 ) { 175 if ( ! $this->is_plugin_information_dialog_for_plugin() ) { 141 176 return; 142 177 } … … 508 543 global $wp_current_filter; 509 544 510 $current_plugin_version = $this->_fs->get_plugin_version(); 511 512 if ( ! empty( $wp_current_filter ) && 'upgrader_process_complete' === $wp_current_filter[0] ) { 513 if ( 514 is_null( $this->_update_details ) || 515 ( is_object( $this->_update_details ) && $this->_update_details->new_version !== $current_plugin_version ) 516 ) { 517 /** 518 * After an update, clear the stored update details and reparse the plugin's main file in order to get 519 * the updated version's information and prevent the previous update information from showing up on the 520 * updates page. 521 * 522 * @author Leo Fajardo (@leorw) 523 * @since 2.3.1 524 */ 525 $this->_update_details = null; 526 $current_plugin_version = $this->_fs->get_plugin_version( true ); 527 } 545 if ( ! empty( $wp_current_filter ) && in_array( 'upgrader_process_complete', $wp_current_filter ) ) { 546 return $transient_data; 528 547 } 529 548 … … 534 553 fs_request_get_bool( 'force-check' ), 535 554 FS_Plugin_Updater::UPDATES_CHECK_CACHE_EXPIRATION, 536 $ current_plugin_version555 $this->_fs->get_plugin_version() 537 556 ); 538 557 … … 617 636 $slug = $this->_fs->get_slug(); 618 637 619 if ( $this-> _fs->is_org_repo_compliant() && $this->_fs->is_freemium() ) {638 if ( $this->can_fetch_data_from_wp_org() ) { 620 639 if ( ! isset( $this->_translation_updates ) ) { 621 640 $this->_translation_updates = array(); … … 872 891 873 892 return $res; 893 } 894 895 /** 896 * Returns true if the product can fetch data from WordPress.org. 897 * 898 * @author Leo Fajardo (@leorw) 899 * @since 2.7.4 900 */ 901 private function can_fetch_data_from_wp_org() { 902 return ( $this->_fs->is_org_repo_compliant() && $this->_fs->is_freemium() ); 874 903 } 875 904 … … 1058 1087 1059 1088 $plugin_in_repo = false; 1060 if ( ! $is_addon ) {1089 if ( ! $is_addon && $this->can_fetch_data_from_wp_org() ) { 1061 1090 // Try to fetch info from .org repository. 1062 1091 $data = self::_fetch_plugin_info_from_repository( $action, $args ); -
woo-product-reviews-shortcode/trunk/freemius/includes/class-fs-security.php
r2307256 r3245272 83 83 ); 84 84 } 85 86 /** 87 * Gets a sandbox trial token for a given plugin, plan, and trial timestamp. 88 * 89 * @param FS_Plugin $plugin 90 * @param FS_Plugin_Plan $plan 91 * @param int $trial_timestamp 92 * 93 * @return string 94 */ 95 function get_trial_token( FS_Plugin $plugin, FS_Plugin_Plan $plan, $trial_timestamp ) { 96 return md5( 97 $plugin->secret_key . $plugin->public_key . 98 $plan->trial_period . 99 $plan->id . 100 $trial_timestamp 101 ); 102 } 85 103 } -
woo-product-reviews-shortcode/trunk/freemius/includes/class-fs-storage.php
r3032314 r3245272 21 21 * @property bool|null $is_diagnostic_tracking_allowed 22 22 * @property object $sync_cron 23 * @property bool|int $install_timestamp 23 24 */ 24 25 class FS_Storage { -
woo-product-reviews-shortcode/trunk/freemius/includes/entities/class-fs-plugin-plan.php
r3082022 r3245272 14 14 * Class FS_Plugin_Plan 15 15 * 16 * @property FS_Pricing[] $pricing17 16 */ 18 17 class FS_Plugin_Plan extends FS_Entity { … … 93 92 */ 94 93 public $is_hidden; 94 /** 95 * @var FS_Pricing[] 96 */ 97 public $pricing; 98 /** 99 * @var object[] 100 */ 101 public $features; 95 102 96 103 #endregion Properties -
woo-product-reviews-shortcode/trunk/freemius/includes/entities/class-fs-site.php
r3082022 r3245272 11 11 } 12 12 13 /**14 * @property int $blog_id15 */16 #[AllowDynamicProperties]17 13 class FS_Site extends FS_Scope_Entity { 18 14 /** … … 20 16 */ 21 17 public $site_id; 18 /** 19 * @var int 20 */ 21 public $blog_id; 22 22 /** 23 23 * @var number … … 183 183 fs_ends_with( $subdomain, '.dev.wpengine.com' ) || 184 184 fs_ends_with( $subdomain, '.wpengine.com' ) || 185 fs_ends_with( $subdomain, '.wpenginepowered.com' ) || 185 186 // Pantheon 186 187 ( fs_ends_with( $subdomain, 'pantheonsite.io' ) && … … 190 191 // Kinsta 191 192 ( 192 ( fs_starts_with( $subdomain, 'st aging-' ) || fs_starts_with( $subdomain, 'env-' ) ) &&193 ( fs_starts_with( $subdomain, 'stg-' ) || fs_starts_with( $subdomain, 'staging-' ) || fs_starts_with( $subdomain, 'env-' ) ) && 193 194 ( fs_ends_with( $subdomain, '.kinsta.com' ) || fs_ends_with( $subdomain, '.kinsta.cloud' ) ) 194 195 ) || … … 202 203 ( fs_ends_with( $subdomain, '.websitepro-staging.com' ) || fs_ends_with( $subdomain, '.websitepro.hosting' ) ) || 203 204 // InstaWP 204 fs_ends_with( $subdomain, '.instawp.xyz' ) 205 fs_ends_with( $subdomain, '.instawp.xyz' ) || 206 // 10Web Hosting 207 ( fs_ends_with( $subdomain, '-dev.10web.site' ) || fs_ends_with( $subdomain, '-dev.10web.cloud' ) ) 205 208 ); 209 } 210 211 /** 212 * @author Leo Fajardo (@leorw) 213 * @since 2.9.1 214 * 215 * @param string $host 216 * 217 * @return bool 218 */ 219 static function is_playground_wp_environment_by_host( $host ) { 220 // Services aimed at providing a WordPress sandbox environment. 221 $sandbox_wp_environment_domains = array( 222 // InstaWP 223 'instawp.xyz', 224 225 // TasteWP 226 'tastewp.com', 227 228 // WordPress Playground 229 'playground.wordpress.net', 230 ); 231 232 foreach ( $sandbox_wp_environment_domains as $domain) { 233 if ( 234 ( $host === $domain ) || 235 fs_ends_with( $host, '.' . $domain ) || 236 fs_ends_with( $host, '-' . $domain ) 237 ) { 238 return true; 239 } 240 } 241 242 return false; 206 243 } 207 244 -
woo-product-reviews-shortcode/trunk/freemius/includes/entities/class-fs-user.php
r2692780 r3245272 49 49 } 50 50 51 /** 52 * This method removes the deprecated 'is_beta' property from the serialized data. 53 * Should clean up the serialized data to avoid PHP 8.2 warning on next execution. 54 * 55 * @return void 56 */ 57 function __wakeup() { 58 if ( property_exists( $this, 'is_beta' ) ) { 59 // If we enter here, and we are running PHP 8.2, we already had the warning. But we sanitize data for next execution. 60 unset( $this->is_beta ); 61 } 62 } 63 51 64 function get_name() { 52 65 return trim( ucfirst( trim( is_string( $this->first ) ? $this->first : '' ) ) . ' ' . ucfirst( trim( is_string( $this->last ) ? $this->last : '' ) ) ); -
woo-product-reviews-shortcode/trunk/freemius/includes/managers/class-fs-admin-menu-manager.php
r2419568 r3245272 700 700 } 701 701 702 $menu_slug = $menu['menu'][2]; 702 703 $parent_slug = isset( $menu['parent_slug'] ) ? 703 $menu['parent_slug'] : 704 'admin.php'; 705 706 return admin_url( 707 $parent_slug . 708 ( false === strpos( $parent_slug, '?' ) ? '?' : '&' ) . 709 'page=' . 710 $menu['menu'][2] 711 ); 704 $menu['parent_slug'] : 705 'admin.php'; 706 707 if ( fs_apply_filter( $this->_module_unique_affix, 'enable_cpt_advanced_menu_logic', false ) ) { 708 $parent_slug = 'admin.php'; 709 710 /** 711 * This line and the `if` block below it are based on the `menu_page_url()` function of WordPress. 712 * 713 * @author Leo Fajardo (@leorw) 714 * @since 2.10.2 715 */ 716 global $_parent_pages; 717 718 if ( ! empty( $_parent_pages[ $menu_slug ] ) ) { 719 $_parent_slug = $_parent_pages[ $menu_slug ]; 720 $parent_slug = isset( $_parent_pages[ $_parent_slug ] ) ? 721 $parent_slug : 722 $menu['parent_slug']; 723 } 724 } 725 726 return admin_url( 727 $parent_slug . 728 ( false === strpos( $parent_slug, '?' ) ? '?' : '&' ) . 729 'page=' . 730 $menu_slug 731 ); 712 732 } 713 733 -
woo-product-reviews-shortcode/trunk/freemius/includes/managers/class-fs-admin-notice-manager.php
r2881642 r3245272 195 195 */ 196 196 static function _add_sticky_dismiss_javascript() { 197 $sticky_admin_notice_js_template_name = 'sticky-admin-notice-js.php'; 198 199 if ( ! file_exists( fs_get_template_path( $sticky_admin_notice_js_template_name ) ) ) { 200 return; 201 } 202 197 203 $params = array(); 198 fs_require_once_template( 'sticky-admin-notice-js.php', $params );204 fs_require_once_template( $sticky_admin_notice_js_template_name, $params ); 199 205 } 200 206 -
woo-product-reviews-shortcode/trunk/freemius/includes/managers/class-fs-clone-manager.php
r2881642 r3245272 334 334 335 335 if ( ! isset( $this->all_installs ) ) { 336 $this->all_installs = F reemius::get_all_modules_sites();336 $this->all_installs = FS_DebugManager::get_all_modules_sites(); 337 337 } 338 338 -
woo-product-reviews-shortcode/trunk/freemius/languages/freemius.pot
r3082022 r3245272 9 9 "Language-Team: Freemius Team <[email protected]>\n" 10 10 "Last-Translator: Vova Feldman <[email protected]>\n" 11 "POT-Creation-Date: 2024- 04-22 10:16+0000\n"11 "POT-Creation-Date: 2024-10-20 12:05+0000\n" 12 12 "Report-Msgid-Bugs-To: https://github.com/Freemius/wordpress-sdk/issues\n" 13 13 "X-Poedit-Basepath: ..\n" … … 18 18 "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 19 20 #: includes/class-freemius.php:17 81, templates/account.php:94320 #: includes/class-freemius.php:1790, templates/account.php:943 21 21 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." 22 22 msgstr "" 23 23 24 #: includes/class-freemius.php:17 8824 #: includes/class-freemius.php:1797 25 25 msgid "Would you like to proceed with the update?" 26 26 msgstr "" 27 27 28 #: includes/class-freemius.php:20 1328 #: includes/class-freemius.php:2022 29 29 msgid "Freemius SDK couldn't find the plugin's main file. Please contact [email protected] with the current error." 30 30 msgstr "" 31 31 32 #: includes/class-freemius.php:20 15, includes/fs-plugin-info-dialog.php:151332 #: includes/class-freemius.php:2024, includes/fs-plugin-info-dialog.php:1513 33 33 msgid "Error" 34 34 msgstr "" 35 35 36 #: includes/class-freemius.php:24 6136 #: includes/class-freemius.php:2470 37 37 msgid "I found a better %s" 38 38 msgstr "" 39 39 40 #: includes/class-freemius.php:24 6340 #: includes/class-freemius.php:2472 41 41 msgid "What's the %s's name?" 42 42 msgstr "" 43 43 44 #: includes/class-freemius.php:24 6944 #: includes/class-freemius.php:2478 45 45 msgid "It's a temporary %s - I'm troubleshooting an issue" 46 46 msgstr "" 47 47 48 #: includes/class-freemius.php:24 7148 #: includes/class-freemius.php:2480 49 49 msgid "Deactivation" 50 50 msgstr "" 51 51 52 #: includes/class-freemius.php:24 7252 #: includes/class-freemius.php:2481 53 53 msgid "Theme Switch" 54 54 msgstr "" 55 55 56 #: includes/class-freemius.php:24 81, templates/forms/resend-key.php:24, templates/forms/user-change.php:2956 #: includes/class-freemius.php:2490, templates/forms/resend-key.php:24, templates/forms/user-change.php:29 57 57 msgid "Other" 58 58 msgstr "" 59 59 60 #: includes/class-freemius.php:24 8960 #: includes/class-freemius.php:2498 61 61 msgid "I no longer need the %s" 62 62 msgstr "" 63 63 64 #: includes/class-freemius.php:2 49664 #: includes/class-freemius.php:2505 65 65 msgid "I only needed the %s for a short period" 66 66 msgstr "" 67 67 68 #: includes/class-freemius.php:25 0268 #: includes/class-freemius.php:2511 69 69 msgid "The %s broke my site" 70 70 msgstr "" 71 71 72 #: includes/class-freemius.php:25 0972 #: includes/class-freemius.php:2518 73 73 msgid "The %s suddenly stopped working" 74 74 msgstr "" 75 75 76 #: includes/class-freemius.php:25 1976 #: includes/class-freemius.php:2528 77 77 msgid "I can't pay for it anymore" 78 78 msgstr "" 79 79 80 #: includes/class-freemius.php:25 2180 #: includes/class-freemius.php:2530 81 81 msgid "What price would you feel comfortable paying?" 82 82 msgstr "" 83 83 84 #: includes/class-freemius.php:25 2784 #: includes/class-freemius.php:2536 85 85 msgid "I don't like to share my information with you" 86 86 msgstr "" 87 87 88 #: includes/class-freemius.php:25 4888 #: includes/class-freemius.php:2557 89 89 msgid "The %s didn't work" 90 90 msgstr "" 91 91 92 #: includes/class-freemius.php:25 5892 #: includes/class-freemius.php:2567 93 93 msgid "I couldn't understand how to make it work" 94 94 msgstr "" 95 95 96 #: includes/class-freemius.php:25 6696 #: includes/class-freemius.php:2575 97 97 msgid "The %s is great, but I need specific feature that you don't support" 98 98 msgstr "" 99 99 100 #: includes/class-freemius.php:25 68100 #: includes/class-freemius.php:2577 101 101 msgid "What feature?" 102 102 msgstr "" 103 103 104 #: includes/class-freemius.php:25 72104 #: includes/class-freemius.php:2581 105 105 msgid "The %s is not working" 106 106 msgstr "" 107 107 108 #: includes/class-freemius.php:25 74108 #: includes/class-freemius.php:2583 109 109 msgid "Kindly share what didn't work so we can fix it for future users..." 110 110 msgstr "" 111 111 112 #: includes/class-freemius.php:25 78112 #: includes/class-freemius.php:2587 113 113 msgid "It's not what I was looking for" 114 114 msgstr "" 115 115 116 #: includes/class-freemius.php:258 0116 #: includes/class-freemius.php:2589 117 117 msgid "What you've been looking for?" 118 118 msgstr "" 119 119 120 #: includes/class-freemius.php:25 84120 #: includes/class-freemius.php:2593 121 121 msgid "The %s didn't work as expected" 122 122 msgstr "" 123 123 124 #: includes/class-freemius.php:25 86124 #: includes/class-freemius.php:2595 125 125 msgid "What did you expect?" 126 126 msgstr "" 127 127 128 #: includes/class-freemius.php:3685, templates/debug.php:24129 msgid "Freemius Debug"130 msgstr ""131 132 128 #. translators: %s: License type (e.g. you have a professional license) 133 #: includes/class-freemius.php:4 828129 #: includes/class-freemius.php:4517 134 130 msgid "You have purchased a %s license." 135 131 msgstr "" 136 132 137 #: includes/class-freemius.php:4 832133 #: includes/class-freemius.php:4521 138 134 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." 139 135 msgstr "" 140 136 141 #: includes/class-freemius.php:4 842, includes/class-freemius.php:21174, includes/class-freemius.php:24859137 #: includes/class-freemius.php:4531, includes/class-freemius.php:20889, includes/class-freemius.php:24610 142 138 msgctxt "interjection expressing joy or exuberance" 143 139 msgid "Yee-haw" 144 140 msgstr "" 145 141 146 #: includes/class-freemius.php:4 856142 #: includes/class-freemius.php:4545 147 143 msgctxt "addonX cannot run without pluginY" 148 144 msgid "%s cannot run without %s." 149 145 msgstr "" 150 146 151 #: includes/class-freemius.php:4 857147 #: includes/class-freemius.php:4546 152 148 msgctxt "addonX cannot run..." 153 149 msgid "%s cannot run without the plugin." 154 150 msgstr "" 155 151 156 #: includes/class-freemius.php:4 859, 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:57152 #: includes/class-freemius.php:4548, includes/class-freemius.php:5745, includes/class-freemius.php:13477, includes/class-freemius.php:14228, includes/class-freemius.php:17997, includes/class-freemius.php:18117, includes/class-freemius.php:18294, includes/class-freemius.php:20620, includes/class-freemius.php:21736, includes/class-freemius.php:22772, includes/class-freemius.php:22902, includes/class-freemius.php:23045, templates/add-ons.php:57 157 153 msgctxt "exclamation" 158 154 msgid "Oops" 159 155 msgstr "" 160 156 161 #: includes/class-freemius.php: 5138157 #: includes/class-freemius.php:4827 162 158 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:" 163 159 msgstr "" 164 160 165 161 #. translators: %s: License type (e.g. you have a professional license) 166 #: includes/class-freemius.php:5 743162 #: includes/class-freemius.php:5437 167 163 msgid "You have a %s license." 168 164 msgstr "" 169 165 170 #: includes/class-freemius.php:5 716166 #: includes/class-freemius.php:5410 171 167 msgid "Premium %s version was successfully activated." 172 168 msgstr "" 173 169 174 #: includes/class-freemius.php:5 728, includes/class-freemius.php:7765170 #: includes/class-freemius.php:5422, includes/class-freemius.php:7434 175 171 msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)." 176 172 msgid "W00t" 177 173 msgstr "" 178 174 179 #: includes/class-freemius.php: 6034175 #: includes/class-freemius.php:5728 180 176 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." 181 177 msgstr "" 182 178 183 #: includes/class-freemius.php: 6038179 #: includes/class-freemius.php:5732 184 180 msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin." 185 181 msgstr "" 186 182 187 #: includes/class-freemius.php: 6047, templates/add-ons.php:186, templates/account/partials/addon.php:386183 #: includes/class-freemius.php:5741, templates/add-ons.php:186, templates/account/partials/addon.php:386 188 184 msgid "More information about %s" 189 185 msgstr "" 190 186 191 #: includes/class-freemius.php: 6048187 #: includes/class-freemius.php:5742 192 188 msgid "Purchase License" 193 189 msgstr "" 194 190 195 191 #. translators: %3$s: What the user is expected to receive via email (e.g.: "the installation instructions" or "a license key") 196 #: includes/class-freemius.php: 7053192 #: includes/class-freemius.php:6747 197 193 msgid "You should receive %3$s for %1$s to your mailbox at %2$s in the next 5 minutes." 198 194 msgstr "" 199 195 200 #: includes/class-freemius.php: 7062196 #: includes/class-freemius.php:6756 201 197 msgctxt "Part of the message telling the user what they should receive via email." 202 198 msgid "a license key" … … 204 200 205 201 #. translators: %s: activation link (e.g.: <a>Click here</a>) 206 #: includes/class-freemius.php: 7070202 #: includes/class-freemius.php:6764 207 203 msgid "%s to activate the license once you get it." 208 204 msgstr "" 209 205 210 #: includes/class-freemius.php: 7078206 #: includes/class-freemius.php:6772 211 207 msgctxt "Part of an activation link message." 212 208 msgid "Click here" 213 209 msgstr "" 214 210 215 #: includes/class-freemius.php: 7056211 #: includes/class-freemius.php:6750 216 212 msgctxt "Part of the message telling the user what they should receive via email." 217 213 msgid "the installation instructions" 218 214 msgstr "" 219 215 220 #: includes/class-freemius.php: 7085216 #: includes/class-freemius.php:6779 221 217 msgctxt "Part of the message that tells the user to check their spam folder for a specific email." 222 218 msgid "the product's support email address" 223 219 msgstr "" 224 220 225 #: includes/class-freemius.php: 7091221 #: includes/class-freemius.php:6785 226 222 msgid "If you didn't get the email, try checking your spam folder or search for emails from %4$s." 227 223 msgstr "" 228 224 229 #: includes/class-freemius.php: 7093225 #: includes/class-freemius.php:6787 230 226 msgid "Thanks for upgrading." 231 227 msgstr "" 232 228 233 #: includes/class-freemius.php: 7044229 #: includes/class-freemius.php:6738 234 230 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." 235 231 msgstr "" 236 232 237 #: includes/class-freemius.php: 7047233 #: includes/class-freemius.php:6741 238 234 msgid "start the trial" 239 235 msgstr "" 240 236 241 #: includes/class-freemius.php: 7048, templates/connect.php:209237 #: includes/class-freemius.php:6742, templates/connect.php:208 242 238 msgid "complete the opt-in" 243 239 msgstr "" 244 240 245 #: includes/class-freemius.php: 7050241 #: includes/class-freemius.php:6744 246 242 msgid "Thanks!" 247 243 msgstr "" 248 244 249 #: includes/class-freemius.php: 7229245 #: includes/class-freemius.php:6923 250 246 msgid "You are just one step away - %s" 251 247 msgstr "" 252 248 253 #: includes/class-freemius.php: 7232249 #: includes/class-freemius.php:6926 254 250 msgctxt "%s - plugin name. As complete \"PluginX\" activation now" 255 251 msgid "Complete \"%s\" Activation Now" 256 252 msgstr "" 257 253 258 #: includes/class-freemius.php:7 314254 #: includes/class-freemius.php:7008 259 255 msgid "We made a few tweaks to the %s, %s" 260 256 msgstr "" 261 257 262 #: includes/class-freemius.php:7 318258 #: includes/class-freemius.php:7012 263 259 msgid "Opt in to make \"%s\" better!" 264 260 msgstr "" 265 261 266 #: includes/class-freemius.php:7 764262 #: includes/class-freemius.php:7433 267 263 msgid "The upgrade of %s was successfully completed." 268 264 msgstr "" 269 265 270 #: includes/class-freemius.php:10 527, 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:32266 #: includes/class-freemius.php:10196, includes/class-fs-plugin-updater.php:1142, includes/class-fs-plugin-updater.php:1364, includes/class-fs-plugin-updater.php:1357, templates/auto-installation.php:32 271 267 msgid "Add-On" 272 268 msgstr "" 273 269 274 #: includes/class-freemius.php:10 529, templates/account.php:407, templates/account.php:415, templates/debug.php:399, templates/debug.php:619270 #: includes/class-freemius.php:10198, templates/account.php:407, templates/account.php:415, templates/debug.php:458, templates/debug.php:678 275 271 msgid "Plugin" 276 272 msgstr "" 277 273 278 #: includes/class-freemius.php:10 530, templates/account.php:408, templates/account.php:416, templates/debug.php:399, templates/debug.php:619, templates/forms/deactivation/form.php:107274 #: includes/class-freemius.php:10199, templates/account.php:408, templates/account.php:416, templates/debug.php:458, templates/debug.php:678, templates/forms/deactivation/form.php:107 279 275 msgid "Theme" 280 276 msgstr "" 281 277 282 #: includes/class-freemius.php:13 635278 #: includes/class-freemius.php:13284 283 279 msgid "An unknown error has occurred while trying to toggle the license's white-label mode." 284 280 msgstr "" 285 281 286 #: includes/class-freemius.php:13 649282 #: includes/class-freemius.php:13298 287 283 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." 288 284 msgstr "" 289 285 290 #: includes/class-freemius.php:13 654, templates/account/partials/disconnect-button.php:84286 #: includes/class-freemius.php:13303, templates/account/partials/disconnect-button.php:84 291 287 msgid "User Dashboard" 292 288 msgstr "" 293 289 294 #: includes/class-freemius.php:13 655290 #: includes/class-freemius.php:13304 295 291 msgid "revert it now" 296 292 msgstr "" 297 293 298 #: includes/class-freemius.php:13 713294 #: includes/class-freemius.php:13362 299 295 msgid "An unknown error has occurred while trying to set the user's beta mode." 300 296 msgstr "" 301 297 302 #: includes/class-freemius.php:13 799298 #: includes/class-freemius.php:13448 303 299 msgid "Invalid new user ID or email address." 304 300 msgstr "" 305 301 306 #: includes/class-freemius.php:13 829302 #: includes/class-freemius.php:13478 307 303 msgid "Sorry, we could not complete the email update. Another user with the same email is already registered." 308 304 msgstr "" 309 305 310 #: includes/class-freemius.php:13 830306 #: includes/class-freemius.php:13479 311 307 msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button." 312 308 msgstr "" 313 309 314 #: includes/class-freemius.php:13 837310 #: includes/class-freemius.php:13486 315 311 msgid "Change Ownership" 316 312 msgstr "" 317 313 318 #: includes/class-freemius.php:14 442314 #: includes/class-freemius.php:14095 319 315 msgid "Invalid site details collection." 320 316 msgstr "" 321 317 322 #: includes/class-freemius.php:14 564318 #: includes/class-freemius.php:14217 323 319 msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?" 324 320 msgstr "" 325 321 326 #: includes/class-freemius.php:14 562322 #: includes/class-freemius.php:14215 327 323 msgid "We couldn't find your email address in the system, are you sure it's the right address?" 328 324 msgstr "" 329 325 330 #: includes/class-freemius.php:14 868326 #: includes/class-freemius.php:14521 331 327 msgid "Account is pending activation. Please check your email and click the link to activate your account and then submit the affiliate form again." 332 328 msgstr "" 333 329 334 #: includes/class-freemius.php:14 994, templates/forms/premium-versions-upgrade-handler.php:46330 #: includes/class-freemius.php:14647, templates/forms/premium-versions-upgrade-handler.php:46 335 331 msgid "Renew your license now" 336 332 msgstr "" 337 333 338 #: includes/class-freemius.php:14 982, templates/forms/premium-versions-upgrade-handler.php:47334 #: includes/class-freemius.php:14635, templates/forms/premium-versions-upgrade-handler.php:47 339 335 msgid "Buy a license now" 340 336 msgstr "" 341 337 342 #: includes/class-freemius.php:14 998338 #: includes/class-freemius.php:14651 343 339 msgid "%s to access version %s security & feature updates, and support." 344 340 msgstr "" 345 341 346 #: includes/class-freemius.php:17 670342 #: includes/class-freemius.php:17337 347 343 msgid "%s opt-in was successfully completed." 348 344 msgstr "" 349 345 350 #: includes/class-freemius.php:17 694, includes/class-freemius.php:21631346 #: includes/class-freemius.php:17361, includes/class-freemius.php:21346 351 347 msgid "Your trial has been successfully started." 352 348 msgstr "" 353 349 354 #: includes/class-freemius.php:17 684350 #: includes/class-freemius.php:17351 355 351 msgid "Your account was successfully activated with the %s plan." 356 352 msgstr "" 357 353 358 #: includes/class-freemius.php:1 8328, includes/class-freemius.php:18441, includes/class-freemius.php:18618354 #: includes/class-freemius.php:17995, includes/class-freemius.php:18115, includes/class-freemius.php:18292 359 355 msgid "Couldn't activate %s." 360 356 msgstr "" 361 357 362 #: includes/class-freemius.php:1 8329, includes/class-freemius.php:18442, includes/class-freemius.php:18619358 #: includes/class-freemius.php:17996, includes/class-freemius.php:18116, includes/class-freemius.php:18293 363 359 msgid "Please contact us with the following message:" 364 360 msgstr "" 365 361 366 #: includes/class-freemius.php:18 438, templates/forms/data-debug-mode.php:162362 #: includes/class-freemius.php:18112, templates/forms/data-debug-mode.php:162 367 363 msgid "An unknown error has occurred." 368 364 msgstr "" 369 365 370 #: includes/class-freemius.php:18 980, includes/class-freemius.php:24415366 #: includes/class-freemius.php:18654, includes/class-freemius.php:24166 371 367 msgid "Upgrade" 372 368 msgstr "" 373 369 374 #: includes/class-freemius.php:18 988370 #: includes/class-freemius.php:18662 375 371 msgid "Pricing" 376 372 msgstr "" 377 373 378 #: includes/class-freemius.php:18 986374 #: includes/class-freemius.php:18660 379 375 msgid "Start Trial" 380 376 msgstr "" 381 377 382 #: includes/class-freemius.php:1 9068, includes/class-freemius.php:19070378 #: includes/class-freemius.php:18742, includes/class-freemius.php:18744 383 379 msgid "Affiliation" 384 380 msgstr "" 385 381 386 #: includes/class-freemius.php:1 9098, includes/class-freemius.php:19100, templates/account.php:260, templates/debug.php:366382 #: includes/class-freemius.php:18772, includes/class-freemius.php:18774, templates/account.php:260, templates/debug.php:425 387 383 msgid "Account" 388 384 msgstr "" 389 385 390 #: includes/class-freemius.php:1 9114, includes/class-freemius.php:19116, includes/customizer/class-fs-customizer-support-section.php:60386 #: includes/class-freemius.php:18800, includes/class-freemius.php:18789, includes/class-freemius.php:18791, includes/customizer/class-fs-customizer-support-section.php:60 391 387 msgid "Contact Us" 392 388 msgstr "" 393 389 394 #: includes/class-freemius.php:1 9127, includes/class-freemius.php:19129, includes/class-freemius.php:24429, templates/account.php:130, templates/account/partials/addon.php:49390 #: includes/class-freemius.php:18814, includes/class-freemius.php:18816, includes/class-freemius.php:24180, templates/account.php:130, templates/account/partials/addon.php:49 395 391 msgid "Add-Ons" 396 392 msgstr "" 397 393 398 #: includes/class-freemius.php:1 9163394 #: includes/class-freemius.php:18849 399 395 msgctxt "ASCII arrow left icon" 400 396 msgid "←" 401 397 msgstr "" 402 398 403 #: includes/class-freemius.php:1 9163399 #: includes/class-freemius.php:18849 404 400 msgctxt "ASCII arrow right icon" 405 401 msgid "➤" 406 402 msgstr "" 407 403 408 #: includes/class-freemius.php:1 9165, templates/pricing.php:110404 #: includes/class-freemius.php:18867 409 405 msgctxt "noun" 410 406 msgid "Pricing" 411 407 msgstr "" 412 408 413 #: includes/class-freemius.php:19 378, includes/customizer/class-fs-customizer-support-section.php:67409 #: includes/class-freemius.php:19083, includes/customizer/class-fs-customizer-support-section.php:67 414 410 msgid "Support Forum" 415 411 msgstr "" 416 412 417 #: includes/class-freemius.php:20 399413 #: includes/class-freemius.php:20114 418 414 msgid "Your email has been successfully verified - you are AWESOME!" 419 415 msgstr "" 420 416 421 #: includes/class-freemius.php:20 400417 #: includes/class-freemius.php:20115 422 418 msgctxt "a positive response" 423 419 msgid "Right on" 424 420 msgstr "" 425 421 426 #: includes/class-freemius.php:20 906422 #: includes/class-freemius.php:20621 427 423 msgid "seems like the key you entered doesn't match our records." 428 424 msgstr "" 429 425 430 #: includes/class-freemius.php:20 930426 #: includes/class-freemius.php:20645 431 427 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." 432 428 msgstr "" 433 429 434 #: includes/class-freemius.php:2 1165430 #: includes/class-freemius.php:20880 435 431 msgid "Your %s Add-on plan was successfully upgraded." 436 432 msgstr "" 437 433 438 434 #. translators: %s:product name, e.g. Facebook add-on was successfully... 439 #: includes/class-freemius.php:2 1167435 #: includes/class-freemius.php:20882 440 436 msgid "%s Add-on was successfully purchased." 441 437 msgstr "" 442 438 443 #: includes/class-freemius.php:2 1170439 #: includes/class-freemius.php:20885 444 440 msgid "Download the latest version" 445 441 msgstr "" 446 442 447 #: includes/class-freemius.php:21 288443 #: includes/class-freemius.php:21003 448 444 msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again." 449 445 msgstr "" 450 446 451 #: includes/class-freemius.php:21 288, includes/class-freemius.php:21701, includes/class-freemius.php:21802, includes/class-freemius.php:21889447 #: includes/class-freemius.php:21003, includes/class-freemius.php:21416, includes/class-freemius.php:21517, includes/class-freemius.php:21604 452 448 msgid "Error received from the server:" 453 449 msgstr "" 454 450 455 #: includes/class-freemius.php:21 529, includes/class-freemius.php:21807, includes/class-freemius.php:21860, includes/class-freemius.php:21967451 #: includes/class-freemius.php:21244, includes/class-freemius.php:21522, includes/class-freemius.php:21575, includes/class-freemius.php:21682 456 452 msgctxt "something somebody says when they are thinking about what you have just said." 457 453 msgid "Hmm" 458 454 msgstr "" 459 455 460 #: includes/class-freemius.php:21 542456 #: includes/class-freemius.php:21257 461 457 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." 462 458 msgstr "" 463 459 464 #: includes/class-freemius.php:21 543, templates/account.php:132, templates/add-ons.php:250, templates/account/partials/addon.php:51460 #: includes/class-freemius.php:21258, templates/account.php:132, templates/add-ons.php:250, templates/account/partials/addon.php:51 465 461 msgctxt "trial period" 466 462 msgid "Trial" 467 463 msgstr "" 468 464 469 #: includes/class-freemius.php:21 548465 #: includes/class-freemius.php:21263 470 466 msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s." 471 467 msgstr "" 472 468 473 #: includes/class-freemius.php:21 552, includes/class-freemius.php:21610469 #: includes/class-freemius.php:21267, includes/class-freemius.php:21325 474 470 msgid "Please contact us here" 475 471 msgstr "" 476 472 477 #: includes/class-freemius.php:21 580473 #: includes/class-freemius.php:21295 478 474 msgid "Your plan was successfully changed to %s." 479 475 msgstr "" 480 476 481 #: includes/class-freemius.php:21 596477 #: includes/class-freemius.php:21311 482 478 msgid "Your license has expired. You can still continue using the free %s forever." 483 479 msgstr "" 484 480 485 481 #. translators: %1$s: product title; %2$s, %3$s: wrapping HTML anchor element; %4$s: 'plugin', 'theme', or 'add-on'. 486 #: includes/class-freemius.php:21 598482 #: includes/class-freemius.php:21313 487 483 msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions." 488 484 msgstr "" 489 485 490 #: includes/class-freemius.php:21 606486 #: includes/class-freemius.php:21321 491 487 msgid "Your license has been cancelled. If you think it's a mistake, please contact support." 492 488 msgstr "" 493 489 494 #: includes/class-freemius.php:21 619490 #: includes/class-freemius.php:21334 495 491 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." 496 492 msgstr "" 497 493 498 #: includes/class-freemius.php:21 645494 #: includes/class-freemius.php:21360 499 495 msgid "Your free trial has expired. You can still continue using all our free features." 500 496 msgstr "" 501 497 502 498 #. translators: %1$s: product title; %2$s, %3$s: wrapping HTML anchor element; %4$s: 'plugin', 'theme', or 'add-on'. 503 #: includes/class-freemius.php:21 647499 #: includes/class-freemius.php:21362 504 500 msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions." 505 501 msgstr "" 506 502 507 #: includes/class-freemius.php:21 693503 #: includes/class-freemius.php:21408 508 504 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" 509 505 msgstr "" 510 506 511 #: includes/class-freemius.php:21 695507 #: includes/class-freemius.php:21410 512 508 msgid "Show error details" 513 509 msgstr "" 514 510 515 #: includes/class-freemius.php:21 798511 #: includes/class-freemius.php:21513 516 512 msgid "It looks like the license could not be activated." 517 513 msgstr "" 518 514 519 #: includes/class-freemius.php:21 840515 #: includes/class-freemius.php:21555 520 516 msgid "Your license was successfully activated." 521 517 msgstr "" 522 518 523 #: includes/class-freemius.php:21 864519 #: includes/class-freemius.php:21579 524 520 msgid "It looks like your site currently doesn't have an active license." 525 521 msgstr "" 526 522 527 #: includes/class-freemius.php:21 888523 #: includes/class-freemius.php:21603 528 524 msgid "It looks like the license deactivation failed." 529 525 msgstr "" 530 526 531 #: includes/class-freemius.php:21 917527 #: includes/class-freemius.php:21632 532 528 msgid "Your %s license was successfully deactivated." 533 529 msgstr "" 534 530 535 #: includes/class-freemius.php:21 918531 #: includes/class-freemius.php:21633 536 532 msgid "Your license was successfully deactivated, you are back to the %s plan." 537 533 msgstr "" 538 534 539 #: includes/class-freemius.php:21 921535 #: includes/class-freemius.php:21636 540 536 msgid "O.K" 541 537 msgstr "" 542 538 543 #: includes/class-freemius.php:21 974539 #: includes/class-freemius.php:21689 544 540 msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes." 545 541 msgstr "" 546 542 547 #: includes/class-freemius.php:21 983543 #: includes/class-freemius.php:21698 548 544 msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s." 549 545 msgstr "" 550 546 551 #: includes/class-freemius.php:2 2025547 #: includes/class-freemius.php:21741 552 548 msgid "You are already running the %s in a trial mode." 553 549 msgstr "" 554 550 555 #: includes/class-freemius.php:2 2036551 #: includes/class-freemius.php:21753 556 552 msgid "You already utilized a trial before." 557 553 msgstr "" 558 554 559 #: includes/class-freemius.php:2 2072555 #: includes/class-freemius.php:21792 560 556 msgid "None of the %s's plans supports a trial period." 561 557 msgstr "" 562 558 563 #: includes/class-freemius.php:2 2050559 #: includes/class-freemius.php:21768 564 560 msgid "Plan %s do not exist, therefore, can't start a trial." 565 561 msgstr "" 566 562 567 #: includes/class-freemius.php:2 2061563 #: includes/class-freemius.php:21780 568 564 msgid "Plan %s does not support a trial period." 569 565 msgstr "" 570 566 571 #: includes/class-freemius.php:2 2121567 #: includes/class-freemius.php:21854 572 568 msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)" 573 569 msgstr "" 574 570 575 #: includes/class-freemius.php:2 2157571 #: includes/class-freemius.php:21890 576 572 msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes." 577 573 msgstr "" 578 574 579 #: includes/class-freemius.php:2 2176575 #: includes/class-freemius.php:21909 580 576 msgid "Your %s free trial was successfully cancelled." 581 577 msgstr "" 582 578 583 #: includes/class-freemius.php:22 520579 #: includes/class-freemius.php:22256 584 580 msgid "Seems like you got the latest release." 585 581 msgstr "" 586 582 587 #: includes/class-freemius.php:22 521583 #: includes/class-freemius.php:22257 588 584 msgid "You are all good!" 589 585 msgstr "" 590 586 591 #: includes/class-freemius.php:22 503587 #: includes/class-freemius.php:22239 592 588 msgid "Version %s was released." 593 589 msgstr "" 594 590 595 #: includes/class-freemius.php:22 503591 #: includes/class-freemius.php:22239 596 592 msgid "Please download %s." 597 593 msgstr "" 598 594 599 #: includes/class-freemius.php:22 510595 #: includes/class-freemius.php:22246 600 596 msgid "the latest %s version here" 601 597 msgstr "" 602 598 603 #: includes/class-freemius.php:22 515599 #: includes/class-freemius.php:22251 604 600 msgid "New" 605 601 msgstr "" 606 602 607 #: includes/class-freemius.php:22 924603 #: includes/class-freemius.php:22660 608 604 msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box." 609 605 msgstr "" 610 606 611 #: includes/class-freemius.php:2 3064607 #: includes/class-freemius.php:22800 612 608 msgid "Site successfully opted in." 613 609 msgstr "" 614 610 615 #: includes/class-freemius.php:2 3065, includes/class-freemius.php:24125611 #: includes/class-freemius.php:22801, includes/class-freemius.php:23876 616 612 msgid "Awesome" 617 613 msgstr "" 618 614 619 #: includes/class-freemius.php:2 3091615 #: includes/class-freemius.php:22827 620 616 msgid "Diagnostic data will no longer be sent from %s to %s." 621 617 msgstr "" 622 618 623 #: includes/class-freemius.php:2 3081619 #: includes/class-freemius.php:22817 624 620 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." 625 621 msgstr "" 626 622 627 #: includes/class-freemius.php:2 3082623 #: includes/class-freemius.php:22818 628 624 msgid "Thank you!" 629 625 msgstr "" 630 626 631 #: includes/class-freemius.php:2 3251627 #: includes/class-freemius.php:22987 632 628 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." 633 629 msgstr "" 634 630 635 #: includes/class-freemius.php:2 3249631 #: includes/class-freemius.php:22985 636 632 msgid "A confirmation email was just sent to %s. The email owner must confirm the update within the next 4 hours." 637 633 msgstr "" 638 634 639 #: includes/class-freemius.php:2 3263635 #: includes/class-freemius.php:22999 640 636 msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval." 641 637 msgstr "" 642 638 643 #: includes/class-freemius.php:23 269639 #: includes/class-freemius.php:23005 644 640 msgid "%s is the new owner of the account." 645 641 msgstr "" 646 642 647 #: includes/class-freemius.php:23 271643 #: includes/class-freemius.php:23007 648 644 msgctxt "as congratulations" 649 645 msgid "Congrats" 650 646 msgstr "" 651 647 652 #: includes/class-freemius.php:23 293648 #: includes/class-freemius.php:23029 653 649 msgid "Your name was successfully updated." 654 650 msgstr "" 655 651 656 #: includes/class-freemius.php:23 288652 #: includes/class-freemius.php:23024 657 653 msgid "Please provide your full name." 658 654 msgstr "" 659 655 660 656 #. translators: %s: User's account property (e.g. email address, name) 661 #: includes/class-freemius.php:23 358657 #: includes/class-freemius.php:23094 662 658 msgid "You have successfully updated your %s." 663 659 msgstr "" 664 660 665 #: includes/class-freemius.php:23 422661 #: includes/class-freemius.php:23158 666 662 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." 667 663 msgstr "" 668 664 669 #: includes/class-freemius.php:23 425665 #: includes/class-freemius.php:23161 670 666 msgid "Click here" 671 667 msgstr "" 672 668 673 #: includes/class-freemius.php:23 462669 #: includes/class-freemius.php:23198 674 670 msgid "Bundle" 675 671 msgstr "" 676 672 677 #: includes/class-freemius.php:23 535673 #: includes/class-freemius.php:23271 678 674 msgid "Just letting you know that the add-ons information of %s is being pulled from an external server." 679 675 msgstr "" 680 676 681 #: includes/class-freemius.php:23 536677 #: includes/class-freemius.php:23272 682 678 msgctxt "advance notice of something that will need attention." 683 679 msgid "Heads up" 684 680 msgstr "" 685 681 686 #: includes/class-freemius.php:2 4165682 #: includes/class-freemius.php:23916 687 683 msgctxt "exclamation" 688 684 msgid "Hey" 689 685 msgstr "" 690 686 691 #: includes/class-freemius.php:2 4165687 #: includes/class-freemius.php:23916 692 688 msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial." 693 689 msgstr "" 694 690 695 #: includes/class-freemius.php:2 4173691 #: includes/class-freemius.php:23924 696 692 msgid "No commitment for %s days - cancel anytime!" 697 693 msgstr "" 698 694 699 #: includes/class-freemius.php:2 4174695 #: includes/class-freemius.php:23925 700 696 msgid "No credit card required" 701 697 msgstr "" 702 698 703 #: includes/class-freemius.php:2 4181, templates/forms/trial-start.php:53699 #: includes/class-freemius.php:23932, templates/forms/trial-start.php:53 704 700 msgctxt "call to action" 705 701 msgid "Start free trial" 706 702 msgstr "" 707 703 708 #: includes/class-freemius.php:24 258704 #: includes/class-freemius.php:24009 709 705 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!" 710 706 msgstr "" 711 707 712 #: includes/class-freemius.php:24 267708 #: includes/class-freemius.php:24018 713 709 msgid "Learn more" 714 710 msgstr "" 715 711 716 #: includes/class-freemius.php:24 453, 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:326712 #: includes/class-freemius.php:24204, templates/account.php:569, templates/account.php:721, templates/connect.php:211, templates/connect.php:439, includes/managers/class-fs-clone-manager.php:1295, templates/forms/license-activation.php:27, templates/account/partials/addon.php:326 717 713 msgid "Activate License" 718 714 msgstr "" 719 715 720 #: includes/class-freemius.php:24 454, templates/account.php:663, templates/account.php:720, templates/account/partials/addon.php:327, templates/account/partials/site.php:273716 #: includes/class-freemius.php:24205, templates/account.php:663, templates/account.php:720, templates/account/partials/addon.php:327, templates/account/partials/site.php:273 721 717 msgid "Change License" 722 718 msgstr "" 723 719 724 #: includes/class-freemius.php:24 569, includes/class-freemius.php:24563, templates/account/partials/site.php:49, templates/account/partials/site.php:170720 #: includes/class-freemius.php:24320, includes/class-freemius.php:24314, templates/account/partials/site.php:49, templates/account/partials/site.php:170 725 721 msgid "Opt In" 726 722 msgstr "" 727 723 728 #: includes/class-freemius.php:24 561, templates/account/partials/site.php:170724 #: includes/class-freemius.php:24312, templates/account/partials/site.php:170 729 725 msgid "Opt Out" 730 726 msgstr "" 731 727 732 #: includes/class-freemius.php:24 827728 #: includes/class-freemius.php:24578 733 729 msgid "Please follow these steps to complete the upgrade" 734 730 msgstr "" 735 731 736 732 #. translators: %s: Plan title 737 #: includes/class-freemius.php:24 831733 #: includes/class-freemius.php:24582 738 734 msgid "Download the latest %s version" 739 735 msgstr "" 740 736 741 #: includes/class-freemius.php:24 835737 #: includes/class-freemius.php:24586 742 738 msgid "Upload and activate the downloaded version" 743 739 msgstr "" 744 740 745 #: includes/class-freemius.php:24 837741 #: includes/class-freemius.php:24588 746 742 msgid "How to upload and activate?" 747 743 msgstr "" 748 744 749 #: includes/class-freemius.php:24 804745 #: includes/class-freemius.php:24555 750 746 msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s" 751 747 msgstr "" 752 748 753 #: includes/class-freemius.php:24 814749 #: includes/class-freemius.php:24565 754 750 msgid "Activate %s features" 755 751 msgstr "" 756 752 757 #: includes/class-freemius.php:24 872753 #: includes/class-freemius.php:24623 758 754 msgid "Your plan was successfully upgraded." 759 755 msgstr "" 760 756 761 #: includes/class-freemius.php:24 873757 #: includes/class-freemius.php:24624 762 758 msgid "Your plan was successfully activated." 763 759 msgstr "" 764 760 765 #: includes/class-freemius.php:2 5003761 #: includes/class-freemius.php:24733 766 762 msgid "%sClick here%s to choose the sites where you'd like to activate the license on." 767 763 msgstr "" 768 764 769 #: includes/class-freemius.php:2 5172765 #: includes/class-freemius.php:24902 770 766 msgid "Auto installation only works for opted-in users." 771 767 msgstr "" 772 768 773 #: includes/class-freemius.php:2 5182, includes/class-freemius.php:25215, includes/class-fs-plugin-updater.php:1291, includes/class-fs-plugin-updater.php:1305769 #: includes/class-freemius.php:24912, includes/class-freemius.php:24945, includes/class-fs-plugin-updater.php:1336, includes/class-fs-plugin-updater.php:1350 774 770 msgid "Invalid module ID." 775 771 msgstr "" 776 772 777 #: includes/class-freemius.php:2 5223, includes/class-fs-plugin-updater.php:1326773 #: includes/class-freemius.php:24953, includes/class-fs-plugin-updater.php:1371 778 774 msgid "Premium add-on version already installed." 779 775 msgstr "" 780 776 781 #: includes/class-freemius.php:2 5191, includes/class-fs-plugin-updater.php:1327777 #: includes/class-freemius.php:24921, includes/class-fs-plugin-updater.php:1372 782 778 msgid "Premium version already active." 783 779 msgstr "" 784 780 785 #: includes/class-freemius.php:2 5198781 #: includes/class-freemius.php:24928 786 782 msgid "You do not have a valid license to access the premium version." 787 783 msgstr "" 788 784 789 #: includes/class-freemius.php:2 5205785 #: includes/class-freemius.php:24935 790 786 msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version." 791 787 msgstr "" 792 788 793 #: includes/class-freemius.php:25 583789 #: includes/class-freemius.php:25313 794 790 msgid "View paid features" 795 791 msgstr "" 796 792 797 #: includes/class-freemius.php:25 898793 #: includes/class-freemius.php:25628 798 794 msgid "Thank you so much for using our products!" 799 795 msgstr "" 800 796 801 #: includes/class-freemius.php:25 899797 #: includes/class-freemius.php:25629 802 798 msgid "You've already opted-in to our usage-tracking, which helps us keep improving them." 803 799 msgstr "" 804 800 805 #: includes/class-freemius.php:25 918801 #: includes/class-freemius.php:25648 806 802 msgid "%s and its add-ons" 807 803 msgstr "" 808 804 809 #: includes/class-freemius.php:25 927805 #: includes/class-freemius.php:25657 810 806 msgid "Products" 811 807 msgstr "" 812 808 813 #: includes/class-freemius.php:25 887809 #: includes/class-freemius.php:25617 814 810 msgid "Thank you so much for using %s and its add-ons!" 815 811 msgstr "" 816 812 817 #: includes/class-freemius.php:25 888813 #: includes/class-freemius.php:25618 818 814 msgid "Thank you so much for using %s!" 819 815 msgstr "" 820 816 821 #: includes/class-freemius.php:25 894817 #: includes/class-freemius.php:25624 822 818 msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s." 823 819 msgstr "" 824 820 825 #: includes/class-freemius.php:25 934, templates/connect.php:313821 #: includes/class-freemius.php:25664, templates/connect.php:312 826 822 msgid "Yes" 827 823 msgstr "" 828 824 829 #: includes/class-freemius.php:25 935, templates/connect.php:314825 #: includes/class-freemius.php:25665, templates/connect.php:313 830 826 msgid "send me security & feature updates, educational content and offers." 831 827 msgstr "" 832 828 833 #: includes/class-freemius.php:25 936, templates/connect.php:319829 #: includes/class-freemius.php:25666, templates/connect.php:318 834 830 msgid "No" 835 831 msgstr "" 836 832 837 #: includes/class-freemius.php:25 938, templates/connect.php:321833 #: includes/class-freemius.php:25668, templates/connect.php:320 838 834 msgid "do %sNOT%s send me security & feature updates, educational content and offers." 839 835 msgstr "" 840 836 841 #: includes/class-freemius.php:25 948837 #: includes/class-freemius.php:25678 842 838 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 :-)" 843 839 msgstr "" 844 840 845 #: includes/class-freemius.php:25 950, templates/connect.php:328841 #: includes/class-freemius.php:25680, templates/connect.php:327 846 842 msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:" 847 843 msgstr "" 848 844 849 #: includes/class-freemius.php:2 6240845 #: includes/class-freemius.php:25970 850 846 msgid "License key is empty." 851 847 msgstr "" 852 848 853 #: includes/class-fs-plugin-updater.php:2 12, templates/forms/premium-versions-upgrade-handler.php:57849 #: includes/class-fs-plugin-updater.php:247, templates/forms/premium-versions-upgrade-handler.php:57 854 850 msgid "Renew license" 855 851 msgstr "" 856 852 857 #: includes/class-fs-plugin-updater.php:2 17, templates/forms/premium-versions-upgrade-handler.php:58853 #: includes/class-fs-plugin-updater.php:252, templates/forms/premium-versions-upgrade-handler.php:58 858 854 msgid "Buy license" 859 855 msgstr "" 860 856 861 #: includes/class-fs-plugin-updater.php: 370, includes/class-fs-plugin-updater.php:337857 #: includes/class-fs-plugin-updater.php:405, includes/class-fs-plugin-updater.php:372 862 858 msgid "There is a %s of %s available." 863 859 msgstr "" 864 860 865 #: includes/class-fs-plugin-updater.php: 375, includes/class-fs-plugin-updater.php:339861 #: includes/class-fs-plugin-updater.php:410, includes/class-fs-plugin-updater.php:374 866 862 msgid "new Beta version" 867 863 msgstr "" 868 864 869 #: includes/class-fs-plugin-updater.php: 376, includes/class-fs-plugin-updater.php:340865 #: includes/class-fs-plugin-updater.php:411, includes/class-fs-plugin-updater.php:375 870 866 msgid "new version" 871 867 msgstr "" 872 868 873 #: includes/class-fs-plugin-updater.php: 399869 #: includes/class-fs-plugin-updater.php:434 874 870 msgid "Important Upgrade Notice:" 875 871 msgstr "" 876 872 877 #: includes/class-fs-plugin-updater.php:1 356873 #: includes/class-fs-plugin-updater.php:1401 878 874 msgid "Installing plugin: %s" 879 875 msgstr "" 880 876 881 #: includes/class-fs-plugin-updater.php:1 397877 #: includes/class-fs-plugin-updater.php:1442 882 878 msgid "Unable to connect to the filesystem. Please confirm your credentials." 883 879 msgstr "" 884 880 885 #: includes/class-fs-plugin-updater.php:1 579881 #: includes/class-fs-plugin-updater.php:1624 886 882 msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work." 887 883 msgstr "" … … 931 927 msgstr "" 932 928 933 #: includes/fs-plugin-info-dialog.php:790, templates/connect.php:43 7929 #: includes/fs-plugin-info-dialog.php:790, templates/connect.php:436 934 930 msgid "Activate Free Version" 935 931 msgstr "" … … 1065 1061 msgstr "" 1066 1062 1067 #: includes/fs-plugin-info-dialog.php:1315, templates/account.php:121, templates/debug.php:2 32, templates/debug.php:269, templates/debug.php:518, templates/account/partials/addon.php:411063 #: includes/fs-plugin-info-dialog.php:1315, templates/account.php:121, templates/debug.php:291, templates/debug.php:328, templates/debug.php:577, templates/account/partials/addon.php:41 1068 1064 msgctxt "product version" 1069 1065 msgid "Version" … … 1281 1277 msgstr "" 1282 1278 1283 #: templates/account.php:135, templates/debug.php:4 12, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:541279 #: templates/account.php:135, templates/debug.php:471, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:54 1284 1280 msgctxt "as product pricing plan" 1285 1281 msgid "Plan" … … 1327 1323 msgstr "" 1328 1324 1329 #: templates/account.php:385, templates/debug.php: 5751325 #: templates/account.php:385, templates/debug.php:634 1330 1326 msgid "Name" 1331 1327 msgstr "" 1332 1328 1333 #: templates/account.php:391, templates/debug.php: 5761329 #: templates/account.php:391, templates/debug.php:635 1334 1330 msgid "Email" 1335 1331 msgstr "" 1336 1332 1337 #: templates/account.php:398, templates/debug.php:4 10, templates/debug.php:6251333 #: templates/account.php:398, templates/debug.php:469, templates/debug.php:684 1338 1334 msgid "User ID" 1339 1335 msgstr "" 1340 1336 1341 #: 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:211337 #: templates/account.php:416, templates/account.php:734, templates/account.php:785, templates/debug.php:326, templates/debug.php:463, templates/debug.php:574, templates/debug.php:633, templates/debug.php:682, templates/debug.php:761, templates/account/payments.php:35, templates/debug/logger.php:21 1342 1338 msgid "ID" 1343 1339 msgstr "" … … 1351 1347 msgstr "" 1352 1348 1353 #: 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:2281349 #: templates/account.php:431, templates/debug.php:333, templates/debug.php:472, templates/debug.php:578, templates/debug.php:637, templates/account/partials/site.php:228 1354 1350 msgid "Public Key" 1355 1351 msgstr "" 1356 1352 1357 #: templates/account.php:437, templates/debug.php:4 14, templates/debug.php:520, templates/debug.php:579, templates/account/partials/site.php:2411353 #: templates/account.php:437, templates/debug.php:473, templates/debug.php:579, templates/debug.php:638, templates/account/partials/site.php:241 1358 1354 msgid "Secret Key" 1359 1355 msgstr "" … … 1364 1360 msgstr "" 1365 1361 1366 #: templates/account.php:494, templates/debug.php:6 31, templates/account/partials/site.php:2621362 #: templates/account.php:494, templates/debug.php:690, templates/account/partials/site.php:262 1367 1363 msgid "License Key" 1368 1364 msgstr "" … … 1430 1426 msgstr "" 1431 1427 1432 #: templates/account.php:735, templates/debug.php:4 071428 #: templates/account.php:735, templates/debug.php:466 1433 1429 msgid "Address" 1434 1430 msgstr "" … … 1534 1530 #: templates/auto-installation.php:109 1535 1531 msgid "Cancel Installation" 1536 msgstr ""1537 1538 #: templates/checkout.php:1811539 msgid "Checkout"1540 msgstr ""1541 1542 #: templates/checkout.php:1811543 msgid "PCI compliant"1544 1532 msgstr "" 1545 1533 … … 1551 1539 1552 1540 #. translators: %1$s: plugin name (e.g., "Awesome Plugin"); %2$s: version (e.g., "1.2.3") 1553 #: templates/connect.php:18 61541 #: templates/connect.php:185 1554 1542 msgid "Thank you for updating to %1$s v%2$s!" 1555 1543 msgstr "" 1556 1544 1557 #: templates/connect.php:17 81545 #: templates/connect.php:177 1558 1546 msgid "Never miss an important update" 1559 1547 msgstr "" 1560 1548 1561 #: templates/connect.php:19 61549 #: templates/connect.php:195 1562 1550 msgid "Allow & Continue" 1563 1551 msgstr "" 1564 1552 1565 1553 #. translators: %s: module type (plugin, theme, or add-on) 1566 #: templates/connect.php:23 61554 #: templates/connect.php:235 1567 1555 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." 1568 1556 msgstr "" 1569 1557 1570 #: templates/connect.php:23 81558 #: templates/connect.php:237 1571 1559 msgid "Opt in to get email notifications for security & feature updates, educational content, and occasional offers, and to share some basic WordPress environment info." 1572 1560 msgstr "" 1573 1561 1574 #: templates/connect.php:24 11562 #: templates/connect.php:240 1575 1563 msgid "If you skip this, that's okay! %1$s will still work just fine." 1576 1564 msgstr "" 1577 1565 1578 #: templates/connect.php:22 71566 #: templates/connect.php:226 1579 1567 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." 1580 1568 msgstr "" 1581 1569 1582 #: templates/connect.php:21 61570 #: templates/connect.php:215 1583 1571 msgid "Welcome to %s! To get started, please enter your license key:" 1584 1572 msgstr "" 1585 1573 1586 #: templates/connect.php: 2001574 #: templates/connect.php:199 1587 1575 msgid "Re-send activation email" 1588 1576 msgstr "" 1589 1577 1578 #: templates/connect.php:203 1579 msgid "Thanks %s!" 1580 msgstr "" 1581 1590 1582 #: templates/connect.php:204 1591 msgid "Thanks %s!"1592 msgstr ""1593 1594 #: templates/connect.php:2051595 1583 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." 1596 1584 msgstr "" 1597 1585 1598 #: templates/connect.php:27 11586 #: templates/connect.php:270 1599 1587 msgid "We're excited to introduce the Freemius network-level integration." 1600 1588 msgstr "" 1601 1589 1602 #: templates/connect.php:28 51590 #: templates/connect.php:284 1603 1591 msgid "During the update process we detected %s site(s) in the network that are still pending your attention." 1604 1592 msgstr "" 1605 1593 1606 #: templates/connect.php:27 41594 #: templates/connect.php:273 1607 1595 msgid "During the update process we detected %d site(s) that are still pending license activation." 1608 1596 msgstr "" 1609 1597 1610 #: templates/connect.php:27 61598 #: templates/connect.php:275 1611 1599 msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button." 1612 1600 msgstr "" 1613 1601 1614 #: templates/connect.php:27 81602 #: templates/connect.php:277 1615 1603 msgid "%s's paid features" 1616 1604 msgstr "" 1617 1605 1618 #: templates/connect.php:28 31606 #: templates/connect.php:282 1619 1607 msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page." 1620 1608 msgstr "" 1621 1609 1622 #: templates/connect.php:29 4, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:421610 #: templates/connect.php:293, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:42 1623 1611 msgid "License key" 1624 1612 msgstr "" 1625 1613 1626 #: templates/connect.php:29 7, templates/forms/license-activation.php:221614 #: templates/connect.php:296, templates/forms/license-activation.php:22 1627 1615 msgid "Can't find your license key?" 1628 1616 msgstr "" 1629 1617 1630 #: templates/connect.php:3 60, templates/connect.php:690, templates/forms/deactivation/retry-skip.php:201618 #: templates/connect.php:359, templates/connect.php:689, templates/forms/deactivation/retry-skip.php:20 1631 1619 msgctxt "verb" 1632 1620 msgid "Skip" 1633 1621 msgstr "" 1634 1622 1635 #: templates/connect.php:36 31623 #: templates/connect.php:362 1636 1624 msgid "Delegate to Site Admins" 1637 1625 msgstr "" 1638 1626 1639 #: templates/connect.php:36 31627 #: templates/connect.php:362 1640 1628 msgid "If you click it, this decision will be delegated to the sites administrators." 1641 1629 msgstr "" 1642 1630 1643 #: templates/connect.php:39 21631 #: templates/connect.php:391 1644 1632 msgid "License issues?" 1645 1633 msgstr "" 1646 1634 1647 #: templates/connect.php:42 11635 #: templates/connect.php:420 1648 1636 msgid "This will allow %s to" 1649 1637 msgstr "" 1650 1638 1651 #: templates/connect.php:41 61639 #: templates/connect.php:415 1652 1640 msgid "For delivery of security & feature updates, and license management, %s needs to" 1653 1641 msgstr "" 1654 1642 1655 #: templates/connect.php:43 91643 #: templates/connect.php:438 1656 1644 msgid "Have a license key?" 1657 1645 msgstr "" 1658 1646 1659 #: templates/connect.php:43 61647 #: templates/connect.php:435 1660 1648 msgid "Don't have a license key?" 1661 1649 msgstr "" 1662 1650 1663 #: templates/connect.php:44 71651 #: templates/connect.php:446 1664 1652 msgid "Freemius is our licensing and software updates engine" 1665 1653 msgstr "" 1666 1654 1667 #: templates/connect.php:4 501655 #: templates/connect.php:449 1668 1656 msgid "Privacy Policy" 1669 1657 msgstr "" 1670 1658 1671 #: templates/connect.php:45 51659 #: templates/connect.php:454 1672 1660 msgid "Terms of Service" 1673 1661 msgstr "" 1674 1662 1675 #: templates/connect.php:45 31663 #: templates/connect.php:452 1676 1664 msgid "License Agreement" 1677 1665 msgstr "" 1678 1666 1679 #: templates/connect.php:87 61667 #: templates/connect.php:875 1680 1668 msgctxt "as in the process of sending an email" 1681 1669 msgid "Sending email" 1682 1670 msgstr "" 1683 1671 1684 #: templates/connect.php:87 71672 #: templates/connect.php:876 1685 1673 msgctxt "as activating plugin" 1686 1674 msgid "Activating" 1687 1675 msgstr "" 1688 1676 1689 #: templates/contact.php: 781677 #: templates/contact.php:63 1690 1678 msgid "Contact" 1691 1679 msgstr "" … … 1701 1689 msgstr "" 1702 1690 1703 #: templates/debug.php:24 1691 #: templates/debug.php:29, includes/managers/class-fs-debug-manager.php:26 1692 msgid "Freemius Debug" 1693 msgstr "" 1694 1695 #: templates/debug.php:29 1704 1696 msgid "SDK" 1705 1697 msgstr "" 1706 1698 1707 #: templates/debug.php: 281699 #: templates/debug.php:32 1708 1700 msgctxt "as code debugging" 1709 1701 msgid "Debugging" 1710 1702 msgstr "" 1711 1703 1712 #: templates/debug.php:58, templates/debug.php:279, templates/debug.php:415, templates/debug.php:580 1704 #: templates/debug.php:38 1705 msgctxt "timer for auto-disabling debug" 1706 msgid "Auto off in:" 1707 msgstr "" 1708 1709 #: templates/debug.php:117, templates/debug.php:338, templates/debug.php:474, templates/debug.php:639 1713 1710 msgid "Actions" 1714 1711 msgstr "" 1715 1712 1716 #: templates/debug.php: 681713 #: templates/debug.php:127 1717 1714 msgid "Are you sure you want to delete all Freemius data?" 1718 1715 msgstr "" 1719 1716 1720 #: templates/debug.php: 681717 #: templates/debug.php:127 1721 1718 msgid "Delete All Accounts" 1722 1719 msgstr "" 1723 1720 1724 #: templates/debug.php: 751721 #: templates/debug.php:134 1725 1722 msgid "Clear API Cache" 1726 1723 msgstr "" 1727 1724 1728 #: templates/debug.php: 831725 #: templates/debug.php:142 1729 1726 msgid "Clear Updates Transients" 1730 1727 msgstr "" 1731 1728 1732 #: templates/debug.php: 921729 #: templates/debug.php:151 1733 1730 msgid "Reset Deactivation Snoozing" 1734 1731 msgstr "" 1735 1732 1736 #: templates/debug.php:1 001733 #: templates/debug.php:159 1737 1734 msgid "Sync Data From Server" 1738 1735 msgstr "" 1739 1736 1740 #: templates/debug.php:1 091737 #: templates/debug.php:168 1741 1738 msgid "Migrate Options to Network" 1742 1739 msgstr "" 1743 1740 1744 #: templates/debug.php:1 141741 #: templates/debug.php:173 1745 1742 msgid "Load DB Option" 1746 1743 msgstr "" 1747 1744 1748 #: templates/debug.php:1 171745 #: templates/debug.php:176 1749 1746 msgid "Set DB Option" 1750 1747 msgstr "" 1751 1748 1752 #: templates/debug.php:2 111749 #: templates/debug.php:270 1753 1750 msgid "Key" 1754 1751 msgstr "" 1755 1752 1756 #: templates/debug.php:2 121753 #: templates/debug.php:271 1757 1754 msgid "Value" 1758 1755 msgstr "" 1759 1756 1760 #: templates/debug.php:2 281757 #: templates/debug.php:287 1761 1758 msgctxt "as software development kit versions" 1762 1759 msgid "SDK Versions" 1763 1760 msgstr "" 1764 1761 1765 #: templates/debug.php:2 331762 #: templates/debug.php:292 1766 1763 msgid "SDK Path" 1767 1764 msgstr "" 1768 1765 1769 #: templates/debug.php:2 34, templates/debug.php:2731766 #: templates/debug.php:293, templates/debug.php:332 1770 1767 msgid "Module Path" 1771 1768 msgstr "" 1772 1769 1773 #: templates/debug.php:2 351770 #: templates/debug.php:294 1774 1771 msgid "Is Active" 1775 1772 msgstr "" 1776 1773 1777 #: templates/debug.php: 263, templates/debug/plugins-themes-sync.php:351774 #: templates/debug.php:322, templates/debug/plugins-themes-sync.php:35 1778 1775 msgid "Plugins" 1779 1776 msgstr "" 1780 1777 1781 #: templates/debug.php: 263, templates/debug/plugins-themes-sync.php:561778 #: templates/debug.php:322, templates/debug/plugins-themes-sync.php:56 1782 1779 msgid "Themes" 1783 1780 msgstr "" 1784 1781 1785 #: templates/debug.php: 268, templates/debug.php:409, templates/debug.php:517, templates/debug/scheduled-crons.php:801782 #: templates/debug.php:327, templates/debug.php:468, templates/debug.php:576, templates/debug/scheduled-crons.php:80 1786 1783 msgid "Slug" 1787 1784 msgstr "" 1788 1785 1789 #: templates/debug.php: 270, templates/debug.php:5161786 #: templates/debug.php:329, templates/debug.php:575 1790 1787 msgid "Title" 1791 1788 msgstr "" 1792 1789 1793 #: templates/debug.php: 2711790 #: templates/debug.php:330 1794 1791 msgctxt "as application program interface" 1795 1792 msgid "API" 1796 1793 msgstr "" 1797 1794 1798 #: templates/debug.php: 2721795 #: templates/debug.php:331 1799 1796 msgid "Freemius State" 1800 1797 msgstr "" 1801 1798 1802 #: templates/debug.php: 2761799 #: templates/debug.php:335 1803 1800 msgid "Network Blog" 1804 1801 msgstr "" 1805 1802 1806 #: templates/debug.php: 2771803 #: templates/debug.php:336 1807 1804 msgid "Network User" 1808 1805 msgstr "" 1809 1806 1810 #: templates/debug.php:3 231807 #: templates/debug.php:382 1811 1808 msgctxt "as connection was successful" 1812 1809 msgid "Connected" 1813 1810 msgstr "" 1814 1811 1815 #: templates/debug.php:3 251812 #: templates/debug.php:384 1816 1813 msgctxt "as connection blocked" 1817 1814 msgid "Blocked" 1818 1815 msgstr "" 1819 1816 1820 #: templates/debug.php:3 261817 #: templates/debug.php:385 1821 1818 msgctxt "API connectivity state is unknown" 1822 1819 msgid "Unknown" 1823 1820 msgstr "" 1824 1821 1825 #: templates/debug.php: 3621822 #: templates/debug.php:421 1826 1823 msgid "Simulate Trial Promotion" 1827 1824 msgstr "" 1828 1825 1829 #: templates/debug.php: 3741826 #: templates/debug.php:433 1830 1827 msgid "Simulate Network Upgrade" 1831 1828 msgstr "" 1832 1829 1833 1830 #. translators: %s: 'plugin' or 'theme' 1834 #: templates/debug.php: 3981831 #: templates/debug.php:457 1835 1832 msgid "%s Installs" 1836 1833 msgstr "" 1837 1834 1838 #: templates/debug.php:4 001835 #: templates/debug.php:459 1839 1836 msgctxt "like websites" 1840 1837 msgid "Sites" 1841 1838 msgstr "" 1842 1839 1843 #: templates/debug.php:4 06, templates/account/partials/site.php:1561840 #: templates/debug.php:465, templates/account/partials/site.php:156 1844 1841 msgid "Blog ID" 1845 1842 msgstr "" 1846 1843 1847 #: templates/debug.php:4 111844 #: templates/debug.php:470 1848 1845 msgid "License ID" 1849 1846 msgstr "" 1850 1847 1851 #: templates/debug.php: 497, templates/debug.php:603, templates/account/partials/addon.php:4401848 #: templates/debug.php:556, templates/debug.php:662, templates/account/partials/addon.php:440 1852 1849 msgctxt "verb" 1853 1850 msgid "Delete" 1854 1851 msgstr "" 1855 1852 1856 #: templates/debug.php:5 111853 #: templates/debug.php:570 1857 1854 msgid "Add Ons of module %s" 1858 1855 msgstr "" 1859 1856 1860 #: templates/debug.php: 5701857 #: templates/debug.php:629 1861 1858 msgid "Users" 1862 1859 msgstr "" 1863 1860 1864 #: templates/debug.php: 5771861 #: templates/debug.php:636 1865 1862 msgid "Verified" 1866 1863 msgstr "" 1867 1864 1868 #: templates/debug.php:6 191865 #: templates/debug.php:678 1869 1866 msgid "%s Licenses" 1870 1867 msgstr "" 1871 1868 1872 #: templates/debug.php:6 241869 #: templates/debug.php:683 1873 1870 msgid "Plugin ID" 1874 1871 msgstr "" 1875 1872 1876 #: templates/debug.php:6 261873 #: templates/debug.php:685 1877 1874 msgid "Plan ID" 1878 1875 msgstr "" 1879 1876 1880 #: templates/debug.php:6 271877 #: templates/debug.php:686 1881 1878 msgid "Quota" 1882 1879 msgstr "" 1883 1880 1884 #: templates/debug.php:6 281881 #: templates/debug.php:687 1885 1882 msgid "Activated" 1886 1883 msgstr "" 1887 1884 1888 #: templates/debug.php:6 291885 #: templates/debug.php:688 1889 1886 msgid "Blocking" 1890 1887 msgstr "" 1891 1888 1892 #: templates/debug.php:6 30, templates/debug.php:701, templates/debug/logger.php:221889 #: templates/debug.php:689, templates/debug.php:760, templates/debug/logger.php:22 1893 1890 msgid "Type" 1894 1891 msgstr "" 1895 1892 1896 #: templates/debug.php:6 321893 #: templates/debug.php:691 1897 1894 msgctxt "as expiration date" 1898 1895 msgid "Expiration" 1899 1896 msgstr "" 1900 1897 1901 #: templates/debug.php: 6601898 #: templates/debug.php:719 1902 1899 msgid "Debug Log" 1903 1900 msgstr "" 1904 1901 1905 #: templates/debug.php: 6641902 #: templates/debug.php:723 1906 1903 msgid "All Types" 1907 1904 msgstr "" 1908 1905 1909 #: templates/debug.php: 6711906 #: templates/debug.php:730 1910 1907 msgid "All Requests" 1911 1908 msgstr "" 1912 1909 1913 #: templates/debug.php: 676, templates/debug.php:705, templates/debug/logger.php:251910 #: templates/debug.php:735, templates/debug.php:764, templates/debug/logger.php:25 1914 1911 msgid "File" 1915 1912 msgstr "" 1916 1913 1917 #: templates/debug.php: 677, templates/debug.php:703, templates/debug/logger.php:231914 #: templates/debug.php:736, templates/debug.php:762, templates/debug/logger.php:23 1918 1915 msgid "Function" 1919 1916 msgstr "" 1920 1917 1921 #: templates/debug.php: 6781918 #: templates/debug.php:737 1922 1919 msgid "Process ID" 1923 1920 msgstr "" 1924 1921 1925 #: templates/debug.php: 6791922 #: templates/debug.php:738 1926 1923 msgid "Logger" 1927 1924 msgstr "" 1928 1925 1929 #: templates/debug.php: 680, templates/debug.php:704, templates/debug/logger.php:241926 #: templates/debug.php:739, templates/debug.php:763, templates/debug/logger.php:24 1930 1927 msgid "Message" 1931 1928 msgstr "" 1932 1929 1933 #: templates/debug.php: 6821930 #: templates/debug.php:741 1934 1931 msgid "Filter" 1935 1932 msgstr "" 1936 1933 1937 #: templates/debug.php: 6901934 #: templates/debug.php:749 1938 1935 msgid "Download" 1939 1936 msgstr "" 1940 1937 1941 #: templates/debug.php:7 06, templates/debug/logger.php:261938 #: templates/debug.php:765, templates/debug/logger.php:26 1942 1939 msgid "Timestamp" 1943 1940 msgstr "" … … 2237 2234 msgstr "" 2238 2235 2236 #: templates/checkout/frame.php:77 2237 msgid "Checkout" 2238 msgstr "" 2239 2240 #: templates/checkout/frame.php:77 2241 msgid "PCI compliant" 2242 msgstr "" 2243 2244 #: templates/checkout/process-redirect.php:41 2245 msgid "Processing, please wait and do not close or refresh this window..." 2246 msgstr "" 2247 2248 #: templates/checkout/redirect.php:87 2249 msgid "Redirecting, please <a href=\"%1$s\">click here</a> if you're stuck..." 2250 msgstr "" 2251 2239 2252 #: templates/connect/permissions-group.php:31, templates/forms/optout.php:26, templates/js/permissions.php:78 2240 2253 msgctxt "verb" -
woo-product-reviews-shortcode/trunk/freemius/require.php
r3032314 r3245272 28 28 require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-permission-manager.php'; 29 29 require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-cache-manager.php'; 30 require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-checkout-manager.php'; 31 require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-contact-form-manager.php'; 30 32 require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-notice-manager.php'; 31 33 require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-menu-manager.php'; … … 51 53 require_once WP_FS__DIR_INCLUDES . '/class-fs-plugin-updater.php'; 52 54 require_once WP_FS__DIR_INCLUDES . '/class-fs-security.php'; 55 require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-debug-manager.php'; 53 56 require_once WP_FS__DIR_INCLUDES . '/class-fs-options.php'; 54 57 require_once WP_FS__DIR_INCLUDES . '/class-fs-storage.php'; -
woo-product-reviews-shortcode/trunk/freemius/start.php
r3082022 r3245272 16 16 * @var string 17 17 */ 18 $this_sdk_version = '2. 7.2';18 $this_sdk_version = '2.11.0'; 19 19 20 20 #region SDK Selection Logic -------------------------------------------------------------------- … … 37 37 } 38 38 39 /** 39 /** 40 * We updated the logic to support SDK loading from a subfolder of a theme as well as from a parent theme 41 * If the SDK is found in the active theme, it sets the relative path accordingly. 42 * If not, it checks the parent theme and sets the relative path if found there. 43 * This allows the SDK to be loaded from composer dependencies or from a custom `vendor/freemius` folder. 44 * 45 * @author Daniele Alessandra (@DanieleAlessandra) 46 * @since 2.9.0.5 47 * 48 * 40 49 * This complex logic fixes symlink issues (e.g. with Vargant). The logic assumes 41 50 * that if it's a file from an SDK running in a theme, the location of the SDK … … 84 93 $themes_directory = get_theme_root( get_stylesheet() ); 85 94 $themes_directory_name = basename( $themes_directory ); 86 $theme_candidate_basename = basename( dirname( $fs_root_path ) ) . '/' . basename( $fs_root_path ); 87 88 if ( $file_path == fs_normalize_path( realpath( trailingslashit( $themes_directory ) . $theme_candidate_basename . '/' . basename( $file_path ) ) ) 89 ) { 90 $this_sdk_relative_path = '../' . $themes_directory_name . '/' . $theme_candidate_basename; 91 $is_theme = true; 92 } else { 93 $this_sdk_relative_path = plugin_basename( $fs_root_path ); 94 $is_theme = false; 95 } 95 96 // This change ensures that the condition works even if the SDK is located in a subdirectory (e.g., vendor) 97 $theme_candidate_sdk_basename = str_replace( $themes_directory . '/' . get_stylesheet() . '/', '', $fs_root_path ); 98 99 // Check if the current file is part of the active theme. 100 $is_current_sdk_from_active_theme = $file_path == $themes_directory . '/' . get_stylesheet() . '/' . $theme_candidate_sdk_basename . '/' . basename( $file_path ); 101 $is_current_sdk_from_parent_theme = false; 102 103 // Check if the current file is part of the parent theme. 104 if ( ! $is_current_sdk_from_active_theme ) { 105 $theme_candidate_sdk_basename = str_replace( $themes_directory . '/' . get_template() . '/', 106 '', 107 $fs_root_path ); 108 $is_current_sdk_from_parent_theme = $file_path == $themes_directory . '/' . get_template() . '/' . $theme_candidate_sdk_basename . '/' . basename( $file_path ); 109 } 110 111 $theme_name = null; 112 if ( $is_current_sdk_from_active_theme ) { 113 $theme_name = get_stylesheet(); 114 $this_sdk_relative_path = '../' . $themes_directory_name . '/' . $theme_name . '/' . $theme_candidate_sdk_basename; 115 $is_theme = true; 116 } else if ( $is_current_sdk_from_parent_theme ) { 117 $theme_name = get_template(); 118 $this_sdk_relative_path = '../' . $themes_directory_name . '/' . $theme_name . '/' . $theme_candidate_sdk_basename; 119 $is_theme = true; 120 } else { 121 $this_sdk_relative_path = plugin_basename( $fs_root_path ); 122 $is_theme = false; 123 124 /** 125 * If this file was included from another plugin with lower SDK version, and if this plugin is symlinked, then we need to get the actual plugin path, 126 * as the value right now will be wrong, it will only remove the directory separator from the file_path. 127 * 128 * The check of `fs_find_direct_caller_plugin_file` determines that this file was indeed included by a different plugin than the main plugin. 129 */ 130 if ( DIRECTORY_SEPARATOR . $this_sdk_relative_path === $fs_root_path && function_exists( 'fs_find_direct_caller_plugin_file' ) ) { 131 $original_plugin_dir_name = dirname( fs_find_direct_caller_plugin_file( $file_path ) ); 132 133 // Remove everything before the original plugin directory name. 134 $this_sdk_relative_path = substr( $this_sdk_relative_path, strpos( $this_sdk_relative_path, $original_plugin_dir_name ) ); 135 136 unset( $original_plugin_dir_name ); 137 } 138 } 96 139 97 140 if ( ! isset( $fs_active_plugins ) ) { … … 177 220 ) { 178 221 if ( $is_theme ) { 179 $plugin_path = basename( dirname( $this_sdk_relative_path ) ); 222 // Saving relative path and not only directory name as it could be a subfolder 223 $plugin_path = $theme_name; 180 224 } else { 181 225 $plugin_path = plugin_basename( fs_find_direct_caller_plugin_file( $file_path ) ); … … 226 270 $is_newest_sdk_type_theme = ( isset( $fs_newest_sdk->type ) && 'theme' === $fs_newest_sdk->type ); 227 271 228 if ( ! $is_newest_sdk_type_theme ) { 229 $is_newest_sdk_plugin_active = is_plugin_active( $fs_newest_sdk->plugin_path ); 230 } else { 231 $current_theme = wp_get_theme(); 232 $is_newest_sdk_plugin_active = ( $current_theme->stylesheet === $fs_newest_sdk->plugin_path ); 272 /** 273 * @var bool $is_newest_sdk_module_active 274 * True if the plugin with the newest SDK is active. 275 * True if the newest SDK is part of the current theme or current theme's parent. 276 * False otherwise. 277 */ 278 if ( ! $is_newest_sdk_type_theme ) { 279 $is_newest_sdk_module_active = is_plugin_active( $fs_newest_sdk->plugin_path ); 280 } else { 281 $current_theme = wp_get_theme(); 282 // Detect if current theme is the one registered as newer SDK 283 $is_newest_sdk_module_active = ( 284 strpos( 285 $fs_newest_sdk->plugin_path, 286 '../' . $themes_directory_name . '/' . $current_theme->get_stylesheet() . '/' 287 ) === 0 288 ); 233 289 234 290 $current_theme_parent = $current_theme->parent(); … … 238 294 * from happening by keeping the SDK info stored in the `fs_active_plugins` option. 239 295 */ 240 if ( ! $is_newest_sdk_plugin_active && $current_theme_parent instanceof WP_Theme ) { 241 $is_newest_sdk_plugin_active = ( $fs_newest_sdk->plugin_path === $current_theme_parent->stylesheet ); 296 if ( ! $is_newest_sdk_module_active && $current_theme_parent instanceof WP_Theme ) { 297 // Detect if current theme parent is the one registered as newer SDK 298 $is_newest_sdk_module_active = ( 299 strpos( 300 $fs_newest_sdk->plugin_path, 301 '../' . $themes_directory_name . '/' . $current_theme_parent->get_stylesheet() . '/' 302 ) === 0 303 ); 242 304 } 243 305 } 244 306 245 307 if ( $is_current_sdk_newest && 246 ! $is_newest_sdk_ plugin_active &&308 ! $is_newest_sdk_module_active && 247 309 ! $fs_active_plugins->newest->in_activation 248 310 ) { … … 263 325 } 264 326 265 $is_newest_sdk_path_valid = ( $is_newest_sdk_ plugin_active || $fs_active_plugins->newest->in_activation ) && file_exists( $sdk_starter_path );327 $is_newest_sdk_path_valid = ( $is_newest_sdk_module_active || $fs_active_plugins->newest->in_activation ) && file_exists( $sdk_starter_path ); 266 328 267 329 if ( ! $is_newest_sdk_path_valid && ! $is_current_sdk_newest ) { … … 270 332 } 271 333 272 if ( ! ( $is_newest_sdk_ plugin_active || $fs_active_plugins->newest->in_activation ) ||334 if ( ! ( $is_newest_sdk_module_active || $fs_active_plugins->newest->in_activation ) || 273 335 ! $is_newest_sdk_path_valid || 274 336 // Is newest SDK downgraded. … … 285 347 fs_fallback_to_newest_active_sdk(); 286 348 } else { 287 if ( $is_newest_sdk_ plugin_active &&349 if ( $is_newest_sdk_module_active && 288 350 $this_sdk_relative_path == $fs_active_plugins->newest->sdk_path && 289 351 ( $fs_active_plugins->newest->in_activation || … … 314 376 } 315 377 316 if ( version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) {378 if ( isset( $fs_active_plugins->newest ) && version_compare( $this_sdk_version, $fs_active_plugins->newest->version, '<' ) ) { 317 379 $newest_sdk = $fs_active_plugins->plugins[ $fs_active_plugins->newest->sdk_path ]; 318 380 -
woo-product-reviews-shortcode/trunk/freemius/templates/account.php
r3082022 r3245272 511 511 <tr class="fs-field-<?php echo esc_attr( $p['id'] ) ?><?php if ( $odd ) : ?> alternate<?php endif ?>"> 512 512 <td> 513 <nobr><?php echo esc_ attr( $p['title'] ) ?><?php echo ( ! empty( $p['title'] ) ) ? ':' : '' ?></nobr>513 <nobr><?php echo esc_html( $p['title'] ) ?><?php echo ( ! empty( $p['title'] ) ) ? ':' : '' ?></nobr> 514 514 </td> 515 515 <td<?php if ( 'plan' === $p['id'] || 'bundle_plan' === $p['id'] ) { echo ' colspan="2"'; }?>> … … 1119 1119 $fs->_add_tabs_after_content(); 1120 1120 } 1121 1122 $params = array(1123 'page' => 'account',1124 'module_id' => $fs->get_id(),1125 'module_type' => $fs->get_module_type(),1126 'module_slug' => $slug,1127 'module_version' => $fs->get_plugin_version(),1128 );1129 fs_require_template( 'powered-by.php', $params ); -
woo-product-reviews-shortcode/trunk/freemius/templates/add-ons.php
r2419568 r3245272 492 492 $fs->_add_tabs_after_content(); 493 493 } 494 495 $params = array(496 'page' => 'addons',497 'module_id' => $fs->get_id(),498 'module_type' => $fs->get_module_type(),499 'module_slug' => $slug,500 'module_version' => $fs->get_plugin_version(),501 );502 fs_require_template( 'powered-by.php', $params ); -
woo-product-reviews-shortcode/trunk/freemius/templates/checkout.php
r3082022 r3245272 2 2 /** 3 3 * @package Freemius 4 * @copyright Copyright (c) 20 15, Freemius, Inc.4 * @copyright Copyright (c) 2024, Freemius, Inc. 5 5 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 6 * @since 1.0.36 * @since 2.9.0 7 7 */ 8 9 /**10 * Note for WordPress.org Theme/Plugin reviewer:11 * Freemius is an SDK for plugin and theme developers. Since the core12 * of the SDK is relevant both for plugins and themes, for obvious reasons,13 * we only develop and maintain one code base.14 *15 * This code (and page) will not run for wp.org themes (only plugins).16 *17 * In addition, this page loads an i-frame. We intentionally named it 'frame'18 * so it will pass the "Theme Check" that is looking for the string "i" . "frame".19 *20 * UPDATE:21 * After ongoing conversations with the WordPress.org TRT we received22 * an official approval for including i-frames in the theme's WP Admin setting's23 * page tab (the SDK will never add any i-frames on the sitefront). i-frames24 * were never against the guidelines, but we wanted to get the team's blessings25 * before we move forward. For the record, I got the final approval from26 * Ulrich Pogson (@grapplerulrich), a team lead at the TRT during WordCamp27 * Europe 2017 (June 16th, 2017).28 *29 * If you have any questions or need clarifications, please don't hesitate30 * pinging me on slack, my username is @svovaf.31 *32 * @author Vova Feldman (@svovaf)33 * @since 1.2.234 */35 36 if ( ! defined( 'ABSPATH' ) ) {37 exit;38 }39 40 wp_enqueue_script( 'jquery' );41 wp_enqueue_script( 'json2' );42 fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.js' );43 fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' );44 fs_enqueue_local_style( 'fs_common', '/admin/common.css' );45 46 fs_enqueue_local_style( 'fs_checkout', '/admin/checkout.css' );47 8 48 9 /** … … 50 11 * @var Freemius $fs 51 12 */ 52 $fs = freemius( $VARS['id'] ); 53 $slug = $fs->get_slug(); 13 $fs = freemius( $VARS['id'] ); 54 14 55 $timestamp = time(); 15 if ( fs_request_get_bool( 'redirect' ) ) { 16 fs_require_template( 'checkout/redirect.php', $VARS ); 17 } else if ( fs_request_get_bool( 'process_redirect' ) ) { 18 fs_require_template( 'checkout/process-redirect.php', $VARS ); 19 } else { 20 $fs = freemius( $VARS['id'] ); 56 21 57 $context_params = array( 58 'plugin_id' => $fs->get_id(), 59 'public_key' => $fs->get_public_key(), 60 'plugin_version' => $fs->get_plugin_version(), 61 'mode' => 'dashboard', 62 'trial' => fs_request_get_bool( 'trial' ), 63 'is_ms' => ( fs_is_network_admin() && $fs->is_network_active() ), 64 ); 65 66 $plan_id = fs_request_get( 'plan_id' ); 67 if ( FS_Plugin_Plan::is_valid_id( $plan_id ) ) { 68 $context_params['plan_id'] = $plan_id; 69 } 70 71 $licenses = fs_request_get( 'licenses' ); 72 if ( $licenses === strval( intval( $licenses ) ) && $licenses > 0 ) { 73 $context_params['licenses'] = $licenses; 74 } 75 76 $plugin_id = fs_request_get( 'plugin_id' ); 77 if ( ! FS_Plugin::is_valid_id( $plugin_id ) ) { 78 $plugin_id = $fs->get_id(); 79 } 80 81 if ( $plugin_id == $fs->get_id() ) { 82 $is_premium = $fs->is_premium(); 83 84 $bundle_id = $fs->get_bundle_id(); 85 if ( ! is_null( $bundle_id ) ) { 86 $context_params['bundle_id'] = $bundle_id; 87 } 88 } else { 89 // Identify the module code version of the checkout context module. 90 if ( $fs->is_addon_activated( $plugin_id ) ) { 91 $fs_addon = Freemius::get_instance_by_id( $plugin_id ); 92 $is_premium = $fs_addon->is_premium(); 22 if ( $fs->is_premium() ) { 23 fs_require_template( 'checkout/frame.php', $VARS ); 93 24 } else { 94 // If add-on isn't activated assume the premium version isn't installed. 95 $is_premium = false; 25 fs_require_template( 'checkout/redirect.php', $VARS ); 96 26 } 97 27 } 98 99 // Get site context secure params.100 if ( $fs->is_registered() ) {101 $site = $fs->get_site();102 103 if ( $plugin_id != $fs->get_id() ) {104 if ( $fs->is_addon_activated( $plugin_id ) ) {105 $fs_addon = Freemius::get_instance_by_id( $plugin_id );106 $addon_site = $fs_addon->get_site();107 if ( is_object( $addon_site ) ) {108 $site = $addon_site;109 }110 }111 }112 113 $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params(114 $site,115 $timestamp,116 'checkout'117 ) );118 } else {119 $current_user = Freemius::_get_current_wp_user();120 121 // Add site and user info to the request, this information122 // is NOT being stored unless the user complete the purchase123 // and agrees to the TOS.124 $context_params = array_merge( $context_params, array(125 'user_firstname' => $current_user->user_firstname,126 'user_lastname' => $current_user->user_lastname,127 'user_email' => $current_user->user_email,128 'home_url' => home_url(),129 ) );130 131 $fs_user = Freemius::_get_user_by_email( $current_user->user_email );132 133 if ( is_object( $fs_user ) && $fs_user->is_verified() ) {134 $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params(135 $fs_user,136 $timestamp,137 'checkout'138 ) );139 }140 }141 142 if ( $fs->is_payments_sandbox() ) {143 // Append plugin secure token for sandbox mode authentication.144 $context_params['sandbox'] = FS_Security::instance()->get_secure_token(145 $fs->get_plugin(),146 $timestamp,147 'checkout'148 );149 150 /**151 * @since 1.1.7.3 Add security timestamp for sandbox even for anonymous user.152 */153 if ( empty( $context_params['s_ctx_ts'] ) ) {154 $context_params['s_ctx_ts'] = $timestamp;155 }156 }157 158 $return_url = $fs->_get_sync_license_url( $plugin_id );159 160 $can_user_install = (161 ( $fs->is_plugin() && current_user_can( 'install_plugins' ) ) ||162 ( $fs->is_theme() && current_user_can( 'install_themes' ) )163 );164 165 $query_params = array_merge( $context_params, $_GET, array(166 // Current plugin version.167 'plugin_version' => $fs->get_plugin_version(),168 'sdk_version' => WP_FS__SDK_VERSION,169 'is_premium' => $is_premium ? 'true' : 'false',170 'can_install' => $can_user_install ? 'true' : 'false',171 'return_url' => $return_url,172 ) );173 174 $xdebug_session = fs_request_get( 'XDEBUG_SESSION' );175 if ( false !== $xdebug_session ) {176 $query_params['XDEBUG_SESSION'] = $xdebug_session;177 }178 179 $view_params = array(180 'id' => $VARS['id'],181 'page' => strtolower( $fs->get_text_inline( 'Checkout', 'checkout' ) ) . ' ' . $fs->get_text_inline( 'PCI compliant', 'pci-compliant' ),182 );183 fs_require_once_template('secure-https-header.php', $view_params);184 ?>185 <div id="fs_checkout" class="wrap fs-section fs-full-size-wrapper">186 <div id="fs_frame"></div>187 <script type="text/javascript">188 // http://stackoverflow.com/questions/4583703/jquery-post-request-not-ajax189 jQuery(function ($) {190 $.extend({191 form: function (url, data, method) {192 if (method == null) method = 'POST';193 if (data == null) data = {};194 195 var form = $('<form>').attr({196 method: method,197 action: url198 }).css({199 display: 'none'200 });201 202 var addData = function (name, data) {203 if ($.isArray(data)) {204 for (var i = 0; i < data.length; i++) {205 var value = data[i];206 addData(name + '[]', value);207 }208 } else if (typeof data === 'object') {209 for (var key in data) {210 if (data.hasOwnProperty(key)) {211 addData(name + '[' + key + ']', data[key]);212 }213 }214 } else if (data != null) {215 form.append($('<input>').attr({216 type : 'hidden',217 name : String(name),218 value: String(data)219 }));220 }221 };222 223 for (var key in data) {224 if (data.hasOwnProperty(key)) {225 addData(key, data[key]);226 }227 }228 229 return form.appendTo('body');230 }231 });232 });233 234 (function ($) {235 $(function () {236 237 var238 // Keep track of the i-frame height.239 frame_height = 800,240 base_url = '<?php echo FS_CHECKOUT__ADDRESS ?>',241 // Pass the parent page URL into the i-frame in a meaningful way (this URL could be242 // passed via query string or hard coded into the child page, it depends on your needs).243 src = base_url + '/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),244 // Append the i-frame into the DOM.245 frame = $('<i' + 'frame " src="' + src + '" width="100%" height="' + frame_height + 'px" scrolling="no" frameborder="0" style="background: transparent; width: 1px; min-width: 100%;"><\/i' + 'frame>')246 .appendTo('#fs_frame');247 248 FS.PostMessage.init(base_url, [frame[0]]);249 FS.PostMessage.receiveOnce('height', function (data) {250 var h = data.height;251 if (!isNaN(h) && h > 0 && h != frame_height) {252 frame_height = h;253 frame.height(frame_height + 'px');254 255 FS.PostMessage.postScroll(frame[0]);256 }257 });258 259 FS.PostMessage.receiveOnce('install', function (data) {260 var requestData = {261 user_id : data.user.id,262 user_secret_key : data.user.secret_key,263 user_public_key : data.user.public_key,264 install_id : data.install.id,265 install_secret_key: data.install.secret_key,266 install_public_key: data.install.public_key267 };268 269 if (true === data.auto_install)270 requestData.auto_install = true;271 272 // Post data to activation URL.273 $.form('<?php echo fs_nonce_url( $fs->_get_admin_page_url( 'account', array(274 'fs_action' => $fs->get_unique_affix() . '_activate_new',275 'plugin_id' => $plugin_id276 ) ), $fs->get_unique_affix() . '_activate_new' ) ?>', requestData).submit();277 });278 279 FS.PostMessage.receiveOnce('pending_activation', function (data) {280 var requestData = {281 user_email : data.user_email,282 support_email_address: data.support_email_address283 };284 285 if (true === data.auto_install)286 requestData.auto_install = true;287 288 $.form('<?php echo fs_nonce_url( $fs->_get_admin_page_url( 'account', array(289 'fs_action' => $fs->get_unique_affix() . '_activate_new',290 'plugin_id' => $plugin_id,291 'pending_activation' => true,292 'has_upgrade_context' => true,293 ) ), $fs->get_unique_affix() . '_activate_new' ) ?>', requestData).submit();294 });295 296 FS.PostMessage.receiveOnce('get_context', function () {297 console.debug('receiveOnce', 'get_context');298 299 // If the user didn't connect his account with Freemius,300 // once he accepts the Terms of Service and Privacy Policy,301 // and then click the purchase button, the context information302 // of the user will be shared with Freemius in order to complete the303 // purchase workflow and activate the license for the right user.304 <?php $install_data = array_merge( $fs->get_opt_in_params(),305 array(306 'activation_url' => fs_nonce_url( $fs->_get_admin_page_url( '',307 array(308 'fs_action' => $fs->get_unique_affix() . '_activate_new',309 'plugin_id' => $plugin_id,310 311 ) ),312 $fs->get_unique_affix() . '_activate_new' )313 ) ) ?>314 FS.PostMessage.post('context', <?php echo json_encode( $install_data ) ?>, frame[0]);315 });316 317 FS.PostMessage.receiveOnce('purchaseCompleted', <?php echo $fs->apply_filters('checkout/purchaseCompleted', 'function (data) {318 console.log("checkout", "purchaseCompleted");319 }') ?>);320 321 FS.PostMessage.receiveOnce('get_dimensions', function (data) {322 console.debug('receiveOnce', 'get_dimensions');323 324 FS.PostMessage.post('dimensions', {325 height : $(document.body).height(),326 scrollTop: $(document).scrollTop()327 }, frame[0]);328 });329 330 var updateHeight = function () {331 frame.css('min-height', $(document.body).height() + 'px');332 };333 334 $(document).ready(updateHeight);335 336 $(window).resize(updateHeight);337 });338 })(jQuery);339 </script>340 </div> -
woo-product-reviews-shortcode/trunk/freemius/templates/connect.php
r2938844 r3245272 162 162 fs_require_once_template( 'plugin-icon.php', $vars ); 163 163 ?> 164 <!-- <img class="fs-connect-logo" width="--><?php //echo $size ?><!--" height="--><?php //echo $size ?><!--" src="//img.freemius.com/logo/connect.svg"/>-->165 164 </div> 166 165 <div class="fs-box-container"> -
woo-product-reviews-shortcode/trunk/freemius/templates/contact.php
r3082022 r3245272 8 8 9 9 /** 10 * Update (October 9, 2024 by @swashata): 11 * Following request from the wp.org plugin review team, we have stopped 12 * embedding the contact form inside an i-frame for wp.org hosted free version 13 * of plugins. Now they will be opened in a new tab. 14 * 10 15 * Note for WordPress.org Theme/Plugin reviewer: 11 16 * Freemius is an SDK for plugin and theme developers. Since the core … … 13 18 * we only develop and maintain one code base. 14 19 * 15 * This code (and page) will not run for wp.org themes (only plugins). 20 * This code (and page) will not run for wp.org themes or plugins. It will 21 * run only for premium version of the plugin/theme that is using the SDK. 16 22 * 17 * In addition, this page loads an i-frame. We intentionally named it 'frame'23 * In addition, when this page loads an i-frame. We intentionally named it 'frame' 18 24 * so it will pass the "Theme Check" that is looking for the string "i" . "frame". 19 25 * … … 51 57 $slug = $fs->get_slug(); 52 58 53 $context_params = array( 54 'plugin_id' => $fs->get_id(), 55 'plugin_public_key' => $fs->get_public_key(), 56 'plugin_version' => $fs->get_plugin_version(), 57 ); 58 59 60 // Get site context secure params. 61 if ( $fs->is_registered() ) { 62 $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params( 63 $fs->get_site(), 64 time(), 65 'contact' 66 ) ); 67 } 68 69 $query_params = array_merge( $_GET, array_merge( $context_params, array( 70 'plugin_version' => $fs->get_plugin_version(), 71 'wp_login_url' => wp_login_url(), 72 'site_url' => Freemius::get_unfiltered_site_url(), 73 // 'wp_admin_css' => get_bloginfo('wpurl') . "/wp-admin/load-styles.php?c=1&load=buttons,wp-admin,dashicons", 74 ) ) ); 59 $query_params = FS_Contact_Form_Manager::instance()->get_query_params( $fs ); 75 60 76 61 $view_params = array( … … 118 103 $fs->_add_tabs_after_content(); 119 104 } 120 121 $params = array(122 'page' => 'contact',123 'module_id' => $fs->get_id(),124 'module_type' => $fs->get_module_type(),125 'module_slug' => $slug,126 'module_version' => $fs->get_plugin_version(),127 );128 fs_require_template( 'powered-by.php', $params ); -
woo-product-reviews-shortcode/trunk/freemius/templates/debug.php
r2881642 r3245272 18 18 $on_text = fs_text_x_inline( 'On', 'as turned on' ); 19 19 20 // For some reason css was missing 21 fs_enqueue_local_style( 'fs_common', '/admin/common.css' ); 22 20 23 $has_any_active_clone = false; 21 24 22 25 $is_multisite = is_multisite(); 26 27 $auto_off_timestamp = wp_next_scheduled( 'fs_debug_turn_off_logging_hook' ) * 1000; 23 28 ?> 24 29 <h1><?php echo fs_text_inline( 'Freemius Debug' ) . ' - ' . fs_text_inline( 'SDK' ) . ' v.' . $fs_active_plugins->newest->version ?></h1> 25 30 <div> 26 31 <!-- Debugging Switch --> 27 <?php //$debug_mode = get_option( 'fs_debug_mode', null ) ?>28 32 <span class="fs-switch-label"><?php fs_esc_html_echo_x_inline( 'Debugging', 'as code debugging' ) ?></span> 29 33 … … 31 35 <div class="fs-toggle"></div> 32 36 </div> 37 38 <span class="auto-off-debug-countdown hidden"><?php echo fs_esc_html_echo_x_inline( 'Auto off in:', 'timer for auto-disabling debug' ); ?> <span class="time">23:59:59</span> 39 33 40 <script type="text/javascript"> 34 41 (function ($) { … … 40 47 .toggleClass( 'fs-off' ); 41 48 49 var is_on = ($(this).hasClass( 'fs-on' ) ? 1 : 0); 50 42 51 $.post( <?php echo Freemius::ajax_url() ?>, { 43 52 action: 'fs_toggle_debug_mode', 44 53 // As such we don't need to use `wp_json_encode` method but using it to follow wp.org guideline. 45 54 _wpnonce : <?php echo wp_json_encode( wp_create_nonce( 'fs_toggle_debug_mode' ) ); ?>, 46 is_on : ($(this).hasClass( 'fs-on' ) ? 1 : 0) 47 }, function ( response ) { 55 is_on 56 }, function (response) { 57 if (is_on) { 58 startCountdownManually(); 59 } else { 60 stopCountdownManually(); 61 } 62 48 63 if ( 1 == response ) { 49 64 // Refresh page on success. … … 52 67 }); 53 68 }); 69 70 // Countdown 71 var countdownElement = document.querySelector('.auto-off-debug-countdown'); 72 var timeElement = countdownElement.querySelector('.time'); 73 var targetTime = <?php echo wp_json_encode( $auto_off_timestamp ); ?>; 74 var countdownTimeout; 75 76 function updateCountdown() { 77 var currentTime = new Date().getTime(); 78 var remainingTimeInMs = targetTime - currentTime; 79 var hours = Math.floor((remainingTimeInMs % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 80 var minutes = Math.floor((remainingTimeInMs % (1000 * 60 * 60)) / (1000 * 60)); 81 var seconds = Math.floor((remainingTimeInMs % (1000 * 60)) / 1000); 82 83 84 if (remainingTimeInMs < 1000) { 85 countdownElement.classList.add('hidden'); 86 countdownTimeout = null; 87 } else { 88 timeElement.innerHTML = hours + ":" 89 + minutes.toString().padStart(2, '0') + ":" 90 + seconds.toString().padStart(2, '0'); 91 countdownElement.classList.remove('hidden'); 92 93 if (countdownTimeout) { 94 clearTimeout(countdownTimeout); 95 } 96 countdownTimeout = setTimeout(updateCountdown, 1000); 97 } 98 } 99 100 function startCountdownManually() { 101 targetTime = ( new Date().getTime() ) + (24 * 60 * 60 * 1000) - 1; 102 updateCountdown(); 103 } 104 105 function stopCountdownManually() { 106 targetTime = new Date().getTime(); 107 updateCountdown(); 108 } 109 110 updateCountdown(); 111 // End countdown 112 54 113 }); 55 114 }(jQuery)); -
woo-product-reviews-shortcode/trunk/freemius/templates/forms/affiliation.php
r3032314 r3245272 509 509 $fs->_add_tabs_after_content(); 510 510 } 511 512 $params = array(513 'page' => 'affiliation',514 'module_id' => $module_id,515 'module_slug' => $slug,516 'module_version' => $fs->get_plugin_version(),517 );518 fs_require_template( 'powered-by.php', $params ); -
woo-product-reviews-shortcode/trunk/freemius/templates/forms/license-activation.php
r3082022 r3245272 570 570 } else { 571 571 if ( ! hasLicensesDropdown ) { 572 licenseID = $availableLicenseKey.data( 'id' ) ;572 licenseID = $availableLicenseKey.data( 'id' ).toString(); 573 573 } else { 574 574 licenseID = $licensesDropdown.val(); -
woo-product-reviews-shortcode/trunk/freemius/templates/pricing.php
r3082022 r3245272 5 5 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 6 6 * @since 1.0.3 7 */8 9 /**10 * Note for WordPress.org Theme/Plugin reviewer:11 * Freemius is an SDK for plugin and theme developers. Since the core12 * of the SDK is relevant both for plugins and themes, for obvious reasons,13 * we only develop and maintain one code base.14 *15 * This code (and page) will not run for wp.org themes (only plugins).16 *17 * In addition, this page loads an i-frame. We intentionally named it 'frame'18 * so it will pass the "Theme Check" that is looking for the string "i" . "frame".19 *20 * UPDATE:21 * After ongoing conversations with the WordPress.org TRT we received22 * an official approval for including i-frames in the theme's WP Admin setting's23 * page tab (the SDK will never add any i-frames on the sitefront). i-frames24 * were never against the guidelines, but we wanted to get the team's blessings25 * before we move forward. For the record, I got the final approval from26 * Ulrich Pogson (@grapplerulrich), a team lead at the TRT during WordCamp27 * Europe 2017 (June 16th, 2017).28 *29 * If you have any questions or need clarifications, please don't hesitate30 * pinging me on slack, my username is @svovaf.31 *32 * @author Vova Feldman (@svovaf)33 * @since 1.2.234 7 */ 35 8 … … 93 66 ) ); 94 67 95 $ use_external_pricing = $fs->should_use_external_pricing();68 $pricing_js_url = fs_asset_url( $fs->get_pricing_js_path() ); 96 69 97 if ( ! $use_external_pricing ) { 98 $pricing_js_url = fs_asset_url( $fs->get_pricing_js_path() ); 99 wp_enqueue_script( 'freemius-pricing', $pricing_js_url ); 100 } else { 101 if ( ! $fs->is_registered() ) { 102 $template_data = array( 103 'id' => $fs->get_id(), 104 ); 105 fs_require_template( 'forms/trial-start.php', $template_data); 106 } 70 wp_enqueue_script( 'freemius-pricing', $pricing_js_url ); 107 71 108 $view_params = array( 109 'id' => $VARS['id'], 110 'page' => strtolower( $fs->get_text_x_inline( 'Pricing', 'noun', 'pricing' ) ), 111 ); 112 fs_require_once_template('secure-https-header.php', $view_params); 72 $pricing_css_path = $fs->apply_filters( 'pricing/css_path', null ); 73 if ( is_string( $pricing_css_path ) ) { 74 wp_enqueue_style( 'freemius-pricing', fs_asset_url( $pricing_css_path ) ); 113 75 } 114 76 … … 120 82 ?> 121 83 <div id="fs_pricing" class="wrap fs-section fs-full-size-wrapper"> 122 <?php if ( ! $use_external_pricing ) : ?>123 84 <div id="fs_pricing_wrapper" data-public-url="<?php echo trailingslashit( dirname( $pricing_js_url ) ) ?>"></div> 124 85 <?php … … 139 100 'unique_affix' => $fs->get_unique_affix(), 140 101 'show_annual_in_monthly' => $fs->apply_filters( 'pricing/show_annual_in_monthly', true ), 102 'license' => $fs->has_active_valid_license() ? $fs->_get_license() : null, 103 'plugin_icon' => $fs->get_local_icon_url(), 104 'disable_single_package' => $fs->apply_filters( 'pricing/disable_single_package', false ), 141 105 ), $query_params ); 142 106 143 107 wp_add_inline_script( 'freemius-pricing', 'Freemius.pricing.new( ' . json_encode( $pricing_config ) . ' )' ); 144 108 ?> 145 <?php else : ?>146 <div id="fs_frame"></div>147 <form action="" method="POST">148 <input type="hidden" name="user_id"/>149 <input type="hidden" name="user_email"/>150 <input type="hidden" name="site_id"/>151 <input type="hidden" name="public_key"/>152 <input type="hidden" name="secret_key"/>153 <input type="hidden" name="action" value="account"/>154 </form>155 156 <script type="text/javascript">157 (function ($, undef) {158 $(function () {159 var160 // Keep track of the i-frame height.161 frame_height = 800,162 base_url = '<?php echo WP_FS__ADDRESS ?>',163 // Pass the parent page URL into the i-frame in a meaningful way (this URL could be164 // passed via query string or hard coded into the child page, it depends on your needs).165 src = base_url + '/pricing/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),166 167 // Append the I-frame into the DOM.168 frame = $('<i' + 'frame " src="' + src + '" width="100%" height="' + frame_height + 'px" scrolling="no" frameborder="0" style="background: transparent; width: 1px; min-width: 100%;"><\/i' + 'frame>')169 .appendTo('#fs_frame');170 171 FS.PostMessage.init(base_url, [frame[0]]);172 173 FS.PostMessage.receive('height', function (data) {174 var h = data.height;175 if (!isNaN(h) && h > 0 && h != frame_height) {176 frame_height = h;177 frame.height(frame_height + 'px');178 179 FS.PostMessage.postScroll(frame[0]);180 }181 });182 183 FS.PostMessage.receive('get_dimensions', function (data) {184 FS.PostMessage.post('dimensions', {185 height : $(document.body).height(),186 scrollTop: $(document).scrollTop()187 }, frame[0]);188 });189 190 FS.PostMessage.receive('start_trial', function (data) {191 openTrialConfirmationModal(data);192 });193 });194 })(jQuery);195 </script>196 <?php endif ?>197 109 </div> 198 110 <?php … … 200 112 $fs->_add_tabs_after_content(); 201 113 } 202 203 $params = array(204 'page' => 'pricing',205 'module_id' => $fs->get_id(),206 'module_type' => $fs->get_module_type(),207 'module_slug' => $slug,208 'module_version' => $fs->get_plugin_version(),209 );210 fs_require_template( 'powered-by.php', $params ); -
woo-product-reviews-shortcode/trunk/woo-product-reviews-shortcode.php
r3082022 r3245272 3 3 * Plugin Name: Builder for WooCommerce reviews shortcodes - ReviewShort 4 4 * Description: Show WooCommerce customer feedback anywhere with WooCommerce reviews shortcodes, beautifully and ... 5 * Version: 1.01. 75 * Version: 1.01.8 6 6 * Author: Tobias Conrad 7 7 * Author URI: https://saleswonder.biz/ … … 10 10 * Text Domain: woo-product-reviews-shortcode 11 11 * WC requires at least: 4.0 12 * WC tested up to: 8.812 * WC tested up to: 9.7 13 13 * 14 14 * Domain Path: /languagess … … 23 23 * Rename this for your plugin and update it as you release new versions. 24 24 */ 25 define( 'WPRSHRTCD_VERSION', '1.01. 7' );25 define( 'WPRSHRTCD_VERSION', '1.01.8' ); 26 26 27 27 if ( ! defined( 'WPRSHRTCD_FILE' ) ) {
Note: See TracChangeset
for help on using the changeset viewer.