PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 5.2.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v5.2.2
8.7.8 8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 All 534 releases
← All changes | functions.php +280 -210 8.6.85.2.2 View file →
@@ -3,48 +3,11 @@
3 3 * @param $type
4 4 * Display wpwBot Icon ball
5 5 */
6 6 if (!defined('ABSPATH')) exit; // Exit if accessed directly
7 -
8 -
9 -function qcld_custom_search_form( $form ) {
10 - // Add a hidden input to limit search to 'product' post type
11 - if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
12 - $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
13 - } else if (get_option('wp_chatbot_agent_image') != "custom-agent.png") {
14 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
15 - } else {
16 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
17 - }
18 - $hidden_field = '<a class="wp-chatbot qc_wpbot_chat_link" id="wp-chatbot-search-btn" data-search-type="product" data-search-term="" style="max-height: 50px; margin-left: 10px;padding: 0 !important;position: absolute;top: -9px;right: -60px;"><img src="'. esc_url($wp_chatbot_custom_agent_path) .'" alt=""></a>';
19 - $block_content = str_replace( '</form>', $hidden_field . '</form>', $form );
20 - return $block_content;
21 -}
22 -if(get_option('wpbot_enable_on_search') == 1 && (get_option('disable_floating_button') != '1') && get_option('disable_wp_chatbot') != 1 ){
23 - add_filter( 'get_search_form', 'qcld_custom_search_form' );
24 - add_filter( 'render_block_core/search', 'qcld_modify_gutenberg_search_block', 10, 2 );
25 -}
26 -
27 -
28 -function qcld_modify_gutenberg_search_block( $block_content, $block ) {
29 - // Add a hidden input to limit search to 'product' post type
30 - if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
31 - $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
32 - } else if (get_option('wp_chatbot_agent_image') != "custom-agent.png") {
33 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
34 - } else {
35 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
36 - }
37 - $hidden_field = '<button type="button" class="wp-chatbot qc_wpbot_chat_link" id="wp-chatbot-search-btn" data-search-type="product" data-search-term="" style="max-height: 50px; margin-left: 10px;padding: 0 !important"><img src="'. esc_url($wp_chatbot_custom_agent_path) .'" alt=""></button>';
38 - // Inject the hidden field before the closing </form> tag
39 - $block_content = str_replace( '</div></form>', $hidden_field . '</div></form>', $block_content );
40 - return $block_content;
41 -}
42 -if(get_option('disable_floating_button') != '1'){
43 - add_action('wp_footer', 'wp_chatbot_load_footer_html');
44 -}
45 -add_action( 'admin_footer', 'qcld_style_for_hide_iframe');
46 -function qcld_style_for_hide_iframe(){
7 +add_action('wp_footer', 'wp_chatbot_load_footer_html');
8 +add_action( 'admin_footer', 'qc_style_for_hide_iframe');
9 +function qc_style_for_hide_iframe(){
47 10 ?>
48 11 <script>
49 12 jQuery( document ).ready(function() {
50 13 setInterval(function(){
@@ -64,10 +27,9 @@
64 27
65 28 ?>
66 29 <style>
67 30 <?php if(get_option('wp_chatbot_custom_css')!="") {
68 -
69 - echo wp_strip_all_tags( get_option('wp_chatbot_custom_css') );// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
31 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
70 32 }
71 33 ?>
72 34 </style>
73 35
@@ -92,33 +54,33 @@
92 54 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
93 55 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
94 56 // }
95 57 ?>
96 - <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>" style="<?php if(get_option('disable_floating_button') == '1'){ echo 'display:none';} ?>">
58 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
97 59 <div id="wp-chatbot-integration-container">
98 60 <div class="wp-chatbot-integration-button-container">
99 61 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
100 62 <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
101 - class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'chatbot'); ?>"> </span></a>
63 + class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'wpchatbot'); ?>"> </span></a>
102 64 <?php } ?>
103 65 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
104 66 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
105 67 target="_blank"><span class="intergration-whats"
106 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
68 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
107 69 <?php } ?>
108 70 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
109 71 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
110 72 target="_blank"><span class="intergration-viber"
111 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
73 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
112 74 <?php } ?>
113 75 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
114 76 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
115 77 class="intergration-phone"
116 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
78 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
117 79 <?php } ?>
118 80 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
119 81 <a href="<?php echo esc_url(get_option('qlcd_wp_chatbot_weblink')); ?>" target="_blank"><span
120 - class="intergration-weblink" title="<?php esc_html_e('Web Link', 'chatbot'); ?>"></span></a>
82 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
121 83 <?php } ?>
122 84 </div>
123 85 </div>
124 86 <?php
@@ -131,9 +93,9 @@
131 93 }
132 94 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
133 95 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
134 96 } else {
135 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
97 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
136 98 }
137 99 ?>
138 100 <?php
139 101 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -140,9 +102,9 @@
140 102 ?>
141 103 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
142 104 <div class="wp-chatbot-notification-controller">
143 105 <span class="wp-chatbot-notification-close">
144 - <?php esc_html_e('X', 'chatbot'); ?>
106 + <?php esc_html_e('X', 'wpchatbot'); ?>
145 107 </span>
146 108 </div>
147 109 <?php
148 110 $testingTip="";
@@ -155,9 +117,9 @@
155 117 }
156 118 ?>
157 119 <div class="wp-chatbot-notification-agent-profile">
158 120 <div class="wp-chatbot-notification-widget-avatar" ><img
159 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
121 + src="<?php echo esc_attr($wp_chatbot_custom_agent_path); ?>" alt=""></div>
160 122 <div class="wp-chatbot-notification-welcome"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome')))) . ' <strong>' . esc_html(get_option('qlcd_wp_chatbot_host')) . '</strong>'; ?></div>
161 123 </div>
162 124 <?php
163 125 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -230,11 +192,11 @@
230 192 </div>
231 193
232 194 <?php
233 195
234 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
196 + if ( get_transient( 'bot_clear_cache' ) ) {
235 197 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
236 - delete_transient( 'qcld_bot_clear_cache' );
198 + delete_transient( 'bot_clear_cache' );
237 199 }
238 200
239 201 }else{
240 202 ?>
@@ -304,9 +266,9 @@
304 266 return $wp_chatbot_load;
305 267 }
306 268 //checking Devices
307 269 function wp_chatbot_is_mobile(){
308 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
270 + $useragent = $_SERVER['HTTP_USER_AGENT'];
309 271 if (preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $useragent) || preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i', substr($useragent, 0, 4))) {
310 272 return true;
311 273 } else {
312 274 return false;
@@ -313,10 +275,10 @@
313 275 }
314 276 }
315 277 //Checking wpwbot opening hour
316 278 function wp_chatbot_check_opening_hours(){
317 - $curent_day=strtolower(gmdate('l',strtotime(current_time( 'mysql' ))));
318 - $current_time=gmdate('H:i',strtotime(current_time( 'mysql')));
279 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
280 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
319 281 $is_wpwbot_open =false;
320 282 if(get_option('wpwbot_hours')) {
321 283 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
322 284 if (isset($wpwbot_times[$curent_day])) {
@@ -331,8 +293,183 @@
331 293 }
332 294 }
333 295 return $is_wpwbot_open;
334 296 }
297 +//wpwBot shortcode.
298 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
299 +function wp_chatbot_short_code($atts = []){
300 + ob_start();
301 + wp_chatbot_shortcode_dom($atts);
302 + $content = ob_get_clean();
303 + return $content;
304 +}
305 +function wp_chatbot_shortcode_dom($atts){
306 + //Defaults & Set Parameters for shortcode
307 + extract(shortcode_atts(
308 + array(
309 + 'template' => '01',
310 + ), $atts
311 + ));
312 + ?>
313 + <style>
314 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
315 + </style>
316 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
317 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
318 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
319 + } else {
320 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
321 + }
322 + ?>
323 + <style>
324 + .wp-chatbot-container {
325 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
326 + }
327 + </style>
328 +<?php }
329 + $wp_chatbot_enable_rtl = "";
330 + if (get_option('enable_wp_chatbot_rtl')) {
331 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
332 + }
333 + ?>
334 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
335 + <?php
336 + //Get wpcommerce cart
337 +
338 + $qcld_wb_chatbot_theme = 'template-' . $template;
339 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
340 + wp_register_style('qcld-wp-chatbot-style', plugins_url(basename(plugin_dir_path(__FILE__)) . '/templates/' . $qcld_wb_chatbot_theme . '/style.css', basename(__FILE__)), '', QCLD_wpCHATBOT_VERSION, 'screen');
341 + wp_enqueue_style('qcld-wp-chatbot-style');
342 + }
343 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
344 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
345 + } else {
346 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
347 + }
348 + ?>
349 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
350 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
351 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
352 + <?php
353 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
354 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
355 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
356 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
357 + } else {
358 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
359 + }
360 + ?>
361 + <div class="wp-chatbot-notification-agent-profile">
362 + <div class="wp-chatbot-notification-widget-avatar"><img
363 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
364 + <div class="wp-chatbot-notification-welcome"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome')))) . ' <strong>' . esc_html(get_option('qlcd_wp_chatbot_host')) . '</strong>'; ?></div>
365 + </div>
366 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
367 + </div>
368 + <!--wp-chatbot-board-container-->
369 + <div id="wp-chatbot-ball" class="">
370 + <div class="wp-chatbot-ball">
371 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
372 + <?php
373 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
374 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
375 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
376 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
377 + } else {
378 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
379 + }
380 + ?>
381 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
382 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
383 + </div>
384 + <!-- wp-chatbot-board-container-->
385 + <?php endif; ?>
386 + <!--container-->
387 + <!--wp-chatbot-ball-wrapper-->
388 + </div>
389 +<?php } ?>
390 +<?php
391 +//Create shortcode for wpwBot for pages.
392 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
393 +function wp_chatbot_page_short_code(){
394 + ob_start();
395 + wp_chatbot_page_dom();
396 + $content = ob_get_clean();
397 + return $content;
398 +}
399 +function wp_chatbot_page_dom(){ ?>
400 + <style>
401 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
402 + </style>
403 + <?php
404 + //Get wpcommerce cart
405 +
406 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
407 + $wp_chatbot_enable_rtl = "";
408 + if (get_option('enable_wp_chatbot_rtl') == 1) {
409 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
410 + }
411 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
412 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
413 + } else {
414 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
415 + }
416 +}
417 +//shortcode for wpWBot mobile app
418 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
419 +function wp_chatbot_mobile_app_short_code(){ ?>
420 + <style>
421 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
422 + </style>
423 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
424 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
425 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
426 + } else {
427 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
428 + }
429 + ?>
430 + <style>
431 + .wp-chatbot-container {
432 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
433 + }
434 + </style>
435 +<?php }
436 + $wp_chatbot_enable_rtl = "";
437 + if (get_option('enable_wp_chatbot_rtl') == '1') {
438 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
439 + }
440 + ?>
441 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
442 + <?php
443 + // keep traking app template.
444 + $template_app = 'yes';
445 + //Get wpcommerce cart
446 +
447 + //Handling shortcode enqeue and remove features part.
448 + define('wpCOMMERCE', true);
449 + wp_enqueue_script('jquery');
450 +
451 +
452 + wp_enqueue_script('wc-address-i18n');
453 + wp_enqueue_script('wc-country-select');
454 +
455 +
456 + // add the action
457 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
458 + if (!isset($_COOKIE['from_app'])) {
459 + setcookie('from_app', 'yes', time() + 3600);
460 + }
461 + }
462 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
463 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
464 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
465 + } else {
466 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
467 + }
468 + ?>
469 + </div>
470 + <?php
471 +}
335 472
336 473 /**
337 474 * wpwBot Search keyword product
338 475 */
@@ -338,16 +475,9 @@
338 475 */
339 476 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
340 477 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
341 478 function qcld_wb_chatbot_keyword(){
342 - // Verify nonce for security
343 - $nonce = isset($_POST['security']) ? sanitize_text_field(wp_unslash($_POST['security'])) : (isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '');
344 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) && ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
345 - wp_send_json_error( array( 'status' => 'fail', 'message' => 'Security check failed.' ) );
346 - wp_die();
347 - }
348 -
349 - $keyword = sanitize_text_field(wp_unslash($_POST['keyword']));
479 + $keyword = sanitize_text_field($_POST['keyword']);
350 480 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
351 481 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
352 482 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
353 483 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -393,9 +523,9 @@
393 523 endwhile;
394 524 wp_reset_postdata();
395 525 $html .= '</ul>';
396 526 if ($total_product_num > $product_per_page && $product_per_page > 0 ) {
397 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . esc_attr($keyword) . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
527 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $keyword . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
398 528 }
399 529 }
400 530 $html .= '</div>';
401 531 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -423,9 +553,9 @@
423 553 }
424 554 }
425 555 $html .= '</ul>';
426 556 if ($total_product_num > $product_per_page && $product_per_page > 0) {
427 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . esc_attr($more_product_ids) . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
557 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $more_product_ids . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
428 558 }
429 559 }
430 560 $html .= '</div>';
431 561 }
@@ -440,15 +570,16 @@
440 570 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
441 571 function qcld_wb_chatbot_category(){
442 572 $category_type="common";
443 573 if (get_option('wp_chatbot_show_parent_category') != "") {
444 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
574 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
575 +
445 576 } else {
446 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
577 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
447 578 }
448 579 $html = "";
449 580 foreach ($terms as $term) {
450 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
581 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
451 582 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
452 583 $category_type="hasChilds";
453 584 }
454 585 $html .= '<span class="qcld-chatbot-product-category" data-category-type="' . $category_type . '" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
@@ -461,10 +592,10 @@
461 592 */
462 593 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
463 594 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
464 595 function qcld_wb_chatbot_sub_category(){
465 - $parent_id = intval( wp_unslash( $_POST['parent_id'] ) );
466 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all' ) );
596 + $parent_id = stripslashes($_POST['parent_id']);
597 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
467 598 $html = "";
468 599 foreach ($terms as $term) {
469 600 $html .= '<span class="qcld-chatbot-product-category" data-category-type="common" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
470 601 }
@@ -476,9 +607,9 @@
476 607 */
477 608 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
478 609 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
479 610 function qcld_wb_chatbot_category_products(){
480 - $category_id = intval( wp_unslash( $_POST['category'] ) );
611 + $category_id = stripslashes($_POST['category']);
481 612 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
482 613 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
483 614 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
484 615 //Merging all query together.
@@ -715,11 +846,11 @@
715 846 //load more
716 847 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
717 848 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
718 849 function qcld_wb_chatbot_load_more(){
719 - $offset = intval( wp_unslash( $_POST['offset'] ) );
720 - $search_type = sanitize_text_field( wp_unslash( $_POST['search_type'] ) );
721 - $search_term = sanitize_text_field( wp_unslash( $_POST['search_term'] ) );
850 + $offset = stripslashes($_POST['offset']);
851 + $search_type = stripslashes($_POST['search_type']);
852 + $search_term = stripslashes($_POST['search_term']);
722 853 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
723 854 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
724 855 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
725 856 $next_offset = intval($product_per_page + $offset);
@@ -850,9 +981,9 @@
850 981 //product details
851 982 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
852 983 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
853 984 function qcld_wb_chatbot_product_details(){
854 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
985 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
855 986 //Tracking product view from chat board
856 987 wp_chatbot_view_track_product_by_id($product_id);
857 988 //wpcommerce product factory
858 989 $wc_pf = new WC_Product_Factory();
@@ -880,9 +1011,9 @@
880 1011 }
881 1012 }
882 1013 $product_image .= '</ul></div>';
883 1014 $product_price = '<p class="wp-chatbot-product-price" id="wp-chatbot-product-price">' . $product->get_price_html() . '</p>';
884 - $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'chatbot') . ' : ' . $product->get_sku() . '</p>';
1015 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
885 1016 //if ( $product->is_in_stock() || $product->is_purchasable() )
886 1017 //Handle variable product start
887 1018 $variations = "";
888 1019 $add_cart_button = "";
@@ -925,11 +1056,10 @@
925 1056 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
926 1057 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
927 1058 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
928 1059 foreach ($values as $value) {
929 - $attr_key = 'attribute_' . sanitize_title( $name );
930 - if ( isset( $_REQUEST[ $attr_key ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
931 - $selected_value = sanitize_text_field( wp_unslash( $_REQUEST[ $attr_key ] ) );
1060 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1061 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
932 1062 } else {
933 1063 $selected_value = '';
934 1064 }
935 1065 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -950,15 +1080,15 @@
950 1080 $response = array('title' => $product_title, 'description' => $product_desc, 'image' => $product_image, 'price' => $product_price, 'sku' => $product_sku, 'quantity' => $product_quantity, 'buttton' => $add_cart_button, 'variation' => $variations, 'type' => $product_type, 'debug' => $debug);
951 1081 wp_send_json($response);
952 1082 }
953 1083 //Add to cart for variable product.
954 -add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
955 -add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
956 -function qcld_variable_add_to_cart(){
957 - $product_id = intval( wp_unslash( $_POST['p_id'] ) );
958 - $quantity = intval( wp_unslash( $_POST['quantity'] ) );
959 - $variations_id = intval( wp_unslash( $_POST['variations_id'] ) );
960 - $attrs = isset( $_POST['attributes'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $_POST['attributes'] ) ) : array();
1084 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1085 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1086 +function qcld_wb_chatbot_variable_add_to_cart(){
1087 + $product_id = stripslashes($_POST['p_id']);
1088 + $quantity = stripslashes($_POST['quantity']);
1089 + $variations_id = stripslashes($_POST['variations_id']);
1090 + $attrs = stripslashes($_POST['attributes']);
961 1091 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
962 1092 $attributes = array();
963 1093 foreach ($attrs as $attr) {
964 1094 $single = explode("#", $attr);
@@ -978,10 +1108,10 @@
978 1108 //Add to cart for simple product.
979 1109 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
980 1110 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
981 1111 function qcld_wb_chatbot_add_to_cart(){
982 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
983 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1112 + $product_id = stripslashes($_POST['product_id']);
1113 + $product_quantity = stripslashes($_POST['quantity']);
984 1114 global $wpcommerce;
985 1115 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
986 1116 if ($result != false) {
987 1117 wp_send_json('simple');
@@ -992,19 +1122,15 @@
992 1122 //Support part
993 1123 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
994 1124 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
995 1125 function qcld_wb_chatbot_support_email(){
996 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
997 - if ( ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
998 - wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'chatbot' ) ) );
999 - }
1000 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1001 - $email = sanitize_email(wp_unslash($_POST['email']));
1002 - $message = sanitize_text_field(wp_unslash($_POST['message']));
1126 + $name = trim(sanitize_text_field($_POST['name']));
1127 + $email = sanitize_email($_POST['email']);
1128 + $message = sanitize_text_field($_POST['message']);
1003 1129 $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1004 1130 //Extract Domain
1005 1131 $url = get_site_url();
1006 - $url = wp_parse_url($url);
1132 + $url = parse_url($url);
1007 1133 $domain = $url['host'];
1008 1134 //$admin_email = "admin@" . $domain;
1009 1135 $admin_email = sanitize_email(get_option('admin_email'));
1010 1136 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1014,8 +1140,9 @@
1014 1140 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1015 1141 }else{
1016 1142 $fromEmail = "wordpress@" . $domain;
1017 1143 }
1144 +
1018 1145 //Starting messaging and status.
1019 1146 $response['status'] = 'fail';
1020 1147 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1021 1148 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1023,14 +1150,14 @@
1023 1150 $response['status'] = 'fail';
1024 1151 } else {
1025 1152 //build email body
1026 1153 $bodyContent = "";
1027 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1028 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1029 - $bodyContent .= '<p>' . __('Email', 'chatbot') . ' : ' . $email . '</p>';
1030 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1031 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . $message . '</p>';
1032 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1154 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1155 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1156 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1157 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1158 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1159 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1033 1160 $to = $toEmail;
1034 1161 $body = $bodyContent;
1035 1162 $headers = array();
1036 1163 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1042,9 +1169,9 @@
1042 1169 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1043 1170 }
1044 1171
1045 1172 }
1046 - echo wp_json_encode($response);
1173 + echo json_encode($response);
1047 1174 die();
1048 1175 }
1049 1176 //Support Phone
1050 1177 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1049,15 +1176,14 @@
1049 1176 //Support Phone
1050 1177 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1051 1178 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1052 1179 function qcld_wb_chatbot_support_phone(){
1053 - check_ajax_referer('qcsecretbotnonceval123qc', 'nonce');
1054 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1055 - $phone =sanitize_text_field(wp_unslash($_POST['phone']));
1180 + $name = trim(sanitize_text_field($_POST['name']));
1181 + $phone =sanitize_text_field($_POST['phone']);
1056 1182 $subject = 'WPBot Support Mail Request for Call Back';
1057 1183 //Extract Domain
1058 1184 $url = get_site_url();
1059 - $url = wp_parse_url($url);
1185 + $url = parse_url($url);
1060 1186 $domain = $url['host'];
1061 1187 //$admin_email = "admin@" . $domain;
1062 1188 $admin_email = get_option('admin_email');
1063 1189 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1072,14 +1198,14 @@
1072 1198 $response['status'] = 'fail';
1073 1199 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1074 1200 //build email body
1075 1201 $bodyContent = "";
1076 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1077 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1078 - $bodyContent .= '<p>' . __('Phone', 'chatbot') . ' : ' . $phone . '</p>';
1079 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1080 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . __(' Call me at ', 'chatbot'). $phone . '</p>';
1081 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1202 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1203 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1204 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1205 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1206 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1207 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1082 1208 $to = $toEmail;
1083 1209 $body = $bodyContent;
1084 1210 $headers = array();
1085 1211 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1089,15 +1215,15 @@
1089 1215 if ($result) {
1090 1216 $response['status'] = 'success';
1091 1217 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1092 1218 }
1093 - echo wp_json_encode($response);
1219 + echo json_encode($response);
1094 1220 die();
1095 1221 }
1096 1222 // Order Status part. removed
1097 1223
1098 1224 function wpb_randmom_message_handle($items){
1099 - return $items[wp_rand(0, count($items) - 1)];
1225 + return $items[rand(0, count($items) - 1)];
1100 1226 }
1101 1227 function qcld_wb_chatbot_func_str_replace($messages = array()){
1102 1228 $refined_mesgses = array();
1103 1229 foreach ($messages as $message) {
@@ -1112,10 +1238,10 @@
1112 1238 // First check the nonce, if it fails the function will break
1113 1239 check_ajax_referer('wpwbot-order-nonce', 'security');
1114 1240 // Nonce is checked, get the POST data and sign user on
1115 1241 $info = array();
1116 - $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1117 - $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1242 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1243 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1118 1244 $info['remember'] = true;
1119 1245 $user_signon = wp_signon($info, false);
1120 1246 $response = array();
1121 1247 if (is_wp_error($user_signon)) {
@@ -1155,12 +1281,12 @@
1155 1281 if ($response['order_num'] > 0) {
1156 1282 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1157 1283 $order_html .= '<div class="wp-chatbot-orders-container">
1158 1284 <div class="wp-chatbot-orders-header">
1159 - <div class="order-id">' . __('ID', 'chatbot') . '</div>
1160 - <div class="order-date">' . __('Date', 'chatbot') . ' </div>
1161 - <div class="order-items">' . __('Items', 'chatbot') . '</div>
1162 - <div class="order-status">' . __('Status', 'chatbot') . '</div>
1285 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1286 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1287 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1288 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1163 1289 </div>';
1164 1290 foreach ($customer_orders as $order) {
1165 1291 //Formatting order summery
1166 1292 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1171,9 +1297,9 @@
1171 1297 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1172 1298 }
1173 1299 $order_html .= '<div class="wp-chatbot-orders-single">
1174 1300 <div class="order-id"> ' . $order_url . '</div>
1175 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1301 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1176 1302 <div class="order-items">';
1177 1303 $singleOrder = new WC_Order($order->ID);
1178 1304 $items = $singleOrder->get_items();
1179 1305 foreach ($items as $item) {
@@ -1273,9 +1399,9 @@
1273 1399 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1274 1400 <div class="wp-chatbot-product-summary">
1275 1401 <div class="wp-chatbot-product-table">
1276 1402 <div class="wp-chatbot-product-table-cell">
1277 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1403 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1278 1404 <div class="price">' . $product->get_price_html() . '</div>';
1279 1405 $html .= ' </div>
1280 1406 </div>
1281 1407 </div></a>
@@ -1344,9 +1470,9 @@
1344 1470 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1345 1471 <div class="wp-chatbot-product-summary">
1346 1472 <div class="wp-chatbot-product-table">
1347 1473 <div class="wp-chatbot-product-table-cell">
1348 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1474 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1349 1475 <div class="price">' . $product->get_price_html() . '</div>';
1350 1476 $html .= ' </div>
1351 1477 </div>
1352 1478 </div></a>
@@ -1356,9 +1482,9 @@
1356 1482 wp_reset_postdata();
1357 1483 $html .= '</ul></div>';
1358 1484 } else {
1359 1485 $html .= '<div class="wp-chatbot-products-area">';
1360 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1486 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1361 1487 $html .= '</div>';
1362 1488 }
1363 1489 return $html;
1364 1490 }
@@ -1520,12 +1646,11 @@
1520 1646 //Updating the cart items.
1521 1647 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1522 1648 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1523 1649 function qcld_wb_chatbot_update_cart_item_number(){
1524 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1525 1650 //getting cart items n
1526 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item_key']));
1527 - $qnty = sanitize_text_field(wp_unslash($_POST['qnty']));
1651 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1652 + $qnty = sanitize_text_field($_POST['qnty']);
1528 1653 global $wpcommerce;
1529 1654 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1530 1655 wp_send_json($result);
1531 1656 }
@@ -1532,11 +1657,10 @@
1532 1657 //Show item after removing from cart page.
1533 1658 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1534 1659 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1535 1660 function qcld_wb_chatbot_cart_item_remove(){
1536 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1537 1661 //getting cart items n
1538 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1662 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1539 1663 global $wpcommerce;
1540 1664 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1541 1665 wp_send_json($result);
1542 1666 }
@@ -1573,9 +1697,9 @@
1573 1697 $response = array('status' => $status, 'html' => $html);
1574 1698 wp_send_json($response);
1575 1699 }
1576 1700 //_dynamic_intent
1577 -function qcld_dynamic_intent(){
1701 +function qc_dynamic_intent(){
1578 1702 global $wpdb;
1579 1703 $intents = array();
1580 1704
1581 1705 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1592,10 +1716,9 @@
1592 1716
1593 1717 if(class_exists('Qcformbuilder_Forms_Admin')){
1594 1718
1595 1719
1596 - $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1597 -
1720 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1598 1721 if(!empty($results)){
1599 1722
1600 1723 foreach($results as $result){
1601 1724 $form = maybe_unserialize($result->config);
@@ -1619,10 +1742,10 @@
1619 1742 // function qcld_wb_chatbot_checkout_user_login(){
1620 1743 // // Nonce is checked, get the POST data and sign user on
1621 1744 // $info = array();
1622 1745 // //$info['nonce'] = $_POST['nonce_val'];
1623 -// $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1624 -// $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1746 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1747 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1625 1748 // $info['remember'] = true;
1626 1749 // $user_signon = wp_signon($info, false);
1627 1750 // // $response=$info;
1628 1751 // $response = array();
@@ -1663,16 +1786,15 @@
1663 1786 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1664 1787 function wp_chatbot_create_app_checkout_thankyou_page(){
1665 1788 if (get_option('wp_chatbot_app_pages') == 1) {
1666 1789 //Mobile App page create
1667 - $existing_app = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-mobile-app', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1668 - if ( ! $existing_app->have_posts() ) {
1790 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1669 1791 //post status and options
1670 1792 $app_page = array(
1671 1793 'comment_status' => 'closed',
1672 1794 'ping_status' => 'closed',
1673 1795 'post_author' => get_current_user_id(),
1674 - 'post_date' => gmdate('Y-m-d H:i:s'),
1796 + 'post_date' => date('Y-m-d H:i:s'),
1675 1797 'post_status' => 'publish',
1676 1798 'post_title' => 'wpwBot Mobile App',
1677 1799 'post_name' => 'wpwbot-mobile-app',
1678 1800 'post_type' => 'page',
@@ -1682,16 +1804,15 @@
1682 1804 //save the id in the database
1683 1805 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1684 1806 }
1685 1807 //App checkout page create
1686 - $existing_checkout = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-checkout', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1687 - if ( ! $existing_checkout->have_posts() ) {
1808 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1688 1809 //post status and options
1689 1810 $checkout_page = array(
1690 1811 'comment_status' => 'closed',
1691 1812 'ping_status' => 'closed',
1692 1813 'post_author' => get_current_user_id(),
1693 - 'post_date' => gmdate('Y-m-d H:i:s'),
1814 + 'post_date' => date('Y-m-d H:i:s'),
1694 1815 'post_status' => 'publish',
1695 1816 'post_title' => 'wpwBot App Checkout',
1696 1817 'post_name' => 'wpwbot-app-checkout',
1697 1818 'post_type' => 'page',
@@ -1701,16 +1822,15 @@
1701 1822 //save the id in the database
1702 1823 update_option('wp_chatbot_app_checkout', $app_checkout);
1703 1824 }
1704 1825 //App Order thank you page create
1705 - $existing_thankyou = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-order-thankyou', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1706 - if ( ! $existing_thankyou->have_posts() ) {
1826 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1707 1827 //post status and options
1708 1828 $thankyou_page = array(
1709 1829 'comment_status' => 'closed',
1710 1830 'ping_status' => 'closed',
1711 1831 'post_author' => get_current_user_id(),
1712 - 'post_date' => gmdate('Y-m-d H:i:s'),
1832 + 'post_date' => date('Y-m-d H:i:s'),
1713 1833 'post_status' => 'publish',
1714 1834 'post_title' => 'wpwBot App Order Thank You',
1715 1835 'post_name' => 'wpwbot-app-order-thankyou',
1716 1836 'post_type' => 'page',
@@ -1721,9 +1841,9 @@
1721 1841 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1722 1842 }
1723 1843 }
1724 1844 //Keep tracking from App by cookies
1725 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1845 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1726 1846 if (!isset($_COOKIE['from_app'])) {
1727 1847 setcookie('from_app', 'yes', (time() + 3600), '/');
1728 1848 }
1729 1849 }
@@ -1737,9 +1857,9 @@
1737 1857 global $wp;
1738 1858 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1739 1859 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1740 1860 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1741 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1861 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1742 1862 exit;
1743 1863 }
1744 1864 } else {
1745 1865 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1747,12 +1867,9 @@
1747 1867 }
1748 1868 }
1749 1869
1750 1870 function qcld_choose_random($array){
1751 - if (is_array($array) && !empty($array)) {
1752 - return $array[array_rand($array)];
1753 - }
1754 - return $array;
1871 + return $array[array_rand($array)];
1755 1872 }
1756 1873
1757 1874 //User session count
1758 1875 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1758,9 +1875,8 @@
1758 1875 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1759 1876 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1760 1877 function qcld_wb_chatbot_session_count(){
1761 1878 // Nonce is checked, get the POST data and sign user on
1762 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1763 1879 global $wpdb;
1764 1880 $wpdb->show_errors = true;
1765 1881 $tableuser = $wpdb->prefix.'wpbot_sessions';
1766 1882 $response = array();
@@ -1765,12 +1881,11 @@
1765 1881 $tableuser = $wpdb->prefix.'wpbot_sessions';
1766 1882 $response = array();
1767 1883
1768 1884
1769 - $session_exists = $wpdb->get_row($wpdb->prepare("select * from {$tableuser} where 1 and id = %d",1)); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
1770 -
1885 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1771 1886 if(empty($session_exists)){
1772 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1887 + $wpdb->insert(
1773 1888 $tableuser,
1774 1889 array(
1775 1890 'session' => 1,
1776 1891 )
@@ -1777,10 +1892,9 @@
1777 1892 );
1778 1893 }else{
1779 1894
1780 1895 $session_id = $session_exists->id;
1781 -
1782 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1896 + $wpdb->update(
1783 1897 $tableuser,
1784 1898 array(
1785 1899 'session'=>($session_exists->session+1),
1786 1900 ),
@@ -1789,9 +1903,8 @@
1789 1903 '%d',
1790 1904 ),
1791 1905 array('%d')
1792 1906 );
1793 -
1794 1907 }
1795 1908
1796 1909 wp_send_json($response);
1797 1910 }
@@ -1798,9 +1911,9 @@
1798 1911
1799 1912 /* WPBot Chat History Addon check */
1800 1913 function qcld_wpbot_is_active_chat_history(){
1801 1914
1802 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1803 1916 return 1;
1804 1917 }else{
1805 1918 return 0;
1806 1919 }
@@ -1806,9 +1919,9 @@
1806 1919 }
1807 1920
1808 1921 }
1809 1922
1810 -function qcld_wpbot_input_validation( $data ) {
1923 +function qc_wpbot_input_validation( $data ) {
1811 1924 $data = html_entity_decode($data);
1812 1925 $data = trim($data);
1813 1926 $data = stripslashes($data);
1814 1927 $data = htmlspecialchars($data);
@@ -1813,23 +1926,16 @@
1813 1926 $data = stripslashes($data);
1814 1927 $data = htmlspecialchars($data);
1815 1928 return $data;
1816 1929 }
1817 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1818 -function qcld_small_talk_import(){
1819 - if ( ! current_user_can( 'manage_options' ) ) {
1820 - wp_die();
1821 - }
1930 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1931 +function small_talk_import(){
1822 1932 global $wpdb;
1823 -
1824 1933 $table = $wpdb->prefix.'wpbot_response';
1825 -
1826 1934 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1827 -
1828 1935 foreach ($csvFile as $line) {
1829 1936 $line = str_getcsv($line, ',', '"');
1830 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1831 - $table, array(
1937 + $wpdb->insert($table, array(
1832 1938 'query' => $line[0],
1833 1939 'keyword' => $line[1],
1834 1940 'response' => $line[2],
1835 1941 'category'=> $line[3],
@@ -1836,16 +1942,12 @@
1836 1942 'intent'=> '',
1837 1943 //'lang'=> 'en_US',
1838 1944 ));
1839 1945 }
1840 -
1841 1946 $table2 = $wpdb->prefix.'wpbot_response_category';
1842 -
1843 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1844 - $table2, array(
1947 + $wpdb->insert($table2, array(
1845 1948 'name' => 'smalltalk',
1846 1949 ));
1847 -
1848 1950 update_option( 'qcld_small_talk_imported', 'yes' );
1849 1951
1850 1952 }
1851 1953 function sanitize_array( &$array ) {
@@ -1852,44 +1954,12 @@
1852 1954 if (!empty($array)) {
1853 1955 foreach ($array as &$value) {
1854 1956 if( !is_array($value) )
1855 1957 // sanitize if value is not an array
1856 - $value = sanitize_text_field( esc_html($value) );
1958 + $value = sanitize_text_field( $value );
1857 1959 else
1858 1960 // go inside this function again
1859 - sanitize_array(esc_html($value));
1961 + $this->sanitize_array($value);
1860 1962 }
1861 1963 }
1862 1964 return $array;
1863 -}
1864 -function qcld_wpbot_meta_tags() {
1865 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1866 -}
1867 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1868 -
1869 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
1870 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1871 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1872 - function qcld_change_language_from_center() {
1873 - if ( ! current_user_can( 'manage_options' ) ) {
1874 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
1875 - }
1876 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1877 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
1878 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
1879 - }
1880 - $plugin_path = plugin_dir_path( __FILE__ );
1881 - include $plugin_path . 'includes/admin/settings-fields.php';
1882 - $json_file_path = $plugin_path . 'includes/language-center.json';
1883 -
1884 - $json_string = file_get_contents( $json_file_path );
1885 - if ( isset( $_POST['language'] ) ) {
1886 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
1887 - $language_array= json_decode($json_string)->$language;
1888 - update_option( 'wp_chatbot_language_center_language', $language );
1889 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
1890 - } else {
1891 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
1892 -
1893 - }
1894 - }
1895 -}
1965 +}