PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 4.4.3
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v4.4.3
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 +464 -549 8.7.54.4.3 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 get_option('wp_chatbot_custom_css');
124 32 }
125 33 ?>
126 34 </style>
127 35
@@ -133,63 +41,46 @@
133 41 }
134 42 ?>
135 43 <style>
136 44 .wp-chatbot-container {
137 - background-color: #eceef3 !important;
138 - background-image: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path); ?>) !important;
139 - background-size: cover !important;
140 - background-position: center !important;
141 - background-repeat: no-repeat !important;
45 + background-image: url(<?php echo $qcld_wb_chatbot_board_bg_path; ?>) !important;
142 46 }
143 - .wp-chatbot-template-01 #wp-chatbot-board-container,
144 - .wp-chatbot-template-01 .wp-chatbot-board-container {
145 - background-color: #eceef3 !important;
146 - background-image: none !important;
147 - }
148 - .wp-chatbot-template-01 #wp-chatbot-board-container::before,
149 - .wp-chatbot-template-01 .wp-chatbot-board-container::before {
150 - background-color: #eceef3 !important;
151 - background-image: url(<?php echo esc_url($qcld_wb_chatbot_board_bg_path); ?>) !important;
152 - background-size: cover !important;
153 - background-position: center !important;
154 - background-repeat: no-repeat !important;
155 - }
156 47 </style>
157 48 <?php }
158 49 $wp_chatbot_enable_rtl = "";
159 - if (get_option('enable_wp_chatbot_rtl') == '1') {
50 + if (get_option('enable_wp_chatbot_rtl')) {
160 51 $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
161 52 }
162 53 $wp_chatbot_enable_mobile_screen = "";
163 - // if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
54 + if (get_option('enable_wp_chatbot_mobile_full_screen')==1) {
164 55 $wp_chatbot_enable_mobile_screen .= "wp-chatbot-mobile-full-screen";
165 - // }
56 + }
166 57 ?>
167 - <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 $wp_chatbot_enable_rtl .' '.$wp_chatbot_enable_mobile_screen; ?>">
168 59 <div id="wp-chatbot-integration-container">
169 60 <div class="wp-chatbot-integration-button-container">
170 61 <?php if (get_option('enable_wp_chatbot_skype_floating_icon') == 1) { ?>
171 - <a href="skype:<?php echo esc_attr(get_option('enable_wp_chatbot_skype_id')); ?>?chat"><span
172 - class="inetegration-skype-btn" title="<?php esc_attr_e('Skype', 'chatbot'); ?>"> </span></a>
62 + <a href="skype:<?php echo get_option('enable_wp_chatbot_skype_id'); ?>?chat"><span
63 + class="inetegration-skype-btn" title="<?php esc_html_e('Skype', 'wpchatbot'); ?>"> </span></a>
173 64 <?php } ?>
174 65 <?php if (get_option('enable_wp_chatbot_floating_whats') == 1) { ?>
175 - <a href="<?php echo esc_url('https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num')); ?>"
66 + <a href="<?php echo 'https://api.whatsapp.com/send?phone=' . get_option('qlcd_wp_chatbot_whats_num'); ?>"
176 67 target="_blank"><span class="intergration-whats"
177 - title="<?php esc_html_e('WhatsApp', 'chatbot'); ?>"></span></a>
68 + title="<?php esc_html_e('WhatsApp', 'wpchatbot'); ?>"></span></a>
178 69 <?php } ?>
179 70 <?php if (get_option('enable_wp_chatbot_floating_viber') == 1) { ?>
180 - <a href="<?php echo esc_url('https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc')); ?>"
71 + <a href="<?php echo 'https://live.viber.com/#/' . get_option('qlcd_wp_chatbot_viber_acc'); ?>"
181 72 target="_blank"><span class="intergration-viber"
182 - title="<?php esc_html_e('Viber', 'chatbot'); ?>"></span></a>
73 + title="<?php esc_html_e('Viber', 'wpchatbot'); ?>"></span></a>
183 74 <?php } ?>
184 75 <?php if (get_option('enable_wp_chatbot_floating_phone') == 1 && get_option('qlcd_wp_chatbot_phone') != "") { ?>
185 - <a href="tel:<?php echo esc_attr(get_option('qlcd_wp_chatbot_phone')); ?>"><span
76 + <a href="tel:<?php echo get_option('qlcd_wp_chatbot_phone'); ?>"><span
186 77 class="intergration-phone"
187 - title="<?php esc_html_e('Phone', 'chatbot'); ?>"> </span></a>
78 + title="<?php esc_html_e('Phone', 'wpchatbot'); ?>"> </span></a>
188 79 <?php } ?>
189 80 <?php if (get_option('enable_wp_chatbot_floating_link') == 1 && get_option('qlcd_wp_chatbot_weblink') != "") { ?>
190 - <a href="<?php echo esc_url(get_option('qlcd_wp_chatbot_weblink')); ?>" target="_blank"><span
191 - class="intergration-weblink" title="<?php esc_html_e('Web Link', 'chatbot'); ?>"></span></a>
81 + <a href="<?php echo get_option('qlcd_wp_chatbot_weblink'); ?>" target="_blank"><span
82 + class="intergration-weblink" title="<?php esc_html_e('Web Link', 'wpchatbot'); ?>"></span></a>
192 83 <?php } ?>
193 84 </div>
194 85 </div>
195 86 <?php
@@ -202,9 +93,9 @@
202 93 }
203 94 if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
204 95 require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
205 96 } else {
206 - echo "<h2>" . esc_html__('No wpWBot Theme Found!', 'chatbot') . "</h2>";
97 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
207 98 }
208 99 ?>
209 100 <?php
210 101 if (get_option('disable_wp_chatbot_notification') != 1) {
@@ -211,9 +102,9 @@
211 102 ?>
212 103 <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
213 104 <div class="wp-chatbot-notification-controller">
214 105 <span class="wp-chatbot-notification-close">
215 - <?php esc_html_e('X', 'chatbot'); ?>
106 + <?php esc_html_e('X', 'wpchatbot'); ?>
216 107 </span>
217 108 </div>
218 109 <?php
219 110 $testingTip="";
@@ -226,18 +117,18 @@
226 117 }
227 118 ?>
228 119 <div class="wp-chatbot-notification-agent-profile">
229 120 <div class="wp-chatbot-notification-widget-avatar" ><img
230 - src="<?php echo esc_url($wp_chatbot_custom_agent_path); ?>" alt=""></div>
231 - <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>
121 + src="<?php echo $wp_chatbot_custom_agent_path; ?>" alt=""></div>
122 + <div class="wp-chatbot-notification-welcome"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_welcome'))) . ' <strong>' . get_option('qlcd_wp_chatbot_host') . '</strong>'; ?></div>
232 123 </div>
233 124 <?php
234 125 //update_option('qlcd_wp_chatbot_notifications','Welcome to WpBot');
235 - $notifications = qcld_wb_chatbot_func_str_replace(wp_kses_post(maybe_unserialize(get_option('qlcd_wp_chatbot_notifications'))));
126 + $notifications = qcld_wb_chatbot_func_str_replace(unserialize(get_option('qlcd_wp_chatbot_notifications')));
236 127
237 128 ?>
238 129
239 - <div class="wp-chatbot-notification-message"><?php echo esc_html($notifications[0]); ?></div>
130 + <div class="wp-chatbot-notification-message"><?php echo $notifications[0]; ?></div>
240 131 </div>
241 132 <?php } ?>
242 133 <!--wp-chatbot-board-container-->
243 134 <div id="wp-chatbot-ball" class="">
@@ -244,79 +135,20 @@
244 135 <div class="wp-chatbot-ball">
245 136 <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
246 137 <?php
247 138 if (get_option('wp_chatbot_icon') == "custom.png") {
248 - $wp_chatbot_custom_icon_path = (!empty(get_option('wp_chatbot_custom_icon_path'))) ? get_option('wp_chatbot_custom_icon_path') : QCLD_wpCHATBOT_IMG_URL . 'icon-1.png';
249 -
139 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
250 140 } else if (get_option('wp_chatbot_icon') != "custom.png") {
251 141 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
252 142 } else {
253 143 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
254 144 }
255 - $_wpbot_icon_video = get_option('wp_chatbot_icon_video', '');
256 - $_wpbot_video_is_youtube = ( strpos( $_wpbot_icon_video, 'youtube.com' ) !== false || strpos( $_wpbot_icon_video, 'youtu.be' ) !== false );
257 - $_wpbot_youtube_embed_src = $_wpbot_video_is_youtube ? qcld_wpbot_youtube_icon_embed_src( $_wpbot_icon_video ) : '';
258 - $_wpbot_video_delay_ms = absint( get_option( 'wp_chatbot_icon_video_delay', 0 ) ) * 1000;
259 -
260 - $wp_chatbot_ball_is_youtube = ($_wpbot_icon_video !== '' && (strpos($_wpbot_icon_video, 'youtube.com') !== false || strpos($_wpbot_icon_video, 'youtu.be') !== false));
261 - $wp_chatbot_ball_is_video = ($_wpbot_icon_video !== '' && !$wp_chatbot_ball_is_youtube);
262 - $wp_chatbot_ball_has_video = ($wp_chatbot_ball_is_youtube || $wp_chatbot_ball_is_video);
263 145 ?>
264 - <img src="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
265 - alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>"
266 - id="wp-chatbot-ball-icon-img"
267 - <?php if ($wp_chatbot_ball_has_video) { echo 'style="display:none;"'; } ?> >
268 - <?php if ( $_wpbot_icon_video !== '' ) : ?>
269 - <?php if ( $_wpbot_video_is_youtube && $_wpbot_youtube_embed_src !== '' ) : ?>
270 - <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>
271 - <?php elseif ( ! $_wpbot_video_is_youtube ) : ?>
272 - <video class="wpbot-icon-video" src="<?php echo esc_url( $_wpbot_icon_video ); ?>" autoplay muted loop playsinline preload="auto"></video>
273 - <?php endif; ?>
274 - <?php endif; ?>
146 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
147 + alt="wpChatIcon" qcld_agent="<?php echo esc_url($wp_chatbot_custom_icon_path); ?>" >
148 +
275 149 </div>
276 -
277 150 </div>
278 - <?php
279 - if ( $_wpbot_icon_video !== '' ) :
280 - ?>
281 - <script>
282 - (function(){
283 - var wpbotDelay = <?php echo (int) $_wpbot_video_delay_ms; ?>;
284 - function wpbotForcePlay(){
285 - var v = document.querySelector('#wp-chatbot-ball video.wpbot-icon-video');
286 - if( v ){
287 - v.muted = true;
288 - v.volume = 0;
289 - v.loop = true;
290 - var tries = 0, maxTries = 30;
291 - var timer = setInterval(function(){
292 - tries++;
293 - v.play().then(function(){ clearInterval(timer); }).catch(function(){});
294 - if( tries >= maxTries ) clearInterval(timer);
295 - }, 300);
296 - }
297 - var yt = document.querySelector('#wp-chatbot-ball iframe.wpbot-icon-video');
298 - if( yt ){
299 - var ytSrc = yt.getAttribute('data-wpbot-yt-src');
300 - if( ytSrc && ( !yt.getAttribute('src') || yt.getAttribute('src') === 'about:blank' || yt.getAttribute('src').indexOf('autoplay=1') === -1 ) ){
301 - yt.setAttribute('src', ytSrc);
302 - }
303 - }
304 - }
305 - function wpbotDelayedPlay(){
306 - setTimeout(wpbotForcePlay, wpbotDelay);
307 - }
308 - if( document.readyState === 'loading' ){
309 - document.addEventListener('DOMContentLoaded', wpbotDelayedPlay);
310 - } else {
311 - wpbotDelayedPlay();
312 - }
313 - window.addEventListener('load', function(){
314 - setTimeout(wpbotForcePlay, wpbotDelay);
315 - });
316 - })();
317 - </script>
318 - <?php endif; ?>
319 151 <?php
320 152 $fb_app_id = get_option('qlcd_wp_chatbot_fb_app_id');
321 153 $fb_page_id = get_option('qlcd_wp_chatbot_fb_page_id');
322 154 $fb_mgs_color = get_option('qlcd_wp_chatbot_fb_color') != '' ? get_option('qlcd_wp_chatbot_fb_color') : '#0084ff';
@@ -328,9 +160,9 @@
328 160 <script>
329 161
330 162 window.fbAsyncInit = function () {
331 163 FB.init({
332 - appId: '<?php echo esc_js($fb_app_id); ?>',
164 + appId: '<?php echo $fb_app_id;?>',
333 165 autoLogAppEvents: true,
334 166 xfbml: true,
335 167 version: 'v2.12'
336 168 });
@@ -345,13 +177,13 @@
345 177 fjs.parentNode.insertBefore(js, fjs);
346 178 }(document, 'script', 'facebook-jssdk'));
347 179 </script>
348 180 <div class="fb-customerchat"
349 - page_id="<?php echo esc_attr($fb_page_id); ?>"
181 + page_id="<?php echo $fb_page_id; ?>"
350 182 greeting_dialog_display="hide"
351 - theme_color="<?php echo esc_attr($fb_mgs_color); ?>"
352 - logged_in_greeting="<?php echo esc_attr($fb_mgs_in); ?>"
353 - logged_out_greeting="<?php echo esc_attr($fb_mgs_out); ?>"></div>
183 + theme_color="<?php echo $fb_mgs_color; ?>"
184 + logged_in_greeting="<?php echo $fb_mgs_in; ?>"
185 + logged_out_greeting="<?php echo $fb_mgs_out; ?>"></div>
354 186 <?php
355 187 }
356 188 ?>
357 189 <!--container-->
@@ -359,11 +191,11 @@
359 191 </div>
360 192
361 193 <?php
362 194
363 - if ( get_transient( 'qcld_bot_clear_cache' ) ) {
195 + if ( get_transient( 'bot_clear_cache' ) ) {
364 196 echo '<script type="text/javascript">var wpbot_clear_cache = 1 </script>';
365 - delete_transient( 'qcld_bot_clear_cache' );
197 + delete_transient( 'bot_clear_cache' );
366 198 }
367 199
368 200 }else{
369 201 ?>
@@ -433,9 +265,9 @@
433 265 return $wp_chatbot_load;
434 266 }
435 267 //checking Devices
436 268 function wp_chatbot_is_mobile(){
437 - $useragent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
269 + $useragent = $_SERVER['HTTP_USER_AGENT'];
438 270 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))) {
439 271 return true;
440 272 } else {
441 273 return false;
@@ -442,13 +274,13 @@
442 274 }
443 275 }
444 276 //Checking wpwbot opening hour
445 277 function wp_chatbot_check_opening_hours(){
446 - $curent_day=strtolower(gmdate('l',strtotime(current_time( 'mysql' ))));
447 - $current_time=gmdate('H:i',strtotime(current_time( 'mysql')));
278 + $curent_day=strtolower(date('l',strtotime(current_time( 'mysql' ))));
279 + $current_time=date('H:i',strtotime(current_time( 'mysql')));
448 280 $is_wpwbot_open =false;
449 281 if(get_option('wpwbot_hours')) {
450 - $wpwbot_times = wp_kses_post(unserialize(get_option('wpwbot_hours')));
282 + $wpwbot_times = unserialize(get_option('wpwbot_hours'));
451 283 if (isset($wpwbot_times[$curent_day])) {
452 284 $day_times = $wpwbot_times[$curent_day];
453 285 if (!empty($day_times)) {
454 286 foreach ($day_times as $day_time) {
@@ -460,8 +292,183 @@
460 292 }
461 293 }
462 294 return $is_wpwbot_open;
463 295 }
296 +//wpwBot shortcode.
297 +add_shortcode('wpwbot', 'wp_chatbot_short_code');
298 +function wp_chatbot_short_code($atts = []){
299 + ob_start();
300 + wp_chatbot_shortcode_dom($atts);
301 + $content = ob_get_clean();
302 + return $content;
303 +}
304 +function wp_chatbot_shortcode_dom($atts){
305 + //Defaults & Set Parameters for shortcode
306 + extract(shortcode_atts(
307 + array(
308 + 'template' => '01',
309 + ), $atts
310 + ));
311 + ?>
312 + <style>
313 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
314 + </style>
315 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
316 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
317 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
318 + } else {
319 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
320 + }
321 + ?>
322 + <style>
323 + .wp-chatbot-container {
324 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
325 + }
326 + </style>
327 +<?php }
328 + $wp_chatbot_enable_rtl = "";
329 + if (get_option('enable_wp_chatbot_rtl')) {
330 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
331 + }
332 + ?>
333 + <div id="wp-chatbot-chat-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
334 + <?php
335 + //Get wpcommerce cart
336 +
337 + $qcld_wb_chatbot_theme = 'template-' . $template;
338 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/style.css')) {
339 + 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');
340 + wp_enqueue_style('qcld-wp-chatbot-style');
341 + }
342 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
343 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
344 + } else {
345 + echo "<h2>" . __('No wpWBot Theme Found!', 'wpchatbot') . "</h2>";
346 + }
347 + ?>
348 + <?php if (get_option('disable_wp_chatbot') != 1): ?>
349 + <div id="wp-chatbot-notification-container" class="wp-chatbot-notification-container">
350 + <div class="wp-chatbot-notification-controller"> <span class="wp-chatbot-notification-close">X</span> </div>
351 + <?php
352 + if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
353 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
354 + } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
355 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
356 + } else {
357 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
358 + }
359 + ?>
360 + <div class="wp-chatbot-notification-agent-profile">
361 + <div class="wp-chatbot-notification-widget-avatar"><img
362 + src="<?php echo $wp_chatbot_custom_icon_path; ?>" alt=""></div>
363 + <div class="wp-chatbot-notification-welcome"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_welcome'))) . ' <strong>' . get_option('qlcd_wp_chatbot_host') . '</strong>'; ?></div>
364 + </div>
365 + <div class="wp-chatbot-notification-message"><?php echo wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_notifications'))); ?></div>
366 + </div>
367 + <!--wp-chatbot-board-container-->
368 + <div id="wp-chatbot-ball" class="">
369 + <div class="wp-chatbot-ball">
370 + <div class="wp-chatbot-ball-animator wp-chatbot-ball-animation-switch"></div>
371 + <?php
372 + if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') == "custom.png") {
373 + $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_icon_path');
374 + } else if (get_option('wp_chatbot_custom_icon_path') != "" && get_option('wp_chatbot_icon') != "custom.png") {
375 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_icon');
376 + } else {
377 + $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom.png';
378 + }
379 + ?>
380 + <img src="<?php echo $wp_chatbot_custom_icon_path; ?>"
381 + alt="wpChatIcon"> <!--<span class="wp-chatbot-ball-cart-items"><?php echo $cart_items_number; ?></span>--> </div>
382 + </div>
383 + <!-- wp-chatbot-board-container-->
384 + <?php endif; ?>
385 + <!--container-->
386 + <!--wp-chatbot-ball-wrapper-->
387 + </div>
388 +<?php } ?>
389 +<?php
390 +//Create shortcode for wpwBot for pages.
391 +add_shortcode('wpbot-page', 'wp_chatbot_page_short_code');
392 +function wp_chatbot_page_short_code(){
393 + ob_start();
394 + wp_chatbot_page_dom();
395 + $content = ob_get_clean();
396 + return $content;
397 +}
398 +function wp_chatbot_page_dom(){ ?>
399 + <style>
400 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
401 + </style>
402 + <?php
403 + //Get wpcommerce cart
404 +
405 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
406 + $wp_chatbot_enable_rtl = "";
407 + if (get_option('enable_wp_chatbot_rtl') == 1) {
408 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
409 + }
410 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php')) {
411 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/shortcode.php');
412 + } else {
413 + echo "<h2>" . __('No WPBot ShortCode Theme Found!', 'wpchatbot') . "</h2>";
414 + }
415 +}
416 +//shortcode for wpWBot mobile app
417 +add_shortcode('wpwbot_app', 'wp_chatbot_mobile_app_short_code');
418 +function wp_chatbot_mobile_app_short_code(){ ?>
419 + <style>
420 + <?php if(get_option('wp_chatbot_custom_css')!=""){echo get_option('wp_chatbot_custom_css'); } ?>
421 + </style>
422 + <?php if (get_option('qcld_wb_chatbot_change_bg') == 1) {
423 + if (get_option('qcld_wb_chatbot_board_bg_path') != "") {
424 + $qcld_wb_chatbot_board_bg_path = get_option('qcld_wb_chatbot_board_bg_path');
425 + } else {
426 + $qcld_wb_chatbot_board_bg_path = QCLD_wpCHATBOT_IMG_URL . 'background/background.png';
427 + }
428 + ?>
429 + <style>
430 + .wp-chatbot-container {
431 + background: url(<?php echo $qcld_wb_chatbot_board_bg_path ;?>) no-repeat top right !important;
432 + }
433 + </style>
434 +<?php }
435 + $wp_chatbot_enable_rtl = "";
436 + if (get_option('enable_wp_chatbot_rtl')) {
437 + $wp_chatbot_enable_rtl .= "wp-chatbot-rtl";
438 + }
439 + ?>
440 + <div id="wp-chatbot-chat-app-shortcode-container" class="<?php echo $wp_chatbot_enable_rtl; ?>">
441 + <?php
442 + // keep traking app template.
443 + $template_app = 'yes';
444 + //Get wpcommerce cart
445 +
446 + //Handling shortcode enqeue and remove features part.
447 + define('wpCOMMERCE', true);
448 + wp_enqueue_script('jquery');
449 +
450 +
451 + wp_enqueue_script('wc-address-i18n');
452 + wp_enqueue_script('wc-country-select');
453 +
454 +
455 + // add the action
456 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
457 + if (!isset($_COOKIE['from_app'])) {
458 + setcookie('from_app', 'yes', time() + 3600);
459 + }
460 + }
461 + $qcld_wb_chatbot_theme = get_option('qcld_wb_chatbot_theme');
462 + if (file_exists(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php')) {
463 + require_once(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . '/templates/' . $qcld_wb_chatbot_theme . '/template.php');
464 + } else {
465 + echo "<h2>" . __('No WPBot Theme Found!', 'wpchatbot') . "</h2>";
466 + }
467 + ?>
468 + </div>
469 + <?php
470 +}
464 471
465 472 /**
466 473 * wpwBot Search keyword product
467 474 */
@@ -467,20 +474,13 @@
467 474 */
468 475 add_action('wp_ajax_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
469 476 add_action('wp_ajax_nopriv_qcld_wb_chatbot_keyword', 'qcld_wb_chatbot_keyword');
470 477 function qcld_wb_chatbot_keyword(){
471 - // Verify nonce for security
472 - $nonce = isset($_POST['security']) ? sanitize_text_field(wp_unslash($_POST['security'])) : (isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '');
473 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) && ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
474 - wp_send_json_error( array( 'status' => 'fail', 'message' => 'Security check failed.' ) );
475 - wp_die();
476 - }
477 -
478 - $keyword = sanitize_text_field(wp_unslash($_POST['keyword']));
478 + $keyword = sanitize_text_field($_POST['keyword']);
479 479 $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
480 480 if (get_option('qlcd_wp_chatbot_search_option') == 'standard') {
481 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
482 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
481 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
482 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
483 483 //Merging all query together.
484 484 $argu_params = array(
485 485 'post_type' => 'product',
486 486 'post_status' => 'publish',
@@ -522,9 +522,9 @@
522 522 endwhile;
523 523 wp_reset_postdata();
524 524 $html .= '</ul>';
525 525 if ($total_product_num > $product_per_page && $product_per_page > 0 ) {
526 - $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>';
526 + $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 . '" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
527 527 }
528 528 }
529 529 $html .= '</div>';
530 530 } else if (get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
@@ -552,16 +552,16 @@
552 552 }
553 553 }
554 554 $html .= '</ul>';
555 555 if ($total_product_num > $product_per_page && $product_per_page > 0) {
556 - $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>';
556 + $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 . '" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
557 557 }
558 558 }
559 559 $html .= '</div>';
560 560 }
561 561 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
562 - wp_send_json($response);
563 -
562 + echo wp_send_json($response);
563 + wp_die();
564 564 }
565 565 /**
566 566 * wpwBot Categories
567 567 */
@@ -569,22 +569,23 @@
569 569 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category', 'qcld_wb_chatbot_category');
570 570 function qcld_wb_chatbot_category(){
571 571 $category_type="common";
572 572 if (get_option('wp_chatbot_show_parent_category') != "") {
573 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => 0, 'hide_empty' => true, 'fields' => 'all' ) );
573 + $terms = get_terms('product_cat', array('parent' => 0, 'hide_empty' => true, 'fields' => 'all'));
574 +
574 575 } else {
575 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'hide_empty' => true, 'fields' => 'all' ) );
576 + $terms = get_terms('product_cat', array('hide_empty' => true, 'fields' => 'all'));
576 577 }
577 578 $html = "";
578 579 foreach ($terms as $term) {
579 - $child_terms=get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all' ) );
580 + $child_terms=get_terms('product_cat', array('parent' => $term->term_id, 'hide_empty' => true, 'fields' => 'all'));
580 581 if(get_option('wp_chatbot_show_sub_category')==1 && count($child_terms) >0){
581 582 $category_type="hasChilds";
582 583 }
583 584 $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>';
584 585 }
585 - wp_send_json($html);
586 -
586 + echo wp_send_json($html);
587 + wp_die();
587 588 }
588 589 /**
589 590 * wpwBot Sub categories
590 591 */
@@ -590,16 +591,16 @@
590 591 */
591 592 add_action('wp_ajax_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
592 593 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sub_category', 'qcld_wb_chatbot_sub_category');
593 594 function qcld_wb_chatbot_sub_category(){
594 - $parent_id = intval( wp_unslash( $_POST['parent_id'] ) );
595 - $terms = get_terms( array( 'taxonomy' => 'product_cat', 'parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all' ) );
595 + $parent_id = stripslashes($_POST['parent_id']);
596 + $terms = get_terms('product_cat', array('parent' => $parent_id, 'hide_empty' => true, 'fields' => 'all'));
596 597 $html = "";
597 598 foreach ($terms as $term) {
598 599 $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>';
599 600 }
600 - wp_send_json($html);
601 -
601 + echo wp_send_json($html);
602 + wp_die();
602 603 }
603 604 /**
604 605 * wpwBot category product
605 606 */
@@ -605,12 +606,12 @@
605 606 */
606 607 add_action('wp_ajax_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
607 608 add_action('wp_ajax_nopriv_qcld_wb_chatbot_category_products', 'qcld_wb_chatbot_category_products');
608 609 function qcld_wb_chatbot_category_products(){
609 - $category_id = intval( wp_unslash( $_POST['category'] ) );
610 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
611 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
612 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
610 + $category_id = stripslashes($_POST['category']);
611 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
612 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
613 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
613 614 //Merging all query together.
614 615 $argu_params = array(
615 616 'post_type' => 'product',
616 617 'post_status' => 'publish',
@@ -672,9 +673,9 @@
672 673 endwhile;
673 674 wp_reset_postdata();
674 675 $html .= '</ul>';
675 676 if ($total_product_num > $product_per_page && $product_per_page >0) {
676 - $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="category" data-search-term="' . $category_id . '" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
677 + $html .= '<p style="text-align: center"><button type="button" id="wp-chatbot-loadmore" data-offset="' . $product_per_page . '" data-search-type="category" data-search-term="' . $category_id . '" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
677 678 }
678 679 $html .= '</div>';
679 680 } else {
680 681 $html = '';
@@ -679,9 +680,10 @@
679 680 } else {
680 681 $html = '';
681 682 }
682 683 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
683 - wp_send_json($response);
684 + echo wp_send_json($response);
685 + wp_die();
684 686 }
685 687 /**
686 688 * wpwBot latest, featured, recent product
687 689 */
@@ -687,11 +689,11 @@
687 689 */
688 690 add_action('wp_ajax_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
689 691 add_action('wp_ajax_nopriv_qcld_wb_chatbot_featured_products', 'qcld_wb_chatbot_featured_products');
690 692 function qcld_wb_chatbot_featured_products(){
691 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
692 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
693 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
693 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
694 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
695 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
694 696 //get featured products query.
695 697 $argu_params = array('post_status' => 'publish',
696 698 'posts_per_page' => $product_per_page,
697 699 'post_type' => 'product',
@@ -735,14 +737,15 @@
735 737 endwhile;
736 738 wp_reset_postdata();
737 739 $html .= '</ul>';
738 740 if ($total_product_num > $product_per_page) {
739 - $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="featured" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
741 + $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="featured" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
740 742 }
741 743 }
742 744 $html .= '</div>';
743 745 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
744 - wp_send_json($response);
746 + echo wp_send_json($response);
747 + wp_die();
745 748 }
746 749 //Product display controll
747 750 function wp_chatbot_product_controlling($product_id){
748 751 $display_product = true;
@@ -757,11 +760,11 @@
757 760 //Get Sale products
758 761 add_action('wp_ajax_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
759 762 add_action('wp_ajax_nopriv_qcld_wb_chatbot_sale_products', 'qcld_wb_chatbot_sale_products');
760 763 function qcld_wb_chatbot_sale_products(){
761 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
762 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
763 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
764 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
765 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
766 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
764 767 //get sale products query.
765 768 $argu_params = array(
766 769 'post_type' => 'product',
767 770 'post_status' => 'publish',
@@ -833,25 +836,26 @@
833 836 endwhile;
834 837 wp_reset_postdata();
835 838 $html .= '</ul>';
836 839 if ($total_product_num > $product_per_page) {
837 - $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="sale" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more')))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
840 + $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="sale" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_load_more'))) . ' <span id="wp-chatbot-loadmore-loader"></span></button> </p>';
838 841 }
839 842 }
840 843 $html .= '</div>';
841 844 $response = array('html' => $html, 'product_num' => $total_product_num, 'per_page' => $product_per_page);
842 - wp_send_json($response);
845 + echo wp_send_json($response);
846 + wp_die();
843 847 }
844 848 //load more
845 849 add_action('wp_ajax_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
846 850 add_action('wp_ajax_nopriv_qcld_wb_chatbot_load_more', 'qcld_wb_chatbot_load_more');
847 851 function qcld_wb_chatbot_load_more(){
848 - $offset = intval( wp_unslash( $_POST['offset'] ) );
849 - $search_type = sanitize_text_field( wp_unslash( $_POST['search_type'] ) );
850 - $search_term = sanitize_text_field( wp_unslash( $_POST['search_term'] ) );
851 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
852 - $product_orderby = sanitize_text_field(get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title');
853 - $product_order = sanitize_text_field(get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC');
852 + $offset = stripslashes($_POST['offset']);
853 + $search_type = stripslashes($_POST['search_type']);
854 + $search_term = stripslashes($_POST['search_term']);
855 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
856 + $product_orderby = get_option('qlcd_wp_chatbot_product_orderby') != '' ? get_option('qlcd_wp_chatbot_product_orderby') : 'title';
857 + $product_order = get_option('qlcd_wp_chatbot_product_order') != '' ? get_option('qlcd_wp_chatbot_product_order') : 'ASC';
854 858 $next_offset = intval($product_per_page + $offset);
855 859 if ($search_type == 'product' && $search_term != 'featured' && $search_term != 'sale' && get_option('qlcd_wp_chatbot_search_option') == 'advanced') {
856 860 //if have multiple ids then explode else have single need to array push
857 861 if (strpos($search_term, ',') !== false) {
@@ -973,15 +977,16 @@
973 977 $html .= '';
974 978 }
975 979 $response = array('html' => $html, 'product_num' => $product_num, 'search_term' => $search_term, 'offset' => $next_offset, 'per_page' => $product_per_page);
976 980 }
977 - wp_send_json($response);
981 + echo wp_send_json($response);
982 + wp_die();
978 983 }
979 984 //product details
980 985 add_action('wp_ajax_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
981 986 add_action('wp_ajax_nopriv_qcld_wb_chatbot_product_details', 'qcld_wb_chatbot_product_details');
982 987 function qcld_wb_chatbot_product_details(){
983 - $product_id = intval( wp_unslash( $_POST['wp_chatbot_pid'] ) );
988 + $product_id = stripslashes($_POST['wp_chatbot_pid']);
984 989 //Tracking product view from chat board
985 990 wp_chatbot_view_track_product_by_id($product_id);
986 991 //wpcommerce product factory
987 992 $wc_pf = new WC_Product_Factory();
@@ -1009,9 +1014,9 @@
1009 1014 }
1010 1015 }
1011 1016 $product_image .= '</ul></div>';
1012 1017 $product_price = '<p class="wp-chatbot-product-price" id="wp-chatbot-product-price">' . $product->get_price_html() . '</p>';
1013 - $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'chatbot') . ' : ' . $product->get_sku() . '</p>';
1018 + $product_sku = '<p class="wp-chatbot-product-sku"> ' . __('SKU', 'wpchatbot') . ' : ' . $product->get_sku() . '</p>';
1014 1019 //if ( $product->is_in_stock() || $product->is_purchasable() )
1015 1020 //Handle variable product start
1016 1021 $variations = "";
1017 1022 $add_cart_button = "";
@@ -1052,13 +1057,12 @@
1052 1057 } else {
1053 1058 $variations .= '<div class="wp-chatbot-variable-' . sanitize_title($name) . '">';
1054 1059 $variations .= '<label for="' . sanitize_title($name) . '">' . $title . '</label>';
1055 1060 $variations .= '<select id="' . esc_attr(sanitize_title($name)) . '" name="attribute_' . sanitize_title($name) . '" data-attribute_name="attribute_' . sanitize_title($name) . '" class="each_attribute">';
1056 - $variations .= '<option value="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option')))) . '</option>';
1061 + $variations .= '<option value="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_choose_option'))) . '</option>';
1057 1062 foreach ($values as $value) {
1058 - $attr_key = 'attribute_' . sanitize_title( $name );
1059 - if ( isset( $_REQUEST[ $attr_key ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
1060 - $selected_value = sanitize_text_field( wp_unslash( $_REQUEST[ $attr_key ] ) );
1063 + if (isset($_REQUEST['attribute_' . sanitize_title($name)])) {
1064 + $selected_value = $_REQUEST['attribute_' . sanitize_title($name)];
1061 1065 } else {
1062 1066 $selected_value = '';
1063 1067 }
1064 1068 $variations .= '<option value="' . esc_attr(strtolower($value)) . '"' . selected($selected_value, $value, false) . '>' . apply_filters('wpcommerce_variation_option_name', $value) . '</option>';
@@ -1065,29 +1069,30 @@
1065 1069 }
1066 1070 $variations .= '</select></div>';
1067 1071 }
1068 1072 }
1069 - $add_cart_button .= '<input type="button" id="wp-chatbot-variation-add-to-cart" wp-chatbot-product-id="' . $product_id . '" value="' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart')))) . '" variation_id="" />';
1073 + $add_cart_button .= '<input type="button" id="wp-chatbot-variation-add-to-cart" wp-chatbot-product-id="' . $product_id . '" value="' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart'))) . '" variation_id="" />';
1070 1074 $add_cart_button .= "<input type='hidden' id='wp-chatbot-variation-data' data-product-variation='" . $variations_data . "' />";
1071 1075 } else {
1072 - $add_cart_button .= '<input type="button" id="wp-chatbot-add-cart-button" wp-chatbot-product-id="' . $product_id . '" value="' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart')))) . '" />';
1076 + $add_cart_button .= '<input type="button" id="wp-chatbot-add-cart-button" wp-chatbot-product-id="' . $product_id . '" value="' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_add_to_cart'))) . '" />';
1073 1077 }
1074 1078 //Handle variable product end.
1075 - $product_quantity .= '<label for="">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</label>
1079 + $product_quantity .= '<label for="">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</label>
1076 1080 <input type="number" id="vPQuantity" value="1" />';
1077 1081 }
1078 1082 //$response=$full_size_image;
1079 1083 $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);
1080 - wp_send_json($response);
1084 + echo wp_send_json($response);
1085 + wp_die();
1081 1086 }
1082 1087 //Add to cart for variable product.
1083 -add_action('wp_ajax_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1084 -add_action('wp_ajax_nopriv_qcld_variable_add_to_cart', 'qcld_variable_add_to_cart');
1085 -function qcld_variable_add_to_cart(){
1086 - $product_id = intval( wp_unslash( $_POST['p_id'] ) );
1087 - $quantity = intval( wp_unslash( $_POST['quantity'] ) );
1088 - $variations_id = intval( wp_unslash( $_POST['variations_id'] ) );
1089 - $attrs = isset( $_POST['attributes'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $_POST['attributes'] ) ) : array();
1088 +add_action('wp_ajax_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1089 +add_action('wp_ajax_nopriv_variable_add_to_cart', 'qcld_wb_chatbot_variable_add_to_cart');
1090 +function qcld_wb_chatbot_variable_add_to_cart(){
1091 + $product_id = stripslashes($_POST['p_id']);
1092 + $quantity = stripslashes($_POST['quantity']);
1093 + $variations_id = stripslashes($_POST['variations_id']);
1094 + $attrs = stripslashes($_POST['attributes']);
1090 1095 //echo wp_send_json(array('p_id'=>$product_id,'qnty'=>$quantity,'id'=>$variations_id,'att'=>$attrs));
1091 1096 $attributes = array();
1092 1097 foreach ($attrs as $attr) {
1093 1098 $single = explode("#", $attr);
@@ -1098,46 +1103,44 @@
1098 1103 }
1099 1104 global $wpcommerce;
1100 1105 $result = $wpcommerce->cart->add_to_cart($product_id, $quantity, $variations_id, $attributes, null);
1101 1106 if ($result != false) {
1102 - wp_send_json('variable');
1107 + echo wp_send_json('variable');
1103 1108 } else {
1104 - wp_send_json('error');
1109 + echo wp_send_json('error');
1105 1110 }
1111 + wp_die();
1106 1112 }
1107 1113 //Add to cart for simple product.
1108 1114 add_action('wp_ajax_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1109 1115 add_action('wp_ajax_nopriv_qcld_wb_chatbot_add_to_cart', 'qcld_wb_chatbot_add_to_cart');
1110 1116 function qcld_wb_chatbot_add_to_cart(){
1111 - $product_id = intval( wp_unslash( $_POST['product_id'] ) );
1112 - $product_quantity = intval( wp_unslash( $_POST['quantity'] ) );
1117 + $product_id = stripslashes($_POST['product_id']);
1118 + $product_quantity = stripslashes($_POST['quantity']);
1113 1119 global $wpcommerce;
1114 1120 $result = $wpcommerce->cart->add_to_cart($product_id, $product_quantity);
1115 1121 if ($result != false) {
1116 - wp_send_json('simple');
1122 + echo wp_send_json('simple');
1117 1123 } else {
1118 - wp_send_json('error');
1124 + echo wp_send_json('error');
1119 1125 }
1126 + wp_die();
1120 1127 }
1121 1128 //Support part
1122 1129 add_action('wp_ajax_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1123 1130 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_email', 'qcld_wb_chatbot_support_email');
1124 1131 function qcld_wb_chatbot_support_email(){
1125 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
1126 - if ( ! wp_verify_nonce( $nonce, 'qcsecretbotnonceval123qc' ) ) {
1127 - wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'chatbot' ) ) );
1128 - }
1129 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1130 - $email = sanitize_email(wp_unslash($_POST['email']));
1131 - $message = sanitize_text_field(wp_unslash($_POST['message']));
1132 - $subject = sanitize_text_field(get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client');
1132 + $name = trim(sanitize_text_field($_POST['name']));
1133 + $email = sanitize_email($_POST['email']);
1134 + $message = sanitize_text_field($_POST['message']);
1135 + $subject = get_option('qlcd_wp_chatbot_email_sub') != '' ? get_option('qlcd_wp_chatbot_email_sub') : 'Support Email from wpWBot by Client';
1133 1136 //Extract Domain
1134 1137 $url = get_site_url();
1135 - $url = wp_parse_url($url);
1138 + $url = parse_url($url);
1136 1139 $domain = $url['host'];
1137 1140 //$admin_email = "admin@" . $domain;
1138 - $admin_email = sanitize_email(get_option('admin_email'));
1139 - $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
1141 + $admin_email = get_option('admin_email');
1142 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1140 1143
1141 1144
1142 1145 if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1143 1146 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
@@ -1143,23 +1146,24 @@
1143 1146 $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1144 1147 }else{
1145 1148 $fromEmail = "wordpress@" . $domain;
1146 1149 }
1150 +
1147 1151 //Starting messaging and status.
1148 1152 $response['status'] = 'fail';
1149 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_fail')));
1153 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_fail'));
1150 1154 if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
1151 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email'))));
1155 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_invalid_email')));
1152 1156 $response['status'] = 'fail';
1153 1157 } else {
1154 1158 //build email body
1155 1159 $bodyContent = "";
1156 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1157 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1158 - $bodyContent .= '<p>' . __('Email', 'chatbot') . ' : ' . $email . '</p>';
1159 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1160 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . $message . '</p>';
1161 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1160 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1161 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1162 + $bodyContent .= '<p>' . __('Email', 'wpchatbot') . ' : ' . $email . '</p>';
1163 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1164 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . $message . '</p>';
1165 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1162 1166 $to = $toEmail;
1163 1167 $body = $bodyContent;
1164 1168 $headers = array();
1165 1169 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1167,13 +1171,13 @@
1167 1171 $headers[] = 'Reply-To: ' . $name . ' <' . $email . '>';
1168 1172 $result = wp_mail($to, $subject, $body, $headers);
1169 1173 if ($result) {
1170 1174 $response['status'] = 'success';
1171 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_email_sent')));
1175 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_email_sent'));
1172 1176 }
1173 1177
1174 1178 }
1175 - echo wp_json_encode($response);
1179 + echo json_encode($response);
1176 1180 die();
1177 1181 }
1178 1182 //Support Phone
1179 1183 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
@@ -1178,37 +1182,36 @@
1178 1182 //Support Phone
1179 1183 add_action('wp_ajax_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1180 1184 add_action('wp_ajax_nopriv_qcld_wb_chatbot_support_phone', 'qcld_wb_chatbot_support_phone');
1181 1185 function qcld_wb_chatbot_support_phone(){
1182 - check_ajax_referer('qcsecretbotnonceval123qc', 'nonce');
1183 - $name = trim(sanitize_text_field(wp_unslash($_POST['name'])));
1184 - $phone =sanitize_text_field(wp_unslash($_POST['phone']));
1186 + $name = trim(sanitize_text_field($_POST['name']));
1187 + $phone =sanitize_text_field($_POST['phone']);
1185 1188 $subject = 'WPBot Support Mail Request for Call Back';
1186 1189 //Extract Domain
1187 1190 $url = get_site_url();
1188 - $url = wp_parse_url($url);
1191 + $url = parse_url($url);
1189 1192 $domain = $url['host'];
1190 1193 //$admin_email = "admin@" . $domain;
1191 1194 $admin_email = get_option('admin_email');
1192 - $toEmail = sanitize_email(get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email);
1195 + $toEmail = get_option('qlcd_wp_chatbot_admin_email') != '' ? get_option('qlcd_wp_chatbot_admin_email') : $admin_email;
1193 1196
1194 1197
1195 1198 if(get_option('qlcd_wp_chatbot_from_email') && get_option('qlcd_wp_chatbot_from_email')!=''){
1196 - $fromEmail = sanitize_email(get_option('qlcd_wp_chatbot_from_email'));
1199 + $fromEmail = get_option('qlcd_wp_chatbot_from_email');
1197 1200 }else{
1198 1201 $fromEmail = "wordpress@" . $domain;
1199 1202 }
1200 1203 //Starting messaging and status.
1201 1204 $response['status'] = 'fail';
1202 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_fail')));
1205 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_fail'));
1203 1206 //build email body
1204 1207 $bodyContent = "";
1205 - $bodyContent .= '<p><strong>' . __('Support Request Details', 'chatbot') . ':</strong></p><hr>';
1206 - $bodyContent .= '<p>' . __('Name', 'chatbot') . ' : ' . $name . '</p>';
1207 - $bodyContent .= '<p>' . __('Phone', 'chatbot') . ' : ' . $phone . '</p>';
1208 - $bodyContent .= '<p>' . __('Subject', 'chatbot') . ' : ' . $subject . '</p>';
1209 - $bodyContent .= '<p>' . __('Message', 'chatbot') . ' : ' . __(' Call me at ', 'chatbot'). $phone . '</p>';
1210 - $bodyContent .= '<p>' . __('Mail Generated on', 'chatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1208 + $bodyContent .= '<p><strong>' . __('Support Request Details', 'wpchatbot') . ':</strong></p><hr>';
1209 + $bodyContent .= '<p>' . __('Name', 'wpchatbot') . ' : ' . $name . '</p>';
1210 + $bodyContent .= '<p>' . __('Phone', 'wpchatbot') . ' : ' . $phone . '</p>';
1211 + $bodyContent .= '<p>' . __('Subject', 'wpchatbot') . ' : ' . $subject . '</p>';
1212 + $bodyContent .= '<p>' . __('Message', 'wpchatbot') . ' : ' . __(' Call me at ', 'wpchatbot'). $phone . '</p>';
1213 + $bodyContent .= '<p>' . __('Mail Generated on', 'wpchatbot') . ': ' . current_time('F j, Y, g:i a') . '</p>';
1211 1214 $to = $toEmail;
1212 1215 $body = $bodyContent;
1213 1216 $headers = array();
1214 1217 $headers[] = 'Content-Type: text/html; charset=UTF-8';
@@ -1216,17 +1219,38 @@
1216 1219 $headers[] = 'Reply-To: ' . $name . ' <' . $fromEmail . '>';
1217 1220 $result = wp_mail($to, $subject, $body, $headers);
1218 1221 if ($result) {
1219 1222 $response['status'] = 'success';
1220 - $response['message'] = str_replace('\\', '',wp_kses_post(get_option('qlcd_wp_chatbot_phone_sent')));
1223 + $response['message'] = str_replace('\\', '',get_option('qlcd_wp_chatbot_phone_sent'));
1221 1224 }
1222 - echo wp_json_encode($response);
1225 + echo json_encode($response);
1223 1226 die();
1224 1227 }
1225 -// Order Status part. removed
1226 -
1228 +// Order Status part.
1229 +add_action('wp_ajax_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1230 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_check_user', 'qcld_wb_chatbot_check_user');
1231 +function qcld_wb_chatbot_check_user(){
1232 + global $wpcommerce;
1233 + $user_name = trim(sanitize_text_field($_POST['user_name']));
1234 + $response = array();
1235 + $response['message'] = "";
1236 + if (username_exists($user_name)) {
1237 + if (get_option('qlcd_wp_chatbot_order_user') == 'login') {
1238 + $response['status'] = "success";
1239 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_thanks')));
1240 + $response['html'] .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_password'))) . '</p>';
1241 + } else if (get_option('qlcd_wp_chatbot_order_user') == 'not_login') {
1242 + $response = get_order_by_username($user_name);
1243 + }
1244 + } else {
1245 + $response['status'] = "fail";
1246 + $response['message'] .= '<strong>' . $user_name . '</strong> ' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_username_not_exist')));
1247 + }
1248 + echo wp_send_json($response);
1249 + die();
1250 +}
1227 1251 function wpb_randmom_message_handle($items){
1228 - return $items[wp_rand(0, count($items) - 1)];
1252 + return $items[rand(0, count($items) - 1)];
1229 1253 }
1230 1254 function qcld_wb_chatbot_func_str_replace($messages = array()){
1231 1255 $refined_mesgses = array();
1232 1256 foreach ($messages as $message) {
@@ -1241,21 +1265,22 @@
1241 1265 // First check the nonce, if it fails the function will break
1242 1266 check_ajax_referer('wpwbot-order-nonce', 'security');
1243 1267 // Nonce is checked, get the POST data and sign user on
1244 1268 $info = array();
1245 - $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1246 - $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1269 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1270 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1247 1271 $info['remember'] = true;
1248 1272 $user_signon = wp_signon($info, false);
1249 1273 $response = array();
1250 1274 if (is_wp_error($user_signon)) {
1251 1275 $response['status'] = "fail";
1252 - $response['message'] = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect'))));
1276 + $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1253 1277 } else {
1254 1278 $response = get_order_by_username($info['user_login']);
1255 1279 $response['status'] = "success";
1256 1280 }
1257 - wp_send_json($response);
1281 + echo wp_send_json($response);
1282 + die();
1258 1283 }
1259 1284 add_action('wp_ajax_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1260 1285 add_action('wp_ajax_nopriv_qcld_wb_chatbot_loged_in_user_orders', 'qcld_wb_chatbot_loged_in_user_orders');
1261 1286 function qcld_wb_chatbot_loged_in_user_orders(){
@@ -1261,9 +1286,10 @@
1261 1286 function qcld_wb_chatbot_loged_in_user_orders(){
1262 1287 $current_user = wp_get_current_user();
1263 1288 $user_name = $current_user->user_login;
1264 1289 $response = get_order_by_username($user_name);
1265 - wp_send_json($response);
1290 + echo wp_send_json($response);
1291 + die();
1266 1292 }
1267 1293 function get_order_by_username($user_name){
1268 1294 global $post;
1269 1295 $response = array();
@@ -1281,28 +1307,28 @@
1281 1307 ));
1282 1308 $response['order_num'] = count($customer_orders);
1283 1309 $order_html = '';
1284 1310 if ($response['order_num'] > 0) {
1285 - $response['message'] .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found'))));
1311 + $response['message'] .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_found')));
1286 1312 $order_html .= '<div class="wp-chatbot-orders-container">
1287 1313 <div class="wp-chatbot-orders-header">
1288 - <div class="order-id">' . __('ID', 'chatbot') . '</div>
1289 - <div class="order-date">' . __('Date', 'chatbot') . ' </div>
1290 - <div class="order-items">' . __('Items', 'chatbot') . '</div>
1291 - <div class="order-status">' . __('Status', 'chatbot') . '</div>
1314 + <div class="order-id">' . __('ID', 'wpchatbot') . '</div>
1315 + <div class="order-date">' . __('Date', 'wpchatbot') . ' </div>
1316 + <div class="order-items">' . __('Items', 'wpchatbot') . '</div>
1317 + <div class="order-status">' . __('Status', 'wpchatbot') . '</div>
1292 1318 </div>';
1293 1319 foreach ($customer_orders as $order) {
1294 1320 //Formatting order summery
1295 1321 if (isset($_COOKIE['from_app']) && $_COOKIE['from_app'] == 'yes') {
1296 - $thanks_page_id = sanitize_text_field(get_option('wp_chatbot_app_order_thankyou'));
1322 + $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1297 1323 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1298 1324 $order_url = '<a href="' . $thanks_parmanlink . '?order_id=' . $order->ID . '" >' . $order->ID . '</a>';
1299 1325 } else {
1300 - $order_url = '<a href="' . get_url(get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID) . '" target="_blank" >' . $order->ID . '</a>';
1326 + $order_url = '<a href="' . get_permalink(get_option('wpcommerce_myaccount_page_id')) . '/view-order/' . $order->ID . '" target="_blank" >' . $order->ID . '</a>';
1301 1327 }
1302 1328 $order_html .= '<div class="wp-chatbot-orders-single">
1303 1329 <div class="order-id"> ' . $order_url . '</div>
1304 - <div class="order-date"> <p>' . gmdate("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1330 + <div class="order-date"> <p>' . date("m/d/Y", strtotime($order->post_date)) . '</p> </div>
1305 1331 <div class="order-items">';
1306 1332 $singleOrder = new WC_Order($order->ID);
1307 1333 $items = $singleOrder->get_items();
1308 1334 foreach ($items as $item) {
@@ -1315,9 +1341,9 @@
1315 1341 }
1316 1342 $order_html .= '</div>';
1317 1343 } else {
1318 1344 $response['message'] .= get_option('qlcd_wp_chatbot_sorry') . '! <strong>' . $user_name . '</strong>';
1319 - $order_html .= '<p>' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found')))) . '</p>';
1345 + $order_html .= '<p>' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_not_found'))) . '</p>';
1320 1346 }
1321 1347 $response['html'] = $order_html;
1322 1348 return $response;
1323 1349 }
@@ -1353,10 +1379,10 @@
1353 1379 function qcld_wb_chatbot_recently_viewed_products(){
1354 1380 // Get wpCommerce Global
1355 1381 $_pf = new WC_Product_Factory();
1356 1382 //show post per page.
1357 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
1358 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1383 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1384 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1359 1385 // Get recently viewed product cookies data
1360 1386 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1361 1387 $viewed_products = array_filter(array_map('absint', $viewed_products));
1362 1388 //get featured products if has.
@@ -1362,9 +1388,9 @@
1362 1388 //get featured products if has.
1363 1389 $featured_products = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'tax_query' => array(array('taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured'))));
1364 1390 //Getting recently vieew products.
1365 1391 if (!empty($viewed_products)) {
1366 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))));
1392 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1367 1393 $product_query = new WP_Query(array(
1368 1394 'posts_per_page' => $product_per_page,
1369 1395 'no_found_rows' => 1,
1370 1396 'post_status' => 'publish',
@@ -1372,15 +1398,16 @@
1372 1398 'post__in' => $viewed_products,
1373 1399 ));
1374 1400 //Getting featured products
1375 1401 } else if ($featured_products->post_count > 0) {
1376 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome'))));
1402 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1377 1403 $product_query = $featured_products;
1378 1404 } else {
1379 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1405 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1380 1406 //Getting recent products
1381 1407 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1382 1408 }
1409 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1383 1410 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1384 1411 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1385 1412 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1386 1413 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1387,10 +1414,10 @@
1387 1414 } else {
1388 1415 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1389 1416 }
1390 1417 $html = '<div class="wp-chatbot-agent-profile">
1391 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1392 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1418 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1419 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1393 1420 <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1394 1421 </div>';
1395 1422 if ($product_query->post_count > 0) {
1396 1423 $html .= '<div class="wp-chatbot-products-area">';
@@ -1402,9 +1429,9 @@
1402 1429 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1403 1430 <div class="wp-chatbot-product-summary">
1404 1431 <div class="wp-chatbot-product-table">
1405 1432 <div class="wp-chatbot-product-table-cell">
1406 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1433 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1407 1434 <div class="price">' . $product->get_price_html() . '</div>';
1408 1435 $html .= ' </div>
1409 1436 </div>
1410 1437 </div></a>
@@ -1417,9 +1444,10 @@
1417 1444 $html .= '<div class="wp-chatbot-products-area">';
1418 1445 $html .= '<p style="text-align: center">You have no products !';
1419 1446 $html .= '</div>';
1420 1447 }
1421 - wp_send_json($html);
1448 + echo wp_send_json($html);
1449 + die();
1422 1450 }
1423 1451 //Recently viewed product shortcode
1424 1452 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1425 1453 function qcld_wb_chatbot_recently_viewed_shortcode(){
@@ -1424,10 +1452,10 @@
1424 1452 add_shortcode('wpwbot_products', 'qcld_wb_chatbot_recently_viewed_shortcode');
1425 1453 function qcld_wb_chatbot_recently_viewed_shortcode(){
1426 1454 // Get wpCommerce Global
1427 1455 $_pf = new WC_Product_Factory();
1428 - $product_per_page = sanitize_text_field(get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10);
1429 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1456 + $product_per_page = get_option('qlcd_wp_chatbot_ppp') != '' ? get_option('qlcd_wp_chatbot_ppp') : 10;
1457 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1430 1458 // Get recently viewed product cookies data
1431 1459 $viewed_products = !empty($_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) ? (array)explode('|', $_COOKIE['wp_chatbot_wpcommerce_recently_viewed']) : array();
1432 1460 $viewed_products = array_filter(array_map('absint', $viewed_products));
1433 1461 //get featured products if has.
@@ -1433,9 +1461,9 @@
1433 1461 //get featured products if has.
1434 1462 $featured_products = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'tax_query' => array(array('taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'featured'))));
1435 1463 //Getting recently vieew products.
1436 1464 if (!empty($viewed_products)) {
1437 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))));
1465 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome')));
1438 1466 $product_query = new WP_Query(array(
1439 1467 'posts_per_page' => $product_per_page,
1440 1468 'no_found_rows' => 1,
1441 1469 'post_status' => 'publish',
@@ -1443,15 +1471,16 @@
1443 1471 'post__in' => $viewed_products,
1444 1472 ));
1445 1473 //implementing featured products
1446 1474 } else if ($featured_products->post_count > 0) {
1447 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome'))));
1475 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_featured_product_welcome')));
1448 1476 $product_query = $featured_products;
1449 1477 } else {
1450 - $wp_chatbot_product_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome'))));
1478 + $wp_chatbot_product_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_latest_product_welcome')));
1451 1479 //Getting recent products
1452 1480 $product_query = new WP_Query(array('post_status' => 'publish', 'posts_per_page' => $product_per_page, 'post_type' => 'product', 'orderby' => 'date', 'order' => 'DESC'));
1453 1481 }
1482 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_viewed_product_welcome'))).'</div>';
1454 1483 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1455 1484 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1456 1485 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1457 1486 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1458,11 +1487,11 @@
1458 1487 } else {
1459 1488 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1460 1489 }
1461 1490 $html = '<div class="wp-chatbot-agent-profile">
1462 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1463 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1464 - <div class="wp-chatbot-bubble">' . esc_html($wp_chatbot_product_title) . '</div>
1491 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1492 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1493 + <div class="wp-chatbot-bubble">' . $wp_chatbot_product_title . '</div>
1465 1494 </div>';
1466 1495 if ($product_query->post_count > 0) {
1467 1496 $html .= '<div class="wp-chatbot-products-area">';
1468 1497 $html .= '<ul class="wp-chatbot-products">';
@@ -1473,9 +1502,9 @@
1473 1502 $html .= get_the_post_thumbnail(get_the_ID(), 'shop_catalog') . '
1474 1503 <div class="wp-chatbot-product-summary">
1475 1504 <div class="wp-chatbot-product-table">
1476 1505 <div class="wp-chatbot-product-table-cell">
1477 - <h3 class="wp-chatbot-product-title">' . esc_html($product->post->post_title) . '</h3>
1506 + <h3 class="wp-chatbot-product-title">' . $product->post->post_title . '</h3>
1478 1507 <div class="price">' . $product->get_price_html() . '</div>';
1479 1508 $html .= ' </div>
1480 1509 </div>
1481 1510 </div></a>
@@ -1485,9 +1514,9 @@
1485 1514 wp_reset_postdata();
1486 1515 $html .= '</ul></div>';
1487 1516 } else {
1488 1517 $html .= '<div class="wp-chatbot-products-area">';
1489 - $html .= '<p style="text-align: center">' . __('You have no products', 'chatbot') . ' !';
1518 + $html .= '<p style="text-align: center">' . __('You have no products', 'wpchatbot') . ' !';
1490 1519 $html .= '</div>';
1491 1520 }
1492 1521 return $html;
1493 1522 }
@@ -1501,10 +1530,11 @@
1501 1530 $checkout_url = wc_get_checkout_url();
1502 1531 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1503 1532 $items = $wpcommerce->cart->get_cart();
1504 1533 $itemCount = $wpcommerce->cart->cart_contents_count;
1505 - $cart_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart'))));
1506 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1534 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1535 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1536 + //$html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1507 1537 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1508 1538 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1509 1539 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1510 1540 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1511,15 +1541,15 @@
1511 1541 } else {
1512 1542 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1513 1543 }
1514 1544 $html = '<div class="wp-chatbot-agent-profile">
1515 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1516 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1517 - <div class="wp-chatbot-bubble">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome')))) . '</div>
1545 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1546 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1547 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1518 1548 </div>';
1519 1549 if ($itemCount >= 1) {
1520 1550 $html .= '<div class ="wp-chatbot-cart-container">';
1521 - $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price')))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1551 + $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price'))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1522 1552 $html .= '<div class ="wp-chatbot-cart-body">';
1523 1553 foreach ($items as $item => $values) {
1524 1554 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1525 1555 //product image
@@ -1537,9 +1567,9 @@
1537 1567 <div class="qcld-wp-chatbot-cell"></div>
1538 1568 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1539 1569 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1540 1570 </div>';
1541 - $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link')))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link')))) . '</a></div></div>';
1571 + $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link'))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link'))) . '</a></div></div>';
1542 1572 $html .= ' </div>';
1543 1573 } else {
1544 1574 $html .= '<div class="wp-chatbot-cart-container">';
1545 1575 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1545,9 +1575,10 @@
1545 1575 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1546 1576 $html .= '</div>';
1547 1577 }
1548 1578 $response = array('html' => $html, 'items' => $itemCount);
1549 - wp_send_json($response);
1579 + echo wp_send_json($response);
1580 + wp_die();
1550 1581 }
1551 1582 //cart onley for wp chatbot
1552 1583 add_action('wp_ajax_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
1553 1584 add_action('wp_ajax_nopriv_qcld_wb_chatbot_only_cart', 'qcld_wb_chatbot_only_cart');
@@ -1558,14 +1589,14 @@
1558 1589 $checkout_url = wc_get_checkout_url();
1559 1590 //$checkout_url = $wpcommerce->cart->get_checkout_url();
1560 1591 $items = $wpcommerce->cart->get_cart();
1561 1592 $itemCount = $wpcommerce->cart->cart_contents_count;
1562 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1593 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1563 1594
1564 1595 $html = '';
1565 1596 if ($itemCount >= 1) {
1566 1597 $html .= '<div class ="wp-chatbot-cart-container">';
1567 - $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price')))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1598 + $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price'))) . '</div><div class="qcld-wp-chatbot-cell"></div></div>';
1568 1599 $html .= '<div class ="wp-chatbot-cart-body">';
1569 1600 foreach ($items as $item => $values) {
1570 1601 $cart_item= apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1571 1602 //product image
@@ -1583,17 +1614,18 @@
1583 1614 <div class="qcld-wp-chatbot-cell"></div>
1584 1615 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1585 1616 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1586 1617 </div>';
1587 - $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link')))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link')))) . '</a></div></div>';
1618 + $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a class="wp-chatbot-cart-link" href="' . $cart_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link'))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a class="wp-chatbot-checkout-link" href="' . $checkout_url . '" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link'))) . '</a></div></div>';
1588 1619 $html .= ' </div>';
1589 1620 } else {
1590 1621 $html .= '<div class="wp-chatbot-cart-container">';
1591 - $html .= '<div><p style="text-align:center">' . esc_html($no_cart_item_msg) . '</p></div>';
1622 + $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
1592 1623 $html .= '</div>';
1593 1624 }
1594 1625 $response = array('html' => $html, 'items' => $itemCount);
1595 - wp_send_json($response);
1626 + echo wp_send_json($response);
1627 + wp_die();
1596 1628 }
1597 1629 //Cart show Shortcode
1598 1630 add_shortcode('wpwbot_cart', 'qcld_wb_chatbot_cart_shortcode');
1599 1631 function qcld_wb_chatbot_cart_shortcode(){
@@ -1599,10 +1631,11 @@
1599 1631 function qcld_wb_chatbot_cart_shortcode(){
1600 1632 global $wpcommerce;
1601 1633 $items = $wpcommerce->cart->get_cart();
1602 1634 $itemCount = $wpcommerce->cart->cart_contents_count;
1603 - $cart_title = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart'))));
1604 - $no_cart_item_msg = wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1635 + $cart_title = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_shopping_cart')));
1636 + $no_cart_item_msg = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1637 + // $html = '<div class="wp-chatbot-widget-bubble">'.wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))).'</div>';
1605 1638 if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') == "custom-agent.png") {
1606 1639 $wp_chatbot_custom_icon_path = get_option('wp_chatbot_custom_agent_path');
1607 1640 } else if (get_option('wp_chatbot_custom_agent_path') != "" && get_option('wp_chatbot_agent_image') != "custom-agent.png") {
1608 1641 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . get_option('wp_chatbot_agent_image');
@@ -1609,15 +1642,15 @@
1609 1642 } else {
1610 1643 $wp_chatbot_custom_icon_path = QCLD_wpCHATBOT_IMG_URL . 'custom-agent.png';
1611 1644 }
1612 1645 $html = '<div class="wp-chatbot-agent-profile">
1613 - <div class="wp-chatbot-widget-avatar"><img src="' . esc_url($wp_chatbot_custom_icon_path) . '" alt=""></div>
1614 - <div class="wp-chatbot-widget-agent">' . esc_html(get_option('qlcd_wp_chatbot_agent')) . '</div>
1615 - <div class="wp-chatbot-bubble">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome')))) . '</div>
1646 + <div class="wp-chatbot-widget-avatar"><img src="' . $wp_chatbot_custom_icon_path . '" alt=""></div>
1647 + <div class="wp-chatbot-widget-agent">' . get_option('qlcd_wp_chatbot_agent') . '</div>
1648 + <div class="wp-chatbot-bubble">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_welcome'))) . '</div>
1616 1649 </div>';
1617 1650 if ($itemCount >= 1) {
1618 1651 $html .= '<div class ="wp-chatbot-cart-container">';
1619 - $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity')))) . '</div><div class="qcld-wp-chatbot-cell">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price')))) . '</div> <div class="qcld-wp-chatbot-cell"></div> </div>';
1652 + $html .= '<div class="wp-chatbot-cart-header"><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_title'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_quantity'))) . '</div><div class="qcld-wp-chatbot-cell">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_price'))) . '</div> <div class="qcld-wp-chatbot-cell"></div> </div>';
1620 1653 $html .= '<div class ="wp-chatbot-cart-body">';
1621 1654 foreach ($items as $item => $values) {
1622 1655 $cart_item = apply_filters('wpcommerce_cart_item_product', $values['data'], $values, $item);
1623 1656 //product image
@@ -1635,9 +1668,9 @@
1635 1668 <div class="qcld-wp-chatbot-cell"></div>
1636 1669 <div class="qcld-wp-chatbot-cell"><strong>Total</strong></div>
1637 1670 <div class="qcld-wp-chatbot-cell"><strong>' . $wpcommerce->cart->get_cart_total() . '</strong></div>
1638 1671 </div>';
1639 - $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a href="' . site_url() . '/cart" target="_blank" >' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link')))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a href="' . site_url() . '/checkout" target="_blank">' . wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link')))) . '</a></div></div>';
1672 + $html .= '<div class="wp-chatbot-cart-footer"><div class="qcld-wp-chatbot-cart-page"><a href="' . site_url() . '/cart" target="_blank" >' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_cart_link'))) . '</a></div><div class="qcld-wp-chatbot-checkout"><a href="' . site_url() . '/checkout" target="_blank">' . wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_checkout_link'))) . '</a></div></div>';
1640 1673 $html .= ' </div>';
1641 1674 } else {
1642 1675 $html .= '<div class="wp-chatbot-cart-container">';
1643 1676 $html .= '<div><p style="text-align:center">' . $no_cart_item_msg . '</p></div>';
@@ -1649,26 +1682,26 @@
1649 1682 //Updating the cart items.
1650 1683 add_action('wp_ajax_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1651 1684 add_action('wp_ajax_nopriv_qcld_wb_chatbot_update_cart_item_number', 'qcld_wb_chatbot_update_cart_item_number');
1652 1685 function qcld_wb_chatbot_update_cart_item_number(){
1653 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1654 1686 //getting cart items n
1655 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item_key']));
1656 - $qnty = sanitize_text_field(wp_unslash($_POST['qnty']));
1687 + $cart_item_key = sanitize_text_field($_POST['cart_item_key']);
1688 + $qnty = sanitize_text_field($_POST['qnty']);
1657 1689 global $wpcommerce;
1658 1690 $result = $wpcommerce->cart->set_quantity($cart_item_key, $qnty);
1659 - wp_send_json($result);
1691 + echo wp_send_json($result);
1692 + wp_die();
1660 1693 }
1661 1694 //Show item after removing from cart page.
1662 1695 add_action('wp_ajax_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1663 1696 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_item_remove', 'qcld_wb_chatbot_cart_item_remove');
1664 1697 function qcld_wb_chatbot_cart_item_remove(){
1665 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1666 1698 //getting cart items n
1667 - $cart_item_key = sanitize_text_field(wp_unslash($_POST['cart_item']));
1699 + $cart_item_key = sanitize_text_field($_POST['cart_item']);
1668 1700 global $wpcommerce;
1669 1701 $result = $wpcommerce->cart->remove_cart_item($cart_item_key);
1670 - wp_send_json($result);
1702 + echo wp_send_json($result);
1703 + wp_die();
1671 1704 }
1672 1705 //Show cart page by shortcode.
1673 1706 add_action('wp_ajax_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
1674 1707 add_action('wp_ajax_nopriv_qcld_wb_chatbot_cart_page', 'qcld_wb_chatbot_cart_page');
@@ -1676,13 +1709,14 @@
1676 1709 global $wpcommerce;
1677 1710 $itemCount = $wpcommerce->cart->cart_contents_count;
1678 1711 $html = "";
1679 1712 if ($itemCount < 0) {
1680 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1713 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1681 1714 } else {
1682 1715 $html .= do_shortcode("[wpcommerce_cart]");
1683 1716 }
1684 - wp_send_json($html);
1717 + echo wp_send_json($html);
1718 + wp_die();
1685 1719 }
1686 1720 //Show checkout page by shortcode.
1687 1721 add_action('wp_ajax_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
1688 1722 add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_page', 'qcld_wb_chatbot_checkout_page');
@@ -1691,9 +1725,9 @@
1691 1725 $itemCount = $wpcommerce->cart->cart_contents_count;
1692 1726 $html = "";
1693 1727 if ($itemCount < 0) {
1694 1728 $status = 'no';
1695 - $html .= wp_kses_post(wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items'))));
1729 + $html .= wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_no_cart_items')));
1696 1730 } else {
1697 1731 $status = 'yes';
1698 1732 $checkout_page_id = get_option('wp_chatbot_app_checkout');
1699 1733 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
@@ -1699,12 +1733,13 @@
1699 1733 $checkout_parmanlink = esc_url(get_permalink($checkout_page_id));
1700 1734 $html .= $checkout_parmanlink;
1701 1735 }
1702 1736 $response = array('status' => $status, 'html' => $html);
1703 - wp_send_json($response);
1737 + echo wp_send_json($response);
1738 + wp_die();
1704 1739 }
1705 1740 //_dynamic_intent
1706 -function qcld_dynamic_intent(){
1741 +function qc_dynamic_intent(){
1707 1742 global $wpdb;
1708 1743 $intents = array();
1709 1744
1710 1745 $ai_df = get_option('enable_wp_chatbot_dailogflow');
@@ -1721,10 +1756,9 @@
1721 1756
1722 1757 if(class_exists('Qcformbuilder_Forms_Admin')){
1723 1758
1724 1759
1725 - $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
1726 -
1760 + $results = $wpdb->get_results("SELECT * FROM ". $wpdb->prefix."wfb_forms where 1 and type='primary'");
1727 1761 if(!empty($results)){
1728 1762
1729 1763 foreach($results as $result){
1730 1764 $form = maybe_unserialize($result->config);
@@ -1742,28 +1776,30 @@
1742 1776
1743 1777 }
1744 1778
1745 1779 //User login on Checkout page.
1746 -// add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1747 -// add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1748 -// function qcld_wb_chatbot_checkout_user_login(){
1749 -// // Nonce is checked, get the POST data and sign user on
1750 -// $info = array();
1751 -// //$info['nonce'] = $_POST['nonce_val'];
1752 -// $info['user_login'] = trim(sanitize_text_field(wp_unslash($_POST['user_name'])));
1753 -// $info['user_password'] = trim(sanitize_text_field(wp_unslash($_POST['user_pass'])));
1754 -// $info['remember'] = true;
1755 -// $user_signon = wp_signon($info, false);
1756 -// // $response=$info;
1757 -// $response = array();
1758 -// if (is_wp_error($user_signon)) {
1759 -// // $response['status'] = "fail";
1760 -// $response = "no";
1761 -// } else {
1762 -// $response = "yes";
1763 -// }
1764 -// wp_send_json($response);
1765 -// }
1780 +add_action('wp_ajax_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1781 +add_action('wp_ajax_nopriv_qcld_wb_chatbot_checkout_user_login', 'qcld_wb_chatbot_checkout_user_login');
1782 +function qcld_wb_chatbot_checkout_user_login(){
1783 + // Nonce is checked, get the POST data and sign user on
1784 + $info = array();
1785 + //$info['nonce'] = $_POST['nonce_val'];
1786 + $info['user_login'] = trim(sanitize_text_field($_POST['user_name']));
1787 + $info['user_password'] = trim(sanitize_text_field($_POST['user_pass']));
1788 + $info['remember'] = true;
1789 + $user_signon = wp_signon($info, false);
1790 + // $response=$info;
1791 + $response = array();
1792 + if (is_wp_error($user_signon)) {
1793 + // $response['status'] = "fail";
1794 + // $response['message'] = wpb_randmom_message_handle(unserialize(get_option('qlcd_wp_chatbot_order_password_incorrect')));
1795 + $response = "no";
1796 + } else {
1797 + $response = "yes";
1798 + }
1799 + echo wp_send_json($response);
1800 + die();
1801 +}
1766 1802 // Load template for App Order Thank You page url
1767 1803 function wp_chatbot_load_app_template($template){
1768 1804 if (is_page('wpwbot-mobile-app')) {
1769 1805 return dirname(__FILE__) . '/templates/app-templates/app.php';
@@ -1792,16 +1828,15 @@
1792 1828 add_action('init', 'wp_chatbot_create_app_checkout_thankyou_page');
1793 1829 function wp_chatbot_create_app_checkout_thankyou_page(){
1794 1830 if (get_option('wp_chatbot_app_pages') == 1) {
1795 1831 //Mobile App page create
1796 - $existing_app = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-mobile-app', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1797 - if ( ! $existing_app->have_posts() ) {
1832 + if (get_page_by_title('wpwBot Mobile App') == NULL) {
1798 1833 //post status and options
1799 1834 $app_page = array(
1800 1835 'comment_status' => 'closed',
1801 1836 'ping_status' => 'closed',
1802 1837 'post_author' => get_current_user_id(),
1803 - 'post_date' => gmdate('Y-m-d H:i:s'),
1838 + 'post_date' => date('Y-m-d H:i:s'),
1804 1839 'post_status' => 'publish',
1805 1840 'post_title' => 'wpwBot Mobile App',
1806 1841 'post_name' => 'wpwbot-mobile-app',
1807 1842 'post_type' => 'page',
@@ -1811,16 +1846,15 @@
1811 1846 //save the id in the database
1812 1847 update_option('wp_chatbot_app_checkout', $wpwbot_app);
1813 1848 }
1814 1849 //App checkout page create
1815 - $existing_checkout = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-checkout', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1816 - if ( ! $existing_checkout->have_posts() ) {
1850 + if (get_page_by_title('wpwBot App Checkout') == NULL) {
1817 1851 //post status and options
1818 1852 $checkout_page = array(
1819 1853 'comment_status' => 'closed',
1820 1854 'ping_status' => 'closed',
1821 1855 'post_author' => get_current_user_id(),
1822 - 'post_date' => gmdate('Y-m-d H:i:s'),
1856 + 'post_date' => date('Y-m-d H:i:s'),
1823 1857 'post_status' => 'publish',
1824 1858 'post_title' => 'wpwBot App Checkout',
1825 1859 'post_name' => 'wpwbot-app-checkout',
1826 1860 'post_type' => 'page',
@@ -1830,16 +1864,15 @@
1830 1864 //save the id in the database
1831 1865 update_option('wp_chatbot_app_checkout', $app_checkout);
1832 1866 }
1833 1867 //App Order thank you page create
1834 - $existing_thankyou = new WP_Query( array( 'post_type' => 'page', 'name' => 'wpwbot-app-order-thankyou', 'post_status' => 'publish', 'posts_per_page' => 1 ) );
1835 - if ( ! $existing_thankyou->have_posts() ) {
1868 + if (get_page_by_title('wpwBot App Order Thank You') == NULL) {
1836 1869 //post status and options
1837 1870 $thankyou_page = array(
1838 1871 'comment_status' => 'closed',
1839 1872 'ping_status' => 'closed',
1840 1873 'post_author' => get_current_user_id(),
1841 - 'post_date' => gmdate('Y-m-d H:i:s'),
1874 + 'post_date' => date('Y-m-d H:i:s'),
1842 1875 'post_status' => 'publish',
1843 1876 'post_title' => 'wpwBot App Order Thank You',
1844 1877 'post_name' => 'wpwbot-app-order-thankyou',
1845 1878 'post_type' => 'page',
@@ -1850,9 +1883,9 @@
1850 1883 update_option('wp_chatbot_app_order_thankyou', $app_order_thankyou);
1851 1884 }
1852 1885 }
1853 1886 //Keep tracking from App by cookies
1854 - if ( isset( $_GET['from'] ) && sanitize_text_field( wp_unslash( $_GET['from'] ) ) === 'app' ) { // phpcs:ignore WordPress.Security.NonceVerification
1887 + if (isset($_GET['from']) && $_GET['from'] == 'app') {
1855 1888 if (!isset($_COOKIE['from_app'])) {
1856 1889 setcookie('from_app', 'yes', (time() + 3600), '/');
1857 1890 }
1858 1891 }
@@ -1866,9 +1899,9 @@
1866 1899 global $wp;
1867 1900 if (is_checkout() && !empty($wp->query_vars['order-received'])) {
1868 1901 $thanks_page_id = get_option('wp_chatbot_app_order_thankyou');
1869 1902 $thanks_parmanlink = esc_url(get_permalink($thanks_page_id));
1870 - wp_safe_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1903 + wp_redirect($thanks_parmanlink . '?order_id=' . $order_get_id);
1871 1904 exit;
1872 1905 }
1873 1906 } else {
1874 1907 remove_action('wpcommerce_thankyou', 'qcld_wb_chatbot__redirect_after_purchase');
@@ -1876,12 +1909,9 @@
1876 1909 }
1877 1910 }
1878 1911
1879 1912 function qcld_choose_random($array){
1880 - if (is_array($array) && !empty($array)) {
1881 - return $array[array_rand($array)];
1882 - }
1883 - return $array;
1913 + return $array[array_rand($array)];
1884 1914 }
1885 1915
1886 1916 //User session count
1887 1917 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
@@ -1887,9 +1917,8 @@
1887 1917 add_action('wp_ajax_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1888 1918 add_action('wp_ajax_nopriv_qcld_wb_chatbot_session_count', 'qcld_wb_chatbot_session_count');
1889 1919 function qcld_wb_chatbot_session_count(){
1890 1920 // Nonce is checked, get the POST data and sign user on
1891 - check_ajax_referer( 'wp_chatbot', 'nonce' );
1892 1921 global $wpdb;
1893 1922 $wpdb->show_errors = true;
1894 1923 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1924 $response = array();
@@ -1894,12 +1923,11 @@
1894 1923 $tableuser = $wpdb->prefix.'wpbot_sessions';
1895 1924 $response = array();
1896 1925
1897 1926
1898 - $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
1899 -
1927 + $session_exists = $wpdb->get_row("select * from $tableuser where 1 and id = '1'");
1900 1928 if(empty($session_exists)){
1901 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
1929 + $wpdb->insert(
1902 1930 $tableuser,
1903 1931 array(
1904 1932 'session' => 1,
1905 1933 )
@@ -1906,10 +1934,9 @@
1906 1934 );
1907 1935 }else{
1908 1936
1909 1937 $session_id = $session_exists->id;
1910 -
1911 - $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
1938 + $wpdb->update(
1912 1939 $tableuser,
1913 1940 array(
1914 1941 'session'=>($session_exists->session+1),
1915 1942 ),
@@ -1918,18 +1945,18 @@
1918 1945 '%d',
1919 1946 ),
1920 1947 array('%d')
1921 1948 );
1922 -
1923 1949 }
1924 1950
1925 - wp_send_json($response);
1951 + echo wp_send_json($response);
1952 + die();
1926 1953 }
1927 1954
1928 1955 /* WPBot Chat History Addon check */
1929 1956 function qcld_wpbot_is_active_chat_history(){
1930 1957
1931 - if(function_exists('qcwp_chat_session_menu_fnc') || function_exists('qcwp_chat_session_menu_fnc_free') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1958 + if(function_exists('qcwp_chat_session_menu_fnc') || function_exists( 'qcpdcs_chat_session_menu_fnc' ) ){
1932 1959 return 1;
1933 1960 }else{
1934 1961 return 0;
1935 1962 }
@@ -1935,83 +1962,23 @@
1935 1962 }
1936 1963
1937 1964 }
1938 1965
1939 -/**
1940 - * Safely sanitize chatbot conversation input.
1941 - *
1942 - * SECURITY FIX (CVE WPBot Stored XSS ≤ 8.6.9):
1943 - * The previous order was: wp_kses() → html_entity_decode() → htmlspecialchars().
1944 - * An attacker could submit entity-encoded payloads (&lt;img onerror=...&gt;) that
1945 - * bypassed wp_kses (which saw inert text), were then decoded back into live markup
1946 - * by html_entity_decode(), and survived into storage and the admin UI.
1947 - *
1948 - * Correct order: html_entity_decode() FIRST → wp_kses() → htmlspecialchars().
1949 - * wp_kses() now sees the real decoded markup and strips forbidden tags/attributes.
1950 - *
1951 - * @param string $data Raw conversation string (already wp_unslash'd by caller).
1952 - * @return string Sanitized, entity-encoded string safe for DB storage.
1953 - */
1954 -function qcld_wpbot_input_validation( $data ) {
1955 - // 1. Decode any entity-encoded HTML so wp_kses sees the real markup.
1956 - $data = html_entity_decode( $data, ENT_QUOTES | ENT_HTML5, 'UTF-8' );
1957 - $data = trim( $data );
1958 - $data = stripslashes( $data );
1959 - // 2. Sanitize with a strict allowlist — NOW operating on decoded markup.
1960 - $data = wp_kses( $data, wpbot_get_safe_conversation_tags() );
1961 - // 3. Re-encode for safe DB storage; admin.js decodes for rendering.
1962 - $data = htmlspecialchars( $data, ENT_QUOTES | ENT_HTML5, 'UTF-8' );
1966 +function qc_wpbot_input_validation( $data ) {
1967 + $data = html_entity_decode($data);
1968 + $data = trim($data);
1969 + $data = stripslashes($data);
1970 + $data = htmlspecialchars($data);
1963 1971 return $data;
1964 1972 }
1965 -
1966 -/**
1967 - * Returns the strict HTML allowlist for chatbot conversation content.
1968 - *
1969 - * Critically: no event-handler attributes (onerror, onclick, onload, etc.) are
1970 - * allowed — wp_kses strips any attribute not explicitly listed here.
1971 - * 'img' is intentionally omitted; bot responses that include images should use
1972 - * safe URLs only and can be re-added with only 'src', 'alt', 'class' if needed.
1973 - *
1974 - * @return array<string, array<string, bool>>
1975 - */
1976 -function wpbot_get_safe_conversation_tags() {
1977 - return array(
1978 - 'ul' => array( 'class' => true ),
1979 - 'ol' => array( 'class' => true ),
1980 - 'li' => array( 'class' => true, 'id' => true ),
1981 - 'div' => array( 'class' => true, 'id' => true ),
1982 - 'span' => array( 'class' => true, 'id' => true ),
1983 - 'p' => array( 'class' => true ),
1984 - 'br' => array(),
1985 - 'strong' => array(),
1986 - 'em' => array(),
1987 - 'b' => array(),
1988 - 'i' => array(),
1989 - 'a' => array(
1990 - 'href' => true,
1991 - 'target' => true,
1992 - 'rel' => true,
1993 - 'class' => true,
1994 - ),
1995 - // 'img' intentionally excluded — prevents onerror/onload injection.
1996 - // Add back with only 'src','alt','class' if bot image responses are needed.
1997 - );
1998 -}
1999 -add_action('wp_ajax_qcld_small_talk_import', 'qcld_small_talk_import');
2000 -function qcld_small_talk_import(){
2001 - if ( ! current_user_can( 'manage_options' ) ) {
2002 - wp_die();
2003 - }
1973 +add_action('wp_ajax_small_talk_import', 'small_talk_import');
1974 +function small_talk_import(){
2004 1975 global $wpdb;
2005 -
2006 1976 $table = $wpdb->prefix.'wpbot_response';
2007 -
2008 1977 $csvFile = file(QCLD_wpCHATBOT_PLUGIN_DIR_PATH . 'small_talk.csv');
2009 -
2010 1978 foreach ($csvFile as $line) {
2011 1979 $line = str_getcsv($line, ',', '"');
2012 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
2013 - $table, array(
1980 + $wpdb->insert($table, array(
2014 1981 'query' => $line[0],
2015 1982 'keyword' => $line[1],
2016 1983 'response' => $line[2],
2017 1984 'category'=> $line[3],
@@ -2018,63 +1985,11 @@
2018 1985 'intent'=> '',
2019 1986 //'lang'=> 'en_US',
2020 1987 ));
2021 1988 }
2022 -
2023 1989 $table2 = $wpdb->prefix.'wpbot_response_category';
2024 -
2025 - $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
2026 - $table2, array(
1990 + $wpdb->insert($table2, array(
2027 1991 'name' => 'smalltalk',
2028 1992 ));
2029 -
2030 1993 update_option( 'qcld_small_talk_imported', 'yes' );
2031 1994
2032 -}
2033 -function sanitize_array( &$array ) {
2034 - if (!empty($array)) {
2035 - foreach ($array as &$value) {
2036 - if( !is_array($value) )
2037 - // sanitize if value is not an array
2038 - $value = sanitize_text_field( esc_html($value) );
2039 - else
2040 - // go inside this function again
2041 - sanitize_array(esc_html($value));
2042 - }
2043 - }
2044 - return $array;
2045 -}
2046 -function qcld_wpbot_meta_tags() {
2047 - echo '<!-- "This site uses ChatBot for WordPress - WPBot from https://www.wpbot.pro/" -->';
2048 -}
2049 -add_action('wp_footer', 'qcld_wpbot_meta_tags', 100);
2050 -
2051 -if ( ! function_exists( 'qcld_change_language_from_center' ) ) {
2052 - add_action( 'wp_ajax_qcld_change_language_from_center', 'qcld_change_language_from_center' );
2053 - add_action( 'wp_ajax_nopriv_qcld_change_language_from_center', 'qcld_change_language_from_center' );
2054 - function qcld_change_language_from_center() {
2055 - if ( ! current_user_can( 'manage_options' ) ) {
2056 - wp_send_json_error( array( 'message' => 'Unauthorized.' ) );
2057 - }
2058 - $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
2059 - if ( ! wp_verify_nonce( $nonce, 'wp_chatbot' ) ) {
2060 - wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
2061 - }
2062 - $plugin_path = plugin_dir_path( __FILE__ );
2063 - include $plugin_path . 'includes/admin/settings-fields.php';
2064 - $json_file_path = $plugin_path . 'includes/language-center.json';
2065 -
2066 - $json_string = file_get_contents( $json_file_path );
2067 - if ( isset( $_POST['language'] ) ) {
2068 - $language = sanitize_text_field( wp_unslash( $_POST['language'] ) );
2069 - $language_array= json_decode($json_string)->$language;
2070 - update_option( 'wp_chatbot_language_center_language', $language );
2071 - wp_send_json_success( array( 'message' => true, 'data' => $language_array, 'language' => $language ) );
2072 - } else {
2073 - wp_send_json_error( array( 'message' => 'Language not specified.' ) );
2074 -
2075 - }
2076 - }
2077 -}
2078 -
2079 -// AI Actions Chat Preview
2080 -
1995 +}