PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 6.6.0
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v6.6.0
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 +109 -194 8.6.26.6.0 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])) {
@@ -338,16 +302,9 @@
338 302 */
339 303 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
340 304 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
341 305 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']));
306 + $keyword = sanitize_text_field($_POST['keyword']);
350 307 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
351 308 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
352 309 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
353 310 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -393,9 +350,9 @@
393 350 endwhile;
394 351 wp_reset_postdata();
395 352 $html .= '</ul>';
396 353 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>';
354 + $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 355 }
399 356 }
400 357 $html .= '</div>';
401 358 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -423,9 +380,9 @@
423 380 }
424 381 }
425 382 $html .= '</ul>';
426 383 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>';
384 + $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 385 }
429 386 }
430 387 $html .= '</div>';
431 388 }
@@ -440,15 +397,16 @@
440 397 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
441 398 function qcld_wb_chatbot_category(){
442 399 $category_type="common";
443 400 if (get_option('wp_chatbot_show_parent_category') != "") {
444 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
401 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
402 +
445 403 } else {
446 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
404 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
447 405 }
448 406 $html = "";
449 407 foreach ($terms as $term) {
450 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
408 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
451 409 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
452 410 $category_type="hasChilds";
453 411 }
454 412 $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 +419,10 @@
461 419 */
462 420 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
463 421 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
464 422 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' ) );
423 + $parent_id = stripslashes($_POST['parent_id']);
424 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
467 425 $html = "";
468 426 foreach ($terms as $term) {
469 427 $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 428 }
@@ -476,9 +434,9 @@
476 434 */
477 435 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
478 436 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
479 437 function qcld_wb_chatbot_category_products(){
480 - $category_id = intval( wp_unslash( $_POST['category'] ) );
438 + $category_id = stripslashes($_POST['category']);
481 439 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
482 440 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
483 441 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
484 442 //Merging all query together.
@@ -715,11 +673,11 @@
715 673 //load more
716 674 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
717 675 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
718 676 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'] ) );
677 + $offset = stripslashes($_POST['offset']);
678 + $search_type = stripslashes($_POST['search_type']);
679 + $search_term = stripslashes($_POST['search_term']);
722 680 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
723 681 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
724 682 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
725 683 $next_offset = intval($product_per_page + $offset);
@@ -850,9 +808,9 @@
850 808 //product details
851 809 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
852 810 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
853 811 function qcld_wb_chatbot_product_details(){
854 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
812 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
855 813 //Tracking product view from chat board
856 814 wp_chatbot_view_track_product_by_id($product_id);
857 815 //wpcommerce product factory
858 816 $wc_pf = new WC_Product_Factory();
@@ -880,9 +838,9 @@
880 838 }
881 839 }
882 840 $product_image .= '</ul></div>';
883 841 $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>';
842 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
885 843 //if ( $product->is_in_stock() || $product->is_purchasable() )
886 844 //Handle variable product start
887 845 $variations = "";
888 846 $add_cart_button = "";
@@ -925,11 +883,10 @@
925 883 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
926 884 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
927 885 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
928 886 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 ] ) );
887 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
888 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
932 889 } else {
933 890 $selected_value = '';
934 891 }
935 892 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -950,15 +907,15 @@
950 907 $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 908 wp_send_json($response);
952 909 }
953 910 //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();
911 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
912 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
913 +function qcld_wb_chatbot_variable_add_to_cart(){
914 + $product_id = stripslashes($_POST['p_id']);
915 + $quantity = stripslashes($_POST['quantity']);
916 + $variations_id = stripslashes($_POST['variations_id']);
917 + $attrs = stripslashes($_POST['attributes']);
961 918 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
962 919 $attributes = array();
963 920 foreach ($attrs as $attr) {
964 921 $single = explode("#", $attr);
@@ -978,10 +935,10 @@
978 935 //Add to cart for simple product.
979 936 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
980 937 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
981 938 function qcld_wb_chatbot_add_to_cart(){
982 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
983 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
939 + $product_id = stripslashes($_POST['product_id']);
940 + $product_quantity = stripslashes($_POST['quantity']);
984 941 global $wpcommerce;
985 942 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
986 943 if ($result != false) {
987 944 wp_send_json('simple');
@@ -992,19 +949,15 @@
992 949 //Support part
993 950 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
994 951 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
995 952 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']));
953 + $name = trim(sanitize_text_field($_POST['name']));
954 + $email = sanitize_email($_POST['email']);
955 + $message = sanitize_text_field($_POST['message']);
1003 956 $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 957 //Extract Domain
1005 958 $url = get_site_url();
1006 - $url = wp_parse_url($url);
959 + $url = parse_url($url);
1007 960 $domain = $url['host'];
1008 961 //$admin_email = "admin@" . $domain;
1009 962 $admin_email = sanitize_email(get_option('admin_email'));
1010 963 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1014,8 +967,9 @@
1014 967 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1015 968 }else{
1016 969 $fromEmail = "wordpress@" . $domain;
1017 970 }
971 +
1018 972 //Starting messaging and status.
1019 973 $response['status'] = 'fail';
1020 974 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1021 975 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1023,14 +977,14 @@
1023 977 $response['status'] = 'fail';
1024 978 } else {
1025 979 //build email body
1026 980 $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>';
981 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
982 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
983 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
984 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
985 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
986 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1033 987 $to = $toEmail;
1034 988 $body = $bodyContent;
1035 989 $headers = array();
1036 990 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1042,9 +996,9 @@
1042 996 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1043 997 }
1044 998
1045 999 }
1046 - echo wp_json_encode($response);
1000 + echo json_encode($response);
1047 1001 die();
1048 1002 }
1049 1003 //Support Phone
1050 1004 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1049,15 +1003,14 @@
1049 1003 //Support Phone
1050 1004 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1051 1005 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1052 1006 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']));
1007 + $name = trim(sanitize_text_field($_POST['name']));
1008 + $phone =sanitize_text_field($_POST['phone']);
1056 1009 $subject = 'WPBot Support Mail Request for Call Back';
1057 1010 //Extract Domain
1058 1011 $url = get_site_url();
1059 - $url = wp_parse_url($url);
1012 + $url = parse_url($url);
1060 1013 $domain = $url['host'];
1061 1014 //$admin_email = "admin@" . $domain;
1062 1015 $admin_email = get_option('admin_email');
1063 1016 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1072,14 +1025,14 @@
1072 1025 $response['status'] = 'fail';
1073 1026 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1074 1027 //build email body
1075 1028 $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>';
1029 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1030 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1031 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1032 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1033 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1034 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1082 1035 $to = $toEmail;
1083 1036 $body = $bodyContent;
1084 1037 $headers = array();
1085 1038 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1089,15 +1042,15 @@
1089 1042 if ($result) {
1090 1043 $response['status'] = 'success';
1091 1044 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1092 1045 }
1093 - echo wp_json_encode($response);
1046 + echo json_encode($response);
1094 1047 die();
1095 1048 }
1096 1049 // Order Status part. removed
1097 1050
1098 1051 function wpb_randmom_message_handle($items){
1099 - return $items[wp_rand(0, count($items) - 1)];
1052 + return $items[rand(0, count($items) - 1)];
1100 1053 }
1101 1054 function qcld_wb_chatbot_func_str_replace($messages = array()){
1102 1055 $refined_mesgses = array();
1103 1056 foreach ($messages as $message) {
@@ -1112,10 +1065,10 @@
1112 1065 // First check the nonce, if it fails the function will break
1113 1066 check_ajax_referer('wpwbot-order-nonce', 'security');
1114 1067 // Nonce is checked, get the POST data and sign user on
1115 1068 $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'])));
1069 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1070 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1118 1071 $info['remember'] = true;
1119 1072 $user_signon = wp_signon($info, false);
1120 1073 $response = array();
1121 1074 if (is_wp_error($user_signon)) {
@@ -1155,12 +1108,12 @@
1155 1108 if ($response['order_num'] > 0) {
1156 1109 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1157 1110 $order_html .= '<div class="wp-chatbot-orders-container">
1158 1111 <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>
1112 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1113 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1114 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1115 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1163 1116 </div>';
1164 1117 foreach ($customer_orders as $order) {
1165 1118 //Formatting order summery
1166 1119 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1171,9 +1124,9 @@
1171 1124 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1172 1125 }
1173 1126 $order_html .= '<div class="wp-chatbot-orders-single">
1174 1127 <div class="order-id"> ' . $order_url . '</div>
1175 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1128 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1176 1129 <div class="order-items">';
1177 1130 $singleOrder = new WC_Order($order->ID);
1178 1131 $items = $singleOrder->get_items();
1179 1132 foreach ($items as $item) {
@@ -1273,9 +1226,9 @@
1273 1226 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1274 1227 <div class="wp-chatbot-product-summary">
1275 1228 <div class="wp-chatbot-product-table">
1276 1229 <div class="wp-chatbot-product-table-cell">
1277 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1230 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1278 1231 <div class="price">' . $product->get_price_html() . '</div>';
1279 1232 $html .= ' </div>
1280 1233 </div>
1281 1234 </div></a>
@@ -1344,9 +1297,9 @@
1344 1297 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1345 1298 <div class="wp-chatbot-product-summary">
1346 1299 <div class="wp-chatbot-product-table">
1347 1300 <div class="wp-chatbot-product-table-cell">
1348 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1301 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1349 1302 <div class="price">' . $product->get_price_html() . '</div>';
1350 1303 $html .= ' </div>
1351 1304 </div>
1352 1305 </div></a>
@@ -1356,9 +1309,9 @@
1356 1309 wp_reset_postdata();
1357 1310 $html .= '</ul></div>';
1358 1311 } else {
1359 1312 $html .= '<div class="wp-chatbot-products-area">';
1360 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1313 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1361 1314 $html .= '</div>';
1362 1315 }
1363 1316 return $html;
1364 1317 }
@@ -1520,12 +1473,11 @@
1520 1473 //Updating the cart items.
1521 1474 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1522 1475 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1523 1476 function qcld_wb_chatbot_update_cart_item_number(){
1524 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1525 1477 //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']));
1478 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1479 + $qnty = sanitize_text_field($_POST['qnty']);
1528 1480 global $wpcommerce;
1529 1481 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1530 1482 wp_send_json($result);
1531 1483 }
@@ -1532,11 +1484,10 @@
1532 1484 //Show item after removing from cart page.
1533 1485 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1534 1486 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1535 1487 function qcld_wb_chatbot_cart_item_remove(){
1536 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1537 1488 //getting cart items n
1538 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1489 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1539 1490 global $wpcommerce;
1540 1491 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1541 1492 wp_send_json($result);
1542 1493 }
@@ -1573,9 +1524,9 @@
1573 1524 $response = array('status' => $status, 'html' => $html);
1574 1525 wp_send_json($response);
1575 1526 }
1576 1527 //_dynamic_intent
1577 -function qcld_dynamic_intent(){
1528 +function qc_dynamic_intent(){
1578 1529 global $wpdb;
1579 1530 $intents = array();
1580 1531
1581 1532 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1592,9 +1543,9 @@
1592 1543
1593 1544 if(class_exists('Qcformbuilder_Forms_Admin')){
1594 1545
1595 1546
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
1547 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); //DB Call OK, No Caching OK
1597 1548
1598 1549 if(!empty($results)){
1599 1550
1600 1551 foreach($results as $result){
@@ -1619,10 +1570,10 @@
1619 1570 // function qcld_wb_chatbot_checkout_user_login(){
1620 1571 // // Nonce is checked, get the POST data and sign user on
1621 1572 // $info = array();
1622 1573 // //$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'])));
1574 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1575 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1625 1576 // $info['remember'] = true;
1626 1577 // $user_signon = wp_signon($info, false);
1627 1578 // // $response=$info;
1628 1579 // $response = array();
@@ -1663,16 +1614,15 @@
1663 1614 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1664 1615 function wp_chatbot_create_app_checkout_thankyou_page(){
1665 1616 if (get_option('wp_chatbot_app_pages') == 1) {
1666 1617 //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() ) {
1618 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1669 1619 //post status and options
1670 1620 $app_page = array(
1671 1621 'comment_status' => 'closed',
1672 1622 'ping_status' => 'closed',
1673 1623 'post_author' => get_current_user_id(),
1674 - 'post_date' => gmdate('Y-m-d H:i:s'),
1624 + 'post_date' => date('Y-m-d H:i:s'),
1675 1625 'post_status' => 'publish',
1676 1626 'post_title' => 'wpwBot Mobile App',
1677 1627 'post_name' => 'wpwbot-mobile-app',
1678 1628 'post_type' => 'page',
@@ -1682,16 +1632,15 @@
1682 1632 //save the id in the database
1683 1633 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1684 1634 }
1685 1635 //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() ) {
1636 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1688 1637 //post status and options
1689 1638 $checkout_page = array(
1690 1639 'comment_status' => 'closed',
1691 1640 'ping_status' => 'closed',
1692 1641 'post_author' => get_current_user_id(),
1693 - 'post_date' => gmdate('Y-m-d H:i:s'),
1642 + 'post_date' => date('Y-m-d H:i:s'),
1694 1643 'post_status' => 'publish',
1695 1644 'post_title' => 'wpwBot App Checkout',
1696 1645 'post_name' => 'wpwbot-app-checkout',
1697 1646 'post_type' => 'page',
@@ -1701,16 +1650,15 @@
1701 1650 //save the id in the database
1702 1651 update_option('wp_chatbot_app_checkout', $app_checkout);
1703 1652 }
1704 1653 //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() ) {
1654 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1707 1655 //post status and options
1708 1656 $thankyou_page = array(
1709 1657 'comment_status' => 'closed',
1710 1658 'ping_status' => 'closed',
1711 1659 'post_author' => get_current_user_id(),
1712 - 'post_date' => gmdate('Y-m-d H:i:s'),
1660 + 'post_date' => date('Y-m-d H:i:s'),
1713 1661 'post_status' => 'publish',
1714 1662 'post_title' => 'wpwBot App Order Thank You',
1715 1663 'post_name' => 'wpwbot-app-order-thankyou',
1716 1664 'post_type' => 'page',
@@ -1721,9 +1669,9 @@
1721 1669 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1722 1670 }
1723 1671 }
1724 1672 //Keep tracking from App by cookies
1725 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1673 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1726 1674 if (!isset($_COOKIE['from_app'])) {
1727 1675 setcookie('from_app', 'yes', (time() + 3600), '/');
1728 1676 }
1729 1677 }
@@ -1737,9 +1685,9 @@
1737 1685 global $wp;
1738 1686 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1739 1687 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1740 1688 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1741 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1689 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1742 1690 exit;
1743 1691 }
1744 1692 } else {
1745 1693 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1755,9 +1703,8 @@
1755 1703 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1756 1704 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1757 1705 function qcld_wb_chatbot_session_count(){
1758 1706 // Nonce is checked, get the POST data and sign user on
1759 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1760 1707 global $wpdb;
1761 1708 $wpdb->show_errors = true;
1762 1709 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1710 $response = array();
@@ -1762,22 +1709,22 @@
1762 1709 $tableuser = $wpdb->prefix.'wpbot_sessions';
1763 1710 $response = array();
1764 1711
1765 1712
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
1713 + $session_exists = $wpdb->get_row($wpdb->prepare("select * from $tableuser where 1 and id = %d",1)); //DB Call OK, No Caching OK
1767 1714
1768 1715 if(empty($session_exists)){
1769 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1716 + $wpdb->insert(
1770 1717 $tableuser,
1771 1718 array(
1772 1719 'session' => 1,
1773 1720 )
1774 - );
1721 + ); //DB Call OK, No Caching OK
1775 1722 }else{
1776 1723
1777 1724 $session_id = $session_exists->id;
1778 1725
1779 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1726 + $wpdb->update(
1780 1727 $tableuser,
1781 1728 array(
1782 1729 'session'=>($session_exists->session+1),
1783 1730 ),
@@ -1785,9 +1732,9 @@
1785 1732 array(
1786 1733 '%d',
1787 1734 ),
1788 1735 array('%d')
1789 - );
1736 + ); //DB Call OK, No Caching OK
1790 1737
1791 1738 }
1792 1739
1793 1740 wp_send_json($response);
@@ -1795,9 +1742,9 @@
1795 1742
1796 1743 /* WPBot Chat History Addon check */
1797 1744 function qcld_wpbot_is_active_chat_history(){
1798 1745
1799 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1746 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1800 1747 return 1;
1801 1748 }else{
1802 1749 return 0;
1803 1750 }
@@ -1803,9 +1750,9 @@
1803 1750 }
1804 1751
1805 1752 }
1806 1753
1807 -function qcld_wpbot_input_validation( $data ) {
1754 +function qc_wpbot_input_validation( $data ) {
1808 1755 $data = html_entity_decode($data);
1809 1756 $data = trim($data);
1810 1757 $data = stripslashes($data);
1811 1758 $data = htmlspecialchars($data);
@@ -1810,13 +1757,11 @@
1810 1757 $data = stripslashes($data);
1811 1758 $data = htmlspecialchars($data);
1812 1759 return $data;
1813 1760 }
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 - }
1761 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1762 +function small_talk_import(){
1763 +
1819 1764 global $wpdb;
1820 1765
1821 1766 $table = $wpdb->prefix.'wpbot_response';
1822 1767
@@ -1823,10 +1768,9 @@
1823 1768 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1824 1769
1825 1770 foreach ($csvFile as $line) {
1826 1771 $line = str_getcsv($line, ',', '"');
1827 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1828 - $table, array(
1772 + $wpdb->insert($table, array(
1829 1773 'query' => $line[0],
1830 1774 'keyword' => $line[1],
1831 1775 'response' => $line[2],
1832 1776 'category'=> $line[3],
@@ -1831,17 +1775,16 @@
1831 1775 'response' => $line[2],
1832 1776 'category'=> $line[3],
1833 1777 'intent'=> '',
1834 1778 //'lang'=> 'en_US',
1835 - ));
1779 + )); //DB Call OK, No Caching OK
1836 1780 }
1837 1781
1838 1782 $table2 = $wpdb->prefix.'wpbot_response_category';
1839 1783
1840 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1841 - $table2, array(
1784 + $wpdb->insert($table2, array(
1842 1785 'name' => 'smalltalk',
1843 - ));
1786 + )); //DB Call OK, No Caching OK
1844 1787
1845 1788 update_option( 'qcld_small_talk_imported', 'yes' );
1846 1789
1847 1790 }
@@ -1860,33 +1803,5 @@
1860 1803 }
1861 1804 function qcld_wpbot_meta_tags() {
1862 1805 echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1863 1806 }
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 -}
1807 +add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);