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