403Webshell
Server IP : 3.147.158.171  /  Your IP : 216.73.216.216
Web Server : Apache/2.4.67 (Amazon Linux) OpenSSL/3.5.5
System : Linux ip-172-31-2-178.us-east-2.compute.internal 6.1.172-216.329.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 20 06:31:34 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.21
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /tsai/repo/plugins/tsai-compliance/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /tsai/repo/plugins/tsai-compliance/includes/class-tsai-compliance-banner.php
<?php
/**
 * Front-end consent banner: enqueues assets and renders the markup.
 */

if (!defined('ABSPATH')) {
    exit;
}

class TSAI_Compliance_Banner {

    public static function init() {
        add_action('wp_enqueue_scripts', array(__CLASS__, 'enqueue'));
        add_action('wp_footer', array(__CLASS__, 'render'), 1);
    }

    public static function enqueue() {
        wp_enqueue_style(
            'tsai-compliance',
            TSAI_COMPLIANCE_URL . 'assets/banner.css',
            array(),
            TSAI_COMPLIANCE_VERSION
        );
        wp_enqueue_script(
            'tsai-compliance',
            TSAI_COMPLIANCE_URL . 'assets/banner.js',
            array(),
            TSAI_COMPLIANCE_VERSION,
            true
        );

        $s = TSAI_Compliance_Consent::settings();
        // Admin preview: append ?tsai_consent_preview=1 as a logged-in admin to
        // force the banner to show regardless of GPC or an existing cookie, and
        // without recording consent. For testing only.
        $preview = (current_user_can('manage_options') && !empty($_GET['tsai_consent_preview'])) ? 1 : 0;
        wp_localize_script('tsai-compliance', 'TSAI_CONSENT', array(
            'mode'       => $s['mode'],
            'cookie'     => TSAI_Compliance_Consent::COOKIE,
            'cookieDays' => intval($s['cookie_days']),
            'version'    => intval($s['consent_version']),
            'gpc'        => TSAI_Compliance_Consent::is_gpc() ? 1 : 0,
            'preview'    => $preview,
            'categories' => array_keys($s['categories']),
            'logUrl'     => !empty($s['enable_logging']) ? esc_url_raw(rest_url('tsai-compliance/v1/consent')) : '',
        ));
    }

    public static function render() {
        $s = TSAI_Compliance_Consent::settings();

        if ($s['mode'] === 'notice') {
            self::render_notice($s);
            return;
        }
        ?>
        <div id="tsai-consent" class="tsai-consent" role="dialog" aria-modal="false"
             aria-label="Privacy consent" hidden>
            <div class="tsai-consent__inner">
                <div class="tsai-consent__body">
                    <h2 class="tsai-consent__heading"><?php echo esc_html($s['banner_heading']); ?></h2>
                    <p class="tsai-consent__text">
                        <?php echo wp_kses_post($s['banner_text']); ?>
                        <?php if (!empty($s['privacy_policy_url'])) : ?>
                            <a href="<?php echo esc_url($s['privacy_policy_url']); ?>" target="_blank" rel="noopener">Privacy Policy</a>.
                        <?php endif; ?>
                    </p>

                    <div class="tsai-consent__categories">
                        <label class="tsai-consent__cat tsai-consent__cat--locked">
                            <input type="checkbox" checked disabled>
                            <span><strong>Necessary</strong> — required for the site to function. Always on.</span>
                        </label>
                        <?php foreach ($s['categories'] as $key => $cat) : ?>
                            <label class="tsai-consent__cat">
                                <input type="checkbox" data-tsai-category="<?php echo esc_attr($key); ?>">
                                <span><strong><?php echo esc_html($cat['label']); ?></strong> — <?php echo esc_html($cat['description']); ?></span>
                            </label>
                        <?php endforeach; ?>
                    </div>
                </div>

                <div class="tsai-consent__actions">
                    <button type="button" class="tsai-consent__btn tsai-consent__btn--ghost" data-tsai-action="reject">Reject non-essential</button>
                    <button type="button" class="tsai-consent__btn tsai-consent__btn--ghost" data-tsai-action="save">Save preferences</button>
                    <button type="button" class="tsai-consent__btn tsai-consent__btn--primary" data-tsai-action="accept">Accept all</button>
                </div>
            </div>
        </div>
        <?php
    }

    /**
     * Slim, dismissible privacy notice. No categories, no script gating — used
     * when the site sets only functional cookies.
     */
    private static function render_notice($s) {
        ?>
        <div id="tsai-consent" class="tsai-consent tsai-consent--notice" role="region"
             aria-label="Privacy notice" hidden>
            <div class="tsai-consent__inner">
                <p class="tsai-consent__text">
                    <?php echo wp_kses_post($s['notice_text']); ?>
                    <?php if (!empty($s['privacy_policy_url'])) : ?>
                        <a href="<?php echo esc_url($s['privacy_policy_url']); ?>" target="_blank" rel="noopener">Privacy Policy</a>.
                    <?php endif; ?>
                </p>
                <div class="tsai-consent__actions">
                    <button type="button" class="tsai-consent__btn tsai-consent__btn--primary" data-tsai-action="dismiss">Got it</button>
                </div>
            </div>
        </div>
        <?php
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit