PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 7.2.8
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v7.2.8
8.7.8 8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 All 534 releases
← All changes | functions.php +71 -271 8.7.17.2.8 View file →
@@ -3,46 +3,9 @@
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 -}
7 +add_action('wp_footer', 'wp_chatbot_load_footer_html');
45 8 add_action( 'admin_footer', 'qcld_style_for_hide_iframe');
46 9 function qcld_style_for_hide_iframe(){
47 10 ?>
48 11 <script>
@@ -58,62 +21,8 @@
58 21 });
59 22 </script>
60 23 <?php
61 24 }
62 -/**
63 - * Extract a YouTube video ID from common URL formats.
64 - *
65 - * @param string $url YouTube watch, embed, short, or youtu.be URL.
66 - * @return string Video ID or empty string.
67 - */
68 -if ( ! function_exists( 'qcld_wpbot_extract_youtube_id' ) ) {
69 - function qcld_wpbot_extract_youtube_id( $url ) {
70 - $url = trim( (string) $url );
71 - if ( $url === '' ) {
72 - return '';
73 - }
74 -
75 - if ( preg_match( '/(?:youtube\.com\/(?:embed\/|shorts\/|live\/|watch\?(?:.*&)?v=)|youtu\.be\/)([A-Za-z0-9_-]{11})/', $url, $matches ) ) {
76 - return $matches[1];
77 - }
78 -
79 - $path = (string) wp_parse_url( $url, PHP_URL_PATH );
80 - $base = basename( $path );
81 - if ( preg_match( '/^[A-Za-z0-9_-]{11}$/', $base ) ) {
82 - return $base;
83 - }
84 -
85 - return '';
86 - }
87 -}
88 -if ( ! function_exists( 'qcld_wpbot_youtube_icon_embed_src' ) ) {
89 - function qcld_wpbot_youtube_icon_embed_src( $url ) {
90 - $video_id = qcld_wpbot_extract_youtube_id( $url );
91 - if ( $video_id === '' ) {
92 - return '';
93 - }
94 -
95 - return add_query_arg(
96 - array(
97 - 'autoplay' => '1',
98 - 'mute' => '1',
99 - 'loop' => '1',
100 - 'playlist' => $video_id,
101 - 'controls' => '0',
102 - 'showinfo' => '0',
103 - 'rel' => '0',
104 - 'fs' => '0',
105 - 'iv_load_policy' => '3',
106 - 'cc_load_policy' => '0',
107 - 'disablekb' => '1',
108 - 'playsinline' => '1',
109 - 'modestbranding' => '1',
110 - 'color' => 'white',
111 - ),
112 - 'https://www.youtube.com/embed/' . rawurlencode( $video_id )
113 - );
114 - }
115 -}
116 25 function wp_chatbot_load_footer_html(){
117 26 if ( get_option('disable_wp_chatbot') != 1 && wp_chatbot_load_controlling() === true) {
118 27
119 28 ?>
@@ -119,9 +28,9 @@
119 28 ?>
120 29 <style>
121 30 <?php if(get_option('wp_chatbot_custom_css')!="") {
122 31
123 - echo wp_strip_all_tags( get_option('wp_chatbot_custom_css') );// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
32 + echo get_option('wp_chatbot_custom_css');
124 33 }
125 34 ?>
126 35 </style>
127 36
@@ -146,9 +55,9 @@
146 55 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
147 56 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
148 57 // }
149 58 ?>
150 - <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';} ?>">
59 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
151 60 <div id="wp-chatbot-integration-container">
152 61 <div class="wp-chatbot-integration-button-container">
153 62 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
154 63 <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
@@ -209,9 +118,9 @@
209 118 }
210 119 ?>
211 120 <div class="wp-chatbot-notification-agent-profile">
212 121 <div class="wp-chatbot-notification-widget-avatar" ><img
213 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
122 + src="<?php echo esc_attr($wp_chatbot_custom_agent_path); ?>" alt=""></div>
214 123 <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>
215 124 </div>
216 125 <?php
217 126 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -234,72 +143,14 @@
234 143 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
235 144 } else {
236 145 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
237 146 }
238 - $_wpbot_icon_video = get_option('wp_chatbot_icon_video', '');
239 - $_wpbot_video_is_youtube = ( strpos( $_wpbot_icon_video, 'youtube.com' ) !== false || strpos( $_wpbot_icon_video, 'youtu.be' ) !== false );
240 - $_wpbot_youtube_embed_src = $_wpbot_video_is_youtube ? qcld_wpbot_youtube_icon_embed_src( $_wpbot_icon_video ) : '';
241 - $_wpbot_video_delay_ms = absint( get_option( 'wp_chatbot_icon_video_delay', 0 ) ) * 1000;
242 -
243 - $wp_chatbot_ball_is_youtube = ($_wpbot_icon_video !== '' && (strpos($_wpbot_icon_video, 'youtube.com') !== false || strpos($_wpbot_icon_video, 'youtu.be') !== false));
244 - $wp_chatbot_ball_is_video = ($_wpbot_icon_video !== '' && !$wp_chatbot_ball_is_youtube);
245 - $wp_chatbot_ball_has_video = ($wp_chatbot_ball_is_youtube || $wp_chatbot_ball_is_video);
246 147 ?>
247 148 <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
248 - alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
249 - id="wp-chatbot-ball-icon-img"
250 - <?php if ($wp_chatbot_ball_has_video) { echo 'style="display:none;"'; } ?> >
251 - <?php if ( $_wpbot_icon_video !== '' ) : ?>
252 - <?php if ( $_wpbot_video_is_youtube && $_wpbot_youtube_embed_src !== '' ) : ?>
253 - <iframe class="wpbot-icon-video" src="<?php echo $_wpbot_video_delay_ms > 0 ? 'about:blank' : esc_url( $_wpbot_youtube_embed_src ); ?>" data-wpbot-yt-src="<?php echo esc_url( $_wpbot_youtube_embed_src ); ?>" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture"></iframe>
254 - <?php elseif ( ! $_wpbot_video_is_youtube ) : ?>
255 - <video class="wpbot-icon-video" src="<?php echo esc_url( $_wpbot_icon_video ); ?>" autoplay muted loop playsinline preload="auto"></video>
256 - <?php endif; ?>
257 - <?php endif; ?>
149 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
150 +
258 151 </div>
259 -
260 152 </div>
261 - <?php
262 - if ( $_wpbot_icon_video !== '' ) :
263 - ?>
264 - <script>
265 - (function(){
266 - var wpbotDelay = <?php echo (int) $_wpbot_video_delay_ms; ?>;
267 - function wpbotForcePlay(){
268 - var v = document.querySelector('#wp-chatbot-ball video.wpbot-icon-video');
269 - if( v ){
270 - v.muted = true;
271 - v.volume = 0;
272 - v.loop = true;
273 - var tries = 0, maxTries = 30;
274 - var timer = setInterval(function(){
275 - tries++;
276 - v.play().then(function(){ clearInterval(timer); }).catch(function(){});
277 - if( tries >= maxTries ) clearInterval(timer);
278 - }, 300);
279 - }
280 - var yt = document.querySelector('#wp-chatbot-ball iframe.wpbot-icon-video');
281 - if( yt ){
282 - var ytSrc = yt.getAttribute('data-wpbot-yt-src');
283 - if( ytSrc && ( !yt.getAttribute('src') || yt.getAttribute('src') === 'about:blank' || yt.getAttribute('src').indexOf('autoplay=1') === -1 ) ){
284 - yt.setAttribute('src', ytSrc);
285 - }
286 - }
287 - }
288 - function wpbotDelayedPlay(){
289 - setTimeout(wpbotForcePlay, wpbotDelay);
290 - }
291 - if( document.readyState === 'loading' ){
292 - document.addEventListener('DOMContentLoaded', wpbotDelayedPlay);
293 - } else {
294 - wpbotDelayedPlay();
295 - }
296 - window.addEventListener('load', function(){
297 - setTimeout(wpbotForcePlay, wpbotDelay);
298 - });
299 - })();
300 - </script>
301 - <?php endif; ?>
302 153 <?php
303 154 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
304 155 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
305 156 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -416,9 +267,9 @@
416 267 return $wp_chatbot_load;
417 268 }
418 269 //checking Devices
419 270 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
271 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 272 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))) {
422 273 return true;
423 274 } else {
424 275 return false;
@@ -425,10 +276,10 @@
425 276 }
426 277 }
427 278 //Checking wpwbot opening hour
428 279 function wp_chatbot_check_opening_hours(){
429 - $curent_day=strtolower(gmdate('l',strtotime(current_time( 'mysql' ))));
430 - $current_time=gmdate('H:i',strtotime(current_time( 'mysql')));
280 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
281 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
431 282 $is_wpwbot_open =false;
432 283 if(get_option('wpwbot_hours')) {
433 284 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
434 285 if (isset($wpwbot_times[$curent_day])) {
@@ -450,16 +301,9 @@
450 301 */
451 302 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 303 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 304 function qcld_wb_chatbot_keyword(){
454 - // Verify nonce for security
455 - $nonce = isset($_POST['security']) ? sanitize_text_field(wp_unslash($_POST['security'])) : (isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '');
456 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) && ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
457 - wp_send_json_error( array( 'status' => 'fail', 'message' => 'Security check failed.' ) );
458 - wp_die();
459 - }
460 -
461 - $keyword = sanitize_text_field(wp_unslash($_POST['keyword']));
305 + $keyword = sanitize_text_field($_POST['keyword']);
462 306 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 307 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
464 308 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
465 309 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -505,9 +349,9 @@
505 349 endwhile;
506 350 wp_reset_postdata();
507 351 $html .= '</ul>';
508 352 if ($total_product_num > $product_per_page && $product_per_page > 0 ) {
509 - $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>';
353 + $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>';
510 354 }
511 355 }
512 356 $html .= '</div>';
513 357 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,9 +379,9 @@
535 379 }
536 380 }
537 381 $html .= '</ul>';
538 382 if ($total_product_num > $product_per_page && $product_per_page > 0) {
539 - $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>';
383 + $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>';
540 384 }
541 385 }
542 386 $html .= '</div>';
543 387 }
@@ -552,15 +396,16 @@
552 396 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 397 function qcld_wb_chatbot_category(){
554 398 $category_type="common";
555 399 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
400 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
401 +
557 402 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
403 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 404 }
560 405 $html = "";
561 406 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
407 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 408 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 409 $category_type="hasChilds";
565 410 }
566 411 $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>';
@@ -573,10 +418,10 @@
573 418 */
574 419 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 420 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 421 function qcld_wb_chatbot_sub_category(){
577 - $parent_id = intval( wp_unslash( $_POST['parent_id'] ) );
578 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all' ) );
422 + $parent_id = stripslashes($_POST['parent_id']);
423 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 424 $html = "";
580 425 foreach ($terms as $term) {
581 426 $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>';
582 427 }
@@ -588,9 +433,9 @@
588 433 */
589 434 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 435 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 436 function qcld_wb_chatbot_category_products(){
592 - $category_id = intval( wp_unslash( $_POST['category'] ) );
437 + $category_id = stripslashes($_POST['category']);
593 438 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
594 439 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
595 440 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
596 441 //Merging all query together.
@@ -827,11 +672,11 @@
827 672 //load more
828 673 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 674 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 675 function qcld_wb_chatbot_load_more(){
831 - $offset = intval( wp_unslash( $_POST['offset'] ) );
832 - $search_type = sanitize_text_field( wp_unslash( $_POST['search_type'] ) );
833 - $search_term = sanitize_text_field( wp_unslash( $_POST['search_term'] ) );
676 + $offset = stripslashes($_POST['offset']);
677 + $search_type = stripslashes($_POST['search_type']);
678 + $search_term = stripslashes($_POST['search_term']);
834 679 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
835 680 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
836 681 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
837 682 $next_offset = intval($product_per_page + $offset);
@@ -962,9 +807,9 @@
962 807 //product details
963 808 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 809 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 810 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
811 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 812 //Tracking product view from chat board
968 813 wp_chatbot_view_track_product_by_id($product_id);
969 814 //wpcommerce product factory
970 815 $wc_pf = new WC_Product_Factory();
@@ -1037,11 +882,10 @@
1037 882 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 883 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1039 884 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1040 885 foreach ($values as $value) {
1041 - $attr_key = 'attribute_' . sanitize_title( $name );
1042 - if ( isset( $_REQUEST[ $attr_key ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
1043 - $selected_value = sanitize_text_field( wp_unslash( $_REQUEST[ $attr_key ] ) );
886 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
887 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 888 } else {
1045 889 $selected_value = '';
1046 890 }
1047 891 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1065,12 +909,12 @@
1065 909 //Add to cart for variable product.
1066 910 add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1067 911 add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1068 912 function qcld_variable_add_to_cart(){
1069 - $product_id = intval( wp_unslash( $_POST['p_id'] ) );
1070 - $quantity = intval( wp_unslash( $_POST['quantity'] ) );
1071 - $variations_id = intval( wp_unslash( $_POST['variations_id'] ) );
1072 - $attrs = isset( $_POST['attributes'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $_POST['attributes'] ) ) : array();
913 + $product_id = stripslashes($_POST['p_id']);
914 + $quantity = stripslashes($_POST['quantity']);
915 + $variations_id = stripslashes($_POST['variations_id']);
916 + $attrs = stripslashes($_POST['attributes']);
1073 917 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 918 $attributes = array();
1075 919 foreach ($attrs as $attr) {
1076 920 $single = explode("#", $attr);
@@ -1090,10 +934,10 @@
1090 934 //Add to cart for simple product.
1091 935 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 936 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 937 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
938 + $product_id = stripslashes($_POST['product_id']);
939 + $product_quantity = stripslashes($_POST['quantity']);
1096 940 global $wpcommerce;
1097 941 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 942 if ($result != false) {
1099 943 wp_send_json('simple');
@@ -1104,19 +948,15 @@
1104 948 //Support part
1105 949 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 950 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 951 function qcld_wb_chatbot_support_email(){
1108 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1109 - if ( ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
1110 - wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'chatbot' ) ) );
1111 - }
1112 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1113 - $email = sanitize_email(wp_unslash($_POST['email']));
1114 - $message = sanitize_text_field(wp_unslash($_POST['message']));
952 + $name = trim(sanitize_text_field($_POST['name']));
953 + $email = sanitize_email($_POST['email']);
954 + $message = sanitize_text_field($_POST['message']);
1115 955 $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1116 956 //Extract Domain
1117 957 $url = get_site_url();
1118 - $url = wp_parse_url($url);
958 + $url = parse_url($url);
1119 959 $domain = $url['host'];
1120 960 //$admin_email = "admin@" . $domain;
1121 961 $admin_email = sanitize_email(get_option('admin_email'));
1122 962 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1126,8 +966,9 @@
1126 966 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1127 967 }else{
1128 968 $fromEmail = "wordpress@" . $domain;
1129 969 }
970 +
1130 971 //Starting messaging and status.
1131 972 $response['status'] = 'fail';
1132 973 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1133 974 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1161,15 +1002,14 @@
1161 1002 //Support Phone
1162 1003 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1004 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1005 function qcld_wb_chatbot_support_phone(){
1165 - check_ajax_referer('qcsecretbotnonceval123qc', 'nonce');
1166 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1167 - $phone =sanitize_text_field(wp_unslash($_POST['phone']));
1006 + $name = trim(sanitize_text_field($_POST['name']));
1007 + $phone =sanitize_text_field($_POST['phone']);
1168 1008 $subject = 'WPBot Support Mail Request for Call Back';
1169 1009 //Extract Domain
1170 1010 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1011 + $url = parse_url($url);
1172 1012 $domain = $url['host'];
1173 1013 //$admin_email = "admin@" . $domain;
1174 1014 $admin_email = get_option('admin_email');
1175 1015 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1207,9 +1047,9 @@
1207 1047 }
1208 1048 // Order Status part. removed
1209 1049
1210 1050 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1051 + return $items[rand(0, count($items) - 1)];
1212 1052 }
1213 1053 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1054 $refined_mesgses = array();
1215 1055 foreach ($messages as $message) {
@@ -1224,10 +1064,10 @@
1224 1064 // First check the nonce, if it fails the function will break
1225 1065 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1066 // Nonce is checked, get the POST data and sign user on
1227 1067 $info = array();
1228 - $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1229 - $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1068 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1069 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1070 $info['remember'] = true;
1231 1071 $user_signon = wp_signon($info, false);
1232 1072 $response = array();
1233 1073 if (is_wp_error($user_signon)) {
@@ -1283,9 +1123,9 @@
1283 1123 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1284 1124 }
1285 1125 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1126 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1127 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1128 <div class="order-items">';
1289 1129 $singleOrder = new WC_Order($order->ID);
1290 1130 $items = $singleOrder->get_items();
1291 1131 foreach ($items as $item) {
@@ -1385,9 +1225,9 @@
1385 1225 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1226 <div class="wp-chatbot-product-summary">
1387 1227 <div class="wp-chatbot-product-table">
1388 1228 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1229 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1230 <div class="price">' . $product->get_price_html() . '</div>';
1391 1231 $html .= ' </div>
1392 1232 </div>
1393 1233 </div></a>
@@ -1456,9 +1296,9 @@
1456 1296 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1297 <div class="wp-chatbot-product-summary">
1458 1298 <div class="wp-chatbot-product-table">
1459 1299 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1300 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1301 <div class="price">' . $product->get_price_html() . '</div>';
1462 1302 $html .= ' </div>
1463 1303 </div>
1464 1304 </div></a>
@@ -1632,12 +1472,11 @@
1632 1472 //Updating the cart items.
1633 1473 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1474 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1475 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1476 //getting cart items n
1638 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item_key']));
1639 - $qnty = sanitize_text_field(wp_unslash($_POST['qnty']));
1477 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1478 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1479 global $wpcommerce;
1641 1480 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 1481 wp_send_json($result);
1643 1482 }
@@ -1644,11 +1483,10 @@
1644 1483 //Show item after removing from cart page.
1645 1484 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1485 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1486 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1487 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1488 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1489 global $wpcommerce;
1652 1490 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 1491 wp_send_json($result);
1654 1492 }
@@ -1704,9 +1542,9 @@
1704 1542
1705 1543 if(class_exists('Qcformbuilder_Forms_Admin')){
1706 1544
1707 1545
1708 - $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
1546 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); //DB Call OK, No Caching OK
1709 1547
1710 1548 if(!empty($results)){
1711 1549
1712 1550 foreach($results as $result){
@@ -1731,10 +1569,10 @@
1731 1569 // function qcld_wb_chatbot_checkout_user_login(){
1732 1570 // // Nonce is checked, get the POST data and sign user on
1733 1571 // $info = array();
1734 1572 // //$info['nonce'] = $_POST['nonce_val'];
1735 -// $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1736 -// $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1573 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1574 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1737 1575 // $info['remember'] = true;
1738 1576 // $user_signon = wp_signon($info, false);
1739 1577 // // $response=$info;
1740 1578 // $response = array();
@@ -1775,16 +1613,15 @@
1775 1613 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1614 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1615 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1616 //Mobile App page create
1779 - $existing_app = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-mobile-app', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1780 - if ( ! $existing_app->have_posts() ) {
1617 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1618 //post status and options
1782 1619 $app_page = array(
1783 1620 'comment_status' => 'closed',
1784 1621 'ping_status' => 'closed',
1785 1622 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1623 + 'post_date' => date('Y-m-d H:i:s'),
1787 1624 'post_status' => 'publish',
1788 1625 'post_title' => 'wpwBot Mobile App',
1789 1626 'post_name' => 'wpwbot-mobile-app',
1790 1627 'post_type' => 'page',
@@ -1794,16 +1631,15 @@
1794 1631 //save the id in the database
1795 1632 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1633 }
1797 1634 //App checkout page create
1798 - $existing_checkout = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-checkout', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1799 - if ( ! $existing_checkout->have_posts() ) {
1635 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1636 //post status and options
1801 1637 $checkout_page = array(
1802 1638 'comment_status' => 'closed',
1803 1639 'ping_status' => 'closed',
1804 1640 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1641 + 'post_date' => date('Y-m-d H:i:s'),
1806 1642 'post_status' => 'publish',
1807 1643 'post_title' => 'wpwBot App Checkout',
1808 1644 'post_name' => 'wpwbot-app-checkout',
1809 1645 'post_type' => 'page',
@@ -1813,16 +1649,15 @@
1813 1649 //save the id in the database
1814 1650 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1651 }
1816 1652 //App Order thank you page create
1817 - $existing_thankyou = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-order-thankyou', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1818 - if ( ! $existing_thankyou->have_posts() ) {
1653 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1654 //post status and options
1820 1655 $thankyou_page = array(
1821 1656 'comment_status' => 'closed',
1822 1657 'ping_status' => 'closed',
1823 1658 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1659 + 'post_date' => date('Y-m-d H:i:s'),
1825 1660 'post_status' => 'publish',
1826 1661 'post_title' => 'wpwBot App Order Thank You',
1827 1662 'post_name' => 'wpwbot-app-order-thankyou',
1828 1663 'post_type' => 'page',
@@ -1833,9 +1668,9 @@
1833 1668 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1669 }
1835 1670 }
1836 1671 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1672 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1673 if (!isset($_COOKIE['from_app'])) {
1839 1674 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1675 }
1841 1676 }
@@ -1849,9 +1684,9 @@
1849 1684 global $wp;
1850 1685 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1686 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1687 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1688 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1689 exit;
1855 1690 }
1856 1691 } else {
1857 1692 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1694,9 @@
1859 1694 }
1860 1695 }
1861 1696
1862 1697 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1698 + return $array[array_rand($array)];
1867 1699 }
1868 1700
1869 1701 //User session count
1870 1702 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1702,8 @@
1870 1702 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1703 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1704 function qcld_wb_chatbot_session_count(){
1873 1705 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1706 global $wpdb;
1876 1707 $wpdb->show_errors = true;
1877 1708 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1709 $response = array();
@@ -1877,22 +1708,22 @@
1877 1708 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1709 $response = array();
1879 1710
1880 1711
1881 - $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
1712 + $session_exists = $wpdb->get_row($wpdb->prepare("select * from $tableuser where 1 and id = %d",1)); //DB Call OK, No Caching OK
1882 1713
1883 1714 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1715 + $wpdb->insert(
1885 1716 $tableuser,
1886 1717 array(
1887 1718 'session' => 1,
1888 1719 )
1889 - );
1720 + ); //DB Call OK, No Caching OK
1890 1721 }else{
1891 1722
1892 1723 $session_id = $session_exists->id;
1893 1724
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1725 + $wpdb->update(
1895 1726 $tableuser,
1896 1727 array(
1897 1728 'session'=>($session_exists->session+1),
1898 1729 ),
@@ -1900,9 +1731,9 @@
1900 1731 array(
1901 1732 '%d',
1902 1733 ),
1903 1734 array('%d')
1904 - );
1735 + ); //DB Call OK, No Caching OK
1905 1736
1906 1737 }
1907 1738
1908 1739 wp_send_json($response);
@@ -1910,9 +1741,9 @@
1910 1741
1911 1742 /* WPBot Chat History Addon check */
1912 1743 function qcld_wpbot_is_active_chat_history(){
1913 1744
1914 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1745 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 1746 return 1;
1916 1747 }else{
1917 1748 return 0;
1918 1749 }
@@ -1927,11 +1758,9 @@
1927 1758 return $data;
1928 1759 }
1929 1760 add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1930 1761 function qcld_small_talk_import(){
1931 - if ( ! current_user_can( 'manage_options' ) ) {
1932 - wp_die();
1933 - }
1762 +
1934 1763 global $wpdb;
1935 1764
1936 1765 $table = $wpdb->prefix.'wpbot_response';
1937 1766
@@ -1938,10 +1767,9 @@
1938 1767 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1939 1768
1940 1769 foreach ($csvFile as $line) {
1941 1770 $line = str_getcsv($line, ',', '"');
1942 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1943 - $table, array(
1771 + $wpdb->insert($table, array(
1944 1772 'query' => $line[0],
1945 1773 'keyword' => $line[1],
1946 1774 'response' => $line[2],
1947 1775 'category'=> $line[3],
@@ -1946,17 +1774,16 @@
1946 1774 'response' => $line[2],
1947 1775 'category'=> $line[3],
1948 1776 'intent'=> '',
1949 1777 //'lang'=> 'en_US',
1950 - ));
1778 + )); //DB Call OK, No Caching OK
1951 1779 }
1952 1780
1953 1781 $table2 = $wpdb->prefix.'wpbot_response_category';
1954 1782
1955 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1956 - $table2, array(
1783 + $wpdb->insert($table2, array(
1957 1784 'name' => 'smalltalk',
1958 - ));
1785 + )); //DB Call OK, No Caching OK
1959 1786
1960 1787 update_option( 'qcld_small_talk_imported', 'yes' );
1961 1788
1962 1789 }
@@ -1977,31 +1804,4 @@
1977 1804 echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1978 1805 }
1979 1806 add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1980 1807
1981 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
1982 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1983 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
1984 - function qcld_change_language_from_center() {
1985 - if ( ! current_user_can( 'manage_options' ) ) {
1986 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
1987 - }
1988 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1989 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
1990 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
1991 - }
1992 - $plugin_path = plugin_dir_path( __FILE__ );
1993 - include $plugin_path . 'includes/admin/settings-fields.php';
1994 - $json_file_path = $plugin_path . 'includes/language-center.json';
1995 -
1996 - $json_string = file_get_contents( $json_file_path );
1997 - if ( isset( $_POST['language'] ) ) {
1998 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
1999 - $language_array= json_decode($json_string)->$language;
2000 - update_option( 'wp_chatbot_language_center_language', $language );
2001 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
2002 - } else {
2003 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
2004 -
2005 - }
2006 - }
2007 -}