window.dataLayerPYS = window.dataLayerPYS || [];
console.log('PixelYourSite PRO version 12.6.2');
var breeze_prefetch = {"local_url":"https://www.canadiansavers.ca","ignore_remote_prefetch":"1","ignore_list":["/how-to-earn-points/","/login/","/profile/","/forgot-password/","/profile/my-brands/","/profile/my-categories/","/profile/my-stores/","/sign-up/","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
https://www.canadiansavers.ca/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
var pysTikTokRest = {"restApiUrl":"https://www.canadiansavers.ca/wp-json/pys-tiktok/v1/event","debug":""};
var pysFacebookRest = {"restApiUrl":"https://www.canadiansavers.ca/wp-json/pys-facebook/v1/event","debug":""};
//# sourceURL=jquery-core-js-extra
(function(w,d,e,u,f,l,n){w[f]=w[f]||function(){(w[f].q=w[f].q||[])
.push(arguments);},l=d.createElement(e),l.async=1,l.src=u,
n=d.getElementsByTagName(e)[0],n.parentNode.insertBefore(l,n);})
(window,document,'script','https://assets.mailerlite.com/js/universal.js','ml');
ml('account', '230245');
ml('enablePopups', true);
jQuery(document).ready(function($) {
// Notification function
function showNotification(message) {
const container = $('.tfs-notification-container');
const notification = $(`
<div class="tfs-notification">
<span class="tfs-notification-icon">
<svg viewBox="0 0 24 24" width="16" height="16">
<polyline points="20 6 9 17 4 12" fill="none" stroke="white" stroke-width="2"/>
</svg>
</span>
<span class="tfs-notification-message">${message}</span>
</div>
`);
container.append(notification);
notification[0].offsetHeight;
setTimeout(() => {
notification.addClass('show');
}, 10);
setTimeout(() => {
notification.removeClass('show');
setTimeout(() => {
notification.remove();
}, 300);
}, 3000);
}
// Handle Select All button
$('.select-all-button').on('click', function() {
const $form = $(this).closest('form');
$form.find('input[type="checkbox"]').prop('checked', true);
});
// Handle Select None button
$('.select-none-button').on('click', function() {
const $form = $(this).closest('form');
$form.find('input[type="checkbox"]').prop('checked', false);
});
// Handle search functionality
let searchTimeout;
$('.taxonomy-search-input').on('input', function() {
const $input = $(this);
const $container = $input.closest('.taxonomy-follow-list');
clearTimeout(searchTimeout);
searchTimeout = setTimeout(function() {
const searchTerm = $input.val().toLowerCase();
const $items = $container.find('.taxonomy-item');
const $noTerms = $container.find('.no-terms-message');
let visibleItems = 0;
$items.each(function() {
const termName = $(this).data('term-name');
if (termName.includes(searchTerm)) {
$(this).show();
visibleItems++;
} else {
$(this).hide();
}
});
if (visibleItems === 0) {
$noTerms.show();
} else {
$noTerms.hide();
}
}, 300);
});
// Handle accordion toggles
$('.accordion-toggle').on('click', function(e) {
e.preventDefault();
const $button = $(this);
const $content = $button.closest('.followed-item-header').next('.accordion-content');
const isExpanded = $button.attr('aria-expanded') === 'true';
$button.attr('aria-expanded', !isExpanded);
if (!isExpanded) {
$content.prop('hidden', false);
const $item = $button.closest('.followed-item');
const termId = $item.data('term-id');
const taxonomy = $item.data('taxonomy');
$.ajax({
url: 'https://www.canadiansavers.ca/wp-admin/admin-ajax.php',
type: 'POST',
data: {
action: 'update_last_visit',
term_id: termId,
taxonomy: taxonomy,
nonce: 'ae52015278'
}
});
} else {
$content.prop('hidden', true);
}
});
// Form submission handler: regular POST submit, no AJAX
$('.taxonomy-follow-form').off('submit').on('submit', function() {
const $form = $(this);
const $button = $form.find('.follow-taxonomy-button');
$button.prop('disabled', true).text('Updating...');
});
const $stickyCta = $('.tfs-sticky-cta');
let activeStickyButton = null;
function isMobileTfs() {
return window.matchMedia('(max-width: 767px)').matches;
}
function getActiveLauncher() {
const $launchers = $('.tfs-add-button-wrapper:visible');
if (!$launchers.length) {
return null;
}
let best = null;
let bestTop = Number.POSITIVE_INFINITY;
const scrollTop = window.pageYOffset || document.documentElement.scrollTop || 0;
$launchers.each(function() {
const rect = this.getBoundingClientRect();
const absoluteTop = rect.top + scrollTop;
if (absoluteTop < bestTop) {
bestTop = absoluteTop;
best = this;
}
});
return best;
}
function setStickyButtonFromLauncher(launcher) {
if (!launcher || !$stickyCta.length) {
return;
}
const button = launcher.querySelector('.tfs-open-modal-button');
if (!button) {
return;
}
const modalTarget = button.getAttribute('data-tfs-modal-target') || '';
if (activeStickyButton === modalTarget && $stickyCta.children().length) {
return;
}
activeStickyButton = modalTarget;
const clone = button.cloneNode(true);
clone.classList.add('tfs-sticky-open-modal-button');
$stickyCta.empty().append(clone);
}
function updateStickyCta() {
if (!$stickyCta.length) {
return;
}
if (!isMobileTfs()) {
$stickyCta.removeClass('is-visible').attr('aria-hidden', 'true').empty();
$('body').removeClass('has-tfs-sticky-cta');
activeStickyButton = null;
return;
}
if ($('.tfs-modal-overlay.is-open').length) {
$stickyCta.removeClass('is-visible').attr('aria-hidden', 'true');
$('body').removeClass('has-tfs-sticky-cta');
return;
}
const launcher = getActiveLauncher();
if (!launcher) {
$stickyCta.removeClass('is-visible').attr('aria-hidden', 'true').empty();
$('body').removeClass('has-tfs-sticky-cta');
activeStickyButton = null;
return;
}
setStickyButtonFromLauncher(launcher);
const rect = launcher.getBoundingClientRect();
const shouldShow = rect.bottom < 0 || rect.top > (window.innerHeight - 80);
$stickyCta.toggleClass('is-visible', shouldShow)
.attr('aria-hidden', shouldShow ? 'false' : 'true');
$('body').toggleClass('has-tfs-sticky-cta', shouldShow);
}
$(window).on('scroll resize orientationchange load', updateStickyCta);
$(document).on('click', '.tfs-sticky-cta .tfs-open-modal-button', function() {
setTimeout(updateStickyCta, 20);
});
setTimeout(updateStickyCta, 50);
// Individual follow button handler
$('.tfs-follow-button').on('click', function(e) {
if (!$(this).hasClass('follow-taxonomy-button')) {
e.preventDefault();
var $button = $(this);
var termId = $button.data('term-id');
var taxonomy = $button.data('taxonomy');
var action = $button.data('action');
$.ajax({
url: 'https://www.canadiansavers.ca/wp-admin/admin-ajax.php',
type: 'POST',
data: {
action: action,
term_id: termId,
taxonomy: taxonomy,
nonce: 'ae52015278'
},
beforeSend: function() {
$button.prop('disabled', true).addClass('loading');
},
success: function(response) {
if (response.success) {
if (response.data.is_following) {
$button.addClass('is-following')
.data('action', 'unfollow_term');
showNotification('Successfully followed!');
} else {
$button.removeClass('is-following')
.data('action', 'follow_term');
showNotification('Successfully unfollowed');
}
// Reload page after a short delay
setTimeout(function() {
window.location.reload();
}, 1500);
} else {
alert('Action failed. Please try again.');
}
},
error: function() {
alert('An error occurred. Please try again.');
},
complete: function() {
$button.prop('disabled', false).removeClass('loading');
}
});
}
});
});
document.documentElement.className += " js";
(function(g,o){g[o]=g[o]||function(){(g[o]['q']=g[o]['q']||[]).push(
arguments)},g[o]['t']=1*new Date})(window,'_googCsa');
(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();
window.pushMST_config={"vapidPK":"BPXoRQolBdaYgbUv5xasrzRIkdVBsxyQ5qCGGAJgqiEAYVeWlVWos21eT1pHT1Ve4H0LoT2UlGbN5N78rDeHAz4","enableOverlay":true,"swPath":"/sw.js","i18n":{}};
var pushmasterTag = document.createElement('script');
pushmasterTag.src = "https://cdn.pushmaster-cdn.xyz/scripts/publishers/648adb4fc6ef390008e58b83/SDK.js";
pushmasterTag.setAttribute('defer','');
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(pushmasterTag, firstScriptTag);
(function(){
var loc = window.location.href;
var dd = document.createElement('script');
dd.type = 'text/javascript'; dd.src = '//static.digidip.net/canadiansavers.js?loc=' + loc;
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(dd, s);
})();
Chrome Extension Privacy Policy
Effective date: July 23, 2026
The Canadian Savers browser extension helps users discover coupons, free samples, contests and other savings opportunities available through CanadianSavers.ca.
Data the extension accesses
When a user opens the extension, it may read the domain name of the active browser tab to identify the retailer being visited. This happens only after the user clicks the extension and is used only to create a relevant search term.
The extension stores saved offers and the identifier of the most recently viewed offer in Chrome’s local extension storage. This information remains on the user’s device.
Data the extension does not collect
The extension does not collect or transmit browsing history, page contents, personal information, authentication information, financial information, location, or user communications. The active retailer domain is not sent to CanadianSavers.ca as browsing-history data. Only a retailer search term may be used to request matching public offers from CanadianSavers.ca after the user opens the extension or chooses “Find deals.”
Network requests
The extension requests public offer content from CanadianSavers.ca. When a user chooses an offer, the linked page opens on CanadianSavers.ca and includes campaign parameters identifying the Chrome extension as the referral source.
Data sharing and sale
The extension does not sell personal data and does not share personal data with third parties.
Data retention and deletion
Saved offers are retained locally until the user removes them, clears extension storage, or uninstalls the extension. Uninstalling the extension removes its locally stored data according to Chrome’s standard behaviour.
Changes
This policy may be updated when the extension’s functionality or legal requirements change. Material changes will be reflected on this page with a revised effective date.
For questions about this privacy policy, use the contact page at:https://www.canadiansavers.ca/contact-us/
(function() {
function getUTM(param) {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get(param) || '';
}
// Hook global gtag
if (typeof gtag !== 'undefined') {
const originalGtag = gtag;
window.gtag = function() {
// arguments = ['event', 'AdSense', {...}]
if (arguments[0] === 'event' && arguments[1] === 'AdSense') {
let params = arguments[2] || {};
// Override avec les vraies valeurs URL
params.utm_campaign = getUTM('utm_campaign');
params.utm_source = getUTM('utm_source');
params.utm_medium = getUTM('utm_medium');
params.utm_content = getUTM('utm_content');
arguments[2] = params;
}
return originalGtag.apply(this, arguments);
};
}
})();
(function() {
if (window.innerWidth > 767) return;
let shown = false;
window.addEventListener('scroll', function() {
if (shown) return;
document.querySelectorAll('.sidebar-widget-mobile-delay').forEach(el => {
el.style.display = '';
});
shown = true;
}, { passive: true });
})();
https://www.canadiansavers.ca/wp-content/plugins/pixelyoursite-pro/dist/scripts/js.cookie-2.1.3.min.js
https://www.canadiansavers.ca/wp-content/plugins/pixelyoursite-pro/dist/scripts/sha256.js
https://www.canadiansavers.ca/wp-content/plugins/pixelyoursite-pro/dist/scripts/tld.min.js
https://www.canadiansavers.ca/wp-content/plugins/pixelyoursite-pro/dist/scripts/public.js
https://www.canadiansavers.ca/wp-content/themes/rehub-theme/js/inview.js
https://www.canadiansavers.ca/wp-content/themes/rehub-theme/js/pgwmodal.js
https://www.canadiansavers.ca/wp-content/themes/rehub-theme/js/unveil.js
https://www.canadiansavers.ca/wp-content/themes/rehub-theme/js/hoverintent.js
https://www.canadiansavers.ca/wp-content/themes/rehub-theme/js/countdown.js
https://www.canadiansavers.ca/wp-content/themes/rehub-theme/js/custom.js
jQuery(document).ready(function($) {
var retina = window.devicePixelRatio > 1 ? true : false;
if(retina) {
jQuery(".logo_image img").attr("src", "https://www.canadiansavers.ca/wp-content/uploads/2025/08/canadian-savers-logo.webp");
}
});
//# sourceURL=rehub-js-after
https://www.canadiansavers.ca/wp-content/themes/rehub-theme/js/userlogin.js