Plugin Directory

Changeset 3361602


Ignore:
Timestamp:
09/15/2025 08:23:13 AM (6 months ago)
Author:
metriondev
Message:

Cookie fix for country code domains.

Location:
metrion
Files:
53 added
13 edited

Legend:

Unmodified
Added
Removed
  • metrion/trunk/includes/initial.php

    r3342931 r3361602  
    103103        'google_analytics_enable_tracking' => get_option('metrion_google_analytics_enable_tracking', 0),
    104104        'google_analytics_measurement_id' => get_option('metrion_google_analytics_measurement_id', ''),
    105         'google_analytcs_api_key' => get_option('metrion_google_analytcs_api_key', '')
     105        'google_analytcs_api_key' => get_option('metrion_google_analytics_api_key', '')
    106106    ];
    107107}
     
    635635        'google_analytics_enable_tracking' => get_option('metrion_google_analytics_enable_tracking', 0),
    636636        'google_analytics_measurement_id' => get_option('metrion_google_analytics_measurement_id', ''),
    637         'google_analytcs_api_key' => get_option('metrion_google_analytcs_api_key', '')
     637        'google_analytcs_api_key' => get_option('metrion_google_analytics_api_key', '')
    638638    ]);
    639639}
  • metrion/trunk/js/cmp/cmplz/logic.js

    r3342931 r3361602  
    3030            window.metrion.configuration.cookie_expiration_milliseconds,
    3131            "/",
    32             window.metrion.configuration.cookie_domain
     32            window.metrion.helpers.get_cookie_domain(window.location.hostname)
    3333        );
    3434
     
    7575                window.metrion.configuration.cookie_expiration_milliseconds,
    7676                "/",
    77                 window.metrion.configuration.cookie_domain
     77                window.metrion.helpers.get_cookie_domain(window.location.hostname)
    7878            );
    7979
  • metrion/trunk/js/cmp/cookiebot/logic.js

    r3306539 r3361602  
    7171            window.metrion.configuration.cookie_expiration_milliseconds,
    7272            "/",
    73             window.metrion.configuration.cookie_domain
     73            window.metrion.helpers.get_cookie_domain(window.location.hostname)
    7474        );
    7575    }
     
    116116                        window.metrion.configuration.cookie_expiration_milliseconds,
    117117                        "/",
    118                         window.metrion.configuration.cookie_domain
     118                        window.metrion.helpers.get_cookie_domain(window.location.hostname)
    119119                    );
    120120
     
    156156                window.metrion.configuration.cookie_expiration_milliseconds,
    157157                "/",
    158                 window.metrion.configuration.cookie_domain
     158                window.metrion.helpers.get_cookie_domain(window.location.hostname)
    159159            );
    160160
     
    253253                window.metrion.configuration.cookie_expiration_milliseconds,
    254254                "/",
    255                 window.metrion.configuration.cookie_domain
     255                window.metrion.helpers.get_cookie_domain(window.location.hostname)
    256256            );
    257257           
  • metrion/trunk/js/cmp/cookiefirst/logic.js

    r3300778 r3361602  
    2929            window.metrion.configuration.cookie_expiration_milliseconds,
    3030            "/",
    31             window.metrion.configuration.cookie_domain
     31            window.metrion.helpers.get_cookie_domain(window.location.hostname)
    3232        );
    3333        window.metrion.configuration.floodgate_open = true;
  • metrion/trunk/js/cmp/cookieyes/logic.js

    r3300778 r3361602  
    3434            window.metrion.configuration.cookie_expiration_milliseconds,
    3535            "/",
    36             window.metrion.configuration.cookie_domain
     36            window.metrion.helpers.get_cookie_domain(window.location.hostname)
    3737        );
    3838
  • metrion/trunk/js/cmp/moove_gdpr/logic.js

    r3300778 r3361602  
    2727            window.metrion.configuration.cookie_expiration_milliseconds,
    2828            "/",
    29             window.metrion.configuration.cookie_domain
     29            window.metrion.helpers.get_cookie_domain(window.location.hostname)
    3030        );
    3131        window.metrion.configuration.floodgate_open = true;
  • metrion/trunk/js/cmp/none/logic.js

    r3306539 r3361602  
    1515        window.metrion.configuration.cookie_expiration_milliseconds,
    1616        "/",
    17         window.metrion.configuration.cookie_domain
     17        window.metrion.helpers.get_cookie_domain(window.location.hostname)
    1818    );
    1919    window.metrion.configuration.floodgate_open = true;
  • metrion/trunk/js/cmp/onetrust/logic.js

    r3300778 r3361602  
    3636                window.metrion.configuration.cookie_expiration_milliseconds,
    3737                "/",
    38                 window.metrion.configuration.cookie_domain
     38                window.metrion.helpers.get_cookie_domain(window.location.hostname)
    3939            );
    4040            window.metrion.configuration.floodgate_open = true;
  • metrion/trunk/js/core/events.js

    r3342931 r3361602  
    114114            // Set the session cookie with the session start time
    115115            //{session id}--{session expiration}--{session start time}
    116             window.metrion.helpers.set_cookie(configuration.session_cookie_name, session_cookie_new_value, configuration.session_cookie_lifetime_milliseconds, "/", configuration.cookie_domain);
     116            window.metrion.helpers.set_cookie(configuration.session_cookie_name, session_cookie_new_value, configuration.session_cookie_lifetime_milliseconds, "/", window.metrion.helpers.get_cookie_domain(window.location.hostname));
    117117            // Update the user cookie with the session number variable
    118118            //{user id}--{session number}
    119119            var user_cookie_new_value = user_cookie_values[0] + "--" +  session_number;
    120             window.metrion.helpers.set_cookie(configuration.user_cookie_name, user_cookie_new_value, configuration.user_cookie_lifetime_milliseconds, "/", configuration.cookie_domain);
     120            window.metrion.helpers.set_cookie(configuration.user_cookie_name, user_cookie_new_value, configuration.user_cookie_lifetime_milliseconds, "/", window.metrion.helpers.get_cookie_domain(window.location.hostname));
    121121            return session_id;
    122122        },
     
    136136            var new_session_expiration = new Date().getTime() + configuration.session_cookie_lifetime_milliseconds;
    137137            var updated_session_cookie_value = session_cookie_values[0] + window.metrion.configuration.cookie_value_separator + new_session_expiration + window.metrion.configuration.cookie_value_separator + session_cookie_values[2];
    138             window.metrion.helpers.set_cookie(configuration.session_cookie_name, updated_session_cookie_value, configuration.session_cookie_lifetime_milliseconds, "/", configuration.cookie_domain);
     138            window.metrion.helpers.set_cookie(configuration.session_cookie_name, updated_session_cookie_value, configuration.session_cookie_lifetime_milliseconds, "/", window.metrion.helpers.get_cookie_domain(window.location.hostname));
    139139
    140140            return session_cookie_values[0];
     
    185185            d.setTime(d.getTime() + cookie_lifetime_in_milliseconds);
    186186            document.cookie = cookie_name + "=" + cookie_value + ";expires=" + d.toUTCString() + ";path=" + cookie_path + ";domain=" + cookie_domain + cookie_secure + ";SameSite=" + cookie_samesite;
     187        },
     188        get_cookie_domain: function (hostname) {
     189            var publicSuffixes = ['co.uk', 'com.au', 'org.uk'];
     190       
     191            var parts = hostname.split('.');
     192       
     193            for (let i = 0; i < publicSuffixes.length; i++) {
     194                var suffix = publicSuffixes[i];
     195                if (hostname.endsWith(suffix)) {
     196                    var suffixParts = suffix.split('.').length;
     197                    return '.' + parts.slice(-suffixParts - 1).join('.');
     198                }
     199            }
     200       
     201            return '.' + parts.slice(-2).join('.');
    187202        },
    188203        get_url_parameter_value: function (url_parameter_name) {
     
    379394                    window.metrion.configuration.cookie_expiration_milliseconds,
    380395                    "/",
    381                     window.metrion.configuration.cookie_domain
     396                    window.metrion.helpers.get_cookie_domain(window.location.hostname)
    382397                );
    383398            }
     
    442457                    window.metrion.configuration.cookie_expiration_milliseconds,
    443458                    "/",
    444                     window.metrion.configuration.cookie_domain
     459                    window.metrion.helpers.get_cookie_domain(window.location.hostname)
    445460                );
    446461            }
     
    757772                    window.metrion.configuration.cookie_expiration_milliseconds,
    758773                    "/",
    759                     window.metrion.configuration.cookie_domain
     774                    window.metrion.helpers.get_cookie_domain(window.location.hostname)
    760775                );
    761776            } else {
  • metrion/trunk/js/detect/detect.js

    r3342931 r3361602  
    132132                    window.metrion.configuration.cookie_expiration_milliseconds,
    133133                    "/",
    134                     window.metrion.configuration.cookie_domain
     134                    window.metrion.helpers.get_cookie_domain(window.location.hostname)
    135135                );
    136136
  • metrion/trunk/main.php

    r3342931 r3361602  
    33* Plugin Name:          Metrion
    44* Description:          Skip manual implementation, sync data directly tailored to destinations like Google Ads and Meta Ads.
    5 * Version:              1.5.5
     5* Version:              1.5.6
    66* Author:               Metrion
    77* Author URI:           https://getmetrion.com
     
    1212if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
    1313
    14 define('GLOBAL_METRION_PLUGIN_VERSION', '1.5.5');
     14define('GLOBAL_METRION_PLUGIN_VERSION', '1.5.6');
    1515
    1616// Register plugin settings for webhook URL, API path, debug mode, cookie name, and expiration time
     
    7777    // Google Ads destination options
    7878    add_option('metrion_google_analytics_enable_tracking', 0);                              // Default setting for enabling Google Analytics
    79     add_option('metrion_google_analytics_measuremet_id', '');                               // Open field for the measurement ID
    80     add_option('metrion_google_analytcs_api_key', '');                                      // Open field for the API key
     79    add_option('metrion_google_analytics_measurement_id', '');                               // Open field for the measurement ID
     80    add_option('metrion_google_analytics_api_key', '');                                      // Open field for the API key
    8181
    8282    // Register the Metrion settings
     
    146146    // Register the Google Analytics destination settings
    147147    register_setting('metrion_options_group', 'metrion_google_analytics_enable_tracking', ['sanitize_callback' => 'rest_sanitize_boolean']);
    148     register_setting('metrion_options_group', 'metrion_google_analytics_measuremet_id', ['sanitize_callback' => 'sanitize_text_field']);
    149     register_setting('metrion_options_group', 'metrion_google_analytcs_api_key', ['sanitize_callback' => 'sanitize_text_field']);
     148    register_setting('metrion_options_group', 'metrion_google_analytics_measurement_id', ['sanitize_callback' => 'sanitize_text_field']);
     149    register_setting('metrion_options_group', 'metrion_google_analytics_api_key', ['sanitize_callback' => 'sanitize_text_field']);
    150150}
    151151
  • metrion/trunk/readme.txt

    r3342931 r3361602  
    44Requires at least: 3.8
    55Tested up to: 6.8
    6 Stable tag: 1.5.5
     6Stable tag: 1.5.6
    77Requires PHP: 7.1
    88License: GPLv3 or later
     
    8888== Changelog ==
    8989
     90= 1.5.6 =
     91- Fixed a case where cookies were set incorrectly on ccTLDs
     92
    9093= 1.5.5 =
    9194- Google Analytics beta
    9295- Improve advertising click-id retention
     96- Generate bundles after plugin update and on schedule
    9397- Labeled non-interaction events for GA4
    9498
  • metrion/trunk/views/settings.php

    r3342931 r3361602  
    484484                </tr>
    485485                <tr valign="top">
    486                     <th scope="row"><label for="metrion_google_analytcs_api_key">Google Analytics API key</label></th>
    487                     <td>
    488                         <input type="text" id="metrion_google_analytcs_api_key" name="metrion_google_analytcs_api_key"
    489                             value="<?php echo esc_attr(get_option('metrion_google_analytcs_api_key', '')); ?>"  />
     486                    <th scope="row"><label for="metrion_google_analytics_api_key">Google Analytics API key</label></th>
     487                    <td>
     488                        <input type="text" id="metrion_google_analytics_api_key" name="metrion_google_analytics_api_key"
     489                            value="<?php echo esc_attr(get_option('metrion_google_analytics_api_key', '')); ?>"  />
    490490                    </td>
    491491                </tr>
Note: See TracChangeset for help on using the changeset viewer.