PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 5.4.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v5.4.2
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 8.5.2 All 533 releases
← All changes | functions.php +301 -200 8.5.85.4.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,11 @@
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 + //Sanitization to be checked
32 + // phpcs:ignore
33 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
70 34 }
71 35 ?>
72 36 </style>
73 37
@@ -92,33 +56,33 @@
92 56 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
93 57 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
94 58 // }
95 59 ?>
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';} ?>">
60 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
97 61 <div id="wp-chatbot-integration-container">
98 62 <div class="wp-chatbot-integration-button-container">
99 63 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
100 64 <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>
65 + class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'wpchatbot'); ?>"> </span></a>
102 66 <?php } ?>
103 67 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
104 68 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
105 69 target="_blank"><span class="intergration-whats"
106 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
70 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
107 71 <?php } ?>
108 72 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
109 73 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
110 74 target="_blank"><span class="intergration-viber"
111 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
75 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
112 76 <?php } ?>
113 77 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
114 78 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
115 79 class="intergration-phone"
116 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
80 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
117 81 <?php } ?>
118 82 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
119 83 <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>
84 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
121 85 <?php } ?>
122 86 </div>
123 87 </div>
124 88 <?php
@@ -131,9 +95,9 @@
131 95 }
132 96 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
133 97 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
134 98 } else {
135 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
99 + echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
136 100 }
137 101 ?>
138 102 <?php
139 103 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -140,9 +104,9 @@
140 104 ?>
141 105 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
142 106 <div class="wp-chatbot-notification-controller">
143 107 <span class="wp-chatbot-notification-close">
144 - <?php esc_html_e('X', 'chatbot'); ?>
108 + <?php esc_html_e('X', 'wpchatbot'); ?>
145 109 </span>
146 110 </div>
147 111 <?php
148 112 $testingTip="";
@@ -155,9 +119,9 @@
155 119 }
156 120 ?>
157 121 <div class="wp-chatbot-notification-agent-profile">
158 122 <div class="wp-chatbot-notification-widget-avatar" ><img
159 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
123 + src="<?php echo esc_attr($wp_chatbot_custom_agent_path); ?>" alt=""></div>
160 124 <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 125 </div>
162 126 <?php
163 127 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -230,11 +194,11 @@
230 194 </div>
231 195
232 196 <?php
233 197
234 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
198 + if ( get_transient( 'bot_clear_cache' ) ) {
235 199 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
236 - delete_transient( 'qcld_bot_clear_cache' );
200 + delete_transient( 'bot_clear_cache' );
237 201 }
238 202
239 203 }else{
240 204 ?>
@@ -304,9 +268,9 @@
304 268 return $wp_chatbot_load;
305 269 }
306 270 //checking Devices
307 271 function wp_chatbot_is_mobile(){
308 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
272 + $useragent = $_SERVER['HTTP_USER_AGENT'];
309 273 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 274 return true;
311 275 } else {
312 276 return false;
@@ -313,10 +277,10 @@
313 277 }
314 278 }
315 279 //Checking wpwbot opening hour
316 280 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')));
281 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
282 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
319 283 $is_wpwbot_open =false;
320 284 if(get_option('wpwbot_hours')) {
321 285 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
322 286 if (isset($wpwbot_times[$curent_day])) {
@@ -331,8 +295,198 @@
331 295 }
332 296 }
333 297 return $is_wpwbot_open;
334 298 }
299 +//wpwBot shortcode.
300 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
301 +function wp_chatbot_short_code($atts = []){
302 + ob_start();
303 + wp_chatbot_shortcode_dom($atts);
304 + $content = ob_get_clean();
305 + return $content;
306 +}
307 +function wp_chatbot_shortcode_dom($atts){
308 + //Defaults & Set Parameters for shortcode
309 + extract(shortcode_atts(
310 + array(
311 + 'template' => '01',
312 + ), $atts
313 + ));
314 + ?>
315 + <style>
316 + <?php if(get_option('wp_chatbot_custom_css')!=""){
317 + //Sanitization to be checked
318 + // phpcs:ignore
319 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
320 + } ?>
321 + </style>
322 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
323 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
324 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
325 + } else {
326 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
327 + }
328 + ?>
329 + <style>
330 + .wp-chatbot-container {
331 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
332 + }
333 + </style>
334 +<?php }
335 + $wp_chatbot_enable_rtl = "";
336 + if (get_option('enable_wp_chatbot_rtl')) {
337 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
338 + }
339 + ?>
340 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
341 + <?php
342 + //Get wpcommerce cart
343 +
344 + $qcld_wb_chatbot_theme = 'template-' . $template;
345 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
346 + 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');
347 + wp_enqueue_style('qcld-wp-chatbot-style');
348 + }
349 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
350 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
351 + } else {
352 + echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
353 + }
354 + ?>
355 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
356 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
357 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
358 + <?php
359 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
360 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
361 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
362 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
363 + } else {
364 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
365 + }
366 + ?>
367 + <div class="wp-chatbot-notification-agent-profile">
368 + <div class="wp-chatbot-notification-widget-avatar"><img
369 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
370 + <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>
371 + </div>
372 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
373 + </div>
374 + <!--wp-chatbot-board-container-->
375 + <div id="wp-chatbot-ball" class="">
376 + <div class="wp-chatbot-ball">
377 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
378 + <?php
379 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
380 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
381 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
382 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
383 + } else {
384 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
385 + }
386 + ?>
387 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
388 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo esc_html( $cart_items_number ); ?></span>--> </div>
389 + </div>
390 + <!-- wp-chatbot-board-container-->
391 + <?php endif; ?>
392 + <!--container-->
393 + <!--wp-chatbot-ball-wrapper-->
394 + </div>
395 +<?php } ?>
396 +<?php
397 +//Create shortcode for wpwBot for pages.
398 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
399 +function wp_chatbot_page_short_code(){
400 + ob_start();
401 + wp_chatbot_page_dom();
402 + $content = ob_get_clean();
403 + return $content;
404 +}
405 +function wp_chatbot_page_dom(){ ?>
406 + <style>
407 + <?php
408 + if(get_option('wp_chatbot_custom_css')!=""){
409 + //Sanitization to be checked
410 + // phpcs:ignore
411 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
412 + } ?>
413 + </style>
414 + <?php
415 + //Get wpcommerce cart
416 +
417 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
418 + $wp_chatbot_enable_rtl = "";
419 + if (get_option('enable_wp_chatbot_rtl') == 1) {
420 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
421 + }
422 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
423 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
424 + } else {
425 + echo "<h2>" . esc_html__('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
426 + }
427 +}
428 +//shortcode for wpWBot mobile app
429 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
430 +function wp_chatbot_mobile_app_short_code(){ ?>
431 + <style>
432 + <?php
433 + if(get_option('wp_chatbot_custom_css')!=""){
434 + //Sanitization to be checked
435 + // phpcs:ignore
436 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
437 + }
438 + ?>
439 + </style>
440 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
441 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
442 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
443 + } else {
444 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
445 + }
446 + ?>
447 + <style>
448 + .wp-chatbot-container {
449 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
450 + }
451 + </style>
452 +<?php }
453 + $wp_chatbot_enable_rtl = "";
454 + if (get_option('enable_wp_chatbot_rtl') == '1') {
455 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
456 + }
457 + ?>
458 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
459 + <?php
460 + // keep traking app template.
461 + $template_app = 'yes';
462 + //Get wpcommerce cart
463 +
464 + //Handling shortcode enqeue and remove features part.
465 + define('wpCOMMERCE', true);
466 + wp_enqueue_script('jquery');
467 +
468 +
469 + wp_enqueue_script('wc-address-i18n');
470 + wp_enqueue_script('wc-country-select');
471 +
472 +
473 + // add the action
474 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
475 + if (!isset($_COOKIE['from_app'])) {
476 + setcookie('from_app', 'yes', time() + 3600);
477 + }
478 + }
479 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
480 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
481 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
482 + } else {
483 + echo "<h2>" . esc_html__('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
484 + }
485 + ?>
486 + </div>
487 + <?php
488 +}
335 489
336 490 /**
337 491 * wpwBot Search keyword product
338 492 */
@@ -338,16 +492,9 @@
338 492 */
339 493 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
340 494 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
341 495 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']));
496 + $keyword = sanitize_text_field($_POST['keyword']);
350 497 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
351 498 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
352 499 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
353 500 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -393,9 +540,9 @@
393 540 endwhile;
394 541 wp_reset_postdata();
395 542 $html .= '</ul>';
396 543 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>';
544 + $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 545 }
399 546 }
400 547 $html .= '</div>';
401 548 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -423,9 +570,9 @@
423 570 }
424 571 }
425 572 $html .= '</ul>';
426 573 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>';
574 + $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 575 }
429 576 }
430 577 $html .= '</div>';
431 578 }
@@ -440,15 +587,16 @@
440 587 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
441 588 function qcld_wb_chatbot_category(){
442 589 $category_type="common";
443 590 if (get_option('wp_chatbot_show_parent_category') != "") {
444 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
591 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
592 +
445 593 } else {
446 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
594 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
447 595 }
448 596 $html = "";
449 597 foreach ($terms as $term) {
450 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
598 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
451 599 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
452 600 $category_type="hasChilds";
453 601 }
454 602 $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 +609,10 @@
461 609 */
462 610 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
463 611 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
464 612 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' ) );
613 + $parent_id = stripslashes($_POST['parent_id']);
614 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
467 615 $html = "";
468 616 foreach ($terms as $term) {
469 617 $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 618 }
@@ -476,9 +624,9 @@
476 624 */
477 625 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
478 626 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
479 627 function qcld_wb_chatbot_category_products(){
480 - $category_id = intval( wp_unslash( $_POST['category'] ) );
628 + $category_id = stripslashes($_POST['category']);
481 629 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
482 630 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
483 631 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
484 632 //Merging all query together.
@@ -715,11 +863,11 @@
715 863 //load more
716 864 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
717 865 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
718 866 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'] ) );
867 + $offset = stripslashes($_POST['offset']);
868 + $search_type = stripslashes($_POST['search_type']);
869 + $search_term = stripslashes($_POST['search_term']);
722 870 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
723 871 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
724 872 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
725 873 $next_offset = intval($product_per_page + $offset);
@@ -850,9 +998,9 @@
850 998 //product details
851 999 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
852 1000 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
853 1001 function qcld_wb_chatbot_product_details(){
854 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
1002 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
855 1003 //Tracking product view from chat board
856 1004 wp_chatbot_view_track_product_by_id($product_id);
857 1005 //wpcommerce product factory
858 1006 $wc_pf = new WC_Product_Factory();
@@ -880,9 +1028,9 @@
880 1028 }
881 1029 }
882 1030 $product_image .= '</ul></div>';
883 1031 $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>';
1032 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
885 1033 //if ( $product->is_in_stock() || $product->is_purchasable() )
886 1034 //Handle variable product start
887 1035 $variations = "";
888 1036 $add_cart_button = "";
@@ -925,11 +1073,10 @@
925 1073 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
926 1074 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
927 1075 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
928 1076 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 ] ) );
1077 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1078 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
932 1079 } else {
933 1080 $selected_value = '';
934 1081 }
935 1082 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -950,15 +1097,15 @@
950 1097 $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 1098 wp_send_json($response);
952 1099 }
953 1100 //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();
1101 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1102 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1103 +function qcld_wb_chatbot_variable_add_to_cart(){
1104 + $product_id = stripslashes($_POST['p_id']);
1105 + $quantity = stripslashes($_POST['quantity']);
1106 + $variations_id = stripslashes($_POST['variations_id']);
1107 + $attrs = stripslashes($_POST['attributes']);
961 1108 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
962 1109 $attributes = array();
963 1110 foreach ($attrs as $attr) {
964 1111 $single = explode("#", $attr);
@@ -978,10 +1125,10 @@
978 1125 //Add to cart for simple product.
979 1126 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
980 1127 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
981 1128 function qcld_wb_chatbot_add_to_cart(){
982 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
983 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1129 + $product_id = stripslashes($_POST['product_id']);
1130 + $product_quantity = stripslashes($_POST['quantity']);
984 1131 global $wpcommerce;
985 1132 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
986 1133 if ($result != false) {
987 1134 wp_send_json('simple');
@@ -992,19 +1139,15 @@
992 1139 //Support part
993 1140 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
994 1141 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
995 1142 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']));
1143 + $name = trim(sanitize_text_field($_POST['name']));
1144 + $email = sanitize_email($_POST['email']);
1145 + $message = sanitize_text_field($_POST['message']);
1003 1146 $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 1147 //Extract Domain
1005 1148 $url = get_site_url();
1006 - $url = wp_parse_url($url);
1149 + $url = parse_url($url);
1007 1150 $domain = $url['host'];
1008 1151 //$admin_email = "admin@" . $domain;
1009 1152 $admin_email = sanitize_email(get_option('admin_email'));
1010 1153 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1014,8 +1157,9 @@
1014 1157 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1015 1158 }else{
1016 1159 $fromEmail = "wordpress@" . $domain;
1017 1160 }
1161 +
1018 1162 //Starting messaging and status.
1019 1163 $response['status'] = 'fail';
1020 1164 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1021 1165 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1023,14 +1167,14 @@
1023 1167 $response['status'] = 'fail';
1024 1168 } else {
1025 1169 //build email body
1026 1170 $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>';
1171 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1172 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1173 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1174 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1175 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1176 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1033 1177 $to = $toEmail;
1034 1178 $body = $bodyContent;
1035 1179 $headers = array();
1036 1180 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1042,9 +1186,9 @@
1042 1186 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1043 1187 }
1044 1188
1045 1189 }
1046 - echo wp_json_encode($response);
1190 + echo json_encode($response);
1047 1191 die();
1048 1192 }
1049 1193 //Support Phone
1050 1194 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1049,15 +1193,14 @@
1049 1193 //Support Phone
1050 1194 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1051 1195 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1052 1196 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']));
1197 + $name = trim(sanitize_text_field($_POST['name']));
1198 + $phone =sanitize_text_field($_POST['phone']);
1056 1199 $subject = 'WPBot Support Mail Request for Call Back';
1057 1200 //Extract Domain
1058 1201 $url = get_site_url();
1059 - $url = wp_parse_url($url);
1202 + $url = parse_url($url);
1060 1203 $domain = $url['host'];
1061 1204 //$admin_email = "admin@" . $domain;
1062 1205 $admin_email = get_option('admin_email');
1063 1206 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1072,14 +1215,14 @@
1072 1215 $response['status'] = 'fail';
1073 1216 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1074 1217 //build email body
1075 1218 $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>';
1219 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1220 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1221 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1222 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1223 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1224 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1082 1225 $to = $toEmail;
1083 1226 $body = $bodyContent;
1084 1227 $headers = array();
1085 1228 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1089,15 +1232,15 @@
1089 1232 if ($result) {
1090 1233 $response['status'] = 'success';
1091 1234 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1092 1235 }
1093 - echo wp_json_encode($response);
1236 + echo json_encode($response);
1094 1237 die();
1095 1238 }
1096 1239 // Order Status part. removed
1097 1240
1098 1241 function wpb_randmom_message_handle($items){
1099 - return $items[wp_rand(0, count($items) - 1)];
1242 + return $items[rand(0, count($items) - 1)];
1100 1243 }
1101 1244 function qcld_wb_chatbot_func_str_replace($messages = array()){
1102 1245 $refined_mesgses = array();
1103 1246 foreach ($messages as $message) {
@@ -1112,10 +1255,10 @@
1112 1255 // First check the nonce, if it fails the function will break
1113 1256 check_ajax_referer('wpwbot-order-nonce', 'security');
1114 1257 // Nonce is checked, get the POST data and sign user on
1115 1258 $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'])));
1259 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1260 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1118 1261 $info['remember'] = true;
1119 1262 $user_signon = wp_signon($info, false);
1120 1263 $response = array();
1121 1264 if (is_wp_error($user_signon)) {
@@ -1155,12 +1298,12 @@
1155 1298 if ($response['order_num'] > 0) {
1156 1299 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1157 1300 $order_html .= '<div class="wp-chatbot-orders-container">
1158 1301 <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>
1302 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1303 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1304 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1305 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1163 1306 </div>';
1164 1307 foreach ($customer_orders as $order) {
1165 1308 //Formatting order summery
1166 1309 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1171,9 +1314,9 @@
1171 1314 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1172 1315 }
1173 1316 $order_html .= '<div class="wp-chatbot-orders-single">
1174 1317 <div class="order-id"> ' . $order_url . '</div>
1175 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1318 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1176 1319 <div class="order-items">';
1177 1320 $singleOrder = new WC_Order($order->ID);
1178 1321 $items = $singleOrder->get_items();
1179 1322 foreach ($items as $item) {
@@ -1273,9 +1416,9 @@
1273 1416 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1274 1417 <div class="wp-chatbot-product-summary">
1275 1418 <div class="wp-chatbot-product-table">
1276 1419 <div class="wp-chatbot-product-table-cell">
1277 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1420 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1278 1421 <div class="price">' . $product->get_price_html() . '</div>';
1279 1422 $html .= ' </div>
1280 1423 </div>
1281 1424 </div></a>
@@ -1344,9 +1487,9 @@
1344 1487 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1345 1488 <div class="wp-chatbot-product-summary">
1346 1489 <div class="wp-chatbot-product-table">
1347 1490 <div class="wp-chatbot-product-table-cell">
1348 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1491 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1349 1492 <div class="price">' . $product->get_price_html() . '</div>';
1350 1493 $html .= ' </div>
1351 1494 </div>
1352 1495 </div></a>
@@ -1356,9 +1499,9 @@
1356 1499 wp_reset_postdata();
1357 1500 $html .= '</ul></div>';
1358 1501 } else {
1359 1502 $html .= '<div class="wp-chatbot-products-area">';
1360 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1503 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1361 1504 $html .= '</div>';
1362 1505 }
1363 1506 return $html;
1364 1507 }
@@ -1520,12 +1663,11 @@
1520 1663 //Updating the cart items.
1521 1664 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1522 1665 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1523 1666 function qcld_wb_chatbot_update_cart_item_number(){
1524 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1525 1667 //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']));
1668 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1669 + $qnty = sanitize_text_field($_POST['qnty']);
1528 1670 global $wpcommerce;
1529 1671 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1530 1672 wp_send_json($result);
1531 1673 }
@@ -1532,11 +1674,10 @@
1532 1674 //Show item after removing from cart page.
1533 1675 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1534 1676 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1535 1677 function qcld_wb_chatbot_cart_item_remove(){
1536 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1537 1678 //getting cart items n
1538 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1679 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1539 1680 global $wpcommerce;
1540 1681 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1541 1682 wp_send_json($result);
1542 1683 }
@@ -1573,9 +1714,9 @@
1573 1714 $response = array('status' => $status, 'html' => $html);
1574 1715 wp_send_json($response);
1575 1716 }
1576 1717 //_dynamic_intent
1577 -function qcld_dynamic_intent(){
1718 +function qc_dynamic_intent(){
1578 1719 global $wpdb;
1579 1720 $intents = array();
1580 1721
1581 1722 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1592,9 +1733,9 @@
1592 1733
1593 1734 if(class_exists('Qcformbuilder_Forms_Admin')){
1594 1735
1595 1736
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
1737 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); //DB Call OK, No Caching OK
1597 1738
1598 1739 if(!empty($results)){
1599 1740
1600 1741 foreach($results as $result){
@@ -1619,10 +1760,10 @@
1619 1760 // function qcld_wb_chatbot_checkout_user_login(){
1620 1761 // // Nonce is checked, get the POST data and sign user on
1621 1762 // $info = array();
1622 1763 // //$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'])));
1764 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1765 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1625 1766 // $info['remember'] = true;
1626 1767 // $user_signon = wp_signon($info, false);
1627 1768 // // $response=$info;
1628 1769 // $response = array();
@@ -1663,16 +1804,15 @@
1663 1804 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1664 1805 function wp_chatbot_create_app_checkout_thankyou_page(){
1665 1806 if (get_option('wp_chatbot_app_pages') == 1) {
1666 1807 //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() ) {
1808 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1669 1809 //post status and options
1670 1810 $app_page = array(
1671 1811 'comment_status' => 'closed',
1672 1812 'ping_status' => 'closed',
1673 1813 'post_author' => get_current_user_id(),
1674 - 'post_date' => gmdate('Y-m-d H:i:s'),
1814 + 'post_date' => date('Y-m-d H:i:s'),
1675 1815 'post_status' => 'publish',
1676 1816 'post_title' => 'wpwBot Mobile App',
1677 1817 'post_name' => 'wpwbot-mobile-app',
1678 1818 'post_type' => 'page',
@@ -1682,16 +1822,15 @@
1682 1822 //save the id in the database
1683 1823 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1684 1824 }
1685 1825 //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() ) {
1826 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1688 1827 //post status and options
1689 1828 $checkout_page = array(
1690 1829 'comment_status' => 'closed',
1691 1830 'ping_status' => 'closed',
1692 1831 'post_author' => get_current_user_id(),
1693 - 'post_date' => gmdate('Y-m-d H:i:s'),
1832 + 'post_date' => date('Y-m-d H:i:s'),
1694 1833 'post_status' => 'publish',
1695 1834 'post_title' => 'wpwBot App Checkout',
1696 1835 'post_name' => 'wpwbot-app-checkout',
1697 1836 'post_type' => 'page',
@@ -1701,16 +1840,15 @@
1701 1840 //save the id in the database
1702 1841 update_option('wp_chatbot_app_checkout', $app_checkout);
1703 1842 }
1704 1843 //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() ) {
1844 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1707 1845 //post status and options
1708 1846 $thankyou_page = array(
1709 1847 'comment_status' => 'closed',
1710 1848 'ping_status' => 'closed',
1711 1849 'post_author' => get_current_user_id(),
1712 - 'post_date' => gmdate('Y-m-d H:i:s'),
1850 + 'post_date' => date('Y-m-d H:i:s'),
1713 1851 'post_status' => 'publish',
1714 1852 'post_title' => 'wpwBot App Order Thank You',
1715 1853 'post_name' => 'wpwbot-app-order-thankyou',
1716 1854 'post_type' => 'page',
@@ -1721,9 +1859,9 @@
1721 1859 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1722 1860 }
1723 1861 }
1724 1862 //Keep tracking from App by cookies
1725 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1863 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1726 1864 if (!isset($_COOKIE['from_app'])) {
1727 1865 setcookie('from_app', 'yes', (time() + 3600), '/');
1728 1866 }
1729 1867 }
@@ -1737,9 +1875,9 @@
1737 1875 global $wp;
1738 1876 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1739 1877 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1740 1878 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1741 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1879 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1742 1880 exit;
1743 1881 }
1744 1882 } else {
1745 1883 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1755,9 +1893,8 @@
1755 1893 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1756 1894 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1757 1895 function qcld_wb_chatbot_session_count(){
1758 1896 // Nonce is checked, get the POST data and sign user on
1759 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1760 1897 global $wpdb;
1761 1898 $wpdb->show_errors = true;
1762 1899 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1900 $response = array();
@@ -1762,22 +1899,22 @@
1762 1899 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1900 $response = array();
1764 1901
1765 1902
1766 - $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
1903 + $session_exists = $wpdb->get_row($wpdb->prepare("select * from $tableuser where 1 and id = %d",1)); //DB Call OK, No Caching OK
1767 1904
1768 1905 if(empty($session_exists)){
1769 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1906 + $wpdb->insert(
1770 1907 $tableuser,
1771 1908 array(
1772 1909 'session' => 1,
1773 1910 )
1774 - );
1911 + ); //DB Call OK, No Caching OK
1775 1912 }else{
1776 1913
1777 1914 $session_id = $session_exists->id;
1778 1915
1779 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1916 + $wpdb->update(
1780 1917 $tableuser,
1781 1918 array(
1782 1919 'session'=>($session_exists->session+1),
1783 1920 ),
@@ -1785,9 +1922,9 @@
1785 1922 array(
1786 1923 '%d',
1787 1924 ),
1788 1925 array('%d')
1789 - );
1926 + ); //DB Call OK, No Caching OK
1790 1927
1791 1928 }
1792 1929
1793 1930 wp_send_json($response);
@@ -1795,9 +1932,9 @@
1795 1932
1796 1933 /* WPBot Chat History Addon check */
1797 1934 function qcld_wpbot_is_active_chat_history(){
1798 1935
1799 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1936 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1800 1937 return 1;
1801 1938 }else{
1802 1939 return 0;
1803 1940 }
@@ -1803,9 +1940,9 @@
1803 1940 }
1804 1941
1805 1942 }
1806 1943
1807 -function qcld_wpbot_input_validation( $data ) {
1944 +function qc_wpbot_input_validation( $data ) {
1808 1945 $data = html_entity_decode($data);
1809 1946 $data = trim($data);
1810 1947 $data = stripslashes($data);
1811 1948 $data = htmlspecialchars($data);
@@ -1810,13 +1947,11 @@
1810 1947 $data = stripslashes($data);
1811 1948 $data = htmlspecialchars($data);
1812 1949 return $data;
1813 1950 }
1814 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1815 -function qcld_small_talk_import(){
1816 - if ( ! current_user_can( 'manage_options' ) ) {
1817 - wp_die();
1818 - }
1951 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1952 +function small_talk_import(){
1953 +
1819 1954 global $wpdb;
1820 1955
1821 1956 $table = $wpdb->prefix.'wpbot_response';
1822 1957
@@ -1823,10 +1958,9 @@
1823 1958 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1824 1959
1825 1960 foreach ($csvFile as $line) {
1826 1961 $line = str_getcsv($line, ',', '"');
1827 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1828 - $table, array(
1962 + $wpdb->insert($table, array(
1829 1963 'query' => $line[0],
1830 1964 'keyword' => $line[1],
1831 1965 'response' => $line[2],
1832 1966 'category'=> $line[3],
@@ -1831,17 +1965,16 @@
1831 1965 'response' => $line[2],
1832 1966 'category'=> $line[3],
1833 1967 'intent'=> '',
1834 1968 //'lang'=> 'en_US',
1835 - ));
1969 + )); //DB Call OK, No Caching OK
1836 1970 }
1837 1971
1838 1972 $table2 = $wpdb->prefix.'wpbot_response_category';
1839 1973
1840 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1841 - $table2, array(
1974 + $wpdb->insert($table2, array(
1842 1975 'name' => 'smalltalk',
1843 - ));
1976 + )); //DB Call OK, No Caching OK
1844 1977
1845 1978 update_option( 'qcld_small_talk_imported', 'yes' );
1846 1979
1847 1980 }
@@ -1849,44 +1982,12 @@
1849 1982 if (!empty($array)) {
1850 1983 foreach ($array as &$value) {
1851 1984 if( !is_array($value) )
1852 1985 // sanitize if value is not an array
1853 - $value = sanitize_text_field( esc_html($value) );
1986 + $value = sanitize_text_field( $value );
1854 1987 else
1855 1988 // go inside this function again
1856 - sanitize_array(esc_html($value));
1989 + $this->sanitize_array($value);
1857 1990 }
1858 1991 }
1859 1992 return $array;
1860 -}
1861 -function qcld_wpbot_meta_tags() {
1862 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1863 -}
1864 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1865 -
1866 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
1867 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1868 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1869 - function qcld_change_language_from_center() {
1870 - if ( ! current_user_can( 'manage_options' ) ) {
1871 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
1872 - }
1873 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1874 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
1875 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
1876 - }
1877 - $plugin_path = plugin_dir_path( __FILE__ );
1878 - include $plugin_path . 'includes/admin/settings-fields.php';
1879 - $json_file_path = $plugin_path . 'includes/language-center.json';
1880 -
1881 - $json_string = file_get_contents( $json_file_path );
1882 - if ( isset( $_POST['language'] ) ) {
1883 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
1884 - $language_array= json_decode($json_string)->$language;
1885 - update_option( 'wp_chatbot_language_center_language', $language );
1886 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
1887 - } else {
1888 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
1889 -
1890 - }
1891 - }
1892 -}
1993 +}