// source --> https://awegods.com/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=3.5.0 jQuery(function(e){if("undefined"==typeof wc_add_to_cart_params)return!1;var t=function(){e(document.body).on("click",".add_to_cart_button",this.onAddToCart).on("click",".remove_from_cart_button",this.onRemoveFromCart).on("added_to_cart",this.updateButton).on("added_to_cart",this.updateCartPage).on("added_to_cart removed_from_cart",this.updateFragments)};t.prototype.onAddToCart=function(t){var a=e(this);if(a.is(".ajax_add_to_cart")){if(!a.attr("data-product_id"))return!0;t.preventDefault(),a.removeClass("added"),a.addClass("loading");var o={};e.each(a.data(),function(t,a){o[t]=a}),e(document.body).trigger("adding_to_cart",[a,o]),e.post(wc_add_to_cart_params.wc_ajax_url.toString().replace("%%endpoint%%","add_to_cart"),o,function(t){t&&(t.error&&t.product_url?window.location=t.product_url:"yes"!==wc_add_to_cart_params.cart_redirect_after_add?e(document.body).trigger("added_to_cart",[t.fragments,t.cart_hash,a]):window.location=wc_add_to_cart_params.cart_url)})}},t.prototype.onRemoveFromCart=function(t){var a=e(this),o=a.closest(".woocommerce-mini-cart-item");t.preventDefault(),o.block({message:null,overlayCSS:{opacity:.6}}),e.post(wc_add_to_cart_params.wc_ajax_url.toString().replace("%%endpoint%%","remove_from_cart"),{cart_item_key:a.data("cart_item_key")},function(t){t&&t.fragments?e(document.body).trigger("removed_from_cart",[t.fragments,t.cart_hash,a]):window.location=a.attr("href")}).fail(function(){window.location=a.attr("href")})},t.prototype.updateButton=function(t,a,o,r){(r=void 0!==r&&r)&&(r.removeClass("loading"),r.addClass("added"),wc_add_to_cart_params.is_cart||0!==r.parent().find(".added_to_cart").length||r.after(' '+wc_add_to_cart_params.i18n_view_cart+""),e(document.body).trigger("wc_cart_button_updated",[r]))},t.prototype.updateCartPage=function(){var t=window.location.toString().replace("add-to-cart","added-to-cart");e(".shop_table.cart").load(t+" .shop_table.cart:eq(0) > *",function(){e(".shop_table.cart").stop(!0).css("opacity","1").unblock(),e(document.body).trigger("cart_page_refreshed")}),e(".cart_totals").load(t+" .cart_totals:eq(0) > *",function(){e(".cart_totals").stop(!0).css("opacity","1").unblock(),e(document.body).trigger("cart_totals_refreshed")})},t.prototype.updateFragments=function(t,a){a&&(e.each(a,function(t){e(t).addClass("updating").fadeTo("400","0.6").block({message:null,overlayCSS:{opacity:.6}})}),e.each(a,function(t,a){e(t).replaceWith(a),e(t).stop(!0).css("opacity","1").unblock()}),e(document.body).trigger("wc_fragments_loaded"))},new t}); // source --> https://awegods.com/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4 /*! * JavaScript Cookie v2.1.4 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */ !function(e){var n=!1;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var o=window.Cookies,t=window.Cookies=e();t.noConflict=function(){return window.Cookies=o,t}}}(function(){function e(){for(var e=0,n={};e1){if("number"==typeof(i=e({path:"/"},t.defaults,i)).expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}i.expires=i.expires?i.expires.toUTCString():"";try{c=JSON.stringify(r),/^[\{\[]/.test(c)&&(r=c)}catch(m){}r=o.write?o.write(r,n):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=(n=(n=encodeURIComponent(String(n))).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var f="";for(var s in i)i[s]&&(f+="; "+s,!0!==i[s]&&(f+="="+i[s]));return document.cookie=n+"="+r+f}n||(c={});for(var p=document.cookie?document.cookie.split("; "):[],d=/(%[0-9A-Z]{2})+/g,u=0;u https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-outbound-click-tracker.js?ver=1.11.5 jQuery( function() { var gtm4wp_localdomain = window.location.hostname.replace( "www.", "" ); jQuery( "a[href^=http]" ) .each( function() { var gtm4wp_linkhref = jQuery( this ).attr( "href" ); if ( gtm4wp_linkhref.indexOf( gtm4wp_localdomain ) == -1 ) { jQuery( this ) .on( "click", function() { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.outboundClick', 'linkhref': jQuery( this ).attr( "href" ) }); }) .attr( "target", "_blank" ); } }); }); // source --> https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-download-tracker.js?ver=1.11.5 function gtm4wp_track_downloads(track_extensions) { var gtm4wp_extensions_to_track = track_extensions.split(","); for ( var i = 0; i < gtm4wp_extensions_to_track.length; i++ ) { jQuery( "a[href$=\\." + gtm4wp_extensions_to_track[i].toLowerCase() + "], a[href$=\\." + gtm4wp_extensions_to_track[i].toUpperCase() + "]" ) .on( "click", function() { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.downloadClick', 'linkhref': jQuery( this ).attr( "href" ) }); }) .attr( "target", "_blank" ); } // end for i }; // source --> https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-contact-form-7-tracker.js?ver=1.11.5 jQuery( function() { jQuery( ".wpcf7" ) .on( 'wpcf7mailsent', function( e ) { var gtm4wp_cf7formid = '(not set)'; if ( e && e.detail && e.detail.contactFormId ) { gtm4wp_cf7formid = e.detail.contactFormId; } else if ( e && e.originalEvent && e.originalEvent.detail && e.originalEvent.detail.contactFormId ) { gtm4wp_cf7formid = e.originalEvent.detail.contactFormId; } var gtm4wp_cf7forminputs = []; if ( e && e.detail && e.detail.inputs ) { gtm4wp_cf7forminputs = e.detail.inputs; } else if ( e && e.originalEvent && e.originalEvent.detail && e.originalEvent.detail.inputs ) { gtm4wp_cf7forminputs = e.originalEvent.detail.inputs; } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.contactForm7Submitted', 'gtm4wp.cf7formid': gtm4wp_cf7formid, 'gtm4wp.cf7inputs': gtm4wp_cf7forminputs }); }); }); // source --> https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-form-move-tracker.js?ver=1.11.5 jQuery( function() { jQuery( ":input" ) .on( "focus", function() { var input = jQuery(this); var inputID = input.attr("id") || "(no input ID)"; var inputName = input.attr("name") || "(no input name)"; var inputClass = input.attr("class") || "(no input class)"; var form = jQuery(this.form); var formID = form.attr("id") || "(no form ID)"; var formName = form.attr("name") || "(no form name)"; var formClass = form.attr("class") || "(no form class)"; window[ gtm4wp_datalayer_name ].push({ 'event' : 'gtm4wp.formElementEnter', 'inputID' : inputID, 'inputName' : inputName, 'inputClass': inputClass, 'formID' : formID, 'formName' : formName, 'formClass': formClass }); }) .on( "blur", function() { var input = jQuery(this); var inputID = input.attr("id") || "(no input ID)"; var inputName = input.attr("name") || "(no input name)"; var inputClass = input.attr("class") || "(no input class)"; var form = jQuery(this.form); var formID = form.attr("id") || "(no form ID)"; var formName = form.attr("name") || "(no form name)"; var formClass = form.attr("class") || "(no form class)"; window[ gtm4wp_datalayer_name ].push({ 'event' : 'gtm4wp.formElementLeave', 'inputID' : inputID, 'inputName' : inputName, 'inputClass': inputClass, 'formID' : formID, 'formName' : formName, 'formClass': formClass }); }); }); // source --> https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-social-tracker.js?ver=1.11.5 jQuery( function() { if ( typeof FB != "undefined" ) { FB.Event.subscribe( 'edge.create', function( href, widget ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.socialAction', 'network': 'facebook', 'socialAction': 'like', 'opt_target': href, 'opt_pagePath': window.location.href }); }); FB.Event.subscribe( 'edge.remove', function( href, widget ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.socialAction', 'network': 'facebook', 'socialAction': 'unlike', 'opt_target': href, 'opt_pagePath': window.location.href }); }); FB.Event.subscribe( 'comment.create', function( href, commentID ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.socialAction', 'network': 'facebook', 'socialAction': 'comment', 'opt_target': href, 'opt_pagePath': window.location.href }); }); FB.Event.subscribe( 'comment.remove', function( href, commentID ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.socialAction', 'network': 'facebook', 'socialAction': 'uncomment', 'opt_target': href, 'opt_pagePath': window.location.href }); }); FB.Event.subscribe( 'message.send', function( response ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.socialAction', 'network': 'facebook', 'socialAction': 'send', 'opt_target': response, 'opt_pagePath': window.location.href }); }); } // end of Facebook social events if ( typeof window.twttr == "undefined" ) { window.twttr = (function ( d, s, id ) { var t, js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js=d.createElement(s); js.id=id; js.src="https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); return window.twttr || (t = { _e: [], ready: function(f) { t._e.push(f); } }); } (document, "script", "twitter-wjs")); } // end of loading Twitter JS if ( typeof window.twttr != "undefined" ) { window.twttr.ready(function ( twttr ) { twttr.events.bind( 'tweet', function ( intent_event ) { if ( intent_event ) { var label = intent_event.data.tweet_id; if (typeof label != 'undefined' && label) { if(label == 'label'){ label = window.location.href; } }else{ label = window.location.href; } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.socialAction', 'network': 'twitter', 'socialAction': 'tweet', 'opt_target': label, 'opt_pagePath': window.location.href }); } }); window.twttr.events.bind( 'follow', function ( intent_event ) { if ( intent_event ) { var label = intent_event.data.user_id + " (" + intent_event.data.screen_name + ")"; window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.socialAction', 'network': 'twitter', 'socialAction': 'follow', 'opt_target': label, 'opt_pagePath': window.location.href }); } }); }); } }); // source --> https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-youtube.js?ver=1.11.5 var gtm4wp_youtube_percentage_tracking = 10; var gtm4wp_youtube_percentage_tracking_timeouts = {}; var gtm4wp_youtube_percentage_tracking_marks = {}; if ( typeof onYouTubeIframeAPIReady === "undefined" ) { window.onYouTubeIframeAPIReady = function() { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaApiReady', 'mediaType': 'youtube' }); jQuery( "iframe[src^='https://www.youtube.com/embed']" ).each( function() { var gtm4wp_jqthis = jQuery( this ); var playerID = gtm4wp_jqthis.attr( "id" ); if ( ( playerID === undefined ) || ( playerID === "" ) ) { var _gtm4wp_temp = gtm4wp_jqthis.attr( "src" ).split( "?" ); var _gtm4wp_temp2 = _gtm4wp_temp[ 0 ].split( "/" ); playerID = "youtubeplayer_" + _gtm4wp_temp2[ _gtm4wp_temp2.length-1 ]; gtm4wp_jqthis.attr( "id", playerID ); } var gtm4wp_yturl = gtm4wp_jqthis.attr( "src" ); if ( gtm4wp_yturl.indexOf( "enablejsapi=1" ) == -1 ) { if ( gtm4wp_yturl.indexOf( "?" ) == -1 ) { gtm4wp_yturl += "?"; } gtm4wp_yturl += "&enablejsapi=1&origin=" + document.location.protocol + "//" + document.location.hostname; gtm4wp_jqthis.attr( "src", gtm4wp_yturl ); } player = new YT.Player( playerID, { events: { 'onReady': gtm4wp_onYouTubePlayerReady, 'onStateChange': gtm4wp_onYouTubePlayerStateChange, 'onPlaybackQualityChange': gtm4wp_onYouTubePlaybackQualityChange, 'onPlaybackRateChange': gtm4wp_onYouTubePlaybackRateChange, 'onError': gtm4wp_onYouTubeError, 'onApiChange': gtm4wp_onYouTubeApiChange } }); }); }; var tag = document.createElement( 'script' ); tag.src = "//www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName( 'script' )[0]; firstScriptTag.parentNode.insertBefore( tag, firstScriptTag ); } else { var gtm4wp_err = new Error( "Another code is already utilizing YouTube API, GTM4WP plugin can not load YouTube tracking!" ); throw gtm4wp_err; } function gtm4wp_onYouTubePlayerReady( event ) { var videodata = event.target.getVideoData(); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaPlayerReady', 'mediaType': 'youtube', 'mediaData': { 'id': videodata.video_id, 'author': videodata.author, 'title': videodata.title, 'url': event.target.getVideoUrl(), 'duration': event.target.getDuration() }, 'mediaCurrentTime': event.target.getCurrentTime() }); } function gtm4wp_onYouTubePlayerStateChange( event ) { var playerState = "unknown"; switch( event.data ) { case -1: playerState = "unstarted"; break; case YT.PlayerState.ENDED: playerState = "ended"; break; case YT.PlayerState.PLAYING: playerState = "play"; break; case YT.PlayerState.PAUSED: playerState = "pause"; break; case YT.PlayerState.BUFFERING: playerState = "buffering"; break; case YT.PlayerState.CUED: playerState = "cued"; break; } var videoId = event.target.getVideoData().video_id; if ( ( YT.PlayerState.PLAYING == event.data ) && ( gtm4wp_youtube_percentage_tracking > 0 ) ) { gtm4wp_youtube_percentage_tracking_timeouts[ videoId ] = setInterval(function() { gtm4wp_onYouTubePercentageChange( event ); }, 1000); } else { if ( gtm4wp_youtube_percentage_tracking_timeouts[ videoId ] ) { clearInterval( gtm4wp_youtube_percentage_tracking_timeouts[ videoId ] ); } } var videodata = event.target.getVideoData(); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaPlayerStateChange', 'mediaType': 'youtube', 'mediaData': { 'id': videodata.video_id, 'author': videodata.author, 'title': videodata.title, 'url': event.target.getVideoUrl(), 'duration': event.target.getDuration() }, 'mediaPlayerState': playerState, 'mediaCurrentTime': event.target.getCurrentTime() }); } function gtm4wp_onYouTubePlaybackQualityChange( event ) { var videodata = event.target.getVideoData(); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaPlayerEvent', 'mediaType': 'youtube', 'mediaData': { 'id': videodata.video_id, 'author': videodata.author, 'title': videodata.title, 'url': event.target.getVideoUrl(), 'duration': event.target.getDuration() }, 'mediaCurrentTime': event.target.getCurrentTime(), 'mediaPlayerEvent': 'quality-change', 'mediaPlayerEventParam': event.data }); } function gtm4wp_onYouTubePlaybackRateChange( event ) { var videodata = event.target.getVideoData(); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaPlayerEvent', 'mediaType': 'youtube', 'mediaData': { 'id': videodata.video_id, 'author': videodata.author, 'title': videodata.title, 'url': event.target.getVideoUrl(), 'duration': event.target.getDuration() }, 'mediaCurrentTime': event.target.getCurrentTime(), 'mediaPlayerEvent': 'ratechange', 'mediaPlayerEventParam': event.data }); } function gtm4wp_onYouTubeError( event ) { var videodata = event.target.getVideoData(); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaPlayerEvent', 'mediaType': 'youtube', 'mediaData': { 'id': videodata.video_id, 'author': videodata.author, 'title': videodata.title, 'url': event.target.getVideoUrl(), 'duration': event.target.getDuration() }, 'mediaCurrentTime': event.target.getCurrentTime(), 'mediaPlayerEvent': 'error', 'mediaPlayerEventParam': event.data }); } function gtm4wp_onYouTubeApiChange( event ) { var videodata = event.target.getVideoData(); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaPlayerEvent', 'mediaType': 'youtube', 'mediaData': { 'id': videodata.video_id, 'author': videodata.author, 'title': videodata.title, 'url': event.target.getVideoUrl(), 'duration': event.target.getDuration() }, 'mediaCurrentTime': event.target.getCurrentTime(), 'mediaPlayerEvent': 'api-change', 'mediaPlayerEventParam': event.data }); } function gtm4wp_onYouTubePercentageChange( event ) { var videoId = event.target.getVideoData().video_id; var videoCurrentTime = event.target.getCurrentTime(); var videoDuration = event.target.getDuration(); var videoPercentage = Math.floor( videoCurrentTime / videoDuration * 100 ); if ( typeof gtm4wp_youtube_percentage_tracking_marks[ videoId ] == "undefined" ) { gtm4wp_youtube_percentage_tracking_marks[ videoId ] = []; } var videodata = event.target.getVideoData(); for( var i=0; i<100; i+=gtm4wp_youtube_percentage_tracking ) { if ( ( videoPercentage > i ) && ( gtm4wp_youtube_percentage_tracking_marks[ videoId ].indexOf( i ) == -1 ) ) { gtm4wp_youtube_percentage_tracking_marks[ videoId ].push( i ); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.mediaPlaybackPercentage', 'mediaType': 'youtube', 'mediaData': { 'id': videodata.video_id, 'author': videodata.author, 'title': videodata.title, 'url': event.target.getVideoUrl(), 'duration': event.target.getDuration() }, 'mediaCurrentTime': event.target.getCurrentTime(), 'mediaPercentage': i }); } } }; // source --> https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/analytics-talk-content-tracking.js?ver=1.11.5 /* * Source: http://cutroni.com/blog/2012/02/21/advanced-content-tracking-with-google-analytics-part-1/ * Original authors: * - Nick Mihailovski * - Thomas Baekdal * - Avinash Kaushik * - Joost de Valk * - Eivind Savio * - Justin Cutroni * * Google Tag Manager dataLayer events added by: * Thomas Geiger * gtm4wp.com */ if ( "undefined" == typeof console ) { window.console = { log: function () {} }; } jQuery( function( $ ) { // Debug flag var debugMode = gtm4wp_scrollerscript_debugmode; // Default time delay before checking location var callBackTime = gtm4wp_scrollerscript_callbacktime; // # px before tracking a reader var readerLocation = gtm4wp_scrollerscript_readerlocation; // Set some flags for tracking & execution var timer = 0; var scroller = false; var endContent = false; var didComplete = false; // Set some time variables to calculate reading time var startTime = new Date(); var beginning = startTime.getTime(); var totalTime = 0; // Track the aticle load if ( !debugMode ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.reading.articleLoaded' }); } else { console.log( 'Article loaded' ); } // Check the location and track user function trackLocation() { bottom = $( window ).height() + $( window ).scrollTop(); height = $( document ).height(); // If user starts to scroll send an event if ( bottom > readerLocation && !scroller ) { currentTime = new Date(); scrollStart = currentTime.getTime(); timeToScroll = Math.round( ( scrollStart - beginning ) / 1000 ); if ( !debugMode ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.reading.startReading', 'timeToScroll': timeToScroll }); } else { console.log( 'Started reading ' + timeToScroll ); } scroller = true; } // If user has hit the bottom of the content send an event if ( bottom >= $( '#' + gtm4wp_scrollerscript_contentelementid ).scrollTop() + $( '#' + gtm4wp_scrollerscript_contentelementid ).innerHeight() && !endContent ) { currentTime = new Date(); contentScrollEnd = currentTime.getTime(); timeToContentEnd = Math.round( ( contentScrollEnd - scrollStart ) / 1000 ); if ( !debugMode ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.reading.contentBottom', 'timeToScroll': timeToContentEnd }); } else { console.log( 'End content section ' + timeToContentEnd ); } endContent = true; } // If user has hit the bottom of page send an event if ( bottom >= height && !didComplete ) { currentTime = new Date(); end = currentTime.getTime(); totalTime = Math.round( ( end - scrollStart ) / 1000 ); if ( !debugMode ) { if ( totalTime < gtm4wp_scrollerscript_scannertime ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.reading.readerType', 'readerType': 'scanner' }); } else { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.reading.readerType', 'readerType': 'reader' }); } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.reading.pagebottom', 'timeToScroll': totalTime }); } else { if ( totalTime < gtm4wp_scrollerscript_scannertime ) { console.log( 'The visitor seems to be a "scanner"' ); } else { console.log( 'The visitor seems to be a "reader"' ); } console.log( 'Bottom of page ' + totalTime ); } didComplete = true; } } // Track the scrolling and track location $( window ).scroll(function() { if ( timer ) { clearTimeout( timer ); } // Use a buffer so we don't call trackLocation too often. timer = setTimeout( trackLocation, callBackTime ); }); }); // source --> https://awegods.com/wp-content/plugins/duracelltomi-google-tag-manager/js/gtm4wp-woocommerce-enhanced.js?ver=1.11.5 var gtm4wp_last_selected_product_variation; var gtm4wp_changedetail_fired_during_pageload=false; function gtm4wp_handle_cart_qty_change() { jQuery( '.product-quantity input.qty' ).each(function() { var _original_value = jQuery( this ).prop( 'defaultValue' ); var _current_value = parseInt( jQuery( this ).val() ); if ( Number.isNaN( _current_value ) ) { _current_value = _original_value; } if ( _original_value != _current_value ) { var productdata = jQuery( this ).closest( '.cart_item' ).find( '.remove' ); var productprice = productdata.data( 'gtm4wp_product_price' ); if ( typeof productprice == "string" ) { productprice = parseFloat( productprice ); if ( isNaN( productprice ) ) { productprice = 0; } } else if ( typeof productprice != "number" ) { productprice = 0; } if ( _original_value < _current_value ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.addProductToCartEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'add': { 'products': [{ 'name': productdata.data( 'gtm4wp_product_name' ), 'id': productdata.data( 'gtm4wp_product_id' ), 'price': productprice.toFixed(2), 'category': productdata.data( 'gtm4wp_product_cat' ), 'variant': productdata.data( 'gtm4wp_product_variant' ), 'stocklevel': productdata.data( 'gtm4wp_product_stocklevel' ), 'brand': productdata.data( 'gtm4wp_product_brand' ), 'quantity': _current_value - _original_value }] } } }); } else { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.removeFromCartEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'remove': { 'products': [{ 'name': productdata.data( 'gtm4wp_product_name' ), 'id': productdata.data( 'gtm4wp_product_id' ), 'price': productprice.toFixed(2), 'category': productdata.data( 'gtm4wp_product_cat' ), 'variant': productdata.data( 'gtm4wp_product_variant' ), 'stocklevel': productdata.data( 'gtm4wp_product_stocklevel' ), 'brand': productdata.data( 'gtm4wp_product_brand' ), 'quantity': _original_value - _current_value }] } } }); } } // end if qty changed }); // end each qty field } // end gtm4wp_handle_cart_qty_change() jQuery(function() { var is_cart = jQuery( 'body' ).hasClass( 'woocommerce-cart' ); var is_checkout = jQuery( 'body' ).hasClass( 'woocommerce-checkout' ); // track impressions of products in product lists if ( jQuery( '.gtm4wp_productdata,.widget-product-item' ).length > 0 ) { var products = []; var productdata, productprice=0; jQuery( '.gtm4wp_productdata,.widget-product-item' ).each( function() { productdata = jQuery( this ); productprice = productdata.data( 'gtm4wp_product_price' ); if ( typeof productprice == "string" ) { productprice = parseFloat( productprice ); if ( isNaN( productprice ) ) { productprice = 0; } } else if ( typeof productprice != "number" ) { productprice = 0; } products.push({ 'name': productdata.data( 'gtm4wp_product_name' ), 'id': productdata.data( 'gtm4wp_product_id' ), 'price': productprice.toFixed(2), 'category': productdata.data( 'gtm4wp_product_cat' ), 'position': productdata.data( 'gtm4wp_product_listposition' ), 'list': productdata.data( 'gtm4wp_productlist_name' ), 'stocklevel': productdata.data( 'gtm4wp_product_stocklevel' ), 'brand': productdata.data( 'gtm4wp_product_brand' ) }); }); if ( gtm4wp_product_per_impression > 0 ) { // Need to split the product submissions up into chunks in order to avoid the GA 8kb submission limit var chunk; while ( products.length ) { chunk = products.splice( 0, gtm4wp_product_per_impression ); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.productImpressionEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'impressions': chunk } }); } } else { for( var i=0; i 0 ) { if ( gtm4wp_last_selected_product_variation ) { gtm4wp_last_selected_product_variation.quantity = jQuery( 'form.cart:first input[name=quantity]' ).val(); window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.addProductToCartEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'add': { 'products': [gtm4wp_last_selected_product_variation] } } }); } } else if ( _product_is_grouped ) { var _products_in_group = jQuery( '.grouped_form .gtm4wp_productdata' ); var _products_eec = []; _products_in_group.each( function() { var productdata = jQuery( this ); var product_qty_input = jQuery( 'input[name=quantity\\[' + productdata.data( 'gtm4wp_product_id' ) + '\\]]' ); if ( product_qty_input.length > 0 ) { product_qty = product_qty_input.val(); } else { return; } if ( 0 == product_qty ) { return; } _products_eec.push({ 'id': gtm4wp_use_sku_instead ? productdata.data( 'gtm4wp_product_sku' ) : productdata.data( 'gtm4wp_product_id' ), 'name': productdata.data( 'gtm4wp_product_name' ), 'price': productdata.data( 'gtm4wp_product_price' ), 'category': productdata.data( 'gtm4wp_product_cat' ), 'quantity': product_qty, 'stocklevel': productdata.data( 'gtm4wp_product_stocklevel' ), 'brand': productdata.data( 'gtm4wp_product_brand' ) }); }); if ( 0 == _products_eec.length ) { return; } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.addProductToCartEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'add': { 'products': _products_eec } } }); } else { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.addProductToCartEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'add': { 'products': [{ 'id': gtm4wp_use_sku_instead ? jQuery( '[name=gtm4wp_sku]', _product_form ).val() : jQuery( '[name=gtm4wp_id]', _product_form ).val(), 'name': jQuery( '[name=gtm4wp_name]', _product_form ).val(), 'price': jQuery( '[name=gtm4wp_price]', _product_form ).val(), 'category': jQuery( '[name=gtm4wp_category]', _product_form ).val(), 'quantity': jQuery( 'form.cart:first input[name=quantity]' ).val(), 'stocklevel': jQuery( '[name=gtm4wp_stocklevel]', _product_form ).val(), 'brand': jQuery( '[name=gtm4wp_brand]', _product_form ).val() }] } } }); } }); // track remove links in mini cart widget and on cart page jQuery( document ).on( 'click', '.mini_cart_item a.remove,.product-remove a.remove', function() { var productdata = jQuery( this ); var qty = 0; var qty_element = jQuery( this ).closest( '.cart_item' ).find( '.product-quantity input.qty' ); if ( qty_element.length === 0 ) { qty_element = jQuery( this ).closest( '.mini_cart_item' ).find( '.quantity' ); if ( qty_element.length > 0 ) { qty = parseInt( qty_element.text() ); if ( Number.isNaN( qty ) ) { qty = 0; } } } else { qty = qty_element.val(); } if ( qty === 0 ) { return true; } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.removeFromCartEEC', 'ecommerce': { 'remove': { 'products': [{ 'name': productdata.data( 'gtm4wp_product_name' ), 'id': productdata.data( 'gtm4wp_product_id' ), 'price': productdata.data( 'gtm4wp_product_price' ), 'category': productdata.data( 'gtm4wp_product_cat' ), 'variant': productdata.data( 'gtm4wp_product_variant' ), 'stocklevel': productdata.data( 'gtm4wp_product_stocklevel' ), 'brand': productdata.data( 'gtm4wp_product_brand' ), 'quantity': qty }] } } }); }); // track clicks in product lists jQuery( document ).on( 'click', '.products li:not(.product-category) a:not(.add_to_cart_button):not(.quick-view-button),.products>div:not(.product-category) a:not(.add_to_cart_button):not(.quick-view-button),.widget-product-item,.woocommerce-grouped-product-list-item__label a', function( event ) { // do nothing if GTM is blocked for some reason if ( 'undefined' == typeof google_tag_manager ) { return true; } var _productdata = jQuery( this ).closest( '.product' ); var productdata = ''; if ( _productdata.length > 0 ) { productdata = _productdata.find( '.gtm4wp_productdata' ); } else { _productdata = jQuery( this ).closest( '.products li' ); if ( _productdata.length > 0 ) { productdata = _productdata.find( '.gtm4wp_productdata' ); } else { _productdata = jQuery( this ).closest( '.products>div' ); if ( _productdata.length > 0 ) { productdata = _productdata.find( '.gtm4wp_productdata' ); } else { _productdata = jQuery( this ).closest( '.woocommerce-grouped-product-list-item__label' ); if ( _productdata.length > 0 ) { productdata = _productdata.find( '.gtm4wp_productdata' ); } else { productdata = jQuery( this ); } } } } if ( ( 'undefined' == typeof productdata.data( 'gtm4wp_product_id' ) ) || ( '' == productdata.data( 'gtm4wp_product_id' ) ) ) { return true; } // only act on links pointing to the product detail page if ( productdata.data( 'gtm4wp_product_url' ) != jQuery( this ).attr( 'href' ) ) { return true; } var ctrl_key_pressed = event.ctrlKey || event.metaKey; event.preventDefault(); if ( ctrl_key_pressed ) { // we need to open the new tab/page here so that popup blocker of the browser doesn't block our code var _productpage = window.open( 'about:blank', '_blank' ); } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.productClickEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'click': { 'actionField': {'list': productdata.data( 'gtm4wp_productlist_name' )}, 'products': [{ 'id': productdata.data( 'gtm4wp_product_id' ), 'name': productdata.data( 'gtm4wp_product_name' ), 'price': productdata.data( 'gtm4wp_product_price' ), 'category': productdata.data( 'gtm4wp_product_cat' ), 'stocklevel': productdata.data( 'gtm4wp_product_stocklevel' ), 'brand': productdata.data( 'gtm4wp_product_brand' ), 'position': productdata.data( 'gtm4wp_product_listposition' ) }] } }, 'eventCallback': function() { if ( ctrl_key_pressed && _productpage ) { _productpage.location.href= productdata.data( 'gtm4wp_product_url' ); } else { document.location.href = productdata.data( 'gtm4wp_product_url' ); } }, 'eventTimeout': 2000 }); }); // track variable products on their detail pages jQuery( document ).on( 'found_variation', function( event, product_variation ) { if ( "undefined" == typeof product_variation ) { // some ither plugins trigger this event without variation data return; } if ( (document.readyState === "interactive") && gtm4wp_changedetail_fired_during_pageload ) { // some custom attribute rendering plugins fire this event multiple times during page load return; } var _product_form = event.target; var _product_var_id = jQuery( '[name=variation_id]', _product_form ); var _product_id = jQuery( '[name=gtm4wp_id]', _product_form ).val(); var _product_name = jQuery( '[name=gtm4wp_name]', _product_form ).val(); var _product_sku = jQuery( '[name=gtm4wp_sku]', _product_form ).val(); var _product_category = jQuery( '[name=gtm4wp_category]', _product_form ).val(); var _product_price = jQuery( '[name=gtm4wp_price]', _product_form ).val(); var _product_stocklevel = jQuery( '[name=gtm4wp_stocklevel]', _product_form ).val(); var _product_brand = jQuery( '[name=gtm4wp_brand]', _product_form ).val(); var current_product_detail_data = { name: _product_name, id: 0, price: 0, category: _product_category, stocklevel: _product_stocklevel, brand: _product_brand, variant: '' }; current_product_detail_data.id = product_variation.variation_id; if ( gtm4wp_use_sku_instead && product_variation.sku && ('' !== product_variation.sku) ) { current_product_detail_data.id = product_variation.sku; } current_product_detail_data.price = product_variation.display_price; var _tmp = []; for( var attrib_key in product_variation.attributes ) { _tmp.push( product_variation.attributes[ attrib_key ] ); } current_product_detail_data.variant = _tmp.join(','); gtm4wp_last_selected_product_variation = current_product_detail_data; window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.changeDetailViewEEC', 'ecommerce': { 'currencyCode': gtm4wp_currency, 'detail': { 'products': [current_product_detail_data] }, }, 'ecomm_prodid': gtm4wp_id_prefix + current_product_detail_data.id, 'ecomm_pagetype': 'product', 'ecomm_totalvalue': current_product_detail_data.price, }); if ( document.readyState === "interactive" ) { gtm4wp_changedetail_fired_during_pageload = true; } }); jQuery( '.variations select' ).trigger( 'change' ); // initiate codes in WooCommere Quick View jQuery( document ).ajaxSuccess( function( event, xhr, settings ) { if(typeof settings !== 'undefined') { if (settings.url.indexOf( 'wc-api=WC_Quick_View' ) > -1 ) { setTimeout( function() { jQuery( ".woocommerce.quick-view" ).parent().find( "script" ).each( function(i) { eval( jQuery( this ).text() ); }); }, 500); } } }); // codes for enhanced ecommerce events on cart page if ( is_cart ) { jQuery( document ).on( 'click', '[name=update_cart]', function() { gtm4wp_handle_cart_qty_change(); }); jQuery( document ).on( 'keypress', '.woocommerce-cart-form input[type=number]', function() { gtm4wp_handle_cart_qty_change(); }); } // codes for enhanced ecommerce events on checkout page if ( is_checkout ) { window.gtm4wp_checkout_step_offset = window.gtm4wp_checkout_step_offset || 0; window.gtm4wp_checkout_products = window.gtm4wp_checkout_products || []; var gtm4wp_shipping_payment_method_step_offset = window.gtm4wp_needs_shipping_address ? 0 : -1; var gtm4wp_checkout_step_fired = []; // step 1 will be the billing section which is reported during pageload, no need to handle here jQuery( document ).on( 'blur', 'input[name^=shipping_]:not(input[name^=shipping_method])', function() { // do not report checkout step if already reported if ( gtm4wp_checkout_step_fired.indexOf( 'shipping' ) > -1 ) { return; } // do not report checkout step if user is traversing through the section without filling in any data if ( jQuery( this ).val().trim() == '' ) { return; } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.checkoutStepEEC', 'ecommerce': { 'checkout': { 'actionField': { 'step': 2 + window.gtm4wp_checkout_step_offset }, 'products': window.gtm4wp_checkout_products } } }); gtm4wp_checkout_step_fired.push( 'shipping' ); }); jQuery( document ).on( 'change', 'input[name^=shipping_method]', function() { // do not report checkout step if already reported if ( gtm4wp_checkout_step_fired.indexOf( 'shipping_method' ) > -1 ) { return; } // do not fire event during page load if ( 'complete' != document.readyState ) { return; } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.checkoutStepEEC', 'ecommerce': { 'checkout': { 'actionField': { 'step': 3 + window.gtm4wp_checkout_step_offset + gtm4wp_shipping_payment_method_step_offset }, 'products': window.gtm4wp_checkout_products } } }); gtm4wp_checkout_step_fired.push( 'shipping_method' ); }); jQuery( document ).on( 'change', 'input[name=payment_method]', function() { // do not report checkout step if already reported if ( gtm4wp_checkout_step_fired.indexOf( 'payment_method' ) > -1 ) { return; } // do not fire event during page load if ( 'complete' != document.readyState ) { return; } window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.checkoutStepEEC', 'ecommerce': { 'checkout': { 'actionField': { 'step': 4 + window.gtm4wp_checkout_step_offset + gtm4wp_shipping_payment_method_step_offset }, 'products': window.gtm4wp_checkout_products } } }); gtm4wp_checkout_step_fired.push( 'payment_method' ); }); jQuery( 'form[name=checkout]' ).on( 'submit', function() { if ( gtm4wp_checkout_step_fired.indexOf( 'shipping_method' ) == -1 ) { // shipping methods are not visible if only one is available // and if the user has already a pre-selected method, no click event will fire to report the checkout step var selected_shipping_method = jQuery( 'input[name^=shipping_method]:checked' ); if ( selected_shipping_method.length == 0 ) { selected_shipping_method = jQuery( 'input[name^=shipping_method]:first' ); } if ( selected_shipping_method.length > 0 ) { selected_shipping_method.trigger( 'change' ); } } if ( gtm4wp_checkout_step_fired.indexOf( 'payment_method' ) == -1 ) { // if the user has already a pre-selected method, no click event will fire to report the checkout step jQuery( 'input[name=payment_method]:checked' ).trigger( 'change' ); } var _shipping_el = jQuery( 'input[name^=shipping_method]:checked' ); if ( _shipping_el.length == 0 ) { _shipping_el = jQuery( 'input[name^=shipping_method]:first' ); } if ( _shipping_el.length > 0 ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.checkoutOptionEEC', 'ecommerce': { 'checkout_option': { 'actionField': { 'step': 3 + window.gtm4wp_checkout_step_offset + gtm4wp_shipping_payment_method_step_offset, 'option': 'Shipping: ' + _shipping_el.val() } } } }); } var _payment_el = jQuery( '.payment_methods input:checked' ); if ( _payment_el.length > 0 ) { window[ gtm4wp_datalayer_name ].push({ 'event': 'gtm4wp.checkoutOptionEEC', 'ecommerce': { 'checkout_option': { 'actionField': { 'step': 4 + window.gtm4wp_checkout_step_offset + gtm4wp_shipping_payment_method_step_offset, 'option': 'Payment: ' + _payment_el.val() } } } }); } }); } // codes for Google Ads dynamic remarketing if ( window.gtm4wp_remarketing&& !is_cart && !is_checkout ) { if ( jQuery( '.gtm4wp_productdata' ).length > 0 ) { for( var i=0; i https://awegods.com/wp-content/plugins/js_composer/assets/js/vendors/woocommerce-add-to-cart.js?ver=5.5.5 window.jQuery( document ).ready( function ( $ ) { $( 'body' ).on( 'adding_to_cart', function ( event, $button, data ) { $button && $button.hasClass( 'vc_gitem-link' ) && $button .addClass( 'vc-gitem-add-to-cart-loading-btn' ) .parents( '.vc_grid-item-mini' ) .addClass( 'vc-woocommerce-add-to-cart-loading' ) .append( $( '
' ) ); } ).on( 'added_to_cart', function ( event, fragments, cart_hash, $button ) { if ( 'undefined' === typeof($button) ) { $button = $( '.vc-gitem-add-to-cart-loading-btn' ); } $button && $button.hasClass( 'vc_gitem-link' ) && $button .removeClass( 'vc-gitem-add-to-cart-loading-btn' ) .parents( '.vc_grid-item-mini' ) .removeClass( 'vc-woocommerce-add-to-cart-loading' ) .find( '.vc_wc-load-add-to-loader-wrapper' ).remove(); } ); } );