PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 5.3.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v5.3.2
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 +282 -324 8.7.05.3.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,9 @@
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 + echo sanitize_text_field(get_option('wp_chatbot_custom_css'));
124 32 }
125 33 ?>
126 34 </style>
127 35
@@ -146,33 +54,33 @@
146 54 // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
147 55 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
148 56 // }
149 57 ?>
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';} ?>">
58 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen); ?>">
151 59 <div id="wp-chatbot-integration-container">
152 60 <div class="wp-chatbot-integration-button-container">
153 61 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
154 62 <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>
63 + class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'wpchatbot'); ?>"> </span></a>
156 64 <?php } ?>
157 65 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
158 66 <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
159 67 target="_blank"><span class="intergration-whats"
160 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
68 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
161 69 <?php } ?>
162 70 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
163 71 <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
164 72 target="_blank"><span class="intergration-viber"
165 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
73 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
166 74 <?php } ?>
167 75 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
168 76 <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
169 77 class="intergration-phone"
170 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
78 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
171 79 <?php } ?>
172 80 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
173 81 <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>
82 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
175 83 <?php } ?>
176 84 </div>
177 85 </div>
178 86 <?php
@@ -185,9 +93,9 @@
185 93 }
186 94 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
187 95 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
188 96 } else {
189 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
97 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
190 98 }
191 99 ?>
192 100 <?php
193 101 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -194,9 +102,9 @@
194 102 ?>
195 103 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
196 104 <div class="wp-chatbot-notification-controller">
197 105 <span class="wp-chatbot-notification-close">
198 - <?php esc_html_e('X', 'chatbot'); ?>
106 + <?php esc_html_e('X', 'wpchatbot'); ?>
199 107 </span>
200 108 </div>
201 109 <?php
202 110 $testingTip="";
@@ -209,9 +117,9 @@
209 117 }
210 118 ?>
211 119 <div class="wp-chatbot-notification-agent-profile">
212 120 <div class="wp-chatbot-notification-widget-avatar" ><img
213 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
121 + src="<?php echo esc_attr($wp_chatbot_custom_agent_path); ?>" alt=""></div>
214 122 <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 123 </div>
216 124 <?php
217 125 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
@@ -234,72 +142,14 @@
234 142 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
235 143 } else {
236 144 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
237 145 }
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 146 ?>
247 147 <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; ?>
148 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
149 +
258 150 </div>
259 -
260 151 </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 152 <?php
303 153 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
304 154 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
305 155 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -342,11 +192,11 @@
342 192 </div>
343 193
344 194 <?php
345 195
346 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
196 + if ( get_transient( 'bot_clear_cache' ) ) {
347 197 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
348 - delete_transient( 'qcld_bot_clear_cache' );
198 + delete_transient( 'bot_clear_cache' );
349 199 }
350 200
351 201 }else{
352 202 ?>
@@ -416,9 +266,9 @@
416 266 return $wp_chatbot_load;
417 267 }
418 268 //checking Devices
419 269 function wp_chatbot_is_mobile(){
420 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
270 + $useragent = $_SERVER['HTTP_USER_AGENT'];
421 271 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 272 return true;
423 273 } else {
424 274 return false;
@@ -425,10 +275,10 @@
425 275 }
426 276 }
427 277 //Checking wpwbot opening hour
428 278 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')));
279 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
280 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
431 281 $is_wpwbot_open =false;
432 282 if(get_option('wpwbot_hours')) {
433 283 $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
434 284 if (isset($wpwbot_times[$curent_day])) {
@@ -443,8 +293,183 @@
443 293 }
444 294 }
445 295 return $is_wpwbot_open;
446 296 }
297 +//wpwBot shortcode.
298 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
299 +function wp_chatbot_short_code($atts = []){
300 + ob_start();
301 + wp_chatbot_shortcode_dom($atts);
302 + $content = ob_get_clean();
303 + return $content;
304 +}
305 +function wp_chatbot_shortcode_dom($atts){
306 + //Defaults & Set Parameters for shortcode
307 + extract(shortcode_atts(
308 + array(
309 + 'template' => '01',
310 + ), $atts
311 + ));
312 + ?>
313 + <style>
314 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
315 + </style>
316 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
317 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
318 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
319 + } else {
320 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
321 + }
322 + ?>
323 + <style>
324 + .wp-chatbot-container {
325 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
326 + }
327 + </style>
328 +<?php }
329 + $wp_chatbot_enable_rtl = "";
330 + if (get_option('enable_wp_chatbot_rtl')) {
331 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
332 + }
333 + ?>
334 + <div id="wp-chatbot-chat-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
335 + <?php
336 + //Get wpcommerce cart
337 +
338 + $qcld_wb_chatbot_theme = 'template-' . $template;
339 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
340 + 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');
341 + wp_enqueue_style('qcld-wp-chatbot-style');
342 + }
343 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
344 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
345 + } else {
346 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
347 + }
348 + ?>
349 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
350 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
351 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
352 + <?php
353 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
354 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
355 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
356 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
357 + } else {
358 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
359 + }
360 + ?>
361 + <div class="wp-chatbot-notification-agent-profile">
362 + <div class="wp-chatbot-notification-widget-avatar"><img
363 + src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" alt=""></div>
364 + <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>
365 + </div>
366 + <div class="wp-chatbot-notification-message"><?php echo wp_kses_post(wpb_randmom_message_handle(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications')))); ?></div>
367 + </div>
368 + <!--wp-chatbot-board-container-->
369 + <div id="wp-chatbot-ball" class="">
370 + <div class="wp-chatbot-ball">
371 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
372 + <?php
373 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
374 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
375 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
376 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
377 + } else {
378 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
379 + }
380 + ?>
381 + <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
382 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
383 + </div>
384 + <!-- wp-chatbot-board-container-->
385 + <?php endif; ?>
386 + <!--container-->
387 + <!--wp-chatbot-ball-wrapper-->
388 + </div>
389 +<?php } ?>
390 +<?php
391 +//Create shortcode for wpwBot for pages.
392 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
393 +function wp_chatbot_page_short_code(){
394 + ob_start();
395 + wp_chatbot_page_dom();
396 + $content = ob_get_clean();
397 + return $content;
398 +}
399 +function wp_chatbot_page_dom(){ ?>
400 + <style>
401 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
402 + </style>
403 + <?php
404 + //Get wpcommerce cart
405 +
406 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
407 + $wp_chatbot_enable_rtl = "";
408 + if (get_option('enable_wp_chatbot_rtl') == 1) {
409 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
410 + }
411 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
412 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
413 + } else {
414 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
415 + }
416 +}
417 +//shortcode for wpWBot mobile app
418 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
419 +function wp_chatbot_mobile_app_short_code(){ ?>
420 + <style>
421 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo sanitize_text_field(get_option('wp_chatbot_custom_css')); } ?>
422 + </style>
423 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
424 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
425 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
426 + } else {
427 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
428 + }
429 + ?>
430 + <style>
431 + .wp-chatbot-container {
432 + background: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path) ;?>) no-repeat top right !important;
433 + }
434 + </style>
435 +<?php }
436 + $wp_chatbot_enable_rtl = "";
437 + if (get_option('enable_wp_chatbot_rtl') == '1') {
438 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
439 + }
440 + ?>
441 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo esc_attr($wp_chatbot_enable_rtl); ?>">
442 + <?php
443 + // keep traking app template.
444 + $template_app = 'yes';
445 + //Get wpcommerce cart
446 +
447 + //Handling shortcode enqeue and remove features part.
448 + define('wpCOMMERCE', true);
449 + wp_enqueue_script('jquery');
450 +
451 +
452 + wp_enqueue_script('wc-address-i18n');
453 + wp_enqueue_script('wc-country-select');
454 +
455 +
456 + // add the action
457 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
458 + if (!isset($_COOKIE['from_app'])) {
459 + setcookie('from_app', 'yes', time() + 3600);
460 + }
461 + }
462 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
463 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
464 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
465 + } else {
466 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
467 + }
468 + ?>
469 + </div>
470 + <?php
471 +}
447 472
448 473 /**
449 474 * wpwBot Search keyword product
450 475 */
@@ -450,16 +475,9 @@
450 475 */
451 476 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
452 477 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
453 478 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']));
479 + $keyword = sanitize_text_field($_POST['keyword']);
462 480 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
463 481 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
464 482 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
465 483 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
@@ -505,9 +523,9 @@
505 523 endwhile;
506 524 wp_reset_postdata();
507 525 $html .= '</ul>';
508 526 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>';
527 + $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 528 }
511 529 }
512 530 $html .= '</div>';
513 531 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -535,9 +553,9 @@
535 553 }
536 554 }
537 555 $html .= '</ul>';
538 556 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>';
557 + $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 558 }
541 559 }
542 560 $html .= '</div>';
543 561 }
@@ -552,15 +570,16 @@
552 570 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
553 571 function qcld_wb_chatbot_category(){
554 572 $category_type="common";
555 573 if (get_option('wp_chatbot_show_parent_category') != "") {
556 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
574 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
575 +
557 576 } else {
558 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
577 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
559 578 }
560 579 $html = "";
561 580 foreach ($terms as $term) {
562 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
581 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
563 582 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
564 583 $category_type="hasChilds";
565 584 }
566 585 $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 +592,10 @@
573 592 */
574 593 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
575 594 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
576 595 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' ) );
596 + $parent_id = stripslashes($_POST['parent_id']);
597 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
579 598 $html = "";
580 599 foreach ($terms as $term) {
581 600 $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 601 }
@@ -588,9 +607,9 @@
588 607 */
589 608 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
590 609 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
591 610 function qcld_wb_chatbot_category_products(){
592 - $category_id = intval( wp_unslash( $_POST['category'] ) );
611 + $category_id = stripslashes($_POST['category']);
593 612 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
594 613 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
595 614 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
596 615 //Merging all query together.
@@ -827,11 +846,11 @@
827 846 //load more
828 847 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
829 848 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
830 849 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'] ) );
850 + $offset = stripslashes($_POST['offset']);
851 + $search_type = stripslashes($_POST['search_type']);
852 + $search_term = stripslashes($_POST['search_term']);
834 853 $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
835 854 $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
836 855 $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
837 856 $next_offset = intval($product_per_page + $offset);
@@ -962,9 +981,9 @@
962 981 //product details
963 982 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
964 983 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
965 984 function qcld_wb_chatbot_product_details(){
966 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
985 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
967 986 //Tracking product view from chat board
968 987 wp_chatbot_view_track_product_by_id($product_id);
969 988 //wpcommerce product factory
970 989 $wc_pf = new WC_Product_Factory();
@@ -992,9 +1011,9 @@
992 1011 }
993 1012 }
994 1013 $product_image .= '</ul></div>';
995 1014 $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>';
1015 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
997 1016 //if ( $product->is_in_stock() || $product->is_purchasable() )
998 1017 //Handle variable product start
999 1018 $variations = "";
1000 1019 $add_cart_button = "";
@@ -1037,11 +1056,10 @@
1037 1056 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1038 1057 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1039 1058 $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1040 1059 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 ] ) );
1060 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1061 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1044 1062 } else {
1045 1063 $selected_value = '';
1046 1064 }
1047 1065 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1062,15 +1080,15 @@
1062 1080 $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 1081 wp_send_json($response);
1064 1082 }
1065 1083 //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();
1084 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1085 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1086 +function qcld_wb_chatbot_variable_add_to_cart(){
1087 + $product_id = stripslashes($_POST['p_id']);
1088 + $quantity = stripslashes($_POST['quantity']);
1089 + $variations_id = stripslashes($_POST['variations_id']);
1090 + $attrs = stripslashes($_POST['attributes']);
1073 1091 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1074 1092 $attributes = array();
1075 1093 foreach ($attrs as $attr) {
1076 1094 $single = explode("#", $attr);
@@ -1090,10 +1108,10 @@
1090 1108 //Add to cart for simple product.
1091 1109 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1092 1110 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1093 1111 function qcld_wb_chatbot_add_to_cart(){
1094 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1095 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1112 + $product_id = stripslashes($_POST['product_id']);
1113 + $product_quantity = stripslashes($_POST['quantity']);
1096 1114 global $wpcommerce;
1097 1115 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1098 1116 if ($result != false) {
1099 1117 wp_send_json('simple');
@@ -1104,19 +1122,15 @@
1104 1122 //Support part
1105 1123 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1106 1124 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1107 1125 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']));
1126 + $name = trim(sanitize_text_field($_POST['name']));
1127 + $email = sanitize_email($_POST['email']);
1128 + $message = sanitize_text_field($_POST['message']);
1115 1129 $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 1130 //Extract Domain
1117 1131 $url = get_site_url();
1118 - $url = wp_parse_url($url);
1132 + $url = parse_url($url);
1119 1133 $domain = $url['host'];
1120 1134 //$admin_email = "admin@" . $domain;
1121 1135 $admin_email = sanitize_email(get_option('admin_email'));
1122 1136 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1126,8 +1140,9 @@
1126 1140 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1127 1141 }else{
1128 1142 $fromEmail = "wordpress@" . $domain;
1129 1143 }
1144 +
1130 1145 //Starting messaging and status.
1131 1146 $response['status'] = 'fail';
1132 1147 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1133 1148 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
@@ -1135,14 +1150,14 @@
1135 1150 $response['status'] = 'fail';
1136 1151 } else {
1137 1152 //build email body
1138 1153 $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>';
1154 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1155 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1156 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1157 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1158 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1159 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1145 1160 $to = $toEmail;
1146 1161 $body = $bodyContent;
1147 1162 $headers = array();
1148 1163 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1154,9 +1169,9 @@
1154 1169 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1155 1170 }
1156 1171
1157 1172 }
1158 - echo wp_json_encode($response);
1173 + echo json_encode($response);
1159 1174 die();
1160 1175 }
1161 1176 //Support Phone
1162 1177 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1161,15 +1176,14 @@
1161 1176 //Support Phone
1162 1177 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1163 1178 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1164 1179 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']));
1180 + $name = trim(sanitize_text_field($_POST['name']));
1181 + $phone =sanitize_text_field($_POST['phone']);
1168 1182 $subject = 'WPBot Support Mail Request for Call Back';
1169 1183 //Extract Domain
1170 1184 $url = get_site_url();
1171 - $url = wp_parse_url($url);
1185 + $url = parse_url($url);
1172 1186 $domain = $url['host'];
1173 1187 //$admin_email = "admin@" . $domain;
1174 1188 $admin_email = get_option('admin_email');
1175 1189 $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
@@ -1184,14 +1198,14 @@
1184 1198 $response['status'] = 'fail';
1185 1199 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1186 1200 //build email body
1187 1201 $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>';
1202 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1203 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1204 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1205 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1206 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1207 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1194 1208 $to = $toEmail;
1195 1209 $body = $bodyContent;
1196 1210 $headers = array();
1197 1211 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1201,15 +1215,15 @@
1201 1215 if ($result) {
1202 1216 $response['status'] = 'success';
1203 1217 $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1204 1218 }
1205 - echo wp_json_encode($response);
1219 + echo json_encode($response);
1206 1220 die();
1207 1221 }
1208 1222 // Order Status part. removed
1209 1223
1210 1224 function wpb_randmom_message_handle($items){
1211 - return $items[wp_rand(0, count($items) - 1)];
1225 + return $items[rand(0, count($items) - 1)];
1212 1226 }
1213 1227 function qcld_wb_chatbot_func_str_replace($messages = array()){
1214 1228 $refined_mesgses = array();
1215 1229 foreach ($messages as $message) {
@@ -1224,10 +1238,10 @@
1224 1238 // First check the nonce, if it fails the function will break
1225 1239 check_ajax_referer('wpwbot-order-nonce', 'security');
1226 1240 // Nonce is checked, get the POST data and sign user on
1227 1241 $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'])));
1242 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1243 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1230 1244 $info['remember'] = true;
1231 1245 $user_signon = wp_signon($info, false);
1232 1246 $response = array();
1233 1247 if (is_wp_error($user_signon)) {
@@ -1267,12 +1281,12 @@
1267 1281 if ($response['order_num'] > 0) {
1268 1282 $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1269 1283 $order_html .= '<div class="wp-chatbot-orders-container">
1270 1284 <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>
1285 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1286 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1287 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1288 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1275 1289 </div>';
1276 1290 foreach ($customer_orders as $order) {
1277 1291 //Formatting order summery
1278 1292 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
@@ -1283,9 +1297,9 @@
1283 1297 $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1284 1298 }
1285 1299 $order_html .= '<div class="wp-chatbot-orders-single">
1286 1300 <div class="order-id"> ' . $order_url . '</div>
1287 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1301 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1288 1302 <div class="order-items">';
1289 1303 $singleOrder = new WC_Order($order->ID);
1290 1304 $items = $singleOrder->get_items();
1291 1305 foreach ($items as $item) {
@@ -1385,9 +1399,9 @@
1385 1399 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1386 1400 <div class="wp-chatbot-product-summary">
1387 1401 <div class="wp-chatbot-product-table">
1388 1402 <div class="wp-chatbot-product-table-cell">
1389 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1403 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1390 1404 <div class="price">' . $product->get_price_html() . '</div>';
1391 1405 $html .= ' </div>
1392 1406 </div>
1393 1407 </div></a>
@@ -1456,9 +1470,9 @@
1456 1470 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1457 1471 <div class="wp-chatbot-product-summary">
1458 1472 <div class="wp-chatbot-product-table">
1459 1473 <div class="wp-chatbot-product-table-cell">
1460 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1474 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1461 1475 <div class="price">' . $product->get_price_html() . '</div>';
1462 1476 $html .= ' </div>
1463 1477 </div>
1464 1478 </div></a>
@@ -1468,9 +1482,9 @@
1468 1482 wp_reset_postdata();
1469 1483 $html .= '</ul></div>';
1470 1484 } else {
1471 1485 $html .= '<div class="wp-chatbot-products-area">';
1472 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1486 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1473 1487 $html .= '</div>';
1474 1488 }
1475 1489 return $html;
1476 1490 }
@@ -1632,12 +1646,11 @@
1632 1646 //Updating the cart items.
1633 1647 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1634 1648 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1635 1649 function qcld_wb_chatbot_update_cart_item_number(){
1636 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1637 1650 //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']));
1651 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1652 + $qnty = sanitize_text_field($_POST['qnty']);
1640 1653 global $wpcommerce;
1641 1654 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1642 1655 wp_send_json($result);
1643 1656 }
@@ -1644,11 +1657,10 @@
1644 1657 //Show item after removing from cart page.
1645 1658 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1646 1659 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1647 1660 function qcld_wb_chatbot_cart_item_remove(){
1648 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1649 1661 //getting cart items n
1650 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1662 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1651 1663 global $wpcommerce;
1652 1664 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1653 1665 wp_send_json($result);
1654 1666 }
@@ -1685,9 +1697,9 @@
1685 1697 $response = array('status' => $status, 'html' => $html);
1686 1698 wp_send_json($response);
1687 1699 }
1688 1700 //_dynamic_intent
1689 -function qcld_dynamic_intent(){
1701 +function qc_dynamic_intent(){
1690 1702 global $wpdb;
1691 1703 $intents = array();
1692 1704
1693 1705 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1704,10 +1716,9 @@
1704 1716
1705 1717 if(class_exists('Qcformbuilder_Forms_Admin')){
1706 1718
1707 1719
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 -
1720 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1710 1721 if(!empty($results)){
1711 1722
1712 1723 foreach($results as $result){
1713 1724 $form = maybe_unserialize($result->config);
@@ -1731,10 +1742,10 @@
1731 1742 // function qcld_wb_chatbot_checkout_user_login(){
1732 1743 // // Nonce is checked, get the POST data and sign user on
1733 1744 // $info = array();
1734 1745 // //$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'])));
1746 +// $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1747 +// $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1737 1748 // $info['remember'] = true;
1738 1749 // $user_signon = wp_signon($info, false);
1739 1750 // // $response=$info;
1740 1751 // $response = array();
@@ -1775,16 +1786,15 @@
1775 1786 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1776 1787 function wp_chatbot_create_app_checkout_thankyou_page(){
1777 1788 if (get_option('wp_chatbot_app_pages') == 1) {
1778 1789 //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() ) {
1790 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1781 1791 //post status and options
1782 1792 $app_page = array(
1783 1793 'comment_status' => 'closed',
1784 1794 'ping_status' => 'closed',
1785 1795 'post_author' => get_current_user_id(),
1786 - 'post_date' => gmdate('Y-m-d H:i:s'),
1796 + 'post_date' => date('Y-m-d H:i:s'),
1787 1797 'post_status' => 'publish',
1788 1798 'post_title' => 'wpwBot Mobile App',
1789 1799 'post_name' => 'wpwbot-mobile-app',
1790 1800 'post_type' => 'page',
@@ -1794,16 +1804,15 @@
1794 1804 //save the id in the database
1795 1805 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1796 1806 }
1797 1807 //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() ) {
1808 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1800 1809 //post status and options
1801 1810 $checkout_page = array(
1802 1811 'comment_status' => 'closed',
1803 1812 'ping_status' => 'closed',
1804 1813 'post_author' => get_current_user_id(),
1805 - 'post_date' => gmdate('Y-m-d H:i:s'),
1814 + 'post_date' => date('Y-m-d H:i:s'),
1806 1815 'post_status' => 'publish',
1807 1816 'post_title' => 'wpwBot App Checkout',
1808 1817 'post_name' => 'wpwbot-app-checkout',
1809 1818 'post_type' => 'page',
@@ -1813,16 +1822,15 @@
1813 1822 //save the id in the database
1814 1823 update_option('wp_chatbot_app_checkout', $app_checkout);
1815 1824 }
1816 1825 //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() ) {
1826 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1819 1827 //post status and options
1820 1828 $thankyou_page = array(
1821 1829 'comment_status' => 'closed',
1822 1830 'ping_status' => 'closed',
1823 1831 'post_author' => get_current_user_id(),
1824 - 'post_date' => gmdate('Y-m-d H:i:s'),
1832 + 'post_date' => date('Y-m-d H:i:s'),
1825 1833 'post_status' => 'publish',
1826 1834 'post_title' => 'wpwBot App Order Thank You',
1827 1835 'post_name' => 'wpwbot-app-order-thankyou',
1828 1836 'post_type' => 'page',
@@ -1833,9 +1841,9 @@
1833 1841 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1834 1842 }
1835 1843 }
1836 1844 //Keep tracking from App by cookies
1837 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1845 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1838 1846 if (!isset($_COOKIE['from_app'])) {
1839 1847 setcookie('from_app', 'yes', (time() + 3600), '/');
1840 1848 }
1841 1849 }
@@ -1849,9 +1857,9 @@
1849 1857 global $wp;
1850 1858 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1851 1859 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1852 1860 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1853 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1861 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1854 1862 exit;
1855 1863 }
1856 1864 } else {
1857 1865 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1859,12 +1867,9 @@
1859 1867 }
1860 1868 }
1861 1869
1862 1870 function qcld_choose_random($array){
1863 - if (is_array($array) && !empty($array)) {
1864 - return $array[array_rand($array)];
1865 - }
1866 - return $array;
1871 + return $array[array_rand($array)];
1867 1872 }
1868 1873
1869 1874 //User session count
1870 1875 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1870,9 +1875,8 @@
1870 1875 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1871 1876 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1872 1877 function qcld_wb_chatbot_session_count(){
1873 1878 // Nonce is checked, get the POST data and sign user on
1874 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1875 1879 global $wpdb;
1876 1880 $wpdb->show_errors = true;
1877 1881 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1882 $response = array();
@@ -1877,12 +1881,11 @@
1877 1881 $tableuser = $wpdb->prefix.'wpbot_sessions';
1878 1882 $response = array();
1879 1883
1880 1884
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 -
1885 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1883 1886 if(empty($session_exists)){
1884 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1887 + $wpdb->insert(
1885 1888 $tableuser,
1886 1889 array(
1887 1890 'session' => 1,
1888 1891 )
@@ -1889,10 +1892,9 @@
1889 1892 );
1890 1893 }else{
1891 1894
1892 1895 $session_id = $session_exists->id;
1893 -
1894 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1896 + $wpdb->update(
1895 1897 $tableuser,
1896 1898 array(
1897 1899 'session'=>($session_exists->session+1),
1898 1900 ),
@@ -1901,9 +1903,8 @@
1901 1903 '%d',
1902 1904 ),
1903 1905 array('%d')
1904 1906 );
1905 -
1906 1907 }
1907 1908
1908 1909 wp_send_json($response);
1909 1910 }
@@ -1910,9 +1911,9 @@
1910 1911
1911 1912 /* WPBot Chat History Addon check */
1912 1913 function qcld_wpbot_is_active_chat_history(){
1913 1914
1914 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1915 1916 return 1;
1916 1917 }else{
1917 1918 return 0;
1918 1919 }
@@ -1918,9 +1919,9 @@
1918 1919 }
1919 1920
1920 1921 }
1921 1922
1922 -function qcld_wpbot_input_validation( $data ) {
1923 +function qc_wpbot_input_validation( $data ) {
1923 1924 $data = html_entity_decode($data);
1924 1925 $data = trim($data);
1925 1926 $data = stripslashes($data);
1926 1927 $data = htmlspecialchars($data);
@@ -1925,23 +1926,16 @@
1925 1926 $data = stripslashes($data);
1926 1927 $data = htmlspecialchars($data);
1927 1928 return $data;
1928 1929 }
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 - }
1930 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1931 +function small_talk_import(){
1934 1932 global $wpdb;
1935 -
1936 1933 $table = $wpdb->prefix.'wpbot_response';
1937 -
1938 1934 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
1939 -
1940 1935 foreach ($csvFile as $line) {
1941 1936 $line = str_getcsv($line, ',', '"');
1942 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1943 - $table, array(
1937 + $wpdb->insert($table, array(
1944 1938 'query' => $line[0],
1945 1939 'keyword' => $line[1],
1946 1940 'response' => $line[2],
1947 1941 'category'=> $line[3],
@@ -1948,16 +1942,12 @@
1948 1942 'intent'=> '',
1949 1943 //'lang'=> 'en_US',
1950 1944 ));
1951 1945 }
1952 -
1953 1946 $table2 = $wpdb->prefix.'wpbot_response_category';
1954 -
1955 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1956 - $table2, array(
1947 + $wpdb->insert($table2, array(
1957 1948 'name' => 'smalltalk',
1958 1949 ));
1959 -
1960 1950 update_option( 'qcld_small_talk_imported', 'yes' );
1961 1951
1962 1952 }
1963 1953 function sanitize_array( &$array ) {
@@ -1964,44 +1954,12 @@
1964 1954 if (!empty($array)) {
1965 1955 foreach ($array as &$value) {
1966 1956 if( !is_array($value) )
1967 1957 // sanitize if value is not an array
1968 - $value = sanitize_text_field( esc_html($value) );
1958 + $value = sanitize_text_field( $value );
1969 1959 else
1970 1960 // go inside this function again
1971 - sanitize_array(esc_html($value));
1961 + $this->sanitize_array($value);
1972 1962 }
1973 1963 }
1974 1964 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 -}
1965 +}