var wwsLoader = '
';
wwsLoader += '
';
wwsLoader += '
';
wwsLoader += '
';
wwsLoader += '
';
const wwsWidget = {
/*
* Popup show and hide
*/
trigger: function( status = '' ) {
if ( 'open' === status ) {
this.open();
/**
* Trigger when widget open.
*/
jQuery( document.body ).trigger( 'wws_widget_open' );
} else if ( 'close' === status ) {
this.close();
/**
* Trigger when widget close.
*/
jQuery( document.body ).trigger( 'wws_widget_close' );
} else {
// Popup not open
if ( jQuery( '.wws-popup' ).attr( 'data-wws-popup-status' ) == '0' ) {
this.open();
jQuery( document.body ).trigger( 'wws_widget_open' );
} else { // Popup open
this.close();
jQuery( document.body ).trigger( 'wws_widget_close' );
}
}
},
open: function() {
jQuery( '.wws-popup' ).slideDown();
jQuery( '.wws-popup' ).attr( 'data-wws-popup-status', '1' );
jQuery( '.wws-gradient' ).show();
},
close: function() {
jQuery( '.wws-popup' ).slideUp();
jQuery( '.wws-popup' ).attr( 'data-wws-popup-status', '0' );
jQuery( '.wws-gradient' ).hide();
},
/*
* Auto popup
*/
autoPopup: function( delayInSeconds ) {
if ( 'yes' !== sessionStorage.wwsAutoPopup ) {
setTimeout( function() {
if ( '0' == jQuery( '.wws-popup' ).data( 'wws-popup-status' ) ) {
wwsWidget.trigger();
}
sessionStorage.wwsAutoPopup = 'yes';
}, Number( delayInSeconds * 1000 ) );
}
},
/*
* Send message
*/
sendMessage: function( message = '', whatsappNumber = '' ) {
if ( '' === message || '' === whatsappNumber) {
return false;
}
if ( this.is_mobile.any() ) {
window.open( wwsObj.whatsapp_mobile_api + '/send?phone=' + whatsappNumber + '&text=' + message + '');
} else {
window.open( wwsObj.whatsapp_desktop_api + '/send?phone=' + whatsappNumber + '&text=' + message + '');
}
jQuery( document.body ).trigger( 'wws_message_sent' );
return true;
},
/*
* Send group invitation
*/
sendGroupInvitation: function( groupID ) {
window.open('https://chat.whatsapp.com/' + groupID );
},
/*
* Mobile detection
*/
is_mobile: {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return ( wwsWidget.is_mobile.Android() || wwsWidget.is_mobile.BlackBerry() || wwsWidget.is_mobile.iOS() || wwsWidget.is_mobile.Opera() || wwsWidget.is_mobile.Windows());
},
},
logAnalytics: function( message = 'N/A', number = 'N/A', through = '', args = {} ) {
jQuery.ajax({
url: wwsObj.admin_url,
type: 'post',
data: {
'action': 'wws_click_analytics',
'message': message,
'number': number,
'through': through,
'support_person_id': args.supportPersonId || '-1',
'security': wwsObj.security_token,
}
});
},
}
;(function( $ ) {
"use strict";
jQuery( document ).ready(function() {
// Google and Facebook Pixel Analytics
function wws_ga_and_fb_click_analytics() {
var fbGaAnalytics = jQuery.parseJSON( wwsObj.fb_ga_click_tracking );
if ( 'yes' == fbGaAnalytics.ga_click_tracking_status ) {
try {
gtag(
'event',
fbGaAnalytics.ga_click_tracking_event_name, {
'event_category': fbGaAnalytics.ga_click_tracking_event_category,
'event_label': fbGaAnalytics.ga_click_tracking_event_label,
}
);
} catch ( error ) {
if ( 'yes' === wwsObj.is_debug ) {
window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
}
}
try {
ga(
'send',
'event',
fbGaAnalytics.ga_click_tracking_event_category,
fbGaAnalytics.ga_click_tracking_event_name,
fbGaAnalytics.ga_click_tracking_event_label
);
} catch ( error ) {
if ( 'yes' === wwsObj.is_debug ) {
window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
}
}
try {
_gaq.push([
'_trackEvent',
fbGaAnalytics.ga_click_tracking_event_category,
fbGaAnalytics.ga_click_tracking_event_name,
fbGaAnalytics.ga_click_tracking_event_label
]);
}
catch ( error ) {
if ( 'yes' === wwsObj.is_debug ) {
window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
}
}
try {
dataLayer.push({
'event': 'customEvent',
'eventCategory': fbGaAnalytics.ga_click_tracking_event_category,
'eventAction': fbGaAnalytics.ga_click_tracking_event_name,
'eventLabel': fbGaAnalytics.ga_click_tracking_event_label
});
}
catch ( error ) {
if ( 'yes' === wwsObj.is_debug ) {
window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
}
}
}
if ( 'yes' == fbGaAnalytics.fb_click_tracking_status ) {
var FBpixeled = false;
try {
if ( ! FBpixeled ) {
fbq( 'trackCustom', 'WordPressWhatsAppSupport', {
event: fbGaAnalytics.fb_click_tracking_event_name,
account: fbGaAnalytics.fb_click_tracking_event_label
});
FBpixeled = true;
}
}
catch ( error ) {
if ( 'yes' === wwsObj.is_debug ) {
window.console && console.log( 'WordPress WhatsApp Support Google or Facebook analytics error message: ' + error.message );
}
}
}
}
function isGDPRChecked() {
if ( 'yes' !== wwsObj.is_gdpr ) {
return;
}
if ( jQuery('.wws-gdpr input').is(':checked') == false ) {
jQuery( '.wws-gdpr > div' ).addClass('wws-shake-animation');
setTimeout( function() {
jQuery( '.wws-gdpr > div' ).removeClass('wws-shake-animation');
}, 300 );
return false;
} else {
return true;
}
}
// Open and close the wws popup
jQuery( '.wws-popup__open-btn, .wws-popup__close-btn' ).on('click', function(event) {
event.preventDefault();
wwsWidget.trigger();
});
// send message
jQuery( document ).on('click', '.wws-popup__send-btn', function(event) {
event.preventDefault();
// If popup template is 8th
if ( wwsObj.popup_layout == 8 ) {
var preMessage = jQuery( this ).attr( 'data-wws-pre-msg' );
var whatsappNumber = jQuery( this ).attr( 'data-wws-number' );
if ( isGDPRChecked() == false ) return;
if ( '' === preMessage ) {
preMessage = '%20';
}
if( wwsWidget.sendMessage( preMessage, whatsappNumber ) == true ) {
wwsWidget.logAnalytics( preMessage, 'N/A', 'Layout 8' );
wws_ga_and_fb_click_analytics();
}
}
// If popup template is 7th
if ( wwsObj.popup_layout == 7 ) {
var message = jQuery( '.wws-popup__input' ).val();
var number = jQuery( '.wws-popup__fields-number' ).val();
var whatsappNumber = wwsObj.support_number;
if ( isGDPRChecked() == false ) return;
setTimeout( function() {
jQuery( '.wws-popup__fields-textarea-wrapper, .wws-popup__fields-number' ).removeClass( 'wws-shake-animation' );
}, 300 );
if ( number == '' ) {
jQuery( '.wws-popup__fields-number' ).addClass( 'wws-shake-animation' );
return;
}
if ( message == '' ) {
jQuery( '.wws-popup__fields-textarea-wrapper' ).addClass( 'wws-shake-animation' );
return;
}
if( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) {
wwsWidget.logAnalytics( message, number, 'Layout 7' );
wws_ga_and_fb_click_analytics();
}
}
if ( wwsObj.popup_layout == 6 ) {
var message = jQuery( '.wws-popup__input' ).val();
var preMessage = jQuery( '.wws-popup-multi-support-pre-essage' ).val();
var number = jQuery( '.wws-popup__fields-number' ).val();
var whatsappNumber = jQuery( '.wws-popup-multi-support-number' ).val();
var supportPersonId = jQuery( '.wws-popup-multi-support-id' ).val();
if ( isGDPRChecked() == false ) return;
setTimeout( function() {
jQuery( '.wws-popup__fields-textarea-wrapper, .wws-popup__fields-number' ).removeClass( 'wws-shake-animation' );
}, 300 );
if ( number == '' ) {
jQuery( '.wws-popup__fields-number' ).addClass( 'wws-shake-animation' );
return;
}
if ( message == '' ) {
jQuery( '.wws-popup__fields-textarea-wrapper' ).addClass( 'wws-shake-animation' );
return;
}
if( wwsWidget.sendMessage( ( message + preMessage ), whatsappNumber ) == true ) {
wwsWidget.logAnalytics( message, number, 'Layout 6', {
supportPersonId: supportPersonId
} );
wws_ga_and_fb_click_analytics();
}
}
// if popup template is 1st, 2nd, or 3rd
if ( wwsObj.popup_layout == 1 || wwsObj.popup_layout == 2 || wwsObj.popup_layout == 3 ) {
var message = jQuery( '.wws-popup__input' ).val();
var whatsappNumber = wwsObj.support_number;
if ( isGDPRChecked() == false ) return;
setTimeout( function() {
jQuery( '.wws-popup__input-wrapper' ).removeClass( 'wws-shake-animation' );
}, 300 );
if ( 0 == message.length ) {
jQuery( '.wws-popup__input-wrapper' ).addClass( 'wws-shake-animation' );
return;
}
if ( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) {
if ( 1 == wwsObj.popup_layout ) {
wwsWidget.logAnalytics( message, 'N/A', 'Layout 1' );
} else if ( 2 == wwsObj.popup_layout ) {
wwsWidget.logAnalytics( message, 'N/A', 'Layout 2' );
} else if ( 3 == wwsObj.popup_layout ) {
wwsWidget.logAnalytics( message, 'N/A', 'Layout 3' );
}
wws_ga_and_fb_click_analytics();
}
}
// if popup template is 4th
if ( wwsObj.popup_layout == 4 ) {
var message = jQuery( '.wws-popup__input' ).val();
var whatsappNumber = wwsObj.support_number;
if( wwsWidget.sendMessage( ( message + wwsObj.pre_defined_text ), whatsappNumber ) == true ) {
wwsWidget.logAnalytics( 'N/A', 'N/A', 'Layout 4' );
wws_ga_and_fb_click_analytics();
}
}
});
// Hit enter to send a message.
jQuery('.wws-popup__input').on( 'keypress', function (e) {
var key = e.which;
if(key == 13) { // the enter key code
jQuery('.wws-popup__send-btn').click();
return false;
}
});
// Group invitation
jQuery( '.wws-popup-group-invitation__button' ).on( 'click', function() {
wwsWidget.sendGroupInvitation( wwsObj.group_invitation_id );
wwsWidget.logAnalytics();
wws_ga_and_fb_click_analytics()
});
// autoPopup
if ( 'yes' === wwsObj.auto_popup ) {
wwsWidget.autoPopup( wwsObj.auto_popup_time );
}
// popup button display by scroll lenght
if ( wwsObj.scroll_lenght != null ) {
jQuery(document).on( 'scroll', function () {
var y = jQuery(window).scrollTop() + jQuery(window).height();
var documentHeight = jQuery(document).height() * wwsObj.scroll_lenght / 100;
if ( y >= documentHeight - 10 ) {
jQuery('.wws-popup-container').fadeIn();
} else {
jQuery('.wws-popup-container').fadeOut();
}
});
}
// Layout 6 - open selected support person.
jQuery( document ).on( 'click', '[data-wws-multi-support-person-id]', function() {
var multiSupportPersonID = jQuery( this ).attr( 'data-wws-multi-support-person-id' );
jQuery( '.wws-popup__support-person-wrapper' ).hide();
jQuery( '.wws-popup__support-person-form' ).show();
jQuery( '.wws-popup__support-person-form' ).html( wwsLoader );
jQuery.ajax({
url: wwsObj.admin_url,
type: 'post',
data: {
'action': 'wws_view_multi_person_form',
'support_person_id': multiSupportPersonID,
'post_id' : wwsObj.current_page_id,
}
}).done(function( response ) {
jQuery( '.wws-popup__support-person-form' ).html( response );
if ( '' !== wwsObj.numberMasking) {
jQuery( '.wws-popup__fields-number' ).inputmask( wwsObj.numberMasking );
}
});
} );
// Layout 6 - close selected support person.
jQuery( document ).on( 'click', '[data-wws-multi-support-back]', function() {
jQuery( '.wws-popup__support-person-wrapper' ).show();
jQuery( '.wws-popup__support-person-form' ).hide();
} );
// Mobile number masking
if ( '' !== wwsObj.numberMasking) {
jQuery( '.wws-popup__fields-number' ).inputmask( wwsObj.numberMasking );
}
/**
* Generated shortcode button analytics.
*
* @since 1.9.7
*
*/
jQuery( '.wws-shortcode-btn' ).on( 'click', function() {
wwsWidget.logAnalytics( 'N/A', 'N/A', 'Shortcode Button' );
wws_ga_and_fb_click_analytics();
} );
/**
* WooCommerce query button analytics.
*
* @since 1.9.7
*
*/
jQuery( '.wws-product-query-btn' ).on( 'click', function() {
wwsWidget.logAnalytics( 'N/A', 'N/A', 'Woo Query Button' );
wws_ga_and_fb_click_analytics();
} );
/**
* Click to call.
*
* @since 2.0.6
*/
jQuery( '[data-wws-agent-call]' ).on( 'click', function() {
var call_number = jQuery( this ).data( 'wws-agent-call' );
window.open( 'tel:' + call_number );
} );
}); // Document ready end here.
})(jQuery)