Plugin Directory

Changeset 3167502


Ignore:
Timestamp:
10/12/2024 09:41:05 AM (18 months ago)
Author:
streamweasels
Message:

updating freemius and adding nonce check option

Location:
streamweasels-twitch-integration
Files:
2 added
18 edited

Legend:

Unmodified
Added
Removed
  • streamweasels-twitch-integration/trunk/README.txt

    r3137770 r3167502  
    44Requires at least: 5.0
    55Tested up to: 6.6
    6 Stable tag: 1.8.5
     6Stable tag: 1.8.6
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    125125
    126126== Changelog ==
     127
     128= 1.8.6 =
     129* updated freemius
     130* added new option to bypass nonce checks for better compatibility with caching plugins
    127131
    128132= 1.8.5 =
  • streamweasels-twitch-integration/trunk/admin/class-streamweasels-admin.php

    r3137770 r3167502  
    786786        // Error  Settings
    787787        add_settings_field(
     788            'swti_nonce_check',
     789            'Nonce Check',
     790            array($this, 'swti_nonce_check_cb'),
     791            'swti_debug_fields',
     792            'swti_debug_settings'
     793        );
     794        add_settings_field(
    788795            'swti_debug',
    789796            'Error Log',
     
    18841891     *
    18851892     */
     1893    public function swti_nonce_check_cb() {
     1894        $nonceCheck = ( isset( $this->options['swti_nonce_check'] ) ? $this->options['swti_nonce_check'] : '' );
     1895        ?>
     1896       
     1897        <input type="hidden" name="swti_options[swti_nonce_check]" value="0"/>
     1898        <input type="checkbox" id="sw-nonce-check" name="swti_options[swti_nonce_check]" value="1" <?php
     1899        checked( 1, $nonceCheck, true );
     1900        ?> />
     1901        <p>Disable nonce checking, useful if page caching is breaking your Twitch Integration.</p>
     1902
     1903        <?php
     1904    }
     1905
    18861906    public function swti_debug_cb() {
    18871907        $dismissForGood5 = ( isset( $this->options['swti_dismiss_for_good5'] ) ? $this->options['swti_dismiss_for_good5'] : 0 );
     
    20022022        if ( isset( $input['swti_layout'] ) ) {
    20032023            $new_input['swti_layout'] = sanitize_text_field( $input['swti_layout'] );
     2024        }
     2025        if ( isset( $input['swti_nonce_check'] ) ) {
     2026            $new_input['swti_nonce_check'] = (int) $input['swti_nonce_check'];
    20042027        }
    20052028        if ( isset( $input['swti_dismiss_for_good5'] ) ) {
     
    21102133            $title = ( !empty( $section['title'] ) ? "<h3 class='hndle'><span class='dashicons {$icon}'></span>{$section['title']}</h3>" : '' );
    21112134            $description = ( $desc ? "<p>{$desc}</p>" : '' );
    2112             echo '<div class="postbox postbox-' . esc_attr( $section['title'] ) . ' postbox-' . esc_attr( $premium_status ) . '">';
     2135            echo '<div class="postbox postbox-' . esc_attr( str_replace( ' ', '-', strtolower( $section['title'] ) ) ) . ' postbox-' . esc_attr( $premium_status ) . '">';
    21132136            echo wp_kses( $title, $allowed_html );
    21142137            echo '<div class="inside">';
  • streamweasels-twitch-integration/trunk/freemius/assets/css/admin/account.css

    r3070346 r3167502  
    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}}
     1label.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}}
  • streamweasels-twitch-integration/trunk/freemius/assets/css/admin/common.css

    r3070346 r3167502  
    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-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}
  • streamweasels-twitch-integration/trunk/freemius/assets/css/admin/dialog-boxes.css

    r3126749 r3167502  
    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;-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:#0074a3;height:20px;position:absolute;top:0;transform:scale(.3);width:20px}.fs-ajax-loader .fs-ajax-loader-bar-1{animation-delay:.6s;left:0}.fs-ajax-loader .fs-ajax-loader-bar-2{animation-delay:.75s;left:19px}.fs-ajax-loader .fs-ajax-loader-bar-3{animation-delay:.9s;left:38px}.fs-ajax-loader .fs-ajax-loader-bar-4{animation-delay:1.05s;left:57px}.fs-ajax-loader .fs-ajax-loader-bar-5{animation-delay:1.2s;left:76px}.fs-ajax-loader .fs-ajax-loader-bar-6{animation-delay:1.35s;left:95px}.fs-ajax-loader .fs-ajax-loader-bar-7{animation-delay:1.5s;left:114px}.fs-ajax-loader .fs-ajax-loader-bar-8{animation-delay:1.65s;left:133px}@keyframes bounce_ajaxLoader{0%{background-color:#0074a3;transform:scale(1)}to{background-color:#fff;transform:scale(.3)}}.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons,.fs-modal-auto-install #request-filesystem-credentials-form h2{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;max-width:100%;padding:10px 10px 5px;width:300px}.fs-modal-auto-install #request-filesystem-credentials-form fieldset,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form>div{display:block;margin:0 auto;max-width:100%;width:300px}.button-primary.warn{background:#f56a48;border-color:#ec6544 #d2593c #d2593c;box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{background:#e76444!important;border-color:#d85e40!important;color:#f5b3a1!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important}
  • streamweasels-twitch-integration/trunk/freemius/includes/class-freemius.php

    r3126749 r3167502  
    12581258         * @return bool
    12591259         */
    1260         private static function set_network_upgrade_mode( FS_Storage $storage ) {
     1260        public static function set_network_upgrade_mode( FS_Storage $storage ) {
    12611261            return $storage->is_network_activation = true;
    12621262        }
     
    15841584                add_action( 'admin_init', array( &$this, 'connect_again' ) );
    15851585            }
     1586
     1587            FS_DebugManager::register_hooks();
    15861588        }
    15871589
     
    27022704         * @since  2.4.3
    27032705         */
    2704         private static function reset_deactivation_snoozing( $period = 0 ) {
     2706        public static function reset_deactivation_snoozing( $period = 0 ) {
    27052707            $value = ( 0 === $period ) ? null : 'true';
    27062708
     
    34193421            self::$_global_admin_notices = FS_Admin_Notices::instance( 'global' );
    34203422
    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' ) );
     3423            FS_DebugManager::load_required_static();
    34353424
    34363425            if ( 0 == did_action( 'plugins_loaded' ) ) {
     
    34573446
    34583447            self::$_statics_loaded = true;
     3448        }
     3449
     3450        public static function get_static_logger() {
     3451            return self::$_static_logger;
     3452        }
     3453
     3454        public static function get_accounts() {
     3455            return self::$_accounts;
    34593456        }
    34603457
     
    36273624         * @since 2.1.3
    36283625         */
    3629         private static function migrate_options_to_network() {
     3626        public static function migrate_options_to_network() {
    36303627            self::migrate_accounts_to_network();
    36313628
     
    36633660                $fs_active_plugins->newest->sdk_path . '/languages/'
    36643661            );
    3665         }
    3666 
    3667         #endregion
    3668 
    3669         #----------------------------------------------------------------------------------
    3670         #region Debugging
    3671         #----------------------------------------------------------------------------------
    3672 
    3673         /**
    3674          * @author Vova Feldman (@svovaf)
    3675          * @since  1.0.8
    3676          */
    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.3
    3716          */
    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.6
    3739          */
    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                 $offset
    3754             );
    3755 
    3756             self::shoot_ajax_success( $logs );
    3757         }
    3758 
    3759         /**
    3760          * @author Vova Feldman (@svovaf)
    3761          * @since  1.2.1.7
    3762          */
    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.7
    3794          */
    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.8
    3818          */
    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 support@freemius.com.' );
    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.0
    3914          *
    3915          * @return array
    3916          */
    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.8
    3964          */
    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 );
    39843662        }
    39853663
     
    74847162
    74857163        /**
    7486          * Delete user.
    7487          *
    7488          * @author Vova Feldman (@svovaf)
    7489          * @since  2.0.0
    7490          *
    7491          * @param number $user_id
    7492          * @param bool   $store
    7493          *
    7494          * @return false|int The user ID if deleted. Otherwise, FALSE (when install not exist).
    7495          */
    7496         private static function delete_user( $user_id, $store = true ) {
    7497             $users = self::get_all_users();
    7498 
    7499             if ( ! is_array( $users ) || ! isset( $users[ $user_id ] ) ) {
    7500                 return false;
    7501             }
    7502 
    7503             unset( $users[ $user_id ] );
    7504 
    7505             self::$_accounts->set_option( 'users', $users, $store );
    7506 
    7507             return $user_id;
    7508         }
    7509 
    7510         /**
    75117164         * Delete plugin's plans information.
    75127165         *
     
    1064310296         * @return array[string]FS_Site
    1064410297         */
    10645         private static function get_all_sites(
     10298        public static function get_all_sites(
    1064610299            $module_type = WP_FS__MODULE_TYPE_PLUGIN,
    1064710300            $blog_id = null,
     
    1067210325         * @return mixed
    1067310326         */
    10674         private static function get_account_option( $option_name, $module_type = null, $network_level_or_blog_id = null ) {
     10327        public static function get_account_option( $option_name, $module_type = null, $network_level_or_blog_id = null ) {
    1067510328            if ( ! is_null( $module_type ) && WP_FS__MODULE_TYPE_PLUGIN !== $module_type ) {
    1067610329                $option_name = $module_type . '_' . $option_name;
     
    1080710460         * @since  2.0.0
    1080810461         *
    10809          * @return array
    10810          */
    10811         private static function get_all_licenses_by_module_type() {
    10812             $licenses = self::get_account_option( 'all_licenses' );
    10813 
    10814             $licenses_by_module_type = array(
    10815                 WP_FS__MODULE_TYPE_PLUGIN => array(),
    10816                 WP_FS__MODULE_TYPE_THEME  => array()
    10817             );
    10818 
    10819             if ( ! is_array( $licenses ) ) {
    10820                 return $licenses_by_module_type;
    10821             }
    10822 
    10823             foreach ( $licenses as $module_id => $module_licenses ) {
    10824                 $fs = self::get_instance_by_id( $module_id );
    10825                 if ( false === $fs ) {
    10826                     continue;
    10827                 }
    10828 
    10829                 $licenses_by_module_type[ $fs->_module_type ] = array_merge( $licenses_by_module_type[ $fs->_module_type ], $module_licenses );
    10830             }
    10831 
    10832             return $licenses_by_module_type;
    10833         }
    10834 
    10835         /**
    10836          * @author Leo Fajardo (@leorw)
    10837          * @since  2.0.0
    10838          *
    1083910462         * @param number      $module_id
    1084010463         * @param number|null $user_id
     
    1097510598         * @return array<number,FS_Plugin[]>|false
    1097610599         */
    10977         private static function get_all_addons() {
     10600        public static function get_all_addons() {
    1097810601            $addons = self::maybe_get_entities_account_option( 'addons', array() );
    1097910602
     
    1099110614         * @return number[]|false
    1099210615         */
    10993         private static function get_all_account_addons() {
     10616        public static function get_all_account_addons() {
    1099410617            $addons = self::$_accounts->get_option( 'account_addons', array() );
    1099510618
     
    1110610729        function get_site() {
    1110710730            return $this->_site;
     10731        }
     10732
     10733        /**
     10734         * @author Daniele Alessandra (@danielealessandra)
     10735         * @return FS_Storage
     10736         * @since  2.6.2
     10737         *
     10738         */
     10739        public function get_storage() {
     10740            return $this->_storage;
    1110810741        }
    1110910742
     
    1504214675                $this->_get_admin_page_url( 'pricing', $params );
    1504314676
     14677            return $this->get_pricing_url_with_filter( $url );
     14678        }
     14679
     14680        /**
     14681         * Retrieves the filtered pricing URL.
     14682         *
     14683         * @author Leo Fajardo (@leorw)
     14684         * @since  2.7.4
     14685         *
     14686         * @param string $url
     14687         *
     14688         * @return string
     14689         */
     14690        private function get_pricing_url_with_filter( $url ) {
    1504414691            return $this->apply_filters( 'pricing_url', $url );
    1504514692        }
     
    1916818815                    }
    1916918816
    19170                     // Add upgrade/pricing page.
    19171                     $this->add_submenu_item(
    19172                         $pricing_cta_text . '&nbsp;&nbsp;' . ( is_rtl() ? $this->get_text_x_inline( '&#x2190;', 'ASCII arrow left icon', 'symbol_arrow-left' ) : $this->get_text_x_inline( '&#x27a4;', 'ASCII arrow right icon', 'symbol_arrow-right' ) ),
    19173                         array( &$this, '_pricing_page_render' ),
    19174                         $this->get_plugin_name() . ' &ndash; ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ),
    19175                         'manage_options',
    19176                         'pricing',
    19177                         'Freemius::_clean_admin_content_section',
    19178                         WP_FS__LOWEST_PRIORITY,
    19179                         ( $add_submenu_items && $show_pricing ),
    19180                         $pricing_class
    19181                     );
     18817                    $custom_pricing_url        = $this->get_pricing_url_with_filter( null );
     18818                    $pricing_menu_title        = $pricing_cta_text . '&nbsp;&nbsp;' . ( is_rtl() ? $this->get_text_x_inline( '&#x2190;', 'ASCII arrow left icon', 'symbol_arrow-left' ) : $this->get_text_x_inline( '&#x27a4;', 'ASCII arrow right icon', 'symbol_arrow-right' ) );
     18819                    $show_pricing_submenu_item = ( $add_submenu_items && $show_pricing );
     18820
     18821                    // Add upgrade/pricing submenu item.
     18822                    if ( ! is_null( $custom_pricing_url ) ) {
     18823                        $this->add_submenu_link_item(
     18824                            $pricing_menu_title,
     18825                            $custom_pricing_url,
     18826                            'pricing',
     18827                            'manage_options',
     18828                            WP_FS__LOWEST_PRIORITY,
     18829                            $show_pricing_submenu_item,
     18830                            $pricing_class
     18831                        );
     18832                    } else {
     18833                        $this->add_submenu_item(
     18834                            $pricing_menu_title,
     18835                            array( &$this, '_pricing_page_render' ),
     18836                            $this->get_plugin_name() . ' &ndash; ' . $this->get_text_x_inline( 'Pricing', 'noun', 'pricing' ),
     18837                            'manage_options',
     18838                            'pricing',
     18839                            'Freemius::_clean_admin_content_section',
     18840                            WP_FS__LOWEST_PRIORITY,
     18841                            $show_pricing_submenu_item,
     18842                            $pricing_class
     18843                        );
     18844                    }
    1918218845                }
    1918318846            }
     
    1946819131         * @param int    $priority
    1946919132         * @param bool   $show_submenu
     19133         * @param string $class
    1947019134         */
    1947119135        function add_submenu_link_item(
     
    1947519139            $capability = 'read',
    1947619140            $priority = WP_FS__DEFAULT_PRIORITY,
    19477             $show_submenu = true
     19141            $show_submenu = true,
     19142            $class = ''
    1947819143        ) {
    1947919144            $this->_logger->entrance( 'Title = ' . $menu_title . '; Url = ' . $url );
     
    1948919154                        $capability,
    1949019155                        $priority,
    19491                         $show_submenu
     19156                        $show_submenu,
     19157                        $class
    1949219158                    );
    1949319159
     
    1950919175                'before_render_function' => '',
    1951019176                'show_submenu'           => $show_submenu,
     19177                'class'                  => $class,
    1951119178            );
    1951219179        }
     
    2280222469
    2280322470            $remove_user       = true;
    22804             $all_modules_sites = self::get_all_modules_sites();
     22471            $all_modules_sites = FS_DebugManager::get_all_modules_sites();
    2280522472
    2280622473            foreach ( $all_modules_sites as $sites_by_module_type ) {
     
    2488924556         * @since 2.1.0
    2489024557         *
    24891          * @param string $url
    24892          * @param array  $request
    24893          */
    24894         private static function enrich_request_for_debug( &$url, &$request ) {
    24895             if ( WP_FS__DEBUG_SDK || isset( $_COOKIE['XDEBUG_SESSION'] ) ) {
    24896                 $url = add_query_arg( 'XDEBUG_SESSION_START', rand( 0, 9999999 ), $url );
    24897                 $url = add_query_arg( 'XDEBUG_SESSION', 'PHPSTORM', $url );
    24898 
    24899                 $request['cookies'] = array(
    24900                     new WP_Http_Cookie( array(
    24901                         'name'  => 'XDEBUG_SESSION',
    24902                         'value' => 'PHPSTORM',
    24903                     ) )
    24904                 );
    24905             }
    24906         }
    24907 
    24908         /**
    24909          * @author Leo Fajardo (@leorw)
    24910          * @since 2.1.0
    24911          *
    2491224558         * @param string      $url
    2491324559         * @param array       $request
     
    2493524581            if ( false === $response ) {
    2493624582                if ( $maybe_enrich_request_for_debug ) {
    24937                     self::enrich_request_for_debug( $url, $request );
     24583                    FS_DebugManager::enrich_request_for_debug( $url, $request );
    2493824584                }
    2493924585
  • streamweasels-twitch-integration/trunk/freemius/includes/class-fs-logger.php

    r2861367 r3167502  
    3333        private static $_abspathLength;
    3434
     35        /**
     36         * @var FS_Logger[] $LOGGERS
     37         */
    3538        private static $LOGGERS = array();
    3639        private static $LOG = array();
     
    125128            self::hook_footer();
    126129        }
    127 
    128130        function echo_on() {
    129131            $this->on();
     
    321323            $table = "{$wpdb->prefix}fs_logger";
    322324
     325            /**
     326             * Drop logging table in any case.
     327             */
     328            $result = $wpdb->query( "DROP TABLE IF EXISTS $table;" );
     329
    323330            if ( $is_on ) {
    324331                /**
     
    330337                 * @link https://core.trac.wordpress.org/ticket/2695
    331338                 */
    332                 $result = $wpdb->query( "CREATE TABLE {$table} (
     339                $result = $wpdb->query( "CREATE TABLE IF NOT EXISTS {$table} (
    333340`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
    334341`process_id` INT UNSIGNED NOT NULL,
     
    349356KEY `function` (`function` ASC),
    350357KEY `type` (`type` ASC))" );
    351             } else {
    352                 /**
    353                  * Drop logging table.
    354                  */
    355                 $result = $wpdb->query( "DROP TABLE IF EXISTS $table;" );
    356358            }
    357359
    358360            if ( false !== $result ) {
    359361                update_option( 'fs_storage_logger', ( $is_on ? 1 : 0 ) );
     362                self::$_isStorageLoggingOn = $is_on;
    360363            }
    361364
  • streamweasels-twitch-integration/trunk/freemius/includes/class-fs-plugin-updater.php

    r3114536 r3167502  
    107107            if ( ! $this->_fs->has_any_active_valid_license() ) {
    108108                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' ) );
    109111            }
    110112
     
    132134        /**
    133135         * @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)
    134172         * @since 2.1.4
    135173         */
    136174        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() ) {
    141176                return;
    142177            }
     
    617652            $slug = $this->_fs->get_slug();
    618653
    619             if ( $this->_fs->is_org_repo_compliant() && $this->_fs->is_freemium() ) {
     654            if ( $this->can_fetch_data_from_wp_org() ) {
    620655                if ( ! isset( $this->_translation_updates ) ) {
    621656                    $this->_translation_updates = array();
     
    872907
    873908            return $res;
     909        }
     910
     911        /**
     912         * Returns true if the product can fetch data from WordPress.org.
     913         *
     914         * @author Leo Fajardo (@leorw)
     915         * @since  2.7.4
     916         */
     917        private function can_fetch_data_from_wp_org() {
     918            return ( $this->_fs->is_org_repo_compliant() && $this->_fs->is_freemium() );
    874919        }
    875920
     
    10581103
    10591104            $plugin_in_repo = false;
    1060             if ( ! $is_addon ) {
     1105            if ( ! $is_addon && $this->can_fetch_data_from_wp_org() ) {
    10611106                // Try to fetch info from .org repository.
    10621107                $data = self::_fetch_plugin_info_from_repository( $action, $args );
  • streamweasels-twitch-integration/trunk/freemius/includes/class-fs-storage.php

    r3114536 r3167502  
    2121     * @property bool|null   $is_diagnostic_tracking_allowed
    2222     * @property object      $sync_cron
     23     * @property bool|int    $install_timestamp
    2324     */
    2425    class FS_Storage {
  • streamweasels-twitch-integration/trunk/freemius/includes/entities/class-fs-plugin-plan.php

    r3070346 r3167502  
    9393         */
    9494        public $is_hidden;
     95        /**
     96         * @var FS_Pricing[]
     97         */
     98        public $pricing;
     99        /**
     100         * @var object[]
     101         */
     102        public $features;
    95103
    96104        #endregion Properties
  • streamweasels-twitch-integration/trunk/freemius/includes/entities/class-fs-site.php

    r3070346 r3167502  
    183183                fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
    184184                fs_ends_with( $subdomain, '.wpengine.com' ) ||
     185                fs_ends_with( $subdomain, '.wpenginepowered.com' ) ||
    185186                // Pantheon
    186187                ( fs_ends_with( $subdomain, 'pantheonsite.io' ) &&
     
    202203                ( fs_ends_with( $subdomain, '.websitepro-staging.com' ) || fs_ends_with( $subdomain, '.websitepro.hosting' ) ) ||
    203204                // 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' ) )
    205208            );
    206209        }
  • streamweasels-twitch-integration/trunk/freemius/includes/managers/class-fs-clone-manager.php

    r3114536 r3167502  
    334334
    335335            if ( ! isset( $this->all_installs ) ) {
    336                 $this->all_installs = Freemius::get_all_modules_sites();
     336                $this->all_installs = FS_DebugManager::get_all_modules_sites();
    337337            }
    338338
  • streamweasels-twitch-integration/trunk/freemius/require.php

    r2989254 r3167502  
    5151    require_once WP_FS__DIR_INCLUDES . '/class-fs-plugin-updater.php';
    5252    require_once WP_FS__DIR_INCLUDES . '/class-fs-security.php';
     53    require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-debug-manager.php';
    5354    require_once WP_FS__DIR_INCLUDES . '/class-fs-options.php';
    5455    require_once WP_FS__DIR_INCLUDES . '/class-fs-storage.php';
  • streamweasels-twitch-integration/trunk/freemius/start.php

    r3126749 r3167502  
    1616     * @var string
    1717     */
    18     $this_sdk_version = '2.7.3';
     18    $this_sdk_version = '2.8.1';
    1919
    2020    #region SDK Selection Logic --------------------------------------------------------------------
  • streamweasels-twitch-integration/trunk/freemius/templates/account.php

    r3114536 r3167502  
    511511                                            <tr class="fs-field-<?php echo esc_attr( $p['id'] ) ?><?php if ( $odd ) : ?> alternate<?php endif ?>">
    512512                                                <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>
    514514                                                </td>
    515515                                                <td<?php if ( 'plan' === $p['id'] || 'bundle_plan' === $p['id'] ) { echo ' colspan="2"'; }?>>
  • streamweasels-twitch-integration/trunk/freemius/templates/debug.php

    r3114536 r3167502  
    1818    $on_text  = fs_text_x_inline( 'On', 'as turned on' );
    1919
     20    // For some reason css was missing
     21    fs_enqueue_local_style( 'fs_common', '/admin/common.css' );
     22
    2023    $has_any_active_clone = false;
    2124
    2225    $is_multisite = is_multisite();
     26
     27    $auto_off_timestamp = wp_next_scheduled( 'fs_debug_turn_off_logging_hook' ) * 1000;
    2328?>
    2429<h1><?php echo fs_text_inline( 'Freemius Debug' ) . ' - ' . fs_text_inline( 'SDK' ) . ' v.' . $fs_active_plugins->newest->version ?></h1>
    2530<div>
    2631    <!-- Debugging Switch -->
    27     <?php //$debug_mode = get_option( 'fs_debug_mode', null ) ?>
    2832    <span class="fs-switch-label"><?php fs_esc_html_echo_x_inline( 'Debugging', 'as code debugging' ) ?></span>
    2933
     
    3135        <div class="fs-toggle"></div>
    3236    </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
    3340    <script type="text/javascript">
    3441        (function ($) {
     
    4047                        .toggleClass( 'fs-off' );
    4148
     49                    var is_on = ($(this).hasClass( 'fs-on' ) ? 1 : 0);
     50
    4251                    $.post( <?php echo Freemius::ajax_url() ?>, {
    4352                        action: 'fs_toggle_debug_mode',
    4453                        // As such we don't need to use `wp_json_encode` method but using it to follow wp.org guideline.
    4554                        _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
    4863                        if ( 1 == response ) {
    4964                            // Refresh page on success.
     
    5267                    });
    5368                });
     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
    54113            });
    55114        }(jQuery));
  • streamweasels-twitch-integration/trunk/includes/class-streamweasels-twitch.php

    r3058567 r3167502  
    2525        private $game;
    2626        private $token;
     27        private $nonceCheck;
    2728        private $debug = false;
    2829
     
    3435            $this->game = (!empty($options['swti_game'])) ? $options['swti_game'] : '';
    3536            $this->token = (!empty($options['swti_api_access_token'])) ? $options['swti_api_access_token'] : '';
     37            $this->nonceCheck = (!empty($options['swti_nonce_check'])) ? $options['swti_nonce_check'] : false;
    3638        }
    3739
     
    263265
    264266            $nonce = $request->get_header('X-WP-Nonce');
    265             if (!wp_verify_nonce($nonce, 'wp_rest')) {
    266                 return new WP_REST_Response('Nonce verification failed', 403);
     267           
     268            if (!$this->nonceCheck) {
     269                if (!wp_verify_nonce($nonce, 'wp_rest')) {
     270                    return new WP_REST_Response('Nonce verification failed', 403);
     271                }
    267272            }
    268273   
  • streamweasels-twitch-integration/trunk/streamweasels.php

    r3137770 r3167502  
    1717 * Plugin URI:        https://www.streamweasels.com/
    1818 * Description:       Embed Twitch streams with our collection of Twitch Blocks and Shortcodes.
    19  * Version:           1.8.5
     19 * Version:           1.8.6
    2020 * Author:            StreamWeasels
    2121 * Author URI:        https://www.streamweasels.com
     
    3434 * Rename this for your plugin and update it as you release new versions.
    3535 */
    36 define( 'STREAMWEASELS_VERSION', '1.8.5' );
     36define( 'STREAMWEASELS_VERSION', '1.8.6' );
    3737if ( function_exists( 'sti_fs' ) ) {
    3838    sti_fs()->set_basename( false, __FILE__ );
Note: See TracChangeset for help on using the changeset viewer.