PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 8.3.8
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v8.3.8
8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 8.5.2 All 533 releases
← All changes | qcld-wpwbot.php +72 -98 8.5.28.3.8 View file →
@@ -3,9 +3,9 @@
3 3 * Plugin Name: AI ChatBot - WPBot
4 4 * Plugin URI: https://wordpress.org/plugins/chatbot/
5 5 * Description: ChatBot is a native WordPress ChatBot plugin to provide live chat support and lead generation
6 6 * Donate link: https://www.wpbot.pro/
7 - * Version: 8.5.2
7 + * Version: 8.3.8
8 8 * @author QuantumCloud
9 9 * Author: ChatBot for WordPress - WPBot
10 10 * Author URI: https://www.wpbot.pro/
11 11 * Requires at least: 4.6
@@ -18,39 +18,31 @@
18 18
19 19
20 20 if (!defined('ABSPATH')) exit; // Exit if accessed directly.
21 21
22 +add_action( 'plugins_loaded', 'qcld_chatbot_existing_plugin_activate_check_callback' );
23 +if( !function_exists('qcld_chatbot_existing_plugin_activate_check_callback') ){
24 + function qcld_chatbot_existing_plugin_activate_check_callback(){
22 25
23 -// Abort execution if Pro version is active to prevent conflicts
24 -if ( ! function_exists( 'is_plugin_active' ) ) {
25 - require_once ABSPATH . 'wp-admin/includes/plugin.php';
26 -}
26 + $check_existing_plugin = get_option('qcld_chatbot_existing_plugin_activate_check');
27 27
28 -$active_plugins = (array) get_option( 'active_plugins', array() );
29 -if ( is_multisite() ) {
30 - $active_plugins = array_merge( $active_plugins, array_keys( (array) get_site_option( 'active_sitewide_plugins', array() ) ) );
31 -}
32 28
33 -$current_plugin = plugin_basename( __FILE__ );
34 -
35 -foreach ( $active_plugins as $plugin ) {
36 - if ( $plugin !== $current_plugin && basename( $plugin ) === 'qcld-wpwbot.php' ) {
37 - return;
29 + if ( class_exists( 'qcld_wb_Chatbot' ) && isset($check_existing_plugin) && ($check_existing_plugin !== 'yes') ) {
30 + update_option('qcld_chatbot_existing_plugin_activate_check', 'yes');
31 + }else if ( ! class_exists( 'qcld_wb_Chatbot' ) ) {
32 + delete_option('qcld_chatbot_existing_plugin_activate_check');
33 + }
34 +
38 35 }
39 36 }
40 37
41 -// Also abort if we are currently activating the Pro plugin
42 -if ( isset($_REQUEST['action']) ) {
43 - if ( $_REQUEST['action'] == 'activate' && isset($_REQUEST['plugin']) && ( ( strpos($_REQUEST['plugin'], 'wpbot-pro-master') !== false ) || ( strpos($_REQUEST['plugin'], 'wpbot-pro-professional') !== false ) || ( strpos($_REQUEST['plugin'], 'wpbot-pro-professional') !== false ) || ( strpos($_REQUEST['plugin'], 'wpbot-pro-starter') !== false ) ) ) {
44 - return;
45 - }
46 - if ( $_REQUEST['action'] == 'activate-selected' && isset($_POST['checked']) && ( in_array('wpbot-pro-master/qcld-wpwbot.php', $_POST['checked']) || in_array('wpbot-pro-professional/qcld-wpwbot.php', $_POST['checked']) || in_array('wpbot-pro-starter/qcld-wpwbot.php', $_POST['checked']) ) ) {
47 - return;
48 - }
38 +$check_existing_plugin = get_option('qcld_chatbot_existing_plugin_activate_check');
39 +if ( isset($check_existing_plugin) && ($check_existing_plugin == 'yes') || class_exists( 'qcld_wb_Chatbot' ) ) {
40 + return;
49 41 }
50 42
51 43 if ( ! defined( 'QCLD_wpCHATBOT_VERSION' ) ) {
52 - define('QCLD_wpCHATBOT_VERSION', '8.5.1');
44 + define('QCLD_wpCHATBOT_VERSION', '8.3.8');
53 45 }
54 46 if ( ! defined( 'QCLD_wpCHATBOT_REQUIRED_wpCOMMERCE_VERSION' ) ) {
55 47 define('QCLD_wpCHATBOT_REQUIRED_wpCOMMERCE_VERSION', 2.2);
56 48 }
@@ -103,12 +95,8 @@
103 95 // require_once( QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/inc/qcld-floating-openai-style-filter.php' );
104 96 // require_once( QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/inc/qcld_openai_floating_content.php' );
105 97 // }
106 98
107 -// Built-in Chat Sessions & Analytics module.
108 -// Defers to the Pro addon automatically when it's active.
109 -require_once( QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'includes/chat-sessions/wpbot-chat-sessions.php' );
110 -
111 99 /**
112 100 * Main Class.
113 101 */
114 102
@@ -248,9 +236,9 @@
248 236 $capability = 'publish_posts';
249 237 }else{
250 238 $capability = 'manage_options';
251 239 }
252 - add_menu_page( esc_html('WPBot - ChatBot Lite'), esc_html('WPBot - ChatBot Lite'), 'manage_options','wpbot-panel', array($this, 'qcld_wb_chatbot_admin_page'),'dashicons-format-status', 6 );
240 + add_menu_page( esc_html('ChatBot WPBot Lite'), esc_html('ChatBot WPBot Lite'), 'manage_options','wpbot-panel', array($this, 'qcld_wb_chatbot_admin_page'),'dashicons-format-status', 6 );
253 241
254 242 add_submenu_page( 'wpbot-panel', esc_html('Settings'), esc_html('Settings'), 'manage_options','wpbot', array($this, 'qcld_wb_chatbot_admin_page_settings') );
255 243
256 244 add_submenu_page( 'wpbot-panel', esc_html('AI Settings'), esc_html('AI Settings'), 'manage_options','wpbot_openAi', 'wpbot_openAi_setting_func' );
@@ -369,9 +357,9 @@
369 357 public function qcld_get_formbuilder_forms(){
370 358 global $wpdb;
371 359 $forms = array();
372 360 if(class_exists('Qcformbuilder_Forms_Admin')){
373 - $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, PluginCheck.Security.DirectDB.UnescapedDBParameter
361 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type=%s", 'primary')); //DB Call OK, No Caching OK
374 362 if(!empty($results)){
375 363 foreach($results as $result){
376 364 $form = maybe_unserialize($result->config);
377 365 $forms[] = trim($form['name']);
@@ -386,9 +374,9 @@
386 374 }
387 375 public function qcld_wpbot_simple_response_intent(){
388 376 global $wpdb;
389 377 $table = $wpdb->prefix.'wpbot_response';
390 - $results = $wpdb->get_results("SELECT `intent` FROM `{$table}` WHERE 1 and `intent` !=''"); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
378 + $results = $wpdb->get_results("SELECT `intent` FROM `$table` WHERE 1 and `intent` !=''"); //DB Call OK, No Caching OK
391 379 $response = array();
392 380 if(!empty($results)){
393 381 foreach($results as $result){
394 382 $response[] = $result->intent;
@@ -400,9 +388,9 @@
400 388 global $wpdb;
401 389 $command = array();
402 390 if(class_exists('Qcformbuilder_Forms_Admin')){
403 391 $primary = 'primary';
404 - $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, PluginCheck.Security.DirectDB.UnescapedDBParameter
392 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type = %s", $primary)); //DB Call OK, No Caching OK
405 393
406 394 if(!empty($results)){
407 395 foreach($results as $result){
408 396 $form = maybe_unserialize($result->config);
@@ -440,9 +428,9 @@
440 428 public function qcld_get_formbuilder_form_ids(){
441 429 global $wpdb;
442 430 $forms = array();
443 431 if(class_exists('Qcformbuilder_Forms_Admin')){
444 - $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, PluginCheck.Security.DirectDB.UnescapedDBParameter
432 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type=%s", 'primary')); //DB Call OK, No Caching OK
445 433
446 434 if(!empty($results)){
447 435 foreach($results as $result){
448 436 $form = maybe_unserialize($result->config);
@@ -476,9 +464,9 @@
476 464 $conversation_form_ids = array();
477 465 $conversation_form_names = array();
478 466
479 467 if(class_exists('Qcformbuilder_Forms_Admin')){
480 - $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, PluginCheck.Security.DirectDB.UnescapedDBParameter
468 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type=%s", 'primary')); //DB Call OK, No Caching OK
481 469 if(!empty($results)){
482 470
483 471 foreach($results as $result){
484 472 $form = maybe_unserialize($result->config);
@@ -504,12 +492,12 @@
504 492 'yes' => str_replace('\\', '',get_option('qlcd_wp_chatbot_yes')),
505 493 'no' => str_replace('\\', '',get_option('qlcd_wp_chatbot_no')),
506 494 'or' => str_replace('\\', '',get_option('qlcd_wp_chatbot_or')),
507 495 'host' => str_replace('\\', '',get_option('qlcd_wp_chatbot_host')),
508 - 'agent' => str_replace(['\\','<','>'], '',esc_html(is_array(maybe_unserialize(get_option('qlcd_wp_chatbot_agent'))) ? current(maybe_unserialize(get_option('qlcd_wp_chatbot_agent'))) : get_option('qlcd_wp_chatbot_agent'))),
496 + 'agent' => str_replace(['\\','<','>'], '',esc_html(get_option('qlcd_wp_chatbot_agent'))),
509 497 'agent_image' => get_option('wp_chatbot_agent_image'),
510 498 'agent_image_path' => esc_url((!empty(get_option('wp_chatbot_custom_icon_path')) && !is_404(get_option('wp_chatbot_custom_icon_path'))) ? $this->qcld_wb_chatbot_agent_icon() : QCLD_wpCHATBOT_IMG_URL . 'icon-1.png'),
511 - 'shopper_demo_name' => str_replace('\\', '', is_array(maybe_unserialize(get_option('qlcd_wp_chatbot_shopper_demo_name'))) ? current(maybe_unserialize(get_option('qlcd_wp_chatbot_shopper_demo_name'))) : get_option('qlcd_wp_chatbot_shopper_demo_name')),
499 + 'shopper_demo_name' => str_replace('\\', '',get_option('qlcd_wp_chatbot_shopper_demo_name')),
512 500 'agent_join' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_agent_join'))),
513 501 'welcome' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome'))),
514 502 'welcome_back' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome_back'))),
515 503 'hi_there' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_hi_there'))),
@@ -535,54 +523,54 @@
535 523 'sys_key_order' => get_option('qlcd_wp_chatbot_sys_key_order'),
536 524 'sys_key_support' => get_option('qlcd_wp_chatbot_sys_key_support'),
537 525 'sys_key_reset' => get_option('qlcd_wp_chatbot_sys_key_reset'),
538 526 'sys_key_email' => get_option('qlcd_wp_chatbot_sys_key_email'),
539 - 'help_welcome' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_help_welcome'))),
540 - 'back_to_start' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_back_to_start'))),
541 - 'help_msg' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_help_msg'))),
542 - 'reset' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_reset'))),
543 - 'wildcard_product' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_wildcard_product'))),
544 - 'wildcard_catalog' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_wildcard_catalog'))),
545 - 'featured_products' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_featured_products'))),
546 - 'sale_products' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_sale_products'))),
547 - 'wildcard_order' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_wildcard_order'))),
527 + 'help_welcome' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_help_welcome'))),
528 + 'back_to_start' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_back_to_start'))),
529 + 'help_msg' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_help_msg'))),
530 + 'reset' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_reset'))),
531 + 'wildcard_product' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_wildcard_product'))),
532 + 'wildcard_catalog' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_wildcard_catalog'))),
533 + 'featured_products' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_featured_products'))),
534 + 'sale_products' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_sale_products'))),
535 + 'wildcard_order' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_wildcard_order'))),
548 536 'wildcard_support' => get_option('qlcd_wp_chatbot_wildcard_support'),
549 - 'product_asking' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_product_asking'))),
550 - 'product_suggest' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_product_suggest'))),
551 - 'product_infinite' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_product_infinite'))),
552 - 'product_success' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_product_success'))),
553 - 'product_fail' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_product_fail'))),
554 - 'support_welcome' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_support_welcome'))),
537 + 'product_asking' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_product_asking'))),
538 + 'product_suggest' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_product_suggest'))),
539 + 'product_infinite' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_product_infinite'))),
540 + 'product_success' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_product_success'))),
541 + 'product_fail' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_product_fail'))),
542 + 'support_welcome' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_support_welcome'))),
555 543 'support_email' => get_option('qlcd_wp_chatbot_support_email'),
556 - 'support_option_again' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_support_option_again'))),
557 - 'asking_email' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_asking_email'))),
558 - 'asking_msg' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_asking_msg'))),
559 - 'no_result' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_no_result'))),
544 + 'support_option_again' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_support_option_again'))),
545 + 'asking_email' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_asking_email'))),
546 + 'asking_msg' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_asking_msg'))),
547 + 'no_result' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_no_result'))),
560 548 'support_phone' => get_option('qlcd_wp_chatbot_support_phone'),
561 - 'asking_phone' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_asking_phone'))),
562 - 'thank_for_phone' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_thank_for_phone'))),
563 - 'support_query' => ((gettype(get_option('support_query')) == 'string') ? $this->qcld_wb_chatbot_str_replace(maybe_unserialize( get_option('support_query'))) : $this->qcld_wb_chatbot_str_replace(( get_option('support_query')))),
564 - 'support_ans' => (gettype(get_option('support_ans')) == 'string') ? $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('support_ans'))) : $this->qcld_wb_chatbot_str_replace((get_option('support_ans'))),
549 + 'asking_phone' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_asking_phone'))),
550 + 'thank_for_phone' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_thank_for_phone'))),
551 + 'support_query' => ((gettype(get_option('support_query')) == 'string') ? $this->qcld_wb_chatbot_str_replace(unserialize( get_option('support_query'))) : $this->qcld_wb_chatbot_str_replace(( get_option('support_query')))),
552 + 'support_ans' => (gettype(get_option('support_ans')) == 'string') ? $this->qcld_wb_chatbot_str_replace(unserialize(get_option('support_ans'))) : $this->qcld_wb_chatbot_str_replace((get_option('support_ans'))),
565 553 'notification_interval' => get_option('qlcd_wp_chatbot_notification_interval'),
566 - 'notifications' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications'))),
567 - 'order_welcome' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_order_welcome'))),
568 - 'order_username_asking' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_order_username_asking'))),
569 - 'order_username_password' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_order_username_password'))),
554 + 'notifications' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_notifications'))),
555 + 'order_welcome' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_order_welcome'))),
556 + 'order_username_asking' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_order_username_asking'))),
557 + 'order_username_password' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_order_username_password'))),
570 558 'order_user' => get_option('qlcd_wp_chatbot_order_user'),
571 559 'order_login' => is_user_logged_in(),
572 560 'is_chat_session_active' => qcld_wpbot_is_active_chat_history(),
573 561 'order_nonce' => wp_create_nonce("wpwbot-order-nonce"),
574 - 'order_email_support' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_order_email_support'))),
562 + 'order_email_support' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_order_email_support'))),
575 563 'email_fail' => str_replace('\\', '', get_option('qlcd_wp_chatbot_email_fail')),
576 - 'invalid_email' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_invalid_email'))),
564 + 'invalid_email' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_invalid_email'))),
577 565 'stop_words' => str_replace('\\', '', get_option('qlcd_wp_chatbot_stop_words')),
578 566 'currency_symbol' => '',
579 567 'enable_messenger' => get_option('enable_wp_chatbot_messenger'),
580 - 'messenger_label' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_messenger_label'))),
568 + 'messenger_label' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_messenger_label'))),
581 569 'fb_page_id' => get_option('qlcd_wp_chatbot_fb_page_id'),
582 570 'enable_skype' => get_option('enable_wp_chatbot_skype'),
583 571 'enable_whats' => get_option('enable_wp_chatbot_whats'),
584 - 'whats_label' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_whats_label'))),
572 + 'whats_label' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_whats_label'))),
585 573 'whats_num' => get_option('qlcd_wp_chatbot_whats_num'),
586 574 'ret_greet' => get_option('qlcd_wp_chatbot_ret_greet'),
587 575 'enable_exit_intent' => get_option('enable_wp_chatbot_exit_intent'),
588 576 'exit_intent_msg' => str_replace('\\', '', get_option('wp_chatbot_exit_intent_msg')),
@@ -597,9 +585,9 @@
597 585 'auto_open_once' => get_option('wp_chatbot_auto_open_once'),
598 586 'proactive_bg_color' => get_option('wp_chatbot_proactive_bg_color'),
599 587 'disable_feedback' => get_option('disable_wp_chatbot_feedback'),
600 588 'disable_faq' => get_option('disable_wp_chatbot_faq'),
601 - 'feedback_label' => $this->qcld_wb_chatbot_str_replace(maybe_unserialize(get_option('qlcd_wp_chatbot_feedback_label'))),
589 + 'feedback_label' => $this->qcld_wb_chatbot_str_replace(unserialize(get_option('qlcd_wp_chatbot_feedback_label'))),
602 590 'enable_meta_title' =>get_option('enable_wp_chatbot_meta_title'),
603 591 'meta_label' =>str_replace('\\', '', get_option('qlcd_wp_chatbot_meta_label')),
604 592 'phone_number' => get_option('qlcd_wp_chatbot_phone'),
605 593 'disable_site_search' => get_option('disable_wp_chatbot_site_search'),
@@ -2477,10 +2465,9 @@
2477 2465 //Bot Response Table
2478 2466 $table_rag_documents = $wpdb->prefix . "rag_documents";
2479 2467
2480 2468 $charset = $wpdb->get_charset_collate();
2481 - if ($wpdb->get_var($wpdb->prepare("SHOW TABLES LIKE %s", $wpdb->esc_like($table_rag_documents))) != $table_rag_documents) { // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
2482 - // phpcs:disable WordPress.DB.DirectDatabaseQuery.SchemaChange
2469 + if ($wpdb->get_var("SHOW TABLES LIKE '$table_rag_documents'") != $table_rag_documents) {
2483 2470 $sql_rag_documents = "CREATE TABLE $table_rag_documents (
2484 2471 id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
2485 2472 doc_id VARCHAR(100) DEFAULT NULL,
2486 2473 title VARCHAR(255) NOT NULL,
@@ -2494,14 +2481,12 @@
2494 2481 created_at DATETIME DEFAULT CURRENT_TIMESTAMP
2495 2482 ) $charset;";
2496 2483 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
2497 2484 dbDelta($sql_rag_documents);
2498 - // phpcs:enable WordPress.DB.DirectDatabaseQuery.SchemaChange
2499 2485 }
2500 2486 $table_report = $wpdb->prefix . 'wpbot_chat_report';
2501 2487
2502 - if ( $wpdb->get_var( $wpdb->prepare("SHOW TABLES LIKE %s", $wpdb->esc_like($table_report)) ) != $table_report ) { // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
2503 - // phpcs:disable WordPress.DB.DirectDatabaseQuery.SchemaChange
2488 + if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_report'" ) != $table_report ) {
2504 2489 $sql_report = "
2505 2490 CREATE TABLE `$table_report` (
2506 2491 `id` int(11) NOT NULL AUTO_INCREMENT,
2507 2492 `user_id` int(11) NOT NULL,
@@ -2515,12 +2500,11 @@
2515 2500 ";
2516 2501
2517 2502 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
2518 2503 dbDelta( $sql_report );
2519 - // phpcs:enable WordPress.DB.DirectDatabaseQuery.SchemaChange
2520 2504 }
2521 2505
2522 - $sqlqry = $wpdb->get_results($wpdb->prepare("select * from {$table1} where id = %d", 1)); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
2506 + $sqlqry = $wpdb->get_results($wpdb->prepare("select * from $table1 where id = %d", 1)); //DB Call OK, No Caching OK
2523 2507 if(empty($sqlqry)){
2524 2508
2525 2509 $query = 'What Can WPBot do for you?';
2526 2510 $response = 'WPBot can converse fluidly with users on website and FB messenger. It can search your website, send/collect eMails, user feedback & phone numbers . You can create Custom Intents from DialogFlow with Rich Messages & Card responses!';
@@ -2526,9 +2510,9 @@
2526 2510 $response = 'WPBot can converse fluidly with users on website and FB messenger. It can search your website, send/collect eMails, user feedback & phone numbers . You can create Custom Intents from DialogFlow with Rich Messages & Card responses!';
2527 2511
2528 2512 $data = array('query' => $query, 'keyword' => '', 'response'=> $response, 'intent'=> '');
2529 2513 $format = array('%s','%s', '%s', '%s');
2530 - $wpdb->insert($table1,$data,$format); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, PluginCheck.Security.DirectDB.UnescapedDBParameter
2514 + $wpdb->insert($table1,$data,$format); //DB Call OK, No Caching OK
2531 2515 }
2532 2516
2533 2517 $url = get_site_url();
2534 2518 $url = wp_parse_url($url);
@@ -3492,9 +3476,9 @@
3492 3476 <div class="wrap qcld-main-wrapper">
3493 3477 <div class="qcld-wp-chatbot-wrap-header">
3494 3478
3495 3479 <div class="qcld-wp-chatbot-wrap-header-logo"><a href="#" class="qcld-wp-chatbot-wrap-site__logo"><img style="width:100%" src="<?php echo esc_url( QCLD_wpCHATBOT_IMG_URL . '/chatbot.png' ); ?>" alt="Dialogflow CX"> WPBot Control Panel </a>
3496 - <p><strong>Core Version:</strong> v<?php echo esc_html( QCLD_wpCHATBOT_VERSION ); ?></p>
3480 + <p><strong>Core Version:</strong> v<?php echo QCLD_wpCHATBOT_VERSION; ?></p>
3497 3481 </div>
3498 3482 <ul class="qcld-wp-chatbot-wrap-version-wrapper">
3499 3483 <li>
3500 3484 <a class="wpchatbot-Upgrade" href="https://www.wpbot.pro/" target="_blank">Upgrade To Pro</a>
@@ -4094,9 +4078,9 @@
4094 4078 if(!get_option('qlcd_wp_chatbot_did_you_mean')) {
4095 4079 update_option('qlcd_wp_chatbot_did_you_mean', maybe_serialize(array('Did you mean?')));
4096 4080 }
4097 4081
4098 - $sqlqry = $wpdb->get_results( $wpdb->prepare( "select * from {$table1} where id = %d", 1 ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
4082 + $sqlqry = $wpdb->get_results( $wpdb->prepare( "select * from $table1 where id = %d", 1 ) ); //DB Call OK, No Caching OK
4099 4083 if(empty($sqlqry)){
4100 4084
4101 4085 $query = 'What Can WPBot do for you?';
4102 4086 $response = 'WPBot can converse fluidly with users on website and FB messenger. It can search your website, send/collect eMails, user feedback & phone numbers . You can create Custom Intents from DialogFlow with Rich Messages & Card responses!';
@@ -4102,9 +4086,9 @@
4102 4086 $response = 'WPBot can converse fluidly with users on website and FB messenger. It can search your website, send/collect eMails, user feedback & phone numbers . You can create Custom Intents from DialogFlow with Rich Messages & Card responses!';
4103 4087
4104 4088 $data = array('query' => $query, 'keyword' => '', 'response'=> $response, 'intent'=> '');
4105 4089 $format = array('%s','%s', '%s', '%s');
4106 - $wpdb->insert($table1,$data,$format); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, PluginCheck.Security.DirectDB.UnescapedDBParameter
4090 + $wpdb->insert($table1,$data,$format); //DB Call OK, No Caching OK
4107 4091 }
4108 4092
4109 4093 update_option('qc_wpb_simple_response_db_upgrade_free2', 'done');
4110 4094
@@ -4150,11 +4134,11 @@
4150 4134 if(isset($_POST['qc_bot_str_id']) && wp_unslash($_POST['qc_bot_str_id'])!=''){
4151 4135 $id = sanitize_text_field(wp_unslash($_POST['qc_bot_str_id']));
4152 4136 $where = array('id'=>$id);
4153 4137 $whereformat = array('%d');
4154 - $wpdb->update( $table, $data, $where, $format, $whereformat ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
4138 + $wpdb->update( $table, $data, $where, $format, $whereformat ); //DB Call OK, No Caching OK
4155 4139 }else{
4156 - $wpdb->insert($table,$data,$format); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
4140 + $wpdb->insert($table,$data,$format); //DB Call OK, No Caching OK
4157 4141 }
4158 4142
4159 4143 qcld_mysql_remove_existing_indexes();
4160 4144
@@ -4160,9 +4144,9 @@
4160 4144
4161 4145 // phpcs:ignore
4162 4146 $wpdb->query("ALTER TABLE $table ADD FULLTEXT(`query`, `keyword`, `response`)");
4163 4147
4164 - wp_safe_redirect(admin_url('admin.php?page=simple-text-response'));exit;
4148 + wp_redirect(admin_url('admin.php?page=simple-text-response'));exit;
4165 4149
4166 4150 }
4167 4151 $table = $wpdb->prefix.'wpbot_response';
4168 4152
@@ -4193,27 +4177,15 @@
4193 4177 }
4194 4178 if(isset($_POST['qc_bot_str_fields']) && !empty($_POST['qc_bot_str_fields'])){
4195 4179 $table = $wpdb->prefix.'wpbot_response';
4196 4180 $fields = rest_sanitize_array(wp_unslash($_POST['qc_bot_str_fields']));
4197 -
4198 - $allowed_fields = array('query', 'keyword', 'response');
4199 - $valid_fields = array();
4200 - if(is_array($fields)){
4201 - foreach($fields as $field){
4202 - if(in_array($field, $allowed_fields)){
4203 - $valid_fields[] = $field;
4204 - }
4205 - }
4206 - }
4207 - $fields = $valid_fields;
4208 -
4209 4181 update_option('qc_bot_str_fields', $fields);
4210 4182 qcld_mysql_remove_existing_indexes();
4211 4183
4212 4184 if($fields && !empty($fields)){
4213 - $safe_fields = array_map(function($f) { return '`' . $f . '`'; }, $fields);
4185 +
4214 4186 // phpcs:ignore
4215 - $wpdb->query("ALTER TABLE $table ADD FULLTEXT(".implode(', ', $safe_fields).")");
4187 + $wpdb->query("ALTER TABLE $table ADD FULLTEXT(".implode(', ', $fields).")");
4216 4188
4217 4189 }
4218 4190 }
4219 4191
@@ -4237,9 +4209,9 @@
4237 4209 if( !function_exists('qcld_wpbot_simple_response_intent') ){
4238 4210 function qcld_wpbot_simple_response_intent(){
4239 4211 global $wpdb;
4240 4212 $table = $wpdb->prefix.'wpbot_response';
4241 - $results = $wpdb->get_results("SELECT `intent` FROM `{$table}` WHERE 1 and `intent` !=''"); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
4213 + $results = $wpdb->get_results("SELECT `intent` FROM `$table` WHERE 1 and `intent` !=''"); //DB Call OK, No Caching OK
4242 4214 $response = array();
4243 4215 if(!empty($results)){
4244 4216 foreach($results as $result){
4245 4217 $response[] = $result->intent;
@@ -4252,9 +4224,9 @@
4252 4224 function qcld_mysql_remove_existing_indexes(){
4253 4225 global $wpdb;
4254 4226 $table = $wpdb->prefix.'wpbot_response';
4255 4227
4256 - $results = $wpdb->get_results("SHOW INDEX FROM {$table}"); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, PluginCheck.Security.DirectDB.UnescapedDBParameter
4228 + $results = $wpdb->get_results("SHOW INDEX FROM $table"); //DB Call OK, No Caching OK
4257 4229 $indexes = array();
4258 4230 foreach($results as $result){
4259 4231
4260 4232
@@ -4281,5 +4253,7 @@
4281 4253 exit( wp_redirect( esc_url( admin_url('admin.php?page=wpbot') ) ) );
4282 4254 }
4283 4255 }
4284 4256 }
4285 -}
4257 +}
4258 +
4259 +