1/* 2 * Project: wpwBot jQuery Plugin 3 * Description: wpwBot AI based Chatting functionality are handled . 4 * Author: QuantumCloud 5 * Version: 1.0 6 */ 7var wpwKits; 8(function($) { 9 /* 10 * Global variable as object will beused to handle 11 * wpwbot chatting initialize, tree change transfer, 12 * changing tree steps and cookies etc. 13 */ 14 var globalwpw={ 15 initialize:0, 16 settings:{}, 17 wildCard:0, 18 wildcards:'', 19 wildcardsHelp:['start','support','reset', 'search', 'email'], 20 productStep:'asking', 21 orderStep:'welcome', 22 supportStep:'welcome', 23 formStep: 'welcome', 24 formfieldid:'', 25 formid:'', 26 formentry:0, 27 hasNameCookie:$.cookie("shopper"), 28 shopperUserName:'', 29 shopperEmail:'', 30 shopperMessage:'', 31 emptymsghandler:0, 32 repeatQueryEmpty:'', 33 wpwIsWorking:0, 34 ai_step:0, 35 df_status_lock:0, 36 counter:0 37 }; 38 /* 39 * wpwbot welcome section coverd 40 * greeting for new and already visited shopper 41 * based the memory after asking thier name. 42 */ 43 var wpwWelcome={ 44 greeting:function () { 45 //generating unique session id. 46 if(!localStorage.getItem('botsessionid')){ 47 var number = Math.random() // 0.9394456857981651 48 number.toString(36); // '0.xtis06h6' 49 var id = number.toString(36).substr(2); // 'xtis06h6' 50 localStorage.setItem('botsessionid', id); 51 } 52 // console.log(globalwpw.settings.obj.skip_wp_greetings=='1') 53 if((globalwpw.settings.obj.skip_wp_greetings=='1') || (globalwpw.settings.obj.skip_greetings_and_menu =='1') ){ 54 }else{ 55 //Very begining greeting. 56 if(globalwpw.settings.obj.re_target_handler==0){ 57 var botJoinMsg="<strong>"+wpwMsg.oncommand_filter(globalwpw.settings.obj.agent)+" </strong> "+wpwKits.randomMsg(globalwpw.settings.obj.agent_join); 58 wpwMsg.single(botJoinMsg); 59 } 60 //Showing greeting for name in cookie or fresh shopper. 61 setTimeout(function(){ 62 var firstMsg=wpwKits.randomMsg(globalwpw.settings.obj.hi_there)+' '+wpwKits.randomMsg(globalwpw.settings.obj.welcome)+" <strong>"+globalwpw.settings.obj.host+"!</strong> "; 63 var secondMsg=wpwKits.randomMsg(globalwpw.settings.obj.asking_name); 64 65 wpwMsg.double(firstMsg,secondMsg); 66 67 }, globalwpw.settings.preLoadingTime*2); 68 } 69 70 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 71 if(globalwpw.settings.obj.skip_greetings_and_menu != 0){ 72 wpwMsg.single(serviceOffer); 73 } 74 if( ( globalwpw.settings.obj.show_menu_after_greetings!=0 ) && ( globalwpw.wildcards !='' ) ){ 75 wpwMsg.double_nobg(serviceOffer, globalwpw.wildcards); 76 } if( ( globalwpw.settings.obj.skip_wp_greetings !=0 ) && ( globalwpw.wildcards !='' ) ){ 77 wpwMsg.double_nobg(serviceOffer, globalwpw.wildcards); 78 } else{ 79 //wpwMsg.single(serviceOffer); 80 } 81 } 82 }; 83 //Append the message to the message container based on the requirement. 84 var wpwMsg={ 85 oncommand_filter:function(msg){ 86 var str = msg; 87 if(typeof(str) === 'string'){ 88 replace = str.match(/on[a-z]+=/); 89 str = str.replace( replace, "" ); 90 } 91 return str; 92 }, 93 open_new_tab: function(msg){ 94 if(wp_chatbot_obj.open_links_newtab == '1'){ 95 var temp = document.createElement('div'); 96 temp.innerHTML = msg; 97 let links = temp.querySelectorAll('a'); 98 links.forEach(link => { 99 link.setAttribute('target', '_blank'); 100 }); 101 let temps = temp.innerHTML; 102 return temps; 103 }else{ 104 return msg; 105 } 106 }, 107 single_openai:function (msg) { 108 msg = wpwMsg.open_new_tab(msg);
109 globalwpw.wpwIsWorking=1; 110 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 111 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 112 } 113 114 //Scroll to the last message 115 wpwKits.scrollTo(); 116 setTimeout(function(){ 117 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').text( msg ); 118 //If has youtube link then show video 119 wpwKits.videohandler(); 120 //scroll to the last message 121 wpwKits.scrollTo(); 122 //Enable the editor 123 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 124 //keeping in history 125 wpwKits.wpwHistorySave(); 126 127 }, globalwpw.settings.preLoadingTime); 128 }, 129 single:function (msg) { 130 msg = wpwMsg.open_new_tab(msg); 131 globalwpw.wpwIsWorking=1; 132 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 133 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 134 } 135 //Scroll to the last message 136 wpwKits.scrollTo(); 137 oncommand_filter = wpwMsg.oncommand_filter(msg); 138 139 setTimeout(function(){ 140 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html( '<div class="wp-chatbot-textanimation">' + oncommand_filter + '</div>'); 141 //If has youtube link then show video 142 wpwKits.videohandler(); 143 //scroll to the last message 144 wpwKits.scrollTo(); 145 //Enable the editor 146 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 147 //keeping in history 148 wpwKits.wpwHistorySave(); 149 }, globalwpw.settings.preLoadingTime); 150 }, 151 single_nobg:function (msg) { 152 msg = wpwMsg.open_new_tab(msg); 153 globalwpw.wpwIsWorking=1; 154 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 155 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 156 } 157 //Scroll to the last message 158 oncommand_filter = wpwMsg.oncommand_filter(msg); 159 wpwKits.scrollTo(); 160 setTimeout(function(){ 161 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html( '<div class="wp-chatbot-textanimation">' + oncommand_filter + '</div>'); 162 //scroll to the last message 163 wpwKits.scrollTo(); 164 //Enable the editor 165 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 166 //Keeping the chat history in localStorage 167 wpwKits.wpwHistorySave(); 168 // disabled editor 169 // wpwKits.disableEditor('Please choose an option.'); 170 }, globalwpw.settings.preLoadingTime); 171 }, 172 double:function (fristMsg,secondMsg) { 173 fristMsg = wpwMsg.open_new_tab(fristMsg); 174 secondMsg = wpwMsg.open_new_tab(secondMsg); 175 globalwpw.wpwIsWorking=1; 176 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 177 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 178 } 179 oncommand_fristMsg_filter = wpwMsg.oncommand_filter(fristMsg); 180 oncommand_secondMsg_filter = wpwMsg.oncommand_filter(secondMsg); 181 //Scroll to the last message 182 wpwKits.scrollTo(); 183 setTimeout(function(){ 184 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html('<div class="wp-chatbot-textanimation">' + oncommand_fristMsg_filter + '</div>'); 185 //Second Message with interval 186 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 187 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 188 } 189 //Scroll to the last message 190 wpwKits.scrollTo(); 191 setTimeout(function(){ 192 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html('<div class="wp-chatbot-textanimation">' + oncommand_secondMsg_filter + '</div>'); 193 //Scroll to the last message 194 wpwKits.scrollTo(); 195 //Enable the editor 196 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 197 //keeping in history 198 wpwKits.wpwHistorySave(); 199 }
199, globalwpw.settings.preLoadingTime*2); 200 }, globalwpw.settings.preLoadingTime); 201 }, 202 double_nobg:function (fristMsg,secondMsg) { 203 fristMsg = wpwMsg.open_new_tab(fristMsg); 204 secondMsg = wpwMsg.open_new_tab(secondMsg); 205 oncommand_fristMsg_filter = wpwMsg.oncommand_filter(fristMsg); 206 oncommand_secondMsg_filter = wpwMsg.oncommand_filter(secondMsg); 207 208 globalwpw.wpwIsWorking=1; 209 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 210 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 211 } 212 //Scroll to the last message 213 wpwKits.scrollTo(); 214 setTimeout(function(){ 215 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html('<div class="wp-chatbot-textanimation">' + oncommand_fristMsg_filter + '</div>'); 216 //Second Message with interval 217 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 218 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 219 } 220 //Scroll to the last message 221 wpwKits.scrollTo(); 222 setTimeout(function(){ 223 if( globalwpw.wildCard>0 && (globalwpw.settings.obj.disable_back_to_start != '1') ){ 224 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html(oncommand_secondMsg_filter).append('<span class="qcld-chatbot-wildcard" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 225 }else{ 226 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html('<div class="wp-chatbot-textanimation">' + oncommand_secondMsg_filter + '</div>'); 227 } 228 //scroll to the last message 229 wpwKits.scrollTo(); 230 //Enable the editor 231 if(globalwpw.wildCard==1 && globalwpw.supportStep=='welcome'){ 232 //wpwKits.disableEditor('Support'); 233 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 234 }else{ 235 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 236 } 237 //keeping in history 238 wpwKits.wpwHistorySave(); 239 // disabled editor 240 // wpwKits.disableEditor('Please choose an option.'); 241 }, globalwpw.settings.preLoadingTime*2); 242 }, globalwpw.settings.preLoadingTime); 243 }, 244 triple_nobg:function (fristMsg,secondMsg,thirdMsg) { 245 fristMsg = wpwMsg.open_new_tab(fristMsg); 246 secondMsg = wpwMsg.open_new_tab(secondMsg); 247 oncommand_fristMsg_filter = wpwMsg.oncommand_filter(fristMsg); 248 oncommand_secondMsg_filter = wpwMsg.oncommand_filter(secondMsg);
249 globalwpw.wpwIsWorking=1; 250 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 251 //Scroll to the last message 252 wpwKits.scrollTo(); 253 setTimeout(function(){ 254 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html('<div class="wp-chatbot-textanimation">' + oncommand_fristMsg_filter + '</div>'); 255 wpwKits.videohandler(); 256 //Second Message with interval 257 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 258 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 259 } 260 //Scroll to the last message 261 wpwKits.scrollTo(); 262 setTimeout(function(){ 263 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html('<div class="wp-chatbot-textanimation">' + oncommand_secondMsg_filter + '</div>'); 264 wpwKits.videohandler(); 265 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 266 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 267 } 268 //Scroll to the last message 269 wpwKits.scrollTo(); 270 setTimeout(function(){ 271 if(globalwpw.wildCard>0 && globalwpw.settings.obj.disable_back_to_start != '1'){ 272 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html(thirdMsg).append('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 273 }else{ 274 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html('<div class="wp-chatbot-textanimation">' + thirdMsg + '</div>'); 275 } 276 //scroll to the last message 277 wpwKits.scrollTo(); 278 wpwKits.videohandler(); 279 //Enable the editor 280 if(globalwpw.wildCard==1 && globalwpw.supportStep=='welcome'){ 281 //wpwKits.disableEditor('Support'); 282 }else{ 283 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 284 } 285 //keeping in history 286 wpwKits.wpwHistorySave(); 287 // disabled editor 288 // wpwKits.disableEditor('Please choose an option.'); 289 }, globalwpw.settings.preLoadingTime); 290 }, globalwpw.settings.preLoadingTime); 291 }, globalwpw.settings.preLoadingTime); 292 }, 293 shopper:function (shopperMsg) { 294 $(globalwpw.settings.messageContainer).append(wpwKits.shopperMsgDom(shopperMsg)); 295 //scroll to the last message 296 wpwKits.scrollTo(); 297 //keeping in history 298 wpwKits.wpwHistorySave(); 299 }, 300 shopper_choice:function (shopperChoice) { 301 $(globalwpw.settings.messageLastChild).fadeOut(globalwpw.settings.preLoadingTime); 302 $(globalwpw.settings.messageContainer).append(wpwKits.shopperMsgDom(shopperChoice)); 303 //scroll to the last message 304 wpwKits.scrollTo(); 305 //keeping in history 306 wpwKits.wpwHistorySave(); 307 } 308 }; 309 //Every tiny tools are implemented in wpwKits as object literal. 310 wpwKits={ 311 enableEditor:function(placeHolder){ 312 if(globalwpw.settings.editor_handler==0){ 313 if($(window).width()>380){ 314 $("#wp-chatbot-editor").attr('disabled',false).focus(); 315 }else{ 316 $("#wp-chatbot-editor").attr('disabled',false) 317 } 318 $("#wp-chatbot-editor").attr('placeholder',placeHolder); 319 $("#wp-chatbot-send-message").attr('disabled',false); 320 } 321 }, 322 disableEditor:function (placeHolder) { 323 if(globalwpw.settings.editor_handler==0){ 324 $("#wp-chatbot-editor").attr('placeholder',placeHolder); 325 $("#wp-chatbot-editor").attr('disabled',true); 326 $("#wp-chatbot-send-message").attr('disabled',true); 327 } 328 //Remove extra pre loader.
329 if($('.wp-chatbot-messages-container').find('.wp-chatbot-comment-loader').length>0){ 330 $('.wp-chatbot-messages-container').find('.wp-chatbot-comment-loader').parent().parent().hide(); 331 } 332 }, 333 htmlEntities:function(str) { 334 return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); 335 }, 336 wpwHistorySave:function () { 337 globalwpw.wpwIsWorking=0; 338 var wpwHistory= $(globalwpw.settings.messageWrapper).html(); 339 localStorage.setItem("wpwHitory", wpwHistory); 340 if(localStorage.getItem('botsessionid')){ 341 if(!localStorage.getItem('shopperemail')){ 342 var useremail = ''; 343 }else{ 344 var useremail = localStorage.getItem('shopperemail'); 345 } 346 if(globalwpw.hasNameCookie){ 347 var shopper=globalwpw.hasNameCookie; 348 } else{ 349 var shopper=globalwpw.settings.obj.shopper_demo_name; 350 } 351 if(localStorage.getItem('shopperphone')){ 352 var shopperphone = localStorage.getItem('shopperphone'); 353 }else{ 354 var shopperphone = ''; 355 } 356 var data = {'action':'qcld_wb_chatbot_conversation_save','session_id': localStorage.getItem('botsessionid'),'name':shopper,'email':useremail, 'phone':shopperphone, 'conversation':wpwKits.htmlEntities(wpwHistory), 'security':globalwpw.settings.obj.ajax_nonce, 'user_id': globalwpw.settings.obj.current_user_id}; 357 if( globalwpw.settings.obj.is_chat_session_active == 1 ){ 358 wpwKits.ajax(data).done(function (response) { 359 //console.log(response); 360 }) 361 } 362 } 363 //},globalwpw.settings.wildcardsShowTime); 364 }, 365 decodehtml: function(str) { 366 var doc = new DOMParser().parseFromString(str, "text/html"); 367 368 return doc.body.firstChild.data || ""; 369 370 }, 371 randomMsg:function(arrMsg){ 372 var index=Math.floor(Math.random() * arrMsg.length); 373 var msg = arrMsg[index]; 374 if (typeof msg === 'string' && msg.indexOf('%%username%%') !== -1) { 375 var shopperName = localStorage.getItem('shopper') || (globalwpw.settings.obj.display_name || ''); 376 msg = msg.replace(/%%username%%/g, shopperName); 377 } 378 return msg; 379 }, 380 ajax:function (data) { 381 return jQuery.post(globalwpw.settings.obj.ajax_url, data); 382 }, 383 dailogAIOAction:function(text){ 384 if(globalwpw.settings.obj.df_api_version=='v1'){ 385 return jQuery.ajax({ 386 type : "POST", 387 url :"https://api.dialogflow.com/v1/query?v=20170712", 388 contentType : "application/json; charset=utf-8", 389 dataType : "json", 390 headers : { 391 "Authorization" : "Bearer "+globalwpw.settings.obj.ai_df_token 392 }, 393 data: JSON.stringify( { 394 query: text, 395 lang : globalwpw.settings.obj.df_agent_lan, 396 sessionId: localStorage.getItem('botsessionid')?localStorage.getItem('botsessionid'):'wpwBot_df_2018071' 397 } ) 398 }); 399 }else{ 400 401 return jQuery.post(globalwpw.settings.obj.ajax_url, { 402 'action': 'qcld_wp_df_api_call', 403 'dfquery': text, 404 'nonce': globalwpw.settings.obj.ajax_nonce, 405 'sessionid': localStorage.getItem('botsessionid')?localStorage.getItem('botsessionid'):'wpwBot_df_2018071' 406 }); 407 } 408 }, 409 responseIsOk(response){ 410 if(globalwpw.settings.obj.df_api_version=='v1'){ 411 if(response.status.code==200 || response.status.code==206){ 412 return true; 413 }else{ 414 return false; 415 } 416 }else{ 417 if(typeof response.responseId !== "undefined"){ 418 return true; 419 }else{ 420 return false; 421 } 422 } 423 }, 424 getIntentName(response){ 425 if(globalwpw.settings.obj.df_api_version=='v1'){ 426 return response.result.metadata.intentName; 427 }else{ 428 return response.queryResult.intent.displayName; 429 } 430 }, 431 getParameters(response){ 432 if(globalwpw.settings.obj.df_api_version=='v1'){ 433 return response.result.parameters; 434 }else{ 435 return response.queryResult.parameters; 436 } 437 }, 438 getFulfillmentText(response){ 439 if(globalwpw.settings.obj.df_api_version=='v1'){ 440 return response.result.fulfillment.messages; 441 }else{ 442 return response.queryResult.fulfillmentText; 443 } 444 }, 445 getFulfillmentSpeech(response){ 446 if(globalwpw.settings.obj.df_api_version=='v1'){ 447 return response.result.fulfillment.speech; 448 }else{ 449 return response.queryResult.fulfillmentText; 450 } 451 }, 452 getScore(response){ 453 if(globalwpw.settings.obj.df_api_version=='v1'){ 454 return response.result.score; 455 }else{ 456 return response.queryResult.intentDetectionConfidence; 457 } 458 }, 459 getAction(response){ 460 if(globalwpw.settings.obj.df_api_version=='v1'){ 461 return response.result.action; 462 }else{ 463 if(typeof response.queryResult.action !=="undefined"){ 464 return response.queryResult.action; 465 }else{ 466 return ''; 467 } 468 } 469 }, 470 queryText(response){ 471 if(globalwpw.settings.obj.df_api_version=='v1'){ 472 return response.result.resolvedQuery; 473 }else{ 474 return response.queryResult.queryText; 475 } 476 }, 477 isActionComplete(response){ 478 if(globalwpw.settings.obj.df_api_version=='v1'){ 479 if(!response.result.actionIncomplete){ 480 return true; 481 }else{ 482 return false; 483 } 484 }else{ 485 return response.queryResult.allRequiredParamsPresent; 486 } 487 }, 488 isConversationEnd(response){ 489 if(globalwpw.settings.obj.df_api_version=='v1'){ 490 if(typeof(response.result.metadata.endConversation)!=="undefined" && response.result.metadata.endConversation){ 491 return true; 492 }else{ 493 return false; 494 } 495 }else{ 496 if(typeof response.queryResult.diagnosticInfo !=="undefined"){ 497 if(typeof response.queryResult.diagnosticInfo.end_conversation !== "undefined"){ 498 return response.queryResult.diagnosticInfo.end_conversation; 499 }else{ 500 return false; 501 } 502 }else{ 503 return false; 504 } 505 } 506 }, 507 sugestCat:function () { 508 var productSuggest=wpwKits.randomMsg(globalwpw.settings.obj.product_suggest); 509 var data={'action':'qcld_wb_chatbot_category'}; 510 var result=wpwKits.ajax(data); 511 result.done(function( response ) { 512 wpwMsg.double_nobg(productSuggest,response); 513 if(globalwpw.settings.obj.ai_df_enable==1 && global
513wpw.df_status_lock==0){ 514 globalwpw.wildCard=0; 515 globalwpw.ai_step=1; 516 localStorage.setItem("wildCard", globalwpw.wildCard); 517 localStorage.setItem("aiStep", globalwpw.ai_step); 518 } 519 }); 520 }, 521 subCats:function (parentId) { 522 var subCatMsg=wpwKits.randomMsg(globalwpw.settings.obj.product_suggest); 523 var data={'action':'qcld_wb_chatbot_sub_category','parent_id':parentId}; 524 var result=wpwKits.ajax(data); 525 result.done(function( response ) { 526 wpwMsg.double_nobg(subCatMsg,response); 527 }); 528 }, 529 suggestEmail:function (emailFor) { 530 var sugMsg=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 531 var sugOptions= '<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'; // /*emailFor+*/globalwpw.wildcards; 532 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 533 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 534 } 535 }, 536 videohandler:function () { 537 $(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(function(i, html) { 538 return html.replace(/(?:https:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?(.+)/g, '<iframe width="250" height="180" src="http://www.youtube.com/embed/$1" frameborder="0" allowfullscreen></iframe>'); 539 }); 540 }, 541 scrollTo:function () { 542 $(globalwpw.settings.botContainer).animate({ scrollTop: $(globalwpw.settings.messageWrapper).prop("scrollHeight")}, 'slow').parent().find('.slimScrollBar').css({'top':$(globalwpw.settings.botContainer).height()+'px'});; 543 }, 544 botPreloader:function () { 545 var enableleReactions = globalwpw.settings.obj.skip_chat_reactions_menu; 546 var eanleeReport = globalwpw.settings.obj.enable_chat_report_menu; 547 var enableshare = globalwpw.settings.obj.enable_chat_share_menu; 548 var likeTxt = globalwpw.settings.obj.qlcd_wp_chatbot_like_text; 549 var disLikeTxt = globalwpw.settings.obj.qlcd_wp_chatbot_dislike_text; 550 var reportTxt = globalwpw.settings.obj.qlcd_wp_chatbot_report_text; 551 var sharetTxt = globalwpw.settings.obj.qlcd_wp_chatbot_share_text; 552 553 var msgContent='<li class="wp-chatbot-msg">' + 554 '<div class="wp-chatbot-avatar">'+ 555 '<img src="'+globalwpw.settings.obj.agent_image_path+'" alt="">'+ 556 '</div>'+ 557 '<div class="wp-chatbot-agent">'+ wpwMsg.oncommand_filter(globalwpw.settings.obj.agent)+'</div>' 558 +'<div class="chat-container"><div class="wp-chatbot-paragraph"><img class="wp-chatbot-comment-loader" src="'+globalwpw.settings.obj.image_path+'comment.gif" alt="Typing..." /></div>'+ 559 '<div class="qcld-like-dislike-icon">' + 560 (enableleReactions == 1 561 ? '<a href="#" title="' + (likeTxt?.en_US || 'Like') + '"><i class="dashicons dashicons-thumbs-up" aria-hidden="true"></i></a>' + 562 '<a href="#" title="' + (disLikeTxt?.en_US || 'Dislike') + '"><i class="dashicons dashicons-thumbs-down" aria-hidden="true"></i></a>' 563 : '') + 564 565 (eanleeReport == 1 566 ? '<a href="#" title="' + (reportTxt?.en_US || 'Report') + '"><i class="dashicons dashicons-admin-comments"></i></a>' 567 : '') + 568 569 (enableshare == 1 570 ? '<div class="qcld-share">' + 571 '<a href="#" class="share-toggle" title="' + (sharetTxt?.en_US || 'Share') + '"><i class="dashicons dashicons-share"></i></a>' + 572 '<div class="share-menu" style="display:none;">' + 573 '<a href="#" class="share-fb"><i class="dashicons dashicons-facebook"></i></a>' + 574 '<a href="#" class="share-wa"><i class="dashicons dashicons-whatsapp"></i></a>' + 575 '<a href="#" class="share-x"><i class="dashicons dashicons-twitter"></i></a>' + 576 '<a href="#" class="share-email"><i class="dashicons dashicons-email-alt"></i></a>' + 577 '</div>' + 578 '</div>' 579 : '') + 580 '</div>' +'</div>' + 581 '</li>'; 582 return msgContent; 583 }, 584 shopperMsgDom:function (msg) { 585 if(globalwpw.hasNameCookie){ 586 var shopper=globalwpw.hasNameCookie; 587 } else{ 588 var shopper=globalwpw.settings.obj.shopper_demo_name; 589 } 590 //var date = new Date(); 591 date = new Date(); 592 var msgContent='<li class="wp-chat-user-msg">' + 593 '<div style="margin-top:40px;" class="wp-chatbot-avatar">'+ 594 '<img src="'+globalwpw.settings.obj.image_path+'client.png" alt="User Image">'+ 595 '</div>'+ 596 '<div class="wp-chatbot-agent">
596'+shopper +'</div>' 597 +'<div class="wp-chatbot-paragraph"><div class="wp-chatbot-textanimation">'+msg+'</div></div></li>'; 598 return msgContent; 599 }, 600 showCart:function () { 601 var data = {'action':'qcld_wb_chatbot_show_cart'} 602 this.ajax(data).done(function (response) { 603 //if cart show on message board 604 if($('#wp-chatbot-shortcode-template-container').length == 0) { 605 $(globalwpw.settings.messageWrapper).html(response.html); 606 $('#wp-chatbot-cart-numbers').html(response.items); 607 $('.wp-chatbot-ball-cart-items').html(response.items); 608 wpwKits.disableEditor(wpwKits.randomMsg(globalwpw.settings.obj.shopping_cart)); 609 }else{ //Cart show on shortcode 610 $('.wp-chatbot-cart-shortcode-container').html(response.html); 611 } 612 //Add scroll to the cart shortcode 613 if($('#wp-chatbot-shortcode-template-container').length > 0 && $('.chatbot-shortcode-template-02').length==0) { 614 $('.wp-chatbot-cart-body').slimScroll({height: '200px', start: 'bottom'}); 615 } 616 }); 617 }, 618 toTitlecase:function (msg) { 619 return msg.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 620 }, 621 filterStopWords:function(msg){ 622 var spcialStopWords=",;,/,\\,[,],{,},(,),&,*,.,+ ,?,^,$,=,!,<,>,|,:,-"; 623 var userMsg=""; 624 //Removing Special Characts from last position. 625 var msgLastChar=msg.slice(-1); 626 if(spcialStopWords.indexOf(msgLastChar) >= 0 ){ 627 userMsg=msg.slice(0, -1); 628 }else{ 629 userMsg=msg; 630 } 631 var stopWords=globalwpw.settings.obj.stop_words+spcialStopWords; 632 var stopWordsArr=stopWords.split(','); 633 var msgArr=userMsg.split(' '); 634 var filtermsgArr = msgArr.filter(function myCallBack(el){ 635 return stopWordsArr.indexOf(el.toLowerCase()) < 0; 636 }); 637 filterMsg=filtermsgArr.join(' '); 638 return filterMsg; 639 }, 640 htmlTagsScape:function(userString) { 641 var tagsToReplace = { 642 '&': '&', 643 '<': '<', 644 '>': '>' 645 }; 646 return userString.replace(/[&<>]/g, function(tag) { 647 return tagsToReplace[tag] || tag; 648 }); 649 }, 650 reset: function() { 651 $('#wp-chatbot-messages-container').html(''); 652 localStorage.removeItem("wpwHitory"); 653 localStorage.removeItem('shopper'); 654 globalwpw.wildCard=0; 655 globalwpw.ai_step=0; 656 localStorage.setItem("wildCard", globalwpw.wildCard); 657 localStorage.setItem("aiStep", globalwpw.ai_step); 658 globalwpw.formfieldid = ''; 659 localStorage.setItem("formfieldid", globalwpw.formfieldid); 660 globalwpw.formStep='welcome'; 661 localStorage.setItem("formStep", globalwpw.formStep); 662 globalwpw.formid='';
663 localStorage.setItem("formid", globalwpw.formid); 664 globalwpw.formentry = 0; 665 localStorage.setItem("formentry", globalwpw.formentry); 666 localStorage.removeItem("cx-name" ); 667 localStorage.removeItem("cx-diaplayname" ); 668 localStorage.removeItem("cx-languagecode" ); 669 localStorage.removeItem("cx-timezone" ); 670 } 671 } 672 /* 673 * wpwbot Trees are basically product,order and support 674 * product tree : asking,showing & shopping part will be covered. 675 * order tree : showing order list and email to admin option. 676 * support tree : List of support query-answer including text & video and email to admin option. 677 */ 678 var wpwTree={ 679 greeting:function (msg) { 680 /** 681 * When Enable DialogFlow then or else 682 */ 683 684 if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){ 685 //When intialize 1 and don't have cookies then keep the name of shooper in in cookie 686 if(globalwpw.initialize==1 && !localStorage.getItem('shopper') && globalwpw.wildCard==0 && globalwpw.ai_step==0 ){ 687 msg=wpwKits.toTitlecase(wpwKits.filterStopWords(msg)); 688 $.cookie("shopper", msg, { expires : 365 }); 689 localStorage.setItem('shopper',msg); 690 globalwpw.hasNameCookie=msg; 691 //Greeting with name and suggesting the wildcard. 692 var NameGreeting=wpwKits.randomMsg(globalwpw.settings.obj.i_am) +" <strong>"+wpwMsg.oncommand_filter(globalwpw.settings.obj.agent)+"</strong>! "+ wpwKits.randomMsg(globalwpw.settings.obj.name_greeting); 693 NameGreeting = NameGreeting.replace("%%username%%", msg); 694 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 695 serviceOffer = serviceOffer.replace("%%username%%", msg); 696 //After completing two steps messaging showing wildcards. 697 wpwMsg.triple_nobg( NameGreeting,serviceOffer, globalwpw.wildcards ) 698 globalwpw.ai_step=1; 699 globalwpw.wildCard=0; 700 localStorage.setItem("wildCard", globalwpw.wildCard); 701 localStorage.setItem("aiStep", globalwpw.ai_step); 702 } 703 //When returning shopper then greeting with name and wildcards. 704 else if(localStorage.getItem('shopper') && globalwpw.wildCard==0 && globalwpw.ai_step==0){ 705 //After asking service show the wildcards. 706 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 707 globalwpw.ai_step=1; 708 globalwpw.wildCard=0; 709 localStorage.setItem("wildCard", globalwpw.wildCard); 710 localStorage.setItem("aiStep", globalwpw.ai_step); 711 if( ( globalwpw.settings.obj.show_menu_after_greetings==1) && ( globalwpw.wildcards !='' ) ){ 712 wpwMsg.double_nobg(serviceOffer, globalwpw.wildcards); 713 }else{ 714 wpwMsg.single(serviceOffer); 715 } 716 } 717 //When user asking needs then DialogFlow will given intent after NLP steps. 718 else if(globalwpw.wildCard==0 && globalwpw.ai_step==1){ 719 var dfReturns=wpwKits.dailogAIOAction(msg); 720 dfReturns.done(function( response ) { 721 if(globalwpw.settings.obj.df_api_version=='v2'){ 722 response = $.parseJSON(JSON.parse(response)); 723 } 724 if(wpwKits.responseIsOk(response)){ 725 var userIntent=wpwKits.getIntentName(response); 726 727 if(userIntent=='start'){ 728 globalwpw.wildCard=0; 729 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 730 console.log( globalwpw.wildcards); 731 wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards); 732 }else if(userIntent=='welcome'){ 733 var messages = wpwKits.getFulfillmentSpeech(response); 734 setTimeout(function () { 735 wpwMsg.single(messages); 736 }
736,globalwpw.settings.preLoadingTime); 737 }else if(userIntent=='help'){ 738 $(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory")); 739 //Showing help message 740 setTimeout(function () { 741 wpwKits.scrollTo(); 742 743 var helpWelcome = wpwKits.randomMsg(globalwpw.settings.obj.help_welcome); 744 var helpMsg = wpwKits.randomMsg(globalwpw.settings.obj.help_msg); 745 wpwMsg.double(helpWelcome,helpMsg); 746 //dialogflow 747 if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){ 748 globalwpw.wildCard=0; 749 globalwpw.ai_step=1; 750 localStorage.setItem("wildCard", globalwpw.wildCard); 751 localStorage.setItem("aiStep", globalwpw.ai_step); 752 } 753 },globalwpw.settings.preLoadingTime); 754 }else if(userIntent=='reset'){ 755 var restWarning=globalwpw.settings.obj.reset; 756 var confirmBtn='<span class="qcld-chatbot-reset-btn" reset-data="yes" >'+globalwpw.settings.obj.yes+'</span> <span> '+globalwpw.settings.obj.or+' </span><span class="qcld-chatbot-reset-btn" reset-data="no">'+globalwpw.settings.obj.no+'</span>'; 757 wpwMsg.double_nobg(restWarning,confirmBtn); 758 }else if(userIntent=='phone'){ 759 if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){ 760 var shopperName= globalwpw.settings.obj.shopper_demo_name; 761 }else{ 762 var shopperName=globalwpw.hasNameCookie; 763 } 764 var ask_msg = wpwKits.randomMsg(globalwpw.settings.obj.asking_phone); 765 var askEmail = (globalwpw.settings.obj.skip_wp_greetings=='1' || globalwpw.settings.obj.skip_greetings_and_menu =='1') ? 'Hello ' + ask_msg : 'Hello '+shopperName+'! '+ ask_msg; 766 wpwMsg.single(askEmail); 767 //Now updating the support part as . 768 globalwpw.supportStep='phone'; 769 globalwpw.wildCard=1; 770 //keeping value in localstorage 771 localStorage.setItem("wildCard", globalwpw.wildCard); 772 localStorage.setItem("supportStep", globalwpw.supportStep); 773 }else if(userIntent=='email'){ 774 if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){ 775 var shopperName= globalwpw.settings.obj.shopper_demo_name; 776 }else{ 777 var shopperName=globalwpw.hasNameCookie; 778 } 779 var ask_msg = wpwKits.randomMsg(globalwpw.settings.obj.asking_email); 780 var askEmail = (globalwpw.settings.obj.skip_wp_greetings=='1' || globalwpw.settings.obj.skip_greetings_and_menu =='1') ? wpwKits.randomMsg(globalwpw.settings.obj.hello)+' '+ ask_msg : wpwKits.randomMsg(globalwpw.settings.obj.hello)+' '+shopperName+'! '+ ask_msg; 781 wpwMsg.single(askEmail); 782 //Now updating the support part as . 783 globalwpw.supportStep='email'; 784 globalwpw.wildCard=1; 785 //keeping value in localstorage 786 localStorage.setItem("wildCard", globalwpw.wildCard); 787 localStorage.setItem("supportStep", globalwpw.supportStep); 788 }else if(userIntent=='faq'){ 789 globalwpw.wildCard=1; 790 globalwpw.supportStep='welcome'; 791 wpwAction.bot('from wildcard support'); 792 //keeping value in localstorage 793 /*localStorage.setItem("wildCard", globalwpw.wildCard); 794 localStorage.setItem("supportStep", globalwpw.supportStep);*/ 795 }else if(userIntent=='Default Fallback Intent'){ 796 797 var data = {'action':'wpbo_search_response','name':globalwpw.hasNameCookie,'keyword':msg}; 798 wpwKits.ajax(data).done(function (respond) { 799 var json=$.parseJSON(respond); 800 if(json.status=='success'){ 801 if(typeof(json.category)!=="undefined" && json.category){ 802 var question=''; 803 $.each(json.data, function (i, obj) { 804 question += '<span class="qcld-chatbot-wildcard qcld_simple_txt_response" data-strid="'+ obj.id +'">'+ obj.query +'</span>'; 805 }); 806 wpwMsg.single_nobg(question); 807 }else if(json.multiple){ 808 var question=''; 809 $.each(json.data, function (i, obj) { 810 question += '<span class="qcld-chatbot-wildcard qcld_simple_txt_response" data-strid="'+ obj.id +'">'+ obj.query +'</span>'; 811 });
812 wpwMsg.double_nobg(wpwKits.randomMsg(globalwpw.settings.obj.did_you_mean),question); 813 }else{ 814 wpwMsg.single(json.data[0].response); 815 setTimeout(function(){ 816 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 817 },globalwpw.settings.preLoadingTime*2) 818 } 819 }if(wp_chatbot_obj.disable_site_search != 1){ 820 821 wpwTree.site_search(msg) 822 }else{ 823 msg = wpwKits.filterStopWords(msg); 824 if(globalwpw.counter == 2 ){ 825 wpwTree.df_reply(response); 826 setTimeout(function(){ 827 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 828 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 829 },globalwpw.settings.preLoadingTime) 830 globalwpw.counter = 0; 831 }else{ 832 globalwpw.counter++; 833 wpwTree.df_reply(response); 834 } 835 } 836 }) 837 }else if(wpwKits.getScore(response)!=0){ // checking is reponsing from dialogflow. 838 var sTalkAction=wpwKits.getAction(response); 839 if(sTalkAction!='' && sTalkAction.indexOf('smalltalk') != -1 ){ 840 var sMgs=wpwKits.getFulfillmentText(response); 841 wpwMsg.single(sMgs); 842 }else{ 843 var messages = wpwKits.getFulfillmentText(response); 844 wpwTree.df_reply(response); 845 } 846 }else{ 847 console.log( globalwpw.wildcards); 848 var dfDefaultMsg=globalwpw.settings.obj.df_defualt_reply; 849 wpwMsg.double_nobg(dfDefaultMsg,globalwpw.wildcards); 850 } 851 }else{ 852 console.log( globalwpw.wildcards); 853 //if bad request or limit cross then 854 globalwpw.df_status_lock=0; 855 var dfDefaultMsg=globalwpw.settings.obj.df_defualt_reply; 856 wpwMsg.double_nobg(dfDefaultMsg,globalwpw.wildcards); 857 } 858 }).fail(function (error) { 859 var dfDefaultMsg=globalwpw.settings.obj.df_defualt_reply; 860 console.log( globalwpw.wildcards); 861 wpwMsg.double_nobg(dfDefaultMsg,globalwpw.wildcards); 862 }); 863 } 864 }else{ 865 //When intialize 1 and don't have cookies then keep the name of shooper in in cookie 866 if(globalwpw.initialize==1 && !localStorage.getItem('shopper') && globalwpw.wildCard==0){ 867 msg=wpwKits.toTitlecase(msg); 868 msg1=wpwKits.toTitlecase(wpwKits.filterStopWords(msg)); 869 $.cookie("shopper", msg, { expires : 365 }); 870 localStorage.setItem('shopper',msg); 871 globalwpw.hasNameCookie=msg; 872 //Greeting with name and suggesting the wildcard. 873 if((globalwpw.settings.obj.skip_wp_greetings=='1') || (globalwpw.settings.obj.skip_greetings_and_menu =='1') ){ 874 875 wpwAction.bot(msg) 876 // var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 877 // if(globalwpw.settings.obj.skip_greetings_and_menu != 0){ 878 // wpwMsg.single(serviceOffer); 879 // } 880 // if(globalwpw.settings.obj.skip_wp_greetings != 0){ 881 // wpwMsg.double_nobg(serviceOffer, globalwpw.wildcards); 882 // } 883 884 885 }else{ 886 var NameGreeting=wpwKits.randomMsg(globalwpw.settings.obj.i_am) +" <strong>"+wpwMsg.oncommand_filter(globalwpw.settings.obj.agent)+"</strong>! "+wpwKits.randomMsg(globalwpw.settings.obj.name_greeting); 887 NameGreeting = NameGreeting.replace("%%username%%", msg1); 888 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 889 //After completing two steps messaging showing wildcards. 890 if( ( globalwpw.settings.obj.show_menu_after_greetings!=0 ) && ( globalwpw.wildcards !='' ) ){ 891 wpwMsg.triple_nobg( NameGreeting,serviceOffer, globalwpw.wildcards ) 892 893 }else{ 894 wpwMsg.double( NameGreeting,serviceOffer ); 895 } 896 897 } 898 } 899 //When returning shopper then greeting with name and wildcards. 900 else if(localStorage.getItem('shopper') && global
900wpw.wildCard==0){ 901 //After asking service show the wildcards. 902 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 903 console.log( globalwpw.wildcards); 904 wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards); 905 } 906 } 907 }, 908 df_multi_handle:function(array){ 909 if(array.length>0){ 910 setTimeout(function(){ 911 wpwMsg.single(array[0]); 912 array.splice(0, 1); 913 setTimeout(function(){ 914 wpwTree.df_multi_handle(array); 915 }, globalwpw.settings.preLoadingTime) 916 }, globalwpw.settings.preLoadingTime) 917 } 918 }, 919 df_reply:function(response){ 920 //checking for facebook platform 921 var i = 0; 922 var html = ''; 923 var responses = []; 924 if(globalwpw.settings.obj.df_api_version=='v1'){ 925 var messages = (response && response.result && response.result.fulfillment && response.result.fulfillment.messages) ? response.result.fulfillment.messages : []; 926 var action = (response && response.result && typeof response.result.actionIncomplete !== 'undefined') ? response.result.actionIncomplete : false; 927 jQuery.each( messages, function( key, message ) { 928 html = ''; 929 i +=1; 930 if(message.type==2){ 931 html += "<p>" + message.title + "</p>"; 932 var index = 0; 933 for (index; index<message.replies.length; index++) { 934 html += "<span class=\"wpb-quick-reply qcld-chat-common\">"+ message.replies[index] +"</span>"; 935 } 936 } 937 //check for default reply 938 else if(message.type==0 && message.speech!=''){ 939 html += message.speech; 940 }else if(message.type==1){ 941 html +=''; 942 }else if(message.type=='simple_response'){ 943 html += message.textToSpeech; 944 } 945 if(html!=''){ 946 responses.push(html); 947 } 948 }) 949 }else{ 950 var messages = (response && response.queryResult && response.queryResult.fulfillmentMessages) ? response.queryResult.fulfillmentMessages : []; 951 var actioncomplete = (response && response.queryResult && typeof response.queryResult.allRequiredParamsPresent !== 'undefined') ? response.queryResult.allRequiredParamsPresent : false; 952 jQuery.each( messages, function( key, message ) { 953 html = ''; 954 i +=1; 955 //handeling quickreplies 956 if(typeof message.quickReplies !=="undefined"){ 957 if(typeof message.quickReplies.title !=="undefined"){ 958 html += "<p>" + message.quickReplies.title + "</p>"; 959 } 960 if(typeof message.quickReplies.quickReplies !=="undefined" ){ 961 var index = 0; 962 for (index; index<message.quickReplies.quickReplies.length; index++) { 963 html += "<span class=\"wpb-quick-reply qcld-chat-common\">"+ message.quickReplies.quickReplies[index] +"</span>"; 964 } 965 } 966 } 967 //handleing default response 968 else if(typeof message.text !=="undefined"){ 969 if(typeof message.text.text !=="undefined" && message.text.text.length>0){ 970 html += message.text.text[0]; 971 } 972 } 973 if(html!=''){ 974 responses.push(html); 975 } 976 }) 977 } 978 wpwTree.df_multi_handle(responses); 979 }, 980 support:function (msg) {
981 if(globalwpw.wildCard==1 && globalwpw.supportStep=='welcome'){ 982 var welcomeMsg= wpwKits.randomMsg(globalwpw.settings.obj.support_welcome); 983 var orPhoneSuggest = ''; 984 if(globalwpw.settings.obj.support_query.length>0){ 985 var supportsItems = ''; 986 var messenger = ''; 987 if(globalwpw.settings.obj.enable_messenger==1) { 988 messenger += '<span class="qcld-chatbot-wildcard" data-wildcart="messenger">'+wpwKits.randomMsg(globalwpw.settings.obj.messenger_label)+'</span>'; 989 } 990 if(globalwpw.settings.obj.enable_whats==1) { 991 messenger += '<span class="qcld-chatbot-wildcard" data-wildcart="whatsapp">'+wpwKits.randomMsg(globalwpw.settings.obj.whats_label)+'</span>'; 992 } 993 if(globalwpw.settings.obj.disable_feedback=='') { 994 messenger+= '<span class="qcld-chatbot-suggest-email" >'+wpwKits.randomMsg(globalwpw.settings.obj.feedback_label)+'</span>'; 995 } 996 $.each(globalwpw.settings.obj.support_query, function (i, obj) { 997 supportsItems += '<span class="qcld-chatbot-support-items" data-query-index="' + i + '">' + obj + '</span>'; 998 }); 999 var orEmailSuggest = '<span class="qcld-chatbot-suggest-email" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_email) + '</span>'; 1000 if(globalwpw.settings.obj.call_sup=="") { 1001 orPhoneSuggest = '<span class="qcld-chatbot-suggest-phone" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '</span>'; 1002 } 1003 var queryOrEmail=supportsItems/*+orEmailSuggest+orPhoneSuggest+messenger*/; 1004 }else { 1005 if(globalwpw.settings.obj.call_sup=="") { 1006 orPhoneSuggest = '<span class="qcld-chatbot-suggest-phone" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '</span>'; 1007 } 1008 var queryOrEmail='<span class="qcld-chatbot-suggest-email" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_email) + '</span>'+orPhoneSuggest; 1009 } 1010 wpwMsg.double_nobg(welcomeMsg,queryOrEmail); 1011 globalwpw.wildCard = 0; 1012 } else if(globalwpw.wildCard==1 && globalwpw.supportStep=='email'){ 1013 globalwpw.shopperEmail=msg; 1014 var validate = ""; 1015 var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; 1016 if( re.test(globalwpw.shopperEmail)!=true){ 1017 validate = validate+wpwKits.randomMsg(globalwpw.settings.obj.invalid_email) ; 1018 } 1019 if(validate == ""){ 1020 var askingMsg=wpwKits.randomMsg(globalwpw.settings.obj.asking_msg); 1021 wpwMsg.single(askingMsg); 1022 globalwpw.supportStep='message'; 1023 //keeping value in localstorage 1024 localStorage.setItem("supportStep", globalwpw.supportStep); 1025 }else{ 1026 wpwMsg.single(validate); 1027 globalwpw.supportStep='email'; 1028 //keeping value in localstorage 1029 localStorage.setItem("supportStep", globalwpw.supportStep); 1030 } 1031 }else if(globalwpw.wildCard==1 && globalwpw.supportStep=='message'){ 1032 var data = {'action':'qcld_wb_chatbot_support_email','name':globalwpw.hasNameCookie,'email':globalwpw.shopperEmail,'message':msg}; 1033 wpwKits.ajax(data).done(function (response) { 1034 var json=$.parseJSON(response); 1035 var orPhoneSuggest=''; 1036 if(json.status=='success'){ 1037 var sucMsg=json.message; 1038 wpwMsg.single(sucMsg); 1039 //Asking email after showing answer. 1040 setTimeout(function(){ 1041 if(globalwpw.settings.obj.call_sup=="") { 1042 orPhoneSuggest = '<span class="qcld-chatbot-suggest-phone" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '</span>'; 1043 } 1044 var orEmailSuggest='<span class="qcld-chatbot-suggest-email" >'+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'</span>'; 1045 wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest);
1046 globalwpw.wildCard=0; 1047 },globalwpw.settings.preLoadingTime); 1048 }else{ 1049 var failMsg=json.message; 1050 wpwMsg.single(failMsg); 1051 //Asking email after showing answer. 1052 setTimeout(function(){ 1053 if(globalwpw.settings.obj.call_sup=="") { 1054 orPhoneSuggest = '<span class="qcld-chatbot-suggest-phone" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '</span>'; 1055 } 1056 var orEmailSuggest='<span class="qcld-chatbot-suggest-email" >'+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'</span>'; 1057 wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest); 1058 globalwpw.wildCard=0; 1059 },globalwpw.settings.preLoadingTime); 1060 } 1061 }); 1062 }else if(globalwpw.wildCard==1 && globalwpw.supportStep=='phone'){ 1063 var data = {'action':'qcld_wb_chatbot_support_phone','name':globalwpw.hasNameCookie,'phone':msg}; 1064 wpwKits.ajax(data).done(function (response) { 1065 var json=$.parseJSON(response); 1066 var orPhoneSuggest=''; 1067 if(json.status=='success'){ 1068 var sucMsg=json.message; 1069 wpwMsg.single(sucMsg); 1070 //Asking email after showing answer. 1071 setTimeout(function(){ 1072 if(globalwpw.settings.obj.call_sup=="") { 1073 orPhoneSuggest = '<span class="qcld-chatbot-suggest-phone" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '</span>'; 1074 } 1075 var orEmailSuggest='<span class="qcld-chatbot-suggest-email" >'+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'</span>'; 1076 wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest); 1077 globalwpw.wildCard=0; 1078 },globalwpw.settings.preLoadingTime); 1079 }else{ 1080 var failMsg=json.message; 1081 wpwMsg.single(failMsg); 1082 //Asking email after showing answer. 1083 setTimeout(function(){ 1084 if(globalwpw.settings.obj.call_sup=="") { 1085 orPhoneSuggest = '<span class="qcld-chatbot-suggest-phone" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '</span>'; 1086 } 1087 var orEmailSuggest='<span class="qcld-chatbot-suggest-email" >'+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'</span>'; 1088 wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest); 1089 globalwpw.wildCard=0; 1090 },globalwpw.settings.preLoadingTime); 1091 } 1092 }); 1093 }else if(globalwpw.wildCard==1 && globalwpw.supportStep=='search'){ 1094 msg = wpwKits.filterStopWords(msg); 1095 var data = {'action':'wpbo_search_site','name':globalwpw.hasNameCookie,'keyword':msg}; 1096 wpwKits.ajax(data).done(function (response) { 1097 var json=$.parseJSON(response); 1098 if(json.status=='success'){ 1099 wpwMsg.double_nobg(wp_chatbot_obj.found_result_message,json.html); 1100 }else{ 1101 1102 wpwMsg.single( wpwKits.randomMsg(wp_chatbot_obj.product_fail)); 1103 1104 // setTimeout(function(){ 1105 // var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1106 // wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards); 1107 // },globalwpw.settings.preLoadingTime) 1108 } 1109 }); 1110 }// 1111 }, 1112 formbuilder:function(msg){
1113 if(globalwpw.wildCard==7 && globalwpw.formStep=='welcome'){ 1114 var data = {'action':'wpbot_get_form','formid':msg}; 1115 wpwKits.ajax(data).done(function (response) { 1116 if(response!=''){ 1117 var json=$.parseJSON(response); 1118 globalwpw.prevform = json.ID; 1119 globalwpw.formfieldid = json.ID; 1120 localStorage.setItem("formfieldid", globalwpw.formfieldid); 1121 globalwpw.formStep='field'; 1122 localStorage.setItem("formStep", globalwpw.formStep); 1123 globalwpw.formid=msg; 1124 localStorage.setItem("formid", globalwpw.formid); 1125 localStorage.setItem("wildCard", globalwpw.wildCard); 1126 var label = json.label; 1127 if(json.type=='dropdown'){ 1128 var html = ''; 1129 jQuery.each(json.config.option, function(key, value){ 1130 html += '<span class="qcld-chatbot-wildcard qcld-chatbot-formanswer" data-form-value="'+value.value+'" >'+value.label+'</span>'; 1131 }) 1132 wpwMsg.double(label, html); 1133 }else if(json.type=='checkbox'){ 1134 var html = ''; 1135 jQuery.each(json.config.option, function(key, value){ 1136 html += '<input type="checkbox" class="qcld-chatbot-checkbox" value="'+value.value+'">'+value.label+'<br>'; 1137 }) 1138 wpwMsg.double(label, html); 1139 }else if(json.type=='html'){ 1140 wpwMsg.single(json.config.default); 1141 globalwpw.formfieldid = json.ID; 1142 localStorage.setItem("formfieldid", globalwpw.formfieldid); 1143 globalwpw.formentry = json.entry;
1144 localStorage.setItem("formentry", globalwpw.formentry); 1145 setTimeout(function(){ 1146 wpwTree.formbuilder(); 1147 }, globalwpw.settings.preLoadingTime) 1148 }else{ 1149 wpwMsg.single(label); 1150 } 1151 } 1152 }) 1153 }else if(globalwpw.wildCard==7 && globalwpw.formStep=='field'){ 1154 var data = {'action':'wpbot_capture_form_value','formid':globalwpw.formid, 'fieldid': globalwpw.formfieldid, 'answer': msg, 'entry':globalwpw.formentry,'session': localStorage.getItem('botsessionid'), 'name': globalwpw.hasNameCookie,'email':localStorage.getItem('shopperemail'), 'url': window.location.href}; 1155 wpwKits.ajax(data).done(function (response) { 1156 var json=$.parseJSON(response); 1157 if(json.status=='incomplete'){ 1158 if( json.type !='html' ){ 1159 if($('.chatbot_intent_reload').length > 0){ 1160 $('.chatbot_intent_reload').remove(); 1161 } 1162 $('#wp-chatbot-editor-container').append('<span class="chatbot_intent_reload" title="Click to go back." data-wildcard="7" data-step="welcome" data-intent-type="formbuilder" data-intent="'+globalwpw.prevform+'"><i class="dashicons dashicons-controls-repeat"></i></span>'); 1163 globalwpw.prevform = globalwpw.formfieldid; 1164 } 1165 globalwpw.formStep='field'; 1166 localStorage.setItem("formStep", globalwpw.formStep); 1167 globalwpw.formfieldid = json.ID; 1168 localStorage.setItem("formfieldid", globalwpw.formfieldid); 1169 globalwpw.formentry = json.entry; 1170 localStorage.setItem("formentry", global
1170wpw.formentry); 1171 var label = json.label; 1172 if(json.type=='dropdown'){ 1173 var html = ''; 1174 jQuery.each(json.config.option, function(key, value){ 1175 html += '<span class="qcld-chatbot-wildcard qcld-chatbot-formanswer" data-form-value="'+value.value+'" >'+value.label+'</span>'; 1176 }) 1177 wpwMsg.double(label, html); 1178 }else if(json.type=='html'){ 1179 wpwMsg.single(json.config.default); 1180 globalwpw.formfieldid = json.ID; 1181 localStorage.setItem("formfieldid", globalwpw.formfieldid); 1182 globalwpw.formentry = json.entry; 1183 localStorage.setItem("formentry", globalwpw.formentry); 1184 setTimeout(function(){ 1185 wpwTree.formbuilder(); 1186 }, 500) 1187 }else if(json.type=='checkbox'){ 1188 jQuery('.qcld-chatbot-checkbox').val(''); 1189 var html = ''; 1190 jQuery.each(json.config.option, function(key, value){ 1191 html += '<input type="checkbox" class="qcld-chatbot-checkbox" value="'+value.value+'">'+value.label+'<br>'; 1192 }) 1193 wpwMsg.double(label, html); 1194 }else if(json.type=='date_picker'){ 1195 if(json.hasOwnProperty("additional") && json.additional!=''){ 1196 label +='<i class="wpbot_addition_label">'+json.additional+'</i>'; 1197 } 1198 wpwMsg.single(label); 1199 jQuery('#wp-chatbot-editor').blur(); 1200 jQuery('#wp-chatbot-editor').datetimepicker(); 1201 }else if(json.type=='number'){ 1202 if(json.hasOwnProperty("additional") && json.additional!=''){ 1203 label +='<i class="wpbot_addition_label">'+json.additional+'</i>'; 1204 } 1205 wpwMsg.single(label); 1206 jQuery('#wp-chatbot-editor').addClass("qcnumberfield"); 1207 if(json.hasOwnProperty("config") && json.config.hasOwnProperty("min") && json.config.min>0){ 1208 jQuery('#wp-chatbot-editor').attr("minlength", json.config.min); 1209 } 1210 if(json.hasOwnProperty("config") && json.config.hasOwnProperty("max") && json.config.max>0){ 1211 jQuery('#wp-chatbot-editor').attr("maxlength", json.config.max); 1212 } 1213 }else if(json.type=='email'){ 1214 if(json.hasOwnProperty("additional") && json.additional!=''){ 1215 label +='<i class="wpbot_addition_label">'+json.additional+'</i>'; 1216 } 1217 wpwMsg.single(label); 1218 jQuery('#wp-chatbot-editor').attr("type", "email"); 1219 }else if(json.type=='url'){ 1220 if(json.hasOwnProperty("additional") && json.additional!=''){ 1221 label +='<i class="wpbot_addition_label">'+json.additional+'</i>'; 1222 } 1223 wpwMsg.single(label); 1224 jQuery('#wp-chatbot-editor').attr("type", "url"); 1225 }else if(json.type=='phone'){ 1226 wpwMsg.single(label); 1227 jQuery('#wp-chatbot-editor').addClass('qcphonebasicus'); 1228 }else if(json.type=='calculation'){ 1229 let calresult = json.calresult; 1230 calresult = eval(calresult); 1231 setTimeout(function(){ 1232 var cal = (json.calbefore +' '+ calresult.toFixed(2) +' '+ json.calafter) 1233 wpwTree.formbuilder(cal); 1234 wpwMsg.single(cal); 1235 }, globalwpw.settings.preLoadingTime) 1236 }else if(json.type=='hidden'){ 1237 var email = json.config.default; 1238 if( globalwpw.settings.obj.order_login == 1 && json.slug=='email' ){ 1239 email = globalwpw.settings.obj.order_email; 1240 } 1241 wpwTree.formbuilder(email); 1242 }else if(json.type=='text'){ 1243 wpwMsg.single(label); 1244 }else{ 1245 // wpwMsg.single(label); 1246 } 1247 }else{ 1248 if($('.chatbot_intent_reload').length > 0){ 1249 $('.chatbot_intent_reload').attr('data-step', 'complete'); 1250 }
1251 globalwpw.formfieldid = ''; 1252 localStorage.setItem("formfieldid", globalwpw.formfieldid); 1253 globalwpw.formStep='welcome'; 1254 localStorage.setItem("formStep", globalwpw.formStep); 1255 globalwpw.formid=''; 1256 localStorage.setItem("formid", globalwpw.formid); 1257 globalwpw.wildCard = 0; 1258 localStorage.setItem("wildCard", globalwpw.wildCard); 1259 globalwpw.formentry = 0; 1260 localStorage.setItem("formentry", globalwpw.formentry); 1261 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 1262 setTimeout(function(){ 1263 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1264 }, globalwpw.settings.preLoadingTime); 1265 if(jQuery('.chatbot_intent_reload').length>0){ 1266 jQuery('.chatbot_intent_reload').remove(); 1267 } 1268 } 1269 }) 1270 } 1271 }, 1272 formbuilder_force_complete:function(msg){ 1273 //destroy date picker 1274 //if ( jQuery.isFunction(jQuery.fn.datetimepicker) ) { 1275 if ( typeof jQuery.fn.datetimepicker === 'function' ) { 1276 jQuery('#wp-chatbot-editor').datetimepicker('destroy'); 1277 } 1278 jQuery('#wp-chatbot-editor').attr("type", "text"); 1279 jQuery('#wp-chatbot-editor').prop("disabled", false); 1280 jQuery('#wp-chatbot-editor').removeAttr("multiple"); 1281 jQuery('#wp-chatbot-editor').removeClass('qcphonebasicus'); 1282 jQuery('#wp-chatbot-editor').removeClass("qcnumberfield"); 1283 jQuery('#wp-chatbot-editor').removeAttr("minlength"); 1284 jQuery('#wp-chatbot-editor').removeAttr("maxlength"); 1285 if(globalwpw.wildCard==7 && globalwpw.formStep=='field'){ 1286 var data = {'action':'wpbot_capture_form_value','formid':globalwpw.formid, 'fieldid': globalwpw.formfieldid, 'answer': msg, 'entry':globalwpw.formentry, 'session': localStorage.getItem('botsessionid'), 'name':globalwpw.hasNameCookie, 'email':localStorage.getItem('shopperemail'), 'url': window.location.href, 'do_complete': 1}; 1287 globalwpw.formfieldid = ''; 1288 localStorage.setItem("formfieldid", globalwpw.formfieldid); 1289 globalwpw.formStep='welcome'; 1290 localStorage.setItem("formStep", globalwpw.formStep); 1291 globalwpw.formid='';
1292 localStorage.setItem("formid", globalwpw.formid); 1293 globalwpw.wildCard = 0; 1294 localStorage.setItem("wildCard", globalwpw.wildCard); 1295 globalwpw.formentry = 0; 1296 localStorage.setItem("formentry", globalwpw.formentry); 1297 wpwKits.ajax(data).done(function (response) { 1298 var json=$.parseJSON(response); 1299 if( json.status == 'complete' ){ 1300 // 1301 } 1302 }) 1303 } 1304 }, 1305 reset: function( msg ){ 1306 if( globalwpw.wildCard == 25 && globalwpw.resetStep == 'welcome' ){ 1307 var restWarning= globalwpw.settings.obj.reset; 1308 var confirmBtn='<span class="qcld-chatbot-reset-btn" reset-data="yes" >'+globalwpw.settings.obj.yes+'</span> <span> '+globalwpw.settings.obj.or+' </span><span class="qcld-chatbot-reset-btn" reset-data="no">'+globalwpw.settings.obj.no+'</span>'; 1309 globalwpw.resetStep = 'answer' 1310 wpwMsg.double_nobg(restWarning,confirmBtn); 1311 setTimeout(function(){ 1312 // wpwKits.disableEditor(''); 1313 }, 1500) 1314 }else if( globalwpw.wildCard == 25 && globalwpw.resetStep == 'answer' ){ 1315 if( msg.toLowerCase() == globalwpw.settings.obj.yes.toLowerCase() ){ 1316 wpwKits.reset(); 1317 var number = Math.random() // 0.9394456857981651 1318 number.toString(36); // '0.xtis06h6' 1319 var id = number.toString(36).substr(2); // 'xtis06h6' 1320 localStorage.setItem('botsessionid', id); 1321 wpwWelcome.greeting(); 1322 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 1323 }else if( msg.toLowerCase() == globalwpw.settings.obj.no.toLowerCase() ){ 1324 1325 wpwAction.bot(globalwpw.settings.obj.sys_key_help.toLowerCase()); 1326 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 1327 } 1328 globalwpw.wildCard = 0; 1329 globalwpw.resetStep = 'welcome' 1330 } 1331 }, 1332 formatResponse: function(response) { 1333 let cleanResponse = response.replace(/(\w+)\n/g,''); 1334 cleanResponse = cleanResponse.replace(/(.*?)/gs, '<pre>$1</pre>'); 1335 cleanResponse = cleanResponse.replace(/(.*?)/g, '<code>$1</code>'); 1336 return cleanResponse; 1337 }, 1338 openai_reply:function(msg){ 1339 1340 if(globalwpw.settings.obj.openai_enabled == 1){ 1341 1342 var customAappend = globalwpw.settings.obj.qcld_openai_append_content; 1343 var customMessage = customAappend ? msg + ' ' + customAappend : msg; 1344 1345 if(wp_chatbot_obj.is_stream_enabled == '1'){ 1346 // Callers already append botPreloader before calling openai_reply 1347 var streamData = { 1348 action: 'qcld_stream_openai', 1349 name: globalwpw.hasNameCookie, 1350 keyword: customMessage, 1351 nonce: qcld_chatbot_obj.nonce 1352 }; 1353 qcldStreamOpenAI(streamData); 1354 } else { 1355 var data = {'action':'qcld_openai_response','name':globalwpw.hasNameCookie,'keyword':customMessage,nonce: qcld_chatbot_obj.nonce}; 1356 1357 wpwKits.ajax(data).done(function (res) { 1358 if( res == '' || typeof res === 'object' ){ 1359 var json = res; 1360 }if(typeof res === 'string'){ 1361 var json = $.parseJSON(res); 1362 } 1363 1364 if(json.status=='success'){ 1365 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1366 1367 setTimeout(function(){ 1368 wpwMsg.single(json.message); 1369 1370 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1")){ 1371 if(globalwpw.settings.obj.disable_repeatative!=1){ 1372 setTimeout(function(){ 1373 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1374 if((globalwpw.settings.obj.qcld_disable_start_menu != "1")){ 1375 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1376 } 1377 }
1377,globalwpw.settings.preLoadingTime) 1378 }else{ 1379 setTimeout(function(){ 1380 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1") && (globalwpw.settings.obj.disable_back_to_start != '1')){ 1381 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1382 } 1383 }, globalwpw.settings.preLoadingTime*2); 1384 } 1385 } 1386 $(globalwpw.settings.messageContainer).find('.wp-chatbot-msg:last .qcld-like-dislike-icon').css('display', 'block'); 1387 1388 },globalwpw.settings.preLoadingTime) 1389 } 1390 }) 1391 } 1392 } 1393 if(globalwpw.settings.obj.openrouter_enabled == 1){ 1394 1395 var customAappend = globalwpw.settings.obj.qcld_openrouter_append_content; 1396 var customprepend = globalwpw.settings.obj.qcld_openrouter_prepend_content; 1397 var customMessage = customprepend ? customprepend + ' ' + msg : msg; 1398 customMessage = customAappend ? customMessage + ' ' + customAappend : customMessage; 1399 1400 var data = {'action':'openrouter_response','name':globalwpw.hasNameCookie,'keyword':customMessage}; 1401 wpwKits.ajax(data).done(function (res) { 1402 var json=$.parseJSON(res); 1403 1404 if(json.status=='success'){ 1405 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1406 1407 setTimeout(function(){ 1408 wpwMsg.single(json.message); 1409 1410 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1" && globalwpw.settings.obj.disable_back_to_start != '1')){ 1411 if(globalwpw.settings.obj.disable_repeatative!=1){ 1412 setTimeout(function(){ 1413 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1414 if((globalwpw.settings.obj.qcld_disable_start_menu != "1")){ 1415 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1416 } 1417 },globalwpw.settings.preLoadingTime) 1418 }else{ 1419 setTimeout(function(){ 1420 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1")){ 1421 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1422 } 1423 }, globalwpw.settings.preLoadingTime*2); 1424 } 1425 } 1426 },globalwpw.settings.preLoadingTime) 1427 }else{ 1428 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + 'Sorry, I encountered an error processing your AI request. Please check api key and try again later.' + '</span>'); 1429 } 1430 }) 1431 } 1432 if(globalwpw.settings.obj.gemini_enabled == 1){ 1433 var customAappend = globalwpw.settings.obj.qcld_openrouter_append_content; 1434 var customprepend = globalwpw.settings.obj.qcld_openrouter_prepend_content; 1435 var customMessage = customprepend ? customprepend + ' ' + msg : msg; 1436 customMessage = customAappend ? customMessage + ' ' + customAappend : customMessage; 1437 1438 var data = {'action':'qcld_gemini_response','name':globalwpw.hasNameCookie,'keyword':customMessage}; 1439 wpwKits.ajax(data).done(function (res) { 1440 if( res == '' || typeof res === 'object' ){ 1441 var json = res; 1442 }if(typeof res === 'string'){ 1443 var json = $.parseJSON(res); 1444 } 1445 1446 if(json.status=='success'){ 1447 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1448 1449 setTimeout(function(){ 1450 wpwMsg.single(json.message); 1451 1452 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1")){ 1453 if(globalwpw.settings.obj.disable_repeatative!=1){ 1454 setTimeout(function(){ 1455 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1456 if((globalwpw.settings.obj.qcld_disable_start_menu != "1" && global
1456wpw.settings.obj.disable_back_to_start != '1')){ 1457 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1458 } 1459 },globalwpw.settings.preLoadingTime) 1460 }else{ 1461 setTimeout(function(){ 1462 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1" && globalwpw.settings.obj.disable_back_to_start != '1')){ 1463 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1464 } 1465 }, globalwpw.settings.preLoadingTime*2); 1466 } 1467 } 1468 },globalwpw.settings.preLoadingTime) 1469 }else{ 1470 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + 'Sorry, I encountered an error processing your AI request. Please check api key and try again later.' + '</span>'); 1471 } 1472 }) 1473 } 1474 if(globalwpw.settings.obj.grok_enabled == 1){ 1475 var customMessage = msg; 1476 customMessage = customAappend ? customMessage + ' ' + customAappend : customMessage; 1477 var data = {'action':'qcld_grok_response','name':globalwpw.hasNameCookie,'keyword':customMessage}; 1478 wpwKits.ajax(data).done(function (res) { 1479 if( res == '' || typeof res === 'object' ){ 1480 var json = res; 1481 }if(typeof res === 'string'){ 1482 var json = $.parseJSON(res); 1483 } 1484 1485 if(json.status=='success'){ 1486 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1487 1488 setTimeout(function(){ 1489 wpwMsg.single(json.message); 1490 1491 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1")){ 1492 if(globalwpw.settings.obj.disable_repeatative!=1){ 1493 setTimeout(function(){ 1494 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1495 if((globalwpw.settings.obj.qcld_disable_start_menu != "1" && globalwpw.settings.obj.disable_back_to_start != '1')){ 1496 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1497 } 1498 },globalwpw.settings.preLoadingTime) 1499 }else{ 1500 setTimeout(function(){ 1501 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1" && globalwpw.settings.obj.disable_back_to_start != '1')){ 1502 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1503 } 1504 }, globalwpw.settings.preLoadingTime*2); 1505 } 1506 } 1507 },globalwpw.settings.preLoadingTime) 1508 }else{ 1509 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + 'Sorry, I encountered an error processing your AI request. Please check api key and try again later.' + '</span>'); 1510 } 1511 }) 1512 } 1513 }, 1514 site_search:function(msg){ 1515 msg1 = wpwKits.filterStopWords(msg); 1516 var data = {'action':'wpbo_search_site','name':globalwpw.hasNameCookie,'keyword':msg1};
1517 wpwKits.ajax(data).done(function (res) { 1518 var json=$.parseJSON(res); 1519 $(globalwpw.settings.messageContainer).find('.wp-chatbot-msg:last .qcld-like-dislike-icon').css('display', 'block'); 1520 1521 if(json.status=='success'){ 1522 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1523 wpwMsg.triple_nobg( wp_chatbot_obj.found_result_message,json.html,'<span class="qcld-chatbot-wildcard" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>' ); 1524 }else{ 1525 wpwMsg.double_nobg( wp_chatbot_obj.found_result_message,json.html); 1526 } 1527 }else if( (globalwpw.settings.obj.openai_enabled == 1) || (wp_chatbot_obj.openai_enabled == 1) || (globalwpw.settings.obj.openrouter_enabled == 1) || (wp_chatbot_obj.openrouter_enabled == 1) || (globalwpw.settings.obj.gemini_enabled == 1) || (wp_chatbot_obj.gemini_enabled == 1) || (globalwpw.settings.obj.grok_enabled == 1) || (wp_chatbot_obj.grok_enabled == 1) ){ 1528 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 1529 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 1530 } 1531 wpwTree.openai_reply(msg); 1532 }else{ 1533 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1534 wpwMsg.double_nobg( wpwKits.randomMsg(wp_chatbot_obj.product_fail ),'<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1535 }else{ 1536 wpwMsg.single( wpwKits.randomMsg(wp_chatbot_obj.product_fail )); 1537 } 1538 } 1539 }) 1540 } 1541 }; 1542 /* 1543 * wpwbot Actions are divided into two part 1544 * shopper will response after initialize message, 1545 * then based on shopper activities shopper will act. 1546 */ 1547 var wpwAction={ 1548 findkey:function(array, msg){ 1549 var index = -1; 1550 $.each( array, function( key, value ) { 1551 value = jQuery.map(value, function(n,i){return n.toLowerCase();}); 1552 if(value.indexOf(msg.toLowerCase()) > -1){ 1553 index = key; 1554 return false; 1555 } 1556 }); 1557 return index; 1558 }, 1559 bot:function(msg){ 1560 var simple_response_intent = globalwpw.settings.obj.simple_response_intent; 1561 if(simple_response_intent.length>0){ 1562 simple_response_intent = jQuery.map(simple_response_intent, function(n,i){return n.toLowerCase();}); 1563 } 1564 var allformname = jQuery.map(globalwpw.settings.obj.forms, function(n,i){return n.toLowerCase();}); 1565 var allformcommand = globalwpw.settings.obj.form_commands; 1566 if(globalwpw.wildcardsHelp.indexOf(msg.toLowerCase())>-1){ 1567 1568 if(globalwpw.wildCard==7){ 1569 wpwTree.formbuilder_force_complete( msg ); 1570 } 1571 if(msg.toLowerCase()==globalwpw.settings.obj.sys_key_help.toLowerCase()){ 1572 1573 globalwpw.wildCard=0; 1574 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 1575 wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards); 1576 } 1577 if(msg.toLowerCase()==globalwpw.settings.obj.sys_key_support.toLowerCase()){ 1578 globalwpw.wildCard=1; 1579 globalwpw.supportStep='welcome'; 1580 wpwTree.support(msg); 1581 } 1582 // if(msg.toLowerCase()==globalwpw.settings.obj.sys_key_product.toLowerCase()){ 1583 // globalwpw.wildCard=20;
1584 // globalwpw.productStep='asking'; 1585 // // wpwTree.product(msg); 1586 // } 1587 if(globalwpw.settings.obj.woocommerce){ 1588 if(msg.toLowerCase()==globalwpw.settings.obj.sys_key_catalog.toLowerCase()){ 1589 globalwpw.wildCard=20; 1590 globalwpw.productStep='search'; 1591 wpwKits.sugestCat(); 1592 } 1593 if(msg.toLowerCase()==globalwpw.settings.obj.sys_key_order.toLowerCase()){ 1594 globalwpw.wildCard=21; 1595 globalwpw.orderStep='welcome'; 1596 wpwTree.order(msg); 1597 } 1598 } 1599 if( globalwpw.settings.obj.open_a_ticket && msg.toLowerCase()==globalwpw.settings.obj.open_a_ticket.toLowerCase() && globalwpw.settings.obj.ticket_url!=''){ 1600 //comming 1601 window.open(globalwpw.settings.obj.ticket_url, '_blank'); 1602 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 1603 } 1604 if(msg.toLowerCase()==globalwpw.settings.obj.sys_key_reset.toLowerCase()){ 1605 globalwpw.wildCard=25; 1606 globalwpw.resetStep='welcome'; 1607 wpwTree.reset(msg); 1608 } 1609 if(msg.toLowerCase()==globalwpw.settings.obj.sys_key_email.toLowerCase()){ 1610 // var shopperChoice=$(this).text(); 1611 wpwMsg.shopper_choice(globalwpw.settings.obj.sys_key_email.toLowerCase()); 1612 //Then ask email address 1613 if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){ 1614 var shopperName= globalwpw.settings.obj.shopper_demo_name; 1615 }else{ 1616 var shopperName=globalwpw.hasNameCookie; 1617 } 1618 var ask_msg = wpwKits.randomMsg(globalwpw.settings.obj.asking_email); 1619 var askEmail = (globalwpw.settings.obj.skip_wp_greetings=='1' || globalwpw.settings.obj.skip_greetings_and_menu =='1') ? wpwKits.randomMsg(globalwpw.settings.obj.hello)+' '+ ask_msg : wpwKits.randomMsg(globalwpw.settings.obj.hello)+' '+shopperName+'! '+ ask_msg; 1620 wpwMsg.single(askEmail); 1621 globalwpw.supportStep='email'; 1622 globalwpw.wildCard=1; 1623 localStorage.setItem("wildCard", globalwpw.wildCard); 1624 localStorage.setItem("supportStep", globalwpw.supportStep); 1625 } 1626 if( globalwpw.settings.obj.sys_key_livechat && msg.toLowerCase()==globalwpw.settings.obj.sys_key_livechat.toLowerCase()){ 1627 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 1628 if(globalwpw.settings.obj.is_livechat_active){ 1629 if(globalwpw.settings.obj.disable_livechat_operator_offline==1){ 1630 if(globalwpw.settings.obj.is_operator_online==1){ 1631 $(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory")); 1632 if($('#wbca_signup_fullname').length>0){ 1633 if(localStorage.getItem('shopper')!==null){ 1634 $('#wbca_signup_fullname').val(localStorage.getItem('shopper')); 1635 } 1636 if(localStorage.getItem('shopperemail')!==null){ 1637 $('#wbca_signup_email').val(localStorage.getItem('shopperemail')); 1638 } 1639 } 1640 $("#wp-chatbot-board-container").removeClass('active-chat-board');
1641 $('.wp-chatbot-container').hide(); 1642 $('.wpbot-saas-live-chat').show(); 1643 } 1644 }else{ 1645 $(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory")); 1646 if($('#wbca_signup_fullname').length>0){ 1647 if(localStorage.getItem('shopper')!==null){ 1648 $('#wbca_signup_fullname').val(localStorage.getItem('shopper')); 1649 } 1650 if(localStorage.getItem('shopperemail')!==null){ 1651 $('#wbca_signup_email').val(localStorage.getItem('shopperemail')); 1652 } 1653 } 1654 $("#wp-chatbot-board-container").removeClass('active-chat-board'); 1655 $('.wp-chatbot-container').hide(); 1656 $('.wpbot-saas-live-chat').show(); 1657 } 1658 } 1659 } 1660 }else if(allformname.indexOf(msg.toLowerCase()) > -1 || this.findkey(allformcommand, msg)> -1){ 1661 //Form builder commands form name 1662 if(globalwpw.wildCard==7){ 1663 wpwTree.formbuilder_force_complete( msg ); 1664 } 1665 var index = (allformname.indexOf(msg.toLowerCase()) > -1?allformname.indexOf(msg.toLowerCase()):this.findkey(allformcommand, msg)); 1666 var formid=globalwpw.settings.obj.form_ids[index]; 1667 globalwpw.wildCard=7; 1668 globalwpw.formStep='welcome'; 1669 wpwTree.formbuilder(formid); 1670 }else if(simple_response_intent.indexOf(msg.toLowerCase()) > -1){ 1671 if(globalwpw.wildCard==7){ 1672 wpwTree.formbuilder_force_complete( msg ); 1673 } 1674 var data = {'action':'wpbo_search_responseby_intent','name':globalwpw.hasNameCookie,'keyword':msg, 'language':globalwpw.settings.obj.language}; 1675 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 1676 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 1677 } 1678 wpwKits.ajax(data).done(function (response) { 1679 var json=$.parseJSON(response); 1680 if(json.status=='success'){ 1681 wpwMsg.single(json.html); 1682 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 1683 if( typeof(json.followup)!=="undefined" && json.followup!='' ){ 1684 setTimeout(function(){ 1685 wpwMsg.single(json.followup); 1686 }, globalwpw.settings.preLoadingTime*2); 1687 }else{ 1688 1689 setTimeout(function(){ 1690 $(globalwpw.settings.messageContainer).find('.wp-chatbot-msg:last .qcld-like-dislike-icon').css('display', 'block'); 1691 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1692 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1693 } 1694 }, globalwpw.settings.preLoadingTime*2); 1695 } 1696 } 1697 }) 1698 }else{ 1699 /* 1700 * Greeting part 1701 * bot action 1702 */ 1703 if(globalwpw.wildCard==0){ 1704 //When intialize 1 and don't have cookies then keep the name of shooper in in cookie 1705 if(globalwpw.initialize==1 && !localStorage.getItem('shopper') && global
1705wpw.wildCard==0){ 1706 wpwTree.greeting(msg); 1707 }else if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){ 1708 wpwTree.greeting(msg); 1709 }else if(localStorage.getItem('default_asking_email')){ 1710 wpwTree.greeting(msg); 1711 }else if(localStorage.getItem('default_asking_phone')){ 1712 wpwTree.greeting(msg); 1713 }else{ 1714 //simple text response wrapper 1715 1716 var data = {'action':'wpbo_search_response','name':globalwpw.hasNameCookie,'keyword':msg, 'language':globalwpw.settings.obj.language}; 1717 if(wp_chatbot_obj.disable_site_search == 1){ 1718 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 1719 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 1720 } 1721 } 1722 wpwKits.ajax(data).done(function (response) { 1723 var json=$.parseJSON(response); 1724 1725 if(json.status=='fail' && json.data !==''){ 1726 1727 if(wp_chatbot_obj.disable_site_search != 1){ 1728 wpwTree.site_search(msg) 1729 } 1730 else if( (globalwpw.settings.obj.openai_enabled == 1) || (wp_chatbot_obj.openai_enabled == 1) || (globalwpw.settings.obj.openrouter_enabled == 1) || (wp_chatbot_obj.openrouter_enabled == 1) || (globalwpw.settings.obj.gemini_enabled == 1) || (wp_chatbot_obj.gemini_enabled == 1) || (globalwpw.settings.obj.grok_enabled == 1) || (wp_chatbot_obj.grok_enabled == 1) ){ 1731 wpwTree.openai_reply(msg) 1732 }else{ 1733 wpwMsg.single(globalwpw.settings.obj.empty_filter_msg); 1734 } 1735 }else if(json.status=='success'){ 1736 if(typeof(json.category)!=="undefined" && json.category){ 1737 var question=''; 1738 $.each(json.data, function (i, obj) { 1739 question += '<span class="qcld-chatbot-wildcard qcld_simple_txt_response" data-strid="'+ obj.id +'">'+ obj.query +'</span>'; 1740 }); 1741 wpwMsg.single_nobg(question); 1742 } 1743 else if(json.multiple){ 1744 var question=''; 1745 $.each(json.data, function (i, obj) { 1746 question += '<span class="qcld-chatbot-wildcard qcld_simple_txt_response" data-strid="'+ obj.id +'">'+ obj.query +'</span>'; 1747 }); 1748 wpwMsg.double_nobg(wpwKits.randomMsg(globalwpw.settings.obj.did_you_mean),question); 1749 }else{ 1750 wpwMsg.single(json.data[0].response); 1751 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg); 1752 if( typeof(json.data[0].followup)!=="undefined" && json.data[0].followup!='' ){ 1753 setTimeout(function(){ 1754 wpwMsg.single(json.data[0].followup); 1755 }, globalwpw.settings.preLoadingTime*2); 1756 }else{ 1757 // if(globalwpw.settings.obj.disable_repeatative!=1){ 1758 // setTimeout(function(){ 1759 // wpwMsg.double_nobg(serviceOffer, globalwpw.wildcards); 1760 // }
1760, globalwpw.settings.preLoadingTime*2); 1761 // }else{ 1762 setTimeout(function(){ 1763 $(globalwpw.settings.messageContainer).find('.wp-chatbot-msg:last .qcld-like-dislike-icon').css('display', 'block'); 1764 if( globalwpw.settings.obj.disable_back_to_start != '1'){ 1765 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1766 } 1767 }, globalwpw.settings.preLoadingTime*2); 1768 // } 1769 } 1770 } 1771 }else{ 1772 //Default intents site search 1773 msg = wpwKits.filterStopWords(msg); 1774 if(globalwpw.settings.obj.woocommerce){ 1775 var data = {'action':'qcld_wb_chatbot_keyword', 'keyword':msg}; 1776 //Products by string search ajax handler. 1777 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 1778 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 1779 } 1780 wpwKits.ajax(data).done(function( response ) { 1781 if(response.product_num==0){ 1782 if(msg!='' && globalwpw.settings.obj.disable_sitesearch==''){ 1783 msg = wpwKits.filterStopWords(msg); 1784 var data = {'action':'wpbo_search_site','name':globalwpw.hasNameCookie,'keyword':msg}; 1785 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 1786 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 1787 } 1788 wpwKits.ajax(data).done(function (response) { 1789 var json=$.parseJSON(response); 1790 if(json.status=='success'){ 1791 // wpwMsg.single(wp_chatbot_obj.found_result_message); 1792 $('span[data-wildcart="back"]').remove(); 1793 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1794 wpwMsg.triple_nobg(wp_chatbot_obj.found_result_message,json.html,'<span class="qcld-chatbot-wildcard" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1795 }else{ 1796 wpwMsg.double_nobg(wp_chatbot_obj.found_result_message,json.html); 1797 } 1798 }else{ 1799 var data = {'action':'wpbo_failed_response','name':globalwpw.hasNameCookie,'keyword':msg}; 1800 wpwKits.ajax(data).done(function (res) { 1801 // 1802 }) 1803 if(globalwpw.counter == globalwpw.settings.obj.no_result_attempt_count || global
1803wpw.settings.obj.no_result_attempt_count == 0 ){ 1804 wpwMsg.single(wpwKits.randomMsg(json.html)); 1805 setTimeout(function(){ 1806 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1807 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1808 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1809 } 1810 },globalwpw.settings.preLoadingTime) 1811 globalwpw.counter = 0; 1812 }else{ 1813 globalwpw.counter++; 1814 wpwMsg.single(wpwKits.randomMsg(json.html)); 1815 } 1816 } 1817 globalwpw.wildCard=0; 1818 }); 1819 }else{ 1820 globalwpw.wildCard=0; 1821 wpwMsg.single(wpwKits.randomMsg(globalwpw.settings.obj.empty_filter_msg)); 1822 // if(globalwpw.settings.obj.disable_repeatative!=1){ 1823 // setTimeout(function(){ 1824 // var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1825 // wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards); 1826 // },globalwpw.settings.preLoadingTime) 1827 // }else{ 1828 setTimeout(function(){ 1829 $(globalwpw.settings.messageContainer).find('.wp-chatbot-msg:last .qcld-like-dislike-icon').css('display', 'block'); 1830 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1831 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1832 } 1833 }, globalwpw.settings.preLoadingTime*2); 1834 // } 1835 } 1836 }else { 1837 var productSucces= wpwKits.randomMsg(globalwpw.settings.obj.product_success)+" <strong>"+msg+"</strong>!"; 1838 console.log(globalwpw.wildcards); 1839 wpwMsg.double_nobg(productSucces,response.html); 1840 if(response.per_page >= response.product_num){ 1841 setTimeout(function () { 1842 var searchAgain = wpwKits.randomMsg(globalwpw.settings.obj.product_infinite); 1843 wpwMsg.single(searchAgain); 1844 //keeping value in localstorage
1845 globalwpw.wildCard=20; 1846 globalwpw.productStep='search'; 1847 localStorage.setItem("productStep", globalwpw.productStep); 1848 },globalwpw.settings.wildcardsShowTime); 1849 } 1850 } 1851 }); 1852 }else{ 1853 if(msg!='' && globalwpw.settings.obj.disable_sitesearch==''){ 1854 msg = wpwKits.filterStopWords(msg); 1855 var data = {'action':'wpbo_search_site','name':globalwpw.hasNameCookie,'keyword':msg}; 1856 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 1857 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 1858 } 1859 wpwKits.ajax(data).done(function (response) { 1860 var json=$.parseJSON(response); 1861 if(json.status=='success'){ 1862 //wpwMsg.single(); 1863 $('span[data-wildcart="back"]').remove(); 1864 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1865 wpwMsg.triple_nobg(wp_chatbot_obj.found_result_message,json.html,'<span class="qcld-chatbot-wildcard" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1866 }else{ 1867 wpwMsg.double_nobg(wp_chatbot_obj.found_result_message,json.html); 1868 } 1869 }else{ 1870 var data = {'action':'wpbo_failed_response','name':globalwpw.hasNameCookie,'keyword':msg}; 1871 wpwKits.ajax(data).done(function (res) { 1872 // 1873 }) 1874 if(globalwpw.counter == globalwpw.settings.obj.no_result_attempt_count || globalwpw.settings.obj.no_result_attempt_count == 0 ){ 1875 wpwMsg.single(wpwKits.randomMsg(json.html)); 1876 setTimeout(function(){ 1877 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1878 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1879 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1880 } 1881 },globalwpw.settings.preLoadingTime) 1882 globalwpw.counter = 0; 1883 }else{ 1884 globalwpw.counter++; 1885 wpwMsg.single(wpwKits.randomMsg(json.html)); 1886 } 1887 }
1888 globalwpw.wildCard=0; 1889 }); 1890 }else{ 1891 globalwpw.wildCard=0; 1892 wpwMsg.single(wpwKits.randomMsg(globalwpw.settings.obj.empty_filter_msg)); 1893 // if(globalwpw.settings.obj.disable_repeatative!=1){ 1894 // setTimeout(function(){ 1895 // var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1896 // wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards); 1897 // },globalwpw.settings.preLoadingTime) 1898 // }else{ 1899 setTimeout(function(){ 1900 $(globalwpw.settings.messageContainer).find('.wp-chatbot-msg:last .qcld-like-dislike-icon').css('display', 'block'); 1901 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1902 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1903 } 1904 }, globalwpw.settings.preLoadingTime*2); 1905 // } 1906 } 1907 } 1908 } 1909 }) 1910 1911 } // 1912 } 1913 if(globalwpw.settings.obj.woocommerce){ 1914 //Product 1915 if(globalwpw.wildCard==20){ 1916 wpwTree.product(msg); 1917 } 1918 /* 1919 * order status part 1920 * bot action 1921 */ 1922 if(globalwpw.wildCard==21){ 1923 wpwTree.order(msg); 1924 } 1925 } 1926 if(globalwpw.wildCard==1){ 1927 wpwTree.support(msg); 1928 } 1929 if(globalwpw.wildCard==3){ 1930 wpwTree.subscription(msg); 1931 } 1932 if(globalwpw.wildCard==6){ 1933 wpwTree.unsubscription(msg); 1934 } 1935 if(globalwpw.wildCard==7){ 1936 wpwTree.formbuilder(msg); 1937 } 1938 if(globalwpw.wildCard==9){ 1939 wpwTree.bargain(msg); 1940 } 1941 if(globalwpw.wildCard==25){ 1942 wpwTree.reset(msg); 1943 } 1944 if(globalwpw.wildCard==26){ 1945 wpwTree.dfcx(msg); 1946 } 1947 if(globalwpw.wildCard==30){ 1948 wpwTree.ldsuggestion(); 1949 } 1950 } 1951 }, 1952 clickstr: function(id){ 1953 var data = {'action':'wpbo_search_response','name':globalwpw.hasNameCookie,'strid':id, 'language':globalwpw.settings.obj.language}; 1954 1955 wpwKits.ajax(data).done(function (response) { 1956 var json=$.parseJSON(response); 1957 if(json.status=='success'){ 1958 if(typeof(json.data)!=="undefined" && json.data){ 1959 var question=''; 1960 $.each(json.data, function (i, obj) { 1961 1962 question += obj.response; 1963 }); 1964 wpwMsg.single(question); 1965 } 1966 } 1967 }) 1968 }, 1969 shopper:function (msg) { 1970 wpwMsg.shopper(msg); 1971 if(globalwpw.wildCard==1) { 1972 this.bot(msg); 1973 }
1973else if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.wildCard==0 && globalwpw.ai_step==1 && globalwpw.df_status_lock==0){ 1974 this.bot(msg); 1975 } else{ 1976 //Filtering the user given messages by stopwords 1977 var filterMsg=(msg); 1978 //handle empty filterMsg as repeat the message. 1979 if(filterMsg=="") { 1980 //if(globalwpw.emptymsghandler==0){ 1981 globalwpw.repeatQueryEmpty=wpwKits.randomMsg(globalwpw.settings.obj.empty_filter_msg); 1982 globalwpw.emptymsghandler++; 1983 //} 1984 wpwMsg.single(globalwpw.repeatQueryEmpty); 1985 setTimeout(function(){ 1986 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 1987 if(globalwpw.settings.obj.disable_back_to_start != '1'){ 1988 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 1989 } 1990 },globalwpw.settings.preLoadingTime) 1991 }else { 1992 globalwpw.emptymsghandler=0; 1993 this.bot(filterMsg); 1994 } 1995 } 1996 } 1997 }; 1998 /* 1999 * wpwBot Plugin Creation without selector and 2000 * wpwbot and shoppers all activities will be handled. 2001 */ 2002 $.wpwbot = function(options) { 2003 //Using plugins defualts values or overwrite by options. 2004 2005 var settings = $.extend({}, $.wpwbot.defaults, options); 2006 //Updating global settings 2007 globalwpw.settings=settings; 2008 //updating the helpkeywords 2009 globalwpw.wildcardsHelp=[globalwpw.settings.obj.sys_key_help.toLowerCase(),globalwpw.settings.obj.sys_key_product.toLowerCase(),globalwpw.settings.obj.sys_key_catalog.toLowerCase(),globalwpw.settings.obj.sys_key_support.toLowerCase(),globalwpw.settings.obj.sys_key_order.toLowerCase(),globalwpw.settings.obj.sys_key_reset.toLowerCase(),globalwpw.settings.obj.sys_key_email.toLowerCase()] 2010 //updating wildcards 2011 globalwpw.wildcards=''; 2012 if(globalwpw.settings.obj.start_menu!=''){ 2013 var menu_html = ''; 2014 var menu_items = $.parseHTML($.trim(globalwpw.settings.obj.start_menu)); 2015 $(menu_items).each(function(){ 2016 if( $(this).prop('tagName') == 'SPAN' ){ 2017 if( $(this).hasClass('qcld-chatbot-suggest-email') ){ 2018 if( globalwpw.settings.obj.disable_feedback=='' ){ 2019 menu_html += $(this).prop('outerHTML'); 2020 } 2021 }else if( $(this).hasClass('qcld-chatbot-suggest-phone') ){ 2022 if( globalwpw.settings.obj.call_gen=="" ){ 2023 menu_html += $(this).prop('outerHTML'); 2024 } 2025 }else if( $(this).hasClass('qcld-chatbot-wildcard') && $(this).attr('data-wildcart') == 'support' ){ 2026 if( globalwpw.settings.obj.disable_faq=='' ){ 2027 menu_html += $(this).prop('outerHTML'); 2028 } 2029 }else if( $(this).hasClass('qcld-chatbot-wildcard') && $(this).attr('data-wildcart') == 'messenger' ){ 2030 if( globalwpw.settings.obj.enable_messenger==1 ){ 2031 menu_html += $(this).prop('outerHTML'); 2032 } 2033 }else if( $(this).hasClass('qcld-chatbot-wildcard') && $(this).attr('data-wildcart') == 'whatspp' ){ 2034 if( globalwpw.settings.obj.enable_whats==1 ){ 2035 menu_html += $(this).prop('outerHTML'); 2036 } 2037 }else{ 2038 menu_html += $(this).prop('outerHTML'); 2039 } 2040 } 2041 }) 2042 if( menu_html != '' ){
2043 globalwpw.wildcards = menu_html; 2044 }else{ 2045 globalwpw.wildcards = globalwpw.settings.obj.start_menu; 2046 } 2047 } 2048 //Initialize the wpwBot with greeting and if already initialize and given name then return greeting.. 2049 if(localStorage.getItem("wpwHitory") && globalwpw.initialize==0 ){ 2050 var wpwHistory=localStorage.getItem("wpwHitory"); 2051 $(globalwpw.settings.messageWrapper).html(wpwHistory); 2052 //Scroll to the last element. 2053 wpwKits.scrollTo(); 2054 //Now mainting the current stages tokens 2055 globalwpw.initialize=1; 2056 if(localStorage.getItem("wildCard")){ 2057 globalwpw.wildCard=localStorage.getItem("wildCard"); 2058 } 2059 if(localStorage.getItem("productStep")){ 2060 globalwpw.productStep=localStorage.getItem("productStep"); 2061 } 2062 if(localStorage.getItem("orderStep")){ 2063 globalwpw.orderStep=localStorage.getItem("orderStep"); 2064 } 2065 if(localStorage.getItem("supportStep")){ 2066 globalwpw.supportStep=localStorage.getItem("supportStep"); 2067 } 2068 if(localStorage.getItem("aiStep")){ 2069 globalwpw.ai_step=localStorage.getItem("aiStep"); 2070 } 2071 if(localStorage.getItem("formfieldid")){ 2072 globalwpw.formfieldid=localStorage.getItem("formfieldid"); 2073 } 2074 if(localStorage.getItem("formentry")){ 2075 globalwpw.formentry=localStorage.getItem("formentry"); 2076 } 2077 if(localStorage.getItem("formStep")){ 2078 globalwpw.formStep=localStorage.getItem("formStep"); 2079 } 2080 if(localStorage.getItem("formid")){ 2081 globalwpw.formid=localStorage.getItem("formid"); 2082 } 2083 //update the value for initializing. 2084 globalwpw.initialize=1; 2085 } else { 2086 if(globalwpw.initialize==0 && globalwpw.wildCard==0 && globalwpw.settings.obj.re_target_handler==0){ 2087 wpwWelcome.greeting(); 2088 //update the value for initializing. 2089 globalwpw.initialize=1; 2090 }else{ // re targeting part . 2091 setTimeout(function (e) { 2092 wpwWelcome.greeting(); 2093 },8500); 2094 globalwpw.initialize=1; 2095 } 2096 } 2097 //When shopper click on send button 2098 $(document).on('click',settings.sendButton,function (e) { 2099 var shopperMsg =$(settings.messageEditor).val(); 2100 if(shopperMsg != ""){ 2101 wpwAction.shopper(wpwKits.htmlTagsScape(shopperMsg)); 2102 $(settings.messageEditor).val(''); 2103 } 2104 }); 2105 $(document).on('click', '.chatbot_intent_reload', function(e){ 2106 e.preventDefault(); 2107 var obj = $(this); 2108 if(obj.attr('data-intent-type')=='formbuilder'){ 2109 if( obj.attr('data-step')=='complete' ){ 2110 globalwpw.formStep='field'; 2111 localStorage.setItem("formStep", globalwpw.formStep); 2112 } 2113 globalwpw.wildCard=obj.attr('data-wildcard'); 2114 globalwpw.formfieldid = obj.attr('data-intent'); 2115 wpwTree.formbuilder(); 2116 } 2117 }) 2118 /* 2119 * Or when shopper press the ENTER key 2120 * Then chatting functionality will be started. 2121 */ 2122 $(document).on('click', '.wpb-quick-reply', function(e){ 2123 e.preventDefault(); 2124 $('#wp-chatbot-editor').val($(this).html()); 2125 $('#wp-chatbot-send-message').trigger( "click" ); 2126 }) 2127 $(document).on('keypress',settings.messageEditor,function (e) { 2128 if (e.which == 13||e.keyCode==13) { 2129 e.preventDefault(); 2130 var shopperMsg =$(settings.messageEditor).val(); 2131 if(shopperMsg != ""){ 2132 wpwAction.shopper(wpwKits.htmlTagsScape(shopperMsg)); 2133 $(settings.messageEditor).val(''); 2134 } 2135 } 2136 }); 2137 $(document).on('click', '.qcld-chatbot-checkbox', function(){ 2138 2139 var value = []; 2140 $('.qcld-chatbot-checkbox').each(function(){ 2141 if($(this).prop("checked") == true){ 2142 value.push($(this).val()); 2143 } 2144 }) 2145 $('#wp-chatbot-editor').val(value.join()); 2146 }) 2147 //Click on the wildcards to select a service 2148 $(document).on('click','.qcld-chatbot-wildcard',function(){ 2149 var wildcardData=$(this).attr('data-form'); 2150 var shooperChoice=$(this).text(); 2151 wpwMsg.shopper_choice(shooperChoice); 2152 if(typeof wildcardData === "undefined"){ 2153 var wildcardData=$(this).attr('data-wildcart'); 2154 } 2155 //Wild cards handling for bot. 2156 if(wildcardData=='product'){
2157 globalwpw.wildCard=1; 2158 globalwpw.productStep='asking' 2159 wpwAction.bot('from wildcard product'); 2160 //keeping value in localstorage 2161 localStorage.setItem("wildCard", globalwpw.wildCard); 2162 localStorage.setItem("productStep", globalwpw.productStep); 2163 } 2164 if(wildcardData=='catalog'){ 2165 wpwAction.bot(globalwpw.settings.obj.sys_key_catalog.toLowerCase()); 2166 } 2167 if(wildcardData=='featured'){ 2168 globalwpw.wildCard=1; 2169 globalwpw.productStep='featured' 2170 wpwAction.bot('from wildcard product'); 2171 //keeping value in localstorage 2172 localStorage.setItem("wildCard", globalwpw.wildCard); 2173 localStorage.setItem("productStep", globalwpw.productStep); 2174 } 2175 if(wildcardData=='sale'){ 2176 globalwpw.wildCard=1; 2177 globalwpw.productStep='sale' 2178 wpwAction.bot('from wildcard product'); 2179 //keeping value in localstorage 2180 localStorage.setItem("wildCard", globalwpw.wildCard); 2181 localStorage.setItem("productStep", globalwpw.productStep); 2182 } 2183 if(wildcardData=='order'){ 2184 globalwpw.wildCard=2; 2185 globalwpw.orderStep='welcome'; 2186 wpwAction.bot('from wildcard order'); 2187 //keeping value in localstorage 2188 localStorage.setItem("wildCard", globalwpw.wildCard); 2189 localStorage.setItem("orderStep", globalwpw.orderStep); 2190 } 2191 if((wildcardData=='support ui-sortable-handle') || (wildcardData=='support')) { 2192 globalwpw.wildCard=1; 2193 globalwpw.supportStep='welcome'; 2194 wpwAction.bot('from wildcard support'); 2195 //keeping value in localstorage 2196 localStorage.setItem("wildCard", globalwpw.wildCard); 2197 localStorage.setItem("supportStep", globalwpw.supportStep); 2198 } 2199 if(wildcardData=='back'){ 2200 globalwpw.wildCard=0; 2201 //wpwAction.bot('start'); 2202 wpwAction.bot(wp_chatbot_obj.sys_key_help.toLowerCase()); 2203 //keeping value in localstorage 2204 localStorage.setItem("wildCard", globalwpw.wildCard); 2205 } 2206 if(wildcardData=='messenger'){ 2207 var url='https://www.messenger.com/t/'+globalwpw.settings.obj.fb_page_id; 2208 var win = window.open(url, '_blank'); 2209 win.focus(); 2210 } 2211 if(wildcardData=='whatsapp'){ 2212 var url='https://api.whatsapp.com/send?phone='+globalwpw.settings.obj.whats_num; 2213 var win = window.open(url, '_blank'); 2214 win.focus(); 2215 } 2216 }); 2217 $(document).on('click','.qcld-chatbot-form',function(e){ 2218 e.preventDefault(); 2219 var formid=$(this).attr('data-form'); 2220 globalwpw.wildCard=7; 2221 globalwpw.formStep='welcome'; 2222 wpwTree.formbuilder(formid); 2223 }) 2224 $(document).on('click','.qcld_simple_txt_response',function(e){ 2225 e.preventDefault(); 2226 var text=$(this).text(); 2227 var id = $(this).data('strid'); 2228 globalwpw.wildCard=0; 2229 wpwAction.clickstr(id); 2230 }) 2231 $(document).on('click','#wp-chatbot-desktop-reload',function (e) { 2232 e.preventDefault(); 2233 var actionType=$(this).attr('reset-data'); 2234 $('#wp-chatbot-messages-container').html(''); 2235 localStorage.removeItem('shopper'); 2236 globalwpw.wildCard=0; 2237 globalwpw.ai_step=0; 2238 localStorage.setItem("wildCard", globalwpw.wildCard); 2239 localStorage.setItem("aiStep", globalwpw.ai_step); 2240 globalwpw.formfieldid = '';
2241 localStorage.setItem("formfieldid", globalwpw.formfieldid); 2242 globalwpw.formStep='welcome'; 2243 localStorage.setItem("formStep", globalwpw.formStep); 2244 globalwpw.formid=''; 2245 localStorage.setItem("formid", globalwpw.formid); 2246 globalwpw.formentry = 0; 2247 localStorage.setItem("formentry", globalwpw.formentry); 2248 localStorage.removeItem("cx-name" ); 2249 localStorage.removeItem("cx-diaplayname" ); 2250 localStorage.removeItem("cx-languagecode" ); 2251 localStorage.removeItem("cx-timezone" ); 2252 var number = Math.random() // 0.9394456857981651 2253 number.toString(36); // '0.xtis06h6' 2254 var id = number.toString(36).substr(2); // 'xtis06h6' 2255 localStorage.setItem('botsessionid', id); 2256 wpwWelcome.greeting(); 2257 }); 2258 $(document).on('click','.qcld-chatbot-formanswer',function(e){ 2259 e.preventDefault(); 2260 var answer=$(this).attr('data-form-value'); 2261 wpwAction.bot(answer); 2262 }) 2263 // 2264 $(document).on('click','.qcld-chatbot-product-category',function(){ 2265 var catType=$(this).attr('data-category-type'); 2266 var shopperChoiceCatId=$(this).text()+'#'+$(this).attr('data-category-id'); 2267 var shopperChoiceCategory=$(this).text(); 2268 if(catType=='hasChilds'){ 2269 //Now hide all categories but shopper choice. 2270 wpwMsg.shopper_choice(shopperChoiceCategory); 2271 //updating the product steps and bringing the product by category. 2272 wpwKits.subCats($(this).attr('data-category-id')); 2273 globalwpw.productStep='search'; 2274 globalwpw.wildCard=1; 2275 }else{ 2276 //Now hide all categories but shopper choice. 2277 wpwMsg.shopper_choice(shopperChoiceCategory); 2278 //updating the product steps and bringing the product by category. 2279 globalwpw.productStep='category'; 2280 globalwpw.wildCard=1; 2281 //keeping value in localstorage 2282 localStorage.setItem("productStep", globalwpw.productStep); 2283 wpwAction.bot(shopperChoiceCatId); 2284 } 2285 }); 2286 //Product Load More features for product search or category products 2287 $(document).on('click','#wp-chatbot-loadmore',function (e) { 2288 $('#wp-chatbot-loadmore-loader').html('<img class="wp-chatbot-comment-loader" src="'+globalwpw.settings.obj.image_path+'loadmore.gif" alt="..." />'); 2289 var loadMoreDom=$(this); 2290 var productOffest=loadMoreDom.attr('data-offset'); 2291 var searchType=loadMoreDom.attr('data-search-type'); 2292 var searchTerm=loadMoreDom.attr('data-search-term'); 2293 var data = { 'action': 'qcld_wb_chatbot_load_more','offset': productOffest,'search_type': searchType,'search_term': searchTerm}; 2294 //Load more ajax handler. 2295 wpwKits.ajax(data).done(function (response) { 2296 //Change button text 2297 $('#wp-chatbot-loadmore-loader').html(''); 2298 $('.wp-chatbot-products').append(response.html); 2299 loadMoreDom.attr('data-search-term',response.search_term); 2300 wpwKits.wpwHistorySave(); 2301 loadMoreDom.attr('data-offset',response.offset); 2302 if(response.product_num <= response.per_page){ 2303 loadMoreDom.hide(); 2304 //Now show the user infinite. 2305 setTimeout(function () { 2306 var searchAgain = wpwKits.randomMsg(globalwpw.settings.obj.product_infinite); 2307 wpwMsg.single(searchAgain); 2308 globalwpw.productStep='search'; 2309 //keeping value in localstorage 2310 localStorage.setItem("productStep", globalwpw.productStep); 2311 },globalwpw.settings.wildcardsShowTime); 2312 } 2313 //scroll to the last message 2314 wpwKits.scrollTo(); 2315 }); 2316 }); 2317 //search load more 2318 $(document).on('click', '.wp-chatbot-loadmore', function(e){
2319 e.preventDefault(); 2320 var obj = $(this); 2321 2322 var keyword = obj.attr('data-keyword'); 2323 var post_type = obj.attr('data-post_type'); 2324 var page = obj.attr('data-page'); 2325 obj.text('Loading...'); 2326 var data = {'action':'wpbo_search_site_pagination','name':globalwpw.hasNameCookie,'keyword':keyword,'language': globalwpw.settings.obj.language,'type': post_type, 'page': page, 'nonce': qcld_chatbot_obj.nonce}; 2327 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 2328 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 2329 } 2330 wpwKits.ajax(data).done(function (res) { 2331 var json = (res); 2332 if(json.status=='success'){ 2333 $('span[data-wildcart="back"]').remove(); 2334 wpwMsg.single(json.html); 2335 // Hide the comment loader after response inside parent .wp-chatbot-paragraph 2336 // Hide the entire li.wp-chatbot-msg if its .wp-chatbot-paragraph only contains the loader image (and is hidden) 2337 2338 setTimeout(function(){ 2339 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1") && globalwpw.settings.obj.disable_back_to_start != '1'){ 2340 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 2341 } 2342 },globalwpw.settings.preLoadingTime) 2343 2344 obj.remove(); 2345 }else{ 2346 2347 if(globalwpw.counter == globalwpw.settings.obj.no_result_attempt_count || globalwpw.settings.obj.no_result_attempt_count == 0 ){ 2348 2349 wpwMsg.single(json.html); 2350 if(globalwpw.settings.obj.disable_repeatative!=1){ 2351 if ( wpwKits.render( globalwpw.settings.obj.no_result_attempt_message ) != '' ) { 2352 setTimeout(function(){ 2353 wpwMsg.single(wpwKits.render( globalwpw.settings.obj.no_result_attempt_message )); 2354 },globalwpw.settings.preLoadingTime) 2355 } else { 2356 setTimeout(function(){ 2357 var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again); 2358 if((globalwpw.settings.obj.qcld_disable_start_menu != "1")){ 2359 if(typeof(globalwpw.wildcards) != 'undefined' && (globalwpw.wildcards != '')){ 2360 console.log(globalwpw.wildcards); 2361 wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards); 2362 }else{ 2363 wpwMsg.single(serviceOffer); 2364 } 2365 2366 } 2367 2368 },globalwpw.settings.preLoadingTime) 2369 } 2370 } 2371 globalwpw.counter = 0; 2372 2373 }else{ 2374 globalwpw.counter++; 2375 wpwTree.df_reply(res); 2376 } 2377 2378 } 2379 globalwpw.wildCard=0; 2380 2381 }); 2382 2383 2384 }) 2385 2386 //search load more 2387 $(document).on('click', '.wp-chatbot-loadmore2', function(e){ 2388 e.preventDefault(); 2389 var obj = $(this); 2390 2391 var keyword = obj.attr('data-keyword'); 2392 2393 var page = obj.attr('data-page'); 2394 2395 var search_type = obj.attr('data-search-type'); 2396 obj.text(globalwpw.settings.obj.loading.en_US); 2397 2398 if( search_type == 'default-wp-search' ){ 2399 var data = {'action':'wpbo_default_search_pagination2','name':globalwpw.hasNameCookie,'keyword':keyword, 'page': page, search_type:'default-wp-search'}; 2400 }else{ 2401 var data = {'action':'wpbo_search_site_pagination2','name':globalwpw.hasNameCookie,'keyword':keyword, 'page': page}; 2402 } 2403 if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){ 2404 $(globalwpw.settings.messageContainer).append(wpwKits.botPreloader()); 2405 } 2406 wpwKits.ajax(data).done(function (res) { 2407 var json=$.parseJSON(res); 2408 if(json.status=='success'){ 2409 $('span[data-wildcart="back"]').remove(); 2410 2411 wpwMsg.single_nobg(json.html); 2412 2413 setTimeout(function(){ 2414 if((globalwpw.settings.obj.qcld_disable_repited_startmenu != "1") && global
2414wpw.settings.obj.disable_back_to_start != '1'){ 2415 wpwMsg.single_nobg('<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '</span>'); 2416 } 2417 },globalwpw.settings.preLoadingTime) 2418 2419 obj.remove(); 2420 }else{ 2421 2422 if(globalwpw.counter == globalwpw.settings.obj.no_result_attempt_count || globalwpw.settings.obj.no_result_attempt_count == 0 ){ 2423 2424 wpwMsg.single(json.html); 2425 wpwTree.start_menu_settings(); 2426 globalwpw.counter = 0; 2427 2428 }else{ 2429 globalwpw.counter++; 2430 wpwTree.df_reply(res); 2431 } 2432 2433 } 2434 globalwpw.wildCard=0; 2435 }); 2436 2437 2438 }); 2439 /*Products details part **/ 2440 // if(globalwpw.settings.obj.open_product_detail!=1){ 2441 // $(document).on('click','.wp-chatbot-product a',function (e) { 2442 // e.preventDefault(); 2443 // $('.wp-chatbot-product-container').addClass('active-chatbot-product-details'); 2444 // $('.wp-chatbot-product-reload').addClass('wp-chatbot-product-loading').html('<img class="wp-chatbot-product-loader" src="'+globalwpw.settings.obj.image_path+'comment.gif" alt="Loading..." />'); 2445 // var productId=$(this).attr('wp-chatbot-pid'); 2446 // var data = { 'action':'qcld_wb_chatbot_product_details', 'wp_chatbot_pid':productId}; 2447 // //product details ajax handler. 2448 // wpwKits.ajax(data).done(function (response) { 2449 // $('.wp-chatbot-product-reload').removeClass('wp-chatbot-product-loading').html(''); 2450 // $('#wp-chatbot-product-title').html(response.title); 2451 // $('#wp-chatbot-product-description').html(response.description); 2452 // $('#wp-chatbot-product-image').html(response.image); 2453 // $('#wp-chatbot-product-price').html(response.price); 2454 // $('#wp-chatbot-product-quantity').html(response.quantity); 2455 // $('#wp-chatbot-product-variable').html(response.variation); 2456 // $('#wp-chatbot-product-cart-button').html(response.buttton); 2457 // //Load gallery magnify 2458 // setTimeout(function () { 2459 // $('#wp-chatbot-product-image-large-path').magnificPopup({type:'image'}); 2460 // },1000); 2461 // //For shortcode handle recenlty view product by ajax as 2462 // if($('#wp-chatbot-shortcode-template-container').length > 0){ 2463 // var data = {'action':'qcld_wb_chatbot_recently_viewed_products'}; 2464 // wpwKits.ajax(data).done(function (response) { 2465 // $('.wp-chatbot-product-shortcode-container').html(response); 2466 // $('.chatbot-sidebar .wp-chatbot-products').slimScroll({height: '435px', start: 'top'}); 2467 // }); 2468 // } 2469 // }); 2470 // }); 2471 // } 2472 //Image gallery. 2473 $(document).on('click','.wp-chatbot-product-image-thumbs-path',function (e) { 2474 e.preventDefault(); 2475 var imagePath=$(this).attr('href'); 2476 $('#wp-chatbot-product-image-large-path').attr('href',imagePath); 2477 $('#wp-chatbot-product-image-large-src').attr('src',imagePath); 2478 //handle thumb active one 2479 $('.wp-chatbot-product-image-thumbs-path').parent().removeClass('wp-chatbot-product-active-image-thumbs'); 2480 $(this).parent().addClass('wp-chatbot-product-active-image-thumbs'); 2481 }); 2482 //Product details close 2483 $(document).on('click', '.wp-chatbot-product-close', function (e) { 2484 $('.wp-chatbot-product-container').removeClass('active-chatbot-product-details'); 2485 }); 2486 /*add to cart part **/
2487 $(document).on("click","#wp-chatbot-add-cart-button",function (e) { 2488 var pId=$(this).attr('wp-chatbot-product-id'); 2489 var qnty=$("#vPQuantity").val(); 2490 var data = {'action': 'qcld_wb_chatbot_add_to_cart','product_id': pId,'quantity': qnty }; 2491 //add to cart ajax handler. 2492 wpwKits.ajax(data).done(function (response) { 2493 //Change button text 2494 if(response=="simple"){ 2495 //Showing cart. 2496 wpwKits.showCart(); 2497 //handle the active tab on chat board. 2498 $('.wp-chatbot-operation-option').each(function(){ 2499 if($(this).attr('data-option')=='cart'){ 2500 $(this).parent().addClass('wp-chatbot-operation-active'); 2501 }else{ 2502 $(this).parent().removeClass('wp-chatbot-operation-active'); 2503 } 2504 }); 2505 } 2506 //Hide the shortcode and chat ui product details. 2507 $('.wp-chatbot-product-container').removeClass('active-chatbot-product-details'); 2508 }); 2509 }); 2510 //Add to cart operation for variable product. 2511 $(document).on('click','#wp-chatbot-variation-add-to-cart',function(event) { 2512 event.preventDefault(); 2513 var pId=$(this).attr('wp-chatbot-product-id'); 2514 var quanity=$('#vPQuantity').val(); 2515 var variation_id=$(this).attr('variation_id'); 2516 var attributes=new Array(); 2517 $.each($("#wp-chatbot-variation-data select"), function(){ 2518 var attribute = $(this).attr('name')+'#'+ $(this).find('option:selected').text(); 2519 attributes.push(attribute); 2520 }); 2521 var data = { 2522 'action': 'qcld_variable_add_to_cart', 2523 'p_id': pId, 2524 'quantity': quanity, 2525 'variations_id':variation_id, 2526 'attributes':attributes 2527 }; 2528 //add to cart ajax handler. 2529 wpwKits.ajax(data).done(function (response) { 2530 //Change button text 2531 if(response=="variable"){ 2532 //Showing cart. 2533 wpwKits.showCart(); 2534 //handle the active tab on chat board. 2535 //handle the active tab on chat board. 2536 $('.wp-chatbot-operation-option').each(function(){ 2537 if($(this).attr('data-option')=='cart'){ 2538 $(this).parent().addClass('wp-chatbot-operation-active'); 2539 }else{ 2540 $(this).parent().removeClass('wp-chatbot-operation-active'); 2541 } 2542 }); 2543 } 2544 //Hide the shortcode and chat ui product details. 2545 $('.wp-chatbot-product-container').removeClass('active-chatbot-product-details'); 2546 }); 2547 }); 2548 //Update cart. 2549 $(document).on("change", ".qcld-wp-chatbot-cart-item-qnty", function () { 2550 //Update editor only for chat ui 2551 if($('#wp-chatbot-shortcode-template-container').length == 0) { 2552 wpwKits.disableEditor(wpwKits.randomMsg(globalwpw.settings.obj.cart_updating)); 2553 } 2554 var currentItem=$(this); 2555 setTimeout(function () { 2556 var item_key=currentItem.attr('data-cart-item'); 2557 var qnty=currentItem.val(); 2558 var data = {'action': 'qcld_wb_chatbot_update_cart_item_number','cart_item_key':item_key,'qnty':qnty}; 2559 wpwKits.ajax(data).done(function () { 2560 //Showing cart. 2561 wpwKits.showCart(); 2562 }); 2563 }, globalwpw.settings.preLoadingTime); 2564 }); 2565 //remove the cart item from global cart. 2566 $(document).on("click", ".wp-chatbot-remove-cart-item", function () { 2567 //Update editor only for chat ui 2568 if($('#wp-chatbot-shortcode-template-container').length == 0) { 2569 wpwKits.disableEditor(wpwKits.randomMsg(globalwpw.settings.obj.cart_removing)); 2570 } 2571 var item=$(this).attr('data-cart-item'); 2572 var data = {'action': 'qcld_wb_chatbot_cart_item_remove', 'cart_item':item }; 2573 wpwKits.ajax(data).done(function () { 2574 //Showing cart. 2575 wpwKits.showCart(); 2576 }) 2577 }); 2578 /*Support query answering.. **/ 2579 $(document).on('click','.qcld-chatbot-support-items',function (e) { 2580 var shopperChoose=$(this).text(); 2581 var queryIndex=$(this).attr('data-query-index'); 2582 wpwMsg.shopper_choice(shopperChoose); 2583 //Now answering the query. 2584 var queryAns=globalwpw.settings.obj.support_ans[queryIndex]; 2585 wpwMsg.single(queryAns); 2586 //Asking email after showing answer. 2587 var orPhoneSuggest=''; 2588 setTimeout(function(){ 2589 if(globalwpw.settings.obj.call_sup!=1) { 2590 orPhoneSuggest = '<span class="qcld-chatbot-suggest-phone" >' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '</span>'; 2591 } 2592 var orEmailSuggest='<span class="qcld-chatbot-suggest-email">'+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'</span>'; 2593 wpwKits.suggestEmail(orPhoneSuggest+orEmailSuggest); 2594 },globalwpw.settings.wildcardsShowTime); 2595 }); 2596 /*Support Email **/ 2597 $(document).on('click','.qcld-chatbot-suggest-email',function (e) { 2598 var shopperChoice=$(this).text(); 2599 wpwMsg.shopper_choice(shopperChoice); 2600 //Then ask email address 2601 if(typeof(globalwpw.hasNameCookie)=='undefined'|| global
2601wpw.hasNameCookie==''){ 2602 var shopperName= globalwpw.settings.obj.shopper_demo_name; 2603 }else{ 2604 var shopperName=globalwpw.hasNameCookie; 2605 } 2606 var ask_msg = wpwKits.randomMsg(globalwpw.settings.obj.asking_email); 2607 var askEmail = (globalwpw.settings.obj.skip_wp_greetings=='1' || globalwpw.settings.obj.skip_greetings_and_menu =='1') ? wpwKits.randomMsg(globalwpw.settings.obj.hello)+' '+ ask_msg : wpwKits.randomMsg(globalwpw.settings.obj.hello) + ' '+shopperName+'! '+ ask_msg; 2608 wpwMsg.single(askEmail); 2609 //Now updating the support part as . 2610 globalwpw.supportStep='email'; 2611 globalwpw.wildCard=1; 2612 //keeping value in localstorage 2613 localStorage.setItem("wildCard", globalwpw.wildCard); 2614 localStorage.setItem("supportStep", globalwpw.supportStep); 2615 }); 2616 /*site Search*/ 2617 $(document).on('click','.qcld-chatbot-site-search',function (e) { 2618 var shopperChoice=$(this).text(); 2619 wpwMsg.shopper_choice(shopperChoice); 2620 //Then ask email address 2621 if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){ 2622 var shopperName= globalwpw.settings.obj.shopper_demo_name; 2623 }else{ 2624 var shopperName=globalwpw.hasNameCookie; 2625 } 2626 var ask_msg = wp_chatbot_obj.search_keyword; 2627 var askEmail = (globalwpw.settings.obj.skip_wp_greetings=='1' || globalwpw.settings.obj.skip_greetings_and_menu =='1') ? 'Hello ' + ask_msg : 'Hello '+shopperName+'! '+ ask_msg; 2628 wpwMsg.single(askEmail); 2629 //Now updating the support part as . 2630 globalwpw.supportStep='search'; 2631 globalwpw.wildCard=1; 2632 //keeping value in localstorage 2633 localStorage.setItem("wildCard", globalwpw.wildCard); 2634 localStorage.setItem("supportStep", globalwpw.supportStep); 2635 }); 2636 /*Support Phone **/ 2637 $(document).on('click','.qcld-chatbot-suggest-phone',function (e) { 2638 var shopperChoice=$(this).text(); 2639 wpwMsg.shopper_choice(shopperChoice); 2640 //Then ask email address 2641 if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){ 2642 var shopperName= globalwpw.settings.obj.shopper_demo_name; 2643 }else{ 2644 var shopperName=globalwpw.hasNameCookie; 2645 } 2646 var ask_msg = wpwKits.randomMsg(globalwpw.settings.obj.asking_phone); 2647 var askEmail = (globalwpw.settings.obj.skip_wp_greetings=='1' || globalwpw.settings.obj.skip_greetings_and_menu =='1') ? 'Hello ' + ask_msg : 'Hello '+shopperName+'! '+ ask_msg; 2648 wpwMsg.single(askEmail); 2649 //Now updating the support part as . 2650 globalwpw.supportStep='phone'; 2651 globalwpw.wildCard=1; 2652 //keeping value in localstorage 2653 localStorage.setItem("wildCard", globalwpw.wildCard); 2654 localStorage.setItem("supportStep", globalwpw.supportStep); 2655 }); 2656 //Show chat,cart and recently view products by click event. 2657 $(document).on('click','.wp-chatbot-operation-option',function (e) { 2658 e.preventDefault(); 2659 var oppt=$(this).attr('data-option'); 2660 if(oppt=='recent' && globalwpw.wpwIsWorking==0){ 2661 wpwKits.disableEditor(globalwpw.settings.obj.sys_key_product); 2662 var data = {'action':'qcld_wb_chatbot_recently_viewed_products'}; 2663 wpwKits.ajax(data).done(function (response) { 2664 $(globalwpw.settings.messageWrapper).html(response); 2665 }); 2666 //First remove wp-chatbot-operation-active class from all selector 2667 $('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active'); 2668 //then add the active class to current element. 2669 $(this).parent().addClass('wp-chatbot-operation-active'); 2670 }
2670else if(oppt=='chat' && globalwpw.wpwIsWorking==0){ 2671 $(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory")); 2672 wpwKits.scrollTo(); 2673 wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg)); 2674 //First remove wp-chatbot-operation-active class from all selector 2675 $('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active'); 2676 //then add the active class to current element. 2677 $(this).parent().addClass('wp-chatbot-operation-active'); 2678 } else if(oppt=='cart' && globalwpw.wpwIsWorking==0){ 2679 wpwKits.showCart(); 2680 //First remove wp-chatbot-operation-active class from all selector 2681 $('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active'); 2682 //then add the active class to current element. 2683 $(this).parent().addClass('wp-chatbot-operation-active'); 2684 } else if(oppt=='help' && globalwpw.wpwIsWorking==0){ 2685 if( $('.wp-chatbot-messages-container').length==0) { 2686 //if from other nob then goo to the chat window 2687 $(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory")); 2688 //Showing help message 2689 setTimeout(function () { 2690 wpwKits.scrollTo(); 2691 var helpWelcome = wpwKits.randomMsg(globalwpw.settings.obj.help_welcome); 2692 var helpMsg = wpwKits.decodehtml(wpwKits.randomMsg(globalwpw.settings.obj.help_msg)); 2693 wpwMsg.double(helpWelcome,helpMsg); 2694 //dialogflow 2695 if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){ 2696 globalwpw.wildCard=0; 2697 globalwpw.ai_step=1; 2698 localStorage.setItem("wildCard", globalwpw.wildCard); 2699 localStorage.setItem("aiStep", globalwpw.ai_step); 2700 } 2701 },globalwpw.settings.preLoadingTime); 2702 }else{ 2703 //Showing help message on chat self window. 2704 var helpWelcome = wpwKits.randomMsg(globalwpw.settings.obj.help_welcome); 2705 var helpMsg = wpwKits.randomMsg(globalwpw.settings.obj.help_msg); 2706 wpwMsg.double(helpWelcome,helpMsg); 2707 //dialogflow 2708 if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){ 2709 globalwpw.wildCard=0; 2710 globalwpw.ai_step=1; 2711 localStorage.setItem("wildCard", globalwpw.wildCard); 2712 localStorage.setItem("aiStep", globalwpw.ai_step); 2713 } 2714 } 2715 //First remove wp-chatbot-operation-active class from all selector 2716 $('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active'); 2717 //then add the active class to current element. 2718 $(this).parent().addClass('wp-chatbot-operation-active'); 2719 } else if(oppt=='support' && globalwpw.wpwIsWorking==0){ 2720 if( $('.wp-chatbot-messages-container').length==0) { 2721 //if from other nob then goo to the chat window 2722 $(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory")); 2723 //Showing help message 2724 setTimeout(function () { 2725 wpwKits.scrollTo(); 2726 globalwpw.wildCard=1; 2727 globalwpw.supportStep='welcome'; 2728 wpwTree.support(globalwpw.settings.obj.sys_key_support.toLowerCase()); 2729 },globalwpw.settings.preLoadingTime); 2730 }else{ 2731 //Showing help message on chat self window.
2732 globalwpw.wildCard=1; 2733 globalwpw.supportStep='welcome'; 2734 wpwTree.support(globalwpw.settings.obj.sys_key_support.toLowerCase()); 2735 } 2736 //First remove wp-chatbot-operation-active class from all selector 2737 $('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active'); 2738 //then add the active class to current element. 2739 $(this).parent().addClass('wp-chatbot-operation-active'); 2740 } 2741 //show chat wrapper and hide cart-checkout wrapper 2742 $(globalwpw.settings.messageWrapper).show(); 2743 $('#wp-chatbot-checkout-short-code').hide(); 2744 $('#wp-chatbot-cart-short-code').hide(); 2745 }); 2746 $(document).on('click','.qcld-chatbot-reset-btn',function (e) { 2747 e.preventDefault(); 2748 var actionType=$(this).attr('reset-data'); 2749 if(actionType=='yes'){ 2750 2751 $('#wp-chatbot-messages-container').html(''); 2752 localStorage.removeItem('shopper'); 2753 globalwpw.wildCard=0; 2754 globalwpw.ai_step=0; 2755 localStorage.setItem("wildCard", globalwpw.wildCard); 2756 localStorage.setItem("aiStep", globalwpw.ai_step); 2757 globalwpw.formfieldid = ''; 2758 localStorage.setItem("formfieldid", globalwpw.formfieldid); 2759 globalwpw.formStep='welcome'; 2760 localStorage.setItem("formStep", globalwpw.formStep); 2761 globalwpw.formid='';
2762 localStorage.setItem("formid", globalwpw.formid); 2763 globalwpw.formentry = 0; 2764 localStorage.setItem("formentry", globalwpw.formentry); 2765 localStorage.removeItem("cx-name" ); 2766 localStorage.removeItem("cx-diaplayname" ); 2767 localStorage.removeItem("cx-languagecode" ); 2768 localStorage.removeItem("cx-timezone" ); 2769 var number = Math.random() // 0.9394456857981651 2770 number.toString(36); // '0.xtis06h6' 2771 var id = number.toString(36).substr(2); // 'xtis06h6' 2772 localStorage.setItem('botsessionid', id); 2773 wpwWelcome.greeting(); 2774 } else if(actionType=='no'){ 2775 wpwAction.bot(globalwpw.settings.obj.sys_key_help.toLowerCase()); 2776 } 2777 }); 2778 return this; 2779 }; 2780 //Deafault value for wpwbot.If nothing passes from the work station 2781 //Then defaults value will be used. 2782 $.wpwbot.defaults={ 2783 obj:{}, 2784 editor_handler:0, 2785 sendButton:'#wp-chatbot-send-message', 2786 messageEditor:'#wp-chatbot-editor', 2787 messageContainer:'#wp-chatbot-messages-container', 2788 messageWrapper:'.wp-chatbot-messages-wrapper', 2789 botContainer:'.wp-chatbot-ball-inner', 2790 messageLastChild:'#wp-chatbot-messages-container li:last', 2791 messageLastBot:'#wp-chatbot-messages-container .wp-chatbot-msg:last .wp-chatbot-paragraph', 2792 preLoadingTime:0, 2793 wildcardsShowTime:5000, 2794 } 2795 2796 document.addEventListener("click", function(e) { 2797 // Toggle share menu 2798 if (e.target.closest(".share-toggle")) { 2799 e.preventDefault(); 2800 let menu = e.target.closest(".qcld-share").querySelector(".share-menu"); 2801 menu.style.display = menu.style.display === "none" ? "block" : "none"; 2802 } 2803 2804 // Find message content dynamically 2805 let msgItem = e.target.closest(".wp-chatbot-msg"); 2806 if (!msgItem) return; 2807 2808 let msgContent = msgItem.querySelector(".wp-chatbot-paragraph"); 2809 if (!msgContent) return; 2810 2811 // Extract plain text 2812 let msgText = msgContent.innerText.trim(); 2813 let shareSite = window.location.origin; // Get the site URL dynamically (e.g., "https://www.example.com") 2814 // Ensure a trailing slash if it's meant to represent the root of the site 2815 if (!shareSite.endsWith('/')) { 2816 shareSite += '/'; 2817 } 2818 let fullMsg = `${msgText}\n-- ${shareSite}`; 2819 let encodedMsg = encodeURIComponent(fullMsg); 2820 2821 // Facebook (requires App ID) 2822 if (e.target.closest(".share-fb")) { 2823 e.preventDefault(); 2824 2825 // You must include a URL even if you're just sharing text 2826 const shareURL = encodeURIComponent(window.location.href); // or your chatbot page URL 2827 const fbShareURL = "https://www.facebook.com/sharer/sharer.php?u=" + shareURL + ""e=" + encodedMsg; 2828 2829 window.open(fbShareURL, "_blank", "width=600,height=400"); 2830 } 2831 2832 // WhatsApp 2833 if (e.target.closest(".share-wa")) { 2834 e.preventDefault(); 2835 window.open("https://wa.me/?text=" + encodedMsg, "_blank"); 2836 } 2837 2838 // X (Twitter) 2839 if (e.target.closest(".share-x")) { 2840 e.preventDefault(); 2841 window.open("https://twitter.com/intent/tweet?text=" + encodedMsg, "_blank"); 2842 } 2843 2844 // Email 2845 if (e.target.closest(".share-email")) { 2846 e.preventDefault(); 2847 window.location.href = "mailto:?subject=Chatbot Message&body=" + encodedMsg; 2848 } 2849}); 2850jQuery(document).ready(function($) { 2851 2852 let reportedMessage = ""; 2853 let modalElements = {}; // Store references to modal elements 2854 let isModalInitialized = false; // Flag to prevent re-attaching listeners 2855 2856 /** 2857 * Initializes the report modal by finding its elements and attaching event listeners. 2858 * This function is designed to be called only once, the first time the report icon is clicked, 2859 * to ensure all DOM elements are available. 2860 * @returns {boolean} True if initialization was successful, false otherwise. 2861 */ 2862 function setupReportModal() { 2863 if (isModalInitialized) { 2864 return true; // Already initialized 2865 } 2866 2867 const modal = document.getElementById("wpbot-report-modal"); 2868 const emailInput = document.getElementById("wpbot-report-email"); 2869 const textInput = document.getElementById("wpbot-report-text"); 2870 const cancelBtn = document.getElementById("wpbot-report-cancel"); 2871 const reportForm = document.getElementById("wpbot-report-form"); 2872 2873 if (!modal || !emailInput || !textInput || !cancelBtn || !reportForm) { 2874 console.error("â One or more modal elements missing in DOM. Cannot initialize report modal."); 2875 return false; // Initialization failed 2876 } 2877 2878 // Store references to the elements 2879 modalElements = { modal, emailInput, textInput, cancelBtn, reportForm }; 2880 2881 // Attach event listener for the cancel button 2882 modalElements.cancelBtn.addEventListener("click", function() { 2883 modalElements.modal.style.display = "none"; 2884 });
2885 2886 // Attach event listener for the form submission 2887 modalElements.reportForm.addEventListener("submit", function(e) { 2888 e.preventDefault(); 2889 2890 let email = modalElements.emailInput.value.trim(); 2891 let reportText = modalElements.textInput.value.trim(); 2892 2893 if (!email || !reportText) { 2894 alert("Please fill in both fields."); 2895 return; 2896 } 2897 2898 // Save email to localStorage 2899 localStorage.setItem("shopperemail", email); 2900 2901 // Build meta info for the report 2902 let meta = "Source URL: " + window.location.href + " | User Agent: " + navigator.userAgent; 2903 2904 // Send report via AJAX 2905 $.post(wp_chatbot_obj.ajax_url, { 2906 action: "wpbot_save_report", 2907 user_id: globalwpw.settings.obj.current_user_id, 2908 conversation_id: 3, 2909 message: reportedMessage, // Use the message captured when the icon was clicked 2910 report_text: reportText, 2911 email: email, 2912 meta_info: meta 2913 }, function(response) { 2914 if (response.success) { 2915 console.log("Report sent successfully."); 2916 // The original line `jQuery(e.target.closest(".fa fa-commenting-o")).addClass("submitted");` 2917 // was incorrect as `e.target` here refers to the form, not the original icon. 2918 // To mark the icon, a reference to it would need to be stored when it was clicked. 2919 } else { 2920 console.log("Failed to send report."); 2921 } 2922 modalElements.modal.style.display = "none"; // Hide modal after submission 2923 }); 2924 }); 2925 2926 isModalInitialized = true; // Mark as initialized 2927 return true; // Initialization successful 2928 } 2929 2930 // Event listener for clicks on the document to detect report icon clicks 2931 document.addEventListener("click", function(e) { 2932 if (e.target.closest(".fa-commenting-o")) { 2933 e.preventDefault(); 2934 console.log("Report icon clicked"); 2935 2936 // Attempt to initialize the modal elements and listeners if not already done. 2937 // This ensures elements are looked up only when needed, making it more robust 2938 // against timing issues if the modal HTML is loaded asynchronously or late. 2939 if (!setupReportModal()) { 2940 return; // If initialization failed (elements not found), stop here. 2941 } 2942 2943 // Now that we are sure modal elements are available, proceed to open the modal. 2944 let msgItem = e.target.closest(".wp-chatbot-msg"); 2945 if (msgItem) { 2946 reportedMessage = msgItem.querySelector(".wp-chatbot-paragraph").innerText.trim(); 2947 } else { 2948 reportedMessage = ""; // Fallback if message item not found 2949 } 2950 2951 // Prefill email from localStorage if available 2952 let shopperEmail = localStorage.getItem("shopperemail"); 2953 modalElements.emailInput.value = shopperEmail ? shopperEmail : ""; 2954 2955 // Clear previous report text 2956 modalElements.textInput.value = ""; 2957 2958 // Display the modal 2959 modalElements.modal.style.display = "block"; 2960 } 2961 }); 2962}); 2963jQuery(document).on('click', '.qc_wpbot_chat_link', function (e) { 2964 console.log("Chat link clicked"); 2965 e.preventDefault(); 2966 jQuery("#wp-chatbot-ball").trigger("click"); 2967 jQuery("#wp-chatbot-chat-container").show(); 2968}); 2969document.addEventListener("click", function (e) { 2970 const likeIcon = e.target.closest(".dashicons-thumbs-up"); 2971 const dislikeIcon = e.target.closest(".dashicons-thumbs-down"); 2972 2973 if (!likeIcon && !dislikeIcon) return; // only handle like/dislike clicks 2974 e.preventDefault(); 2975 2976 const msgItem = e.target.closest(".wp-chatbot-msg"); 2977 const feedbackContainer = jQuery(msgItem).find(".qcld-like-dislike-icon"); 2978 const likeAnchor = jQuery(msgItem).find(".dashicons-thumbs-up").parent("a"); 2979 const dislikeAnchor = jQuery(msgItem).find(".dashicons-thumbs-down").parent("a"); 2980 2981 let feedbackType = ""; 2982 let isToggleOff = false; 2983 2984 if (likeIcon) { 2985 // If like is already active â toggle it off 2986 if (likeAnchor.hasClass("liked")) { 2987 likeAnchor.removeClass("liked"); 2988 likeIcon.classList.remove("liked"); 2989 isToggleOff = true; 2990 } else { 2991 // Activate like, deactivate dislike 2992 likeAnchor.addClass("liked"); 2993 likeIcon.classList.add("liked"); 2994 dislikeAnchor.removeClass("disliked"); 2995 jQuery(msgItem).find(".dashicons-thumbs-down").removeClass("disliked"); 2996 feedbackType = "like"; 2997 } 2998 } else if (dislikeIcon) { 2999 // If dislike is already active â toggle it off 3000 if (dislikeAnchor.hasClass("disliked")) { 3001 dislikeAnchor.removeClass("disliked"); 3002 dislikeIcon.classList.remove("disliked"); 3003 isToggleOff = true; 3004 } else { 3005 // Activate dislike, deactivate like 3006 dislikeAnchor.addClass("disliked"); 3007 dislikeIcon.classList.add("disliked"); 3008 likeAnchor.removeClass("liked"); 3009 jQuery(msgItem).find(".fa-thumbs-o-up").removeClass("liked"); 3010 feedbackType = "dislike"; 3011 } 3012 } 3013 3014 // ð¹ Only send feedback if toggled ON 3015 if (!isToggleOff && feedbackType) {
3016 let message = msgItem.querySelector(".wp-chatbot-paragraph").innerText.trim(); 3017 let meta = 3018 "Source URL: " + 3019 window.location.href + 3020 " | User Agent: " + 3021 navigator.userAgent; 3022 3023 jQuery.post( 3024 wp_chatbot_obj.ajax_url, 3025 { 3026 action: "wpbot_save_feedback", 3027 user_id: globalwpw.settings.obj.current_user_id, 3028 conversation_id: 3, 3029 message: message, 3030 feedback: feedbackType, 3031 meta_info: meta, 3032 }, 3033 function (response) { 3034 if (response.success) { 3035 console.log("Feedback saved:", feedbackType); 3036 } else { 3037 console.log("Failed to save feedback."); 3038 } 3039 } 3040 ); 3041 } else { 3042 console.log("Feedback toggled off, not saving."); 3043 } 3044}); 3045 3046// --------------------------------------------------------------------------- 3047// Streaming helpers 3048// --------------------------------------------------------------------------- 3049 3050function qcldInlineMarkdown(text) { 3051 text = text.replace(/`([^`]+)`/g, '<code>$1</code>'); 3052 text = text.replace(/\*\*([^*]+)\*\*/g, '<strong>$1</strong>'); 3053 text = text.replace(/__([^_]+)__/g, '<strong>$1</strong>'); 3054 text = text.replace(/\*([^*\n]+)\*/g, '<em>$1</em>'); 3055 text = text.replace(/_([^_\n]+)_/g, '<em>$1</em>'); 3056 text = text.replace(/\[([^\]]+)\]\((https?:\/\/[^\s)]+)\)/g, 3057 '<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'); 3058 return text; 3059} 3060 3061function qcldParseMarkdown(text) { 3062 if (!text) { return ''; } 3063 var lines = text.split('\n'); 3064 var html = ''; 3065 var inCode = false; 3066 var inUL = false; 3067 var inOL = false; 3068 var codeLines = []; 3069 3070 function closeList() { 3071 if (inUL) { html += '</ul>'; inUL = false; } 3072 if (inOL) { html += '</ol>'; inOL = false; } 3073 } 3074 3075 for (var i = 0; i < lines.length; i++) { 3076 var line = lines[i]; 3077 3078 // Fenced code block toggle 3079 if (/^```/.test(line)) { 3080 if (inCode) { 3081 html += '<pre><code>' + codeLines.join('\n').replace(/</g,'<').replace(/>/g,'>') + '</code></pre>'; 3082 codeLines = []; 3083 inCode = false; 3084 } else { 3085 closeList(); 3086 inCode = true; 3087 } 3088 continue; 3089 } 3090 if (inCode) { codeLines.push(line); continue; } 3091 3092 // Headings 3093 var hm = line.match(/^(#{1,6})\s+(.*)/); 3094 if (hm) { 3095 closeList(); 3096 var lvl = hm[1].length; 3097 html += '<h' + lvl + '>' + qcldInlineMarkdown(hm[2]) + '</h' + lvl + '>'; 3098 continue; 3099 } 3100 3101 // Horizontal rule 3102 if (/^---+$/.test(line.trim())) { 3103 closeList(); 3104 html += '<hr>'; 3105 continue; 3106 } 3107 3108 // Unordered list 3109 var ulm = line.match(/^\s*[-*+]\s+(.*)/); 3110 if (ulm) { 3111 if (inOL) { html += '</ol>'; inOL = false; } 3112 if (!inUL) { html += '<ul>'; inUL = true; } 3113 html += '<li>' + qcldInlineMarkdown(ulm[1]) + '</li>'; 3114 continue; 3115 } 3116 3117 // Ordered list 3118 var olm = line.match(/^\s*\d+\.\s+(.*)/); 3119 if (olm) { 3120 if (inUL) { html += '</ul>'; inUL = false; } 3121 if (!inOL) { html += '<ol>'; inOL = true; } 3122 html += '<li>' + qcldInlineMarkdown(olm[1]) + '</li>'; 3123 continue; 3124 } 3125 3126 // Blank line 3127 if (line.trim() === '') { 3128 closeList(); 3129 html += '<br>'; 3130 continue; 3131 } 3132 3133 // Normal line 3134 closeList(); 3135 html += qcldInlineMarkdown(line) + '<br>'; 3136 } 3137 3138 if (inCode) { html += '<pre><code>' + codeLines.join('\n') + '</code></pre>'; } 3139 closeList(); 3140 return html; 3141} 3142 3143function qcldTypeCharacterByCharacter($target, text, speed, onComplete) { 3144 speed = speed || 10; 3145 onComplete = onComplete || function(){}; 3146 3147 var i = 0; 3148 function type() { 3149 if (i < text.length) { 3150 $target.append(document.createTextNode(text.charAt(i))); 3151 i++; 3152 setTimeout(type, speed); 3153 } else { 3154 onComplete(); 3155 } 3156 } 3157 type(); 3158} 3159 3160function qcldStreamOpenAI(dataObj) { 3161 fetch(qcld_chatbot_obj.stream_endpoint, { 3162 method: 'POST', 3163 headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, 3164 body: new URLSearchParams(dataObj) 3165 }) 3166 .then(function(response) { 3167 if (!response.ok || !response.body) { 3168 throw new Error('Network response was not OK or empty body'); 3169 } 3170 3171 var reader = response.body.getReader(); 3172 var decoder = new TextDecoder('utf-8'); 3173 var buffer = ''; 3174 var queue = []; 3175 var isTyping = false; 3176 var streamEnded = false; 3177 var msgBuffer = ''; 3178 3179 function finalize() { 3180 // Replace raw typed text with markdown-formatted HTML 3181 var $para = jQuery('.wp-chatbot-msg').last().find('.wp-chatbot-paragraph'); 3182 if (msgBuffer.trim()) { 3183 $para.html(qcldParseMarkdown(msgBuffer)); 3184 } 3185 jQuery(globalwpw.settings.messageContainer) 3186 .find('.wp-chatbot-msg:last .qcld-like-dislike-icon') 3187 .css('display', 'block'); 3188 if (globalwpw.settings.obj.qcld_disable_repited_startmenu != '1') { 3189 wpwMsg.single_nobg( 3190 '<span class="qcld-chatbot-wildcard qcld_back_to_start" data-wildcart="back">' + 3191 wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + 3192 '</span>' 3193 ); 3194 } 3195 setTimeout(function() { 3196 jQuery(globalwpw.settings.botContainer) 3197 .stop(true) 3198 .animate({ scrollTop: jQuery(globalwpw.settings.botContainer)[0].scrollHeight }, 400); 3199 }, 150); 3200 wpwKits.scrollTo(); 3201 } 3202 3203 function processQueue() { 3204 if (isTyping || queue.length === 0) { 3205 if (streamEnded && !isTyping && queue.length === 0) { 3206 finalize(); 3207 } 3208 return; 3209 } 3210 3211 isTyping = true; 3212 var nextChunk = queue.shift(); 3213 msgBuffer += nextChunk; 3214 3215 var $para = jQuery('.wp-chatbot-msg').last().find('.wp-chatbot-paragraph'); 3216 if ($para.length) { 3217 $para.find('.wp-chatbot-comment-loader').remove(); 3218 var $span = jQuery('<span>'); 3219 $para.append($span); 3220 qcldTypeCharacterByCharacter($span, nextChunk, 10, function() { 3221 isTyping = false; 3222 processQueue(); 3223 wpwKits.scrollTo(); 3224 }); 3225 } else { 3226 isTyping = false; 3227 processQueue(); 3228 } 3229 } 3230 3231 function read() { 3232 reader.read().then(function(result) { 3233 if (result.done) { return; } 3234 3235 buffer += decoder.decode(result.value, { stream: true });
3236 var lines = buffer.split('\n'); 3237 buffer = lines.pop(); 3238 3239 for (var i = 0; i < lines.length; i++) { 3240 var line = lines[i].trim(); 3241 if (!line) { continue; } 3242 if (line.indexOf('data:') === 0) { 3243 var jsonStr = line.replace(/^data:\s*/, ''); 3244 if (jsonStr === '[DONE]') { 3245 streamEnded = true; 3246 if (!isTyping && queue.length === 0) { finalize(); } 3247 return; 3248 } 3249 try { 3250 var parsed = JSON.parse(jsonStr); 3251 var content = ''; 3252 if (parsed.choices && parsed.choices[0] && parsed.choices[0].delta) { 3253 content = parsed.choices[0].delta.content || ''; 3254 } else if (parsed.delta && parsed.delta.content) { 3255 content = parsed.delta.content; 3256 } 3257 if (content) { 3258 queue.push(content); 3259 processQueue(); 3260 wpwKits.scrollTo(); 3261 } 3262 } catch(e) { 3263 console.warn('Streaming parse error:', e, jsonStr); 3264 } 3265 } 3266 } 3267 read(); 3268 }).catch(function(err) { console.error('Stream read error:', err); }); 3269 } 3270 3271 read(); 3272 }) 3273 .catch(function(err) { console.error('Stream fetch error:', err); }); 3274} 3275 3276})(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.