Plugin Directory

Changeset 3453906


Ignore:
Timestamp:
02/04/2026 03:35:05 PM (3 weeks ago)
Author:
lostendfound
Message:

Fix: option name mismatch, HTML escaping in help tabs, global asset loading

Location:
indie-analytics/trunk/admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • indie-analytics/trunk/admin/class-indie-analytics-admin.php

    r3453901 r3453906  
    8585     *
    8686     * @since    1.0.0
    87      */
    88     public function enqueue_styles() {
     87     * @param    string    $hook_suffix    The current admin page hook suffix.
     88     */
     89    public function enqueue_styles($hook_suffix) {
     90        if ($hook_suffix !== 'toplevel_page_lostendfound-indie-analytics-settings') {
     91            return;
     92        }
    8993        wp_enqueue_style($this->plugin_name, LOSTENDFOUND_INDIE_ANALYTICS_URL . 'admin/css/indie-analytics-admin.css', array(), $this->version, 'all');
    9094    }
     
    9498     *
    9599     * @since    1.0.0
    96      */
    97     public function enqueue_scripts() {
     100     * @param    string    $hook_suffix    The current admin page hook suffix.
     101     */
     102    public function enqueue_scripts($hook_suffix) {
     103        if ($hook_suffix !== 'toplevel_page_lostendfound-indie-analytics-settings') {
     104            return;
     105        }
    98106        wp_enqueue_script($this->plugin_name, LOSTENDFOUND_INDIE_ANALYTICS_URL . 'admin/js/indie-analytics-admin.js', array('jquery'), $this->version, false);
    99107    }
     
    260268     */
    261269    public function display_provider_select() {
    262         $provider = get_option('indie-analytics_provider');
    263         ?>
    264         <select name="indie-analytics_provider" id="indie-analytics_provider">
     270        $provider = get_option($this->plugin_name . '_provider');
     271        ?>
     272        <select name="<?php echo esc_attr($this->plugin_name . '_provider'); ?>" id="<?php echo esc_attr($this->plugin_name . '_provider'); ?>">
    265273            <option value=""><?php esc_html_e('-- Select Provider --', 'indie-analytics'); ?></option>
    266274            <?php foreach ($this->providers as $key => $provider_data) : ?>
     
    283291     */
    284292    public function display_site_id_field() {
    285         $site_id = get_option('indie-analytics_site_id');
    286         ?>
    287         <input type="text" class="regular-text" id="indie-analytics_site_id" name="indie-analytics_site_id" value="<?php echo esc_attr($site_id); ?>" />
     293        $site_id = get_option($this->plugin_name . '_site_id');
     294        ?>
     295        <input type="text" class="regular-text" id="<?php echo esc_attr($this->plugin_name . '_site_id'); ?>" name="<?php echo esc_attr($this->plugin_name . '_site_id'); ?>" value="<?php echo esc_attr($site_id); ?>" />
    288296        <p class="description" id="site-id-description"></p>
    289297        <?php
     
    296304     */
    297305    public function display_tracking_url_field() {
    298         $tracking_url = get_option('indie-analytics_tracking_url');
    299         ?>
    300         <input type="url" class="regular-text" id="indie-analytics_tracking_url" name="indie-analytics_tracking_url" value="<?php echo esc_url($tracking_url); ?>" />
     306        $tracking_url = get_option($this->plugin_name . '_tracking_url');
     307        ?>
     308        <input type="url" class="regular-text" id="<?php echo esc_attr($this->plugin_name . '_tracking_url'); ?>" name="<?php echo esc_attr($this->plugin_name . '_tracking_url'); ?>" value="<?php echo esc_url($tracking_url); ?>" />
    301309        <p class="description" id="tracking-url-description"></p>
    302310        <?php
     
    309317     */
    310318    public function display_custom_domain_field() {
    311         $custom_domain = get_option('indie-analytics_custom_domain');
    312         ?>
    313         <input type="text" class="regular-text" id="indie-analytics_custom_domain" name="indie-analytics_custom_domain" value="<?php echo esc_attr($custom_domain); ?>" />
     319        $custom_domain = get_option($this->plugin_name . '_custom_domain');
     320        ?>
     321        <input type="text" class="regular-text" id="<?php echo esc_attr($this->plugin_name . '_custom_domain'); ?>" name="<?php echo esc_attr($this->plugin_name . '_custom_domain'); ?>" value="<?php echo esc_attr($custom_domain); ?>" />
    314322        <p class="description"><?php esc_html_e('If you use a custom domain for your analytics, enter it here.', 'indie-analytics'); ?></p>
    315323        <?php
     
    322330     */
    323331    public function display_exclude_admins_field() {
    324         $exclude_admins = get_option('indie-analytics_exclude_admins', false);
     332        $exclude_admins = get_option($this->plugin_name . '_exclude_admins', false);
    325333        ?>
    326334        <input type="checkbox" id="<?php echo esc_attr($this->plugin_name . '_exclude_admins'); ?>" name="<?php echo esc_attr($this->plugin_name . '_exclude_admins'); ?>" value="1" <?php checked($exclude_admins, true); ?> />
  • indie-analytics/trunk/admin/js/indie-analytics-admin.js

    r3453901 r3453906  
    1010    $(document).ready(function() {
    1111        // Handle provider selection change
    12         const $providerSelect = $('#lostendfound-indie-analytics_provider');
     12        // Use attribute selectors to match the dynamically-generated IDs
     13        const prefix = 'lostendfound-indie-analytics';
     14        const $providerSelect = $('[id="' + prefix + '_provider"]');
    1315        const $providerInfo = $('#provider-info');
    14         const $siteIdField = $('#lostendfound-indie-analytics_site_id');
    15         const $trackingUrlField = $('#lostendfound-indie-analytics_tracking_url');
    16         const $customDomainField = $('#lostendfound-indie-analytics_custom_domain');
     16        const $siteIdField = $('[id="' + prefix + '_site_id"]');
     17        const $trackingUrlField = $('[id="' + prefix + '_tracking_url"]');
     18        const $customDomainField = $('[id="' + prefix + '_custom_domain"]');
    1719        const $siteIdDescription = $('#site-id-description');
    1820        const $trackingUrlDescription = $('#tracking-url-description');
  • indie-analytics/trunk/admin/partials/indie-analytics-admin-display.php

    r3453901 r3453906  
    6363           
    6464            <div class="provider-help-tab-content">
     65                <?php
     66                $allowed_html = array(
     67                    'a' => array(
     68                        'href'   => array(),
     69                        'target' => array(),
     70                    ),
     71                );
     72                ?>
    6573                <div id="umami-help" class="provider-help-tab">
    6674                    <h4>Umami Setup</h4>
    6775                    <ol>
    68                         <li><?php esc_html_e('Create an account on <a href="https://umami.is/" target="_blank">Umami</a> or set up your self-hosted instance', 'indie-analytics'); ?></li>
     76                        <li><?php echo wp_kses(__('Create an account on <a href="https://umami.is/" target="_blank">Umami</a> or set up your self-hosted instance', 'indie-analytics'), $allowed_html); ?></li>
    6977                        <li><?php esc_html_e('Create a website in your Umami dashboard', 'indie-analytics'); ?></li>
    7078                        <li><?php esc_html_e('Copy the Website ID and Tracking Script URL from your Umami dashboard', 'indie-analytics'); ?></li>
     
    7684                    <h4>Plausible Setup</h4>
    7785                    <ol>
    78                         <li><?php esc_html_e('Create an account on <a href="https://plausible.io/" target="_blank">Plausible</a>', 'indie-analytics'); ?></li>
     86                        <li><?php echo wp_kses(__('Create an account on <a href="https://plausible.io/" target="_blank">Plausible</a>', 'indie-analytics'), $allowed_html); ?></li>
    7987                        <li><?php esc_html_e('Add your website domain in the Plausible dashboard', 'indie-analytics'); ?></li>
    8088                        <li><?php esc_html_e('Your Site ID is your domain name (e.g., example.com)', 'indie-analytics'); ?></li>
     
    8795                    <h4>Swetrix Setup</h4>
    8896                    <ol>
    89                         <li><?php esc_html_e('Create an account on <a href="https://swetrix.com/" target="_blank">Swetrix</a>', 'indie-analytics'); ?></li>
     97                        <li><?php echo wp_kses(__('Create an account on <a href="https://swetrix.com/" target="_blank">Swetrix</a>', 'indie-analytics'), $allowed_html); ?></li>
    9098                        <li><?php esc_html_e('Create a new project in the Swetrix dashboard', 'indie-analytics'); ?></li>
    9199                        <li><?php esc_html_e('Copy the Project ID from the installation instructions', 'indie-analytics'); ?></li>
     
    97105                    <h4>Matomo Setup</h4>
    98106                    <ol>
    99                         <li><?php esc_html_e('Set up Matomo on your server or create an account on <a href="https://matomo.org/matomo-cloud/" target="_blank">Matomo Cloud</a>', 'indie-analytics'); ?></li>
     107                        <li><?php echo wp_kses(__('Set up Matomo on your server or create an account on <a href="https://matomo.org/matomo-cloud/" target="_blank">Matomo Cloud</a>', 'indie-analytics'), $allowed_html); ?></li>
    100108                        <li><?php esc_html_e('Create a new website in Matomo', 'indie-analytics'); ?></li>
    101109                        <li><?php esc_html_e('Copy the Site ID from the tracking code', 'indie-analytics'); ?></li>
     
    107115                    <h4>Fathom Setup</h4>
    108116                    <ol>
    109                         <li><?php esc_html_e('Create an account on <a href="https://usefathom.com/" target="_blank">Fathom</a>', 'indie-analytics'); ?></li>
     117                        <li><?php echo wp_kses(__('Create an account on <a href="https://usefathom.com/" target="_blank">Fathom</a>', 'indie-analytics'), $allowed_html); ?></li>
    110118                        <li><?php esc_html_e('Add your website in the Fathom dashboard', 'indie-analytics'); ?></li>
    111119                        <li><?php esc_html_e('Copy the Site ID from the tracking code snippet', 'indie-analytics'); ?></li>
Note: See TracChangeset for help on using the changeset viewer.