PageSourceSearch

https://west-eleven.com/wp-content/plugins/wordpress-whatsapp-support/assets/js/wws-public-script.js?ver=2.4.2

js west-eleven.com collected 2026-09-27 13:38:59 UTC 13,756 bytes, 485 lines download raw bytes

1var wwsLoader = '<div class="wws-spinner">';
2	wwsLoader += '<div class="wws-bounce1 wws--bg-color"></div>';
3	wwsLoader += '<div class="wws-bounce2 wws--bg-color"></div>';
4	wwsLoader += '<div class="wws-bounce3 wws--bg-color"></div>';
5	wwsLoader += '</div>';
6
7const wwsWidget = {
8
9	/*
10	 * Popup show and hide
11	 */
12	trigger: function( status = '' ) {
13		if ( 'open' === status ) {
14			this.open();
15
16			/**
17			 * Trigger when widget open.
18			 */
19			jQuery( document.body ).trigger( 'wws_widget_open' );
20		} else if ( 'close' === status ) {
21			this.close();
22
23			/**
24			 * Trigger when widget close.
25			 */
26			jQuery( document.body ).trigger( 'wws_widget_close' );
27		} else {
28			// Popup not open
29			if ( jQuery( '.wws-popup' ).attr( 'data-wws-popup-status' ) == '0' ) {
30				this.open();
31
32				jQuery( document.body ).trigger( 'wws_widget_open' );
33			} else { // Popup open
34				this.close();
35
36				jQuery( document.body ).trigger( 'wws_widget_close' );
37			}
38		}
39	},
40
41	open: function() {
42		jQuery( '.wws-popup' ).slideDown();
43		jQuery( '.wws-popup' ).attr( 'data-wws-popup-status', '1' );
44		jQuery( '.wws-gradient' ).show();
45	},
46
47	close: function() {
48		jQuery( '.wws-popup' ).slideUp();
49		jQuery( '.wws-popup' ).attr( 'data-wws-popup-status', '0' );
50		jQuery( '.wws-gradient' ).hide();
51	},
52
53	/*
54	 * Auto popup
55	 */
56	autoPopup: function( delayInSeconds ) {
57		if ( 'yes' !== sessionStorage.wwsAutoPopup ) {
58			setTimeout( function() {
59				if ( '0' == jQuery( '.wws-popup' ).data( 'wws-popup-status' ) ) {
60					wwsWidget.trigger();
61				}
62				sessionStorage.wwsAutoPopup = 'yes';
63			}, Number( delayInSeconds * 1000 ) );
64		}
65	},
66
67	/*
68	 * Send message
69	 */
70	sendMessage: function( message = '', whatsappNumber = '' ) {
71		if ( '' === message || '' === whatsappNumber) {
72			return false;
73		}
74
75		if ( wwsObj.whatsapp_web_api ) {
76			window.open( wwsObj.whatsapp_web_api + '/' + whatsappNumber + '?text=' + message + '' );
77		} else if ( this.is_mobile.any() ) {
78			window.open( wwsObj.whatsapp_mobile_api + '/send?phone=' + whatsappNumber + '&text=' + message + '');
79		} else {
80			window.open( wwsObj.whatsapp_desktop_api + '/send?phone=' + whatsappNumber + '&text=' + message + '');
81		}
82
83		jQuery( document.body ).trigger( 'wws_message_sent' );
84
85		return true;
86	},
87
88	/*
89	 * Send group invitation
90	 */
91	sendGroupInvitation: function( groupID ) {
92		window.open('https://chat.whatsapp.com/' + groupID );
93	},
94
95	/*
96	 * Mobile detection
97	 */
98	is_mobile: {
99		Android: function() {
100			return navigator.userAgent.match(/Android/i);
101		},
102		BlackBerry: function() {
103			return navigator.userAgent.match(/BlackBerry/i);
104		},
105		iOS: function() {
106			return navigator.userAgent.match(/iPhone|iPad|iPod/i);
107		},
108		Opera: function() {
109			return navigator.userAgent.match(/Opera Mini/i);
110		},
111		Windows: function() {
112			return navigator.userAgent.match(/IEMobile/i);
113		},
114		any: function() {
115			return ( wwsWidget.is_mobile.Android() || wwsWidget.is_mobile.BlackBerry() || wwsWidget.is_mobile.iOS() || wwsWidget.is_mobile.Opera() || wwsWidget.is_mobile.Windows());
116		},
117	},
118
119	logAnalytics: function( message = 'N/A', number = 'N/A', through = '', args = {} ) {
120		jQuery.ajax({
121			url: wwsObj.admin_url,
122			type: 'post',
123			data: {
124				'action':   'wws_click_analytics',
125				'message':  message,
126				'number':   number,
127				'through':  through,
128				'support_person_id': args.supportPersonId || '-1',
129				'security': wwsObj.security_token,
130			}
131		});
132	},
133}
134
135;(function( $ ) {
136	"use strict";
137
138	jQuery( document ).ready(function() {
139
140		// Google and Facebook Pixel Analytics
141		function wws_ga_and_fb_click_analytics() {
142
143			var fbGaAnalytics = jQuery.parseJSON( wwsObj.fb_ga_click_tracking );
144
145			if ( 'yes' == fbGaAnalytics.ga_click_tracking_status ) {
146
147				try {
148					gtag(
149						'event',
150						fbGaAnalytics.ga_click_tracking_event_name, {
151							'event_category': fbGaAnalytics.ga_click_tracking_event_category,
152							'event_label': fbGaAnalytics.ga_click_tracking_event_label,
153						}
154					);
155				} catch ( error ) {
156					if ( 'yes' === wwsObj.is_debug ) {
157						window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
158					}
159				}
160
161				try {
162					ga(
163						'send',
164						'event',
165						fbGaAnalytics.ga_click_tracking_event_category,
166						fbGaAnalytics.ga_click_tracking_event_name,
167						fbGaAnalytics.ga_click_tracking_event_label
168					);
169				} catch ( error ) {
170					if ( 'yes' === wwsObj.is_debug ) {
171						window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
172					}
173				}
174
175				try {
176					_gaq.push([
177						'_trackEvent',
178						fbGaAnalytics.ga_click_tracking_event_category,
179						fbGaAnalytics.ga_click_tracking_event_name,
180						fbGaAnalytics.ga_click_tracking_event_label
181					]);
182				}
183				catch ( error ) {
184					if ( 'yes' === wwsObj.is_debug ) {
185						window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
186					}
187				}
188
189				try {
190					window.dataLayer.push( {
191						'event': fbGaAnalytics.ga_click_tracking_event_name,
192						'eventCategory': fbGaAnalytics.ga_click_tracking_event_category,
193						'eventLabel': fbGaAnalytics.ga_click_tracking_event_label,
194						'current_url': window.location.href
195					} );
196				}
197				catch ( error ) {
198					if ( 'yes' === wwsObj.is_debug ) {
199						window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
200					}
201				}
202			}
203
204			if ( 'yes' == fbGaAnalytics.fb_click_tracking_status ) {
205				var FBpixeled = false;
206				try {
207					if ( ! FBpixeled ) {
208						fbq( 'trackCustom', 'WordPressWhatsAppSupport', {
209							event: fbGaAnalytics.fb_click_tracking_event_name,
210							account: fbGaAnalytics.fb_click_tracking_event_label
211						});
212						FBpixeled = true;
213					}
214				}
215				catch ( error ) {
216					if ( 'yes' === wwsObj.is_debug ) {
217						window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
218					}
219				}
220			}
221		}
222
223		function isGDPRChecked() {
224			if ( 'yes' !== wwsObj.is_gdpr ) {
225				return;
226			}
227
228			if ( jQuery('.wws-gdpr input').is(':checked') == false ) {
229				jQuery( '.wws-gdpr > div' ).addClass('wws-shake-animation');
230				setTimeout( function() {
231					jQuery( '.wws-gdpr > div' ).removeClass('wws-shake-animation');
232				}, 300 );
233				return false;
234			} else {
235				return true;
236			}
237		}
238
239		// Open and close the wws popup
240		jQuery( '.wws-popup__open-btn, .wws-popup__close-btn' ).on('click', function(event) {
241			event.preventDefault();
242			wwsWidget.trigger();
243		});
244
245
246		// send message
247		jQuery( document ).on('click', '.wws-popup__send-btn', function(event) {
248			event.preventDefault();
249
250			// If popup template is 8th
251			if ( wwsObj.popup_layout == 8 ) {
252				var preMessage      = jQuery( this ).attr( 'data-wws-pre-msg' );
253				var whatsappNumber  = jQuery( this ).attr( 'data-wws-number' );
254
255				if ( isGDPRChecked() == false ) return;
256
257				if ( '' === preMessage ) {
258					preMessage = '%20';
259				}
260
261				if( wwsWidget.sendMessage( preMessage, whatsappNumber ) == true ) {
262					wwsWidget.logAnalytics( preMessage, 'N/A', 'Layout 8' );
263					wws_ga_and_fb_click_analytics();
264				}
265			}
266
267			// If popup template is 7th
268			if ( wwsObj.popup_layout == 7 ) {
269
270				var message         = jQuery( '.wws-popup__input' ).val();
271				var number          = jQuery( '.wws-popup__fields-number' ).val();
272				var whatsappNumber  = wwsObj.support_number;
273
274				if ( isGDPRChecked() == false ) return;
275
276				setTimeout( function() {
277					jQuery( '.wws-popup__fields-textarea-wrapper, .wws-popup__fields-number' ).removeClass( 'wws-shake-animation' );
278				}, 300 );
279
280				if ( number == '' ) {
281					jQuery( '.wws-popup__fields-number' ).addClass( 'wws-shake-animation' );
282					return;
283				}
284				if ( message == '' ) {
285					jQuery( '.wws-popup__fields-textarea-wrapper' ).addClass( 'wws-shake-animation' );
286					return;
287				}
288				if( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) {
289					wwsWidget.logAnalytics( message, number, 'Layout 7' );
290					wws_ga_and_fb_click_analytics();
291				}
292
293			}
294
295			if ( wwsObj.popup_layout == 6 ) {
296
297				var message         = jQuery( '.wws-popup__input' ).val();
298				var preMessage      = jQuery( '.wws-popup-multi-support-pre-essage' ).val();
299				var number          = jQuery( '.wws-popup__fields-number' ).val();
300				var whatsappNumber  = jQuery( '.wws-popup-multi-support-number' ).val();
301				var supportPersonId = jQuery( '.wws-popup-multi-support-id' ).val();
302
303				if ( isGDPRChecked() == false ) return;
304
305				setTimeout( function() {
306					jQuery( '.wws-popup__fields-textarea-wrapper, .wws-popup__fields-number' ).removeClass( 'wws-shake-animation' );
307				}, 300 );
308
309				if ( number == '' ) {
310					jQuery( '.wws-popup__fields-number' ).addClass( 'wws-shake-animation' );
311					return;
312				}
313
314				if ( message == '' ) {
315					jQuery( '.wws-popup__fields-textarea-wrapper' ).addClass( 'wws-shake-animation' );
316					return;
317				}
318
319				if( wwsWidget.sendMessage( ( message + preMessage ), whatsappNumber ) == true ) {
320
321					wwsWidget.logAnalytics( message, number, 'Layout 6', {
322						supportPersonId: supportPersonId
323					} );
324
325					wws_ga_and_fb_click_analytics();
326
327				}
328
329			}
330
331			// if popup template is 1st, 2nd, or 3rd
332			if ( wwsObj.popup_layout == 1 || wwsObj.popup_layout == 2 || wwsObj.popup_layout == 3 ) {
333
334				var message         = jQuery( '.wws-popup__input' ).val();
335				var whatsappNumber  = wwsObj.support_number;
336
337				if ( isGDPRChecked() == false ) return;
338
339				setTimeout( function() {
340					jQuery( '.wws-popup__input-wrapper' ).removeClass( 'wws-shake-animation' );
341				}, 300 );
342
343				if ( 0 == message.length ) {
344					jQuery( '.wws-popup__input-wrapper' ).addClass( 'wws-shake-animation' );
345					return;
346				}
347				if ( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) {
348					if ( 1 == wwsObj.popup_layout ) {
349						wwsWidget.logAnalytics( message, 'N/A', 'Layout 1' );
350					} else if ( 2 == wwsObj.popup_layout ) {
351						wwsWidget.logAnalytics( message, 'N/A', 'Layout 2' );
352					} else if ( 3 == wwsObj.popup_layout ) {
353						wwsWidget.logAnalytics( message, 'N/A', 'Layout 3' );
354					}
355
356					wws_ga_and_fb_click_analytics();
357				}
358			}
359
360			// if popup template is 4th
361			if ( wwsObj.popup_layout == 4 ) {
362
363				var message         = jQuery( '.wws-popup__input' ).val();
364				var whatsappNumber  = wwsObj.support_number;
365
366				if( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) {
367					wwsWidget.logAnalytics( 'N/A', 'N/A', 'Layout 4' );
368					wws_ga_and_fb_click_analytics();
369				}
370			}
371
372		});
373
374		// Hit enter to send a message.
375		jQuery('.wws-popup__input').on( 'keypress', function (e) {
376			var key = e.which;
377
378			if(key == 13) { // the enter key code
379				jQuery('.wws-popup__send-btn').click();
380				return false;
381			}
382		});
383
384		// Group invitation
385		jQuery( '.wws-popup-group-invitation__button' ).on( 'click', function() {
386			wwsWidget.sendGroupInvitation( wwsObj.group_invitation_id );
387			wwsWidget.logAnalytics();
388			wws_ga_and_fb_click_analytics()
389		});
390
391		// autoPopup
392		if ( 'yes' === wwsObj.auto_popup ) {
393			wwsWidget.autoPopup( wwsObj.auto_popup_time );
394		}
395
396		// popup button display by scroll lenght
397		if ( wwsObj.scroll_lenght != null ) {
398
399			jQuery(document).on( 'scroll', function () {
400				var y = jQuery(window).scrollTop() + jQuery(window).height();
401				var documentHeight = jQuery(document).height() * wwsObj.scroll_lenght / 100;
402
403				if ( y >= documentHeight - 10 ) {
404					jQuery('.wws-popup-container').fadeIn();
405				} else {
406					jQuery('.wws-popup-container').fadeOut();
407				}
408			});
409		}
410
411		// Layout 6 - open selected support person.
412		jQuery( document ).on( 'click', '[data-wws-multi-support-person-id]', function() {
413			var multiSupportPersonID = jQuery( this ).attr( 'data-wws-multi-support-person-id' );
414
415			jQuery( '.wws-popup__support-person-wrapper' ).hide();
416			jQuery( '.wws-popup__support-person-form' ).show();
417			jQuery( '.wws-popup__support-person-form' ).html( wwsLoader );
418
419			jQuery.ajax({
420				url: wwsObj.admin_url,
421				type: 'post',
422				data: {
423					'action':   'wws_view_multi_person_form',
424					'support_person_id': multiSupportPersonID,
425					'post_id' : wwsObj.current_page_id,
426				}
427			}).done(function( response ) {
428				jQuery( '.wws-popup__support-person-form' ).html( response );
429				if ( ''  !== wwsObj.numberMasking) {
430					jQuery( '.wws-popup__fields-number' ).inputmask( wwsObj.numberMasking );
431				}
432			});
433
434		} );
435
436
437		// Layout 6 - close selected support person.
438		jQuery( document ).on( 'click', '[data-wws-multi-support-back]', function() {
439			jQuery( '.wws-popup__support-person-wrapper' ).show();
440			jQuery( '.wws-popup__support-person-form' ).hide();
441		} );
442
443		// Mobile number masking
444		if ( ''  !== wwsObj.numberMasking) {
445			jQuery( '.wws-popup__fields-number' ).inputmask( wwsObj.numberMasking );
446		}
447
448		/**
449		 * Generated shortcode button analytics.
450		 *
451		 * @since 1.9.7
452		 *
453		 */
454		jQuery( '.wws-shortcode-btn' ).on( 'click', function() {
455			wwsWidget.logAnalytics( 'N/A', 'N/A', 'Shortcode Button' );
456			wws_ga_and_fb_click_analytics();
457		} );
458
459
460		/**
461		 * WooCommerce query button analytics.
462		 *
463		 * @since 1.9.7
464		 *
465		 */
466		jQuery( '.wws-product-query-btn' ).on( 'click', function() {
467			wwsWidget.logAnalytics( 'N/A', 'N/A', 'Woo Query Button' );
468			wws_ga_and_fb_click_analytics();
469		} );
470
471		/**
472		 * Click to call.
473		 *
474		 * @since 2.0.6
475		 */
476		jQuery( '[data-wws-agent-call]' ).on( 'click', function() {
477			var call_number = jQuery( this ).data( 'wws-agent-call' );
478
479			window.open( 'tel:' + call_number );
480		} );
481
482
483	}); // Document ready end here.
484
485})(jQuery)

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.