PageSourceSearch

https://shop.kanada-ya.com/wp-content/plugins/tiktok-for-business/admin/js/ajaxSnippet.js?ver=v1

js kanada-ya.com collected 2026-09-26 11:44:34 UTC 8,985 bytes, 280 lines download raw bytes

1jQuery(
2	function ( $ ) {
3		$( document.body ).on(
4			'added_to_cart',
5			function ( e, fragments, cart_hash, thisbutton ) {
6				// var pixel_code = window.tt4b_script_vars.pixel_code;
7				// var currency = window.tt4b_script_vars.currency;
8				// var product_id = thisbutton.data('product_id');
9				// var product_name = thisbutton.data('product_name');
10				// var price = thisbutton.data('price');
11				//
12				// ttq.instance(pixel_code).track(
13				// 'AddToCart',
14				// {
15				// 'content_id': product_id,
16				// 'content_name': product_name,
17				// 'content_type': 'product',
18				// 'price': price,
19				// 'value': price,
20				// 'quantity': 1,
21				// 'currency': currency
22				// }
23				// );
24			}
25		);
26
27		// add library to help parse phone numbers
28		let script = document.createElement( 'script' );
29		script.src = 'https://unpkg.com/[email protected]/bundle/libphonenumber-min.js';
30		document.head.appendChild( script );
31
32		// add library to generate uuid4 for event api
33		let uuidScript = document.createElement( 'script' );
34		uuidScript.src = 'https://cdnjs.cloudflare.com/ajax/libs/uuid/8.1.0/uuidv4.min.js';
35		document.head.appendChild( uuidScript );
36
37		// advanced matching - will send hashed advanced_matching fields if true, otherwise will exit if advanced_matching value is false or null
38		function getEmailAndPhone(inputElement, pixelCode, source) {
39			if (window.tt4b_script_vars.advanced_matching !== '1') {
40				return;
41			}
42			let result = {
43				email: "",
44				phone_number: ""
45			};
46			if ( ! inputElement) {
47				return result
48			}
49			let form = inputElement.closest( 'form' ) || inputElement.querySelector( 'form' );
50			if (( ! form || form.length === 0) && source !== 'ninjaforms') {
51				return;
52			} else if (( ! form || form.length === 0) && source === 'ninjaforms') {
53				form = inputElement.first( 'form' )[0];
54			}
55			let inputElements = form.querySelectorAll( 'input' );
56			for (let input of inputElements) {
57				if (input.type === 'email') {
58					result.email = input.value;
59				} else if (input.type === 'tel') {
60					try {
61						let phone_number    = input.value;
62						result.phone_number = libphonenumber.parsePhoneNumber( phone_number, window.tt4b_script_vars.country ).number
63					} catch (error) {
64						console.warn( "Error occurred while parsing phone number: ", error );
65					}
66				}
67			}
68			ttq.instance( pixelCode ).identify( result );
69		}
70
71		// Fires a Contact event if AM data present in form, otherwise fires a SubmitForm vent
72		function firePixelBasedOnFormIntent(inputElement, pixelCode, source) {
73			let form = inputElement.closest( 'form' ) || inputElement.querySelector( 'form' );
74			if (( ! form || form.length === 0) && source !== 'ninjaforms') {
75				return;
76			} else if (( ! form || form.length === 0) && source === 'ninjaforms') {
77				form = inputElement.first( 'form' )[0];
78			}
79			let inputElements = form.querySelectorAll( 'input' );
80			let hasAMData     = false;
81			for (let input of inputElements) {
82				if (input.type === 'email' || input.type === 'tel') {
83					hasAMData = true;
84					break;
85				}
86			}
87			let eventType = hasAMData ? 'Contact' : 'SubmitForm'
88			let event_id  = ""
89			try {
90				event_id = uuidv4()
91			} catch (error) {
92				console.warn( "Error occurred while generating uuidv4: ", error );
93			}
94			ttq.instance( pixelCode ).track(
95				eventType,
96				{
97					'source' : source,
98					'wp_plugin' : source,
99					"event_id" : event_id
100				}
101			)
102		}
103
104		// Some forms will trigger the submit event, even if the form submission is unsuccessful
105		// In this case we want to make sure the form submission is successful by checking for the success message
106		// once the message is visible, we will fire the pixel event
107		function createObserver(source) {
108			return new MutationObserver(
109				function (mutations) {
110					mutations.forEach(
111						function (mutation) {
112							if (window.getComputedStyle( mutation.target ).display !== 'none') {
113								getEmailAndPhone( mutation.target, window.tt4b_script_vars.pixel_code );
114								firePixelBasedOnFormIntent( mutation.target, window.tt4b_script_vars.pixel_code, source )
115							}
116						}
117					);
118				}
119			);
120		}
121
122		// fallback case
123		document.addEventListener(
124			'submit',
125			function (event) {
126				var pixel_code = window.tt4b_script_vars.pixel_code;
127				getEmailAndPhone( event.target, pixel_code );
128				firePixelBasedOnFormIntent( event.target, pixel_code, "fallback" )
129			}
130		);
131
132		// ButtonClick Lead Gen Event
133		$( 'button, :submit' ).on(
134			'click',
135			function (event) {
136				var pixel_code = window.tt4b_script_vars.pixel_code;
137				// AM based on form inputs when submit clicked
138				getEmailAndPhone( event.target, pixel_code );
139				let event_id = ""
140				try {
141					event_id = uuidv4()
142				} catch (error) {
143					console.warn( "Error occurred while generating uuidv4: ", error );
144				}
145				ttq.instance( pixel_code ).track(
146					'ClickButton',
147					{
148						'content': 'SubmitClick',
149						"event_id": event_id
150					}
151				);
152			}
153		);
154
155		// Contact Lead Gen Event: Contact Form 7
156		// https://wordpress.org/plugins/contact-form-7/
157		document.addEventListener(
158			'wpcf7mailsent',
159			function (event) {
160				var pixel_code = window.tt4b_script_vars.pixel_code;
161				getEmailAndPhone( event.target, pixel_code );
162				firePixelBasedOnFormIntent( event.target, pixel_code, "contactform7" )
163			},
164			false
165		);
166
167		// Contact Lead Gen Event: MC4WP: Mailchimp for Wordpress
168		// https://wordpress.org/plugins/mailchimp-for-wp/
169		var mailchimp_forms = document.querySelectorAll( '.mc4wp-form' );
170		mailchimp_forms.forEach(
171			function (form) {
172				var pixel_code = window.tt4b_script_vars.pixel_code;
173				form.addEventListener(
174					'submit',
175					function (event) {
176						getEmailAndPhone( event.target, pixel_code );
177						firePixelBasedOnFormIntent( event.target, pixel_code, "mailchimp4wordpress" )
178					}
179				);
180			}
181		);
182
183		// Contact Lead Gen Event: Jetpack + Mailchimp
184		// https://jetpack.com/support/jetpack-blocks/mailchimp-block/
185		var jetpackMailchimpNodes = document.querySelectorAll( '.wp-block-jetpack-mailchimp_success' );
186		if (jetpackMailchimpNodes.length > 0) {
187			var jetpackMailchimpObserver = createObserver( 'jetpackmailchimp' );
188			jetpackMailchimpNodes.forEach(
189				function (targetNode) {
190					jetpackMailchimpObserver.observe( targetNode, { attributes: true, childList: true, subtree: true } );
191				}
192			);
193		}
194
195		// Contact Lead Get Event: MailPoet
196		// https://wordpress.org/plugins/mailpoet/
197		$( 'input.mailpoet_submit' ).on(
198			'click',
199			function () {
200				var pixel_code = window.tt4b_script_vars.pixel_code;
201				getEmailAndPhone( event.target, pixel_code );
202				firePixelBasedOnFormIntent( event.target, pixel_code, "mailpoet" )
203			}
204		);
205
206		// Contact Lead Gen Event: Spectra
207		// https://wordpress.org/plugins/ultimate-addons-for-gutenberg/
208		var spectraForms = document.querySelectorAll( '.uagb-forms-main-form' );
209		spectraForms.forEach(
210			function (form) {
211				var pixel_code = window.tt4b_script_vars.pixel_code;
212				form.addEventListener(
213					'submit',
214					function (event) {
215						getEmailAndPhone( event.target, pixel_code );
216						firePixelBasedOnFormIntent( event.target, pixel_code, "spectra" )
217					}
218				);
219			}
220		);
221
222		// Submit Form Lead Gen Event: WPForms
223		// https://wordpress.org/plugins/wpforms-lite/
224		$( 'form.wpforms-form' ).on(
225			'wpformsAjaxSubmitSuccess',
226			(event) => {
227            var pixel_code = window.tt4b_script_vars.pixel_code;
228            getEmailAndPhone( event.target, pixel_code );
229            firePixelBasedOnFormIntent( event.target, pixel_code, "wpforms" )
230			}
231		)
232
233		// Submit Form Lead Gen Events: JetPack
234		// https://wordpress.org/plugins/jetpack/
235		if (document.querySelector( '[class*=jetpack-contact-form]' )) {
236			document.addEventListener(
237				'submit',
238				(event) => {
239                var pixel_code = window.tt4b_script_vars.pixel_code;
240                getEmailAndPhone( event.target, pixel_code );
241                firePixelBasedOnFormIntent( event.target, pixel_code, "jetpack" )
242				}
243			);
244		}
245
246		// Submit Form Lead Gen Events: Ninja Forms
247		// https://wordpress.org/plugins/ninja-forms/
248		$( document ).on(
249			'nfFormSubmitResponse',
250			(event) => {
251            event.preventDefault();
252            var pixel_code = window.tt4b_script_vars.pixel_code;
253            getEmailAndPhone( $( '.nf-form-layout' ), pixel_code, "ninjaforms" );
254            firePixelBasedOnFormIntent( $( '.nf-form-layout' ), pixel_code, "ninjaforms" )
255			}
256		);
257
258		$( document ).on(
259			'nfFormReady',
260			(event) => {
261            event.preventDefault();
262            $( 'button, :submit, input[type="submit"]' ).on(
263                    'click',
264					function (event) {
265						var pixel_code = window.tt4b_script_vars.pixel_code;
266						// AM based on form inputs when submit clicked
267						getEmailAndPhone( event.target, pixel_code );
268						ttq.instance( pixel_code ).track(
269							'ClickButton',
270							{
271								'content': 'SubmitClick'
272							}
273						);
274					}
275                );
276			}
277		)
278
279	}
280);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.