PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 5.4.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v5.4.2
8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 8.5.2 All 533 releases
← All changes | functions.php +304 -318 8.7.15.4.2 View file →
@@ -3,48 +3,11 @@
3 3 * @param $type
4 4 * Display wpwBot Icon ball
5 5 */
6 6 if (!defined('ABSPATH')) exit; // Exit if accessed directly
7 -
8 -
9 -function qcld_custom_search_form( $form ) {
10 - // Add a hidden input to limit search to 'product' post type
11 - if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
12 - $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
13 - } else if (get_option('wp_chatbot_agent_image') != "custom-agent.png") {
14 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
15 - } else {
16 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
17 - }
18 - $hidden_field = '<a class="wp-chatbot qc_wpbot_chat_link" id="wp-chatbot-search-btn" data-search-type="product" data-search-term="" style="max-height: 50px; margin-left: 10px;padding: 0 !important;position: absolute;top: -9px;right: -60px;"><img src="'. esc_url($wp_chatbot_custom_agent_path) .'" alt=""></a>';
19 - $block_content = str_replace( '</form>', $hidden_field . '</form>', $form );
20 - return $block_content;
21 -}
22 -if(get_option('wpbot_enable_on_search') == 1 && (get_option('disable_floating_button') != '1') && get_option('disable_wp_chatbot') != 1 ){
23 - add_filter( 'get_search_form', 'qcld_custom_search_form' );
24 - add_filter( 'render_block_core/search', 'qcld_modify_gutenberg_search_block', 10, 2 );
25 -}
26 -
27 -
28 -function qcld_modify_gutenberg_search_block( $block_content, $block ) {
29 - // Add a hidden input to limit search to 'product' post type
30 - if (get_option('wp_chatbot_agent_image') == "custom-agent.png") {
31 - $wp_chatbot_custom_agent_path = get_option('wp_chatbot_custom_agent_path');
32 - } else if (get_option('wp_chatbot_agent_image') != "custom-agent.png") {
33 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
34 - } else {
35 - $wp_chatbot_custom_agent_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
36 - }
37 - $hidden_field = '<button type="button" class="wp-chatbot qc_wpbot_chat_link" id="wp-chatbot-search-btn" data-search-type="product" data-search-term="" style="max-height: 50px; margin-left: 10px;padding: 0 !important"><img src="'. esc_url($wp_chatbot_custom_agent_path) .'" alt=""></button>';
38 - // Inject the hidden field before the closing </form> tag
39 - $block_content = str_replace( '</div></form>', $hidden_field . '</div></form>', $block_content );
40 - return $block_content;
41 -}
42 -if(get_option('disable_floating_button') != '1'){
43 - add_action('wp_footer', 'wp_chatbot_load_footer_html');
44 -}
45 -add_action( 'admin_footer', 'qcld_style_for_hide_iframe');
46 -function qcld_style_for_hide_iframe(){
7 +add_action('wp_footer', 'wp_chatbot_load_footer_html');
8 +add_action( 'admin_footer', 'qc_style_for_hide_iframe');
9 +function qc_style_for_hide_iframe(){
47 10 ?>
48 11 <script>
49 12 jQuery( document ).ready(function() {
50 13 setInterval(function(){
@@ -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 ?>
@@ -118,10 +27,11 @@
118 27
119 28 ?>
120 29 <style>
121 30 <?php if(get_option('wp_chatbot_custom_css')!="") {
122 -
123 - 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'));
124 34 }
125 35 ?>
126 36 </style>
127 37
@@ -146,33 +56,33 @@
146 56 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
147 57 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
148 58 // }
149 59 ?>
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';} ?>">
60 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
151 61 <div id="wp-chatbot-integration-container">
152 62 <div class="wp-chatbot-integration-button-container">
153 63 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
154 64 <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
155 - 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>
156 66 <?php } ?>
157 67 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
158 68 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
159 69 target="_blank"><span class="intergration-whats"
160 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
70 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
161 71 <?php } ?>
162 72 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
163 73 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
164 74 target="_blank"><span class="intergration-viber"
165 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
75 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
166 76 <?php } ?>
167 77 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
168 78 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
169 79 class="intergration-phone"
170 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
80 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
171 81 <?php } ?>
172 82 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
173 83 <a href="<?php echo esc_url(get_option('qlcd_wp_chatbot_weblink')); ?>" target="_blank"><span
174 - 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>
175 85 <?php } ?>
176 86 </div>
177 87 </div>
178 88 <?php
@@ -185,9 +95,9 @@
185 95 }
186 96 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
187 97 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
188 98 } else {
189 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
99 + echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
190 100 }
191 101 ?>
192 102 <?php
193 103 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -194,9 +104,9 @@
194 104 ?>
195 105 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
196 106 <div class="wp-chatbot-notification-controller">
197 107 <span class="wp-chatbot-notification-close">
198 - <?php esc_html_e('X', 'chatbot'); ?>
108 + <?php esc_html_e('X', 'wpchatbot'); ?>
199 109 </span>
200 110 </div>
201 111 <?php
202 112 $testingTip="";
@@ -209,9 +119,9 @@
209 119 }
210 120 ?>
211 121 <div class="wp-chatbot-notification-agent-profile">
212 122 <div class="wp-chatbot-notification-widget-avatar" ><img
213 - 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>
214 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>
215 125 </div>
216 126 <?php
217 127 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -234,72 +144,14 @@
234 144 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
235 145 } else {
236 146 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
237 147 }
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 148 ?>
247 149 <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; ?>
150 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
151 +
258 152 </div>
259 -
260 153 </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 154 <?php
303 155 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
304 156 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
305 157 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -342,11 +194,11 @@
342 194 </div>
343 195
344 196 <?php
345 197
346 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
198 + if ( get_transient( 'bot_clear_cache' ) ) {
347 199 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
348 - delete_transient( 'qcld_bot_clear_cache' );
200 + delete_transient( 'bot_clear_cache' );
349 201 }
350 202
351 203 }else{
352 204 ?>
@@ -416,9 +268,9 @@
416 268 return $wp_chatbot_load;
417 269 }
418 270 //checking Devices
419 271 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
272 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 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))) {
422 274 return true;
423 275 } else {
424 276 return false;
@@ -425,10 +277,10 @@
425 277 }
426 278 }
427 279 //Checking wpwbot opening hour
428 280 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')));
281 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
282 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
431 283 $is_wpwbot_open =false;
432 284 if(get_option('wpwbot_hours')) {
433 285 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
434 286 if (isset($wpwbot_times[$curent_day])) {
@@ -443,8 +295,198 @@
443 295 }
444 296 }
445 297 return $is_wpwbot_open;
446 298 }
299 +//wpwBot shortcode.
300 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
301 +function wp_chatbot_short_code($atts = []){
302 + ob_start();
303 + wp_chatbot_shortcode_dom($atts);
304 + $content = ob_get_clean();
305 + return $content;
306 +}
307 +function wp_chatbot_shortcode_dom($atts){
308 + //Defaults & Set Parameters for shortcode
309 + extract(shortcode_atts(
310 + array(
311 + 'template' => '01',
312 + ), $atts
313 + ));
314 + ?>
315 + <style>
316 + <?php if(get_option('wp_chatbot_custom_css')!=""){
317 + //Sanitization to be checked
318 + // phpcs:ignore
319 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
320 + } ?>
321 + </style>
322 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
323 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
324 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
325 + } else {
326 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
327 + }
328 + ?>
329 + <style>
330 + .wp-chatbot-container {
331 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
332 + }
333 + </style>
334 +<?php }
335 + $wp_chatbot_enable_rtl = "";
336 + if (get_option('enable_wp_chatbot_rtl')) {
337 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
338 + }
339 + ?>
340 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
341 + <?php
342 + //Get wpcommerce cart
343 +
344 + $qcld_wb_chatbot_theme = 'template-' . $template;
345 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
346 + wp_register_style('qcld-wp-chatbot-style', plugins_url(basename(plugin_dir_path(__FILE__)) . '/templates/' . $qcld_wb_chatbot_theme . '/style.css', basename(__FILE__)), '', QCLD_wpCHATBOT_VERSION, 'screen');
347 + wp_enqueue_style('qcld-wp-chatbot-style');
348 + }
349 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
350 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
351 + } else {
352 + echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
353 + }
354 + ?>
355 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
356 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
357 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
358 + <?php
359 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
360 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
361 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
362 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
363 + } else {
364 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
365 + }
366 + ?>
367 + <div class="wp-chatbot-notification-agent-profile">
368 + <div class="wp-chatbot-notification-widget-avatar"><img
369 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
370 + <div class="wp-chatbot-notification-welcome"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_welcome')))) . ' <strong>' . esc_html(get_option('qlcd_wp_chatbot_host')) . '</strong>'; ?></div>
371 + </div>
372 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
373 + </div>
374 + <!--wp-chatbot-board-container-->
375 + <div id="wp-chatbot-ball" class="">
376 + <div class="wp-chatbot-ball">
377 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
378 + <?php
379 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
380 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
381 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
382 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
383 + } else {
384 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
385 + }
386 + ?>
387 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
388 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo esc_html( $cart_items_number ); ?></span>--> </div>
389 + </div>
390 + <!-- wp-chatbot-board-container-->
391 + <?php endif; ?>
392 + <!--container-->
393 + <!--wp-chatbot-ball-wrapper-->
394 + </div>
395 +<?php } ?>
396 +<?php
397 +//Create shortcode for wpwBot for pages.
398 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
399 +function wp_chatbot_page_short_code(){
400 + ob_start();
401 + wp_chatbot_page_dom();
402 + $content = ob_get_clean();
403 + return $content;
404 +}
405 +function wp_chatbot_page_dom(){ ?>
406 + <style>
407 + <?php
408 + if(get_option('wp_chatbot_custom_css')!=""){
409 + //Sanitization to be checked
410 + // phpcs:ignore
411 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
412 + } ?>
413 + </style>
414 + <?php
415 + //Get wpcommerce cart
416 +
417 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
418 + $wp_chatbot_enable_rtl = "";
419 + if (get_option('enable_wp_chatbot_rtl') == 1) {
420 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
421 + }
422 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
423 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
424 + } else {
425 + echo "<h2>" . esc_html__('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
426 + }
427 +}
428 +//shortcode for wpWBot mobile app
429 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
430 +function wp_chatbot_mobile_app_short_code(){ ?>
431 + <style>
432 + <?php
433 + if(get_option('wp_chatbot_custom_css')!=""){
434 + //Sanitization to be checked
435 + // phpcs:ignore
436 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
437 + }
438 + ?>
439 + </style>
440 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
441 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
442 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
443 + } else {
444 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
445 + }
446 + ?>
447 + <style>
448 + .wp-chatbot-container {
449 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
450 + }
451 + </style>
452 +<?php }
453 + $wp_chatbot_enable_rtl = "";
454 + if (get_option('enable_wp_chatbot_rtl') == '1') {
455 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
456 + }
457 + ?>
458 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
459 + <?php
460 + // keep traking app template.
461 + $template_app = 'yes';
462 + //Get wpcommerce cart
463 +
464 + //Handling shortcode enqeue and remove features part.
465 + define('wpCOMMERCE', true);
466 + wp_enqueue_script('jquery');
467 +
468 +
469 + wp_enqueue_script('wc-address-i18n');
470 + wp_enqueue_script('wc-country-select');
471 +
472 +
473 + // add the action
474 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
475 + if (!isset($_COOKIE['from_app'])) {
476 + setcookie('from_app', 'yes', time() + 3600);
477 + }
478 + }
479 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
480 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
481 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
482 + } else {
483 + echo "<h2>" . esc_html__('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
484 + }
485 + ?>
486 + </div>
487 + <?php
488 +}
447 489
448 490 /**
449 491 * wpwBot Search keyword product
450 492 */
@@ -450,16 +492,9 @@
450 492 */
451 493 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 494 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 495 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']));
496 + $keyword = sanitize_text_field($_POST['keyword']);
462 497 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 498 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
464 499 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
465 500 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -505,9 +540,9 @@
505 540 endwhile;
506 541 wp_reset_postdata();
507 542 $html .= '</ul>';
508 543 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>';
544 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $keyword . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
510 545 }
511 546 }
512 547 $html .= '</div>';
513 548 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,9 +570,9 @@
535 570 }
536 571 }
537 572 $html .= '</ul>';
538 573 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>';
574 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="product" data-search-term="' . $more_product_ids . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
540 575 }
541 576 }
542 577 $html .= '</div>';
543 578 }
@@ -552,15 +587,16 @@
552 587 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 588 function qcld_wb_chatbot_category(){
554 589 $category_type="common";
555 590 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
591 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
592 +
557 593 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
594 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 595 }
560 596 $html = "";
561 597 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
598 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 599 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 600 $category_type="hasChilds";
565 601 }
566 602 $html .= '<span class="qcld-chatbot-product-category" data-category-type="' . $category_type . '" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
@@ -573,10 +609,10 @@
573 609 */
574 610 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 611 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 612 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' ) );
613 + $parent_id = stripslashes($_POST['parent_id']);
614 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 615 $html = "";
580 616 foreach ($terms as $term) {
581 617 $html .= '<span class="qcld-chatbot-product-category" data-category-type="common" data-category-slug="' . $term->slug . '" data-category-id="' . $term->term_id . '">' . $term->name . '</span>';
582 618 }
@@ -588,9 +624,9 @@
588 624 */
589 625 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 626 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 627 function qcld_wb_chatbot_category_products(){
592 - $category_id = intval( wp_unslash( $_POST['category'] ) );
628 + $category_id = stripslashes($_POST['category']);
593 629 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
594 630 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
595 631 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
596 632 //Merging all query together.
@@ -827,11 +863,11 @@
827 863 //load more
828 864 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 865 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 866 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'] ) );
867 + $offset = stripslashes($_POST['offset']);
868 + $search_type = stripslashes($_POST['search_type']);
869 + $search_term = stripslashes($_POST['search_term']);
834 870 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
835 871 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
836 872 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
837 873 $next_offset = intval($product_per_page + $offset);
@@ -962,9 +998,9 @@
962 998 //product details
963 999 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 1000 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 1001 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
1002 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 1003 //Tracking product view from chat board
968 1004 wp_chatbot_view_track_product_by_id($product_id);
969 1005 //wpcommerce product factory
970 1006 $wc_pf = new WC_Product_Factory();
@@ -992,9 +1028,9 @@
992 1028 }
993 1029 }
994 1030 $product_image .= '</ul></div>';
995 1031 $product_price = '<p class="wp-chatbot-product-price" id="wp-chatbot-product-price">' . $product->get_price_html() . '</p>';
996 - $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'chatbot') . ' : ' . $product->get_sku() . '</p>';
1032 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
997 1033 //if ( $product->is_in_stock() || $product->is_purchasable() )
998 1034 //Handle variable product start
999 1035 $variations = "";
1000 1036 $add_cart_button = "";
@@ -1037,11 +1073,10 @@
1037 1073 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 1074 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1039 1075 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1040 1076 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 ] ) );
1077 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1078 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 1079 } else {
1045 1080 $selected_value = '';
1046 1081 }
1047 1082 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1062,15 +1097,15 @@
1062 1097 $response = array('title' => $product_title, 'description' => $product_desc, 'image' => $product_image, 'price' => $product_price, 'sku' => $product_sku, 'quantity' => $product_quantity, 'buttton' => $add_cart_button, 'variation' => $variations, 'type' => $product_type, 'debug' => $debug);
1063 1098 wp_send_json($response);
1064 1099 }
1065 1100 //Add to cart for variable product.
1066 -add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1067 -add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1068 -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();
1101 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1102 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1103 +function qcld_wb_chatbot_variable_add_to_cart(){
1104 + $product_id = stripslashes($_POST['p_id']);
1105 + $quantity = stripslashes($_POST['quantity']);
1106 + $variations_id = stripslashes($_POST['variations_id']);
1107 + $attrs = stripslashes($_POST['attributes']);
1073 1108 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 1109 $attributes = array();
1075 1110 foreach ($attrs as $attr) {
1076 1111 $single = explode("#", $attr);
@@ -1090,10 +1125,10 @@
1090 1125 //Add to cart for simple product.
1091 1126 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 1127 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 1128 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1129 + $product_id = stripslashes($_POST['product_id']);
1130 + $product_quantity = stripslashes($_POST['quantity']);
1096 1131 global $wpcommerce;
1097 1132 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 1133 if ($result != false) {
1099 1134 wp_send_json('simple');
@@ -1104,19 +1139,15 @@
1104 1139 //Support part
1105 1140 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 1141 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 1142 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']));
1143 + $name = trim(sanitize_text_field($_POST['name']));
1144 + $email = sanitize_email($_POST['email']);
1145 + $message = sanitize_text_field($_POST['message']);
1115 1146 $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1116 1147 //Extract Domain
1117 1148 $url = get_site_url();
1118 - $url = wp_parse_url($url);
1149 + $url = parse_url($url);
1119 1150 $domain = $url['host'];
1120 1151 //$admin_email = "admin@" . $domain;
1121 1152 $admin_email = sanitize_email(get_option('admin_email'));
1122 1153 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1126,8 +1157,9 @@
1126 1157 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1127 1158 }else{
1128 1159 $fromEmail = "wordpress@" . $domain;
1129 1160 }
1161 +
1130 1162 //Starting messaging and status.
1131 1163 $response['status'] = 'fail';
1132 1164 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1133 1165 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1135,14 +1167,14 @@
1135 1167 $response['status'] = 'fail';
1136 1168 } else {
1137 1169 //build email body
1138 1170 $bodyContent = "";
1139 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1140 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1141 - $bodyContent .= '<p>' . __('Email', 'chatbot') . ' : ' . $email . '</p>';
1142 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1143 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . $message . '</p>';
1144 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1171 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1172 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1173 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1174 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1175 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1176 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1145 1177 $to = $toEmail;
1146 1178 $body = $bodyContent;
1147 1179 $headers = array();
1148 1180 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1154,9 +1186,9 @@
1154 1186 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1155 1187 }
1156 1188
1157 1189 }
1158 - echo wp_json_encode($response);
1190 + echo json_encode($response);
1159 1191 die();
1160 1192 }
1161 1193 //Support Phone
1162 1194 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1161,15 +1193,14 @@
1161 1193 //Support Phone
1162 1194 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1195 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1196 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']));
1197 + $name = trim(sanitize_text_field($_POST['name']));
1198 + $phone =sanitize_text_field($_POST['phone']);
1168 1199 $subject = 'WPBot Support Mail Request for Call Back';
1169 1200 //Extract Domain
1170 1201 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1202 + $url = parse_url($url);
1172 1203 $domain = $url['host'];
1173 1204 //$admin_email = "admin@" . $domain;
1174 1205 $admin_email = get_option('admin_email');
1175 1206 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1184,14 +1215,14 @@
1184 1215 $response['status'] = 'fail';
1185 1216 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1186 1217 //build email body
1187 1218 $bodyContent = "";
1188 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1189 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1190 - $bodyContent .= '<p>' . __('Phone', 'chatbot') . ' : ' . $phone . '</p>';
1191 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1192 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . __(' Call me at ', 'chatbot'). $phone . '</p>';
1193 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1219 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1220 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1221 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1222 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1223 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1224 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1194 1225 $to = $toEmail;
1195 1226 $body = $bodyContent;
1196 1227 $headers = array();
1197 1228 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1201,15 +1232,15 @@
1201 1232 if ($result) {
1202 1233 $response['status'] = 'success';
1203 1234 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1204 1235 }
1205 - echo wp_json_encode($response);
1236 + echo json_encode($response);
1206 1237 die();
1207 1238 }
1208 1239 // Order Status part. removed
1209 1240
1210 1241 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1242 + return $items[rand(0, count($items) - 1)];
1212 1243 }
1213 1244 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1245 $refined_mesgses = array();
1215 1246 foreach ($messages as $message) {
@@ -1224,10 +1255,10 @@
1224 1255 // First check the nonce, if it fails the function will break
1225 1256 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1257 // Nonce is checked, get the POST data and sign user on
1227 1258 $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'])));
1259 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1260 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1261 $info['remember'] = true;
1231 1262 $user_signon = wp_signon($info, false);
1232 1263 $response = array();
1233 1264 if (is_wp_error($user_signon)) {
@@ -1267,12 +1298,12 @@
1267 1298 if ($response['order_num'] > 0) {
1268 1299 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1269 1300 $order_html .= '<div class="wp-chatbot-orders-container">
1270 1301 <div class="wp-chatbot-orders-header">
1271 - <div class="order-id">' . __('ID', 'chatbot') . '</div>
1272 - <div class="order-date">' . __('Date', 'chatbot') . ' </div>
1273 - <div class="order-items">' . __('Items', 'chatbot') . '</div>
1274 - <div class="order-status">' . __('Status', 'chatbot') . '</div>
1302 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1303 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1304 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1305 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1275 1306 </div>';
1276 1307 foreach ($customer_orders as $order) {
1277 1308 //Formatting order summery
1278 1309 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1283,9 +1314,9 @@
1283 1314 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1284 1315 }
1285 1316 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1317 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1318 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1319 <div class="order-items">';
1289 1320 $singleOrder = new WC_Order($order->ID);
1290 1321 $items = $singleOrder->get_items();
1291 1322 foreach ($items as $item) {
@@ -1385,9 +1416,9 @@
1385 1416 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1417 <div class="wp-chatbot-product-summary">
1387 1418 <div class="wp-chatbot-product-table">
1388 1419 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1420 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1421 <div class="price">' . $product->get_price_html() . '</div>';
1391 1422 $html .= ' </div>
1392 1423 </div>
1393 1424 </div></a>
@@ -1456,9 +1487,9 @@
1456 1487 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1488 <div class="wp-chatbot-product-summary">
1458 1489 <div class="wp-chatbot-product-table">
1459 1490 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1491 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1492 <div class="price">' . $product->get_price_html() . '</div>';
1462 1493 $html .= ' </div>
1463 1494 </div>
1464 1495 </div></a>
@@ -1468,9 +1499,9 @@
1468 1499 wp_reset_postdata();
1469 1500 $html .= '</ul></div>';
1470 1501 } else {
1471 1502 $html .= '<div class="wp-chatbot-products-area">';
1472 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1503 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1473 1504 $html .= '</div>';
1474 1505 }
1475 1506 return $html;
1476 1507 }
@@ -1632,12 +1663,11 @@
1632 1663 //Updating the cart items.
1633 1664 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1665 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1666 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1667 //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']));
1668 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1669 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1670 global $wpcommerce;
1641 1671 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 1672 wp_send_json($result);
1643 1673 }
@@ -1644,11 +1674,10 @@
1644 1674 //Show item after removing from cart page.
1645 1675 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1676 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1677 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1678 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1679 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1680 global $wpcommerce;
1652 1681 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 1682 wp_send_json($result);
1654 1683 }
@@ -1685,9 +1714,9 @@
1685 1714 $response = array('status' => $status, 'html' => $html);
1686 1715 wp_send_json($response);
1687 1716 }
1688 1717 //_dynamic_intent
1689 -function qcld_dynamic_intent(){
1718 +function qc_dynamic_intent(){
1690 1719 global $wpdb;
1691 1720 $intents = array();
1692 1721
1693 1722 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1704,9 +1733,9 @@
1704 1733
1705 1734 if(class_exists('Qcformbuilder_Forms_Admin')){
1706 1735
1707 1736
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
1737 + $results = $wpdb->get_results($wpdb->prepare("SELECT * FROM ". $wpdb->prefix."wfb_forms WHERE type= %s",'primary')); //DB Call OK, No Caching OK
1709 1738
1710 1739 if(!empty($results)){
1711 1740
1712 1741 foreach($results as $result){
@@ -1731,10 +1760,10 @@
1731 1760 // function qcld_wb_chatbot_checkout_user_login(){
1732 1761 // // Nonce is checked, get the POST data and sign user on
1733 1762 // $info = array();
1734 1763 // //$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'])));
1764 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1765 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1737 1766 // $info['remember'] = true;
1738 1767 // $user_signon = wp_signon($info, false);
1739 1768 // // $response=$info;
1740 1769 // $response = array();
@@ -1775,16 +1804,15 @@
1775 1804 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1805 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1806 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1807 //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() ) {
1808 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1809 //post status and options
1782 1810 $app_page = array(
1783 1811 'comment_status' => 'closed',
1784 1812 'ping_status' => 'closed',
1785 1813 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1814 + 'post_date' => date('Y-m-d H:i:s'),
1787 1815 'post_status' => 'publish',
1788 1816 'post_title' => 'wpwBot Mobile App',
1789 1817 'post_name' => 'wpwbot-mobile-app',
1790 1818 'post_type' => 'page',
@@ -1794,16 +1822,15 @@
1794 1822 //save the id in the database
1795 1823 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1824 }
1797 1825 //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() ) {
1826 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1827 //post status and options
1801 1828 $checkout_page = array(
1802 1829 'comment_status' => 'closed',
1803 1830 'ping_status' => 'closed',
1804 1831 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1832 + 'post_date' => date('Y-m-d H:i:s'),
1806 1833 'post_status' => 'publish',
1807 1834 'post_title' => 'wpwBot App Checkout',
1808 1835 'post_name' => 'wpwbot-app-checkout',
1809 1836 'post_type' => 'page',
@@ -1813,16 +1840,15 @@
1813 1840 //save the id in the database
1814 1841 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1842 }
1816 1843 //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() ) {
1844 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1845 //post status and options
1820 1846 $thankyou_page = array(
1821 1847 'comment_status' => 'closed',
1822 1848 'ping_status' => 'closed',
1823 1849 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1850 + 'post_date' => date('Y-m-d H:i:s'),
1825 1851 'post_status' => 'publish',
1826 1852 'post_title' => 'wpwBot App Order Thank You',
1827 1853 'post_name' => 'wpwbot-app-order-thankyou',
1828 1854 'post_type' => 'page',
@@ -1833,9 +1859,9 @@
1833 1859 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1860 }
1835 1861 }
1836 1862 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1863 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1864 if (!isset($_COOKIE['from_app'])) {
1839 1865 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1866 }
1841 1867 }
@@ -1849,9 +1875,9 @@
1849 1875 global $wp;
1850 1876 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1877 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1878 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1879 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1880 exit;
1855 1881 }
1856 1882 } else {
1857 1883 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1885,9 @@
1859 1885 }
1860 1886 }
1861 1887
1862 1888 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1889 + return $array[array_rand($array)];
1867 1890 }
1868 1891
1869 1892 //User session count
1870 1893 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1893,8 @@
1870 1893 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1894 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1895 function qcld_wb_chatbot_session_count(){
1873 1896 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1897 global $wpdb;
1876 1898 $wpdb->show_errors = true;
1877 1899 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1900 $response = array();
@@ -1877,22 +1899,22 @@
1877 1899 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1900 $response = array();
1879 1901
1880 1902
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
1903 + $session_exists = $wpdb->get_row($wpdb->prepare("select * from $tableuser where 1 and id = %d",1)); //DB Call OK, No Caching OK
1882 1904
1883 1905 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1906 + $wpdb->insert(
1885 1907 $tableuser,
1886 1908 array(
1887 1909 'session' => 1,
1888 1910 )
1889 - );
1911 + ); //DB Call OK, No Caching OK
1890 1912 }else{
1891 1913
1892 1914 $session_id = $session_exists->id;
1893 1915
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1916 + $wpdb->update(
1895 1917 $tableuser,
1896 1918 array(
1897 1919 'session'=>($session_exists->session+1),
1898 1920 ),
@@ -1900,9 +1922,9 @@
1900 1922 array(
1901 1923 '%d',
1902 1924 ),
1903 1925 array('%d')
1904 - );
1926 + ); //DB Call OK, No Caching OK
1905 1927
1906 1928 }
1907 1929
1908 1930 wp_send_json($response);
@@ -1910,9 +1932,9 @@
1910 1932
1911 1933 /* WPBot Chat History Addon check */
1912 1934 function qcld_wpbot_is_active_chat_history(){
1913 1935
1914 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1936 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 1937 return 1;
1916 1938 }else{
1917 1939 return 0;
1918 1940 }
@@ -1918,9 +1940,9 @@
1918 1940 }
1919 1941
1920 1942 }
1921 1943
1922 -function qcld_wpbot_input_validation( $data ) {
1944 +function qc_wpbot_input_validation( $data ) {
1923 1945 $data = html_entity_decode($data);
1924 1946 $data = trim($data);
1925 1947 $data = stripslashes($data);
1926 1948 $data = htmlspecialchars($data);
@@ -1925,13 +1947,11 @@
1925 1947 $data = stripslashes($data);
1926 1948 $data = htmlspecialchars($data);
1927 1949 return $data;
1928 1950 }
1929 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
1930 -function qcld_small_talk_import(){
1931 - if ( ! current_user_can( 'manage_options' ) ) {
1932 - wp_die();
1933 - }
1951 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1952 +function small_talk_import(){
1953 +
1934 1954 global $wpdb;
1935 1955
1936 1956 $table = $wpdb->prefix.'wpbot_response';
1937 1957
@@ -1938,10 +1958,9 @@
1938 1958 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1939 1959
1940 1960 foreach ($csvFile as $line) {
1941 1961 $line = str_getcsv($line, ',', '"');
1942 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1943 - $table, array(
1962 + $wpdb->insert($table, array(
1944 1963 'query' => $line[0],
1945 1964 'keyword' => $line[1],
1946 1965 'response' => $line[2],
1947 1966 'category'=> $line[3],
@@ -1946,17 +1965,16 @@
1946 1965 'response' => $line[2],
1947 1966 'category'=> $line[3],
1948 1967 'intent'=> '',
1949 1968 //'lang'=> 'en_US',
1950 - ));
1969 + )); //DB Call OK, No Caching OK
1951 1970 }
1952 1971
1953 1972 $table2 = $wpdb->prefix.'wpbot_response_category';
1954 1973
1955 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1956 - $table2, array(
1974 + $wpdb->insert($table2, array(
1957 1975 'name' => 'smalltalk',
1958 - ));
1976 + )); //DB Call OK, No Caching OK
1959 1977
1960 1978 update_option( 'qcld_small_talk_imported', 'yes' );
1961 1979
1962 1980 }
@@ -1964,44 +1982,12 @@
1964 1982 if (!empty($array)) {
1965 1983 foreach ($array as &$value) {
1966 1984 if( !is_array($value) )
1967 1985 // sanitize if value is not an array
1968 - $value = sanitize_text_field( esc_html($value) );
1986 + $value = sanitize_text_field( $value );
1969 1987 else
1970 1988 // go inside this function again
1971 - sanitize_array(esc_html($value));
1989 + $this->sanitize_array($value);
1972 1990 }
1973 1991 }
1974 1992 return $array;
1975 -}
1976 -function qcld_wpbot_meta_tags() {
1977 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
1978 -}
1979 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
1980 -
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 -}
1993 +}