var gtm4wp_datalayer_name = "dataLayer";
var dataLayer = dataLayer || [];
const gtm4wp_use_sku_instead = 0;
const gtm4wp_currency = 'GBP';
const gtm4wp_product_per_impression = 10;
const gtm4wp_clear_ecommerce = false;
const gtm4wp_datalayer_max_timeout = 2000;
var elementskit = {
resturl: 'https://discountcctvsupplier.co.uk/wp-json/elementskit/v1/',
}
https://discountcctvsupplier.co.uk/wp-includes/js/jquery/jquery.min.js
https://discountcctvsupplier.co.uk/wp-includes/js/jquery/jquery-migrate.min.js
var breeze_prefetch = {"local_url":"https://discountcctvsupplier.co.uk","ignore_remote_prefetch":"1","ignore_list":["/?wc-api=wc_facebook_get_feed_data&secret=697cc5a9ab0fb1e0d243fe98264ced80","/cart-2/","/checkout/","/my-account/","wp-admin","wp-login.php"]};
//# sourceURL=breeze-prefetch-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js
var tt4b_script_vars = {"pixel_code":"D6JC3HJC77UCBL6SE0N0","currency":"GBP","country":"","advanced_matching":""};
//# sourceURL=tt4b_ajax_script-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/tiktok-for-business/admin/js/ajaxSnippet.js
var trustpilot_settings = {"key":"Qg0H72wIu14emb5P","TrustpilotScriptUrl":"https://invitejs.trustpilot.com/tp.min.js","IntegrationAppUrl":"//ecommscript-integrationapp.trustpilot.com","PreviewScriptUrl":"//ecommplugins-scripts.trustpilot.com/v2.1/js/preview.min.js","PreviewCssUrl":"//ecommplugins-scripts.trustpilot.com/v2.1/css/preview.min.css","PreviewWPCssUrl":"//ecommplugins-scripts.trustpilot.com/v2.1/css/preview_wp.css","WidgetScriptUrl":"//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js"};
//# sourceURL=tp-js-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/trustpilot-reviews/review/assets/js/headerScript.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/zoom/jquery.zoom.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/flexslider/jquery.flexslider.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/photoswipe/photoswipe.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/photoswipe/photoswipe-ui-default.min.js
var wc_single_product_params = {"i18n_required_rating_text":"Please select a rating","i18n_rating_options":["1 of 5 stars","2 of 5 stars","3 of 5 stars","4 of 5 stars","5 of 5 stars"],"i18n_product_gallery_trigger_text":"View full-screen image gallery","review_rating_required":"yes","flexslider":{"rtl":false,"animation":"slide","smoothHeight":true,"directionNav":false,"controlNav":"thumbnails","slideshow":false,"animationSpeed":500,"animationLoop":false,"allowOneSlide":false},"zoom_enabled":"1","zoom_options":[],"photoswipe_enabled":"1","photoswipe_options":{"shareEl":false,"closeOnScroll":false,"history":false,"hideAnimationDuration":0,"showAnimationDuration":0},"flexslider_enabled":"1"};
//# sourceURL=wc-single-product-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/frontend/single-product.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js
var woocommerce_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_password_show":"Show password","i18n_password_hide":"Hide password"};
//# sourceURL=woocommerce-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/wt-woocommerce-related-products/public/js/custom-related-products-public.js
https://discountcctvsupplier.co.uk/wp-content/plugins/wt-woocommerce-related-products/public/js/wt_owl_carousel.js
var dataLayer_content = {"pagePostType":"product","pagePostType2":"single-product","pagePostAuthor":"aaaadmin","productRatingCounts":[],"productAverageRating":0,"productReviewCount":0,"productType":"simple","productIsVariable":0};
dataLayer.push( dataLayer_content );
window.__wc_fb_page_generated = 1785595196;
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
window.FacebookSignals = window.FacebookSignals || {
_held: false,
_releasing: false,
_pixelInitialized: false,
_pixelId: null,
_pixelUserInfo: {},
_pixelOptions: {},
_pendingPixelEvents: [],
_queue: [],
_config: {},
_attribution: {},
_seenEventIds: {},
_fbclid: (function() {
try {
var m = window.location.search.match(/[?&]fbclid=([^&]*)/);
return m ? decodeURIComponent(m[1]) : null;
} catch(e) { return null; }
})(),init: function(config) {
config = config || {};
this._config = config;
this._attribution = config.attribution || {};var cookieState = this._getCookie('wc_facebook_signals_state');
this._held = cookieState ? cookieState === 'held' : !!config.held;this._fbclid = this._fbclid || null;if (typeof fbq === 'function') {
fbq('consent', this._held ? 'revoke' : 'grant');
}try {
var raw = window.sessionStorage.getItem('wc_facebook_signals_seen_event_ids');
this._seenEventIds = raw ? JSON.parse(raw) : {};
} catch (e) {
this._seenEventIds = this._seenEventIds || {};
}
},initPixel: function(pixelId, userInfo, options) {
this._pixelId = pixelId;
this._pixelUserInfo = userInfo && typeof userInfo === 'object' && !Array.isArray(userInfo) ? userInfo : {};
this._pixelOptions = options || {};
if (!this._held) {
this._runPixelInit();
}
},_runPixelInit: function() {
if (this._pixelInitialized || !this._pixelId || typeof fbq !== 'function') return;
fbq('init', this._pixelId, this._pixelUserInfo, this._pixelOptions);
this._pixelInitialized = true;
this._flushPendingPixelEvents();
},_flushPendingPixelEvents: function() {
var pending = this._pendingPixelEvents;
this._pendingPixelEvents = [];
for (var i = 0; i < pending.length; i++) {
var ev = pending[i];
this._firePixelEvent(ev.name, ev.params, ev.method, ev.eventId);
}
},_fireOrQueuePixelEvent: function(name, params, method, eventId) {
if (!this._pixelInitialized) {
this._pendingPixelEvents.push({
name: name, params: params || {}, method: method || 'track', eventId: eventId || null
});
return;
}
this._firePixelEvent(name, params || {}, method || 'track', eventId || null);
},_firePixelEvent: function(name, params, method, eventId) {
method = method || 'track';
if (eventId) {
fbq(method, name, params || {}, { eventID: eventId });
} else {
fbq(method, name, params || {});
}
},queueEvent: function(eventData) {
if (!eventData || !eventData.event_name) return;var originalId = eventData.event_id || null;
if (originalId && this._seenEventIds[originalId]) return;if (!this._held) {
this._fireOrQueuePixelEvent(eventData.event_name, eventData.custom_data || {}, eventData.method || 'track', originalId);
return;
}eventData = this._cloneEventData(eventData);
eventData.event_id = this._generateEventId();
eventData.event_time = eventData.event_time || Math.floor(Date.now() / 1000);
this._queue.push(eventData);var idToMark = originalId || eventData.event_id;
if (idToMark) {
this._seenEventIds[idToMark] = 1;
try {
window.sessionStorage.setItem(
'wc_facebook_signals_seen_event_ids',
JSON.stringify(this._seenEventIds)
);
} catch (e) {}
}
},trackEvent: function(name, params, userData, method, eventId) {
method = method || 'track';
eventId = eventId || (params && params.eventID) || null;if (this._held) {
this.queueEvent({
event_name: name,
custom_data: params || {},
event_id: eventId,
event_time: Math.floor(Date.now() / 1000),
method: method
});
} else {
this._fireOrQueuePixelEvent(name, params || {}, method, eventId);
}
},release: function() {
var self = this;
if (!self._held || self._releasing || !self._config.ajaxUrl) {
return Promise.resolve({ success: true, data: { sent_count: 0 } });
}self._releasing = true;
var attribution = self._collectAttribution();var payload = JSON.stringify({
events: self._queue,
attribution: {
fbp: attribution.fbp || null,
fbc: attribution.fbc || null
},
fbclid: self._fbclid || null
});var url = self._config.ajaxUrl +
(self._config.ajaxUrl.indexOf('?') === -1 ? '?' : '&') +
'action=' + encodeURIComponent(self._config.action);return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
try {
var resp = JSON.parse(xhr.responseText);
self._handleReleaseResponse(resp.data || {}, attribution);
resolve(resp);
} catch(e) { self._releasing = false; reject(e); }
} else {
self._releasing = false;
reject(new Error('Signal release AJAX failed: ' + xhr.status));
}
};
xhr.onerror = function() { self._releasing = false; reject(new Error('Network error')); };
xhr.send(payload);
});
},_handleReleaseResponse: function(data, attribution) {
this._syncAttributionCookies(data || {}, attribution);// Override cached user_info with fresh data from the release response.
if (data.user_info && typeof data.user_info === 'object' && !Array.isArray(data.user_info)) {
this._pixelUserInfo = data.user_info;
}this._held = false;
this._releasing = false;fbq('consent', 'grant');
this._runPixelInit();var queue = this._queue;
for (var i = 0; i < queue.length; i++) {
var ev = queue[i];
this._fireOrQueuePixelEvent(ev.event_name, ev.custom_data || {}, ev.method || 'track', ev.event_id || null);
}this._queue = [];
},_collectAttribution: function() {
var clientParams = {};
if (typeof clientParamBuilder !== 'undefined') {
try {
clientParams = clientParamBuilder.processAndCollectParams(this._getAttributionUrl()) || {};
} catch (e) {}
}var fbp = this._getCookie('_fbp') || clientParams._fbp || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbp() : null);
var fbc = this._getCookie('_fbc') || clientParams._fbc || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbc() : null);if (!fbc && this._fbclid) {
fbc = 'fb.1.' + Date.now() + '.' + this._fbclid;
}return { fbp: fbp || null, fbc: fbc || null };
},_syncAttributionCookies: function(data, attribution) {
var fbp = data.fbp || (attribution && attribution.fbp) || null;
var fbc = data.fbc || (attribution && attribution.fbc) || null;if (fbp) {
this._setAttributionCookie('_fbp', fbp, data.fbp_domain || null);
}
if (fbc) {
this._setAttributionCookie('_fbc', fbc, data.fbc_domain || null);
}
},_setAttributionCookie: function(name, value, domain) {
if (!value) return;
var domainAttr = domain ? ';domain=' + domain : '';
document.cookie = name + '=' + encodeURIComponent(value) + ';path=/;max-age=7776000' + domainAttr + ';SameSite=Lax';
},_getCookie: function(name) {
var match = document.cookie.match(new RegExp('(?:^|;\\s*)' + name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '=([^;]*)'));
if (!match) return null;
try { return decodeURIComponent(match[1]); } catch(e) { return null; }
},_cloneEventData: function(eventData) {
var clone = {};
for (var key in eventData) {
if (Object.prototype.hasOwnProperty.call(eventData, key)) {
clone[key] = eventData[key];
}
}
return clone;
},_generateEventId: function() {
if (window.crypto && typeof window.crypto.randomUUID === 'function') {
return window.crypto.randomUUID();
}
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0;
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
},_getAttributionUrl: function() {
if (!this._fbclid) return window.location.href;
try {
var url = new URL(window.location.href);
if (!url.searchParams.get('fbclid')) {
url.searchParams.set('fbclid', this._fbclid);
}
return url.toString();
} catch (e) {
return window.location.href;
}
}
};
FacebookSignals.init({
held: false,
ajaxUrl: "https:\/\/discountcctvsupplier.co.uk\/wp-admin\/admin-ajax.php",
action: 'facebook_release_signals',
pixelId: "1071403255027834",
attribution: {}
});
FacebookSignals.initPixel(
"1071403255027834",
{},
{"agent":"woocommerce_0-10.9.4-3.7.6"} );document.addEventListener( 'DOMContentLoaded', function() {
document.body.insertAdjacentHTML( 'beforeend', '<div class=\"wc-facebook-pixel-event-placeholder\"></div>' );
}, false );
Skip to content Home / UNIVIEW / UNIVIEW IP CAMERAS / Bullet Uniview IP Cameras / Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B 4MP TriGuard 3.0 Bullet IP Camera – Black/White
Sale! Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B 4MP TriGuard 3.0 Bullet IP Camera – Black/White
Features:
☑ Brand: Uniview ☑ Model: Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B ☑ Technology: TriGuard 3.0 ☑ MP: 4MP ☑ Camera Type: Bullet IP Camera ☑ High-Quality 4MP Imaging with 1/1.8″ CMOS Sensor ☑ ColorHunter with Wise-ISP for 24/7 Full-Colour Imaging ☑ Intelligent AI Human, Vehicle & Non-Motor Vehicle Detection ☑ Ultra 265 / H.265 / H.264 / MJPEG Video Compression ☑ Built-in Dual Microphones & Speaker
Description Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B and UV-IPC2B14SE-ADF28KMC-WP-I1-W 4MP TriGuard 3.0 Bullet IP Camera – Black/White The Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B is a professional 4MP network bullet camera featuring the latest TriGuard 3.0 technology, ColorHunter full-colour imaging, Wise-ISP image enhancement and intelligent AI analytics. Designed for commercial and residential surveillance, it delivers exceptional image quality day and night while providing proactive security with active deterrence features.
Its advanced AI algorithms accurately distinguish humans and vehicles, reducing false alarms caused by animals, rain, leaves and other environmental factors. Built-in microphones and speaker enable audio monitoring and two-way communication, while dual-light technology ensures clear colour images even in challenging lighting conditions.
Key Features ✔ 4MP (2688 × 1520) Ultra HD Resolution
✔ TriGuard 3.0 Active Deterrence
✔ ColorHunter Full Colour Imaging
✔ Wise-ISP AI Image Enhancement
✔ 2.8mm Fixed Lens
✔ F1.0 Large Aperture
✔ Smart IR up to 40m
✔ Warm White Light up to 40m
✔ Dual Light Technology
✔ Built-in Dual Microphones
✔ Built-in Speaker
✔ Two-Way Audio
✔ Human & Vehicle Detection
✔ Cross Line & Intrusion Detection
✔ Ultra265 / H.265 / H.264
✔ MicroSD Card up to 512GB
✔ PoE IEEE802.3af
✔ ONVIF Compatible
✔ IP67 Weatherproof
✔ IK10 Vandal Resistant
TriGuard 3.0 Technology TriGuard 3.0 combines AI analytics, active deterrence, intelligent lighting and audio warning into one powerful surveillance solution. When a verified intrusion is detected, the camera can activate white LEDs and audio alerts while instantly notifying the recorder or mobile application.
ColorHunter with Wise-ISP ColorHunter technology together with Wise-ISP delivers bright, vivid full-colour images throughout the night. The F1.0 lens allows significantly more light to reach the sensor, while Wise-ISP intelligently optimises exposure, colour reproduction and noise reduction for exceptional image clarity.
AI Features AI Function Description Human Detection Accurate human identification with reduced false alarms. Vehicle Detection Recognises cars and other vehicles separately. Cross Line Detection Triggers alerts when a protected line is crossed. Intrusion Detection Detects unauthorised entry into defined areas. Enter / Leave Area Monitors entry and exit from virtual zones. False Alarm Filtering Filters movement from animals, rain and foliage.
Video Specifications Specification Value Image Sensor 1/1.8" Progressive CMOS Maximum Resolution 2688 × 1520 (4MP) Lens 2.8mm Fixed Aperture F1.0 Frame Rate Up to 30fps Compression Ultra265 / H.265 / H.264 / MJPEG WDR 130dB True WDR DNR 2D / 3D DNR
Image Features Smart IR, Warm Light, Day/Night ICR Filter, BLC, HLC, Defog, ROI, Corridor Mode, Mirror, Privacy Masking, Digital Noise Reduction and Wide Dynamic Range combine to deliver professional-quality surveillance images.
Audio Features Feature Support Dual Microphones Yes Speaker Built-in Two-Way Audio Supported Audio Compression G.711U / G.711A / AAC
Network & Storage Feature Details Ethernet 10/100 Mbps RJ45 Protocols IPv4, IPv6, HTTP, HTTPS, RTSP, SMTP, FTP, NTP, DDNS and more ONVIF Profile S, G, T and M Storage MicroSD up to 512GB, NAS and ANR
Interfaces RJ45 Network Port, Built-in Microphones, Built-in Speaker, Reset Button, MicroSD Card Slot, 12V DC Input and PoE.
Environmental Protection Feature Specification Weather Rating IP67 Vandal Rating IK10 Operating Temperature -40°C to +60°C Power 12V DC / PoE (IEEE802.3af)
Applications Perfect for homes, offices, warehouses, schools, retail shops, factories, industrial facilities, car parks, apartment buildings and commercial premises.
Package Contents 1 × Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B Camera Mounting Kit Quick Installation Guide
Why Choose This Camera? The Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B combines AI-powered detection, full-colour night vision, active deterrence, professional imaging, robust weather protection and efficient compression in one enterprise-grade surveillance solution. It is an excellent choice for installers and end users seeking dependable security with outstanding performance.
Download the Official full specs sheet View the full manufacturer’s technical specifications for the Download Official Datasheet
Delivery & Returns At Discount CCTV Supplier, we specialise in delivering high-quality, cost-effective Security systems tailored to meet the unique security needs of our clients. With a proven track record and a commitment to innovation, we believe our offerings align seamlessly with the mission and values of Discount CCTV Supplier.Diverse Product Range Our extensive product portfolio ensures that Discount CCTV Supplier can cater to a broad spectrum of customer requirements, from basic surveillance needs to more advanced security solutions. Please note that you have the option to return new, unused items within 30 days of delivery for a refund. However, please be aware that a postage cost of £8.50 plus VAT for Maniland shipment and £15 Plus VAT from shipments to Northern Ireland. Will be deducted from the refunded amount.
Prompt service Very helpful
Quick and reliable Quick and reliable
very happy with the purchase very good services
Helpful 5 star service Helpful 5 star service
⭐️⭐️⭐️⭐️⭐️ ⭐️⭐️⭐️⭐️⭐️
Excellent service from start to finish! The CCTV system was installed quickly and works perfectly. Director Thulash was professional, approachable, and made sure everything was tailored to our needs. Highly recommend this company for reliable security solutions. Have used the services for all our homes as we are a care home company.
Always a pleasure Always a pleasure
There are no products in the cart!
0
// Do not change this comment line otherwise Speed Optimizer won't be able to detect this script(function () {
function sendRequest(url, body) {
if(!window.fetch) {
const xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send(JSON.stringify(body))
return
}const request = fetch(url, {
method: 'POST',
body: JSON.stringify(body),
keepalive: true,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
});
}
const calculateParentDistance = (child, parent) => {
let count = 0;
let currentElement = child;// Traverse up the DOM tree until we reach parent or the top of the DOM
while (currentElement && currentElement !== parent) {
currentElement = currentElement.parentNode;
count++;
}// If parent was not found in the hierarchy, return -1
if (!currentElement) {
return -1; // Indicates parent is not an ancestor of element
}return count; // Number of layers between element and parent
}
const isMatchingClass = (linkRule, href, classes, ids) => {
return classes.includes(linkRule.value)
}
const isMatchingId = (linkRule, href, classes, ids) => {
return ids.includes(linkRule.value)
}
const isMatchingDomain = (linkRule, href, classes, ids) => {
if(!URL.canParse(href)) {
return false
}const url = new URL(href)
const host = url.host
const hostsToMatch = [host]if(host.startsWith('www.')) {
hostsToMatch.push(host.substring(4))
} else {
hostsToMatch.push('www.' + host)
}return hostsToMatch.includes(linkRule.value)
}
const isMatchingExtension = (linkRule, href, classes, ids) => {
if(!URL.canParse(href)) {
return false
}const url = new URL(href)return url.pathname.endsWith('.' + linkRule.value)
}
const isMatchingSubdirectory = (linkRule, href, classes, ids) => {
if(!URL.canParse(href)) {
return false
}const url = new URL(href)return url.pathname.startsWith('/' + linkRule.value + '/')
}
const isMatchingProtocol = (linkRule, href, classes, ids) => {
if(!URL.canParse(href)) {
return false
}const url = new URL(href)return url.protocol === linkRule.value + ':'
}
const isMatchingExternal = (linkRule, href, classes, ids) => {
if(!URL.canParse(href) || !URL.canParse(document.location.href)) {
return false
}const matchingProtocols = ['http:', 'https:']
const siteUrl = new URL(document.location.href)
const linkUrl = new URL(href)// Links to subdomains will appear to be external matches according to JavaScript,
// but the PHP rules will filter those events out.
return matchingProtocols.includes(linkUrl.protocol) && siteUrl.host !== linkUrl.host
}
const isMatch = (linkRule, href, classes, ids) => {
switch (linkRule.type) {
case 'class':
return isMatchingClass(linkRule, href, classes, ids)
case 'id':
return isMatchingId(linkRule, href, classes, ids)
case 'domain':
return isMatchingDomain(linkRule, href, classes, ids)
case 'extension':
return isMatchingExtension(linkRule, href, classes, ids)
case 'subdirectory':
return isMatchingSubdirectory(linkRule, href, classes, ids)
case 'protocol':
return isMatchingProtocol(linkRule, href, classes, ids)
case 'external':
return isMatchingExternal(linkRule, href, classes, ids)
default:
return false;
}
}
const track = (element) => {
const href = element.href ?? null
const classes = Array.from(element.classList)
const ids = [element.id]
const linkRules = [{"type":"extension","value":"pdf"},{"type":"extension","value":"zip"},{"type":"protocol","value":"mailto"},{"type":"protocol","value":"tel"}]
if(linkRules.length === 0) {
return
}// For link rules that target an id, we need to allow that id to appear
// in any ancestor up to the 7th ancestor. This loop looks for those matches
// and counts them.
linkRules.forEach((linkRule) => {
if(linkRule.type !== 'id') {
return;
}const matchingAncestor = element.closest('#' + linkRule.value)if(!matchingAncestor || matchingAncestor.matches('html, body')) {
return;
}const depth = calculateParentDistance(element, matchingAncestor)if(depth < 7) {
ids.push(linkRule.value)
}
});// For link rules that target a class, we need to allow that class to appear
// in any ancestor up to the 7th ancestor. This loop looks for those matches
// and counts them.
linkRules.forEach((linkRule) => {
if(linkRule.type !== 'class') {
return;
}const matchingAncestor = element.closest('.' + linkRule.value)if(!matchingAncestor || matchingAncestor.matches('html, body')) {
return;
}const depth = calculateParentDistance(element, matchingAncestor)if(depth < 7) {
classes.push(linkRule.value)
}
});const hasMatch = linkRules.some((linkRule) => {
return isMatch(linkRule, href, classes, ids)
})if(!hasMatch) {
return
}const url = "https://discountcctvsupplier.co.uk/wp-content/plugins/independent-analytics/iawp-click-endpoint.php";
const siteId = "";
const body = {
href: href,
classes: classes.join(' '),
ids: ids.join(' '),
siteId: siteId,
...{"payload":{"resource":"singular","singular_id":23625,"page":1},"signature":"1648675f7c32e0aa9174c76173405adc"} };sendRequest(url, body)
}
let hasSearched = false;
function search() {
if(hasSearched) {
return;
}
hasSearched = true;if (document.hasOwnProperty("visibilityState") && document.visibilityState === "prerender") {
return;
}if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
return;
}
let referrer_url = null;if (typeof document.referrer === 'string' && document.referrer.length > 0) {
referrer_url = document.referrer;
}const params = location.search.slice(1).split('&').reduce((acc, s) => {
const [k, v] = s.split('=');
return Object.assign(acc, {[k]: v});
}, {});const url = "https://discountcctvsupplier.co.uk/wp-json/iawp/search";
const body = {
referrer_url,
utm_source: params.utm_source,
utm_medium: params.utm_medium,
utm_campaign: params.utm_campaign,
utm_term: params.utm_term,
utm_content: params.utm_content,
gclid: params.gclid,
...{"payload":{"resource":"singular","singular_id":23625,"page":1},"signature":"1648675f7c32e0aa9174c76173405adc"} };sendRequest(url, body)
}
document.addEventListener('mousedown', function (event) {
if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
return;
}
const element = event.target.closest('a')if(!element) {
return
}const isPro = false
if(!isPro) {
return
}// Don't track left clicks with this event. The click event is used for that.
if(event.button === 0) {
return
}track(element)
})
document.addEventListener('click', function (event) {
if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
return;
}
const element = event.target.closest('a, button, input[type="submit"], input[type="button"]')if(!element) {
return
}const isPro = false
if(!isPro) {
return
}track(element)
})
document.addEventListener('play', function (event) {
if (navigator.webdriver || /bot|crawler|spider|crawling|semrushbot|chrome-lighthouse/i.test(navigator.userAgent)) {
return;
}
const element = event.target.closest('audio, video')if(!element) {
return
}const isPro = false
if(!isPro) {
return
}track(element)
}, true)
document.addEventListener("DOMContentLoaded", function (e) {
search();
});
document.addEventListener("iawpSearch", function (e) {
search();
});
})();
(function () {
var c = document.body.className;
c = c.replace(/woocommerce-no-js/, 'woocommerce-js');
document.body.className = c;
})();
window['wcStripeSettings'] = JSON.parse( decodeURIComponent( '%7B%22cart%22%3A%7B%22total%22%3A%220.00%22%2C%22subtotal%22%3A%220.00%22%2C%22totalCents%22%3A0%2C%22subtotalCents%22%3A0%2C%22needsPayment%22%3Afalse%2C%22needsShipping%22%3Afalse%2C%22isEmpty%22%3Atrue%2C%22currency%22%3A%22GBP%22%2C%22countryCode%22%3A%22GB%22%2C%22lineItems%22%3A%5B%7B%22label%22%3A%22Tax%22%2C%22amount%22%3A%220.00%22%2C%22amountCents%22%3A0%2C%22type%22%3A%22tax%22%7D%5D%2C%22shippingOptions%22%3A%5B%5D%2C%22selectedShippingMethod%22%3A%22%22%2C%22paymentMethods%22%3A%7B%22stripe_cc%22%3A%7B%22id%22%3A%22stripe_cc%22%2C%22enabled%22%3Atrue%2C%22available%22%3Atrue%7D%2C%22stripe_applepay%22%3A%7B%22id%22%3A%22stripe_applepay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_googlepay%22%3A%7B%22id%22%3A%22stripe_googlepay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_payment_request%22%3A%7B%22id%22%3A%22stripe_payment_request%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_afterpay%22%3A%7B%22id%22%3A%22stripe_afterpay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_affirm%22%3A%7B%22id%22%3A%22stripe_affirm%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_ach%22%3A%7B%22id%22%3A%22stripe_ach%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_ideal%22%3A%7B%22id%22%3A%22stripe_ideal%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_p24%22%3A%7B%22id%22%3A%22stripe_p24%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_klarna%22%3A%7B%22id%22%3A%22stripe_klarna%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_bancontact%22%3A%7B%22id%22%3A%22stripe_bancontact%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_eps%22%3A%7B%22id%22%3A%22stripe_eps%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_multibanco%22%3A%7B%22id%22%3A%22stripe_multibanco%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_sepa%22%3A%7B%22id%22%3A%22stripe_sepa%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_wechat%22%3A%7B%22id%22%3A%22stripe_wechat%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_fpx%22%3A%7B%22id%22%3A%22stripe_fpx%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_becs%22%3A%7B%22id%22%3A%22stripe_becs%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_alipay%22%3A%7B%22id%22%3A%22stripe_alipay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_grabpay%22%3A%7B%22id%22%3A%22stripe_grabpay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_boleto%22%3A%7B%22id%22%3A%22stripe_boleto%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_oxxo%22%3A%7B%22id%22%3A%22stripe_oxxo%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_blik%22%3A%7B%22id%22%3A%22stripe_blik%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_konbini%22%3A%7B%22id%22%3A%22stripe_konbini%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_paynow%22%3A%7B%22id%22%3A%22stripe_paynow%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_promptpay%22%3A%7B%22id%22%3A%22stripe_promptpay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_swish%22%3A%7B%22id%22%3A%22stripe_swish%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_amazonpay%22%3A%7B%22id%22%3A%22stripe_amazonpay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_cashapp%22%3A%7B%22id%22%3A%22stripe_cashapp%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_revolut%22%3A%7B%22id%22%3A%22stripe_revolut%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_zip%22%3A%7B%22id%22%3A%22stripe_zip%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_mobilepay%22%3A%7B%22id%22%3A%22stripe_mobilepay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_twint%22%3A%7B%22id%22%3A%22stripe_twint%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_paybybank%22%3A%7B%22id%22%3A%22stripe_paybybank%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_upm%22%3A%7B%22id%22%3A%22stripe_upm%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_link_checkout%22%3A%7B%22id%22%3A%22stripe_link_checkout%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_billie%22%3A%7B%22id%22%3A%22stripe_billie%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_satispay%22%3A%7B%22id%22%3A%22stripe_satispay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_scalapay%22%3A%7B%22id%22%3A%22stripe_scalapay%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%2C%22stripe_mbway%22%3A%7B%22id%22%3A%22stripe_mbway%22%2C%22enabled%22%3Afalse%2C%22available%22%3Afalse%7D%7D%7D%2C%22product%22%3A%7B%22id%22%3A23625%2C%22qty%22%3A1%2C%22type%22%3A%22simple%22%2C%22price%22%3A116.64%2C%22total%22%3A116.64%2C%22priceCents%22%3A11664%2C%22currency%22%3A%22GBP%22%2C%22lineItems%22%3A%5B%7B%22id%22%3A23625%2C%22label%22%3A%22Professional%20Uniview%20UV-IPC2B14SE-ADF28KMC-WP-I1-B%204MP%20TriGuard%203.0%20Bullet%20IP%20Camera%20%5Cu2013%20Black%5C%2FWhite%22%2C%22amount%22%3A116.64%2C%22amountCents%22%3A11664%2C%22type%22%3A%22product%22%7D%5D%2C%22isInStock%22%3Atrue%2C%22needsShipping%22%3Atrue%2C%22shippingOptions%22%3A%5B%5D%2C%22variation_id%22%3A0%7D%2C%22currency%22%3A%7B%22currencyCode%22%3A%22GBP%22%2C%22currencySymbol%22%3A%22%26pound%3B%22%2C%22minorUnit%22%3A2%2C%22decimalSeparator%22%3A%22.%22%2C%22thousandSeparator%22%3A%22%2C%22%2C%22prefix%22%3A%22%26pound%3B%22%2C%22suffix%22%3A%22%22%7D%2C%22version%22%3A%224.0.8%22%2C%22page%22%3A%22product%22%2C%22publicKey%22%3A%22pk_live_51LOJSUJWyrk5KdYnkjFQdp2XtzqNOEDdbBJcDKY5bD18uxBoT3HQmBXqGpe7sCGUq76HJVRqwuqeNrZjaCWZaDRJ00gTdBOdlv%22%2C%22mode%22%3A%22live%22%2C%22sdkParams%22%3A%7B%22stripeAccount%22%3A%22acct_1LOJSUJWyrk5KdYn%22%2C%22betas%22%3A%5B%22deferred_intent_blik_beta_1%22%2C%22disable_deferred_intent_client_validation_beta_1%22%5D%2C%22developerTools%22%3A%7B%22assistant%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22addressLocales%22%3A%22%7B%5C%22BE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22CY%5C%22%3A%7B%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22DE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%7D%7D%2C%5C%22FR%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22GR%5C%22%3A%7B%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%7D%7D%2C%5C%22IE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22required%5C%22%3Atrue%2C%5C%22label%5C%22%3A%5C%22Eircode%5C%22%7D%2C%5C%22state%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22County%5C%22%7D%7D%2C%5C%22IT%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Atrue%2C%5C%22label%5C%22%3A%5C%22Province%5C%22%7D%7D%2C%5C%22NL%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22PT%5C%22%3A%7B%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22ES%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Province%5C%22%7D%7D%2C%5C%22SE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22GB%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Postcode%5C%22%7D%2C%5C%22state%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22County%5C%22%2C%5C%22required%5C%22%3Afalse%7D%7D%2C%5C%22default%5C%22%3A%7B%5C%22first_name%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22First%20name%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-first%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22given-name%5C%22%2C%5C%22priority%5C%22%3A10%7D%2C%5C%22last_name%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Last%20name%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-last%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22family-name%5C%22%2C%5C%22priority%5C%22%3A20%7D%2C%5C%22company%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Company%20name%5C%22%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22organization%5C%22%2C%5C%22priority%5C%22%3A30%2C%5C%22required%5C%22%3Afalse%7D%2C%5C%22country%5C%22%3A%7B%5C%22type%5C%22%3A%5C%22country%5C%22%2C%5C%22label%5C%22%3A%5C%22Country%20%5C%5C%5C%2F%20Region%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%2C%5C%22update_totals_on_change%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22country%5C%22%2C%5C%22priority%5C%22%3A40%2C%5C%22hidden%5C%22%3Afalse%7D%2C%5C%22address_1%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Street%20address%5C%22%2C%5C%22placeholder%5C%22%3A%5C%22House%20number%20and%20street%20name%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-line1%5C%22%2C%5C%22priority%5C%22%3A50%7D%2C%5C%22address_2%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Apartment%2C%20suite%2C%20unit%2C%20etc.%5C%22%2C%5C%22label_class%5C%22%3A%5B%5C%22screen-reader-text%5C%22%5D%2C%5C%22placeholder%5C%22%3A%5C%22Apartment%2C%20suite%2C%20unit%2C%20etc.%20%28optional%29%5C%22%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-line2%5C%22%2C%5C%22priority%5C%22%3A60%2C%5C%22required%5C%22%3Afalse%7D%2C%5C%22city%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Town%20%5C%5C%5C%2F%20City%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-level2%5C%22%2C%5C%22priority%5C%22%3A70%7D%2C%5C%22state%5C%22%3A%7B%5C%22type%5C%22%3A%5C%22state%5C%22%2C%5C%22label%5C%22%3A%5C%22State%20%5C%5C%5C%2F%20County%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22validate%5C%22%3A%5B%5C%22state%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-level1%5C%22%2C%5C%22priority%5C%22%3A80%7D%2C%5C%22postcode%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Postcode%20%5C%5C%5C%2F%20ZIP%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22validate%5C%22%3A%5B%5C%22postcode%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22postal-code%5C%22%2C%5C%22priority%5C%22%3A90%7D%2C%5C%22phone%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Phone%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22type%5C%22%3A%5C%22tel%5C%22%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%5D%2C%5C%22validate%5C%22%3A%5B%5C%22phone%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22tel%5C%22%2C%5C%22priority%5C%22%3A100%7D%7D%7D%22%2C%22errorMessages%22%3A%7B%22stripe_cc_generic%22%3A%22There%20was%20an%20error%20processing%20your%20credit%20card.%22%2C%22incomplete_number%22%3A%22Your%20card%20number%20is%20incomplete.%22%2C%22incomplete_expiry%22%3A%22Your%20card%27s%20expiration%20date%20is%20incomplete.%22%2C%22incomplete_cvc%22%3A%22Your%20card%27s%20security%20code%20is%20incomplete.%22%2C%22incomplete_zip%22%3A%22Your%20card%27s%20zip%20code%20is%20incomplete.%22%2C%22incorrect_number%22%3A%22The%20card%20number%20is%20incorrect.%20Check%20the%20card%27s%20number%20or%20use%20a%20different%20card.%22%2C%22incorrect_cvc%22%3A%22The%20card%27s%20security%20code%20is%20incorrect.%20Check%20the%20card%27s%20security%20code%20or%20use%20a%20different%20card.%22%2C%22incorrect_zip%22%3A%22The%20card%27s%20ZIP%20code%20is%20incorrect.%20Check%20the%20card%27s%20ZIP%20code%20or%20use%20a%20different%20card.%22%2C%22invalid_number%22%3A%22The%20card%20number%20is%20invalid.%20Check%20the%20card%20details%20or%20use%20a%20different%20card.%22%2C%22invalid_characters%22%3A%22This%20value%20provided%20to%20the%20field%20contains%20characters%20that%20are%20unsupported%20by%20the%20field.%22%2C%22invalid_cvc%22%3A%22The%20card%27s%20security%20code%20is%20invalid.%20Check%20the%20card%27s%20security%20code%20or%20use%20a%20different%20card.%22%2C%22invalid_expiry_month%22%3A%22The%20card%27s%20expiration%20month%20is%20incorrect.%20Check%20the%20expiration%20date%20or%20use%20a%20different%20card.%22%2C%22invalid_expiry_year%22%3A%22The%20card%27s%20expiration%20year%20is%20incorrect.%20Check%20the%20expiration%20date%20or%20use%20a%20different%20card.%22%2C%22incorrect_address%22%3A%22The%20card%27s%20address%20is%20incorrect.%20Check%20the%20card%27s%20address%20or%20use%20a%20different%20card.%22%2C%22expired_card%22%3A%22The%20card%20has%20expired.%20Check%20the%20expiration%20date%20or%20use%20a%20different%20card.%22%2C%22card_declined%22%3A%22The%20card%20has%20been%20declined.%22%2C%22invalid_expiry_year_past%22%3A%22Your%20card%27s%20expiration%20year%20is%20in%20the%20past.%22%2C%22account_number_invalid%22%3A%22The%20bank%20account%20number%20provided%20is%20invalid%20%28e.g.%2C%20missing%20digits%29.%20Bank%20account%20information%20varies%20from%20country%20to%20country.%20We%20recommend%20creating%20validations%20in%20your%20entry%20forms%20based%20on%20the%20bank%20account%20formats%20we%20provide.%22%2C%22amount_too_large%22%3A%22The%20specified%20amount%20is%20greater%20than%20the%20maximum%20amount%20allowed.%20Use%20a%20lower%20amount%20and%20try%20again.%22%2C%22amount_too_small%22%3A%22The%20specified%20amount%20is%20less%20than%20the%20minimum%20amount%20allowed.%20Use%20a%20higher%20amount%20and%20try%20again.%22%2C%22authentication_required%22%3A%22The%20payment%20requires%20authentication%20to%20proceed.%20If%20your%20customer%20is%20off%20session%2C%20notify%20your%20customer%20to%20return%20to%20your%20application%20and%20complete%20the%20payment.%20If%20you%20provided%20the%20error_on_requires_action%20parameter%2C%20then%20your%20customer%20should%20try%20another%20card%20that%20does%20not%20require%20authentication.%22%2C%22balance_insufficient%22%3A%22The%20transfer%20or%20payout%20could%20not%20be%20completed%20because%20the%20associated%20account%20does%20not%20have%20a%20sufficient%20balance%20available.%20Create%20a%20new%20transfer%20or%20payout%20using%20an%20amount%20less%20than%20or%20equal%20to%20the%20account%27s%20available%20balance.%22%2C%22bank_account_declined%22%3A%22The%20bank%20account%20provided%20can%20not%20be%20used%20to%20charge%2C%20either%20because%20it%20is%20not%20verified%20yet%20or%20it%20is%20not%20supported.%22%2C%22bank_account_exists%22%3A%22The%20bank%20account%20provided%20already%20exists%20on%20the%20specified%20Customer%20object.%20If%20the%20bank%20account%20should%20also%20be%20attached%20to%20a%20different%20customer%2C%20include%20the%20correct%20customer%20ID%20when%20making%20the%20request%20again.%22%2C%22bank_account_unusable%22%3A%22The%20bank%20account%20provided%20cannot%20be%20used%20for%20payouts.%20A%20different%20bank%20account%20must%20be%20used.%22%2C%22bank_account_unverified%22%3A%22Your%20Connect%20platform%20is%20attempting%20to%20share%20an%20unverified%20bank%20account%20with%20a%20connected%20account.%22%2C%22bank_account_verification_failed%22%3A%22The%20bank%20account%20cannot%20be%20verified%2C%20either%20because%20the%20microdeposit%20amounts%20provided%20do%20not%20match%20the%20actual%20amounts%2C%20or%20because%20verification%20has%20failed%20too%20many%20times.%22%2C%22card_decline_rate_limit_exceeded%22%3A%22This%20card%20has%20been%20declined%20too%20many%20times.%20You%20can%20try%20to%20charge%20this%20card%20again%20after%2024%20hours.%20We%20suggest%20reaching%20out%20to%20your%20customer%20to%20make%20sure%20they%20have%20entered%20all%20of%20their%20information%20correctly%20and%20that%20there%20are%20no%20issues%20with%20their%20card.%22%2C%22charge_already_captured%22%3A%22The%20charge%20you%27re%20attempting%20to%20capture%20has%20already%20been%20captured.%20Update%20the%20request%20with%20an%20uncaptured%20charge%20ID.%22%2C%22charge_already_refunded%22%3A%22The%20charge%20you%27re%20attempting%20to%20refund%20has%20already%20been%20refunded.%20Update%20the%20request%20to%20use%20the%20ID%20of%20a%20charge%20that%20has%20not%20been%20refunded.%22%2C%22charge_disputed%22%3A%22The%20charge%20you%27re%20attempting%20to%20refund%20has%20been%20charged%20back.%20Check%20the%20disputes%20documentation%20to%20learn%20how%20to%20respond%20to%20the%20dispute.%22%2C%22charge_exceeds_source_limit%22%3A%22This%20charge%20would%20cause%20you%20to%20exceed%20your%20rolling-window%20processing%20limit%20for%20this%20source%20type.%20Please%20retry%20the%20charge%20later%2C%20or%20contact%20us%20to%20request%20a%20higher%20processing%20limit.%22%2C%22charge_expired_for_capture%22%3A%22The%20charge%20cannot%20be%20captured%20as%20the%20authorization%20has%20expired.%20Auth%20and%20capture%20charges%20must%20be%20captured%20within%20seven%20days.%22%2C%22charge_invalid_parameter%22%3A%22One%20or%20more%20provided%20parameters%20was%20not%20allowed%20for%20the%20given%20operation%20on%20the%20Charge.%20Check%20our%20API%20reference%20or%20the%20returned%20error%20message%20to%20see%20which%20values%20were%20not%20correct%20for%20that%20Charge.%22%2C%22email_invalid%22%3A%22The%20email%20address%20is%20invalid%20%28e.g.%2C%20not%20properly%20formatted%29.%20Check%20that%20the%20email%20address%20is%20properly%20formatted%20and%20only%20includes%20allowed%20characters.%22%2C%22idempotency_key_in_use%22%3A%22The%20idempotency%20key%20provided%20is%20currently%20being%20used%20in%20another%20request.%20This%20occurs%20if%20your%20integration%20is%20making%20duplicate%20requests%20simultaneously.%22%2C%22invalid_charge_amount%22%3A%22The%20specified%20amount%20is%20invalid.%20The%20charge%20amount%20must%20be%20a%20positive%20integer%20in%20the%20smallest%20currency%20unit%2C%20and%20not%20exceed%20the%20minimum%20or%20maximum%20amount.%22%2C%22invalid_source_usage%22%3A%22The%20source%20cannot%20be%20used%20because%20it%20is%20not%20in%20the%20correct%20state%20%28e.g.%2C%20a%20charge%20request%20is%20trying%20to%20use%20a%20source%20with%20a%20pending%2C%20failed%2C%20or%20consumed%20source%29.%20Check%20the%20status%20of%20the%20source%20you%20are%20attempting%20to%20use.%22%2C%22missing%22%3A%22Both%20a%20customer%20and%20source%20ID%20have%20been%20provided%2C%20but%20the%20source%20has%20not%20been%20saved%20to%20the%20customer.%20To%20create%20a%20charge%20for%20a%20customer%20with%20a%20specified%20source%2C%20you%20must%20first%20save%20the%20card%20details.%22%2C%22postal_code_invalid%22%3A%22The%20ZIP%20code%20provided%20was%20incorrect.%22%2C%22processing_error%22%3A%22An%20error%20occurred%20while%20processing%20the%20card.%20Try%20again%20later%20or%20with%20a%20different%20payment%20method.%22%2C%22card_not_supported%22%3A%22The%20card%20does%20not%20support%20this%20type%20of%20purchase.%22%2C%22call_issuer%22%3A%22The%20card%20has%20been%20declined%20for%20an%20unknown%20reason.%22%2C%22card_velocity_exceeded%22%3A%22The%20customer%20has%20exceeded%20the%20balance%20or%20credit%20limit%20available%20on%20their%20card.%22%2C%22currency_not_supported%22%3A%22The%20card%20does%20not%20support%20the%20specified%20currency.%22%2C%22do_not_honor%22%3A%22The%20card%20has%20been%20declined%20for%20an%20unknown%20reason.%22%2C%22fraudulent%22%3A%22The%20payment%20has%20been%20declined%20as%20Stripe%20suspects%20it%20is%20fraudulent.%22%2C%22generic_decline%22%3A%22The%20card%20has%20been%20declined%20for%20an%20unknown%20reason.%22%2C%22incorrect_pin%22%3A%22The%20PIN%20entered%20is%20incorrect.%20%22%2C%22insufficient_funds%22%3A%22The%20card%20has%20insufficient%20funds%20to%20complete%20the%20purchase.%22%2C%22empty_element%22%3A%22Please%20select%20a%20payment%20method%20before%20proceeding.%22%2C%22empty_element_sepa_debit%22%3A%22Please%20enter%20your%20IBAN%20before%20proceeding.%22%2C%22empty_element_ideal%22%3A%22Please%20select%20a%20bank%20before%20proceeding%22%2C%22incomplete_iban%22%3A%22The%20IBAN%20you%20entered%20is%20incomplete.%22%2C%22incomplete_boleto_tax_id%22%3A%22Please%20enter%20a%20valid%20CPF%20%5C%2F%20CNPJ%22%2C%22test_mode_live_card%22%3A%22Your%20card%20was%20declined.%20Your%20request%20was%20in%20test%20mode%2C%20but%20you%20used%20a%20real%20credit%20card.%20Only%20test%20cards%20can%20be%20used%20in%20test%20mode.%22%2C%22server_side_confirmation_beta%22%3A%22You%20do%20not%20have%20permission%20to%20use%20the%20PaymentElement%20card%20form.%20Please%20send%20a%20request%20to%20https%3A%5C%2F%5C%2Fsupport.stripe.com%5C%2F%20and%20ask%20for%20the%20%5C%22server_side_confirmation_beta%5C%22%20to%20be%20added%20to%20your%20account.%22%2C%22phone_required%22%3A%22Please%20provide%20a%20billing%20phone%20number.%22%2C%22ach_instant_only%22%3A%22Your%20payment%20could%20not%20be%20processed%20at%20this%20time%20because%20your%20bank%20account%20does%20not%20support%20instant%20verification.%22%2C%22payment_intent_konbini_rejected_confirmation_number%22%3A%22The%20confirmation%20number%20was%20rejected%20by%20Konbini.%20Please%20try%20again.%22%2C%22payment_intent_payment_attempt_expired%22%3A%22The%20payment%20attempt%20for%20this%20payment%20method%20has%20expired.%20Please%20try%20again.%22%2C%22payment_intent_authentication_failure%22%3A%22We%20are%20unable%20to%20authenticate%20your%20payment%20method.%20Please%20choose%20a%20different%20payment%20method%20and%20try%20again.%22%2C%22payment_cancelled%22%3A%22Payment%20has%20been%20cancelled.%22%2C%22billing_label%22%3A%22Billing%20%25s%22%2C%22shipping_label%22%3A%22Shipping%20%25s%22%2C%22required_field%22%3A%22%25s%20is%20a%20required%20field.%22%2C%22required_fields%22%3A%22Please%20fill%20out%20all%20required%20fields.%22%2C%22payment_unavailable%22%3A%22This%20payment%20method%20is%20currently%20unavailabe.%20Reason%3A%20%25s%22%2C%22billing_details.phone.required%22%3A%22A%20billing%20phone%20number%20is%20required%20for%20this%20payment.%22%2C%22terms%22%3A%22Please%20read%20and%20accept%20the%20terms%20and%20conditions%20to%20proceed%20with%20your%20order.%22%2C%22order_button_click%22%3A%22Please%20click%20the%20%25s%20button%20before%20placing%20your%20order.%22%7D%2C%22requiredFields%22%3A%5B%22billing_first_name%22%2C%22billing_last_name%22%2C%22billing_country%22%2C%22billing_address_1%22%2C%22billing_city%22%2C%22billing_postcode%22%2C%22billing_phone%22%2C%22billing_email%22%2C%22shipping_first_name%22%2C%22shipping_last_name%22%2C%22shipping_country%22%2C%22shipping_address_1%22%2C%22shipping_city%22%2C%22shipping_postcode%22%2C%22shipping_phone%22%2C%22account_password%22%5D%2C%22restRoutes%22%3A%7B%22cart%5C%2Fitem%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fitem%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fitem%22%7D%2C%22cart%5C%2Frefresh%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Frefresh%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Frefresh%22%7D%2C%22cart%5C%2Fshipping%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fshipping%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fshipping%22%7D%2C%22cart%5C%2Fcheckout%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fcheckout%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fcheckout%22%7D%2C%22cart%5C%2Fcalculation%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fcalculation%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcart%5C%2Fcalculation%22%7D%2C%22checkout%5C%2Fform-validation%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcheckout%5C%2Fform-validation%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Fcheckout%5C%2Fform-validation%22%7D%2C%22setup-intent%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Fsetup-intent%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Fsetup-intent%22%7D%2C%22order%5C%2Fpay%22%3A%7B%22namespace%22%3A%22wc-stripe%5C%2Fv1%22%2C%22path%22%3A%22%5C%2Fwc-stripe%5C%2Fv1%5C%2Forder%5C%2Fpay%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_stripe_frontend_request%26path%3D%5C%2Fwc-stripe%5C%2Fv1%5C%2Forder%5C%2Fpay%22%7D%7D%2C%22stripe_cc_data%22%3A%7B%22paymentSections%22%3A%5B%5D%2C%22paymentMethodType%22%3A%22card%22%2C%22description%22%3A%22%22%2C%22hasPaymentTokens%22%3Afalse%2C%22termsDisplayRule%22%3A%22auto%22%2C%22elementOptions%22%3A%7B%22paymentMethodTypes%22%3A%5B%22card%22%2C%22link%22%5D%2C%22locale%22%3A%22en-US%22%2C%22mode%22%3A%22payment%22%2C%22paymentMethodCreation%22%3A%22manual%22%2C%22appearance%22%3A%7B%22theme%22%3A%22stripe%22%7D%7D%2C%22paymentElementOptions%22%3A%7B%22layout%22%3A%7B%22type%22%3A%22tabs%22%7D%7D%2C%22cardFormType%22%3A%22payment%22%2C%22inlineFormOptions%22%3A%7B%22style%22%3A%7B%22base%22%3A%7B%22color%22%3A%22%2332325d%22%2C%22fontFamily%22%3A%22%5C%22Helvetica%20Neue%5C%22%2C%20Helvetica%2C%20sans-serif%22%2C%22fontSmoothing%22%3A%22antialiased%22%2C%22fontSize%22%3A%2218px%22%2C%22%3A%3Aplaceholder%22%3A%7B%22color%22%3A%22%23aab7c4%22%7D%2C%22%3Afocus%22%3A%5B%5D%7D%2C%22invalid%22%3A%7B%22color%22%3A%22%23fa755a%22%2C%22iconColor%22%3A%22%23fa755a%22%7D%7D%2C%22disableLink%22%3Afalse%7D%2C%22paymentElementActive%22%3Atrue%2C%22customFieldOptions%22%3A%7B%22cardNumber%22%3A%7B%22style%22%3A%7B%22base%22%3A%7B%22color%22%3A%22%2332325d%22%2C%22fontFamily%22%3A%22%5C%22Helvetica%20Neue%5C%22%2C%20Helvetica%2C%20sans-serif%22%2C%22fontSmoothing%22%3A%22antialiased%22%2C%22fontSize%22%3A%2218px%22%2C%22%3A%3Aplaceholder%22%3A%7B%22color%22%3A%22%23aab7c4%22%7D%2C%22%3Afocus%22%3A%5B%5D%7D%2C%22invalid%22%3A%7B%22color%22%3A%22%23fa755a%22%2C%22iconColor%22%3A%22%23fa755a%22%7D%7D%7D%2C%22cardExpiry%22%3A%7B%22style%22%3A%7B%22base%22%3A%7B%22color%22%3A%22%2332325d%22%2C%22fontFamily%22%3A%22%5C%22Helvetica%20Neue%5C%22%2C%20Helvetica%2C%20sans-serif%22%2C%22fontSmoothing%22%3A%22antialiased%22%2C%22fontSize%22%3A%2218px%22%2C%22%3A%3Aplaceholder%22%3A%7B%22color%22%3A%22%23aab7c4%22%7D%2C%22%3Afocus%22%3A%5B%5D%7D%2C%22invalid%22%3A%7B%22color%22%3A%22%23fa755a%22%2C%22iconColor%22%3A%22%23fa755a%22%7D%7D%7D%2C%22cardCvc%22%3A%7B%22style%22%3A%7B%22base%22%3A%7B%22color%22%3A%22%2332325d%22%2C%22fontFamily%22%3A%22%5C%22Helvetica%20Neue%5C%22%2C%20Helvetica%2C%20sans-serif%22%2C%22fontSmoothing%22%3A%22antialiased%22%2C%22fontSize%22%3A%2218px%22%2C%22%3A%3Aplaceholder%22%3A%7B%22color%22%3A%22%23aab7c4%22%7D%2C%22%3Afocus%22%3A%5B%5D%7D%2C%22invalid%22%3A%7B%22color%22%3A%22%23fa755a%22%2C%22iconColor%22%3A%22%23fa755a%22%7D%7D%7D%7D%2C%22cardIcons%22%3A%7B%22visa%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcards%5C%2Fvisa.svg%22%2C%22amex%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcards%5C%2Famex.svg%22%2C%22mastercard%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcards%5C%2Fmastercard.svg%22%2C%22discover%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcards%5C%2Fdiscover.svg%22%2C%22diners%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcards%5C%2Fdiners.svg%22%2C%22jcb%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcards%5C%2Fjcb.svg%22%2C%22unionpay%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcards%5C%2Fchina_union_pay.svg%22%2C%22unknown%22%3A%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcard_brand2.svg%22%7D%2C%22html%22%3A%7B%22card_brand%22%3A%22%3Cimg%20id%3D%5C%22wc-stripe-card%5C%22%20src%3D%5C%22https%3A%5C%2F%5C%2Fdiscountcctvsupplier.co.uk%5C%2Fwp-content%5C%2Fplugins%5C%2Fwoo-stripe-payment%5C%2Fassets%5C%2Fimg%5C%2Fcard_brand2.svg%5C%22%20%5C%2F%3E%22%7D%2C%22noticeLocation%22%3A%22acf%22%2C%22noticeSelector%22%3A%22div.payment_method_stripe_cc%22%2C%22installments%22%3A%7B%22clientSecret%22%3Anull%7D%7D%2C%22paymentMethods%22%3A%7B%22stripe_cc%22%3A%7B%22enabled%22%3Atrue%2C%22supports%22%3A%5B%22refunds%22%2C%22products%22%2C%22default_credit_card_form%22%2C%22tokenization%22%2C%22add_payment_method%22%2C%22pre-orders%22%2C%22subscriptions%22%2C%22subscription_cancellation%22%2C%22multiple_subscriptions%22%2C%22subscription_amount_changes%22%2C%22subscription_date_changes%22%2C%22subscription_payment_method_change_admin%22%2C%22subscription_reactivation%22%2C%22subscription_suspension%22%2C%22subscription_payment_method_change_customer%22%5D%2C%22isLocal%22%3Afalse%2C%22paymentMethodType%22%3A%22card%22%7D%7D%7D' ) );
window['wcPPCPSettings'] = JSON.parse( decodeURIComponent( '%7B%22cart%22%3A%7B%22total%22%3A%220.00%22%2C%22totalCents%22%3A0%2C%22needsShipping%22%3Afalse%2C%22isEmpty%22%3Atrue%2C%22currency%22%3A%22GBP%22%2C%22countryCode%22%3A%22GB%22%2C%22availablePaymentMethods%22%3A%5B%22stripe_cc%22%2C%22ppcp%22%5D%2C%22lineItems%22%3A%5B%7B%22label%22%3A%22Tax%22%2C%22amount%22%3A%220.00%22%2C%22type%22%3A%22tax%22%7D%5D%2C%22shippingOptions%22%3A%5B%5D%2C%22selectedShippingMethod%22%3A%22%22%7D%2C%22product%22%3A%7B%22id%22%3A23625%2C%22needsShipping%22%3Atrue%2C%22total%22%3A%22116.64%22%2C%22totalCents%22%3A11664%2C%22price%22%3A%22116.64%22%2C%22currency%22%3A%22GBP%22%2C%22lineItems%22%3A%5B%7B%22label%22%3A%22Professional%20Uniview%20UV-IPC2B14SE-ADF28KMC-WP-I1-B%204MP%20TriGuard%203.0%20Bullet%20IP%20Camera%20%5Cu2013%20Black%5C%2FWhite%22%2C%22amount%22%3A%22116.64%22%2C%22type%22%3A%22product%22%7D%5D%2C%22shippingOptions%22%3A%5B%5D%7D%2C%22requiredFields%22%3A%5B%22billing_first_name%22%2C%22billing_last_name%22%2C%22billing_country%22%2C%22billing_address_1%22%2C%22billing_city%22%2C%22billing_postcode%22%2C%22billing_phone%22%2C%22billing_email%22%2C%22shipping_first_name%22%2C%22shipping_last_name%22%2C%22shipping_country%22%2C%22shipping_address_1%22%2C%22shipping_city%22%2C%22shipping_postcode%22%2C%22shipping_phone%22%2C%22account_password%22%5D%2C%22payLaterMessage%22%3A%7B%22enabled%22%3Afalse%2C%22checkout%22%3A%7B%22style%22%3A%7B%22layout%22%3A%22text%22%2C%22logo%22%3A%7B%22type%22%3A%22%22%2C%22position%22%3A%22left%22%7D%2C%22text%22%3A%7B%22color%22%3A%22black%22%2C%22size%22%3A%2212%22%7D%7D%7D%2C%22cart%22%3A%7B%22style%22%3A%7B%22layout%22%3A%22text%22%2C%22logo%22%3A%7B%22type%22%3A%22%22%2C%22position%22%3A%22left%22%7D%2C%22text%22%3A%7B%22color%22%3A%22black%22%2C%22size%22%3A%2212%22%7D%7D%7D%2C%22product%22%3A%7B%22style%22%3A%7B%22layout%22%3A%22text%22%2C%22logo%22%3A%7B%22type%22%3A%22%22%2C%22position%22%3A%22left%22%7D%2C%22text%22%3A%7B%22color%22%3A%22black%22%2C%22size%22%3A%2212%22%7D%7D%7D%2C%22shop%22%3A%7B%22style%22%3A%7B%22layout%22%3A%22text%22%2C%22logo%22%3A%7B%22type%22%3A%22%22%2C%22position%22%3A%22left%22%7D%2C%22text%22%3A%7B%22color%22%3A%22black%22%2C%22size%22%3A%2212%22%7D%7D%7D%2C%22checkoutLocation%22%3A%22shop_table%22%2C%22cartLocation%22%3A%22shop_table%22%7D%2C%22productSettings%22%3A%7B%22button_width%22%3A%22add_to_cart%22%2C%22funding%22%3A%5B%5D%7D%2C%22version%22%3A%222.0.23%22%2C%22generalData%22%3A%7B%22clientId%22%3A%22BAA7xchGkcHVCACj_qsa3NXCOz7VvQeGjxWD8Uy_L7BYHE0UbH7AeugybyhTeGWWLboUPm-ktffwTGTNVI%22%2C%22environment%22%3A%22production%22%2C%22partner_id%22%3A%22PaymentPlugins_PCP%22%2C%22page%22%3A%22product%22%2C%22version%22%3A%222.0.23%22%2C%22is_admin%22%3Afalse%2C%22restRoutes%22%3A%7B%22connect%5C%2Faccount%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%5C%2Fadmin%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fadmin%5C%2Faccount%5C%2Fconnect%22%7D%2C%22domain-association-file%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%5C%2Fadmin%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fadmin%5C%2Fdomain-association-file%22%7D%2C%22cart%5C%2Fitem%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcart%5C%2Fitem%22%7D%2C%22cart%5C%2Fshipping%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcart%5C%2Fshipping%22%7D%2C%22cart%5C%2Fbilling%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcart%5C%2Fbilling%22%7D%2C%22cart%5C%2Fcheckout%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcart%5C%2Fcheckout%22%7D%2C%22cart%5C%2Frefresh%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcart%5C%2Frefresh%22%7D%2C%22cart%5C%2Forder-update-callback%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcart%5C%2Forder-update-callback%22%7D%2C%22cart%5C%2Forder%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcart%5C%2Forder%22%7D%2C%22order%5C%2Fpay%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Forder%5C%2Fpay%22%7D%2C%22billing-agreement%5C%2Ftoken%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fbilling-agreement%5C%2Ftoken%5C%2F%3F%28%3FP%3Cid%3E%5B%5C%5Cw-%5D%2B%29%22%7D%2C%22billing-agreement%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fbilling-agreements%5C%2F%28%3FP%3Cid%3E%5B%5C%5Cw-%5D%2B%29%22%7D%2C%22webhook%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fwebhook%5C%2F%28%3FP%3Cenvironment%3E%5B%5C%5Cw%5D%2B%29%22%7D%2C%22admin%5C%2Forder%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%5C%2Fadmin%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fadmin%5C%2Forder%5C%2F%28%3FP%3Corder_id%3E%5B%5C%5Cw%5D%2B%29%22%7D%2C%22admin%5C%2Ftracking%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%5C%2Fadmin%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fadmin%5C%2Forder%5C%2F%28%3FP%3Corder_id%3E%5B%5C%5Cw%5D%2B%29%5C%2Ftracking%22%7D%2C%22admin%5C%2Fcarriers%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%5C%2Fadmin%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fadmin%5C%2Forder%5C%2F%28%3FP%3Corder_id%3E%5B%5C%5Cw%5D%2B%29%5C%2Fcarriers%22%7D%2C%22admin%5C%2Fwebhook%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%5C%2Fadmin%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fadmin%5C%2Fwebhook%22%7D%2C%22setup-tokens%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fvault%5C%2Fsetup-tokens%22%7D%2C%22payment-tokens%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fvault%5C%2Fpayment-tokens%22%7D%2C%22checkout%5C%2Fvalidation%22%3A%7B%22namespace%22%3A%22wc-ppcp%5C%2Fv1%22%2C%22url%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2Fwc-ppcp%5C%2Fv1%5C%2Fcheckout-validation%22%7D%7D%2C%22ajaxRestPath%22%3A%22%5C%2F%3Fwc-ajax%3Dwc_ppcp_frontend_request%26path%3D%5C%2F%25s%22%7D%2C%22errorMessages%22%3A%7B%22terms%22%3A%22Please%20check%20the%20terms%20and%20conditions%20before%20proceeding.%22%2C%22invalid_client_id%22%3A%22Invalid%20PayPal%20client%20ID.%20Please%20check%20your%20API%20Settings.%22%2C%22invalid_currency%22%3A%22PayPal%20does%20not%20support%20currency%20%25.%20Please%20use%20a%20supported%20currency.%22%2C%22order_button_click%22%3A%22Please%20click%20the%20%25s%20button%20before%20placing%20your%20order.%22%2C%22gpay_order_button_click%22%3A%22Please%20click%20the%20Google%20Pay%20button%20before%20placing%20your%20order%22%2C%22order_missing_address%22%3A%22Please%20fill%20out%20all%20billing%20and%20shipping%20fields%20before%20clicking%20PayPal.%22%2C%22order_missing_billing_address%22%3A%22Please%20fill%20out%20all%20billing%20fields%20before%20clicking%20PayPal.%22%2C%22cancel%22%3A%22Cancel%22%2C%22required_fields%22%3A%22Please%20fill%20out%20all%20required%20fields.%22%2C%22Y_N_NO%22%3A%223DS%20authentication%20failed.%22%2C%22Y_R_NO%22%3A%223DS%20authentication%20was%20rejected.%22%2C%22Y_U_UNKNOWN%22%3A%22Unable%20to%20complete%203DS%20authentication.%20Please%20try%20again.%22%2C%22Y_U_NO%22%3A%22Unable%20to%20complete%203DS%20authentication.%20Please%20try%20again.%22%2C%22Y_C_UNKNOWN%22%3A%223DS%20authentication%20challenge%20required%20but%20could%20not%20be%20completed.%20Please%20try%20again.%22%2C%22Y__NO%22%3A%223DS%20authentication%20could%20not%20be%20processed.%20Please%20try%20again.%22%2C%22U__UNKNOWN%22%3A%223DS%20system%20is%20currently%20unavailable.%20Please%20try%20again%20later.%22%2C%22___UNKNOWN%22%3A%223DS%20authentication%20status%20unknown.%20Please%20try%20again.%22%2C%22total%22%3A%22Total%22%2C%22ERROR_VALIDATING_MERCHANT%22%3A%22Domain%20registration%20is%20not%20complete.%20Visit%20https%3A%5C%2F%5C%2Fpaymentplugins.com%5C%2Fdocumentation%5C%2Fpaypal%5C%2Fapplepay%5C%2Fsetup%5C%2F%20for%20instructions%20on%20completing%20domain%20registration.%22%7D%2C%22i18n%22%3A%7B%22locale%22%3A%22%7B%5C%22BE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22CY%5C%22%3A%7B%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22DE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%7D%7D%2C%5C%22FR%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22GR%5C%22%3A%7B%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%7D%7D%2C%5C%22IE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22required%5C%22%3Atrue%2C%5C%22label%5C%22%3A%5C%22Eircode%5C%22%7D%2C%5C%22state%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22County%5C%22%7D%7D%2C%5C%22IT%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Atrue%2C%5C%22label%5C%22%3A%5C%22Province%5C%22%7D%7D%2C%5C%22NL%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22PT%5C%22%3A%7B%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22ES%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Province%5C%22%7D%7D%2C%5C%22SE%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22priority%5C%22%3A65%7D%2C%5C%22state%5C%22%3A%7B%5C%22required%5C%22%3Afalse%2C%5C%22hidden%5C%22%3Atrue%7D%7D%2C%5C%22GB%5C%22%3A%7B%5C%22postcode%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Postcode%5C%22%7D%2C%5C%22state%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22County%5C%22%2C%5C%22required%5C%22%3Afalse%7D%7D%2C%5C%22default%5C%22%3A%7B%5C%22first_name%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22First%20name%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-first%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22given-name%5C%22%2C%5C%22priority%5C%22%3A10%7D%2C%5C%22last_name%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Last%20name%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-last%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22family-name%5C%22%2C%5C%22priority%5C%22%3A20%7D%2C%5C%22company%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Company%20name%5C%22%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22organization%5C%22%2C%5C%22priority%5C%22%3A30%2C%5C%22required%5C%22%3Afalse%7D%2C%5C%22country%5C%22%3A%7B%5C%22type%5C%22%3A%5C%22country%5C%22%2C%5C%22label%5C%22%3A%5C%22Country%20%5C%5C%5C%2F%20Region%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%2C%5C%22update_totals_on_change%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22country%5C%22%2C%5C%22priority%5C%22%3A40%2C%5C%22hidden%5C%22%3Afalse%7D%2C%5C%22address_1%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Street%20address%5C%22%2C%5C%22placeholder%5C%22%3A%5C%22House%20number%20and%20street%20name%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-line1%5C%22%2C%5C%22priority%5C%22%3A50%7D%2C%5C%22address_2%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Apartment%2C%20suite%2C%20unit%2C%20etc.%5C%22%2C%5C%22label_class%5C%22%3A%5B%5C%22screen-reader-text%5C%22%5D%2C%5C%22placeholder%5C%22%3A%5C%22Apartment%2C%20suite%2C%20unit%2C%20etc.%20%28optional%29%5C%22%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-line2%5C%22%2C%5C%22priority%5C%22%3A60%2C%5C%22required%5C%22%3Afalse%7D%2C%5C%22city%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Town%20%5C%5C%5C%2F%20City%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-level2%5C%22%2C%5C%22priority%5C%22%3A70%7D%2C%5C%22state%5C%22%3A%7B%5C%22type%5C%22%3A%5C%22state%5C%22%2C%5C%22label%5C%22%3A%5C%22State%20%5C%5C%5C%2F%20County%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22validate%5C%22%3A%5B%5C%22state%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22address-level1%5C%22%2C%5C%22priority%5C%22%3A80%7D%2C%5C%22postcode%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Postcode%20%5C%5C%5C%2F%20ZIP%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%2C%5C%22address-field%5C%22%5D%2C%5C%22validate%5C%22%3A%5B%5C%22postcode%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22postal-code%5C%22%2C%5C%22priority%5C%22%3A90%7D%2C%5C%22phone%5C%22%3A%7B%5C%22label%5C%22%3A%5C%22Phone%5C%22%2C%5C%22required%5C%22%3Atrue%2C%5C%22type%5C%22%3A%5C%22tel%5C%22%2C%5C%22class%5C%22%3A%5B%5C%22form-row-wide%5C%22%5D%2C%5C%22validate%5C%22%3A%5B%5C%22phone%5C%22%5D%2C%5C%22autocomplete%5C%22%3A%5C%22tel%5C%22%2C%5C%22priority%5C%22%3A100%7D%7D%7D%22%2C%22locale_fields%22%3A%22%7B%5C%22address_1%5C%22%3A%5C%22%23billing_address_1_field%2C%20%23shipping_address_1_field%5C%22%2C%5C%22address_2%5C%22%3A%5C%22%23billing_address_2_field%2C%20%23shipping_address_2_field%5C%22%2C%5C%22state%5C%22%3A%5C%22%23billing_state_field%2C%20%23shipping_state_field%2C%20%23calc_shipping_state_field%5C%22%2C%5C%22postcode%5C%22%3A%5C%22%23billing_postcode_field%2C%20%23shipping_postcode_field%2C%20%23calc_shipping_postcode_field%5C%22%2C%5C%22city%5C%22%3A%5C%22%23billing_city_field%2C%20%23shipping_city_field%2C%20%23calc_shipping_city_field%5C%22%2C%5C%22country%5C%22%3A%5C%22%23billing_country_field%2C%20%23shipping_country_field%2C%20%23calc_shipping_country_field%5C%22%2C%5C%22phone%5C%22%3A%5C%22%23billing_phone_field%2C%20%23shipping_phone_field%5C%22%7D%22%7D%2C%22ppcp_data%22%3A%7B%22title%22%3A%22PayPal%22%2C%22sections%22%3A%5B%22order_pay%22%2C%22checkout%22%5D%2C%22needsSetupToken%22%3Afalse%2C%22funding%22%3A%5B%22paypal%22%5D%2C%22buttons_order%22%3A%5B%22paypal%22%2C%22paylater%22%2C%22venmo%22%2C%22card%22%5D%2C%22buttonPlacement%22%3A%22place_order%22%2C%22buttons%22%3A%7B%22paypal%22%3A%7B%22layout%22%3A%22vertical%22%2C%22label%22%3A%22paypal%22%2C%22shape%22%3A%22rect%22%2C%22height%22%3A40%2C%22color%22%3A%22gold%22%7D%2C%22paylater%22%3A%7B%22layout%22%3A%22vertical%22%2C%22label%22%3A%22paypal%22%2C%22shape%22%3A%22rect%22%2C%22height%22%3A40%2C%22color%22%3A%22gold%22%7D%2C%22card%22%3A%7B%22layout%22%3A%22vertical%22%2C%22label%22%3A%22paypal%22%2C%22shape%22%3A%22rect%22%2C%22height%22%3A40%2C%22color%22%3A%22black%22%2C%22tagline%22%3Afalse%7D%2C%22venmo%22%3A%7B%22layout%22%3A%22vertical%22%2C%22shape%22%3A%22rect%22%2C%22height%22%3A40%7D%7D%2C%22paypal_sections%22%3A%5B%22order_pay%22%2C%22checkout%22%2C%22add_payment_method%22%5D%2C%22paylater_sections%22%3A%5B%22cart%22%2C%22checkout%22%2C%22order_pay%22%5D%2C%22credit_card_sections%22%3A%5B%22cart%22%2C%22checkout%22%2C%22order_pay%22%5D%2C%22venmo_sections%22%3A%5B%22checkout%22%2C%22order_pay%22%5D%2C%22placeOrderEnabled%22%3Afalse%2C%22serverSideShippingCallback%22%3Afalse%7D%2C%22recaptcha%22%3A%7B%22site_key%22%3Anull%2C%22i18n%22%3A%7B%22error%22%3A%22reCAPTCHA%20error%3A%20%25s%22%7D%2C%22paymentMethods%22%3A%5B%22ppcp%22%5D%7D%2C%22queryParams%22%3A%7B%22client-id%22%3A%22BAA7xchGkcHVCACj_qsa3NXCOz7VvQeGjxWD8Uy_L7BYHE0UbH7AeugybyhTeGWWLboUPm-ktffwTGTNVI%22%2C%22intent%22%3A%22capture%22%2C%22commit%22%3A%22true%22%2C%22components%22%3A%22buttons%2Cmessages%2Ccard-fields%2Cgooglepay%2Capplepay%22%2C%22currency%22%3A%22GBP%22%2C%22enable-funding%22%3A%22paylater%22%2C%22data-partner-attribution-id%22%3A%22PaymentPlugins_PCP%22%2C%22data-page-type%22%3A%22product-details%22%2C%22locale%22%3A%22en_US%22%7D%2C%22ppcp_api%22%3A%5B%5D%2C%22ppcp_advanced%22%3A%7B%22miniCartLocation%22%3A%22below%22%7D%2C%22ppcp_paylater_message%22%3A%5B%5D%7D' ) );
https://discountcctvsupplier.co.uk/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widget-scripts.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/accounting/accounting.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/selectWoo/selectWoo.full.min.js
var yith_wcan_shortcodes = {"query_param":"yith_wcan","query_vars":[],"supported_taxonomies":["product_cat","product_tag","pa_brand","pa_camera","pa_camera-resolution","pa_camera-shape","pa_channel","pa_color","pa_colour","pa_compression","pa_hdd","pa_ip-rating","pa_ir-distance","pa_lens","pa_manufacturer","pa_material","pa_max-resolution","pa_megapixel","pa_number-of-cameras","pa_patterns-textures","pa_size","pa_technology"],"content":"#main","change_browser_url":"1","instant_filters":"1","ajax_filters":"1","reload_on_back":"1","show_clear_filter":"","scroll_top":"","scroll_target":"","modal_on_mobile":"","session_param":"","show_current_children":"","loader":"","toggles_open_on_modal":"","mobile_media_query":"991","base_url":"https://discountcctvsupplier.co.uk/product/professional-uniview-uv-ipc2b14se-adf28kmc-wp-i1-b-4mp-triguard-3-0-bullet-ip-camera-black-white/","terms_per_page":"10","currency_format":{"symbol":"£","decimal":".","thousand":",","precision":2,"format":"%s%v"},"labels":{"empty_option":"All","search_placeholder":"Search...","no_items":"No item found","show_more":"Show more","close":"Close","save":"Save","show_results":"Show results","clear_selection":"Clear","clear_all_selections":"Clear All"},"urls":{"render_filter":"/?wc-ajax=yith_wcan_render_filter"},"nonces":{"render_filter":"13ee70973d","render_remaining_terms":"0c2d5120ec","get_filter_terms":"4052f5df76"}};
//# sourceURL=yith-wcan-shortcodes-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/yith-woocommerce-ajax-navigation/assets/js/yith-wcan-shortcodes.min.js
https://discountcctvsupplier.co.uk/wp-includes/js/dist/hooks.min.js
https://discountcctvsupplier.co.uk/wp-includes/js/dist/i18n.min.js
wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
//# sourceURL=wp-i18n-js-after
https://discountcctvsupplier.co.uk/wp-content/plugins/contact-form-7/includes/swv/js/index.js
var wpcf7 = {
"api": {
"root": "https:\/\/discountcctvsupplier.co.uk\/wp-json\/",
"namespace": "contact-form-7\/v1"
},
"cached": 1
};
//# sourceURL=contact-form-7-js-before
https://discountcctvsupplier.co.uk/wp-content/plugins/contact-form-7/includes/js/index.js
var wc_add_to_cart_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https://discountcctvsupplier.co.uk/cart-2/","is_cart":"","cart_redirect_after_add":"no"};
//# sourceURL=wc-add-to-cart-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js
var aws_vars = {"sale":"Sale!","sku":"SKU: ","showmore":"View all results","noresults":"Nothing found"};
//# sourceURL=aws-script-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/advanced-woo-search/assets/js/common.min.js
dataLayer.push({"ecommerce":{"currency":"GBP","value":116.64,"items":[{"item_id":23625,"item_name":"Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B 4MP TriGuard 3.0 Bullet IP Camera – Black\/White","sku":"UV-IPC2B14SE-ADF28KMC-WP-I1-B","price":116.64,"stocklevel":null,"stockstatus":"instock","google_business_vertical":"retail","item_category":"Bullet Uniview IP Cameras","id":23625}]},"event":"view_item"});
//# sourceURL=gtm4wp-additional-datalayer-pushes-js-after
https://discountcctvsupplier.co.uk/wp-content/plugins/duracelltomi-google-tag-manager/dist/js/gtm4wp-ecommerce-generic.js
https://discountcctvsupplier.co.uk/wp-content/plugins/duracelltomi-google-tag-manager/dist/js/gtm4wp-woocommerce.js
var wc_facebook_signals_params = {"ajax_url":"https://discountcctvsupplier.co.uk/wp-admin/admin-ajax.php","nonce":"148289fe19","action":"wc_facebook_update_signals_state"};
//# sourceURL=wc-facebook-signals-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/facebook-for-woocommerce/assets/js/facebook-for-woocommerce-signals.js
https://discountcctvsupplier.co.uk/wp-content/plugins/wp-whatsapp/assets/dist/js/njt-whatsapp.js
var njt_wa_global = {"ajax_url":"https://discountcctvsupplier.co.uk/wp-admin/admin-ajax.php","nonce":"78aa7770be","defaultAvatarSVG":"\u003Csvg width=\"48px\" height=\"48px\" class=\"nta-whatsapp-default-avatar\" version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n viewBox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512;\" xml:space=\"preserve\"\u003E\n \u003Cpath style=\"fill:#EDEDED;\" d=\"M0,512l35.31-128C12.359,344.276,0,300.138,0,254.234C0,114.759,114.759,0,255.117,0\n S512,114.759,512,254.234S395.476,512,255.117,512c-44.138,0-86.51-14.124-124.469-35.31L0,512z\"/\u003E\n \u003Cpath style=\"fill:#55CD6C;\" d=\"M137.71,430.786l7.945,4.414c32.662,20.303,70.621,32.662,110.345,32.662\n c115.641,0,211.862-96.221,211.862-213.628S371.641,44.138,255.117,44.138S44.138,137.71,44.138,254.234\n c0,40.607,11.476,80.331,32.662,113.876l5.297,7.945l-20.303,74.152L137.71,430.786z\"/\u003E\n \u003Cpath style=\"fill:#FEFEFE;\" d=\"M187.145,135.945l-16.772-0.883c-5.297,0-10.593,1.766-14.124,5.297\n c-7.945,7.062-21.186,20.303-24.717,37.959c-6.179,26.483,3.531,58.262,26.483,90.041s67.09,82.979,144.772,105.048\n c24.717,7.062,44.138,2.648,60.028-7.062c12.359-7.945,20.303-20.303,22.952-33.545l2.648-12.359\n c0.883-3.531-0.883-7.945-4.414-9.71l-55.614-25.6c-3.531-1.766-7.945-0.883-10.593,2.648l-22.069,28.248\n c-1.766,1.766-4.414,2.648-7.062,1.766c-15.007-5.297-65.324-26.483-92.69-79.448c-0.883-2.648-0.883-5.297,0.883-7.062\n l21.186-23.834c1.766-2.648,2.648-6.179,1.766-8.828l-25.6-57.379C193.324,138.593,190.676,135.945,187.145,135.945\"/\u003E\n \u003C/svg\u003E","defaultAvatarUrl":"https://discountcctvsupplier.co.uk/wp-content/plugins/wp-whatsapp/assets/img/whatsapp_logo.svg","timezone":"+00:00","i18n":{"online":"Online","offline":"Offline"},"urlSettings":{"onDesktop":"api","onMobile":"api","openInNewTab":"ON"}};
//# sourceURL=nta-js-global-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/wp-whatsapp/assets/js/whatsapp-button.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woo-fly-cart/assets/perfect-scrollbar/js/perfect-scrollbar.jquery.min.js
var wc_cart_fragments_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","cart_hash_key":"wc_cart_hash_8bd68889a1dfd849a8a2b7de551ca5ea","fragment_name":"wc_fragments_8bd68889a1dfd849a8a2b7de551ca5ea","request_timeout":"5000"};
//# sourceURL=wc-cart-fragments-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js
var woofc_vars = {"wc_ajax_url":"/?wc-ajax=%%endpoint%%","nonce":"2b64c7aa66","scrollbar":"yes","auto_show":"yes","auto_show_normal":"yes","confetti":"","show_cart":"no","show_checkout":"no","delay":"300","undo_remove":"yes","confirm_remove":"no","instant_checkout":"no","instant_checkout_open":"no","confirm_empty":"no","confirm_empty_text":"Do you want to empty the cart?","confirm_remove_text":"Do you want to remove this item?","undo_remove_text":"Undo?","removed_text":"%s was removed.","manual_show":"","reload":"no","suggested_carousel":"1","save_for_later_carousel":"1","upsell_funnel_carousel":"1","slick_params":"{\"slidesToShow\":1,\"slidesToScroll\":1,\"dots\":true,\"arrows\":false,\"autoplay\":false,\"autoplaySpeed\":3000,\"rtl\":false}","confetti_params":"{\"particleCount\":100,\"spread\":70,\"origin\":{\"y\":0.6}}","is_cart":"","is_checkout":"","cart_url":"","hide_count_empty":"yes","wc_checkout_js":"https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/frontend/checkout.js"};
//# sourceURL=woofc-frontend-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/woo-fly-cart/assets/js/frontend.js
https://discountcctvsupplier.co.uk/wp-content/themes/hello-elementor/assets/js/hello-frontend.js
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js
var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https://discountcctvsupplier.co.uk/wp-admin/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}};
//# sourceURL=wc-order-attribution-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/facebook-for-woocommerce/assets/js/frontend/pixel-events.js
if (typeof clientParamBuilder !== "undefined" && !/(?:^|;\s*)wc_facebook_signals_state=held(?:;|$)/.test(document.cookie)) {
clientParamBuilder.processAndCollectAllParams(window.location.href);
}
//# sourceURL=facebook-capi-param-builder-js-after
var wooaa_vars = {"wc_ajax_url":"/?wc-ajax=%%endpoint%%","nonce":"ee25945ce3","product_types":"all","ignore_btn_class":".disabled,.wpc-disabled,.wooaa-disabled,.wooco-disabled,.woosb-disabled,.woobt-disabled,.woosg-disabled,.woofs-disabled,.woopq-disabled,.wpcpo-disabled,.wpcbn-btn,.wpcme-btn,.wpcev-btn,.wpcuv-update","ignore_form_data":"","cart_url":"https://discountcctvsupplier.co.uk/cart-2/","cart_redirect_after_add":"no"};
//# sourceURL=wooaa-frontend-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/wpc-ajax-add-to-cart/assets/js/frontend.js
!function (w, d, t) {
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{},ttq._partner=ttq._partner||"WooCommerce";var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=i+"?sdkid="+e+"&lib="+t;var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)};
ttq.load('D6JC3HJC77UCBL6SE0N0');
}(window, document, 'ttq');
//# sourceURL=tiktok-pixel-tracking-handle-header-js-after
/* WooCommerce Facebook Integration Event Tracking */
fbq('set', 'agent', (function(){var a='woocommerce_0-10.9.4-3.7.6';if(window.__wc_fb_page_generated&&(Math.floor(Date.now()/1000)-window.__wc_fb_page_generated)>1800){a=a.replace(/(\d+\.\d+\.\d+)/,'$1_c');}return a;})(), '1071403255027834');
window.wcFacebookPixelFiredEvents = window.wcFacebookPixelFiredEvents || {};
if (!window.wcFacebookPixelFiredEvents["391655c5-a2ea-413a-a4d8-f129960a0599"]) {
window.wcFacebookPixelFiredEvents["391655c5-a2ea-413a-a4d8-f129960a0599"] = true;
var isStale = window.__wc_fb_page_generated && (Math.floor(Date.now()/1000) - window.__wc_fb_page_generated) > 1800;
if (window.FacebookSignals && typeof window.FacebookSignals.trackEvent === 'function') {
window.FacebookSignals.trackEvent('PageView', {
"source": "woocommerce_0",
"version": "10.9.4",
"pluginVersion": "3.7.6"
}, null, 'track', isStale ? null : "391655c5-a2ea-413a-a4d8-f129960a0599");
} else if (isStale) {
fbq('track', 'PageView', {
"source": "woocommerce_0",
"version": "10.9.4",
"pluginVersion": "3.7.6"
});
} else {
fbq('track', 'PageView', {
"source": "woocommerce_0",
"version": "10.9.4",
"pluginVersion": "3.7.6"
}, {
"eventID": "391655c5-a2ea-413a-a4d8-f129960a0599"
});
}
}
/* WooCommerce Facebook Integration Event Tracking */
fbq('set', 'agent', (function(){var a='woocommerce_0-10.9.4-3.7.6';if(window.__wc_fb_page_generated&&(Math.floor(Date.now()/1000)-window.__wc_fb_page_generated)>1800){a=a.replace(/(\d+\.\d+\.\d+)/,'$1_c');}return a;})(), '1071403255027834');
window.wcFacebookPixelFiredEvents = window.wcFacebookPixelFiredEvents || {};
if (!window.wcFacebookPixelFiredEvents["85578823-e9b3-42f8-8689-8777cdeb4c00"]) {
window.wcFacebookPixelFiredEvents["85578823-e9b3-42f8-8689-8777cdeb4c00"] = true;
var isStale = window.__wc_fb_page_generated && (Math.floor(Date.now()/1000) - window.__wc_fb_page_generated) > 1800;
if (window.FacebookSignals && typeof window.FacebookSignals.trackEvent === 'function') {
window.FacebookSignals.trackEvent('ViewContent', {
"source": "woocommerce_0",
"version": "10.9.4",
"pluginVersion": "3.7.6",
"content_name": "Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B 4MP TriGuard 3.0 Bullet IP Camera \u2013 Black\/White",
"content_ids": "[\"23625\"]",
"content_type": "product",
"contents": "[{\"id\":\"23625\",\"quantity\":1}]",
"content_category": "UNIVIEW IP CAMERAS",
"value": "116.64",
"currency": "GBP"
}, null, 'track', isStale ? null : "85578823-e9b3-42f8-8689-8777cdeb4c00");
} else if (isStale) {
fbq('track', 'ViewContent', {
"source": "woocommerce_0",
"version": "10.9.4",
"pluginVersion": "3.7.6",
"content_name": "Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B 4MP TriGuard 3.0 Bullet IP Camera \u2013 Black\/White",
"content_ids": "[\"23625\"]",
"content_type": "product",
"contents": "[{\"id\":\"23625\",\"quantity\":1}]",
"content_category": "UNIVIEW IP CAMERAS",
"value": "116.64",
"currency": "GBP"
});
} else {
fbq('track', 'ViewContent', {
"source": "woocommerce_0",
"version": "10.9.4",
"pluginVersion": "3.7.6",
"content_name": "Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B 4MP TriGuard 3.0 Bullet IP Camera \u2013 Black\/White",
"content_ids": "[\"23625\"]",
"content_type": "product",
"contents": "[{\"id\":\"23625\",\"quantity\":1}]",
"content_category": "UNIVIEW IP CAMERAS",
"value": "116.64",
"currency": "GBP"
}, {
"eventID": "85578823-e9b3-42f8-8689-8777cdeb4c00"
});
}
}
//# sourceURL=facebook-for-woocommerce-inline-js-after
https://discountcctvsupplier.co.uk/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js
https://discountcctvsupplier.co.uk/wp-content/plugins/elementor/assets/js/frontend-modules.min.js
https://discountcctvsupplier.co.uk/wp-includes/js/jquery/ui/core.min.js
var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnX":"Share on X","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":993,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":767,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":992,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1024,"default_value":1200,"direction":"max","is_enabled":true},"laptop":{"label":"Laptop","value":1280,"default_value":1366,"direction":"max","is_enabled":true},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":true},"version":"4.2.0","is_static":false,"experimentalFeatures":{"additional_custom_breakpoints":true,"container":true,"e_panel_promotions":true,"hello-theme-header-footer":true,"nested-elements":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true},"urls":{"assets":"https:\/\/discountcctvsupplier.co.uk\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/discountcctvsupplier.co.uk\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/discountcctvsupplier.co.uk\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"72d8a3d847","atomicFormsSendForm":"94ea133887"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"viewport_tablet":992,"active_breakpoints":["viewport_mobile","viewport_tablet","viewport_tablet_extra","viewport_laptop"],"viewport_laptop":1280,"stretched_section_container":"#main","viewport_mobile":767,"viewport_tablet_extra":1024,"lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","hello_header_logo_type":"title","hello_header_menu_layout":"horizontal","hello_footer_logo_type":"logo"},"post":{"id":23625,"title":"Professional%20Uniview%20UV-IPC2B14SE-ADF28KMC-WP-I1-B%204MP%20TriGuard%203.0%20Bullet%20IP%20Camera%20%E2%80%93%20Black%2FWhite%20-%20AAA%20CCTV","excerpt":"<strong>Features:<\/strong>\r\n\r\n\u2611 Brand: Uniview\r\n\u2611 Model: Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B\r\n\u2611 Technology: TriGuard 3.0\r\n\u2611 MP: 4MP\r\n\u2611 Camera Type: Bullet IP Camera\r\n\u2611 High-Quality 4MP Imaging with 1\/1.8\" CMOS Sensor\r\n\u2611 ColorHunter with Wise-ISP for 24\/7 Full-Colour Imaging\r\n\u2611 Intelligent AI Human, Vehicle & Non-Motor Vehicle Detection\r\n\u2611 Ultra 265 \/ H.265 \/ H.264 \/ MJPEG Video Compression\r\n\u2611 Built-in Dual Microphones & Speaker","featuredImage":"https:\/\/discountcctvsupplier.co.uk\/wp-content\/uploads\/2026\/07\/2222e81b-5eff-4b9a-9e75-13fe161aa0a6-1024x819.webp"}};
//# sourceURL=elementor-frontend-js-before
https://discountcctvsupplier.co.uk/wp-content/plugins/elementor/assets/js/frontend.min.js
var ekit_config = {"ajaxurl":"https://discountcctvsupplier.co.uk/wp-admin/admin-ajax.php","nonce":"253a7c872b"};
//# sourceURL=ekit-core-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widgets/core.js
https://discountcctvsupplier.co.uk/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widgets/nav-menu.js
var njt_wa = {"gdprStatus":"","accounts":[{"accountId":23526,"accountName":"CCTV HelpDesk","avatar":"","number":"+447305398061","title":"Hello, Click here...","predefinedText":"","willBeBackText":"I will be back in [njwa_time_work]","dayOffsText":"I will be back soon","isAlwaysAvailable":"ON","daysOfWeekWorking":{"sunday":{"isWorkingOnDay":"OFF","workHours":[{"startTime":"08:00","endTime":"17:30"}]},"monday":{"isWorkingOnDay":"OFF","workHours":[{"startTime":"08:00","endTime":"17:30"}]},"tuesday":{"isWorkingOnDay":"OFF","workHours":[{"startTime":"08:00","endTime":"17:30"}]},"wednesday":{"isWorkingOnDay":"OFF","workHours":[{"startTime":"08:00","endTime":"17:30"}]},"thursday":{"isWorkingOnDay":"OFF","workHours":[{"startTime":"08:00","endTime":"17:30"}]},"friday":{"isWorkingOnDay":"OFF","workHours":[{"startTime":"08:00","endTime":"17:30"}]},"saturday":{"isWorkingOnDay":"OFF","workHours":[{"startTime":"08:00","endTime":"17:30"}]}}}],"options":{"display":{"displayCondition":"showAllPage","includePages":[],"excludePages":[],"includePosts":[],"showOnDesktop":"ON","showOnMobile":"ON","time_symbols":"h:m"},"styles":{"title":"Start a Conversation","responseText":"The team typically replies in a few minutes.","description":"Hi! Click one of our member below to chat on \u003Cstrong\u003EWhatsApp\u003C/strong\u003E","backgroundColor":"#2db742","textColor":"#fff","titleSize":"18","accountNameSize":"14","descriptionTextSize":"12","regularTextSize":"11","scrollHeight":"500","isShowScroll":"OFF","isShowResponseText":"OFF","btnLabel":"Need Help?","btnLabelWidth":"95","btnPosition":"right","btnLeftDistance":"30","btnRightDistance":"30","btnBottomDistance":"30","isShowBtnLabel":"ON","isShowGDPR":"OFF","gdprContent":"Please accept our \u003Ca href=\"https://ninjateam.org/privacy-policy/\"\u003Eprivacy policy\u003C/a\u003E first to start a conversation."},"analytics":{"enabledGoogle":"OFF","enabledFacebook":"OFF","enabledGoogleGA4":"OFF"}}};
//# sourceURL=nta-js-popup-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/wp-whatsapp/assets/js/whatsapp-popup.js
var glaGtagData = {"currency_minor_unit":"2","products":{"23625":{"name":"Professional Uniview UV-IPC2B14SE-ADF28KMC-WP-I1-B 4MP TriGuard 3.0 Bullet IP Camera \u2013 Black/White","price":116.64}}};
//# sourceURL=gla-gtag-events-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/google-listings-and-ads/js/build/gtag-events.js
var wcpa_front = {"api_nonce":null,"root":"https://discountcctvsupplier.co.uk/wp-json/wcpa/front/","assets_url":"https://discountcctvsupplier.co.uk/wp-content/plugins/woo-custom-product-addons-pro/assets/","date_format":"F j, Y","time_format":"g:i a","validation_messages":{"uploadPending":"Files are being uploaded.","formError":"Fix the errors shown above","checkCaptcha":"Tick the \"I'm not a robot\" verification","requiredError":"Field is required","allowedCharsError":"Characters %s is not supported","patternError":"Pattern not matching","minlengthError":"Minimum %s characters required","maxlengthError":"Maximum %s characters allowed","minValueError":"Minimum value is %s","maxValueError":"Maximum value is %s","minFieldsError":"Select minimum %s fields","maxFieldsError":"Select maximum %s fields","maxFileCountError":"Maximum %s files allowed","minFileCountError":"Minimum %s files required","maxFileSizeError":"Maximum file size should be %s","minFileSizeError":"Minimum file size should be %s","fileExtensionError":"File type is not supported","quantityRequiredError":"Please enter a valid quantity","otherFieldError":"Other value required","charleftMessage":"%s characters left","validEmailError":"Provide a valid email address","validUrlError":"Provide a valid URL","minQuantityError":"Minimum quantity required is %s","maxQuantityError":"Maximum quantity allowed is %s","groupMinError":"Requires minimum %s","groupMaxError":"Allowed maximum %s","gt_translate_keys":["uploadPending","formError","checkCaptcha","requiredError","allowedCharsError","patternError","minlengthError","maxlengthError","minValueError","maxValueError","minFieldsError","maxFieldsError","maxFileCountError","minFileCountError","maxFileSizeError","minFileSizeError","fileExtensionError","quantityRequiredError","otherFieldError","charleftMessage","validEmailError","validUrlError","minQuantityError","maxQuantityError","groupMinError","groupMaxError"]},"google_map_api":"","reCAPTCHA_site_key":"","recaptcha_v":"v2","ajax_add_to_cart":"","summary_order":["option_price","product_price","fee","discount","total_price"],"change_price_as_quantity":"","show_field_price_x_quantity":"","disable_validation_scroll":"","gallery_update_field":"last_field","update_top_price":"1","datepicker_disableMobile":"","radio_unselect_img":"","strings":{"place_selector_street":"Street Address","place_selector_city":"City","place_selector_state":"State","place_selector_zip":"Zip Code","place_selector_country":"Country","place_selector_latitude":"Latitude","place_selector_longitude":"Longitude","file_button_text":"Choose File","file_placeholder":"{count} Files","file_droppable_action_text":"Browse","file_droppable_desc_text":"or {action} to choose a file","file_upload_completed":"Completed","other":"Other","clearSelection":"Clear Selection","repeater_add":"Add Field","repeater_remove":"Remove Field","file_droppable_text":"Drag and Drop Files Here","to":" to ","gt_translate_keys":["place_selector_street","place_selector_city","place_selector_state","place_selector_zip","place_selector_country","place_selector_latitude","place_selector_longitude","file_button_text","file_placeholder","file_droppable_action_text","file_droppable_desc_text","file_upload_completed","other","clearSelection","repeater_add","repeater_remove","file_droppable_text","to"]},"i18n_view_cart":"View cart","options_price_format":"({price})","wc_price_format":"%1$s%2$s","hide_option_price_zero":"","discount_show_field_price":"1","discount_strike_field_price":"1","discount_strike_summary_price":"1","discount_strike_total_price":"1","responsive_layout":"","product_price_parent_selector":".summary","accordion_open":"first_opened","woo_price_suffix":"","prices_include_tax":"","isAdmin":"","cart_url":"https://discountcctvsupplier.co.uk/cart-2/","is_cart":"","user_roles":["guest"],"google_map_countries":"","init_triggers":["qv_loader_stop","quick_view_pro:load","elementor/popup/show","xt_wooqv-product-loaded","woodmart-quick-view-displayed","porto_init_countdown","woopack.quickview.ajaxload","quick-view-displayed","update_lazyload","riode_load","yith_infs_added_elem","jet-popup/show-event/after-show","etheme_quick_view_content_loaded","wc_backbone_modal_loaded"],"wc_currency_symbol":"\u00a3","wc_thousand_sep":",","wc_price_decimals":"2","price_format":"%1$s%2$s","wc_decimal_sep":".","wc_currency_pos":"left","mc_unit":"1","addons":[],"upload_method":"normal"};
//# sourceURL=wcpa-front-js-extra
https://discountcctvsupplier.co.uk/wp-content/plugins/woo-custom-product-addons-pro/assets/js/front-end.js
document.addEventListener( 'wpcf7submit', function ( event ) {
var detail = event.detail || {};
if ( 'mail_sent' !== detail.status ) {
return;
}
var apiResponse = detail.apiResponse || {};
if ( ! apiResponse.fb_pxl_code ) {
return;
}
try {
var s = document.createElement( 'script' );
s.textContent = apiResponse.fb_pxl_code;
document.head.appendChild( s );
} catch ( e ) {
// no-op
}
}, false );
jQuery(document).ready(function () {
if (typeof wp !== "undefined" && wp.hooks) {
wp.hooks.addAction('wcpa_fields_updated', 'wcpa', function (price, _fieldData) {
let ele = document.querySelector('.summary .price');
if(ele){
let totalPrice_exc_tax_fixed = parseFloat(price.totalPrice_exc_tax).toFixed(2);
let totalPrice_inc_tax_fixed = parseFloat(price.totalPrice_inc_tax).toFixed(2);
let code = '<span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">£</span>'+totalPrice_exc_tax_fixed+'</bdi></span> <small style="font-size: 12px;">ex. VAT</small> - <span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">£</span>'+totalPrice_inc_tax_fixed+'</bdi></span> <small style="font-size: 12px;">inc. VAT</small>';
ele.innerHTML = code;
}
})
}
});
jQuery(document).ready(function($) {
var wt_related_products = jQuery('.wt-related-products .owl-carousel');if ("function" === typeof wt_related_products.owlCarousel) {
wt_related_products.owlCarousel({
loop: false,
margin: 10,
nav: true,
navText: [
"<i class='dashicons dashicons-arrow-left-alt2 wt-left'></i>",
"<i class='dashicons dashicons-arrow-right-alt2 wt-right'></i>"
],
//autoplay: true,
autoplayHoverPause: true,
responsive: {
0: {
items: 1 },
600: {
items: 2 },
1000: {
items: 6 }
}
});
}
jQuery(".wt-related-products>.carousel-wrap>.owl-carousel>.owl-stage-outer>.owl-stage>.owl-item>div[class*='col-']").removeClass (function (index, css) {
return (css.match (/(^|\s)col-\S+/g) || []).join(' ');
});
/* Theme compatability for hover effect*/
});