PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 5.3.6
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v5.3.6
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 +299 -324 8.7.15.3.6 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,10 +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
1709 -
1737 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1710 1738 if(!empty($results)){
1711 1739
1712 1740 foreach($results as $result){
1713 1741 $form = maybe_unserialize($result->config);
@@ -1731,10 +1759,10 @@
1731 1759 // function qcld_wb_chatbot_checkout_user_login(){
1732 1760 // // Nonce is checked, get the POST data and sign user on
1733 1761 // $info = array();
1734 1762 // //$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'])));
1763 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1764 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1737 1765 // $info['remember'] = true;
1738 1766 // $user_signon = wp_signon($info, false);
1739 1767 // // $response=$info;
1740 1768 // $response = array();
@@ -1775,16 +1803,15 @@
1775 1803 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1804 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1805 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1806 //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() ) {
1807 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1808 //post status and options
1782 1809 $app_page = array(
1783 1810 'comment_status' => 'closed',
1784 1811 'ping_status' => 'closed',
1785 1812 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1813 + 'post_date' => date('Y-m-d H:i:s'),
1787 1814 'post_status' => 'publish',
1788 1815 'post_title' => 'wpwBot Mobile App',
1789 1816 'post_name' => 'wpwbot-mobile-app',
1790 1817 'post_type' => 'page',
@@ -1794,16 +1821,15 @@
1794 1821 //save the id in the database
1795 1822 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1823 }
1797 1824 //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() ) {
1825 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1826 //post status and options
1801 1827 $checkout_page = array(
1802 1828 'comment_status' => 'closed',
1803 1829 'ping_status' => 'closed',
1804 1830 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1831 + 'post_date' => date('Y-m-d H:i:s'),
1806 1832 'post_status' => 'publish',
1807 1833 'post_title' => 'wpwBot App Checkout',
1808 1834 'post_name' => 'wpwbot-app-checkout',
1809 1835 'post_type' => 'page',
@@ -1813,16 +1839,15 @@
1813 1839 //save the id in the database
1814 1840 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1841 }
1816 1842 //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() ) {
1843 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1844 //post status and options
1820 1845 $thankyou_page = array(
1821 1846 'comment_status' => 'closed',
1822 1847 'ping_status' => 'closed',
1823 1848 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1849 + 'post_date' => date('Y-m-d H:i:s'),
1825 1850 'post_status' => 'publish',
1826 1851 'post_title' => 'wpwBot App Order Thank You',
1827 1852 'post_name' => 'wpwbot-app-order-thankyou',
1828 1853 'post_type' => 'page',
@@ -1833,9 +1858,9 @@
1833 1858 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1859 }
1835 1860 }
1836 1861 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1862 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1863 if (!isset($_COOKIE['from_app'])) {
1839 1864 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1865 }
1841 1866 }
@@ -1849,9 +1874,9 @@
1849 1874 global $wp;
1850 1875 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1876 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1877 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1878 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1879 exit;
1855 1880 }
1856 1881 } else {
1857 1882 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1884,9 @@
1859 1884 }
1860 1885 }
1861 1886
1862 1887 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1888 + return $array[array_rand($array)];
1867 1889 }
1868 1890
1869 1891 //User session count
1870 1892 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1892,8 @@
1870 1892 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1893 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1894 function qcld_wb_chatbot_session_count(){
1873 1895 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1896 global $wpdb;
1876 1897 $wpdb->show_errors = true;
1877 1898 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1899 $response = array();
@@ -1877,12 +1898,11 @@
1877 1898 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1899 $response = array();
1879 1900
1880 1901
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
1882 -
1902 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1883 1903 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1904 + $wpdb->insert(
1885 1905 $tableuser,
1886 1906 array(
1887 1907 'session' => 1,
1888 1908 )
@@ -1889,10 +1909,9 @@
1889 1909 );
1890 1910 }else{
1891 1911
1892 1912 $session_id = $session_exists->id;
1893 -
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1913 + $wpdb->update(
1895 1914 $tableuser,
1896 1915 array(
1897 1916 'session'=>($session_exists->session+1),
1898 1917 ),
@@ -1901,9 +1920,8 @@
1901 1920 '%d',
1902 1921 ),
1903 1922 array('%d')
1904 1923 );
1905 -
1906 1924 }
1907 1925
1908 1926 wp_send_json($response);
1909 1927 }
@@ -1910,9 +1928,9 @@
1910 1928
1911 1929 /* WPBot Chat History Addon check */
1912 1930 function qcld_wpbot_is_active_chat_history(){
1913 1931
1914 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1932 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 1933 return 1;
1916 1934 }else{
1917 1935 return 0;
1918 1936 }
@@ -1918,9 +1936,9 @@
1918 1936 }
1919 1937
1920 1938 }
1921 1939
1922 -function qcld_wpbot_input_validation( $data ) {
1940 +function qc_wpbot_input_validation( $data ) {
1923 1941 $data = html_entity_decode($data);
1924 1942 $data = trim($data);
1925 1943 $data = stripslashes($data);
1926 1944 $data = htmlspecialchars($data);
@@ -1925,23 +1943,16 @@
1925 1943 $data = stripslashes($data);
1926 1944 $data = htmlspecialchars($data);
1927 1945 return $data;
1928 1946 }
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 - }
1947 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1948 +function small_talk_import(){
1934 1949 global $wpdb;
1935 -
1936 1950 $table = $wpdb->prefix.'wpbot_response';
1937 -
1938 1951 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1939 -
1940 1952 foreach ($csvFile as $line) {
1941 1953 $line = str_getcsv($line, ',', '"');
1942 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1943 - $table, array(
1954 + $wpdb->insert($table, array(
1944 1955 'query' => $line[0],
1945 1956 'keyword' => $line[1],
1946 1957 'response' => $line[2],
1947 1958 'category'=> $line[3],
@@ -1948,16 +1959,12 @@
1948 1959 'intent'=> '',
1949 1960 //'lang'=> 'en_US',
1950 1961 ));
1951 1962 }
1952 -
1953 1963 $table2 = $wpdb->prefix.'wpbot_response_category';
1954 -
1955 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1956 - $table2, array(
1964 + $wpdb->insert($table2, array(
1957 1965 'name' => 'smalltalk',
1958 1966 ));
1959 -
1960 1967 update_option( 'qcld_small_talk_imported', 'yes' );
1961 1968
1962 1969 }
1963 1970 function sanitize_array( &$array ) {
@@ -1964,44 +1971,12 @@
1964 1971 if (!empty($array)) {
1965 1972 foreach ($array as &$value) {
1966 1973 if( !is_array($value) )
1967 1974 // sanitize if value is not an array
1968 - $value = sanitize_text_field( esc_html($value) );
1975 + $value = sanitize_text_field( $value );
1969 1976 else
1970 1977 // go inside this function again
1971 - sanitize_array(esc_html($value));
1978 + $this->sanitize_array($value);
1972 1979 }
1973 1980 }
1974 1981 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 -}
1982 +}